From 0d3fa67e0612a15884ce39ca16f3e5f91c08aa01 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 23 Mar 2016 17:32:38 -0700 Subject: [PATCH 001/632] Fix broken link Fixes #4885 --- docs/static/breaking-changes.asciidoc | 2 +- docs/static/upgrading.asciidoc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 64b15808d43..603ee94ea28 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -5,7 +5,7 @@ Although 2.2 is fully compatible with configurations from older versions, there are some architectural changes to the pipeline that users need to take into consideration before deploying in production. These changes are not strictly "breaking" in the semantic versioning sense, but they make Logstash behave differently -in runtime, and can also affect performance. We have compiled such a list in the <<_upgrading_logstash_to_2.2>> section. +in runtime, and can also affect performance. We have compiled such a list in the <> section. Please review it before deploying 2.2 version. **Changes in 2.0** diff --git a/docs/static/upgrading.asciidoc b/docs/static/upgrading.asciidoc index 6e2d8337347..d30e2797ce7 100644 --- a/docs/static/upgrading.asciidoc +++ b/docs/static/upgrading.asciidoc @@ -78,6 +78,7 @@ of workers by passing a command line flag such as: [source,shell] bin/logstash `-w 1` +[[upgrading-logstash-2.2]] === Upgrading Logstash to 2.2 Logstash 2.2 re-architected the pipeline stages to provide more performance and help future enhancements in resiliency. From 0dac96aa11609379d27ee5ffcb770aa38e8689c9 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 23 Mar 2016 22:38:43 +0000 Subject: [PATCH 002/632] prevent reloading of configurations containing non reloadable plugins Fixes #4884 --- logstash-core/lib/logstash/agent.rb | 22 ++++-- logstash-core/lib/logstash/pipeline.rb | 11 +++ logstash-core/locales/en.yml | 5 ++ logstash-core/spec/logstash/agent_spec.rb | 92 +++++++++++++++++++++-- 4 files changed, 116 insertions(+), 14 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 5d2fde3201d..a925cc33752 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -77,6 +77,12 @@ def execute def register_pipeline(pipeline_id, settings) pipeline = create_pipeline(settings.merge(:pipeline_id => pipeline_id, :metric => metric)) return unless pipeline.is_a?(LogStash::Pipeline) + if @auto_reload && pipeline.non_reloadable_plugins.any? + @logger.error(I18n.t("logstash.agent.non_reloadable_config_register"), + :pipeline_id => pipeline_id, + :plugins => pipeline.non_reloadable_plugins.map(&:class)) + return + end @pipelines[pipeline_id] = pipeline end @@ -109,6 +115,12 @@ def node_uuid @node_uuid ||= SecureRandom.uuid end + def running_pipelines? + @upgrade_mutex.synchronize do + @pipelines.select {|pipeline_id, _| running_pipeline?(pipeline_id) }.any? + end + end + private def start_webserver options = {:http_host => @web_api_http_host, :http_port => @web_api_http_port } @@ -183,6 +195,10 @@ def reload_pipeline!(id) if old_pipeline.config_str == new_pipeline.config_str @logger.debug("no configuration change for pipeline", :pipeline => id, :config => old_pipeline.config_str) + elsif new_pipeline.non_reloadable_plugins.any? + @logger.error(I18n.t("logstash.agent.non_reloadable_config_reload"), + :pipeline_id => id, + :plugins => new_pipeline.non_reloadable_plugins.map(&:class)) else @logger.warn("fetched new config for pipeline. upgrading..", :pipeline => id, :config => new_pipeline.config_str) @@ -222,12 +238,6 @@ def shutdown_pipelines @pipelines.each { |id, _| stop_pipeline(id) } end - def running_pipelines? - @upgrade_mutex.synchronize do - @pipelines.select {|pipeline_id, _| running_pipeline?(pipeline_id) }.any? - end - end - def running_pipeline?(pipeline_id) thread = @pipelines[pipeline_id].thread thread.is_a?(Thread) && thread.alive? diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 9fcb77e9101..64615d5f44a 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -46,6 +46,10 @@ module LogStash; class Pipeline } MAX_INFLIGHT_WARN_THRESHOLD = 10_000 + RELOAD_INCOMPATIBLE_PLUGINS = [ + "LogStash::Inputs::Stdin" + ] + def self.validate_config(config_str, settings = {}) begin # There should be a better way to test this @@ -546,4 +550,11 @@ def stalling_threads_info .each {|t| t.delete("blocked_on") } .each {|t| t.delete("status") } end + + def non_reloadable_plugins + (inputs + filters + outputs).select do |plugin| + RELOAD_INCOMPATIBLE_PLUGINS.include?(plugin.class.name) + end + end + end end diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 7797fee5730..ab8dacef9b7 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -68,6 +68,11 @@ en: data loss. forced_sigint: >- SIGINT received. Terminating immediately.. + non_reloadable_config_reload: >- + Unable to reload configuration because it does not support dynamic reloading + non_reloadable_config_register: |- + Logstash was not able to load configuration since it does not support + dynamic reloading and -r or --auto-reload flag was enabled web_api: flag: http_host: Web API binding host diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index b7ad9065e04..dc8aa72c061 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -19,8 +19,9 @@ describe "register_pipeline" do let(:pipeline_id) { "main" } + let(:config_string) { "input { } filter { } output { }" } let(:settings) { { - :config_string => "input { } filter { } output { }", + :config_string => config_string, :pipeline_workers => 4 } } @@ -37,7 +38,7 @@ end describe "#execute" do - let(:sample_config) { "input { generator { count => 100000 } } output { stdout { } }" } + let(:sample_config) { "input { generator { count => 100000 } } output { }" } let(:config_file) { Stud::Temporary.pathname } before :each do @@ -51,15 +52,21 @@ end context "when auto_reload is false" do - let(:agent_args) { { :logger => logger, :auto_reload => false, :reload_interval => 0.01, :config_path => config_file } } + let(:agent_args) { { :logger => logger, :auto_reload => false } } + let(:pipeline_id) { "main" } + let(:pipeline_settings) { { :config_path => config_file } } - before :each do - allow(subject).to receive(:sleep) - allow(subject).to receive(:clean_state?).and_return(false) - allow(subject).to receive(:running_pipelines?).and_return(true) + before(:each) do + subject.register_pipeline(pipeline_id, pipeline_settings) end context "if state is clean" do + before :each do + allow(subject).to receive(:running_pipelines?).and_return(true) + allow(subject).to receive(:sleep) + allow(subject).to receive(:clean_state?).and_return(false) + end + it "should not reload_state!" do expect(subject).to_not receive(:reload_state!) t = Thread.new { subject.execute } @@ -68,10 +75,49 @@ t.join end end + + context "when calling reload_state!" do + context "with a config that contains reload incompatible plugins" do + let(:second_pipeline_config) { "input { stdin {} } filter { } output { }" } + + it "does not reload if new config contains reload incompatible plugins" do + t = Thread.new { subject.execute } + sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? + expect(subject).to_not receive(:upgrade_pipeline) + File.open(config_file, "w") { |f| f.puts second_pipeline_config } + subject.send(:reload_state!) + sleep 0.1 + Stud.stop!(t) + t.join + end + end + + context "with a config that does not contain reload incompatible plugins" do + let(:second_pipeline_config) { "input { generator { } } filter { } output { }" } + + it "does not reload if new config contains reload incompatible plugins" do + t = Thread.new { subject.execute } + sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? + expect(subject).to receive(:upgrade_pipeline) + File.open(config_file, "w") { |f| f.puts second_pipeline_config } + subject.send(:reload_state!) + sleep 0.1 + Stud.stop!(t) + t.join + end + end + end end context "when auto_reload is true" do let(:agent_args) { { :logger => logger, :auto_reload => true, :reload_interval => 0.01 } } + let(:pipeline_id) { "main" } + let(:pipeline_settings) { { :config_path => config_file } } + + before(:each) do + subject.register_pipeline(pipeline_id, pipeline_settings) + end + context "if state is clean" do it "should periodically reload_state" do allow(subject).to receive(:clean_state?).and_return(false) @@ -82,6 +128,36 @@ t.join end end + + context "when calling reload_state!" do + context "with a config that contains reload incompatible plugins" do + let(:second_pipeline_config) { "input { stdin {} } filter { } output { }" } + + it "does not reload if new config contains reload incompatible plugins" do + t = Thread.new { subject.execute } + sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? + expect(subject).to_not receive(:upgrade_pipeline) + File.open(config_file, "w") { |f| f.puts second_pipeline_config } + sleep 0.1 + Stud.stop!(t) + t.join + end + end + + context "with a config that does not contain reload incompatible plugins" do + let(:second_pipeline_config) { "input { generator { } } filter { } output { }" } + + it "does not reload if new config contains reload incompatible plugins" do + t = Thread.new { subject.execute } + sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? + expect(subject).to receive(:upgrade_pipeline).at_least(2).times + File.open(config_file, "w") { |f| f.puts second_pipeline_config } + sleep 0.1 + Stud.stop!(t) + t.join + end + end + end end end @@ -166,7 +242,7 @@ end describe "#fetch_config" do - let(:file_config) { "input { generator { count => 100 } } output { stdout { } }" } + let(:file_config) { "input { generator { count => 100 } } output { }" } let(:cli_config) { "filter { drop { } } " } let(:tmp_config_path) { Stud::Temporary.pathname } let(:agent_args) { { :logger => logger, :config_string => "filter { drop { } } ", :config_path => tmp_config_path } } From b0f4d4e318b93ade3de7d1b37301491e10375960 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Fri, 4 Mar 2016 14:42:33 -0600 Subject: [PATCH 003/632] Fix threadsafe workers in output delegators to not instantiate extras Fixes #4763 --- .../lib/logstash/output_delegator.rb | 138 ++++++++++-------- .../spec/logstash/output_delegator_spec.rb | 46 ++++-- 2 files changed, 110 insertions(+), 74 deletions(-) diff --git a/logstash-core/lib/logstash/output_delegator.rb b/logstash-core/lib/logstash/output_delegator.rb index 50a5a9d49c7..7267c4d85da 100644 --- a/logstash-core/lib/logstash/output_delegator.rb +++ b/logstash-core/lib/logstash/output_delegator.rb @@ -1,5 +1,6 @@ # encoding: utf-8 require "concurrent/atomic/atomic_fixnum" +java_import "java.util.concurrent.CopyOnWriteArrayList" # This class goes hand in hand with the pipeline to provide a pool of # free workers to be used by pipeline worker threads. The pool is @@ -8,72 +9,27 @@ # # This plugin also records some basic statistics module LogStash class OutputDelegator - attr_reader :workers, :config, :worker_count, :threadsafe + attr_reader :workers, :config, :threadsafe # The *args this takes are the same format that a Outputs::Base takes. A list of hashes with parameters in them # Internally these just get merged together into a single hash - def initialize(logger, klass, default_worker_count, metric, *args) + def initialize(logger, klass, default_worker_count, metric, *plugin_args) @logger = logger @threadsafe = klass.threadsafe? - @config = args.reduce({}, :merge) + @config = plugin_args.reduce({}, :merge) @klass = klass + @workers = java.util.concurrent.CopyOnWriteArrayList.new + @default_worker_count = default_worker_count + @registered = false # Create an instance of the input so we can fetch the identifier - output = @klass.new(*args) + output = @klass.new(@config) # Scope the metrics to the plugin namespaced_metric = metric.namespace(output.plugin_unique_name.to_sym) @metric_events = namespaced_metric.namespace(:events) - - # We define this as an array regardless of threadsafety - # to make reporting simpler, even though a threadsafe plugin will just have - # a single instance - # - # Older plugins invoke the instance method Outputs::Base#workers_not_supported - # To detect these we need an instance to be created first :() - # TODO: In the next major version after 2.x remove support for this - @workers = [@klass.new(*args)] - @workers.first.register # Needed in case register calls `workers_not_supported` - - # DO NOT move this statement before the instantiation of the first single instance - # Read the note above to understand why - @worker_count = calculate_worker_count(default_worker_count) - @logger.debug("Will start workers for output", :worker_count => @worker_count, :class => klass) - - warn_on_worker_override! - # This queue is used to manage sharing across threads - @worker_queue = SizedQueue.new(@worker_count) - - @workers += (@worker_count - 1).times.map do - inst = @klass.new(*args) - inst.metric = @metric - inst.register - inst - end - - @workers.each { |w| @worker_queue << w } - @events_received = Concurrent::AtomicFixnum.new(0) - - - # One might wonder why we don't use something like - # define_singleton_method(:multi_receive, method(:threadsafe_multi_receive) - # and the answer is this is buggy on Jruby 1.7.x . It works 98% of the time! - # The other 2% you get weird errors about rebinding to the same object - # Until we switch to Jruby 9.x keep the define_singleton_method parts - # the way they are, with a block - # See https://github.com/jruby/jruby/issues/3582 - if threadsafe? - @threadsafe_worker = @workers.first - define_singleton_method(:multi_receive) do |events| - threadsafe_multi_receive(events) - end - else - define_singleton_method(:multi_receive) do |events| - worker_multi_receive(events) - end - end end def threadsafe? @@ -98,11 +54,14 @@ def worker_limits_overriden? @config["workers"] && @config["workers"] > 1 && @klass.workers_not_supported? end - def calculate_worker_count(default_worker_count) + def target_worker_count + # Remove in 5.0 after all plugins upgraded to use class level declarations + raise ArgumentError, "Attempted to detect target worker count before instantiating a worker to test for legacy workers_not_supported!" if @workers.size == 0 + if @threadsafe || @klass.workers_not_supported? 1 else - @config["workers"] || default_worker_count + @config["workers"] || @default_worker_count end end @@ -111,7 +70,59 @@ def config_name end def register - @workers.each {|w| w.register} + raise ArgumentError, "Attempted to register #{self} twice!" if @registered + @registered = true + # We define this as an array regardless of threadsafety + # to make reporting simpler, even though a threadsafe plugin will just have + # a single instance + # + # Older plugins invoke the instance method Outputs::Base#workers_not_supported + # To detect these we need an instance to be created first :() + # TODO: In the next major version after 2.x remove support for this + @workers << @klass.new(@config) + @workers.first.register # Needed in case register calls `workers_not_supported` + + @logger.debug("Will start workers for output", :worker_count => target_worker_count, :class => @klass) + + # Threadsafe versions don't need additional workers + setup_additional_workers!(target_worker_count) unless @threadsafe + # We skip the first worker because that's pre-registered to deal with legacy workers_not_supported + @workers.subList(1,@workers.size).each(&:register) + setup_multi_receive! + end + + def setup_additional_workers!(target_worker_count) + warn_on_worker_override! + + (target_worker_count - 1).times do + inst = @klass.new(@config) + inst.metric = @metric + @workers << inst + end + + # This queue is used to manage sharing across threads + @worker_queue = SizedQueue.new(target_worker_count) + @workers.each {|w| @worker_queue << w } + end + + def setup_multi_receive! + # One might wonder why we don't use something like + # define_singleton_method(:multi_receive, method(:threadsafe_multi_receive) + # and the answer is this is buggy on Jruby 1.7.x . It works 98% of the time! + # The other 2% you get weird errors about rebinding to the same object + # Until we switch to Jruby 9.x keep the define_singleton_method parts + # the way they are, with a block + # See https://github.com/jruby/jruby/issues/3582 + if threadsafe? + @threadsafe_worker = @workers.first + define_singleton_method(:multi_receive) do |events| + threadsafe_multi_receive(events) + end + else + define_singleton_method(:multi_receive) do |events| + worker_multi_receive(events) + end + end end def threadsafe_multi_receive(events) @@ -138,9 +149,13 @@ def worker_multi_receive(events) def do_close @logger.debug("closing output delegator", :klass => self) - @worker_count.times do - worker = @worker_queue.pop - worker.do_close + if @threadsafe + @workers.each(&:do_close) + else + worker_count.times do + worker = @worker_queue.pop + worker.do_close + end end end @@ -153,10 +168,17 @@ def busy_workers if @threadsafe 0 else + # The pipeline reporter can run before the outputs are registered trying to pull a value here + # In that case @worker_queue is empty, we just return 0 + return 0 unless @worker_queue @workers.size - @worker_queue.size end end + def worker_count + @workers.size + end + private # Needed for testing, so private attr_reader :threadsafe_worker, :worker_queue diff --git a/logstash-core/spec/logstash/output_delegator_spec.rb b/logstash-core/spec/logstash/output_delegator_spec.rb index 524ad779ec9..48ee6af2830 100644 --- a/logstash-core/spec/logstash/output_delegator_spec.rb +++ b/logstash-core/spec/logstash/output_delegator_spec.rb @@ -31,6 +31,7 @@ context "after having received a batch of events" do before do + subject.register subject.multi_receive(events) end @@ -43,25 +44,35 @@ end end - it "should register all workers on register" do - expect(out_inst).to receive(:register) - subject.register - end - it "should close all workers when closing" do - expect(out_inst).to receive(:do_close) - subject.do_close + describe "closing" do + before do + subject.register + end + + it "should register all workers on register" do + expect(out_inst).to have_received(:register) + end + + it "should close all workers when closing" do + expect(out_inst).to receive(:do_close) + subject.do_close + end end describe "concurrency and worker support" do + before do + allow(out_inst).to receive(:id).and_return("a-simple-plugin") + allow(out_inst).to receive(:metric=).with(any_args) + allow(out_klass).to receive(:workers_not_supported?).and_return(false) + end + describe "non-threadsafe outputs that allow workers" do let(:default_worker_count) { 3 } before do allow(out_klass).to receive(:threadsafe?).and_return(false) - allow(out_klass).to receive(:workers_not_supported?).and_return(false) - allow(out_inst).to receive(:metric=).with(any_args) - allow(out_inst).to receive(:id).and_return("a-simple-plugin") + subject.register end it "should instantiate multiple workers" do @@ -77,9 +88,7 @@ describe "threadsafe outputs" do before do allow(out_klass).to receive(:threadsafe?).and_return(true) - allow(out_inst).to receive(:metric=).with(any_args) - allow(out_inst).to receive(:id).and_return("a-simple-plugin") - allow(out_klass).to receive(:workers_not_supported?).and_return(false) + subject.register end it "should return true when threadsafe? is invoked" do @@ -96,14 +105,18 @@ end it "should not utilize the worker queue" do - expect(subject.send(:worker_queue)).not_to receive(:pop) - subject.multi_receive(events) + expect(subject.send(:worker_queue)).to be_nil end it "should send received events to the worker" do expect(out_inst).to receive(:multi_receive).with(events) subject.multi_receive(events) end + + it "should close all workers when closing" do + expect(out_inst).to receive(:do_close) + subject.do_close + end end end end @@ -123,11 +136,12 @@ def register let(:default_worker_count) { 2 } let(:out_klass) { LogStash::Outputs::NOOPDelLegacyNoWorkers } - before do + before(:each) do allow(logger).to receive(:debug).with(any_args) end it "should only setup one worker" do + subject.register expect(subject.worker_count).to eql(1) end end From 08fdb0bf331e1aedeae367a17465bf6509984428 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 25 Mar 2016 10:51:22 -0700 Subject: [PATCH 004/632] Sync with docs repo --- docs/static/breaking-changes.asciidoc | 82 ++++------------- docs/static/submitting-a-plugin.asciidoc | 107 +++++++++++++++++++++++ 2 files changed, 125 insertions(+), 64 deletions(-) create mode 100644 docs/static/submitting-a-plugin.asciidoc diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 603ee94ea28..2b432131c76 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -1,72 +1,26 @@ [[breaking-changes]] == Breaking changes -**Breaking changes in 2.2** -Although 2.2 is fully compatible with configurations from older versions, there are some architectural -changes to the pipeline that users need to take into consideration before deploying in production. -These changes are not strictly "breaking" in the semantic versioning sense, but they make Logstash behave differently -in runtime, and can also affect performance. We have compiled such a list in the <> section. -Please review it before deploying 2.2 version. +**Breaking changes in 5.0** +The command `bin/plugin` has been renamed to `bin/logstash-plugin`. `bin/plugin `` which is the current +way of install packs/plugins is problematic because it pollutes the global namespace if it is put in the path. +This command can now install both plugins and "Packs" - a single zip that contains 0 or 1 plugin for each system +in the Elastic stack. -**Changes in 2.0** - -Version 2.0 of Logstash has some changes that are incompatible with previous versions of Logstash. This section discusses -what you need to be aware of when migrating to this version. - -[float] -== Elasticsearch Output Default - -Starting with the 2.0 release of Logstash, the default Logstash output for Elasticsearch is HTTP. To use the `node` or -`transport` protocols, download the https://www.elastic.co/guide/en/logstash/2.0/plugins-outputs-elasticsearch_java.html[Elasticsearch Java plugin]. The -Logstash HTTP output to Elasticsearch now supports sniffing. - -NOTE: The `elasticsearch_java` plugin has two versions specific to the version of the underlying Elasticsearch cluster. -Be sure to specify the correct value for the `--version` option during installation: -* For Elasticsearch versions before 2.0, use the command -`bin/plugin install --version 1.5.x logstash-output-elasticsearch_java` -* For Elasticsearch versions 2.0 and after, use the command -`bin/plugin install --version 2.0.0 logstash-output-elasticsearch_java` +**Environment Variables Support in Configuration** +You can set environment variable references into Logstash plugins configuration using `${var}` or `$var` syntax. +Previously if you had used `${var}` or `$var` as a value in configuration, 5.0 will try to resolve it assuming +it is an environment variable [float] -=== Configuration Changes - -The Elasticsearch output plugin configuration has the following changes: - -* The `host` configuration option is now `hosts`, allowing you to specify multiple hosts and associated ports in the -`myhost:9200` format -* New options: `bind_host`, `bind_port`, `cluster`, `embedded`, `embedded_http_port`, `port`, `sniffing_delay` -* The `max_inflight_requests` option, which was deprecated in the 1.5 release, is now removed -* Since the `hosts` option allows specification of ports for the hosts, the redundant `port` option is now removed -* The `node_name` and `protocol` options have been moved to the `elasticsearch_java` plugin - -The following deprecated configuration settings are removed in this release: - -* input plugin configuration settings: `debug`, `format`, `charset`, `message_format` -* output plugin configuration settings: `type`, `tags`, `exclude_tags`. -* filter plugin configuration settings: `type`, `tags`, `exclude_tags`. +== Kafka Input and Output Plugins -Configuration files with these settings present are invalid and prevent Logstash from starting. - -[float] -=== Kafka Output Configuration Changes - -The 2.0 release of Logstash includes a new version of the Kafka output plugin with significant configuration changes. -Please compare the documentation pages for the -https://www.elastic.co/guide/en/logstash/1.5/plugins-outputs-kafka.html[Logstash 1.5] and -https://www.elastic.co/guide/en/logstash/2.0/plugins-outputs-kafka.html[Logstash 2.0] versions of the Kafka output plugin -and update your configuration files accordingly. - -[float] -=== Metrics Filter Changes -Prior implementations of the metrics filter plugin used dotted field names. Elasticsearch does not allow field names to -have dots, beginning with version 2.0, so a change was made to use sub-fields instead of dots in this plugin. Please note -that these changes make version 3.0.0 of the metrics filter plugin incompatible with previous releases. - - -[float] -=== Filter Worker Default Change +Kafka version 0.9 brings in new security features (SSL, client based auth, access control), +improved consumer and producer API, and much more. For bringing in these features, Logstash +had to use the new 0.9 version of the consumer which is not compatible with previous versions of the broker. +To use these new features, users have to first upgrade Kafka Brokers from 0.8.x to 0.9 and then use the +input plugins. Please note that several configurations have changed in the Logstash configuration. -Starting with the 2.0 release of Logstash, the default value of the `filter_workers` configuration option for filter -plugins is half of the available CPU cores, instead of 1. This change increases parallelism in filter execution for -resource-intensive filtering operations. You can continue to use the `-w` flag to manually set the value for this option, -as in previous releases. +Configuration Changes: +* <> +* <> \ No newline at end of file diff --git a/docs/static/submitting-a-plugin.asciidoc b/docs/static/submitting-a-plugin.asciidoc new file mode 100644 index 00000000000..d85db91a8ff --- /dev/null +++ b/docs/static/submitting-a-plugin.asciidoc @@ -0,0 +1,107 @@ +[[submitting-plugin]] +=== Submitting your plugin to RubyGems.org and the logstash-plugins repository + +Logstash uses http://rubygems.org[RubyGems.org] as its repository for all plugin +artifacts. Once you have developed your new plugin, you can make it available to +Logstash users by simply publishing it to RubyGems.org. + +==== Licensing +Logstash and all its plugins are licensed under +https://github.com/elasticsearch/logstash/blob/master/LICENSE[Apache License, version 2 ("ALv2")]. +If you make your plugin publicly available via http://rubygems.org[RubyGems.org], +please make sure to have this line in your gemspec: + +* `s.licenses = ['Apache License (2.0)']` + +==== Publishing to http://rubygems.org[RubyGems.org] + +To begin, you’ll need an account on RubyGems.org + +* https://rubygems.org/sign_up[Sign-up for a RubyGems account]. + +After creating an account, +http://guides.rubygems.org/rubygems-org-api/#api-authorization[obtain] an API +key from RubyGems.org. By default, RubyGems uses the file `~/.gem/credentials` +to store your API key. These credentials will be used to publish the gem. +Replace `username` and `password` with the credentials you created at +RubyGems.org: + +[source,sh] +---------------------------------- +curl -u username:password https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials +chmod 0600 ~/.gem/credentials +---------------------------------- + +Before proceeding, make sure you have the right version in your gemspec file +and commit your changes. + +* `s.version = '0.1.0'` + +To publish version 0.1.0 of your new logstash gem: + +[source,sh] +---------------------------------- +bundle install +bundle exec rake vendor +bundle exec rspec +bundle exec rake publish_gem +---------------------------------- + +[NOTE] +======== +Executing `rake publish_gem`: + +. Reads the version from the gemspec file (`s.version = '0.1.0'`) +. Checks in your local repository if a tag exists for that version. If the tag +already exists, it aborts the process. Otherwise, it creates a new version tag +in your local repository. +. Builds the gem +. Publishes the gem to RubyGems.org +======== + +That's it! Your plugin is published! Logstash users can now install your plugin +by running: + +[source,sh] +[subs="attributes"] +---------------------------------- +bin/plugin install logstash-{plugintype}-mypluginname +---------------------------------- + +==== Contributing your source code to https://github.com/logstash-plugins[logstash-plugins] + +It is not required to contribute your source code to +https://github.com/logstash-plugins[logstash-plugins] github organization, but +we always welcome new plugins! + +==== Benefits + +Some of the many benefits of having your plugin in the logstash-plugins +repository are: + +* **Discovery** Your plugin will appear in the http://www.elasticsearch.org/guide/en/logstash/current/index.html[Logstash Reference], +where Logstash users look first for plugins and documentation. +* **Documentation** Your plugin documentation will automatically be added to the + http://www.elasticsearch.org/guide/en/logstash/current/index.html[Logstash Reference]. +* **Testing** With our testing infrastructure, your plugin will be continuously +tested against current and future releases of Logstash. As a result, users will +have the assurance that if incompatibilities arise, they will be quickly +discovered and corrected. + +==== Acceptance Guidelines + +* **Code Review** Your plugin must be reviewed by members of the community for +coherence, quality, readability, stability and security. +* **Tests** Your plugin must contain tests to be accepted. These tests are also +subject to code review for scope and completeness. It's ok if you don't know +how to write tests -- we will guide you. We are working on publishing a guide to +creating tests for Logstash which will make it easier. In the meantime, you can +refer to http://betterspecs.org/ for examples. + +To begin migrating your plugin to logstash-plugins, simply create a new +https://github.com/elasticsearch/logstash/issues[issue] in +the Logstash repository. When the acceptance guidelines are completed, we will +facilitate the move to the logstash-plugins organization using the recommended +https://help.github.com/articles/transferring-a-repository/#transferring-from-a-user-to-an-organization[github process]. + +pass::[] From 76f0dcc320e64e208ed96d361aa590e98cfe3d89 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Mon, 28 Mar 2016 12:11:58 -0500 Subject: [PATCH 005/632] Revert to use only a single worker by default on outputs The move to auto-scale output workers was great in theory, but a lot of outputs just weren't built to support it well, they often used too many resources or had logical errors. Fixes #4904 --- logstash-core/lib/logstash/pipeline.rb | 8 +++----- logstash-core/spec/logstash/pipeline_spec.rb | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 64615d5f44a..4671b93340c 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -37,6 +37,8 @@ module LogStash; class Pipeline :config_str, :original_settings + DEFAULT_OUTPUT_WORKERS = 1 + DEFAULT_SETTINGS = { :default_pipeline_workers => LogStash::Config::CpuCoreStrategy.maximum, :pipeline_batch_size => 125, @@ -460,7 +462,7 @@ def plugin(plugin_type, name, *args) klass = LogStash::Plugin.lookup(plugin_type, name) if plugin_type == "output" - LogStash::OutputDelegator.new(@logger, klass, default_output_workers, pipeline_scoped_metric.namespace(:outputs), *args) + LogStash::OutputDelegator.new(@logger, klass, DEFAULT_OUTPUT_WORKERS, pipeline_scoped_metric.namespace(:outputs), *args) elsif plugin_type == "filter" LogStash::FilterDelegator.new(@logger, klass, pipeline_scoped_metric.namespace(:filters), *args) else @@ -468,10 +470,6 @@ def plugin(plugin_type, name, *args) end end - def default_output_workers - @settings[:pipeline_workers] || @settings[:default_pipeline_workers] - end - # for backward compatibility in devutils for the rspec helpers, this method is not used # in the pipeline anymore. def filter(event, &block) diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 3753ccaae00..3b94ab4e828 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -226,7 +226,7 @@ class TestPipeline < LogStash::Pipeline pipeline.run expect(pipeline.outputs.size ).to eq(1) - expect(pipeline.outputs.first.workers.size ).to eq(pipeline.default_output_workers) + expect(pipeline.outputs.first.workers.size ).to eq(::LogStash::Pipeline::DEFAULT_OUTPUT_WORKERS) expect(pipeline.outputs.first.workers.first.num_closes ).to eq(1) end From 43f78cf3a2011c8f1b41e4b60f2b4a6e6422a7af Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Fri, 25 Mar 2016 18:53:20 -0400 Subject: [PATCH 006/632] support RubyBignum in Javafier cosmetics --- logstash-core-event-java/spec/event_spec.rb | 7 +++++++ .../src/main/java/com/logstash/Javafier.java | 9 +++++++++ .../test/java/com/logstash/JavafierTest.java | 18 ++++++++++++++++++ .../test/java/com/logstash/RubyfierTest.java | 10 ++++++++++ 4 files changed, 44 insertions(+) create mode 100644 logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java diff --git a/logstash-core-event-java/spec/event_spec.rb b/logstash-core-event-java/spec/event_spec.rb index 9df705418f3..03cbffa73c6 100644 --- a/logstash-core-event-java/spec/event_spec.rb +++ b/logstash-core-event-java/spec/event_spec.rb @@ -104,6 +104,13 @@ expect(e["foo"]).to be_kind_of(BigDecimal) expect(e["foo"]).to eq(BigDecimal.new(1)) end + + it "should set RubyBignum" do + e = LogStash::Event.new() + e["[foo]"] = -9223372036854776000 + expect(e["foo"]).to be_kind_of(Bignum) + expect(e["foo"]).to eq(-9223372036854776000) + end end context "timestamp" do diff --git a/logstash-core-event-java/src/main/java/com/logstash/Javafier.java b/logstash-core-event-java/src/main/java/com/logstash/Javafier.java index f4f16266570..e1e03156be7 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Javafier.java +++ b/logstash-core-event-java/src/main/java/com/logstash/Javafier.java @@ -13,11 +13,14 @@ import org.jruby.RubyFixnum; import org.jruby.RubyTime; import org.jruby.RubySymbol; +import org.jruby.RubyBignum; import org.jruby.ext.bigdecimal.RubyBigDecimal; import com.logstash.ext.JrubyTimestampExtLibrary; import org.jruby.runtime.builtin.IRubyObject; import java.math.BigDecimal; import org.joda.time.DateTime; + +import java.math.BigInteger; import java.util.*; public class Javafier { @@ -66,6 +69,10 @@ public static BigDecimal deep(RubyBigDecimal bd) { return bd.getBigDecimalValue(); } + public static BigInteger deep(RubyBignum bn) { + return bn.getBigIntegerValue(); + } + public static Timestamp deep(JrubyTimestampExtLibrary.RubyTimestamp t) { return t.getTimestamp(); } @@ -114,6 +121,7 @@ public static Object deep(IRubyObject o) { case RubyTimestamp: return deep((JrubyTimestampExtLibrary.RubyTimestamp)o); case RubyBoolean: return deep((RubyBoolean)o); case RubyFixnum: return deep((RubyFixnum)o); + case RubyBignum: return deep((RubyBignum)o); case RubyTime: return deep((RubyTime)o); case RubySymbol: return deep((RubySymbol)o); case RubyNil: return deep((RubyNil)o); @@ -141,6 +149,7 @@ enum RUBYCLASS { RubyHash, RubyBoolean, RubyFixnum, + RubyBignum, RubyObject, RubyNil, RubyTime, diff --git a/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java b/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java new file mode 100644 index 00000000000..40aaa7b6c53 --- /dev/null +++ b/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java @@ -0,0 +1,18 @@ +package com.logstash; + +import org.jruby.Ruby; +import org.jruby.RubyBignum; +import java.math.BigInteger; +import org.junit.Test; +import static org.junit.Assert.*; + +public class JavafierTest { + @Test + public void testRubyBignum() { + RubyBignum v = RubyBignum.newBignum(Ruby.getGlobalRuntime(), "-9223372036854776000"); + + Object result = Javafier.deep(v); + assertEquals(BigInteger.class, result.getClass()); + assertEquals( "-9223372036854776000", result.toString()); + } +} diff --git a/logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java b/logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java index af8ecbf0c28..5773ce65ae5 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java +++ b/logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java @@ -8,6 +8,7 @@ import java.lang.reflect.Method; import java.math.BigDecimal; +import java.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -217,4 +218,13 @@ public void testDeepListWithBigDecimal() assertEquals(RubyBigDecimal.class, rubyArray.toJavaArray()[0].getClass()); assertEquals(1.0D, ((RubyBigDecimal)rubyArray.toJavaArray()[0]).getDoubleValue(), 0); } + + + @Test + public void testDeepWithBigInteger() { + Object result = Rubyfier.deep(Ruby.getGlobalRuntime(), new BigInteger("1")); + assertEquals(RubyBignum.class, result.getClass()); + assertEquals(1L, ((RubyBignum)result).getLongValue()); + } + } From 613a7d69244fc57f6be78c5e68841ec50460a3e1 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 29 Mar 2016 11:14:58 +0200 Subject: [PATCH 007/632] Make the logstash-core-plugin-api install locally in case of having a :path in the Gemfile, works the same way as other "core" gems used for master branch. Fixes #4908 --- rakelib/artifacts.rake | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index bc3d086e105..a31b1266f93 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -100,8 +100,27 @@ namespace "artifact" do end end - task "prepare" => ["bootstrap", "plugin:install-default", "install-logstash-core", "install-logstash-core-event", "clean-bundle-config"] - task "prepare-all" => ["bootstrap", "plugin:install-all", "install-logstash-core", "install-logstash-core-event", "clean-bundle-config"] + # locate the "gem "logstash-core-plugin-api" ..." line in Gemfile, and if the :path => "..." option if specified + # build and install the local logstash-core-plugin-api gem otherwise just do nothing, bundler will deal with it. + task "install-logstash-core-plugin-api" do + # regex which matches a Gemfile gem definition for the logstash-core gem and captures the :path option + gem_line_regex = /^\s*gem\s+["']logstash-core-plugin-api["'](?:\s*,\s*["'][^"^']+["'])?(?:\s*,\s*:path\s*=>\s*["']([^"^']+)["'])?/i + + lines = File.readlines("Gemfile") + matches = lines.select{|line| line[gem_line_regex]} + abort("ERROR: Gemfile format error, need a single logstash-core-plugin-api gem specification") if matches.size != 1 + + path = matches.first[gem_line_regex, 1] + + if path + Rake::Task["plugin:install-local-core-gem"].invoke("logstash-core-plugin-api", path) + else + puts("[artifact:install-logstash-core-plugin-api] using logstash-core from Rubygems") + end + end + + task "prepare" => ["bootstrap", "plugin:install-default", "install-logstash-core", "install-logstash-core-event", "install-logstash-core-plugin-api", "clean-bundle-config"] + task "prepare-all" => ["bootstrap", "plugin:install-all", "install-logstash-core", "install-logstash-core-event", "install-logstash-core-plugin-api", "clean-bundle-config"] desc "Build a tar.gz of default logstash plugins with all dependencies" task "tar" => ["prepare"] do From 563236649e1a4fd9d86189b4a09fd625fb20d30a Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 29 Mar 2016 14:24:48 +0100 Subject: [PATCH 008/632] fix race condition in agent spec Fixes #4912 --- logstash-core/spec/logstash/agent_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index dc8aa72c061..a08d4767aa6 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -123,6 +123,7 @@ allow(subject).to receive(:clean_state?).and_return(false) expect(subject).to receive(:reload_state!).at_least(3).times t = Thread.new { subject.execute } + sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? sleep 0.1 Stud.stop!(t) t.join From e971dacfce6d33cd8d4791fa5c1a749792f52796 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Mon, 28 Mar 2016 12:24:06 -0700 Subject: [PATCH 009/632] Bump current master to 5.0.0.dev Fixes #4906 --- Gemfile | 5 +-- Gemfile.jruby-1.9.lock | 45 +++++++++---------- .../lib/logstash-core-event-java/version.rb | 2 +- .../lib/logstash-core-event/version.rb | 2 +- .../logstash-core-plugin-api.gemspec | 2 +- logstash-core/lib/logstash-core/version.rb | 2 +- logstash-core/lib/logstash/version.rb | 2 +- logstash-core/logstash-core.gemspec | 2 +- 8 files changed, 28 insertions(+), 34 deletions(-) diff --git a/Gemfile b/Gemfile index 679cbf93403..a6b25daefda 100644 --- a/Gemfile +++ b/Gemfile @@ -2,9 +2,8 @@ # If you modify this file manually all comments and formatting will be lost. source "https://rubygems.org" -gem "logstash-core", "3.0.0.dev", :path => "./logstash-core" -# gem "logstash-core-event", "3.0.0.dev", :path => "./logstash-core-event" -gem "logstash-core-event-java", "3.0.0.dev", :path => "./logstash-core-event-java" +gem "logstash-core", "5.0.0.dev", :path => "./logstash-core" +gem "logstash-core-event-java", "5.0.0.dev", :path => "./logstash-core-event-java" gem "logstash-core-plugin-api", "1.0.0", :path => "./logstash-core-plugin-api" gem "file-dependencies", "0.1.6" gem "ci_reporter_rspec", "1.0.0", :group => :development diff --git a/Gemfile.jruby-1.9.lock b/Gemfile.jruby-1.9.lock index 69163d4626a..7510eb2679d 100644 --- a/Gemfile.jruby-1.9.lock +++ b/Gemfile.jruby-1.9.lock @@ -1,7 +1,7 @@ PATH remote: ./logstash-core specs: - logstash-core (3.0.0.dev-java) + logstash-core (5.0.0.dev-java) cabin (~> 0.8.0) chronic_duration (= 0.10.6) clamp (~> 0.6.5) @@ -12,10 +12,10 @@ PATH jrjackson (~> 0.3.7) jruby-monitoring (~> 0.1) jruby-openssl (= 0.9.13) - logstash-core-event-java (~> 3.0.0.dev) + logstash-core-event-java (~> 5.0.0.dev) minitar (~> 0.5.4) pry (~> 0.10.1) - puma (~> 2.15, >= 2.15.3) + puma (~> 2.16, >= 2.16.0) rubyzip (~> 1.1.7) sinatra (~> 1.4, >= 1.4.6) stud (~> 0.0.19) @@ -25,18 +25,24 @@ PATH PATH remote: ./logstash-core-event-java specs: - logstash-core-event-java (3.0.0.dev-java) + logstash-core-event-java (5.0.0.dev-java) jar-dependencies ruby-maven (~> 3.3.9) +PATH + remote: ./logstash-core-plugin-api + specs: + logstash-core-plugin-api (1.0.0-java) + logstash-core (= 5.0.0.dev) + GEM remote: https://rubygems.org/ specs: addressable (2.3.8) arr-pm (0.0.10) cabin (> 0) - backports (3.6.7) - benchmark-ips (2.3.0) + backports (3.6.8) + benchmark-ips (2.5.0) builder (3.2.2) cabin (0.8.1) childprocess (0.5.9) @@ -49,19 +55,16 @@ GEM ci_reporter (~> 2.0) rspec (>= 2.14, < 4) clamp (0.6.5) - coderay (1.1.0) + coderay (1.1.1) concurrent-ruby (1.0.0-java) - coveralls (0.8.10) + coveralls (0.8.13) json (~> 1.8) - rest-client (>= 1.6.8, < 2) simplecov (~> 0.11.0) term-ansicolor (~> 1.3) thor (~> 0.19.1) tins (~> 1.6.0) diff-lcs (1.2.5) docile (1.1.5) - domain_name (0.5.20160128) - unf (>= 0.0.5, < 1.0.0) faraday (0.9.2) multipart-post (>= 1.2, < 3) ffi (1.9.10-java) @@ -79,8 +82,6 @@ GEM json (>= 1.7.7) gem_publisher (1.5.0) gems (0.8.3) - http-cookie (1.0.2) - domain_name (~> 0.5) i18n (0.6.9) insist (1.0.0) jar-dependencies (0.3.2) @@ -88,7 +89,7 @@ GEM jruby-monitoring (0.3.0) jruby-openssl (0.9.13-java) json (1.8.3-java) - kramdown (1.9.0) + kramdown (1.10.0) logstash-devutils (0.0.18-java) gem_publisher insist (= 1.0.0) @@ -99,10 +100,8 @@ GEM rspec-wait stud (>= 0.0.20) method_source (0.8.2) - mime-types (2.99) minitar (0.5.4) multipart-post (2.0.0) - netrc (0.11.0) numerizer (0.1.1) octokit (3.8.0) sawyer (~> 0.6.0, >= 0.5.3) @@ -118,11 +117,7 @@ GEM rack rack-test (0.6.3) rack (>= 1.0) - rake (10.5.0) - rest-client (1.8.0) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 3.0) - netrc (~> 0.7) + rake (11.1.2) rspec (3.1.0) rspec-core (~> 3.1.0) rspec-expectations (~> 3.1.0) @@ -137,7 +132,7 @@ GEM rspec-support (3.1.2) rspec-wait (0.0.8) rspec (>= 2.11, < 3.5) - ruby-maven (3.3.9) + ruby-maven (3.3.10) ruby-maven-libs (~> 3.3.1) ruby-maven-libs (3.3.3) rubyzip (1.1.7) @@ -166,7 +161,6 @@ GEM treetop (1.4.15) polyglot polyglot (>= 0.3.1) - unf (0.1.4-java) PLATFORMS java @@ -179,8 +173,9 @@ DEPENDENCIES flores (~> 0.0.6) fpm (~> 1.3.3) gems (~> 0.8.3) - logstash-core (= 3.0.0.dev)! - logstash-core-event-java (= 3.0.0.dev)! + logstash-core (= 5.0.0.dev)! + logstash-core-event-java (= 5.0.0.dev)! + logstash-core-plugin-api (= 1.0.0)! logstash-devutils (~> 0.0.15) octokit (= 3.8.0) rack-test diff --git a/logstash-core-event-java/lib/logstash-core-event-java/version.rb b/logstash-core-event-java/lib/logstash-core-event-java/version.rb index 6c297b7c2fd..cfc6a162494 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java/version.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_EVENT_JAVA_VERSION = "3.0.0.dev" +LOGSTASH_CORE_EVENT_JAVA_VERSION = "5.0.0.dev" diff --git a/logstash-core-event/lib/logstash-core-event/version.rb b/logstash-core-event/lib/logstash-core-event/version.rb index 18e991d6b0c..e1e0774da55 100644 --- a/logstash-core-event/lib/logstash-core-event/version.rb +++ b/logstash-core-event/lib/logstash-core-event/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_EVENT_VERSION = "3.0.0.dev" +LOGSTASH_CORE_EVENT_VERSION = "5.0.0.dev" diff --git a/logstash-core-plugin-api/logstash-core-plugin-api.gemspec b/logstash-core-plugin-api/logstash-core-plugin-api.gemspec index 08efcb63abf..8764ad5b24c 100644 --- a/logstash-core-plugin-api/logstash-core-plugin-api.gemspec +++ b/logstash-core-plugin-api/logstash-core-plugin-api.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = LOGSTASH_CORE_PLUGIN_API - gem.add_runtime_dependency "logstash-core", ">= 2.0.0", "<= 3.0.0.dev" + gem.add_runtime_dependency "logstash-core", "5.0.0.dev" # Make sure we dont build this gem from a non jruby # environment. diff --git a/logstash-core/lib/logstash-core/version.rb b/logstash-core/lib/logstash-core/version.rb index fdc9d13f1a4..737441c5abc 100644 --- a/logstash-core/lib/logstash-core/version.rb +++ b/logstash-core/lib/logstash-core/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_VERSION = "3.0.0.dev" +LOGSTASH_CORE_VERSION = "5.0.0.dev" diff --git a/logstash-core/lib/logstash/version.rb b/logstash-core/lib/logstash/version.rb index 70715b097cb..676dde5ac32 100644 --- a/logstash-core/lib/logstash/version.rb +++ b/logstash-core/lib/logstash/version.rb @@ -11,4 +11,4 @@ # eventually this file should be in the root logstash lib fir and dependencies in logstash-core should be # fixed. -LOGSTASH_VERSION = "3.0.0.dev" +LOGSTASH_VERSION = "5.0.0.dev" diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index c830291c8f7..d94a7e395d9 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = LOGSTASH_CORE_VERSION - gem.add_runtime_dependency "logstash-core-event-java", "~> 3.0.0.dev" + gem.add_runtime_dependency "logstash-core-event-java", "~> 5.0.0.dev" gem.add_runtime_dependency "cabin", "~> 0.8.0" #(Apache 2.0 license) gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license) From 91968be3535dd87d44d56cd7c1a780aa1500d574 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 30 Mar 2016 17:44:10 -0700 Subject: [PATCH 010/632] Delete obsolete file --- docs/static/logstash-docs-home.asciidoc | 30 ------------------------- 1 file changed, 30 deletions(-) delete mode 100644 docs/static/logstash-docs-home.asciidoc diff --git a/docs/static/logstash-docs-home.asciidoc b/docs/static/logstash-docs-home.asciidoc deleted file mode 100644 index 19bd3281184..00000000000 --- a/docs/static/logstash-docs-home.asciidoc +++ /dev/null @@ -1,30 +0,0 @@ -[[logstash-docs-home]] -== Logstash Documentation -Pretty self-explanatory, really - -=== Downloads and Releases -* http://www.elasticsearch.org/overview/logstash/download/[Download Logstash 1.4.2] -* http://www.elasticsearch.org/blog/apt-and-yum-repositories/[package repositories] -* http://www.elasticsearch.org/blog/logstash-1-4-2/[release notes] -* https://github.com/elasticsearch/logstash/blob/master/CHANGELOG[view changelog] -* https://github.com/elasticsearch/puppet-logstash[Puppet Module] - -=== Plugins -* http://elasticsearch.org/#[contrib plugins] -* http://elasticsearch.org/#[writing your own plugins] -* http://elasticsearch.org/#[Inputs] / http://elasticsearch.org/#[Filters] / http://elasticsearch.org/#[Outputs] -* http://elasticsearch.org/#[Codecs] -* http://elasticsearch.org/#[(more)] - -=== HOWTOs, References, Information -* http://elasticsearch.org/#[Getting Started with Logstash] -* http://elasticsearch.org/#[Configuration file overview] -* http://elasticsearch.org/#[Command-line flags] -* http://elasticsearch.org/#[The life of an event in Logstash] -* http://elasticsearch.org/#[Using conditional logic] -* http://elasticsearch.org/#[Glossary] -* http://elasticsearch.org/#[(more)] - -=== About / Videos / Blogs -* http://elasticsearch.org/#[Videos] -* http://elasticsearch.org/#[Blogs] From 3289c17b3dc876deeaa313ecaa0f65251ad744ff Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 29 Mar 2016 13:11:31 -0700 Subject: [PATCH 011/632] Remove logstash forwarder and lumberjack from image --- docs/static/images/deploy_3.png | Bin 56035 -> 41546 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/static/images/deploy_3.png b/docs/static/images/deploy_3.png index cda4337fa9dc215ef4e901ceaf8933534056354f..00823fffba36fe54a44d677b2d651b3aa55d7af5 100644 GIT binary patch literal 41546 zcmeFZg;&*G7d1*L2aymEkUj{~AV?#1041c64h8A%?t>sH(%m54-6EiLNOyyDH|K7A z-}k#?+&|%t@Aohsk7w|!z4uyct~uxSi-O!+tVbk|kdTnDq$I_akdPjjAR!^!Lr}ms z%<|6a;E#v;GH=C^5cmJ3H|IqmAyFYoiHoYZB=5|*dnm8nq91Im+9h&InT~L0$oh^9 z5k}|EMrO8=5z&dYZxQzpJbjt~!FRl{XAG80XtSZdxONqLkP!Uip>CZ82l`qKiezxD6~_T|G&*mV0g^bSX3_R?aK~p6K6^_#EPl z{NK;G^|)mJ{V1XU!T#?@Dta{Z|NR1iAL@TULLRmM?=-Z4#s7YZ?|(n~ zr2pT`BK_Y%0IT8u$AchEum^%Y9aE!tyr7`q>dLKfjATy}yfeRKz6v8jaCSCLj?y#m zP3Du%3X3{(Fc?FHrKN1FtZ#I|Z#92W%J1vzQ=unVVnw5BpaQY88PL<)8xj&CNFiT` z31SVx9w`}}kdW~08{QraDHHOU5uR2%uv%P71;5ZfO)apWeUnx=uj9%3K|c3HeFld~ zt|wi;q*uT5%QL@1Ex7IPA9bH#5Q*MSsb}P@6iC##6XrgDz^&bABf6EfwTl$!hn$gy zEQf4|$URt-@~+70-8S|a1>QhD>YVNsw3$$aUeH6|2>5w3s+_EGqln;qOG}G*0&?C^ zBSTD2Tie)+St3|NtR9zwyKJyS5t7jn!_%u}Y&Y(?^7a%SjG9VL zGH+Az5;m`8eKy^o;I`+3ufrdu715(>I(gmfMY8 zpCU*8q~Hjtjq*PA2T_2s(17meZ=P)2QY?Jqg|7Ly&I*NJf=znp3!Vc@#Pdz^rc)#E z+U3OYM?b`w(xd(9wnBc6;WZVtuBZ zsdy#POKZCFgOso=bWX?KR{?>1$;)sOuQy0q^p}>Gs zju!q`Pl7SFkNM0QY#-Bxer&c{K8CDZKk+SFp*wJGuFess%7*KYZ|e)P`qHE-z?Kc+ z7^q(cp9jg}_Kan?i%qyNKirrSEcw=?I)nRD>RHbg6T3CF$i{uq^x5>iU)18(Hj5?v zYR9LrG^S0pWo>U?8gs^!BAhX)=5Vu`jCn0%Y9SmM^&b@|nsVX}-@_MdDZ08RArgvk zYLrN@fWOhh%fCPcnmQNhr^oGZ{HWffa#|-*y-EGFb3O zVHT^}Qkqthg z{$&dq$Da!zZ9YarACfXOG(2AKe-8g-Y+S0_oVfh(r$nLm-Eo?A)8RwtYKrsx@4mjB zRnhTct+<$&r#)9lnG_%d_n-i^EPcFP$LY^~2n%>&H8S#(FHQ1Qo)ZVxhdH_Rk&hEO z&vgR>AmS?TJ~$*8CufD}^4oP?t8?-)eg`1Jo#X+zfX=z}j0|7gWv9jt9ZB)FF|Z&?@WaT_K_1|l zBjz#9r*;;VR6>P8GU#JZ1J)HH;f9_x;tR0~Roan_RA3}>*~TcnglY1?iSuDeY$7zl zUDl$BKmL0m@5YygzPk^DXCHv)fWCe}OHe6f4Z$JiqyGp=c*x=(mNS9W?0 zzrRSyx(%<_)m9#pS_v*JTgg;YQ*)uk(|=b(S9kBwMVwj@{0*!X=+Es_B?4Mp?Q4#X z?bF!k==gUpG8E|JdRLa0t2B!dRer2-+dVN%+VW`UKAH4i#PMuOdgIva@dc%6zOAl) z3d>DUv@1>x>6rVf*WyuMQ8BV|_-pM58TFyfsdMPyM&*a`ew58 zn(#M@zSFcak%x}YZZ<2e=QqC_F3%9OBQ6gWBUoUgsie8ein2$kscH~;frKO;?s
  • CPI{P1ZIqF2PDby) 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\pQbEa3H2@3x& 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 Bc!vN0 literal 56035 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 Date: Tue, 29 Mar 2016 15:17:32 +0200 Subject: [PATCH 012/632] bump jruby-monitoring version to >= 0.3.1 to include last fixes Fixes #4911 --- logstash-core/logstash-core.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index d94a7e395d9..e8a83519785 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -30,7 +30,7 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency 'puma', '~> 2.16', '>= 2.16.0' gem.add_runtime_dependency "jruby-openssl", "0.9.13" # Required to support TLSv1.2 gem.add_runtime_dependency "chronic_duration", "0.10.6" - gem.add_runtime_dependency "jruby-monitoring", '~> 0.1' + gem.add_runtime_dependency "jruby-monitoring", '~> 0.3.1' # TODO(sissel): Treetop 1.5.x doesn't seem to work well, but I haven't # investigated what the cause might be. -Jordan From b0b7a8c5e9fd913f69dc06045468782c386cff4f Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 31 Mar 2016 12:43:47 +0100 Subject: [PATCH 013/632] ensure Plugin#original_params is obfuscated Fixes #4952 --- logstash-core/lib/logstash/config/mixin.rb | 7 ++++++- logstash-core/spec/logstash/config/mixin_spec.rb | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 1d152062222..9bdff1392ed 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -53,7 +53,7 @@ def config_init(params) # Keep a copy of the original config params so that we can later # differentiate between explicit configuration and implicit (default) # configuration. - @original_params = params.clone + original_params = params.clone # store the plugin type, turns LogStash::Inputs::Base into 'input' @plugin_type = self.class.ancestors.find { |a| a.name =~ /::Base$/ }.config_name @@ -142,6 +142,11 @@ def config_init(params) instance_variable_set("@#{key}", value) end + # now that we know the parameters are valid, we can obfuscate the original copy + # of the parameters before storing them as an instance variable + self.class.validate_check_parameter_values(original_params) + @original_params = original_params + @config = params end # def config_init diff --git a/logstash-core/spec/logstash/config/mixin_spec.rb b/logstash-core/spec/logstash/config/mixin_spec.rb index 2a9bb8ac3d5..f801336cf0d 100644 --- a/logstash-core/spec/logstash/config/mixin_spec.rb +++ b/logstash-core/spec/logstash/config/mixin_spec.rb @@ -96,6 +96,10 @@ clone = subject.class.new(subject.params) expect(clone.password.value).to(be == secret) end + + it "should obfuscate original_params" do + expect(subject.original_params['password']).to(be_a(LogStash::Util::Password)) + end end describe "obsolete settings" do From 6369a43c9df2d723cdb90e188440099f891f3c83 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 31 Mar 2016 16:24:52 +0100 Subject: [PATCH 014/632] avoid reusing generic validation method during params securization Fixes #4952 --- logstash-core/lib/logstash/config/mixin.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 9bdff1392ed..b697157d33b 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -144,7 +144,7 @@ def config_init(params) # now that we know the parameters are valid, we can obfuscate the original copy # of the parameters before storing them as an instance variable - self.class.validate_check_parameter_values(original_params) + self.class.secure_params!(original_params) @original_params = original_params @config = params @@ -542,6 +542,14 @@ def validate_value(value, validator) return true, result end # def validate_value + def secure_params!(params) + params.each do |key, value| + if @config[key][:validate] == :password && !value.is_a?(::LogStash::Util::Password) + params[key] = ::LogStash::Util::Password.new(value) + end + end + end + def hash_or_array(value) if !value.is_a?(Hash) value = [*value] # coerce scalar to array if necessary From f52820a58f44c8d6c699dc576399065b765833cd Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 31 Mar 2016 08:39:28 +0100 Subject: [PATCH 015/632] fix --config-test and add a couple of tests fixes #4933 Fixes #4946 --- logstash-core/lib/logstash/pipeline.rb | 1 + logstash-core/lib/logstash/runner.rb | 6 +++--- logstash-core/spec/logstash/runner_spec.rb | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 4671b93340c..ab28e13ba0a 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -56,6 +56,7 @@ def self.validate_config(config_str, settings = {}) begin # There should be a better way to test this self.new(config_str, settings) + true rescue => e e.message end diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index a8984244a46..72d76aea641 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -166,9 +166,9 @@ def execute end if config_test? - config_loader = LogStash::Config::Loader.new(@logger, config_test?) + config_loader = LogStash::Config::Loader.new(@logger) config_str = config_loader.format_config(config_path, config_string) - config_error = LogStash::Pipeline.config_valid?(config_str) + config_error = LogStash::Pipeline.validate_config(config_str) if config_error == true @logger.terminal "Configuration OK" return 0 @@ -213,7 +213,7 @@ def execute show_short_help return 1 rescue => e - @logger.fatal I18n.t("oops", :error => e, :backtrace => e.backtrace) + @logger.fatal(I18n.t("oops"), :error => e, :backtrace => e.backtrace) return 1 ensure Stud::untrap("INT", sigint_id) unless sigint_id.nil? diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index f8bcd9a6f35..709733ec97a 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -95,6 +95,26 @@ def run(args); end end end + context "--config-test" do + subject { LogStash::Runner.new("") } + let(:args) { ["-t", "-e", pipeline_string] } + + context "with a good configuration" do + let(:pipeline_string) { "input { } filter { } output { }" } + it "should exit successfuly" do + expect(channel).to receive(:terminal) + expect(subject.run(args)).to eq(0) + end + end + + context "with a bad configuration" do + let(:pipeline_string) { "rlwekjhrewlqrkjh" } + it "should fail by returning a bad exit code" do + expect(channel).to receive(:fatal) + expect(subject.run(args)).to eq(1) + end + end + end describe "pipeline settings" do let(:pipeline_string) { "input { stdin {} } output { stdout {} }" } let(:main_pipeline_settings) { { :pipeline_id => "main" } } From bb30cc773bcf34d63d634dbfcf2803278a5140b3 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 31 Mar 2016 15:22:22 +0100 Subject: [PATCH 016/632] move Pipeline#validate_config to Runner Fixes #4946 --- logstash-core/lib/logstash/pipeline.rb | 10 ---------- logstash-core/lib/logstash/runner.rb | 8 ++++---- logstash-core/locales/en.yml | 2 ++ logstash-core/spec/logstash/runner_spec.rb | 2 +- 4 files changed, 7 insertions(+), 15 deletions(-) diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index ab28e13ba0a..2cbedae3bf0 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -52,16 +52,6 @@ module LogStash; class Pipeline "LogStash::Inputs::Stdin" ] - def self.validate_config(config_str, settings = {}) - begin - # There should be a better way to test this - self.new(config_str, settings) - true - rescue => e - e.message - end - end - def initialize(config_str, settings = {}) @config_str = config_str @original_settings = settings diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 72d76aea641..8d261d49276 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -168,12 +168,12 @@ def execute if config_test? config_loader = LogStash::Config::Loader.new(@logger) config_str = config_loader.format_config(config_path, config_string) - config_error = LogStash::Pipeline.validate_config(config_str) - if config_error == true + begin + LogStash::Pipeline.new(config_str) @logger.terminal "Configuration OK" return 0 - else - @logger.fatal I18n.t("logstash.error", :error => config_error) + rescue => e + @logger.fatal I18n.t("logstash.runner.invalid-configuration", :error => e.message) return 1 end end diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index ab8dacef9b7..e373ff3c4bc 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -91,6 +91,8 @@ en: bin/logstash -i SHELL [--quiet|verbose|debug] bin/logstash -V [--verbose|debug] bin/logstash --help + invalid-configuration: >- + The given configuration is invalid. Reason: %{error} missing-configuration: >- No configuration file was specified. Perhaps you forgot to provide the '-f yourlogstash.conf' flag? diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index 709733ec97a..98802f32d59 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -95,7 +95,7 @@ def run(args); end end end - context "--config-test" do + describe "--config-test" do subject { LogStash::Runner.new("") } let(:args) { ["-t", "-e", pipeline_string] } From 46af6ce109a2bd5787edee7878dd98c71446c7c9 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 1 Apr 2016 11:57:06 +0100 Subject: [PATCH 017/632] ensure cond_func methods are singletons Fixes #4970 --- logstash-core/lib/logstash/config/config_ast.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/config/config_ast.rb b/logstash-core/lib/logstash/config/config_ast.rb index 41ec1c599a1..7a583d578df 100644 --- a/logstash-core/lib/logstash/config/config_ast.rb +++ b/logstash-core/lib/logstash/config/config_ast.rb @@ -391,7 +391,7 @@ def compile if type == "filter" i = LogStash::Config::AST.defered_conditionals_index += 1 source = <<-CODE - def cond_func_#{i}(input_events) + define_singleton_method :cond_func_#{i} do |input_events| result = [] input_events.each do |event| events = [event] From 120ca6d7fe46b14175c3f7887b983a7ff80af641 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 1 Apr 2016 17:05:44 +0100 Subject: [PATCH 018/632] test identity of generated conditional functions Fixes #4970 --- .../spec/logstash/config/config_ast_spec.rb | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/logstash-core/spec/logstash/config/config_ast_spec.rb b/logstash-core/spec/logstash/config/config_ast_spec.rb index 917e0575916..d4ba9af94d9 100644 --- a/logstash-core/spec/logstash/config/config_ast_spec.rb +++ b/logstash-core/spec/logstash/config/config_ast_spec.rb @@ -143,4 +143,37 @@ end end end + + context "when creating two instances of the same configuration" do + + let(:config_string) { + "input { generator { } } + filter { + if [type] == 'test' { filter1 { } } + } + output { + output1 { } + }" + } + + let(:pipeline_klass) do + Class.new do + def initialize(config) + grammar = LogStashConfigParser.new + @config = grammar.parse(config) + @code = @config.compile + eval(@code) + end + def plugin(*args);end + end + end + + describe "generated conditional functionals" do + it "should be defined at instance level" do + instance_1 = pipeline_klass.new(config_string) + instance_2 = pipeline_klass.new(config_string) + expect(instance_1.method(:cond_func_1).owner).to_not be(instance_2.method(:cond_func_1).owner) + end + end + end end From a218b1a863f71ac5246efb57ef6453889c3b0bb6 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 29 Mar 2016 16:32:36 -0700 Subject: [PATCH 019/632] Fix Filebeat overview image --- docs/static/images/deploy_3.png | Bin 41546 -> 41921 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/static/images/deploy_3.png b/docs/static/images/deploy_3.png index 00823fffba36fe54a44d677b2d651b3aa55d7af5..96bc119c3e093703136dc702c623ce6f486dc6a2 100644 GIT binary patch literal 41921 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
  • CPI{P1ZIqF2PDby) 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\pQbEa3H2@3x& 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 Bc!vN0 From edd03d98bd2b92a31325e91d97dc544318f03423 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 31 Mar 2016 16:10:32 -0500 Subject: [PATCH 020/632] Hide sensitive AST/config data unless --debug-config argument passed We now hide this because displaying it is dangerous. Generated code and other AST data may contain plaintext copies of 'password' type fields. Users can force this to appear with the --debug-config flag. Fixes https://github.com/elastic/logstash/issues/4964 Fixes #4965 --- docs/static/command-line-flags.asciidoc | 5 +++++ logstash-core/lib/logstash/agent.rb | 2 +- logstash-core/lib/logstash/config/loader.rb | 15 ++++++++----- .../instrument/periodic_poller/base.rb | 4 ++-- logstash-core/lib/logstash/pipeline.rb | 21 +++++++++++++++++-- logstash-core/lib/logstash/runner.rb | 14 +++++++++++-- logstash-core/locales/en.yml | 4 ++++ logstash-core/spec/logstash/pipeline_spec.rb | 19 +++++++++++++++++ logstash-core/spec/logstash/runner_spec.rb | 17 +++++++++++++++ 9 files changed, 89 insertions(+), 12 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 2b08c8a7d2e..a89f0efd4ce 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -41,6 +41,11 @@ Logstash has the following flags. You can use the `--help` flag to display this --debug Increase verbosity to the last level (trace), more verbose. +--debug-config + Print the compiled config ruby code out as a debug log (you must also have --debug enabled). + WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result + in plaintext passwords appearing in your logs! + -V, --version Display the version of Logstash. diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index a925cc33752..1afd8c775ce 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -37,7 +37,7 @@ def initialize(params) @web_api_http_host = params[:web_api_http_host] @web_api_http_port = params[:web_api_http_port] - @config_loader = LogStash::Config::Loader.new(@logger) + @config_loader = LogStash::Config::Loader.new(@logger, params[:debug_config]) @reload_interval = params[:reload_interval] || 3 # seconds @upgrade_mutex = Mutex.new diff --git a/logstash-core/lib/logstash/config/loader.rb b/logstash-core/lib/logstash/config/loader.rb index 37179518ed5..1cd0f3febaa 100644 --- a/logstash-core/lib/logstash/config/loader.rb +++ b/logstash-core/lib/logstash/config/loader.rb @@ -1,8 +1,9 @@ require "logstash/config/defaults" module LogStash; module Config; class Loader - def initialize(logger) + def initialize(logger, debug_config=false) @logger = logger + @debug_config = debug_config end def format_config(config_path, config_string) @@ -69,14 +70,18 @@ def local_config(path) encoding_issue_files << file end config << cfg + "\n" - @logger.debug? && @logger.debug("\nThe following is the content of a file", :config_file => file.to_s) - @logger.debug? && @logger.debug("\n" + cfg + "\n\n") + if @debug_config + @logger.debug? && @logger.debug("\nThe following is the content of a file", :config_file => file.to_s) + @logger.debug? && @logger.debug("\n" + cfg + "\n\n") + end end if encoding_issue_files.any? fail("The following config files contains non-ascii characters but are not UTF-8 encoded #{encoding_issue_files}") end - @logger.debug? && @logger.debug("\nThe following is the merged configuration") - @logger.debug? && @logger.debug("\n" + config + "\n\n") + if @debug_config + @logger.debug? && @logger.debug("\nThe following is the merged configuration") + @logger.debug? && @logger.debug("\n" + config + "\n\n") + end return config end # def load_config diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/base.rb b/logstash-core/lib/logstash/instrument/periodic_poller/base.rb index 32bfd931a9a..1834c3342f5 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/base.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/base.rb @@ -34,14 +34,14 @@ def collect end def start - logger.debug("PeriodicPoller: Starting", :poller => self, + logger.debug("PeriodicPoller: Starting", :polling_interval => @options[:polling_interval], :polling_timeout => @options[:polling_timeout]) if logger.debug? @task.execute end def stop - logger.debug("PeriodicPoller: Stopping", :poller => self) + logger.debug("PeriodicPoller: Stopping") @task.shutdown end diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 2cbedae3bf0..7d67e70a641 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -44,7 +44,8 @@ module LogStash; class Pipeline :pipeline_batch_size => 125, :pipeline_batch_delay => 5, # in milliseconds :flush_interval => 5, # in seconds - :flush_timeout_interval => 60 # in seconds + :flush_timeout_interval => 60, # in seconds + :debug_config => false } MAX_INFLIGHT_WARN_THRESHOLD = 10_000 @@ -90,7 +91,10 @@ def initialize(config_str, settings = {}) # The config code is hard to represent as a log message... # So just print it. - @logger.debug? && @logger.debug("Compiled pipeline code:\n#{code}") + + if @settings[:debug_config] && logger.debug? + logger.debug("Compiled pipeline code", :code => code) + end begin eval(code) @@ -546,4 +550,17 @@ def non_reloadable_plugins end end + # Sometimes we log stuff that will dump the pipeline which may contain + # sensitive information (like the raw syntax tree which can contain passwords) + # We want to hide most of what's in here + def inspect + { + :pipeline_id => @pipeline_id, + :settings => @settings.inspect, + :ready => @ready, + :running => @running, + :flushing => @flushing + } + end + end end diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 8d261d49276..6186a6c9697 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -53,6 +53,10 @@ class LogStash::Runner < Clamp::Command option "--verbose", :flag, I18n.t("logstash.runner.flag.verbose") option "--debug", :flag, I18n.t("logstash.runner.flag.debug") + option ["--debug-config"], :flag, + I18n.t("logstash.runner.flag.debug_config"), + :attribute_name => :debug_config, :default => false + option ["-V", "--version"], :flag, I18n.t("logstash.runner.flag.version") @@ -166,7 +170,7 @@ def execute end if config_test? - config_loader = LogStash::Config::Loader.new(@logger) + config_loader = LogStash::Config::Loader.new(@logger, @debug_config) config_str = config_loader.format_config(config_path, config_string) begin LogStash::Pipeline.new(config_str) @@ -184,12 +188,14 @@ def execute :collect_metric => true, :debug => debug?, :node_name => node_name, + :debug_config => debug_config?, :web_api_http_host => @web_api_http_host, :web_api_http_port => @web_api_http_port) @agent.register_pipeline("main", @pipeline_settings.merge({ :config_string => config_string, - :config_path => config_path + :config_path => config_path, + :debug_config => debug_config? })) # enable sigint/sigterm before starting the agent @@ -318,6 +324,10 @@ def configure_logging(path) @logger.subscribe(STDOUT) end + if debug_config? && @logger.level != :debug + @logger.warn("--debug-config was specified, but log level was not set to --debug! No config info will be logged.") + end + # TODO(sissel): redirect stdout/stderr to the log as well # http://jira.codehaus.org/browse/JRUBY-7003 end # def configure_logging diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index e373ff3c4bc..d5859b14203 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -239,3 +239,7 @@ en: it will default to the current hostname. agent: |+ Specify an alternate agent plugin name. + debug_config: |+ + Print the compiled config ruby code out as a debug log (you must also have --debug enabled). + WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result + in plaintext passwords appearing in your logs! \ No newline at end of file diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 3b94ab4e828..e8a782122f2 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -137,6 +137,25 @@ class TestPipeline < LogStash::Pipeline eos } + describe "debug compiled" do + let(:logger) { double("pipeline logger").as_null_object } + + before do + expect(Cabin::Channel).to receive(:get).with(LogStash).and_return(logger).at_least(:once) + allow(logger).to receive(:debug?).and_return(true) + end + + it "should not receive a debug message with the compiled code" do + expect(logger).not_to receive(:debug).with(/Compiled pipeline/, anything) + pipeline = TestPipeline.new(test_config_with_filters) + end + + it "should print the compiled code if debug_config is set to true" do + expect(logger).to receive(:debug).with(/Compiled pipeline/, anything) + pipeline = TestPipeline.new(test_config_with_filters, :debug_config => true) + end + end + context "when there is no command line -w N set" do it "starts one filter thread" do msg = "Defaulting pipeline worker threads to 1 because there are some filters that might not work with multiple worker threads" diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index 98802f32d59..35ee709722c 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -16,6 +16,7 @@ def run(args); end before :each do allow(Cabin::Channel).to receive(:get).with(LogStash).and_return(channel) + allow(channel).to receive(:subscribe).with(any_args) end describe "argument parsing" do @@ -145,5 +146,21 @@ def run(args); end subject.run("bin/logstash", args) end end + + describe "debug_config" do + it "should set 'debug_config' to false by default" do + expect(LogStash::Config::Loader).to receive(:new).with(anything, false).and_call_original + expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(:debug_config => false)).and_return(pipeline) + args = ["--debug", "-e", pipeline_string] + subject.run("bin/logstash", args) + end + + it "should allow overriding debug_config" do + expect(LogStash::Config::Loader).to receive(:new).with(anything, true).and_call_original + expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(:debug_config => true)).and_return(pipeline) + args = ["--debug", "--debug-config", "-e", pipeline_string] + subject.run("bin/logstash", args) + end + end end end From e8f817bd011cb2b4af56de9db694da104d43102a Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Mon, 4 Apr 2016 10:58:16 +0200 Subject: [PATCH 021/632] fix package stop function to use proper portable [ command insted of the bash [[ based one when trying to kill an stale instance Fixes #4992 --- pkg/logstash.sysv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/logstash.sysv b/pkg/logstash.sysv index d971b4a405c..c615ff8951a 100755 --- a/pkg/logstash.sysv +++ b/pkg/logstash.sysv @@ -96,7 +96,7 @@ stop() { sleep 1 done if status ; then - if [[ $KILL_ON_STOP_TIMEOUT -eq 1 ]] ; then + if [ $KILL_ON_STOP_TIMEOUT -eq 1 ] ; then echo "Timeout reached. Killing $name (pid $pid) with SIGKILL. This may result in data loss." kill -KILL $pid echo "$name killed with SIGKILL." From 3862514388f21a1cd4b40aac3e4d4c023622677f Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Mon, 4 Apr 2016 10:54:28 -0400 Subject: [PATCH 022/632] revert to jruby 1.7.23 for regex regression --- rakelib/vendor.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rakelib/vendor.rake b/rakelib/vendor.rake index df29654e68e..c304685e62c 100644 --- a/rakelib/vendor.rake +++ b/rakelib/vendor.rake @@ -1,6 +1,6 @@ namespace "vendor" do VERSIONS = { - "jruby" => { "version" => "1.7.24", "sha1" => "0c321d2192768dfec419bee6b44c7190f4db32e1" }, + "jruby" => { "version" => "1.7.23", "sha1" => "2b5e796feeed2bcfab02f8bf2ff3d77ca318e310" }, } def vendor(*args) From ae53d5119f54a92fbce15fe6e8da84c5c4cde99e Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 31 Mar 2016 12:06:18 -0700 Subject: [PATCH 023/632] add experimental flag for environment variables in config Fixes #4963 --- docs/static/command-line-flags.asciidoc | 3 ++ logstash-core/lib/logstash/config/mixin.rb | 36 ++++++++++------- logstash-core/lib/logstash/pipeline.rb | 5 ++- logstash-core/lib/logstash/runner.rb | 7 +++- logstash-core/locales/en.yml | 4 ++ logstash-core/spec/logstash/agent_spec.rb | 39 +++++++++++++++++++ .../spec/logstash/config/mixin_spec.rb | 6 ++- logstash-core/spec/logstash/runner_spec.rb | 14 +++++++ 8 files changed, 98 insertions(+), 16 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index a89f0efd4ce..8b73920308b 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -64,6 +64,9 @@ Logstash has the following flags. You can use the `--help` flag to display this -r, --[no-]auto-reload Monitor configuration changes and reload the configuration whenever it is changed. + +--allow-env + EXPERIMENTAL: Enable environment variable templating within configuration parameters. --reload-interval RELOAD_INTERVAL Specifies how often Logstash checks the config files for changes. The default is every 3 seconds. diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index b697157d33b..eb83d713a4e 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -38,7 +38,8 @@ module LogStash::Config::Mixin PLUGIN_VERSION_1_0_0 = LogStash::Util::PluginVersion.new(1, 0, 0) PLUGIN_VERSION_0_9_0 = LogStash::Util::PluginVersion.new(0, 9, 0) - ENV_PLACEHOLDER_REGEX = /\$(?\w+)|\$\{(?\w+)(\:(?[^}]*))?\}/ + ALLOW_ENV_FLAG = "__ALLOW_ENV__" + ENV_PLACEHOLDER_REGEX = /\$\{(?\w+)(\:(?[^}]*))?\}/ # This method is called when someone does 'include LogStash::Config' def self.included(base) @@ -47,6 +48,14 @@ def self.included(base) end def config_init(params) + # HACK(talevy): https://github.com/elastic/logstash/issues/4958 + # Currently, the regular plugins params argument is hijacked + # to pass along the `allow_env` configuration variable. This was done as to + # not change the method signature of Plugin. This also makes it difficul to + # reason about at the same time. ALLOW_ENV_FLAG is a special param that users + # are now forbidden to set in their configuration definitions. + allow_env = params.delete(LogStash::Config::Mixin::ALLOW_ENV_FLAG) { false } + # Validation will modify the values inside params if necessary. # For example: converting a string to a number, etc. @@ -102,22 +111,25 @@ def config_init(params) end # Resolve environment variables references - params.each do |name, value| - if (value.is_a?(Hash)) - value.each do |valueHashKey, valueHashValue| - value[valueHashKey.to_s] = replace_env_placeholders(valueHashValue) - end - else - if (value.is_a?(Array)) - value.each_index do |valueArrayIndex| - value[valueArrayIndex] = replace_env_placeholders(value[valueArrayIndex]) + if allow_env + params.each do |name, value| + if (value.is_a?(Hash)) + value.each do |valueHashKey, valueHashValue| + value[valueHashKey.to_s] = replace_env_placeholders(valueHashValue) end else - params[name.to_s] = replace_env_placeholders(value) + if (value.is_a?(Array)) + value.each_index do |valueArrayIndex| + value[valueArrayIndex] = replace_env_placeholders(value[valueArrayIndex]) + end + else + params[name.to_s] = replace_env_placeholders(value) + end end end end + if !self.class.validate(params) raise LogStash::ConfigurationError, I18n.t("logstash.runner.configuration.invalid_plugin_settings") @@ -154,7 +166,6 @@ def config_init(params) # Process following patterns : $VAR, ${VAR}, ${VAR:defaultValue} def replace_env_placeholders(value) return value unless value.is_a?(String) - #raise ArgumentError, "Cannot replace ENV placeholders on non-strings. Got #{value.class}" if !value.is_a?(String) value.gsub(ENV_PLACEHOLDER_REGEX) do |placeholder| # Note: Ruby docs claim[1] Regexp.last_match is thread-local and scoped to @@ -168,7 +179,6 @@ def replace_env_placeholders(value) if replacement.nil? raise LogStash::ConfigurationError, "Cannot evaluate `#{placeholder}`. Environment variable `#{name}` is not set and there is no default value given." end - @logger.info? && @logger.info("Evaluating environment variable placeholder", :placeholder => placeholder, :replacement => replacement) replacement end end # def replace_env_placeholders diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 7d67e70a641..805c1bfda09 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -45,7 +45,8 @@ module LogStash; class Pipeline :pipeline_batch_delay => 5, # in milliseconds :flush_interval => 5, # in seconds :flush_timeout_interval => 60, # in seconds - :debug_config => false + :debug_config => false, + :allow_env => false } MAX_INFLIGHT_WARN_THRESHOLD = 10_000 @@ -61,6 +62,7 @@ def initialize(config_str, settings = {}) @settings = DEFAULT_SETTINGS.clone settings.each {|setting, value| configure(setting, value) } @reporter = LogStash::PipelineReporter.new(@logger, self) + @allow_env = settings[:allow_env] @inputs = nil @filters = nil @@ -451,6 +453,7 @@ def shutdown_workers def plugin(plugin_type, name, *args) args << {} if args.empty? + args.first.merge!(LogStash::Config::Mixin::ALLOW_ENV_FLAG => @allow_env) pipeline_scoped_metric = metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :plugins]) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 6186a6c9697..3ba3ed0ac8a 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -98,6 +98,10 @@ class LogStash::Runner < Clamp::Command I18n.t("logstash.web_api.flag.http_port"), :attribute_name => :web_api_http_port, :default => 9600 + option ["--allow-env"], :flag, + I18n.t("logstash.runner.flag.allow_env"), + :attribute_name => :allow_env, :default => false + def pipeline_workers=(pipeline_workers_value) @pipeline_settings[:pipeline_workers] = validate_positive_integer(pipeline_workers_value) end @@ -195,7 +199,8 @@ def execute @agent.register_pipeline("main", @pipeline_settings.merge({ :config_string => config_string, :config_path => config_path, - :debug_config => debug_config? + :debug_config => debug_config?, + :allow_env => allow_env? })) # enable sigint/sigterm before starting the agent diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index d5859b14203..04aa260c666 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -182,6 +182,10 @@ en: the empty string for the '-e' flag. configtest: |+ Check configuration for valid syntax and then exit. + allow-env: |+ + EXPERIMENTAL. Enables templating of environment variable + values. Instances of "${VAR}" in strings will be replaced + with the respective environment variable value named "VAR". pipeline-workers: |+ Sets the number of pipeline workers to run. pipeline-batch-size: |+ diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index a08d4767aa6..15d290bf2aa 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -191,6 +191,45 @@ end end + describe "Environment Variables In Configs" do + let(:agent_args) { { + :logger => logger, + :auto_reload => false, + :reload_interval => 0.01 + } } + let(:pipeline_id) { "main" } + let(:pipeline_config) { "input { generator { message => '${FOO}-bar' } } filter { } output { }" } + let(:pipeline_settings) { { + :config_string => pipeline_config, + } } + + context "when allow_env is false" do + it "does not interpolate environment variables" do + expect(subject).to receive(:fetch_config).and_return(pipeline_config) + subject.register_pipeline(pipeline_id, pipeline_settings) + expect(subject.pipelines[pipeline_id].inputs.first.message).to eq("${FOO}-bar") + end + end + + context "when allow_env is true" do + before :each do + @foo_content = ENV["FOO"] + ENV["FOO"] = "foo" + pipeline_settings.merge!(:allow_env => true) + end + + after :each do + ENV["FOO"] = @foo_content + end + + it "doesn't upgrade the state" do + expect(subject).to receive(:fetch_config).and_return(pipeline_config) + subject.register_pipeline(pipeline_id, pipeline_settings) + expect(subject.pipelines[pipeline_id].inputs.first.message).to eq("foo-bar") + end + end + end + describe "#upgrade_pipeline" do let(:pipeline_id) { "main" } let(:pipeline_config) { "input { } filter { } output { }" } diff --git a/logstash-core/spec/logstash/config/mixin_spec.rb b/logstash-core/spec/logstash/config/mixin_spec.rb index f801336cf0d..801b4bdf67e 100644 --- a/logstash-core/spec/logstash/config/mixin_spec.rb +++ b/logstash-core/spec/logstash/config/mixin_spec.rb @@ -165,6 +165,10 @@ config :oneNumber, :validate => :number config :oneArray, :validate => :array config :oneHash, :validate => :hash + + def initialize(params) + super(params.merge(LogStash::Config::Mixin::ALLOW_ENV_FLAG => true)) + end end end @@ -217,7 +221,7 @@ "oneString" => "${FunString:foo}", "oneBoolean" => "${FunBool:false}", "oneArray" => [ "first array value", "${FunString:foo}" ], - "oneHash" => { "key1" => "${FunString:foo}", "key2" => "$FunString is ${FunBool}", "key3" => "${FunBool:false} or ${funbool:false}" } + "oneHash" => { "key1" => "${FunString:foo}", "key2" => "${FunString} is ${FunBool}", "key3" => "${FunBool:false} or ${funbool:false}" } ) end diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index 35ee709722c..2f2cda29359 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -162,5 +162,19 @@ def run(args); end subject.run("bin/logstash", args) end end + + context "when configuring environment variable support" do + it "should set 'allow_env' to false by default" do + args = ["-e", pipeline_string] + expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(:allow_env => false)).and_return(pipeline) + subject.run("bin/logstash", args) + end + + it "should support templating environment variables" do + args = ["-e", pipeline_string, "--allow-env"] + expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(:allow_env => true)).and_return(pipeline) + subject.run("bin/logstash", args) + end + end end end From f4a07f90b1c073d78a01cb5e6022aa90cfb76f87 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Mon, 4 Apr 2016 14:57:00 -0500 Subject: [PATCH 024/632] Prevent config leak on output delegator close On shutdown logstash may leak config information for outputs including plaintext passwords Fixes #5001 --- logstash-core/lib/logstash/output_delegator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/output_delegator.rb b/logstash-core/lib/logstash/output_delegator.rb index 7267c4d85da..63806ce6736 100644 --- a/logstash-core/lib/logstash/output_delegator.rb +++ b/logstash-core/lib/logstash/output_delegator.rb @@ -147,7 +147,7 @@ def worker_multi_receive(events) end def do_close - @logger.debug("closing output delegator", :klass => self) + @logger.debug("closing output delegator", :klass => @klass) if @threadsafe @workers.each(&:do_close) From a7c602b8cc02152bd24fa3510f75407d4fd795c3 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Mon, 4 Apr 2016 14:33:16 -0700 Subject: [PATCH 025/632] fix path to --allow-env I18n description Fixes #5007 --- logstash-core/lib/logstash/runner.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 3ba3ed0ac8a..30d2df61c78 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -99,7 +99,7 @@ class LogStash::Runner < Clamp::Command :attribute_name => :web_api_http_port, :default => 9600 option ["--allow-env"], :flag, - I18n.t("logstash.runner.flag.allow_env"), + I18n.t("logstash.runner.flag.allow-env"), :attribute_name => :allow_env, :default => false def pipeline_workers=(pipeline_workers_value) From 2b3956ccb2543b2667c2528de1aa5f83ad9aff9d Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 4 Apr 2016 16:29:29 -0700 Subject: [PATCH 026/632] Update terminology used for security product Fixes #5009 --- docs/static/deploying.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/deploying.asciidoc b/docs/static/deploying.asciidoc index e57cd85554b..e4d7cce4f79 100644 --- a/docs/static/deploying.asciidoc +++ b/docs/static/deploying.asciidoc @@ -63,7 +63,7 @@ nodes. By default, Logstash uses the HTTP protocol to move data into the cluster You can use the Elasticsearch HTTP REST APIs to index data into the Elasticsearch cluster. These APIs represent the indexed data in JSON. Using the REST APIs does not require the Java client classes or any additional JAR files and has no performance disadvantages compared to the transport or node protocols. You can secure communications -that use the HTTP REST APIs with the {shield}[Shield] plugin, which supports SSL and HTTP basic authentication. +that use the HTTP REST APIs by using {shield}[{security}], which supports SSL and HTTP basic authentication. When you use the HTTP protocol, you can configure the Logstash Elasticsearch output plugin to automatically load-balance indexing requests across a From 147937643cf96080169c8e78da50ce1faf9ce1f5 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Thu, 7 Apr 2016 14:57:50 +0200 Subject: [PATCH 027/632] fix Rakelib package.rake to use logstash-plugin pack to generate the plugins bundle Fixes #5049 --- rakelib/package.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rakelib/package.rake b/rakelib/package.rake index 56606c93136..73885a013d2 100644 --- a/rakelib/package.rake +++ b/rakelib/package.rake @@ -1,7 +1,7 @@ namespace "package" do task "bundle" do - system("bin/logstash-plugin", "package") + system("bin/logstash-plugin", "pack") raise(RuntimeError, $!.to_s) unless $?.success? end From 97352c7960d10cde53bc7af71f1e298ce08a812a Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 7 Apr 2016 10:33:25 -0400 Subject: [PATCH 028/632] Remove some plugins that failed the build when creating the tar.gz Fixes #5054 --- rakelib/default_plugins.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rakelib/default_plugins.rb b/rakelib/default_plugins.rb index 04e342d6199..2001fa0d3e1 100644 --- a/rakelib/default_plugins.rb +++ b/rakelib/default_plugins.rb @@ -144,7 +144,13 @@ module RakeLib /^logstash-output-webhdfs$/, /^logstash-input-rackspace$/, /^logstash-output-rackspace$/, - /^logstash-input-dynamodb$/ + /^logstash-input-dynamodb$/, + /^logstash-filter-language$/, + /^logstash-input-heroku$/, + /^logstash-output-google_cloud_storage$/, + /^logstash-input-journald$/, + /^logstash-input-log4j2$/, + /^logstash-codec-cloudtrail$/ ]) From e7baca12975f9a4e62aefc34084fc72660f2b8f5 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 6 Apr 2016 17:13:40 +0200 Subject: [PATCH 029/632] add experimental notice for --allow-env flag Fixes #5036 Fixes #5059 --- docs/static/configuration.asciidoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index 72aaeae5731..25ede16e4fe 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -601,6 +601,9 @@ output { [[environment-variables]] === Using Environment Variables in Configuration + +This feature is _experimental_, to enable it you will need to run logstash with the `--allow-env` flag. + ==== Overview * You can set environment variable references into Logstash plugins configuration using `${var}` or `$var`. From 24c4e62c86a51b20a2040aa5678e7868e7084308 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 6 Apr 2016 18:31:48 +0200 Subject: [PATCH 030/632] ammend usage of in docs for environment vars Fixes #5036 Fixes #5059 --- docs/static/configuration.asciidoc | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index 25ede16e4fe..0948493d389 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -606,7 +606,7 @@ This feature is _experimental_, to enable it you will need to run logstash with ==== Overview -* You can set environment variable references into Logstash plugins configuration using `${var}` or `$var`. +* You can set environment variable references into Logstash plugins configuration using `${var}`. * Each reference will be replaced by environment variable value at Logstash startup. * The replacement is case-sensitive. * References to undefined variables raise a Logstash configuration error. @@ -620,16 +620,6 @@ This feature is _experimental_, to enable it you will need to run logstash with |================================== |Logstash config source |Environment |Logstash config result -| -[source,ruby] ----- -input { - tcp { - port => "$TCP_PORT" - } -} ----- - | [source,shell] ---- From 3231970f97159de40482490bd2a9989ee7596f4b Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 6 Apr 2016 11:31:34 -0700 Subject: [PATCH 031/632] fix table formatting for env var examples Fixes #5059 --- docs/static/configuration.asciidoc | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index 0948493d389..db39ef604c3 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -619,21 +619,6 @@ This feature is _experimental_, to enable it you will need to run logstash with [cols="a,a,a"] |================================== |Logstash config source |Environment |Logstash config result - -| -[source,shell] ----- -export TCP_PORT=12345 ----- -| -[source,ruby] ----- -input { - tcp { - port => 12345 - } -} ----- | [source,ruby] ---- From 6c609a301016131766789a2790e556225322e381 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Fri, 8 Apr 2016 13:20:33 -0700 Subject: [PATCH 032/632] build core gems in same process as rake command instead of spawning new process Fixes #5075 --- rakelib/plugin.rake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rakelib/plugin.rake b/rakelib/plugin.rake index 5620def5315..dc91d19bcc8 100644 --- a/rakelib/plugin.rake +++ b/rakelib/plugin.rake @@ -1,4 +1,5 @@ require_relative "default_plugins" +require 'rubygems' namespace "plugin" do @@ -88,7 +89,10 @@ namespace "plugin" do puts("[plugin:build-local-core-gem] Building #{File.join(path, name)}.gemspec") - system("cd #{path}; gem build #{name}.gemspec") + Dir.chdir(path) do + spec = Gem::Specification.load("#{name}.gemspec") + Gem::Package.build(spec) + end task.reenable # Allow this task to be run again end From 8af93d0f3a77f8e9bd2196077f23e0f6168bc576 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 19 Jan 2016 21:35:01 +0100 Subject: [PATCH 033/632] Add generic code used to load any kind of plugins across logstash Introduce the idea of a registry plugin placeholder where all necessary interface to plugins is mantained, also simplified the internal registry calls to be more generic. Add a way to handle registrations for plugins explicitly introduced the idea of self.plugin_type method to fetch plugin type from base clase, also removed the former plugins:mixin used to annotate defined plugins make the config_name method also handle the registration to the plugin registry, that way old plugins get registration out of the box and we can simply incoming plugin registry without automatic loading simplify the plugin registry by removing former need to load classes, now they all get registered automatically when using the config_name method cleanup unnecessary former changes updated typo in comments for the plugins registry and also removed internal attr_reader for the same class renamed plugin annotate to declare_plugin to have a more meaningful name change Registry::Plugin.gem_name -> cannonic_gem_name to reflect the idea of having probably also other non cannonic gem names Fixes #4535 --- logstash-core/lib/logstash/codecs/base.rb | 5 ++ logstash-core/lib/logstash/config/mixin.rb | 5 ++ logstash-core/lib/logstash/filters/base.rb | 4 + logstash-core/lib/logstash/inputs/base.rb | 5 ++ logstash-core/lib/logstash/outputs/base.rb | 4 + logstash-core/lib/logstash/plugin.rb | 24 +++--- .../lib/logstash/plugins/registry.rb | 83 +++++++++++++++++++ logstash-core/spec/logstash/plugin_spec.rb | 13 +++ .../spec/logstash/plugins/registry_spec.rb | 57 +++++++++++++ 9 files changed, 188 insertions(+), 12 deletions(-) create mode 100644 logstash-core/lib/logstash/plugins/registry.rb create mode 100644 logstash-core/spec/logstash/plugins/registry_spec.rb diff --git a/logstash-core/lib/logstash/codecs/base.rb b/logstash-core/lib/logstash/codecs/base.rb index 4d10950f534..4fba2b21742 100644 --- a/logstash-core/lib/logstash/codecs/base.rb +++ b/logstash-core/lib/logstash/codecs/base.rb @@ -7,8 +7,13 @@ # This is the base class for logstash codecs. module LogStash::Codecs; class Base < LogStash::Plugin include LogStash::Config::Mixin + config_name "codec" + def self.plugin_type + "codec" + end + def initialize(params={}) super config_init(@params) diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index eb83d713a4e..75e774e8bf7 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -1,6 +1,7 @@ # encoding: utf-8 require "logstash/namespace" require "logstash/config/registry" +require "logstash/plugins/registry" require "logstash/logging" require "logstash/util/password" require "logstash/version" @@ -191,8 +192,12 @@ module DSL def config_name(name = nil) @config_name = name if !name.nil? LogStash::Config::Registry.registry[@config_name] = self + if self.respond_to?("plugin_type") + declare_plugin(self.plugin_type, @config_name) + end return @config_name end + alias_method :config_plugin, :config_name # Deprecated: Declare the version of the plugin # inside the gemspec. diff --git a/logstash-core/lib/logstash/filters/base.rb b/logstash-core/lib/logstash/filters/base.rb index ae6616ddf01..c666a225bf7 100644 --- a/logstash-core/lib/logstash/filters/base.rb +++ b/logstash-core/lib/logstash/filters/base.rb @@ -117,6 +117,10 @@ class LogStash::Filters::Base < LogStash::Plugin # Optional. config :periodic_flush, :validate => :boolean, :default => false + def self.plugin_type + "filter" + end + public def initialize(params) super diff --git a/logstash-core/lib/logstash/inputs/base.rb b/logstash-core/lib/logstash/inputs/base.rb index 414cd714784..d02bbd567e5 100644 --- a/logstash-core/lib/logstash/inputs/base.rb +++ b/logstash-core/lib/logstash/inputs/base.rb @@ -10,6 +10,7 @@ # This is the base class for Logstash inputs. class LogStash::Inputs::Base < LogStash::Plugin include LogStash::Config::Mixin + config_name "input" # Add a `type` field to all events handled by this input. @@ -48,6 +49,10 @@ class LogStash::Inputs::Base < LogStash::Plugin attr_accessor :params attr_accessor :threadable + def self.plugin_type + "input" + end + public def initialize(params={}) super diff --git a/logstash-core/lib/logstash/outputs/base.rb b/logstash-core/lib/logstash/outputs/base.rb index 3f59cc0e715..3df4e3b4a81 100644 --- a/logstash-core/lib/logstash/outputs/base.rb +++ b/logstash-core/lib/logstash/outputs/base.rb @@ -57,6 +57,10 @@ def workers_not_supported(message=nil) self.class.declare_workers_not_supported!(message) end + def self.plugin_type + "output" + end + public def initialize(params={}) super diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index d6c335e7279..25848e518c3 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -6,6 +6,7 @@ require "cabin" require "concurrent" require "securerandom" +require "logstash/plugins/registry" class LogStash::Plugin attr_accessor :params @@ -117,23 +118,21 @@ def config_name # Look up a plugin by type and name. def self.lookup(type, name) path = "logstash/#{type}s/#{name}" - - # first check if plugin already exists in namespace and continue to next step if not - begin - return namespace_lookup(type, name) - rescue NameError - logger.debug("Plugin not defined in namespace, checking for plugin file", :type => type, :name => name, :path => path) + LogStash::Registry.instance.lookup(type ,name) do |plugin_klass, plugin_name| + is_a_plugin?(plugin_klass, plugin_name) end - - # try to load the plugin file. ex.: lookup("filter", "grok") will require logstash/filters/grok - require(path) - - # check again if plugin is now defined in namespace after the require - namespace_lookup(type, name) rescue LoadError, NameError => e + logger.debug("Problems loading the plugin with", :type => type, :name => name, :path => path) raise(LogStash::PluginLoadingError, I18n.t("logstash.pipeline.plugin-loading-error", :type => type, :name => name, :path => path, :error => e.to_s)) end + public + def self.declare_plugin(type, name) + path = "logstash/#{type}s/#{name}" + registry = LogStash::Registry.instance + registry.register(path, self) + end + private # lookup a plugin by type and name in the existing LogStash module namespace # ex.: namespace_lookup("filter", "grok") looks for LogStash::Filters::Grok @@ -165,4 +164,5 @@ def self.is_a_plugin?(klass, name) def self.logger @logger ||= Cabin::Channel.get(LogStash) end + end # class LogStash::Plugin diff --git a/logstash-core/lib/logstash/plugins/registry.rb b/logstash-core/lib/logstash/plugins/registry.rb new file mode 100644 index 00000000000..b69ba9e08af --- /dev/null +++ b/logstash-core/lib/logstash/plugins/registry.rb @@ -0,0 +1,83 @@ +# encoding: utf-8 +require 'singleton' +require "rubygems/package" + +module LogStash + class Registry + + ## + # Placeholder class for registered plugins + ## + class Plugin + attr_reader :type, :name + + def initialize(type, name) + @type = type + @name = name + end + + def path + "logstash/#{type}s/#{name}" + end + + def cannonic_gem_name + "logstash-#{type}-#{name}" + end + + def installed? + find_plugin_spec(cannonic_gem_name).any? + end + + private + + def find_plugin_spec(name) + specs = ::Gem::Specification.find_all_by_name(name) + specs.select{|spec| logstash_plugin_spec?(spec)} + end + + def logstash_plugin_spec?(spec) + spec.metadata && spec.metadata["logstash_plugin"] == "true" + end + + end + + include Singleton + + def initialize + @registry = {} + @logger = Cabin::Channel.get(LogStash) + end + + def lookup(type, plugin_name, &block) + + plugin = Plugin.new(type, plugin_name) + + if plugin.installed? + return @registry[plugin.path] if registered?(plugin.path) + require plugin.path + klass = @registry[plugin.path] + if block_given? # if provided pass a block to do validation + raise LoadError unless block.call(klass, plugin_name) + end + return klass + else + # The plugin was defined directly in the code, so there is no need to use the + # require way of loading classes + return @registry[plugin.path] if registered?(plugin.path) + raise LoadError + end + rescue => e + @logger.debug("Problems loading a plugin with", :type => type, :name => plugin, :path => plugin.path, :error => e) if @logger.debug? + raise LoadError, "Problems loading the requested plugin named #{plugin_name} of type #{type}." + end + + def register(path, klass) + @registry[path] = klass + end + + def registered?(path) + @registry.has_key?(path) + end + + end +end diff --git a/logstash-core/spec/logstash/plugin_spec.rb b/logstash-core/spec/logstash/plugin_spec.rb index 3950fbcc6e3..618aafa59ac 100644 --- a/logstash-core/spec/logstash/plugin_spec.rb +++ b/logstash-core/spec/logstash/plugin_spec.rb @@ -34,6 +34,19 @@ class LogStash::Filters::LadyGaga < LogStash::Filters::Base expect(LogStash::Plugin.lookup("filter", "lady_gaga")).to eq(LogStash::Filters::LadyGaga) end + describe "plugin signup in the registry" do + + let(:registry) { LogStash::Registry.instance } + + it "should be present in the registry" do + class LogStash::Filters::MyPlugin < LogStash::Filters::Base + config_name "my_plugin" + end + path = "logstash/filters/my_plugin" + expect(registry.registered?(path)).to eq(true) + end + end + describe "#inspect" do class LogStash::Filters::MyTestFilter < LogStash::Filters::Base config_name "param1" diff --git a/logstash-core/spec/logstash/plugins/registry_spec.rb b/logstash-core/spec/logstash/plugins/registry_spec.rb new file mode 100644 index 00000000000..01a72864d45 --- /dev/null +++ b/logstash-core/spec/logstash/plugins/registry_spec.rb @@ -0,0 +1,57 @@ +# encoding: utf-8 +require "spec_helper" +require "logstash/plugins/registry" +require "logstash/inputs/base" + +# use a dummy NOOP input to test plugin registry +class LogStash::Inputs::Dummy < LogStash::Inputs::Base + config_name "dummy" + + def register; end + +end + +describe LogStash::Registry do + + let(:registry) { described_class.instance } + + context "when loading installed plugins" do + + let(:plugin) { double("plugin") } + + it "should return the expected class" do + klass = registry.lookup("input", "stdin") + expect(klass).to eq(LogStash::Inputs::Stdin) + end + + it "should raise an error if can not find the plugin class" do + expect(LogStash::Registry::Plugin).to receive(:new).with("input", "elasticsearch").and_return(plugin) + expect(plugin).to receive(:path).and_return("logstash/input/elasticsearch").twice + expect(plugin).to receive(:installed?).and_return(true) + expect { registry.lookup("input", "elasticsearch") }.to raise_error(LoadError) + end + + it "should load from registry is already load" do + registry.lookup("input", "stdin") + expect(registry).to receive(:registered?).and_return(true).once + registry.lookup("input", "stdin") + internal_registry = registry.instance_variable_get("@registry") + expect(internal_registry).to include("logstash/inputs/stdin" => LogStash::Inputs::Stdin) + end + end + + context "when loading code defined plugins" do + it "should return the expected class" do + klass = registry.lookup("input", "dummy") + expect(klass).to eq(LogStash::Inputs::Dummy) + end + end + + context "when plugin is not installed and not defined" do + it "should raise an error" do + expect { registry.lookup("input", "elasticsearch") }.to raise_error(LoadError) + end + end + +end + From 99461fceff7f972b9395b2d6b23ce179c2a7811f Mon Sep 17 00:00:00 2001 From: skokhanovskiy Date: Tue, 12 Apr 2016 10:46:13 +0500 Subject: [PATCH 034/632] add reload support to the init script Fixes #5088 --- pkg/logstash.sysv | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/logstash.sysv b/pkg/logstash.sysv index c615ff8951a..a0c6315acb9 100755 --- a/pkg/logstash.sysv +++ b/pkg/logstash.sysv @@ -127,6 +127,12 @@ status() { fi } +reload() { + if status ; then + kill -HUP `cat "$pidfile"` + fi +} + force_stop() { if status ; then stop @@ -175,6 +181,7 @@ case "$1" in fi exit $code ;; + reload) reload ;; restart) quiet configtest @@ -190,7 +197,7 @@ case "$1" in exit $? ;; *) - echo "Usage: $SCRIPTNAME {start|stop|force-stop|status|restart|configtest}" >&2 + echo "Usage: $SCRIPTNAME {start|stop|force-stop|status|reload|restart|configtest}" >&2 exit 3 ;; esac From 78e25f9e02a9f4e69ac48b7cc4da9f66eceb6397 Mon Sep 17 00:00:00 2001 From: Tony Laidig Date: Wed, 13 Apr 2016 12:43:59 -0400 Subject: [PATCH 035/632] change of I18n varname, possible fix for #5108 Fixes #5111 --- logstash-core/lib/logstash/config/mixin.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 75e774e8bf7..0a460767575 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -86,7 +86,7 @@ def config_init(params) extra = opts[:obsolete].is_a?(String) ? opts[:obsolete] : "" extra.gsub!("%PLUGIN%", self.class.config_name) raise LogStash::ConfigurationError, - I18n.t("logstash.agent.configuration.obsolete", :name => name, + I18n.t("logstash.runner.configuration.obsolete", :name => name, :plugin => self.class.config_name, :extra => extra) end end From 263232a5e4b54c5fb286845bdc630ff494c9eb0a Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 13 Apr 2016 15:46:18 +0200 Subject: [PATCH 036/632] not use elasticsearch input in test as this is present in branches that already had one release Fixes #5107 --- logstash-core/spec/logstash/plugins/registry_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/logstash-core/spec/logstash/plugins/registry_spec.rb b/logstash-core/spec/logstash/plugins/registry_spec.rb index 01a72864d45..f109f68653a 100644 --- a/logstash-core/spec/logstash/plugins/registry_spec.rb +++ b/logstash-core/spec/logstash/plugins/registry_spec.rb @@ -25,10 +25,10 @@ def register; end end it "should raise an error if can not find the plugin class" do - expect(LogStash::Registry::Plugin).to receive(:new).with("input", "elasticsearch").and_return(plugin) - expect(plugin).to receive(:path).and_return("logstash/input/elasticsearch").twice + expect(LogStash::Registry::Plugin).to receive(:new).with("input", "elastic").and_return(plugin) + expect(plugin).to receive(:path).and_return("logstash/input/elastic").twice expect(plugin).to receive(:installed?).and_return(true) - expect { registry.lookup("input", "elasticsearch") }.to raise_error(LoadError) + expect { registry.lookup("input", "elastic") }.to raise_error(LoadError) end it "should load from registry is already load" do @@ -49,7 +49,7 @@ def register; end context "when plugin is not installed and not defined" do it "should raise an error" do - expect { registry.lookup("input", "elasticsearch") }.to raise_error(LoadError) + expect { registry.lookup("input", "elastic") }.to raise_error(LoadError) end end From 45827063313fca5c69e27ba668c52ebcec6081ca Mon Sep 17 00:00:00 2001 From: CSJ Date: Mon, 11 Apr 2016 17:29:39 +0800 Subject: [PATCH 037/632] remove unnecessary argument MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fixed “ERROR: too many arguments” when start log stash daemon Fixes #5083 --- pkg/logstash.sysv | 2 +- pkg/logstash.sysv.debian | 2 +- pkg/logstash.sysv.redhat | 2 +- pkg/logstash.upstart.ubuntu | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/logstash.sysv b/pkg/logstash.sysv index a0c6315acb9..16ef5661278 100755 --- a/pkg/logstash.sysv +++ b/pkg/logstash.sysv @@ -42,7 +42,7 @@ LS_OPTS="" [ -r /etc/sysconfig/$name ] && . /etc/sysconfig/$name program=/opt/logstash/bin/logstash -args="agent -f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}" +args="-f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}" quiet() { "$@" > /dev/null 2>&1 diff --git a/pkg/logstash.sysv.debian b/pkg/logstash.sysv.debian index f83c468d81a..ee23acd2c3e 100644 --- a/pkg/logstash.sysv.debian +++ b/pkg/logstash.sysv.debian @@ -54,7 +54,7 @@ fi # Define other required variables PID_FILE=${LS_PIDFILE} DAEMON=/opt/logstash/bin/logstash -DAEMON_OPTS="agent -f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}" +DAEMON_OPTS="-f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}" # Check DAEMON exists if ! test -e $DAEMON; then diff --git a/pkg/logstash.sysv.redhat b/pkg/logstash.sysv.redhat index 07f606e8d41..3f312578253 100755 --- a/pkg/logstash.sysv.redhat +++ b/pkg/logstash.sysv.redhat @@ -53,7 +53,7 @@ fi PID_FILE=${LS_PIDFILE} DAEMON="/opt/logstash/bin/logstash" -DAEMON_OPTS="agent -f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}" +DAEMON_OPTS="-f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}" # # Function that starts the daemon/service diff --git a/pkg/logstash.upstart.ubuntu b/pkg/logstash.upstart.ubuntu index 482c53d7bf3..f253840ec19 100644 --- a/pkg/logstash.upstart.ubuntu +++ b/pkg/logstash.upstart.ubuntu @@ -44,5 +44,5 @@ script export PATH HOME LS_HEAP_SIZE LS_JAVA_OPTS LS_USE_GC_LOGGING LS_GC_LOG_FILE test -n "${JAVACMD}" && export JAVACMD - exec nice -n ${LS_NICE} /opt/logstash/bin/logstash agent -f "${LS_CONF_DIR}" -l "${LS_LOG_FILE}" ${LS_OPTS} + exec nice -n ${LS_NICE} /opt/logstash/bin/logstash -f "${LS_CONF_DIR}" -l "${LS_LOG_FILE}" ${LS_OPTS} end script From ad4028491321808df54033913de2676434457c77 Mon Sep 17 00:00:00 2001 From: CSJ Date: Tue, 12 Apr 2016 16:01:09 +0800 Subject: [PATCH 038/632] remove "agent" words MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit since “agent” is not valid argument now, remove them to be consistent. Fixes #5083 --- pkg/logstash.default | 2 +- pkg/logstash.upstart.ubuntu | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/logstash.default b/pkg/logstash.default index c3415146761..6203bc72fb4 100644 --- a/pkg/logstash.default +++ b/pkg/logstash.default @@ -8,7 +8,7 @@ # Set a home directory #LS_HOME=/var/lib/logstash -# Arguments to pass to logstash agent +# Arguments to pass to logstash #LS_OPTS="" # Arguments to pass to java diff --git a/pkg/logstash.upstart.ubuntu b/pkg/logstash.upstart.ubuntu index f253840ec19..a734901fa59 100644 --- a/pkg/logstash.upstart.ubuntu +++ b/pkg/logstash.upstart.ubuntu @@ -1,7 +1,7 @@ -# logstash - agent instance +# logstash instance # -description "logstash agent" +description "logstash" start on virtual-filesystems stop on runlevel [06] From e66621da7ab291db8649d400f4790fd08b1d0549 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 15 Apr 2016 11:29:02 -0700 Subject: [PATCH 039/632] Add GitHub templates for issues and PR Fixes #5123 --- CONTRIBUTING.md => .github/CONTRIBUTING.md | 0 .github/ISSUE_TEMPLATE.md | 11 +++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 1 + 3 files changed, 12 insertions(+) rename CONTRIBUTING.md => .github/CONTRIBUTING.md (100%) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/CONTRIBUTING.md b/.github/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to .github/CONTRIBUTING.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000000..9d85c7cfddb --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,11 @@ +Please post all product and debugging questions on our [forum](https://discuss.elastic.co/c/logstash). Your questions will reach our wider community members there, and if we confirm that there is a bug, then we can open a new issue here. + +Logstash Plugins are located in a different organization: https://github.com/logstash-plugins. For bugs on specific Logstash plugins, for example, if Redis Output has a defect, please open it in the respective Redis Output repository. + +For all general issues, please provide the following details for fast resolution: + +- Version: +- Operating System: +- Config File (if you have sensitive info, please remove it): +- Sample Data: +- Steps to Reproduce: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000000..a1538275aec --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1 @@ +Thanks for contributing to Logstash! If you haven't already signed our CLA, here's a handy link: https://www.elastic.co/contributor-agreement/ From b85845706c97a8c75d059946f2f734d324815ec3 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 15 Apr 2016 15:25:30 -0400 Subject: [PATCH 040/632] Normalize the name of the generated artifacts This PR introduce a unified naming scheme for all our artifacts and will produce the following files: logstash-5.0.0-alpha1_all.deb logstash-5.0.0-alpha1.tar.gz logstash-5.0.0-alpha1.zip logstash-5.0.0-alpha1.noarch.rpm Fix #5100 Fixes #5125 --- rakelib/artifacts.rake | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index a31b1266f93..a9a22ed3032 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -226,6 +226,9 @@ namespace "artifact" do case platform when "redhat", "centos" + # produce: logstash-5.0.0-alpha1.noarch.rpm + package_filename = "logstash-#{LOGSTASH_VERSION}.ARCH.TYPE" + File.join(basedir, "pkg", "logrotate.conf").tap do |path| dir.input("#{path}=/etc/logrotate.d/logstash") end @@ -245,6 +248,9 @@ namespace "artifact" do out.config_files << "etc/logrotate.d/logstash" out.config_files << "/etc/init.d/logstash" when "debian", "ubuntu" + # produce: logstash-5.0.0-alpha1_all.deb" + package_filename = "logstash-#{LOGSTASH_VERSION}_ARCH.TYPE" + File.join(basedir, "pkg", "logstash.default").tap do |path| dir.input("#{path}=/etc/default/logstash") end @@ -309,7 +315,7 @@ namespace "artifact" do out.attributes[:force?] = true # overwrite the rpm/deb/etc being created begin - path = File.join(basedir, "build", out.to_s) + path = File.join(basedir, "build", out.to_s(package_filename)) x = out.output(path) puts "Completed: #{path}" ensure From 7cd1f89e9a2849718102c6186339643471ae1aed Mon Sep 17 00:00:00 2001 From: Philippe Weber Date: Tue, 12 Apr 2016 21:57:08 +0200 Subject: [PATCH 041/632] describe CHANGELOG.md expected format Fixes #5103 --- docs/static/maintainer-guide.asciidoc | 38 ++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/docs/static/maintainer-guide.asciidoc b/docs/static/maintainer-guide.asciidoc index 5c8253ca8e3..404b698bcc4 100644 --- a/docs/static/maintainer-guide.asciidoc +++ b/docs/static/maintainer-guide.asciidoc @@ -88,10 +88,40 @@ should kept to the minimum. Every plugin should have a changelog (CHANGELOG.md). If not, please create one. When changes are made to a plugin, make sure to include a changelog entry under the respective version to document the change. The changelog should be easily understood from a user point of view. As we iterate and release plugins rapidly, users use the changelog as a mechanism for deciding whether to update. -Changes that are not user facing should be tagged as “Internal: ”. For example: - -* "Internal: Refactored specs for better testing" -* "Default timeout configuration changed from 10s to 5s" +Changes that are not user facing should be tagged as `internal:`. For example: + +[source,markdown] + - internal: Refactored specs for better testing + - config: Default timeout configuration changed from 10s to 5s + +===== Detailed format of CHANGELOG.md + +Sharing a similar format of CHANGELOG.md in plugins ease readability for users. +Please see following annotated example and see a concrete example in https://raw.githubusercontent.com/logstash-plugins/logstash-filter-date/master/CHANGELOG.md[logstash-filter-date]. + +[source,markdown] +---- +## 1.0.x // <1> <2> + - change description // <3> + - tag: change description // <3> <4> + - tag1,tag2: change description // <3> <5> + - tag: Multi-line description // <3> <6> + must be indented and can use + additional markdown syntax + // <7> +## 1.0.0 // <8> +[...] + +---- +<1> Latest version is the first line of CHANGELOG.md +<2> Each version identifier should be a level-1 section title using `##` +<3> One change description is described as a list item using a dash `-` aligned under the version identifier +<4> One change can be tagged by a word and suffixed by `:`. + + Common tags are `bugfix`, `feature`, `doc`, `test` or `internal`. +<5> One change can have multiple tags separated by a comma and suffixed by `:` +<6> A multi-line change description must be properly indented +<7> Please take care to *separate versions with an empty line* +<8> Previous version identifier ==== Continuous Integration From 4a5216b34c7736a0b45af55803b65cf17a1e4250 Mon Sep 17 00:00:00 2001 From: Philippe Weber Date: Wed, 13 Apr 2016 15:17:45 +0200 Subject: [PATCH 042/632] correct explanation about header level Fixes #5103 --- docs/static/maintainer-guide.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/maintainer-guide.asciidoc b/docs/static/maintainer-guide.asciidoc index 404b698bcc4..e95806bcf98 100644 --- a/docs/static/maintainer-guide.asciidoc +++ b/docs/static/maintainer-guide.asciidoc @@ -114,7 +114,7 @@ Please see following annotated example and see a concrete example in https://raw ---- <1> Latest version is the first line of CHANGELOG.md -<2> Each version identifier should be a level-1 section title using `##` +<2> Each version identifier should be a level-2 header using `##` <3> One change description is described as a list item using a dash `-` aligned under the version identifier <4> One change can be tagged by a word and suffixed by `:`. + Common tags are `bugfix`, `feature`, `doc`, `test` or `internal`. From fb62bc991c8189ea9cec57df54bfd65464124a06 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 17 Mar 2016 16:00:37 -0400 Subject: [PATCH 043/632] Clear the collector when logstash reload configuration When logstash reload a configuration the collector should remove all the collected metrics from the store since it wont make any sense with a new configuration. You should have the same behavior as when you restart logstash. Fixes #4801 --- logstash-core/lib/logstash/agent.rb | 10 +++ logstash-core/spec/logstash/agent_spec.rb | 65 +++++++++++++++++++- logstash-core/spec/logstash/pipeline_spec.rb | 25 +------- logstash-core/spec/support/mocks_classes.rb | 26 ++++++++ 4 files changed, 100 insertions(+), 26 deletions(-) create mode 100644 logstash-core/spec/support/mocks_classes.rb diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 1afd8c775ce..d8212acf618 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -211,6 +211,12 @@ def start_pipeline(id) return unless pipeline.is_a?(LogStash::Pipeline) return if pipeline.ready? @logger.info("starting pipeline", :id => id) + + # Reset the current collected stats, + # starting a pipeline with a new configuration should be the same as restarting + # logstash. + reset_collector + Thread.new do LogStash::Util.set_thread_name("pipeline.#{id}") begin @@ -252,4 +258,8 @@ def upgrade_pipeline(pipeline_id, new_pipeline) def clean_state? @pipelines.empty? end + + def reset_collector + LogStash::Instrument::Collector.instance.clear + end end # class LogStash::Agent diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 15d290bf2aa..5d6a0a90dba 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -1,6 +1,8 @@ # encoding: utf-8 -require 'spec_helper' -require 'stud/temporary' +require "spec_helper" +require "stud/temporary" +require "logstash/inputs/generator" +require_relative "../support/mocks_classes" describe LogStash::Agent do @@ -313,4 +315,63 @@ expect(subject.uptime).to be >= 0 end end + + context "metrics after config reloading" do + let(:dummy_output) { DummyOutput.new } + let(:config) { "input { generator { } } output { dummyoutput { } }" } + let(:new_config_generator_counter) { 50 } + let(:new_config) { "input { generator { count => #{new_config_generator_counter} } } output { dummyoutput {} }" } + let(:config_path) do + f = Stud::Temporary.file + f.write(config) + f.close + f.path + end + let(:interval) { 0.2 } + let(:pipeline_settings) { { :pipeline_workers => 4, + :config_path => config_path } } + + let(:agent_args) do + super.merge({ :auto_reload => true, + :reload_interval => interval, + :collect_metric => true }) + end + + before :each do + allow(DummyOutput).to receive(:new).at_least(:once).with(anything).and_return(dummy_output) + allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) + allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(LogStash::Codecs::Plain) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + + @t = Thread.new do + subject.register_pipeline("main", pipeline_settings) + subject.execute + end + + sleep(2) + end + + after :each do + Stud.stop!(@t) + @t.join + end + + it "resets the metric collector" do + # We know that the store has more events that the next expect + sleep(0.01) while dummy_output.events.size < new_config_generator_counter + snapshot = LogStash::Instrument::Collector.instance.snapshot_metric + expect(snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value).to be > new_config_generator_counter + + # update the configuration and give some time to logstash to pick it up and do the work + IO.write(config_path, new_config) + + sleep(interval * 3) # Give time to reload the config + + # Since thre is multiple threads involved and with the configuration reload, + # It can take some time to the states be visible in the store + sleep(0.01) while dummy_output.events.size < new_config_generator_counter + snapshot = LogStash::Instrument::Collector.instance.snapshot_metric + expect(snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value).to eq(new_config_generator_counter) + end + end end diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index e8a782122f2..f7ef5c36221 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -2,6 +2,7 @@ require "spec_helper" require "logstash/inputs/generator" require "logstash/filters/multiline" +require_relative "../support/mocks_classes" class DummyInput < LogStash::Inputs::Base config_name "dummyinput" @@ -48,30 +49,6 @@ def close end end -class DummyOutput < LogStash::Outputs::Base - config_name "dummyoutput" - milestone 2 - - attr_reader :num_closes, :events - - def initialize(params={}) - super - @num_closes = 0 - @events = [] - end - - def register - end - - def receive(event) - @events << event - end - - def close - @num_closes = 1 - end -end - class DummyOutputMore < DummyOutput config_name "dummyoutputmore" end diff --git a/logstash-core/spec/support/mocks_classes.rb b/logstash-core/spec/support/mocks_classes.rb new file mode 100644 index 00000000000..c481e8be21e --- /dev/null +++ b/logstash-core/spec/support/mocks_classes.rb @@ -0,0 +1,26 @@ +# encoding: utf-8 +require "logstash/outputs/base" + +class DummyOutput < LogStash::Outputs::Base + config_name "dummyoutput" + milestone 2 + + attr_reader :num_closes, :events + + def initialize(params={}) + super + @num_closes = 0 + @events = [] + end + + def register + end + + def receive(event) + @events << event + end + + def close + @num_closes = 1 + end +end From 5de3ce40d1c2f12395ecee4685ca98fa7b206032 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Mon, 18 Apr 2016 15:44:11 -0400 Subject: [PATCH 044/632] upgrade to JRuby 1.7.25 and required jruby-openssl 0.9.16 to match JRuby --- logstash-core/logstash-core.gemspec | 2 +- rakelib/vendor.rake | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index e8a83519785..b88fac568a0 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -28,7 +28,7 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency "concurrent-ruby", "1.0.0" gem.add_runtime_dependency "sinatra", '~> 1.4', '>= 1.4.6' gem.add_runtime_dependency 'puma', '~> 2.16', '>= 2.16.0' - gem.add_runtime_dependency "jruby-openssl", "0.9.13" # Required to support TLSv1.2 + gem.add_runtime_dependency "jruby-openssl", "0.9.16" # >= 0.9.13 Required to support TLSv1.2 gem.add_runtime_dependency "chronic_duration", "0.10.6" gem.add_runtime_dependency "jruby-monitoring", '~> 0.3.1' diff --git a/rakelib/vendor.rake b/rakelib/vendor.rake index c304685e62c..b5cac5a353c 100644 --- a/rakelib/vendor.rake +++ b/rakelib/vendor.rake @@ -1,6 +1,6 @@ namespace "vendor" do VERSIONS = { - "jruby" => { "version" => "1.7.23", "sha1" => "2b5e796feeed2bcfab02f8bf2ff3d77ca318e310" }, + "jruby" => { "version" => "1.7.25", "sha1" => "cd15aef419f97cff274491e53fcfb8b88ec36785" }, } def vendor(*args) From a562e2fb17063685fd620e42086dd65cf7e17bd6 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 19 Apr 2016 17:59:34 -0700 Subject: [PATCH 045/632] Create installing logstash section in Logstash docs Fixes #5143 --- .../getting-started-with-logstash.asciidoc | 103 +++++++++++++++++- docs/static/repositories.asciidoc | 86 --------------- 2 files changed, 99 insertions(+), 90 deletions(-) delete mode 100644 docs/static/repositories.asciidoc diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index 2b2b244a0b7..ef34586580a 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -2,11 +2,18 @@ == Getting Started with Logstash This section guides you through the process of installing Logstash and verifying that everything is running properly. -Later sections deal with increasingly complex configurations to address selected use cases. +Later sections deal with increasingly complex configurations to address selected use cases. This section includes the +following topics: + +* <> +* <> +* <> +* <> +* <> + -[float] [[installing-logstash]] -=== Install Logstash +=== Installing Logstash NOTE: Logstash requires Java 7 or later. Use the http://www.oracle.com/technetwork/java/javase/downloads/index.html[official Oracle distribution] or an open-source @@ -26,12 +33,100 @@ Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) [float] [[installing-binary]] -==== Installing from a downloaded binary +=== Installing from a Downloaded Binary Download the https://www.elastic.co/downloads/logstash[Logstash installation file] that matches your host environment. Unpack the file. On supported Linux operating systems, you can <> to install Logstash. +[float] +[[package-repositories]] +=== Installing from Package Repositories + +We also have repositories available for APT and YUM based distributions. Note +that we only provide binary packages, but no source packages, as the packages +are created as part of the Logstash build. + +We have split the Logstash package repositories by version into separate urls +to avoid accidental upgrades across major or minor versions. For all 1.5.x +releases use 1.5 as version number, for 1.4.x use 1.4, etc. + +We use the PGP key +http://pgp.mit.edu/pks/lookup?op=vindex&search=0xD27D666CD88E42B4[D88E42B4], +Elastic's Signing Key, with fingerprint + + 4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4 + +to sign all our packages. It is available from http://pgp.mit.edu. + +[float] +==== APT + +Download and install the Public Signing Key: + +[source,sh] +-------------------------------------------------- +wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - +-------------------------------------------------- + +Add the repository definition to your `/etc/apt/sources.list` file: + +["source","sh",subs="attributes,callouts"] +-------------------------------------------------- +echo "deb http://packages.elastic.co/logstash/{branch}/debian stable main" | sudo tee -a /etc/apt/sources.list +-------------------------------------------------- + +[WARNING] +================================================== +Use the `echo` method described above to add the Logstash repository. Do not +use `add-apt-repository` as it will add a `deb-src` entry as well, but we do not +provide a source package. If you have added the `deb-src` entry, you will see an +error like the following: + + Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file) + +Just delete the `deb-src` entry from the `/etc/apt/sources.list` file and the +installation should work as expected. +================================================== + +Run `sudo apt-get update` and the repository is ready for use. You can install +it with: + +[source,sh] +-------------------------------------------------- +sudo apt-get update && sudo apt-get install logstash +-------------------------------------------------- + +[float] +==== YUM + +Download and install the public signing key: + +[source,sh] +-------------------------------------------------- +rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch +-------------------------------------------------- + +Add the following in your `/etc/yum.repos.d/` directory +in a file with a `.repo` suffix, for example `logstash.repo` + +["source","sh",subs="attributes,callouts"] +-------------------------------------------------- +[logstash-{branch}] +name=Logstash repository for {branch}.x packages +baseurl=http://packages.elastic.co/logstash/{branch}/centos +gpgcheck=1 +gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch +enabled=1 +-------------------------------------------------- + +And your repository is ready for use. You can install it with: + +[source,sh] +-------------------------------------------------- +yum install logstash +-------------------------------------------------- + [[first-event]] === Stashing Your First Event: Basic Logstash Example diff --git a/docs/static/repositories.asciidoc b/docs/static/repositories.asciidoc deleted file mode 100644 index 8a3abf61d97..00000000000 --- a/docs/static/repositories.asciidoc +++ /dev/null @@ -1,86 +0,0 @@ -[[package-repositories]] -== Package Repositories - -We also have repositories available for APT and YUM based distributions. Note -that we only provide binary packages, but no source packages, as the packages -are created as part of the Logstash build. - -We have split the Logstash package repositories by version into separate urls -to avoid accidental upgrades across major or minor versions. For all 1.5.x -releases use 1.5 as version number, for 1.4.x use 1.4, etc. - -We use the PGP key -http://pgp.mit.edu/pks/lookup?op=vindex&search=0xD27D666CD88E42B4[D88E42B4], -Elastic's Signing Key, with fingerprint - - 4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4 - -to sign all our packages. It is available from http://pgp.mit.edu. - -[float] -=== APT - -Download and install the Public Signing Key: - -[source,sh] --------------------------------------------------- -wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - --------------------------------------------------- - -Add the repository definition to your `/etc/apt/sources.list` file: - -["source","sh",subs="attributes,callouts"] --------------------------------------------------- -echo "deb http://packages.elastic.co/logstash/{branch}/debian stable main" | sudo tee -a /etc/apt/sources.list --------------------------------------------------- - -[WARNING] -================================================== -Use the `echo` method described above to add the Logstash repository. Do not -use `add-apt-repository` as it will add a `deb-src` entry as well, but we do not -provide a source package. If you have added the `deb-src` entry, you will see an -error like the following: - - Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file) - -Just delete the `deb-src` entry from the `/etc/apt/sources.list` file and the -installation should work as expected. -================================================== - -Run `sudo apt-get update` and the repository is ready for use. You can install -it with: - -[source,sh] --------------------------------------------------- -sudo apt-get update && sudo apt-get install logstash --------------------------------------------------- - -[float] -=== YUM - -Download and install the public signing key: - -[source,sh] --------------------------------------------------- -rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch --------------------------------------------------- - -Add the following in your `/etc/yum.repos.d/` directory -in a file with a `.repo` suffix, for example `logstash.repo` - -["source","sh",subs="attributes,callouts"] --------------------------------------------------- -[logstash-{branch}] -name=Logstash repository for {branch}.x packages -baseurl=http://packages.elastic.co/logstash/{branch}/centos -gpgcheck=1 -gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch -enabled=1 --------------------------------------------------- - -And your repository is ready for use. You can install it with: - -[source,sh] --------------------------------------------------- -yum install logstash --------------------------------------------------- From e0a9625dcf7fc4ad41ef1815171962f721458d37 Mon Sep 17 00:00:00 2001 From: Matthias Bastian Date: Wed, 20 Apr 2016 13:34:23 +0200 Subject: [PATCH 046/632] fix callout numbering GitHub's rendering is quite ok, just a single callout number is wrong. On https://www.elastic.co/guide/en/logstash/current/advanced-pipeline.html the rendered numbering gets quite confusing. Fixes #5146 --- docs/static/advanced-pipeline.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index 7e541ce5eea..6e9d84c3ec2 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -399,7 +399,7 @@ filebeat: prospectors: - paths: - - "/path/to/sample-log" <2> + - "/path/to/sample-log" <1> fields: type: syslog output: @@ -410,10 +410,10 @@ output: certificate_key: /path/to/ssl-certificate.key certificate_authorities: /path/to/ssl-certificate.crt timeout: 15 +-------------------------------------------------------------------------------- <1> Path to the file or files that Filebeat processes. <2> Path to the SSL certificate for the Logstash instance. --------------------------------------------------------------------------------- Save this configuration file as `filebeat.yml`. From b22e885a9dd3e17cbe1b1457053e556bd8261d0d Mon Sep 17 00:00:00 2001 From: Morton Fox Date: Wed, 20 Apr 2016 00:39:46 -0400 Subject: [PATCH 047/632] CONTRIBUTING file has moved. Fixes #5145 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 92229c33dcb..a152aa1e515 100644 --- a/README.md +++ b/README.md @@ -172,4 +172,4 @@ see that here. It is more important to me that you are able to contribute. For more information about contributing, see the -[CONTRIBUTING](CONTRIBUTING.md) file. +[CONTRIBUTING](.github/CONTRIBUTING.md) file. From 36b3713c84894aad92f6e6d77677d92c88d6be60 Mon Sep 17 00:00:00 2001 From: Gildas Le Nadan <3ntr0p13+github@gmail.com> Date: Wed, 13 Apr 2016 17:59:05 +1000 Subject: [PATCH 048/632] Correct syntax in the conditional mutate example The example as an incorrect syntax. As per https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-remove_field it should be `remove_field` and not `remove` Fixes #5104 --- docs/static/configuration.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index db39ef604c3..9220146cbee 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -387,7 +387,7 @@ For example, the following conditional uses the mutate filter to remove the fiel ---------------------------------- filter { if [action] == "login" { - mutate { remove => "secret" } + mutate { remove_field => "secret" } } } ---------------------------------- From c4577275750f83d4f0c91d309ea23ee999486c1a Mon Sep 17 00:00:00 2001 From: vpranckaitis Date: Fri, 8 Apr 2016 13:18:50 +0300 Subject: [PATCH 049/632] Typo in word 'begins' Fixes #5068 --- docs/static/life-of-an-event.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/life-of-an-event.asciidoc b/docs/static/life-of-an-event.asciidoc index 3a5f72055c6..a4712ba46c4 100644 --- a/docs/static/life-of-an-event.asciidoc +++ b/docs/static/life-of-an-event.asciidoc @@ -124,7 +124,7 @@ The `--pipeline-workers` or `-w` parameter determines how many threads to run fo The `--pipeline-batch-size` or `-b` parameter defines the maximum number of events an individual worker thread collects before attempting to execute filters and outputs. Larger batch sizes are generally more efficient, but increase memory overhead. Some hardware configurations require you to increase JVM heap size by setting the `LS_HEAP_SIZE` variable to avoid performance degradation with this option. Values of this parameter in excess of the optimum range cause performance degradation due to frequent garbage collection or JVM crashes related to out-of-memory exceptions. Output plugins can process each batch as a logical unit. The Elasticsearch output, for example, issues https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html[bulk requests] for each batch received. Tuning the `-b` parameter adjusts the size of bulk requests sent to Elasticsearch. -The `--pipeline-batch-delay` option rarely needs to be tuned. This option adjusts the latency of the Logstash pipeline. Pipeline batch delay is the maximum amount of time in milliseconds that Logstash waits for new messages after receiving an event in the current pipeline worker thread. After this time elapses, Logstash beings to execute filters and outputs.The maximum time that Logstash waits between receiving an event and processing that event in a filter is the product of the `pipeline_batch_delay` and `pipeline_batch_size` settings. +The `--pipeline-batch-delay` option rarely needs to be tuned. This option adjusts the latency of the Logstash pipeline. Pipeline batch delay is the maximum amount of time in milliseconds that Logstash waits for new messages after receiving an event in the current pipeline worker thread. After this time elapses, Logstash begins to execute filters and outputs.The maximum time that Logstash waits between receiving an event and processing that event in a filter is the product of the `pipeline_batch_delay` and `pipeline_batch_size` settings. [float] ==== Notes on Pipeline Configuration and Performance From 4f9c7aeaa9643135d5693e6b740397039aa75845 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 20 Apr 2016 16:15:30 -0700 Subject: [PATCH 050/632] Fix tagging so that logstash version resolves in example Fixes #5150 --- docs/static/getting-started-with-logstash.asciidoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index ef34586580a..145aa19b377 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -132,9 +132,11 @@ yum install logstash To test your Logstash installation, run the most basic Logstash pipeline: -[source,shell] +["source","sh",subs="attributes"] +-------------------------------------------------- cd logstash-{logstash_version} bin/logstash -e 'input { stdin { } } output { stdout {} }' +-------------------------------------------------- The `-e` flag enables you to specify a configuration directly from the command line. Specifying configurations at the command line lets you quickly test configurations without having to edit a file between iterations. From 8809a632b47104b1e56d507aff10d895f472fa6d Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Wed, 20 Apr 2016 00:39:00 -0700 Subject: [PATCH 051/632] Force RPM OS to be set to linux. Fixes #5147 Fixes #5156 --- rakelib/artifacts.rake | 1 + 1 file changed, 1 insertion(+) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index a9a22ed3032..fa8908a015f 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -244,6 +244,7 @@ namespace "artifact" do out.attributes[:rpm_use_file_permissions] = true out.attributes[:rpm_user] = "root" out.attributes[:rpm_group] = "root" + out.attributes[:rpm_os] = "linux" out.config_files << "etc/sysconfig/logstash" out.config_files << "etc/logrotate.d/logstash" out.config_files << "/etc/init.d/logstash" From 4830399de0b362f4a82042acdce9f10fb838021a Mon Sep 17 00:00:00 2001 From: Stefan Scherer Date: Tue, 29 Mar 2016 15:46:20 +0200 Subject: [PATCH 052/632] Retrieve JAVA_HOME from windows symlink Signed-off-by: Stefan Scherer Fixes #4913 --- bin/setup.bat | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin/setup.bat b/bin/setup.bat index 40993179168..ee4d0df182e 100644 --- a/bin/setup.bat +++ b/bin/setup.bat @@ -15,6 +15,10 @@ goto finally :setup_jruby REM setup_java() +if not defined JAVA_HOME IF EXIST %ProgramData%\Oracle\java\javapath\java.exe ( + for /f "tokens=2 delims=[]" %%a in ('dir %ProgramData%\Oracle\java\javapath\java.exe') do @set JAVA_HOME=%%a +) +if defined JAVA_HOME set JAVA_HOME=%JAVA_HOME:\bin\java.exe=% if not defined JAVA_HOME goto missing_java_home REM ***** JAVA options ***** From 25386c488c3f6634a4a546555a4dc6e7f45fb391 Mon Sep 17 00:00:00 2001 From: Stefan Scherer Date: Tue, 19 Apr 2016 07:43:02 +0200 Subject: [PATCH 053/632] Show JAVA_HOME retrieved from symlink Signed-off-by: Stefan Scherer Fixes #4913 --- bin/setup.bat | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bin/setup.bat b/bin/setup.bat index ee4d0df182e..e34f404aaf7 100644 --- a/bin/setup.bat +++ b/bin/setup.bat @@ -15,10 +15,15 @@ goto finally :setup_jruby REM setup_java() +set JAVA_FROM_SYMLINK= if not defined JAVA_HOME IF EXIST %ProgramData%\Oracle\java\javapath\java.exe ( for /f "tokens=2 delims=[]" %%a in ('dir %ProgramData%\Oracle\java\javapath\java.exe') do @set JAVA_HOME=%%a + set JAVA_FROM_SYMLINK=1 ) if defined JAVA_HOME set JAVA_HOME=%JAVA_HOME:\bin\java.exe=% +if "%JAVA_FROM_SYMLINK%" == "1" ( + echo Using JAVA_HOME=%JAVA_HOME% retrieved from %ProgramData%\Oracle\java\javapath\java.exe +) if not defined JAVA_HOME goto missing_java_home REM ***** JAVA options ***** From a91bf9c40b53c29adcdc0e6fa5968cd58c6d7c9e Mon Sep 17 00:00:00 2001 From: Stefan Scherer Date: Wed, 20 Apr 2016 08:17:10 +0200 Subject: [PATCH 054/632] Use JAVA_EXE as variable for symlink Signed-off-by: Stefan Scherer Fixes #4913 --- bin/setup.bat | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/bin/setup.bat b/bin/setup.bat index e34f404aaf7..4109b38b5d0 100644 --- a/bin/setup.bat +++ b/bin/setup.bat @@ -15,13 +15,11 @@ goto finally :setup_jruby REM setup_java() -set JAVA_FROM_SYMLINK= if not defined JAVA_HOME IF EXIST %ProgramData%\Oracle\java\javapath\java.exe ( - for /f "tokens=2 delims=[]" %%a in ('dir %ProgramData%\Oracle\java\javapath\java.exe') do @set JAVA_HOME=%%a - set JAVA_FROM_SYMLINK=1 + for /f "tokens=2 delims=[]" %%a in ('dir %ProgramData%\Oracle\java\javapath\java.exe') do @set JAVA_EXE=%%a ) -if defined JAVA_HOME set JAVA_HOME=%JAVA_HOME:\bin\java.exe=% -if "%JAVA_FROM_SYMLINK%" == "1" ( +if defined JAVA_EXE set JAVA_HOME=%JAVA_EXE:\bin\java.exe=% +if defined JAVA_EXE ( echo Using JAVA_HOME=%JAVA_HOME% retrieved from %ProgramData%\Oracle\java\javapath\java.exe ) if not defined JAVA_HOME goto missing_java_home From 56aff2a4e7a11164c4bf52b5f5316ae2e7691485 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 21 Apr 2016 12:31:58 -0700 Subject: [PATCH 055/632] Make structural changes to the plugin maintainer guide Fixes #5167 --- docs/static/maintainer-guide.asciidoc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/static/maintainer-guide.asciidoc b/docs/static/maintainer-guide.asciidoc index e95806bcf98..7d3e0c9a029 100644 --- a/docs/static/maintainer-guide.asciidoc +++ b/docs/static/maintainer-guide.asciidoc @@ -1,15 +1,17 @@ [[community-maintainer]] -== Logstash Plugins Community Maintainer Guide +=== Logstash Plugins Community Maintainer Guide This document, to be read by new Maintainers, should explain their responsibilities. It was inspired by the http://rfc.zeromq.org/spec:22[C4] document from the ZeroMQ project. This document is subject to change and suggestions through Pull Requests and issues are strongly encouraged. +[float] === Contribution Guidelines For general guidance around contributing to Logstash Plugins, see the https://www.elastic.co/guide/en/logstash/current/contributing-to-logstash.html[_Contributing to Logstash_] section. +[float] === Document Goals To help make the Logstash plugins community participation easy with positive feedback. @@ -24,6 +26,7 @@ To support the natural life cycle of a plugin. To codify the roles and responsibilities of: Maintainers and Contributors with specific focus on patch testing, code review, merging and release. +[float] === Development Workflow All Issues and Pull Requests must be tracked using the Github issue tracker. @@ -32,6 +35,7 @@ The plugin uses the http://www.apache.org/licenses/LICENSE-2.0[Apache 2.0 licens patch introduces code which has an incompatible license. Patch ownership and copyright is defined in the Elastic https://www.elastic.co/contributor-agreement[Contributor License Agreement] (CLA). +[float] ==== Terminology A "Contributor" is a role a person assumes when providing a patch. Contributors will not have commit access to the @@ -41,6 +45,7 @@ before a patch can be reviewed. Contributors can add themselves to the plugin Co A "Maintainer" is a role a person assumes when maintaining a plugin and keeping it healthy, including triaging issues, and reviewing and merging patches. +[float] ==== Patch Requirements A patch is a minimal and accurate answer to exactly one identified and agreed upon problem. It must conform to the @@ -57,6 +62,7 @@ and any additional lines as necessary for change explanation and rationale. A patch is mergeable when it satisfies the above requirements and has been reviewed positively by at least one other person. +[float] ==== Development Process A user will log an issue on the issue tracker describing the problem they face or observe with as much detail as possible. @@ -79,11 +85,13 @@ Maintainers should involve the core team if help is needed to reach consensus. Review non-source changes such as documentation in the same way as source code changes. +[float] ==== Branch Management The plugin has a master branch that always holds the latest in-progress version and should always build. Topic branches should kept to the minimum. +[float] ==== Changelog Management Every plugin should have a changelog (CHANGELOG.md). If not, please create one. When changes are made to a plugin, make sure to include a changelog entry under the respective version to document the change. The changelog should be easily understood from a user point of view. As we iterate and release plugins rapidly, users use the changelog as a mechanism for deciding whether to update. @@ -94,6 +102,7 @@ Changes that are not user facing should be tagged as `internal:`. For example: - internal: Refactored specs for better testing - config: Default timeout configuration changed from 10s to 5s +[float] ===== Detailed format of CHANGELOG.md Sharing a similar format of CHANGELOG.md in plugins ease readability for users. @@ -123,12 +132,14 @@ Please see following annotated example and see a concrete example in https://raw <7> Please take care to *separate versions with an empty line* <8> Previous version identifier +[float] ==== Continuous Integration Plugins are setup with automated continuous integration (CI) environments and there should be a corresponding badge on each Github page. If it’s missing, please contact the Logstash core team. Every Pull Request opened automatically triggers a CI run. To conduct a manual run, comment “Jenkins, please test this.” on the Pull Request. +[float] === Versioning Plugins Logstash core and its plugins have separate product development lifecycles. Hence the versioning and release strategy for @@ -145,11 +156,13 @@ Plugin releases follows a three-placed numbering scheme X.Y.Z. where X denotes a compatibility with existing configuration or functionality. Y denotes releases which includes features which are backward compatible. Z denotes releases which includes bug fixes and patches. +[float] ==== Changing the version Version can be changed in the Gemspec, which needs to be associated with a changelog entry. Following this, we can publish the gem to RubyGem.org manually. At this point only the core developers can publish a gem. +[float] ==== Labeling Labeling is a critical aspect of maintaining plugins. All issues in GitHub should be labeled correctly so it can: @@ -169,6 +182,7 @@ details. * `needs tests`: Patch has no tests, and cannot be accepted without unit/integration tests * `docs`: Documentation related issue/PR +[float] === Logging Although it’s important not to bog down performance with excessive logging, debug level logs can be immensely helpful when @@ -178,6 +192,7 @@ as users will be forever gracious. [source,shell] @logger.debug("Logstash loves debug logs!", :actions => actions) +[float] === Contributor License Agreement (CLA) Guidance [qanda] @@ -191,10 +206,12 @@ Please make sure the CLA is signed by every Contributor prior to reviewing PRs a signs the CLA after a PR is submitted, they can refresh the automated CLA checker by pushing another comment on the PR after 5 minutes of signing. +[float] === Need Help? Ping @logstash-core on Github to get the attention of the Logstash core team. +[float] === Community Administration The core team is there to support the plugin Maintainers and overall ecosystem. From 708a269a620a106598144e8a9512cf24029407ee Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 21 Apr 2016 16:45:34 -0400 Subject: [PATCH 056/632] Fix non derterministic test when accessing the metric store This commit introduce a mutex around the structured hash for the metric, this hash is not updated frequently and its used mostly for the api to be able to do search on the collected metric. Adding a mutex make sure the changes are visible accross thread. Fixes #5152 Fixes #5178 --- .../lib/logstash/instrument/metric_store.rb | 22 ++++++++++++------- logstash-core/spec/logstash/agent_spec.rb | 12 +++++----- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/logstash-core/lib/logstash/instrument/metric_store.rb b/logstash-core/lib/logstash/instrument/metric_store.rb index 53ff0cd6668..664624296c7 100644 --- a/logstash-core/lib/logstash/instrument/metric_store.rb +++ b/logstash-core/lib/logstash/instrument/metric_store.rb @@ -2,6 +2,7 @@ require "concurrent" require "logstash/event" require "logstash/instrument/metric_type" +require "thread" module LogStash module Instrument # The Metric store the data structure that make sure the data is @@ -25,6 +26,12 @@ def initialize # This hash has only one dimension # and allow fast retrieval of the metrics @fast_lookup = Concurrent::Map.new + + # This Mutex block the critical section for the + # structured hash, it block the zone when we first insert a metric + # in the structured hash or when we query it for search or to make + # the result available in the API. + @structured_lookup_mutex = Mutex.new end # This method use the namespace and key to search the corresponding value of @@ -46,16 +53,13 @@ def fetch_or_store(namespaces, key, default_value = nil) # BUT. If the value is not present in the `@fast_lookup` the value will be inserted and # `#puf_if_absent` will return nil. With this returned value of nil we assume that we don't # have it in the `@metric_store` for structured search so we add it there too. - # - # The problem with only using the `@metric_store` directly all the time would require us - # to use the mutex around the structure since its a multi-level hash, without that it wont - # return a consistent value of the metric and this would slow down the code and would - # complixity the code. if found_value = @fast_lookup.put_if_absent([namespaces, key], provided_value) return found_value else - # If we cannot find the value this mean we need to save it in the store. - fetch_or_store_namespaces(namespaces).fetch_or_store(key, provided_value) + @structured_lookup_mutex.synchronize do + # If we cannot find the value this mean we need to save it in the store. + fetch_or_store_namespaces(namespaces).fetch_or_store(key, provided_value) + end return provided_value end end @@ -89,7 +93,9 @@ def get(*key_paths) key_paths.map(&:to_sym) new_hash = Hash.new - get_recursively(key_paths, @store, new_hash) + @structured_lookup_mutex.synchronize do + get_recursively(key_paths, @store, new_hash) + end new_hash end diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 5d6a0a90dba..763f2eaceeb 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -357,7 +357,7 @@ end it "resets the metric collector" do - # We know that the store has more events that the next expect + # We know that the store has more events coming in. sleep(0.01) while dummy_output.events.size < new_config_generator_counter snapshot = LogStash::Instrument::Collector.instance.snapshot_metric expect(snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value).to be > new_config_generator_counter @@ -367,11 +367,13 @@ sleep(interval * 3) # Give time to reload the config - # Since thre is multiple threads involved and with the configuration reload, - # It can take some time to the states be visible in the store + # Since there is multiple threads involved with the configuration reload, + # It can take some time to the stats be visible in the store but it will + # be eventually consistent. sleep(0.01) while dummy_output.events.size < new_config_generator_counter - snapshot = LogStash::Instrument::Collector.instance.snapshot_metric - expect(snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value).to eq(new_config_generator_counter) + + value = LogStash::Instrument::Collector.instance.snapshot_metric.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value + expect(value).to eq(new_config_generator_counter) end end end From e7c05f9c0f5061d85807887e10b477167e3fed58 Mon Sep 17 00:00:00 2001 From: "Cheyenne T. Greatorex" Date: Thu, 21 Apr 2016 16:00:42 -0400 Subject: [PATCH 057/632] Fixed force kill variable name, added a default setting for it, and added code to the stop function to handle inability to stop when not forcing Fixes #4991, #5168 --- pkg/logstash.default | 2 +- pkg/logstash.sysv | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/logstash.default b/pkg/logstash.default index 6203bc72fb4..a1874d0501c 100644 --- a/pkg/logstash.default +++ b/pkg/logstash.default @@ -38,4 +38,4 @@ # If this is set to 1, then when `stop` is called, if the process has # not exited within a reasonable time, SIGKILL will be sent next. # The default behavior is to simply log a message "program stop failed; still running" -KILL_ON_STOP_TIMEOUT=0 +#KILL_ON_STOP_TIMEOUT=0 diff --git a/pkg/logstash.sysv b/pkg/logstash.sysv index 16ef5661278..944d810c2e5 100755 --- a/pkg/logstash.sysv +++ b/pkg/logstash.sysv @@ -35,6 +35,7 @@ LS_LOG_FILE="${LS_LOG_DIR}/$name.log" LS_CONF_DIR=/etc/logstash/conf.d LS_OPEN_FILES=16384 LS_NICE=19 +KILL_ON_STOP_TIMEOUT=0 LS_OPTS="" @@ -96,12 +97,13 @@ stop() { sleep 1 done if status ; then - if [ $KILL_ON_STOP_TIMEOUT -eq 1 ] ; then + if [ "$KILL_ON_STOP_TIMEOUT" == 1 ] ; then echo "Timeout reached. Killing $name (pid $pid) with SIGKILL. This may result in data loss." kill -KILL $pid echo "$name killed with SIGKILL." else echo "$name stop failed; still running." + return 1 # stop timed out and not forced fi else echo "$name stopped." From d89fd802e21a12c8cb38f0f54a57c2deab5ec6e8 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Mon, 18 Apr 2016 15:05:14 -0400 Subject: [PATCH 058/632] Ruby and Java Event Accessors lut invalidation lut invalidation spec fix lut invalidation extra comment fix lut invalidation, invalid target path, with tests post review fixes --- .../src/main/java/com/logstash/Accessors.java | 37 +++++++++++++------ .../test/java/com/logstash/AccessorsTest.java | 24 ++++++++++++ .../lib/logstash/util/accessors.rb | 9 ++++- .../spec/logstash/event_spec.rb | 29 +++++++++++++++ 4 files changed, 86 insertions(+), 13 deletions(-) diff --git a/logstash-core-event-java/src/main/java/com/logstash/Accessors.java b/logstash-core-event-java/src/main/java/com/logstash/Accessors.java index 4c1e597ecdc..9a9506f934a 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Accessors.java +++ b/logstash-core-event-java/src/main/java/com/logstash/Accessors.java @@ -39,7 +39,7 @@ public Object del(String reference) { } return ((List) target).remove(i); } else { - throw new ClassCastException("expecting List or Map"); + throw newCollectionException(target); } } return null; @@ -67,7 +67,7 @@ private Object findTarget(FieldReference field) { target = this.data; for (String key : field.getPath()) { target = fetch(target, key); - if (target == null) { + if (! isCollection(target)) { return null; } } @@ -80,9 +80,13 @@ private Object findTarget(FieldReference field) { private Object findCreateTarget(FieldReference field) { Object target; - if ((target = this.lut.get(field.getReference())) != null) { - return target; - } + // flush the @lut to prevent stale cached fieldref which may point to an old target + // which was overwritten with a new value. for example, if "[a][b]" is cached and we + // set a new value for "[a]" then reading again "[a][b]" would point in a stale target. + // flushing the complete @lut is suboptimal, but a hierarchical lut would be required + // to be able to invalidate fieldrefs from a common root. + // see https://github.com/elastic/logstash/pull/5132 + this.lut.clear(); target = this.data; for (String key : field.getPath()) { @@ -95,10 +99,8 @@ private Object findCreateTarget(FieldReference field) { int i = Integer.parseInt(key); // TODO: what about index out of bound? ((List)target).set(i, result); - } else if (target == null) { - // do nothing - } else { - throw new ClassCastException("expecting List or Map"); + } else if (target != null) { + throw newCollectionException(target); } } target = result; @@ -133,8 +135,8 @@ private Object fetch(Object target, String key) { return result; } else if (target == null) { return null; - } { - throw new ClassCastException("expecting List or Map"); + } else { + throw newCollectionException(target); } } @@ -157,8 +159,19 @@ private Object store(Object target, String key, Object value) { ((List) target).set(i, value); } } else { - throw new ClassCastException("expecting List or Map"); + throw newCollectionException(target); } return value; } + + private boolean isCollection(Object target) { + if (target == null) { + return false; + } + return (target instanceof Map || target instanceof List); + } + + private ClassCastException newCollectionException(Object target) { + return new ClassCastException("expecting List or Map, found " + target.getClass()); + } } diff --git a/logstash-core-event-java/src/test/java/com/logstash/AccessorsTest.java b/logstash-core-event-java/src/test/java/com/logstash/AccessorsTest.java index 61855abc34b..4e7192c70b4 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/AccessorsTest.java +++ b/logstash-core-event-java/src/test/java/com/logstash/AccessorsTest.java @@ -182,4 +182,28 @@ public void testNilInclude() throws Exception { assertEquals(accessors.includes("nilfield"), true); } + + @Test + public void testInvalidPath() throws Exception { + Map data = new HashMap(); + Accessors accessors = new Accessors(data); + + assertEquals(accessors.set("[foo]", 1), 1); + assertEquals(accessors.get("[foo][bar]"), null); + } + + @Test + public void testStaleTargetCache() throws Exception { + Map data = new HashMap(); + + Accessors accessors = new Accessors(data); + + assertEquals(accessors.get("[foo][bar]"), null); + assertEquals(accessors.set("[foo][bar]", "baz"), "baz"); + assertEquals(accessors.get("[foo][bar]"), "baz"); + + assertEquals(accessors.set("[foo]", "boom"), "boom"); + assertEquals(accessors.get("[foo][bar]"), null); + assertEquals(accessors.get("[foo]"), "boom"); + } } diff --git a/logstash-core-event/lib/logstash/util/accessors.rb b/logstash-core-event/lib/logstash/util/accessors.rb index 01c16910855..23248f2c3ea 100644 --- a/logstash-core-event/lib/logstash/util/accessors.rb +++ b/logstash-core-event/lib/logstash/util/accessors.rb @@ -95,7 +95,14 @@ def lookup(field_reference) # @param field_reference [String] the field referece # @return [[Object, String]] the [target, key] tuple associated with this field reference def lookup_or_create(field_reference) - @lut[field_reference] ||= find_or_create_target(field_reference) + # flush the @lut to prevent stale cached fieldref which may point to an old target + # which was overwritten with a new value. for example, if "[a][b]" is cached and we + # set a new value for "[a]" then reading again "[a][b]" would point in a stale target. + # flushing the complete @lut is suboptimal, but a hierarchical lut would be required + # to be able to invalidate fieldrefs from a common root. + # see https://github.com/elastic/logstash/pull/5132 + @lut.clear + @lut[field_reference] = find_or_create_target(field_reference) end # find the target container object in store for this field reference diff --git a/logstash-core-event/spec/logstash/event_spec.rb b/logstash-core-event/spec/logstash/event_spec.rb index b0e4985bc07..0389ffc6d25 100644 --- a/logstash-core-event/spec/logstash/event_spec.rb +++ b/logstash-core-event/spec/logstash/event_spec.rb @@ -602,4 +602,33 @@ expect(event1.to_s).to eq("#{timestamp.to_iso8601} #{event1["host"]} #{event1["message"]}") end end + + describe "Event accessors" do + let(:event) { LogStash::Event.new({ "message" => "foo" }) } + + it "should invalidate target caching" do + expect(event["[a][0]"]).to be_nil + + expect(event["[a][0]"] = 42).to eq(42) + expect(event["[a][0]"]).to eq(42) + expect(event["[a]"]).to eq({"0" => 42}) + + expect(event["[a]"] = [42, 24]).to eq([42, 24]) + expect(event["[a]"]).to eq([42, 24]) + + expect(event["[a][0]"]).to eq(42) + + expect(event["[a]"] = [24, 42]).to eq([24, 42]) + expect(event["[a][0]"]).to eq(24) + + expect(event["[a][0]"] = {"a "=> 99, "b" => 98}).to eq({"a "=> 99, "b" => 98}) + expect(event["[a][0]"]).to eq({"a "=> 99, "b" => 98}) + + expect(event["[a]"]).to eq([{"a "=> 99, "b" => 98}, 42]) + expect(event["[a][0]"]).to eq({"a "=> 99, "b" => 98}) + expect(event["[a][1]"]).to eq(42) + expect(event["[a][0][b]"]).to eq(98) + end + end end + From 3643a1a0c515696219ab6f0a8b0aecae5d44c32f Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 25 Apr 2016 18:44:34 -0700 Subject: [PATCH 059/632] Indicate that Logstash cannot be installed into dir that contains colon characters Fixes #5190 --- docs/static/getting-started-with-logstash.asciidoc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index 145aa19b377..70bca663fd3 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -36,8 +36,9 @@ Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) === Installing from a Downloaded Binary Download the https://www.elastic.co/downloads/logstash[Logstash installation file] that matches your host environment. -Unpack the file. On supported Linux operating systems, you can <> to -install Logstash. +Unpack the file. Do not install Logstash into a directory path that contains colon (:) characters. + +On supported Linux operating systems, you can use a package manager to install Logstash. [float] [[package-repositories]] From 4942f38b2df6cc7b9337010a2a7aab555c6490a9 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 22 Apr 2016 10:58:47 +0100 Subject: [PATCH 060/632] make the plugin incompatibility tests less deterministic Fixes #5175 --- logstash-core/spec/logstash/agent_spec.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 763f2eaceeb..8e59723f5da 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -82,7 +82,7 @@ context "with a config that contains reload incompatible plugins" do let(:second_pipeline_config) { "input { stdin {} } filter { } output { }" } - it "does not reload if new config contains reload incompatible plugins" do + it "does not upgrade the new config" do t = Thread.new { subject.execute } sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? expect(subject).to_not receive(:upgrade_pipeline) @@ -97,10 +97,10 @@ context "with a config that does not contain reload incompatible plugins" do let(:second_pipeline_config) { "input { generator { } } filter { } output { }" } - it "does not reload if new config contains reload incompatible plugins" do + it "does upgrade the new config" do t = Thread.new { subject.execute } sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? - expect(subject).to receive(:upgrade_pipeline) + expect(subject).to receive(:upgrade_pipeline).once.and_call_original File.open(config_file, "w") { |f| f.puts second_pipeline_config } subject.send(:reload_state!) sleep 0.1 @@ -136,7 +136,7 @@ context "with a config that contains reload incompatible plugins" do let(:second_pipeline_config) { "input { stdin {} } filter { } output { }" } - it "does not reload if new config contains reload incompatible plugins" do + it "does not upgrade the new config" do t = Thread.new { subject.execute } sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? expect(subject).to_not receive(:upgrade_pipeline) @@ -150,10 +150,10 @@ context "with a config that does not contain reload incompatible plugins" do let(:second_pipeline_config) { "input { generator { } } filter { } output { }" } - it "does not reload if new config contains reload incompatible plugins" do + it "does upgrade the new config" do t = Thread.new { subject.execute } sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? - expect(subject).to receive(:upgrade_pipeline).at_least(2).times + expect(subject).to receive(:upgrade_pipeline).once.and_call_original File.open(config_file, "w") { |f| f.puts second_pipeline_config } sleep 0.1 Stud.stop!(t) From 869fcd24d4c1ebccab1d5a78a6501bc4a375f7f7 Mon Sep 17 00:00:00 2001 From: "Cheyenne T. Greatorex" Date: Tue, 26 Apr 2016 14:37:51 -0400 Subject: [PATCH 061/632] bug fix, changed == to = Fixes #5202 --- pkg/logstash.sysv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/logstash.sysv b/pkg/logstash.sysv index 944d810c2e5..80d13322bd6 100755 --- a/pkg/logstash.sysv +++ b/pkg/logstash.sysv @@ -97,7 +97,7 @@ stop() { sleep 1 done if status ; then - if [ "$KILL_ON_STOP_TIMEOUT" == 1 ] ; then + if [ "$KILL_ON_STOP_TIMEOUT" = 1 ] ; then echo "Timeout reached. Killing $name (pid $pid) with SIGKILL. This may result in data loss." kill -KILL $pid echo "$name killed with SIGKILL." From 04dfefcff1d50e27b131dd80f47b5a1637fb7bd4 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 26 Apr 2016 11:42:42 -0400 Subject: [PATCH 062/632] Set the HEAP Size to 1gig when running rake tasks Logstash uses by default in the shell script 1 gig of memory for the JVM. but when we use rake it uses the default settings of JRUBY and start a vm 500megs of memory. The recent changes in JRUBY and JRuby-OpenSSL have increased the base memory and make the installing of plugins with a OOM issues. This PR make sure the CI scripts and the rake jruby launch uses the default of 1gig. Fixes: #5179 Fixes #5198 --- ci/ci_integration.sh | 6 ++++++ ci/ci_setup.sh | 5 +++++ ci/ci_test.sh | 5 +++++ rakelib/z_rubycheck.rake | 2 +- 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ci/ci_integration.sh b/ci/ci_integration.sh index 139408fefc9..0ec856107b0 100755 --- a/ci/ci_integration.sh +++ b/ci/ci_integration.sh @@ -1,3 +1,9 @@ #!/bin/sh + +# Since we are using the system jruby, we need to make sure our jvm process +# uses at least 1g of memory, If we don't do this we can get OOM issues when +# installing gems. See https://github.com/elastic/logstash/issues/5179 +export JRUBY_OPTS="-J-Xmx1g" + rake test:install-default rake test:integration diff --git a/ci/ci_setup.sh b/ci/ci_setup.sh index fea695cb2c5..30795f47c5f 100755 --- a/ci/ci_setup.sh +++ b/ci/ci_setup.sh @@ -13,6 +13,11 @@ rm -rf vendor # make sure there are no vendorized dependencies rm -rf .bundle rm -rf spec/reports # no stale spec reports from previous executions +# Since we are using the system jruby, we need to make sure our jvm process +# uses at least 1g of memory, If we don't do this we can get OOM issues when +# installing gems. See https://github.com/elastic/logstash/issues/5179 +export JRUBY_OPTS="-J-Xmx1g" + # Setup the environment rake bootstrap # Bootstrap your logstash instance diff --git a/ci/ci_test.sh b/ci/ci_test.sh index c0eadda6424..c9b7e9d9736 100755 --- a/ci/ci_test.sh +++ b/ci/ci_test.sh @@ -5,6 +5,11 @@ # running the test suites here. ## +# Since we are using the system jruby, we need to make sure our jvm process +# uses at least 1g of memory, If we don't do this we can get OOM issues when +# installing gems. See https://github.com/elastic/logstash/issues/5179 +export JRUBY_OPTS="-J-Xmx1g" + SELECTED_TEST_SUITE=$1 if [[ $SELECTED_TEST_SUITE == $"core-fail-fast" ]]; then diff --git a/rakelib/z_rubycheck.rake b/rakelib/z_rubycheck.rake index ed22ed016c7..80d7c1393d0 100644 --- a/rakelib/z_rubycheck.rake +++ b/rakelib/z_rubycheck.rake @@ -32,7 +32,7 @@ if ENV['USE_RUBY'] != '1' # if required at this point system gems can be installed using the system_gem task, for example: # Rake::Task["vendor:system_gem"].invoke(jruby, "ffi", "1.9.6") - exec(jruby, "-S", rake, *ARGV) + exec(jruby, "-J-Xmx1024m", "-S", rake, *ARGV) end end From cb18b765966a46ebc81c397f09ea0d1a2f0c1a0c Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 26 Apr 2016 14:58:39 -0400 Subject: [PATCH 063/632] 1g Fixes #5198 --- rakelib/z_rubycheck.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rakelib/z_rubycheck.rake b/rakelib/z_rubycheck.rake index 80d7c1393d0..bf077b8700b 100644 --- a/rakelib/z_rubycheck.rake +++ b/rakelib/z_rubycheck.rake @@ -32,7 +32,7 @@ if ENV['USE_RUBY'] != '1' # if required at this point system gems can be installed using the system_gem task, for example: # Rake::Task["vendor:system_gem"].invoke(jruby, "ffi", "1.9.6") - exec(jruby, "-J-Xmx1024m", "-S", rake, *ARGV) + exec(jruby, "-J-Xmx1g", "-S", rake, *ARGV) end end From ce2e1755e81ac0c84ce52a73e68faed4825561c7 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 26 Apr 2016 12:28:36 -0400 Subject: [PATCH 064/632] Enable DEBUG=1 when using bundler related task When running any logstash's command you can use DEBUG=1 which should give the user a bit more information about what LS is doing. This PR changes the behavior of bundler to make sure its run with the `--verbose` flag. Fixes #5199 --- lib/bootstrap/bundler.rb | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/lib/bootstrap/bundler.rb b/lib/bootstrap/bundler.rb index 2948fe8aa29..1a7bb057219 100644 --- a/lib/bootstrap/bundler.rb +++ b/lib/bootstrap/bundler.rb @@ -104,13 +104,22 @@ def invoke!(options = {}) ::Bundler.settings[:gemfile] = LogStash::Environment::GEMFILE_PATH ::Bundler.settings[:without] = options[:without].join(":") + if !debug? + # Will deal with transient network errors + execute_bundler_with_retry(options) + else + options[:verbose] = true + execute_bundler(options) + end + end + + def execute_bundler_with_retry(options) try = 0 # capture_stdout also traps any raised exception and pass them back as the function return [output, exception] output, exception = capture_stdout do loop do begin - ::Bundler.reset! - ::Bundler::CLI.start(bundler_arguments(options)) + execute_bundler(options) break rescue ::Bundler::VersionConflict => e $stderr.puts("Plugin version conflict, aborting") @@ -132,12 +141,20 @@ def invoke!(options = {}) end end end - raise exception if exception return output end + def execute_bundler(options) + ::Bundler.reset! + ::Bundler::CLI.start(bundler_arguments(options)) + end + + def debug? + ENV["DEBUG"] + end + # build Bundler::CLI.start arguments array from the given options hash # @param option [Hash] the invoke! options hash # @return [Array] Bundler::CLI.start string arguments array @@ -162,6 +179,8 @@ def bundler_arguments(options = {}) arguments << "--all" if options[:all] end + arguments << "--verbose" if options[:verbose] + arguments.flatten end From b77b02160783d1f0810950879c1e43bc4b3e8c01 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 21 Apr 2016 17:45:41 +0100 Subject: [PATCH 065/632] add static analysis rake task for i18n usage Fixes #5158 --- rakelib/static.rake | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 rakelib/static.rake diff --git a/rakelib/static.rake b/rakelib/static.rake new file mode 100644 index 00000000000..52fbc6958a1 --- /dev/null +++ b/rakelib/static.rake @@ -0,0 +1,32 @@ +require 'rubygems' +require "bootstrap/environment" + +namespace "test" do + namespace "static" do + desc "run static analysis tests on i18n calls" + task "i18n" do + require 'i18n' + + locales_path = File.join(LogStash::Environment::LOGSTASH_HOME, "logstash-core", "locales", "en.yml") + I18n.enforce_available_locales = true + I18n.load_path << locales_path + I18n.reload! + + failed = [] + + glob_path = File.join(LogStash::Environment::LOGSTASH_HOME, "logstash-*", "**", "*.rb") + Dir.glob(glob_path).each do |file_name| + File.foreach(file_name) do |line| + match = line.match(/I18n.t\("(.+?)"/) + next unless match + failed << [file_name, match[1]] unless I18n.exists?(match[1]) + end + end + if failed.any? + message = ["Static Analysis revealed incorrect calls to I18t! See list below:"] + failed.each {|file_name, line_match| message << "* #{file_name}: #{line_match}" } + raise Exception.new(message.join("\n")) + end + end + end +end From dd024229125b60646349408981f12427766bd990 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 27 Apr 2016 15:12:39 +0100 Subject: [PATCH 066/632] converted static I18n test to rspec Fixes #5158 --- logstash-core/spec/static/i18n_spec.rb | 25 ++++++++++++++++++++ rakelib/static.rake | 32 -------------------------- 2 files changed, 25 insertions(+), 32 deletions(-) create mode 100644 logstash-core/spec/static/i18n_spec.rb delete mode 100644 rakelib/static.rake diff --git a/logstash-core/spec/static/i18n_spec.rb b/logstash-core/spec/static/i18n_spec.rb new file mode 100644 index 00000000000..b2cd76377d2 --- /dev/null +++ b/logstash-core/spec/static/i18n_spec.rb @@ -0,0 +1,25 @@ +# encoding: utf-8 +require "spec_helper" +require "i18n" + +I18N_T_REGEX = Regexp.new('I18n.t.+?"(.+?)"') + +describe I18n do + context "when using en.yml" do + glob_path = File.join(LogStash::Environment::LOGSTASH_HOME, "logstash-*", "lib", "**", "*.rb") + + Dir.glob(glob_path).each do |file_name| + + context "in file \"#{file_name}\"" do + File.foreach(file_name) do |line| + next unless (match = line.match(I18N_T_REGEX)) + line = $INPUT_LINE_NUMBER + key = match[1] + it "in line #{line} the \"#{key}\" key should exist" do + expect(I18n.exists?(key)).to be_truthy + end + end + end + end + end +end diff --git a/rakelib/static.rake b/rakelib/static.rake deleted file mode 100644 index 52fbc6958a1..00000000000 --- a/rakelib/static.rake +++ /dev/null @@ -1,32 +0,0 @@ -require 'rubygems' -require "bootstrap/environment" - -namespace "test" do - namespace "static" do - desc "run static analysis tests on i18n calls" - task "i18n" do - require 'i18n' - - locales_path = File.join(LogStash::Environment::LOGSTASH_HOME, "logstash-core", "locales", "en.yml") - I18n.enforce_available_locales = true - I18n.load_path << locales_path - I18n.reload! - - failed = [] - - glob_path = File.join(LogStash::Environment::LOGSTASH_HOME, "logstash-*", "**", "*.rb") - Dir.glob(glob_path).each do |file_name| - File.foreach(file_name) do |line| - match = line.match(/I18n.t\("(.+?)"/) - next unless match - failed << [file_name, match[1]] unless I18n.exists?(match[1]) - end - end - if failed.any? - message = ["Static Analysis revealed incorrect calls to I18t! See list below:"] - failed.each {|file_name, line_match| message << "* #{file_name}: #{line_match}" } - raise Exception.new(message.join("\n")) - end - end - end -end From d171b89b91bc45c82c9221996d741bbfbc23dd2c Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 26 Apr 2016 19:01:40 -0700 Subject: [PATCH 067/632] Clarify docs for conditionals Fixes #5209 --- docs/static/configuration.asciidoc | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index 9220146cbee..040ce21ac01 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -366,7 +366,7 @@ What's an expression? Comparison tests, boolean logic, and so on! You can use the following comparison operators: * equality: `==`, `!=`, `<`, `>`, `<=`, `>=` -* regexp: `=~`, `!~` +* regexp: `=~`, `!~` (checks a pattern on the right against a string value on the left) * inclusion: `in`, `not in` The supported boolean operators are: @@ -406,7 +406,7 @@ output { } ---------------------------------- -The `in` conditional enables you to compare against the value of a field: +You can use the `in` operator to test whether a field contains a specific string, key, or (for lists) element: [source,js] ---------------------------------- @@ -433,7 +433,7 @@ filter { ---------------------------------- You use the `not in` conditional the same way. For example, -you could use `not in` to only route events to elasticsearch +you could use `not in` to only route events to Elasticsearch when `grok` is successful: [source,js] @@ -445,13 +445,20 @@ output { } ---------------------------------- +You can check for the existence of a specific field, but there's currently no way to differentiate between a field that +doesn't exist versus a field that's simply false. The expression `if [foo]` returns `false` when: + +* `[foo]` doesn't exist in the event, +* `[foo]` exists in the event, but is false, or +* `[foo]` exists in the event, but is nil + For more complex examples, see <>. [float] [[metadata]] ==== The @metadata field -In Logstash 1.5 there is a new, special field, called `@metadata`. The contents +In Logstash 1.5 and later, there is a special field called `@metadata`. The contents of `@metadata` will not be part of any of your events at output time, which makes it great to use for conditionals, or extending and building event fields with field reference and sprintf formatting. @@ -929,7 +936,7 @@ This example labels all events using the `type` field, but doesn't actually pars Similarly, you can use conditionals to direct events to particular outputs. For example, you could: * alert nagios of any apache events with status 5xx -* record any 4xx status to elasticsearch +* record any 4xx status to Elasticsearch * record all status code hits via statsd To tell nagios about any http event that has a 5xx status code, you From 9f22e661cf0235bdaed59162b14dff36ce6c7836 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 27 Apr 2016 14:19:00 -0700 Subject: [PATCH 068/632] Update managing-multiline-events.asciidoc Fixes #5217 --- docs/static/managing-multiline-events.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/managing-multiline-events.asciidoc b/docs/static/managing-multiline-events.asciidoc index 7245b3c50c1..e9ee8bc12fa 100644 --- a/docs/static/managing-multiline-events.asciidoc +++ b/docs/static/managing-multiline-events.asciidoc @@ -1,7 +1,7 @@ [[multiline]] === Managing Multiline Events -Several use cases generate events that span multiple lines of text. In order to correctly handle these multline events, +Several use cases generate events that span multiple lines of text. In order to correctly handle these multiline events, Logstash needs to know how to tell which lines are part of a single event. Multiline event processing is complex and relies on proper event ordering. The best way to guarantee ordered log From ccefeaeb844de35f21c2614d005bf57d9f83ccb4 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Fri, 29 Apr 2016 10:47:34 -0400 Subject: [PATCH 069/632] add --preserve option to plugin install add missing overwrite method and preserve @gems_by_name when updating log options preservation discards no constrains constrains rewording --- lib/pluginmanager/gemfile.rb | 33 ++++++++++++++++++++++++++++++++- lib/pluginmanager/install.rb | 11 ++++++++++- rakelib/plugin.rake | 14 +++++++------- 3 files changed, 49 insertions(+), 9 deletions(-) diff --git a/lib/pluginmanager/gemfile.rb b/lib/pluginmanager/gemfile.rb index b1648187764..68bf88334f1 100644 --- a/lib/pluginmanager/gemfile.rb +++ b/lib/pluginmanager/gemfile.rb @@ -41,13 +41,20 @@ def add(name, *requirements) @gemset.add_gem(Gem.parse(name, *requirements)) end - # update existing or add new + # update existing or add new and merge passed options with current gem options if it exists # @param name [String] gem name # @param *requirements params following name use the same notation as the Gemfile gem DSL statement def update(name, *requirements) @gemset.update_gem(Gem.parse(name, *requirements)) end + # overwrite existing or add new + # @param name [String] gem name + # @param *requirements params following name use the same notation as the Gemfile gem DSL statement + def overwrite(name, *requirements) + @gemset.overwrite_gem(Gem.parse(name, *requirements)) + end + # @return [Gem] removed gem or nil if not found def remove(name) @gemset.remove_gem(name) @@ -99,6 +106,19 @@ def add_gem(_gem) # update existing or add new def update_gem(_gem) + if old = find_gem(_gem.name) + # always overwrite requirements if specified + old.requirements = _gem.requirements unless no_constrains?(_gem.requirements) + # but merge options + old.options = old.options.merge(_gem.options) + else + @gems << _gem + @gems_by_name[_gem.name.downcase] = _gem + end + end + + # update existing or add new + def overwrite_gem(_gem) if old = find_gem(_gem.name) @gems[@gems.index(old)] = _gem else @@ -119,8 +139,19 @@ def remove_gem(name) def copy Marshal.load(Marshal.dump(self)) end + private + def no_constrains?(requirements) + return true if requirements.nil? || requirements.empty? + + # check for the dummy ">= 0" version constrain or any variations thereof + # which is in fact a "no constrain" constrain which we should discard + return true if requirements.size == 1 && requirements.first.to_s.gsub(/\s+/, "") == ">=0" + + false + end + def sources_to_s return "" if @sources.empty? @sources.map{|source| "source #{source.inspect}"}.join("\n") diff --git a/lib/pluginmanager/install.rb b/lib/pluginmanager/install.rb index dae85e3dfc5..0e6383d725b 100644 --- a/lib/pluginmanager/install.rb +++ b/lib/pluginmanager/install.rb @@ -9,6 +9,7 @@ class LogStash::PluginManager::Install < LogStash::PluginManager::Command parameter "[PLUGIN] ...", "plugin name(s) or file", :attribute_name => :plugins_arg option "--version", "VERSION", "version of the plugin to install" option "--[no-]verify", :flag, "verify plugin validity before installation", :default => true + option "--preserve", :flag, "preserve current gem options", :default => false option "--development", :flag, "install all development dependencies of currently installed plugins", :default => false option "--local", :flag, "force local-only plugin installation. see bin/logstash-plugin package|unpack", :default => false @@ -90,7 +91,15 @@ def install_gems_list!(install_list) # Add plugins/gems to the current gemfile puts("Installing" + (install_list.empty? ? "..." : " " + install_list.collect(&:first).join(", "))) - install_list.each { |plugin, version, options| gemfile.update(plugin, version, options) } + install_list.each do |plugin, version, options| + if preserve? + plugin_gem = gemfile.find(plugin) + puts("Preserving Gemfile gem options for plugin #{plugin}") if plugin_gem && !plugin_gem.options.empty? + gemfile.update(plugin, version, options) + else + gemfile.overwrite(plugin, version, options) + end + end # Sync gemfiles changes to disk to make them available to the `bundler install`'s API gemfile.save diff --git a/rakelib/plugin.rake b/rakelib/plugin.rake index dc91d19bcc8..0bc1b708906 100644 --- a/rakelib/plugin.rake +++ b/rakelib/plugin.rake @@ -10,7 +10,7 @@ namespace "plugin" do task "install-development-dependencies" do puts("[plugin:install-development-dependencies] Installing development dependencies of all installed plugins") - install_plugins("--development") + install_plugins("--development", "--preserve") task.reenable # Allow this task to be run again end @@ -18,35 +18,35 @@ namespace "plugin" do task "install", :name do |task, args| name = args[:name] puts("[plugin:install] Installing plugin: #{name}") - install_plugins("--no-verify", name) + install_plugins("--no-verify", "--preserve", name) task.reenable # Allow this task to be run again end # task "install" task "install-default" do puts("[plugin:install-default] Installing default plugins") - install_plugins("--no-verify", *LogStash::RakeLib::DEFAULT_PLUGINS) + install_plugins("--no-verify", "--preserve", *LogStash::RakeLib::DEFAULT_PLUGINS) task.reenable # Allow this task to be run again end task "install-core" do puts("[plugin:install-core] Installing core plugins") - install_plugins("--no-verify", *LogStash::RakeLib::CORE_SPECS_PLUGINS) + install_plugins("--no-verify", "--preserve", *LogStash::RakeLib::CORE_SPECS_PLUGINS) task.reenable # Allow this task to be run again end task "install-jar-dependencies" do puts("[plugin:install-jar-dependencies] Installing jar_dependencies plugins for testing") - install_plugins("--no-verify", *LogStash::RakeLib::TEST_JAR_DEPENDENCIES_PLUGINS) + install_plugins("--no-verify", "--preserve", *LogStash::RakeLib::TEST_JAR_DEPENDENCIES_PLUGINS) task.reenable # Allow this task to be run again end task "install-vendor" do puts("[plugin:install-jar-dependencies] Installing vendor plugins for testing") - install_plugins("--no-verify", *LogStash::RakeLib::TEST_VENDOR_PLUGINS) + install_plugins("--no-verify", "--preserve", *LogStash::RakeLib::TEST_VENDOR_PLUGINS) task.reenable # Allow this task to be run again end @@ -59,7 +59,7 @@ namespace "plugin" do # TODO Push this downstream to #install_plugins p.each do |plugin| begin - install_plugins("--no-verify", plugin) + install_plugins("--no-verify", "--preserve", plugin) rescue puts "Unable to install #{plugin}. Skipping" next From 64e10ac86d8426b664dcec886b481311e34638e1 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 2 May 2016 16:37:24 -0700 Subject: [PATCH 070/632] Update alpha note --- docs/static/monitoring-apis.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 97b2a57c3c4..a1e2efcfec0 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -26,7 +26,7 @@ to set `?format=yaml` which will cause the result to be returned in the [float] ==== Human-Readable Output -NOTE: For Alpha 1, the `human` option is supported for the <> +NOTE: For Logstash {logstash_version}, the `human` option is supported for the <> only. When you specify `human=true`, the results are returned in plain text instead of JSON format. The default is false. From bcf3faa6cdfdcf56e5181cf699068b67e3f79bda Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 3 May 2016 22:28:37 -0700 Subject: [PATCH 071/632] Make Java 8 minimum version for LS 5.0 Fixes #5242 Fixes #5243 --- logstash-core/lib/logstash/runner.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 30d2df61c78..5aa1e3d40c8 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -149,8 +149,12 @@ def execute return 1 end - # Print a warning to STDERR for bad java versions - LogStash::Util::JavaVersion.warn_on_bad_java_version + # Exit on bad java versions + java_version = LogStash::Util::JavaVersion.version + if LogStash::Util::JavaVersion.bad_java_version?(java_version) + $stderr.puts "Java version 1.8.0 or later is required. (You are running: #{java_version})" + return 1 + end LogStash::ShutdownWatcher.unsafe_shutdown = unsafe_shutdown? LogStash::ShutdownWatcher.logger = @logger From 4a3cbb48685a991726518ee243e50d961c3888be Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 4 May 2016 13:11:22 -0700 Subject: [PATCH 072/632] Remove unused java version check Fixes #5243 --- logstash-core/lib/logstash/util/java_version.rb | 11 +---------- logstash-core/spec/logstash/runner_spec.rb | 3 +-- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/logstash-core/lib/logstash/util/java_version.rb b/logstash-core/lib/logstash/util/java_version.rb index 71225b30a0a..cebc7927c92 100644 --- a/logstash-core/lib/logstash/util/java_version.rb +++ b/logstash-core/lib/logstash/util/java_version.rb @@ -5,16 +5,7 @@ module LogStash::Util::JavaVersion def self.logger @logger ||= Cabin::Channel.get(LogStash) end - - # Print a warning if we're on a bad version of java - def self.warn_on_bad_java_version - if self.bad_java_version?(self.version) - msg = "!!! Please upgrade your java version, the current version '#{self.version}' is not supported. We recommend a minimum version of Java 8" - STDERR.puts(msg) - logger.warn(msg) - end - end - + # Return the current java version string. Returns nil if this is a non-java platform (e.g. MRI). def self.version return nil unless LogStash::Environment.jruby? diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index 2f2cda29359..0e270aa45c0 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -45,8 +45,7 @@ def run(args); end let(:agent) { double("agent") } before(:each) do - allow(LogStash::Agent).to receive(:new).and_return(agent) - allow(LogStash::Util::JavaVersion).to receive(:warn_on_bad_java_version) + allow(LogStash::Agent).to receive(:new).and_return(agent) end it "should show help" do From b963959ce229960c72c1e10550e9496c838dacdc Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 2 May 2016 23:10:32 -0700 Subject: [PATCH 073/632] Add glossary to the Logstash doc Fixes #5237 --- docs/static/glossary.asciidoc | 79 +++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 docs/static/glossary.asciidoc diff --git a/docs/static/glossary.asciidoc b/docs/static/glossary.asciidoc new file mode 100644 index 00000000000..f65088dcaf8 --- /dev/null +++ b/docs/static/glossary.asciidoc @@ -0,0 +1,79 @@ +[[glossary]] +== Glossary of Terms + +[[glossary-metadata]]@metadata :: + A special field for storing content that you don't want to include in output <>. For example, the `@metadata` + field is useful for creating transient fields for use in <> statements. + +[[glossary-codec-plugin]]codec plugin:: + A Logstash <> that changes the data representation of an <>. Codecs are essentially stream filters that can operate as part of an input or output. Codecs enable you to separate the transport of messages from the serialization process. Popular codecs include json, msgpack, and plain (text). + +[[glossary-conditional]]conditional:: + A control flow that executes certain actions based on whether a statement (also called a condition) is true or false. Logstash supports `if`, `else if`, and `else` statements. You can use conditional statements to apply filters and send events to a specific output based on conditions that you specify. + +[[glossary-event]]event:: + A single unit of information, containing a timestamp plus additional data. An event arrives via an input, and is subsequently parsed, timestamped, and passed through the Logstash <>. + +[[glossary-field]]field:: + An <> property. For example, each event in an apache access log has properties, such as a status + code (200, 404), request path ("/", "index.html"), HTTP verb (GET, POST), client IP address, and so on. Logstash uses + the term "fields" to refer to these properties. + +[[glossary-field-reference]]field reference:: + A reference to an event <>. This reference may appear in an output block or filter block in the + Logstash config file. Field references are typically wrapped in square (`[]`) brackets, for example `[fieldname]`. If + you are referring to a top-level field, you can omit the `[]` and simply use the field name. To refer to a nested + field, you specify the full path to that field: `[top-level field][nested field]`. + +[[glossary-filter-plugin]]filter plugin:: + A Logstash <> that performs intermediary processing on an <>. Typically, filters act upon + event data after it has been ingested via inputs, by mutating, enriching, and/or modifying the data according to + configuration rules. Filters are often applied conditionally depending on the characteristics of the event. Popular + filter plugins include grok, mutate, drop, clone, and geoip. Filter stages are optional. + +[[glossary-gem]]gem:: + A self-contained package of code that's hosted on https://rubygems.org[RubyGems.org]. Logstash <> are packaged as + Ruby Gems. You can use the Logstash <> to manage Logstash gems. + +[[glossary-hot-thread]]hot thread:: + A Java thread that has high CPU usage and executes for a longer than normal period of time. + +[[glossary-input-plugin]]input plugin:: + A Logstash <> that reads <> data from a specific source. Input plugins are the first stage in the Logstash event processing <>. Popular input plugins include file, syslog, redis, and beats. + +[[glossary-indexer]]indexer:: + A Logstash instance that is tasked with interfacing with an Elasticsearch cluster in order to index <> data. + +[[glossary-message-broker]]message broker:: + Also referred to as a _message buffer_ or _message queue_, a message broker is external software (such as Redis, Kafka, or RabbitMQ) that stores messages from the Logstash shipper instance as an intermediate store, waiting to be processed by the Logstash indexer instance. + +[[glossary-output-plugin]]output plugin:: + A Logstash <> that writes <> data to a specific destination. Outputs are the final stage in + the event <>. Popular output plugins include elasticsearch, file, graphite, and + statsd. + +[[glossary-pipeline]]pipeline:: + A term used to describe the flow of <> through the Logstash workflow. A pipeline typically consists of a series of + input, filter, and output stages. <> stages get data from a source and generate events, + <> stages, which are optional, modify the event data, and + <> stages write the data to a destination. Inputs and outputs support <> that enable you to encode or decode the data as it enters or exits the pipeline without having to use + a separate filter. + +[[glossary-plugin]]plugin:: + A self-contained software package that implements one of the stages in the Logstash event processing + <>. The list of available plugins includes <>, + <>, <>, and + <>. The plugins are implemented as Ruby <> and hosted on + https://rubygems.org[RubyGems.org]. You define the stages of an event processing <> by configuring plugins. + +[[glossary-plugin-manager]]plugin manager:: + Accessed via the `bin/logstash-plugin` script, the plugin manager enables you to manage the lifecycle of + <> in your Logstash deployment. You can install, uninstall, and upgrade plugins by using the + plugin manager Command Line Interface (CLI). + +[[shipper]]shipper:: + An instance of Logstash that send events to another instance of Logstash, or some other application. + +[[worker]]worker:: + The filter thread model used by Logstash, where each worker receives an <> and applies all filters, in order, before emitting the event to the output queue. This allows scalability across CPUs because many filters are CPU intensive. + From 3d875c8f70052bc2207c7572204695301618bfd4 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 4 May 2016 14:34:44 -0400 Subject: [PATCH 074/632] Remove oldlogstashjson from the default plugin list This plugins was used to migrate from logstash json schema 0 to 1. Fixes #5245 --- rakelib/default_plugins.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/rakelib/default_plugins.rb b/rakelib/default_plugins.rb index 2001fa0d3e1..556a8ec96c8 100644 --- a/rakelib/default_plugins.rb +++ b/rakelib/default_plugins.rb @@ -19,7 +19,6 @@ module RakeLib logstash-codec-msgpack logstash-codec-multiline logstash-codec-netflow - logstash-codec-oldlogstashjson logstash-codec-plain logstash-codec-rubydebug logstash-filter-anonymize From a7afbadf30045b4657bd1485782010c4eceefd33 Mon Sep 17 00:00:00 2001 From: Alexander Reelsen Date: Fri, 6 May 2016 15:30:01 +0200 Subject: [PATCH 075/632] Docs: Move links to repos over to https Fixes #5252 --- docs/static/getting-started-with-logstash.asciidoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index 70bca663fd3..8f4e575b82e 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -53,12 +53,12 @@ to avoid accidental upgrades across major or minor versions. For all 1.5.x releases use 1.5 as version number, for 1.4.x use 1.4, etc. We use the PGP key -http://pgp.mit.edu/pks/lookup?op=vindex&search=0xD27D666CD88E42B4[D88E42B4], +https://pgp.mit.edu/pks/lookup?op=vindex&search=0xD27D666CD88E42B4[D88E42B4], Elastic's Signing Key, with fingerprint 4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4 -to sign all our packages. It is available from http://pgp.mit.edu. +to sign all our packages. It is available from https://pgp.mit.edu. [float] ==== APT @@ -74,7 +74,7 @@ Add the repository definition to your `/etc/apt/sources.list` file: ["source","sh",subs="attributes,callouts"] -------------------------------------------------- -echo "deb http://packages.elastic.co/logstash/{branch}/debian stable main" | sudo tee -a /etc/apt/sources.list +echo "deb https://packages.elastic.co/logstash/{branch}/debian stable main" | sudo tee -a /etc/apt/sources.list -------------------------------------------------- [WARNING] @@ -115,9 +115,9 @@ in a file with a `.repo` suffix, for example `logstash.repo` -------------------------------------------------- [logstash-{branch}] name=Logstash repository for {branch}.x packages -baseurl=http://packages.elastic.co/logstash/{branch}/centos +baseurl=https://packages.elastic.co/logstash/{branch}/centos gpgcheck=1 -gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch +gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch enabled=1 -------------------------------------------------- From 65b1f991b0edbb49a1bfacce1e31c749f161fd3c Mon Sep 17 00:00:00 2001 From: Bernd Date: Wed, 27 Apr 2016 23:00:54 +0200 Subject: [PATCH 076/632] Support ( in path and actually set JAVA_OPTS The current logic for printing %JAVA_HOME% inside if ( ) block failes if the path contains a `(` which is the case for 32bit java (`C:\Program Files (x86)\java\jdk`) The current logic for appending to JAVA_OPTS does not work as it will be expanded while interpreting the else block. Use goto instead. Fixes #5214 --- bin/setup.bat | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/bin/setup.bat b/bin/setup.bat index 4109b38b5d0..f2ac30383f8 100644 --- a/bin/setup.bat +++ b/bin/setup.bat @@ -19,9 +19,8 @@ if not defined JAVA_HOME IF EXIST %ProgramData%\Oracle\java\javapath\java.exe ( for /f "tokens=2 delims=[]" %%a in ('dir %ProgramData%\Oracle\java\javapath\java.exe') do @set JAVA_EXE=%%a ) if defined JAVA_EXE set JAVA_HOME=%JAVA_EXE:\bin\java.exe=% -if defined JAVA_EXE ( - echo Using JAVA_HOME=%JAVA_HOME% retrieved from %ProgramData%\Oracle\java\javapath\java.exe -) +if defined JAVA_EXE echo Using JAVA_HOME=%JAVA_HOME% retrieved from %ProgramData%\Oracle\java\javapath\java.exe + if not defined JAVA_HOME goto missing_java_home REM ***** JAVA options ***** @@ -31,7 +30,9 @@ if "%LS_HEAP_SIZE%" == "" ( IF NOT "%JAVA_OPTS%" == "" ( ECHO JAVA_OPTS was set to [%JAVA_OPTS%]. Logstash will trust these options, and not set any defaults that it might usually set -) ELSE ( + goto opts_defined +) + SET JAVA_OPTS=%JAVA_OPTS% -Xmx%LS_HEAP_SIZE% REM Enable aggressive optimizations in the JVM @@ -59,7 +60,8 @@ IF NOT "%JAVA_OPTS%" == "" ( REM The path to the heap dump location, note directory must exists and have enough REM space for a full heap dump. SET JAVA_OPTS=%JAVA_OPTS% -XX:HeapDumpPath="$LS_HOME/heapdump.hprof" -) +:opts_defined + IF NOT "%LS_JAVA_OPTS%" == "" ( ECHO LS_JAVA_OPTS was set to [%LS_JAVA_OPTS%]. This will be appended to the JAVA_OPTS [%JAVA_OPTS%] From 5c667620e21e1d70ae85d6bfc00ebb15dfc0c426 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 26 Apr 2016 20:48:34 -0400 Subject: [PATCH 077/632] Remove constant redefinition The Rack config was redefining a constant in the configuration, since this value isn't used anywhere else there was no need to use a constant. The conflicting ROOT contants was defined in `lib/logstash/patches/profile_require_calls.rb` Fixes: #5163 Fixes #5208 --- logstash-core/lib/logstash/api/init.ru | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/logstash-core/lib/logstash/api/init.ru b/logstash-core/lib/logstash/api/init.ru index 7fc0c93e9b9..720541e82ee 100644 --- a/logstash-core/lib/logstash/api/init.ru +++ b/logstash-core/lib/logstash/api/init.ru @@ -1,6 +1,6 @@ -ROOT = File.expand_path(File.dirname(__FILE__)) -$LOAD_PATH.unshift File.join(ROOT, 'lib') -Dir.glob('lib/**').each{ |d| $LOAD_PATH.unshift(File.join(ROOT, d)) } +api_root = File.expand_path(File.dirname(__FILE__)) +$LOAD_PATH.unshift File.join(api_root, 'lib') +Dir.glob('lib/**').each{ |d| $LOAD_PATH.unshift(File.join(api_root, d)) } require 'sinatra' require 'app/root' From ee2c8af8c8b0a05772813a60cc4f33e56e67b1cc Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Thu, 21 Apr 2016 17:38:03 -0400 Subject: [PATCH 078/632] refactor Ruby Event getter and setter refactor wip gemfiles refactor Java Event getter and setter bump plugin-api to 2.0 use plugin-api 2.0 switch to core-event-java include logstash-core-event-java.jar jar file so that gem dependency using the source tree work updated core plugins to core-api 2.0 added grok for refactor branch fix rebased specs remove temp plugins github paths remove commented out tmp alias_method --- Gemfile | 6 +- Gemfile.jruby-1.9.lock | 178 ++++++++++++-- .../logstash-core-event-java.jar | Bin 0 -> 42384 bytes logstash-core-event-java/spec/event_spec.rb | 96 ++++---- .../logstash/ext/JrubyEventExtLibrary.java | 4 +- logstash-core-event/lib/logstash/event.rb | 15 +- .../lib/logstash/string_interpolation.rb | 2 +- .../spec/logstash/event_spec.rb | 194 +++++++-------- .../lib/logstash-core-plugin-api/version.rb | 2 +- .../lib/logstash/config/config_ast.rb | 2 +- logstash-core/lib/logstash/filters/base.rb | 4 +- logstash-core/lib/logstash/inputs/base.rb | 2 +- logstash-core/lib/logstash/util/decorators.rb | 12 +- logstash-core/spec/conditionals_spec.rb | 226 +++++++++--------- .../spec/logstash/filters/base_spec.rb | 32 +-- .../spec/logstash/inputs/base_spec.rb | 16 +- logstash-core/spec/logstash/pipeline_spec.rb | 30 +-- 17 files changed, 481 insertions(+), 340 deletions(-) create mode 100644 logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.jar diff --git a/Gemfile b/Gemfile index a6b25daefda..79c9f2af4a2 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source "https://rubygems.org" gem "logstash-core", "5.0.0.dev", :path => "./logstash-core" gem "logstash-core-event-java", "5.0.0.dev", :path => "./logstash-core-event-java" -gem "logstash-core-plugin-api", "1.0.0", :path => "./logstash-core-plugin-api" +gem "logstash-core-plugin-api", "2.0.0", :path => "./logstash-core-plugin-api" gem "file-dependencies", "0.1.6" gem "ci_reporter_rspec", "1.0.0", :group => :development gem "simplecov", :group => :development @@ -14,10 +14,10 @@ gem "coveralls", :group => :development # 1.6 is the last supported version on jruby. gem "tins", "1.6", :group => :development gem "rspec", "~> 3.1.0", :group => :development -gem "logstash-devutils", "~> 0.0.15", :group => :development +gem "logstash-devutils", :group => :development gem "benchmark-ips", :group => :development gem "octokit", "3.8.0", :group => :build -gem "stud", "~> 0.0.21", :group => :build +gem "stud", "~> 0.0.22", :group => :build gem "fpm", "~> 1.3.3", :group => :build gem "rubyzip", "~> 1.1.7", :group => :build gem "gems", "~> 0.8.3", :group => :build diff --git a/Gemfile.jruby-1.9.lock b/Gemfile.jruby-1.9.lock index 7510eb2679d..709340a1965 100644 --- a/Gemfile.jruby-1.9.lock +++ b/Gemfile.jruby-1.9.lock @@ -1,3 +1,136 @@ +GIT + remote: git://github.com/elastic/logstash-devutils.git + revision: e9af3a24824a41d0f19b025ca359e0735e820251 + branch: feature/plugin-api-2_0 + specs: + logstash-devutils (0.0.19-java) + fivemat + gem_publisher + insist (= 1.0.0) + kramdown + minitar + rake + rspec (~> 3.1.0) + rspec-wait + stud (>= 0.0.20) + +GIT + remote: git://github.com/logstash-plugins/logstash-codec-json.git + revision: 141d488f3a73706d5ae08dd41468fed285fbbdf9 + branch: feature/plugin-api-2_0 + specs: + logstash-codec-json (2.1.4) + logstash-core-plugin-api (~> 2.0) + +GIT + remote: git://github.com/logstash-plugins/logstash-codec-json_lines.git + revision: f1a3fda4d1affaa6da4b037eec78ee5f10287eb8 + branch: feature/plugin-api-2_0 + specs: + logstash-codec-json_lines (2.1.3) + logstash-codec-line (>= 2.1.0) + logstash-core-plugin-api (~> 2.0) + +GIT + remote: git://github.com/logstash-plugins/logstash-codec-line.git + revision: f912b6ca5137bef914ea0e605cb34520b0f172d4 + branch: feature/plugin-api-2_0 + specs: + logstash-codec-line (2.1.2) + logstash-core-plugin-api (~> 2.0) + +GIT + remote: git://github.com/logstash-plugins/logstash-codec-plain.git + revision: 5c5424905d5e06d7f7adc888411057c8a5681194 + branch: feature/plugin-api-2_0 + specs: + logstash-codec-plain (2.0.4) + logstash-core-plugin-api (~> 2.0) + +GIT + remote: git://github.com/logstash-plugins/logstash-filter-clone.git + revision: 4da247817809ff68a47557f022c8049536651564 + branch: feature/plugin-api-2_0 + specs: + logstash-filter-clone (2.0.6) + logstash-core-plugin-api (~> 2.0) + +GIT + remote: git://github.com/logstash-plugins/logstash-filter-grok.git + revision: 284dc6614b0cac6770cda2c18a52f8405146f1eb + branch: feature/plugin-api-2_0 + specs: + logstash-filter-grok (2.0.5) + jls-grok (~> 0.11.1) + logstash-core-plugin-api (~> 2.0) + logstash-patterns-core + +GIT + remote: git://github.com/logstash-plugins/logstash-filter-multiline.git + revision: fd1da31b7d1e0b44319c0f2865c767b36440583d + branch: feature/plugin-api-2_0 + specs: + logstash-filter-multiline (2.0.5) + jls-grok (~> 0.11.0) + logstash-core-plugin-api (~> 2.0) + logstash-patterns-core + +GIT + remote: git://github.com/logstash-plugins/logstash-filter-mutate.git + revision: f9624cc0a05354c308b2d22a5895c737eceaa08b + branch: feature/plugin-api-2_0 + specs: + logstash-filter-mutate (2.0.6) + logstash-core-plugin-api (~> 2.0) + +GIT + remote: git://github.com/logstash-plugins/logstash-input-generator.git + revision: 2557a4e7da667d6e801cac47e27ff297b6ecc79a + branch: feature/plugin-api-2_0 + specs: + logstash-input-generator (2.0.4) + logstash-codec-plain + logstash-core-plugin-api (~> 2.0) + +GIT + remote: git://github.com/logstash-plugins/logstash-input-stdin.git + revision: cca193c505f931500bd0f6be45afada2af0578ed + branch: feature/plugin-api-2_0 + specs: + logstash-input-stdin (2.0.4) + concurrent-ruby + logstash-codec-line + logstash-core-plugin-api (~> 2.0) + +GIT + remote: git://github.com/logstash-plugins/logstash-input-tcp.git + revision: b6f2705d7fc226c08dd0905561ef9373d2801a58 + branch: feature/plugin-api-2_0 + specs: + logstash-input-tcp (3.0.5) + logstash-codec-json + logstash-codec-json_lines + logstash-codec-line + logstash-codec-plain + logstash-core-plugin-api (~> 2.0) + +GIT + remote: git://github.com/logstash-plugins/logstash-output-stdout.git + revision: c150cb4f560b047372e15887e8b6bf421af22fc9 + branch: feature/plugin-api-2_0 + specs: + logstash-output-stdout (2.0.6) + logstash-codec-line + logstash-core-plugin-api (~> 2.0) + +GIT + remote: git://github.com/logstash-plugins/logstash-patterns-core.git + revision: e039ba2d3db6a01b6501fe0cab8a82453c6dc45f + branch: feature/plugin-api-2_0 + specs: + logstash-patterns-core (2.0.5) + logstash-core-plugin-api (~> 2.0) + PATH remote: ./logstash-core specs: @@ -10,8 +143,8 @@ PATH gems (~> 0.8.3) i18n (= 0.6.9) jrjackson (~> 0.3.7) - jruby-monitoring (~> 0.1) - jruby-openssl (= 0.9.13) + jruby-monitoring (~> 0.3.1) + jruby-openssl (= 0.9.16) logstash-core-event-java (~> 5.0.0.dev) minitar (~> 0.5.4) pry (~> 0.10.1) @@ -32,7 +165,7 @@ PATH PATH remote: ./logstash-core-plugin-api specs: - logstash-core-plugin-api (1.0.0-java) + logstash-core-plugin-api (2.0.0-java) logstash-core (= 5.0.0.dev) GEM @@ -42,7 +175,7 @@ GEM arr-pm (0.0.10) cabin (> 0) backports (3.6.8) - benchmark-ips (2.5.0) + benchmark-ips (2.6.1) builder (3.2.2) cabin (0.8.1) childprocess (0.5.9) @@ -71,6 +204,7 @@ GEM file-dependencies (0.1.6) minitar filesize (0.0.4) + fivemat (1.3.2) flores (0.0.6) fpm (1.3.3) arr-pm (~> 0.0.9) @@ -85,20 +219,13 @@ GEM i18n (0.6.9) insist (1.0.0) jar-dependencies (0.3.2) - jrjackson (0.3.8) - jruby-monitoring (0.3.0) - jruby-openssl (0.9.13-java) + jls-grok (0.11.2) + cabin (>= 0.6.0) + jrjackson (0.3.9-java) + jruby-monitoring (0.3.1) + jruby-openssl (0.9.16-java) json (1.8.3-java) kramdown (1.10.0) - logstash-devutils (0.0.18-java) - gem_publisher - insist (= 1.0.0) - kramdown - minitar - rake - rspec (~> 3.1.0) - rspec-wait - stud (>= 0.0.20) method_source (0.8.2) minitar (0.5.4) multipart-post (2.0.0) @@ -173,14 +300,27 @@ DEPENDENCIES flores (~> 0.0.6) fpm (~> 1.3.3) gems (~> 0.8.3) + logstash-codec-json! + logstash-codec-json_lines! + logstash-codec-line! + logstash-codec-plain! logstash-core (= 5.0.0.dev)! logstash-core-event-java (= 5.0.0.dev)! - logstash-core-plugin-api (= 1.0.0)! - logstash-devutils (~> 0.0.15) + logstash-core-plugin-api (= 2.0.0)! + logstash-devutils! + logstash-filter-clone! + logstash-filter-grok! + logstash-filter-multiline! + logstash-filter-mutate! + logstash-input-generator! + logstash-input-stdin! + logstash-input-tcp! + logstash-output-stdout! + logstash-patterns-core! octokit (= 3.8.0) rack-test rspec (~> 3.1.0) rubyzip (~> 1.1.7) simplecov - stud (~> 0.0.21) + stud (~> 0.0.22) tins (= 1.6) diff --git a/logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.jar b/logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.jar new file mode 100644 index 0000000000000000000000000000000000000000..ec9ed306bc6a98b3217b2d78f3cc9147363b09b2 GIT binary patch literal 42384 zcma%?V~{A(mZi(KZQHhO^OkMfwr$(C?W$Y0ZQat`H?OCs-|L=;$;gwxcAm`0*s;$# z-`c4l4GaPW00032AQPV@0r2+#`p4z(0r_{ximC|GO3I1R0|O}hXCQM#rbMG3&<*zA z0L;Gw<-Z2X3d%`}i7Knm$%;M7PEW~5)6y-#O4Cx!PR}(dF)TCh9UmM6{g=tcqEi3m zsUUwRGqSV!mj_D!+nd4uM~ts?cIFUFx6)w;=B3h~ewjYu56}(xc~gR?t*)vR8tPK zVJtvfiq?h5Fz24i9&{||UaQhCBA{7fQksm#s!oanS5T$7E5+@^OZF>24%l3<5px6| zQw;QUYrl5s@v5*NV=~nYy9aM)Gd`lV^misBjd%U@$!?g_laZ&_y)QI3VBt)lJAymd zNfR4(WY?b$l4BwCRvXYRQD`VC8sid#O`L-pie52-EWcHoZnl4;yV-dBjL8WgJ>}d!|za6HgF`e0%YlV~B zI?{MdH4c5m471HFGd%BM%1S~;aC5#^+#=5;*TmUWXcK>mrtdR>PcRcEb5ytH)7AS~$-*TOz z7YIzM_LLe3#bCb+IxQxKW6WEM!JSMhQ)MBCOh)qa+uWA??u>o&xv7>lW=>6* zJSyoDTGZF~3hyVpk4dpV z4(mRsKfuic{0!#pw-<0C{gnCLaM~ zuoV_vn7h>w+YaIvV(X#cj@BIV_SybAu8y7mDV!F|r-Cqjl@@*5%`hFfQoyM9r|y9O z7R;Eb!e&jV_6o)TLLMJ&M)Ew(fox54r$*trHNM*djl+ESj;-OH#1&9lnwfKi^zk3z zTB^1VB5M+Am5zvlHGM@lOlU*>A~^}>C{OrO&UJfCr7HS`c2(F4^?HJ0N97?JG>Uep zJSJK(LKieyo;y@L3|q@w!83X($@Q3FAR6M%iB&5XT9x8PZM|tWDV9mIQycgbmZhjX{hxDR3Kl z=nB3xsXXbDv69A;=tw#t%Nkh|M)mg&XNu2lhZFm^xVwa*Ld|AR1|ECl-ZPd{9^h;p zo+wf%Fry}o%DbS}>>M^weIv|6x{XREV6eirVDz$^?;>+@uBc-@oS0M|46*oYIZs>k zmg}NdJhC(1?DeSy;;RwJO91{|V7dt#5+pO~Gq^72FjC2H`T)G!RK~8MTEMminjFEfiQ$BFS3T1$$rOi*Y`T2n%R$ADM0Z=$8;|v%D@t>; zc>(_}d|_se7Bxwuruh5O*W}`ce?(+DH$5@(K^uv>R7*2`jnJx*yMMtbaW-POle%gXxaF~h;L|}6X6P9u6O+IZ*t>5)r9~r=%&1) zJhQp>_nPXJO|>d!xD_IHZQA)+`7Pemy^Jb02HSr5Uc+f8l9+t*U+Di=fc--c#nL89 zih%+EkV5}cg#AM^{ihxhwzji1ar~#giBZ#bLsrGuUMkLD!}Nsg5wMVkE-9w95k*KC zCW;ZPFQAASIdI90J{RDMm=MvvbrVf^?d?LVds8Z}E_u7aze9f`*P(IAW1b*M8ZDW* z$aZ>pul?{o&3eDC%ku@Z2igTk96&{t7Q_*i8j&{CQFBlonW9n)G#^S~(?LF@7J5=; z^pfS#gBKdXrrLoil-8IJf`DFMLHLviiw_{gvx5xM45+DK2*N;UTn)lNIgB9)4UwY@ zMyn3{MOZ_GKWKn5d}srRu9~c}1_i{p#B|LG+B-hn2;|3;$B5!gCOf4;Q&)#IlH8j~ zj3jrmwYY}o6A!tphD#hlYdeRJ^9Y9uyB|@)CU$dMVf`z0;zhF&FLAaax6>OU-=dZg@Lu(+P+I{zd4VJTXw(# zG^h}Bq9W6g6;neZ8w1}p3N4&vRk4FAuvA3Bru7CSdWaC?A~m9xY(%tRr|4`QWjKml z7Y-0dojfayle;Yx3}mDtSbm3$`QF;nv>?dRPL+pdo_Bn7<3rVspk*5Oed0RvO8SWh8v0W3&XYn?90 zbtgbV+PIB?)H5q&Tx`p<^ZZHlg1S4iwEfA-(_&$*-sG`&wA5%KWHo71z{itpX|FC5 z&}GvYT!X26_xfI(;-Z66iAE{tuF{+s##tkfsxNVj7ob9@-XW|R5)l< zIJ=|5ndQ6-ORaf z7s*V?w=^S;-*9r%Kz2rf80Qx=CT}F;Vv4PZ&o?AG+2}gh5^H0Oj}bf(Al$gi>fay; zJ)o3Rl-s9&(2uS}b&}CV4LX|lgz~@e|F!s9eU+3*{M{$R{4K!$*aiPf@f9&}Hj%S4 zHu-1yO;NG1TM|I<$(o9BNJ`XePA)=;OcI#!DM==_At^2wv^)dvYoDw z0lW{u?~fCj-jJ0AgtZGjc!^)zn z6;@9W7ZgQgN7+)TFX{g!(f8;*h7$Mzr zOX`Y&_G~$ZlOAf*NqZ>pmbyuG43CLqavRQUT$MWY`XLwe;nHM~M6UjvS?Xi{C$%{) z2Xdj+6J~0q^c16Y^#ZbK6%KBP9LqzmT(mTgE7l+sUZzXlyizdlXbsz5J^4XVQ=tUu$qULh!DsLJi>yvV>F!EmGnM3b{D2Lp8;j*2FX$^PProo|91G7V zGAx!UYBG!UVMQP=?A)Es05mMUVktg`CezSX#DP}PP!@@^36R#Q+$!GCDRBESW}T(c zHjIPri=k0utCG)=AMR5cQd`jm*Oz;>9Fcf@TduUyq1}bbtJd=_hT&TF4b8=umvpo6 z!Q?J5&%itWgHsuJprDllVZf1dr%GXNUUrs4G(>74G0Y^RWIBG0+KIS$xz>KjHiQ<7 zi6G)qoJ%K~3PW}QIT?AfZ9K*`^Z24yY&F)w5#R~*Za>t>ZMct^clfY62|wsw)6*;h z1c-cm3N%_hO6h_YK;SmfJ4TI3c2PPB{gQfN;|QUWFhvNx1RUd|gG@G2dodT`bSz|( z#sJmG+!CMQE~_UUNCx`Pe<3FSSp9pS-i{Uk0RZTL{|CS!YHw#`{(m#jMrqUbZwB&i za%_*bqi?V@AIo)c&^ib3f!zbuh@fVMiTUidYnu^oVspw3n+-?{@Z14_8?o7Pa6o_6*%}LCdZ>Gv8WH9>SUYu}z7IBdkCAhJ zNi8^9rN_*6JCS0nW_Kx^4Ra7Lv00B8Z(3&wh^8~Ctl@Rw(o~1XaLo*e5H%hYBm>uV zSY#J`&3<6PP+OJ|6V5WO9snRY{4_{62sX4tc|OL0M;91k0Xb(U}gSYhYHXu?n^Mu^#9* zFHti;HAiSRlqNZ!IM*SSjyEQm0@oktJ=$mGN^>#;y>#{j1;B2XOvHoM4sJYB<|qct z3NxaKQN$XmD8%st{^3cpV4YK;o==idt1`?wU|qybY&+YX$msI>w^Sgs5dscF004L( z1^~eL_gWzDGW3;$Rhwe%`mYD@zm*nKN$5Mi(Y0|E#JgGT5Y7!Zp? z?R8Xq0;zZ>7*1yCcB8FT7pt~DvG%I1jaXy-3TXtaiOqN`nZ;7ERhF&fhUs>yYaL%| z?Ph0a^7pJ;T`{$0u(jWrmtWs)_gu%H2YS9&P$I3N+xtaFPuZedkBVTus$!@=y(~Y~ z3w`cq`n*qee3m7CX(jmPPr~%?SHk=c^KqpJkL(`EQ{H@o1<#o&t%X22xnATWcm$KOGPr3{2emV#M*USsf!m_UdE+LM)d%F zbdB=jgsP>Lj}I+t6HHS_TlBO<>pa%taxeSwR=qsf*xlV@t64nTCx)B?1|Ew$1T#%7 zPP{w-!Grxn^z??KN;D6SOS)mKA06S_+}l;*z<8frVubN*ALrS5x`m1#LPxLlA^||m z?3UeQp4ctA)&69$>YbMO>d{AUAMC>lDHO$VyBCdS@pNmJgBY|y{Xv5dJ6=?S?lDKhUeeVxVzInPg$}eIw?D#g4S_!bgoNEyArs?FBAAO;}~b%)nDr zYO)5eqSc_tY=c>3BonhOJhAZN&J^kKN5jj{R9ufWG<4dTD?@6I18w$dFP$HlXOHVP z!uchvE$m}xEl-kAd8O4DNCEQF9}yp1y(QxjSler8^Tqk)b^q(TR>Dl*kE1cp!qt_h zo_K4er?1T^pT9fFVs`o&S2t&SGou+er^iRv%PZY`*8G>9Jh}4o%Pj8x*Y+3iwwK$@ z)fK2SpVjt+`LayFaHOJ<^|TCQjRJTqmc^7z4pvNC9ER}N(u7FY9S?>y47XBj`Jp3Y zEdj$ChV*dtj7$k_4S4>J&4hvSGPZO&?_p7pY2_|PbQV#;Q9L65uVOSAzw`8JCIJ9;jemo^PmhRO!%ygXupIEOOc0|)IV{>PN(pMd6K|JdCbWw^1T{Y5Q z-HDi=Miw_6ZDC~bTPLpP-q&CpxAji0d035OH5uQ6WQ#8i2@^WJgh;drKGAWT+4t=@2{5%pqnCqs7j>)adp3#M0hmnNu?+uW*rs>2Ghm{RT z-G%}PPEvmx4h%T4q~Ns3H=_k{C~c8bDVcimz!gmQjsk+s;0)D4->??maYk5&z!WTi z#&iv2rUaV^iA^AzUKmrE?n~8|VCY!gvs2APbCEVuY#2?v)b?o7x)F>8szIVf7>GVm z>;MTGg}TUmn#0IwiPzQ5Rkvdl(&0yvBMVqiu&`#)#SkM@r8M8}H5g5>fRqemFN&eO zR+1=n(A3qGgkRLz3`^^jb?rea6648+vC;?&k+=@b(5UC1#g^1; zL9ds@j0k~J!I}e*ZC{J*jiwe3=yteEE1uq2<3w^RZf>UG$irrE8zOagOT|+khsyN{ z_C=Uy5}Tvf8?bR{I=9IgIkS5km7)Rkf~uvcwGLFd-0b&oky1dmpr%#J9XbQq**TD2 zg&r74hyTf!BR@};LpFEE-v!gOo**&H=^gIjdMzkGKhKhJ5w%8kbzTl1L0y~TdW84e3it=bS(Cyz=hm<| zqOx1ZzdO55KL`9cg%B@P|H68)%$ZMWS9Fw~CA;RZ;jNy6JA6C|Cj@&W-WI4qWKafl zcnVmI%0vbv@#5J(B)D0!%#5@0kulbSr|{9iGy6PLK${>VTplD=upW@)M}P)bA}%h5 zl-5b3tZpLX-9w(jo}DJ}3?|-q(w9GG)_LD2oUeK*=;?#&i_yJEen}W>%mwc_cvjL= z<&ZJw_9PkZwv`2M^*#9Pwpd{RaBX#Q>0sy;EH&3P`%Nz=x2Wz2lIQRy(+Q(AnY;F$ zviOI`ib-Dcx=Z;m2w4;QipRud3`|+f(onL_3-=Fo`lT+>os9!=4qFN!FO0TqY2h{T zgh7!mOgrv#0400<6tV|a8m?v!xNpS`1mg9B(C+ZrFC<4!*q}oFvX2b3TlwPY0%I1$ zt}z_ABOT)W#>5(knB9uUo+qZI!b@-LbawPg|BJARkmkDtSns-}W>X;8Z!jsvK}% z_!o22Ns)&(i6~bGReXmxK4ef$?pJtaPtyylpzcFbKn9Y4Lh_3j$X&7n_PR>cxY%uu zsyW=zXj8bNhBbB+8THW`L_K5K6yuN?R$D!B{EH$a6GeR%5x~Ql{V|5qc&jHACW;*wtTgG|xL%&dJ zv8CN&V>OX0t(ik}=1N@bWK$jn4@6Q*_Suw5Oj@?%UqRy=fN)k2hCC6F>?sR6QSGXT z91a}9bhD|HekFUX|1O2k69Scf8Iy`*q|y)ekZZtio?x$LL}OG|s;8m(1fY80RpFum z^~~?@3LdQmS;LVYh22a%RxXwHiIbA;F0K!yaujc8CZ)nqBDAH@BJ7=csG+;9bZk%l zME{kk6s9#%>+JY7Q>9jf=DXRT<->^**CWN?V!J;P`;}l)>}JGjRN*2@MLzGcC=qc> zo=8p@7!7PRfPq&Uq9Qm|5q!WR)iht!N+=W;8J@0WnLRp3m0mQdXrw}4nWx}`ye(Yj zaFb(MgZJpA`-sipmu96G^X^moj+@@M$%^0q$y?hI`d-(5f|p6XfOgoSG?wp|cZB@} zZ4ZWuzwv7D0+M1Nf&wdt3{I~&QD8weVrZ*@=bb(ImAUJbKqYQ8+Yzo4pR z8{T^Yl%gEpDM$K^f;) zNS!jIzdmVHPooB8duO~Ej_P_PU`bhIooeX;4LVdByqQ%CdJvCl3#2+DPUf|=piEci zX@9i^{V_*|U99=#2yIOc<6~12x5zf)8#Gfm)EjM0?G13KMb!h9j}+r8UbIW9buEgJ_)uSrngqEpfw3O zTBYV??^YMJ9!b-L3fI(^<|C@Ms9DAxglH*0R=i#O8!d4|J6NTZpTcup-~C-+VG6&D z-m$tA0AsNLxZ>r=8kK8#-xXG%ZZg}ffDHt2bxI%zkUS;}&NY0ZxCH$i=< zPPVEs=SL9{M2RRuED)g<3LrkPD99zRI>FjsR5l_WY{bzvq+ndP{=z!u#e3kClvaKp z-)E6|!k5ufX89CsuN&j93qCawz|Oq~U*4o6?iUy!(l7QoyEp{b(6fdziY4;KjKee5 z`!x?a@11BWe8m~UVvM>d5Vsf1@Kg3w9^{u7)W>yHmsjY)Ms1Qr_yeoF>>YYB^0sXJ zjY6AV*k7FPC;_I4hkZvuxTj9Er%s$QE%?V=FmgPho=bYrlB-N<2sm;*@q#S+C;EGf z@Wifx%o;~rLwR^wsjfwKVKB(-JipLrC#cxW+y<_7y`YhRBez5$G+>km45zpf$9ncT zEdWp`v{IzmN*HvD|HP$$7#6tOebKCU&L2r)HArvba*@kLWZ-UZfdb@mh{Du z>bYtBi_vq7@uDSG{(W}IkgNP0IL|5<5C?CKz?m=fx({~NUxCqLM{RUUND)W^GB#kF9 z3?Yp2S-{P!;0NUR2MEcx1H=XM`0D97P_S!4uc%*vNEh@;BV78DhFLb8ksZ?HMp*e9 zXJ>E@o(P*4`rt^-(pjG<>8uuWW$2ultR1*V<m1sx=R-X~G>eT!=TsIOD|1L^sJG{MtH zO*dVjrZ1vdl+mInjE2KnQeiCK!=a~jnwA{72jv3x;9bxSoaqK@vz$8M57D$kRg?QF z9B(kujQFmJfNE#&Kfi?_dyfJur-f7l3zncRIR8W*wr6GkQt}9B4PP4!QP}MTTYiL^ ztl36CtAaCc1JSxV5VH(+0EK zi(z^)imltvkX3G$-LmG+%x%_v7C&?~m%%7aP6wR2~Ef_cX= z%7ft*?V44HkrCdr%Iq|ubPWBRRWgqBEVZbs{^JPlGrQQkwb*OXDVyr)B;B*LOfLP! z+5SzrK_8c02Ar|xhVTGYvF6rA+Y#kl4nk4BDQ*H@I%rve31(fW#SXYu$xf_!ABz_k|?E|DAv$z|#A?>NH3$Cz@@Pz}_0aVP6 z=vcQ1H13DVTyu=HF<#OfHDyj;G<*z&CDJWjA2!;Ncw>goJIwmTpuRw?BRgkL%NrNh zs@~3rO@;^Pg02`I&e)gflCG|5-ZCV@s(SIg?%U_b=KSgQ*zgCb=PLc#Lp%#t3Lw-d zy+C4)no6RPEq23$&kFjy;8mX@4EK^5okL zt5I|&`Z?&E3ua$6jNI>SOnftC=Vk^BRn!TXj=Q}Azj3s8T&Zu7M><6mA?_E95xNBk zu`&FjkyFYOg|XU2H@KgfRtsegIJfA$+8{yV%d zad-Z2ojnb8lAWi2!Pn_u@J0JS-5}-YV(9U|v4^O;vy6qIqk*Fb3FCiQVahgkOAH9U z-NrLmP}C;CqgLR!(%k(7d}y*l%80@S62Pi~c5+rNwTmK-*%lw_cYv}$5&xjE*-LP; z+k7O7bZ&9Cx!k+!e&64puzRRnsx*haaZq^f?q@>-rD5WDcwXj=D$^P!HRv##`vf@; z9JnT8#zu5;uzq!qXT@$L$V=R81(D738^PL+tOi)2COO(JmX~v z%Xy+G$cqq50pTA))K+tXtEnRjoAO8%uZ9UGiPNqf-Zg0|$C2SiL~J6i2*DM2_Yp3~ zVI-Z}C(u9B?UErbf?f z_C~WWadkR%nqQ!2({jqn?E7f#?*pqiAGyX_LZ1z{%Xr!-1_!Q*9D&`=ZV%{g3gonc z>P@Ec!sf{;{~eV^zzdC{{$=$He>=Qo9fbC6*;bOQ~Q=gt=GF#~hBo7d@BA@q67^_Qj6Hap z_?Vqerf=$Ycm04ghMa&sXigG@Il~HLxxsD@asxix5wzi5XfEB04;hC<5IphHU_`l- zb5~M)+{~{R8V_APv{@nU7twn?M-(cHg)3>nY;jyt<=s>J45Z`45r?cN(YD=!Pon?+twD^dip;v~!ozrvLQO`)v(zwI|7Ta1 zX*#wdZjpI9N7@N$TJ50pbg5Kq##84yh9U_k$@vXMFU9v38};pwI)x$4_TeqMw$=@JA-%VHe3{ON7#5PYuZl`%x05=p>aP?DOAT zp=F}kM9se>R+$V2J=E?eJ5M5_G&p7DLez5Uw#>h(ChuFD4XpSnK=xC&zTxnl=> z(|+T||KtGhga1JQ;P0M@%lmVF&kXvVp#MDq{{!=bfmRutvo3>laDP?U>5 zB>|&TyB7&iJpyLhwHOxD?MPV{?7ocBZyKr+OB+pA{i`al%AFI*zsi zaP#=Hy%44HP71&Fc()43omFpW$p)(Ru_6}WiFwHJ>S)ykup4dlu_)@4jUn*{fRbRa zZiVLL17)jx?*ss5A1(Jvkm5J_lL%HpCw(SP)Nm4UMRO`vjP=pFYcNtK<^pVRh>xTZ ziR1V;-aOM1g*!P8vBIxauYMQ z=+gikYAVAf0Tryx__yEDI{FO!(IH6 z7V1${- z0mU3@K-garO_)D10`pHjt(c`)bk|M|#%+gDQ37@Fi1fLGZ0OQCz&n0 ztE>_$q6nsYXM>-46O0YxE}&hd`nc&cgx^z>C5>ds0+O_1k-uNH*RKnOe6rd)&*{=T#a2r>6IP8ZB1NCqVhp} zpyCLG>-_Q>9UDW%QQ2o0M%^kou-y_~(HVI?)Kiizuv&n`DNNBR+aSunR=x*z=e>O+ zFgeJsS99Rs$Nmaj7adjh+#4sZsL=bmF|J6+Y>|; zw@(&FfgAV}?`xf%TnxX;>`#UYzi)tg$WdwtWUIzdalkQ$BPcw8QdE?ks^|a|SLqHz zj@pg5Pvw>ay8#zp);54iPC4bJe*s{OU0ow>FI*tum5zkA{jjL~^4sdOO&q+6_*w>JA5sst2<8gGd0&I$b7K;Z868!-zxt>NG+o zvr#-a<(>ycS^5pNQ?@sz$`O;NaL=(L|K49BMo^vZ0HBK&J}yU_x`_LU-w&?p4bcHM z?q7)>Bkx0_%8w>pGJbW%kf(BQ@R=N$cQQtN<@NpSTC08!!dJOxrs55=M8y{yW~0y{ zsXIbG&VDE9Ej3b>@Yx_gVs@vAiZ^ho@&?FPcL434*x{3UWAzx7d>MVzFu_NCA?>tN zxouk{^CgO^KR8ENovjW;%s(3kj5J4Tri?X}LyD{D)ChiIi5dA6RwaZ70vmEBn}I zjyk6F#c0XFTTn`PUrcQ-8(Z8{OyFo5L~qi`N0+RYjxK3q`#LZoq16^o<#&7S<*?7EQaKbxhaC0LxV%bF=3cooYYf@Q{$}Z*45wK`DcJ8qiZ|a z|Hh>iBuc1>Qx?uZ^U;j_N}BxotQ-#2)|$P~{O;Mc$be*mY;}5npsAF$x0Q75Va1jg z`+h;GTKFR+$TZ0#%_>`1Q>m)McX(Kqe?#jHbyQUHvG@JdzC%tr&edu`u@@KNC>KOF zD(gD&vyRD;e1RgS1P8TtR93*Ts?=juVM!Q=1iF2SmCb_6>{hg3z18uqxvQo8rlurH z@(nrJWK>$W*tr4tG)TwFMuP0HQ*5PyNXmk?1|AD@8!C7Z-l+*xY@Vk}GOFxq$T-+` zEF|qy$I+55pF3H8ZDW(q37aet5V5QxnQc&CaHLJ3fPvaQbGvV_W0y7Xy)%Ow$$0)x zL<_E@&FSN}re!?IFwk{#Uzr+OG44)*Xc39S(8WsCWA@0=v1zOjfUx!Jfpek~+hCxA z^1yS;@}&O>t7=3ETWpLI=wq~*1fzOaanB>U(0M`HG{DhH^7?HARWtR>`^AAd6Jr5( zVIT~dTS+?>2R5wS_d%(dl_9Lv;F!9A(@x9ToZ~>Vg$|i{JZcSD$sM-0d@t=ZHN}|7 z9FM5m47YI@(qaq6qHMu?*+?oUpUbIf%Esq*?A@#KZ2jiIhzFw4>=K&>nD5%y?(7-9 z?y@oW_`exLb2XOLyK@dwNd)oj64iExy zXAdGGUW{O%EAx6W$tCJ3I!jx#3Yy7)^7)L=JxcNsGe#&u&) zl#)Fn*;q~jun<}VVlq($i!P&usED@!BQs?KY4RuG1Vx$HH1-gf>G1-QAW?}YsW^zT zIVNY*!N3v`D0L!0oKR!tG3NVx8@e)9W!iGW7Hfw&U@qEgPMUs~>;g7EsFMhC@fouM z?>m&`1h(Y+H@{a2-GMH&^n>bS%uIn z&$>JGG@q$xXn@9A5r{c~qr&$OCO2qk3WU+`3pyvG&S|03j1A6L&6RmCXQ)Z^p-rAX z88WWP%KhVnaJOJ)?4hdzvsk)Gzu1#C{G(%D)QgaW8G zpUZK1uJZMxY{9-hA-Dy{A-Wj=Lgf<;w1w&tW`~$)YV6E$ndgL}mOVs&5HR{k^xLw* zOV+a@S;Knc@CkOQKI|OY^9Rrl-vjWNAGkyCS?s?N+8E2X=Q1`Y5VI^RsnqfSUQXo4 z#O2P>rOmE|gb)<5n-V66lqMk@MQG7aEM|wKs-=z*A9VyX0mnO~^qWzn;|Go0aX1eq z&BMzpTY9Qxh5|@p)}=A&*-eZW9S#zZ)`R1P%4>!~_@Cl9Q{A2CUl4r}(|kc@dM2l5 zE!vf`lc^85HzAlBlohb*|Ii~{q~Q#x5;mx6tlc1Vgmx5+Tr*SqdgnF0^Ua$zTVY58aQkn0j`Uj#E(f3Ohd~iY5%m%ti*k-Vpee29a1kk7~6aqhoKuIDDb zn(Z*?GaUNn8F+zMdrdS*S1ua*;%ch5#j539@dN98QEJ>|fZa~HEoy9Ea1NIu>f#e` z;V;R^6J+fsMfPO9_6#u0Q^zLV5Q}I{a14w|)iDwXpdU>0uOdLY7CI}lIn(FU*IFB{ ze=IyXMNda-WXU8V%Uw^mc7>eL&rOr8{nc?*YVlNQ{L1jv$T^5sWpi?y>Pw}_n|(Yr zn9{?ta}mHxq(Dnk%7_+8^~mJ%3r=Xb?ebZSW`v%nGDWcqACP%FOZr zQIrhyjip9$m-Y114dk67W>%v3TlEd zW|Vc(j^*$C>l)2=+fjYafM@P6RCEDQwZzEEV#~mz2KxTXL49nJQn2$nShZc2q)FeY z5$Qg-K3);Mi?H1QI}IC)^wzZbQO4QJrTU^D5*mxg$Z;eMH%B|ez~hMDO-l^(CpNs7 zK2T^Yp1g*$!m4MJG%z=ukTJO}BdjAeW_bafT6VGx8nu+It9JCGNw?jam%OA5ALHSz zTUF*T?I_;uI8qI{8~Y~pIN159*!zw!1E$uYxNAT|PhJq}kUdu(-KF_1m}7(Ph{Yu!vZ=qqF5IJ@}|djZGwD_AXw`rg>RMlCEY3f(DBZg6N+cOR$u zf&u&-;G%ET8dNHs8s*DI6;EBJdwz4vm-tF(ZMd)@4UvQIH!dZ_ifEGgqDbZmDHPBi zKDz_Z`*9{QJ0>fWl^K7!qj+hdyB<4nt;w%lr!~vs=9J3(ewlUPPe#|TcUGz91dR63 zYOWb|etwkwvg_T`jcuno^6JI-M#lQ8pfMS%QTmPOYL_Lw|=3i*hgLW4^|h^!FnL{KoK24D2h#=ITei_Bc zSMa*_B&p#Hj|HM)MNhoU6B$ctnQNF<-=Oj`Y@vyrSK*oNd zfkJl=Ga`U%!Zg+kh#+z7aZE~JMGY8+MvKwR_HupPTzy>7gsoL1Rvkz=N~%_VVtdaq zmf<8#UM_$MxpEvaY%lTddVT%z(eKNx`uTi<_Wyd@2>|Ap$n?^5nv4i)mlv3h_#lK1 zZ{iyuJ`V05FAl;(wZ{k;_vjut!#j~#2EsE_KL^1vcBlzB#|Ury-i>VAO|T~lNDt|* z*-y=*cYKc(x5~*exc-*NQfE#Et}d{IGL)9ej7d6l2n%;P2IJ#ESze|TDY!eBP$l`^Cyl(QX$>JBzJ3qhdDU;B)N8q|0!`3AcqZ!c#@w zWc@V?wHD4QzqcWx#pjhe6dF!RJ{vvm^!GdM9696$DQn44IF(jfC2zKw(~u)cku5E5 zZ_gN5d5yU=Y6d?uXgJiz!3KYebjFLBiOgX^nn;-3+tj6o_AozmUkTy=(QQv+71wY= z2OEdK$2QTrlYLsO3367%_r1K7x=d`B68jTI@={;0p5u)PJ6v`u7GXEt)#2OR5&?bmWmL zVM*Z=4(kCta9@uS<@q(NUJa6&6cg>JrM9FQgw*2FGN2#;1-BU4a2$IHRzi5|&VWUX z`9Yd!S0f)=l?k2KpmX1AkufWq>F&DkAniH%CiY$K%3VIaiLKA@N@w<+d9$=B$;Vx+$}|xZ%Add^~K2X>rYrw%3C)**+RF=luM0zzxHY}XC>fOw)cbJ_f&HT;k*45%vbE>$(aA`y&Jr!y{rV0m#C%O^3e{H-p(%(8?TC^;*(wyEQVZ&4 zUiIA>;TGjum357i$(CtBEZSQPn6-a@eSXl)(_fBs){$=Pp;ggrw{(H7oweozv*VHt z$)l)irXKd{F+8774*3kU+VnNZgcA{C^eOgChm1!)Sa3-1vY+IQwyLc<5YG; zW%?WuL3vtgyC|%!%~jnj`M~KqbGsto*n-2(zUnRdVI}W+sQwOLsVlm5epb9}`93Lc zSJL0~zYtu*@8pXMgpEpm^Mwu#_v2~F4Sl&a!o+_%bbv0}BHC)6QZpd`pchG;07{>qSlA~f_WAgW>ejEG$Zr}Z<1=H?eq=O}-T^oV|!~wZXfaeZT z8C*#eDU=|E3c2$;HpTkLeZezkqc0F#1(JmC?{;H)LlBBmqJlQgY<4>PuWSAFez^$` zAiq#+2$=;()oyaw8pPCUz185bDwb4GC{ARyCh|bUP70=2IKo zP?m3!I<|L1E?Mkqlv|3J5rTM=ZHK>U^c|tR z`I5+xS|Jf?N5q>5jQx-Hd|>pc@=p6bMjq{M&aftqp-KJLzd&q&L%gm6(lp0+I;lXv zIo#mVni_gF%8*Klu^Ej{$c!k}yT9JmG!cLLoytqh6FRmd4s1IX$~^X0OXfL|ZYGis z938?%Vym!gY%{n1z(yH`&xDbhM5fFyTy#lWnMXAT$Z^)8(X*PvhvZ9Cnoj?tkJyKg z*&$_(ywmpDBb^u`%TTMB%6gs6{B)%Ex|57m`~OARIRmr4Cc{L=le4$BhO*Y6ARrZw0QUDC~6=rM95 zF4T}8WX_ht5$M3sl&*=eWBuk77xL}eIvbUCbdNpxX*FuiX&&`j#cCIaYH`+=W;!+u zmqrZU+KYaFvew2-5t^ufzb375T>D;sZH*kvtz35!^!hXm#<6c+h66fbPMzWqo?e|$ zod~WTOc0^?xk`8V1)!a>4SGs<{62jN3GM`DWPDr;5fS!q{CrUUQ1`dp;(;N&D8+`q zTp)qPy(&eHJRf#K<7?c2lJK4ms6h7|kC@^UA3s#a6;R&=6aOMh`T)FquE+h^Y2)u2Us@E@P9Dj)&IMz0R4F}qWm7p^_k-IsXoj5mKa61SmY6k@Kw7*;Paqx^u^%!o@Mko zFk9Ei`K9KloIeZuc*>-5evVOYea`$EWKHzQv(_$+jV!qeR!?Fw96gFBAzcs;Lvm zRKX2-aBYeXjE1#@q?wzwy+%9ww_G9I1Ldrd)p{EbW$vk1(^8ImmxobV2V47`Cvalr zEv8l=N$R4M4vUf-LfD7}6{@xV6LxMQ0q5+z8N))429HLJhT(>H#Tbx4%aZVHX_XZ8W z$XQ(|pDH|<8s{m8%;ItaUuq|Xt)YodgdCB7cFpDTvipkq}6+ZJ?s+HF*&K7O6<8bj@pvr7QvSTY2(NF=Q*#mEbbj zOBDn7E)b^fsLFonSBb*ZvSiJ_W=TPQna-o))zJ!-XiR@0FSyOT4(aP8oLfUM8Ks=# ze6*dG7c5Gwgq)4Y;z|mQuUa*hulV(%5I&6zgFi=eQgq#GA7 zI+V);jDrBwbhKcq*}*Pq)nYuSv*r)g$015LVbaSOfKioDiEl|ca9~455-WGG;ZPDb>XC>)MVEBj&5b zB#}-MFiw-#(=F@6{KG&Rusx6qlienx^OKORuw7*`)F_t4kzx)0Rir>fP(LNO=eq|tu?G%q5tU8~oe)wAAS-3qZOh8HeW z^{TEfDHzVSmT0ANsL3NDE7L>DsmYVH22qu2A}T7=$xCUB!>G*x*lLr=E!6aVVwL42 z6A=OB8lu6}*h99?udIJX>Hu;30n|apu>iY#ZWekyM~S^(g(158i9^aAvDg(G$>#Me ziwiYBLtmTgA7(NNa#NP8sE?2+m<+N@0SiOG=zd+)=m0KOHu$I0v-$$3SpbXbCN26L zh(>+HwUU#htj3V>TrxU@dNIu8BvlDmX|$pUs5pX!AeA`Fx^|IwKoXncM(Wv@(V^&H zZ>cPLYvch551Q(iZhDAz(^7A1&)TX9E|7}##n!u&ao3crBBCTnpYOKjJS{}URkIVv z%GsZJ<+L}%R02Rtc)xPSl&ZuSG7X!`b^KvcxIv_etBp`(0f`81 zNTRvQtMa(1RmUj>(lXiaW@#Ihm>Gg3ZU5i+1*}$+C)Kov`Bb6XR(xxxSGjd@rT6mXm2(D(FrKOIN<8n7{S%o{i)2CYXJ0z`bOwTEp_Ym4$!Nh+ zYT9^`3oABi0glOdm`8}m(=v}?2>kUehSH3;h9lkfRqA1?Stl;DYr)7i;`aN4vR>kE zX8}E?o75H{%h1$T%l;(ehn3clzC7U1zJ|YKNs4V3wPmy#CLgz4tS8|T$p|i47o+VV zn8sgr+7KWh5GbhkE@D(%qoG^zE8E>a$iC8;8swg>bAM`B{uiE zv<=;(H!of~zsCr1k6!!8DCZqT2cNI3=m$%EuKE%>7Pn*W`#^600%qWiHA^cZ+kn2| zfWF|O{;L|9t$zM3C9lY85!o_rf2|nO8L3}y;m;d22!obe&mn3L(lQu3c|6y+Icbo` z$C7Q%I~kZg#fS<9wKVYL{J9dDih-)dT{UVh%?{fZu4-aq`1=xM!Cj~FEZ|^Fx4}S~c!)A7$|d5&AMrmj_gjT4L_$Fg z8%mQ+TrCkzBwJPM#pr)g+cN6A6;7m9ZG`EWSDmHRKVsFVcGSPary69&kc*wH+M9qK z^28IgW8|u)o2U7`v{rz6&7MOhQfQ%qo`s9Wnq8>5TC~W-1COkN#S#)-% zapso)#vp^kcK|N2!Qs7M$B8S5=J!@YuHTZ*hTpFohEVcDRC8{+1s&fn#~jr3G@sWx z6w1!wt%@$PM%+JGdx`2EVKP!7jE#JsfgX}V1&lCd^p+*7k1(}-3qzb_pWuy$L1^Xf zY{~QRL}Gp*B~KS}6atD;BhO;v+3Avjbg10;=AkDPWoOvOb6T3YA=Hwmzu8hGIk{5q zR(;@7ztM204yH-UvK9WWhR~c`;yb^2VHv$Vu;cI`rDmi#+NKK<5YMwfVV+RXe2ZW% zgp=DxEZZ<&D3pqNv+KqB1RcTM7tFErRz-@v+XM&e5#Dre^w+%z=o`BN&{`#;v>f0g zIf0=T%fQ9!CTfOaC5KuiJI!tl<@=ACqtvf|rZ*=l`?yp`N#VjJWBWp}mfiu{J!0HE zVy4E=L7F>OcUy*!)VQ)&4iD4qNEsOpe zQ&c%oET1Mzw@NoB)+K9UHS_FP!?M9&V^g46U#LpPJ;v?cO`)ELzPs6K)G@3b`ik_@ zGl{u}av{eLl_VR0$lL91jTh*3R^HTdH&-R12WvWt)*q;2l@pcrEYWsg4Y(6 zdhwAx!l{-y3`%c`YU4Sltiv(K5G}O-*iHlhpgTUGs9{s#40iNh?HnWxjlB0o7Vk&X zowA)U#k#Cz4d)WvwT@{yQj1r94XNkYG|JM+NSINGk;;K!)^h0)2r&qbiaz8~HT~aHKilBr^W7yuo-1pqT3yah=vEk)VTZH-g(Ycyn#;5yu(Aw?O&7v zhG5gsZ?1<<)ro&A#|Z|{K&K0L90a28h#EnsTmM!jdJmTL@ywLAOiJjjNMrpCOo9Ny zh6xBC(~DD-@rj0gwSw3ngOmOz9t>_ z95c@&ow{n7@@q2t`$50q51-dI;24>`1w@cV7?`>^{+L~5{fevQ+gg44c!nMon!hN6 zehkJQ)g?&%3`2jzTSj|iMmN?rf7XiYXy6mo9&Y8%%g4-_W5}ifmdZ3A*Bx+ zZmjAD+H-QlHF2cEUOiOzixs3!L$_-jSKmwvZ4dp{Eb&=Dh)M4>AP z@U&9lit&l??p_ZTGoH?n}?|0jj|kEAI@)lLCL2+^;#`|tWaC@lj35};~V z;Yds=jYI~DG6@t(80pjbciH*COXjNe?rzTiAT85!58*}v%c3q+Iuz7pZ0c%yl4Yjr z;`8<6gCanyi^*_L2pj>9SC}ZcFfoZ+8hqZPnq7sv6i(Bl&_sMh1+NKqW1=1G5FFtMs?EFl_~#ux=SOBgdxMm9NudPy>c(LfPD>F-t|% z0`a+!#CR^ve~@G9$NzXiyFE05mOkao#76RO8jh|Oww5R_-%bv?OtP5H=*o8W%2ZCJ z$Ry<{)x(gFYnrD2?)dWy{M^IL7^)5npdp^GT~$r{2g-Wc+$>LnY(TTj`Z86s(rGzE z!T(|(%Es=#IuVxdI7;sR=uUxE_WaUa4*f#DnhwiLs7AM|I&=*?t<1+By<H2yz++TA{#}pfwxTqT32p6kHcC zG|El1-Df9jNE*ws(r-PYRAn^Z=)oqO3U!BB;s7hPZsv&b1ZkE1fUUJf@ga&!61UAM z4Xh>I9sYTWiSSPeJVnB@7~A(i_~Lg%gXo{OEpBCIYpQH!Zsu%eZ}Oi|ju=%Nl?6pa zzSB;kWaV)gQAK@UMe4$!*20K@l)HFlPBcu4WX+(0%VH{)=RSj71RyjdEIfg?BHSnP znpyTj0^mL9!y$fpMw;Vit^3ENALb6GVsw~#L4gL}hAjMoy0>Hg+o)NM&zSx*$NOyuWDYmU_K2{IpP?Pkp3%2JU<1f?ekN zD(ne%JX-tlo)UeA1c_?El^4`aSShwH0YcvVSrAQ=t2EBi1g?qTLv5hUGG9G;U{%p0 z(7yxbN<^Fw<_C0nf;bxq-{HBvnp_EhsOGUY^)>M|aZ%|-ndD@mF@#sp@)Pbwd(QD7 zH^i3$g3&~+4>9xVX~AvQW9U?}3 zlS%`lsKjH^$C7y%_$yAk3TOGa@)igp%3fPPE!HQlWmEvpQhPF9$6_xv#c`BE$ zrNX9r2Ab)|%ADUd$_#qCiM!y}Tjxja&Z9&i6y|GO?*{kt?44R{A@T%;GaI83#$h6F zh8aNRzyx>I#V)_Z;kBx&;}QcE2ojh#nlYIn zgftjw*-9AnM+RCU|9IPpr5LlEcvK#S&L1Qhi$9qS?%=-mKq7qee}d*?%qcLP(H@B9 zCg0K6UMa;iw@JWYOt7TppO)>wjp7jc+kN{7R#%)UJ$O>3W%3Amiq5kB3c9+QOq+>& zzb0`St!AJYHG5E(>aC6l;kpmPShY5Lkhj^x5>w>9;h~AnU*kb-A#|X- ziZ2zj!F0mo=i3MJctr4pJ$|Jd?jj8wg^H7mWeff?%Z3sLKj+oX858RH8H&lIN}uI1 zyih*L``T6)Y_)7aWf-K^^DkeImuoh4S1lGt`*j>RKfs-+0)iu+=ORS>0PrmC zGABkSW~U}x{m#jUm@)z~$%mX1P^mzvLa9l#BD4d@@=}~6vlwHW^R^}Ni5kQJt>_c; z9@B{uVN-Se6bH*nv|m1EciOaE31g6|bY!4DMSxnYOg{3R(^Eavo8if9YD8)4uuOW4 zrpgvV3pZ>l$xJ{s!+7d&7n^2UgV`Z@ic9)m62#GTGa04*Oc(!7$1i5E=8NWn6LTq+ zJE|r6bS@|hvS?5zcoU%uAs57BCj3EAaxiT!vdRf@{!I37K|11!Dj$cPRwmg=iHo!Swj0Vg#+2*4i zE?qv`*#aU9r}>(-Z{33h-nLSQ|;c#J4Wl;ekr?|=F$|=yet&e+%Jq%be>Z< zabXg~tWDRO&}HHq)n)n}yLRo&=hAzK=u$Ibbd*2QnSQQoZ&>@&lfz|n_ZTwpH~Ca~ zY3eLQXcrC$CNV+jlLf#h6aNnO1-Mp(XvPSP%o*pWW7<3Z)jrUR2yeg19fe1j+g+MR z_|pNw4OHIPZ$lJ=vEREqe(~P*aqIf~tbh9b=BYd2XH$eX)S&DnF9}b-(5V-%Xtx99 zof$eL6&98RO=1op-z?AdF!3B-;QrkM(*a!=Z+%BS#t`3)k^id)R#p?%5|I^BQTdO1 z6O(MCf@6j{@+AZOMrvzVP(s&?R-lTk4f&))=}gtIh?)$>+N#ff3LKRc(#b)FXfLwsilafrsL z3&4h#=2|_HFbFaQA?Y&W#l3bAd zmA=$pt5Q7S%1%>T#(YZ`_qIucHr|Y{hhW{Tp4ZY1t#rMXJ!40!w6L`jH)}pXw^4Qb zb3REHkBq-Vvq!3p^;q|hRz(W5e7!veZ;uAK_SQUO>g478T(ia7#_5NZsj`IRRwfO` zw>}YGce;FD+&7EI{=-4K(s%fA>#RBqC493zd%bvJ2`|knO6y^1eMws|gIH=Ckwr`a z58w0b0vXQmD5GS0e#@y!7X~1|d`OHE7Yxps5{Ts|LXWi?SY@Iia?HYvt=ZcNuHTOa zLZ!<(JHyVVq$;wnNNU1JPLoQF4;vOa1D>{HS{T zHiN^q>~2}}m09VN#2g;;vSXL=OUR2W=>cY*d1bl=XwYv6XsCHFe=mNoelKFLd@p^k zeJ^CMcrSUc**MI~{YJAqkdvNDAj*8v^xrfEbzp zfcqD=L(Jcg=vRpdXP>RW=ZWHBKh)Itls8r#RbsqrB9-bVFY?ZW9u}pQMDJHAf ztT!jS`5eVSiV_~PD~VQ_6{F!|9=a_o7Wyr%(_9vulJn#%&xQC}nGSmvqAjjduSxRL zX_=>>HCnwot50!$A+yGJ5q^&TS8rj!+tW=&6|z4R0gtBM#w8w#lARr!ce zPPzQKTr$?M6H-i~4#-HvV@NroX_QQn2kobVEpO>5U-IQDA}s5P~9%yx9wZl5QT& zK8yCinT99^M;wDaUmvk5gMA2};Lc}sgj>AN-lylJFf65kPVutzs&>LWm{+@?(4Jo^ z{viMG58ik49N%dF_irlLe}feM&j{^5yh4r^j1R6E($~ykL)s;~RTBSvGucYwd}r}N zW~%bWtnhksqL&mARp_1KQ=(mm*){$4Ws4jb5D*e7kQh*&rWm3pX#9h8$qtArs*k|U zhv03XgDNVhg*%6wy@Sdf$?rc`7aS~K*I5}3<~`Sbo_mMku|G7Ws?;8K1A-LFA$J1+ zWY5I_{Y~-#1*&$vP~trvRn^@E>eM}XG$tQ$F_WT!!eD_)4|xAX z44e;(-FGow57Ox0fVzvmKQ}*(zC`-&p+75j3_xpWa@ZSj==joDoS{GE%Fp<024Z6( zV|)0852?)8n^#cA3mYy&?qV{4f)$e(7sM6#Q&<}}9*T#u*F{SW+FH-GREF`JHn+`= zAYD*CGE_ImVUKM2+Gu*j{uEua#@O=Ez+w&~8djKL58w74JJ^A6 zRe9TGr+pie(S#+4wVa!uJymAMVm6rMxzIS}+9flqlhpam6w#rWgwM{zo523nWfs-{ zOdUI`V=dnxF(6{1KNR$%tX)<{0b#iNapj(L;mx-DtKZ&tw9k3mQJcmi&}7pBzSNB; z?+|LE?C6tJX7K%FfooLE(5M~?IbJVBOXw`5L$G(bLY{xFou9|16k;QI%I@#XiPeZS zg`v00G(YGm3idmTTZx@X{5^GRXhP|MUVS#>48oS}mCUgUJ+od%DFyjr+K-xO`?e8o zthOfBHC?I#6XMBLi;<+Goq#!qQrC&O4MTYMj)4ZwVpnesAK)xRX?V#iIX8Uasz2(f z-16vkjQA;v%)M?1gB7$zcDlB@LsazZJ(f;dQCvEWC~oYRO(^EfRTkk{fO=aYBxl`T zr2~NOeI^CGBmgcW+U(@?@9HmJ&qh|N;R7JO@{wl1{GFvi1&ktWMBD1p)upDnU>r|Q zrAix|grasNerL0An95i*nl2I9((akF%~tA^i-Q)w6mO;|?!{J+2@xb(mK)6oOPd^f z6A41D*De!LkGx0qHa;g$gPI%)s9vfW?3ucRJ7XU6{NGaFkKuSbbJIGSS32J>zy89V zqKeZKsMV`Y=x0UMH|7`H-wkWYB!;i)##Pm&ySNuS)sUR%tnUzCOE=`3g}Y*1qUl=m zTwG+qc9uz=UuC;y#4*CErAl0Cma0+!aihw4$r3BS&wzwO(KB`zE^|>+4B`)Gy@-qX1(4Jmck{-C9M6fn zXDdFl>V@*aBb(-camb|!VlEaoQ!JChP+Rorf_+x&;t265OQsQq9mM3>?hFTvlJI!R zXJ$s46Gz01?2EulgAi{tZvFmw)yB$&2C+lq(A0==s7=h$RTnV#3Sk+jDgzUcB&=F$ zrp+p3Bz={=25;6#TmQ((%Pr#0F4C~ZQpsAHn1TgiQFoAI8>upszLrf(3J2suClaGi zCTl%adu7T>rD$tZ>*ey$R3vrQ34?=+*zMewgeEWf>yuMi+p}od^7jB%o&;?)fK79@ z_6s{s0<1fl=CZg;yDN$Nuw1kobj_?~$-$OXGXMln(=!C?^NQIjp_Y)fM;eAmbSCRA z#Vs=@0W13;t%#7_%`$_(mm_3tZho24;!n0^FPK8@!!DosbTbdFOhFRVxI2~^CwPpI z#&2?k3qm$Niq?*TLskHIuHt&W5e4&U-(?3G1oBtxj*L1R3lEED4@z9q3%uII#jV$! z=;NH!wP>t*KRh~}0gW}`Y$y-VfsTrp& zl3}|oDjcV)LC%;z0{vY<_bky_%1V@Y!d6)Y=^&4H|rVs~WzR zqmnLvvoSgQNW+0a(AazRxOvr0dQfq*Lheg`RXEgHJ;@xgHOR@Cu(N?J$)0r4=kh1v zF)nl*+5*Q_jU1;WCkonSSmrWrM2)Y=F*j7W6n?kg3=~wZ7DLEXDn)yA)48sa#LOSy zj%`VX>`m|X1-PbU-(lfnr-+yzlGAdx!fL!bc{s4|Q+71T7s2ZFJn9N`P{NSc8nU4^ zlSp_;NupSq=P!9L%$rG{fa`SNlG-3>g&AH6{aKI_&ygUH?q&2c;h!;?5j9IwE)p8F1x>GNh{SUPd_;2ioaXK`>cRieNJPYR zz=-;nDBF@hx)P5Lq9E2d)1(|H!I~YsOBRzZeW*118uOZvDWr|lT&)R7i@jfu;<(x* z4b%&DJ%VAj3ILolg3mDP9Ty}b(YJ8@H*f_t@X2Tu7-H#htf%Ym$AF$eoUJbASn~$9<;u{{P7Kk45 zAG$x&5PZy$p7lK1AbOTT818$C?ijq6K}{n>KJXDd^?Dnd-gof$v+ACDIY0v}-uf_} z=g+(GpTz~*y8^iU>aSd$Kk%Q)1=?wU*gp4ic<<=wI+kZu#hnA_jhl{R3wr`QBR8Cs zpNv>9IHO;5<6*2ZV)r;THb)Iw5{d@AKCy=igEikrKRA2LP~~cV-n}c_k(@7adJ^-H z@1jWjh|24Jmn_vEiWA)=bfA}nTj)(0-}g!)YBGJwX6;>FQ5aXrP&dE zv85x_?{$8$r7;YhO##a$byWkRkP&=#aRaKm|6v2INz>dNpb}C`W7s{b0>de1DFK8N zVo#gzQv8C*juc)QBz`q=)Zo~q|1J=+09AB?J(N11zSz^JCKVyw#^|N{qRwGh#96e4 zM$n%@6wNu8IlNUB_$2(7KGMstES+O;lU0H_Smjrf-VEQR`ITjxGyGPc+!;{pA<`9R zoXdR#;amrahB68!8cFs_TtSGZtY_ zWM1l&xNIqk&g_}-8fI5j`}kX>?jWic7ZleMatO`;mv~wcRZMM5;`87Osf`=z*@>Rr zkPg+>1b}5^do1q%*Xl9b=MH07+6Ur#M+xF-`-y35^Z`WH0O(7bw(eEn-{Va`j(Hxs z?`j~<_u?h&f99hyW}g2=Bu-J&Q^8Tg^pkI_m(m1=Gf+d?&}OuiETU7k{t*g|h7$x` zvW(!GlwB&rfkVD#ICncOpv2I9i*BK9c^O^A!M%@gvwmyA>Bnb*qG*VB&d6nO?XrE( zdp&ZuPhj8=vI9KMls%}63et`{P?f&YfY_IU`BZnRxp?aZi!@oWTPb|xN;_m|NFUUd znMUFvGW84I(t{sN!NaMcN(j^{~FC)=Hxo9#T z>9KUAZOH7&TO4;v)~al`2ypIG&yG<)%~lZv3HBK2P4bW)=>*>%cmuv2u*I5T0>R>) zdH=98LIzX*DsqLb-Uk6;c~&&sF%YIh#Qq!%2n8niSQJDe17gn|lykc`8~SUNs;@}F zxFRtyP>e5JJ3d}IAa2#~?bEI|MN3bxNLWQ&!OiN_)tV92_<(ME8owZ^Xz{IW-Yd$y z9AjHTX?pySjRiGjW_0Kt+u2qFa+4zYAYhGMZcuL%NbM1KmrQqF3qSp4uW z>0+MoK)0|`;rHLGcG6eKctTtk^RT+`mW}m=xTNPE=?P7>^bYuohkx>O?hP^l$2;O^ zq4}gU;_~9py4c7x2_~yM`CjLVHU3Ys4z7#6L3jhmH(rTR_(e>zBzf!ek`AIzxP?se zb13H=66srxFf!O-}-$58))_}GR(_-z~UYg{JV;?#8m zkL6)53w}{yL$4c`W(qH#BlBk>uhVZt>EGGB74l|&yBnBn=`zY)ul0)s_=~e07CE1n zV z5nd9f+-e1tH8EM`FS7C;RJwPW?35$>5-xf_iM-hA=M>!1_sn#2*43VxajIr&i`n-+ z4BOWiHrXSNl6jlTcf5mgEg7xGbYnUBucB1&56b}qwv1ArN22bibB*^ji!b1RcQVd8 zQt$rX&L!dd{nzffecK|Q zkLgV!pSaIn<++d@Y?lq|LRTZD4-Z2@)=y)VrWwr1_XHYDFYt;K#-~tBUR_vG1-P` z&$ZRl=+^9gZ@*5W5cKCHjeSUNIk5I$TF;e%iS0UgSa`lcLm72%_fKutKcM>p3}N*eLTLV;1&N?S0;+T6(pPz8oqt>{fH!vzN4 zd)bv3E>*%Vroq5ucIqxZn3?DjR?3JF@_gxfSD<0nTA@8;)^OmC)NcthF*-Ch7T0_~ zw(53McAT`{^&^du=D8(nOTuezvYp&LDGSwBnhMugGqC8V!_UPR`edJcE#ip1_t|3US8nrMa)!}~9EB0{k+&NrsOw^YC&gbSA zp0Czmm)OqR;vX3mi9LJI(b;*B=lV*ZKEiwqJG|S0+}tkkTeIkmtN>sK-=mokck##$A*Ov}}{VQej8(^i2 zak3Fw1}F^a2*e89?ana>d?;1?nVO5!F`?40hEkw5a6~fROebom&Q>;E&|d|Ys<&QX zt00KEm-joVE{YPBi;YeU9{x;{Cj{hOiF}>!M2uiRyvrlq&p(P_pMw~qchpE6J)Owo zddfF&^pJU%O_ZM`b7Igr4^dC#{nNY7K4JxyCXlrb%QapE0Snhi)Q)(ke549)#Bo#N z_qg=S>1)6s`1%Tx*A18*K|=l)eeWe9gkumUg(QkaI=)s3lryjv!5MuLnI<`hG$3)) zW{|`I5$gBjJelGo3G+_EnZ5a2aWUK87~@4Gru4lT)xqiAt^ty8Bj)>$P`E^a{M0*~ z6WkBL-^A#{m02f&FZz=uIaEZxF((z=_NdVhQyOmqdttC{h>vY4^BCpU_z_~DTbK{0 z13qFC{)9vY(qAoBDpcR=f)rv#w6V#8#if2HG|PL%AX9>N;y<<}AaC|^D{qRulA!)F zoC78}4jO|i>uN3gC;1E9%Y20M`^L3=?~D9z1+ae!1OC;b{Eq@yx5lXkiU#TzpJX~C zET|UPTwy?%pll5ez!<5a5J^Xi);)*R1T$N<-?T7)>!RlxXX|GtfwvdDAzxXGftUPS zciwA_zxYhWrEgLoqm(7rhoZB`{kHGVmyfINd;PnKmg^pfdNhNm8za?TD4;gLY6ue$ z#mhZAP+L?x$WQ2Yncgj6QzSFYN5aWGBzv?&mQaK;(TE5rOpJUlMxs4dRwTBFsM!R{ zU>qs>tOJ%JSgLd%$$L%<(d?n*2&-%w5vJ+1U3^U7D>@OFtNnowpKBl>3{c)t#YTxG zwWjcb)fN8noiiCxG;jyWrIbEb-fGMNXH60*HAHuLmz)E`JHNI0uy|8rhiRAciz%!%m10&$9bZOJRNz2sW)au((i)Dm z^HOY$pxx%mj7ogm9rjlIU_%EM)uRqG$0{#oJLfJ>B+T(}SuW?-^6chYZ_X~04)&>f z6EQ@X=VqUfMbx3qU(s>R71lzvdxT?XUT`8u<$9GBgQo>re$*~g<+7QDBa=?x?1H#v z_QQ%gvsnS*puDnHd%Y1f1AqPd#jri=;gzsF>Cv`WDPubY?vue?^_X5+xl)vsdAkN= zs!GJnhn(;ivrvLpW0G{jGW+|^vfAUT!uO1LGS};whVS*p|XM z*Pk1l=%`N=3*t%_$3!?Q9!id5aC@_~rOm<%h-?7XQ={>i$Z!P(L_(Wpk=>0rO8RfP z;gV!BhmwHtlWstBi&4#|UXe4!KbJzLXOry|sw91#$1m~#lw*_bzV6} z!A5f08l{N`;*snYc@6)J-)oyf zo^EYsarifehwucOr&WT+(UimfQTtVJnP8*h_Wd7*aN3+D!E-Xe?Yr z6W+-gHpLcCzmOmV!VXN8=Zau~3@F>Oa7T)Y`ktw@x)! zqY>qBzAu1cB^^j&JtwqjUZ!S@gS|!VfVHH&BVj;+utOM{ubz6&dGY+1X@5TStWU^# zgpnO-L7oz9l1vy136&otJ)eXw)nm4?-ij-VM>*1ky6z>8=9T+xc~rMnTRe@#%$-aM z{ISp(*u=dQbde5>g*^sCw=oy?)Yy&i)Tlb4YIt>%pNW1)DwhS{vKmXV;;0&Y1nHSO zZf>ePRLcUA8TW!lQDf>6R>RdtEpWQJM^aneb9XQLYvCctmrGH^9}vTne6{%8XqgWe z!#}gdkU6ZWn*GwCmdVV}tFq&QRJ9ZqSo?oyEqX&^36xkt6h_og^$I<2VMzt(0LQy~ zHf`PRGeseFVBU0-0|P51ESmmcd#h;4F;ha7)OliJBeY#j<=I1(T&f>}(n~Dmok5vQ zzkgS{qq~{v^M$|4e8zfK_lOb#=yuKtXEo*WZDvEX6PJt-&WMVTj-~pcmdphA!C&uS zY+B(qBIn^Vy%mW)ySJCYiKRzc&@Ewmk^cV3*eM}voTf0k;o!p|GS4cKc0pEGA-n$M0}*hn3~ zKjTE~cWCMU+}ktw4dGnirkws`yh6%nkx&O}6h5f8z^>@x<%C0+1IYP4B8srHoZTBL zP7s}MRRVP!Y9r=^YzDU-Lu^HH0`vl7_6gz^{iO|2c^}j-Y{GfvJWt|Y3AiVBmzkXr z7TortCjjh&THC#on=4KoT)@ATNmG^`Imv*B3ngu+czXD_l(q$lJ=UJUmlHG3D?zI{ z38&}`b!Lkqxji*iNuE*Mo>TJYKRU8?g6%(Tz7>w<-%||#ZGu6?)yUP#jeL^x+UlZ*CTKu@xSyZ^bw^VeIo81D zFM{J-Z~FU}$4{UgXbY)yN(#ijf>1yx3Csv=>b|$M2Y_fL_lB&la}#IDn>v2GybrN6 zAy>5xR_x8;7q=nf^*cmgyp@cCEBZnKUyj|P3Na& z?X!=ptFBa;h$t%)ed?y3qnPE!_Apx-X|vK+2@7@VE^??I9_-jr5sA6<>-J_p)DWLP z5@#V_tV>eE?h-H04-kMY6WN>)DInfnXrSaqPTnYmi`dPZLoDzqBPa&=f z2g;PcPl^8fl<@zVLa4Z!S~>jhd4!vioI<}KYWAT`fw~Z)==(uf=4!A+G!xV9VmVaU zn=-qZ)CQZ~+;h`Iek6o{fWY|kdSX5jgTrg-{r2RQpI^8C4^FWaK_nbB);Z?-NcItQ ziExvw0@qStv^PriEz<}MVHxb%)1yj?i4@^>(Smu$~NWBZEi!4sTl!6ZfTooQ#k&9DgXOvI9u6UNZGrZIXgPoe%~Jl`~Nvo7Ah+P-Oq^VTeP%Dy;?FsTno2{ zBw7IDvOpJ`Fm>hKNmQqC~rs)eDCpE7$hIIJn!CSK&>Vgzg0pirbL(awWNA( zkCBNPj3KS~b9gAEcmwiI>C}o&MXdT{eo2ZpmZG7sFW5puopNi33Sf;`1S0arEGOh6#w?j4 z@1vDSON_4qmtN-Ppu^%2r8$@sWxEqwMRm&G*PoZI3kqR$Mh{Ipl*g4xLEZ!?Gt-9? zOOX;>!Cn-uLLA59?!GZg0lYgqLyWEN8K}RvK3$wTo+(lMJ+#Wlp?z2GaiO~kfq`j_ zGU5zb5(4e8<(APVU^x)m;1-}XG$eys>a>le4W@xH)2snaCT4QI;@ri}wN(uXmg z38+wWG7lk%`?=?9d5)C<;m+*1X5Kl5E56oY0ERih8Q;bfIEL@h;0>G}m;XjDC9pia z$RU?t_2_J1q&v$pNijQsAe#HDtP^jt9^q(=v8s>bn@hga_3;mI^$O*no#Jev*d_wI5_p^0@qY{{R<%PT6a6hwrjgmDyEG~y&IJ_*JV z7D`G#O`$8fR}4c{JT!!;jpf8aY^aa=vq;!oT30^GB(pu6YFI|tS$%kdURCGh*tBa; zm@dq$>rA-29=X?M$U|?{LuA+!%VFF@CI}fY@~FyKTDst+J-mS|{gc9Y*N{AAejog) zQ)lC;)$ZJ$Z@$|uEu^w_|11J~6mw3Kutefvu2+AF@jwy$0egjqc_7%UQU@^G$k&@o(pm8D;aWSLu-DgWcoM-0rUtusQ`wo&?7!ko{GCk~?PO_@#pR{L{CC;VeUrnFWWyG+y z%n22G80x1LSW}FaNI{(g5?W)ey_7?ys=G;qrj4W_Jz&Ic89lNJ#3LB1u@7j}D90|B zQ)lJK(_te`>8YdF`iawS>CY*#$?@h)$~wTjtVB74ohpafUNz6{JhEMD@A#FgT7QWp ztInNZ7xKrlFEnXI9iGiCrHmG{`j$y;?g2xn!;qs^4|qX6E>v4awwt?25~ly&k}H}_ z=!d#(j($SzihG3S??neA*dv*L?Zu^B4Q2-;*hc}=xvdBp52|FQr)-aqIq;Lue^6@* zSl(p;%iD(moAQtzHUqwjm>7i^5)UIbWI~o z{RYG@c_%|}e=LOEG@~On@5rlz1OrjWB-JO*Z=Cy{#fwYj>~+Qi0WO>G!sbMP#`sID ze_Wy@){aGQIVX6;Ee1~W{v<@^MnKtWd9aFcN)#nf(V}N$^ch4uXo|~bJ(7vi9PwCv zJ(HK#XL)+Ew7DyfP1~7x&H$^@finLy{l|7taLo>;%S?(Br0BkpZ}UCo)>GKvXf-XX z+^Qox8*Xa-=39Ip@#0kx-BU+=y*s(1qokbMDFq96*+6m~*ht(5CLZg^ix9J15mlpF z;xufj3y?=wf#Plko)j6g6q4euZx($(4ig_fQ<$h}K{$dO#g>}MDHp7qS=crg8+gl9 zeLAf3a(QNH*+R>d4QFL0H2f(TzmzTp z>$bR($u+61Z=2C?uo1ZX8*u&Odl#_s0KAFk#|B)SmtxKEdMG+wGTUho`vdB~(m37@ z{Y*e*Ay$+a8nYZ2*5e@Kv)*=E##pt? z2~TUG{oJVEdN5_9+7dz-uLrJKm8#Ywf0@@?oLG%P%)40h$@QOhq|v1sOwZo@#Tw}; z+xzaG*GV7MSjd$8_6-rd-x?009j_yCMnUVLMR#9a=E-aPk!tdh*1TSbiW)M--PfQt#yRvtu{jn6FCU1ZM5vB7AY(J~fvEV6GVtc1HDl zgVtrWIglSd$FB2X1ip)#7Rdfo3Rh%F$~|F`a{vsCW=hIX47)tgU$K%Fm%h z&&3S^F`8*4JyqSNIv+7~8ipcQ?A=4|N*2E$WNAcHyxd3igI^tDuEm<(>zsbr?&; zs+~SJhu)u`8kSSO{sCAK=C8Co`VKD~|4&5I8P(RH#8qGTY zM`h;$)zq@}aRfz5kkE-Jz4rhDBE1Agr*Y7D(s=_MdtK?J1tDpIAZbPxdr zDVORO-qV}wQNQ=zti@W%TFh@IXL3&V?D_A#E4%ajaDvCHG|7qTD?R2?1lYb{_^(b6 zUovx=w5u`*5I<5158)BF%mFh(#gFihxtNXL*!F2#Etyy>r(IvU@!{ajdi9;mCXAXu zrVG$p-8H3>t+F?AlEb6D6*))lz2aEN2tUG`f)Ytl61KB3B$k9jAcPR-_m6zgLBl}cnf&(EV6y9f04kQnc}+{o zy$SKsH-mOxdZwwI1YdQKPA;~0a0v5v=38}|(*i&mwDWZX?3zKG0i0`qGQh2Zm17gIKqkjYSLLj&{>{@?K0zz+Qy z9a@GO&>&ATeBJx2b|F%Pg)vRFFZ=K}*@W80oQr+#fQEc&uFx@WTe!UFv1rXy68tcD zG}>ooKg6KOlF~II3cd6Bxy`t!K$UD5Dsk;8l9DxAoLKwt;*@e~)lMguA%0LHfut=QvtF4`l5ecd)MUhsGjwM6q|QS5;;k=;Q(_EmQ_ooZ0&PZ_0?j8mCmoH(jl~ z6atQM#Ch;l%dg?&MC?)UCAAx~ZzD%UB@Z7LeidIc%6*jLMPaC}Dc3?-MuG(m3?E<* zq^kMY|9}{mF+`_VL-G(;u9Nae$}L4yD)g1yhnn%?y^B9v;07UMAD^L2wMEn)4bWu! zaeJWm=UNeBms)v2k2AButRPxudklOC&Zjbnzst3IRkAnTKOH~r6$3Q#EJpJXs36KvbJ@H5b<@@ex zvLQ|^p~9Ji`V~kfAcD>p1q4T_Q*%KvG4GWV)-vLAGS{I>f7{%tI`J0Coe0n{7dd(5 ztMDyUW#E;bpw&e4E&jOvcisaBX)6svz9(OgXfVp=EiO5BI=wTYoo$kM4EfRHI1M?c^b(A}q2asg0<%%SH$AdE9%;pcaHepQF z2jy*oAV?kOsjR%Vyo&T7)VUVE7q2y;vaS!|Y9R@M^bhG+@v_lbPmD#B#|&LBjvl#k zlLr>8qu>z2bh{^x(T?f*%jeKqs0dV?e(qs{aj&AyB%a2DYS4(|CJd+jXuP}HibJOH zT0ThQ4(qbuZfjB1le{O%s)i$Y*iChDQWjm$ug6vCcLKj_!pz% z;|C3`gw0-==e~_IYsoRaFDLT&F0Ty3?Z$d$!(ufdqVcNDlF)6p&LbNN-KwZ|%>3PY zMnnD}ldcqrUTu8b!^PtF<%*`;^)OHH5|R@>tk=iL(Yqd2nc)uVt29e~o7~ZFB(}l3 ztS$1XDzM@n8NSt{H?tx_9-E*SiSWp!oE~T?q)IBC*DNJ57q=dcOVpESt|8ReZAMb3 ze;8u-1h==K$}0H@d|81dw(@z7#%;5Rq_iZ}A#$mmv2Fy5L9*sh&^}Y;!HO;-k3Q-t zrGbunfNsSRYBfWk3ws=7H93y zgL*B;op2qOHJ)#rV&wfq9yKCd*~RkJ6(FtUd!YTs7{Ayj8jzRBT~KFpM_BZ`mIUh7~0IqA{rXTtE}u4kCXb zD>H)tjy0uFi3P`efs>EHqF-ov0!@MTG_Nc%}RxC=}IknJ^ zNja$(m0>)%@0ch_;x->A8PUUlphwT&!Ix}zwC^%d3kIlNPIyjJGr=^9+fU9zLLtXa zN^{7Rb0>fHh<%ldy5aFDhLOw1aWSs~#-*W)7fwnD#Z-2DatKF}QLlEkzDd#0AClz| zj%R&nhATCF9M-Ux%FTn1b1vb;+#G^IxZ-lDuPZK6OXV+oU`kTNhhzK5t-cH@CW#y8 zIOJU1owOS$g^Y8(9cPj&QJ&@ONqVOy=H7lHi{#y$EmK-2=aW348{Nf{HO3D!i?Sby zv!~bbN<%UY1x4)*HWRJqmWu=zhSJg-gK0dYow4_bO0_d~`%}_%9ReL z^aTCuJ?HfIhNc3lp6*=pDV%>_JnQCdSj(vp`U-#ZQkYuH^f!3QWya5~N2`>a-n#4u z#A{oAigkuD3&~0)PcOd?wG+JQu>P@Yh^;Zrh$A7}T|0<+3-?_c*z5g`mNF@FIUC;~ z7l$Fo;Idt2PaaB;>bFeaunDSX!J*Ti9<&Z2pL;~rQjIbaZ;rUrMRWjz*h`fkZa939@ICiD(2k0{ zY#MfNq?5o_uf~cY!hqb~pr$SQeVl*z9)wt>yeIl$(Nus*IXBi;(FYscN8JYEa*3aM z7kuJutoGvW@`=RKwQ0Z85F6J?=bfL6@n-c7sDJMy1D;BvfxkEFMo74WWGv)6?XURu zwZT?R2HfjryeW#BcjL)7m9~w8B`vAh#PBDVi5z;eHdMlz#;j?lN8u3OYqLI?`mC?l z{PNe_WSdn*ym>%R78HmO>AtJsEk1%f?M{qZVEvlDtaPs=!kSNCvlgf;Yg@xktA)w0 zh~y*I&x@|v3>OGSb&{s5Z}i8yet12u`e-9$Wq2mFl}+dVba?7b>`Bp3Rz21gHK_!X z6W1|O^78iQ*FUd8HNRQoArf>w3TLKTp2?Va@ZNk#JWOK38u%szX^XVZ_BvjD{|KS= z)MFk-6~oMmyO6f43UU7YGQ3?l&ZPe!y=($0l#x&2(0D#MCQdumjayG%Q0wsgUQF7B zMN8$b7S8R;wA zt!mr{AS;nXZF%BRiaSPJ3=9gOMWf|vg^KRCHF0rC*BZD@r2{_AXn22Z?=o+bGHa7` zus>J^OW9iEvZ8{FDNLV)Rluquxl~Vg%(WphU{vFF!@g|14SZB-TB(qVO)(FaK(Doy z9kipXWlea3f0=&DvyRdYD<;S9c(4Dp(1+LFr=3S0`&}0?-ZbN6Lvl^vU)(5HpyZu5 zC|COGh?!f#PX1l*7y9II<7U44;6M#yqc1T8u;Gpna|fwLaL{Sa;obCUcFz?(rn}SW z5dr$p536A}NtC)W1nR$R_NB|ao3!(*61$9+KL6;)`KcW1H>_bIo~W43lAHnd{LT%r zr+2w*E+D2{1)CBFzrG5{BTXdH;ZnX0JwG15%l7s)Q5i#qv6?+w2)!J!Mz7b}^*EhN zdUz(KmDVRvxv(t= z!nAGTu&1;l$Cnsuln1KA$8}+(Iz%X31(89xELgRNkeg%k&opNfV%I-ki{nYr+YRV^ zmLFiVAaJu+7(ou9F)?lp2#<1#&`)%_n%Q0BpUPOoz^#S|NaZ7sNhm)*ALb#+C%!bN za>b%x2M;EHsgHUXI-)6f<*`6*d1q0rYs~#LHLmx$%%&HL`LI2e(|K&V`D6*%GGvdA z38L>3CbMw8)hwx32+ZDoalfW2XN!8gBbH<7dRzpq_0baoYL6!|&PcO7-qQC~>rmsY z76IGbvhaPCa9C|4a+nqV!m~|XAos4p?pE7fmF4QLtfPWewe^-j6H+VHPS@I$WCPa) zPa~FsL?PQlicXm5=`MYOxV!AfBwKk+2@ZCV2+!vaHC+dz%=!Pyj5<|#eAgqQG&?<1vX57E`!=7vWvT7xpdQ?e4*TVGGQ*W?lsIZIa_oZBWpst*shosUTh5+!** z15*#iT{?#0CWyb@pxex~J{2!oF>MvhnJ!?<9*cU#H8yV!!@E)yQG1`3JQ$a0l*B*m znLiy{r|e3-@Edp6StKdRz2SY!`aqmK1(m5W-=@!MU6|e-U;4ALKuupTm;??SFAiZ% zn|Bo5Xv3Y%<6jyJX(4dhuIF6pggcuOcxUi+?``fmdg4@xHqt^JO)7_!b_LjD@+mg) z8Uh{YLV47bs?~y?sYPWD`E^;glL*Was?SPTnkNW%rVO@<4E3sHMG$1Cr^{VTm1Qx= zqA5q&&eN;rcjg%D!i0~=#n#VxP4cXoHsxfVgq%OZ$Ep%|7IQ_YFpxVfizhp_$Zdf! zWE)p*zLKQC8e5E%0PN1;WjAAVXcYGKs+KQYym#M)XoM5=r*->1OpKbBCQ;pCX48 zSS&ppa&_fUF?`_2k&g0$_nf*@wyY}lg#^D%FJ|R+-Y1C}D#70tJ0k)DXl8GQT#Ew_ zeaiWysil+d)zBc(ggMb7LCC~eqr0QpEX|x~$XTcBRNkvPr4dqb1nP*;4{W(Us@%hS zwLmt*?MAjh5`B0NKgBAnoxnuXoG?AIL5)r3nlSX;m$LV9A*K5pj|IfYdW;Yusz`Rc zN=v?YAxt~{`gFN%7vj2?HrOaRLa|8uwXY|sEyeo`o;C?8>J&{qje|xcJq!tNjSmZ# z-3)f%QBJpbOK#S-nZ8pjg*nu$8=NvRsAdx_zv-emHY+%8msd7>C`zsnmigEYqKD`o z5DaS2AR1b{cu;^ftmbolKqrMJGr~OkWygU$`!~DA+Og)#ovX%`5D{blXmh%cF&(&& zxrt?x37Jzdg^KtaMt?D$NMZPxghp=$LqdCFqf{9QlD(wn)^IyY=NYc7__WV2HN~~h zuH1SnwG+)YVh+6-ZZ>?i6|dnywC)hF+ti5erhAN9J}=brot>!uYx({*c2J3Ye_Fx^ zs3mNZBo!O!lsA1?HMVbK!6A&F6pEi0KuoHMSDT8Ixxv&QufV>WIa5=fHGApZoZpp91l)3IdxBIDcr@HRF03lN0qwxVJ!o9@s;9{ z!|C{b78mv7Foj!CP0V+5+4kxv=X^!x7YWwe2lB}*6b2LKx(87S)XCf1s^m0YdtH+2N}S*YkaOj0aVbSMrE#;xd77;4r2F2stmCcZZ? z#)j0{OJzAtDJ}&Sd7giE;}1!JRrq3Vo=NM@q`0JK|M|Tk{n=2j{_dtMrJ^7&r=iKM zEdNhJS6Jdt1EWlt@9k`0H`MDhdG9}aC;_I5Quh6$N6Pmewhk7k6w)r1zjW;$b(b$h zg(oNy|JyC{qchUK3)of4)YQzy#lhL--!>F*5|Lc73i2o$p9%lpA0ACALS4R}RLL^7 z4)#9`eIUl>Brgw!x@$n+UAAZp3n2g_i*nwgy;DF?KQnbNKvdNdE#N z07%Z!!PN54Bsx23tRPes%WVb>3{>Rs-wo;if&@r%`}=SjIG?j_sL%DUhMK_lcDAgJ zi~!16wFzK%V42?^0HlBR@4El=djTl=3q%9!!J^S4s14gsD|a@t-=cr14htLvSPB$9 zh#2a|`0oY*6b1zj0j%JG9^&Km|8j`mf3<;m+RF*B_Y68;wtr{$KFF z$?OfhM8KSP=%J=={|`g`{xSiRj-laI>HzrfQjh`X3e2a3#<6Pya6e-Ae@J0~C}1KT zH0q)5pHSb^>Htx|93yB{iNT*xfQ%!*AOUF!(8$+!{($`b0s!O9&>&H30O+UaGvI`P zAth)|wmpFJPhl7k1B~%NV{{w<7(m1akOb7Nqe=bF0MgGYb|46-M?{0fJpmw~IuVEh zissO$MXz5_00|wC1(bZDSb^Lx>KyN6T zBo*~163{maTnC`j3(YJ;1%>^z4rmt`5CYtAq9N{y|KIi#$N}zr&>X?!|FjQMRl0x@ Tke#`SnK1%UX5{{pvv>aovcL^1 literal 0 HcmV?d00001 diff --git a/logstash-core-event-java/spec/event_spec.rb b/logstash-core-event-java/spec/event_spec.rb index 03cbffa73c6..8ccae4f6cf9 100644 --- a/logstash-core-event-java/spec/event_spec.rb +++ b/logstash-core-event-java/spec/event_spec.rb @@ -26,10 +26,10 @@ it "should serialize deep hash from field reference assignments" do e = LogStash::Event.new({TIMESTAMP => "2015-05-28T23:02:05.350Z"}) - e["foo"] = "bar" - e["bar"] = 1 - e["baz"] = 1.0 - e["[fancy][pants][socks]"] = "shoes" + e.set("foo", "bar") + e.set("bar", 1) + e.set("baz", 1.0) + e.set("[fancy][pants][socks]", "shoes") expect(JSON.parse(e.to_json)).to eq(JSON.parse("{\"@timestamp\":\"2015-05-28T23:02:05.350Z\",\"@version\":\"1\",\"foo\":\"bar\",\"bar\":1,\"baz\":1.0,\"fancy\":{\"pants\":{\"socks\":\"shoes\"}}}")) end end @@ -37,79 +37,79 @@ context "[]" do it "should get simple values" do e = LogStash::Event.new({"foo" => "bar", "bar" => 1, "baz" => 1.0, TIMESTAMP => "2015-05-28T23:02:05.350Z"}) - expect(e["foo"]).to eq("bar") - expect(e["[foo]"]).to eq("bar") - expect(e["bar"]).to eq(1) - expect(e["[bar]"]).to eq(1) - expect(e["baz"]).to eq(1.0) - expect(e["[baz]"]).to eq(1.0) - expect(e[TIMESTAMP].to_s).to eq("2015-05-28T23:02:05.350Z") - expect(e["[#{TIMESTAMP}]"].to_s).to eq("2015-05-28T23:02:05.350Z") + expect(e.get("foo")).to eq("bar") + expect(e.get("[foo]")).to eq("bar") + expect(e.get("bar")).to eq(1) + expect(e.get("[bar]")).to eq(1) + expect(e.get("baz")).to eq(1.0) + expect(e.get("[baz]")).to eq(1.0) + expect(e.get(TIMESTAMP).to_s).to eq("2015-05-28T23:02:05.350Z") + expect(e.get("[#{TIMESTAMP}]").to_s).to eq("2015-05-28T23:02:05.350Z") end it "should get deep hash values" do e = LogStash::Event.new({"foo" => {"bar" => 1, "baz" => 1.0}}) - expect(e["[foo][bar]"]).to eq(1) - expect(e["[foo][baz]"]).to eq(1.0) + expect(e.get("[foo][bar]")).to eq(1) + expect(e.get("[foo][baz]")).to eq(1.0) end it "should get deep array values" do e = LogStash::Event.new({"foo" => ["bar", 1, 1.0]}) - expect(e["[foo][0]"]).to eq("bar") - expect(e["[foo][1]"]).to eq(1) - expect(e["[foo][2]"]).to eq(1.0) - expect(e["[foo][3]"]).to be_nil + expect(e.get("[foo][0]")).to eq("bar") + expect(e.get("[foo][1]")).to eq(1) + expect(e.get("[foo][2]")).to eq(1.0) + expect(e.get("[foo][3]")).to be_nil end end context "[]=" do it "should set simple values" do e = LogStash::Event.new() - expect(e["foo"] = "bar").to eq("bar") - expect(e["foo"]).to eq("bar") + expect(e.set("foo", "bar")).to eq("bar") + expect(e.get("foo")).to eq("bar") e = LogStash::Event.new({"foo" => "test"}) - expect(e["foo"] = "bar").to eq("bar") - expect(e["foo"]).to eq("bar") + expect(e.set("foo", "bar")).to eq("bar") + expect(e.get("foo")).to eq("bar") end it "should set deep hash values" do e = LogStash::Event.new() - expect(e["[foo][bar]"] = "baz").to eq("baz") - expect(e["[foo][bar]"]).to eq("baz") - expect(e["[foo][baz]"]).to be_nil + expect(e.set("[foo][bar]", "baz")).to eq("baz") + expect(e.get("[foo][bar]")).to eq("baz") + expect(e.get("[foo][baz]")).to be_nil end it "should set deep array values" do e = LogStash::Event.new() - expect(e["[foo][0]"] = "bar").to eq("bar") - expect(e["[foo][0]"]).to eq("bar") - expect(e["[foo][1]"] = 1).to eq(1) - expect(e["[foo][1]"]).to eq(1) - expect(e["[foo][2]"] = 1.0 ).to eq(1.0) - expect(e["[foo][2]"]).to eq(1.0) - expect(e["[foo][3]"]).to be_nil + expect(e.set("[foo][0]", "bar")).to eq("bar") + expect(e.get("[foo][0]")).to eq("bar") + expect(e.set("[foo][1]", 1)).to eq(1) + expect(e.get("[foo][1]")).to eq(1) + expect(e.set("[foo][2]", 1.0)).to eq(1.0) + expect(e.get("[foo][2]")).to eq(1.0) + expect(e.get("[foo][3]")).to be_nil end it "should add key when setting nil value" do e = LogStash::Event.new() - e["[foo]"] = nil + e.set("[foo]", nil) expect(e.to_hash).to include("foo" => nil) end # BigDecinal is now natively converted by JRuby, see https://github.com/elastic/logstash/pull/4838 it "should set BigDecimal" do e = LogStash::Event.new() - e["[foo]"] = BigDecimal.new(1) - expect(e["foo"]).to be_kind_of(BigDecimal) - expect(e["foo"]).to eq(BigDecimal.new(1)) + e.set("[foo]", BigDecimal.new(1)) + expect(e.get("foo")).to be_kind_of(BigDecimal) + expect(e.get("foo")).to eq(BigDecimal.new(1)) end it "should set RubyBignum" do e = LogStash::Event.new() - e["[foo]"] = -9223372036854776000 - expect(e["foo"]).to be_kind_of(Bignum) - expect(e["foo"]).to eq(-9223372036854776000) + e.set("[foo]", -9223372036854776000) + expect(e.get("foo")).to be_kind_of(Bignum) + expect(e.get("foo")).to eq(-9223372036854776000) end end @@ -117,7 +117,7 @@ it "getters should present a Ruby LogStash::Timestamp" do e = LogStash::Event.new() expect(e.timestamp.class).to eq(LogStash::Timestamp) - expect(e[TIMESTAMP].class).to eq(LogStash::Timestamp) + expect(e.get(TIMESTAMP).class).to eq(LogStash::Timestamp) end it "to_hash should inject a Ruby LogStash::Timestamp" do @@ -134,9 +134,9 @@ it "should set timestamp" do e = LogStash::Event.new now = Time.now - e["@timestamp"] = LogStash::Timestamp.at(now.to_i) + e.set("@timestamp", LogStash::Timestamp.at(now.to_i)) expect(e.timestamp.to_i).to eq(now.to_i) - expect(e["@timestamp"].to_i).to eq(now.to_i) + expect(e.get("@timestamp").to_i).to eq(now.to_i) end end @@ -144,16 +144,16 @@ it "should append" do event = LogStash::Event.new("message" => "hello world") event.append(LogStash::Event.new("message" => "another thing")) - expect(event["message"]).to eq(["hello world", "another thing"]) + expect(event.get("message")).to eq(["hello world", "another thing"]) end end context "tags" do it "should tag" do event = LogStash::Event.new("message" => "hello world") - expect(event["tags"]).to be_nil - event["tags"] = ["foo"] - expect(event["tags"]).to eq(["foo"]) + expect(event.get("tags")).to be_nil + event.tag("foo") + expect(event.get("tags")).to eq(["foo"]) end end @@ -258,8 +258,8 @@ def self.warn(message) expect(LogStash::Event.from_json(source_json).size).to eq(1) event = LogStash::Event.from_json(source_json)[0] - expect(event["[foo]"]).to eq(1) - expect(event["[bar]"]).to eq("baz") + expect(event.get("[foo]")).to eq(1) + expect(event.get("[bar]")).to eq("baz") end it "should ignore blank strings" do diff --git a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java index 1cb630d5a75..8cf5024f339 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java +++ b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java @@ -140,14 +140,14 @@ public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) return context.nil; } - @JRubyMethod(name = "[]", required = 1) + @JRubyMethod(name = "get", required = 1) public IRubyObject ruby_get_field(ThreadContext context, RubyString reference) { Object value = this.event.getField(reference.asJavaString()); return Rubyfier.deep(context.runtime, value); } - @JRubyMethod(name = "[]=", required = 2) + @JRubyMethod(name = "set", required = 2) public IRubyObject ruby_set_field(ThreadContext context, RubyString reference, IRubyObject value) { String r = reference.asJavaString(); diff --git a/logstash-core-event/lib/logstash/event.rb b/logstash-core-event/lib/logstash/event.rb index b1eb9d46cdb..7a9b7d133c9 100644 --- a/logstash-core-event/lib/logstash/event.rb +++ b/logstash-core-event/lib/logstash/event.rb @@ -54,6 +54,7 @@ class DeprecatedMethod < StandardError; end VERSION_ONE = "1" TIMESTAMP_FAILURE_TAG = "_timestampparsefailure" TIMESTAMP_FAILURE_FIELD = "_@timestamp" + TAGS = "tags".freeze METADATA = "@metadata".freeze METADATA_BRACKETS = "[#{METADATA}]".freeze @@ -113,7 +114,7 @@ def timestamp=(val) @data[TIMESTAMP] = val end - def [](fieldref) + def get(fieldref) if fieldref.start_with?(METADATA_BRACKETS) @metadata_accessors.get(fieldref[METADATA_BRACKETS.length .. -1]) elsif fieldref == METADATA @@ -123,7 +124,7 @@ def [](fieldref) end end - def []=(fieldref, value) + def set(fieldref, value) if fieldref == TIMESTAMP && !value.is_a?(LogStash::Timestamp) raise TypeError, "The field '@timestamp' must be a (LogStash::Timestamp, not a #{value.class} (#{value})" end @@ -201,8 +202,9 @@ def sprintf(format) def tag(value) # Generalize this method for more usability - self["tags"] ||= [] - self["tags"] << value unless self["tags"].include?(value) + tags = @accessors.get(TAGS) || [] + tags << value unless tags.include?(value) + @accessors.set(TAGS, tags) end def to_hash_with_metadata @@ -269,9 +271,8 @@ def init_timestamp(o) logger.warn("Error parsing #{TIMESTAMP} string, setting current time to #{TIMESTAMP}, original in #{TIMESTAMP_FAILURE_FIELD} field", :value => o.inspect, :exception => e.message) end - @data["tags"] ||= [] - @data["tags"] << TIMESTAMP_FAILURE_TAG unless @data["tags"].include?(TIMESTAMP_FAILURE_TAG) - @data[TIMESTAMP_FAILURE_FIELD] = o + tag(TIMESTAMP_FAILURE_TAG) + @accessors.set(TIMESTAMP_FAILURE_FIELD, o) LogStash::Timestamp.now end diff --git a/logstash-core-event/lib/logstash/string_interpolation.rb b/logstash-core-event/lib/logstash/string_interpolation.rb index 13044e4c005..aaa54981165 100644 --- a/logstash-core-event/lib/logstash/string_interpolation.rb +++ b/logstash-core-event/lib/logstash/string_interpolation.rb @@ -115,7 +115,7 @@ def initialize(key) end def evaluate(event) - value = event[@key] + value = event.get(@key) case value when nil diff --git a/logstash-core-event/spec/logstash/event_spec.rb b/logstash-core-event/spec/logstash/event_spec.rb index 0389ffc6d25..8c6d60db291 100644 --- a/logstash-core-event/spec/logstash/event_spec.rb +++ b/logstash-core-event/spec/logstash/event_spec.rb @@ -8,68 +8,68 @@ shared_examples "all event tests" do context "[]=" do it "should raise an exception if you attempt to set @timestamp to a value type other than a Time object" do - expect{subject["@timestamp"] = "crash!"}.to raise_error(TypeError) + expect{subject.set("@timestamp", "crash!")}.to raise_error(TypeError) end it "should assign simple fields" do - expect(subject["foo"]).to be_nil - expect(subject["foo"] = "bar").to eq("bar") - expect(subject["foo"]).to eq("bar") + expect(subject.get("foo")).to be_nil + expect(subject.set("foo", "bar")).to eq("bar") + expect(subject.get("foo")).to eq("bar") end it "should overwrite simple fields" do - expect(subject["foo"]).to be_nil - expect(subject["foo"] = "bar").to eq("bar") - expect(subject["foo"]).to eq("bar") + expect(subject.get("foo")).to be_nil + expect(subject.set("foo", "bar")).to eq("bar") + expect(subject.get("foo")).to eq("bar") - expect(subject["foo"] = "baz").to eq("baz") - expect(subject["foo"]).to eq("baz") + expect(subject.set("foo", "baz")).to eq("baz") + expect(subject.get("foo")).to eq("baz") end it "should assign deep fields" do - expect(subject["[foo][bar]"]).to be_nil - expect(subject["[foo][bar]"] = "baz").to eq("baz") - expect(subject["[foo][bar]"]).to eq("baz") + expect(subject.get("[foo][bar]")).to be_nil + expect(subject.set("[foo][bar]", "baz")).to eq("baz") + expect(subject.get("[foo][bar]")).to eq("baz") end it "should overwrite deep fields" do - expect(subject["[foo][bar]"]).to be_nil - expect(subject["[foo][bar]"] = "baz").to eq("baz") - expect(subject["[foo][bar]"]).to eq("baz") + expect(subject.get("[foo][bar]")).to be_nil + expect(subject.set("[foo][bar]", "baz")).to eq("baz") + expect(subject.get("[foo][bar]")).to eq("baz") - expect(subject["[foo][bar]"] = "zab").to eq("zab") - expect(subject["[foo][bar]"]).to eq("zab") + expect(subject.set("[foo][bar]", "zab")).to eq("zab") + expect(subject.get("[foo][bar]")).to eq("zab") end it "allow to set the @metadata key to a hash" do - subject["@metadata"] = { "action" => "index" } - expect(subject["[@metadata][action]"]).to eq("index") + subject.set("@metadata", { "action" => "index" }) + expect(subject.get("[@metadata][action]")).to eq("index") end it "should add key when setting nil value" do - subject["[baz]"] = nil + subject.set("[baz]", nil) expect(subject.to_hash).to include("baz" => nil) end it "should set nil element within existing array value" do - subject["[foo]"] = ["bar", "baz"] + subject.set("[foo]", ["bar", "baz"]) - expect(subject["[foo][0]"] = nil).to eq(nil) - expect(subject["[foo]"]).to eq([nil, "baz"]) + expect(subject.set("[foo][0]", nil)).to eq(nil) + expect(subject.get("[foo]")).to eq([nil, "baz"]) end it "should set nil in first element within empty array" do - subject["[foo]"] = [] + subject.set("[foo]", []) - expect(subject["[foo][0]"] = nil).to eq(nil) - expect(subject["[foo]"]).to eq([nil]) + expect(subject.set("[foo][0]", nil)).to eq(nil) + expect(subject.get("[foo]")).to eq([nil]) end it "should set nil in second element within empty array" do - subject["[foo]"] = [] + subject.set("[foo]", []) - expect(subject["[foo][1]"] = nil).to eq(nil) - expect(subject["[foo]"]).to eq([nil, nil]) + expect(subject.set("[foo][1]", nil)).to eq(nil) + expect(subject.get("[foo]")).to eq([nil, nil]) end end @@ -79,7 +79,7 @@ event = LogStash::Event.new({ "reference" => data }) LogStash::Util::Decorators.add_fields({"reference_test" => "%{reference}"}, event, "dummy-plugin") data.downcase! - expect(event["reference_test"]).not_to eq(data) + expect(event.get("reference_test")).not_to eq(data) end it "should not return a Fixnum reference" do @@ -87,7 +87,7 @@ event = LogStash::Event.new({ "reference" => data }) LogStash::Util::Decorators.add_fields({"reference_test" => "%{reference}"}, event, "dummy-plugin") data += 41 - expect(event["reference_test"]).to eq("1") + expect(event.get("reference_test")).to eq("1") end it "should report a unix timestamp for %{+%s}" do @@ -124,7 +124,7 @@ it "should report fields with %{field} syntax" do expect(subject.sprintf("%{type}")).to eq("sprintf") - expect(subject.sprintf("%{message}")).to eq(subject["message"]) + expect(subject.sprintf("%{message}")).to eq(subject.get("message")) end it "should print deep fields" do @@ -153,35 +153,35 @@ end it "should render nil array values as leading empty string" do - expect(subject["foo"] = [nil, "baz"]).to eq([nil, "baz"]) + expect(subject.set("foo", [nil, "baz"])).to eq([nil, "baz"]) - expect(subject["[foo][0]"]).to be_nil - expect(subject["[foo][1]"]).to eq("baz") + expect(subject.get("[foo][0]")).to be_nil + expect(subject.get("[foo][1]")).to eq("baz") expect(subject.sprintf("%{[foo]}")).to eq(",baz") end it "should render nil array values as middle empty string" do - expect(subject["foo"] = ["bar", nil, "baz"]).to eq(["bar", nil, "baz"]) + expect(subject.set("foo", ["bar", nil, "baz"])).to eq(["bar", nil, "baz"]) - expect(subject["[foo][0]"]).to eq("bar") - expect(subject["[foo][1]"]).to be_nil - expect(subject["[foo][2]"]).to eq("baz") + expect(subject.get("[foo][0]")).to eq("bar") + expect(subject.get("[foo][1]")).to be_nil + expect(subject.get("[foo][2]")).to eq("baz") expect(subject.sprintf("%{[foo]}")).to eq("bar,,baz") end it "should render nil array values as trailing empty string" do - expect(subject["foo"] = ["bar", nil]).to eq(["bar", nil]) + expect(subject.set("foo", ["bar", nil])).to eq(["bar", nil]) - expect(subject["[foo][0]"]).to eq("bar") - expect(subject["[foo][1]"]).to be_nil + expect(subject.get("[foo][0]")).to eq("bar") + expect(subject.get("[foo][1]")).to be_nil expect(subject.sprintf("%{[foo]}")).to eq("bar,") end it "should render deep arrays with nil value" do - subject["[foo]"] = [[12, nil], 56] + subject.set("[foo]", [[12, nil], 56]) expect(subject.sprintf("%{[foo]}")).to eq("12,,56") end @@ -198,18 +198,18 @@ context "#[]" do it "should fetch data" do - expect(subject["type"]).to eq("sprintf") + expect(subject.get("type")).to eq("sprintf") end it "should fetch fields" do - expect(subject["a"]).to eq("b") - expect(subject['c']['d']).to eq("f") + expect(subject.get("a")).to eq("b") + expect(subject.get('c')['d']).to eq("f") end it "should fetch deep fields" do - expect(subject["[j][k1]"]).to eq("v") - expect(subject["[c][d]"]).to eq("f") - expect(subject['[f][g][h]']).to eq("i") - expect(subject['[j][k3][4]']).to eq("m") - expect(subject['[j][5]']).to eq(7) + expect(subject.get("[j][k1]")).to eq("v") + expect(subject.get("[c][d]")).to eq("f") + expect(subject.get('[f][g][h]')).to eq("i") + expect(subject.get('[j][k3][4]')).to eq("m") + expect(subject.get('[j][5]')).to eq(7) end @@ -217,7 +217,7 @@ count = 1000000 2.times do start = Time.now - count.times { subject["[j][k1]"] } + count.times { subject.get("[j][k1]") } duration = Time.now - start puts "event #[] rate: #{"%02.0f/sec" % (count / duration)}, elapsed: #{duration}s" end @@ -263,11 +263,11 @@ ) subject.overwrite(new_event) - expect(subject["message"]).to eq("foo bar") - expect(subject["type"]).to eq("new") + expect(subject.get("message")).to eq("foo bar") + expect(subject.get("type")).to eq("new") ["tags", "source", "a", "c", "f", "j"].each do |field| - expect(subject[field]).to be_nil + expect(subject.get(field)).to be_nil end end end @@ -275,7 +275,7 @@ context "#append" do it "should append strings to an array" do subject.append(LogStash::Event.new("message" => "another thing")) - expect(subject["message"]).to eq([ "hello world", "another thing" ]) + expect(subject.get("message")).to eq([ "hello world", "another thing" ]) end it "should concatenate tags" do @@ -283,54 +283,54 @@ # added to_a for when array is a Java Collection when produced from json input # TODO: we have to find a better way to handle this in tests. maybe override # rspec eq or == to do an explicit to_a when comparing arrays? - expect(subject["tags"].to_a).to eq([ "tag1", "tag2" ]) + expect(subject.get("tags").to_a).to eq([ "tag1", "tag2" ]) end context "when event field is nil" do it "should add single value as string" do subject.append(LogStash::Event.new({"field1" => "append1"})) - expect(subject[ "field1" ]).to eq("append1") + expect(subject.get("field1")).to eq("append1") end it "should add multi values as array" do subject.append(LogStash::Event.new({"field1" => [ "append1","append2" ]})) - expect(subject[ "field1" ]).to eq([ "append1","append2" ]) + expect(subject.get("field1")).to eq([ "append1","append2" ]) end end context "when event field is a string" do - before { subject[ "field1" ] = "original1" } + before { subject.set("field1", "original1") } it "should append string to values, if different from current" do subject.append(LogStash::Event.new({"field1" => "append1"})) - expect(subject[ "field1" ]).to eq([ "original1", "append1" ]) + expect(subject.get("field1")).to eq([ "original1", "append1" ]) end it "should not change value, if appended value is equal current" do subject.append(LogStash::Event.new({"field1" => "original1"})) - expect(subject[ "field1" ]).to eq("original1") + expect(subject.get("field1")).to eq("original1") end it "should concatenate values in an array" do subject.append(LogStash::Event.new({"field1" => [ "append1" ]})) - expect(subject[ "field1" ]).to eq([ "original1", "append1" ]) + expect(subject.get("field1")).to eq([ "original1", "append1" ]) end it "should join array, removing duplicates" do subject.append(LogStash::Event.new({"field1" => [ "append1","original1" ]})) - expect(subject[ "field1" ]).to eq([ "original1", "append1" ]) + expect(subject.get("field1")).to eq([ "original1", "append1" ]) end end context "when event field is an array" do - before { subject[ "field1" ] = [ "original1", "original2" ] } + before { subject.set("field1", [ "original1", "original2" ] )} it "should append string values to array, if not present in array" do subject.append(LogStash::Event.new({"field1" => "append1"})) - expect(subject[ "field1" ]).to eq([ "original1", "original2", "append1" ]) + expect(subject.get("field1")).to eq([ "original1", "original2", "append1" ]) end it "should not append string values, if the array already contains it" do subject.append(LogStash::Event.new({"field1" => "original1"})) - expect(subject[ "field1" ]).to eq([ "original1", "original2" ]) + expect(subject.get("field1")).to eq([ "original1", "original2" ]) end it "should join array, removing duplicates" do subject.append(LogStash::Event.new({"field1" => [ "append1","original1" ]})) - expect(subject[ "field1" ]).to eq([ "original1", "original2", "append1" ]) + expect(subject.get("field1")).to eq([ "original1", "original2", "append1" ]) end end @@ -342,7 +342,7 @@ data = { "@timestamp" => "2013-12-21T07:25:06.605Z" } event = LogStash::Event.new(data) - expect(event["@timestamp"]).to be_a(LogStash::Timestamp) + expect(event.get("@timestamp")).to be_a(LogStash::Timestamp) duration = 0 [warmup, count].each do |i| @@ -411,13 +411,13 @@ it "should tag for invalid value" do event = LogStash::Event.new("@timestamp" => "foo") expect(event.timestamp.to_i).to be_within(1).of Time.now.to_i - expect(event["tags"]).to eq([LogStash::Event::TIMESTAMP_FAILURE_TAG]) - expect(event[LogStash::Event::TIMESTAMP_FAILURE_FIELD]).to eq("foo") + expect(event.get("tags")).to eq([LogStash::Event::TIMESTAMP_FAILURE_TAG]) + expect(event.get(LogStash::Event::TIMESTAMP_FAILURE_FIELD)).to eq("foo") event = LogStash::Event.new("@timestamp" => 666) expect(event.timestamp.to_i).to be_within(1).of Time.now.to_i - expect(event["tags"]).to eq([LogStash::Event::TIMESTAMP_FAILURE_TAG]) - expect(event[LogStash::Event::TIMESTAMP_FAILURE_FIELD]).to eq(666) + expect(event.get("tags")).to eq([LogStash::Event::TIMESTAMP_FAILURE_TAG]) + expect(event.get(LogStash::Event::TIMESTAMP_FAILURE_FIELD)).to eq(666) end it "should warn for invalid value" do @@ -432,8 +432,8 @@ it "should tag for invalid string format" do event = LogStash::Event.new("@timestamp" => "foo") expect(event.timestamp.to_i).to be_within(1).of Time.now.to_i - expect(event["tags"]).to eq([LogStash::Event::TIMESTAMP_FAILURE_TAG]) - expect(event[LogStash::Event::TIMESTAMP_FAILURE_FIELD]).to eq("foo") + expect(event.get("tags")).to eq([LogStash::Event::TIMESTAMP_FAILURE_TAG]) + expect(event.get(LogStash::Event::TIMESTAMP_FAILURE_FIELD)).to eq("foo") end it "should warn for invalid string format" do @@ -478,7 +478,7 @@ end it "should still allow normal field access" do - expect(subject["hello"]).to eq("world") + expect(subject.get("hello")).to eq("world") end end @@ -491,15 +491,15 @@ expect(fieldref).to start_with("[@metadata]") # Set it. - subject[fieldref] = value + subject.set(fieldref, value) end it "should still allow normal field access" do - expect(subject["normal"]).to eq("normal") + expect(subject.get("normal")).to eq("normal") end it "should allow getting" do - expect(subject[fieldref]).to eq(value) + expect(subject.get(fieldref)).to eq(value) end it "should be hidden from .to_json" do @@ -522,10 +522,10 @@ context "with no metadata" do subject { LogStash::Event.new("foo" => "bar") } it "should have no metadata" do - expect(subject["@metadata"]).to be_empty + expect(subject.get("@metadata")).to be_empty end it "should still allow normal field access" do - expect(subject["foo"]).to eq("bar") + expect(subject.get("foo")).to eq("bar") end it "should not include the @metadata key" do @@ -599,7 +599,7 @@ end it "return the string containing the timestamp, the host and the message" do - expect(event1.to_s).to eq("#{timestamp.to_iso8601} #{event1["host"]} #{event1["message"]}") + expect(event1.to_s).to eq("#{timestamp.to_iso8601} #{event1.get("host")} #{event1.get("message")}") end end @@ -607,27 +607,27 @@ let(:event) { LogStash::Event.new({ "message" => "foo" }) } it "should invalidate target caching" do - expect(event["[a][0]"]).to be_nil + expect(event.get("[a][0]")).to be_nil - expect(event["[a][0]"] = 42).to eq(42) - expect(event["[a][0]"]).to eq(42) - expect(event["[a]"]).to eq({"0" => 42}) + expect(event.set("[a][0]", 42)).to eq(42) + expect(event.get("[a][0]")).to eq(42) + expect(event.get("[a]")).to eq({"0" => 42}) - expect(event["[a]"] = [42, 24]).to eq([42, 24]) - expect(event["[a]"]).to eq([42, 24]) + expect(event.set("[a]", [42, 24])).to eq([42, 24]) + expect(event.get("[a]")).to eq([42, 24]) - expect(event["[a][0]"]).to eq(42) + expect(event.get("[a][0]")).to eq(42) - expect(event["[a]"] = [24, 42]).to eq([24, 42]) - expect(event["[a][0]"]).to eq(24) + expect(event.set("[a]", [24, 42])).to eq([24, 42]) + expect(event.get("[a][0]")).to eq(24) - expect(event["[a][0]"] = {"a "=> 99, "b" => 98}).to eq({"a "=> 99, "b" => 98}) - expect(event["[a][0]"]).to eq({"a "=> 99, "b" => 98}) + expect(event.set("[a][0]", {"a "=> 99, "b" => 98})).to eq({"a "=> 99, "b" => 98}) + expect(event.get("[a][0]")).to eq({"a "=> 99, "b" => 98}) - expect(event["[a]"]).to eq([{"a "=> 99, "b" => 98}, 42]) - expect(event["[a][0]"]).to eq({"a "=> 99, "b" => 98}) - expect(event["[a][1]"]).to eq(42) - expect(event["[a][0][b]"]).to eq(98) + expect(event.get("[a]")).to eq([{"a "=> 99, "b" => 98}, 42]) + expect(event.get("[a][0]")).to eq({"a "=> 99, "b" => 98}) + expect(event.get("[a][1]")).to eq(42) + expect(event.get("[a][0][b]")).to eq(98) end end end diff --git a/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb b/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb index e83d1586c2e..ced5939392b 100644 --- a/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb +++ b/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb @@ -1,2 +1,2 @@ # encoding: utf-8 -LOGSTASH_CORE_PLUGIN_API = "1.0.0" +LOGSTASH_CORE_PLUGIN_API = "2.0.0" diff --git a/logstash-core/lib/logstash/config/config_ast.rb b/logstash-core/lib/logstash/config/config_ast.rb index 7a583d578df..96a7ee46a85 100644 --- a/logstash-core/lib/logstash/config/config_ast.rb +++ b/logstash-core/lib/logstash/config/config_ast.rb @@ -512,7 +512,7 @@ def compile end class Selector < RValue def compile - return "event[#{text_value.inspect}]" + return "event.get(#{text_value.inspect})" end end class SelectorElement < Node; end diff --git a/logstash-core/lib/logstash/filters/base.rb b/logstash-core/lib/logstash/filters/base.rb index c666a225bf7..d97c2342d63 100644 --- a/logstash-core/lib/logstash/filters/base.rb +++ b/logstash-core/lib/logstash/filters/base.rb @@ -187,12 +187,12 @@ def filter_matched(event) # this is important because a construct like event["tags"].delete(tag) will not work # in the current Java event implementation. see https://github.com/elastic/logstash/issues/4140 @remove_tag.each do |tag| - tags = event["tags"] + tags = event.get("tags") break if tags.nil? || tags.empty? tag = event.sprintf(tag) @logger.debug? and @logger.debug("filters/#{self.class.name}: removing tag", :tag => tag) tags.delete(tag) - event["tags"] = tags + event.set("tags", tags) end end # def filter_matched diff --git a/logstash-core/lib/logstash/inputs/base.rb b/logstash-core/lib/logstash/inputs/base.rb index d02bbd567e5..cb7a25d720b 100644 --- a/logstash-core/lib/logstash/inputs/base.rb +++ b/logstash-core/lib/logstash/inputs/base.rb @@ -97,7 +97,7 @@ def stop? protected def decorate(event) # Only set 'type' if not already set. This is backwards-compatible behavior - event["type"] = @type if @type && !event.include?("type") + event.set("type", @type) if @type && !event.include?("type") LogStash::Util::Decorators.add_fields(@add_field,event,"inputs/#{self.class.name}") LogStash::Util::Decorators.add_tags(@tags,event,"inputs/#{self.class.name}") diff --git a/logstash-core/lib/logstash/util/decorators.rb b/logstash-core/lib/logstash/util/decorators.rb index 265656e5ce9..c7807e883b1 100644 --- a/logstash-core/lib/logstash/util/decorators.rb +++ b/logstash-core/lib/logstash/util/decorators.rb @@ -7,7 +7,7 @@ module LogStash::Util # Decorators provides common manipulation on the event data. module Decorators extend self - + @logger = Cabin::Channel.get(LogStash) # fields is a hash of field => value @@ -22,11 +22,11 @@ def add_fields(fields,event, pluginname) # note below that the array field needs to be updated then reassigned to the event. # this is important because a construct like event[field] << v will not work # in the current Java event implementation. see https://github.com/elastic/logstash/issues/4140 - a = Array(event[field]) + a = Array(event.get(field)) a << v - event[field] = a + event.set(field, a) else - event[field] = v + event.set(field, v) end @logger.debug? and @logger.debug("#{pluginname}: adding value to field", :field => field, :value => value) end @@ -41,9 +41,9 @@ def add_tags(tags, event, pluginname) # note below that the tags array field needs to be updated then reassigned to the event. # this is important because a construct like event["tags"] << tag will not work # in the current Java event implementation. see https://github.com/elastic/logstash/issues/4140 - tags = event["tags"] || [] + tags = event.get("tags") || [] tags << tag - event["tags"] = tags + event.set("tags", tags) end end diff --git a/logstash-core/spec/conditionals_spec.rb b/logstash-core/spec/conditionals_spec.rb index dab6fc901e3..c4c68ec4c58 100644 --- a/logstash-core/spec/conditionals_spec.rb +++ b/logstash-core/spec/conditionals_spec.rb @@ -64,24 +64,24 @@ def conditional(expression, &block) CONFIG sample({"foo" => "bar"}) do - expect(subject["always"]).to eq("awesome") - expect(subject["hello"]).to eq("world") - expect(subject["fancy"]).to be_nil - expect(subject["free"]).to be_nil + expect(subject.get("always")).to eq("awesome") + expect(subject.get("hello")).to eq("world") + expect(subject.get("fancy")).to be_nil + expect(subject.get("free")).to be_nil end sample({"notfoo" => "bar"}) do - expect(subject["always"]).to eq("awesome") - expect(subject["hello"]).to be_nil - expect(subject["fancy"]).to be_nil - expect(subject["free"]).to eq("hugs") + expect(subject.get("always")).to eq("awesome") + expect(subject.get("hello")).to be_nil + expect(subject.get("fancy")).to be_nil + expect(subject.get("free")).to eq("hugs") end sample({"bar" => "baz"}) do - expect(subject["always"]).to eq("awesome") - expect(subject["hello"]).to be_nil - expect(subject["fancy"]).to eq("pants") - expect(subject["free"]).to be_nil + expect(subject.get("always")).to eq("awesome") + expect(subject.get("hello")).to be_nil + expect(subject.get("fancy")).to eq("pants") + expect(subject.get("free")).to be_nil end end @@ -102,31 +102,31 @@ def conditional(expression, &block) CONFIG sample("foo" => "bar", "nest" => 124) do - expect(subject["always"]).to be_nil - expect(subject["hello"]).to be_nil - expect(subject["fancy"]).to be_nil - expect(subject["free"]).to be_nil + expect(subject.get("always")).to be_nil + expect(subject.get("hello")).to be_nil + expect(subject.get("fancy")).to be_nil + expect(subject.get("free")).to be_nil end sample("foo" => "bar", "nest" => 123) do - expect(subject["always"]).to eq("awesome") - expect(subject["hello"]).to eq("world") - expect(subject["fancy"]).to be_nil - expect(subject["free"]).to be_nil + expect(subject.get("always")).to eq("awesome") + expect(subject.get("hello")).to eq("world") + expect(subject.get("fancy")).to be_nil + expect(subject.get("free")).to be_nil end sample("notfoo" => "bar", "nest" => 123) do - expect(subject["always"]).to eq("awesome") - expect(subject["hello"]).to be_nil - expect(subject["fancy"]).to be_nil - expect(subject["free"]).to eq("hugs") + expect(subject.get("always")).to eq("awesome") + expect(subject.get("hello")).to be_nil + expect(subject.get("fancy")).to be_nil + expect(subject.get("free")).to eq("hugs") end sample("bar" => "baz", "nest" => 123) do - expect(subject["always"]).to eq("awesome") - expect(subject["hello"]).to be_nil - expect(subject["fancy"]).to eq("pants") - expect(subject["free"]).to be_nil + expect(subject.get("always")).to eq("awesome") + expect(subject.get("hello")).to be_nil + expect(subject.get("fancy")).to eq("pants") + expect(subject.get("free")).to be_nil end end @@ -140,7 +140,7 @@ def conditional(expression, &block) CONFIG sample("foo" => 123, "bar" => 123) do - expect(subject["tags"] ).to include("woot") + expect(subject.get("tags") ).to include("woot") end end @@ -169,12 +169,12 @@ def conditional(expression, &block) CONFIG sample("foo" => "foo", "foobar" => "foobar", "greeting" => "hello world") do - expect(subject["tags"]).to include("field in field") - expect(subject["tags"]).to include("field in string") - expect(subject["tags"]).to include("string in field") - expect(subject["tags"]).to include("field in list") - expect(subject["tags"]).not_to include("shouldnotexist") - expect(subject["tags"]).to include("shouldexist") + expect(subject.get("tags")).to include("field in field") + expect(subject.get("tags")).to include("field in string") + expect(subject.get("tags")).to include("string in field") + expect(subject.get("tags")).to include("field in list") + expect(subject.get("tags")).not_to include("shouldnotexist") + expect(subject.get("tags")).to include("shouldexist") end end @@ -192,107 +192,107 @@ def conditional(expression, &block) sample("foo" => "foo", "somelist" => [ "one", "two" ], "foobar" => "foobar", "greeting" => "hello world", "tags" => [ "fancypantsy" ]) do # verify the original exists - expect(subject["tags"]).to include("fancypantsy") + expect(subject.get("tags")).to include("fancypantsy") - expect(subject["tags"]).to include("baz") - expect(subject["tags"]).not_to include("foo") - expect(subject["tags"]).to include("notfoo") - expect(subject["tags"]).to include("notsomelist") - expect(subject["tags"]).not_to include("somelist") - expect(subject["tags"]).to include("no string in missing field") + expect(subject.get("tags")).to include("baz") + expect(subject.get("tags")).not_to include("foo") + expect(subject.get("tags")).to include("notfoo") + expect(subject.get("tags")).to include("notsomelist") + expect(subject.get("tags")).not_to include("somelist") + expect(subject.get("tags")).to include("no string in missing field") end end describe "operators" do conditional "[message] == 'sample'" do - sample("sample") { expect(subject["tags"] ).to include("success") } - sample("different") { expect(subject["tags"] ).to include("failure") } + sample("sample") { expect(subject.get("tags") ).to include("success") } + sample("different") { expect(subject.get("tags") ).to include("failure") } end conditional "[message] != 'sample'" do - sample("sample") { expect(subject["tags"] ).to include("failure") } - sample("different") { expect(subject["tags"] ).to include("success") } + sample("sample") { expect(subject.get("tags") ).to include("failure") } + sample("different") { expect(subject.get("tags") ).to include("success") } end conditional "[message] < 'sample'" do - sample("apple") { expect(subject["tags"] ).to include("success") } - sample("zebra") { expect(subject["tags"] ).to include("failure") } + sample("apple") { expect(subject.get("tags") ).to include("success") } + sample("zebra") { expect(subject.get("tags") ).to include("failure") } end conditional "[message] > 'sample'" do - sample("zebra") { expect(subject["tags"] ).to include("success") } - sample("apple") { expect(subject["tags"] ).to include("failure") } + sample("zebra") { expect(subject.get("tags") ).to include("success") } + sample("apple") { expect(subject.get("tags") ).to include("failure") } end conditional "[message] <= 'sample'" do - sample("apple") { expect(subject["tags"] ).to include("success") } - sample("zebra") { expect(subject["tags"] ).to include("failure") } - sample("sample") { expect(subject["tags"] ).to include("success") } + sample("apple") { expect(subject.get("tags") ).to include("success") } + sample("zebra") { expect(subject.get("tags") ).to include("failure") } + sample("sample") { expect(subject.get("tags") ).to include("success") } end conditional "[message] >= 'sample'" do - sample("zebra") { expect(subject["tags"] ).to include("success") } - sample("sample") { expect(subject["tags"] ).to include("success") } - sample("apple") { expect(subject["tags"] ).to include("failure") } + sample("zebra") { expect(subject.get("tags") ).to include("success") } + sample("sample") { expect(subject.get("tags") ).to include("success") } + sample("apple") { expect(subject.get("tags") ).to include("failure") } end conditional "[message] =~ /sample/" do - sample("apple") { expect(subject["tags"] ).to include("failure") } - sample("sample") { expect(subject["tags"] ).to include("success") } - sample("some sample") { expect(subject["tags"] ).to include("success") } + sample("apple") { expect(subject.get("tags") ).to include("failure") } + sample("sample") { expect(subject.get("tags") ).to include("success") } + sample("some sample") { expect(subject.get("tags") ).to include("success") } end conditional "[message] !~ /sample/" do - sample("apple") { expect(subject["tags"]).to include("success") } - sample("sample") { expect(subject["tags"]).to include("failure") } - sample("some sample") { expect(subject["tags"]).to include("failure") } + sample("apple") { expect(subject.get("tags")).to include("success") } + sample("sample") { expect(subject.get("tags")).to include("failure") } + sample("some sample") { expect(subject.get("tags")).to include("failure") } end end describe "negated expressions" do conditional "!([message] == 'sample')" do - sample("sample") { expect(subject["tags"]).not_to include("success") } - sample("different") { expect(subject["tags"]).not_to include("failure") } + sample("sample") { expect(subject.get("tags")).not_to include("success") } + sample("different") { expect(subject.get("tags")).not_to include("failure") } end conditional "!([message] != 'sample')" do - sample("sample") { expect(subject["tags"]).not_to include("failure") } - sample("different") { expect(subject["tags"]).not_to include("success") } + sample("sample") { expect(subject.get("tags")).not_to include("failure") } + sample("different") { expect(subject.get("tags")).not_to include("success") } end conditional "!([message] < 'sample')" do - sample("apple") { expect(subject["tags"]).not_to include("success") } - sample("zebra") { expect(subject["tags"]).not_to include("failure") } + sample("apple") { expect(subject.get("tags")).not_to include("success") } + sample("zebra") { expect(subject.get("tags")).not_to include("failure") } end conditional "!([message] > 'sample')" do - sample("zebra") { expect(subject["tags"]).not_to include("success") } - sample("apple") { expect(subject["tags"]).not_to include("failure") } + sample("zebra") { expect(subject.get("tags")).not_to include("success") } + sample("apple") { expect(subject.get("tags")).not_to include("failure") } end conditional "!([message] <= 'sample')" do - sample("apple") { expect(subject["tags"]).not_to include("success") } - sample("zebra") { expect(subject["tags"]).not_to include("failure") } - sample("sample") { expect(subject["tags"]).not_to include("success") } + sample("apple") { expect(subject.get("tags")).not_to include("success") } + sample("zebra") { expect(subject.get("tags")).not_to include("failure") } + sample("sample") { expect(subject.get("tags")).not_to include("success") } end conditional "!([message] >= 'sample')" do - sample("zebra") { expect(subject["tags"]).not_to include("success") } - sample("sample") { expect(subject["tags"]).not_to include("success") } - sample("apple") { expect(subject["tags"]).not_to include("failure") } + sample("zebra") { expect(subject.get("tags")).not_to include("success") } + sample("sample") { expect(subject.get("tags")).not_to include("success") } + sample("apple") { expect(subject.get("tags")).not_to include("failure") } end conditional "!([message] =~ /sample/)" do - sample("apple") { expect(subject["tags"]).not_to include("failure") } - sample("sample") { expect(subject["tags"]).not_to include("success") } - sample("some sample") { expect(subject["tags"]).not_to include("success") } + sample("apple") { expect(subject.get("tags")).not_to include("failure") } + sample("sample") { expect(subject.get("tags")).not_to include("success") } + sample("some sample") { expect(subject.get("tags")).not_to include("success") } end conditional "!([message] !~ /sample/)" do - sample("apple") { expect(subject["tags"]).not_to include("success") } - sample("sample") { expect(subject["tags"]).not_to include("failure") } - sample("some sample") { expect(subject["tags"]).not_to include("failure") } + sample("apple") { expect(subject.get("tags")).not_to include("success") } + sample("sample") { expect(subject.get("tags")).not_to include("failure") } + sample("some sample") { expect(subject.get("tags")).not_to include("failure") } end end @@ -300,47 +300,47 @@ def conditional(expression, &block) describe "value as an expression" do # testing that a field has a value should be true. conditional "[message]" do - sample("apple") { expect(subject["tags"]).to include("success") } - sample("sample") { expect(subject["tags"]).to include("success") } - sample("some sample") { expect(subject["tags"]).to include("success") } + sample("apple") { expect(subject.get("tags")).to include("success") } + sample("sample") { expect(subject.get("tags")).to include("success") } + sample("some sample") { expect(subject.get("tags")).to include("success") } end # testing that a missing field has a value should be false. conditional "[missing]" do - sample("apple") { expect(subject["tags"]).to include("failure") } - sample("sample") { expect(subject["tags"]).to include("failure") } - sample("some sample") { expect(subject["tags"]).to include("failure") } + sample("apple") { expect(subject.get("tags")).to include("failure") } + sample("sample") { expect(subject.get("tags")).to include("failure") } + sample("some sample") { expect(subject.get("tags")).to include("failure") } end end describe "logic operators" do describe "and" do conditional "[message] and [message]" do - sample("whatever") { expect(subject["tags"]).to include("success") } + sample("whatever") { expect(subject.get("tags")).to include("success") } end conditional "[message] and ![message]" do - sample("whatever") { expect(subject["tags"]).to include("failure") } + sample("whatever") { expect(subject.get("tags")).to include("failure") } end conditional "![message] and [message]" do - sample("whatever") { expect(subject["tags"]).to include("failure") } + sample("whatever") { expect(subject.get("tags")).to include("failure") } end conditional "![message] and ![message]" do - sample("whatever") { expect(subject["tags"]).to include("failure") } + sample("whatever") { expect(subject.get("tags")).to include("failure") } end end describe "or" do conditional "[message] or [message]" do - sample("whatever") { expect(subject["tags"]).to include("success") } + sample("whatever") { expect(subject.get("tags")).to include("success") } end conditional "[message] or ![message]" do - sample("whatever") { expect(subject["tags"]).to include("success") } + sample("whatever") { expect(subject.get("tags")).to include("success") } end conditional "![message] or [message]" do - sample("whatever") { expect(subject["tags"]).to include("success") } + sample("whatever") { expect(subject.get("tags")).to include("success") } end conditional "![message] or ![message]" do - sample("whatever") { expect(subject["tags"]).to include("failure") } + sample("whatever") { expect(subject.get("tags")).to include("failure") } end end end @@ -348,19 +348,19 @@ def conditional(expression, &block) describe "field references" do conditional "[field with space]" do sample("field with space" => "hurray") do - expect(subject["tags"]).to include("success") + expect(subject.get("tags")).to include("success") end end conditional "[field with space] == 'hurray'" do sample("field with space" => "hurray") do - expect(subject["tags"]).to include("success") + expect(subject.get("tags")).to include("success") end end conditional "[nested field][reference with][some spaces] == 'hurray'" do sample({"nested field" => { "reference with" => { "some spaces" => "hurray" } } }) do - expect(subject["tags"]).to include("success") + expect(subject.get("tags")).to include("success") end end end @@ -385,13 +385,13 @@ def conditional(expression, &block) expect(subject).to be_an(Array) expect(subject.length).to eq(2) - expect(subject[0]["type"]).to eq("original") - expect(subject[0]["cond1"]).to eq("true") - expect(subject[0]["cond2"]).to eq(nil) + expect(subject[0].get("type")).to eq("original") + expect(subject[0].get("cond1")).to eq("true") + expect(subject[0].get("cond2")).to eq(nil) - expect(subject[1]["type"]).to eq("clone") - # expect(subject[1]["cond1"]).to eq(nil) - # expect(subject[1]["cond2"]).to eq("true") + expect(subject[1].get("type")).to eq("clone") + # expect(subject[1].get("cond1")).to eq(nil) + # expect(subject[1].get("cond2")).to eq("true") end end @@ -413,16 +413,16 @@ def conditional(expression, &block) sample({"type" => "original"}) do # puts subject.inspect - expect(subject[0]["cond1"]).to eq(nil) - expect(subject[0]["cond2"]).to eq(nil) + expect(subject[0].get("cond1")).to eq(nil) + expect(subject[0].get("cond2")).to eq(nil) - expect(subject[1]["type"]).to eq("clone1") - expect(subject[1]["cond1"]).to eq("true") - expect(subject[1]["cond2"]).to eq(nil) + expect(subject[1].get("type")).to eq("clone1") + expect(subject[1].get("cond1")).to eq("true") + expect(subject[1].get("cond2")).to eq(nil) - expect(subject[2]["type"]).to eq("clone2") - expect(subject[2]["cond1"]).to eq(nil) - expect(subject[2]["cond2"]).to eq("true") + expect(subject[2].get("type")).to eq("clone2") + expect(subject[2].get("cond1")).to eq(nil) + expect(subject[2].get("cond2")).to eq("true") end end diff --git a/logstash-core/spec/logstash/filters/base_spec.rb b/logstash-core/spec/logstash/filters/base_spec.rb index 177c44dcb8c..26c5d6c5438 100644 --- a/logstash-core/spec/logstash/filters/base_spec.rb +++ b/logstash-core/spec/logstash/filters/base_spec.rb @@ -62,7 +62,7 @@ def filter(event) CONFIG sample "example" do - insist { subject["new_field"] } == ["new_value", "new_value_2"] + insist { subject.get("new_field") } == ["new_value", "new_value_2"] end end @@ -76,7 +76,7 @@ def filter(event) CONFIG sample("type" => "noop") do - insist { subject["tags"] } == ["test"] + insist { subject.get("tags") } == ["test"] end end @@ -90,11 +90,11 @@ def filter(event) CONFIG sample("type" => "noop") do - insist { subject["tags"] } == ["test"] + insist { subject.get("tags") } == ["test"] end sample("type" => "noop", "tags" => ["t1", "t2"]) do - insist { subject["tags"] } == ["t1", "t2", "test"] + insist { subject.get("tags") } == ["t1", "t2", "test"] end end @@ -108,19 +108,19 @@ def filter(event) CONFIG sample("type" => "noop") do - insist { subject["tags"] } == ["test"] + insist { subject.get("tags") } == ["test"] end sample("type" => "noop", "tags" => ["t1"]) do - insist { subject["tags"] } == ["t1", "test"] + insist { subject.get("tags") } == ["t1", "test"] end sample("type" => "noop", "tags" => ["t1", "t2"]) do - insist { subject["tags"] } == ["t1", "t2", "test"] + insist { subject.get("tags") } == ["t1", "t2", "test"] end sample("type" => "noop", "tags" => ["t1", "t2", "t3"]) do - insist { subject["tags"] } == ["t1", "t2", "t3", "test"] + insist { subject.get("tags") } == ["t1", "t2", "t3", "test"] end end @@ -134,27 +134,27 @@ def filter(event) CONFIG sample("type" => "noop", "tags" => ["t4"]) do - insist { subject["tags"] } == ["t4"] + insist { subject.get("tags") } == ["t4"] end sample("type" => "noop", "tags" => ["t1", "t2", "t3"]) do - insist { subject["tags"] } == ["t1"] + insist { subject.get("tags") } == ["t1"] end # also test from Json deserialized data to test the handling of native Java collections by JrJackson # see https://github.com/elastic/logstash/issues/2261 sample(LogStash::Json.load("{\"type\":\"noop\", \"tags\":[\"t1\", \"t2\", \"t3\"]}")) do - insist { subject["tags"] } == ["t1"] + insist { subject.get("tags") } == ["t1"] end sample("type" => "noop", "tags" => ["t1", "t2"]) do - insist { subject["tags"] } == ["t1"] + insist { subject.get("tags") } == ["t1"] end # also test from Json deserialized data to test the handling of native Java collections by JrJackson # see https://github.com/elastic/logstash/issues/2261 sample(LogStash::Json.load("{\"type\":\"noop\", \"tags\":[\"t1\", \"t2\"]}")) do - insist { subject["tags"] } == ["t1"] + insist { subject.get("tags") } == ["t1"] end end @@ -168,13 +168,13 @@ def filter(event) CONFIG sample("type" => "noop", "tags" => ["t1", "goaway", "t3"], "blackhole" => "goaway") do - insist { subject["tags"] } == ["t1", "t3"] + insist { subject.get("tags") } == ["t1", "t3"] end # also test from Json deserialized data to test the handling of native Java collections by JrJackson # see https://github.com/elastic/logstash/issues/2261 sample(LogStash::Json.load("{\"type\":\"noop\", \"tags\":[\"t1\", \"goaway\", \"t3\"], \"blackhole\":\"goaway\"}")) do - insist { subject["tags"] } == ["t1", "t3"] + insist { subject.get("tags") } == ["t1", "t3"] end end @@ -230,7 +230,7 @@ def filter(event) sample("type" => "noop", "t1" => ["t2", "t3"]) do insist { subject }.include?("t1") - insist { subject["[t1][0]"] } == "t3" + insist { subject.get("[t1][0]") } == "t3" end end diff --git a/logstash-core/spec/logstash/inputs/base_spec.rb b/logstash-core/spec/logstash/inputs/base_spec.rb index d87f07b49f6..a3f01fa89e1 100644 --- a/logstash-core/spec/logstash/inputs/base_spec.rb +++ b/logstash-core/spec/logstash/inputs/base_spec.rb @@ -15,50 +15,50 @@ def register; end input = LogStash::Inputs::NOOP.new("tags" => "value") evt = LogStash::Event.new({"type" => "noop"}) input.instance_eval {decorate(evt)} - expect(evt["tags"]).to eq(["value"]) + expect(evt.get("tags")).to eq(["value"]) end it "should add multiple tag" do input = LogStash::Inputs::NOOP.new("tags" => ["value1","value2"]) evt = LogStash::Event.new({"type" => "noop"}) input.instance_eval {decorate(evt)} - expect(evt["tags"]).to eq(["value1","value2"]) + expect(evt.get("tags")).to eq(["value1","value2"]) end it "should allow duplicates tag" do input = LogStash::Inputs::NOOP.new("tags" => ["value","value"]) evt = LogStash::Event.new({"type" => "noop"}) input.instance_eval {decorate(evt)} - expect(evt["tags"]).to eq(["value","value"]) + expect(evt.get("tags")).to eq(["value","value"]) end it "should add tag with sprintf" do input = LogStash::Inputs::NOOP.new("tags" => "%{type}") evt = LogStash::Event.new({"type" => "noop"}) input.instance_eval {decorate(evt)} - expect(evt["tags"]).to eq(["noop"]) + expect(evt.get("tags")).to eq(["noop"]) end it "should add single field" do input = LogStash::Inputs::NOOP.new("add_field" => {"field" => "value"}) evt = LogStash::Event.new({"type" => "noop"}) input.instance_eval {decorate(evt)} - expect(evt["field"]).to eq("value") + expect(evt.get("field")).to eq("value") end it "should add single field with sprintf" do input = LogStash::Inputs::NOOP.new("add_field" => {"%{type}" => "%{type}"}) evt = LogStash::Event.new({"type" => "noop"}) input.instance_eval {decorate(evt)} - expect(evt["noop"]).to eq("noop") + expect(evt.get("noop")).to eq("noop") end it "should add multiple field" do input = LogStash::Inputs::NOOP.new("add_field" => {"field" => ["value1", "value2"], "field2" => "value"}) evt = LogStash::Event.new({"type" => "noop"}) input.instance_eval {decorate(evt)} - expect(evt["field"]).to eq(["value1","value2"]) - expect(evt["field2"]).to eq("value") + expect(evt.get("field")).to eq(["value1","value2"]) + expect(evt.get("field2")).to eq("value") end end diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index f7ef5c36221..e17ddff719c 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -279,7 +279,7 @@ class TestPipeline < LogStash::Pipeline CONFIG sample("hello") do - expect(subject["message"]).to eq("hello") + expect(subject.get("message")).to eq("hello") end end @@ -299,10 +299,10 @@ class TestPipeline < LogStash::Pipeline sample(["foo", "bar"]) do expect(subject.size).to eq(2) - expect(subject[0]["message"]).to eq("foo\nbar") - expect(subject[0]["type"]).to be_nil - expect(subject[1]["message"]).to eq("foo\nbar") - expect(subject[1]["type"]).to eq("clone1") + expect(subject[0].get("message")).to eq("foo\nbar") + expect(subject[0].get("type")).to be_nil + expect(subject[1].get("message")).to eq("foo\nbar") + expect(subject[1].get("type")).to eq("clone1") end end end @@ -354,17 +354,17 @@ class TestPipeline < LogStash::Pipeline sample("hello") do expect(subject.size).to eq(3) - expect(subject[0]["message"]).to eq("hello") - expect(subject[0]["type"]).to be_nil - expect(subject[0]["foo"]).to eq("bar") + expect(subject[0].get("message")).to eq("hello") + expect(subject[0].get("type")).to be_nil + expect(subject[0].get("foo")).to eq("bar") - expect(subject[1]["message"]).to eq("hello") - expect(subject[1]["type"]).to eq("clone1") - expect(subject[1]["foo"]).to eq("bar") + expect(subject[1].get("message")).to eq("hello") + expect(subject[1].get("type")).to eq("clone1") + expect(subject[1].get("foo")).to eq("bar") - expect(subject[2]["message"]).to eq("hello") - expect(subject[2]["type"]).to eq("clone2") - expect(subject[2]["foo"]).to eq("bar") + expect(subject[2].get("message")).to eq("hello") + expect(subject[2].get("type")).to eq("clone2") + expect(subject[2].get("foo")).to eq("bar") end end end @@ -441,7 +441,7 @@ class TestPipeline < LogStash::Pipeline # give us a bit of time to flush the events wait(5).for do next unless output && output.events && output.events.first - output.events.first["message"].split("\n").count + output.events.first.get("message").split("\n").count end.to eq(number_of_events) pipeline.shutdown end From 40301af835e44cf2dbe8f2b8ea69d4e1575710bf Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Fri, 6 May 2016 14:34:16 -0400 Subject: [PATCH 079/632] remove unnecessary jar file introduced for the plugin-api-v2 transition --- .../logstash-core-event-java.jar | Bin 42384 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.jar diff --git a/logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.jar b/logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.jar deleted file mode 100644 index ec9ed306bc6a98b3217b2d78f3cc9147363b09b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42384 zcma%?V~{A(mZi(KZQHhO^OkMfwr$(C?W$Y0ZQat`H?OCs-|L=;$;gwxcAm`0*s;$# z-`c4l4GaPW00032AQPV@0r2+#`p4z(0r_{ximC|GO3I1R0|O}hXCQM#rbMG3&<*zA z0L;Gw<-Z2X3d%`}i7Knm$%;M7PEW~5)6y-#O4Cx!PR}(dF)TCh9UmM6{g=tcqEi3m zsUUwRGqSV!mj_D!+nd4uM~ts?cIFUFx6)w;=B3h~ewjYu56}(xc~gR?t*)vR8tPK zVJtvfiq?h5Fz24i9&{||UaQhCBA{7fQksm#s!oanS5T$7E5+@^OZF>24%l3<5px6| zQw;QUYrl5s@v5*NV=~nYy9aM)Gd`lV^misBjd%U@$!?g_laZ&_y)QI3VBt)lJAymd zNfR4(WY?b$l4BwCRvXYRQD`VC8sid#O`L-pie52-EWcHoZnl4;yV-dBjL8WgJ>}d!|za6HgF`e0%YlV~B zI?{MdH4c5m471HFGd%BM%1S~;aC5#^+#=5;*TmUWXcK>mrtdR>PcRcEb5ytH)7AS~$-*TOz z7YIzM_LLe3#bCb+IxQxKW6WEM!JSMhQ)MBCOh)qa+uWA??u>o&xv7>lW=>6* zJSyoDTGZF~3hyVpk4dpV z4(mRsKfuic{0!#pw-<0C{gnCLaM~ zuoV_vn7h>w+YaIvV(X#cj@BIV_SybAu8y7mDV!F|r-Cqjl@@*5%`hFfQoyM9r|y9O z7R;Eb!e&jV_6o)TLLMJ&M)Ew(fox54r$*trHNM*djl+ESj;-OH#1&9lnwfKi^zk3z zTB^1VB5M+Am5zvlHGM@lOlU*>A~^}>C{OrO&UJfCr7HS`c2(F4^?HJ0N97?JG>Uep zJSJK(LKieyo;y@L3|q@w!83X($@Q3FAR6M%iB&5XT9x8PZM|tWDV9mIQycgbmZhjX{hxDR3Kl z=nB3xsXXbDv69A;=tw#t%Nkh|M)mg&XNu2lhZFm^xVwa*Ld|AR1|ECl-ZPd{9^h;p zo+wf%Fry}o%DbS}>>M^weIv|6x{XREV6eirVDz$^?;>+@uBc-@oS0M|46*oYIZs>k zmg}NdJhC(1?DeSy;;RwJO91{|V7dt#5+pO~Gq^72FjC2H`T)G!RK~8MTEMminjFEfiQ$BFS3T1$$rOi*Y`T2n%R$ADM0Z=$8;|v%D@t>; zc>(_}d|_se7Bxwuruh5O*W}`ce?(+DH$5@(K^uv>R7*2`jnJx*yMMtbaW-POle%gXxaF~h;L|}6X6P9u6O+IZ*t>5)r9~r=%&1) zJhQp>_nPXJO|>d!xD_IHZQA)+`7Pemy^Jb02HSr5Uc+f8l9+t*U+Di=fc--c#nL89 zih%+EkV5}cg#AM^{ihxhwzji1ar~#giBZ#bLsrGuUMkLD!}Nsg5wMVkE-9w95k*KC zCW;ZPFQAASIdI90J{RDMm=MvvbrVf^?d?LVds8Z}E_u7aze9f`*P(IAW1b*M8ZDW* z$aZ>pul?{o&3eDC%ku@Z2igTk96&{t7Q_*i8j&{CQFBlonW9n)G#^S~(?LF@7J5=; z^pfS#gBKdXrrLoil-8IJf`DFMLHLviiw_{gvx5xM45+DK2*N;UTn)lNIgB9)4UwY@ zMyn3{MOZ_GKWKn5d}srRu9~c}1_i{p#B|LG+B-hn2;|3;$B5!gCOf4;Q&)#IlH8j~ zj3jrmwYY}o6A!tphD#hlYdeRJ^9Y9uyB|@)CU$dMVf`z0;zhF&FLAaax6>OU-=dZg@Lu(+P+I{zd4VJTXw(# zG^h}Bq9W6g6;neZ8w1}p3N4&vRk4FAuvA3Bru7CSdWaC?A~m9xY(%tRr|4`QWjKml z7Y-0dojfayle;Yx3}mDtSbm3$`QF;nv>?dRPL+pdo_Bn7<3rVspk*5Oed0RvO8SWh8v0W3&XYn?90 zbtgbV+PIB?)H5q&Tx`p<^ZZHlg1S4iwEfA-(_&$*-sG`&wA5%KWHo71z{itpX|FC5 z&}GvYT!X26_xfI(;-Z66iAE{tuF{+s##tkfsxNVj7ob9@-XW|R5)l< zIJ=|5ndQ6-ORaf z7s*V?w=^S;-*9r%Kz2rf80Qx=CT}F;Vv4PZ&o?AG+2}gh5^H0Oj}bf(Al$gi>fay; zJ)o3Rl-s9&(2uS}b&}CV4LX|lgz~@e|F!s9eU+3*{M{$R{4K!$*aiPf@f9&}Hj%S4 zHu-1yO;NG1TM|I<$(o9BNJ`XePA)=;OcI#!DM==_At^2wv^)dvYoDw z0lW{u?~fCj-jJ0AgtZGjc!^)zn z6;@9W7ZgQgN7+)TFX{g!(f8;*h7$Mzr zOX`Y&_G~$ZlOAf*NqZ>pmbyuG43CLqavRQUT$MWY`XLwe;nHM~M6UjvS?Xi{C$%{) z2Xdj+6J~0q^c16Y^#ZbK6%KBP9LqzmT(mTgE7l+sUZzXlyizdlXbsz5J^4XVQ=tUu$qULh!DsLJi>yvV>F!EmGnM3b{D2Lp8;j*2FX$^PProo|91G7V zGAx!UYBG!UVMQP=?A)Es05mMUVktg`CezSX#DP}PP!@@^36R#Q+$!GCDRBESW}T(c zHjIPri=k0utCG)=AMR5cQd`jm*Oz;>9Fcf@TduUyq1}bbtJd=_hT&TF4b8=umvpo6 z!Q?J5&%itWgHsuJprDllVZf1dr%GXNUUrs4G(>74G0Y^RWIBG0+KIS$xz>KjHiQ<7 zi6G)qoJ%K~3PW}QIT?AfZ9K*`^Z24yY&F)w5#R~*Za>t>ZMct^clfY62|wsw)6*;h z1c-cm3N%_hO6h_YK;SmfJ4TI3c2PPB{gQfN;|QUWFhvNx1RUd|gG@G2dodT`bSz|( z#sJmG+!CMQE~_UUNCx`Pe<3FSSp9pS-i{Uk0RZTL{|CS!YHw#`{(m#jMrqUbZwB&i za%_*bqi?V@AIo)c&^ib3f!zbuh@fVMiTUidYnu^oVspw3n+-?{@Z14_8?o7Pa6o_6*%}LCdZ>Gv8WH9>SUYu}z7IBdkCAhJ zNi8^9rN_*6JCS0nW_Kx^4Ra7Lv00B8Z(3&wh^8~Ctl@Rw(o~1XaLo*e5H%hYBm>uV zSY#J`&3<6PP+OJ|6V5WO9snRY{4_{62sX4tc|OL0M;91k0Xb(U}gSYhYHXu?n^Mu^#9* zFHti;HAiSRlqNZ!IM*SSjyEQm0@oktJ=$mGN^>#;y>#{j1;B2XOvHoM4sJYB<|qct z3NxaKQN$XmD8%st{^3cpV4YK;o==idt1`?wU|qybY&+YX$msI>w^Sgs5dscF004L( z1^~eL_gWzDGW3;$Rhwe%`mYD@zm*nKN$5Mi(Y0|E#JgGT5Y7!Zp? z?R8Xq0;zZ>7*1yCcB8FT7pt~DvG%I1jaXy-3TXtaiOqN`nZ;7ERhF&fhUs>yYaL%| z?Ph0a^7pJ;T`{$0u(jWrmtWs)_gu%H2YS9&P$I3N+xtaFPuZedkBVTus$!@=y(~Y~ z3w`cq`n*qee3m7CX(jmPPr~%?SHk=c^KqpJkL(`EQ{H@o1<#o&t%X22xnATWcm$KOGPr3{2emV#M*USsf!m_UdE+LM)d%F zbdB=jgsP>Lj}I+t6HHS_TlBO<>pa%taxeSwR=qsf*xlV@t64nTCx)B?1|Ew$1T#%7 zPP{w-!Grxn^z??KN;D6SOS)mKA06S_+}l;*z<8frVubN*ALrS5x`m1#LPxLlA^||m z?3UeQp4ctA)&69$>YbMO>d{AUAMC>lDHO$VyBCdS@pNmJgBY|y{Xv5dJ6=?S?lDKhUeeVxVzInPg$}eIw?D#g4S_!bgoNEyArs?FBAAO;}~b%)nDr zYO)5eqSc_tY=c>3BonhOJhAZN&J^kKN5jj{R9ufWG<4dTD?@6I18w$dFP$HlXOHVP z!uchvE$m}xEl-kAd8O4DNCEQF9}yp1y(QxjSler8^Tqk)b^q(TR>Dl*kE1cp!qt_h zo_K4er?1T^pT9fFVs`o&S2t&SGou+er^iRv%PZY`*8G>9Jh}4o%Pj8x*Y+3iwwK$@ z)fK2SpVjt+`LayFaHOJ<^|TCQjRJTqmc^7z4pvNC9ER}N(u7FY9S?>y47XBj`Jp3Y zEdj$ChV*dtj7$k_4S4>J&4hvSGPZO&?_p7pY2_|PbQV#;Q9L65uVOSAzw`8JCIJ9;jemo^PmhRO!%ygXupIEOOc0|)IV{>PN(pMd6K|JdCbWw^1T{Y5Q z-HDi=Miw_6ZDC~bTPLpP-q&CpxAji0d035OH5uQ6WQ#8i2@^WJgh;drKGAWT+4t=@2{5%pqnCqs7j>)adp3#M0hmnNu?+uW*rs>2Ghm{RT z-G%}PPEvmx4h%T4q~Ns3H=_k{C~c8bDVcimz!gmQjsk+s;0)D4->??maYk5&z!WTi z#&iv2rUaV^iA^AzUKmrE?n~8|VCY!gvs2APbCEVuY#2?v)b?o7x)F>8szIVf7>GVm z>;MTGg}TUmn#0IwiPzQ5Rkvdl(&0yvBMVqiu&`#)#SkM@r8M8}H5g5>fRqemFN&eO zR+1=n(A3qGgkRLz3`^^jb?rea6648+vC;?&k+=@b(5UC1#g^1; zL9ds@j0k~J!I}e*ZC{J*jiwe3=yteEE1uq2<3w^RZf>UG$irrE8zOagOT|+khsyN{ z_C=Uy5}Tvf8?bR{I=9IgIkS5km7)Rkf~uvcwGLFd-0b&oky1dmpr%#J9XbQq**TD2 zg&r74hyTf!BR@};LpFEE-v!gOo**&H=^gIjdMzkGKhKhJ5w%8kbzTl1L0y~TdW84e3it=bS(Cyz=hm<| zqOx1ZzdO55KL`9cg%B@P|H68)%$ZMWS9Fw~CA;RZ;jNy6JA6C|Cj@&W-WI4qWKafl zcnVmI%0vbv@#5J(B)D0!%#5@0kulbSr|{9iGy6PLK${>VTplD=upW@)M}P)bA}%h5 zl-5b3tZpLX-9w(jo}DJ}3?|-q(w9GG)_LD2oUeK*=;?#&i_yJEen}W>%mwc_cvjL= z<&ZJw_9PkZwv`2M^*#9Pwpd{RaBX#Q>0sy;EH&3P`%Nz=x2Wz2lIQRy(+Q(AnY;F$ zviOI`ib-Dcx=Z;m2w4;QipRud3`|+f(onL_3-=Fo`lT+>os9!=4qFN!FO0TqY2h{T zgh7!mOgrv#0400<6tV|a8m?v!xNpS`1mg9B(C+ZrFC<4!*q}oFvX2b3TlwPY0%I1$ zt}z_ABOT)W#>5(knB9uUo+qZI!b@-LbawPg|BJARkmkDtSns-}W>X;8Z!jsvK}% z_!o22Ns)&(i6~bGReXmxK4ef$?pJtaPtyylpzcFbKn9Y4Lh_3j$X&7n_PR>cxY%uu zsyW=zXj8bNhBbB+8THW`L_K5K6yuN?R$D!B{EH$a6GeR%5x~Ql{V|5qc&jHACW;*wtTgG|xL%&dJ zv8CN&V>OX0t(ik}=1N@bWK$jn4@6Q*_Suw5Oj@?%UqRy=fN)k2hCC6F>?sR6QSGXT z91a}9bhD|HekFUX|1O2k69Scf8Iy`*q|y)ekZZtio?x$LL}OG|s;8m(1fY80RpFum z^~~?@3LdQmS;LVYh22a%RxXwHiIbA;F0K!yaujc8CZ)nqBDAH@BJ7=csG+;9bZk%l zME{kk6s9#%>+JY7Q>9jf=DXRT<->^**CWN?V!J;P`;}l)>}JGjRN*2@MLzGcC=qc> zo=8p@7!7PRfPq&Uq9Qm|5q!WR)iht!N+=W;8J@0WnLRp3m0mQdXrw}4nWx}`ye(Yj zaFb(MgZJpA`-sipmu96G^X^moj+@@M$%^0q$y?hI`d-(5f|p6XfOgoSG?wp|cZB@} zZ4ZWuzwv7D0+M1Nf&wdt3{I~&QD8weVrZ*@=bb(ImAUJbKqYQ8+Yzo4pR z8{T^Yl%gEpDM$K^f;) zNS!jIzdmVHPooB8duO~Ej_P_PU`bhIooeX;4LVdByqQ%CdJvCl3#2+DPUf|=piEci zX@9i^{V_*|U99=#2yIOc<6~12x5zf)8#Gfm)EjM0?G13KMb!h9j}+r8UbIW9buEgJ_)uSrngqEpfw3O zTBYV??^YMJ9!b-L3fI(^<|C@Ms9DAxglH*0R=i#O8!d4|J6NTZpTcup-~C-+VG6&D z-m$tA0AsNLxZ>r=8kK8#-xXG%ZZg}ffDHt2bxI%zkUS;}&NY0ZxCH$i=< zPPVEs=SL9{M2RRuED)g<3LrkPD99zRI>FjsR5l_WY{bzvq+ndP{=z!u#e3kClvaKp z-)E6|!k5ufX89CsuN&j93qCawz|Oq~U*4o6?iUy!(l7QoyEp{b(6fdziY4;KjKee5 z`!x?a@11BWe8m~UVvM>d5Vsf1@Kg3w9^{u7)W>yHmsjY)Ms1Qr_yeoF>>YYB^0sXJ zjY6AV*k7FPC;_I4hkZvuxTj9Er%s$QE%?V=FmgPho=bYrlB-N<2sm;*@q#S+C;EGf z@Wifx%o;~rLwR^wsjfwKVKB(-JipLrC#cxW+y<_7y`YhRBez5$G+>km45zpf$9ncT zEdWp`v{IzmN*HvD|HP$$7#6tOebKCU&L2r)HArvba*@kLWZ-UZfdb@mh{Du z>bYtBi_vq7@uDSG{(W}IkgNP0IL|5<5C?CKz?m=fx({~NUxCqLM{RUUND)W^GB#kF9 z3?Yp2S-{P!;0NUR2MEcx1H=XM`0D97P_S!4uc%*vNEh@;BV78DhFLb8ksZ?HMp*e9 zXJ>E@o(P*4`rt^-(pjG<>8uuWW$2ultR1*V<m1sx=R-X~G>eT!=TsIOD|1L^sJG{MtH zO*dVjrZ1vdl+mInjE2KnQeiCK!=a~jnwA{72jv3x;9bxSoaqK@vz$8M57D$kRg?QF z9B(kujQFmJfNE#&Kfi?_dyfJur-f7l3zncRIR8W*wr6GkQt}9B4PP4!QP}MTTYiL^ ztl36CtAaCc1JSxV5VH(+0EK zi(z^)imltvkX3G$-LmG+%x%_v7C&?~m%%7aP6wR2~Ef_cX= z%7ft*?V44HkrCdr%Iq|ubPWBRRWgqBEVZbs{^JPlGrQQkwb*OXDVyr)B;B*LOfLP! z+5SzrK_8c02Ar|xhVTGYvF6rA+Y#kl4nk4BDQ*H@I%rve31(fW#SXYu$xf_!ABz_k|?E|DAv$z|#A?>NH3$Cz@@Pz}_0aVP6 z=vcQ1H13DVTyu=HF<#OfHDyj;G<*z&CDJWjA2!;Ncw>goJIwmTpuRw?BRgkL%NrNh zs@~3rO@;^Pg02`I&e)gflCG|5-ZCV@s(SIg?%U_b=KSgQ*zgCb=PLc#Lp%#t3Lw-d zy+C4)no6RPEq23$&kFjy;8mX@4EK^5okL zt5I|&`Z?&E3ua$6jNI>SOnftC=Vk^BRn!TXj=Q}Azj3s8T&Zu7M><6mA?_E95xNBk zu`&FjkyFYOg|XU2H@KgfRtsegIJfA$+8{yV%d zad-Z2ojnb8lAWi2!Pn_u@J0JS-5}-YV(9U|v4^O;vy6qIqk*Fb3FCiQVahgkOAH9U z-NrLmP}C;CqgLR!(%k(7d}y*l%80@S62Pi~c5+rNwTmK-*%lw_cYv}$5&xjE*-LP; z+k7O7bZ&9Cx!k+!e&64puzRRnsx*haaZq^f?q@>-rD5WDcwXj=D$^P!HRv##`vf@; z9JnT8#zu5;uzq!qXT@$L$V=R81(D738^PL+tOi)2COO(JmX~v z%Xy+G$cqq50pTA))K+tXtEnRjoAO8%uZ9UGiPNqf-Zg0|$C2SiL~J6i2*DM2_Yp3~ zVI-Z}C(u9B?UErbf?f z_C~WWadkR%nqQ!2({jqn?E7f#?*pqiAGyX_LZ1z{%Xr!-1_!Q*9D&`=ZV%{g3gonc z>P@Ec!sf{;{~eV^zzdC{{$=$He>=Qo9fbC6*;bOQ~Q=gt=GF#~hBo7d@BA@q67^_Qj6Hap z_?Vqerf=$Ycm04ghMa&sXigG@Il~HLxxsD@asxix5wzi5XfEB04;hC<5IphHU_`l- zb5~M)+{~{R8V_APv{@nU7twn?M-(cHg)3>nY;jyt<=s>J45Z`45r?cN(YD=!Pon?+twD^dip;v~!ozrvLQO`)v(zwI|7Ta1 zX*#wdZjpI9N7@N$TJ50pbg5Kq##84yh9U_k$@vXMFU9v38};pwI)x$4_TeqMw$=@JA-%VHe3{ON7#5PYuZl`%x05=p>aP?DOAT zp=F}kM9se>R+$V2J=E?eJ5M5_G&p7DLez5Uw#>h(ChuFD4XpSnK=xC&zTxnl=> z(|+T||KtGhga1JQ;P0M@%lmVF&kXvVp#MDq{{!=bfmRutvo3>laDP?U>5 zB>|&TyB7&iJpyLhwHOxD?MPV{?7ocBZyKr+OB+pA{i`al%AFI*zsi zaP#=Hy%44HP71&Fc()43omFpW$p)(Ru_6}WiFwHJ>S)ykup4dlu_)@4jUn*{fRbRa zZiVLL17)jx?*ss5A1(Jvkm5J_lL%HpCw(SP)Nm4UMRO`vjP=pFYcNtK<^pVRh>xTZ ziR1V;-aOM1g*!P8vBIxauYMQ z=+gikYAVAf0Tryx__yEDI{FO!(IH6 z7V1${- z0mU3@K-garO_)D10`pHjt(c`)bk|M|#%+gDQ37@Fi1fLGZ0OQCz&n0 ztE>_$q6nsYXM>-46O0YxE}&hd`nc&cgx^z>C5>ds0+O_1k-uNH*RKnOe6rd)&*{=T#a2r>6IP8ZB1NCqVhp} zpyCLG>-_Q>9UDW%QQ2o0M%^kou-y_~(HVI?)Kiizuv&n`DNNBR+aSunR=x*z=e>O+ zFgeJsS99Rs$Nmaj7adjh+#4sZsL=bmF|J6+Y>|; zw@(&FfgAV}?`xf%TnxX;>`#UYzi)tg$WdwtWUIzdalkQ$BPcw8QdE?ks^|a|SLqHz zj@pg5Pvw>ay8#zp);54iPC4bJe*s{OU0ow>FI*tum5zkA{jjL~^4sdOO&q+6_*w>JA5sst2<8gGd0&I$b7K;Z868!-zxt>NG+o zvr#-a<(>ycS^5pNQ?@sz$`O;NaL=(L|K49BMo^vZ0HBK&J}yU_x`_LU-w&?p4bcHM z?q7)>Bkx0_%8w>pGJbW%kf(BQ@R=N$cQQtN<@NpSTC08!!dJOxrs55=M8y{yW~0y{ zsXIbG&VDE9Ej3b>@Yx_gVs@vAiZ^ho@&?FPcL434*x{3UWAzx7d>MVzFu_NCA?>tN zxouk{^CgO^KR8ENovjW;%s(3kj5J4Tri?X}LyD{D)ChiIi5dA6RwaZ70vmEBn}I zjyk6F#c0XFTTn`PUrcQ-8(Z8{OyFo5L~qi`N0+RYjxK3q`#LZoq16^o<#&7S<*?7EQaKbxhaC0LxV%bF=3cooYYf@Q{$}Z*45wK`DcJ8qiZ|a z|Hh>iBuc1>Qx?uZ^U;j_N}BxotQ-#2)|$P~{O;Mc$be*mY;}5npsAF$x0Q75Va1jg z`+h;GTKFR+$TZ0#%_>`1Q>m)McX(Kqe?#jHbyQUHvG@JdzC%tr&edu`u@@KNC>KOF zD(gD&vyRD;e1RgS1P8TtR93*Ts?=juVM!Q=1iF2SmCb_6>{hg3z18uqxvQo8rlurH z@(nrJWK>$W*tr4tG)TwFMuP0HQ*5PyNXmk?1|AD@8!C7Z-l+*xY@Vk}GOFxq$T-+` zEF|qy$I+55pF3H8ZDW(q37aet5V5QxnQc&CaHLJ3fPvaQbGvV_W0y7Xy)%Ow$$0)x zL<_E@&FSN}re!?IFwk{#Uzr+OG44)*Xc39S(8WsCWA@0=v1zOjfUx!Jfpek~+hCxA z^1yS;@}&O>t7=3ETWpLI=wq~*1fzOaanB>U(0M`HG{DhH^7?HARWtR>`^AAd6Jr5( zVIT~dTS+?>2R5wS_d%(dl_9Lv;F!9A(@x9ToZ~>Vg$|i{JZcSD$sM-0d@t=ZHN}|7 z9FM5m47YI@(qaq6qHMu?*+?oUpUbIf%Esq*?A@#KZ2jiIhzFw4>=K&>nD5%y?(7-9 z?y@oW_`exLb2XOLyK@dwNd)oj64iExy zXAdGGUW{O%EAx6W$tCJ3I!jx#3Yy7)^7)L=JxcNsGe#&u&) zl#)Fn*;q~jun<}VVlq($i!P&usED@!BQs?KY4RuG1Vx$HH1-gf>G1-QAW?}YsW^zT zIVNY*!N3v`D0L!0oKR!tG3NVx8@e)9W!iGW7Hfw&U@qEgPMUs~>;g7EsFMhC@fouM z?>m&`1h(Y+H@{a2-GMH&^n>bS%uIn z&$>JGG@q$xXn@9A5r{c~qr&$OCO2qk3WU+`3pyvG&S|03j1A6L&6RmCXQ)Z^p-rAX z88WWP%KhVnaJOJ)?4hdzvsk)Gzu1#C{G(%D)QgaW8G zpUZK1uJZMxY{9-hA-Dy{A-Wj=Lgf<;w1w&tW`~$)YV6E$ndgL}mOVs&5HR{k^xLw* zOV+a@S;Knc@CkOQKI|OY^9Rrl-vjWNAGkyCS?s?N+8E2X=Q1`Y5VI^RsnqfSUQXo4 z#O2P>rOmE|gb)<5n-V66lqMk@MQG7aEM|wKs-=z*A9VyX0mnO~^qWzn;|Go0aX1eq z&BMzpTY9Qxh5|@p)}=A&*-eZW9S#zZ)`R1P%4>!~_@Cl9Q{A2CUl4r}(|kc@dM2l5 zE!vf`lc^85HzAlBlohb*|Ii~{q~Q#x5;mx6tlc1Vgmx5+Tr*SqdgnF0^Ua$zTVY58aQkn0j`Uj#E(f3Ohd~iY5%m%ti*k-Vpee29a1kk7~6aqhoKuIDDb zn(Z*?GaUNn8F+zMdrdS*S1ua*;%ch5#j539@dN98QEJ>|fZa~HEoy9Ea1NIu>f#e` z;V;R^6J+fsMfPO9_6#u0Q^zLV5Q}I{a14w|)iDwXpdU>0uOdLY7CI}lIn(FU*IFB{ ze=IyXMNda-WXU8V%Uw^mc7>eL&rOr8{nc?*YVlNQ{L1jv$T^5sWpi?y>Pw}_n|(Yr zn9{?ta}mHxq(Dnk%7_+8^~mJ%3r=Xb?ebZSW`v%nGDWcqACP%FOZr zQIrhyjip9$m-Y114dk67W>%v3TlEd zW|Vc(j^*$C>l)2=+fjYafM@P6RCEDQwZzEEV#~mz2KxTXL49nJQn2$nShZc2q)FeY z5$Qg-K3);Mi?H1QI}IC)^wzZbQO4QJrTU^D5*mxg$Z;eMH%B|ez~hMDO-l^(CpNs7 zK2T^Yp1g*$!m4MJG%z=ukTJO}BdjAeW_bafT6VGx8nu+It9JCGNw?jam%OA5ALHSz zTUF*T?I_;uI8qI{8~Y~pIN159*!zw!1E$uYxNAT|PhJq}kUdu(-KF_1m}7(Ph{Yu!vZ=qqF5IJ@}|djZGwD_AXw`rg>RMlCEY3f(DBZg6N+cOR$u zf&u&-;G%ET8dNHs8s*DI6;EBJdwz4vm-tF(ZMd)@4UvQIH!dZ_ifEGgqDbZmDHPBi zKDz_Z`*9{QJ0>fWl^K7!qj+hdyB<4nt;w%lr!~vs=9J3(ewlUPPe#|TcUGz91dR63 zYOWb|etwkwvg_T`jcuno^6JI-M#lQ8pfMS%QTmPOYL_Lw|=3i*hgLW4^|h^!FnL{KoK24D2h#=ITei_Bc zSMa*_B&p#Hj|HM)MNhoU6B$ctnQNF<-=Oj`Y@vyrSK*oNd zfkJl=Ga`U%!Zg+kh#+z7aZE~JMGY8+MvKwR_HupPTzy>7gsoL1Rvkz=N~%_VVtdaq zmf<8#UM_$MxpEvaY%lTddVT%z(eKNx`uTi<_Wyd@2>|Ap$n?^5nv4i)mlv3h_#lK1 zZ{iyuJ`V05FAl;(wZ{k;_vjut!#j~#2EsE_KL^1vcBlzB#|Ury-i>VAO|T~lNDt|* z*-y=*cYKc(x5~*exc-*NQfE#Et}d{IGL)9ej7d6l2n%;P2IJ#ESze|TDY!eBP$l`^Cyl(QX$>JBzJ3qhdDU;B)N8q|0!`3AcqZ!c#@w zWc@V?wHD4QzqcWx#pjhe6dF!RJ{vvm^!GdM9696$DQn44IF(jfC2zKw(~u)cku5E5 zZ_gN5d5yU=Y6d?uXgJiz!3KYebjFLBiOgX^nn;-3+tj6o_AozmUkTy=(QQv+71wY= z2OEdK$2QTrlYLsO3367%_r1K7x=d`B68jTI@={;0p5u)PJ6v`u7GXEt)#2OR5&?bmWmL zVM*Z=4(kCta9@uS<@q(NUJa6&6cg>JrM9FQgw*2FGN2#;1-BU4a2$IHRzi5|&VWUX z`9Yd!S0f)=l?k2KpmX1AkufWq>F&DkAniH%CiY$K%3VIaiLKA@N@w<+d9$=B$;Vx+$}|xZ%Add^~K2X>rYrw%3C)**+RF=luM0zzxHY}XC>fOw)cbJ_f&HT;k*45%vbE>$(aA`y&Jr!y{rV0m#C%O^3e{H-p(%(8?TC^;*(wyEQVZ&4 zUiIA>;TGjum357i$(CtBEZSQPn6-a@eSXl)(_fBs){$=Pp;ggrw{(H7oweozv*VHt z$)l)irXKd{F+8774*3kU+VnNZgcA{C^eOgChm1!)Sa3-1vY+IQwyLc<5YG; zW%?WuL3vtgyC|%!%~jnj`M~KqbGsto*n-2(zUnRdVI}W+sQwOLsVlm5epb9}`93Lc zSJL0~zYtu*@8pXMgpEpm^Mwu#_v2~F4Sl&a!o+_%bbv0}BHC)6QZpd`pchG;07{>qSlA~f_WAgW>ejEG$Zr}Z<1=H?eq=O}-T^oV|!~wZXfaeZT z8C*#eDU=|E3c2$;HpTkLeZezkqc0F#1(JmC?{;H)LlBBmqJlQgY<4>PuWSAFez^$` zAiq#+2$=;()oyaw8pPCUz185bDwb4GC{ARyCh|bUP70=2IKo zP?m3!I<|L1E?Mkqlv|3J5rTM=ZHK>U^c|tR z`I5+xS|Jf?N5q>5jQx-Hd|>pc@=p6bMjq{M&aftqp-KJLzd&q&L%gm6(lp0+I;lXv zIo#mVni_gF%8*Klu^Ej{$c!k}yT9JmG!cLLoytqh6FRmd4s1IX$~^X0OXfL|ZYGis z938?%Vym!gY%{n1z(yH`&xDbhM5fFyTy#lWnMXAT$Z^)8(X*PvhvZ9Cnoj?tkJyKg z*&$_(ywmpDBb^u`%TTMB%6gs6{B)%Ex|57m`~OARIRmr4Cc{L=le4$BhO*Y6ARrZw0QUDC~6=rM95 zF4T}8WX_ht5$M3sl&*=eWBuk77xL}eIvbUCbdNpxX*FuiX&&`j#cCIaYH`+=W;!+u zmqrZU+KYaFvew2-5t^ufzb375T>D;sZH*kvtz35!^!hXm#<6c+h66fbPMzWqo?e|$ zod~WTOc0^?xk`8V1)!a>4SGs<{62jN3GM`DWPDr;5fS!q{CrUUQ1`dp;(;N&D8+`q zTp)qPy(&eHJRf#K<7?c2lJK4ms6h7|kC@^UA3s#a6;R&=6aOMh`T)FquE+h^Y2)u2Us@E@P9Dj)&IMz0R4F}qWm7p^_k-IsXoj5mKa61SmY6k@Kw7*;Paqx^u^%!o@Mko zFk9Ei`K9KloIeZuc*>-5evVOYea`$EWKHzQv(_$+jV!qeR!?Fw96gFBAzcs;Lvm zRKX2-aBYeXjE1#@q?wzwy+%9ww_G9I1Ldrd)p{EbW$vk1(^8ImmxobV2V47`Cvalr zEv8l=N$R4M4vUf-LfD7}6{@xV6LxMQ0q5+z8N))429HLJhT(>H#Tbx4%aZVHX_XZ8W z$XQ(|pDH|<8s{m8%;ItaUuq|Xt)YodgdCB7cFpDTvipkq}6+ZJ?s+HF*&K7O6<8bj@pvr7QvSTY2(NF=Q*#mEbbj zOBDn7E)b^fsLFonSBb*ZvSiJ_W=TPQna-o))zJ!-XiR@0FSyOT4(aP8oLfUM8Ks=# ze6*dG7c5Gwgq)4Y;z|mQuUa*hulV(%5I&6zgFi=eQgq#GA7 zI+V);jDrBwbhKcq*}*Pq)nYuSv*r)g$015LVbaSOfKioDiEl|ca9~455-WGG;ZPDb>XC>)MVEBj&5b zB#}-MFiw-#(=F@6{KG&Rusx6qlienx^OKORuw7*`)F_t4kzx)0Rir>fP(LNO=eq|tu?G%q5tU8~oe)wAAS-3qZOh8HeW z^{TEfDHzVSmT0ANsL3NDE7L>DsmYVH22qu2A}T7=$xCUB!>G*x*lLr=E!6aVVwL42 z6A=OB8lu6}*h99?udIJX>Hu;30n|apu>iY#ZWekyM~S^(g(158i9^aAvDg(G$>#Me ziwiYBLtmTgA7(NNa#NP8sE?2+m<+N@0SiOG=zd+)=m0KOHu$I0v-$$3SpbXbCN26L zh(>+HwUU#htj3V>TrxU@dNIu8BvlDmX|$pUs5pX!AeA`Fx^|IwKoXncM(Wv@(V^&H zZ>cPLYvch551Q(iZhDAz(^7A1&)TX9E|7}##n!u&ao3crBBCTnpYOKjJS{}URkIVv z%GsZJ<+L}%R02Rtc)xPSl&ZuSG7X!`b^KvcxIv_etBp`(0f`81 zNTRvQtMa(1RmUj>(lXiaW@#Ihm>Gg3ZU5i+1*}$+C)Kov`Bb6XR(xxxSGjd@rT6mXm2(D(FrKOIN<8n7{S%o{i)2CYXJ0z`bOwTEp_Ym4$!Nh+ zYT9^`3oABi0glOdm`8}m(=v}?2>kUehSH3;h9lkfRqA1?Stl;DYr)7i;`aN4vR>kE zX8}E?o75H{%h1$T%l;(ehn3clzC7U1zJ|YKNs4V3wPmy#CLgz4tS8|T$p|i47o+VV zn8sgr+7KWh5GbhkE@D(%qoG^zE8E>a$iC8;8swg>bAM`B{uiE zv<=;(H!of~zsCr1k6!!8DCZqT2cNI3=m$%EuKE%>7Pn*W`#^600%qWiHA^cZ+kn2| zfWF|O{;L|9t$zM3C9lY85!o_rf2|nO8L3}y;m;d22!obe&mn3L(lQu3c|6y+Icbo` z$C7Q%I~kZg#fS<9wKVYL{J9dDih-)dT{UVh%?{fZu4-aq`1=xM!Cj~FEZ|^Fx4}S~c!)A7$|d5&AMrmj_gjT4L_$Fg z8%mQ+TrCkzBwJPM#pr)g+cN6A6;7m9ZG`EWSDmHRKVsFVcGSPary69&kc*wH+M9qK z^28IgW8|u)o2U7`v{rz6&7MOhQfQ%qo`s9Wnq8>5TC~W-1COkN#S#)-% zapso)#vp^kcK|N2!Qs7M$B8S5=J!@YuHTZ*hTpFohEVcDRC8{+1s&fn#~jr3G@sWx z6w1!wt%@$PM%+JGdx`2EVKP!7jE#JsfgX}V1&lCd^p+*7k1(}-3qzb_pWuy$L1^Xf zY{~QRL}Gp*B~KS}6atD;BhO;v+3Avjbg10;=AkDPWoOvOb6T3YA=Hwmzu8hGIk{5q zR(;@7ztM204yH-UvK9WWhR~c`;yb^2VHv$Vu;cI`rDmi#+NKK<5YMwfVV+RXe2ZW% zgp=DxEZZ<&D3pqNv+KqB1RcTM7tFErRz-@v+XM&e5#Dre^w+%z=o`BN&{`#;v>f0g zIf0=T%fQ9!CTfOaC5KuiJI!tl<@=ACqtvf|rZ*=l`?yp`N#VjJWBWp}mfiu{J!0HE zVy4E=L7F>OcUy*!)VQ)&4iD4qNEsOpe zQ&c%oET1Mzw@NoB)+K9UHS_FP!?M9&V^g46U#LpPJ;v?cO`)ELzPs6K)G@3b`ik_@ zGl{u}av{eLl_VR0$lL91jTh*3R^HTdH&-R12WvWt)*q;2l@pcrEYWsg4Y(6 zdhwAx!l{-y3`%c`YU4Sltiv(K5G}O-*iHlhpgTUGs9{s#40iNh?HnWxjlB0o7Vk&X zowA)U#k#Cz4d)WvwT@{yQj1r94XNkYG|JM+NSINGk;;K!)^h0)2r&qbiaz8~HT~aHKilBr^W7yuo-1pqT3yah=vEk)VTZH-g(Ycyn#;5yu(Aw?O&7v zhG5gsZ?1<<)ro&A#|Z|{K&K0L90a28h#EnsTmM!jdJmTL@ywLAOiJjjNMrpCOo9Ny zh6xBC(~DD-@rj0gwSw3ngOmOz9t>_ z95c@&ow{n7@@q2t`$50q51-dI;24>`1w@cV7?`>^{+L~5{fevQ+gg44c!nMon!hN6 zehkJQ)g?&%3`2jzTSj|iMmN?rf7XiYXy6mo9&Y8%%g4-_W5}ifmdZ3A*Bx+ zZmjAD+H-QlHF2cEUOiOzixs3!L$_-jSKmwvZ4dp{Eb&=Dh)M4>AP z@U&9lit&l??p_ZTGoH?n}?|0jj|kEAI@)lLCL2+^;#`|tWaC@lj35};~V z;Yds=jYI~DG6@t(80pjbciH*COXjNe?rzTiAT85!58*}v%c3q+Iuz7pZ0c%yl4Yjr z;`8<6gCanyi^*_L2pj>9SC}ZcFfoZ+8hqZPnq7sv6i(Bl&_sMh1+NKqW1=1G5FFtMs?EFl_~#ux=SOBgdxMm9NudPy>c(LfPD>F-t|% z0`a+!#CR^ve~@G9$NzXiyFE05mOkao#76RO8jh|Oww5R_-%bv?OtP5H=*o8W%2ZCJ z$Ry<{)x(gFYnrD2?)dWy{M^IL7^)5npdp^GT~$r{2g-Wc+$>LnY(TTj`Z86s(rGzE z!T(|(%Es=#IuVxdI7;sR=uUxE_WaUa4*f#DnhwiLs7AM|I&=*?t<1+By<H2yz++TA{#}pfwxTqT32p6kHcC zG|El1-Df9jNE*ws(r-PYRAn^Z=)oqO3U!BB;s7hPZsv&b1ZkE1fUUJf@ga&!61UAM z4Xh>I9sYTWiSSPeJVnB@7~A(i_~Lg%gXo{OEpBCIYpQH!Zsu%eZ}Oi|ju=%Nl?6pa zzSB;kWaV)gQAK@UMe4$!*20K@l)HFlPBcu4WX+(0%VH{)=RSj71RyjdEIfg?BHSnP znpyTj0^mL9!y$fpMw;Vit^3ENALb6GVsw~#L4gL}hAjMoy0>Hg+o)NM&zSx*$NOyuWDYmU_K2{IpP?Pkp3%2JU<1f?ekN zD(ne%JX-tlo)UeA1c_?El^4`aSShwH0YcvVSrAQ=t2EBi1g?qTLv5hUGG9G;U{%p0 z(7yxbN<^Fw<_C0nf;bxq-{HBvnp_EhsOGUY^)>M|aZ%|-ndD@mF@#sp@)Pbwd(QD7 zH^i3$g3&~+4>9xVX~AvQW9U?}3 zlS%`lsKjH^$C7y%_$yAk3TOGa@)igp%3fPPE!HQlWmEvpQhPF9$6_xv#c`BE$ zrNX9r2Ab)|%ADUd$_#qCiM!y}Tjxja&Z9&i6y|GO?*{kt?44R{A@T%;GaI83#$h6F zh8aNRzyx>I#V)_Z;kBx&;}QcE2ojh#nlYIn zgftjw*-9AnM+RCU|9IPpr5LlEcvK#S&L1Qhi$9qS?%=-mKq7qee}d*?%qcLP(H@B9 zCg0K6UMa;iw@JWYOt7TppO)>wjp7jc+kN{7R#%)UJ$O>3W%3Amiq5kB3c9+QOq+>& zzb0`St!AJYHG5E(>aC6l;kpmPShY5Lkhj^x5>w>9;h~AnU*kb-A#|X- ziZ2zj!F0mo=i3MJctr4pJ$|Jd?jj8wg^H7mWeff?%Z3sLKj+oX858RH8H&lIN}uI1 zyih*L``T6)Y_)7aWf-K^^DkeImuoh4S1lGt`*j>RKfs-+0)iu+=ORS>0PrmC zGABkSW~U}x{m#jUm@)z~$%mX1P^mzvLa9l#BD4d@@=}~6vlwHW^R^}Ni5kQJt>_c; z9@B{uVN-Se6bH*nv|m1EciOaE31g6|bY!4DMSxnYOg{3R(^Eavo8if9YD8)4uuOW4 zrpgvV3pZ>l$xJ{s!+7d&7n^2UgV`Z@ic9)m62#GTGa04*Oc(!7$1i5E=8NWn6LTq+ zJE|r6bS@|hvS?5zcoU%uAs57BCj3EAaxiT!vdRf@{!I37K|11!Dj$cPRwmg=iHo!Swj0Vg#+2*4i zE?qv`*#aU9r}>(-Z{33h-nLSQ|;c#J4Wl;ekr?|=F$|=yet&e+%Jq%be>Z< zabXg~tWDRO&}HHq)n)n}yLRo&=hAzK=u$Ibbd*2QnSQQoZ&>@&lfz|n_ZTwpH~Ca~ zY3eLQXcrC$CNV+jlLf#h6aNnO1-Mp(XvPSP%o*pWW7<3Z)jrUR2yeg19fe1j+g+MR z_|pNw4OHIPZ$lJ=vEREqe(~P*aqIf~tbh9b=BYd2XH$eX)S&DnF9}b-(5V-%Xtx99 zof$eL6&98RO=1op-z?AdF!3B-;QrkM(*a!=Z+%BS#t`3)k^id)R#p?%5|I^BQTdO1 z6O(MCf@6j{@+AZOMrvzVP(s&?R-lTk4f&))=}gtIh?)$>+N#ff3LKRc(#b)FXfLwsilafrsL z3&4h#=2|_HFbFaQA?Y&W#l3bAd zmA=$pt5Q7S%1%>T#(YZ`_qIucHr|Y{hhW{Tp4ZY1t#rMXJ!40!w6L`jH)}pXw^4Qb zb3REHkBq-Vvq!3p^;q|hRz(W5e7!veZ;uAK_SQUO>g478T(ia7#_5NZsj`IRRwfO` zw>}YGce;FD+&7EI{=-4K(s%fA>#RBqC493zd%bvJ2`|knO6y^1eMws|gIH=Ckwr`a z58w0b0vXQmD5GS0e#@y!7X~1|d`OHE7Yxps5{Ts|LXWi?SY@Iia?HYvt=ZcNuHTOa zLZ!<(JHyVVq$;wnNNU1JPLoQF4;vOa1D>{HS{T zHiN^q>~2}}m09VN#2g;;vSXL=OUR2W=>cY*d1bl=XwYv6XsCHFe=mNoelKFLd@p^k zeJ^CMcrSUc**MI~{YJAqkdvNDAj*8v^xrfEbzp zfcqD=L(Jcg=vRpdXP>RW=ZWHBKh)Itls8r#RbsqrB9-bVFY?ZW9u}pQMDJHAf ztT!jS`5eVSiV_~PD~VQ_6{F!|9=a_o7Wyr%(_9vulJn#%&xQC}nGSmvqAjjduSxRL zX_=>>HCnwot50!$A+yGJ5q^&TS8rj!+tW=&6|z4R0gtBM#w8w#lARr!ce zPPzQKTr$?M6H-i~4#-HvV@NroX_QQn2kobVEpO>5U-IQDA}s5P~9%yx9wZl5QT& zK8yCinT99^M;wDaUmvk5gMA2};Lc}sgj>AN-lylJFf65kPVutzs&>LWm{+@?(4Jo^ z{viMG58ik49N%dF_irlLe}feM&j{^5yh4r^j1R6E($~ykL)s;~RTBSvGucYwd}r}N zW~%bWtnhksqL&mARp_1KQ=(mm*){$4Ws4jb5D*e7kQh*&rWm3pX#9h8$qtArs*k|U zhv03XgDNVhg*%6wy@Sdf$?rc`7aS~K*I5}3<~`Sbo_mMku|G7Ws?;8K1A-LFA$J1+ zWY5I_{Y~-#1*&$vP~trvRn^@E>eM}XG$tQ$F_WT!!eD_)4|xAX z44e;(-FGow57Ox0fVzvmKQ}*(zC`-&p+75j3_xpWa@ZSj==joDoS{GE%Fp<024Z6( zV|)0852?)8n^#cA3mYy&?qV{4f)$e(7sM6#Q&<}}9*T#u*F{SW+FH-GREF`JHn+`= zAYD*CGE_ImVUKM2+Gu*j{uEua#@O=Ez+w&~8djKL58w74JJ^A6 zRe9TGr+pie(S#+4wVa!uJymAMVm6rMxzIS}+9flqlhpam6w#rWgwM{zo523nWfs-{ zOdUI`V=dnxF(6{1KNR$%tX)<{0b#iNapj(L;mx-DtKZ&tw9k3mQJcmi&}7pBzSNB; z?+|LE?C6tJX7K%FfooLE(5M~?IbJVBOXw`5L$G(bLY{xFou9|16k;QI%I@#XiPeZS zg`v00G(YGm3idmTTZx@X{5^GRXhP|MUVS#>48oS}mCUgUJ+od%DFyjr+K-xO`?e8o zthOfBHC?I#6XMBLi;<+Goq#!qQrC&O4MTYMj)4ZwVpnesAK)xRX?V#iIX8Uasz2(f z-16vkjQA;v%)M?1gB7$zcDlB@LsazZJ(f;dQCvEWC~oYRO(^EfRTkk{fO=aYBxl`T zr2~NOeI^CGBmgcW+U(@?@9HmJ&qh|N;R7JO@{wl1{GFvi1&ktWMBD1p)upDnU>r|Q zrAix|grasNerL0An95i*nl2I9((akF%~tA^i-Q)w6mO;|?!{J+2@xb(mK)6oOPd^f z6A41D*De!LkGx0qHa;g$gPI%)s9vfW?3ucRJ7XU6{NGaFkKuSbbJIGSS32J>zy89V zqKeZKsMV`Y=x0UMH|7`H-wkWYB!;i)##Pm&ySNuS)sUR%tnUzCOE=`3g}Y*1qUl=m zTwG+qc9uz=UuC;y#4*CErAl0Cma0+!aihw4$r3BS&wzwO(KB`zE^|>+4B`)Gy@-qX1(4Jmck{-C9M6fn zXDdFl>V@*aBb(-camb|!VlEaoQ!JChP+Rorf_+x&;t265OQsQq9mM3>?hFTvlJI!R zXJ$s46Gz01?2EulgAi{tZvFmw)yB$&2C+lq(A0==s7=h$RTnV#3Sk+jDgzUcB&=F$ zrp+p3Bz={=25;6#TmQ((%Pr#0F4C~ZQpsAHn1TgiQFoAI8>upszLrf(3J2suClaGi zCTl%adu7T>rD$tZ>*ey$R3vrQ34?=+*zMewgeEWf>yuMi+p}od^7jB%o&;?)fK79@ z_6s{s0<1fl=CZg;yDN$Nuw1kobj_?~$-$OXGXMln(=!C?^NQIjp_Y)fM;eAmbSCRA z#Vs=@0W13;t%#7_%`$_(mm_3tZho24;!n0^FPK8@!!DosbTbdFOhFRVxI2~^CwPpI z#&2?k3qm$Niq?*TLskHIuHt&W5e4&U-(?3G1oBtxj*L1R3lEED4@z9q3%uII#jV$! z=;NH!wP>t*KRh~}0gW}`Y$y-VfsTrp& zl3}|oDjcV)LC%;z0{vY<_bky_%1V@Y!d6)Y=^&4H|rVs~WzR zqmnLvvoSgQNW+0a(AazRxOvr0dQfq*Lheg`RXEgHJ;@xgHOR@Cu(N?J$)0r4=kh1v zF)nl*+5*Q_jU1;WCkonSSmrWrM2)Y=F*j7W6n?kg3=~wZ7DLEXDn)yA)48sa#LOSy zj%`VX>`m|X1-PbU-(lfnr-+yzlGAdx!fL!bc{s4|Q+71T7s2ZFJn9N`P{NSc8nU4^ zlSp_;NupSq=P!9L%$rG{fa`SNlG-3>g&AH6{aKI_&ygUH?q&2c;h!;?5j9IwE)p8F1x>GNh{SUPd_;2ioaXK`>cRieNJPYR zz=-;nDBF@hx)P5Lq9E2d)1(|H!I~YsOBRzZeW*118uOZvDWr|lT&)R7i@jfu;<(x* z4b%&DJ%VAj3ILolg3mDP9Ty}b(YJ8@H*f_t@X2Tu7-H#htf%Ym$AF$eoUJbASn~$9<;u{{P7Kk45 zAG$x&5PZy$p7lK1AbOTT818$C?ijq6K}{n>KJXDd^?Dnd-gof$v+ACDIY0v}-uf_} z=g+(GpTz~*y8^iU>aSd$Kk%Q)1=?wU*gp4ic<<=wI+kZu#hnA_jhl{R3wr`QBR8Cs zpNv>9IHO;5<6*2ZV)r;THb)Iw5{d@AKCy=igEikrKRA2LP~~cV-n}c_k(@7adJ^-H z@1jWjh|24Jmn_vEiWA)=bfA}nTj)(0-}g!)YBGJwX6;>FQ5aXrP&dE zv85x_?{$8$r7;YhO##a$byWkRkP&=#aRaKm|6v2INz>dNpb}C`W7s{b0>de1DFK8N zVo#gzQv8C*juc)QBz`q=)Zo~q|1J=+09AB?J(N11zSz^JCKVyw#^|N{qRwGh#96e4 zM$n%@6wNu8IlNUB_$2(7KGMstES+O;lU0H_Smjrf-VEQR`ITjxGyGPc+!;{pA<`9R zoXdR#;amrahB68!8cFs_TtSGZtY_ zWM1l&xNIqk&g_}-8fI5j`}kX>?jWic7ZleMatO`;mv~wcRZMM5;`87Osf`=z*@>Rr zkPg+>1b}5^do1q%*Xl9b=MH07+6Ur#M+xF-`-y35^Z`WH0O(7bw(eEn-{Va`j(Hxs z?`j~<_u?h&f99hyW}g2=Bu-J&Q^8Tg^pkI_m(m1=Gf+d?&}OuiETU7k{t*g|h7$x` zvW(!GlwB&rfkVD#ICncOpv2I9i*BK9c^O^A!M%@gvwmyA>Bnb*qG*VB&d6nO?XrE( zdp&ZuPhj8=vI9KMls%}63et`{P?f&YfY_IU`BZnRxp?aZi!@oWTPb|xN;_m|NFUUd znMUFvGW84I(t{sN!NaMcN(j^{~FC)=Hxo9#T z>9KUAZOH7&TO4;v)~al`2ypIG&yG<)%~lZv3HBK2P4bW)=>*>%cmuv2u*I5T0>R>) zdH=98LIzX*DsqLb-Uk6;c~&&sF%YIh#Qq!%2n8niSQJDe17gn|lykc`8~SUNs;@}F zxFRtyP>e5JJ3d}IAa2#~?bEI|MN3bxNLWQ&!OiN_)tV92_<(ME8owZ^Xz{IW-Yd$y z9AjHTX?pySjRiGjW_0Kt+u2qFa+4zYAYhGMZcuL%NbM1KmrQqF3qSp4uW z>0+MoK)0|`;rHLGcG6eKctTtk^RT+`mW}m=xTNPE=?P7>^bYuohkx>O?hP^l$2;O^ zq4}gU;_~9py4c7x2_~yM`CjLVHU3Ys4z7#6L3jhmH(rTR_(e>zBzf!ek`AIzxP?se zb13H=66srxFf!O-}-$58))_}GR(_-z~UYg{JV;?#8m zkL6)53w}{yL$4c`W(qH#BlBk>uhVZt>EGGB74l|&yBnBn=`zY)ul0)s_=~e07CE1n zV z5nd9f+-e1tH8EM`FS7C;RJwPW?35$>5-xf_iM-hA=M>!1_sn#2*43VxajIr&i`n-+ z4BOWiHrXSNl6jlTcf5mgEg7xGbYnUBucB1&56b}qwv1ArN22bibB*^ji!b1RcQVd8 zQt$rX&L!dd{nzffecK|Q zkLgV!pSaIn<++d@Y?lq|LRTZD4-Z2@)=y)VrWwr1_XHYDFYt;K#-~tBUR_vG1-P` z&$ZRl=+^9gZ@*5W5cKCHjeSUNIk5I$TF;e%iS0UgSa`lcLm72%_fKutKcM>p3}N*eLTLV;1&N?S0;+T6(pPz8oqt>{fH!vzN4 zd)bv3E>*%Vroq5ucIqxZn3?DjR?3JF@_gxfSD<0nTA@8;)^OmC)NcthF*-Ch7T0_~ zw(53McAT`{^&^du=D8(nOTuezvYp&LDGSwBnhMugGqC8V!_UPR`edJcE#ip1_t|3US8nrMa)!}~9EB0{k+&NrsOw^YC&gbSA zp0Czmm)OqR;vX3mi9LJI(b;*B=lV*ZKEiwqJG|S0+}tkkTeIkmtN>sK-=mokck##$A*Ov}}{VQej8(^i2 zak3Fw1}F^a2*e89?ana>d?;1?nVO5!F`?40hEkw5a6~fROebom&Q>;E&|d|Ys<&QX zt00KEm-joVE{YPBi;YeU9{x;{Cj{hOiF}>!M2uiRyvrlq&p(P_pMw~qchpE6J)Owo zddfF&^pJU%O_ZM`b7Igr4^dC#{nNY7K4JxyCXlrb%QapE0Snhi)Q)(ke549)#Bo#N z_qg=S>1)6s`1%Tx*A18*K|=l)eeWe9gkumUg(QkaI=)s3lryjv!5MuLnI<`hG$3)) zW{|`I5$gBjJelGo3G+_EnZ5a2aWUK87~@4Gru4lT)xqiAt^ty8Bj)>$P`E^a{M0*~ z6WkBL-^A#{m02f&FZz=uIaEZxF((z=_NdVhQyOmqdttC{h>vY4^BCpU_z_~DTbK{0 z13qFC{)9vY(qAoBDpcR=f)rv#w6V#8#if2HG|PL%AX9>N;y<<}AaC|^D{qRulA!)F zoC78}4jO|i>uN3gC;1E9%Y20M`^L3=?~D9z1+ae!1OC;b{Eq@yx5lXkiU#TzpJX~C zET|UPTwy?%pll5ez!<5a5J^Xi);)*R1T$N<-?T7)>!RlxXX|GtfwvdDAzxXGftUPS zciwA_zxYhWrEgLoqm(7rhoZB`{kHGVmyfINd;PnKmg^pfdNhNm8za?TD4;gLY6ue$ z#mhZAP+L?x$WQ2Yncgj6QzSFYN5aWGBzv?&mQaK;(TE5rOpJUlMxs4dRwTBFsM!R{ zU>qs>tOJ%JSgLd%$$L%<(d?n*2&-%w5vJ+1U3^U7D>@OFtNnowpKBl>3{c)t#YTxG zwWjcb)fN8noiiCxG;jyWrIbEb-fGMNXH60*HAHuLmz)E`JHNI0uy|8rhiRAciz%!%m10&$9bZOJRNz2sW)au((i)Dm z^HOY$pxx%mj7ogm9rjlIU_%EM)uRqG$0{#oJLfJ>B+T(}SuW?-^6chYZ_X~04)&>f z6EQ@X=VqUfMbx3qU(s>R71lzvdxT?XUT`8u<$9GBgQo>re$*~g<+7QDBa=?x?1H#v z_QQ%gvsnS*puDnHd%Y1f1AqPd#jri=;gzsF>Cv`WDPubY?vue?^_X5+xl)vsdAkN= zs!GJnhn(;ivrvLpW0G{jGW+|^vfAUT!uO1LGS};whVS*p|XM z*Pk1l=%`N=3*t%_$3!?Q9!id5aC@_~rOm<%h-?7XQ={>i$Z!P(L_(Wpk=>0rO8RfP z;gV!BhmwHtlWstBi&4#|UXe4!KbJzLXOry|sw91#$1m~#lw*_bzV6} z!A5f08l{N`;*snYc@6)J-)oyf zo^EYsarifehwucOr&WT+(UimfQTtVJnP8*h_Wd7*aN3+D!E-Xe?Yr z6W+-gHpLcCzmOmV!VXN8=Zau~3@F>Oa7T)Y`ktw@x)! zqY>qBzAu1cB^^j&JtwqjUZ!S@gS|!VfVHH&BVj;+utOM{ubz6&dGY+1X@5TStWU^# zgpnO-L7oz9l1vy136&otJ)eXw)nm4?-ij-VM>*1ky6z>8=9T+xc~rMnTRe@#%$-aM z{ISp(*u=dQbde5>g*^sCw=oy?)Yy&i)Tlb4YIt>%pNW1)DwhS{vKmXV;;0&Y1nHSO zZf>ePRLcUA8TW!lQDf>6R>RdtEpWQJM^aneb9XQLYvCctmrGH^9}vTne6{%8XqgWe z!#}gdkU6ZWn*GwCmdVV}tFq&QRJ9ZqSo?oyEqX&^36xkt6h_og^$I<2VMzt(0LQy~ zHf`PRGeseFVBU0-0|P51ESmmcd#h;4F;ha7)OliJBeY#j<=I1(T&f>}(n~Dmok5vQ zzkgS{qq~{v^M$|4e8zfK_lOb#=yuKtXEo*WZDvEX6PJt-&WMVTj-~pcmdphA!C&uS zY+B(qBIn^Vy%mW)ySJCYiKRzc&@Ewmk^cV3*eM}voTf0k;o!p|GS4cKc0pEGA-n$M0}*hn3~ zKjTE~cWCMU+}ktw4dGnirkws`yh6%nkx&O}6h5f8z^>@x<%C0+1IYP4B8srHoZTBL zP7s}MRRVP!Y9r=^YzDU-Lu^HH0`vl7_6gz^{iO|2c^}j-Y{GfvJWt|Y3AiVBmzkXr z7TortCjjh&THC#on=4KoT)@ATNmG^`Imv*B3ngu+czXD_l(q$lJ=UJUmlHG3D?zI{ z38&}`b!Lkqxji*iNuE*Mo>TJYKRU8?g6%(Tz7>w<-%||#ZGu6?)yUP#jeL^x+UlZ*CTKu@xSyZ^bw^VeIo81D zFM{J-Z~FU}$4{UgXbY)yN(#ijf>1yx3Csv=>b|$M2Y_fL_lB&la}#IDn>v2GybrN6 zAy>5xR_x8;7q=nf^*cmgyp@cCEBZnKUyj|P3Na& z?X!=ptFBa;h$t%)ed?y3qnPE!_Apx-X|vK+2@7@VE^??I9_-jr5sA6<>-J_p)DWLP z5@#V_tV>eE?h-H04-kMY6WN>)DInfnXrSaqPTnYmi`dPZLoDzqBPa&=f z2g;PcPl^8fl<@zVLa4Z!S~>jhd4!vioI<}KYWAT`fw~Z)==(uf=4!A+G!xV9VmVaU zn=-qZ)CQZ~+;h`Iek6o{fWY|kdSX5jgTrg-{r2RQpI^8C4^FWaK_nbB);Z?-NcItQ ziExvw0@qStv^PriEz<}MVHxb%)1yj?i4@^>(Smu$~NWBZEi!4sTl!6ZfTooQ#k&9DgXOvI9u6UNZGrZIXgPoe%~Jl`~Nvo7Ah+P-Oq^VTeP%Dy;?FsTno2{ zBw7IDvOpJ`Fm>hKNmQqC~rs)eDCpE7$hIIJn!CSK&>Vgzg0pirbL(awWNA( zkCBNPj3KS~b9gAEcmwiI>C}o&MXdT{eo2ZpmZG7sFW5puopNi33Sf;`1S0arEGOh6#w?j4 z@1vDSON_4qmtN-Ppu^%2r8$@sWxEqwMRm&G*PoZI3kqR$Mh{Ipl*g4xLEZ!?Gt-9? zOOX;>!Cn-uLLA59?!GZg0lYgqLyWEN8K}RvK3$wTo+(lMJ+#Wlp?z2GaiO~kfq`j_ zGU5zb5(4e8<(APVU^x)m;1-}XG$eys>a>le4W@xH)2snaCT4QI;@ri}wN(uXmg z38+wWG7lk%`?=?9d5)C<;m+*1X5Kl5E56oY0ERih8Q;bfIEL@h;0>G}m;XjDC9pia z$RU?t_2_J1q&v$pNijQsAe#HDtP^jt9^q(=v8s>bn@hga_3;mI^$O*no#Jev*d_wI5_p^0@qY{{R<%PT6a6hwrjgmDyEG~y&IJ_*JV z7D`G#O`$8fR}4c{JT!!;jpf8aY^aa=vq;!oT30^GB(pu6YFI|tS$%kdURCGh*tBa; zm@dq$>rA-29=X?M$U|?{LuA+!%VFF@CI}fY@~FyKTDst+J-mS|{gc9Y*N{AAejog) zQ)lC;)$ZJ$Z@$|uEu^w_|11J~6mw3Kutefvu2+AF@jwy$0egjqc_7%UQU@^G$k&@o(pm8D;aWSLu-DgWcoM-0rUtusQ`wo&?7!ko{GCk~?PO_@#pR{L{CC;VeUrnFWWyG+y z%n22G80x1LSW}FaNI{(g5?W)ey_7?ys=G;qrj4W_Jz&Ic89lNJ#3LB1u@7j}D90|B zQ)lJK(_te`>8YdF`iawS>CY*#$?@h)$~wTjtVB74ohpafUNz6{JhEMD@A#FgT7QWp ztInNZ7xKrlFEnXI9iGiCrHmG{`j$y;?g2xn!;qs^4|qX6E>v4awwt?25~ly&k}H}_ z=!d#(j($SzihG3S??neA*dv*L?Zu^B4Q2-;*hc}=xvdBp52|FQr)-aqIq;Lue^6@* zSl(p;%iD(moAQtzHUqwjm>7i^5)UIbWI~o z{RYG@c_%|}e=LOEG@~On@5rlz1OrjWB-JO*Z=Cy{#fwYj>~+Qi0WO>G!sbMP#`sID ze_Wy@){aGQIVX6;Ee1~W{v<@^MnKtWd9aFcN)#nf(V}N$^ch4uXo|~bJ(7vi9PwCv zJ(HK#XL)+Ew7DyfP1~7x&H$^@finLy{l|7taLo>;%S?(Br0BkpZ}UCo)>GKvXf-XX z+^Qox8*Xa-=39Ip@#0kx-BU+=y*s(1qokbMDFq96*+6m~*ht(5CLZg^ix9J15mlpF z;xufj3y?=wf#Plko)j6g6q4euZx($(4ig_fQ<$h}K{$dO#g>}MDHp7qS=crg8+gl9 zeLAf3a(QNH*+R>d4QFL0H2f(TzmzTp z>$bR($u+61Z=2C?uo1ZX8*u&Odl#_s0KAFk#|B)SmtxKEdMG+wGTUho`vdB~(m37@ z{Y*e*Ay$+a8nYZ2*5e@Kv)*=E##pt? z2~TUG{oJVEdN5_9+7dz-uLrJKm8#Ywf0@@?oLG%P%)40h$@QOhq|v1sOwZo@#Tw}; z+xzaG*GV7MSjd$8_6-rd-x?009j_yCMnUVLMR#9a=E-aPk!tdh*1TSbiW)M--PfQt#yRvtu{jn6FCU1ZM5vB7AY(J~fvEV6GVtc1HDl zgVtrWIglSd$FB2X1ip)#7Rdfo3Rh%F$~|F`a{vsCW=hIX47)tgU$K%Fm%h z&&3S^F`8*4JyqSNIv+7~8ipcQ?A=4|N*2E$WNAcHyxd3igI^tDuEm<(>zsbr?&; zs+~SJhu)u`8kSSO{sCAK=C8Co`VKD~|4&5I8P(RH#8qGTY zM`h;$)zq@}aRfz5kkE-Jz4rhDBE1Agr*Y7D(s=_MdtK?J1tDpIAZbPxdr zDVORO-qV}wQNQ=zti@W%TFh@IXL3&V?D_A#E4%ajaDvCHG|7qTD?R2?1lYb{_^(b6 zUovx=w5u`*5I<5158)BF%mFh(#gFihxtNXL*!F2#Etyy>r(IvU@!{ajdi9;mCXAXu zrVG$p-8H3>t+F?AlEb6D6*))lz2aEN2tUG`f)Ytl61KB3B$k9jAcPR-_m6zgLBl}cnf&(EV6y9f04kQnc}+{o zy$SKsH-mOxdZwwI1YdQKPA;~0a0v5v=38}|(*i&mwDWZX?3zKG0i0`qGQh2Zm17gIKqkjYSLLj&{>{@?K0zz+Qy z9a@GO&>&ATeBJx2b|F%Pg)vRFFZ=K}*@W80oQr+#fQEc&uFx@WTe!UFv1rXy68tcD zG}>ooKg6KOlF~II3cd6Bxy`t!K$UD5Dsk;8l9DxAoLKwt;*@e~)lMguA%0LHfut=QvtF4`l5ecd)MUhsGjwM6q|QS5;;k=;Q(_EmQ_ooZ0&PZ_0?j8mCmoH(jl~ z6atQM#Ch;l%dg?&MC?)UCAAx~ZzD%UB@Z7LeidIc%6*jLMPaC}Dc3?-MuG(m3?E<* zq^kMY|9}{mF+`_VL-G(;u9Nae$}L4yD)g1yhnn%?y^B9v;07UMAD^L2wMEn)4bWu! zaeJWm=UNeBms)v2k2AButRPxudklOC&Zjbnzst3IRkAnTKOH~r6$3Q#EJpJXs36KvbJ@H5b<@@ex zvLQ|^p~9Ji`V~kfAcD>p1q4T_Q*%KvG4GWV)-vLAGS{I>f7{%tI`J0Coe0n{7dd(5 ztMDyUW#E;bpw&e4E&jOvcisaBX)6svz9(OgXfVp=EiO5BI=wTYoo$kM4EfRHI1M?c^b(A}q2asg0<%%SH$AdE9%;pcaHepQF z2jy*oAV?kOsjR%Vyo&T7)VUVE7q2y;vaS!|Y9R@M^bhG+@v_lbPmD#B#|&LBjvl#k zlLr>8qu>z2bh{^x(T?f*%jeKqs0dV?e(qs{aj&AyB%a2DYS4(|CJd+jXuP}HibJOH zT0ThQ4(qbuZfjB1le{O%s)i$Y*iChDQWjm$ug6vCcLKj_!pz% z;|C3`gw0-==e~_IYsoRaFDLT&F0Ty3?Z$d$!(ufdqVcNDlF)6p&LbNN-KwZ|%>3PY zMnnD}ldcqrUTu8b!^PtF<%*`;^)OHH5|R@>tk=iL(Yqd2nc)uVt29e~o7~ZFB(}l3 ztS$1XDzM@n8NSt{H?tx_9-E*SiSWp!oE~T?q)IBC*DNJ57q=dcOVpESt|8ReZAMb3 ze;8u-1h==K$}0H@d|81dw(@z7#%;5Rq_iZ}A#$mmv2Fy5L9*sh&^}Y;!HO;-k3Q-t zrGbunfNsSRYBfWk3ws=7H93y zgL*B;op2qOHJ)#rV&wfq9yKCd*~RkJ6(FtUd!YTs7{Ayj8jzRBT~KFpM_BZ`mIUh7~0IqA{rXTtE}u4kCXb zD>H)tjy0uFi3P`efs>EHqF-ov0!@MTG_Nc%}RxC=}IknJ^ zNja$(m0>)%@0ch_;x->A8PUUlphwT&!Ix}zwC^%d3kIlNPIyjJGr=^9+fU9zLLtXa zN^{7Rb0>fHh<%ldy5aFDhLOw1aWSs~#-*W)7fwnD#Z-2DatKF}QLlEkzDd#0AClz| zj%R&nhATCF9M-Ux%FTn1b1vb;+#G^IxZ-lDuPZK6OXV+oU`kTNhhzK5t-cH@CW#y8 zIOJU1owOS$g^Y8(9cPj&QJ&@ONqVOy=H7lHi{#y$EmK-2=aW348{Nf{HO3D!i?Sby zv!~bbN<%UY1x4)*HWRJqmWu=zhSJg-gK0dYow4_bO0_d~`%}_%9ReL z^aTCuJ?HfIhNc3lp6*=pDV%>_JnQCdSj(vp`U-#ZQkYuH^f!3QWya5~N2`>a-n#4u z#A{oAigkuD3&~0)PcOd?wG+JQu>P@Yh^;Zrh$A7}T|0<+3-?_c*z5g`mNF@FIUC;~ z7l$Fo;Idt2PaaB;>bFeaunDSX!J*Ti9<&Z2pL;~rQjIbaZ;rUrMRWjz*h`fkZa939@ICiD(2k0{ zY#MfNq?5o_uf~cY!hqb~pr$SQeVl*z9)wt>yeIl$(Nus*IXBi;(FYscN8JYEa*3aM z7kuJutoGvW@`=RKwQ0Z85F6J?=bfL6@n-c7sDJMy1D;BvfxkEFMo74WWGv)6?XURu zwZT?R2HfjryeW#BcjL)7m9~w8B`vAh#PBDVi5z;eHdMlz#;j?lN8u3OYqLI?`mC?l z{PNe_WSdn*ym>%R78HmO>AtJsEk1%f?M{qZVEvlDtaPs=!kSNCvlgf;Yg@xktA)w0 zh~y*I&x@|v3>OGSb&{s5Z}i8yet12u`e-9$Wq2mFl}+dVba?7b>`Bp3Rz21gHK_!X z6W1|O^78iQ*FUd8HNRQoArf>w3TLKTp2?Va@ZNk#JWOK38u%szX^XVZ_BvjD{|KS= z)MFk-6~oMmyO6f43UU7YGQ3?l&ZPe!y=($0l#x&2(0D#MCQdumjayG%Q0wsgUQF7B zMN8$b7S8R;wA zt!mr{AS;nXZF%BRiaSPJ3=9gOMWf|vg^KRCHF0rC*BZD@r2{_AXn22Z?=o+bGHa7` zus>J^OW9iEvZ8{FDNLV)Rluquxl~Vg%(WphU{vFF!@g|14SZB-TB(qVO)(FaK(Doy z9kipXWlea3f0=&DvyRdYD<;S9c(4Dp(1+LFr=3S0`&}0?-ZbN6Lvl^vU)(5HpyZu5 zC|COGh?!f#PX1l*7y9II<7U44;6M#yqc1T8u;Gpna|fwLaL{Sa;obCUcFz?(rn}SW z5dr$p536A}NtC)W1nR$R_NB|ao3!(*61$9+KL6;)`KcW1H>_bIo~W43lAHnd{LT%r zr+2w*E+D2{1)CBFzrG5{BTXdH;ZnX0JwG15%l7s)Q5i#qv6?+w2)!J!Mz7b}^*EhN zdUz(KmDVRvxv(t= z!nAGTu&1;l$Cnsuln1KA$8}+(Iz%X31(89xELgRNkeg%k&opNfV%I-ki{nYr+YRV^ zmLFiVAaJu+7(ou9F)?lp2#<1#&`)%_n%Q0BpUPOoz^#S|NaZ7sNhm)*ALb#+C%!bN za>b%x2M;EHsgHUXI-)6f<*`6*d1q0rYs~#LHLmx$%%&HL`LI2e(|K&V`D6*%GGvdA z38L>3CbMw8)hwx32+ZDoalfW2XN!8gBbH<7dRzpq_0baoYL6!|&PcO7-qQC~>rmsY z76IGbvhaPCa9C|4a+nqV!m~|XAos4p?pE7fmF4QLtfPWewe^-j6H+VHPS@I$WCPa) zPa~FsL?PQlicXm5=`MYOxV!AfBwKk+2@ZCV2+!vaHC+dz%=!Pyj5<|#eAgqQG&?<1vX57E`!=7vWvT7xpdQ?e4*TVGGQ*W?lsIZIa_oZBWpst*shosUTh5+!** z15*#iT{?#0CWyb@pxex~J{2!oF>MvhnJ!?<9*cU#H8yV!!@E)yQG1`3JQ$a0l*B*m znLiy{r|e3-@Edp6StKdRz2SY!`aqmK1(m5W-=@!MU6|e-U;4ALKuupTm;??SFAiZ% zn|Bo5Xv3Y%<6jyJX(4dhuIF6pggcuOcxUi+?``fmdg4@xHqt^JO)7_!b_LjD@+mg) z8Uh{YLV47bs?~y?sYPWD`E^;glL*Was?SPTnkNW%rVO@<4E3sHMG$1Cr^{VTm1Qx= zqA5q&&eN;rcjg%D!i0~=#n#VxP4cXoHsxfVgq%OZ$Ep%|7IQ_YFpxVfizhp_$Zdf! zWE)p*zLKQC8e5E%0PN1;WjAAVXcYGKs+KQYym#M)XoM5=r*->1OpKbBCQ;pCX48 zSS&ppa&_fUF?`_2k&g0$_nf*@wyY}lg#^D%FJ|R+-Y1C}D#70tJ0k)DXl8GQT#Ew_ zeaiWysil+d)zBc(ggMb7LCC~eqr0QpEX|x~$XTcBRNkvPr4dqb1nP*;4{W(Us@%hS zwLmt*?MAjh5`B0NKgBAnoxnuXoG?AIL5)r3nlSX;m$LV9A*K5pj|IfYdW;Yusz`Rc zN=v?YAxt~{`gFN%7vj2?HrOaRLa|8uwXY|sEyeo`o;C?8>J&{qje|xcJq!tNjSmZ# z-3)f%QBJpbOK#S-nZ8pjg*nu$8=NvRsAdx_zv-emHY+%8msd7>C`zsnmigEYqKD`o z5DaS2AR1b{cu;^ftmbolKqrMJGr~OkWygU$`!~DA+Og)#ovX%`5D{blXmh%cF&(&& zxrt?x37Jzdg^KtaMt?D$NMZPxghp=$LqdCFqf{9QlD(wn)^IyY=NYc7__WV2HN~~h zuH1SnwG+)YVh+6-ZZ>?i6|dnywC)hF+ti5erhAN9J}=brot>!uYx({*c2J3Ye_Fx^ zs3mNZBo!O!lsA1?HMVbK!6A&F6pEi0KuoHMSDT8Ixxv&QufV>WIa5=fHGApZoZpp91l)3IdxBIDcr@HRF03lN0qwxVJ!o9@s;9{ z!|C{b78mv7Foj!CP0V+5+4kxv=X^!x7YWwe2lB}*6b2LKx(87S)XCf1s^m0YdtH+2N}S*YkaOj0aVbSMrE#;xd77;4r2F2stmCcZZ? z#)j0{OJzAtDJ}&Sd7giE;}1!JRrq3Vo=NM@q`0JK|M|Tk{n=2j{_dtMrJ^7&r=iKM zEdNhJS6Jdt1EWlt@9k`0H`MDhdG9}aC;_I5Quh6$N6Pmewhk7k6w)r1zjW;$b(b$h zg(oNy|JyC{qchUK3)of4)YQzy#lhL--!>F*5|Lc73i2o$p9%lpA0ACALS4R}RLL^7 z4)#9`eIUl>Brgw!x@$n+UAAZp3n2g_i*nwgy;DF?KQnbNKvdNdE#N z07%Z!!PN54Bsx23tRPes%WVb>3{>Rs-wo;if&@r%`}=SjIG?j_sL%DUhMK_lcDAgJ zi~!16wFzK%V42?^0HlBR@4El=djTl=3q%9!!J^S4s14gsD|a@t-=cr14htLvSPB$9 zh#2a|`0oY*6b1zj0j%JG9^&Km|8j`mf3<;m+RF*B_Y68;wtr{$KFF z$?OfhM8KSP=%J=={|`g`{xSiRj-laI>HzrfQjh`X3e2a3#<6Pya6e-Ae@J0~C}1KT zH0q)5pHSb^>Htx|93yB{iNT*xfQ%!*AOUF!(8$+!{($`b0s!O9&>&H30O+UaGvI`P zAth)|wmpFJPhl7k1B~%NV{{w<7(m1akOb7Nqe=bF0MgGYb|46-M?{0fJpmw~IuVEh zissO$MXz5_00|wC1(bZDSb^Lx>KyN6T zBo*~163{maTnC`j3(YJ;1%>^z4rmt`5CYtAq9N{y|KIi#$N}zr&>X?!|FjQMRl0x@ Tke#`SnK1%UX5{{pvv>aovcL^1 From 779ee4abbe5bd7d837e1e82c36e912809b1ed6d9 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 9 May 2016 15:05:21 -0400 Subject: [PATCH 080/632] Remove the architecture in the RPM and Debian artifacts Logstash will now generate theses filenames instead: ``` logstash-5.0.0.rpm logstash-5.0.0.deb ``` Fixes #5249 Fixes #5262 --- rakelib/artifacts.rake | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index fa8908a015f..c554e684feb 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -224,10 +224,12 @@ namespace "artifact" do dir.input("#{empty}/=/etc/logstash/conf.d") end + # produce: logstash-5.0.0-alpha1.deb" + # produce: logstash-5.0.0-alpha1.rpm + package_filename = "logstash-#{LOGSTASH_VERSION}.TYPE" + case platform when "redhat", "centos" - # produce: logstash-5.0.0-alpha1.noarch.rpm - package_filename = "logstash-#{LOGSTASH_VERSION}.ARCH.TYPE" File.join(basedir, "pkg", "logrotate.conf").tap do |path| dir.input("#{path}=/etc/logrotate.d/logstash") @@ -249,9 +251,6 @@ namespace "artifact" do out.config_files << "etc/logrotate.d/logstash" out.config_files << "/etc/init.d/logstash" when "debian", "ubuntu" - # produce: logstash-5.0.0-alpha1_all.deb" - package_filename = "logstash-#{LOGSTASH_VERSION}_ARCH.TYPE" - File.join(basedir, "pkg", "logstash.default").tap do |path| dir.input("#{path}=/etc/default/logstash") end From af4121865093755df2d189688ada2fea5f92494e Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Tue, 15 Mar 2016 11:36:44 -0700 Subject: [PATCH 081/632] Allow Logstash to write its logs in JSON format This is made available by a new `--log-in-json` flag. Default is false. When false, the old behavior [1] is used. When true, JSON logs are emitted. [1] The old behavior is realy two things. First, using Object#inspect to serialize. Second, to color the output if the IO is a tty. Fixes #1569 Fixes #4820 --- logstash-core/lib/logstash/logging/json.rb | 21 +++++++++++++++ logstash-core/lib/logstash/runner.rb | 21 ++++++++++++--- logstash-core/locales/en.yml | 6 ++++- logstash-core/spec/logstash/runner_spec.rb | 31 +++++++++++++++++++++- 4 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 logstash-core/lib/logstash/logging/json.rb diff --git a/logstash-core/lib/logstash/logging/json.rb b/logstash-core/lib/logstash/logging/json.rb new file mode 100644 index 00000000000..1637fa11ce4 --- /dev/null +++ b/logstash-core/lib/logstash/logging/json.rb @@ -0,0 +1,21 @@ +# encoding: utf-8 +require "logstash/namespace" +require "logstash/logging" +require "logstash/json" + +module LogStash; class Logging; class JSON + def initialize(io) + raise ArgumentError, "Expected IO, got #{io.class.name}" unless io.is_a?(IO) + + @io = io + @lock = Mutex.new + end + + def <<(obj) + serialized = LogStash::Json.dump(obj) + @lock.synchronize do + @io.puts(serialized) + @io.flush + end + end +end; end; end diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 5aa1e3d40c8..dd5b59d5180 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -102,6 +102,10 @@ class LogStash::Runner < Clamp::Command I18n.t("logstash.runner.flag.allow-env"), :attribute_name => :allow_env, :default => false + option ["--[no-]log-in-json"], :flag, + I18n.t("logstash.runner.flag.log-in-json"), + :default => false + def pipeline_workers=(pipeline_workers_value) @pipeline_settings[:pipeline_workers] = validate_positive_integer(pipeline_workers_value) end @@ -136,7 +140,7 @@ def execute require "logstash/util/java_version" require "stud/task" require "cabin" # gem 'cabin' - + require "logstash/logging/json" # Configure Logstash logging facility, this need to be done before everything else to # make sure the logger has the correct settings and the log level is correctly defined. @@ -326,11 +330,20 @@ def configure_logging(path) :path => path, :error => e)) end - @logger.subscribe(STDOUT, :level => :fatal) - @logger.subscribe(@log_fd) + if log_in_json? + @logger.subscribe(LogStash::Logging::JSON.new(STDOUT), :level => :fatal) + @logger.subscribe(LogStash::Logging::JSON.new(@log_fd)) + else + @logger.subscribe(STDOUT, :level => :fatal) + @logger.subscribe(@log_fd) + end @logger.terminal "Sending logstash logs to #{path}." else - @logger.subscribe(STDOUT) + if log_in_json? + @logger.subscribe(LogStash::Logging::JSON.new(STDOUT)) + else + @logger.subscribe(STDOUT) + end end if debug_config? && @logger.level != :debug diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 04aa260c666..7d3070f2c8f 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -246,4 +246,8 @@ en: debug_config: |+ Print the compiled config ruby code out as a debug log (you must also have --debug enabled). WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result - in plaintext passwords appearing in your logs! \ No newline at end of file + in plaintext passwords appearing in your logs! + log-in-json: |+ + Specify that Logstash should write its own logs in JSON form - one + event per line. If false, Logstash will log using Ruby's + Object#inspect (not easy to machine-parse) diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index 0e270aa45c0..988d4f41cc3 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -3,7 +3,10 @@ require "logstash/runner" require "stud/task" require "stud/trap" +require "stud/temporary" require "logstash/util/java_version" +require "logstash/logging/json" +require "json" class NullRunner def run(args); end @@ -16,7 +19,7 @@ def run(args); end before :each do allow(Cabin::Channel).to receive(:get).with(LogStash).and_return(channel) - allow(channel).to receive(:subscribe).with(any_args) + allow(channel).to receive(:subscribe).with(any_args).and_call_original end describe "argument parsing" do @@ -95,6 +98,32 @@ def run(args); end end end + context "--log-in-json" do + subject { LogStash::Runner.new("") } + let(:logfile) { Stud::Temporary.file } + let(:args) { [ "--log-in-json", "-l", logfile.path, "-e", "input {} output{}" ] } + + after do + logfile.close + File.unlink(logfile.path) + end + + before do + expect(channel).to receive(:subscribe).with(kind_of(LogStash::Logging::JSON)).and_call_original + subject.run(args) + + # Log file should have stuff in it. + expect(logfile.stat.size).to be > 0 + end + + it "should log in valid json. One object per line." do + logfile.each_line do |line| + expect(line).not_to be_empty + expect { JSON.parse(line) }.not_to raise_error + end + end + end + describe "--config-test" do subject { LogStash::Runner.new("") } let(:args) { ["-t", "-e", pipeline_string] } From f241dd808e7195686298b7beece6abc27e240ac6 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Wed, 27 Apr 2016 13:19:22 -0700 Subject: [PATCH 082/632] Enable JSON logging for all test runs. Use an internal subscriber to verify that JSON output is valid JSON. The purpose is to catch any json serialization errors that would occur while logging. Also had to update a few logger calls to log values that could be serialized (Class instances and similar, at this time, fail to serialize to JSON). Fixes #4820 --- .../lib/logstash/api/lib/app/service.rb | 2 +- logstash-core/lib/logstash/inputs/base.rb | 2 +- .../lib/logstash/instrument/collector.rb | 2 +- .../lib/logstash/output_delegator.rb | 4 +-- logstash-core/lib/logstash/pipeline.rb | 2 +- logstash-core/lib/logstash/plugin.rb | 2 +- .../spec/logstash/output_delegator_spec.rb | 2 ++ logstash-core/spec/logstash/plugin_spec.rb | 4 +-- logstash-core/spec/logstash/runner_spec.rb | 4 +-- spec/spec_helper.rb | 28 +++++++++++++++++++ 10 files changed, 41 insertions(+), 11 deletions(-) diff --git a/logstash-core/lib/logstash/api/lib/app/service.rb b/logstash-core/lib/logstash/api/lib/app/service.rb index 4b63593c18a..87ab8a5d16f 100644 --- a/logstash-core/lib/logstash/api/lib/app/service.rb +++ b/logstash-core/lib/logstash/api/lib/app/service.rb @@ -28,7 +28,7 @@ def started? end def update(snapshot) - logger.debug("[api-service] snapshot received", :snapshot => snapshot) if logger.debug? + logger.debug("[api-service] snapshot received", :snapshot_time => snapshot.created_at) if logger.debug? if @snapshot_rotation_mutex.try_lock @snapshot = snapshot @snapshot_rotation_mutex.unlock diff --git a/logstash-core/lib/logstash/inputs/base.rb b/logstash-core/lib/logstash/inputs/base.rb index cb7a25d720b..6249c1b4e1c 100644 --- a/logstash-core/lib/logstash/inputs/base.rb +++ b/logstash-core/lib/logstash/inputs/base.rb @@ -83,7 +83,7 @@ def stop public def do_stop - @logger.debug("stopping", :plugin => self) + @logger.debug("stopping", :plugin => self.class.name) @stop_called.make_true stop end diff --git a/logstash-core/lib/logstash/instrument/collector.rb b/logstash-core/lib/logstash/instrument/collector.rb index 614ba372a40..302fe4c3ac7 100644 --- a/logstash-core/lib/logstash/instrument/collector.rb +++ b/logstash-core/lib/logstash/instrument/collector.rb @@ -75,7 +75,7 @@ def update(time_of_execution, result, exception) logger.error("Collector: Something went wrong went sending data to the observers", :execution_time => time_of_execution, :result => result, - :exception => exception) + :exception => exception.class.name) end # Snapshot the current Metric Store and return it immediately, diff --git a/logstash-core/lib/logstash/output_delegator.rb b/logstash-core/lib/logstash/output_delegator.rb index 63806ce6736..a8d05c18e36 100644 --- a/logstash-core/lib/logstash/output_delegator.rb +++ b/logstash-core/lib/logstash/output_delegator.rb @@ -82,7 +82,7 @@ def register @workers << @klass.new(@config) @workers.first.register # Needed in case register calls `workers_not_supported` - @logger.debug("Will start workers for output", :worker_count => target_worker_count, :class => @klass) + @logger.debug("Will start workers for output", :worker_count => target_worker_count, :class => @klass.name) # Threadsafe versions don't need additional workers setup_additional_workers!(target_worker_count) unless @threadsafe @@ -147,7 +147,7 @@ def worker_multi_receive(events) end def do_close - @logger.debug("closing output delegator", :klass => @klass) + @logger.debug("closing output delegator", :klass => @klass.name) if @threadsafe @workers.each(&:do_close) diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 805c1bfda09..d1ffbc3d53c 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -438,7 +438,7 @@ def shutdown(&before_stop) def shutdown_workers # Each worker thread will receive this exactly once! @worker_threads.each do |t| - @logger.debug("Pushing shutdown", :thread => t) + @logger.debug("Pushing shutdown", :thread => t.inspect) @input_queue.push(LogStash::SHUTDOWN) end diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index 25848e518c3..0c6ce147fa8 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -71,7 +71,7 @@ def plugin_unique_name # close is called during shutdown, after the plugin worker # main task terminates def do_close - @logger.debug("closing", :plugin => self) + @logger.debug("closing", :plugin => self.class.name) close end diff --git a/logstash-core/spec/logstash/output_delegator_spec.rb b/logstash-core/spec/logstash/output_delegator_spec.rb index 48ee6af2830..04e4b54a020 100644 --- a/logstash-core/spec/logstash/output_delegator_spec.rb +++ b/logstash-core/spec/logstash/output_delegator_spec.rb @@ -13,10 +13,12 @@ let(:out_klass) { double("output klass") } let(:out_inst) { double("output instance") } + before(:each) do allow(out_klass).to receive(:new).with(any_args).and_return(out_inst) allow(out_klass).to receive(:threadsafe?).and_return(false) allow(out_klass).to receive(:workers_not_supported?).and_return(false) + allow(out_klass).to receive(:name).and_return("example") allow(out_inst).to receive(:register) allow(out_inst).to receive(:multi_receive) allow(out_inst).to receive(:metric=).with(any_args) diff --git a/logstash-core/spec/logstash/plugin_spec.rb b/logstash-core/spec/logstash/plugin_spec.rb index 618aafa59ac..2a5040551ff 100644 --- a/logstash-core/spec/logstash/plugin_spec.rb +++ b/logstash-core/spec/logstash/plugin_spec.rb @@ -8,12 +8,12 @@ describe LogStash::Plugin do it "should fail lookup on inexisting type" do - expect_any_instance_of(Cabin::Channel).to receive(:debug).once + #expect_any_instance_of(Cabin::Channel).to receive(:debug).once expect { LogStash::Plugin.lookup("badbadtype", "badname") }.to raise_error(LogStash::PluginLoadingError) end it "should fail lookup on inexisting name" do - expect_any_instance_of(Cabin::Channel).to receive(:debug).once + #expect_any_instance_of(Cabin::Channel).to receive(:debug).once expect { LogStash::Plugin.lookup("filter", "badname") }.to raise_error(LogStash::PluginLoadingError) end diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index 988d4f41cc3..b915a1a9951 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -179,14 +179,14 @@ def run(args); end it "should set 'debug_config' to false by default" do expect(LogStash::Config::Loader).to receive(:new).with(anything, false).and_call_original expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(:debug_config => false)).and_return(pipeline) - args = ["--debug", "-e", pipeline_string] + args = ["--debug", "-e", pipeline_string, "-l", "/dev/null", "--log-in-json"] subject.run("bin/logstash", args) end it "should allow overriding debug_config" do expect(LogStash::Config::Loader).to receive(:new).with(anything, true).and_call_original expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(:debug_config => true)).and_return(pipeline) - args = ["--debug", "--debug-config", "-e", pipeline_string] + args = ["--debug", "--debug-config", "-e", pipeline_string, "-l", "/dev/null", "--log-in-json"] subject.run("bin/logstash", args) end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 5428fd8fd90..a865145ca9c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -6,6 +6,34 @@ require "logstash/devutils/rspec/spec_helper" +class JSONIOThingy < IO + def initialize; end + def flush; end + + def puts(payload) + # Ensure that all log payloads are valid json. + LogStash::Json.load(payload) + end +end + +RSpec.configure do |c| + c.before do + # Force Cabin to always have a JSON subscriber. The main purpose of this + # is to catch crashes in json serialization for our logs. JSONIOThingy + # exists to validate taht what LogStash::Logging::JSON emits is always + # valid JSON. + jsonvalidator = JSONIOThingy.new + allow(Cabin::Channel).to receive(:new).and_wrap_original do |m, *args| + logger = m.call(*args) + logger.level = :debug + logger.subscribe(LogStash::Logging::JSON.new(jsonvalidator)) + + logger + end + end + +end + def installed_plugins Gem::Specification.find_all.select { |spec| spec.metadata["logstash_plugin"] }.map { |plugin| plugin.name } end From 07887f8cf70079b3de0cd1e59ed6fc07b4a9ea74 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Fri, 6 May 2016 10:18:53 -0700 Subject: [PATCH 083/632] Include ci/reporter so bin/rpsec works for me. Fixes #4820 --- lib/bootstrap/rspec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/bootstrap/rspec.rb b/lib/bootstrap/rspec.rb index f32057c7f9c..4c95f3bfc76 100755 --- a/lib/bootstrap/rspec.rb +++ b/lib/bootstrap/rspec.rb @@ -7,6 +7,7 @@ require "rspec/core" require "rspec" +require 'ci/reporter/rake/rspec_loader' status = RSpec::Core::Runner.run(ARGV.empty? ? ["spec"] : ARGV).to_i exit status if status != 0 From b2f04ba9b92d58330ad78942bf7c85890c2c956c Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 10 May 2016 13:01:38 +0100 Subject: [PATCH 084/632] better error message for reload incompatible pipelines --- logstash-core/locales/en.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 7d3070f2c8f..930eadd80aa 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -71,8 +71,7 @@ en: non_reloadable_config_reload: >- Unable to reload configuration because it does not support dynamic reloading non_reloadable_config_register: |- - Logstash was not able to load configuration since it does not support - dynamic reloading and -r or --auto-reload flag was enabled + Logstash is not able to start since configuration auto reloading was enabled but the configuration contains plugins that don't support it. Quitting... web_api: flag: http_host: Web API binding host From 834b238f29ebcf27907d1e3dab30552e6d5101f4 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 10 May 2016 10:36:52 +0200 Subject: [PATCH 085/632] use only one plugin manager folder for specs Fixes #5268 --- spec/{pluginmanager => plugin_manager}/gemfile_spec.rb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename spec/{pluginmanager => plugin_manager}/gemfile_spec.rb (100%) diff --git a/spec/pluginmanager/gemfile_spec.rb b/spec/plugin_manager/gemfile_spec.rb similarity index 100% rename from spec/pluginmanager/gemfile_spec.rb rename to spec/plugin_manager/gemfile_spec.rb From 3dd0a2ea1f591061afed5ec02bdea3d01ff0351c Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 10 May 2016 10:39:42 +0200 Subject: [PATCH 086/632] cleanup old acceptance_spec tests (docker based) Fixes #5268 --- acceptance_spec/acceptance/install_spec.rb | 95 ------------------- .../acceptance/nodesets/centos-6-x64.yml | 16 ---- .../acceptance/nodesets/debian-6-x64.yml | 16 ---- .../acceptance/nodesets/debian-7-x64.yml | 16 ---- .../nodesets/ubuntu-server-1204-x64.yml | 15 --- .../nodesets/ubuntu-server-1404-x64.yml | 15 --- acceptance_spec/spec_helper_acceptance.rb | 70 -------------- 7 files changed, 243 deletions(-) delete mode 100644 acceptance_spec/acceptance/install_spec.rb delete mode 100644 acceptance_spec/acceptance/nodesets/centos-6-x64.yml delete mode 100644 acceptance_spec/acceptance/nodesets/debian-6-x64.yml delete mode 100644 acceptance_spec/acceptance/nodesets/debian-7-x64.yml delete mode 100644 acceptance_spec/acceptance/nodesets/ubuntu-server-1204-x64.yml delete mode 100644 acceptance_spec/acceptance/nodesets/ubuntu-server-1404-x64.yml delete mode 100644 acceptance_spec/spec_helper_acceptance.rb diff --git a/acceptance_spec/acceptance/install_spec.rb b/acceptance_spec/acceptance/install_spec.rb deleted file mode 100644 index 45efc1bf6fb..00000000000 --- a/acceptance_spec/acceptance/install_spec.rb +++ /dev/null @@ -1,95 +0,0 @@ -require_relative '../spec_helper_acceptance' - -branch = ENV['LS_BRANCH'] || 'master' -build_url = 'https://s3-eu-west-1.amazonaws.com/build-eu.elasticsearch.org/logstash' - -describe "Logstash class:" do - - case fact('osfamily') - when 'RedHat' - core_package_name = 'logstash' - service_name = 'logstash' - core_url = "#{build_url}/#{branch}/nightly/JDK7/logstash-latest-SNAPSHOT.rpm" - pid_file = '/var/run/logstash.pid' - when 'Debian' - core_package_name = 'logstash' - service_name = 'logstash' - core_url = "#{build_url}/#{branch}/nightly/JDK7/logstash-latest-SNAPSHOT.deb" - pid_file = '/var/run/logstash.pid' - end - - context "Install Nightly core package" do - - it 'should run successfully' do - pp = "class { 'logstash': package_url => '#{core_url}', java_install => true } - logstash::configfile { 'basic_config': content => 'input { tcp { port => 2000 } } output { stdout { } } ' } - " - - # Run it twice and test for idempotency - apply_manifest(pp, :catch_failures => true) - sleep 20 - expect(apply_manifest(pp, :catch_failures => true).exit_code).to be_zero - - end - - describe package(core_package_name) do - it { should be_installed } - end - - describe service(service_name) do - it { should be_enabled } - it { should be_running } - end - - describe file(pid_file) do - it { should be_file } - its(:content) { should match /[0-9]+/ } - end - - describe port(2000) do - it { - sleep 30 - should be_listening - } - end - - end - - context "ensure we are still running" do - - describe service(service_name) do - it { - sleep 30 - should be_running - } - end - - describe port(2000) do - it { should be_listening } - end - - end - - describe "module removal" do - - it 'should run successfully' do - pp = "class { 'logstash': ensure => 'absent' }" - - # Run it twice and test for idempotency - apply_manifest(pp, :catch_failures => true) - - end - - describe service(service_name) do - it { should_not be_enabled } - it { should_not be_running } - end - - describe package(core_package_name) do - it { should_not be_installed } - end - - end - -end - diff --git a/acceptance_spec/acceptance/nodesets/centos-6-x64.yml b/acceptance_spec/acceptance/nodesets/centos-6-x64.yml deleted file mode 100644 index 4f33d28f788..00000000000 --- a/acceptance_spec/acceptance/nodesets/centos-6-x64.yml +++ /dev/null @@ -1,16 +0,0 @@ -HOSTS: - centos-6-x64: - roles: - - master - - database - - dashboard - platform: el-6-x86_64 - image: electrical/centos:6.4 - hypervisor: docker - docker_cmd: '["/sbin/init"]' - docker_image_commands: - - 'yum install -y wget ntpdate rubygems ruby-augeas ruby-devel augeas-devel logrotate' - - 'touch /etc/sysconfig/network' - docker_preserve_image: true -CONFIG: - type: foss diff --git a/acceptance_spec/acceptance/nodesets/debian-6-x64.yml b/acceptance_spec/acceptance/nodesets/debian-6-x64.yml deleted file mode 100644 index 7b2df7423e5..00000000000 --- a/acceptance_spec/acceptance/nodesets/debian-6-x64.yml +++ /dev/null @@ -1,16 +0,0 @@ -HOSTS: - debian-6: - roles: - - master - - database - - dashboard - platform: debian-6-amd64 - image: electrical/debian:6.0.8 - hypervisor: docker - docker_cmd: '["/sbin/init"]' - docker_image_commands: - - 'apt-get install -yq lsb-release wget net-tools ruby rubygems ruby1.8-dev libaugeas-dev libaugeas-ruby ntpdate locales-all logrotate' - - 'REALLY_GEM_UPDATE_SYSTEM=1 gem update --system --no-ri --no-rdoc' - docker_preserve_image: true -CONFIG: - type: foss diff --git a/acceptance_spec/acceptance/nodesets/debian-7-x64.yml b/acceptance_spec/acceptance/nodesets/debian-7-x64.yml deleted file mode 100644 index 704b6c7d424..00000000000 --- a/acceptance_spec/acceptance/nodesets/debian-7-x64.yml +++ /dev/null @@ -1,16 +0,0 @@ -HOSTS: - debian-7: - roles: - - master - - database - - dashboard - platform: debian-7-amd64 - image: electrical/debian:7.3 - hypervisor: docker - docker_cmd: '["/sbin/init"]' - docker_image_commands: - - 'apt-get install -yq lsb-release wget net-tools ruby rubygems ruby1.8-dev libaugeas-dev libaugeas-ruby ntpdate locales-all logrotate' - - 'REALLY_GEM_UPDATE_SYSTEM=1 gem update --system --no-ri --no-rdoc' - docker_preserve_image: true -CONFIG: - type: foss diff --git a/acceptance_spec/acceptance/nodesets/ubuntu-server-1204-x64.yml b/acceptance_spec/acceptance/nodesets/ubuntu-server-1204-x64.yml deleted file mode 100644 index 4d6879e74b0..00000000000 --- a/acceptance_spec/acceptance/nodesets/ubuntu-server-1204-x64.yml +++ /dev/null @@ -1,15 +0,0 @@ -HOSTS: - ubuntu-12-04: - roles: - - master - - database - - dashboard - platform: ubuntu-12.04-amd64 - image: electrical/ubuntu:12.04 - hypervisor: docker - docker_cmd: '["/sbin/init"]' - docker_image_commands: - - 'apt-get install -yq ruby1.8-dev libaugeas-dev libaugeas-ruby ruby rubygems lsb-release wget net-tools curl logrotate' - docker_preserve_image: true -CONFIG: - type: foss diff --git a/acceptance_spec/acceptance/nodesets/ubuntu-server-1404-x64.yml b/acceptance_spec/acceptance/nodesets/ubuntu-server-1404-x64.yml deleted file mode 100644 index 0f6e1772f29..00000000000 --- a/acceptance_spec/acceptance/nodesets/ubuntu-server-1404-x64.yml +++ /dev/null @@ -1,15 +0,0 @@ -HOSTS: - ubuntu-14-04: - roles: - - master - - database - - dashboard - platform: ubuntu-14.04-amd64 - image: electrical/ubuntu:14.04 - hypervisor: docker - docker_cmd: '["/sbin/init"]' - docker_image_commands: - - 'apt-get install -yq ruby ruby1.9.1-dev libaugeas-dev libaugeas-ruby lsb-release wget net-tools curl logrotate' - docker_preserve_image: true -CONFIG: - type: foss diff --git a/acceptance_spec/spec_helper_acceptance.rb b/acceptance_spec/spec_helper_acceptance.rb deleted file mode 100644 index 752743b4aa5..00000000000 --- a/acceptance_spec/spec_helper_acceptance.rb +++ /dev/null @@ -1,70 +0,0 @@ -require 'beaker-rspec' -require 'pry' -require 'securerandom' - -files_dir = ENV['files_dir'] || '/home/jenkins/puppet' - -proxy_host = ENV['BEAKER_PACKAGE_PROXY'] || '' - -if !proxy_host.empty? - gem_proxy = "http_proxy=#{proxy_host}" unless proxy_host.empty? - - hosts.each do |host| - on host, "echo 'export http_proxy='#{proxy_host}'' >> /root/.bashrc" - on host, "echo 'export https_proxy='#{proxy_host}'' >> /root/.bashrc" - on host, "echo 'export no_proxy=\"localhost,127.0.0.1,localaddress,.localdomain.com,#{host.name}\"' >> /root/.bashrc" - end -else - gem_proxy = '' -end - -hosts.each do |host| - # Install Puppet - if host.is_pe? - install_pe - else - puppetversion = ENV['VM_PUPPET_VERSION'] - on host, "#{gem_proxy} gem install puppet --no-ri --no-rdoc --version '~> #{puppetversion}'" - on host, "mkdir -p #{host['distmoduledir']}" - - if fact('osfamily') == 'Suse' - install_package host, 'rubygems ruby-devel augeas-devel libxml2-devel' - on host, "#{gem_proxy} gem install ruby-augeas --no-ri --no-rdoc" - end - - end - - # on debian/ubuntu nodes ensure we get the latest info - # Can happen we have stalled data in the images - if fact('osfamily') == 'Debian' - on host, "apt-get update" - end - -end - -RSpec.configure do |c| - # Project root - proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..')) - - # Readable test descriptions - c.formatter = :documentation - - # Configure all nodes in nodeset - c.before :suite do - # Install module and dependencies - - hosts.each do |host| - - on host, puppet('module','install','elasticsearch-logstash'), { :acceptable_exit_codes => [0,1] } - - if fact('osfamily') == 'Debian' - scp_to(host, "#{files_dir}/puppetlabs-apt-1.4.2.tar.gz", '/tmp/puppetlabs-apt-1.4.2.tar.gz') - on host, puppet('module','install','/tmp/puppetlabs-apt-1.4.2.tar.gz'), { :acceptable_exit_codes => [0,1] } - end - if fact('osfamily') == 'Suse' - on host, puppet('module','install','darin-zypprepo'), { :acceptable_exit_codes => [0,1] } - end - - end - end -end From bf12902496033cde6a34e9ff6d1f3bf0861a30cc Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 10 May 2016 11:30:24 +0200 Subject: [PATCH 087/632] refactor integration test to be inside the specs directory and not in the main level Fixes #5268 --- rakelib/test.rake | 6 +++--- .../logstash_config/file_input_to_file_output_spec.rb | 0 .../integration}/plugin_manager/logstash_spec.rb | 2 +- .../integration}/plugin_manager/plugin_install_spec.rb | 0 .../integration}/plugin_manager/plugin_list_spec.rb | 0 .../integration}/plugin_manager/plugin_uninstall_spec.rb | 0 .../integration}/plugin_manager/plugin_update_spec.rb | 0 {integration => spec/integration}/spec_helper.rb | 4 ++-- .../integration}/support/integration_test_helpers.rb | 0 {integration => spec/integration}/support/sample.log | 0 spec/{ => unit}/bootstrap/bundler_spec.rb | 0 spec/{ => unit}/license_spec.rb | 0 spec/{ => unit}/plugin_manager/gemfile_spec.rb | 0 spec/{ => unit}/plugin_manager/install_spec.rb | 0 spec/{ => unit}/plugin_manager/update_spec.rb | 0 spec/{ => unit}/plugin_manager/util_spec.rb | 0 spec/{ => unit}/util/compress_spec.rb | 0 spec/{ => unit}/util/retryable_spec.rb | 0 18 files changed, 6 insertions(+), 6 deletions(-) rename {integration => spec/integration}/logstash_config/file_input_to_file_output_spec.rb (100%) rename {integration => spec/integration}/plugin_manager/logstash_spec.rb (81%) rename {integration => spec/integration}/plugin_manager/plugin_install_spec.rb (100%) rename {integration => spec/integration}/plugin_manager/plugin_list_spec.rb (100%) rename {integration => spec/integration}/plugin_manager/plugin_uninstall_spec.rb (100%) rename {integration => spec/integration}/plugin_manager/plugin_update_spec.rb (100%) rename {integration => spec/integration}/spec_helper.rb (94%) rename {integration => spec/integration}/support/integration_test_helpers.rb (100%) rename {integration => spec/integration}/support/sample.log (100%) rename spec/{ => unit}/bootstrap/bundler_spec.rb (100%) rename spec/{ => unit}/license_spec.rb (100%) rename spec/{ => unit}/plugin_manager/gemfile_spec.rb (100%) rename spec/{ => unit}/plugin_manager/install_spec.rb (100%) rename spec/{ => unit}/plugin_manager/update_spec.rb (100%) rename spec/{ => unit}/plugin_manager/util_spec.rb (100%) rename spec/{ => unit}/util/compress_spec.rb (100%) rename spec/{ => unit}/util/retryable_spec.rb (100%) diff --git a/rakelib/test.rake b/rakelib/test.rake index 8c0d16ff4ef..fb2dad658ab 100644 --- a/rakelib/test.rake +++ b/rakelib/test.rake @@ -24,7 +24,7 @@ namespace "test" do # logstash-core-event specs since currently this is the most complete Event and Timestamp specs # which actually defines the Event contract and should pass regardless of the actuall underlying # implementation. - specs = ["spec/**/*_spec.rb", "logstash-core/spec/**/*_spec.rb", "logstash-core-event/spec/**/*_spec.rb"] + specs = ["spec/unit/**/*_spec.rb", "logstash-core/spec/**/*_spec.rb", "logstash-core-event/spec/**/*_spec.rb"] # figure if the logstash-core-event-java gem is loaded and if so add its specific specs in the core specs to run begin @@ -112,7 +112,7 @@ namespace "test" do integration_path = File.join(source, "integration_run") FileUtils.rm_rf(integration_path) - exit(RSpec::Core::Runner.run([Rake::FileList["integration/**/*_spec.rb"]])) + exit(RSpec::Core::Runner.run([Rake::FileList["spec/integration/**/*_spec.rb"]])) end namespace "integration" do @@ -124,7 +124,7 @@ namespace "test" do FileUtils.mkdir_p(integration_path) puts "[integration_spec] configuring local environment for running test in #{integration_path}, if you want to change this behavior delete the directory." - exit(RSpec::Core::Runner.run([Rake::FileList["integration/**/*_spec.rb"]])) + exit(RSpec::Core::Runner.run([Rake::FileList["spec/integration/**/*_spec.rb"]])) end end end diff --git a/integration/logstash_config/file_input_to_file_output_spec.rb b/spec/integration/logstash_config/file_input_to_file_output_spec.rb similarity index 100% rename from integration/logstash_config/file_input_to_file_output_spec.rb rename to spec/integration/logstash_config/file_input_to_file_output_spec.rb diff --git a/integration/plugin_manager/logstash_spec.rb b/spec/integration/plugin_manager/logstash_spec.rb similarity index 81% rename from integration/plugin_manager/logstash_spec.rb rename to spec/integration/plugin_manager/logstash_spec.rb index f7047e986a2..3f839f060f2 100644 --- a/integration/plugin_manager/logstash_spec.rb +++ b/spec/integration/plugin_manager/logstash_spec.rb @@ -1,6 +1,6 @@ # Encoding: utf-8 require_relative "../spec_helper" -require_relative "../../logstash-core/lib/logstash/version" +require_relative "../../../logstash-core/lib/logstash/version" describe "bin/logstash" do it "returns the logstash version" do diff --git a/integration/plugin_manager/plugin_install_spec.rb b/spec/integration/plugin_manager/plugin_install_spec.rb similarity index 100% rename from integration/plugin_manager/plugin_install_spec.rb rename to spec/integration/plugin_manager/plugin_install_spec.rb diff --git a/integration/plugin_manager/plugin_list_spec.rb b/spec/integration/plugin_manager/plugin_list_spec.rb similarity index 100% rename from integration/plugin_manager/plugin_list_spec.rb rename to spec/integration/plugin_manager/plugin_list_spec.rb diff --git a/integration/plugin_manager/plugin_uninstall_spec.rb b/spec/integration/plugin_manager/plugin_uninstall_spec.rb similarity index 100% rename from integration/plugin_manager/plugin_uninstall_spec.rb rename to spec/integration/plugin_manager/plugin_uninstall_spec.rb diff --git a/integration/plugin_manager/plugin_update_spec.rb b/spec/integration/plugin_manager/plugin_update_spec.rb similarity index 100% rename from integration/plugin_manager/plugin_update_spec.rb rename to spec/integration/plugin_manager/plugin_update_spec.rb diff --git a/integration/spec_helper.rb b/spec/integration/spec_helper.rb similarity index 94% rename from integration/spec_helper.rb rename to spec/integration/spec_helper.rb index f4cddfa713d..065c812411f 100644 --- a/integration/spec_helper.rb +++ b/spec/integration/spec_helper.rb @@ -1,6 +1,6 @@ # encoding: utf-8 require_relative "support/integration_test_helpers" -require_relative "../logstash-core/lib/logstash/environment" +require_relative "../../logstash-core/lib/logstash/environment" require "fileutils" if LogStash::Environment.windows? @@ -9,7 +9,7 @@ end # Configure the test environment -source = File.expand_path(File.join(File.dirname(__FILE__), "..")) +source = File.expand_path(File.join(File.dirname(__FILE__), "..", "..")) integration_path = File.join(source, "integration_run") puts "[integration_spec] configure environment" diff --git a/integration/support/integration_test_helpers.rb b/spec/integration/support/integration_test_helpers.rb similarity index 100% rename from integration/support/integration_test_helpers.rb rename to spec/integration/support/integration_test_helpers.rb diff --git a/integration/support/sample.log b/spec/integration/support/sample.log similarity index 100% rename from integration/support/sample.log rename to spec/integration/support/sample.log diff --git a/spec/bootstrap/bundler_spec.rb b/spec/unit/bootstrap/bundler_spec.rb similarity index 100% rename from spec/bootstrap/bundler_spec.rb rename to spec/unit/bootstrap/bundler_spec.rb diff --git a/spec/license_spec.rb b/spec/unit/license_spec.rb similarity index 100% rename from spec/license_spec.rb rename to spec/unit/license_spec.rb diff --git a/spec/plugin_manager/gemfile_spec.rb b/spec/unit/plugin_manager/gemfile_spec.rb similarity index 100% rename from spec/plugin_manager/gemfile_spec.rb rename to spec/unit/plugin_manager/gemfile_spec.rb diff --git a/spec/plugin_manager/install_spec.rb b/spec/unit/plugin_manager/install_spec.rb similarity index 100% rename from spec/plugin_manager/install_spec.rb rename to spec/unit/plugin_manager/install_spec.rb diff --git a/spec/plugin_manager/update_spec.rb b/spec/unit/plugin_manager/update_spec.rb similarity index 100% rename from spec/plugin_manager/update_spec.rb rename to spec/unit/plugin_manager/update_spec.rb diff --git a/spec/plugin_manager/util_spec.rb b/spec/unit/plugin_manager/util_spec.rb similarity index 100% rename from spec/plugin_manager/util_spec.rb rename to spec/unit/plugin_manager/util_spec.rb diff --git a/spec/util/compress_spec.rb b/spec/unit/util/compress_spec.rb similarity index 100% rename from spec/util/compress_spec.rb rename to spec/unit/util/compress_spec.rb diff --git a/spec/util/retryable_spec.rb b/spec/unit/util/retryable_spec.rb similarity index 100% rename from spec/util/retryable_spec.rb rename to spec/unit/util/retryable_spec.rb From 1acc309e1e946a5faff0c3c6b1fca189295ffca3 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 10 May 2016 11:35:02 +0200 Subject: [PATCH 088/632] cleanup the tools folder, including tools/release.sh, tools/upload.sh and tools/Gemfile.beaker cause not used anymore Fixes #5268 --- tools/Gemfile.beaker | 11 -------- tools/release.sh | 67 -------------------------------------------- tools/upload.sh | 8 ------ 3 files changed, 86 deletions(-) delete mode 100644 tools/Gemfile.beaker delete mode 100644 tools/release.sh delete mode 100644 tools/upload.sh diff --git a/tools/Gemfile.beaker b/tools/Gemfile.beaker deleted file mode 100644 index 97a67a20ade..00000000000 --- a/tools/Gemfile.beaker +++ /dev/null @@ -1,11 +0,0 @@ -source 'https://rubygems.org' - -gem 'beaker', '2.27.0' -gem 'beaker-rspec' -gem 'pry' -gem 'docker-api', '~> 1.0' -gem 'rubysl-securerandom' -gem 'rspec_junit_formatter' -gem 'rspec', '~> 3.1' -gem 'rake' -gem 'fog-google', '~> 0.0.9' diff --git a/tools/release.sh b/tools/release.sh deleted file mode 100644 index 435196a95cb..00000000000 --- a/tools/release.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash - -logstash=$PWD -contrib=$PWD/../logstash-contrib/ - -workdir="$PWD/build/release/" -mkdir -p $workdir - -# circuit breaker to fail if there's something silly wrong. -if [ -z "$workdir" ] ; then - echo "workdir is empty?!" - exit 1 -fi - -if [ ! -d "$contrib" ] ; then - echo "Missing: $contrib" - echo "Maybe git clone it?" - exit 1 -fi - -set -e - -prepare() { - rsync -a --delete $logstash/{bin,docs,lib,spec,Makefile,gembag.rb,logstash.gemspec,tools,locales,patterns,LICENSE,README.md} $contrib/{lib,spec} $workdir - rm -f $logstash/.VERSION.mk - make -C $logstash .VERSION.mk - make -C $logstash tarball package - make -C $contrib tarball package - cp $logstash/.VERSION.mk $workdir - rm -f $workdir/build/pkg - rm -f $workdir/build/*.{zip,rpm,gz,deb} || true -} - -docs() { - make -C $workdir build - (cd $contrib; find lib/logstash -type f -name '*.rb') > $workdir/build/contrib_plugins - make -C $workdir -j 4 docs -} - -tests() { - make -C $logstash test QUIET= - make -C $logstash tarball test QUIET= -} - -packages() { - for path in $logstash $contrib ; do - rm -f $path/build/*.tar.gz - rm -f $path/build/*.zip - echo "Building packages: $path" - make -C $path tarball - for dir in build pkg . ; do - [ ! -d "$path/$dir" ] && continue - (cd $path/$dir; - for i in *.gz *.rpm *.deb *.zip *.jar ; do - [ ! -f "$i" ] && continue - echo "Copying $path/$dir/$i" - cp $i $workdir/build - done - ) - done - done -} - -prepare -tests -docs -packages diff --git a/tools/upload.sh b/tools/upload.sh deleted file mode 100644 index 72684486c8c..00000000000 --- a/tools/upload.sh +++ /dev/null @@ -1,8 +0,0 @@ - -basedir=$(dirname $0)/../ -bucket=download.elasticsearch.org - -s3cmd put -P $basedir/build/release/build/*.gz s3://${bucket}/logstash/logstash/ -s3cmd put -P $basedir/build/release/build/*.rpm s3://${bucket}/logstash/logstash/packages/centos/ -s3cmd put -P $basedir/build/release/build/*.deb s3://${bucket}/logstash/logstash/packages/debian -s3cmd put -P $basedir/build/release/build/*.deb s3://${bucket}/logstash/logstash/packages/ubuntu From a546bdc874a041320ec349c895e224b8e7adb882 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 10 May 2016 11:39:49 +0200 Subject: [PATCH 089/632] move micro benchmarks and the check pull changelog tool inside the tools folder Fixes #5268 --- rakelib/benchmark.rake | 2 +- {benchmark => tools/benchmark}/collector.rb | 0 {benchmark => tools/benchmark}/event_sprintf.rb | 0 {bot => tools}/check_pull_changelog.rb | 0 4 files changed, 1 insertion(+), 1 deletion(-) rename {benchmark => tools/benchmark}/collector.rb (100%) rename {benchmark => tools/benchmark}/event_sprintf.rb (100%) rename {bot => tools}/check_pull_changelog.rb (100%) diff --git a/rakelib/benchmark.rake b/rakelib/benchmark.rake index 148922f6531..29bfd2c2844 100644 --- a/rakelib/benchmark.rake +++ b/rakelib/benchmark.rake @@ -1,7 +1,7 @@ namespace :benchmark do desc "Run benchmark code in benchmark/*.rb" task :run => ["test:setup"] do - path = File.join(LogStash::Environment::LOGSTASH_HOME, "benchmark", "*.rb") + path = File.join(LogStash::Environment::LOGSTASH_HOME, "tools/benchmark", "*.rb") Dir.glob(path).each { |f| require f } end end diff --git a/benchmark/collector.rb b/tools/benchmark/collector.rb similarity index 100% rename from benchmark/collector.rb rename to tools/benchmark/collector.rb diff --git a/benchmark/event_sprintf.rb b/tools/benchmark/event_sprintf.rb similarity index 100% rename from benchmark/event_sprintf.rb rename to tools/benchmark/event_sprintf.rb diff --git a/bot/check_pull_changelog.rb b/tools/check_pull_changelog.rb similarity index 100% rename from bot/check_pull_changelog.rb rename to tools/check_pull_changelog.rb From d5daf1ea981dc5372d8e17f3e6d2ac106b678b0b Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 10 May 2016 11:49:48 +0200 Subject: [PATCH 090/632] relocate windows scripted tests into the qa folder Fixes #5268 --- qa/.gitignore | 4 ++++ .../windows/acceptance/logstash_release_acceptance.ps1 | 0 .../windows/acceptance/logstash_release_default_plugins.ps1 | 0 .../event_log/logstash_event_log_plugin_integration.ps1 | 0 .../windows/integration/logstash_simple_integration.ps1 | 0 5 files changed, 4 insertions(+) create mode 100644 qa/.gitignore rename {test => qa/scripts}/windows/acceptance/logstash_release_acceptance.ps1 (100%) rename {test => qa/scripts}/windows/acceptance/logstash_release_default_plugins.ps1 (100%) rename {test => qa/scripts}/windows/event_log/logstash_event_log_plugin_integration.ps1 (100%) rename {test => qa/scripts}/windows/integration/logstash_simple_integration.ps1 (100%) diff --git a/qa/.gitignore b/qa/.gitignore new file mode 100644 index 00000000000..2fc713beaf3 --- /dev/null +++ b/qa/.gitignore @@ -0,0 +1,4 @@ +Gemfile.lock +acceptance/.vagrant +.vagrant +.vm_ssh_config diff --git a/test/windows/acceptance/logstash_release_acceptance.ps1 b/qa/scripts/windows/acceptance/logstash_release_acceptance.ps1 similarity index 100% rename from test/windows/acceptance/logstash_release_acceptance.ps1 rename to qa/scripts/windows/acceptance/logstash_release_acceptance.ps1 diff --git a/test/windows/acceptance/logstash_release_default_plugins.ps1 b/qa/scripts/windows/acceptance/logstash_release_default_plugins.ps1 similarity index 100% rename from test/windows/acceptance/logstash_release_default_plugins.ps1 rename to qa/scripts/windows/acceptance/logstash_release_default_plugins.ps1 diff --git a/test/windows/event_log/logstash_event_log_plugin_integration.ps1 b/qa/scripts/windows/event_log/logstash_event_log_plugin_integration.ps1 similarity index 100% rename from test/windows/event_log/logstash_event_log_plugin_integration.ps1 rename to qa/scripts/windows/event_log/logstash_event_log_plugin_integration.ps1 diff --git a/test/windows/integration/logstash_simple_integration.ps1 b/qa/scripts/windows/integration/logstash_simple_integration.ps1 similarity index 100% rename from test/windows/integration/logstash_simple_integration.ps1 rename to qa/scripts/windows/integration/logstash_simple_integration.ps1 From 01ac7c91e95292fb83aaa237b8ad434569201c24 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 11 May 2016 09:48:52 +0200 Subject: [PATCH 091/632] clean up .tailor and tools/check_pull_changelog.rb files as not used anymore. Fixes #5268 --- .tailor | 8 ---- tools/check_pull_changelog.rb | 89 ----------------------------------- 2 files changed, 97 deletions(-) delete mode 100644 .tailor delete mode 100644 tools/check_pull_changelog.rb diff --git a/.tailor b/.tailor deleted file mode 100644 index 5e883dba31d..00000000000 --- a/.tailor +++ /dev/null @@ -1,8 +0,0 @@ -Tailor.config do |config| - config.file_set '*.rb' do |style| - style.indentation_spaces 2, :level => :off - style.max_line_length 80, :level => :off - style.allow_trailing_line_spaces true, :level => :off - style.spaces_after_comma false, :level => :off - end -end diff --git a/tools/check_pull_changelog.rb b/tools/check_pull_changelog.rb deleted file mode 100644 index 7e8ac7e1f21..00000000000 --- a/tools/check_pull_changelog.rb +++ /dev/null @@ -1,89 +0,0 @@ -require "octokit" -## -# This script will validate that any pull request submitted against a github -# repository will contains changes to CHANGELOG file. -# -# If not the case, an helpful text will be commented on the pull request -# If ok, a thanksful message will be commented also containing a @mention to -# acts as a trigger for review notification by a human. -## - - -@bot="" # Put here your bot github username -@password="" # Put here your bot github password - -@repository="logstash/logstash" -@mention="@jordansissel" - -@missing_changelog_message = < @bot, :password => @password) - - -#For each open pull -Octokit.pull_requests(@repository).each do |pull| - #Get botComment - botComment = nil - @client.issue_comments(@repository, pull.number, { - :sort => "created", - :direction => "desc" - }).each do |comment| - if comment.user.login == @bot - botComment = comment - break - end - end - - if !botComment.nil? and botComment.body.start_with?("[BOT-OK]") - #Pull already validated by bot, nothing to do - puts "Pull request #{pull.number}, already ok for bot" - else - #Firt encounter, or previous [BOT-WARN] status - #Check for changelog - warnOnMissingChangeLog = true - @client.pull_request_files(@repository, pull.number).each do |changedFile| - if changedFile.filename == "CHANGELOG" - if changedFile.additions.to_i > 0 - #Changelog looks good - warnOnMissingChangeLog = false - else - #No additions, means crazy deletion - warnOnMissingChangeLog = true - end - end - end - if warnOnMissingChangeLog - if botComment.nil? - puts "Pull request #{pull.number}, adding bot warning" - @client.add_comment(@repository, pull.number, "[BOT-WARN] #{@missing_changelog_message}") - else - puts "Pull request #{pull.number}, already warned, no changes yet" - end - else - if !botComment.nil? - @client.delete_comment(@repository,botComment.id) - end - puts "Pull request #{pull.number}, adding bot ok" - @client.add_comment(@repository, pull.number, "[BOT-OK] #{@ok_changelog_message}") - end - end -end From 4e6c0da4ecbabc9e6e648323eca32f8d71079d51 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 12 May 2016 09:17:32 -0700 Subject: [PATCH 092/632] undo allow_env flag (#5265) allow-env flag was introduced because of a backwards incompatible change, this flag is no longer needed for 5.0 and onwards. Closes #5263. --- docs/static/command-line-flags.asciidoc | 3 -- docs/static/configuration.asciidoc | 2 - logstash-core/lib/logstash/config/mixin.rb | 31 +++++--------- logstash-core/lib/logstash/pipeline.rb | 5 +-- logstash-core/lib/logstash/runner.rb | 7 +--- logstash-core/locales/en.yml | 4 -- logstash-core/spec/logstash/agent_spec.rb | 11 +---- .../spec/logstash/config/mixin_spec.rb | 40 +++++++++++++++---- logstash-core/spec/logstash/runner_spec.rb | 14 ------- 9 files changed, 46 insertions(+), 71 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 8b73920308b..272968a5311 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -65,9 +65,6 @@ Logstash has the following flags. You can use the `--help` flag to display this -r, --[no-]auto-reload Monitor configuration changes and reload the configuration whenever it is changed. ---allow-env - EXPERIMENTAL: Enable environment variable templating within configuration parameters. - --reload-interval RELOAD_INTERVAL Specifies how often Logstash checks the config files for changes. The default is every 3 seconds. diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index 040ce21ac01..b74750d4b99 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -609,8 +609,6 @@ output { [[environment-variables]] === Using Environment Variables in Configuration -This feature is _experimental_, to enable it you will need to run logstash with the `--allow-env` flag. - ==== Overview * You can set environment variable references into Logstash plugins configuration using `${var}`. diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 0a460767575..d5a1637f354 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -39,7 +39,6 @@ module LogStash::Config::Mixin PLUGIN_VERSION_1_0_0 = LogStash::Util::PluginVersion.new(1, 0, 0) PLUGIN_VERSION_0_9_0 = LogStash::Util::PluginVersion.new(0, 9, 0) - ALLOW_ENV_FLAG = "__ALLOW_ENV__" ENV_PLACEHOLDER_REGEX = /\$\{(?\w+)(\:(?[^}]*))?\}/ # This method is called when someone does 'include LogStash::Config' @@ -49,14 +48,6 @@ def self.included(base) end def config_init(params) - # HACK(talevy): https://github.com/elastic/logstash/issues/4958 - # Currently, the regular plugins params argument is hijacked - # to pass along the `allow_env` configuration variable. This was done as to - # not change the method signature of Plugin. This also makes it difficul to - # reason about at the same time. ALLOW_ENV_FLAG is a special param that users - # are now forbidden to set in their configuration definitions. - allow_env = params.delete(LogStash::Config::Mixin::ALLOW_ENV_FLAG) { false } - # Validation will modify the values inside params if necessary. # For example: converting a string to a number, etc. @@ -112,20 +103,18 @@ def config_init(params) end # Resolve environment variables references - if allow_env - params.each do |name, value| - if (value.is_a?(Hash)) - value.each do |valueHashKey, valueHashValue| - value[valueHashKey.to_s] = replace_env_placeholders(valueHashValue) + params.each do |name, value| + if (value.is_a?(Hash)) + value.each do |valueHashKey, valueHashValue| + value[valueHashKey.to_s] = replace_env_placeholders(valueHashValue) + end + else + if (value.is_a?(Array)) + value.each_index do |valueArrayIndex| + value[valueArrayIndex] = replace_env_placeholders(value[valueArrayIndex]) end else - if (value.is_a?(Array)) - value.each_index do |valueArrayIndex| - value[valueArrayIndex] = replace_env_placeholders(value[valueArrayIndex]) - end - else - params[name.to_s] = replace_env_placeholders(value) - end + params[name.to_s] = replace_env_placeholders(value) end end end diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index d1ffbc3d53c..529ad6e887c 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -45,8 +45,7 @@ module LogStash; class Pipeline :pipeline_batch_delay => 5, # in milliseconds :flush_interval => 5, # in seconds :flush_timeout_interval => 60, # in seconds - :debug_config => false, - :allow_env => false + :debug_config => false } MAX_INFLIGHT_WARN_THRESHOLD = 10_000 @@ -62,7 +61,6 @@ def initialize(config_str, settings = {}) @settings = DEFAULT_SETTINGS.clone settings.each {|setting, value| configure(setting, value) } @reporter = LogStash::PipelineReporter.new(@logger, self) - @allow_env = settings[:allow_env] @inputs = nil @filters = nil @@ -453,7 +451,6 @@ def shutdown_workers def plugin(plugin_type, name, *args) args << {} if args.empty? - args.first.merge!(LogStash::Config::Mixin::ALLOW_ENV_FLAG => @allow_env) pipeline_scoped_metric = metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :plugins]) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index dd5b59d5180..a5e32e53b62 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -98,10 +98,6 @@ class LogStash::Runner < Clamp::Command I18n.t("logstash.web_api.flag.http_port"), :attribute_name => :web_api_http_port, :default => 9600 - option ["--allow-env"], :flag, - I18n.t("logstash.runner.flag.allow-env"), - :attribute_name => :allow_env, :default => false - option ["--[no-]log-in-json"], :flag, I18n.t("logstash.runner.flag.log-in-json"), :default => false @@ -207,8 +203,7 @@ def execute @agent.register_pipeline("main", @pipeline_settings.merge({ :config_string => config_string, :config_path => config_path, - :debug_config => debug_config?, - :allow_env => allow_env? + :debug_config => debug_config? })) # enable sigint/sigterm before starting the agent diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 930eadd80aa..f265cad81c4 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -181,10 +181,6 @@ en: the empty string for the '-e' flag. configtest: |+ Check configuration for valid syntax and then exit. - allow-env: |+ - EXPERIMENTAL. Enables templating of environment variable - values. Instances of "${VAR}" in strings will be replaced - with the respective environment variable value named "VAR". pipeline-workers: |+ Sets the number of pipeline workers to run. pipeline-batch-size: |+ diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 8e59723f5da..60d28987f44 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -205,19 +205,10 @@ :config_string => pipeline_config, } } - context "when allow_env is false" do - it "does not interpolate environment variables" do - expect(subject).to receive(:fetch_config).and_return(pipeline_config) - subject.register_pipeline(pipeline_id, pipeline_settings) - expect(subject.pipelines[pipeline_id].inputs.first.message).to eq("${FOO}-bar") - end - end - - context "when allow_env is true" do + context "environment variable templating" do before :each do @foo_content = ENV["FOO"] ENV["FOO"] = "foo" - pipeline_settings.merge!(:allow_env => true) end after :each do diff --git a/logstash-core/spec/logstash/config/mixin_spec.rb b/logstash-core/spec/logstash/config/mixin_spec.rb index 801b4bdf67e..ca20d3649eb 100644 --- a/logstash-core/spec/logstash/config/mixin_spec.rb +++ b/logstash-core/spec/logstash/config/mixin_spec.rb @@ -160,14 +160,14 @@ let(:plugin_class) do Class.new(LogStash::Filters::Base) do config_name "one_plugin" - config :oneString, :validate => :string - config :oneBoolean, :validate => :boolean - config :oneNumber, :validate => :number - config :oneArray, :validate => :array - config :oneHash, :validate => :hash + config :oneString, :validate => :string, :required => false + config :oneBoolean, :validate => :boolean, :required => false + config :oneNumber, :validate => :number, :required => false + config :oneArray, :validate => :array, :required => false + config :oneHash, :validate => :hash, :required => false def initialize(params) - super(params.merge(LogStash::Config::Mixin::ALLOW_ENV_FLAG => true)) + super(params) end end end @@ -231,8 +231,34 @@ def initialize(params) expect(subject.oneArray).to(be == [ "first array value", "fancy" ]) expect(subject.oneHash).to(be == { "key1" => "fancy", "key2" => "fancy is true", "key3" => "true or false" }) end + end + + context "should support $ in values" do + before do + ENV["bar"] = "foo" + ENV["f$$"] = "bar" + end + + after do + ENV.delete("bar") + ENV.delete("f$$") + end + + subject do + plugin_class.new( + "oneString" => "${f$$:val}", + "oneArray" => ["foo$bar", "${bar:my$val}"] + # "dollar_in_env" => "${f$$:final}" + ) + end + it "should support $ in values" do + expect(subject.oneArray).to(be == ["foo$bar", "foo"]) + end + + it "should not support $ in environment variable name" do + expect(subject.oneString).to(be == "${f$$:val}") + end end end - end diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index b915a1a9951..d1ce6441dbf 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -190,19 +190,5 @@ def run(args); end subject.run("bin/logstash", args) end end - - context "when configuring environment variable support" do - it "should set 'allow_env' to false by default" do - args = ["-e", pipeline_string] - expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(:allow_env => false)).and_return(pipeline) - subject.run("bin/logstash", args) - end - - it "should support templating environment variables" do - args = ["-e", pipeline_string, "--allow-env"] - expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(:allow_env => true)).and_return(pipeline) - subject.run("bin/logstash", args) - end - end end end From 96c09ea718ec0d0f87c2232f243808f6e1e86615 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 6 May 2016 07:41:39 -1000 Subject: [PATCH 093/632] Update default plugins for 5.0 5.0 is a chance for us to review and remove any plugins that we don't have to bundle by default. These plugins are still supported and maintained, but the default package should only contain most popular, most used plugins. Removed plugins: logstash-filter-anonymize: Replaced with newer logstash-filter-fingerprint logstash-input-zeromq/output: Not a lot of users. Most users seem to prefer rabbitmq, redis, kafka as broker Please comment if you'd like to remove more/less Fixes #5254 --- rakelib/default_plugins.rb | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/rakelib/default_plugins.rb b/rakelib/default_plugins.rb index 556a8ec96c8..3e953d85fb0 100644 --- a/rakelib/default_plugins.rb +++ b/rakelib/default_plugins.rb @@ -4,7 +4,6 @@ module RakeLib # plugins included by default in the logstash distribution DEFAULT_PLUGINS = %w( logstash-input-heartbeat - logstash-output-zeromq logstash-codec-collectd logstash-output-xmpp logstash-codec-dots @@ -18,10 +17,8 @@ module RakeLib logstash-codec-line logstash-codec-msgpack logstash-codec-multiline - logstash-codec-netflow logstash-codec-plain logstash-codec-rubydebug - logstash-filter-anonymize logstash-filter-checksum logstash-filter-clone logstash-filter-csv @@ -34,7 +31,6 @@ module RakeLib logstash-filter-json logstash-filter-kv logstash-filter-metrics - logstash-filter-multiline logstash-filter-mutate logstash-filter-ruby logstash-filter-sleep @@ -47,7 +43,6 @@ module RakeLib logstash-filter-xml logstash-input-couchdb_changes logstash-input-elasticsearch - logstash-input-eventlog logstash-input-exec logstash-input-file logstash-input-ganglia @@ -74,7 +69,6 @@ module RakeLib logstash-input-udp logstash-input-unix logstash-input-xmpp - logstash-input-zeromq logstash-input-kafka logstash-input-beats logstash-output-cloudwatch @@ -86,15 +80,11 @@ module RakeLib logstash-output-ganglia logstash-output-gelf logstash-output-graphite - logstash-output-hipchat logstash-output-http logstash-output-irc - logstash-output-juggernaut - logstash-output-lumberjack logstash-output-nagios logstash-output-nagios_nsca logstash-output-null - logstash-output-opentsdb logstash-output-pagerduty logstash-output-pipe logstash-output-rabbitmq From 33771c1a64009e4535925710c0cdcc965ffe8c69 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 12 May 2016 15:11:17 -0700 Subject: [PATCH 094/632] Remove more plugins, add back netflow Fixes #5254 --- rakelib/default_plugins.rb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/rakelib/default_plugins.rb b/rakelib/default_plugins.rb index 3e953d85fb0..52ba5c14005 100644 --- a/rakelib/default_plugins.rb +++ b/rakelib/default_plugins.rb @@ -17,9 +17,9 @@ module RakeLib logstash-codec-line logstash-codec-msgpack logstash-codec-multiline + logstash-codec-netflow logstash-codec-plain logstash-codec-rubydebug - logstash-filter-checksum logstash-filter-clone logstash-filter-csv logstash-filter-date @@ -74,16 +74,12 @@ module RakeLib logstash-output-cloudwatch logstash-output-csv logstash-output-elasticsearch - logstash-output-email - logstash-output-exec logstash-output-file - logstash-output-ganglia - logstash-output-gelf logstash-output-graphite logstash-output-http logstash-output-irc + logstash-output-kafka logstash-output-nagios - logstash-output-nagios_nsca logstash-output-null logstash-output-pagerduty logstash-output-pipe @@ -96,7 +92,7 @@ module RakeLib logstash-output-stdout logstash-output-tcp logstash-output-udp - logstash-output-kafka + logstash-output-webhdfs ) # plugins required to run the logstash core specs From 23a94d6484a9860f11050c72ed08e0ec0619e8fa Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 13 May 2016 15:08:42 -0700 Subject: [PATCH 095/632] Update docs to reflect Java 8 as minimum Fixes #5298 --- docs/static/getting-started-with-logstash.asciidoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index 8f4e575b82e..231512b96f4 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -15,7 +15,7 @@ following topics: [[installing-logstash]] === Installing Logstash -NOTE: Logstash requires Java 7 or later. Use the +NOTE: Logstash requires Java 8 or later. Use the http://www.oracle.com/technetwork/java/javase/downloads/index.html[official Oracle distribution] or an open-source distribution such as http://openjdk.java.net/[OpenJDK]. @@ -27,9 +27,9 @@ java -version On systems with Java installed, this command produces output similar to the following: [source,shell] -java version "1.7.0_45" -Java(TM) SE Runtime Environment (build 1.7.0_45-b18) -Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) +java version "1.8.0_65" +Java(TM) SE Runtime Environment (build 1.8.0_65-b17) +Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode) [float] [[installing-binary]] @@ -49,8 +49,8 @@ that we only provide binary packages, but no source packages, as the packages are created as part of the Logstash build. We have split the Logstash package repositories by version into separate urls -to avoid accidental upgrades across major or minor versions. For all 1.5.x -releases use 1.5 as version number, for 1.4.x use 1.4, etc. +to avoid accidental upgrades across major or minor versions. For all 2.3.x +releases use 2.3 as version number, for 2.2.x use 2.2, etc. We use the PGP key https://pgp.mit.edu/pks/lookup?op=vindex&search=0xD27D666CD88E42B4[D88E42B4], From d409e04df92074d4144336cc6d80d7d53b515bda Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 13 May 2016 15:19:17 -0700 Subject: [PATCH 096/632] Remove Java 7 reference in comments Fixes #5298 --- qa/scripts/windows/acceptance/logstash_release_acceptance.ps1 | 2 +- .../windows/acceptance/logstash_release_default_plugins.ps1 | 2 +- .../windows/event_log/logstash_event_log_plugin_integration.ps1 | 2 +- qa/scripts/windows/integration/logstash_simple_integration.ps1 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/qa/scripts/windows/acceptance/logstash_release_acceptance.ps1 b/qa/scripts/windows/acceptance/logstash_release_acceptance.ps1 index da812277543..397b490781d 100644 --- a/qa/scripts/windows/acceptance/logstash_release_acceptance.ps1 +++ b/qa/scripts/windows/acceptance/logstash_release_acceptance.ps1 @@ -6,7 +6,7 @@ # # - Powershell 4 # - Windows 7 or newer -# - Java 7 or newer +# - Java 8 or newer $LS_CONFIG="test.conf" $LS_BRANCH=$env:LS_BRANCH diff --git a/qa/scripts/windows/acceptance/logstash_release_default_plugins.ps1 b/qa/scripts/windows/acceptance/logstash_release_default_plugins.ps1 index f4cf177e718..77b121fc6d3 100644 --- a/qa/scripts/windows/acceptance/logstash_release_default_plugins.ps1 +++ b/qa/scripts/windows/acceptance/logstash_release_default_plugins.ps1 @@ -6,7 +6,7 @@ # # - Powershell 4 # - Windows 7 or newer -# - Java 7 or newer +# - Java 8 or newer # - Ruby 7 or newer $ruby = $env:RUBY_HOME + "\jruby.exe" diff --git a/qa/scripts/windows/event_log/logstash_event_log_plugin_integration.ps1 b/qa/scripts/windows/event_log/logstash_event_log_plugin_integration.ps1 index a267c05e72d..710daf8573a 100644 --- a/qa/scripts/windows/event_log/logstash_event_log_plugin_integration.ps1 +++ b/qa/scripts/windows/event_log/logstash_event_log_plugin_integration.ps1 @@ -8,7 +8,7 @@ # # - Powershell 4 # - Windows 7 or newer -# - Java 7 or newer +# - Java 8 or newer Add-Type -assembly "system.io.compression.filesystem" diff --git a/qa/scripts/windows/integration/logstash_simple_integration.ps1 b/qa/scripts/windows/integration/logstash_simple_integration.ps1 index 73fe2fcff7e..fb861cd2e98 100644 --- a/qa/scripts/windows/integration/logstash_simple_integration.ps1 +++ b/qa/scripts/windows/integration/logstash_simple_integration.ps1 @@ -8,7 +8,7 @@ # # - Powershell 4 # - Windows 7 or newer -# - Java 7 or newer +# - Java 8 or newer Add-Type -assembly "system.io.compression.filesystem" From d94bae6a409c7e19c75ab1ce82963a7556976de8 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 13 May 2016 15:20:51 -0700 Subject: [PATCH 097/632] Remove java7 from rakelib Fixes #5298 --- rakelib/artifacts.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index c554e684feb..e0fc2f57eb2 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -262,7 +262,7 @@ namespace "artifact" do out.license = "Apache 2.0" out.attributes[:deb_user] = "root" out.attributes[:deb_group] = "root" - out.attributes[:deb_suggests] = "java7-runtime-headless" + out.attributes[:deb_suggests] = "java8-runtime-headless" out.config_files << "/etc/default/logstash" out.config_files << "/etc/logrotate.d/logstash" out.config_files << "/etc/init.d/logstash" From 08f3cb725c9240c22991c5b20a362e9348bbe59f Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 13 May 2016 17:58:18 -0700 Subject: [PATCH 098/632] Move root resource doc to main page for monitoring APIs Fixes #5301 --- docs/static/monitoring-apis.asciidoc | 55 ++++++++++++---------------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index a1e2efcfec0..5619485e1c4 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -1,13 +1,35 @@ [[monitoring]] == Monitoring APIs +experimental[] + Logstash provides the following monitoring APIs to retrieve runtime metrics about Logstash: -* <> +* <> * <> * <> -* <> + + +You can use the root resource to retrieve general information about the Logstash instance, including +the host name and version information. + +[source,js] +-------------------------------------------------- +GET / +-------------------------------------------------- + +Example response: + +[source,js] +-------------------------------------------------- +{ + "hostname": "skywalker", + "version" : { + "number" : "2.1.0", + } + } +-------------------------------------------------- [float] [[monitoring-common-options]] @@ -72,35 +94,6 @@ Example response: ] -------------------------------------------------- -[[root-resource-api]] -=== Root Resource API - -experimental[] - -The root resource API retrieves general information about the Logstash instance, including -the host name and version information. - -[source,js] --------------------------------------------------- -GET / --------------------------------------------------- - -Example response: - -[source,js] --------------------------------------------------- -{ - "hostname": "skywalker", - "version" : { - "number" : "2.1.0", - } - } --------------------------------------------------- - - -See <> for a list of options that can be applied to all -Logstash monitoring APIs. - [[stats-info-api]] === Stats Info API From 49cc5eafccc51aab2949fe0a3dca065a6128e6d2 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Sun, 15 May 2016 11:19:10 -0700 Subject: [PATCH 099/632] Remove the pull request template. This was a good idea, but now every PR seems to be submitted with the description being "Thanks for contributing to logstash!" and that's pretty annoying. Fixes #5306 --- .../{PULL_REQUEST_TEMPLATE.md => PULL_REQUEST_TEMPLATE.md.unused} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{PULL_REQUEST_TEMPLATE.md => PULL_REQUEST_TEMPLATE.md.unused} (100%) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md.unused similarity index 100% rename from .github/PULL_REQUEST_TEMPLATE.md rename to .github/PULL_REQUEST_TEMPLATE.md.unused From 6bcacf4c2f9feeb75aeecdfa5ab8b39f6c9182d4 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Sun, 15 May 2016 11:14:45 -0700 Subject: [PATCH 100/632] Add missing require This lets plugins test against core. Oops. Fixes #5297 Fixes #5305 --- spec/spec_helper.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index a865145ca9c..bb2ccba5c7d 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -5,6 +5,7 @@ CoverageHelper.eager_load if ENV['COVERAGE'] require "logstash/devutils/rspec/spec_helper" +require "logstash/logging/json" class JSONIOThingy < IO def initialize; end From f2d8be1009330bae71f04660757c52c88782ddda Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Fri, 13 May 2016 09:48:43 -0700 Subject: [PATCH 101/632] have Event#toMap return copy Fixes #5296 --- .../src/main/java/com/logstash/Event.java | 2 +- .../java/com/logstash/ext/JrubyEventExtLibrary.java | 2 +- .../src/test/java/com/logstash/EventTest.java | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/logstash-core-event-java/src/main/java/com/logstash/Event.java b/logstash-core-event-java/src/main/java/com/logstash/Event.java index bf62eb4ea3b..d8979b41003 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Event.java +++ b/logstash-core-event-java/src/main/java/com/logstash/Event.java @@ -189,7 +189,7 @@ public static Event[] fromJson(String json) } public Map toMap() { - return this.data; + return Cloner.deep(this.data); } public Event overwrite(Event e) { diff --git a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java index 8cf5024f339..926a596001e 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java +++ b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java @@ -245,7 +245,7 @@ public IRubyObject ruby_to_s(ThreadContext context) @JRubyMethod(name = "to_hash") public IRubyObject ruby_to_hash(ThreadContext context) throws IOException { - return Rubyfier.deep(context.runtime, this.event.toMap()); + return Rubyfier.deep(context.runtime, this.event.getData()); } @JRubyMethod(name = "to_hash_with_metadata") diff --git a/logstash-core-event-java/src/test/java/com/logstash/EventTest.java b/logstash-core-event-java/src/test/java/com/logstash/EventTest.java index 505a0593535..61bb4bb7a58 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/EventTest.java +++ b/logstash-core-event-java/src/test/java/com/logstash/EventTest.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.util.*; + import static org.junit.Assert.*; import static net.javacrumbs.jsonunit.JsonAssert.assertJsonEquals; @@ -104,6 +105,15 @@ public void testClone() throws Exception { assertJsonEquals(f.toJson(), e.toJson()); } + @Test + public void testToMap() throws Exception { + Event e = new Event(); + Map original = e.getData(); + Map clone = e.toMap(); + assertFalse(original == clone); + assertEquals(original, clone); + } + @Test public void testAppend() throws Exception { Map data1 = new HashMap(); From d163917044c64893e9235781ded6915be8e71d2a Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 5 May 2016 18:17:00 +0100 Subject: [PATCH 102/632] avoid class variable during pipeline compilation --- logstash-core/lib/logstash/config/config_ast.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/logstash-core/lib/logstash/config/config_ast.rb b/logstash-core/lib/logstash/config/config_ast.rb index 96a7ee46a85..2677e44826d 100644 --- a/logstash-core/lib/logstash/config/config_ast.rb +++ b/logstash-core/lib/logstash/config/config_ast.rb @@ -137,7 +137,10 @@ class Whitespace < Node; end class PluginSection < Node # Global plugin numbering for the janky instance variable naming we use # like @filter__1 - @@i = 0 + def initialize(*args) + super(*args) + @i = 0 + end # Generate ruby code to initialize all the plugins. def compile_initializer @@ -192,9 +195,9 @@ def generate_variables plugins.each do |plugin| # Unique number for every plugin. - @@i += 1 + @i += 1 # store things as ivars, like @filter_grok_3 - var = "@#{plugin.plugin_type}_#{plugin.plugin_name}_#{@@i}" + var = "@#{plugin.plugin_type}_#{plugin.plugin_name}_#{@i}" @variables[plugin] = var end return @variables From 60c04c2bdcee538ede0d5f6527825352297f962a Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 5 May 2016 19:37:35 +0100 Subject: [PATCH 103/632] avoid creating pipeline if fetched config is the same as previous --- logstash-core/lib/logstash/agent.rb | 12 ++++++++---- logstash-core/spec/logstash/agent_spec.rb | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index d8212acf618..5a20c90ce46 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -189,16 +189,20 @@ def fetch_config(settings) # wrapped in @upgrade_mutex in the parent call `reload_state!` def reload_pipeline!(id) old_pipeline = @pipelines[id] + if old_pipeline.config_str == fetch_config(old_pipeline.original_settings) + @logger.debug("no configuration change for pipeline", + :pipeline => id, :config => old_pipeline.config_str) + return + end + new_pipeline = create_pipeline(old_pipeline.original_settings) return if new_pipeline.nil? - if old_pipeline.config_str == new_pipeline.config_str - @logger.debug("no configuration change for pipeline", - :pipeline => id, :config => old_pipeline.config_str) - elsif new_pipeline.non_reloadable_plugins.any? + if new_pipeline.non_reloadable_plugins.any? @logger.error(I18n.t("logstash.agent.non_reloadable_config_reload"), :pipeline_id => id, :plugins => new_pipeline.non_reloadable_plugins.map(&:class)) + return else @logger.warn("fetched new config for pipeline. upgrading..", :pipeline => id, :config => new_pipeline.config_str) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 60d28987f44..f921c272403 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -179,7 +179,7 @@ context "when fetching a new state" do it "upgrades the state" do - expect(subject).to receive(:fetch_config).and_return(second_pipeline_config) + expect(subject).to receive(:fetch_config).twice.and_return(second_pipeline_config) expect(subject).to receive(:upgrade_pipeline).with(pipeline_id, kind_of(LogStash::Pipeline)) subject.send(:reload_state!) end From c8e8bc4b3bccb15000f7455014c33caf1b07de85 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 6 May 2016 09:59:55 +0100 Subject: [PATCH 104/632] reduce overhead of create_pipeline if config is known --- logstash-core/lib/logstash/agent.rb | 22 +++++++++++++--------- logstash-core/spec/logstash/agent_spec.rb | 2 +- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 5a20c90ce46..09f2d21cb76 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -165,12 +165,15 @@ def collect_metrics? @collect_metric end - def create_pipeline(settings) - begin - config = fetch_config(settings) - rescue => e - @logger.error("failed to fetch pipeline configuration", :message => e.message) - return + def create_pipeline(settings, config=nil) + + if config.nil? + begin + config = fetch_config(settings) + rescue => e + @logger.error("failed to fetch pipeline configuration", :message => e.message) + return + end end begin @@ -189,13 +192,14 @@ def fetch_config(settings) # wrapped in @upgrade_mutex in the parent call `reload_state!` def reload_pipeline!(id) old_pipeline = @pipelines[id] - if old_pipeline.config_str == fetch_config(old_pipeline.original_settings) + new_config = fetch_config(old_pipeline.original_settings) + if old_pipeline.config_str == new_config @logger.debug("no configuration change for pipeline", - :pipeline => id, :config => old_pipeline.config_str) + :pipeline => id, :config => new_config) return end - new_pipeline = create_pipeline(old_pipeline.original_settings) + new_pipeline = create_pipeline(old_pipeline.original_settings, new_config) return if new_pipeline.nil? if new_pipeline.non_reloadable_plugins.any? diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index f921c272403..60d28987f44 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -179,7 +179,7 @@ context "when fetching a new state" do it "upgrades the state" do - expect(subject).to receive(:fetch_config).twice.and_return(second_pipeline_config) + expect(subject).to receive(:fetch_config).and_return(second_pipeline_config) expect(subject).to receive(:upgrade_pipeline).with(pipeline_id, kind_of(LogStash::Pipeline)) subject.send(:reload_state!) end From 58bc205204cb5bdb955d5473507409146ce78176 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Fri, 13 May 2016 18:16:39 -0400 Subject: [PATCH 105/632] use closure table instead of ivars --- .../lib/logstash/config/config_ast.rb | 28 ++++++++++--------- logstash-core/spec/logstash/pipeline_spec.rb | 16 +++++++++++ 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/logstash-core/lib/logstash/config/config_ast.rb b/logstash-core/lib/logstash/config/config_ast.rb index 2677e44826d..5bf36df583a 100644 --- a/logstash-core/lib/logstash/config/config_ast.rb +++ b/logstash-core/lib/logstash/config/config_ast.rb @@ -94,6 +94,7 @@ def compile @outputs = [] @periodic_flushers = [] @shutdown_flushers = [] + @generated_objects = {} CODE sections = recursive_select(LogStash::Config::AST::PluginSection) @@ -150,31 +151,31 @@ def compile_initializer code << <<-CODE - #{name} = #{plugin.compile_initializer} - @#{plugin.plugin_type}s << #{name} + @generated_objects[:#{name}] = #{plugin.compile_initializer} + @#{plugin.plugin_type}s << @generated_objects[:#{name}] CODE # The flush method for this filter. if plugin.plugin_type == "filter" code << <<-CODE - #{name}_flush = lambda do |options, &block| - @logger.debug? && @logger.debug(\"Flushing\", :plugin => #{name}) + @generated_objects[:#{name}_flush] = lambda do |options, &block| + @logger.debug? && @logger.debug(\"Flushing\", :plugin => @generated_objects[:#{name}]) - events = #{name}.flush(options) + events = @generated_objects[:#{name}].flush(options) return if events.nil? || events.empty? - @logger.debug? && @logger.debug(\"Flushing\", :plugin => #{name}, :events => events) + @logger.debug? && @logger.debug(\"Flushing\", :plugin => @generated_objects[:#{name}], :events => events) #{plugin.compile_starting_here.gsub(/^/, " ")} events.each{|e| block.call(e)} end - if #{name}.respond_to?(:flush) - @periodic_flushers << #{name}_flush if #{name}.periodic_flush - @shutdown_flushers << #{name}_flush + if @generated_objects[:#{name}].respond_to?(:flush) + @periodic_flushers << @generated_objects[:#{name}_flush] if @generated_objects[:#{name}].periodic_flush + @shutdown_flushers << @generated_objects[:#{name}_flush] end CODE @@ -197,7 +198,8 @@ def generate_variables # Unique number for every plugin. @i += 1 # store things as ivars, like @filter_grok_3 - var = "@#{plugin.plugin_type}_#{plugin.plugin_name}_#{@i}" + var = :"#{plugin.plugin_type}_#{plugin.plugin_name}_#{@i}" + # puts("var=#{var.inspect}") @variables[plugin] = var end return @variables @@ -239,13 +241,13 @@ def compile_initializer def compile case plugin_type when "input" - return "start_input(#{variable_name})" + return "start_input(@generated_objects[:#{variable_name}])" when "filter" return <<-CODE - events = #{variable_name}.multi_filter(events) + events = @generated_objects[:#{variable_name}].multi_filter(events) CODE when "output" - return "targeted_outputs << #{variable_name}\n" + return "targeted_outputs << @generated_objects[:#{variable_name}]\n" when "codec" settings = attributes.recursive_select(Attribute).collect(&:compile).reject(&:empty?) attributes_code = "LogStash::Util.hash_merge_many(#{settings.map { |c| "{ #{c} }" }.join(", ")})" diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index e17ddff719c..ea375570486 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -616,4 +616,20 @@ class TestPipeline < LogStash::Pipeline end end end + + context "Pipeline object" do + before do + allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) + allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec) + allow(LogStash::Plugin).to receive(:lookup).with("filter", "dummyfilter").and_return(DummyFilter) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + end + + let(:pipeline1) { LogStash::Pipeline.new("input { generator {} } filter { dummyfilter {} } output { dummyoutput {}}") } + let(:pipeline2) { LogStash::Pipeline.new("input { generator {} } filter { dummyfilter {} } output { dummyoutput {}}") } + + it "should not add ivars" do + expect(pipeline1.instance_variables).to eq(pipeline2.instance_variables) + end + end end From afe0e1625e32d9ee366dff787f0d158c0e9fe16d Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 16 May 2016 16:48:41 +0100 Subject: [PATCH 106/632] avoid dynamic use of singleton methods in pipeline compilation --- logstash-core/lib/logstash/config/config_ast.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/config/config_ast.rb b/logstash-core/lib/logstash/config/config_ast.rb index 5bf36df583a..b235dded4ed 100644 --- a/logstash-core/lib/logstash/config/config_ast.rb +++ b/logstash-core/lib/logstash/config/config_ast.rb @@ -396,7 +396,7 @@ def compile if type == "filter" i = LogStash::Config::AST.defered_conditionals_index += 1 source = <<-CODE - define_singleton_method :cond_func_#{i} do |input_events| + @generated_objects[:cond_func_#{i}] = lambda do |input_events| result = [] input_events.each do |event| events = [event] @@ -410,7 +410,7 @@ def compile LogStash::Config::AST.defered_conditionals << source <<-CODE - events = cond_func_#{i}(events) + events = @generated_objects[:cond_func_#{i}].call(events) CODE else # Output <<-CODE From 9a4d3631d56f6204971a2ad9b13feea8cad8b2a2 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 16 May 2016 16:55:14 +0100 Subject: [PATCH 107/632] adapt config_ast test to support lack of ivars --- logstash-core/spec/logstash/config/config_ast_spec.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/logstash-core/spec/logstash/config/config_ast_spec.rb b/logstash-core/spec/logstash/config/config_ast_spec.rb index d4ba9af94d9..fcf989fcd0c 100644 --- a/logstash-core/spec/logstash/config/config_ast_spec.rb +++ b/logstash-core/spec/logstash/config/config_ast_spec.rb @@ -169,10 +169,12 @@ def plugin(*args);end end describe "generated conditional functionals" do - it "should be defined at instance level" do + it "should be created per instance" do instance_1 = pipeline_klass.new(config_string) instance_2 = pipeline_klass.new(config_string) - expect(instance_1.method(:cond_func_1).owner).to_not be(instance_2.method(:cond_func_1).owner) + generated_method_1 = instance_1.instance_variable_get("@generated_objects")[:cond_func_1] + generated_method_2 = instance_2.instance_variable_get("@generated_objects")[:cond_func_1] + expect(generated_method_1).to_not be(generated_method_2) end end end From 6380673d6424d4044cbf0d13b3277c9b3078aaf0 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 17 May 2016 15:57:30 -0700 Subject: [PATCH 108/632] Add link in docs for mmonitoring API that points to docs for setting http-port Fixes #5316 --- docs/static/monitoring-apis.asciidoc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 5619485e1c4..3e2c74a1a62 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -31,6 +31,10 @@ Example response: } -------------------------------------------------- +NOTE: By default, the monitoring API attempts to bind to `tcp:9600`. If this port is already in use by another Logstash +instance, you need to launch Logstash with the `--http-port` flag specified to bind to a different port. See +<> for more information. + [float] [[monitoring-common-options]] === Common Options From 670aedb91cd15fbf68efd876f642f10f81ea9e51 Mon Sep 17 00:00:00 2001 From: Glen Smith Date: Wed, 18 May 2016 13:38:43 -0400 Subject: [PATCH 109/632] fix filterworkers decription as of 2.3, the default output workers is 1, not number of cores, and not affected by -w. --- docs/static/command-line-flags.asciidoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 272968a5311..6dc18356370 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -16,8 +16,7 @@ Logstash has the following flags. You can use the `--help` flag to display this is specified, 'stdout { codec => rubydebug }}' is default. -w, --filterworkers COUNT - Sets the number of pipeline workers (threads) to run for filter and output - processing (default: number of cores). + Sets the number of pipeline workers (threads) to run for filter processing (default: number of cores). If you find that events are backing up, or that the CPU is not saturated, consider increasing this number to better utilize machine processing power. From c524660c7e4f91c685edfbd9cb459b6292099c60 Mon Sep 17 00:00:00 2001 From: brizjin Date: Sun, 13 Mar 2016 16:30:52 +0300 Subject: [PATCH 110/632] to see result of filter in stdout Needs to use codec rubydebug for example Fixes #4811 --- docs/static/advanced-pipeline.asciidoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index 6e9d84c3ec2..836b9377cb4 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -117,6 +117,13 @@ filter { } } -------------------------------------------------------------------------------- +And change output to see a result : +[source,json] +-------------------------------------------------------------------------------- +output { + stdout { codec => rubydebug } +} +-------------------------------------------------------------------------------- After processing, the sample line has the following JSON representation: From 7783f76a4c29e2d944c807ceea1b4df85383c423 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 4 Jan 2016 11:24:22 +0000 Subject: [PATCH 111/632] introduce yaml settings file and cli long switches * by default lives in LOGSTASH_HOME/config/logstash.yml * location can be changed by $LS_SETTINGS_DIR or --path.settings * overrides defaults of LogStash::Environment, BUT * CLI flags override the yaml file * several breaking changes to cli flag names (see config/logstash.yml) * setting values are now type checked (see Setting and Settings classes) Fixes #5313 --- config/logstash.yml | 110 +++++++ docs/static/command-line-flags.asciidoc | 43 +-- docs/static/life-of-an-event.asciidoc | 8 +- lib/bootstrap/environment.rb | 9 +- logstash-core/lib/logstash/agent.rb | 54 ++-- logstash-core/lib/logstash/config/loader.rb | 8 +- logstash-core/lib/logstash/environment.rb | 30 ++ logstash-core/lib/logstash/patches/clamp.rb | 69 +++++ logstash-core/lib/logstash/pipeline.rb | 94 +++--- logstash-core/lib/logstash/runner.rb | 281 +++++++++--------- logstash-core/lib/logstash/settings.rb | 267 +++++++++++++++++ .../lib/logstash/util/defaults_printer.rb | 31 -- .../util/worker_threads_default_printer.rb | 4 +- logstash-core/locales/en.yml | 32 +- logstash-core/spec/api/spec_helper.rb | 31 +- logstash-core/spec/logstash/agent_spec.rb | 134 +++++---- logstash-core/spec/logstash/pipeline_spec.rb | 40 ++- logstash-core/spec/logstash/runner_spec.rb | 113 +++++-- logstash-core/spec/logstash/setting_spec.rb | 130 ++++++++ logstash-core/spec/logstash/settings_spec.rb | 62 ++++ .../logstash/util/defaults_printer_spec.rb | 50 ---- .../worker_threads_default_printer_spec.rb | 45 --- rakelib/artifacts.rake | 1 + spec/bootstrap/environment_spec.rb | 6 + 24 files changed, 1145 insertions(+), 507 deletions(-) create mode 100644 config/logstash.yml create mode 100644 logstash-core/lib/logstash/patches/clamp.rb create mode 100644 logstash-core/lib/logstash/settings.rb delete mode 100644 logstash-core/lib/logstash/util/defaults_printer.rb create mode 100644 logstash-core/spec/logstash/setting_spec.rb create mode 100644 logstash-core/spec/logstash/settings_spec.rb delete mode 100644 logstash-core/spec/logstash/util/defaults_printer_spec.rb delete mode 100644 logstash-core/spec/logstash/util/worker_threads_default_printer_spec.rb create mode 100644 spec/bootstrap/environment_spec.rb diff --git a/config/logstash.yml b/config/logstash.yml new file mode 100644 index 00000000000..f7a673e5237 --- /dev/null +++ b/config/logstash.yml @@ -0,0 +1,110 @@ +# Settings file in YAML +# +# Settings can be specified either in hierarchical form, e.g.: +# +# pipeline: +# batch: +# size: 125 +# delay: 5 +# +# Or as flat keys: +# +# pipeline.batch.size: 125 +# pipeline.batch.delay: 5 +# +# ------------ Node identity ------------ +# +# Use a descriptive name for the node: +# +# node.name: test +# +# If omitted the node name will default to the machine's host name +# +# ------------ Pipeline Settings -------------- +# +# Set the number of workers that will, in parallel, execute the filters+outputs +# stage of the pipeline. +# +# This defaults to half the number of the host's CPU cores. +# +# pipeline.workers: 2 +# +# How many workers should be used per output plugin instance +# +# pipeline.output.workers: 1 +# +# How many events to retrieve from inputs before sending to filters+workers +# +# pipeline.batch.size: 125 +# +# How long to wait before dispatching an undersized batch to filters+workers +# Value is in seconds. +# +# pipeline.batch.delay: 5 +# +# Force Logstash to exit during shutdown even if there are still inflight +# events in memory. By default, logstash will refuse to quit until all +# received events have been pushed to the outputs. +# +# WARNING: enabling this can lead to data loss during shutdown +# +# pipeline.unsafe_shutdown: false +# +# ------------ Pipeline Configuration Settings -------------- +# +# Allow the pipeline configuration to be injected with environment variables +# +# config.allow_env: false +# +# Where to fetch the pipeline configuration for the main pipeline +# +# path.config: +# +# Pipeline configuration string for the main pipeline +# +# config.string: +# +# At startup, test if the configuration is valid and exit (dry run) +# +# config.test_and_exit: false +# +# Periodically check if the configuration has changed and reload the pipeline +# This can also be triggered manually through the SIGHUP signal +# +# config.reload.automatic: false +# +# How often to check if the pipeline configuration has changed (in seconds) +# +# config.reload.interval: 3 +# +# Show fully compiled configuration as debug log message +# NOTE: --log.level must be 'debug' +# +# config.debug: false +# +# ------------ Metrics Settings -------------- +# +# Bind address for the metrics REST endpoint +# +# http.host: "127.0.0.1" +# +# Bind port for the metrics REST endpoint +# +# http.port: 9600 +# +# ------------ Debugging Settings -------------- +# +# Options for log.level: +# * warn => warn (default) +# * quiet => error +# * verbose => info +# * debug => debug +# +# log.level: warn +# log.format: plain (or 'json') +# path.log: +# +# ------------ Other Settings -------------- +# +# Where to find custom plugins +# path.plugins: [] diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 6dc18356370..ce386c594ed 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -5,74 +5,79 @@ Logstash has the following flags. You can use the `--help` flag to display this [source,shell] ---------------------------------- --f, --config CONFIGFILE +-f, --path.config CONFIGFILE Load the Logstash config from a specific file, directory, or a wildcard. If given a directory or wildcard, config files will be read from the directory in alphabetical order. --e CONFIGSTRING +-e, --config.string CONFIGSTRING Use the given string as the configuration data. Same syntax as the config file. If not input is specified, 'stdin { type => stdin }' is default. If no output is specified, 'stdout { codec => rubydebug }}' is default. --w, --filterworkers COUNT +-w, --pipeline.workers COUNT Sets the number of pipeline workers (threads) to run for filter processing (default: number of cores). If you find that events are backing up, or that the CPU is not saturated, consider increasing this number to better utilize machine processing power. --b, --pipeline-batch-size SIZE +-b, --pipeline.batch.size SIZE This parameter defines the maximum number of events an individual worker thread will collect before attempting to execute its filters and outputs. Default is 125 events. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the `LS_HEAP_SIZE` variable to effectively use the option. --u, --pipeline-batch-delay DELAY_IN_MS +-u, --pipeline.batch.delay DELAY_IN_MS When creating pipeline event batches, how long to wait while polling for the next event. Default is 5ms. --l, --log FILE +-l, --path.log FILE Log to a given path. Default is to log to stdout ---verbose - Increase verbosity to the first level (info), less verbose. +--log.level + Set the log level, between "quiet", "verbose", "warn" (default) and "debug". ---debug - Increase verbosity to the last level (trace), more verbose. +--log.format FORMAT + Set to "json" to log in JSON format, or "plain" (default) to use Object#.inspect ---debug-config - Print the compiled config ruby code out as a debug log (you must also have --debug enabled). +--config.debug + Print the compiled config ruby code out as a debug log (you must also have --log.level=debug enabled). WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result in plaintext passwords appearing in your logs! -V, --version Display the version of Logstash. --p, --pluginpath +-p, --plugin.path A path of where to find plugins. This flag can be given multiple times to include multiple paths. Plugins are expected to be in a specific directory hierarchy: 'PATH/logstash/TYPE/NAME.rb' where TYPE is 'inputs' 'filters', 'outputs' or 'codecs' and NAME is the name of the plugin. --t, --configtest +-t, --config.test_and_exit Checks configuration and then exit. Note that grok patterns are not checked for correctness with this flag. Logstash can read multiple config files from a directory. If you combine this - flag with `--debug`, Logstash will log the combined config file, annotating the + flag with `--log.level=debug`, Logstash will log the combined config file, annotating the individual config blocks with the source file it came from. --r, --[no-]auto-reload +-r, --config.reload.automatic Monitor configuration changes and reload the configuration whenever it is changed. ---reload-interval RELOAD_INTERVAL +--config.reload.interval RELOAD_INTERVAL Specifies how often Logstash checks the config files for changes. The default is every 3 seconds. ---http-host WEB_API_HTTP_HOST +--http.host HTTP_HOST Web API binding host (default: "127.0.0.1") ---http-port WEB_API_HTTP_PORT +--http.port HTTP_PORT Web API http port (default: 9600) +--pipeline.unsafe_shutdown + Force logstash to exit during shutdown even if there are still inflight events + in memory. By default, logstash will refuse to quit until all received events + have been pushed to the outputs. + -h, --help Print help ---------------------------------- diff --git a/docs/static/life-of-an-event.asciidoc b/docs/static/life-of-an-event.asciidoc index a4712ba46c4..b85549ecc36 100644 --- a/docs/static/life-of-an-event.asciidoc +++ b/docs/static/life-of-an-event.asciidoc @@ -119,12 +119,12 @@ num_pipeline_workers.times do end wait_for_threads_to_terminate() -There are three configurable options in the pipeline, `--pipeline-workers`, `--pipeline-batch-size`, and `--pipeline-batch-delay`. -The `--pipeline-workers` or `-w` parameter determines how many threads to run for filter and output processing. If you find that events are backing up, or that the CPU is not saturated, consider increasing the value of this parameter to make better use of available processing power. Good results can even be found increasing this number past the number of available processors as these threads may spend significant time in an I/O wait state when writing to external systems. Legal values for this parameter are positive integers. +There are three configurable options in the pipeline, `--pipeline.workers`, `--pipeline.batch.size`, and `--pipeline.batch.delay`. +The `--pipeline.workers` or `-w` parameter determines how many threads to run for filter and output processing. If you find that events are backing up, or that the CPU is not saturated, consider increasing the value of this parameter to make better use of available processing power. Good results can even be found increasing this number past the number of available processors as these threads may spend significant time in an I/O wait state when writing to external systems. Legal values for this parameter are positive integers. -The `--pipeline-batch-size` or `-b` parameter defines the maximum number of events an individual worker thread collects before attempting to execute filters and outputs. Larger batch sizes are generally more efficient, but increase memory overhead. Some hardware configurations require you to increase JVM heap size by setting the `LS_HEAP_SIZE` variable to avoid performance degradation with this option. Values of this parameter in excess of the optimum range cause performance degradation due to frequent garbage collection or JVM crashes related to out-of-memory exceptions. Output plugins can process each batch as a logical unit. The Elasticsearch output, for example, issues https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html[bulk requests] for each batch received. Tuning the `-b` parameter adjusts the size of bulk requests sent to Elasticsearch. +The `--pipeline.batch.size` or `-b` parameter defines the maximum number of events an individual worker thread collects before attempting to execute filters and outputs. Larger batch sizes are generally more efficient, but increase memory overhead. Some hardware configurations require you to increase JVM heap size by setting the `LS_HEAP_SIZE` variable to avoid performance degradation with this option. Values of this parameter in excess of the optimum range cause performance degradation due to frequent garbage collection or JVM crashes related to out-of-memory exceptions. Output plugins can process each batch as a logical unit. The Elasticsearch output, for example, issues https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html[bulk requests] for each batch received. Tuning the `-b` parameter adjusts the size of bulk requests sent to Elasticsearch. -The `--pipeline-batch-delay` option rarely needs to be tuned. This option adjusts the latency of the Logstash pipeline. Pipeline batch delay is the maximum amount of time in milliseconds that Logstash waits for new messages after receiving an event in the current pipeline worker thread. After this time elapses, Logstash begins to execute filters and outputs.The maximum time that Logstash waits between receiving an event and processing that event in a filter is the product of the `pipeline_batch_delay` and `pipeline_batch_size` settings. +The `--pipeline.batch.delay` option rarely needs to be tuned. This option adjusts the latency of the Logstash pipeline. Pipeline batch delay is the maximum amount of time in milliseconds that Logstash waits for new messages after receiving an event in the current pipeline worker thread. After this time elapses, Logstash begins to execute filters and outputs.The maximum time that Logstash waits between receiving an event and processing that event in a filter is the product of the `pipeline_batch_delay` and `pipeline_batch_size` settings. [float] ==== Notes on Pipeline Configuration and Performance diff --git a/lib/bootstrap/environment.rb b/lib/bootstrap/environment.rb index 66ed16093f0..ab73f5e37e4 100644 --- a/lib/bootstrap/environment.rb +++ b/lib/bootstrap/environment.rb @@ -56,7 +56,6 @@ def pattern_path(path) end end - # when launched as a script, not require'd, (currently from bin/logstash and bin/logstash-plugin) the first # argument is the path of a Ruby file to require and a LogStash::Runner class is expected to be # defined and exposing the LogStash::Runner#main instance method which will be called with the current ARGV @@ -64,12 +63,6 @@ def pattern_path(path) if $0 == __FILE__ LogStash::Bundler.setup!({:without => [:build, :development]}) require ARGV.shift - # TODO deprecate these arguments in the next major version. use -i only - if ARGV == ["irb"] || ARGV == ["pry"] - puts "Warn: option \"#{ARGV.first}\" is deprecated, use \"-i #{ARGV.first}\" or \"--interactive=#{ARGV.first}\" instead" - exit_status = LogStash::Runner.run("bin/logstash", ["--interactive", ARGV.first]) - else - exit_status = LogStash::Runner.run("bin/logstash", ARGV) - end + exit_status = LogStash::Runner.run("bin/logstash", ARGV) exit(exit_status || 0) end diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 09f2d21cb76..0153bf3ada9 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -20,7 +20,8 @@ class LogStash::Agent STARTED_AT = Time.now.freeze - attr_reader :metric, :node_name, :pipelines, :logger + attr_reader :metric, :node_name, :pipelines, :settings + attr_accessor :logger # initialize method for LogStash::Agent # @param params [Hash] potential parameters are: @@ -28,21 +29,23 @@ class LogStash::Agent # :auto_reload [Boolean] - enable reloading of pipelines # :reload_interval [Integer] - reload pipelines every X seconds # :logger [Cabin::Channel] - logger instance - def initialize(params) - @logger = params[:logger] - @auto_reload = params[:auto_reload] + def initialize(settings = LogStash::SETTINGS) + @settings = settings + @logger = Cabin::Channel.get(LogStash) + @auto_reload = setting("config.reload.automatic") @pipelines = {} - @node_name = params[:node_name] || Socket.gethostname - @web_api_http_host = params[:web_api_http_host] - @web_api_http_port = params[:web_api_http_port] + @node_name = setting("node.name") + @http_host = setting("http.host") + @http_port = setting("http.port") - @config_loader = LogStash::Config::Loader.new(@logger, params[:debug_config]) - @reload_interval = params[:reload_interval] || 3 # seconds + @config_loader = LogStash::Config::Loader.new(@logger) + @reload_interval = setting("config.reload.interval") @upgrade_mutex = Mutex.new - @collect_metric = params.fetch(:collect_metric, false) - setup_metric_collection + @collect_metric = setting("metric.collect") + @metric = create_metric_collector + @periodic_pollers = LogStash::Instrument::PeriodicPollers.new(metric) end def execute @@ -74,9 +77,13 @@ def execute # @param pipeline_id [String] pipeline string identifier # @param settings [Hash] settings that will be passed when creating the pipeline. # keys should be symbols such as :pipeline_workers and :pipeline_batch_delay - def register_pipeline(pipeline_id, settings) - pipeline = create_pipeline(settings.merge(:pipeline_id => pipeline_id, :metric => metric)) + def register_pipeline(pipeline_id, settings = @settings) + pipeline_settings = settings.clone + pipeline_settings.set("pipeline.id", pipeline_id) + + pipeline = create_pipeline(pipeline_settings) return unless pipeline.is_a?(LogStash::Pipeline) + pipeline.metric = @metric if @auto_reload && pipeline.non_reloadable_plugins.any? @logger.error(I18n.t("logstash.agent.non_reloadable_config_register"), :pipeline_id => pipeline_id, @@ -123,7 +130,7 @@ def running_pipelines? private def start_webserver - options = {:http_host => @web_api_http_host, :http_port => @web_api_http_port } + options = {:http_host => @http_host, :http_port => @http_port } @webserver = LogStash::WebServer.new(@logger, options) Thread.new(@webserver) do |webserver| LogStash::Util.set_thread_name("Api Webserver") @@ -149,16 +156,14 @@ def stop_background_services end end - def setup_metric_collection + def create_metric_collector if collect_metrics? @logger.debug("Agent: Configuring metric collection") LogStash::Instrument::Collector.instance.agent = self - @metric = LogStash::Instrument::Metric.new + LogStash::Instrument::Metric.new else - @metric = LogStash::Instrument::NullMetric.new + LogStash::Instrument::NullMetric.new end - - @periodic_pollers = LogStash::Instrument::PeriodicPollers.new(metric) end def collect_metrics? @@ -185,21 +190,22 @@ def create_pipeline(settings, config=nil) end def fetch_config(settings) - @config_loader.format_config(settings[:config_path], settings[:config_string]) + @config_loader.format_config(settings.get("path.config"), settings.get("config.string")) end # since this method modifies the @pipelines hash it is # wrapped in @upgrade_mutex in the parent call `reload_state!` def reload_pipeline!(id) old_pipeline = @pipelines[id] - new_config = fetch_config(old_pipeline.original_settings) + new_config = fetch_config(old_pipeline.settings) if old_pipeline.config_str == new_config @logger.debug("no configuration change for pipeline", :pipeline => id, :config => new_config) return end - new_pipeline = create_pipeline(old_pipeline.original_settings, new_config) + new_pipeline = create_pipeline(old_pipeline.settings, new_config) + return if new_pipeline.nil? if new_pipeline.non_reloadable_plugins.any? @@ -270,4 +276,8 @@ def clean_state? def reset_collector LogStash::Instrument::Collector.instance.clear end + + def setting(key) + @settings.get(key) + end end # class LogStash::Agent diff --git a/logstash-core/lib/logstash/config/loader.rb b/logstash-core/lib/logstash/config/loader.rb index 1cd0f3febaa..b260830d741 100644 --- a/logstash-core/lib/logstash/config/loader.rb +++ b/logstash-core/lib/logstash/config/loader.rb @@ -1,9 +1,9 @@ require "logstash/config/defaults" module LogStash; module Config; class Loader - def initialize(logger, debug_config=false) + def initialize(logger) @logger = logger - @debug_config = debug_config + @config_debug = LogStash::SETTINGS.get_value("config.debug") end def format_config(config_path, config_string) @@ -70,7 +70,7 @@ def local_config(path) encoding_issue_files << file end config << cfg + "\n" - if @debug_config + if @config_debug @logger.debug? && @logger.debug("\nThe following is the content of a file", :config_file => file.to_s) @logger.debug? && @logger.debug("\n" + cfg + "\n\n") end @@ -78,7 +78,7 @@ def local_config(path) if encoding_issue_files.any? fail("The following config files contains non-ascii characters but are not UTF-8 encoded #{encoding_issue_files}") end - if @debug_config + if @config_debug @logger.debug? && @logger.debug("\nThe following is the merged configuration") @logger.debug? && @logger.debug("\n" + config + "\n\n") end diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 79e7f24d86c..6bf61b7d75c 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -1,7 +1,37 @@ # encoding: utf-8 require "logstash/errors" +require "logstash/config/cpu_core_strategy" +require "logstash/settings" module LogStash + + [ + Setting::String.new("node.name", Socket.gethostname), + Setting::String.new("path.config", nil, false), + Setting::String.new("config.string", nil, false), + Setting::Boolean.new("config.test_and_exit", false), + Setting::Boolean.new("config.reload.automatic", false), + Setting::Numeric.new("config.reload.interval", 3), + Setting::Boolean.new("metric.collect", true) {|v| v == true }, # metric collection cannot be disabled + Setting::String.new("path.settings", ::File.join(Environment::LOGSTASH_HOME, "config")), + Setting::String.new("pipeline.id", "main"), + Setting::Numeric.new("pipeline.workers", LogStash::Config::CpuCoreStrategy.maximum), + Setting::Numeric.new("pipeline.output.workers", 1), + Setting::Numeric.new("pipeline.batch.size", 125), + Setting::Numeric.new("pipeline.batch.delay", 5), # in milliseconds + Setting::Boolean.new("pipeline.unsafe_shutdown", false), + Setting.new("path.plugins", Array, []), + Setting::String.new("interactive", nil, false), + Setting::Boolean.new("config.debug", false), + Setting::String.new("log.level", "warn", true, ["quiet", "verbose", "warn", "debug"]), + Setting::Boolean.new("version", false), + Setting::Boolean.new("help", false), + Setting::String.new("path.log", nil, false), + Setting::String.new("log.format", "plain", true, ["json", "plain"]), + Setting::String.new("http.host", "127.0.0.1"), + Setting::Port.new("http.port", 9600), + ].each {|setting| SETTINGS.register(setting) } + module Environment extend self diff --git a/logstash-core/lib/logstash/patches/clamp.rb b/logstash-core/lib/logstash/patches/clamp.rb new file mode 100644 index 00000000000..0934157a9e3 --- /dev/null +++ b/logstash-core/lib/logstash/patches/clamp.rb @@ -0,0 +1,69 @@ +require 'clamp' +require 'logstash/environment' + +module Clamp + module Attribute + class Instance + def default_from_environment + # we don't want uncontrolled var injection from the environment + # since we're establishing that settings can be pulled from only three places: + # 1. default settings + # 2. yaml file + # 3. cli arguments + end + end + end + + module Option + + module StrictDeclaration + + include Clamp::Attribute::Declaration + + # Instead of letting Clamp set up accessors for the options + # weĹ•e going to tightly controlling them through + # LogStash::SETTINGS + def define_simple_writer_for(option, &block) + LogStash::SETTINGS.get(option.attribute_name) + define_method(option.write_method) do |value| + value = instance_exec(value, &block) if block + LogStash::SETTINGS.set_value(option.attribute_name, value) + end + end + + def define_reader_for(option) + define_method(option.read_method) do + LogStash::SETTINGS.get_value(option.attribute_name) + end + end + + end + + class Definition + # Allow boolean flags to optionally receive a true/false argument + # to explicitly set them, i.e. + # --long.flag.name => sets flag to true + # --long.flag.name true => sets flag to true + # --long.flag.name false => sets flag to false + # --long.flag.name=true => sets flag to true + # --long.flag.name=false => sets flag to false + def extract_value(switch, arguments) + if flag? && (arguments.first.nil? || arguments.first.match("^-")) + flag_value(switch) + else + arguments.shift + end + end + end + end + + # Create a subclass of Clamp::Command that enforces the use of + # LogStash::SETTINGS for setting validation + class StrictCommand < Command + class << self + include ::Clamp::Option::StrictDeclaration + end + end +end + + diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 529ad6e887c..3114cdb7ced 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -9,8 +9,6 @@ require "logstash/filters/base" require "logstash/inputs/base" require "logstash/outputs/base" -require "logstash/config/cpu_core_strategy" -require "logstash/util/defaults_printer" require "logstash/shutdown_watcher" require "logstash/util/wrapped_synchronous_queue" require "logstash/pipeline_reporter" @@ -22,7 +20,7 @@ require "logstash/filter_delegator" module LogStash; class Pipeline - attr_reader :inputs, + attr_reader :inputs, :filters, :outputs, :worker_threads, @@ -30,36 +28,24 @@ module LogStash; class Pipeline :events_filtered, :reporter, :pipeline_id, - :metric, :logger, :started_at, :thread, :config_str, - :original_settings - - DEFAULT_OUTPUT_WORKERS = 1 - - DEFAULT_SETTINGS = { - :default_pipeline_workers => LogStash::Config::CpuCoreStrategy.maximum, - :pipeline_batch_size => 125, - :pipeline_batch_delay => 5, # in milliseconds - :flush_interval => 5, # in seconds - :flush_timeout_interval => 60, # in seconds - :debug_config => false - } + :settings + attr_accessor :metric + MAX_INFLIGHT_WARN_THRESHOLD = 10_000 RELOAD_INCOMPATIBLE_PLUGINS = [ "LogStash::Inputs::Stdin" ] - def initialize(config_str, settings = {}) + def initialize(config_str, settings = LogStash::SETTINGS) @config_str = config_str - @original_settings = settings @logger = Cabin::Channel.get(LogStash) - @pipeline_id = settings[:pipeline_id] || self.object_id - @settings = DEFAULT_SETTINGS.clone - settings.each {|setting, value| configure(setting, value) } + @settings = settings + @pipeline_id = @settings.get_value("pipeline.id") || self.object_id @reporter = LogStash::PipelineReporter.new(@logger, self) @inputs = nil @@ -74,9 +60,11 @@ def initialize(config_str, settings = {}) # We also do this to make the changes backward compatible with previous testing of the # pipeline. # - # This need to be configured before we evaluate the code to make + # This needs to be configured before we evaluate the code to make # sure the metric instance is correctly send to the plugin. - @metric = settings.fetch(:metric, Instrument::NullMetric.new) + # NOTE: It is the responsibility of the Agent to set this externally with a setter + # if there's an intent of this not being a NullMetric + @metric = Instrument::NullMetric.new grammar = LogStashConfigParser.new @config = grammar.parse(config_str) @@ -92,7 +80,7 @@ def initialize(config_str, settings = {}) # The config code is hard to represent as a log message... # So just print it. - if @settings[:debug_config] && logger.debug? + if @settings.get("config.debug") && logger.debug? logger.debug("Compiled pipeline code", :code => code) end @@ -121,38 +109,29 @@ def ready? @ready.value end - def configure(setting, value) - @settings[setting] = value - end - def safe_pipeline_worker_count - default = DEFAULT_SETTINGS[:default_pipeline_workers] - thread_count = @settings[:pipeline_workers] #override from args "-w 8" or config + default = @settings.get_default("pipeline.workers") + pipeline_workers = @settings.get("pipeline.workers") #override from args "-w 8" or config safe_filters, unsafe_filters = @filters.partition(&:threadsafe?) + plugins = unsafe_filters.collect { |f| f.config_name } - if unsafe_filters.any? - plugins = unsafe_filters.collect { |f| f.config_name } - case thread_count - when nil - # user did not specify a worker thread count - # warn if the default is multiple - - if default > 1 - @logger.warn("Defaulting pipeline worker threads to 1 because there are some filters that might not work with multiple worker threads", - :count_was => default, :filters => plugins) - end + return pipeline_workers if unsafe_filters.empty? - 1 # can't allow the default value to propagate if there are unsafe filters - when 0, 1 - 1 - else + if @settings.set?("pipeline.workers") + if pipeline_workers > 1 @logger.warn("Warning: Manual override - there are filters that might not work with multiple worker threads", - :worker_threads => thread_count, :filters => plugins) - thread_count # allow user to force this even if there are unsafe filters + :worker_threads => pipeline_workers, :filters => plugins) end else - thread_count || default + # user did not specify a worker thread count + # warn if the default is multiple + if default > 1 + @logger.warn("Defaulting pipeline worker threads to 1 because there are some filters that might not work with multiple worker threads", + :count_was => default, :filters => plugins) + return 1 # can't allow the default value to propagate if there are unsafe filters + end end + pipeline_workers end def filters? @@ -162,9 +141,8 @@ def filters? def run @started_at = Time.now - LogStash::Util.set_thread_name("[#{pipeline_id}]-pipeline-manager") - @logger.terminal(LogStash::Util::DefaultsPrinter.print(@settings)) @thread = Thread.current + LogStash::Util.set_thread_name("[#{pipeline_id}]-pipeline-manager") start_workers @@ -215,15 +193,15 @@ def start_workers @filters.each {|f| f.register } pipeline_workers = safe_pipeline_worker_count - batch_size = @settings[:pipeline_batch_size] - batch_delay = @settings[:pipeline_batch_delay] + batch_size = @settings.get("pipeline.batch.size") + batch_delay = @settings.get("pipeline.batch.delay") max_inflight = batch_size * pipeline_workers @logger.info("Starting pipeline", - :id => self.pipeline_id, - :pipeline_workers => pipeline_workers, - :batch_size => batch_size, - :batch_delay => batch_delay, - :max_inflight => max_inflight) + "id" => self.pipeline_id, + "pipeline.workers" => pipeline_workers, + "pipeline.batch.size" => batch_size, + "pipeline.batch.delay" => batch_delay, + "pipeline.max_inflight" => max_inflight) if max_inflight > MAX_INFLIGHT_WARN_THRESHOLD @logger.warn "CAUTION: Recommended inflight events max exceeded! Logstash will run with up to #{max_inflight} events in memory in your current configuration. If your message sizes are large this may cause instability with the default heap size. Please consider setting a non-standard heap size, changing the batch size (currently #{batch_size}), or changing the number of pipeline workers (currently #{pipeline_workers})" end @@ -457,7 +435,7 @@ def plugin(plugin_type, name, *args) klass = LogStash::Plugin.lookup(plugin_type, name) if plugin_type == "output" - LogStash::OutputDelegator.new(@logger, klass, DEFAULT_OUTPUT_WORKERS, pipeline_scoped_metric.namespace(:outputs), *args) + LogStash::OutputDelegator.new(@logger, klass, @settings.get("pipeline.output.workers"), pipeline_scoped_metric.namespace(:outputs), *args) elsif plugin_type == "filter" LogStash::FilterDelegator.new(@logger, klass, pipeline_scoped_metric.namespace(:filters), *args) else diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index a5e32e53b62..6517bf64b02 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -3,7 +3,8 @@ Encoding.default_external = Encoding::UTF_8 $DEBUGLIST = (ENV["DEBUG"] || "").split(",") -require "clamp" # gem 'clamp' +require "clamp" +require "cabin" require "net/http" require "logstash/environment" @@ -12,125 +13,127 @@ require "logstash/namespace" require "logstash/agent" require "logstash/config/defaults" +require "logstash/shutdown_watcher" +require "logstash/patches/clamp" -class LogStash::Runner < Clamp::Command +class LogStash::Runner < Clamp::StrictCommand - option ["-f", "--config"], "CONFIG_PATH", + # Node Settings + option ["-n", "--node.name"], "NAME", + I18n.t("logstash.runner.flag.node_name"), + :attribute_name => "node.name", + :default => LogStash::SETTINGS.get_default("node.name") + + # Config Settings + option ["-f", "--path.config"], "CONFIG_PATH", I18n.t("logstash.runner.flag.config"), - :attribute_name => :config_path + :attribute_name => "path.config" - option "-e", "CONFIG_STRING", + option ["-e", "--config.string"], "CONFIG_STRING", I18n.t("logstash.runner.flag.config-string", - :default_input => LogStash::Config::Defaults.input, - :default_output => LogStash::Config::Defaults.output), - :default => nil, :attribute_name => :config_string + :default_input => LogStash::Config::Defaults.input, + :default_output => LogStash::Config::Defaults.output), + :default => LogStash::SETTINGS.get_default("config.string"), + :attribute_name => "config.string" - option ["-w", "--pipeline-workers"], "COUNT", + # Pipeline settings + option ["-w", "--pipeline.workers"], "COUNT", I18n.t("logstash.runner.flag.pipeline-workers"), - :attribute_name => :pipeline_workers, - :default => LogStash::Pipeline::DEFAULT_SETTINGS[:default_pipeline_workers] + :attribute_name => "pipeline.workers", + :default => LogStash::SETTINGS.get_default("pipeline.workers"), &:to_i + + option ["-b", "--pipeline.batch.size"], "SIZE", + I18n.t("logstash.runner.flag.pipeline-batch-size"), + :attribute_name => "pipeline.batch.size", + :default => LogStash::SETTINGS.get_default("pipeline.batch.size"), &:to_i - option ["-b", "--pipeline-batch-size"], "SIZE", - I18n.t("logstash.runner.flag.pipeline-batch-size"), - :attribute_name => :pipeline_batch_size, - :default => LogStash::Pipeline::DEFAULT_SETTINGS[:pipeline_batch_size] + option ["-u", "--pipeline.batch.delay"], "DELAY_IN_MS", + I18n.t("logstash.runner.flag.pipeline-batch-delay"), + :attribute_name => "pipeline.batch.delay", + :default => LogStash::SETTINGS.get_default("pipeline.batch.delay"), &:to_i + + option ["--pipeline.unsafe_shutdown"], :flag, + I18n.t("logstash.runner.flag.unsafe_shutdown"), + :attribute_name => "pipeline.unsafe_shutdown", + :default => LogStash::SETTINGS.get_default("pipeline.unsafe_shutdown") - option ["-u", "--pipeline-batch-delay"], "DELAY_IN_MS", - I18n.t("logstash.runner.flag.pipeline-batch-delay"), - :attribute_name => :pipeline_batch_delay, - :default => LogStash::Pipeline::DEFAULT_SETTINGS[:pipeline_batch_delay] + # Plugins Settings + option ["-p", "--path.plugins"] , "PATH", + I18n.t("logstash.runner.flag.pluginpath"), + :multivalued => true, :attribute_name => "path.plugins", + :default => LogStash::SETTINGS.get_default("path.plugins") - option ["-l", "--log"], "FILE", + # Logging Settings + option ["-l", "--path.log"], "FILE", I18n.t("logstash.runner.flag.log"), - :attribute_name => :log_file + :attribute_name => "path.log" - # Old support for the '-v' flag' - option "-v", :flag, - I18n.t("logstash.runner.flag.verbosity"), - :attribute_name => :verbosity, :multivalued => true + option "--log.level", "LEVEL", I18n.t("logstash.runner.flag.log_level"), + :default => LogStash::SETTINGS.get_default("log.level") - option "--quiet", :flag, I18n.t("logstash.runner.flag.quiet") - option "--verbose", :flag, I18n.t("logstash.runner.flag.verbose") - option "--debug", :flag, I18n.t("logstash.runner.flag.debug") + option "--config.debug", :flag, + I18n.t("logstash.runner.flag.config_debug"), + :default => LogStash::SETTINGS.get_default("config.debug"), + :attribute_name => "config.debug" - option ["--debug-config"], :flag, - I18n.t("logstash.runner.flag.debug_config"), - :attribute_name => :debug_config, :default => false + # Other settings + option ["-i", "--interactive"], "SHELL", + I18n.t("logstash.runner.flag.rubyshell"), + :attribute_name => "interactive" option ["-V", "--version"], :flag, I18n.t("logstash.runner.flag.version") - option ["-p", "--pluginpath"] , "PATH", - I18n.t("logstash.runner.flag.pluginpath"), - :multivalued => true, - :attribute_name => :plugin_paths - - option ["-t", "--configtest"], :flag, + option ["-t", "--config.test_and_exit"], :flag, I18n.t("logstash.runner.flag.configtest"), - :attribute_name => :config_test + :attribute_name => "config.test_and_exit", + :default => LogStash::SETTINGS.get_default("config.test_and_exit") - option "--[no-]allow-unsafe-shutdown", :flag, - I18n.t("logstash.runner.flag.unsafe_shutdown"), - :attribute_name => :unsafe_shutdown, - :default => false - - option ["-i", "--interactive"], "SHELL", - I18n.t("logstash.runner.flag.rubyshell"), - :attribute_name => :ruby_shell - - option ["-n", "--node-name"], "NAME", - I18n.t("logstash.runner.flag.node_name"), - :attribute_name => :node_name - - option ["-r", "--[no-]auto-reload"], :flag, + option ["-r", "--config.reload.automatic"], :flag, I18n.t("logstash.runner.flag.auto_reload"), - :attribute_name => :auto_reload, :default => false + :attribute_name => "config.reload.automatic", + :default => LogStash::SETTINGS.get_default("config.reload.automatic") - option ["--reload-interval"], "RELOAD_INTERVAL", + option ["--config.reload.interval"], "RELOAD_INTERVAL", I18n.t("logstash.runner.flag.reload_interval"), - :attribute_name => :reload_interval, :default => 3, &:to_i - - option ["--http-host"], "WEB_API_HTTP_HOST", - I18n.t("logstash.web_api.flag.http_host"), - :attribute_name => :web_api_http_host, :default => "127.0.0.1" - - option ["--http-port"], "WEB_API_HTTP_PORT", - I18n.t("logstash.web_api.flag.http_port"), - :attribute_name => :web_api_http_port, :default => 9600 - - option ["--[no-]log-in-json"], :flag, - I18n.t("logstash.runner.flag.log-in-json"), - :default => false + :attribute_name => "config.reload.interval", + :default => LogStash::SETTINGS.get_default("config.reload.interval"), &:to_i - def pipeline_workers=(pipeline_workers_value) - @pipeline_settings[:pipeline_workers] = validate_positive_integer(pipeline_workers_value) - end + option ["--http.host"], "HTTP_HOST", + I18n.t("logstash.runner.flag.http_host"), + :attribute_name => "http.host", + :default => LogStash::SETTINGS.get_default("http.host") - def pipeline_batch_size=(pipeline_batch_size_value) - @pipeline_settings[:pipeline_batch_size] = validate_positive_integer(pipeline_batch_size_value) - end + option ["--http.port"], "HTTP_PORT", + I18n.t("logstash.runner.flag.http_port"), + :attribute_name => "http.port", + :default => LogStash::SETTINGS.get_default("http.port"), &:to_i - def pipeline_batch_delay=(pipeline_batch_delay_value) - @pipeline_settings[:pipeline_batch_delay] = validate_positive_integer(pipeline_batch_delay_value) - end - - def validate_positive_integer(str_arg) - int_arg = str_arg.to_i - if str_arg !~ /^\d+$/ || int_arg < 1 - raise ArgumentError, "Expected a positive integer, got '#{str_arg}'" - end + option ["--log.format"], "FORMAT", + I18n.t("logstash.runner.flag.log_format"), + :attribute_name => "log.format", + :default => LogStash::SETTINGS.get_default("log.format") - int_arg - end + option ["--path.settings"], "SETTINGS_DIR", + I18n.t("logstash.runner.flag.path_settings"), + :attribute_name => "path.settings", + :default => LogStash::SETTINGS.get_default("path.settings") attr_reader :agent def initialize(*args) @logger = Cabin::Channel.get(LogStash) - @pipeline_settings ||= { :pipeline_id => "main" } + @settings = LogStash::SETTINGS super(*args) end + def run(args) + settings_path = fetch_settings_path(args) + @settings.set("path.settings", settings_path) if settings_path + LogStash::SETTINGS.from_yaml(LogStash::SETTINGS.get("path.settings")) + super(*[args]) + end + def execute require "logstash/util" require "logstash/util/java_version" @@ -140,7 +143,7 @@ def execute # Configure Logstash logging facility, this need to be done before everything else to # make sure the logger has the correct settings and the log level is correctly defined. - configure_logging(log_file) + configure_logging(setting("path.log"), setting("log.level")) LogStash::Util::set_thread_name(self.class.name) @@ -154,32 +157,34 @@ def execute if LogStash::Util::JavaVersion.bad_java_version?(java_version) $stderr.puts "Java version 1.8.0 or later is required. (You are running: #{java_version})" return 1 - end + end - LogStash::ShutdownWatcher.unsafe_shutdown = unsafe_shutdown? + LogStash::ShutdownWatcher.unsafe_shutdown = setting("pipeline.unsafe_shutdown") LogStash::ShutdownWatcher.logger = @logger - configure + configure_plugin_paths(setting("path.plugins")) if version? show_version return 0 end - return start_shell(@ruby_shell, binding) if @ruby_shell + return start_shell(setting("interactive"), binding) if setting("interactive") + + @settings.format_settings.each {|line| @logger.info(line) } - if config_string.nil? && config_path.nil? + if setting("config.string").nil? && setting("path.config").nil? fail(I18n.t("logstash.runner.missing-configuration")) end - if @auto_reload && config_path.nil? + if setting("config.reload.automatic") && setting("path.config").nil? # there's nothing to reload signal_usage_error(I18n.t("logstash.runner.reload-without-config-path")) end - if config_test? - config_loader = LogStash::Config::Loader.new(@logger, @debug_config) - config_str = config_loader.format_config(config_path, config_string) + if setting("config.test_and_exit") + config_loader = LogStash::Config::Loader.new(@logger) + config_str = config_loader.format_config(setting("path.config"), setting("config.string")) begin LogStash::Pipeline.new(config_str) @logger.terminal "Configuration OK" @@ -190,21 +195,9 @@ def execute end end - @agent = create_agent(:logger => @logger, - :auto_reload => @auto_reload, - :reload_interval => @reload_interval, - :collect_metric => true, - :debug => debug?, - :node_name => node_name, - :debug_config => debug_config?, - :web_api_http_host => @web_api_http_host, - :web_api_http_port => @web_api_http_port) - - @agent.register_pipeline("main", @pipeline_settings.merge({ - :config_string => config_string, - :config_path => config_path, - :debug_config => debug_config? - })) + @agent = create_agent(@settings) + + @agent.register_pipeline("main", @settings) # enable sigint/sigterm before starting the agent # to properly handle a stalled agent @@ -239,10 +232,10 @@ def execute def show_version show_version_logstash - if [:info, :debug].include?(verbosity?) || debug? || verbose? + if @logger.debug? || @logger.info? show_version_ruby show_version_java if LogStash::Environment.jruby? - show_gems if [:debug].include?(verbosity?) || debug? + show_gems if @logger.debug? end end # def show_version @@ -268,13 +261,6 @@ def show_gems end end # def show_gems - # Do any start-time configuration. - # - # Log file stuff, plugin path checking, etc. - def configure - configure_plugin_paths(plugin_paths) - end # def configure - # add the given paths for ungemified/bare plugins lookups # @param paths [String, Array] plugins path string or list of path strings to add def configure_plugin_paths(paths) @@ -289,32 +275,21 @@ def create_agent(*args) end # Point logging at a specific path. - def configure_logging(path) + def configure_logging(path, level) @logger = Cabin::Channel.get(LogStash) # Set with the -v (or -vv...) flag - if quiet? + case level + when "quiet" @logger.level = :error - elsif verbose? + when "verbose" @logger.level = :info - elsif debug? + when "debug" @logger.level = :debug else - # Old support for the -v and -vv stuff. - if verbosity? && verbosity?.any? - # this is an array with length of how many times the flag is given - if verbosity?.length == 1 - @logger.warn("The -v flag is deprecated and will be removed in a future release. You should use --verbose instead.") - @logger.level = :info - else - @logger.warn("The -vv flag is deprecated and will be removed in a future release. You should use --debug instead.") - @logger.level = :debug - end - else - @logger.level = :warn - end + @logger.level = :warn end - if log_file + if path # TODO(sissel): Implement file output/rotation in Cabin. # TODO(sissel): Catch exceptions, report sane errors. begin @@ -325,7 +300,7 @@ def configure_logging(path) :path => path, :error => e)) end - if log_in_json? + if setting("log.format") == "json" @logger.subscribe(LogStash::Logging::JSON.new(STDOUT), :level => :fatal) @logger.subscribe(LogStash::Logging::JSON.new(@log_fd)) else @@ -334,15 +309,15 @@ def configure_logging(path) end @logger.terminal "Sending logstash logs to #{path}." else - if log_in_json? + if setting("log.format") == "json" @logger.subscribe(LogStash::Logging::JSON.new(STDOUT)) else @logger.subscribe(STDOUT) end end - if debug_config? && @logger.level != :debug - @logger.warn("--debug-config was specified, but log level was not set to --debug! No config info will be logged.") + if setting("config.debug") && @logger.level != :debug + @logger.warn("--config.debug was specified, but log.level was not set to \'debug\'! No config info will be logged.") end # TODO(sissel): redirect stdout/stderr to the log as well @@ -402,4 +377,26 @@ def trap_sigint end end -end # class LogStash::Runner + def setting(key) + @settings.get_value(key) + end + + # where can I find the logstash.yml file? + # 1. look for a "--path.settings path" + # 2. look for a "--path.settings=path" + # 3. check if the LS_SETTINGS_DIR environment variable is set + # 4. return nil if not found + def fetch_settings_path(cli_args) + if i=cli_args.find_index("--path.settings") + cli_args[i+1] + elsif settings_arg = cli_args.find {|v| v.match(/--path.settings=/) } + match = settings_arg.match(/--path.settings=(.*)/) + match[1] + elsif ENV['LS_SETTINGS_DIR'] + ENV['LS_SETTINGS_DIR'] + else + nil + end + end + +end diff --git a/logstash-core/lib/logstash/settings.rb b/logstash-core/lib/logstash/settings.rb new file mode 100644 index 00000000000..7cc0e043b38 --- /dev/null +++ b/logstash-core/lib/logstash/settings.rb @@ -0,0 +1,267 @@ +# encoding: utf-8 + +module LogStash + class Settings + + def initialize + @settings = {} + end + + def register(setting) + if @settings.key?(setting.name) + raise ArgumentError.new("Setting \"#{setting.name}\" has already been registered as #{setting.inspect}") + else + @settings[setting.name] = setting + end + end + + def get_setting(setting_name) + setting = @settings[setting_name] + raise ArgumentError.new("Setting \"#{setting_name}\" hasn't been registered") if setting.nil? + setting + end + + def get_subset(setting_regexp) + regexp = setting_regexp.is_a?(Regexp) ? setting_regexp : Regexp.new(setting_regexp) + settings = self.class.new + @settings.each do |setting_name, setting| + next unless setting_name.match(regexp) + settings.register(setting.clone) + end + settings + end + + def set?(setting_name) + get_setting(setting_name).set? + end + + def clone + get_subset(".*") + end + + def get_default(setting_name) + get_setting(setting_name).default + end + + def get_value(setting_name) + get_setting(setting_name).value + end + alias_method :get, :get_value + + def set_value(setting_name, value) + get_setting(setting_name).set(value) + end + alias_method :set, :set_value + + def to_hash + hash = {} + @settings.each do |name, setting| + hash[name] = setting.value + end + hash + end + + def merge(hash) + hash.each {|key, value| set_value(key, value) } + self + end + + def format_settings + output = [] + output << "-------- Logstash Settings (* means modified) ---------" + @settings.each do |setting_name, setting| + value = setting.value + default_value = setting.default + if default_value == value # print setting and its default value + output << "#{setting_name}: #{value.inspect}" unless value.nil? + elsif default_value.nil? # print setting and warn it has been set + output << "*#{setting_name}: #{value.inspect}" + elsif value.nil? # default setting not set by user + output << "#{setting_name}: #{default_value.inspect}" + else # print setting, warn it has been set, and show default value + output << "*#{setting_name}: #{value.inspect} (default: #{default_value.inspect})" + end + end + output << "--------------- Logstash Settings -------------------" + output + end + + def reset + @settings.values.each(&:reset) + end + + def from_yaml(yaml_path) + settings = read_yaml(::File.join(yaml_path, "logstash.yml")) + self.merge(flatten_hash(settings)) + end + + private + def read_yaml(path) + YAML.safe_load(IO.read(path)) || {} + end + + def flatten_hash(h,f="",g={}) + return g.update({ f => h }) unless h.is_a? Hash + if f.empty? + h.each { |k,r| flatten_hash(r,k,g) } + else + h.each { |k,r| flatten_hash(r,"#{f}.#{k}",g) } + end + g + end + end + + class Setting + attr_reader :name, :default + + def initialize(name, klass, default=nil, strict=true, &validator_proc) + @name = name + unless klass.is_a?(Class) + raise ArgumentError.new("Setting \"#{@name}\" must be initialized with a class (received #{klass})") + end + @klass = klass + @validator_proc = validator_proc + @value = nil + @value_is_set = false + + validate(default) if strict + @default = default + end + + def value + @value_is_set ? @value : default + end + + def set? + @value_is_set + end + + def set(value) + validate(value) + @value = value + @value_is_set = true + @value + end + + def reset + @value = nil + @value_is_set = false + end + + def to_hash + { + "name" => @name, + "klass" => @klass, + "value" => @value, + "value_is_set" => @value_is_set, + "default" => @default, + # Proc#== will only return true if it's the same obj + # so no there's no point in comparing it + # also thereĹ› no use case atm to return the proc + # so let's not expose it + #"validator_proc" => @validator_proc + } + end + + def ==(other) + self.to_hash == other.to_hash + end + + private + def validate(value) + if !value.is_a?(@klass) + raise ArgumentError.new("Setting \"#{@name}\" must be a #{@klass}. Received: #{value} (#{value.class})") + elsif @validator_proc && !@validator_proc.call(value) + raise ArgumentError.new("Failed to validate setting \"#{@name}\" with value: #{value}") + end + end + + ### Specific settings ##### + + class Boolean < Setting + def initialize(name, default, strict=true, &validator_proc) + @name = name + @klass = Object + @value = nil + @value_is_set = false + @validator_proc = validator_proc + coerced_default = coerce(default) + validate(coerced_default) + @default = coerced_default + end + + def coerce(value) + case value + when TrueClass, "true" + true + when FalseClass, "false" + false + else + raise ArgumentError.new("could not coerce #{value} into a boolean") + end + end + + def set(value) + coerced_value = coerce(value) + validate(coerced_value) + @value = coerce(coerced_value) + @value_is_set = true + @value + end + end + + class String < Setting + def initialize(name, default=nil, strict=true) + super(name, ::String, default, strict) + end + end + + class Numeric < Setting + def initialize(name, default=nil, strict=true) + super(name, ::Numeric, default, strict) + end + end + + class Port < Setting + def initialize(name, default=nil, strict=true) + super(name, ::Numeric, default, strict) {|value| value >= 1 && value <= 65535 } + end + end + + class Validator < Setting + def initialize(name, default=nil, strict=true, validator_class=nil) + @validator_class = validator_class + super(name, ::Object, default, strict) + end + + def validate(value) + @validator_class.validate(value) + end + end + + class String < Setting + def initialize(name, default=nil, strict=true, possible_strings=[]) + super(name, ::String, default, strict) + end + + def validate(value) + super(value) && possible_strings.include?(value) + end + end + + class ExistingFilePath < Setting + def initialize(name, default=nil, strict=true) + super(name, ::String, default, strict) do |file_path| + if !::File.exists?(file_path) + raise ::ArgumentError.new("File \"#{file_path}\" must exist but was not found.") + else + true + end + end + end + end + + end + + SETTINGS = Settings.new +end diff --git a/logstash-core/lib/logstash/util/defaults_printer.rb b/logstash-core/lib/logstash/util/defaults_printer.rb deleted file mode 100644 index 6dd850e1d50..00000000000 --- a/logstash-core/lib/logstash/util/defaults_printer.rb +++ /dev/null @@ -1,31 +0,0 @@ -# encoding: utf-8 -require "logstash/namespace" -require "logstash/util" -require "logstash/util/worker_threads_default_printer" - - -# This class exists to format the settings for defaults used -module LogStash module Util class DefaultsPrinter - def self.print(settings) - new(settings).print - end - - def initialize(settings) - @settings = settings - @printers = [workers] - end - - def print - collector = [] - @printers.each do |printer| - printer.visit(collector) - end - "Settings: " + collector.join(', ') - end - - private - - def workers - WorkerThreadsDefaultPrinter.new(@settings) - end -end end end diff --git a/logstash-core/lib/logstash/util/worker_threads_default_printer.rb b/logstash-core/lib/logstash/util/worker_threads_default_printer.rb index 43869162865..b35058ac24e 100644 --- a/logstash-core/lib/logstash/util/worker_threads_default_printer.rb +++ b/logstash-core/lib/logstash/util/worker_threads_default_printer.rb @@ -6,8 +6,8 @@ module LogStash module Util class WorkerThreadsDefaultPrinter def initialize(settings) - @setting = settings.fetch(:pipeline_workers, 0) - @default = settings.fetch(:default_pipeline_workers, 0) + @setting = settings.fetch('pipeline.workers', 0) + @default = settings.fetch('default-pipeline-workers', 0) end def visit(collector) diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index f265cad81c4..c963a064d4c 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -73,9 +73,6 @@ en: non_reloadable_config_register: |- Logstash is not able to start since configuration auto reloading was enabled but the configuration contains plugins that don't support it. Quitting... web_api: - flag: - http_host: Web API binding host - http_port: Web API http port hot_threads: title: |- ::: {%{hostname}} @@ -181,6 +178,8 @@ en: the empty string for the '-e' flag. configtest: |+ Check configuration for valid syntax and then exit. + http_host: Web API binding host + http_port: Web API http port pipeline-workers: |+ Sets the number of pipeline workers to run. pipeline-batch-size: |+ @@ -188,6 +187,9 @@ en: pipeline-batch-delay: |+ When creating pipeline batches, how long to wait while polling for the next event. + path_settings: |+ + Directory containing logstash.yml file. This can also be + set through the LS_SETTINGS_DIR environment variable. auto_reload: |+ Monitor configuration changes and reload whenever it is changed. @@ -216,15 +218,12 @@ en: 'PATH/logstash/TYPE/NAME.rb' where TYPE is 'inputs' 'filters', 'outputs' or 'codecs' and NAME is the name of the plugin. - quiet: |+ - Quieter logstash logging. This causes only - errors to be emitted. - verbose: |+ - More verbose logging. This causes 'info' - level logs to be emitted. - debug: |+ - Most verbose logging. This causes 'debug' - level logs to be emitted. + log_level: |+ + Set the log level for logstash. Possible values are: + - quiet => :error + - verbose => :info + - debug => :debug + - warn => :warn unsafe_shutdown: |+ Force logstash to exit during shutdown even if there are still inflight events in memory. @@ -238,11 +237,10 @@ en: it will default to the current hostname. agent: |+ Specify an alternate agent plugin name. - debug_config: |+ + config_debug: |+ Print the compiled config ruby code out as a debug log (you must also have --debug enabled). WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result in plaintext passwords appearing in your logs! - log-in-json: |+ - Specify that Logstash should write its own logs in JSON form - one - event per line. If false, Logstash will log using Ruby's - Object#inspect (not easy to machine-parse) + log_format: |+ + Specify if Logstash should write its own logs in JSON form (one + event per line) or in plain text (using Ruby's Object#inspect) diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index 90a1bb1e378..190eca38d93 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -3,6 +3,7 @@ require "logstash/devutils/rspec/spec_helper" +require "logstash/settings" require 'rack/test' require 'rspec' require "json" @@ -37,26 +38,24 @@ class LogStashRunner attr_reader :config_str, :agent, :pipeline_settings def initialize - args = [ - :logger => Cabin::Channel.get(LogStash), - :auto_reload => false, - :collect_metric => true, - :debug => false, - :node_name => "test_agent", - :web_api_http_port => rand(9600..9700) - ] - @config_str = "input { generator {count => 0} } output { }" - @agent = LogStash::DummyAgent.new(*args) - @pipeline_settings ||= { :pipeline_id => "main", - :config_str => config_str, - :pipeline_batch_size => 1, - :flush_interval => 1, - :pipeline_workers => 1 } + args = { + "config.reload.automatic" => false, + "metric.collect" => true, + "log.level" => "debug", + "node.name" => "test_agent", + "http.port" => rand(9600..9700), + "config.string" => @config_str, + "pipeline.batch.size" => 1, + "pipeline.workers" => 1 + } + @settings = ::LogStash::SETTINGS.clone.merge(args) + + @agent = LogStash::DummyAgent.new(@settings) end def start - agent.register_pipeline("main", pipeline_settings) + agent.register_pipeline("main", @settings) @runner = Thread.new(agent) do |_agent| _agent.execute end diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 60d28987f44..711a4b37d08 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -7,8 +7,14 @@ describe LogStash::Agent do let(:logger) { double("logger") } - let(:agent_args) { { :logger => logger } } - subject { LogStash::Agent.new(agent_args) } + let(:agent_settings) { LogStash::SETTINGS } + let(:agent_args) { {} } + let(:pipeline_settings) { agent_settings.clone } + let(:pipeline_args) { {} } + let(:config_file) { Stud::Temporary.pathname } + let(:config_file_txt) { "input { generator { count => 100000 } } output { }" } + + subject { LogStash::Agent.new(agent_settings) } before :each do [:info, :warn, :error, :fatal, :debug].each do |level| @@ -17,46 +23,63 @@ [:info?, :warn?, :error?, :fatal?, :debug?].each do |level| allow(logger).to receive(level) end + File.open(config_file, "w") { |f| f.puts config_file_txt } + agent_args.each do |key, value| + agent_settings.set(key, value) + pipeline_settings.set(key, value) + end + pipeline_args.each do |key, value| + pipeline_settings.set(key, value) + end + #subject.logger = logger + end + + after :each do + LogStash::SETTINGS.reset + File.unlink(config_file) + end + + it "fallback to hostname when no name is provided" do + expect(LogStash::Agent.new.node_name).to eq(Socket.gethostname) end describe "register_pipeline" do let(:pipeline_id) { "main" } let(:config_string) { "input { } filter { } output { }" } - let(:settings) { { - :config_string => config_string, - :pipeline_workers => 4 - } } - - let(:agent_args) { { - :logger => logger, - :auto_reload => false, - :reload_interval => 0.01 - } } + let(:agent_args) do + { + "config.string" => config_string, + "config.reload.automatic" => true, + "config.reload.interval" => 0.01, + "pipeline.workers" => 4, + } + end it "should delegate settings to new pipeline" do - expect(LogStash::Pipeline).to receive(:new).with(settings[:config_string], hash_including(settings)) - subject.register_pipeline(pipeline_id, settings) + expect(LogStash::Pipeline).to receive(:new) do |arg1, arg2| + expect(arg1).to eq(config_string) + expect(arg2.to_hash).to include(agent_args) + end + subject.register_pipeline(pipeline_id, agent_settings) end end describe "#execute" do - let(:sample_config) { "input { generator { count => 100000 } } output { }" } - let(:config_file) { Stud::Temporary.pathname } + let(:config_file_txt) { "input { generator { count => 100000 } } output { }" } before :each do allow(subject).to receive(:start_webserver).and_return(false) allow(subject).to receive(:stop_webserver).and_return(false) - File.open(config_file, "w") { |f| f.puts sample_config } - end - - after :each do - File.unlink(config_file) end context "when auto_reload is false" do - let(:agent_args) { { :logger => logger, :auto_reload => false } } + let(:agent_args) do + { + "config.reload.automatic" => false, + "path.config" => config_file + } + end let(:pipeline_id) { "main" } - let(:pipeline_settings) { { :config_path => config_file } } before(:each) do subject.register_pipeline(pipeline_id, pipeline_settings) @@ -112,9 +135,14 @@ end context "when auto_reload is true" do - let(:agent_args) { { :logger => logger, :auto_reload => true, :reload_interval => 0.01 } } + let(:agent_args) do + { + "config.reload.automatic" => true, + "config.reload.interval" => 0.01, + "path.config" => config_file, + } + end let(:pipeline_id) { "main" } - let(:pipeline_settings) { { :config_path => config_file } } before(:each) do subject.register_pipeline(pipeline_id, pipeline_settings) @@ -168,9 +196,9 @@ let(:pipeline_id) { "main" } let(:first_pipeline_config) { "input { } filter { } output { }" } let(:second_pipeline_config) { "input { generator {} } filter { } output { }" } - let(:pipeline_settings) { { - :config_string => first_pipeline_config, - :pipeline_workers => 4 + let(:pipeline_args) { { + "config.string" => first_pipeline_config, + "pipeline.workers" => 4 } } before(:each) do @@ -194,16 +222,13 @@ end describe "Environment Variables In Configs" do + let(:pipeline_config) { "input { generator { message => '${FOO}-bar' } } filter { } output { }" } let(:agent_args) { { - :logger => logger, - :auto_reload => false, - :reload_interval => 0.01 + "config.reload.automatic" => false, + "config.reload.interval" => 0.01, + "config.string" => pipeline_config } } let(:pipeline_id) { "main" } - let(:pipeline_config) { "input { generator { message => '${FOO}-bar' } } filter { } output { }" } - let(:pipeline_settings) { { - :config_string => pipeline_config, - } } context "environment variable templating" do before :each do @@ -216,7 +241,7 @@ end it "doesn't upgrade the state" do - expect(subject).to receive(:fetch_config).and_return(pipeline_config) + allow(subject).to receive(:fetch_config).and_return(pipeline_config) subject.register_pipeline(pipeline_id, pipeline_settings) expect(subject.pipelines[pipeline_id].inputs.first.message).to eq("foo-bar") end @@ -226,9 +251,9 @@ describe "#upgrade_pipeline" do let(:pipeline_id) { "main" } let(:pipeline_config) { "input { } filter { } output { }" } - let(:pipeline_settings) { { - :config_string => pipeline_config, - :pipeline_workers => 4 + let(:pipeline_args) { { + "config.string" => pipeline_config, + "pipeline.workers" => 4 } } let(:new_pipeline_config) { "input { generator {} } output { }" } @@ -275,23 +300,12 @@ end describe "#fetch_config" do - let(:file_config) { "input { generator { count => 100 } } output { }" } let(:cli_config) { "filter { drop { } } " } - let(:tmp_config_path) { Stud::Temporary.pathname } - let(:agent_args) { { :logger => logger, :config_string => "filter { drop { } } ", :config_path => tmp_config_path } } - - before :each do - IO.write(tmp_config_path, file_config) - end - - after :each do - File.unlink(tmp_config_path) - end + let(:agent_args) { { "config.string" => cli_config, "path.config" => config_file } } it "should join the config string and config path content" do - settings = { :config_path => tmp_config_path, :config_string => cli_config } - fetched_config = subject.send(:fetch_config, settings) - expect(fetched_config.strip).to eq(cli_config + IO.read(tmp_config_path)) + fetched_config = subject.send(:fetch_config, agent_settings) + expect(fetched_config.strip).to eq(cli_config + IO.read(config_file).strip) end end @@ -319,13 +333,17 @@ f.path end let(:interval) { 0.2 } - let(:pipeline_settings) { { :pipeline_workers => 4, - :config_path => config_path } } + let(:pipeline_args) do + { + "pipeline.workers" => 4, + "path.config" => config_path + } + end let(:agent_args) do - super.merge({ :auto_reload => true, - :reload_interval => interval, - :collect_metric => true }) + super.merge({ "config.reload.automatic" => true, + "config.reload.interval" => interval, + "metric.collect" => true }) end before :each do diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index ea375570486..a9f2abfb0a9 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -84,9 +84,21 @@ class TestPipeline < LogStash::Pipeline end describe LogStash::Pipeline do - let(:worker_thread_count) { LogStash::Pipeline::DEFAULT_SETTINGS[:default_pipeline_workers] } + let(:worker_thread_count) { 5 } let(:safe_thread_count) { 1 } let(:override_thread_count) { 42 } + let(:pipeline_settings_obj) { LogStash::SETTINGS } + let(:pipeline_settings) { {} } + + before :each do + pipeline_workers_setting = LogStash::SETTINGS.get_setting("pipeline.workers") + allow(pipeline_workers_setting).to receive(:default).and_return(worker_thread_count) + pipeline_settings.each {|k, v| pipeline_settings_obj.set(k, v) } + end + + after :each do + pipeline_settings_obj.reset + end describe "defaulting the pipeline workers based on thread safety" do before(:each) do @@ -123,13 +135,15 @@ class TestPipeline < LogStash::Pipeline end it "should not receive a debug message with the compiled code" do + pipeline_settings_obj.set("config.debug", false) expect(logger).not_to receive(:debug).with(/Compiled pipeline/, anything) pipeline = TestPipeline.new(test_config_with_filters) end - it "should print the compiled code if debug_config is set to true" do + it "should print the compiled code if config.debug is set to true" do + pipeline_settings_obj.set("config.debug", true) expect(logger).to receive(:debug).with(/Compiled pipeline/, anything) - pipeline = TestPipeline.new(test_config_with_filters, :debug_config => true) + pipeline = TestPipeline.new(test_config_with_filters, pipeline_settings_obj) end end @@ -145,12 +159,13 @@ class TestPipeline < LogStash::Pipeline end context "when there is command line -w N set" do + let(:pipeline_settings) { {"pipeline.workers" => override_thread_count } } it "starts multiple filter thread" do - msg = "Warning: Manual override - there are filters that might not work with multiple worker threads" - pipeline = TestPipeline.new(test_config_with_filters) + msg = "Warning: Manual override - there are filters that might" + + " not work with multiple worker threads" + pipeline = TestPipeline.new(test_config_with_filters, pipeline_settings_obj) expect(pipeline.logger).to receive(:warn).with(msg, {:worker_threads=> override_thread_count, :filters=>["dummyfilter"]}) - pipeline.configure(:pipeline_workers, override_thread_count) pipeline.run expect(pipeline.worker_threads.size).to eq(override_thread_count) end @@ -222,7 +237,7 @@ class TestPipeline < LogStash::Pipeline pipeline.run expect(pipeline.outputs.size ).to eq(1) - expect(pipeline.outputs.first.workers.size ).to eq(::LogStash::Pipeline::DEFAULT_OUTPUT_WORKERS) + expect(pipeline.outputs.first.workers.size ).to eq(::LogStash::SETTINGS.get("pipeline.output.workers")) expect(pipeline.outputs.first.workers.first.num_closes ).to eq(1) end @@ -310,7 +325,8 @@ class TestPipeline < LogStash::Pipeline describe "max inflight warning" do let(:config) { "input { dummyinput {} } output { dummyoutput {} }" } let(:batch_size) { 1 } - let(:pipeline) { LogStash::Pipeline.new(config, :pipeline_batch_size => batch_size, :pipeline_workers => 1) } + let(:pipeline_settings) { { "pipeline.batch.size" => batch_size, "pipeline.workers" => 1 } } + let(:pipeline) { LogStash::Pipeline.new(config, pipeline_settings_obj) } let(:logger) { pipeline.logger } let(:warning_prefix) { /CAUTION: Recommended inflight events max exceeded!/ } @@ -435,7 +451,7 @@ class TestPipeline < LogStash::Pipeline it "flushes the buffered contents of the filter" do Thread.abort_on_exception = true - pipeline = LogStash::Pipeline.new(config, { :flush_interval => 1 }) + pipeline = LogStash::Pipeline.new(config, pipeline_settings_obj) Thread.new { pipeline.run } sleep 0.1 while !pipeline.ready? # give us a bit of time to flush the events @@ -526,8 +542,9 @@ class TestPipeline < LogStash::Pipeline end context "when collecting metrics in the pipeline" do - subject { described_class.new(config, { :metric => metric, :pipeline_id => pipeline_id }) } - let(:pipeline_id) { :main } + let(:pipeline_settings) { { "pipeline.id" => pipeline_id } } + subject { described_class.new(config, pipeline_settings_obj) } + let(:pipeline_id) { "main" } let(:metric) { LogStash::Instrument::Metric.new } let(:number_of_events) { 1000 } let(:multiline_id) { "my-multiline" } @@ -573,6 +590,7 @@ class TestPipeline < LogStash::Pipeline # Reset the metric store LogStash::Instrument::Collector.instance.clear + subject.metric = metric Thread.new { subject.run } # make sure we have received all the generated events sleep 1 while dummyoutput.events.size < number_of_events diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index d1ce6441dbf..7283bf3aa86 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -19,16 +19,50 @@ def run(args); end before :each do allow(Cabin::Channel).to receive(:get).with(LogStash).and_return(channel) - allow(channel).to receive(:subscribe).with(any_args).and_call_original + allow(channel).to receive(:subscribe).with(any_args) + allow(channel).to receive(:log) {} + allow(LogStash::ShutdownWatcher).to receive(:logger).and_return(channel) + end + + after :each do + LogStash::SETTINGS.reset + end + + after :all do + LogStash::ShutdownWatcher.logger = nil + end + + describe "argument precedence" do + let(:config) { "input {} output {}" } + let(:cli_args) { ["-e", config, "-w", "20"] } + let(:settings_yml_hash) { { "pipeline.workers" => 2 } } + + before :each do + allow(LogStash::SETTINGS).to receive(:read_yaml).and_return(settings_yml_hash) + end + + after :each do + LogStash::SETTINGS.reset + end + + it "favors the last occurence of an option" do + expect(LogStash::Agent).to receive(:new) do |settings| + expect(settings.get("config.string")).to eq(config) + expect(settings.get("pipeline.workers")).to eq(20) + end + subject.run("bin/logstash", cli_args) + end end describe "argument parsing" do subject { LogStash::Runner.new("") } + before :each do + allow(Cabin::Channel.get(LogStash)).to receive(:terminal) + end context "when -e is given" do let(:args) { ["-e", "input {} output {}"] } let(:agent) { double("agent") } - let(:agent_logger) { double("agent logger") } before do allow(agent).to receive(:logger=).with(anything) @@ -45,10 +79,9 @@ def run(args); end context "with no arguments" do let(:args) { [] } - let(:agent) { double("agent") } before(:each) do - allow(LogStash::Agent).to receive(:new).and_return(agent) + allow(LogStash::Util::JavaVersion).to receive(:warn_on_bad_java_version) end it "should show help" do @@ -98,10 +131,10 @@ def run(args); end end end - context "--log-in-json" do + describe "--log.format=json" do subject { LogStash::Runner.new("") } let(:logfile) { Stud::Temporary.file } - let(:args) { [ "--log-in-json", "-l", logfile.path, "-e", "input {} output{}" ] } + let(:args) { [ "--log.format", "json", "-l", logfile.path, "-e", "input {} output{}" ] } after do logfile.close @@ -124,7 +157,7 @@ def run(args); end end end - describe "--config-test" do + describe "--config.test_and_exit" do subject { LogStash::Runner.new("") } let(:args) { ["-t", "-e", pipeline_string] } @@ -158,8 +191,9 @@ def run(args); end context "when :pipeline_workers is not defined by the user" do it "should not pass the value to the pipeline" do - expect(LogStash::Pipeline).to receive(:new).once.with(pipeline_string, hash_excluding(:pipeline_workers)).and_return(pipeline) - + expect(LogStash::Agent).to receive(:new) do |settings| + expect(settings.set?("pipeline.workers")).to be(false) + end args = ["-e", pipeline_string] subject.run("bin/logstash", args) end @@ -167,28 +201,67 @@ def run(args); end context "when :pipeline_workers is defined by the user" do it "should pass the value to the pipeline" do - main_pipeline_settings[:pipeline_workers] = 2 - expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(main_pipeline_settings)).and_return(pipeline) + expect(LogStash::Agent).to receive(:new) do |settings| + expect(settings.set?("pipeline.workers")).to be(true) + expect(settings.get("pipeline.workers")).to be(2) + end args = ["-w", "2", "-e", pipeline_string] subject.run("bin/logstash", args) end end - describe "debug_config" do - it "should set 'debug_config' to false by default" do - expect(LogStash::Config::Loader).to receive(:new).with(anything, false).and_call_original - expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(:debug_config => false)).and_return(pipeline) - args = ["--debug", "-e", pipeline_string, "-l", "/dev/null", "--log-in-json"] + describe "config.debug" do + it "should set 'config.debug' to false by default" do + expect(LogStash::Agent).to receive(:new) do |settings| + expect(settings.get("config.debug")).to eq(false) + end + args = ["--log.level", "debug", "-e", pipeline_string] subject.run("bin/logstash", args) end - it "should allow overriding debug_config" do - expect(LogStash::Config::Loader).to receive(:new).with(anything, true).and_call_original - expect(LogStash::Pipeline).to receive(:new).with(pipeline_string, hash_including(:debug_config => true)).and_return(pipeline) - args = ["--debug", "--debug-config", "-e", pipeline_string, "-l", "/dev/null", "--log-in-json"] + it "should allow overriding config.debug" do + expect(LogStash::Agent).to receive(:new) do |settings| + expect(settings.get("config.debug")).to eq(true) + end + args = ["--log.level", "debug", "--config.debug", "-e", pipeline_string] subject.run("bin/logstash", args) end end end + + describe "--log.level" do + before :each do + allow_any_instance_of(subject).to receive(:show_version) + end + context "when not set" do + it "should set log level to warn" do + args = ["--version"] + subject.run("bin/logstash", args) + expect(channel.level).to eq(:warn) + end + end + context "when setting to debug" do + it "should set log level to debug" do + args = ["--log.level", "debug", "--version"] + subject.run("bin/logstash", args) + expect(channel.level).to eq(:debug) + end + end + context "when setting to verbose" do + it "should set log level to info" do + args = ["--log.level", "verbose", "--version"] + subject.run("bin/logstash", args) + expect(channel.level).to eq(:info) + end + end + context "when setting to quiet" do + it "should set log level to error" do + args = ["--log.level", "quiet", "--version"] + subject.run("bin/logstash", args) + expect(channel.level).to eq(:error) + end + end + end + end diff --git a/logstash-core/spec/logstash/setting_spec.rb b/logstash-core/spec/logstash/setting_spec.rb new file mode 100644 index 00000000000..33d1572b256 --- /dev/null +++ b/logstash-core/spec/logstash/setting_spec.rb @@ -0,0 +1,130 @@ +# encoding: utf-8 +require "spec_helper" +require "logstash/settings" + +describe LogStash::Setting do + let(:logger) { double("logger") } + describe "#value" do + context "when using a default value" do + context "when no value is set" do + subject { described_class.new("number", Numeric, 1) } + it "should return the default value" do + expect(subject.value).to eq(1) + end + end + + context "when a value is set" do + subject { described_class.new("number", Numeric, 1) } + let(:new_value) { 2 } + before :each do + subject.set(new_value) + end + it "should return the set value" do + expect(subject.value).to eq(new_value) + end + end + end + + context "when not using a default value" do + context "when no value is set" do + subject { described_class.new("number", Numeric, nil, false) } + it "should return the default value" do + expect(subject.value).to eq(nil) + end + end + + context "when a value is set" do + subject { described_class.new("number", Numeric, nil, false) } + let(:new_value) { 2 } + before :each do + subject.set(new_value) + end + it "should return the set value" do + expect(subject.value).to eq(new_value) + end + end + end + end + + describe "#set?" do + context "when there is not value set" do + subject { described_class.new("number", Numeric, 1) } + it "should return false" do + expect(subject.set?).to be(false) + end + end + context "when there is a value set" do + subject { described_class.new("number", Numeric, 1) } + before :each do + subject.set(2) + end + it "should return false" do + expect(subject.set?).to be(true) + end + end + end + describe "#set" do + subject { described_class.new("number", Numeric, 1) } + it "should change the value of a setting" do + expect(subject.value).to eq(1) + subject.set(4) + expect(subject.value).to eq(4) + end + context "when executed for the first time" do + it "should change the result of set?" do + expect(subject.set?).to eq(false) + subject.set(4) + expect(subject.set?).to eq(true) + end + end + + context "when the argument's class does not match @klass" do + it "should throw an exception" do + expect { subject.set("not a number") }.to raise_error + end + end + end + + describe "#reset" do + subject { described_class.new("number", Numeric, 1) } + context "if value is already set" do + before :each do + subject.set(2) + end + it "should reset value to default" do + subject.reset + expect(subject.value).to eq(1) + end + it "should reset set? to false" do + expect(subject.set?).to eq(true) + subject.reset + expect(subject.set?).to eq(false) + end + end + end + + describe "validator_proc" do + let(:default_value) { "small text" } + subject { described_class.new("mytext", String, default_value) {|v| v.size < 20 } } + context "when validation fails" do + let(:new_value) { "very very very very very big text" } + it "should raise an exception" do + expect { subject.set(new_value) }.to raise_error + end + it "should not change the value" do + subject.set(new_value) rescue nil + expect(subject.value).to eq(default_value) + end + end + context "when validation is successful" do + let(:new_value) { "smaller text" } + it "should not raise an exception" do + expect { subject.set(new_value) }.to_not raise_error + end + it "should change the value" do + subject.set(new_value) + expect(subject.value).to eq(new_value) + end + end + end +end diff --git a/logstash-core/spec/logstash/settings_spec.rb b/logstash-core/spec/logstash/settings_spec.rb new file mode 100644 index 00000000000..050da87f4ac --- /dev/null +++ b/logstash-core/spec/logstash/settings_spec.rb @@ -0,0 +1,62 @@ +# encoding: utf-8 +require "spec_helper" +require "logstash/settings" + +describe LogStash::Settings do + let(:numeric_setting_name) { "number" } + let(:numeric_setting) { LogStash::Setting.new(numeric_setting_name, Numeric, 1) } + describe "#register" do + context "if setting has already been registered" do + before :each do + subject.register(numeric_setting) + end + it "should raise an exception" do + expect { subject.register(numeric_setting) }.to raise_error + end + end + context "if setting hasn't been registered" do + it "should not raise an exception" do + expect { subject.register(numeric_setting) }.to_not raise_error + end + end + end + describe "#get_setting" do + context "if setting has been registered" do + before :each do + subject.register(numeric_setting) + end + it "should return the setting" do + expect(subject.get_setting(numeric_setting_name)).to eq(numeric_setting) + end + end + context "if setting hasn't been registered" do + it "should raise an exception" do + expect { subject.get_setting(numeric_setting_name) }.to raise_error + end + end + end + describe "#get_subset" do + let(:numeric_setting_1) { LogStash::Setting.new("num.1", Numeric, 1) } + let(:numeric_setting_2) { LogStash::Setting.new("num.2", Numeric, 2) } + let(:numeric_setting_3) { LogStash::Setting.new("num.3", Numeric, 3) } + let(:string_setting_1) { LogStash::Setting.new("string.1", String, "hello") } + before :each do + subject.register(numeric_setting_1) + subject.register(numeric_setting_2) + subject.register(numeric_setting_3) + subject.register(string_setting_1) + end + + it "supports regex" do + expect(subject.get_subset(/num/).get_setting("num.3")).to eq(numeric_setting_3) + expect { subject.get_subset(/num/).get_setting("string.1") }.to raise_error + end + + it "returns a copy of settings" do + subset = subject.get_subset(/num/) + subset.set("num.2", 1000) + expect(subject.get("num.2")).to eq(2) + expect(subset.get("num.2")).to eq(1000) + end + end +end diff --git a/logstash-core/spec/logstash/util/defaults_printer_spec.rb b/logstash-core/spec/logstash/util/defaults_printer_spec.rb deleted file mode 100644 index b3f0576a3a9..00000000000 --- a/logstash-core/spec/logstash/util/defaults_printer_spec.rb +++ /dev/null @@ -1,50 +0,0 @@ -# encoding: utf-8 -require "spec_helper" -require "logstash/util/defaults_printer" - -describe LogStash::Util::DefaultsPrinter do - shared_examples "a defaults printer" do - it 'the .print method returns a defaults description' do - expect(actual_block.call).to eq(expected) - end - end - - let(:workers) { 1 } - let(:expected) { "Settings: User set pipeline workers: #{workers}" } - let(:settings) { {} } - - describe 'class methods API' do - let(:actual_block) do - -> {described_class.print(settings)} - end - - context 'when the settings hash is empty' do - let(:expected) { "Settings: " } - it_behaves_like "a defaults printer" - end - - context 'when the settings hash has content' do - let(:worker_queue) { 42 } - let(:settings) { {:pipeline_workers => workers} } - it_behaves_like "a defaults printer" - end - end - - describe 'instance method API' do - let(:actual_block) do - -> {described_class.new(settings).print} - end - - context 'when the settings hash is empty' do - let(:expected) { "Settings: " } - it_behaves_like "a defaults printer" - end - - context 'when the settings hash has content' do - let(:workers) { 13 } - let(:settings) { {:pipeline_workers => workers} } - - it_behaves_like "a defaults printer" - end - end -end diff --git a/logstash-core/spec/logstash/util/worker_threads_default_printer_spec.rb b/logstash-core/spec/logstash/util/worker_threads_default_printer_spec.rb deleted file mode 100644 index 1842b4373ad..00000000000 --- a/logstash-core/spec/logstash/util/worker_threads_default_printer_spec.rb +++ /dev/null @@ -1,45 +0,0 @@ -# encoding: utf-8 -require "spec_helper" -require "logstash/util/worker_threads_default_printer" - -describe LogStash::Util::WorkerThreadsDefaultPrinter do - let(:settings) { {} } - let(:collector) { [] } - - subject { described_class.new(settings) } - - before { subject.visit(collector) } - - describe "the #visit method" do - context 'when the settings hash is empty' do - it 'adds nothing to the collector' do - subject.visit(collector) - expect(collector).to eq([]) - end - end - - context 'when the settings hash has both user and default content' do - let(:settings) { {:pipeline_workers => 42, :default_pipeline_workers => 5} } - - it 'adds two strings' do - expect(collector).to eq(["User set pipeline workers: 42", "Default pipeline workers: 5"]) - end - end - - context 'when the settings hash has only user content' do - let(:settings) { {:pipeline_workers => 42} } - - it 'adds a string with user set pipeline workers' do - expect(collector.first).to eq("User set pipeline workers: 42") - end - end - - context 'when the settings hash has only default content' do - let(:settings) { {:default_pipeline_workers => 5} } - - it 'adds a string with default pipeline workers' do - expect(collector.first).to eq("Default pipeline workers: 5") - end - end - end -end diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index e0fc2f57eb2..b400940e185 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -13,6 +13,7 @@ namespace "artifact" do "lib/pluginmanager/**/*", "patterns/**/*", "vendor/??*/**/*", + "config/logstash.yml", # To include ruby-maven's hidden ".mvn" directory, we need to # do add the line below. This directory contains a file called # "extensions.xml", which loads the ruby DSL for POMs. diff --git a/spec/bootstrap/environment_spec.rb b/spec/bootstrap/environment_spec.rb new file mode 100644 index 00000000000..f31cfcd38e8 --- /dev/null +++ b/spec/bootstrap/environment_spec.rb @@ -0,0 +1,6 @@ +# encoding: utf-8 +require "spec_helper" +require "bootstrap/environment" + +describe LogStash::Environment do +end From 5c063fa3fd70a90d8773873e22acdf2f85c46864 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Tue, 5 Apr 2016 15:22:17 -0400 Subject: [PATCH 112/632] fix jruby bigdecimal handling in Time.at --- logstash-core-event/lib/logstash/timestamp.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/logstash-core-event/lib/logstash/timestamp.rb b/logstash-core-event/lib/logstash/timestamp.rb index fb75c5f2538..ab6b6edb3bc 100644 --- a/logstash-core-event/lib/logstash/timestamp.rb +++ b/logstash-core-event/lib/logstash/timestamp.rb @@ -24,7 +24,13 @@ def initialize(time = Time.new) end def self.at(*args) - Timestamp.new(::Time.at(*args)) + epoch = args.first + if epoch.is_a?(BigDecimal) + # bug in JRuby prevents correcly parsing a BigDecimal fractional part, see https://github.com/elastic/logstash/issues/4565 + Timestamp.new(::Time.at(epoch.to_i, epoch.frac.to_f * 1000000)) + else + Timestamp.new(::Time.at(*args)) + end end def self.parse(*args) From bbd4d336827502bd145e70af015fbb05bf5fe1ec Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Thu, 19 May 2016 02:07:33 -0700 Subject: [PATCH 113/632] Have ci scripts abort if any command exits nonzero This should fix scenarios where `rake bootstrap` fails due to bundler failures and then some future command like `rake test:core` fails because there's missing gems. Fixes #5162 --- ci/ci_integration.sh | 1 + ci/ci_setup.sh | 1 + ci/ci_test.sh | 1 + 3 files changed, 3 insertions(+) diff --git a/ci/ci_integration.sh b/ci/ci_integration.sh index 0ec856107b0..5aaeca0006f 100755 --- a/ci/ci_integration.sh +++ b/ci/ci_integration.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # Since we are using the system jruby, we need to make sure our jvm process # uses at least 1g of memory, If we don't do this we can get OOM issues when diff --git a/ci/ci_setup.sh b/ci/ci_setup.sh index 30795f47c5f..887225c96cb 100755 --- a/ci/ci_setup.sh +++ b/ci/ci_setup.sh @@ -1,4 +1,5 @@ #!/usr/bin/env bash +set -e ## # Note this setup needs a system ruby to be available, this can not diff --git a/ci/ci_test.sh b/ci/ci_test.sh index c9b7e9d9736..a7f62d151bb 100755 --- a/ci/ci_test.sh +++ b/ci/ci_test.sh @@ -1,4 +1,5 @@ #!/usr/bin/env bash +set -e ## # Keep in mind to run ci/ci_setup.sh if you need to setup/clean up your environment before From eaca2fd9bd8769fc239c1fa6650470ac6363a5ba Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 19 May 2016 17:18:43 -0700 Subject: [PATCH 114/632] Corrections to CLI options Fixes #5331 --- config/logstash.yml | 4 ---- docs/static/command-line-flags.asciidoc | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/config/logstash.yml b/config/logstash.yml index f7a673e5237..a04760246a6 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -52,10 +52,6 @@ # # ------------ Pipeline Configuration Settings -------------- # -# Allow the pipeline configuration to be injected with environment variables -# -# config.allow_env: false -# # Where to fetch the pipeline configuration for the main pipeline # # path.config: diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index ce386c594ed..2309eee1c57 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -48,7 +48,7 @@ Logstash has the following flags. You can use the `--help` flag to display this -V, --version Display the version of Logstash. --p, --plugin.path +-p, --path.plugins A path of where to find plugins. This flag can be given multiple times to include multiple paths. Plugins are expected to be in a specific directory hierarchy: 'PATH/logstash/TYPE/NAME.rb' where TYPE is 'inputs' 'filters', 'outputs' or 'codecs' From 181a141faf9b7c41de83ed05b80c9a777854e886 Mon Sep 17 00:00:00 2001 From: Alvin Chen Date: Thu, 19 May 2016 13:44:14 -0700 Subject: [PATCH 115/632] New roadmap page Details on the Logstash roadmap Fixes #5330 --- ROADMAP.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 ROADMAP.md diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 00000000000..9583b301af1 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,15 @@ +## Logstash Roadmap + +[Logstash](https://www.elastic.co/products/logstash "Logstash") is an open-source data collection engine, developed directly on Github and distributed under the Apache License 2.0. The roadmap is defined by the core themes of performance, resiliency, and manageability, along with the overall plugin ecosystem. User requirements are the main driving force behind our development efforts. If a user has a bad time, it’s a bug! All submitted [issues](https://github.com/elastic/logstash/issues/new "New Issue"), suggestions, or ideas are greatly encouraged and appreciated. + +### Logstash Core + +With an open development model, the core roadmap can generally be distilled in Github. Long term roadmap features can be viewed with the "[roadmap](https://github.com/elastic/logstash/labels/roadmap "Roadmap Features")" label. The features and bug fixes targeted for an upcoming release can be viewed with the specific release label, e.g. "[v5.0.0](https://github.com/elastic/logstash/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Av5.0.0 "Logstash 5.0 Release")". Please note that feature timing and priorities are susceptible to change and therefore not guaranteed. + +### Logstash Plugins + +The [Logstash Plugins](https://github.com/logstash-plugins "Logstash Plugins") ecosystem enables the innovation of additional integrations and processing capabilities for the core engine. Plugins in this organization are either maintained by Elastic or the community. Community maintained plugins have a special banner in the documentation page, e.g. [Salesforce input](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-salesforce.html "Salesforce Input Plugin"). Many awesome humans have taken the roadmap into their own hands by becoming community maintainers. If you’re actively working with specific community plugins and would like to get more involved, feel free to reach out in this [forum thread](https://discuss.elastic.co/t/logstash-plugins-community-maintainers/35953 "Community Maintainers"). + +## Latest Changes + +For a list of latest changes across Logstash and its plugins, see the [release notes](https://www.elastic.co/guide/en/logstash/current/releasenotes.html "Current Release Notes"). From 215b34df3450eef93c912e668d459c8ad837cce8 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 18 May 2016 17:14:53 -0700 Subject: [PATCH 116/632] Move Contributors for more visibility --- .github/CONTRIBUTING.md => CONTRIBUTING.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) rename .github/CONTRIBUTING.md => CONTRIBUTING.md (96%) diff --git a/.github/CONTRIBUTING.md b/CONTRIBUTING.md similarity index 96% rename from .github/CONTRIBUTING.md rename to CONTRIBUTING.md index d325328823b..029837cf2df 100644 --- a/.github/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ That said, some basic guidelines, which you are free to ignore :) ## Want to learn? -Want to lurk about and see what others are doing with Logstash? +Want to lurk about and see what others are doing with Logstash? * The irc channel (#logstash on irc.freenode.org) is a good place for this * The [forum](https://discuss.elastic.co/c/logstash) is also @@ -18,7 +18,7 @@ Want to lurk about and see what others are doing with Logstash? ## Got Questions? -Have a problem you want Logstash to solve for you? +Have a problem you want Logstash to solve for you? * You can ask a question in the [forum](https://discuss.elastic.co/c/logstash) * Alternately, you are welcome to join the IRC channel #logstash on @@ -61,5 +61,3 @@ Check our [documentation](https://www.elastic.co/guide/en/logstash/current/contr request](https://help.github.com/articles/using-pull-requests). In the pull request, describe what your changes do and mention any bugs/issues related to the pull request. - - From c29db3e299e84f076530e84d02a987a73bda39b6 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 18 May 2016 18:25:01 -0700 Subject: [PATCH 117/632] Add priority labels --- CONTRIBUTING.md | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 029837cf2df..9b301abac22 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -36,12 +36,32 @@ If you think you found a bug, it probably is a bug. * If it is specific to a plugin, please file it in the respective repository under [logstash-plugins](https://github.com/logstash-plugins) * or ask the [forum](https://discuss.elastic.co/c/logstash). +## Issue Prioritization +The Logstash team takes time to digest, consider solutions, and weigh applicability of issues to both the broad +Logstash user base and our own goals for the project. Through this process, we assign issues a priority using GitHub +labels. Below is a description of priority labels. + +* P1: A high priority issue that affects almost all Logstash users. Bugs that would cause data loss, security +issues, and features that would vastly improve the user experience for everyone. Workarounds for P1s +generally don’t exist without a code change. +* P2: A broadly applicable, high visibility issue that enhances Logstash usability for a majority of users. +* P3: Nice-to-have bug fixes or functionality. Workarounds for P3s generally exist. +* P4: Anything not in above, catch-all label. + # Contributing Documentation and Code Changes -If you have a bugfix or new feature that you would like to contribute to -logstash, and you think it will take more than a few minutes to produce the fix -(ie; write code), it is worth discussing the change with the Logstash users and developers first! You can reach us via [GitHub](https://github.com/elastic/logstash/issues), the [forum](https://discuss.elastic.co/c/logstash), or via IRC (#logstash on freenode irc) -Please note that Pull Requests without tests will not be merged. If you would like to contribute but do not have experience with writing tests, please ping us on IRC/forum or create a PR and ask our help. +If you have a bugfix or new feature that you would like to contribute to Logstash, and you think it will take +more than a few minutes to produce the fix (ie; write code), it is worth discussing the change with the Logstash +users and developers first! You can reach us via [GitHub](https://github.com/elastic/logstash/issues), the [forum](https://discuss.elastic.co/c/logstash), or via IRC (#logstash on freenode irc) +Please note that Pull Requests without tests will not be merged. If you would like to contribute but do not have +experience with writing tests, please ping us on IRC/forum or create a PR and ask our help. + +If you would like to contribute to Logstash, but don't know where to start, you can use the GitHub labels "adoptme" +and "low hanging fruit". Issues marked with these labels are relatively easy, and provides a good starting +point to contribute to Logstash. + +See: https://github.com/elastic/logstash/labels/adoptme +https://github.com/elastic/logstash/labels/low%20hanging%20fruit ## Contributing to plugins From bdddab99a9d1807a46d1a6176853b1d5cb801edc Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 20 May 2016 09:41:41 -0700 Subject: [PATCH 118/632] Fix P1 definition to include test failures --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9b301abac22..e9eab8029ac 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,8 +42,8 @@ Logstash user base and our own goals for the project. Through this process, we a labels. Below is a description of priority labels. * P1: A high priority issue that affects almost all Logstash users. Bugs that would cause data loss, security -issues, and features that would vastly improve the user experience for everyone. Workarounds for P1s -generally don’t exist without a code change. +issues and test failures. Workarounds for P1s generally don’t exist without a code change. A P1 issue is usually +stop the world kinda scenario, so we need to make sure P1s are properly triaged and being worked upon. * P2: A broadly applicable, high visibility issue that enhances Logstash usability for a majority of users. * P3: Nice-to-have bug fixes or functionality. Workarounds for P3s generally exist. * P4: Anything not in above, catch-all label. From 25fc802a5c197274471c66b4bd30d96af18fc980 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 19 May 2016 16:47:09 -0700 Subject: [PATCH 119/632] Add changes that support settings files Fixes #5332 --- docs/static/command-line-flags.asciidoc | 76 ++++++++++++++----------- docs/static/monitoring-apis.asciidoc | 2 +- 2 files changed, 44 insertions(+), 34 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 2309eee1c57..678dea29037 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -3,81 +3,91 @@ Logstash has the following flags. You can use the `--help` flag to display this information. -[source,shell] ----------------------------------- --f, --path.config CONFIGFILE - Load the Logstash config from a specific file, directory, or a wildcard. If +As an alternative to setting command-line flags, you can specify options in the Logstash settings file, +`logstash.yml`, located in `LOGSTASH_HOME/config`. Any flags that you set at the command line override the corresponding +options in the `logstash.yml` file. + +coming[5.0.0-alpha3, Command-line flags have dots instead of dashes in their names] + +*`-f, --path.config CONFIGFILE`*:: + Load the Logstash config from a specific file or directory, or a wildcard. If given a directory or wildcard, config files will be read from the directory in alphabetical order. --e, --config.string CONFIGSTRING +*`-e, --config.string CONFIGSTRING`*:: Use the given string as the configuration data. Same syntax as the config file. - If not input is specified, 'stdin { type => stdin }' is default. If no output - is specified, 'stdout { codec => rubydebug }}' is default. + If no input is specified, `stdin { type => stdin }` is default. If no output + is specified, `stdout { codec => rubydebug }}` is default. --w, --pipeline.workers COUNT - Sets the number of pipeline workers (threads) to run for filter processing (default: number of cores). +*`-w, --pipeline.workers COUNT`*:: + Sets the number of pipeline workers (threads) to run for filter processing (default: half the number of cores). If you find that events are backing up, or that the CPU is not saturated, consider increasing this number to better utilize machine processing power. + +*`--pipeline.output.workers COUNT`*:: + Sets the number of pipeline workers (threads) to run for each output plugin instance. --b, --pipeline.batch.size SIZE +*`-b, --pipeline.batch.size SIZE`*:: This parameter defines the maximum number of events an individual worker thread will collect before attempting to execute its filters and outputs. Default is 125 events. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the `LS_HEAP_SIZE` variable to effectively use the option. --u, --pipeline.batch.delay DELAY_IN_MS +*`-u, --pipeline.batch.delay DELAY_IN_MS`*:: When creating pipeline event batches, how long to wait while polling for the next event. Default is 5ms. --l, --path.log FILE +*`-l, --path.log FILE`*:: Log to a given path. Default is to log to stdout ---log.level - Set the log level, between "quiet", "verbose", "warn" (default) and "debug". +*`--log.level`*:: + Set the log level to "quiet", "verbose", "warn" (default), or "debug". ---log.format FORMAT - Set to "json" to log in JSON format, or "plain" (default) to use Object#.inspect +*`--log.format FORMAT`*:: + Set to "json" to log in JSON format, or "plain" (default) to use `Object#.inspect`. + +*`--node.name NAME`*:: + Set a descriptive name for the node. If no value is specified, defaults to the current hostname. ---config.debug - Print the compiled config ruby code out as a debug log (you must also have --log.level=debug enabled). +*`--config.debug`*:: + Print the compiled config ruby code out as a debug log (you must also have `--log.level=debug` enabled). WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result in plaintext passwords appearing in your logs! --V, --version +*`-V, --version`*:: Display the version of Logstash. --p, --path.plugins +*`-p, --path.plugins`*:: A path of where to find plugins. This flag can be given multiple times to include multiple paths. Plugins are expected to be in a specific directory hierarchy: - 'PATH/logstash/TYPE/NAME.rb' where TYPE is 'inputs' 'filters', 'outputs' or 'codecs' - and NAME is the name of the plugin. + `PATH/logstash/TYPE/NAME.rb` where `TYPE` is `inputs`, `filters`, `outputs`, or `codecs`, + and `NAME` is the name of the plugin. --t, --config.test_and_exit - Checks configuration and then exit. Note that grok patterns are not checked for +*`-t, --config.test_and_exit`*:: + Check configuration and then exit. Note that grok patterns are not checked for correctness with this flag. Logstash can read multiple config files from a directory. If you combine this - flag with `--log.level=debug`, Logstash will log the combined config file, annotating the - individual config blocks with the source file it came from. + flag with `--log.level=debug`, Logstash will log the combined config file, annotating + each config block with the source file it came from. --r, --config.reload.automatic +*`-r, --config.reload.automatic`*:: Monitor configuration changes and reload the configuration whenever it is changed. ---config.reload.interval RELOAD_INTERVAL +*`--config.reload.interval RELOAD_INTERVAL`*:: Specifies how often Logstash checks the config files for changes. The default is every 3 seconds. ---http.host HTTP_HOST +*`--http.host HTTP_HOST`*:: Web API binding host (default: "127.0.0.1") ---http.port HTTP_PORT +*`--http.port HTTP_PORT`*:: Web API http port (default: 9600) ---pipeline.unsafe_shutdown +*`--pipeline.unsafe_shutdown`*:: Force logstash to exit during shutdown even if there are still inflight events in memory. By default, logstash will refuse to quit until all received events have been pushed to the outputs. --h, --help +*`-h, --help`*:: Print help ----------------------------------- + diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 3e2c74a1a62..6b694ee6eb3 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -32,7 +32,7 @@ Example response: -------------------------------------------------- NOTE: By default, the monitoring API attempts to bind to `tcp:9600`. If this port is already in use by another Logstash -instance, you need to launch Logstash with the `--http-port` flag specified to bind to a different port. See +instance, you need to launch Logstash with the `--http.port` flag specified to bind to a different port. See <> for more information. [float] From 27882b1f2c40db1f69a408434e63a2b78eee27d7 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 20 May 2016 14:28:41 -0700 Subject: [PATCH 120/632] Fixes from the review Fixes #5332 --- config/logstash.yml | 2 +- docs/static/command-line-flags.asciidoc | 15 ++++-------- docs/static/settings-file.asciidoc | 31 +++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 docs/static/settings-file.asciidoc diff --git a/config/logstash.yml b/config/logstash.yml index a04760246a6..99cad344dfa 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -25,7 +25,7 @@ # Set the number of workers that will, in parallel, execute the filters+outputs # stage of the pipeline. # -# This defaults to half the number of the host's CPU cores. +# This defaults to the number of the host's CPU cores. # # pipeline.workers: 2 # diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 678dea29037..81989adcdb1 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -1,11 +1,9 @@ [[command-line-flags]] -=== Command-line flags +=== Command-Line Flags Logstash has the following flags. You can use the `--help` flag to display this information. -As an alternative to setting command-line flags, you can specify options in the Logstash settings file, -`logstash.yml`, located in `LOGSTASH_HOME/config`. Any flags that you set at the command line override the corresponding -options in the `logstash.yml` file. +You can also control Logstash execution by specifying options in the Logstash settings file. For more info, see <>. coming[5.0.0-alpha3, Command-line flags have dots instead of dashes in their names] @@ -20,13 +18,10 @@ coming[5.0.0-alpha3, Command-line flags have dots instead of dashes in their nam is specified, `stdout { codec => rubydebug }}` is default. *`-w, --pipeline.workers COUNT`*:: - Sets the number of pipeline workers (threads) to run for filter processing (default: half the number of cores). + Sets the number of pipeline workers (threads) to run for filter processing (default: number of cores). If you find that events are backing up, or that the CPU is not saturated, consider increasing this number to better utilize machine processing power. -*`--pipeline.output.workers COUNT`*:: - Sets the number of pipeline workers (threads) to run for each output plugin instance. - *`-b, --pipeline.batch.size SIZE`*:: This parameter defines the maximum number of events an individual worker thread will collect before attempting to execute its filters and outputs. Default is 125 events. @@ -84,8 +79,8 @@ coming[5.0.0-alpha3, Command-line flags have dots instead of dashes in their nam Web API http port (default: 9600) *`--pipeline.unsafe_shutdown`*:: - Force logstash to exit during shutdown even if there are still inflight events - in memory. By default, logstash will refuse to quit until all received events + Force Logstash to exit during shutdown even if there are still inflight events + in memory. By default, Logstash will refuse to quit until all received events have been pushed to the outputs. *`-h, --help`*:: diff --git a/docs/static/settings-file.asciidoc b/docs/static/settings-file.asciidoc new file mode 100644 index 00000000000..748b0e79c4d --- /dev/null +++ b/docs/static/settings-file.asciidoc @@ -0,0 +1,31 @@ +[[logstash-settings-file]] +=== Settings File + +coming[5.0.0-alpha3] + +You can set options in the Logstash settings file, `logstash.yml`, to control Logstash execution. Each setting in the +`logstash.yml` file corresponds to a <>. + +Any flags that you set at the command line override the corresponding settings in the `logstash.yml` file. + +The `logstash.yml` file, which is written in http://http://yaml.org/[YAML], is located in `LOGSTASH_HOME/config`. You can +specify settings in hierarchical form or use flat keys. For example, to use hierarchical form to set the pipeline batch +size and batch delay, you specify: + +[source,yaml] +------------------------------------------------------------------------------------- +pipeline: + batch: + size: 125 + delay: 5 +------------------------------------------------------------------------------------- + +To express the same values as flat keys, you specify: + +[source,yaml] +------------------------------------------------------------------------------------- +pipeline.batch.size: 125 +pipeline.batch.delay: 5 +------------------------------------------------------------------------------------- + +See <> for a description of the available options. From 1d5fc5735a8ddb09f6ab464233ac8025a09d1c42 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Fri, 13 Nov 2015 16:09:50 +0100 Subject: [PATCH 121/632] Add a new command that generate a plugin skeleton that can be used to create a new plugin Fixes #4190 --- docs/static/plugin-manager.asciidoc | 2 +- lib/pluginmanager/generate.rb | 90 +++++++++++++++++++ lib/pluginmanager/main.rb | 2 + .../templates/filter-plugin/CHANGELOG.md | 2 + .../templates/filter-plugin/CONTRIBUTORS.erb | 10 +++ .../templates/filter-plugin/DEVELOPER.md.erb | 2 + .../templates/filter-plugin/Gemfile | 3 + .../templates/filter-plugin/LICENSE | 11 +++ .../templates/filter-plugin/README.md | 86 ++++++++++++++++++ .../templates/filter-plugin/Rakefile | 1 + .../lib/logstash/filters/example.rb.erb | 43 +++++++++ .../logstash-filter-example.gemspec.erb | 23 +++++ .../spec/filters/example_spec.rb.erb | 21 +++++ .../filter-plugin/spec/spec_helper.rb | 2 + .../templates/input-plugin/CHANGELOG.md | 2 + .../templates/input-plugin/CONTRIBUTORS.erb | 10 +++ .../templates/input-plugin/DEVELOPER.md.erb | 2 + .../templates/input-plugin/Gemfile | 3 + .../templates/input-plugin/LICENSE | 11 +++ .../templates/input-plugin/README.md | 86 ++++++++++++++++++ .../templates/input-plugin/Rakefile | 1 + .../lib/logstash/inputs/example.rb.erb | 51 +++++++++++ .../logstash-input-example.gemspec.erb | 25 ++++++ .../spec/inputs/example_spec.rb.erb | 11 +++ .../templates/output-plugin/CHANGELOG.md | 2 + .../templates/output-plugin/CONTRIBUTORS.erb | 10 +++ .../templates/output-plugin/DEVELOPER.md.erb | 2 + .../templates/output-plugin/Gemfile | 3 + .../templates/output-plugin/LICENSE | 11 +++ .../templates/output-plugin/README.md | 86 ++++++++++++++++++ .../templates/output-plugin/Rakefile | 1 + .../lib/logstash/outputs/example.rb.erb | 17 ++++ .../logstash-output-example.gemspec.erb | 24 +++++ .../spec/outputs/example_spec.rb.erb | 22 +++++ lib/pluginmanager/templates/render_context.rb | 20 +++++ .../plugin_manager/plugin_new_spec.rb | 53 +++++++++++ 36 files changed, 750 insertions(+), 1 deletion(-) create mode 100644 lib/pluginmanager/generate.rb create mode 100644 lib/pluginmanager/templates/filter-plugin/CHANGELOG.md create mode 100644 lib/pluginmanager/templates/filter-plugin/CONTRIBUTORS.erb create mode 100644 lib/pluginmanager/templates/filter-plugin/DEVELOPER.md.erb create mode 100644 lib/pluginmanager/templates/filter-plugin/Gemfile create mode 100644 lib/pluginmanager/templates/filter-plugin/LICENSE create mode 100644 lib/pluginmanager/templates/filter-plugin/README.md create mode 100644 lib/pluginmanager/templates/filter-plugin/Rakefile create mode 100644 lib/pluginmanager/templates/filter-plugin/lib/logstash/filters/example.rb.erb create mode 100644 lib/pluginmanager/templates/filter-plugin/logstash-filter-example.gemspec.erb create mode 100644 lib/pluginmanager/templates/filter-plugin/spec/filters/example_spec.rb.erb create mode 100644 lib/pluginmanager/templates/filter-plugin/spec/spec_helper.rb create mode 100644 lib/pluginmanager/templates/input-plugin/CHANGELOG.md create mode 100644 lib/pluginmanager/templates/input-plugin/CONTRIBUTORS.erb create mode 100644 lib/pluginmanager/templates/input-plugin/DEVELOPER.md.erb create mode 100644 lib/pluginmanager/templates/input-plugin/Gemfile create mode 100644 lib/pluginmanager/templates/input-plugin/LICENSE create mode 100644 lib/pluginmanager/templates/input-plugin/README.md create mode 100644 lib/pluginmanager/templates/input-plugin/Rakefile create mode 100644 lib/pluginmanager/templates/input-plugin/lib/logstash/inputs/example.rb.erb create mode 100644 lib/pluginmanager/templates/input-plugin/logstash-input-example.gemspec.erb create mode 100644 lib/pluginmanager/templates/input-plugin/spec/inputs/example_spec.rb.erb create mode 100644 lib/pluginmanager/templates/output-plugin/CHANGELOG.md create mode 100644 lib/pluginmanager/templates/output-plugin/CONTRIBUTORS.erb create mode 100644 lib/pluginmanager/templates/output-plugin/DEVELOPER.md.erb create mode 100644 lib/pluginmanager/templates/output-plugin/Gemfile create mode 100644 lib/pluginmanager/templates/output-plugin/LICENSE create mode 100644 lib/pluginmanager/templates/output-plugin/README.md create mode 100644 lib/pluginmanager/templates/output-plugin/Rakefile create mode 100644 lib/pluginmanager/templates/output-plugin/lib/logstash/outputs/example.rb.erb create mode 100644 lib/pluginmanager/templates/output-plugin/logstash-output-example.gemspec.erb create mode 100644 lib/pluginmanager/templates/output-plugin/spec/outputs/example_spec.rb.erb create mode 100644 lib/pluginmanager/templates/render_context.rb create mode 100644 spec/integration/plugin_manager/plugin_new_spec.rb diff --git a/docs/static/plugin-manager.asciidoc b/docs/static/plugin-manager.asciidoc index 75d297f2a52..33aee50894b 100644 --- a/docs/static/plugin-manager.asciidoc +++ b/docs/static/plugin-manager.asciidoc @@ -113,4 +113,4 @@ Once set, plugin commands install, update can be used through this proxy. include::offline-plugins.asciidoc[] -include::private-gem-repo.asciidoc[] \ No newline at end of file +include::private-gem-repo.asciidoc[] diff --git a/lib/pluginmanager/generate.rb b/lib/pluginmanager/generate.rb new file mode 100644 index 00000000000..658ff395793 --- /dev/null +++ b/lib/pluginmanager/generate.rb @@ -0,0 +1,90 @@ +# encoding: utf-8 +require "pluginmanager/command" +require "pluginmanager/templates/render_context" +require "erb" +require "ostruct" +require "fileutils" + +class LogStash::PluginManager::Generate < LogStash::PluginManager::Command + + TYPES = [ "input", "filter", "output" ] + + option "--type", "TYPE", "Type of the plugin {input, filter, output}s" do |arg| + raise(ArgumentError, "should be one of: input, output or filter") unless TYPES.include?(arg) + arg + end + + option "--name", "PLUGIN", "Name of the new plugin" + option "--path", "PATH", "Location where the plugin skeleton will be created", :default => Dir.pwd + + def execute + source = File.join(File.dirname(__FILE__), "templates", "#{type}-plugin") + target_path = File.join(path, full_plugin_name) + FileUtils.mkdir(target_path) + puts " Creating #{target_path}" + + begin + create_scaffold(source, target_path) + rescue Errno::EACCES => exception + report_exception("Permission denied when executing the plugin manager", exception) + rescue => exception + report_exception("Plugin creation Aborted", exception) + end + end + + private + + def create_scaffold(source, target) + transform_r(source, target) + end + + def transform_r(source, target) + Dir.entries(source).each do |entry| + next if [ ".", ".." ].include?(entry) + source_entry = File.join(source, entry) + target_entry = File.join(target, entry) + + if File.directory?(source_entry) + FileUtils.mkdir(target_entry) unless File.exists?(target_entry) + transform_r(source_entry, target_entry) + else + # copy the new file, in case of being an .erb file should render first + if source_entry.end_with?("erb") + target_entry = target_entry.gsub(/.erb$/,"").gsub("example", name) + File.open(target_entry, "w") { |f| f.write(render(source_entry)) } + else + FileUtils.cp(source_entry, target_entry) + end + puts "\t create #{File.join(full_plugin_name, File.basename(target_entry))}" + end + end + end + + def render(source) + template = File.read(source) + renderer = ERB.new(template) + context = LogStash::PluginManager::RenderContext.new(options) + renderer.result(context.get_binding) + end + + def options + git_data = get_git_info + @options ||= { + :plugin_name => name, + :author => git_data.author, + :email => git_data.email, + :min_version => "2.0", + } + end + + def get_git_info + git = OpenStruct.new + git.author = %x{ git config --get user.name }.strip rescue "your_username" + git.email = %x{ git config --get user.email }.strip rescue "your_username@example.com" + git + end + + def full_plugin_name + @full_plugin_name ||= "logstash-#{type}-#{name.downcase}" + end +end diff --git a/lib/pluginmanager/main.rb b/lib/pluginmanager/main.rb index 15841b107e3..0ac63b29329 100644 --- a/lib/pluginmanager/main.rb +++ b/lib/pluginmanager/main.rb @@ -20,6 +20,7 @@ module PluginManager require "pluginmanager/update" require "pluginmanager/pack" require "pluginmanager/unpack" +require "pluginmanager/generate" module LogStash module PluginManager @@ -32,6 +33,7 @@ class Main < Clamp::Command subcommand "pack", "Package currently installed plugins", LogStash::PluginManager::Pack subcommand "unpack", "Unpack packaged plugins", LogStash::PluginManager::Unpack subcommand "list", "List all installed plugins", LogStash::PluginManager::List + subcommand "generate", "Create the foundation for a new plugin", LogStash::PluginManager::Generate end end end diff --git a/lib/pluginmanager/templates/filter-plugin/CHANGELOG.md b/lib/pluginmanager/templates/filter-plugin/CHANGELOG.md new file mode 100644 index 00000000000..9bb3255f54d --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/CHANGELOG.md @@ -0,0 +1,2 @@ +## 0.1.0 + - Plugin created with the logstash plugin generator diff --git a/lib/pluginmanager/templates/filter-plugin/CONTRIBUTORS.erb b/lib/pluginmanager/templates/filter-plugin/CONTRIBUTORS.erb new file mode 100644 index 00000000000..8074a9e9725 --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/CONTRIBUTORS.erb @@ -0,0 +1,10 @@ +The following is a list of people who have contributed ideas, code, bug +reports, or in general have helped logstash along its way. + +Contributors: +* <%= author %> - <%= email %> + +Note: If you've sent us patches, bug reports, or otherwise contributed to +Logstash, and you aren't on the list above and want to be, please let us know +and we'll make sure you're here. Contributions from folks like you are what make +open source awesome. diff --git a/lib/pluginmanager/templates/filter-plugin/DEVELOPER.md.erb b/lib/pluginmanager/templates/filter-plugin/DEVELOPER.md.erb new file mode 100644 index 00000000000..6b18c6221de --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/DEVELOPER.md.erb @@ -0,0 +1,2 @@ +# logstash-filter-<%= plugin_name %> +Example filter plugin. This should help bootstrap your effort to write your own filter plugin! diff --git a/lib/pluginmanager/templates/filter-plugin/Gemfile b/lib/pluginmanager/templates/filter-plugin/Gemfile new file mode 100644 index 00000000000..06618cefa69 --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' +gemspec + diff --git a/lib/pluginmanager/templates/filter-plugin/LICENSE b/lib/pluginmanager/templates/filter-plugin/LICENSE new file mode 100644 index 00000000000..51fca54c2a0 --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/LICENSE @@ -0,0 +1,11 @@ +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/lib/pluginmanager/templates/filter-plugin/README.md b/lib/pluginmanager/templates/filter-plugin/README.md new file mode 100644 index 00000000000..f5301aca0f9 --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/README.md @@ -0,0 +1,86 @@ +# Logstash Plugin + +This is a plugin for [Logstash](https://github.com/elastic/logstash). + +It is fully free and fully open source. The license is Apache 2.0, meaning you are pretty much free to use it however you want in whatever way. + +## Documentation + +Logstash provides infrastructure to automatically generate documentation for this plugin. We use the asciidoc format to write documentation so any comments in the source code will be first converted into asciidoc and then into html. All plugin documentation are placed under one [central location](http://www.elastic.co/guide/en/logstash/current/). + +- For formatting code or config example, you can use the asciidoc `[source,ruby]` directive +- For more asciidoc formatting tips, see the excellent reference here https://github.com/elastic/docs#asciidoc-guide + +## Need Help? + +Need help? Try #logstash on freenode IRC or the https://discuss.elastic.co/c/logstash discussion forum. + +## Developing + +### 1. Plugin Developement and Testing + +#### Code +- To get started, you'll need JRuby with the Bundler gem installed. + +- Create a new plugin or clone and existing from the GitHub [logstash-plugins](https://github.com/logstash-plugins) organization. We also provide [example plugins](https://github.com/logstash-plugins?query=example). + +- Install dependencies +```sh +bundle install +``` + +#### Test + +- Update your dependencies + +```sh +bundle install +``` + +- Run tests + +```sh +bundle exec rspec +``` + +### 2. Running your unpublished Plugin in Logstash + +#### 2.1 Run in a local Logstash clone + +- Edit Logstash `Gemfile` and add the local plugin path, for example: +```ruby +gem "logstash-filter-awesome", :path => "/your/local/logstash-filter-awesome" +``` +- Install plugin +```sh +bin/logstash-plugin install --no-verify +``` +- Run Logstash with your plugin +```sh +bin/logstash -e 'filter {awesome {}}' +``` +At this point any modifications to the plugin code will be applied to this local Logstash setup. After modifying the plugin, simply rerun Logstash. + +#### 2.2 Run in an installed Logstash + +You can use the same **2.1** method to run your plugin in an installed Logstash by editing its `Gemfile` and pointing the `:path` to your local plugin development directory or you can build the gem and install it using: + +- Build your plugin gem +```sh +gem build logstash-filter-awesome.gemspec +``` +- Install the plugin from the Logstash home +```sh +bin/logstash-plugin install /your/local/plugin/logstash-filter-awesome.gem +``` +- Start Logstash and proceed to test the plugin + +## Contributing + +All contributions are welcome: ideas, patches, documentation, bug reports, complaints, and even something you drew up on a napkin. + +Programming is not a required skill. Whatever you've seen about open source and maintainers or community members saying "send patches or die" - you will not see that here. + +It is more important to the community that you are able to contribute. + +For more information about contributing, see the [CONTRIBUTING](https://github.com/elastic/logstash/blob/master/CONTRIBUTING.md) file. diff --git a/lib/pluginmanager/templates/filter-plugin/Rakefile b/lib/pluginmanager/templates/filter-plugin/Rakefile new file mode 100644 index 00000000000..d50e796f1c1 --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/Rakefile @@ -0,0 +1 @@ +require "logstash/devutils/rake" diff --git a/lib/pluginmanager/templates/filter-plugin/lib/logstash/filters/example.rb.erb b/lib/pluginmanager/templates/filter-plugin/lib/logstash/filters/example.rb.erb new file mode 100644 index 00000000000..a16ef0ba736 --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/lib/logstash/filters/example.rb.erb @@ -0,0 +1,43 @@ +# encoding: utf-8 +require "logstash/filters/base" +require "logstash/namespace" + +# This <%= @plugin_name %> filter will replace the contents of the default +# message field with whatever you specify in the configuration. +# +# It is only intended to be used as an <%= @plugin_name %>. +class LogStash::Filters::<%= classify(plugin_name) %> < LogStash::Filters::Base + + # Setting the config_name here is required. This is how you + # configure this filter from your Logstash config. + # + # filter { + # <%= @plugin_name %> { + # message => "My message..." + # } + # } + # + config_name "<%= plugin_name %>" + + # Replace the message with this value. + config :message, :validate => :string, :default => "Hello World!" + + + public + def register + # Add instance variables + end # def register + + public + def filter(event) + + if @message + # Replace the event message with our message as configured in the + # config file. + event["message"] = @message + end + + # filter_matched should go in the last line of our successful code + filter_matched(event) + end # def filter +end # class LogStash::Filters::<%= classify(plugin_name) %> diff --git a/lib/pluginmanager/templates/filter-plugin/logstash-filter-example.gemspec.erb b/lib/pluginmanager/templates/filter-plugin/logstash-filter-example.gemspec.erb new file mode 100644 index 00000000000..ada485d36fb --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/logstash-filter-example.gemspec.erb @@ -0,0 +1,23 @@ +Gem::Specification.new do |s| + s.name = 'logstash-filter-<%= plugin_name %>' + s.version = '0.1.0' + s.licenses = ['Apache License (2.0)'] + s.summary = 'TODO: Write a short summary, because Rubygems requires one.' + s.description = 'TODO: Write a longer description or delete this line.' + s.homepage = 'TODO: Put your plugin's website or public repo URL here.' + s.authors = ['<%= author %>'] + s.email = '<%= email %>' + s.require_paths = ['lib'] + + # Files + s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT'] + # Tests + s.test_files = s.files.grep(%r{^(test|spec|features)/}) + + # Special flag to let us know this is actually a logstash plugin + s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" } + + # Gem dependencies + s.add_runtime_dependency "logstash-core-plugin-api", "~> <%= min_version %>" + s.add_development_dependency 'logstash-devutils' +end diff --git a/lib/pluginmanager/templates/filter-plugin/spec/filters/example_spec.rb.erb b/lib/pluginmanager/templates/filter-plugin/spec/filters/example_spec.rb.erb new file mode 100644 index 00000000000..ab4f7999377 --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/spec/filters/example_spec.rb.erb @@ -0,0 +1,21 @@ +# encoding: utf-8 +require_relative '../spec_helper' +require "logstash/filters/<%= plugin_name %>" + +describe LogStash::Filters::<%= classify(plugin_name) %> do + describe "Set to Hello World" do + let(:config) do <<-CONFIG + filter { + <%= plugin_name %> { + message => "Hello World" + } + } + CONFIG + end + + sample("message" => "some text") do + expect(subject).to include("message") + expect(subject['message']).to eq('Hello World') + end + end +end diff --git a/lib/pluginmanager/templates/filter-plugin/spec/spec_helper.rb b/lib/pluginmanager/templates/filter-plugin/spec/spec_helper.rb new file mode 100644 index 00000000000..dc64aba12c1 --- /dev/null +++ b/lib/pluginmanager/templates/filter-plugin/spec/spec_helper.rb @@ -0,0 +1,2 @@ +# encoding: utf-8 +require "logstash/devutils/rspec/spec_helper" diff --git a/lib/pluginmanager/templates/input-plugin/CHANGELOG.md b/lib/pluginmanager/templates/input-plugin/CHANGELOG.md new file mode 100644 index 00000000000..9bb3255f54d --- /dev/null +++ b/lib/pluginmanager/templates/input-plugin/CHANGELOG.md @@ -0,0 +1,2 @@ +## 0.1.0 + - Plugin created with the logstash plugin generator diff --git a/lib/pluginmanager/templates/input-plugin/CONTRIBUTORS.erb b/lib/pluginmanager/templates/input-plugin/CONTRIBUTORS.erb new file mode 100644 index 00000000000..8074a9e9725 --- /dev/null +++ b/lib/pluginmanager/templates/input-plugin/CONTRIBUTORS.erb @@ -0,0 +1,10 @@ +The following is a list of people who have contributed ideas, code, bug +reports, or in general have helped logstash along its way. + +Contributors: +* <%= author %> - <%= email %> + +Note: If you've sent us patches, bug reports, or otherwise contributed to +Logstash, and you aren't on the list above and want to be, please let us know +and we'll make sure you're here. Contributions from folks like you are what make +open source awesome. diff --git a/lib/pluginmanager/templates/input-plugin/DEVELOPER.md.erb b/lib/pluginmanager/templates/input-plugin/DEVELOPER.md.erb new file mode 100644 index 00000000000..eca3db404e8 --- /dev/null +++ b/lib/pluginmanager/templates/input-plugin/DEVELOPER.md.erb @@ -0,0 +1,2 @@ +# logstash-input-<%= plugin_name %> +Example input plugin. This should help bootstrap your effort to write your own input plugin! diff --git a/lib/pluginmanager/templates/input-plugin/Gemfile b/lib/pluginmanager/templates/input-plugin/Gemfile new file mode 100644 index 00000000000..06618cefa69 --- /dev/null +++ b/lib/pluginmanager/templates/input-plugin/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' +gemspec + diff --git a/lib/pluginmanager/templates/input-plugin/LICENSE b/lib/pluginmanager/templates/input-plugin/LICENSE new file mode 100644 index 00000000000..51fca54c2a0 --- /dev/null +++ b/lib/pluginmanager/templates/input-plugin/LICENSE @@ -0,0 +1,11 @@ +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/lib/pluginmanager/templates/input-plugin/README.md b/lib/pluginmanager/templates/input-plugin/README.md new file mode 100644 index 00000000000..f5301aca0f9 --- /dev/null +++ b/lib/pluginmanager/templates/input-plugin/README.md @@ -0,0 +1,86 @@ +# Logstash Plugin + +This is a plugin for [Logstash](https://github.com/elastic/logstash). + +It is fully free and fully open source. The license is Apache 2.0, meaning you are pretty much free to use it however you want in whatever way. + +## Documentation + +Logstash provides infrastructure to automatically generate documentation for this plugin. We use the asciidoc format to write documentation so any comments in the source code will be first converted into asciidoc and then into html. All plugin documentation are placed under one [central location](http://www.elastic.co/guide/en/logstash/current/). + +- For formatting code or config example, you can use the asciidoc `[source,ruby]` directive +- For more asciidoc formatting tips, see the excellent reference here https://github.com/elastic/docs#asciidoc-guide + +## Need Help? + +Need help? Try #logstash on freenode IRC or the https://discuss.elastic.co/c/logstash discussion forum. + +## Developing + +### 1. Plugin Developement and Testing + +#### Code +- To get started, you'll need JRuby with the Bundler gem installed. + +- Create a new plugin or clone and existing from the GitHub [logstash-plugins](https://github.com/logstash-plugins) organization. We also provide [example plugins](https://github.com/logstash-plugins?query=example). + +- Install dependencies +```sh +bundle install +``` + +#### Test + +- Update your dependencies + +```sh +bundle install +``` + +- Run tests + +```sh +bundle exec rspec +``` + +### 2. Running your unpublished Plugin in Logstash + +#### 2.1 Run in a local Logstash clone + +- Edit Logstash `Gemfile` and add the local plugin path, for example: +```ruby +gem "logstash-filter-awesome", :path => "/your/local/logstash-filter-awesome" +``` +- Install plugin +```sh +bin/logstash-plugin install --no-verify +``` +- Run Logstash with your plugin +```sh +bin/logstash -e 'filter {awesome {}}' +``` +At this point any modifications to the plugin code will be applied to this local Logstash setup. After modifying the plugin, simply rerun Logstash. + +#### 2.2 Run in an installed Logstash + +You can use the same **2.1** method to run your plugin in an installed Logstash by editing its `Gemfile` and pointing the `:path` to your local plugin development directory or you can build the gem and install it using: + +- Build your plugin gem +```sh +gem build logstash-filter-awesome.gemspec +``` +- Install the plugin from the Logstash home +```sh +bin/logstash-plugin install /your/local/plugin/logstash-filter-awesome.gem +``` +- Start Logstash and proceed to test the plugin + +## Contributing + +All contributions are welcome: ideas, patches, documentation, bug reports, complaints, and even something you drew up on a napkin. + +Programming is not a required skill. Whatever you've seen about open source and maintainers or community members saying "send patches or die" - you will not see that here. + +It is more important to the community that you are able to contribute. + +For more information about contributing, see the [CONTRIBUTING](https://github.com/elastic/logstash/blob/master/CONTRIBUTING.md) file. diff --git a/lib/pluginmanager/templates/input-plugin/Rakefile b/lib/pluginmanager/templates/input-plugin/Rakefile new file mode 100644 index 00000000000..d50e796f1c1 --- /dev/null +++ b/lib/pluginmanager/templates/input-plugin/Rakefile @@ -0,0 +1 @@ +require "logstash/devutils/rake" diff --git a/lib/pluginmanager/templates/input-plugin/lib/logstash/inputs/example.rb.erb b/lib/pluginmanager/templates/input-plugin/lib/logstash/inputs/example.rb.erb new file mode 100644 index 00000000000..5a7707c4717 --- /dev/null +++ b/lib/pluginmanager/templates/input-plugin/lib/logstash/inputs/example.rb.erb @@ -0,0 +1,51 @@ +# encoding: utf-8 +require "logstash/inputs/base" +require "logstash/namespace" +require "stud/interval" +require "socket" # for Socket.gethostname + +# Generate a repeating message. +# +# This plugin is intented only as an example. + +class LogStash::Inputs::<%= classify(plugin_name) %> < LogStash::Inputs::Base + config_name "<%= @lugin_name %>" + + # If undefined, Logstash will complain, even if codec is unused. + default :codec, "plain" + + # The message string to use in the event. + config :message, :validate => :string, :default => "Hello World!" + + # Set how frequently messages should be sent. + # + # The default, `1`, means send a message every second. + config :interval, :validate => :number, :default => 1 + + public + def register + @host = Socket.gethostname + end # def register + + def run(queue) + # we can abort the loop if stop? becomes true + while !stop? + event = LogStash::Event.new("message" => @message, "host" => @host) + decorate(event) + queue << event + # because the sleep interval can be big, when shutdown happens + # we want to be able to abort the sleep + # Stud.stoppable_sleep will frequently evaluate the given block + # and abort the sleep(@interval) if the return value is true + Stud.stoppable_sleep(@interval) { stop? } + end # loop + end # def run + + def stop + # nothing to do in this case so it is not necessary to define stop + # examples of common "stop" tasks: + # * close sockets (unblocking blocking reads/accepts) + # * cleanup temporary files + # * terminate spawned threads + end +end # class LogStash::Inputs::<%= classify(plugin_name) %> diff --git a/lib/pluginmanager/templates/input-plugin/logstash-input-example.gemspec.erb b/lib/pluginmanager/templates/input-plugin/logstash-input-example.gemspec.erb new file mode 100644 index 00000000000..435fdcf875f --- /dev/null +++ b/lib/pluginmanager/templates/input-plugin/logstash-input-example.gemspec.erb @@ -0,0 +1,25 @@ +Gem::Specification.new do |s| + s.name = 'logstash-input-<%= plugin_name %>' + s.version = '0.1.0' + s.licenses = ['Apache License (2.0)'] + s.summary = 'TODO: Write a short summary, because Rubygems requires one.' + s.description = '{TODO: Write a longer description or delete this line.' + s.homepage = 'TODO: Put your plugin's website or public repo URL here.' + s.authors = ['<%= author %>'] + s.email = '<%= email %>' + s.require_paths = ['lib'] + + # Files + s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT'] + # Tests + s.test_files = s.files.grep(%r{^(test|spec|features)/}) + + # Special flag to let us know this is actually a logstash plugin + s.metadata = { "logstash_plugin" => "true", "logstash_group" => "input" } + + # Gem dependencies + s.add_runtime_dependency "logstash-core-plugin-api", "~> <%= min_version %>" + s.add_runtime_dependency 'logstash-codec-plain' + s.add_runtime_dependency 'stud', '>= 0.0.22' + s.add_development_dependency 'logstash-devutils', '>= 0.0.16' +end diff --git a/lib/pluginmanager/templates/input-plugin/spec/inputs/example_spec.rb.erb b/lib/pluginmanager/templates/input-plugin/spec/inputs/example_spec.rb.erb new file mode 100644 index 00000000000..7b8bfde8ea3 --- /dev/null +++ b/lib/pluginmanager/templates/input-plugin/spec/inputs/example_spec.rb.erb @@ -0,0 +1,11 @@ +# encoding: utf-8 +require "logstash/devutils/rspec/spec_helper" +require "logstash/inputs/<%= plugin_name %>" + +describe LogStash::Inputs::<%= classify(plugin_name) %> do + + it_behaves_like "an interruptible input plugin" do + let(:config) { { "interval" => 100 } } + end + +end diff --git a/lib/pluginmanager/templates/output-plugin/CHANGELOG.md b/lib/pluginmanager/templates/output-plugin/CHANGELOG.md new file mode 100644 index 00000000000..9bb3255f54d --- /dev/null +++ b/lib/pluginmanager/templates/output-plugin/CHANGELOG.md @@ -0,0 +1,2 @@ +## 0.1.0 + - Plugin created with the logstash plugin generator diff --git a/lib/pluginmanager/templates/output-plugin/CONTRIBUTORS.erb b/lib/pluginmanager/templates/output-plugin/CONTRIBUTORS.erb new file mode 100644 index 00000000000..8074a9e9725 --- /dev/null +++ b/lib/pluginmanager/templates/output-plugin/CONTRIBUTORS.erb @@ -0,0 +1,10 @@ +The following is a list of people who have contributed ideas, code, bug +reports, or in general have helped logstash along its way. + +Contributors: +* <%= author %> - <%= email %> + +Note: If you've sent us patches, bug reports, or otherwise contributed to +Logstash, and you aren't on the list above and want to be, please let us know +and we'll make sure you're here. Contributions from folks like you are what make +open source awesome. diff --git a/lib/pluginmanager/templates/output-plugin/DEVELOPER.md.erb b/lib/pluginmanager/templates/output-plugin/DEVELOPER.md.erb new file mode 100644 index 00000000000..2593de38fc7 --- /dev/null +++ b/lib/pluginmanager/templates/output-plugin/DEVELOPER.md.erb @@ -0,0 +1,2 @@ +# logstash-output-<%= plugin_name %> +Example output plugin. This should help bootstrap your effort to write your own output plugin! diff --git a/lib/pluginmanager/templates/output-plugin/Gemfile b/lib/pluginmanager/templates/output-plugin/Gemfile new file mode 100644 index 00000000000..06618cefa69 --- /dev/null +++ b/lib/pluginmanager/templates/output-plugin/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' +gemspec + diff --git a/lib/pluginmanager/templates/output-plugin/LICENSE b/lib/pluginmanager/templates/output-plugin/LICENSE new file mode 100644 index 00000000000..51fca54c2a0 --- /dev/null +++ b/lib/pluginmanager/templates/output-plugin/LICENSE @@ -0,0 +1,11 @@ +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/lib/pluginmanager/templates/output-plugin/README.md b/lib/pluginmanager/templates/output-plugin/README.md new file mode 100644 index 00000000000..f5301aca0f9 --- /dev/null +++ b/lib/pluginmanager/templates/output-plugin/README.md @@ -0,0 +1,86 @@ +# Logstash Plugin + +This is a plugin for [Logstash](https://github.com/elastic/logstash). + +It is fully free and fully open source. The license is Apache 2.0, meaning you are pretty much free to use it however you want in whatever way. + +## Documentation + +Logstash provides infrastructure to automatically generate documentation for this plugin. We use the asciidoc format to write documentation so any comments in the source code will be first converted into asciidoc and then into html. All plugin documentation are placed under one [central location](http://www.elastic.co/guide/en/logstash/current/). + +- For formatting code or config example, you can use the asciidoc `[source,ruby]` directive +- For more asciidoc formatting tips, see the excellent reference here https://github.com/elastic/docs#asciidoc-guide + +## Need Help? + +Need help? Try #logstash on freenode IRC or the https://discuss.elastic.co/c/logstash discussion forum. + +## Developing + +### 1. Plugin Developement and Testing + +#### Code +- To get started, you'll need JRuby with the Bundler gem installed. + +- Create a new plugin or clone and existing from the GitHub [logstash-plugins](https://github.com/logstash-plugins) organization. We also provide [example plugins](https://github.com/logstash-plugins?query=example). + +- Install dependencies +```sh +bundle install +``` + +#### Test + +- Update your dependencies + +```sh +bundle install +``` + +- Run tests + +```sh +bundle exec rspec +``` + +### 2. Running your unpublished Plugin in Logstash + +#### 2.1 Run in a local Logstash clone + +- Edit Logstash `Gemfile` and add the local plugin path, for example: +```ruby +gem "logstash-filter-awesome", :path => "/your/local/logstash-filter-awesome" +``` +- Install plugin +```sh +bin/logstash-plugin install --no-verify +``` +- Run Logstash with your plugin +```sh +bin/logstash -e 'filter {awesome {}}' +``` +At this point any modifications to the plugin code will be applied to this local Logstash setup. After modifying the plugin, simply rerun Logstash. + +#### 2.2 Run in an installed Logstash + +You can use the same **2.1** method to run your plugin in an installed Logstash by editing its `Gemfile` and pointing the `:path` to your local plugin development directory or you can build the gem and install it using: + +- Build your plugin gem +```sh +gem build logstash-filter-awesome.gemspec +``` +- Install the plugin from the Logstash home +```sh +bin/logstash-plugin install /your/local/plugin/logstash-filter-awesome.gem +``` +- Start Logstash and proceed to test the plugin + +## Contributing + +All contributions are welcome: ideas, patches, documentation, bug reports, complaints, and even something you drew up on a napkin. + +Programming is not a required skill. Whatever you've seen about open source and maintainers or community members saying "send patches or die" - you will not see that here. + +It is more important to the community that you are able to contribute. + +For more information about contributing, see the [CONTRIBUTING](https://github.com/elastic/logstash/blob/master/CONTRIBUTING.md) file. diff --git a/lib/pluginmanager/templates/output-plugin/Rakefile b/lib/pluginmanager/templates/output-plugin/Rakefile new file mode 100644 index 00000000000..d50e796f1c1 --- /dev/null +++ b/lib/pluginmanager/templates/output-plugin/Rakefile @@ -0,0 +1 @@ +require "logstash/devutils/rake" diff --git a/lib/pluginmanager/templates/output-plugin/lib/logstash/outputs/example.rb.erb b/lib/pluginmanager/templates/output-plugin/lib/logstash/outputs/example.rb.erb new file mode 100644 index 00000000000..eadd499bf98 --- /dev/null +++ b/lib/pluginmanager/templates/output-plugin/lib/logstash/outputs/example.rb.erb @@ -0,0 +1,17 @@ +# encoding: utf-8 +require "logstash/outputs/base" +require "logstash/namespace" + +# An <%= plugin_name %> output that does nothing. +class LogStash::Outputs::<%= classify(plugin_name) %> < LogStash::Outputs::Base + config_name "<%= plugin_name %>" + + public + def register + end # def register + + public + def receive(event) + return "Event received" + end # def event +end # class LogStash::Outputs::<%= classify(plugin_name) %> diff --git a/lib/pluginmanager/templates/output-plugin/logstash-output-example.gemspec.erb b/lib/pluginmanager/templates/output-plugin/logstash-output-example.gemspec.erb new file mode 100644 index 00000000000..1d8613225f2 --- /dev/null +++ b/lib/pluginmanager/templates/output-plugin/logstash-output-example.gemspec.erb @@ -0,0 +1,24 @@ +Gem::Specification.new do |s| + s.name = 'logstash-output-<%= plugin_name %>' + s.version = '0.1.0' + s.licenses = ['Apache License (2.0)'] + s.summary = 'TODO: Write a short summary, because Rubygems requires one.' + s.description = 'TODO: Write a longer description or delete this line.' + s.homepage = 'TODO: Put your plugin's website or public repo URL here.' + s.authors = ['<%= author %>'] + s.email = '<%= email %>' + s.require_paths = ['lib'] + + # Files + s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT'] + # Tests + s.test_files = s.files.grep(%r{^(test|spec|features)/}) + + # Special flag to let us know this is actually a logstash plugin + s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" } + + # Gem dependencies + s.add_runtime_dependency "logstash-core-plugin-api", "~> <%= min_version %>" + s.add_runtime_dependency "logstash-codec-plain" + s.add_development_dependency "logstash-devutils" +end diff --git a/lib/pluginmanager/templates/output-plugin/spec/outputs/example_spec.rb.erb b/lib/pluginmanager/templates/output-plugin/spec/outputs/example_spec.rb.erb new file mode 100644 index 00000000000..220d967bd63 --- /dev/null +++ b/lib/pluginmanager/templates/output-plugin/spec/outputs/example_spec.rb.erb @@ -0,0 +1,22 @@ +# encoding: utf-8 +require "logstash/devutils/rspec/spec_helper" +require "logstash/outputs/<%= plugin_name %>" +require "logstash/codecs/plain" +require "logstash/event" + +describe LogStash::Outputs::<%= classify(plugin_name) %> do + let(:sample_event) { LogStash::Event.new } + let(:output) { LogStash::Outputs::<%= classify(plugin_name) %>.new } + + before do + output.register + end + + describe "receive message" do + subject { output.receive(sample_event) } + + it "returns a string" do + expect(subject).to eq("Event received") + end + end +end diff --git a/lib/pluginmanager/templates/render_context.rb b/lib/pluginmanager/templates/render_context.rb new file mode 100644 index 00000000000..583c6a9ee07 --- /dev/null +++ b/lib/pluginmanager/templates/render_context.rb @@ -0,0 +1,20 @@ +require "erb" + +module LogStash::PluginManager + class RenderContext + def initialize(options = {}) + options.each do |name, value| + define_singleton_method(name) { value } + end + end + + def get_binding + binding() + end + + def classify(klass_name) + klass_name.split(/-|_/).map { |e| e.capitalize }.join("") + end + + end +end diff --git a/spec/integration/plugin_manager/plugin_new_spec.rb b/spec/integration/plugin_manager/plugin_new_spec.rb new file mode 100644 index 00000000000..a961cea4bcf --- /dev/null +++ b/spec/integration/plugin_manager/plugin_new_spec.rb @@ -0,0 +1,53 @@ +# Encoding: utf-8 +require_relative "../spec_helper" +require "fileutils" + +describe "bin/logstash-plugin generate" do + + shared_examples "bin/logstash-plugin generate" do + let(:plugin_name) { "dummy" } + let(:full_plugin_name) { "logstash-#{plugin_type}-#{plugin_name}" } + + describe "plugin creation" do + + before(:each) do + FileUtils.rm_rf(full_plugin_name) + end + + after(:each) do + FileUtils.rm_rf(full_plugin_name) + end + + it "generate a new plugin" do + result = command("bin/logstash-plugin generate --type #{plugin_type} --name #{plugin_name}") + expect(result.exit_status).to eq(0) + expect(result.stdout).to match(/Creating #{full_plugin_name}/) + expect(Dir.exist?("#{full_plugin_name}")).to eq(true) + end + + it "raise an error if the plugin is already generated" do + command("bin/logstash-plugin generate --type #{plugin_type} --name #{plugin_name}") + result = command("bin/logstsh-plugin generate --type #{plugin_type} --name #{plugin_name}") + expect(result.exit_status).to eq(1) + end + end + end + + describe "bin/logstash-plugin generate input" do + it_behaves_like "bin/logstash-plugin generate" do + let(:plugin_type) { "input" } + end + end + + describe "bin/logstash-plugin generate filter" do + it_behaves_like "bin/logstash-plugin generate" do + let(:plugin_type) { "filter" } + end + end + + describe "bin/logstash-plugin generate output" do + it_behaves_like "bin/logstash-plugin generate" do + let(:plugin_type) { "output" } + end + end +end From 53c0bc1cf7602ff5f9ee54b18484fb0e232c8ce7 Mon Sep 17 00:00:00 2001 From: Philippe Weber Date: Tue, 24 May 2016 23:10:47 +0200 Subject: [PATCH 122/632] fix to allow direct execution of 'bundle install' Fixes #5355 --- .../templates/filter-plugin/logstash-filter-example.gemspec.erb | 2 +- .../templates/input-plugin/logstash-input-example.gemspec.erb | 2 +- .../templates/output-plugin/logstash-output-example.gemspec.erb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pluginmanager/templates/filter-plugin/logstash-filter-example.gemspec.erb b/lib/pluginmanager/templates/filter-plugin/logstash-filter-example.gemspec.erb index ada485d36fb..5f910dc40fb 100644 --- a/lib/pluginmanager/templates/filter-plugin/logstash-filter-example.gemspec.erb +++ b/lib/pluginmanager/templates/filter-plugin/logstash-filter-example.gemspec.erb @@ -4,7 +4,7 @@ Gem::Specification.new do |s| s.licenses = ['Apache License (2.0)'] s.summary = 'TODO: Write a short summary, because Rubygems requires one.' s.description = 'TODO: Write a longer description or delete this line.' - s.homepage = 'TODO: Put your plugin's website or public repo URL here.' + s.homepage = 'TODO: Put your plugin''s website or public repo URL here.' s.authors = ['<%= author %>'] s.email = '<%= email %>' s.require_paths = ['lib'] diff --git a/lib/pluginmanager/templates/input-plugin/logstash-input-example.gemspec.erb b/lib/pluginmanager/templates/input-plugin/logstash-input-example.gemspec.erb index 435fdcf875f..9f8543887b2 100644 --- a/lib/pluginmanager/templates/input-plugin/logstash-input-example.gemspec.erb +++ b/lib/pluginmanager/templates/input-plugin/logstash-input-example.gemspec.erb @@ -4,7 +4,7 @@ Gem::Specification.new do |s| s.licenses = ['Apache License (2.0)'] s.summary = 'TODO: Write a short summary, because Rubygems requires one.' s.description = '{TODO: Write a longer description or delete this line.' - s.homepage = 'TODO: Put your plugin's website or public repo URL here.' + s.homepage = 'TODO: Put your plugin''s website or public repo URL here.' s.authors = ['<%= author %>'] s.email = '<%= email %>' s.require_paths = ['lib'] diff --git a/lib/pluginmanager/templates/output-plugin/logstash-output-example.gemspec.erb b/lib/pluginmanager/templates/output-plugin/logstash-output-example.gemspec.erb index 1d8613225f2..db396e1ff1c 100644 --- a/lib/pluginmanager/templates/output-plugin/logstash-output-example.gemspec.erb +++ b/lib/pluginmanager/templates/output-plugin/logstash-output-example.gemspec.erb @@ -4,7 +4,7 @@ Gem::Specification.new do |s| s.licenses = ['Apache License (2.0)'] s.summary = 'TODO: Write a short summary, because Rubygems requires one.' s.description = 'TODO: Write a longer description or delete this line.' - s.homepage = 'TODO: Put your plugin's website or public repo URL here.' + s.homepage = 'TODO: Put your plugin''s website or public repo URL here.' s.authors = ['<%= author %>'] s.email = '<%= email %>' s.require_paths = ['lib'] From 0665497ca5381703fdd1ee033f7e8e937e3b7417 Mon Sep 17 00:00:00 2001 From: Philippe Weber Date: Tue, 24 May 2016 23:15:15 +0200 Subject: [PATCH 123/632] make plugin name parameter required Fixes #5355 --- lib/pluginmanager/generate.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pluginmanager/generate.rb b/lib/pluginmanager/generate.rb index 658ff395793..c4d1b607a84 100644 --- a/lib/pluginmanager/generate.rb +++ b/lib/pluginmanager/generate.rb @@ -14,7 +14,7 @@ class LogStash::PluginManager::Generate < LogStash::PluginManager::Command arg end - option "--name", "PLUGIN", "Name of the new plugin" + option "--name", "PLUGIN", "Name of the new plugin", :required => true option "--path", "PATH", "Location where the plugin skeleton will be created", :default => Dir.pwd def execute From 9c4bac70a5b6336ffb7a787f9eb3b096db91037d Mon Sep 17 00:00:00 2001 From: Philippe Weber Date: Tue, 24 May 2016 23:33:17 +0200 Subject: [PATCH 124/632] display correct path of created files Fixes #5355 --- lib/pluginmanager/generate.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/pluginmanager/generate.rb b/lib/pluginmanager/generate.rb index c4d1b607a84..ccd0009ce79 100644 --- a/lib/pluginmanager/generate.rb +++ b/lib/pluginmanager/generate.rb @@ -4,6 +4,7 @@ require "erb" require "ostruct" require "fileutils" +require "pathname" class LogStash::PluginManager::Generate < LogStash::PluginManager::Command @@ -19,12 +20,12 @@ class LogStash::PluginManager::Generate < LogStash::PluginManager::Command def execute source = File.join(File.dirname(__FILE__), "templates", "#{type}-plugin") - target_path = File.join(path, full_plugin_name) - FileUtils.mkdir(target_path) - puts " Creating #{target_path}" + @target_path = File.join(path, full_plugin_name) + FileUtils.mkdir(@target_path) + puts " Creating #{@target_path}" begin - create_scaffold(source, target_path) + create_scaffold(source, @target_path) rescue Errno::EACCES => exception report_exception("Permission denied when executing the plugin manager", exception) rescue => exception @@ -55,7 +56,7 @@ def transform_r(source, target) else FileUtils.cp(source_entry, target_entry) end - puts "\t create #{File.join(full_plugin_name, File.basename(target_entry))}" + puts "\t create #{File.join(full_plugin_name, Pathname.new(target_entry).relative_path_from(Pathname.new(@target_path)))}" end end end From cd30aa94a895ee95353fc3d68a08cf51b5db51c0 Mon Sep 17 00:00:00 2001 From: Philippe Weber Date: Tue, 24 May 2016 23:47:27 +0200 Subject: [PATCH 125/632] use new event api in generator filter template Fixes #5355 --- .../templates/filter-plugin/lib/logstash/filters/example.rb.erb | 2 +- .../templates/filter-plugin/spec/filters/example_spec.rb.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pluginmanager/templates/filter-plugin/lib/logstash/filters/example.rb.erb b/lib/pluginmanager/templates/filter-plugin/lib/logstash/filters/example.rb.erb index a16ef0ba736..ca5d9f7ca3b 100644 --- a/lib/pluginmanager/templates/filter-plugin/lib/logstash/filters/example.rb.erb +++ b/lib/pluginmanager/templates/filter-plugin/lib/logstash/filters/example.rb.erb @@ -34,7 +34,7 @@ class LogStash::Filters::<%= classify(plugin_name) %> < LogStash::Filters::Base if @message # Replace the event message with our message as configured in the # config file. - event["message"] = @message + event.set("message", @message) end # filter_matched should go in the last line of our successful code diff --git a/lib/pluginmanager/templates/filter-plugin/spec/filters/example_spec.rb.erb b/lib/pluginmanager/templates/filter-plugin/spec/filters/example_spec.rb.erb index ab4f7999377..5dceafe7fc4 100644 --- a/lib/pluginmanager/templates/filter-plugin/spec/filters/example_spec.rb.erb +++ b/lib/pluginmanager/templates/filter-plugin/spec/filters/example_spec.rb.erb @@ -15,7 +15,7 @@ describe LogStash::Filters::<%= classify(plugin_name) %> do sample("message" => "some text") do expect(subject).to include("message") - expect(subject['message']).to eq('Hello World') + expect(subject.get('message')).to eq('Hello World') end end end From f2cf64326ada27c51e1bb0405dad2901e5f536d2 Mon Sep 17 00:00:00 2001 From: Philippe Weber Date: Tue, 24 May 2016 23:47:51 +0200 Subject: [PATCH 126/632] fix config_name for generated input plugin Fixes #5355 --- .../templates/input-plugin/lib/logstash/inputs/example.rb.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pluginmanager/templates/input-plugin/lib/logstash/inputs/example.rb.erb b/lib/pluginmanager/templates/input-plugin/lib/logstash/inputs/example.rb.erb index 5a7707c4717..176467ccb5c 100644 --- a/lib/pluginmanager/templates/input-plugin/lib/logstash/inputs/example.rb.erb +++ b/lib/pluginmanager/templates/input-plugin/lib/logstash/inputs/example.rb.erb @@ -9,7 +9,7 @@ require "socket" # for Socket.gethostname # This plugin is intented only as an example. class LogStash::Inputs::<%= classify(plugin_name) %> < LogStash::Inputs::Base - config_name "<%= @lugin_name %>" + config_name "<%= @plugin_name %>" # If undefined, Logstash will complain, even if codec is unused. default :codec, "plain" From e40ecbb6b8a083496e547b93e1901a4c7ea4c84c Mon Sep 17 00:00:00 2001 From: Aaron Mildenstein Date: Mon, 9 May 2016 09:55:03 -0600 Subject: [PATCH 127/632] Update existing packaging to use /usr/lib/logstash Update after-install scripts Use /usr/lib/logstash instead of /opt/logstash More revisions. Using `/usr/share/logstash` instead of `/usr/lib/logstash` Track these new files More work in progress. Proper arg parsing obtained WIP: Use jvm.options like ES Remove facter dependency Due to an update from @jordansissel on pleaserun, facter is no longer necessary Revert Gemfile to proper version Latest work in progress. I added a simple test to logstash.lib.sh to catch empty strings in java options. Added `startup.options`, and touched up `jvm.options` Edited the package scripts to make things play nice with new paths. Tweaked `system-install` to allow users to provide their own `startup.options` file. Patch up merge failure Changes to work with the new logstash.yml Add fpm dependency (build fails without it) Fix missing gems in Gemfile Don't know how these got lost Use /etc/logstash for configuration in packages Update the instructions/documentation for... ...startup.options Merging proposed changes Remove mustache and clamp They're covered by pleaserun anyway Prune config dir from /usr/share/logstash... ...but only when using RPM/DEB packages Fixes #5341 --- Gemfile | 1 + bin/logstash | 2 +- bin/logstash.lib.sh | 64 +++++----- bin/system-install | 41 +++++++ config/jvm.options | 74 ++++++++++++ config/startup.options | 52 ++++++++ lib/systeminstall/pleasewrap.rb | 12 ++ pkg/centos/after-install.sh | 5 +- pkg/centos/before-install.sh | 2 +- pkg/centos/before-remove.sh | 30 ++++- pkg/debian/after-install.sh | 3 +- pkg/debian/before-install.sh | 2 +- pkg/debian/before-remove.sh | 31 ++++- pkg/jvm.options | 74 ++++++++++++ pkg/logstash.default | 41 ------- pkg/logstash.sysv | 207 -------------------------------- pkg/logstash.sysv.debian | 181 ---------------------------- pkg/logstash.sysv.redhat | 132 -------------------- pkg/logstash.upstart.ubuntu | 48 -------- pkg/logstash.yml | 106 ++++++++++++++++ pkg/startup.options | 52 ++++++++ pkg/ubuntu/after-install.sh | 3 +- pkg/ubuntu/before-install.sh | 2 +- pkg/ubuntu/before-remove.sh | 31 ++++- rakelib/artifacts.rake | 41 ++++--- 25 files changed, 562 insertions(+), 675 deletions(-) create mode 100755 bin/system-install create mode 100644 config/jvm.options create mode 100644 config/startup.options create mode 100755 lib/systeminstall/pleasewrap.rb create mode 100644 pkg/jvm.options delete mode 100644 pkg/logstash.default delete mode 100755 pkg/logstash.sysv delete mode 100644 pkg/logstash.sysv.debian delete mode 100755 pkg/logstash.sysv.redhat delete mode 100644 pkg/logstash.upstart.ubuntu create mode 100644 pkg/logstash.yml create mode 100644 pkg/startup.options diff --git a/Gemfile b/Gemfile index 79c9f2af4a2..f4aab97ef6c 100644 --- a/Gemfile +++ b/Gemfile @@ -23,3 +23,4 @@ gem "rubyzip", "~> 1.1.7", :group => :build gem "gems", "~> 0.8.3", :group => :build gem "rack-test", :require => "rack/test", :group => :development gem "flores", "~> 0.0.6", :group => :development +gem "pleaserun" diff --git a/bin/logstash b/bin/logstash index 978bc8e112b..7ddc8bb568f 100755 --- a/bin/logstash +++ b/bin/logstash @@ -9,7 +9,7 @@ # See 'bin/logstash help' for a list of commands. # # Supported environment variables: -# LS_HEAP_SIZE="xxx" size for the -Xmx${LS_HEAP_SIZE} maximum Java heap size option, default is "1g" +# LS_JVM_OPTS="xxx" path to file with JVM options # LS_JAVA_OPTS="xxx" to append extra options to the defaults JAVA_OPTS provided by logstash # JAVA_OPTS="xxx" to *completely override* the defauls set of JAVA_OPTS provided by logstash # diff --git a/bin/logstash.lib.sh b/bin/logstash.lib.sh index c2058e5d5c7..55c4c911824 100755 --- a/bin/logstash.lib.sh +++ b/bin/logstash.lib.sh @@ -26,8 +26,11 @@ fi LOGSTASH_HOME=$(cd `dirname $SOURCEPATH`/..; pwd) export LOGSTASH_HOME -# Defaults you can override with environment variables -LS_HEAP_SIZE="${LS_HEAP_SIZE:=1g}" +parse_jvm_options() { + if [ -f "$1" ]; then + echo "$(grep "^-" "$1" | tr '\n' ' ')" + fi +} setup_java() { if [ -z "$JAVACMD" ] ; then @@ -50,21 +53,27 @@ setup_java() { if [ "$JAVA_OPTS" ] ; then echo "WARNING: Default JAVA_OPTS will be overridden by the JAVA_OPTS defined in the environment. Environment JAVA_OPTS are $JAVA_OPTS" 1>&2 - else - # There are no JAVA_OPTS set from the client, we set a predefined - # set of options that think are good in general - JAVA_OPTS="-XX:+UseParNewGC" - JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC" - JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true" + fi + + # Set a default GC log file for use by jvm.options _before_ it's called. + if [ -z "$LS_GC_LOG_FILE" ] ; then + LS_GC_LOG_FILE="./logstash-gc.log" + fi - JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=75" - JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly" - # Causes the JVM to dump its heap on OutOfMemory. - JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError" - # The path to the heap dump location - # This variable needs to be isolated since it may contain spaces - HEAP_DUMP_PATH="-XX:HeapDumpPath=${LOGSTASH_HOME}/heapdump.hprof" + # Set the initial JVM options from the jvm.options file. Look in + # /etc/logstash first, and break if that file is found readable there. + if [ -z "$LS_JVM_OPTS" ]; then + for jvm_options in /etc/logstash/jvm.options \ + "$LOGSTASH_HOME"/config/jvm.options; + do + if [ -r "$jvm_options" ]; then + LS_JVM_OPTS=$jvm_options + break + fi + done fi + # use the defaults, first, then override with anything provided + LS_JAVA_OPTS="$(parse_jvm_options "$LS_JVM_OPTS") $LS_JAVA_OPTS" if [ "$LS_JAVA_OPTS" ] ; then # The client set the variable LS_JAVA_OPTS, choosing his own @@ -72,23 +81,6 @@ setup_java() { JAVA_OPTS="$JAVA_OPTS $LS_JAVA_OPTS" fi - if [ "$LS_HEAP_SIZE" ] ; then - JAVA_OPTS="$JAVA_OPTS -Xmx${LS_HEAP_SIZE}" - fi - - if [ "$LS_USE_GC_LOGGING" ] ; then - if [ -z "$LS_GC_LOG_FILE" ] ; then - LS_GC_LOG_FILE="./logstash-gc.log" - fi - JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails" - JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps" - JAVA_OPTS="$JAVA_OPTS -XX:+PrintClassHistogram" - JAVA_OPTS="$JAVA_OPTS -XX:+PrintTenuringDistribution" - JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCApplicationStoppedTime" - JAVA_OPTS="$JAVA_OPTS -Xloggc:${LS_GC_LOG_FILE}" - echo "Writing garbage collection logs to ${LS_GC_LOG_FILE}" - fi - export JAVACMD export JAVA_OPTS } @@ -140,7 +132,9 @@ setup_ruby() { jruby_opts() { printf "%s" "--1.9" for i in $JAVA_OPTS ; do - printf "%s" " -J$i" + if [ -z "$i" ]; then + printf "%s" " -J$i" + fi done } @@ -179,8 +173,8 @@ ruby_exec() { # $VENDORED_JRUBY is non-empty so use the vendored JRuby if [ "$DEBUG" ] ; then - echo "DEBUG: exec ${JRUBY_BIN} $(jruby_opts) "-J$HEAP_DUMP_PATH" $@" + echo "DEBUG: exec ${JRUBY_BIN} $(jruby_opts) $@" fi - exec "${JRUBY_BIN}" $(jruby_opts) "-J$HEAP_DUMP_PATH" "$@" + exec "${JRUBY_BIN}" $(jruby_opts) "$@" fi } diff --git a/bin/system-install b/bin/system-install new file mode 100755 index 00000000000..5790a5a41e8 --- /dev/null +++ b/bin/system-install @@ -0,0 +1,41 @@ +#!/bin/bash + +unset CDPATH +. "$(cd `dirname $0`/..; pwd)/bin/logstash.lib.sh" +setup + +if [ -z "$1" ]; then + [ -r ${LOGSTASH_HOME}/config/startup.options ] && . ${LOGSTASH_HOME}/config/startup.options + [ -r /etc/logstash/startup.options ] && . /etc/logstash/startup.options +else + if [ -r $1 ]; then + echo "Using provided startup.options file: ${1}" + . $1 + else + echo "$1 is not a file path" + fi +fi + +# bin/logstash-plugin is a short lived ruby script thus we can use aggressive "faster starting JRuby options" +# see https://github.com/jruby/jruby/wiki/Improving-startup-time +export JRUBY_OPTS="$JRUBY_OPTS -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -X-C -Xcompile.invokedynamic=false" + +tempfile=$(mktemp) +if [ "x${PRESTART}" == "x" ]; then + opts=("--log" "$tempfile" "--overwrite" "--install" "--name" "${SERVICE_NAME}" "--user" "${LS_USER}" "--group" "${LS_GROUP}" "--description" "${SERVICE_DESCRIPTION}" "--nice" "${LS_NICE}" "--limit-open-files" "${LS_OPEN_FILES}") +else + opts=("--log" "$tempfile" "--overwrite" "--install" "--name" "${SERVICE_NAME}" "--user" "${LS_USER}" "--group" "${LS_GROUP}" "--description" "${SERVICE_DESCRIPTION}" "--nice" "${LS_NICE}" "--limit-open-files" "${LS_OPEN_FILES}" "--prestart" "${PRESTART}") +fi + +program="$(cd `dirname $0`/..; pwd)/bin/logstash" + +$(ruby_exec "${LOGSTASH_HOME}/lib/systeminstall/pleasewrap.rb" "${opts[@]}" ${program} ${LS_OPTS}) +exit_code=$? + +if [ $exit_code -ne 0 ]; then + cat $tempfile + echo "Unable to install system startup script for Logstash." +else + echo "Successfully created system startup script for Logstash" +fi +rm $tempfile diff --git a/config/jvm.options b/config/jvm.options new file mode 100644 index 00000000000..b50648b2f85 --- /dev/null +++ b/config/jvm.options @@ -0,0 +1,74 @@ +## JVM configuration + +# Xms represents the initial size of total heap space +# Xmx represents the maximum size of total heap space + +-Xms256m +-Xmx1g + +################################################################ +## Expert settings +################################################################ +## +## All settings below this section are considered +## expert settings. Don't tamper with them unless +## you understand what you are doing +## +################################################################ + +## GC configuration +-XX:+UseParNewGC +-XX:+UseConcMarkSweepGC +-XX:CMSInitiatingOccupancyFraction=75 +-XX:+UseCMSInitiatingOccupancyOnly + +## optimizations + +# disable calls to System#gc +-XX:+DisableExplicitGC + +## Locale +# Set the locale language +#-Duser.language=en + +# Set the locale country +#-Duser.country=US + +# Set the locale variant, if any +#-Duser.variant= + +## basic + +# set the I/O temp directory +-Djava.io.tmpdir=$HOME + +# set to headless, just in case +-Djava.awt.headless=true + +# ensure UTF-8 encoding by default (e.g. filenames) +-Dfile.encoding=UTF-8 + +# use our provided JNA always versus the system one +#-Djna.nosys=true + +## heap dumps + +# generate a heap dump when an allocation from the Java heap fails +# heap dumps are created in the working directory of the JVM +-XX:+HeapDumpOnOutOfMemoryError + +# specify an alternative path for heap dumps +# ensure the directory exists and has sufficient space +#-XX:HeapDumpPath=${LOGSTASH_HOME}/heapdump.hprof + +## GC logging +#-XX:+PrintGCDetails +#-XX:+PrintGCTimeStamps +#-XX:+PrintGCDateStamps +#-XX:+PrintClassHistogram +#-XX:+PrintTenuringDistribution +#-XX:+PrintGCApplicationStoppedTime + +# log GC status to a file with time stamps +# ensure the directory exists +#-Xloggc:${LS_GC_LOG_FILE} diff --git a/config/startup.options b/config/startup.options new file mode 100644 index 00000000000..9d35f798dcd --- /dev/null +++ b/config/startup.options @@ -0,0 +1,52 @@ +################################################################################ +# These settings are ONLY used by $LS_HOME/bin/system-install to create a custom +# startup script for Logstash. It should automagically use the init system +# (systemd, upstart, sysv, etc.) that your Linux distribution uses. +# +# After changing anything here, you need to re-run $LS_HOME/bin/system-install +# as root to push the changes to the init script. +################################################################################ + +# Override Java location +JAVACMD=/usr/bin/java + +# Set a home directory +LS_HOME=/usr/share/logstash + +# logstash settings directory, the path which contains logstash.yml +LS_SETTINGS_DIR="${LS_HOME}/config" + +# Arguments to pass to logstash +LS_OPTS="--path.settings ${LS_SETTINGS_DIR}" + +# Arguments to pass to java +LS_JAVA_OPTS="" + +# pidfiles aren't used the same way for upstart and systemd; this is for sysv users. +LS_PIDFILE=/var/run/logstash.pid + +# user and group id to be invoked as +LS_USER=logstash +LS_GROUP=logstash + +# Enable GC logging by uncommenting the appropriate lines in the GC logging +# section in jvm.options +LS_GC_LOG_FILE=/var/log/logstash/gc.log + +# Open file limit +LS_OPEN_FILES=16384 + +# Nice level +LS_NICE=19 + +# Change these to have the init script named and described differently +# This is useful when running multiple instances of Logstash on the same +# physical box or vm +SERVICE_NAME="logstash" +SERVICE_DESCRIPTION="logstash" + +# If you need to run a command or script before launching Logstash, put it +# between the lines beginning with `read` and `EOM`, and uncomment those lines. +### +## read -r -d '' PRESTART << EOM +## EOM diff --git a/lib/systeminstall/pleasewrap.rb b/lib/systeminstall/pleasewrap.rb new file mode 100755 index 00000000000..f7ee00bd447 --- /dev/null +++ b/lib/systeminstall/pleasewrap.rb @@ -0,0 +1,12 @@ +# encoding: utf-8 +$LOAD_PATH.unshift(File.expand_path(File.join(__FILE__, "..", ".."))) + +require "bootstrap/environment" + +ENV["GEM_HOME"] = ENV["GEM_PATH"] = LogStash::Environment.logstash_gem_home +Gem.use_paths(LogStash::Environment.logstash_gem_home) + +#libdir = File.expand_path("../lib", File.dirname(__FILE__)) +#$LOAD_PATH << libdir if File.exist?(File.join(libdir, "pleaserun", "cli.rb")) +require "pleaserun/cli" +exit(PleaseRun::CLI.run || 0) diff --git a/pkg/centos/after-install.sh b/pkg/centos/after-install.sh index 224904e4b32..ed62ee57903 100644 --- a/pkg/centos/after-install.sh +++ b/pkg/centos/after-install.sh @@ -1,6 +1,7 @@ -/sbin/chkconfig --add logstash +# /sbin/chkconfig --add logstash -chown -R logstash:logstash /opt/logstash +chown -R logstash:logstash /usr/share/logstash chown logstash /var/log/logstash chown logstash:logstash /var/lib/logstash chmod 0644 /etc/logrotate.d/logstash +/usr/share/logstash/bin/system-install /etc/logstash/startup.options diff --git a/pkg/centos/before-install.sh b/pkg/centos/before-install.sh index 5a852488ff3..78fc0b77d49 100644 --- a/pkg/centos/before-install.sh +++ b/pkg/centos/before-install.sh @@ -5,6 +5,6 @@ fi # create logstash user if ! getent passwd logstash >/dev/null; then - useradd -r -g logstash -d /opt/logstash \ + useradd -r -g logstash -d /usr/share/logstash \ -s /sbin/nologin -c "logstash" logstash fi diff --git a/pkg/centos/before-remove.sh b/pkg/centos/before-remove.sh index 5109888475f..6687ee896e5 100644 --- a/pkg/centos/before-remove.sh +++ b/pkg/centos/before-remove.sh @@ -1,6 +1,32 @@ +# CentOS/RHEL and SuSE if [ $1 -eq 0 ]; then - /sbin/service logstash stop >/dev/null 2>&1 || true - /sbin/chkconfig --del logstash + # Upstart + if [ -r "/etc/init/logstash.conf" ]; then + if [ -f "/sbin/stop" ]; then + /sbin/stop logstash >/dev/null 2>&1 || true + else + /sbin/service logstash stop >/dev/null 2>&1 || true + fi + if [ -f "/etc/init/logstash.conf" ]; then + rm /etc/init/logstash.conf + fi + # SYSV + elif [ -r "/etc/init.d/logstash" ]; then + /sbin/chkconfig --del logstash + if [ -f "/etc/init.d/logstash" ]; then + rm /etc/init.d/logstash + fi + # systemd + else + systemctl stop logstash >/dev/null 2>&1 || true + if [ -f "/etc/systemd/system/logstash-prestart.sh" ]; then + rm /etc/systemd/system/logstash-prestart.sh + fi + + if [ -f "/etc/systemd/system/logstash.service" ]; then + rm /etc/systemd/system/logstash.service + fi + fi if getent passwd logstash >/dev/null ; then userdel logstash fi diff --git a/pkg/debian/after-install.sh b/pkg/debian/after-install.sh index 18b4ea8c32c..21b69ac7142 100644 --- a/pkg/debian/after-install.sh +++ b/pkg/debian/after-install.sh @@ -1,7 +1,8 @@ #!/bin/sh -chown -R logstash:logstash /opt/logstash +chown -R logstash:logstash /usr/share/logstash chown logstash /var/log/logstash chown logstash:logstash /var/lib/logstash chmod 755 /etc/logstash chmod 0644 /etc/logrotate.d/logstash +/usr/share/logstash/bin/system-install /etc/logstash/startup.options diff --git a/pkg/debian/before-install.sh b/pkg/debian/before-install.sh index 45ef4e40f1f..03cf86125a9 100644 --- a/pkg/debian/before-install.sh +++ b/pkg/debian/before-install.sh @@ -7,6 +7,6 @@ fi # create logstash user if ! getent passwd logstash >/dev/null; then - useradd -M -r -g logstash -d /var/lib/logstash \ + useradd -M -r -g logstash -d /usr/share/logstash \ -s /usr/sbin/nologin -c "LogStash Service User" logstash fi diff --git a/pkg/debian/before-remove.sh b/pkg/debian/before-remove.sh index a3f911e60ea..16347f266fc 100644 --- a/pkg/debian/before-remove.sh +++ b/pkg/debian/before-remove.sh @@ -1,13 +1,38 @@ #!/bin/sh - +# Debian if [ $1 = "remove" ]; then - service logstash stop >/dev/null 2>&1 || true + # Upstart + if [ -r "/etc/init/logstash.conf" ]; then + if [ -f "/sbin/stop" ]; then + /sbin/stop logstash >/dev/null 2>&1 || true + else + /usr/sbin/service logstash stop >/dev/null 2>&1 || true + fi + if [ -f "/etc/init/logstash.conf" ]; then + rm /etc/init/logstash.conf + fi + # SYSV + elif [ -r "/etc/init.d/logstash" ]; then + /sbin/chkconfig --del logstash + if [ -f "/etc/init.d/logstash" ]; then + rm /etc/init.d/logstash + fi + # systemd + else + systemctl stop logstash >/dev/null 2>&1 || true + if [ -f "/etc/systemd/system/logstash-prestart.sh" ]; then + rm /etc/systemd/system/logstash-prestart.sh + fi + if [ -f "/etc/systemd/system/logstash.service" ]; then + rm /etc/systemd/system/logstash.service + fi + fi if getent passwd logstash >/dev/null ; then userdel logstash fi - if getent group logstash >/dev/null ; then + if getent group logstash > /dev/null ; then groupdel logstash fi fi diff --git a/pkg/jvm.options b/pkg/jvm.options new file mode 100644 index 00000000000..b22cb35ea73 --- /dev/null +++ b/pkg/jvm.options @@ -0,0 +1,74 @@ +## JVM configuration + +# Xms represents the initial size of total heap space +# Xmx represents the maximum size of total heap space + +-Xms256m +-Xmx1g + +################################################################ +## Expert settings +################################################################ +## +## All settings below this section are considered +## expert settings. Don't tamper with them unless +## you understand what you are doing +## +################################################################ + +## GC configuration +-XX:+UseParNewGC +-XX:+UseConcMarkSweepGC +-XX:CMSInitiatingOccupancyFraction=75 +-XX:+UseCMSInitiatingOccupancyOnly + +## optimizations + +# disable calls to System#gc +-XX:+DisableExplicitGC + +## locale +# Set the locale language +#-Duser.language=en + +# Set the locale country +#-Duser.country=US + +# Set the locale variant, if any +#-Duser.variant= + +## basic + +# set the I/O temp directory +-Djava.io.tmpdir=$HOME + +# set to headless, just in case +-Djava.awt.headless=true + +# ensure UTF-8 encoding by default (e.g. filenames) +-Dfile.encoding=UTF-8 + +# use our provided JNA always versus the system one +#-Djna.nosys=true + +## heap dumps + +# generate a heap dump when an allocation from the Java heap fails +# heap dumps are created in the working directory of the JVM +-XX:+HeapDumpOnOutOfMemoryError + +# specify an alternative path for heap dumps +# ensure the directory exists and has sufficient space +#-XX:HeapDumpPath=${LOGSTASH_HOME}/heapdump.hprof + +## GC logging +#-XX:+PrintGCDetails +#-XX:+PrintGCTimeStamps +#-XX:+PrintGCDateStamps +#-XX:+PrintClassHistogram +#-XX:+PrintTenuringDistribution +#-XX:+PrintGCApplicationStoppedTime + +# log GC status to a file with time stamps +# ensure the directory exists +#-Xloggc:${LS_GC_LOG_FILE} diff --git a/pkg/logstash.default b/pkg/logstash.default deleted file mode 100644 index a1874d0501c..00000000000 --- a/pkg/logstash.default +++ /dev/null @@ -1,41 +0,0 @@ -############################### -# Default settings for logstash -############################### - -# Override Java location -#JAVACMD=/usr/bin/java - -# Set a home directory -#LS_HOME=/var/lib/logstash - -# Arguments to pass to logstash -#LS_OPTS="" - -# Arguments to pass to java -#LS_HEAP_SIZE="1g" -#LS_JAVA_OPTS="-Djava.io.tmpdir=$HOME" - -# pidfiles aren't used for upstart; this is for sysv users. -#LS_PIDFILE=/var/run/logstash.pid - -# user id to be invoked as; for upstart: edit /etc/init/logstash.conf -#LS_USER=logstash - -# logstash logging -#LS_LOG_FILE=/var/log/logstash/logstash.log -#LS_USE_GC_LOGGING="true" -#LS_GC_LOG_FILE=/var/log/logstash/gc.log - -# logstash configuration directory -#LS_CONF_DIR=/etc/logstash/conf.d - -# Open file limit; cannot be overridden in upstart -#LS_OPEN_FILES=16384 - -# Nice level -#LS_NICE=19 - -# If this is set to 1, then when `stop` is called, if the process has -# not exited within a reasonable time, SIGKILL will be sent next. -# The default behavior is to simply log a message "program stop failed; still running" -#KILL_ON_STOP_TIMEOUT=0 diff --git a/pkg/logstash.sysv b/pkg/logstash.sysv deleted file mode 100755 index 80d13322bd6..00000000000 --- a/pkg/logstash.sysv +++ /dev/null @@ -1,207 +0,0 @@ -#!/bin/sh -# Init script for logstash -# Maintained by Elasticsearch -# Generated by pleaserun. -# Implemented based on LSB Core 3.1: -# * Sections: 20.2, 20.3 -# -### BEGIN INIT INFO -# Provides: logstash -# Required-Start: $remote_fs $syslog -# Required-Stop: $remote_fs $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: -# Description: Starts Logstash as a daemon. -### END INIT INFO - -PATH=/sbin:/usr/sbin:/bin:/usr/bin -export PATH - -if [ `id -u` -ne 0 ]; then - echo "You need root privileges to run this script" - exit 1 -fi - -name=logstash -pidfile="/var/run/$name.pid" - -LS_USER=logstash -LS_GROUP=logstash -LS_HOME=/var/lib/logstash -LS_HEAP_SIZE="1g" -LS_LOG_DIR=/var/log/logstash -LS_LOG_FILE="${LS_LOG_DIR}/$name.log" -LS_CONF_DIR=/etc/logstash/conf.d -LS_OPEN_FILES=16384 -LS_NICE=19 -KILL_ON_STOP_TIMEOUT=0 -LS_OPTS="" - - -[ -r /etc/default/$name ] && . /etc/default/$name -[ -r /etc/sysconfig/$name ] && . /etc/sysconfig/$name - -program=/opt/logstash/bin/logstash -args="-f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}" - -quiet() { - "$@" > /dev/null 2>&1 - return $? -} - -start() { - - LS_JAVA_OPTS="${LS_JAVA_OPTS} -Djava.io.tmpdir=${LS_HOME}" - HOME=${LS_HOME} - export PATH HOME LS_HEAP_SIZE LS_JAVA_OPTS LS_USE_GC_LOGGING LS_GC_LOG_FILE - - # chown doesn't grab the suplimental groups when setting the user:group - so we have to do it for it. - # Boy, I hope we're root here. - SGROUPS=$(id -Gn "$LS_USER" | tr " " "," | sed 's/,$//'; echo '') - - if [ ! -z $SGROUPS ] - then - EXTRA_GROUPS="--groups $SGROUPS" - fi - - # set ulimit as (root, presumably) first, before we drop privileges - ulimit -n ${LS_OPEN_FILES} - - # Run the program! - nice -n ${LS_NICE} chroot --userspec $LS_USER:$LS_GROUP $EXTRA_GROUPS / sh -c " - cd $LS_HOME - ulimit -n ${LS_OPEN_FILES} - exec \"$program\" $args - " > "${LS_LOG_DIR}/$name.stdout" 2> "${LS_LOG_DIR}/$name.err" & - - # Generate the pidfile from here. If we instead made the forked process - # generate it there will be a race condition between the pidfile writing - # and a process possibly asking for status. - echo $! > $pidfile - - echo "$name started." - return 0 -} - -stop() { - # Try a few times to kill TERM the program - if status ; then - pid=`cat "$pidfile"` - echo "Killing $name (pid $pid) with SIGTERM" - kill -TERM $pid - # Wait for it to exit. - for i in 1 2 3 4 5 6 7 8 9 ; do - echo "Waiting $name (pid $pid) to die..." - status || break - sleep 1 - done - if status ; then - if [ "$KILL_ON_STOP_TIMEOUT" = 1 ] ; then - echo "Timeout reached. Killing $name (pid $pid) with SIGKILL. This may result in data loss." - kill -KILL $pid - echo "$name killed with SIGKILL." - else - echo "$name stop failed; still running." - return 1 # stop timed out and not forced - fi - else - echo "$name stopped." - fi - fi -} - -status() { - if [ -f "$pidfile" ] ; then - pid=`cat "$pidfile"` - if kill -0 $pid > /dev/null 2> /dev/null ; then - # process by this pid is running. - # It may not be our pid, but that's what you get with just pidfiles. - # TODO(sissel): Check if this process seems to be the same as the one we - # expect. It'd be nice to use flock here, but flock uses fork, not exec, - # so it makes it quite awkward to use in this case. - return 0 - else - return 2 # program is dead but pid file exists - fi - else - return 3 # program is not running - fi -} - -reload() { - if status ; then - kill -HUP `cat "$pidfile"` - fi -} - -force_stop() { - if status ; then - stop - status && kill -KILL `cat "$pidfile"` - fi -} - -configtest() { - # Check if a config file exists - if [ ! "$(ls -A ${LS_CONF_DIR}/* 2> /dev/null)" ]; then - echo "There aren't any configuration files in ${LS_CONF_DIR}" - return 1 - fi - - HOME=${LS_HOME} - export PATH HOME - - test_args="--configtest -f ${LS_CONF_DIR} ${LS_OPTS}" - $program ${test_args} - [ $? -eq 0 ] && return 0 - # Program not configured - return 6 -} - -case "$1" in - start) - status - code=$? - if [ $code -eq 0 ]; then - echo "$name is already running" - else - start - code=$? - fi - exit $code - ;; - stop) stop ;; - force-stop) force_stop ;; - status) - status - code=$? - if [ $code -eq 0 ] ; then - echo "$name is running" - else - echo "$name is not running" - fi - exit $code - ;; - reload) reload ;; - restart) - - quiet configtest - RET=$? - if [ ${RET} -ne 0 ]; then - echo "Configuration error. Not restarting. Re-run with configtest parameter for details" - exit ${RET} - fi - stop && start - ;; - configtest) - configtest - exit $? - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|force-stop|status|reload|restart|configtest}" >&2 - exit 3 - ;; -esac - -exit $? diff --git a/pkg/logstash.sysv.debian b/pkg/logstash.sysv.debian deleted file mode 100644 index ee23acd2c3e..00000000000 --- a/pkg/logstash.sysv.debian +++ /dev/null @@ -1,181 +0,0 @@ -#!/bin/bash -# -# /etc/init.d/logstash -- startup script for LogStash. -# -### BEGIN INIT INFO -# Provides: logstash -# Required-Start: $all -# Required-Stop: $all -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Starts logstash -# Description: Starts logstash using start-stop-daemon -### END INIT INFO - -set -e - -NAME=logstash -DESC="Logstash Daemon" -DEFAULT=/etc/default/$NAME - -if [ `id -u` -ne 0 ]; then - echo "You need root privileges to run this script" - exit 1 -fi - -. /lib/lsb/init-functions - -if [ -r /etc/default/rcS ]; then - . /etc/default/rcS -fi - -# The following variables can be overwritten in $DEFAULT -PATH=/bin:/usr/bin:/sbin:/usr/sbin - -# See contents of file named in $DEFAULT for comments -LS_USER=logstash -LS_GROUP=logstash -LS_HOME=/var/lib/logstash -LS_HEAP_SIZE="1g" -LS_LOG_FILE=/var/log/logstash/$NAME.log -LS_CONF_DIR=/etc/logstash/conf.d -LS_OPEN_FILES=16384 -LS_NICE=19 -LS_OPTS="" -LS_PIDFILE=/var/run/$NAME.pid - -# End of variables that can be overwritten in $DEFAULT - -# overwrite settings from default file -if [ -f "$DEFAULT" ]; then - . "$DEFAULT" -fi - -# Define other required variables -PID_FILE=${LS_PIDFILE} -DAEMON=/opt/logstash/bin/logstash -DAEMON_OPTS="-f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}" - -# Check DAEMON exists -if ! test -e $DAEMON; then - log_failure_msg "Script $DAEMON doesn't exist" - exit 1 -fi - -case "$1" in - start) - if [ -z "$DAEMON" ]; then - log_failure_msg "no logstash script found - $DAEMON" - exit 1 - fi - - # Check if a config file exists - if [ ! "$(ls -A $LS_CONF_DIR/*.conf 2> /dev/null)" ]; then - log_failure_msg "There aren't any configuration files in $LS_CONF_DIR" - exit 1 - fi - - log_daemon_msg "Starting $DESC" - - # Parse the actual JAVACMD from the process' environment, we don't care about errors. - JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2) - if start-stop-daemon --test --start --pidfile "$PID_FILE" \ - --user "$LS_USER" --exec "$JAVA" \ - >/dev/null; then - # Prepare environment - HOME="${HOME:-$LS_HOME}" - LS_JAVA_OPTS="${LS_JAVA_OPTS} -Djava.io.tmpdir=${LS_HOME}" - ulimit -n ${LS_OPEN_FILES} - cd "${LS_HOME}" - export PATH HOME JAVACMD LS_HEAP_SIZE LS_JAVA_OPTS LS_USE_GC_LOGGING LS_GC_LOG_FILE - - # Start Daemon - start-stop-daemon --start -b --user "$LS_USER" -c "$LS_USER":"$LS_GROUP" \ - -d "$LS_HOME" --nicelevel "$LS_NICE" --pidfile "$PID_FILE" --make-pidfile \ - --exec $DAEMON -- $DAEMON_OPTS - - sleep 1 - - # Parse the actual JAVACMD from the process' environment, we don't care about errors. - JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2) - if start-stop-daemon --test --start --pidfile "$PID_FILE" \ - --user "$LS_USER" --exec "$JAVA" \ - >/dev/null; then - - if [ -f "$PID_FILE" ]; then - rm -f "$PID_FILE" - fi - - log_end_msg 1 - else - log_end_msg 0 - fi - else - log_progress_msg "(already running)" - log_end_msg 0 - fi - ;; - stop) - log_daemon_msg "Stopping $DESC" - - set +e - - if [ -f "$PID_FILE" ]; then - start-stop-daemon --stop --pidfile "$PID_FILE" \ - --user "$LS_USER" \ - --retry=TERM/20/KILL/5 >/dev/null - - if [ $? -eq 1 ]; then - log_progress_msg "$DESC is not running but pid file exists, cleaning up" - elif [ $? -eq 3 ]; then - PID="`cat $PID_FILE`" - log_failure_msg "Failed to stop $DESC (pid $PID)" - exit 1 - fi - - rm -f "$PID_FILE" - else - log_progress_msg "(not running)" - fi - - log_end_msg 0 - set -e - ;; - status) - set +e - - # Parse the actual JAVACMD from the process' environment, we don't care about errors. - JAVA=$(cat /proc/$(cat "${PID_FILE}" 2>/dev/null)/environ 2>/dev/null | grep -z ^JAVACMD= | cut -d= -f2) - start-stop-daemon --test --start --pidfile "$PID_FILE" \ - --user "$LS_USER" --exec "$JAVA" \ - >/dev/null 2>&1 - - if [ "$?" = "0" ]; then - if [ -f "$PID_FILE" ]; then - log_success_msg "$DESC is not running, but pid file exists." - exit 1 - else - log_success_msg "$DESC is not running." - exit 3 - fi - else - log_success_msg "$DESC is running with pid `cat $PID_FILE`" - fi - - set -e - ;; - restart|force-reload) - if [ -f "$PID_FILE" ]; then - $0 stop - sleep 1 - fi - - $0 start - ;; - *) - log_success_msg "Usage: $0 {start|stop|restart|force-reload|status}" - exit 1 - ;; -esac - -exit 0 diff --git a/pkg/logstash.sysv.redhat b/pkg/logstash.sysv.redhat deleted file mode 100755 index 3f312578253..00000000000 --- a/pkg/logstash.sysv.redhat +++ /dev/null @@ -1,132 +0,0 @@ -#! /bin/sh -# -# /etc/rc.d/init.d/logstash -# -# Starts Logstash as a daemon -# -# chkconfig: 2345 90 10 -# description: Starts Logstash as a daemon. - -### BEGIN INIT INFO -# Provides: logstash -# Required-Start: $local_fs $remote_fs -# Required-Stop: $local_fs $remote_fs -# Default-Start: 2 3 4 5 -# Default-Stop: S 0 1 6 -# Short-Description: Logstash -# Description: Starts Logstash as a daemon. -### END INIT INFO - -. /etc/rc.d/init.d/functions - -NAME=logstash -DESC="Logstash Daemon" -DEFAULT=/etc/sysconfig/$NAME - -if [ `id -u` -ne 0 ]; then - echo "You need root privileges to run this script" - exit 1 -fi - -# The following variables can be overwritten in $DEFAULT -PATH=/bin:/usr/bin:/sbin:/usr/sbin - -# See contents of file named in $DEFAULT for comments -LS_USER=logstash -LS_GROUP=logstash -LS_HOME=/var/lib/logstash -LS_HEAP_SIZE="1g" -LS_LOG_FILE=/var/log/logstash/$NAME.log -LS_CONF_DIR=/etc/logstash/conf.d -LS_OPEN_FILES=16384 -LS_NICE=19 -LS_OPTS="" -LS_PIDFILE=/var/run/$NAME/$NAME.pid - -# End of variables that can be overwritten in $DEFAULT - -if [ -f "$DEFAULT" ]; then - . "$DEFAULT" -fi - -# Define other required variables -PID_FILE=${LS_PIDFILE} - -DAEMON="/opt/logstash/bin/logstash" -DAEMON_OPTS="-f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}" - -# -# Function that starts the daemon/service -# -do_start() -{ - - if [ -z "$DAEMON" ]; then - echo "not found - $DAEMON" - exit 1 - fi - - if pidofproc -p "$PID_FILE" >/dev/null; then - exit 0 - fi - - # Prepare environment - HOME="${HOME:-$LS_HOME}" - LS_JAVA_OPTS="${LS_JAVA_OPTS} -Djava.io.tmpdir=${LS_HOME}" - ulimit -n ${LS_OPEN_FILES} - cd "${LS_HOME}" - export PATH HOME LS_HEAP_SIZE LS_JAVA_OPTS LS_USE_GC_LOGGING LS_GC_LOG_FILE - test -n "${JAVACMD}" && export JAVACMD - - nice -n ${LS_NICE} runuser -s /bin/sh -c "exec $DAEMON $DAEMON_OPTS" ${LS_USER} >> $LS_LOG_FILE 2>&1 < /dev/null & - - RETVAL=$? - local PID=$! - # runuser forks rather than execing our process. - usleep 500000 - JAVA_PID=$(ps axo ppid,pid | awk -v "ppid=$PID" '$1==ppid {print $2}') - PID=${JAVA_PID:-$PID} - echo $PID > $PID_FILE - [ "$PID" = "$JAVA_PID" ] && success -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - killproc -p $PID_FILE $DAEMON - RETVAL=$? - echo - [ $RETVAL = 0 ] && rm -f ${PID_FILE} -} - -case "$1" in - start) - echo -n "Starting $DESC: " - do_start - touch /var/run/logstash/$NAME - ;; - stop) - echo -n "Stopping $DESC: " - do_stop - rm /var/run/logstash/$NAME - ;; - restart|reload) - echo -n "Restarting $DESC: " - do_stop - do_start - ;; - status) - echo -n "$DESC" - status -p $PID_FILE - exit $? - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2 - exit 3 - ;; -esac - -echo -exit 0 diff --git a/pkg/logstash.upstart.ubuntu b/pkg/logstash.upstart.ubuntu deleted file mode 100644 index a734901fa59..00000000000 --- a/pkg/logstash.upstart.ubuntu +++ /dev/null @@ -1,48 +0,0 @@ -# logstash instance -# - -description "logstash" - -start on virtual-filesystems -stop on runlevel [06] - -# Respawn it if the process exits -respawn - -# We're setting high here, we'll re-limit below. -limit nofile 65550 65550 - -setuid logstash -setgid logstash - -# You need to chdir somewhere writable because logstash needs to unpack a few -# temporary files on startup. -console log -script - # Defaults - PATH=/bin:/usr/bin - LS_HOME=/var/lib/logstash - LS_HEAP_SIZE="1g" - LS_LOG_FILE=/var/log/logstash/logstash.log - LS_USE_GC_LOGGING="" - LS_GC_LOG_FILE="" - LS_CONF_DIR=/etc/logstash/conf.d - LS_OPEN_FILES=16384 - LS_NICE=19 - LS_OPTS="" - - # Override our defaults with user defaults: - [ -f /etc/default/logstash ] && . /etc/default/logstash - - HOME="${HOME:-$LS_HOME}" - LS_JAVA_OPTS="${LS_JAVA_OPTS} -Djava.io.tmpdir=${LS_HOME}" - # Reset filehandle limit - ulimit -n ${LS_OPEN_FILES} - cd "${LS_HOME}" - - # Export variables - export PATH HOME LS_HEAP_SIZE LS_JAVA_OPTS LS_USE_GC_LOGGING LS_GC_LOG_FILE - test -n "${JAVACMD}" && export JAVACMD - - exec nice -n ${LS_NICE} /opt/logstash/bin/logstash -f "${LS_CONF_DIR}" -l "${LS_LOG_FILE}" ${LS_OPTS} -end script diff --git a/pkg/logstash.yml b/pkg/logstash.yml new file mode 100644 index 00000000000..a04760246a6 --- /dev/null +++ b/pkg/logstash.yml @@ -0,0 +1,106 @@ +# Settings file in YAML +# +# Settings can be specified either in hierarchical form, e.g.: +# +# pipeline: +# batch: +# size: 125 +# delay: 5 +# +# Or as flat keys: +# +# pipeline.batch.size: 125 +# pipeline.batch.delay: 5 +# +# ------------ Node identity ------------ +# +# Use a descriptive name for the node: +# +# node.name: test +# +# If omitted the node name will default to the machine's host name +# +# ------------ Pipeline Settings -------------- +# +# Set the number of workers that will, in parallel, execute the filters+outputs +# stage of the pipeline. +# +# This defaults to half the number of the host's CPU cores. +# +# pipeline.workers: 2 +# +# How many workers should be used per output plugin instance +# +# pipeline.output.workers: 1 +# +# How many events to retrieve from inputs before sending to filters+workers +# +# pipeline.batch.size: 125 +# +# How long to wait before dispatching an undersized batch to filters+workers +# Value is in seconds. +# +# pipeline.batch.delay: 5 +# +# Force Logstash to exit during shutdown even if there are still inflight +# events in memory. By default, logstash will refuse to quit until all +# received events have been pushed to the outputs. +# +# WARNING: enabling this can lead to data loss during shutdown +# +# pipeline.unsafe_shutdown: false +# +# ------------ Pipeline Configuration Settings -------------- +# +# Where to fetch the pipeline configuration for the main pipeline +# +# path.config: +# +# Pipeline configuration string for the main pipeline +# +# config.string: +# +# At startup, test if the configuration is valid and exit (dry run) +# +# config.test_and_exit: false +# +# Periodically check if the configuration has changed and reload the pipeline +# This can also be triggered manually through the SIGHUP signal +# +# config.reload.automatic: false +# +# How often to check if the pipeline configuration has changed (in seconds) +# +# config.reload.interval: 3 +# +# Show fully compiled configuration as debug log message +# NOTE: --log.level must be 'debug' +# +# config.debug: false +# +# ------------ Metrics Settings -------------- +# +# Bind address for the metrics REST endpoint +# +# http.host: "127.0.0.1" +# +# Bind port for the metrics REST endpoint +# +# http.port: 9600 +# +# ------------ Debugging Settings -------------- +# +# Options for log.level: +# * warn => warn (default) +# * quiet => error +# * verbose => info +# * debug => debug +# +# log.level: warn +# log.format: plain (or 'json') +# path.log: +# +# ------------ Other Settings -------------- +# +# Where to find custom plugins +# path.plugins: [] diff --git a/pkg/startup.options b/pkg/startup.options new file mode 100644 index 00000000000..dcb850e66df --- /dev/null +++ b/pkg/startup.options @@ -0,0 +1,52 @@ +################################################################################ +# These settings are ONLY used by $LS_HOME/bin/system-install to create a custom +# startup script for Logstash. It should automagically use the init system +# (systemd, upstart, sysv, etc.) that your Linux distribution uses. +# +# After changing anything here, you need to re-run $LS_HOME/bin/system-install +# as root to push the changes to the init script. +################################################################################ + +# Override Java location +JAVACMD=/usr/bin/java + +# Set a home directory +LS_HOME=/usr/share/logstash + +# logstash settings directory, the path which contains logstash.yml +LS_SETTINGS_DIR=/etc/logstash + +# Arguments to pass to logstash +LS_OPTS="--path.settings ${LS_SETTINGS_DIR}" + +# Arguments to pass to java +LS_JAVA_OPTS="" + +# pidfiles aren't used the same way for upstart and systemd; this is for sysv users. +LS_PIDFILE=/var/run/logstash.pid + +# user and group id to be invoked as +LS_USER=logstash +LS_GROUP=logstash + +# Enable GC logging by uncommenting the appropriate lines in the GC logging +# section in jvm.options +LS_GC_LOG_FILE=/var/log/logstash/gc.log + +# Open file limit +LS_OPEN_FILES=16384 + +# Nice level +LS_NICE=19 + +# Change these to have the init script named and described differently +# This is useful when running multiple instances of Logstash on the same +# physical box or vm +SERVICE_NAME="logstash" +SERVICE_DESCRIPTION="logstash" + +# If you need to run a command or script before launching Logstash, put it +# between the lines beginning with `read` and `EOM`, and uncomment those lines. +### +## read -r -d '' PRESTART << EOM +## EOM diff --git a/pkg/ubuntu/after-install.sh b/pkg/ubuntu/after-install.sh index bcecadf8af7..794bb4d2cdc 100644 --- a/pkg/ubuntu/after-install.sh +++ b/pkg/ubuntu/after-install.sh @@ -1,6 +1,7 @@ #!/bin/sh -chown -R logstash:logstash /opt/logstash +chown -R logstash:logstash /usr/share/logstash chown logstash /var/log/logstash chown logstash:logstash /var/lib/logstash chmod 0644 /etc/logrotate.d/logstash +/usr/share/logstash/bin/system-install /etc/logstash/startup.options diff --git a/pkg/ubuntu/before-install.sh b/pkg/ubuntu/before-install.sh index 45ef4e40f1f..03cf86125a9 100644 --- a/pkg/ubuntu/before-install.sh +++ b/pkg/ubuntu/before-install.sh @@ -7,6 +7,6 @@ fi # create logstash user if ! getent passwd logstash >/dev/null; then - useradd -M -r -g logstash -d /var/lib/logstash \ + useradd -M -r -g logstash -d /usr/share/logstash \ -s /usr/sbin/nologin -c "LogStash Service User" logstash fi diff --git a/pkg/ubuntu/before-remove.sh b/pkg/ubuntu/before-remove.sh index a3f911e60ea..0384e74ffca 100644 --- a/pkg/ubuntu/before-remove.sh +++ b/pkg/ubuntu/before-remove.sh @@ -1,13 +1,38 @@ #!/bin/sh - +# Ubuntu if [ $1 = "remove" ]; then - service logstash stop >/dev/null 2>&1 || true + # Upstart + if [ -r "/etc/init/logstash.conf" ]; then + if [ -f "/sbin/stop" ]; then + /sbin/stop logstash >/dev/null 2>&1 || true + else + /usr/sbin/service logstash stop >/dev/null 2>&1 || true + fi + if [ -f "/etc/init/logstash.conf" ]; then + rm /etc/init/logstash.conf + fi + # SYSV + elif [ -r "/etc/init.d/logstash" ]; then + /sbin/chkconfig --del logstash + if [ -f "/etc/init.d/logstash" ]; then + rm /etc/init.d/logstash + fi + # systemd + else + systemctl stop logstash >/dev/null 2>&1 || true + if [ -f "/etc/systemd/system/logstash-prestart.sh" ]; then + rm /etc/systemd/system/logstash-prestart.sh + fi + if [ -f "/etc/systemd/system/logstash.service" ]; then + rm /etc/systemd/system/logstash.service + fi + fi if getent passwd logstash >/dev/null ; then userdel logstash fi - if getent group logstash >/dev/null ; then + if getent group logstash > /dev/null ; then groupdel logstash fi fi diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index b400940e185..1655302e4ac 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -9,11 +9,12 @@ namespace "artifact" do "NOTICE.TXT", "CONTRIBUTORS", "bin/**/*", + "config/**/*", "lib/bootstrap/**/*", "lib/pluginmanager/**/*", + "lib/systeminstall/**/*", "patterns/**/*", "vendor/??*/**/*", - "config/logstash.yml", # To include ruby-maven's hidden ".mvn" directory, we need to # do add the line below. This directory contains a file called # "extensions.xml", which loads the ruby DSL for POMs. @@ -207,7 +208,10 @@ namespace "artifact" do files.each do |path| next if File.directory?(path) - dir.input("#{path}=/opt/logstash/#{path}") + # Omit any config dir from /usr/share/logstash for packages, since we're + # using /etc/logstash below + next if path.start_with?("config/") + dir.input("#{path}=/usr/share/logstash/#{path}") end basedir = File.join(File.dirname(__FILE__), "..") @@ -231,15 +235,17 @@ namespace "artifact" do case platform when "redhat", "centos" - File.join(basedir, "pkg", "logrotate.conf").tap do |path| dir.input("#{path}=/etc/logrotate.d/logstash") end - File.join(basedir, "pkg", "logstash.default").tap do |path| - dir.input("#{path}=/etc/sysconfig/logstash") + File.join(basedir, "pkg", "startup.options").tap do |path| + dir.input("#{path}=/etc/logstash") + end + File.join(basedir, "pkg", "jvm.options").tap do |path| + dir.input("#{path}=/etc/logstash") end - File.join(basedir, "pkg", "logstash.sysv").tap do |path| - dir.input("#{path}=/etc/init.d/logstash") + File.join(basedir, "pkg", "logstash.yml").tap do |path| + dir.input("#{path}=/etc/logstash") end require "fpm/package/rpm" out = dir.convert(FPM::Package::RPM) @@ -248,15 +254,19 @@ namespace "artifact" do out.attributes[:rpm_user] = "root" out.attributes[:rpm_group] = "root" out.attributes[:rpm_os] = "linux" - out.config_files << "etc/sysconfig/logstash" out.config_files << "etc/logrotate.d/logstash" - out.config_files << "/etc/init.d/logstash" + out.config_files << "/etc/logstash/startup.options" + out.config_files << "/etc/logstash/jvm.options" + out.config_files << "/etc/logstash/logstash.yml" when "debian", "ubuntu" - File.join(basedir, "pkg", "logstash.default").tap do |path| - dir.input("#{path}=/etc/default/logstash") + File.join(basedir, "pkg", "startup.options").tap do |path| + dir.input("#{path}=/etc/logstash") + end + File.join(basedir, "pkg", "jvm.options").tap do |path| + dir.input("#{path}=/etc/logstash") end - File.join(basedir, "pkg", "logstash.sysv").tap do |path| - dir.input("#{path}=/etc/init.d/logstash") + File.join(basedir, "pkg", "logstash.yml").tap do |path| + dir.input("#{path}=/etc/logstash") end require "fpm/package/deb" out = dir.convert(FPM::Package::Deb) @@ -264,9 +274,10 @@ namespace "artifact" do out.attributes[:deb_user] = "root" out.attributes[:deb_group] = "root" out.attributes[:deb_suggests] = "java8-runtime-headless" - out.config_files << "/etc/default/logstash" out.config_files << "/etc/logrotate.d/logstash" - out.config_files << "/etc/init.d/logstash" + out.config_files << "/etc/logstash/startup.options" + out.config_files << "/etc/logstash/jvm.options" + out.config_files << "/etc/logstash/logstash.yml" end # Packaging install/removal scripts From 5e5c0c0844e1c4e833bf6bcc23ac588c2f4a1f63 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Thu, 19 May 2016 16:30:40 -0400 Subject: [PATCH 128/632] optimize Java Map initialization --- logstash-core-event-java/spec/event_spec.rb | 21 +++++++++++++++++++ .../logstash/ext/JrubyEventExtLibrary.java | 10 ++++----- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/logstash-core-event-java/spec/event_spec.rb b/logstash-core-event-java/spec/event_spec.rb index 8ccae4f6cf9..a70c2307aef 100644 --- a/logstash-core-event-java/spec/event_spec.rb +++ b/logstash-core-event-java/spec/event_spec.rb @@ -4,6 +4,7 @@ require "logstash/util" require "logstash/event" require "json" +require "java" TIMESTAMP = "@timestamp" @@ -286,4 +287,24 @@ def self.warn(message) end end end + + context "initialize" do + + it "should accept Ruby Hash" do + e = LogStash::Event.new({"foo" => 1, TIMESTAMP => "2015-05-28T23:02:05.350Z"}) + expect(e.get("foo")).to eq(1) + expect(e.timestamp.to_iso8601).to eq("2015-05-28T23:02:05.350Z") + end + + it "should accept Java Map" do + h = Java::JavaUtil::HashMap.new + h.put("foo", 2); + h.put(TIMESTAMP, "2016-05-28T23:02:05.350Z"); + e = LogStash::Event.new(h) + + expect(e.get("foo")).to eq(2) + expect(e.timestamp.to_iso8601).to eq("2016-05-28T23:02:05.350Z") + end + + end end diff --git a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java index 926a596001e..d468def96dd 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java +++ b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java @@ -20,6 +20,7 @@ import org.jruby.anno.JRubyClass; import org.jruby.anno.JRubyMethod; import org.jruby.exceptions.RaiseException; +import org.jruby.java.proxies.MapJavaProxy; import org.jruby.javasupport.JavaUtil; import org.jruby.runtime.Arity; import org.jruby.runtime.ObjectAllocator; @@ -127,12 +128,9 @@ public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) if (data == null || data.isNil()) { this.event = new Event(); } else if (data instanceof RubyHash) { - HashMap newObj = Javafier.deep((RubyHash) data); - this.event = new Event(newObj); - } else if (data instanceof Map) { - this.event = new Event((Map) data); - } else if (Map.class.isAssignableFrom(data.getJavaClass())) { - this.event = new Event((Map)data.toJava(Map.class)); + this.event = new Event(Javafier.deep((RubyHash) data)); + } else if (data instanceof MapJavaProxy) { + this.event = new Event((Map)((MapJavaProxy)data).getObject()); } else { throw context.runtime.newTypeError("wrong argument type " + data.getMetaClass() + " (expected Hash)"); } From f1f1a542e969814e465f593eee8ba1ab402edae9 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 26 May 2016 11:20:28 -0400 Subject: [PATCH 129/632] Initialize the `path.settings` inside the runner class The `path.settings` requires the LOGSTASH_HOME constant to be defined, the problem is that constant is only defined when you are actually inside the logstash application, This was causing a bug when you were testing plugin individually because that constant wasn't defined. Fixes: #5361 Fixes #5363 --- logstash-core/lib/logstash/environment.rb | 1 - logstash-core/lib/logstash/runner.rb | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 6bf61b7d75c..6cfea6868be 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -13,7 +13,6 @@ module LogStash Setting::Boolean.new("config.reload.automatic", false), Setting::Numeric.new("config.reload.interval", 3), Setting::Boolean.new("metric.collect", true) {|v| v == true }, # metric collection cannot be disabled - Setting::String.new("path.settings", ::File.join(Environment::LOGSTASH_HOME, "config")), Setting::String.new("pipeline.id", "main"), Setting::Numeric.new("pipeline.workers", LogStash::Config::CpuCoreStrategy.maximum), Setting::Numeric.new("pipeline.output.workers", 1), diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 6517bf64b02..e89945701e9 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -15,8 +15,14 @@ require "logstash/config/defaults" require "logstash/shutdown_watcher" require "logstash/patches/clamp" +require "logstash/settings" class LogStash::Runner < Clamp::StrictCommand + # The `path.settings` need to be defined in the runner instead of the `logstash-core/lib/logstash/environment.r` + # because the `Environment::LOGSTASH_HOME` doesn't exist in the context of the `logstash-core` gem. + # + # See issues https://github.com/elastic/logstash/issues/5361 + LogStash::SETTINGS.register(LogStash::Setting::String.new("path.settings", ::File.join(LogStash::Environment::LOGSTASH_HOME, "config"))) # Node Settings option ["-n", "--node.name"], "NAME", @@ -129,7 +135,9 @@ def initialize(*args) def run(args) settings_path = fetch_settings_path(args) + @settings.set("path.settings", settings_path) if settings_path + LogStash::SETTINGS.from_yaml(LogStash::SETTINGS.get("path.settings")) super(*[args]) end From 90fa570639c6f4ad288131e16e11c1a34fab2e77 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 25 May 2016 23:42:01 -0700 Subject: [PATCH 130/632] Add docs for new packaging Fixes #5364 --- docs/static/command-line-flags.asciidoc | 3 + docs/static/setting-up-logstash.asciidoc | 185 +++++++++++++++++++++++ 2 files changed, 188 insertions(+) create mode 100644 docs/static/setting-up-logstash.asciidoc diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 81989adcdb1..b765788069f 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -42,6 +42,9 @@ coming[5.0.0-alpha3, Command-line flags have dots instead of dashes in their nam *`--log.format FORMAT`*:: Set to "json" to log in JSON format, or "plain" (default) to use `Object#.inspect`. +*`--path.settings SETTINGS_DIR`*:: + Directory containing the `logstash.yml` <>. + *`--node.name NAME`*:: Set a descriptive name for the node. If no value is specified, defaults to the current hostname. diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc new file mode 100644 index 00000000000..5d368820c5c --- /dev/null +++ b/docs/static/setting-up-logstash.asciidoc @@ -0,0 +1,185 @@ +[[setup-logstash]] +== Setting Up and Running Logstash + +coming[5.0.0-alpha3, Includes breaking changes to the Logstash directory structure] + +Before reading this section, see <> for basic installation instructions to get you started. + +This section includes additional information on how to set up and run Logstash, including: + +* <> +* <> +* <> + +[[dir-layout]] +=== Logstash Directory Layout + +This section describes the default directory structure that is created when you unpack the Logstash installation packages. + +[[zip-targz-layout]] +==== Directory Layout of `.zip` and `.tar.gz` Archives + +The `.zip` and `.tar.gz` packages are entirely self-contained. All files and +directories are, by default, contained within the home directory -- the directory +created when unpacking the archive. + +This is very convenient because you don't have to create any directories to start using Logstash, and uninstalling +Lostash is as easy as removing the home directory. However, it is advisable to change the default locations of the +config and the logs directories so that you do not delete important data later on. + +[cols="> for more info. + +==== Settings Files + +The settings files are already defined in the Logstash installation. Logstash includes the following settings files: + +*`logstash.yml`*:: + Contains Logstash configuration flags. You can set flags in this file instead of passing the flags at the command + line. Any flags that you set at the command line override the corresponding settings in the `logstash.yml` file. See <> for more info. +*`jvm.options`*:: + Contains JVM configuration flags. Specify each flag on a separate line. You can also use this file to set the locale + for Logstash. +*`startup.options` (Linux)*:: + Contains options used by the `system-install` script in `/usr/share/logstash/bin` to build the appropriate startup + script for your system. When you install the Logstash package, the `system-install` script executes at the end of the + installation process and uses the settings specified in `startup.options` to set options such as the user, group, + service name, and service description. By default, Logstash services are installed under the user `logstash`. The `startup.options` file makes it easier for you to install multiple instances of the Logstash service. You can copy + the file and change the values for specific settings. Note that the `startup.options` file is not read at startup. If + you want to change the Logstash startup script (for example, to change the Logstash user or read from a different + configuration path), you must re-run the `system-install` script (as root) to pass in the new settings. + +[[running-logstash]] +=== Running Logstash as a Service on Debian or RPM + +Logstash is not started automatically after installation. How to start and stop Logstash depends on whether your system +uses systemd, upstart, or SysV. You can tell what your system using by running this command: + +[source,sh] +-------------------------------------------- +ps -p 1 +------------------------------------------- + +[[running-logstash-systemd]] +==== Running Logstash by Using Systemd + +Distributions like Debian Jessie, Ubuntu 15.10+, and many of the SUSE derivatives use systemd and the +`systemctl` command to start and stop services. Logstash places the systemd unit files in `/etc/systemd/system` for both deb and rpm. After installing the package, you can start up Logstash with: + +[source,sh] +-------------------------------------------- +sudo systemctl start logstash.service +------------------------------------------- + +[[running-logstash-upstart]] +==== Running Logstash by Using Upstart + +For systems that use upstart, you can start Logstash with: + +[source,sh] +-------------------------------------------- +sudo initctl start logstash +------------------------------------------- + +The auto-generated configuration file for upstart systems is `/etc/init/logstash.conf`. + +[[running-logstash-sysv]] +==== Running Logstash by Using SysV + +For systems that use SysV, you can start Logstash with: + +[source,sh] +-------------------------------------------- +sudo /etc/init.d/logstash start +------------------------------------------- + +The auto-generated configuration file for SysV systems is `/etc/init.d/logstash`. + + + + + From 9408d2165d7d9953680fbd8c99a6278df10930d8 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 26 May 2016 11:41:00 -0700 Subject: [PATCH 131/632] Add more coming labels for Alpha3 Fixes #5367 --- docs/static/setting-up-logstash.asciidoc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index 5d368820c5c..b12da433266 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -1,8 +1,6 @@ [[setup-logstash]] == Setting Up and Running Logstash -coming[5.0.0-alpha3, Includes breaking changes to the Logstash directory structure] - Before reading this section, see <> for basic installation instructions to get you started. This section includes additional information on how to set up and run Logstash, including: @@ -16,6 +14,8 @@ This section includes additional information on how to set up and run Logstash, This section describes the default directory structure that is created when you unpack the Logstash installation packages. +coming[5.0.0-alpha3, Includes breaking changes to the Logstash directory structure] + [[zip-targz-layout]] ==== Directory Layout of `.zip` and `.tar.gz` Archives @@ -116,6 +116,8 @@ See <> for more info. ==== Settings Files +coming[5.0.0-alpha3] + The settings files are already defined in the Logstash installation. Logstash includes the following settings files: *`logstash.yml`*:: @@ -136,6 +138,8 @@ The settings files are already defined in the Logstash installation. Logstash in [[running-logstash]] === Running Logstash as a Service on Debian or RPM +coming[5.0.0-alpha3] + Logstash is not started automatically after installation. How to start and stop Logstash depends on whether your system uses systemd, upstart, or SysV. You can tell what your system using by running this command: From 27e41eac1488e02336c91c4ba21ff3318ecee4d1 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 26 May 2016 11:47:05 -0700 Subject: [PATCH 132/632] Add overview links Fixes #5367 --- docs/static/setting-up-logstash.asciidoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index b12da433266..cef578041df 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -8,6 +8,8 @@ This section includes additional information on how to set up and run Logstash, * <> * <> * <> +* <> +* <> [[dir-layout]] === Logstash Directory Layout From 1033df7be477e23316ab5a5eb98daa446368c1ca Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 26 May 2016 17:06:04 -0400 Subject: [PATCH 133/632] Fixing the faillings metrics tests (#5365) This PR make sure that all the tests using the agent or the pipeline are correctly shutting down their pipelines to make sure the metrics state are coherent with the config defined in the test. Fixes: #5291 --- logstash-core/lib/logstash/agent.rb | 3 +-- logstash-core/lib/logstash/pipeline.rb | 14 +++---------- logstash-core/spec/logstash/agent_spec.rb | 8 +++++++ .../spec/logstash/pipeline_reporter_spec.rb | 6 +++++- logstash-core/spec/logstash/pipeline_spec.rb | 21 ++++++++++++++----- 5 files changed, 33 insertions(+), 19 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 0153bf3ada9..0e356ec76b3 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -45,7 +45,7 @@ def initialize(settings = LogStash::SETTINGS) @collect_metric = setting("metric.collect") @metric = create_metric_collector - @periodic_pollers = LogStash::Instrument::PeriodicPollers.new(metric) + @periodic_pollers = LogStash::Instrument::PeriodicPollers.new(create_metric_collector) end def execute @@ -83,7 +83,6 @@ def register_pipeline(pipeline_id, settings = @settings) pipeline = create_pipeline(pipeline_settings) return unless pipeline.is_a?(LogStash::Pipeline) - pipeline.metric = @metric if @auto_reload && pipeline.non_reloadable_plugins.any? @logger.error(I18n.t("logstash.agent.non_reloadable_config_register"), :pipeline_id => pipeline_id, diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 3114cdb7ced..a8c1421473f 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -54,17 +54,9 @@ def initialize(config_str, settings = LogStash::SETTINGS) @worker_threads = [] - # Metric object should be passed upstream, multiple pipeline share the same metric - # and collector only the namespace will changes. - # If no metric is given, we use a `NullMetric` for all internal calls. - # We also do this to make the changes backward compatible with previous testing of the - # pipeline. - # # This needs to be configured before we evaluate the code to make - # sure the metric instance is correctly send to the plugin. - # NOTE: It is the responsibility of the Agent to set this externally with a setter - # if there's an intent of this not being a NullMetric - @metric = Instrument::NullMetric.new + # sure the metric instance is correctly send to the plugins to make the namespace scoping work + @metric = settings.get_value("metric.collect") ? Instrument::Metric.new : Instrument::NullMetric.new grammar = LogStashConfigParser.new @config = grammar.parse(config_str) @@ -80,7 +72,7 @@ def initialize(config_str, settings = LogStash::SETTINGS) # The config code is hard to represent as a log message... # So just print it. - if @settings.get("config.debug") && logger.debug? + if @settings.get_value("config.debug") && logger.debug? logger.debug("Compiled pipeline code", :code => code) end diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 711a4b37d08..5a40ee9c0ec 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -98,6 +98,7 @@ sleep 0.1 Stud.stop!(t) t.join + subject.shutdown end end @@ -114,6 +115,7 @@ sleep 0.1 Stud.stop!(t) t.join + subject.shutdown end end @@ -129,6 +131,8 @@ sleep 0.1 Stud.stop!(t) t.join + + subject.shutdown end end end @@ -157,6 +161,7 @@ sleep 0.1 Stud.stop!(t) t.join + subject.shutdown end end @@ -172,6 +177,7 @@ sleep 0.1 Stud.stop!(t) t.join + subject.shutdown end end @@ -186,6 +192,7 @@ sleep 0.1 Stud.stop!(t) t.join + subject.shutdown end end end @@ -361,6 +368,7 @@ end after :each do + subject.shutdown Stud.stop!(@t) @t.join end diff --git a/logstash-core/spec/logstash/pipeline_reporter_spec.rb b/logstash-core/spec/logstash/pipeline_reporter_spec.rb index bdd83d4ff24..1aeef0e73c3 100644 --- a/logstash-core/spec/logstash/pipeline_reporter_spec.rb +++ b/logstash-core/spec/logstash/pipeline_reporter_spec.rb @@ -47,6 +47,10 @@ def close @post_snapshot = reporter.snapshot end + after do + pipeline.shutdown + end + describe "events filtered" do it "should start at zero" do expect(@pre_snapshot.events_filtered).to eql(0) @@ -82,4 +86,4 @@ def close expect(@post_snapshot.output_info.first[:events_received]).to eql(generator_count) end end -end \ No newline at end of file +end diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index a9f2abfb0a9..0fb6be8368d 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -155,6 +155,7 @@ class TestPipeline < LogStash::Pipeline {:count_was=>worker_thread_count, :filters=>["dummyfilter"]}) pipeline.run expect(pipeline.worker_threads.size).to eq(safe_thread_count) + pipeline.shutdown end end @@ -168,6 +169,7 @@ class TestPipeline < LogStash::Pipeline {:worker_threads=> override_thread_count, :filters=>["dummyfilter"]}) pipeline.run expect(pipeline.worker_threads.size).to eq(override_thread_count) + pipeline.shutdown end end end @@ -193,6 +195,7 @@ class TestPipeline < LogStash::Pipeline pipeline = TestPipeline.new(test_config_with_filters) pipeline.run expect(pipeline.worker_threads.size).to eq(worker_thread_count) + pipeline.shutdown end end end @@ -239,6 +242,7 @@ class TestPipeline < LogStash::Pipeline expect(pipeline.outputs.size ).to eq(1) expect(pipeline.outputs.first.workers.size ).to eq(::LogStash::SETTINGS.get("pipeline.output.workers")) expect(pipeline.outputs.first.workers.first.num_closes ).to eq(1) + pipeline.shutdown end it "should call output close correctly with output workers" do @@ -255,6 +259,7 @@ class TestPipeline < LogStash::Pipeline output_delegator.workers.each do |plugin| expect(plugin.num_closes ).to eq(1) end + pipeline.shutdown end end end @@ -276,6 +281,7 @@ class TestPipeline < LogStash::Pipeline expect(pipeline).to receive(:start_flusher).ordered.and_call_original pipeline.run + pipeline.shutdown end end @@ -392,8 +398,14 @@ class TestPipeline < LogStash::Pipeline output { } CONFIG - it "uses a `NullMetric` object if no metric is given" do - pipeline = LogStash::Pipeline.new(config) + it "uses a `NullMetric` object if `metric.collect` is set to false" do + settings = double("LogStash::SETTINGS") + + allow(settings).to receive(:get_value).with("pipeline.id").and_return("main") + allow(settings).to receive(:get_value).with("metric.collect").and_return(false) + allow(settings).to receive(:get_value).with("config.debug").and_return(false) + + pipeline = LogStash::Pipeline.new(config, settings) expect(pipeline.metric).to be_kind_of(LogStash::Instrument::NullMetric) end end @@ -511,7 +523,7 @@ class TestPipeline < LogStash::Pipeline t = Thread.new { subject.run } sleep(0.1) expect(subject.started_at).to be < Time.now - t.kill rescue nil + subject.shutdown end end @@ -536,7 +548,7 @@ class TestPipeline < LogStash::Pipeline t = Thread.new { subject.run } sleep(0.1) expect(subject.uptime).to be > 0 - t.kill rescue nil + subject.shutdown end end end @@ -590,7 +602,6 @@ class TestPipeline < LogStash::Pipeline # Reset the metric store LogStash::Instrument::Collector.instance.clear - subject.metric = metric Thread.new { subject.run } # make sure we have received all the generated events sleep 1 while dummyoutput.events.size < number_of_events From ec95659dbda5792295b0d330024413fec5983901 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 26 May 2016 16:31:17 -0700 Subject: [PATCH 134/632] Fix failing tests on master and 5.0 (#5369) License tests was failing because of GPL2 in mime-types.Added an exception for this gem because v2.6.2 is triple-licensed and we pick MIT. Metrics test is failing because of address in use which is fixed in PR #5307. Skipping this test for now. --- logstash-core/spec/logstash/agent_spec.rb | 2 +- spec/unit/license_spec.rb | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 5a40ee9c0ec..3d395c15051 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -373,7 +373,7 @@ @t.join end - it "resets the metric collector" do + xit "resets the metric collector" do # We know that the store has more events coming in. sleep(0.01) while dummy_output.events.size < new_config_generator_counter snapshot = LogStash::Instrument::Collector.instance.snapshot_metric diff --git a/spec/unit/license_spec.rb b/spec/unit/license_spec.rb index f37f29d0431..9425cfc9111 100644 --- a/spec/unit/license_spec.rb +++ b/spec/unit/license_spec.rb @@ -25,7 +25,11 @@ [ # Skipped because of already included and bundled within JRuby so checking here is redundant. # Need to take action about jruby licenses to enable again or keep skeeping. - "jruby-openssl" + "jruby-openssl", + # Skipped because version 2.6.2 which we use has multiple licenses: MIT, ARTISTIC 2.0, GPL-2 + # See https://rubygems.org/gems/mime-types/versions/2.6.2 + # version 3.0 of mime-types (which is only compatible with Ruby 2.0) is MIT licensed + "mime-types" ] end @@ -48,7 +52,8 @@ next unless runtime_spec next if skipped_dependencies.include?(runtime_spec.name) runtime_spec.licenses.each do |license| - expect(license.downcase).to match(expected_licenses) + expect(license.downcase).to match(expected_licenses), + lambda { "Runtime license check failed for gem #{runtime_spec.name} with version #{runtime_spec.version}" } end end end From 5811c1ad28a58ff7ce7097a0e8b7d2a0b4c6c8b3 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 27 May 2016 09:10:39 -0700 Subject: [PATCH 135/632] Remove ps command for checking init system type Fixes #5376 --- docs/static/setting-up-logstash.asciidoc | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index cef578041df..9790f8674e0 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -143,12 +143,7 @@ The settings files are already defined in the Logstash installation. Logstash in coming[5.0.0-alpha3] Logstash is not started automatically after installation. How to start and stop Logstash depends on whether your system -uses systemd, upstart, or SysV. You can tell what your system using by running this command: - -[source,sh] --------------------------------------------- -ps -p 1 -------------------------------------------- +uses systemd, upstart, or SysV. [[running-logstash-systemd]] ==== Running Logstash by Using Systemd From 2a46fd5c1e79bc563bd722569955f797478284e0 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Mon, 1 Feb 2016 21:00:02 -0600 Subject: [PATCH 136/632] Initial .travis.yml Fixes #4608 --- .travis.yml | 16 ++++++++++++++++ README.md | 5 ++--- 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000000..7cfbedd5e62 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,16 @@ +sudo: false +language: ruby +cache: + directories: + - vendor/bundle + - ~/.gradle/ +rvm: + - jruby-1.7.25 + - jruby-9.0.5.0 +jdk: + - oraclejdk8 +before_script: + - rake test:install-core + - echo "--order rand" > .rspec + - echo "--format documentation" >> .rspec +script: rake test:core diff --git a/README.md b/README.md index a152aa1e515..e8aeedf903d 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,9 @@ ### Build status -| Branch | master | 2.x | 2.1 +| Test | master | 5.0 | 2.3 | |---|---|---|---| -| core | [![Build Status](http://build-eu-00.elastic.co/view/LS%20Master/job/logstash_regression_master/badge/icon)](http://build-eu-00.elastic.co/view/LS%20Master/job/logstash_regression_master/) | [![Build Status](http://build-eu-00.elastic.co/view/LS%202.x/job/logstash_regression_2x/badge/icon)](http://build-eu-00.elastic.co/view/LS%202.x/job/logstash_regression_2x/) | [![Build Status](http://build-eu-00.elastic.co/view/LS%202.x/job/logstash_regression_21/badge/icon)](http://build-eu-00.elastic.co/view/LS%202.x/job/logstash_regression_21/) | -| integration | [![Build Status](http://build-eu-00.elastic.co/view/LS%20Master/job/Logstash_Master_Default_Plugins/badge/icon)](http://build-eu-00.elastic.co/view/LS%20Master/job/Logstash_Master_Default_Plugins/) | [![Build Status](http://build-eu-00.elastic.co/view/LS%202.x/job/Logstash_Default_Plugins_2x/badge/icon)](http://build-eu-00.elastic.co/view/LS%202.x/job/Logstash_Default_Plugins_2x/) | [![Build Status](http://build-eu-00.elastic.co/view/LS%202.x/job/Logstash_Default_Plugins_21/badge/icon)](http://build-eu-00.elastic.co/view/LS%202.x/job/Logstash_Default_Plugins_21/) | +| core | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=master)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.3)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.3)](https://travis-ci.org/elastic/logstash) | Logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). If you From 06dc48a75fac293489c09f27a2338a4c347a9a3d Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 19 Apr 2016 10:38:11 -0500 Subject: [PATCH 137/632] Only test one ruby Fixes #4608 --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7cfbedd5e62..2d9b5783022 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ cache: - ~/.gradle/ rvm: - jruby-1.7.25 - - jruby-9.0.5.0 jdk: - oraclejdk8 before_script: From 90d12f4e0a5d267d42c3cd4ff57cf12fb09cb9dc Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 12 May 2016 11:40:17 -0500 Subject: [PATCH 138/632] Refactor API + Add node_stats --- .../api/{lib/helpers => }/app_helpers.rb | 0 .../lib/logstash/api/command_factory.rb | 34 +++++ .../lib/logstash/api/commands/base.rb | 25 ++++ .../lib/logstash/api/commands/stats.rb | 105 +++++++++++++++ .../api/commands/system/basicinfo_command.rb | 23 ++++ .../api/commands/system/plugins_command.rb | 35 +++++ logstash-core/lib/logstash/api/init.ru | 31 ----- logstash-core/lib/logstash/api/lib/app.rb | 40 ------ .../lib/logstash/api/lib/app/command.rb | 29 ----- .../logstash/api/lib/app/command_factory.rb | 29 ----- .../lib/app/commands/stats/events_command.rb | 13 -- .../app/commands/stats/hotthreads_command.rb | 120 ------------------ .../lib/app/commands/stats/memory_command.rb | 25 ---- .../app/commands/system/basicinfo_command.rb | 15 --- .../app/commands/system/plugins_command.rb | 28 ---- .../lib/logstash/api/lib/app/modules/node.rb | 25 ---- .../api/lib/app/modules/node_stats.rb | 51 -------- .../logstash/api/lib/app/modules/plugins.rb | 15 --- .../lib/logstash/api/lib/app/modules/stats.rb | 21 --- .../lib/logstash/api/lib/app/root.rb | 13 -- .../lib/logstash/api/lib/app/service.rb | 61 --------- .../lib/logstash/api/lib/app/stats.rb | 56 -------- .../lib/logstash/api/modules/base.rb | 41 ++++++ .../lib/logstash/api/modules/node.rb | 24 ++++ .../lib/logstash/api/modules/node_stats.rb | 59 +++++++++ .../lib/logstash/api/modules/plugins.rb | 15 +++ .../lib/logstash/api/modules/root.rb | 15 +++ .../lib/logstash/api/modules/stats.rb | 63 +++++++++ logstash-core/lib/logstash/api/rack_app.rb | 33 +++++ logstash-core/lib/logstash/api/service.rb | 73 +++++++++++ .../lib/logstash/instrument/metric_store.rb | 12 +- .../instrument/periodic_poller/base.rb | 2 + .../instrument/periodic_poller/jvm.rb | 49 ++++++- .../lib/logstash/util/thread_dump.rb | 55 ++++++++ logstash-core/lib/logstash/webserver.rb | 64 +++------- logstash-core/locales/en.yml | 10 +- logstash-core/logstash-core.gemspec | 4 +- logstash-core/spec/api/lib/api/node_spec.rb | 4 +- .../spec/api/lib/api/node_stats_spec.rb | 89 +++++-------- .../spec/api/lib/api/plugins_spec.rb | 4 +- logstash-core/spec/api/lib/api/root_spec.rb | 4 +- logstash-core/spec/api/lib/api/stats_spec.rb | 19 --- .../lib/api/support/resource_dsl_methods.rb | 47 +++++++ .../spec/api/lib/commands/events_spec.rb | 17 --- .../spec/api/lib/commands/jvm_spec.rb | 45 ------- logstash-core/spec/api/lib/commands/stats.rb | 47 +++++++ logstash-core/spec/api/spec_helper.rb | 7 +- .../instrument/periodic_poller/jvm_spec.rb | 45 +++++++ 48 files changed, 861 insertions(+), 780 deletions(-) rename logstash-core/lib/logstash/api/{lib/helpers => }/app_helpers.rb (100%) create mode 100644 logstash-core/lib/logstash/api/command_factory.rb create mode 100644 logstash-core/lib/logstash/api/commands/base.rb create mode 100644 logstash-core/lib/logstash/api/commands/stats.rb create mode 100644 logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb create mode 100644 logstash-core/lib/logstash/api/commands/system/plugins_command.rb delete mode 100644 logstash-core/lib/logstash/api/init.ru delete mode 100644 logstash-core/lib/logstash/api/lib/app.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/command.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/command_factory.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/commands/stats/events_command.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/commands/stats/hotthreads_command.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/commands/stats/memory_command.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/commands/system/basicinfo_command.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/commands/system/plugins_command.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/modules/node.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/modules/node_stats.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/modules/plugins.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/modules/stats.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/root.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/service.rb delete mode 100644 logstash-core/lib/logstash/api/lib/app/stats.rb create mode 100644 logstash-core/lib/logstash/api/modules/base.rb create mode 100644 logstash-core/lib/logstash/api/modules/node.rb create mode 100644 logstash-core/lib/logstash/api/modules/node_stats.rb create mode 100644 logstash-core/lib/logstash/api/modules/plugins.rb create mode 100644 logstash-core/lib/logstash/api/modules/root.rb create mode 100644 logstash-core/lib/logstash/api/modules/stats.rb create mode 100644 logstash-core/lib/logstash/api/rack_app.rb create mode 100644 logstash-core/lib/logstash/api/service.rb create mode 100644 logstash-core/lib/logstash/util/thread_dump.rb delete mode 100644 logstash-core/spec/api/lib/api/stats_spec.rb create mode 100644 logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb delete mode 100644 logstash-core/spec/api/lib/commands/events_spec.rb delete mode 100644 logstash-core/spec/api/lib/commands/jvm_spec.rb create mode 100644 logstash-core/spec/api/lib/commands/stats.rb create mode 100644 logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb diff --git a/logstash-core/lib/logstash/api/lib/helpers/app_helpers.rb b/logstash-core/lib/logstash/api/app_helpers.rb similarity index 100% rename from logstash-core/lib/logstash/api/lib/helpers/app_helpers.rb rename to logstash-core/lib/logstash/api/app_helpers.rb diff --git a/logstash-core/lib/logstash/api/command_factory.rb b/logstash-core/lib/logstash/api/command_factory.rb new file mode 100644 index 00000000000..df26ccad546 --- /dev/null +++ b/logstash-core/lib/logstash/api/command_factory.rb @@ -0,0 +1,34 @@ +# encoding: utf-8 +require "logstash/api/service" +require "logstash/api/commands/system/basicinfo_command" +require "logstash/api/commands/system/plugins_command" +require "logstash/api/commands/stats" + + +module LogStash + module Api + class CommandFactory + attr_reader :factory, :service + + def initialize(service) + @service = service + @factory = { + :system_basic_info => ::LogStash::Api::Commands::System::BasicInfo, + :plugins_command => ::LogStash::Api::Commands::System::Plugins, + :stats => ::LogStash::Api::Commands::Stats + } + end + + def build(*klass_path) + # Get a nested path with args like (:parent, :child) + klass = klass_path.reduce(factory) {|acc,v| acc[v]} + + if klass + klass.new(service) + else + raise ArgumentError, "Class path '#{klass_path}' does not map to command!" + end + end + end + end +end diff --git a/logstash-core/lib/logstash/api/commands/base.rb b/logstash-core/lib/logstash/api/commands/base.rb new file mode 100644 index 00000000000..1ca1d879832 --- /dev/null +++ b/logstash-core/lib/logstash/api/commands/base.rb @@ -0,0 +1,25 @@ +module LogStash + module Api + module Commands + class Base + attr_reader :service + + def initialize(service = LogStash::Api::Service.instance) + @service = service + end + + def hostname + service.agent.node_name + end + + def uptime + service.agent.uptime + end + + def started_at + (LogStash::Agent::STARTED_AT.to_f * 1000.0).to_i + end + end + end + end +end diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb new file mode 100644 index 00000000000..6d4ef2430fc --- /dev/null +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -0,0 +1,105 @@ +require "logstash/api/commands/base" +require 'logstash/util/thread_dump' + +module LogStash + module Api + module Commands + class Stats < Commands::Base + + def jvm + {:threads => service.get_shallow(:jvm, :threads)} + end + + def process + service.get_shallow(:jvm, :process) + end + + def events + service.get_shallow(:stats, :events) + end + + def memory + memory = LogStash::Json.load(service.get(:jvm_memory_stats)) + { + :heap_used_in_bytes => memory["heap"]["used_in_bytes"], + :heap_used_percent => memory["heap"]["used_percent"], + :heap_committed_in_bytes => memory["heap"]["committed_in_bytes"], + :heap_max_in_bytes => memory["heap"]["max_in_bytes"], + :heap_used_in_bytes => memory["heap"]["used_in_bytes"], + :non_heap_used_in_bytes => memory["non_heap"]["used_in_bytes"], + :non_heap_committed_in_bytes => memory["non_heap"]["committed_in_bytes"], + :pools => memory["pools"].inject({}) do |acc, (type, hash)| + hash.delete("committed_in_bytes") + acc[type] = hash + acc + end + } + end + + def hot_threads(options={}) + HotThreadsReport.new(self, options) + end + + class HotThreadsReport + HOT_THREADS_STACK_TRACES_SIZE_DEFAULT = 10.freeze + + def initialize(cmd, options) + @cmd = cmd + filter = { :stacktrace_size => options.fetch(:stacktrace_size, HOT_THREADS_STACK_TRACES_SIZE_DEFAULT) } + jr_dump = JRMonitor.threads.generate(filter) + @thread_dump = ::LogStash::Util::ThreadDump.new(options.merge(:dump => jr_dump)) + end + + def to_s + hash = to_hash + report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" + report << '=' * 80 + report << "\n" + hash[:threads].each do |thread| + thread_report = "" + thread_report = "#{I18n.t("logstash.web_api. + hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" + thread_report = "#{thread[:percent_of_cpu_time]} % of of cpu usage by #{thread[:state]} thread named '#{thread[:name]}'\n" + thread_report << "#{thread[:path]}\n" if thread[:path] + thread[:traces].each do |trace| + thread_report << "\t#{trace}\n" + end + report << thread_report + report << '-' * 80 + report << "\n" + end + report + end + + def to_hash + hash = { :hostname => @cmd.hostname, :time => Time.now.iso8601, :busiest_threads => @thread_dump.top_count, :threads => [] } + @thread_dump.each do |thread_name, _hash| + thread_name, thread_path = _hash["thread.name"].split(": ") + thread = { :name => thread_name, + :percent_of_cpu_time => cpu_time_as_percent(_hash), + :state => _hash["thread.state"] + } + thread[:path] = thread_path if thread_path + traces = [] + _hash["thread.stacktrace"].each do |trace| + traces << trace + end + thread[:traces] = traces unless traces.empty? + hash[:threads] << thread + end + hash + end + + def cpu_time_as_percent(hash) + (((cpu_time(hash) / @cmd.uptime * 1.0)*10000).to_i)/100.0 + end + + def cpu_time(hash) + hash["cpu.time"] / 1000000.0 + end + + end + end + end + end +end diff --git a/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb b/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb new file mode 100644 index 00000000000..7a32073990e --- /dev/null +++ b/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb @@ -0,0 +1,23 @@ +# encoding: utf-8 +require 'logstash/api/commands/base' +require "logstash/util/duration_formatter" + +module LogStash + module Api + module Commands + module System + class BasicInfo < Commands::Base + + def run + { + "hostname" => hostname, + "version" => { + "number" => LOGSTASH_VERSION + } + } + end + end + end + end + end +end diff --git a/logstash-core/lib/logstash/api/commands/system/plugins_command.rb b/logstash-core/lib/logstash/api/commands/system/plugins_command.rb new file mode 100644 index 00000000000..f787f9aff9b --- /dev/null +++ b/logstash-core/lib/logstash/api/commands/system/plugins_command.rb @@ -0,0 +1,35 @@ +# encoding: utf-8 +require "logstash/api/commands/base" + +module LogStash + module Api + module Commands + module System + class Plugins < Commands::Base + def run + { :total => plugins.count, :plugins => plugins } + end + + private + + def plugins + @plugins ||= find_plugins_gem_specs.map do |spec| + { :name => spec.name, :version => spec.version.to_s } + end.sort_by do |spec| + spec[:name] + end + end + + def find_plugins_gem_specs + @specs ||= Gem::Specification.find_all.select{|spec| logstash_plugin_gem_spec?(spec)} + end + + def logstash_plugin_gem_spec?(spec) + spec.metadata && spec.metadata["logstash_plugin"] == "true" + end + + end + end + end + end +end diff --git a/logstash-core/lib/logstash/api/init.ru b/logstash-core/lib/logstash/api/init.ru deleted file mode 100644 index 720541e82ee..00000000000 --- a/logstash-core/lib/logstash/api/init.ru +++ /dev/null @@ -1,31 +0,0 @@ -api_root = File.expand_path(File.dirname(__FILE__)) -$LOAD_PATH.unshift File.join(api_root, 'lib') -Dir.glob('lib/**').each{ |d| $LOAD_PATH.unshift(File.join(api_root, d)) } - -require 'sinatra' -require 'app/root' -require 'app/modules/stats' -require 'app/modules/node' -require 'app/modules/node_stats' -require 'app/modules/plugins' - -env = ENV["RACK_ENV"].to_sym -set :environment, env - -set :service, LogStash::Api::Service.instance - -configure do - enable :logging -end -run LogStash::Api::Root - -namespaces = { "/_node" => LogStash::Api::Node, - "/_node/stats" => LogStash::Api::NodeStats, - "/_stats" => LogStash::Api::Stats, - "/_plugins" => LogStash::Api::Plugins } - -namespaces.each_pair do |namespace, app| - map(namespace) do - run app - end -end diff --git a/logstash-core/lib/logstash/api/lib/app.rb b/logstash-core/lib/logstash/api/lib/app.rb deleted file mode 100644 index 72946ec6707..00000000000 --- a/logstash-core/lib/logstash/api/lib/app.rb +++ /dev/null @@ -1,40 +0,0 @@ -# encoding: utf-8 -require "cabin" -require "logstash/json" -require "helpers/app_helpers" -require "app/service" -require "app/command_factory" -require "logstash/util/loggable" - -module LogStash::Api - class BaseApp < ::Sinatra::Application - - attr_reader :factory - - if settings.environment != :production - set :raise_errors, true - set :show_exceptions, :after_handler - end - - include LogStash::Util::Loggable - - helpers AppHelpers - - def initialize(app=nil) - super(app) - @factory = CommandFactory.new(settings.service) - end - - not_found do - status 404 - as = params.has_key?("human") ? :string : :json - text = as == :string ? "" : {} - respond_with(text, :as => as) - end - - error do - logger.error(env['sinatra.error'].message, :url => request.url, :ip => request.ip, :params => request.params) - end - - end -end diff --git a/logstash-core/lib/logstash/api/lib/app/command.rb b/logstash-core/lib/logstash/api/lib/app/command.rb deleted file mode 100644 index 75d8f958c6b..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/command.rb +++ /dev/null @@ -1,29 +0,0 @@ -# encoding: utf-8 -require "app/service" - -module LogStash::Api - class Command - - attr_reader :service - - def initialize(service = LogStash::Api::Service.instance) - @service = service - end - - def run - raise "Not implemented" - end - - def hostname - service.agent.node_name - end - - def uptime - service.agent.uptime - end - - def started_at - (LogStash::Agent::STARTED_AT.to_f * 1000.0).to_i - end - end -end diff --git a/logstash-core/lib/logstash/api/lib/app/command_factory.rb b/logstash-core/lib/logstash/api/lib/app/command_factory.rb deleted file mode 100644 index 29e71e6c4f7..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/command_factory.rb +++ /dev/null @@ -1,29 +0,0 @@ -# encoding: utf-8 -require "app/service" -require "app/commands/system/basicinfo_command" -require "app/commands/stats/events_command" -require "app/commands/stats/hotthreads_command" -require "app/commands/stats/memory_command" -require "app/commands/system/plugins_command" - -module LogStash::Api - class CommandFactory - - attr_reader :factory, :service - - def initialize(service) - @service = service - @factory = {}.merge( - :system_basic_info => SystemBasicInfoCommand, - :events_command => StatsEventsCommand, - :hot_threads_command => HotThreadsCommand, - :memory_command => JvmMemoryCommand, - :plugins_command => PluginsCommand - ) - end - - def build(klass) - factory[klass].new(service) - end - end -end diff --git a/logstash-core/lib/logstash/api/lib/app/commands/stats/events_command.rb b/logstash-core/lib/logstash/api/lib/app/commands/stats/events_command.rb deleted file mode 100644 index 78337364548..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/commands/stats/events_command.rb +++ /dev/null @@ -1,13 +0,0 @@ -# encoding: utf-8 -require "app/command" - -class LogStash::Api::StatsEventsCommand < LogStash::Api::Command - - def run - #return whatever is comming out of the snapshot event, this obvoiusly - #need to be tailored to the right metrics for this command. - stats = LogStash::Json.load(service.get(:events_stats)) - stats["stats"]["events"] - end - -end diff --git a/logstash-core/lib/logstash/api/lib/app/commands/stats/hotthreads_command.rb b/logstash-core/lib/logstash/api/lib/app/commands/stats/hotthreads_command.rb deleted file mode 100644 index 0c3f4ee2ef7..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/commands/stats/hotthreads_command.rb +++ /dev/null @@ -1,120 +0,0 @@ -# encoding: utf-8 -require "app/command" -require 'monitoring' -require "socket" - -class LogStash::Api::HotThreadsCommand < LogStash::Api::Command - - STACK_TRACES_SIZE_DEFAULT = 10.freeze - - def run(options={}) - filter = { :stacktrace_size => options.fetch(:stacktrace_size, STACK_TRACES_SIZE_DEFAULT) } - hash = JRMonitor.threads.generate(filter) - ThreadDump.new(hash, self, options) - end - - private - - class ThreadDump - - SKIPPED_THREADS = [ "Finalizer", "Reference Handler", "Signal Dispatcher" ].freeze - THREADS_COUNT_DEFAULT = 3.freeze - IGNORE_IDLE_THREADS_DEFAULT = true.freeze - - attr_reader :top_count, :ignore, :dump - - def initialize(dump, cmd, options={}) - @dump = dump - @options = options - @top_count = options.fetch(:threads, THREADS_COUNT_DEFAULT) - @ignore = options.fetch(:ignore_idle_threads, IGNORE_IDLE_THREADS_DEFAULT) - @cmd = cmd - end - - def to_s - hash = to_hash - report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => top_count )} \n" - hash[:threads].each do |thread| - thread_report = "" - thread_report = "\t #{I18n.t("logstash.web_api.hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" - thread_report = "\t #{thread[:percent_of_cpu_time]} % of of cpu usage by #{thread[:state]} thread named '#{thread[:name]}'\n" - thread_report << "\t\t #{thread[:path]}\n" if thread[:path] - thread[:traces].split("\n").each do |trace| - thread_report << "#{trace}\n" - end - report << thread_report - end - report - end - - def to_hash - hash = { :hostname => hostname, :time => Time.now.iso8601, :busiest_threads => top_count, :threads => [] } - each do |thread_name, _hash| - thread_name, thread_path = _hash["thread.name"].split(": ") - thread = { :name => thread_name, - :percent_of_cpu_time => cpu_time_as_percent(_hash), - :state => _hash["thread.state"] - } - thread[:path] = thread_path if thread_path - traces = "" - _hash["thread.stacktrace"].each do |trace| - traces << "\t\t#{trace}\n" - end - thread[:traces] = traces unless traces.empty? - hash[:threads] << thread - end - hash - end - - private - - def each(&block) - i=0 - dump.each_pair do |thread_name, _hash| - break if i >= top_count - if ignore - next if idle_thread?(thread_name, _hash) - end - block.call(thread_name, _hash) - i += 1 - end - end - - def idle_thread?(thread_name, data) - idle = false - if SKIPPED_THREADS.include?(thread_name) - # these are likely JVM dependent - idle = true - elsif thread_name.match(/Ruby-\d+-JIT-\d+/) - # This are internal JRuby JIT threads, - # see java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor for details. - idle = true - elsif thread_name.match(/pool-\d+-thread-\d+/) - # This are threads used by the internal JRuby implementation to dispatch - # calls and tasks, see prg.jruby.internal.runtime.methods.DynamicMethod.call - idle = true - else - data["thread.stacktrace"].each do |trace| - if trace.start_with?("java.util.concurrent.ThreadPoolExecutor.getTask") - idle = true - break - end - end - end - idle - end - - def hostname - @cmd.hostname - end - - def cpu_time_as_percent(hash) - (((cpu_time(hash) / @cmd.uptime * 1.0)*10000).to_i)/100.0 - end - - def cpu_time(hash) - hash["cpu.time"] / 1000000.0 - end - end - -end diff --git a/logstash-core/lib/logstash/api/lib/app/commands/stats/memory_command.rb b/logstash-core/lib/logstash/api/lib/app/commands/stats/memory_command.rb deleted file mode 100644 index b6aa34f5d42..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/commands/stats/memory_command.rb +++ /dev/null @@ -1,25 +0,0 @@ -# encoding: utf-8 -require "app/command" -require 'monitoring' - -class LogStash::Api::JvmMemoryCommand < LogStash::Api::Command - - def run - memory = LogStash::Json.load(service.get(:jvm_memory_stats)) - { - :heap_used_in_bytes => memory["heap"]["used_in_bytes"], - :heap_used_percent => memory["heap"]["used_percent"], - :heap_committed_in_bytes => memory["heap"]["committed_in_bytes"], - :heap_max_in_bytes => memory["heap"]["max_in_bytes"], - :heap_used_in_bytes => memory["heap"]["used_in_bytes"], - :non_heap_used_in_bytes => memory["non_heap"]["used_in_bytes"], - :non_heap_committed_in_bytes => memory["non_heap"]["committed_in_bytes"], - :pools => memory["pools"].inject({}) do |acc, (type, hash)| - hash.delete("committed_in_bytes") - acc[type] = hash - acc - end - } - end - -end diff --git a/logstash-core/lib/logstash/api/lib/app/commands/system/basicinfo_command.rb b/logstash-core/lib/logstash/api/lib/app/commands/system/basicinfo_command.rb deleted file mode 100644 index 0822f54fb6a..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/commands/system/basicinfo_command.rb +++ /dev/null @@ -1,15 +0,0 @@ -# encoding: utf-8 -require "app/command" -require "logstash/util/duration_formatter" - -class LogStash::Api::SystemBasicInfoCommand < LogStash::Api::Command - - def run - { - "hostname" => hostname, - "version" => { - "number" => LOGSTASH_VERSION - } - } - end -end diff --git a/logstash-core/lib/logstash/api/lib/app/commands/system/plugins_command.rb b/logstash-core/lib/logstash/api/lib/app/commands/system/plugins_command.rb deleted file mode 100644 index 07623283ecc..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/commands/system/plugins_command.rb +++ /dev/null @@ -1,28 +0,0 @@ -# encoding: utf-8 -require "app/command" - -class LogStash::Api::PluginsCommand < LogStash::Api::Command - - def run - { :total => plugins.count, :plugins => plugins } - end - - private - - def plugins - @plugins ||= find_plugins_gem_specs.map do |spec| - { :name => spec.name, :version => spec.version.to_s } - end.sort_by do |spec| - spec[:name] - end - end - - def find_plugins_gem_specs - @specs ||= Gem::Specification.find_all.select{|spec| logstash_plugin_gem_spec?(spec)} - end - - def logstash_plugin_gem_spec?(spec) - spec.metadata && spec.metadata["logstash_plugin"] == "true" - end - -end diff --git a/logstash-core/lib/logstash/api/lib/app/modules/node.rb b/logstash-core/lib/logstash/api/lib/app/modules/node.rb deleted file mode 100644 index 3edfb0de5a1..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/modules/node.rb +++ /dev/null @@ -1,25 +0,0 @@ -# encoding: utf-8 -require "app" - -module LogStash::Api - class Node < BaseApp - - helpers AppHelpers - - # return hot threads information - get "/hot_threads" do - ignore_idle_threads = params["ignore_idle_threads"] || true - - options = { - :ignore_idle_threads => as_boolean(ignore_idle_threads), - :human => params.has_key?("human") - } - options[:threads] = params["threads"].to_i if params.has_key?("threads") - - command = factory.build(:hot_threads_command) - as = options[:human] ? :string : :json - respond_with(command.run(options), {:as => as}) - end - - end -end diff --git a/logstash-core/lib/logstash/api/lib/app/modules/node_stats.rb b/logstash-core/lib/logstash/api/lib/app/modules/node_stats.rb deleted file mode 100644 index 8317cad3369..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/modules/node_stats.rb +++ /dev/null @@ -1,51 +0,0 @@ -# encoding: utf-8 -require "app" - -module LogStash::Api - class NodeStats < BaseApp - - helpers AppHelpers - - - # Global _stats resource where all information is - # retrieved and show - get "/" do - events_command = factory.build(:events_command) - payload = { - :events => events_command.run, - :jvm => jvm_payload - } - - respond_with payload - end - - # Show all events stats information - # (for ingested, emitted, dropped) - # - #events since startup - # - #data (bytes) since startup - # - events/s - # - bytes/s - # - dropped events/s - # - events in the pipeline - get "/events" do - command = factory.build(:events_command) - respond_with({ :events => command.run }) - end - - # return hot threads information - get "/jvm" do - respond_with jvm_payload - end - - private - - def jvm_payload - command = factory.build(:memory_command) - { - :timestamp => command.started_at, - :uptime_in_millis => command.uptime, - :mem => command.run - } - end - end -end diff --git a/logstash-core/lib/logstash/api/lib/app/modules/plugins.rb b/logstash-core/lib/logstash/api/lib/app/modules/plugins.rb deleted file mode 100644 index 93a94bf76c3..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/modules/plugins.rb +++ /dev/null @@ -1,15 +0,0 @@ -# encoding: utf-8 -require "app" - -module LogStash::Api - class Plugins < BaseApp - - helpers AppHelpers - - get "/" do - command = factory.build(:plugins_command) - respond_with(command.run()) - end - - end -end diff --git a/logstash-core/lib/logstash/api/lib/app/modules/stats.rb b/logstash-core/lib/logstash/api/lib/app/modules/stats.rb deleted file mode 100644 index ed3aa54f789..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/modules/stats.rb +++ /dev/null @@ -1,21 +0,0 @@ -# encoding: utf-8 -require "app" - -module LogStash::Api - class Stats < BaseApp - - helpers AppHelpers - - # return hot threads information - get "/jvm" do - command = factory.build(:memory_command) - jvm_payload = { - :timestamp => command.started_at, - :uptime_in_millis => command.uptime, - :mem => command.run - } - respond_with({:jvm => jvm_payload}) - end - - end -end diff --git a/logstash-core/lib/logstash/api/lib/app/root.rb b/logstash-core/lib/logstash/api/lib/app/root.rb deleted file mode 100644 index 75a0ba6be67..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/root.rb +++ /dev/null @@ -1,13 +0,0 @@ -# encoding: utf-8 -require "app" - -module LogStash::Api - class Root < BaseApp - - get "/" do - command = factory.build(:system_basic_info) - respond_with command.run - end - - end -end diff --git a/logstash-core/lib/logstash/api/lib/app/service.rb b/logstash-core/lib/logstash/api/lib/app/service.rb deleted file mode 100644 index 87ab8a5d16f..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/service.rb +++ /dev/null @@ -1,61 +0,0 @@ -# encoding: utf-8 -require "logstash/instrument/collector" -require "logstash/util/loggable" - -class LogStash::Api::Service - - include Singleton - include LogStash::Util::Loggable - - def initialize - @snapshot_rotation_mutex = Mutex.new - @snapshot = nil - logger.debug("[api-service] start") if logger.debug? - LogStash::Instrument::Collector.instance.add_observer(self) - end - - def stop - logger.debug("[api-service] stop") if logger.debug? - LogStash::Instrument::Collector.instance.delete_observer(self) - end - - def agent - LogStash::Instrument::Collector.instance.agent - end - - def started? - !@snapshot.nil? && has_counters? - end - - def update(snapshot) - logger.debug("[api-service] snapshot received", :snapshot_time => snapshot.created_at) if logger.debug? - if @snapshot_rotation_mutex.try_lock - @snapshot = snapshot - @snapshot_rotation_mutex.unlock - end - end - - def get(key) - metric_store = @snapshot.metric_store - if key == :jvm_memory_stats - data = metric_store.get_with_path("jvm/memory")[:jvm][:memory] - else - data = metric_store.get_with_path("stats/events") - end - LogStash::Json.dump(data) - end - - private - - def has_counters? - (["LogStash::Instrument::MetricType::Counter", "LogStash::Instrument::MetricType::Gauge"] - metric_types).empty? - end - - def metric_types - types = [] - @snapshot_rotation_mutex.synchronize do - types = @snapshot.metric_store.all.map { |t| t.class.to_s } - end - return types - end -end diff --git a/logstash-core/lib/logstash/api/lib/app/stats.rb b/logstash-core/lib/logstash/api/lib/app/stats.rb deleted file mode 100644 index 2d3f9a4f08b..00000000000 --- a/logstash-core/lib/logstash/api/lib/app/stats.rb +++ /dev/null @@ -1,56 +0,0 @@ -# encoding: utf-8 -require "app" -require "app/stats/events_command" -require "app/stats/hotthreads_command" - -module LogStash::Api - class Stats < BaseApp - - helpers AppHelpers - - - # Global _stats resource where all information is - # retrieved and show - get "/" do - events_command = factory.build(:events_command) - memory_command = factory.build(:memory_command) - payload = { - :events => events_command.run, - :jvm => { :memory => memory_command.run } - } - respond_with payload - end - - # Show all events stats information - # (for ingested, emitted, dropped) - # - #events since startup - # - #data (bytes) since startup - # - events/s - # - bytes/s - # - dropped events/s - # - events in the pipeline - get "/events" do - command = factory.build(:events_command) - respond_with({ :events => command.run }) - end - - # return hot threads information - get "/jvm/hot_threads" do - top_threads_count = params["threads"] || 3 - ignore_idle_threads = params["ignore_idle_threads"] || true - options = { - :threads => top_threads_count.to_i, - :ignore_idle_threads => as_boolean(ignore_idle_threads) - } - command = factory.build(:hot_threads_command) - respond_with(command.run(options), :string) - end - - # return hot threads information - get "/jvm/memory" do - command = factory.build(:memory_command) - respond_with({ :memory => command.run }) - end - - end -end diff --git a/logstash-core/lib/logstash/api/modules/base.rb b/logstash-core/lib/logstash/api/modules/base.rb new file mode 100644 index 00000000000..022e697ded9 --- /dev/null +++ b/logstash-core/lib/logstash/api/modules/base.rb @@ -0,0 +1,41 @@ +require "logstash/api/app_helpers" +require "logstash/api/command_factory" + +module LogStash + module Api + module Modules + class Base < ::Sinatra::Base + helpers AppHelpers + + attr_reader :factory + + if settings.environment != :production + set :raise_errors, true + set :show_exceptions, :after_handler + end + + include LogStash::Util::Loggable + + helpers AppHelpers + + def initialize(app=nil) + super(app) + @factory = ::LogStash::Api::CommandFactory.new(LogStash::Api::Service.instance) + end + + not_found do + status 404 + as = params.has_key?("human") ? :string : :json + text = as == :string ? "" : {} + respond_with(text, :as => as) + end + + error do + e = env['sinatra.error'] + logger.error(e.message, :url => request.url, :ip => request.ip, :params => request.params, :class => e.class.name, :backtrace => e.backtrace) + end + + end + end + end +end diff --git a/logstash-core/lib/logstash/api/modules/node.rb b/logstash-core/lib/logstash/api/modules/node.rb new file mode 100644 index 00000000000..931b2152c38 --- /dev/null +++ b/logstash-core/lib/logstash/api/modules/node.rb @@ -0,0 +1,24 @@ +# encoding: utf-8 +module LogStash + module Api + module Modules + class Node < ::LogStash::Api::Modules::Base + # return hot threads information + get "/hot_threads" do + ignore_idle_threads = params["ignore_idle_threads"] || true + + options = { + :ignore_idle_threads => as_boolean(ignore_idle_threads), + :human => params.has_key?("human") + } + options[:threads] = params["threads"].to_i if params.has_key?("threads") + + stats = factory.build(:stats) + as = options[:human] ? :string : :json + respond_with(stats.hot_threads(options), {:as => as}) + end + + end + end + end +end diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb new file mode 100644 index 00000000000..a744eb8ee33 --- /dev/null +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -0,0 +1,59 @@ +# encoding: utf-8 +module LogStash + module Api + module Modules + class NodeStats < ::LogStash::Api::Modules::Base + + before do + @stats = factory.build(:stats) + end + + # Global _stats resource where all information is + # retrieved and show + get "/" do + payload = { + :events => events_payload, + :jvm => jvm_payload, + :process => process_payload + } + + respond_with payload + end + + # Show all events stats information + # (for ingested, emitted, dropped) + # - #events since startup + # - #data (bytes) since startup + # - events/s + # - bytes/s + # - dropped events/s + # - events in the pipeline + get "/events" do + respond_with({ :events => events_payload }) + end + + get "/jvm" do + respond_with :jvm => jvm_payload + end + + get "/process" do + respond_with :process => process_payload + end + + private + + def events_payload + @stats.events + end + + def jvm_payload + @stats.jvm + end + + def process_payload + @stats.process + end + end + end + end +end diff --git a/logstash-core/lib/logstash/api/modules/plugins.rb b/logstash-core/lib/logstash/api/modules/plugins.rb new file mode 100644 index 00000000000..7edd3da154a --- /dev/null +++ b/logstash-core/lib/logstash/api/modules/plugins.rb @@ -0,0 +1,15 @@ +# encoding: utf-8 +module LogStash + module Api + module Modules + class Plugins < ::LogStash::Api::Modules::Base + + get "/" do + command = factory.build(:plugins_command) + respond_with(command.run()) + end + + end + end + end +end diff --git a/logstash-core/lib/logstash/api/modules/root.rb b/logstash-core/lib/logstash/api/modules/root.rb new file mode 100644 index 00000000000..66dc4d8730b --- /dev/null +++ b/logstash-core/lib/logstash/api/modules/root.rb @@ -0,0 +1,15 @@ +# encoding: utf-8 +module LogStash + module Api + module Modules + class Root < ::LogStash::Api::Modules::Base + + get "/" do + command = factory.build(:system_basic_info) + respond_with command.run + end + + end + end + end +end diff --git a/logstash-core/lib/logstash/api/modules/stats.rb b/logstash-core/lib/logstash/api/modules/stats.rb new file mode 100644 index 00000000000..fde364f2432 --- /dev/null +++ b/logstash-core/lib/logstash/api/modules/stats.rb @@ -0,0 +1,63 @@ +# encoding: utf-8 +module LogStash + module Api + module Modules + class Stats < ::LogStash::Api::Modules::Base + + def stats_command + factory.build(:stats) + end + + # Global _stats resource where all information is + # retrieved and show + get "/" do + payload = { + :events => stats_command.events, + :jvm => { :memory => stats_command.memory } + } + respond_with payload + end + + + # return hot threads information + get "/jvm" do + jvm_payload = { + :timestamp => stats_command.started_at, + :uptime_in_millis => stats_command.uptime, + :mem => stats_command.memory + } + respond_with({:jvm => jvm_payload}) + end + + # Show all events stats information + # (for ingested, emitted, dropped) + # - #events since startup + # - #data (bytes) since startup + # - events/s + # - bytes/s + # - dropped events/s + # - events in the pipeline + get "/events" do + respond_with({ :events => stats_command.events }) + end + + # return hot threads information + get "/jvm/hot_threads" do + top_threads_count = params["threads"] || 3 + ignore_idle_threads = params["ignore_idle_threads"] || true + options = { + :threads => top_threads_count.to_i, + :ignore_idle_threads => as_boolean(ignore_idle_threads) + } + + respond_with(stats_command.hot_threads(options)) + end + + # return hot threads information + get "/jvm/memory" do + respond_with({ :memory => stats_command.memory }) + end + end + end + end +end diff --git a/logstash-core/lib/logstash/api/rack_app.rb b/logstash-core/lib/logstash/api/rack_app.rb new file mode 100644 index 00000000000..5624d1c3516 --- /dev/null +++ b/logstash-core/lib/logstash/api/rack_app.rb @@ -0,0 +1,33 @@ +require "logstash/api/modules/base" +require "logstash/api/modules/node" +require "logstash/api/modules/node_stats" +require "logstash/api/modules/plugins" +require "logstash/api/modules/root" +require "logstash/api/modules/stats" + +module LogStash + module Api + module RackApp + def self.app + namespaces = rack_namespaces + Rack::Builder.new do + run LogStash::Api::Modules::Root + namespaces.each_pair do |namespace, app| + map(namespace) do + run app + end + end + end + end + + def self.rack_namespaces + { + "/_node" => LogStash::Api::Modules::Node, + "/_stats" => LogStash::Api::Modules::Stats, + "/_node/stats" => LogStash::Api::Modules::NodeStats, + "/_plugins" => LogStash::Api::Modules::Plugins + } + end + end + end +end diff --git a/logstash-core/lib/logstash/api/service.rb b/logstash-core/lib/logstash/api/service.rb new file mode 100644 index 00000000000..799e802b6f9 --- /dev/null +++ b/logstash-core/lib/logstash/api/service.rb @@ -0,0 +1,73 @@ +# encoding: utf-8 +require "logstash/instrument/collector" +require "logstash/util/loggable" + +module LogStash + module Api + class Service + + include Singleton + include LogStash::Util::Loggable + + def initialize + @snapshot_rotation_mutex = Mutex.new + @snapshot = nil + logger.debug("[api-service] start") if logger.debug? + LogStash::Instrument::Collector.instance.add_observer(self) + end + + def stop + logger.debug("[api-service] stop") if logger.debug? + LogStash::Instrument::Collector.instance.delete_observer(self) + end + + def agent + LogStash::Instrument::Collector.instance.agent + end + + def started? + !@snapshot.nil? && has_counters? + end + + def update(snapshot) + logger.debug("[api-service] snapshot received", :snapshot_time => snapshot.created_at) if logger.debug? + + @snapshot_rotation_mutex.synchronize do + @snapshot = snapshot + end + end + + def snapshot + @snapshot_rotation_mutex.synchronize { @snapshot } + end + + def get_shallow(*path) + snapshot.metric_store.get_shallow(*path) + end + + def get(key) + metric_store = @snapshot_rotation_mutex.synchronize { @snapshot.metric_store } + if key == :jvm_memory_stats + data = metric_store.get_shallow(:jvm, :memory) + else + data = metric_store.get_with_path("stats/events") + end + LogStash::Json.dump(data) + end + + private + + def has_counters? + (["LogStash::Instrument::MetricType::Counter", "LogStash::Instrument::MetricType::Gauge"] - metric_types).empty? + end + + def metric_types + types = [] + @snapshot_rotation_mutex.synchronize do + types = @snapshot.metric_store.all.map { |t| t.class.to_s } + end + return types + end + end + end +end diff --git a/logstash-core/lib/logstash/instrument/metric_store.rb b/logstash-core/lib/logstash/instrument/metric_store.rb index 664624296c7..653f6774440 100644 --- a/logstash-core/lib/logstash/instrument/metric_store.rb +++ b/logstash-core/lib/logstash/instrument/metric_store.rb @@ -86,7 +86,7 @@ def get_with_path(path) # Similar to `get_with_path` but use symbols instead of string # - # @param [Array + # @param [Array] # @return [Hash] def get(*key_paths) # Normalize the symbols access @@ -100,6 +100,16 @@ def get(*key_paths) new_hash end + # Retrieve values like `get`, but don't return them fully nested. + # This means that if you call `get_shallow(:foo, :bar)` the result will not + # be nested inside of `{:foo {:bar => values}`. + # + # @param [Array] + # @return [Hash] + def get_shallow(*key_paths) + key_paths.reduce(get(*key_paths)) {|acc, p| acc[p]} + end + # Return all the individuals Metric, # This call mimic a Enum's each if a block is provided # diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/base.rb b/logstash-core/lib/logstash/instrument/periodic_poller/base.rb index 1834c3342f5..313f52b2504 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/base.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/base.rb @@ -37,6 +37,8 @@ def start logger.debug("PeriodicPoller: Starting", :polling_interval => @options[:polling_interval], :polling_timeout => @options[:polling_timeout]) if logger.debug? + + collect # Collect data right away if possible @task.execute end diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb index 3b85d92efa6..6cd6495d49f 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb @@ -1,6 +1,15 @@ + # encoding: utf-8 require "logstash/instrument/periodic_poller/base" -require 'monitoring' +require 'jrmonitor' + +java_import 'java.lang.management.ManagementFactory' +java_import 'java.lang.management.OperatingSystemMXBean' +java_import 'com.sun.management.UnixOperatingSystemMXBean' +java_import 'javax.management.MBeanServer' +java_import 'javax.management.ObjectName' +java_import 'javax.management.AttributeList' +java_import 'javax.naming.directory.Attribute' module LogStash module Instrument module PeriodicPoller class JVM < Base @@ -13,14 +22,50 @@ def initialize(metric, options = {}) end def collect - raw = JRMonitor.memory.generate + raw = JRMonitor.memory.generate collect_heap_metrics(raw) collect_non_heap_metrics(raw) collect_pools_metrics(raw) + collect_threads_metrics + collect_process_metrics end private + def collect_threads_metrics + threads = JRMonitor.threads.generate + + current = threads.count + if @peak_threads.nil? || @peak_threads < current + @peak_threads = current + end + + metric.gauge([:jvm, :threads], :count, threads.count) + metric.gauge([:jvm, :threads], :peak_count, @peak_threads) + end + + def collect_process_metrics + process_metrics = JRMonitor.process.generate + + path = [:jvm, :process] + + + open_fds = process_metrics["open_file_descriptors"] + if @peak_open_fds.nil? || open_fds > @peak_open_fds + @peak_open_fds = open_fds + end + metric.gauge(path, :open_file_descriptors, open_fds) + metric.gauge(path, :peak_open_file_descriptors, @peak_open_fds) + metric.gauge(path, :max_file_descriptors, process_metrics["max_file_descriptors"]) + + cpu_path = path + [:cpu] + cpu_metrics = process_metrics["cpu"] + metric.gauge(cpu_path, :percent, cpu_metrics["process_percent"]) + metric.gauge(cpu_path, :total_in_millis, cpu_metrics["total_in_millis"]) + + metric.gauge(path + [:mem], :total_virtual_in_bytes, process_metrics["mem"]["total_virtual_in_bytes"]) + end + def collect_heap_metrics(data) heap = aggregate_information_for(data["heap"].values) heap[:used_percent] = (heap[:used_in_bytes] / heap[:max_in_bytes].to_f)*100.0 diff --git a/logstash-core/lib/logstash/util/thread_dump.rb b/logstash-core/lib/logstash/util/thread_dump.rb new file mode 100644 index 00000000000..11d1a8da066 --- /dev/null +++ b/logstash-core/lib/logstash/util/thread_dump.rb @@ -0,0 +1,55 @@ +# encoding: utf-8 +module LogStash + module Util + class ThreadDump + SKIPPED_THREADS = [ "Finalizer", "Reference Handler", "Signal Dispatcher" ].freeze + THREADS_COUNT_DEFAULT = 3.freeze + IGNORE_IDLE_THREADS_DEFAULT = true.freeze + + attr_reader :top_count, :ignore, :dump + + def initialize(options={}) + @options = options + @dump = options.fetch(:dump, JRMonitor.threads.generate({})) + @top_count = options.fetch(:threads, THREADS_COUNT_DEFAULT) + @ignore = options.fetch(:ignore_idle_threads, IGNORE_IDLE_THREADS_DEFAULT) + end + + def each(&block) + i=0 + dump.each_pair do |thread_name, _hash| + break if i >= top_count + if ignore + next if idle_thread?(thread_name, _hash) + end + block.call(thread_name, _hash) + i += 1 + end + end + + def idle_thread?(thread_name, data) + idle = false + if SKIPPED_THREADS.include?(thread_name) + # these are likely JVM dependent + idle = true + elsif thread_name.match(/Ruby-\d+-JIT-\d+/) + # This are internal JRuby JIT threads, + # see java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor for details. + idle = true + elsif thread_name.match(/pool-\d+-thread-\d+/) + # This are threads used by the internal JRuby implementation to dispatch + # calls and tasks, see prg.jruby.internal.runtime.methods.DynamicMethod.call + idle = true + else + data["thread.stacktrace"].each do |trace| + if trace.start_with?("java.util.concurrent.ThreadPoolExecutor.getTask") + idle = true + break + end + end + end + idle + end + end + end +end diff --git a/logstash-core/lib/logstash/webserver.rb b/logstash-core/lib/logstash/webserver.rb index 23bcaf0b576..9fbd9718b32 100644 --- a/logstash-core/lib/logstash/webserver.rb +++ b/logstash-core/lib/logstash/webserver.rb @@ -1,16 +1,15 @@ # encoding: utf-8 require "puma" -require "puma/single" -require "puma/binder" -require "puma/configuration" -require "puma/commonlogger" +require "puma/server" +require "sinatra" +require "rack" +require "logstash/api/rack_app" module LogStash class WebServer - extend Forwardable - attr_reader :logger, :status, :config, :options, :cli_options, :runner, :binder, :events + attr_reader :logger, :status, :config, :options, :cli_options, :runner, :binder, :events, :http_host, :http_port def_delegator :@runner, :stats @@ -19,8 +18,8 @@ class WebServer def initialize(logger, options={}) @logger = logger - http_host = options[:http_host] || DEFAULT_HOST - http_port = options[:http_port] || DEFAULT_PORT + @http_host = options[:http_host] || DEFAULT_HOST + @http_port = options[:http_port] || DEFAULT_PORT @options = {} @cli_options = options.merge({ :rackup => ::File.join(::File.dirname(__FILE__), "api", "init.ru"), :binds => ["tcp://#{http_host}:#{http_port}"], @@ -31,24 +30,17 @@ def initialize(logger, options={}) :queue_requests => false }) @status = nil - - parse_options - - @runner = nil - @events = ::Puma::Events.strings - @binder = ::Puma::Binder.new(@events) - @binder.import_from_env - - set_environment end def run log "=== puma start: #{Time.now} ===" - @runner = Puma::Single.new(self) - @status = :run - @runner.run - stop(:graceful => true) + stop # Just in case + + @server = ::Puma::Server.new(LogStash::Api::RackApp.app) + @server.add_tcp_listener(http_host, http_port) + + @server.run.join end def log(str) @@ -58,7 +50,7 @@ def log(str) def error(str) logger.error(str) end - + # Empty method, this method is required because of the puma usage we make through # the Single interface, https://github.com/puma/puma/blob/master/lib/puma/single.rb#L82 # for more details. This can always be implemented when we want to keep track of this @@ -66,33 +58,7 @@ def error(str) def write_state; end def stop(options={}) - graceful = options.fetch(:graceful, true) - - if graceful - @runner.stop_blocked - else - @runner.stop - end rescue nil - - @status = :stop - log "=== puma shutdown: #{Time.now} ===" - end - - private - - def env - @options[:debug] ? "development" : "production" - end - - def set_environment - @options[:environment] = env - ENV['RACK_ENV'] = env - end - - def parse_options - @config = ::Puma::Configuration.new(cli_options) - @config.load - @options = @config.options + @server.stop(true) if @server end end end diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index c963a064d4c..ed38a34f968 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -1,6 +1,6 @@ # YAML notes # |- means 'scalar block' useful for formatted text -# > means 'scalar block' but it chomps all newlines. Useful +# > means 'scalar block' but it chomps all newlines. Useful # for unformatted text. en: oops: |- @@ -76,7 +76,7 @@ en: hot_threads: title: |- ::: {%{hostname}} - Hot threads at %{time}, busiestThreads=%{top_count}: + Hot threads at %{time}, busiestThreads=%{top_count}: thread_title: |- %{percent_of_cpu_time} % of cpu usage by %{thread_state} thread named '%{thread_name}' runner: @@ -141,18 +141,18 @@ en: after %{after} invalid_plugin_register: >- Cannot register %{plugin} %{type} plugin. - The error reported is: + The error reported is: %{error} plugin_path_missing: >- You specified a plugin path that does not exist: %{path} no_plugins_found: |- Could not find any plugins in "%{path}" - I tried to find files matching the following, but found none: + I tried to find files matching the following, but found none: %{plugin_glob} log_file_failed: |- Failed to open %{path} for writing: %{error} - This is often a permissions issue, or the wrong + This is often a permissions issue, or the wrong path was specified? flag: # Note: Wrap these at 55 chars so they display nicely when clamp emits diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index b88fac568a0..fc621bc702a 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -27,10 +27,10 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency "gems", "~> 0.8.3" #(MIT license) gem.add_runtime_dependency "concurrent-ruby", "1.0.0" gem.add_runtime_dependency "sinatra", '~> 1.4', '>= 1.4.6' - gem.add_runtime_dependency 'puma', '~> 2.16', '>= 2.16.0' + gem.add_runtime_dependency 'puma', '~> 3.4.0' gem.add_runtime_dependency "jruby-openssl", "0.9.16" # >= 0.9.13 Required to support TLSv1.2 gem.add_runtime_dependency "chronic_duration", "0.10.6" - gem.add_runtime_dependency "jruby-monitoring", '~> 0.3.1' + gem.add_runtime_dependency "jrmonitor", '~> 0.4.2' # TODO(sissel): Treetop 1.5.x doesn't seem to work well, but I haven't # investigated what the cause might be. -Jordan diff --git a/logstash-core/spec/api/lib/api/node_spec.rb b/logstash-core/spec/api/lib/api/node_spec.rb index 119fca23ed2..3fc6ad97752 100644 --- a/logstash-core/spec/api/lib/api/node_spec.rb +++ b/logstash-core/spec/api/lib/api/node_spec.rb @@ -1,10 +1,10 @@ # encoding: utf-8 require_relative "../../spec_helper" require "sinatra" -require "app/modules/node" +require "logstash/api/modules/node" require "logstash/json" -describe LogStash::Api::Node do +describe LogStash::Api::Modules::Node do include Rack::Test::Methods diff --git a/logstash-core/spec/api/lib/api/node_stats_spec.rb b/logstash-core/spec/api/lib/api/node_stats_spec.rb index c90d167e3a7..03bf7fd6152 100644 --- a/logstash-core/spec/api/lib/api/node_stats_spec.rb +++ b/logstash-core/spec/api/lib/api/node_stats_spec.rb @@ -1,68 +1,43 @@ # encoding: utf-8 require_relative "../../spec_helper" require "sinatra" -require "app/modules/node_stats" +require "logstash/api/modules/node_stats" require "logstash/json" -describe LogStash::Api::NodeStats do - +describe LogStash::Api::Modules::NodeStats do include Rack::Test::Methods + extend ResourceDSLMethods - def app() + def app() # Used by Rack::Test::Methods described_class end - let(:payload) { LogStash::Json.load(last_response.body) } - - context "#root" do - - before(:all) do - do_request { get "/" } - end - - it "respond OK" do - expect(last_response).to be_ok - end - - ["events", "jvm"].each do |key| - it "contains #{key} information" do - expect(payload).to include(key) - end - end - end - - context "#events" do - - let(:payload) { LogStash::Json.load(last_response.body) } - - before(:all) do - do_request { get "/events" } - end - - it "respond OK" do - expect(last_response).to be_ok - end - - it "contains events information" do - expect(payload).to include("events") - end - end - - context "#jvm" do - - let(:payload) { LogStash::Json.load(last_response.body) } - - before(:all) do - do_request { get "/jvm" } - end - - it "respond OK" do - expect(last_response).to be_ok - end - - it "contains memory information" do - expect(payload).to include("mem") - end - end - + # DSL describing response structure + root_structure = { + "events"=>{ + "in"=>Numeric, + "filtered"=>Numeric, + "out"=>Numeric + }, + "jvm"=>{ + "threads"=>{ + "count"=>Numeric, + "peak_count"=>Numeric + } + }, + "process"=>{ + "peak_open_file_descriptors"=>Numeric, + "max_file_descriptors"=>Numeric, + "open_file_descriptors"=>Numeric, + "mem"=>{ + "total_virtual_in_bytes"=>Numeric + }, + "cpu"=>{ + "total_in_millis"=>Numeric, + "percent"=>Numeric + } + } + } + + test_api_and_resources(root_structure) end diff --git a/logstash-core/spec/api/lib/api/plugins_spec.rb b/logstash-core/spec/api/lib/api/plugins_spec.rb index 4e0aa66b48b..6e646827244 100644 --- a/logstash-core/spec/api/lib/api/plugins_spec.rb +++ b/logstash-core/spec/api/lib/api/plugins_spec.rb @@ -1,10 +1,10 @@ # encoding: utf-8 require_relative "../../spec_helper" require "sinatra" -require "app/modules/plugins" +require "logstash/api/modules/plugins" require "logstash/json" -describe LogStash::Api::Plugins do +describe LogStash::Api::Modules::Plugins do include Rack::Test::Methods diff --git a/logstash-core/spec/api/lib/api/root_spec.rb b/logstash-core/spec/api/lib/api/root_spec.rb index 6bc8a4937b6..2395c9edc5d 100644 --- a/logstash-core/spec/api/lib/api/root_spec.rb +++ b/logstash-core/spec/api/lib/api/root_spec.rb @@ -1,10 +1,10 @@ # encoding: utf-8 require_relative "../../spec_helper" require "sinatra" -require "app/root" +require "logstash/api/modules/root" require "logstash/json" -describe LogStash::Api::Root do +describe LogStash::Api::Modules::Root do include Rack::Test::Methods diff --git a/logstash-core/spec/api/lib/api/stats_spec.rb b/logstash-core/spec/api/lib/api/stats_spec.rb deleted file mode 100644 index 8dfd2617b42..00000000000 --- a/logstash-core/spec/api/lib/api/stats_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -# encoding: utf-8 -require_relative "../../spec_helper" -require "sinatra" -require "app/modules/stats" - -describe LogStash::Api::Stats do - - include Rack::Test::Methods - - def app() - described_class - end - - it "respond to the jvm resource" do - do_request { get "/jvm" } - expect(last_response).to be_ok - end - -end diff --git a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb new file mode 100644 index 00000000000..786a37f984a --- /dev/null +++ b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb @@ -0,0 +1,47 @@ +module ResourceDSLMethods + # Convert a nested hash to a mapping of key paths to expected classes + def hash_to_mapping(h, path=[], mapping={}) + h.each do |k,v| + if v.is_a?(Hash) + hash_to_mapping(v, path + [k], mapping) + else + full_path = path + [k] + mapping[full_path] = v + end + end + mapping + end + + def test_api(expected, path) + context "GET #{path}" do + let(:payload) { LogStash::Json.load(last_response.body) } + + before(:all) do + do_request { get path } + end + + it "should respond OK" do + expect(last_response).to be_ok + end + + hash_to_mapping(expected).each do |path,klass| + dotted = path.join(".") + + it "should set '#{dotted}' to be a '#{klass}'" do + path_value = path.reduce(payload) {|acc,v| acc[v]} + expect(path_value).to be_a(klass), "could not find '#{dotted}' in #{payload}" + end + end + end + + yield if block_given? # Add custom expectations + end + + def test_api_and_resources(expected) + test_api(expected, "/") + + expected.keys.each do |key| + test_api({key => expected[key]}, "/#{key}") + end + end +end diff --git a/logstash-core/spec/api/lib/commands/events_spec.rb b/logstash-core/spec/api/lib/commands/events_spec.rb deleted file mode 100644 index 9bbcc3e7aa8..00000000000 --- a/logstash-core/spec/api/lib/commands/events_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# encoding: utf-8 -require_relative "../../spec_helper" -require "app/commands/stats/events_command" - -describe LogStash::Api::StatsEventsCommand do - - context "#schema" do - - let(:report) do - do_request { subject.run } - end - - it "return events information" do - expect(report).to include("in", "filtered", "out") - end - end -end diff --git a/logstash-core/spec/api/lib/commands/jvm_spec.rb b/logstash-core/spec/api/lib/commands/jvm_spec.rb deleted file mode 100644 index e3f01d00aaf..00000000000 --- a/logstash-core/spec/api/lib/commands/jvm_spec.rb +++ /dev/null @@ -1,45 +0,0 @@ -# encoding: utf-8 -require_relative "../../spec_helper" -require "app/commands/stats/hotthreads_command" -require "app/commands/stats/memory_command" - -describe "JVM stats" do - - describe LogStash::Api::HotThreadsCommand do - - let(:report) do - do_request { subject.run } - end - - context "#schema" do - it "return hot threads information" do - report = do_request { subject.run } - expect(report.to_s).not_to be_empty - end - - end - end - - describe LogStash::Api::JvmMemoryCommand do - - context "#schema" do - - let(:report) do - do_request { subject.run } - end - - it "return hot threads information" do - expect(report).not_to be_empty - end - - it "return heap information" do - expect(report.keys).to include(:heap_used_in_bytes) - end - - it "return non heap information" do - expect(report.keys).to include(:non_heap_used_in_bytes) - end - - end - end -end diff --git a/logstash-core/spec/api/lib/commands/stats.rb b/logstash-core/spec/api/lib/commands/stats.rb new file mode 100644 index 00000000000..3059e1460f3 --- /dev/null +++ b/logstash-core/spec/api/lib/commands/stats.rb @@ -0,0 +1,47 @@ +# encoding: utf-8 +require_relative "../../spec_helper" + +describe LogStash::Api::Commands::Stats do + + let(:report_method) { :run } + subject(:report) { do_request { report_class.new.send(report_method) } } + + let(:report_class) { described_class } + + describe "#events" do + let(:report_method) { :events } + + it "return events information" do + expect(report.keys).to include(:in, :filtered, :out) + end + end + + describe "#hot_threads" do + let(:report_method) { :hot_threads } + + it "should return hot threads information as a string" do + expect(report.to_s).to be_a(String) + end + + it "should return hot threads info as a hash" do + expect(report.to_hash).to be_a(Hash) + end + end + + describe "memory stats" do + let(:report_method) { :memory } + + it "return hot threads information" do + expect(report).not_to be_empty + end + + it "return heap information" do + expect(report.keys).to include(:heap_used_in_bytes) + end + + it "return non heap information" do + expect(report.keys).to include(:non_heap_used_in_bytes) + end + + end +end diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index 190eca38d93..4149bd3956c 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -2,16 +2,13 @@ API_ROOT = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "lib", "logstash", "api")) require "logstash/devutils/rspec/spec_helper" +require "api/lib/api/support/resource_dsl_methods" require "logstash/settings" require 'rack/test' require 'rspec' require "json" -ENV['RACK_ENV'] = 'test' - -Rack::Builder.parse_file(File.join(API_ROOT, 'init.ru')) - def read_fixture(name) path = File.join(File.dirname(__FILE__), "fixtures", name) File.read(path) @@ -80,7 +77,7 @@ def wait_until_snapshot_received ## # Method used to wrap up a request in between of a running -# pipeline, this makes the hole execution model easier and +# pipeline, this makes the whole execution model easier and # more contained as some threads might go wild. ## def do_request(&block) diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb new file mode 100644 index 00000000000..649e711d119 --- /dev/null +++ b/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb @@ -0,0 +1,45 @@ +require 'spec_helper' +require 'logstash/instrument/periodic_poller/jvm' + +describe LogStash::Instrument::PeriodicPoller::JVM do + let(:metric) { LogStash::Instrument::Metric.new } + let(:options) { {} } + subject(:jvm) { described_class.new(metric, options) } + + it "should initialize cleanly" do + expect { jvm }.not_to raise_error + end + + describe "collections" do + subject(:collection) { jvm.collect } + + it "should run cleanly" do + expect { collection }.not_to raise_error + end + + describe "metrics" do + let(:snapshot_store) { metric.collector.snapshot_metric.metric_store } + subject(:jvm_metrics) { snapshot_store.get_shallow(:jvm, :process) } + + # Make looking up metric paths easy when given varargs of keys + # e.g. mval(:parent, :child) + def mval(*metric_path) + metric_path.reduce(jvm_metrics) {|acc,k| acc[k]}.value + end + + [ + :max_file_descriptors, + :open_file_descriptors, + :peak_open_file_descriptors, + [:mem, :total_virtual_in_bytes], + [:cpu, :total_in_millis], + [:cpu, :percent] + ].each do |path| + path = Array(path) + it "should have a value for #{path} that is Numeric" do + expect(mval(*path)).to be_a(Numeric) + end + end + end + end +end From 58b1c5386a5a1b9a8875e74fa85298b8ce31cbcd Mon Sep 17 00:00:00 2001 From: Aaron Mildenstein Date: Fri, 27 May 2016 14:43:40 -0600 Subject: [PATCH 139/632] Fix starting logstash from command-line This fix is for packages only (RPM/DEB) This puts the requisite changes into /etc/logstash/logstash.yml so that starting logstash from the command-line, e.g. `/usr/share/logstash/bin/logstash --path.settings /etc/logstash` will read the pipeline from `/etc/logstash/conf.d` and log to `/var/log/logstash/logstash.log`. fixes #5379 Comment out tmpdir in jvm.options The absence of the tmpdir can cause JRuby to fail Fixes #5383 --- config/jvm.options | 2 +- pkg/centos/after-install.sh | 6 ++++-- pkg/debian/after-install.sh | 4 ++++ pkg/jvm.options | 2 +- pkg/ubuntu/after-install.sh | 4 ++++ 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/config/jvm.options b/config/jvm.options index b50648b2f85..68abc1ad17e 100644 --- a/config/jvm.options +++ b/config/jvm.options @@ -40,7 +40,7 @@ ## basic # set the I/O temp directory --Djava.io.tmpdir=$HOME +#-Djava.io.tmpdir=$HOME # set to headless, just in case -Djava.awt.headless=true diff --git a/pkg/centos/after-install.sh b/pkg/centos/after-install.sh index ed62ee57903..1c4e7d6a6b7 100644 --- a/pkg/centos/after-install.sh +++ b/pkg/centos/after-install.sh @@ -1,7 +1,9 @@ -# /sbin/chkconfig --add logstash - chown -R logstash:logstash /usr/share/logstash chown logstash /var/log/logstash chown logstash:logstash /var/lib/logstash chmod 0644 /etc/logrotate.d/logstash +sed -i \ + -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ + -e 's|# path.log:|path.log: /var/log/logstash/logstash.log|' \ + /etc/logstash/logstash.yml /usr/share/logstash/bin/system-install /etc/logstash/startup.options diff --git a/pkg/debian/after-install.sh b/pkg/debian/after-install.sh index 21b69ac7142..362a4ea1e58 100644 --- a/pkg/debian/after-install.sh +++ b/pkg/debian/after-install.sh @@ -5,4 +5,8 @@ chown logstash /var/log/logstash chown logstash:logstash /var/lib/logstash chmod 755 /etc/logstash chmod 0644 /etc/logrotate.d/logstash +sed -i \ + -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ + -e 's|# path.log:|path.log: /var/log/logstash/logstash.log|' \ + /etc/logstash/logstash.yml /usr/share/logstash/bin/system-install /etc/logstash/startup.options diff --git a/pkg/jvm.options b/pkg/jvm.options index b22cb35ea73..2568d6d4f5a 100644 --- a/pkg/jvm.options +++ b/pkg/jvm.options @@ -40,7 +40,7 @@ ## basic # set the I/O temp directory --Djava.io.tmpdir=$HOME +#-Djava.io.tmpdir=$HOME # set to headless, just in case -Djava.awt.headless=true diff --git a/pkg/ubuntu/after-install.sh b/pkg/ubuntu/after-install.sh index 794bb4d2cdc..d4827cb7e3a 100644 --- a/pkg/ubuntu/after-install.sh +++ b/pkg/ubuntu/after-install.sh @@ -4,4 +4,8 @@ chown -R logstash:logstash /usr/share/logstash chown logstash /var/log/logstash chown logstash:logstash /var/lib/logstash chmod 0644 /etc/logrotate.d/logstash +sed -i \ + -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ + -e 's|# path.log:|path.log: /var/log/logstash/logstash.log|' \ + /etc/logstash/logstash.yml /usr/share/logstash/bin/system-install /etc/logstash/startup.options From 4baf29dc5f76a05c3c1486d56bc7a973b0825f1f Mon Sep 17 00:00:00 2001 From: Aaron Mildenstein Date: Fri, 27 May 2016 16:05:58 -0600 Subject: [PATCH 140/632] Add SINCEDB_DIR env var to logstash.lib.sh This is to fix the file input Fixes #5385 --- bin/logstash.lib.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/logstash.lib.sh b/bin/logstash.lib.sh index 55c4c911824..4e06913f35f 100755 --- a/bin/logstash.lib.sh +++ b/bin/logstash.lib.sh @@ -25,6 +25,8 @@ fi LOGSTASH_HOME=$(cd `dirname $SOURCEPATH`/..; pwd) export LOGSTASH_HOME +SINCEDB_DIR=${LOGSTASH_HOME} +export SINCEDB_DIR parse_jvm_options() { if [ -f "$1" ]; then From 6bf60f71ca6845f73979b600c2f2ea76865f68f8 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Fri, 27 May 2016 16:46:54 -0500 Subject: [PATCH 141/632] Downgrade puma to 2.x to keep it compatible with the HTTP input for now Fixes #5384 --- logstash-core/logstash-core.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index fc621bc702a..f63617656f8 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -27,7 +27,7 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency "gems", "~> 0.8.3" #(MIT license) gem.add_runtime_dependency "concurrent-ruby", "1.0.0" gem.add_runtime_dependency "sinatra", '~> 1.4', '>= 1.4.6' - gem.add_runtime_dependency 'puma', '~> 3.4.0' + gem.add_runtime_dependency 'puma', '~> 2.16' gem.add_runtime_dependency "jruby-openssl", "0.9.16" # >= 0.9.13 Required to support TLSv1.2 gem.add_runtime_dependency "chronic_duration", "0.10.6" gem.add_runtime_dependency "jrmonitor", '~> 0.4.2' From e402062d77e641994b86e1240562d1146f3bf4da Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Fri, 27 May 2016 17:28:42 -0500 Subject: [PATCH 142/632] Fix rake test:core path loading in API specs Fixes #5384 --- logstash-core/spec/api/lib/api/plugins_spec.rb | 2 +- logstash-core/spec/api/spec_helper.rb | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/logstash-core/spec/api/lib/api/plugins_spec.rb b/logstash-core/spec/api/lib/api/plugins_spec.rb index 6e646827244..216811d0a9b 100644 --- a/logstash-core/spec/api/lib/api/plugins_spec.rb +++ b/logstash-core/spec/api/lib/api/plugins_spec.rb @@ -23,7 +23,7 @@ def app() end it "return valid json content type" do - expect(last_response.content_type).to eq("application/json") + expect(last_response.content_type).to eq("application/json"), "Did not get json, got #{last_response.content_type} / #{last_response.body}" end context "#schema" do diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index 4149bd3956c..befead55d1e 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -1,8 +1,12 @@ # encoding: utf-8 API_ROOT = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "lib", "logstash", "api")) + + require "logstash/devutils/rspec/spec_helper" -require "api/lib/api/support/resource_dsl_methods" + +$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) +require "lib/api/support/resource_dsl_methods" require "logstash/settings" require 'rack/test' From 53b164fd4487be5d7e9d2c6e0cbcc50830a5fc8b Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Fri, 27 May 2016 17:29:17 -0500 Subject: [PATCH 143/632] Always run sinatra in production, it makes debugging tests easier Fixes #5384 --- logstash-core/lib/logstash/api/modules/base.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/logstash-core/lib/logstash/api/modules/base.rb b/logstash-core/lib/logstash/api/modules/base.rb index 022e697ded9..4f9855f6e50 100644 --- a/logstash-core/lib/logstash/api/modules/base.rb +++ b/logstash-core/lib/logstash/api/modules/base.rb @@ -7,6 +7,8 @@ module Modules class Base < ::Sinatra::Base helpers AppHelpers + set :environment, :production + attr_reader :factory if settings.environment != :production From d7c4895d854ff45b0b9d63223aa00495a97a2695 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Fri, 27 May 2016 17:29:31 -0500 Subject: [PATCH 144/632] Fix resolution of ::Gem constant in API Fixes #5384 --- .../lib/logstash/api/commands/system/plugins_command.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/api/commands/system/plugins_command.rb b/logstash-core/lib/logstash/api/commands/system/plugins_command.rb index f787f9aff9b..378f65e8598 100644 --- a/logstash-core/lib/logstash/api/commands/system/plugins_command.rb +++ b/logstash-core/lib/logstash/api/commands/system/plugins_command.rb @@ -21,7 +21,7 @@ def plugins end def find_plugins_gem_specs - @specs ||= Gem::Specification.find_all.select{|spec| logstash_plugin_gem_spec?(spec)} + @specs ||= ::Gem::Specification.find_all.select{|spec| logstash_plugin_gem_spec?(spec)} end def logstash_plugin_gem_spec?(spec) From 83c14614c00aa42240a4c0c687f705106103747b Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 30 May 2016 09:48:33 -0400 Subject: [PATCH 145/632] Remove XIT for metric test in the agent_spec. The XIT was added to make sure we were able to build LS packages. This PR revert the xit since the bug was fixed in #5307 Fixes: #5371 Fixes #5392 --- logstash-core/spec/logstash/agent_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 3d395c15051..5a40ee9c0ec 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -373,7 +373,7 @@ @t.join end - xit "resets the metric collector" do + it "resets the metric collector" do # We know that the store has more events coming in. sleep(0.01) while dummy_output.events.size < new_config_generator_counter snapshot = LogStash::Instrument::Collector.instance.snapshot_metric From 6749c8757292a3dcc0c208be12633ccd62573f95 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 30 May 2016 18:16:27 +0100 Subject: [PATCH 146/632] tolerate incorrect path.settings value Fixes #5393 --- logstash-core/lib/logstash/runner.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index e89945701e9..4ab76bc5f29 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -138,7 +138,12 @@ def run(args) @settings.set("path.settings", settings_path) if settings_path + begin LogStash::SETTINGS.from_yaml(LogStash::SETTINGS.get("path.settings")) + rescue => e + puts "Warning: Could not find logstash.yml in 'path.settings' (value: \"#{LogStash::SETTINGS.get("path.settings")}\"), using internal defaults." + end + super(*[args]) end From 595658f51263d67cbe1d22d9274e752a1398397a Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 31 May 2016 09:53:49 +0100 Subject: [PATCH 147/632] abort if path.settings does not contain logstash.yml Fixes #5393 --- logstash-core/lib/logstash/runner.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 4ab76bc5f29..f0a630a324a 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -139,9 +139,12 @@ def run(args) @settings.set("path.settings", settings_path) if settings_path begin - LogStash::SETTINGS.from_yaml(LogStash::SETTINGS.get("path.settings")) + LogStash::SETTINGS.from_yaml(LogStash::SETTINGS.get("path.settings")) rescue => e - puts "Warning: Could not find logstash.yml in 'path.settings' (value: \"#{LogStash::SETTINGS.get("path.settings")}\"), using internal defaults." + @logger.subscribe(STDOUT) + @logger.warn("Logstash has a new settings file which defines start up time settings. This file is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually please specify the location to this settings file by passing in \"--path.settings=/path/..\" in the command line options") + @logger.fatal("Failed to load settings file from \"path.settings\". Aborting...", "path.settings" => LogStash::SETTINGS.get("path.settings"), "exception" => e.class, "message" => e.message) + exit(-1) end super(*[args]) From ec627a1f4022e1c6d2f020f27dde30e1b8a1a01c Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 31 May 2016 16:17:59 +0200 Subject: [PATCH 148/632] Add breaking changes doc (#5402) * Add breaking changes doc for 5.0.0-alpha3 --- docs/static/breaking-changes.asciidoc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 2b432131c76..fc722534fdd 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -2,6 +2,23 @@ == Breaking changes **Breaking changes in 5.0** + +Application Settings: Introduced a new way to configure application settings for Logstash through a settings.yml file. This file +is typically located in `LS_HOME/config`, or `/etc/logstash` when installed via packages. Logstash will not be able +to start without this file, so please make sure to pass in `--path.settings` if you are starting Logstash manually +after installing it via a package (RPM, DEB). + +Release Packages: When Logstash is installed via DEB, RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries and config files +respectively. Previously it used to install in `/opt` directory. This change was done to make the user experience +consistent with other Elastic products. Full directory layout is described https://www.elastic.co/guide/en/logstash/5.0/dir-layout.html[here]. + +Command Line Interface: Most of the long form https://www.elastic.co/guide/en/logstash/5.0/command-line-flags.html[options] have been renamed +to adhere to the yml dot notation to be used in the settings file. Short form options have not been changed. + +Plugin Developers: The Event class has a https://github.com/elastic/logstash/issues/5141[new API] to access its data. You will no longer be able to directly use +the Event class through the ruby hash paradigm. All the plugins packaged with Logstash has been updated +to use the new API and their versions bumped to the next major. + The command `bin/plugin` has been renamed to `bin/logstash-plugin`. `bin/plugin `` which is the current way of install packs/plugins is problematic because it pollutes the global namespace if it is put in the path. This command can now install both plugins and "Packs" - a single zip that contains 0 or 1 plugin for each system From 0f1ff0f428886a0a25bf90777e966b099470270d Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 24 May 2016 19:06:00 -0700 Subject: [PATCH 149/632] Restructure getting started content Fixes #5387 --- docs/static/advanced-pipeline.asciidoc | 538 +++++++++--------- .../getting-started-with-logstash.asciidoc | 32 +- .../static/images/basic_logstash_pipeline.png | Bin 78679 -> 57126 bytes docs/static/introduction.asciidoc | 2 +- docs/static/life-of-an-event.asciidoc | 15 +- docs/static/stalled-shutdown.asciidoc | 63 ++ 6 files changed, 348 insertions(+), 302 deletions(-) create mode 100644 docs/static/stalled-shutdown.asciidoc diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index 836b9377cb4..26450218786 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -1,17 +1,12 @@ [[advanced-pipeline]] -=== Setting Up an Advanced Logstash Pipeline +=== Parsing Logs with Logstash -A Logstash pipeline in most use cases has one or more input, filter, and output plugins. The scenarios in this section -build Logstash configuration files to specify these plugins and discuss what each plugin is doing. +In <>, you created a basic Logstash pipeline to test your Logstash setup. In the real world, a Logstash +pipeline is a bit more complex: it typically has one or more input, filter, and output plugins. -The Logstash configuration file defines your _Logstash pipeline_. When you start a Logstash instance, use the -`-f ` option to specify the configuration file that defines that instance’s pipeline. - -A Logstash pipeline has two required elements, `input` and `output`, and one optional element, `filter`. The input -plugins consume data from a source, the filter plugins modify the data as you specify, and the output plugins write -the data to a destination. - -image::static/images/basic_logstash_pipeline.png[] +In this section, you create a Logstash pipeline that takes Apache web logs as input, parses those +logs to create specific, named fields from the logs, and writes the parsed data to an Elasticsearch cluster. Rather than +defining the pipeline configuration at the command line, you'll define the pipeline in a config file. The following text represents the skeleton of a configuration pipeline: @@ -30,34 +25,32 @@ output { } -------------------------------------------------------------------------------- -This skeleton is non-functional, because the input and output sections don’t have any valid options defined. The -examples in this tutorial build configuration files to address specific use cases. - -Paste the skeleton into a file named `first-pipeline.conf` in your home Logstash directory. - -[[parsing-into-es]] -==== Parsing Apache Logs into Elasticsearch - -This example creates a Logstash pipeline that takes Apache web logs as input, parses those logs to create specific, -named fields from the logs, and writes the parsed data to an Elasticsearch cluster. +This skeleton is non-functional, because the input and output sections don’t have any valid options defined. -You can download the sample data set used in this example -https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz[here]. Unpack this file. +To get started, copy and paste the skeleton configuration pipeline into a file named `first-pipeline.conf` in your home +Logstash directory. Then go https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz[here] to +download the sample data set used in this example. Unpack the file. [float] [[configuring-file-input]] ==== Configuring Logstash for File Input -To start your Logstash pipeline, configure the Logstash instance to read from a file using the -{logstash}plugins-inputs-file.html[file] input plugin. +//ALVIN: I know you would like to see Filebeat used here instead, but that's going to make the tutorial significantly more complicated because users will need to go out and correctly install/configure Filebeat before they can do these steps. It's better for users to understand Logstash concpetually before we introduce more complexity. -Edit the `first-pipeline.conf` file to add the following text: +NOTE: This example uses the file input plugin for convenience. To tail files in the real world, you'll use +Filebeat to ship log events to Logstash. You learn how to <> later +when you build a more sophisticated pipeline. + +To begin your Logstash pipeline, configure the Logstash instance to read from a file by using the +{logstash}plugins-inputs-file.html[`file`] input plugin. + +Edit the `first-pipeline.conf` file and replace the entire `input` section with the following text: [source,json] -------------------------------------------------------------------------------- input { file { - path => "/path/to/logstash-tutorial.log" + path => "/path/to/file/*.log" start_position => beginning <1> ignore_older => 0 <2> } @@ -67,21 +60,23 @@ input { <1> The default behavior of the file input plugin is to monitor a file for new information, in a manner similar to the UNIX `tail -f` command. To change this default behavior and process the entire file, we need to specify the position where Logstash starts processing the file. -<2> The default behavior of the file input plugin is to ignore files whose last modification is greater than 86400s. To change this default behavior and process the tutorial file (which date can be much older than a day), we need to specify to not ignore old files. +<2> The default behavior of the file input plugin is to ignore files whose last modification is greater than 86400s. To change this default behavior and process the tutorial file (which is probably much older than a day), we need to configure Logstash so that it does not ignore old files. -Replace `/path/to/` with the actual path to the location of `logstash-tutorial.log` in your file system. +Replace `/path/to/file` with the absolute path to the location of `logstash-tutorial.log` in your file system. [float] [[configuring-grok-filter]] -===== Parsing Web Logs with the Grok Filter Plugin +==== Parsing Web Logs with the Grok Filter Plugin The {logstash}plugins-filters-grok.html[`grok`] filter plugin is one of several plugins that are available by default in Logstash. For details on how to manage Logstash plugins, see the <> for the plugin manager. -Because the `grok` filter plugin looks for patterns in the incoming log data, configuration requires you to make -decisions about how to identify the patterns that are of interest to your use case. A representative line from the web -server log sample looks like this: +The `grok` filter plugin enables you to parse the unstructured log data into something structured and queryable. + +Because the `grok` filter plugin looks for patterns in the incoming log data, configuring the plugin requires you to +make decisions about how to identify the patterns that are of interest to your use case. A representative line from the +web server log sample looks like this: [source,shell] -------------------------------------------------------------------------------- @@ -90,8 +85,7 @@ HTTP/1.1" 200 203023 "http://semicomplete.com/presentations/logstash-monitorama- Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -------------------------------------------------------------------------------- -The IP address at the beginning of the line is easy to identify, as is the timestamp in brackets. In this tutorial, use -the `%{COMBINEDAPACHELOG}` grok pattern, which structures lines from the Apache log using the following schema: +The IP address at the beginning of the line is easy to identify, as is the timestamp in brackets. To parse the data, you can use the `%{COMBINEDAPACHELOG}` grok pattern, which structures lines from the Apache log using the following schema: [horizontal] *Information*:: *Field Name* @@ -107,7 +101,9 @@ Bytes served:: `bytes` Referrer URL:: `referrer` User agent:: `agent` -Edit the `first-pipeline.conf` file to add the following text: +//QUESTION: The name/value pairs above are backwards. Is this really how grok parses the data, or is this a mistake? + +Edit the `first-pipeline.conf` file and replace the entire `filter` section with the following text: [source,json] -------------------------------------------------------------------------------- @@ -117,15 +113,8 @@ filter { } } -------------------------------------------------------------------------------- -And change output to see a result : -[source,json] --------------------------------------------------------------------------------- -output { - stdout { codec => rubydebug } -} --------------------------------------------------------------------------------- -After processing, the sample line has the following JSON representation: +After processing the log file with the grok pattern, the sample line will have the following JSON representation: [source,json] -------------------------------------------------------------------------------- @@ -145,60 +134,75 @@ After processing, the sample line has the following JSON representation: -------------------------------------------------------------------------------- [float] -[[indexing-parsed-data-into-elasticsearch]] -===== Indexing Parsed Data into Elasticsearch +[[configuring-geoip-plugin]] +==== Enhancing Your Data with the Geoip Filter Plugin -Now that the web logs are broken down into specific fields, the Logstash pipeline can index the data into an -Elasticsearch cluster. Edit the `first-pipeline.conf` file to add the following text after the `input` section: +In addition to parsing log data for better searches, filter plugins can derive supplementary information from existing +data. As an example, the {logstash}plugins-filters-geoip.html[`geoip`] plugin looks up IP addresses, derives geographic +location information from the addresses, and adds that location information to the logs. + +Configure your Logstash instance to use the `geoip` filter plugin by adding the following lines to the `filter` section +of the `first-pipeline.conf` file: [source,json] -------------------------------------------------------------------------------- -output { - elasticsearch { + geoip { + source => "clientip" } -} -------------------------------------------------------------------------------- -With this configuration, Logstash uses http protocol to connect to Elasticsearch. The above example assumes Logstash -and Elasticsearch to be running on the same instance. You can specify a remote Elasticsearch instance using `hosts` -configuration like `hosts => "es-machine:9092"`. +The `geoip` plugin configuration requires you to specify the name of the source field that contains the IP address to look up. In this example, the `clientip` field contains the IP address. -[float] -[[configuring-geoip-plugin]] -===== Enhancing Your Data with the Geoip Filter Plugin +Make sure that the `geoip` section is after the `grok` section of the configuration file and that both the `grok` and +`geoip` sections are nested within the `filter` section like this: -In addition to parsing log data for better searches, filter plugins can derive supplementary information from existing -data. As an example, the {logstash}plugins-filters-geoip.html[`geoip`] plugin looks up IP addresses, derives geographic -location information from the addresses, and adds that location information to the logs. +[source,json] +-------------------------------------------------------------------------------- + filter { + grok { + match => { "message" => "%{COMBINEDAPACHELOG}"} + } + geoip { + source => "clientip" + } +-------------------------------------------------------------------------------- -Configure your Logstash instance to use the `geoip` filter plugin by adding the following lines to the `filter` section -of the `first-pipeline.conf` file: + +[float] +[[indexing-parsed-data-into-elasticsearch]] +==== Indexing Your Data into Elasticsearch + +Now that the web logs are broken down into specific fields, the Logstash pipeline can index the data into an +Elasticsearch cluster. Edit the `first-pipeline.conf` file and replace the entire `output` section with the following +text: [source,json] -------------------------------------------------------------------------------- -geoip { - source => "clientip" +output { + elasticsearch { + hosts => "localhost:9200" + } } -------------------------------------------------------------------------------- -The `geoip` plugin configuration requires data that is already defined as separate fields. Make sure that the `geoip` -section is after the `grok` section of the configuration file. - -Specify the name of the field that contains the IP address to look up. In this tutorial, the field name is `clientip`. +With this configuration, Logstash uses http protocol to connect to Elasticsearch. The above example assumes that +Logstash and Elasticsearch are running on the same instance. You can specify a remote Elasticsearch instance by using +the `hosts` configuration to specify something like `hosts => "es-machine:9092"`. [float] [[testing-initial-pipeline]] ===== Testing Your Initial Pipeline At this point, your `first-pipeline.conf` file has input, filter, and output sections properly configured, and looks -like this: +something like this: [source,json] -------------------------------------------------------------------------------- input { file { - path => "/Users/palecur/logstash-1.5.2/logstash-tutorial-dataset" + path => "/Users/myusername/tutorialdata/*.log" start_position => beginning + ignore_older => 0 } } filter { @@ -210,8 +214,9 @@ filter { } } output { - elasticsearch {} - stdout {} + elasticsearch { + hosts => "localhost:9200" + } } -------------------------------------------------------------------------------- @@ -219,11 +224,11 @@ To verify your configuration, run the following command: [source,shell] -------------------------------------------------------------------------------- -bin/logstash -f first-pipeline.conf --configtest +bin/logstash -f first-pipeline.conf --config.test_and_exit -------------------------------------------------------------------------------- -The `--configtest` option parses your configuration file and reports any errors. When the configuration file passes -the configuration test, start Logstash with the following command: +The `--config.test_and_exit` option parses your configuration file and reports any errors. When the configuration file +passes the configuration test, start Logstash with the following command: [source,shell] -------------------------------------------------------------------------------- @@ -234,212 +239,232 @@ Try a test query to Elasticsearch based on the fields created by the `grok` filt [source,shell] -------------------------------------------------------------------------------- -curl -XGET 'localhost:9200/logstash-$DATE/_search?q=response=200' +curl -XGET 'localhost:9200/logstash-$DATE/_search?pretty&q=response=200' -------------------------------------------------------------------------------- Replace $DATE with the current date, in YYYY.MM.DD format. -Since our sample has just one 200 HTTP response, we get one hit back: +We get multiple hits back. For example: [source,json] -------------------------------------------------------------------------------- -{"took":2, -"timed_out":false, -"_shards":{"total":5, - "successful":5, - "failed":0}, -"hits":{"total":1, - "max_score":1.5351382, - "hits":[{"_index":"logstash-2015.07.30", - "_type":"logs", - "_id":"AU7gqOky1um3U6ZomFaF", - "_score":1.5351382, - "_source":{"message":"83.149.9.216 - - [04/Jan/2015:05:13:45 +0000] \"GET /presentations/logstash-monitorama-2013/images/frontend-response-codes.png HTTP/1.1\" 200 52878 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", - "@version":"1", - "@timestamp":"2015-07-30T20:30:41.265Z", - "host":"localhost", - "path":"/path/to/logstash-tutorial-dataset", - "clientip":"83.149.9.216", - "ident":"-", - "auth":"-", - "timestamp":"04/Jan/2015:05:13:45 +0000", - "verb":"GET", - "request":"/presentations/logstash-monitorama-2013/images/frontend-response-codes.png", - "httpversion":"1.1", - "response":"200", - "bytes":"52878", - "referrer":"\"http://semicomplete.com/presentations/logstash-monitorama-2013/\"", - "agent":"\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"" +{ + "took" : 4, + "timed_out" : false, + "_shards" : { + "total" : 5, + "successful" : 5, + "failed" : 0 + }, + "hits" : { + "total" : 98, + "max_score" : 4.833623, + "hits" : [ { + "_index" : "logstash-2016.05.27", + "_type" : "logs", + "_id" : "AVT0nBiGe_tzyi1erg7-", + "_score" : 4.833623, + "_source" : { + "request" : "/presentations/logstash-monitorama-2013/images/frontend-response-codes.png", + "agent" : "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", + "geoip" : { + "timezone" : "Europe/Moscow", + "ip" : "83.149.9.216", + "latitude" : 55.7522, + "continent_code" : "EU", + "city_name" : "Moscow", + "country_code2" : "RU", + "country_name" : "Russia", + "dma_code" : null, + "country_code3" : "RU", + "region_name" : "Moscow", + "location" : [ 37.6156, 55.7522 ], + "postal_code" : "101194", + "longitude" : 37.6156, + "region_code" : "MOW" + }, + "auth" : "-", + "ident" : "-", + "verb" : "GET", + "message" : "83.149.9.216 - - [04/Jan/2015:05:13:45 +0000] \"GET /presentations/logstash-monitorama-2013/images/frontend-response-codes.png HTTP/1.1\" 200 52878 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", + "referrer" : "\"http://semicomplete.com/presentations/logstash-monitorama-2013/\"", + "@timestamp" : "2016-05-27T23:45:50.828Z", + "response" : "200", + "bytes" : "52878", + "clientip" : "83.149.9.216", + "@version" : "1", + "host" : "myexamplehost", + "httpversion" : "1.1", + "timestamp" : "04/Jan/2015:05:13:45 +0000" } - }] - } -} + }, + ... -------------------------------------------------------------------------------- Try another search for the geographic information derived from the IP address: [source,shell] -------------------------------------------------------------------------------- -curl -XGET 'localhost:9200/logstash-$DATE/_search?q=geoip.city_name=Buffalo' +curl -XGET 'localhost:9200/logstash-$DATE/_search?pretty&q=geoip.city_name=Buffalo' -------------------------------------------------------------------------------- Replace $DATE with the current date, in YYYY.MM.DD format. -Only one of the log entries comes from Buffalo, so the query produces a single response: +A few log entries come from Buffalo, so the query produces the following response: [source,json] -------------------------------------------------------------------------------- -{"took":3, -"timed_out":false, -"_shards":{ - "total":5, - "successful":5, - "failed":0}, -"hits":{"total":1, - "max_score":1.03399, - "hits":[{"_index":"logstash-2015.07.31", - "_type":"logs", - "_id":"AU7mK3CVSiMeBsJ0b_EP", - "_score":1.03399, - "_source":{ - "message":"108.174.55.234 - - [04/Jan/2015:05:27:45 +0000] \"GET /?flav=rss20 HTTP/1.1\" 200 29941 \"-\" \"-\"", - "@version":"1", - "@timestamp":"2015-07-31T22:11:22.347Z", - "host":"localhost", - "path":"/path/to/logstash-tutorial-dataset", - "clientip":"108.174.55.234", - "ident":"-", - "auth":"-", - "timestamp":"04/Jan/2015:05:27:45 +0000", - "verb":"GET", - "request":"/?flav=rss20", - "httpversion":"1.1", - "response":"200", - "bytes":"29941", - "referrer":"\"-\"", - "agent":"\"-\"", - "geoip":{ - "ip":"108.174.55.234", - "country_code2":"US", - "country_code3":"USA", - "country_name":"United States", - "continent_code":"NA", - "region_name":"NY", - "city_name":"Buffalo", - "postal_code":"14221", - "latitude":42.9864, - "longitude":-78.7279, - "dma_code":514, - "area_code":716, - "timezone":"America/New_York", - "real_region_name":"New York", - "location":[-78.7279,42.9864] +{ + "took" : 2, + "timed_out" : false, + "_shards" : { + "total" : 5, + "successful" : 5, + "failed" : 0 + }, + "hits" : { + "total" : 3, + "max_score" : 1.0520113, + "hits" : [ { + "_index" : "logstash-2016.05.27", + "_type" : "logs", + "_id" : "AVT0nBiHe_tzyi1erg9T", + "_score" : 1.0520113, + "_source" : { + "request" : "/blog/geekery/solving-good-or-bad-problems.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+semicomplete%2Fmain+%28semicomplete.com+-+Jordan+Sissel%29", + "agent" : "\"Tiny Tiny RSS/1.11 (http://tt-rss.org/)\"", + "geoip" : { + "timezone" : "America/New_York", + "ip" : "198.46.149.143", + "latitude" : 42.9864, + "continent_code" : "NA", + "city_name" : "Buffalo", + "country_code2" : "US", + "country_name" : "United States", + "dma_code" : 514, + "country_code3" : "US", + "region_name" : "New York", + "location" : [ -78.7279, 42.9864 ], + "postal_code" : "14221", + "longitude" : -78.7279, + "region_code" : "NY" + }, + "auth" : "-", + "ident" : "-", + "verb" : "GET", + "message" : "198.46.149.143 - - [04/Jan/2015:05:29:13 +0000] \"GET /blog/geekery/solving-good-or-bad-problems.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+semicomplete%2Fmain+%28semicomplete.com+-+Jordan+Sissel%29 HTTP/1.1\" 200 10756 \"-\" \"Tiny Tiny RSS/1.11 (http://tt-rss.org/)\"", + "referrer" : "\"-\"", + "@timestamp" : "2016-05-27T23:45:50.836Z", + "response" : "200", + "bytes" : "10756", + "clientip" : "198.46.149.143", + "@version" : "1", + "host" : "myexamplehost", + "httpversion" : "1.1", + "timestamp" : "04/Jan/2015:05:29:13 +0000" } - } - }] - } -} + }, + ... -------------------------------------------------------------------------------- [[multiple-input-output-plugins]] -==== Multiple Input and Output Plugins +=== Stitching Together Multiple Input and Output Plugins + +//NOTE: EITHER NEED A COMPREHENSIVE EXAMPLE HERE THAT MAKES SENSE, OR THESE SHOULD BE SEPARATE SECTIONS WHERE USERS GET TO TEST EACH SECTION ONE AT A TIME. The information you need to manage often comes from several disparate sources, and use cases can require multiple destinations for your data. Your Logstash pipeline can use multiple input and output plugins to handle these requirements. -This example creates a Logstash pipeline that takes input from a Twitter feed and the Filebeat client, then +In this section, you create a Logstash pipeline that takes input from a Twitter feed and the Filebeat client, then sends the information to an Elasticsearch cluster as well as writing the information directly to a file. [float] [[twitter-configuration]] -==== Reading from a Twitter feed +==== Reading from a Twitter Feed -To add a Twitter feed, you need several pieces of information: +To add a Twitter feed, you use the {logstash}plugins-inputs-twitter-oauth_token.html[`twitter`] input plugin. To +configure the plugin, you need several pieces of information: -* A _consumer_ key, which uniquely identifies your Twitter app, which is Logstash in this case. +* A _consumer_ key, which uniquely identifies your Twitter app. * A _consumer secret_, which serves as the password for your Twitter app. -* One or more _keywords_ to search in the incoming feed. +* One or more _keywords_ to search in the incoming feed. The example shows using "cloud" as a keyword, but you can use whatever you want. * An _oauth token_, which identifies the Twitter account using this app. * An _oauth token secret_, which serves as the password of the Twitter account. -Visit https://dev.twitter.com/apps to set up a Twitter account and generate your consumer key and secret, as well as -your OAuth token and secret. +Visit https://dev.twitter.com/apps[https://dev.twitter.com/apps] to set up a Twitter account and generate your consumer +key and secret, as well as your access token and secret. See the docs for the {logstash}plugins-inputs-twitter-oauth_token.html[`twitter`] input plugin if you're not sure how to generate these keys. + +Like you did earlier when you worked on <>, create a config file (called `second-pipeline.conf`) that +contains the skeleton of a configuration pipeline. If you want, you can reuse the file you created earlier, but make +sure you pass in the correct config file name when you run Logstash. -Use this information to add the following lines to the `input` section of the `first-pipeline.conf` file: +Add the following lines to the `input` section of the `second-pipeline.conf` file, substituting your values for the +placeholder values shown here: [source,json] -------------------------------------------------------------------------------- -twitter { - consumer_key => - consumer_secret => - keywords => - oauth_token => - oauth_token_secret => -} + twitter { + consumer_key => "enter_your_consumer_key_here" + consumer_secret => "enter_your_secret_here" + keywords => ["cloud"] + oauth_token => "enter_your_access_token_here" + oauth_token_secret => "enter_your_access_token_secret_here" + } -------------------------------------------------------------------------------- [float] [[configuring-lsf]] ==== The Filebeat Client -The https://github.com/elastic/beats/tree/master/filebeat[filebeat] client is a lightweight, resource-friendly tool that -collects logs from files on the server and forwards these logs to your Logstash instance for processing. The -Filebeat client uses the secure Beats protocol to communicate with your Logstash instance. The -lumberjack protocol is designed for reliability and low latency. Filebeat uses the computing resources of -the machine hosting the source data, and the {logstash}plugins-inputs-beats.html[Beats input] plugin minimizes the +The https://github.com/elastic/beats/tree/master/filebeat[Filebeat] client is a lightweight, resource-friendly tool that +collects logs from files on the server and forwards these logs to your Logstash instance for processing. Filebeat is +designed for reliability and low latency. Filebeat uses the computing resources of the machine hosting the source data, +and the {logstash}plugins-inputs-beats.html[`Beats input`] plugin minimizes the resource demands on the Logstash instance. NOTE: In a typical use case, Filebeat runs on a separate machine from the machine running your Logstash instance. For the purposes of this tutorial, Logstash and Filebeat are running on the same machine. -Default Logstash configuration includes the {logstash}plugins-inputs-beats.html[Beats input plugin], which is -designed to be resource-friendly. To install Filebeat on your data source machine, download the -appropriate package from the Filebeat https://www.elastic.co/downloads/beats/filebeat[product page]. +The default Logstash configuration includes the {logstash}plugins-inputs-beats.html[`Beats input`] plugin. To install +Filebeat on your data source machine, download the appropriate package from the Filebeat https://www.elastic.co/downloads/beats/filebeat[product page]. -Create a configuration file for Filebeat similar to the following example: +After installing Filebeat, you need to configure it. Open the `filebeat.yml` file located in your Filebeat installation +directory, and replace the contents with the following lines. Make sure `paths` points to your syslog: [source,shell] -------------------------------------------------------------------------------- -filebeat: - prospectors: - - - paths: - - "/path/to/sample-log" <1> - fields: - type: syslog -output: - logstash: - hosts: ["localhost:5043"] - tls: - certificate: /path/to/ssl-certificate.crt <2> - certificate_key: /path/to/ssl-certificate.key - certificate_authorities: /path/to/ssl-certificate.crt - timeout: 15 +filebeat.prospectors: +- input_type: log + paths: + - /var/log/*.log <1> + fields: + type: syslog <2> +output.logstash: + hosts: ["localhost:5043"] -------------------------------------------------------------------------------- -<1> Path to the file or files that Filebeat processes. -<2> Path to the SSL certificate for the Logstash instance. +<1> Absolute path to the file or files that Filebeat processes. +<2> Adds a field called `type` with the value `syslog` to the event. -Save this configuration file as `filebeat.yml`. +Save your changes. + +To keep the example configuration simple, you won't specify TLS/SSL settings as you would in a real world +scenario. + +//NOTE: I'VE REMOVED THE CA SETTINGES BECAUSE SETTING UP A CA AND GENERATING CERTIFICATES IS TOO COMPLEX FOR A GETTING STARTED GUIDE. A SIMPLE CONFIG IS BETTER FOR TEACHING CONCEPTS. Configure your Logstash instance to use the Filebeat input plugin by adding the following lines to the `input` section -of the `first-pipeline.conf` file: +of the `second-pipeline.conf` file: [source,json] -------------------------------------------------------------------------------- beats { port => "5043" - ssl => true - ssl_certificate => "/path/to/ssl-cert" <1> - ssl_key => "/path/to/ssl-key" <2> } -------------------------------------------------------------------------------- -<1> Path to the SSL certificate that the Logstash instance uses to authenticate itself to Filebeat. -<2> Path to the key for the SSL certificate. - [float] [[logstash-file-output]] ==== Writing Logstash Data to a File @@ -448,7 +473,7 @@ You can configure your Logstash pipeline to write data directly to a file with t {logstash}plugins-outputs-file.html[`file`] output plugin. Configure your Logstash instance to use the `file` output plugin by adding the following lines to the `output` section -of the `first-pipeline.conf` file: +of the `second-pipeline.conf` file: [source,json] -------------------------------------------------------------------------------- @@ -464,7 +489,7 @@ file { Writing to multiple Elasticsearch nodes lightens the resource demands on a given Elasticsearch node, as well as providing redundant points of entry into the cluster when a particular node is unavailable. -To configure your Logstash instance to write to multiple Elasticsearch nodes, edit the output section of the `first-pipeline.conf` file to read: +To configure your Logstash instance to write to multiple Elasticsearch nodes, edit the `output` section of the `second-pipeline.conf` file to read: [source,json] -------------------------------------------------------------------------------- @@ -483,23 +508,20 @@ default port for Elasticsearch is `9200` and can be omitted in the configuration [[testing-second-pipeline]] ===== Testing the Pipeline -At this point, your `first-pipeline.conf` file looks like this: +At this point, your `second-pipeline.conf` file looks like this: [source,json] -------------------------------------------------------------------------------- input { twitter { - consumer_key => - consumer_secret => - keywords => - oauth_token => - oauth_token_secret => + consumer_key => "enter_your_consumer_key_here" + consumer_secret => "enter_your_secret_here" + keywords => ["cloud"] + oauth_token => "enter_your_access_token_here" + oauth_token_secret => "enter_your_access_token_secret_here" } beats { port => "5043" - ssl => true - ssl_certificate => "/path/to/ssl-cert" - ssl_key => "/path/to/ssl-key" } } output { @@ -507,7 +529,7 @@ output { hosts => ["IP Address 1:port1", "IP Address 2:port2", "IP Address 3"] } file { - path => /path/to/target/file + path => "/path/to/target/file" } } -------------------------------------------------------------------------------- @@ -529,91 +551,41 @@ To verify your configuration, run the following command: [source,shell] -------------------------------------------------------------------------------- -bin/logstash -f first-pipeline.conf --configtest +bin/logstash -f second-pipeline.conf --config.test_and_exit -------------------------------------------------------------------------------- -The `--configtest` option parses your configuration file and reports any errors. When the configuration file passes -the configuration test, start Logstash with the following command: +The `--config.test_and_exit` option parses your configuration file and reports any errors. When the configuration file +passes the configuration test, start Logstash with the following command: [source,shell] -------------------------------------------------------------------------------- -bin/logstash -f first-pipeline.conf +bin/logstash -f second-pipeline.conf -------------------------------------------------------------------------------- Use the `grep` utility to search in the target file to verify that information is present: [source,shell] -------------------------------------------------------------------------------- -grep Mozilla /path/to/target/file +grep syslog /path/to/target/file -------------------------------------------------------------------------------- Run an Elasticsearch query to find the same information in the Elasticsearch cluster: [source,shell] -------------------------------------------------------------------------------- -curl -XGET 'localhost:9200/logstash-2015.07.30/_search?q=agent=Mozilla' +curl -XGET 'localhost:9200/logstash-$DATE/_search?pretty&q=fields.type:syslog' -------------------------------------------------------------------------------- -[[stalled-shutdown]] -=== Stalled Shutdown Detection - -Shutting down a running Logstash instance involves the following steps: - -* Stop all input, filter and output plugins -* Process all in-flight events -* Terminate the Logstash process - -The following conditions affect the shutdown process: - -* An input plugin receiving data at a slow pace. -* A slow filter, like a Ruby filter executing `sleep(10000)` or an Elasticsearch filter that is executing a very heavy -query. -* A disconnected output plugin that is waiting to reconnect to flush in-flight events. +Replace $DATE with the current date, in YYYY.MM.DD format. -These situations make the duration and success of the shutdown process unpredictable. +To see data from the Twitter feed, try this query: -Logstash has a stall detection mechanism that analyzes the behavior of the pipeline and plugins during shutdown. -This mechanism produces periodic information about the count of inflight events in internal queues and a list of busy -worker threads. +[source,shell] +-------------------------------------------------------------------------------- +curl -XGET 'http://localhost:9200/logstash-$DATE/_search?pretty&q=client:iphone' +-------------------------------------------------------------------------------- -To enable Logstash to forcibly terminate in the case of a stalled shutdown, use the `--allow-unsafe-shutdown` flag when -you start Logstash. +Again, remember to replace $DATE with the current date, in YYYY.MM.DD format. -[[shutdown-stall-example]] -==== Stall Detection Example -In this example, slow filter execution prevents the pipeline from clean shutdown. By starting Logstash with the -`--allow-unsafe-shutdown` flag, quitting with *Ctrl+C* results in an eventual shutdown that loses 20 events. -======== -[source,shell] -% bin/logstash -e 'input { generator { } } filter { ruby { code => "sleep 10000" } } \ - output { stdout { codec => dots } }' -w 1 --allow-unsafe-shutdown -Default settings used: Filter workers: 1 -Logstash startup completed -^CSIGINT received. Shutting down the pipeline. {:level=>:warn} -Received shutdown signal, but pipeline is still waiting for in-flight events -to be processed. Sending another ^C will force quit Logstash, but this may cause -data loss. {:level=>:warn} - {:level=>:warn, "INFLIGHT_EVENT_COUNT"=>{"input_to_filter"=>20, "total"=>20}, - "STALLING_THREADS"=> - {["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>15, - "name"=>"|filterworker.0", "current_call"=>" - (ruby filter code):1:in `sleep'"}]}} -The shutdown process appears to be stalled due to busy or blocked plugins. Check - the logs for more information. -{:level=>:error} - {:level=>:warn, "INFLIGHT_EVENT_COUNT"=>{"input_to_filter"=>20, "total"=>20}, - "STALLING_THREADS"=> - {["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>15, - "name"=>"|filterworker.0", "current_call"=>" - (ruby filter code):1:in `sleep'"}]}} - {:level=>:warn, "INFLIGHT_EVENT_COUNT"=>{"input_to_filter"=>20, "total"=>20}, - "STALLING_THREADS"=> - {["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>15, - "name"=>"|filterworker.0", "current_call"=>" - (ruby filter code):1:in `sleep'"}]}} -Forcefully quitting logstash.. {:level=>:fatal} -======== - -When `--allow-unsafe-shutdown` isn't enabled, Logstash continues to run and produce these reports periodically. diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index 231512b96f4..95479e260f1 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -2,15 +2,15 @@ == Getting Started with Logstash This section guides you through the process of installing Logstash and verifying that everything is running properly. -Later sections deal with increasingly complex configurations to address selected use cases. This section includes the -following topics: +After learning how to stash your first event, you go on to create a more advanced pipeline that takes Apache web logs as +input, parses the logs, and writes the parsed data to an Elasticsearch cluster. Then you learn how to stitch together multiple input and output plugins to unify data from a variety of disparate sources. + +This section includes the following topics: * <> * <> * <> -* <> -* <> - +* <> [[installing-logstash]] === Installing Logstash @@ -129,7 +129,17 @@ yum install logstash -------------------------------------------------- [[first-event]] -=== Stashing Your First Event: Basic Logstash Example +=== Stashing Your First Event + +First, let's test your Logstash installation by running the most basic _Logstash pipeline_. + +A Logstash pipeline has two required elements, `input` and `output`, and one optional element, `filter`. The input +plugins consume data from a source, the filter plugins modify the data as you specify, and the output plugins write +the data to a destination. + +//TODO: REPLACE WITH NEW IMAGE + +image::static/images/basic_logstash_pipeline.png[] To test your Logstash installation, run the most basic Logstash pipeline: @@ -141,10 +151,10 @@ bin/logstash -e 'input { stdin { } } output { stdout {} }' The `-e` flag enables you to specify a configuration directly from the command line. Specifying configurations at the command line lets you quickly test configurations without having to edit a file between iterations. -This pipeline takes input from the standard input, `stdin`, and moves that input to the standard output, `stdout`, in a -structured format. +The pipeline in the example takes input from the standard input, `stdin`, and moves that input to the standard output, +`stdout`, in a structured format. -Once "Logstash startup completed" is displayed, type hello world at the command prompt to see Logstash respond: +After starting Logstash, wait until you see "Pipeline main started" and then enter `hello world` at the command prompt: [source,shell] hello world @@ -153,5 +163,5 @@ hello world Logstash adds timestamp and IP address information to the message. Exit Logstash by issuing a *CTRL-D* command in the shell where Logstash is running. -The <> expands the capabilities of your Logstash instance to cover broader -use cases. +Congratulations! You've created and run a basic Logstash pipeline. Next, you learn how to create a more realistic pipeline. + diff --git a/docs/static/images/basic_logstash_pipeline.png b/docs/static/images/basic_logstash_pipeline.png index d1b31401a4929391ec775bf20fbedf2edc5a2faa..61341fc68ac1e0817ad2c5a2834c537d6213128e 100644 GIT binary patch literal 57126 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 literal 78679 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
      C@SujE? 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 diff --git a/docs/static/introduction.asciidoc b/docs/static/introduction.asciidoc index 9b69959d6a6..597e5b41c58 100644 --- a/docs/static/introduction.asciidoc +++ b/docs/static/introduction.asciidoc @@ -27,7 +27,7 @@ Collect more, so you can know more. Logstash welcomes data of all shapes and siz Where it all started. * Handle all types of logging data -** Easily ingest a multitude of web logs like <>, and application +** Easily ingest a multitude of web logs like <>, and application logs like <> for Java ** Capture many other log formats like <>, <>, networking and firewall logs, and more diff --git a/docs/static/life-of-an-event.asciidoc b/docs/static/life-of-an-event.asciidoc index b85549ecc36..1a0d364383f 100644 --- a/docs/static/life-of-an-event.asciidoc +++ b/docs/static/life-of-an-event.asciidoc @@ -1,5 +1,5 @@ [[pipeline]] -=== Logstash Processing Pipeline +== How Logstash Works The Logstash event processing pipeline has three stages: inputs -> filters -> outputs. Inputs generate events, filters modify them, and outputs ship them @@ -8,7 +8,7 @@ the data as it enters or exits the pipeline without having to use a separate filter. [float] -==== Inputs +=== Inputs You use inputs to get data into Logstash. Some of the more commonly-used inputs are: @@ -25,7 +25,7 @@ For more information about the available inputs, see <>. [float] -==== Filters +=== Filters Filters are intermediary processing devices in the Logstash pipeline. You can combine filters with conditionals to perform an action on an event if it meets certain criteria. Some useful filters include: @@ -45,7 +45,7 @@ For more information about the available filters, see <>. [float] -==== Outputs +=== Outputs Outputs are the final phase of the Logstash pipeline. An event can pass through multiple outputs, but once all output processing is complete, the event has finished its execution. Some commonly used outputs include: @@ -65,7 +65,7 @@ For more information about the available outputs, see <>. [float] -==== Codecs +=== Codecs Codecs are basically stream filters that can operate as part of an input or output. Codecs enable you to easily separate the transport of your messages from the serialization process. Popular codecs include `json`, `msgpack`, and `plain` @@ -78,7 +78,7 @@ stacktrace messages into a single event. For more information about the available codecs, see <>. -[float] +[[fault-tolerance]] === Fault Tolerance Logstash keeps all events in main memory during processing. Logstash responds to a SIGTERM by attempting to halt inputs and waiting for pending events to finish processing before shutting down. When the pipeline cannot be flushed due to a stuck output or filter, Logstash waits indefinitely. For example, when a pipeline sends output to a database that is unreachable by the Logstash instance, the instance waits indefinitely after receiving a SIGTERM. @@ -87,7 +87,7 @@ To enable Logstash to detect these situations and terminate with a stalled pipel WARNING: Unsafe shutdowns, force-kills of the Logstash process, or crashes of the Logstash process for any other reason result in data loss. Shut down Logstash safely whenever possible. -[float] +[[execution-model]] ==== Execution Model The Logstash pipeline coordinates the execution of inputs, filters, and outputs. The following schematic sketches the data flow of a pipeline: @@ -156,3 +156,4 @@ Examining the in-depth GC statistics with a tool similar to the excellent https: NOTE: As long as the GC pattern is acceptable, heap sizes that occasionally increase to the maximum are acceptable. Such heap size spikes happen in response to a burst of large events passing through the pipeline. In general practice, maintain a gap between the used amount of heap memory and the maximum. This document is not a comprehensive guide to JVM GC tuning. Read the official http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html[Oracle guide] for more information on the topic. We also recommend reading http://www.semicomplete.com/blog/geekery/debugging-java-performance.html[Debugging Java Performance]. + diff --git a/docs/static/stalled-shutdown.asciidoc b/docs/static/stalled-shutdown.asciidoc new file mode 100644 index 00000000000..e1b75ebb72d --- /dev/null +++ b/docs/static/stalled-shutdown.asciidoc @@ -0,0 +1,63 @@ +[[stalled-shutdown]] +=== Stalled Shutdown Detection + +When you attempt to shut down a running Logstash instance, Logstash performs several steps before it can safely shut down. It must: + +* Stop all input, filter and output plugins +* Process all in-flight events +* Terminate the Logstash process + +The following conditions affect the shutdown process: + +* An input plugin receiving data at a slow pace. +* A slow filter, like a Ruby filter executing `sleep(10000)` or an Elasticsearch filter that is executing a very heavy +query. +* A disconnected output plugin that is waiting to reconnect to flush in-flight events. + +These situations make the duration and success of the shutdown process unpredictable. + +Logstash has a stall detection mechanism that analyzes the behavior of the pipeline and plugins during shutdown. +This mechanism produces periodic information about the count of inflight events in internal queues and a list of busy +worker threads. + +To enable Logstash to forcibly terminate in the case of a stalled shutdown, use the `--allow-unsafe-shutdown` flag when +you start Logstash. + +[[shutdown-stall-example]] +==== Stall Detection Example + +In this example, slow filter execution prevents the pipeline from clean shutdown. By starting Logstash with the +`--allow-unsafe-shutdown` flag, quitting with *Ctrl+C* results in an eventual shutdown that loses 20 events. + +======== +[source,shell] +% bin/logstash -e 'input { generator { } } filter { ruby { code => "sleep 10000" } } \ + output { stdout { codec => dots } }' -w 1 --allow-unsafe-shutdown +Default settings used: Filter workers: 1 +Logstash startup completed +^CSIGINT received. Shutting down the pipeline. {:level=>:warn} +Received shutdown signal, but pipeline is still waiting for in-flight events +to be processed. Sending another ^C will force quit Logstash, but this may cause +data loss. {:level=>:warn} + {:level=>:warn, "INFLIGHT_EVENT_COUNT"=>{"input_to_filter"=>20, "total"=>20}, + "STALLING_THREADS"=> + {["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>15, + "name"=>"|filterworker.0", "current_call"=>" + (ruby filter code):1:in `sleep'"}]}} +The shutdown process appears to be stalled due to busy or blocked plugins. Check + the logs for more information. +{:level=>:error} + {:level=>:warn, "INFLIGHT_EVENT_COUNT"=>{"input_to_filter"=>20, "total"=>20}, + "STALLING_THREADS"=> + {["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>15, + "name"=>"|filterworker.0", "current_call"=>" + (ruby filter code):1:in `sleep'"}]}} + {:level=>:warn, "INFLIGHT_EVENT_COUNT"=>{"input_to_filter"=>20, "total"=>20}, + "STALLING_THREADS"=> + {["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>15, + "name"=>"|filterworker.0", "current_call"=>" + (ruby filter code):1:in `sleep'"}]}} +Forcefully quitting logstash.. {:level=>:fatal} +======== + +When `--allow-unsafe-shutdown` isn't enabled, Logstash continues to run and produce these reports periodically. \ No newline at end of file From a982f434a468d41d4fc59eebd8a2be6bcfceaa92 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 31 May 2016 14:04:50 +0200 Subject: [PATCH 150/632] Add fixes from the review Fixes #5387 --- docs/static/advanced-pipeline.asciidoc | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index 26450218786..5d2b1138b17 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -35,8 +35,6 @@ download the sample data set used in this example. Unpack the file. [[configuring-file-input]] ==== Configuring Logstash for File Input -//ALVIN: I know you would like to see Filebeat used here instead, but that's going to make the tutorial significantly more complicated because users will need to go out and correctly install/configure Filebeat before they can do these steps. It's better for users to understand Logstash concpetually before we introduce more complexity. - NOTE: This example uses the file input plugin for convenience. To tail files in the real world, you'll use Filebeat to ship log events to Logstash. You learn how to <> later when you build a more sophisticated pipeline. @@ -101,8 +99,6 @@ Bytes served:: `bytes` Referrer URL:: `referrer` User agent:: `agent` -//QUESTION: The name/value pairs above are backwards. Is this really how grok parses the data, or is this a mistake? - Edit the `first-pipeline.conf` file and replace the entire `filter` section with the following text: [source,json] @@ -153,8 +149,9 @@ of the `first-pipeline.conf` file: The `geoip` plugin configuration requires you to specify the name of the source field that contains the IP address to look up. In this example, the `clientip` field contains the IP address. -Make sure that the `geoip` section is after the `grok` section of the configuration file and that both the `grok` and -`geoip` sections are nested within the `filter` section like this: +Since filters are evaluated in sequence, make sure that the `geoip` section is after the `grok` section of +the configuration file and that both the `grok` and `geoip` sections are nested within the `filter` section +like this: [source,json] -------------------------------------------------------------------------------- @@ -180,7 +177,7 @@ text: -------------------------------------------------------------------------------- output { elasticsearch { - hosts => "localhost:9200" + hosts => [ "localhost:9200" ] } } -------------------------------------------------------------------------------- @@ -370,8 +367,6 @@ A few log entries come from Buffalo, so the query produces the following respons [[multiple-input-output-plugins]] === Stitching Together Multiple Input and Output Plugins -//NOTE: EITHER NEED A COMPREHENSIVE EXAMPLE HERE THAT MAKES SENSE, OR THESE SHOULD BE SEPARATE SECTIONS WHERE USERS GET TO TEST EACH SECTION ONE AT A TIME. - The information you need to manage often comes from several disparate sources, and use cases can require multiple destinations for your data. Your Logstash pipeline can use multiple input and output plugins to handle these requirements. @@ -453,8 +448,6 @@ Save your changes. To keep the example configuration simple, you won't specify TLS/SSL settings as you would in a real world scenario. -//NOTE: I'VE REMOVED THE CA SETTINGES BECAUSE SETTING UP A CA AND GENERATING CERTIFICATES IS TOO COMPLEX FOR A GETTING STARTED GUIDE. A SIMPLE CONFIG IS BETTER FOR TEACHING CONCEPTS. - Configure your Logstash instance to use the Filebeat input plugin by adding the following lines to the `input` section of the `second-pipeline.conf` file: From 829467400da0b44076e76bccd5d2fb7e3080d7d2 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 31 May 2016 19:19:13 +0200 Subject: [PATCH 151/632] Fix broken doc build Fixes #5408 --- docs/static/advanced-pipeline.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index 5d2b1138b17..f38bc3aa1c4 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -378,7 +378,7 @@ sends the information to an Elasticsearch cluster as well as writing the informa [[twitter-configuration]] ==== Reading from a Twitter Feed -To add a Twitter feed, you use the {logstash}plugins-inputs-twitter-oauth_token.html[`twitter`] input plugin. To +To add a Twitter feed, you use the {logstash}plugins-inputs-twitter.html[`twitter`] input plugin. To configure the plugin, you need several pieces of information: * A _consumer_ key, which uniquely identifies your Twitter app. @@ -388,7 +388,7 @@ configure the plugin, you need several pieces of information: * An _oauth token secret_, which serves as the password of the Twitter account. Visit https://dev.twitter.com/apps[https://dev.twitter.com/apps] to set up a Twitter account and generate your consumer -key and secret, as well as your access token and secret. See the docs for the {logstash}plugins-inputs-twitter-oauth_token.html[`twitter`] input plugin if you're not sure how to generate these keys. +key and secret, as well as your access token and secret. See the docs for the {logstash}plugins-inputs-twitter.html[`twitter`] input plugin if you're not sure how to generate these keys. Like you did earlier when you worked on <>, create a config file (called `second-pipeline.conf`) that contains the skeleton of a configuration pipeline. If you want, you can reuse the file you created earlier, but make From d2f14846256e3522b88efb97bfc66314e765902a Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 1 Jun 2016 14:15:24 +0200 Subject: [PATCH 152/632] Add docs about plugin generator (#5418) --- docs/static/contributing-to-logstash.asciidoc | 2 +- docs/static/plugin-generator.asciidoc | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 docs/static/plugin-generator.asciidoc diff --git a/docs/static/contributing-to-logstash.asciidoc b/docs/static/contributing-to-logstash.asciidoc index 238b26fa4fe..05bdeade5e7 100644 --- a/docs/static/contributing-to-logstash.asciidoc +++ b/docs/static/contributing-to-logstash.asciidoc @@ -14,7 +14,7 @@ Since plugins can now be developed and deployed independently of the Logstash core, there are documents which guide you through the process of coding and deploying your own plugins: - +* <> * http://www.elasticsearch.org/guide/en/logstash/current/_how_to_write_a_logstash_input_plugin.html[How to write a Logstash input plugin] * http://www.elasticsearch.org/guide/en/logstash/current/_how_to_write_a_logstash_codec_plugin.html[How to write a Logstash codec plugin] * http://www.elasticsearch.org/guide/en/logstash/current/_how_to_write_a_logstash_filter_plugin.html[How to write a Logstash filter plugin] diff --git a/docs/static/plugin-generator.asciidoc b/docs/static/plugin-generator.asciidoc new file mode 100644 index 00000000000..0563b466b88 --- /dev/null +++ b/docs/static/plugin-generator.asciidoc @@ -0,0 +1,19 @@ +[[plugin-generator]] +== Generating Plugins + +You can now create your own Logstash plugin in seconds! The generate subcommand of `bin/logstash-plugin` creates the foundation +for a new Logstash plugin with templatized files. It creates the right directory structure, gemspec files and dependencies so you +can start adding custom code process data with Logstash. + +**Example Usage** + +[source,sh] +-------------------------------------------- +bin/logstash-plugin generate --type input --name xkcd --path ~/ws/elastic/plugins +------------------------------------------- + +* `--type`: Type of plugin - input, filter, output and codec +* `--name`: Name for the new plugin +* `--path`: Directory path where the new plugin structure will be created. If not specified, it will be ' +created in the current directory. + From 85f4cdfc1d80a4e0ae494ee486e9e2a5b103e484 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 1 Jun 2016 15:47:48 +0200 Subject: [PATCH 153/632] Update command flags Fixes #5422 --- docs/static/include/pluginbody.asciidoc | 2 +- docs/static/life-of-an-event.asciidoc | 2 +- docs/static/plugin-manager.asciidoc | 6 +++--- docs/static/reloading-config.asciidoc | 8 ++++---- docs/static/stalled-shutdown.asciidoc | 8 ++++---- docs/static/upgrading.asciidoc | 8 ++++---- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/static/include/pluginbody.asciidoc b/docs/static/include/pluginbody.asciidoc index a51c4f74aa9..bb44db58c3b 100644 --- a/docs/static/include/pluginbody.asciidoc +++ b/docs/static/include/pluginbody.asciidoc @@ -883,7 +883,7 @@ time. **Version messaging from Logstash** -If you start Logstash with the `--verbose` flag, you will see messages like +If you start Logstash with the `--log.level verbose` flag, you will see messages like these to indicate the relative maturity indicated by the plugin version number: ** **0.1.x** diff --git a/docs/static/life-of-an-event.asciidoc b/docs/static/life-of-an-event.asciidoc index 1a0d364383f..a4383d95514 100644 --- a/docs/static/life-of-an-event.asciidoc +++ b/docs/static/life-of-an-event.asciidoc @@ -83,7 +83,7 @@ For more information about the available codecs, see Logstash keeps all events in main memory during processing. Logstash responds to a SIGTERM by attempting to halt inputs and waiting for pending events to finish processing before shutting down. When the pipeline cannot be flushed due to a stuck output or filter, Logstash waits indefinitely. For example, when a pipeline sends output to a database that is unreachable by the Logstash instance, the instance waits indefinitely after receiving a SIGTERM. -To enable Logstash to detect these situations and terminate with a stalled pipeline, use the `--allow-unsafe-shutdown` flag. +To enable Logstash to detect these situations and terminate with a stalled pipeline, use the `--pipeline.unsafe_shutdown` flag. WARNING: Unsafe shutdowns, force-kills of the Logstash process, or crashes of the Logstash process for any other reason result in data loss. Shut down Logstash safely whenever possible. diff --git a/docs/static/plugin-manager.asciidoc b/docs/static/plugin-manager.asciidoc index 33aee50894b..cd49145cd50 100644 --- a/docs/static/plugin-manager.asciidoc +++ b/docs/static/plugin-manager.asciidoc @@ -57,14 +57,14 @@ bin/logstash-plugin install /path/to/logstash-output-kafka-1.0.0.gem [[installing-local-plugins-path]] [float] -==== Advanced: Using `--pluginpath` +==== Advanced: Using `--path.plugins` -Using the `--pluginpath` flag, you can load a plugin source code located on your file system. Typically this is used by +Using the Logstash `--path.plugins` flag, you can load a plugin source code located on your file system. Typically this is used by developers who are iterating on a custom plugin and want to test it before creating a ruby gem. [source,shell] ---------------------------------- -bin/logstash --pluginpath /opt/shared/lib/logstash/input/my-custom-plugin-code.rb +bin/logstash --path.plugins /opt/shared/lib/logstash/input/my-custom-plugin-code.rb ---------------------------------- [[updating-plugins]] diff --git a/docs/static/reloading-config.asciidoc b/docs/static/reloading-config.asciidoc index 22f3118aac6..22cc383d7dd 100644 --- a/docs/static/reloading-config.asciidoc +++ b/docs/static/reloading-config.asciidoc @@ -4,19 +4,19 @@ Starting with Logstash 2.3, you can set Logstash to detect and reload configuration changes automatically. -To enable automatic config reloading, start Logstash with the `--auto-reload` (or `-r`) +To enable automatic config reloading, start Logstash with the `--config.reload.automatic` (or `-r`) command-line option specified. For example: [source,shell] ---------------------------------- -bin/logstash –f apache.config --auto-reload +bin/logstash –f apache.config --config.reload.automatic ---------------------------------- -NOTE: The `--auto-reload` option is not available when you specify the `-e` flag to pass +NOTE: The `--config.reload.automatic` option is not available when you specify the `-e` flag to pass in configuration settings from the command-line. By default, Logstash checks for configuration changes every 3 seconds. To change this interval, -use the `--reload-interval ` option, where `seconds` specifies how often Logstash +use the `----config.reload.interval ` option, where `seconds` specifies how often Logstash checks the config files for changes. If Logstash is already running without auto-reload enabled, you can force Logstash to diff --git a/docs/static/stalled-shutdown.asciidoc b/docs/static/stalled-shutdown.asciidoc index e1b75ebb72d..14fde1ee3de 100644 --- a/docs/static/stalled-shutdown.asciidoc +++ b/docs/static/stalled-shutdown.asciidoc @@ -20,19 +20,19 @@ Logstash has a stall detection mechanism that analyzes the behavior of the pipel This mechanism produces periodic information about the count of inflight events in internal queues and a list of busy worker threads. -To enable Logstash to forcibly terminate in the case of a stalled shutdown, use the `--allow-unsafe-shutdown` flag when +To enable Logstash to forcibly terminate in the case of a stalled shutdown, use the `--pipeline.unsafe_shutdown` flag when you start Logstash. [[shutdown-stall-example]] ==== Stall Detection Example In this example, slow filter execution prevents the pipeline from clean shutdown. By starting Logstash with the -`--allow-unsafe-shutdown` flag, quitting with *Ctrl+C* results in an eventual shutdown that loses 20 events. +`--pipeline.unsafe_shutdown` flag, quitting with *Ctrl+C* results in an eventual shutdown that loses 20 events. ======== [source,shell] % bin/logstash -e 'input { generator { } } filter { ruby { code => "sleep 10000" } } \ - output { stdout { codec => dots } }' -w 1 --allow-unsafe-shutdown + output { stdout { codec => dots } }' -w 1 --pipeline.unsafe_shutdown Default settings used: Filter workers: 1 Logstash startup completed ^CSIGINT received. Shutting down the pipeline. {:level=>:warn} @@ -60,4 +60,4 @@ The shutdown process appears to be stalled due to busy or blocked plugins. Check Forcefully quitting logstash.. {:level=>:fatal} ======== -When `--allow-unsafe-shutdown` isn't enabled, Logstash continues to run and produce these reports periodically. \ No newline at end of file +When `--pipeline.unsafe_shutdown` isn't enabled, Logstash continues to run and produce these reports periodically. \ No newline at end of file diff --git a/docs/static/upgrading.asciidoc b/docs/static/upgrading.asciidoc index d30e2797ce7..f466673f39b 100644 --- a/docs/static/upgrading.asciidoc +++ b/docs/static/upgrading.asciidoc @@ -17,7 +17,7 @@ This procedure uses <> to upgrade Logstas 2. Using the directions in the _Package Repositories_ section, update your repository links to point to the 2.0 repositories instead of the previous version. 3. Run the `apt-get upgrade logstash` or `yum update logstash` command as appropriate for your operating system. -4. Test your configuration file with the `logstash --configtest -f ` command. Configuration options for +4. Test your configuration file with the `logstash --config.test_and_exit -f ` command. Configuration options for some Logstash plugins have changed in the 2.0 release. 5. Restart your Logstash pipeline after updating your configuration file. @@ -28,7 +28,7 @@ This procedure downloads the relevant Logstash binaries directly from Elastic. 1. Shut down your Logstash pipeline, including any inputs that send events to Logstash. 2. Download the https://www.elastic.co/downloads/logstash[Logstash installation file] that matches your host environment. 3. Unpack the installation file into your Logstash directory. -4. Test your configuration file with the `logstash --configtest -f ` command. Configuration options for +4. Test your configuration file with the `logstash --config.test_and_exit -f ` command. Configuration options for some Logstash plugins have changed in the 2.0 release. 5. Restart your Logstash pipeline after updating your configuration file. @@ -91,8 +91,8 @@ The default batch size of the pipeline is 125 events per worker. This will by de used for the elasticsearch output. The Elasticsearch output's `flush_size` now acts only as a maximum bulk size (still defaulting to 500). For example, if your pipeline batch size is 3000 events, Elasticsearch Output will send 500 events at a time, in 6 separate bulk requests. In other words, for Elasticsearch output, -bulk request size is chunked based on `flush_size` and `--pipeline-batch-size`. If `flush_size` is set greater -than `--pipeline-batch-size`, it is ignored and `--pipeline-batch-size` will be used. +bulk request size is chunked based on `flush_size` and `--pipeline.batch.size`. If `flush_size` is set greater +than `--pipeline.batch.size`, it is ignored and `--pipeline.batch.size` will be used. The default number of output workers in Logstash 2.2 is now equal to the number of pipeline workers (`-w`) unless overridden in the Logstash config file. This can be problematic for some users as the From ea4143602f5a8e62484f68709c7c590b5ef59e99 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 1 Jun 2016 16:44:04 +0200 Subject: [PATCH 154/632] Update plugin-manager.asciidoc (#5424) --- docs/static/plugin-manager.asciidoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/static/plugin-manager.asciidoc b/docs/static/plugin-manager.asciidoc index cd49145cd50..294aedcb334 100644 --- a/docs/static/plugin-manager.asciidoc +++ b/docs/static/plugin-manager.asciidoc @@ -111,6 +111,8 @@ bin/logstash-plugin install logstash-output-kafka Once set, plugin commands install, update can be used through this proxy. +include::plugin-generator.asciidoc[] + include::offline-plugins.asciidoc[] include::private-gem-repo.asciidoc[] From 0c1972a075c85462654f54ca1e15a8800058ae75 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 1 Jun 2016 14:38:38 +0200 Subject: [PATCH 155/632] add more control on valid arguments for codecs in the generator command Fixes #5419 --- lib/pluginmanager/generate.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/pluginmanager/generate.rb b/lib/pluginmanager/generate.rb index ccd0009ce79..7ae11314878 100644 --- a/lib/pluginmanager/generate.rb +++ b/lib/pluginmanager/generate.rb @@ -10,15 +10,12 @@ class LogStash::PluginManager::Generate < LogStash::PluginManager::Command TYPES = [ "input", "filter", "output" ] - option "--type", "TYPE", "Type of the plugin {input, filter, output}s" do |arg| - raise(ArgumentError, "should be one of: input, output or filter") unless TYPES.include?(arg) - arg - end - + option "--type", "TYPE", "Type of the plugin {input, filter, output}s", :required => true option "--name", "PLUGIN", "Name of the new plugin", :required => true option "--path", "PATH", "Location where the plugin skeleton will be created", :default => Dir.pwd def execute + validate_params source = File.join(File.dirname(__FILE__), "templates", "#{type}-plugin") @target_path = File.join(path, full_plugin_name) FileUtils.mkdir(@target_path) @@ -35,6 +32,10 @@ def execute private + def validate_params + raise(ArgumentError, "should be one of: input, output or filter") unless TYPES.include?(type) + end + def create_scaffold(source, target) transform_r(source, target) end From f4fd8943e7b324891a58fa803a023af60b2d4e72 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 1 Jun 2016 15:12:59 +0200 Subject: [PATCH 156/632] add codec as a new kind of templates in the plugin generator Fixes #5421 --- lib/pluginmanager/generate.rb | 6 +- .../templates/codec-plugin/CHANGELOG.md | 2 + .../templates/codec-plugin/CONTRIBUTORS.erb | 10 +++ .../templates/codec-plugin/DEVELOPER.md.erb | 2 + .../templates/codec-plugin/Gemfile | 3 + .../templates/codec-plugin/LICENSE | 11 +++ .../templates/codec-plugin/README.md | 86 +++++++++++++++++++ .../templates/codec-plugin/Rakefile | 1 + .../lib/logstash/codecs/example.rb.erb | 44 ++++++++++ .../logstash-codec-example.gemspec.erb | 24 ++++++ .../spec/codecs/example_spec.rb.erb | 3 + .../codec-plugin/spec/spec_helper.rb | 2 + 12 files changed, 191 insertions(+), 3 deletions(-) create mode 100644 lib/pluginmanager/templates/codec-plugin/CHANGELOG.md create mode 100644 lib/pluginmanager/templates/codec-plugin/CONTRIBUTORS.erb create mode 100644 lib/pluginmanager/templates/codec-plugin/DEVELOPER.md.erb create mode 100644 lib/pluginmanager/templates/codec-plugin/Gemfile create mode 100644 lib/pluginmanager/templates/codec-plugin/LICENSE create mode 100644 lib/pluginmanager/templates/codec-plugin/README.md create mode 100644 lib/pluginmanager/templates/codec-plugin/Rakefile create mode 100644 lib/pluginmanager/templates/codec-plugin/lib/logstash/codecs/example.rb.erb create mode 100644 lib/pluginmanager/templates/codec-plugin/logstash-codec-example.gemspec.erb create mode 100644 lib/pluginmanager/templates/codec-plugin/spec/codecs/example_spec.rb.erb create mode 100644 lib/pluginmanager/templates/codec-plugin/spec/spec_helper.rb diff --git a/lib/pluginmanager/generate.rb b/lib/pluginmanager/generate.rb index 7ae11314878..6717682e021 100644 --- a/lib/pluginmanager/generate.rb +++ b/lib/pluginmanager/generate.rb @@ -8,9 +8,9 @@ class LogStash::PluginManager::Generate < LogStash::PluginManager::Command - TYPES = [ "input", "filter", "output" ] + TYPES = [ "input", "filter", "output", "codec" ] - option "--type", "TYPE", "Type of the plugin {input, filter, output}s", :required => true + option "--type", "TYPE", "Type of the plugin {input, filter, codec, output}s", :required => true option "--name", "PLUGIN", "Name of the new plugin", :required => true option "--path", "PATH", "Location where the plugin skeleton will be created", :default => Dir.pwd @@ -33,7 +33,7 @@ def execute private def validate_params - raise(ArgumentError, "should be one of: input, output or filter") unless TYPES.include?(type) + raise(ArgumentError, "should be one of: input, filter, codec or output") unless TYPES.include?(type) end def create_scaffold(source, target) diff --git a/lib/pluginmanager/templates/codec-plugin/CHANGELOG.md b/lib/pluginmanager/templates/codec-plugin/CHANGELOG.md new file mode 100644 index 00000000000..9bb3255f54d --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/CHANGELOG.md @@ -0,0 +1,2 @@ +## 0.1.0 + - Plugin created with the logstash plugin generator diff --git a/lib/pluginmanager/templates/codec-plugin/CONTRIBUTORS.erb b/lib/pluginmanager/templates/codec-plugin/CONTRIBUTORS.erb new file mode 100644 index 00000000000..8074a9e9725 --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/CONTRIBUTORS.erb @@ -0,0 +1,10 @@ +The following is a list of people who have contributed ideas, code, bug +reports, or in general have helped logstash along its way. + +Contributors: +* <%= author %> - <%= email %> + +Note: If you've sent us patches, bug reports, or otherwise contributed to +Logstash, and you aren't on the list above and want to be, please let us know +and we'll make sure you're here. Contributions from folks like you are what make +open source awesome. diff --git a/lib/pluginmanager/templates/codec-plugin/DEVELOPER.md.erb b/lib/pluginmanager/templates/codec-plugin/DEVELOPER.md.erb new file mode 100644 index 00000000000..654a05b6614 --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/DEVELOPER.md.erb @@ -0,0 +1,2 @@ +# logstash-codec-<%= plugin_name %> +Example codec plugin. This should help bootstrap your effort to write your own codec plugin! diff --git a/lib/pluginmanager/templates/codec-plugin/Gemfile b/lib/pluginmanager/templates/codec-plugin/Gemfile new file mode 100644 index 00000000000..06618cefa69 --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' +gemspec + diff --git a/lib/pluginmanager/templates/codec-plugin/LICENSE b/lib/pluginmanager/templates/codec-plugin/LICENSE new file mode 100644 index 00000000000..51fca54c2a0 --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/LICENSE @@ -0,0 +1,11 @@ +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/lib/pluginmanager/templates/codec-plugin/README.md b/lib/pluginmanager/templates/codec-plugin/README.md new file mode 100644 index 00000000000..a75e88df936 --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/README.md @@ -0,0 +1,86 @@ +# Logstash Plugin + +This is a plugin for [Logstash](https://github.com/elastic/logstash). + +It is fully free and fully open source. The license is Apache 2.0, meaning you are pretty much free to use it however you want in whatever way. + +## Documentation + +Logstash provides infrastructure to automatically generate documentation for this plugin. We use the asciidoc format to write documentation so any comments in the source code will be first converted into asciidoc and then into html. All plugin documentation are placed under one [central location](http://www.elastic.co/guide/en/logstash/current/). + +- For formatting code or config example, you can use the asciidoc `[source,ruby]` directive +- For more asciidoc formatting tips, see the excellent reference here https://github.com/elastic/docs#asciidoc-guide + +## Need Help? + +Need help? Try #logstash on freenode IRC or the https://discuss.elastic.co/c/logstash discussion forum. + +## Developing + +### 1. Plugin Developement and Testing + +#### Code +- To get started, you'll need JRuby with the Bundler gem installed. + +- Create a new plugin or clone and existing from the GitHub [logstash-plugins](https://github.com/logstash-plugins) organization. We also provide [example plugins](https://github.com/logstash-plugins?query=example). + +- Install dependencies +```sh +bundle install +``` + +#### Test + +- Update your dependencies + +```sh +bundle install +``` + +- Run tests + +```sh +bundle exec rspec +``` + +### 2. Running your unpublished Plugin in Logstash + +#### 2.1 Run in a local Logstash clone + +- Edit Logstash `Gemfile` and add the local plugin path, for example: +```ruby +gem "logstash-codec-awesome", :path => "/your/local/logstash-codec-awesome" +``` +- Install plugin +```sh +bin/logstash-plugin install --no-verify +``` +- Run Logstash with your plugin +```sh +bin/logstash -e 'codec {awesome {}}' +``` +At this point any modifications to the plugin code will be applied to this local Logstash setup. After modifying the plugin, simply rerun Logstash. + +#### 2.2 Run in an installed Logstash + +You can use the same **2.1** method to run your plugin in an installed Logstash by editing its `Gemfile` and pointing the `:path` to your local plugin development directory or you can build the gem and install it using: + +- Build your plugin gem +```sh +gem build logstash-codec-awesome.gemspec +``` +- Install the plugin from the Logstash home +```sh +bin/logstash-plugin install /your/local/plugin/logstash-codec-awesome.gem +``` +- Start Logstash and proceed to test the plugin + +## Contributing + +All contributions are welcome: ideas, patches, documentation, bug reports, complaints, and even something you drew up on a napkin. + +Programming is not a required skill. Whatever you've seen about open source and maintainers or community members saying "send patches or die" - you will not see that here. + +It is more important to the community that you are able to contribute. + +For more information about contributing, see the [CONTRIBUTING](https://github.com/elastic/logstash/blob/master/CONTRIBUTING.md) file. diff --git a/lib/pluginmanager/templates/codec-plugin/Rakefile b/lib/pluginmanager/templates/codec-plugin/Rakefile new file mode 100644 index 00000000000..d50e796f1c1 --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/Rakefile @@ -0,0 +1 @@ +require "logstash/devutils/rake" diff --git a/lib/pluginmanager/templates/codec-plugin/lib/logstash/codecs/example.rb.erb b/lib/pluginmanager/templates/codec-plugin/lib/logstash/codecs/example.rb.erb new file mode 100644 index 00000000000..b1a618562d1 --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/lib/logstash/codecs/example.rb.erb @@ -0,0 +1,44 @@ +# encoding: utf-8 +require "logstash/codecs/base" +require "logstash/namespace" + +# This <%= @plugin_name %> codec will append a string to the message field +# of an event, either in the decoding or encoding methods +# +# This is only intended to be used as an example. +# +# input { +# stdin { codec => <%= @plugin_name %> } +# } +# +# or +# +# output { +# stdout { codec => <%= @plugin_name %> } +# } +# +class LogStash::Codecs::<%= classify(plugin_name) %> < LogStash::Codecs::Base + + # The codec name + config_name "<%= plugin_name %>" + + # Append a string to the message + config :append, :validate => :string, :default => ', Hello World!' + + def register + @lines = LogStash::Codecs::Line.new + @lines.charset = "UTF-8" + end # def register + + def decode(data) + @lines.decode(data) do |line| + replace = { "message" => line.get("message").to_s + @append } + yield LogStash::Event.new(replace) + end + end # def decode + + def encode(event) + @on_event.call(event, event.get("message").to_s + @append + NL) + end # def encode + +end # class LogStash::Codecs::<%= classify(plugin_name) %> diff --git a/lib/pluginmanager/templates/codec-plugin/logstash-codec-example.gemspec.erb b/lib/pluginmanager/templates/codec-plugin/logstash-codec-example.gemspec.erb new file mode 100644 index 00000000000..91e1b0600f1 --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/logstash-codec-example.gemspec.erb @@ -0,0 +1,24 @@ +Gem::Specification.new do |s| + s.name = 'logstash-codec-<%= plugin_name %>' + s.version = '0.1.0' + s.licenses = ['Apache License (2.0)'] + s.summary = 'TODO: Write a short summary, because Rubygems requires one.' + s.description = 'TODO: Write a longer description or delete this line.' + s.homepage = 'TODO: Put your plugin''s website or public repo URL here.' + s.authors = ['<%= author %>'] + s.email = '<%= email %>' + s.require_paths = ['lib'] + + # Files + s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT'] + # Tests + s.test_files = s.files.grep(%r{^(test|spec|features)/}) + + # Special flag to let us know this is actually a logstash plugin + s.metadata = { "logstash_plugin" => "true", "logstash_group" => "codec" } + + # Gem dependencies + s.add_runtime_dependency 'logstash-core-plugin-api', "~> <%= min_version %>" + s.add_runtime_dependency 'logstash-codec-line' + s.add_development_dependency 'logstash-devutils' +end diff --git a/lib/pluginmanager/templates/codec-plugin/spec/codecs/example_spec.rb.erb b/lib/pluginmanager/templates/codec-plugin/spec/codecs/example_spec.rb.erb new file mode 100644 index 00000000000..48cca741ab2 --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/spec/codecs/example_spec.rb.erb @@ -0,0 +1,3 @@ +# encoding: utf-8 +require_relative '../spec_helper' +require "logstash/codecs/<%= plugin_name %>" diff --git a/lib/pluginmanager/templates/codec-plugin/spec/spec_helper.rb b/lib/pluginmanager/templates/codec-plugin/spec/spec_helper.rb new file mode 100644 index 00000000000..dc64aba12c1 --- /dev/null +++ b/lib/pluginmanager/templates/codec-plugin/spec/spec_helper.rb @@ -0,0 +1,2 @@ +# encoding: utf-8 +require "logstash/devutils/rspec/spec_helper" From f0dfea9d80437078fd0be889f0087095bd4f9933 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 31 May 2016 16:11:12 -0500 Subject: [PATCH 157/632] Improve error handling in API / Rack App. Setting error handling conditions in sinatra dynamically is not possible. The values such as :show_exceptions get set, but have no effect. This is esp. important in testing where we want failures to raise exceptions. Otherwise, debugging is a matter of parsing instructable HTML responses containing the debug info. We do not want this behavior by default however, as doing so would mean a single API bug would take down a production app. This change adds a new agent setting (not CLI setting) 'http.environment' that is defaulted to 'production'. If set to 'test' exceptions get raised. This change also removes sinatra error handlers that previously did nothing, and injects custom rack middleware to properly log and handle errors. Fixes #5411 --- logstash-core/lib/logstash/agent.rb | 3 +- .../lib/logstash/api/modules/base.rb | 17 ++-- .../lib/logstash/api/modules/node.rb | 2 + logstash-core/lib/logstash/api/rack_app.rb | 78 +++++++++++++++- logstash-core/lib/logstash/api/service.rb | 2 +- logstash-core/lib/logstash/environment.rb | 1 + logstash-core/lib/logstash/webserver.rb | 9 +- logstash-core/spec/api/lib/rack_app_spec.rb | 88 +++++++++++++++++++ logstash-core/spec/api/spec_helper.rb | 9 +- 9 files changed, 188 insertions(+), 21 deletions(-) create mode 100644 logstash-core/spec/api/lib/rack_app_spec.rb diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 0e356ec76b3..8bb3649e9ca 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -38,6 +38,7 @@ def initialize(settings = LogStash::SETTINGS) @node_name = setting("node.name") @http_host = setting("http.host") @http_port = setting("http.port") + @http_environment = setting("http.environment") @config_loader = LogStash::Config::Loader.new(@logger) @reload_interval = setting("config.reload.interval") @@ -129,7 +130,7 @@ def running_pipelines? private def start_webserver - options = {:http_host => @http_host, :http_port => @http_port } + options = {:http_host => @http_host, :http_port => @http_port, :http_environment => @http_environment } @webserver = LogStash::WebServer.new(@logger, options) Thread.new(@webserver) do |webserver| LogStash::Util.set_thread_name("Api Webserver") diff --git a/logstash-core/lib/logstash/api/modules/base.rb b/logstash-core/lib/logstash/api/modules/base.rb index 4f9855f6e50..7a750d02f32 100644 --- a/logstash-core/lib/logstash/api/modules/base.rb +++ b/logstash-core/lib/logstash/api/modules/base.rb @@ -7,15 +7,16 @@ module Modules class Base < ::Sinatra::Base helpers AppHelpers + # These options never change + # Sinatra isn't good at letting you change internal settings at runtime + # which is a requirement. We always propagate errors up and catch them + # in a custom rack handler in the RackApp class set :environment, :production + set :raise_errors, true + set :show_exceptions, false attr_reader :factory - if settings.environment != :production - set :raise_errors, true - set :show_exceptions, :after_handler - end - include LogStash::Util::Loggable helpers AppHelpers @@ -31,12 +32,6 @@ def initialize(app=nil) text = as == :string ? "" : {} respond_with(text, :as => as) end - - error do - e = env['sinatra.error'] - logger.error(e.message, :url => request.url, :ip => request.ip, :params => request.params, :class => e.class.name, :backtrace => e.backtrace) - end - end end end diff --git a/logstash-core/lib/logstash/api/modules/node.rb b/logstash-core/lib/logstash/api/modules/node.rb index 931b2152c38..38ae44f7b7c 100644 --- a/logstash-core/lib/logstash/api/modules/node.rb +++ b/logstash-core/lib/logstash/api/modules/node.rb @@ -1,4 +1,6 @@ # encoding: utf-8 +require "logstash/api/modules/base" + module LogStash module Api module Modules diff --git a/logstash-core/lib/logstash/api/rack_app.rb b/logstash-core/lib/logstash/api/rack_app.rb index 5624d1c3516..861e26d0697 100644 --- a/logstash-core/lib/logstash/api/rack_app.rb +++ b/logstash-core/lib/logstash/api/rack_app.rb @@ -1,3 +1,5 @@ +require "sinatra" +require "rack" require "logstash/api/modules/base" require "logstash/api/modules/node" require "logstash/api/modules/node_stats" @@ -8,9 +10,83 @@ module LogStash module Api module RackApp - def self.app + # Cabin is not compatible with CommonLogger, and this gives us more control anyway + METADATA_FIELDS = [:request_method, :path_info, :query_string, :http_version, :http_accept].freeze + def self.log_metadata(status, env) + METADATA_FIELDS.reduce({:status => status}) do |acc, field| + acc[field] = env[field.to_s.upcase] + acc + end + end + + class ApiLogger + LOG_MESSAGE = "API HTTP Request".freeze + + def initialize(app, logger) + @app = app + @logger = logger + end + + def call(env) + res = @app.call(env) + status, headers, body = res + + if fatal_error?(status) + @logger.warn? && @logger.warn(LOG_MESSAGE, RackApp.log_metadata(status, env)) + else + @logger.info? && @logger.info(LOG_MESSAGE, RackApp.log_metadata(status, env)) + end + + res + end + + def fatal_error?(status) + status >= 500 && status < 600 + end + end + + class ApiErrorHandler + LOG_MESSAGE = "Internal API server error".freeze + + def initialize(app, logger) + @app = app + @logger = logger + end + + def call(env) + @app.call(env) + rescue => e + body = RackApp.log_metadata(500, env). + merge({ + :error => "Unexpected Internal Error", + :class => e.class.name, + :message => e.message, + :backtrace => e.backtrace + }) + + @logger.error(LOG_MESSAGE, body) + + [500, + {'Content-Type' => 'application/json'}, + [LogStash::Json.dump(body)] + ] + end + end + + def self.app(logger, environment) namespaces = rack_namespaces Rack::Builder.new do + # Custom logger object. Rack CommonLogger does not work with cabin + use ApiLogger, logger + + # In test env we want errors to propogate up the chain + # so we get easy to understand test failures. + # In production / dev we don't want a bad API endpoint + # to crash the process + if environment != "test" + use ApiErrorHandler, logger + end + run LogStash::Api::Modules::Root namespaces.each_pair do |namespace, app| map(namespace) do diff --git a/logstash-core/lib/logstash/api/service.rb b/logstash-core/lib/logstash/api/service.rb index 799e802b6f9..3eaeb2535ef 100644 --- a/logstash-core/lib/logstash/api/service.rb +++ b/logstash-core/lib/logstash/api/service.rb @@ -26,7 +26,7 @@ def agent end def started? - !@snapshot.nil? && has_counters? + !@snapshot.nil? && has_counters? end def update(snapshot) diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 6cfea6868be..9f1777498fd 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -29,6 +29,7 @@ module LogStash Setting::String.new("log.format", "plain", true, ["json", "plain"]), Setting::String.new("http.host", "127.0.0.1"), Setting::Port.new("http.port", 9600), + Setting::String.new("http.environment", "production"), ].each {|setting| SETTINGS.register(setting) } module Environment diff --git a/logstash-core/lib/logstash/webserver.rb b/logstash-core/lib/logstash/webserver.rb index 9fbd9718b32..6cf8366e3ba 100644 --- a/logstash-core/lib/logstash/webserver.rb +++ b/logstash-core/lib/logstash/webserver.rb @@ -1,25 +1,25 @@ # encoding: utf-8 require "puma" require "puma/server" -require "sinatra" -require "rack" require "logstash/api/rack_app" module LogStash class WebServer extend Forwardable - attr_reader :logger, :status, :config, :options, :cli_options, :runner, :binder, :events, :http_host, :http_port + attr_reader :logger, :status, :config, :options, :cli_options, :runner, :binder, :events, :http_host, :http_port, :http_environment def_delegator :@runner, :stats DEFAULT_HOST = "127.0.0.1".freeze DEFAULT_PORT = 9600.freeze + DEFAULT_ENVIRONMENT = 'production'.freeze def initialize(logger, options={}) @logger = logger @http_host = options[:http_host] || DEFAULT_HOST @http_port = options[:http_port] || DEFAULT_PORT + @http_environment = options[:http_environment] || DEFAULT_ENVIRONMENT @options = {} @cli_options = options.merge({ :rackup => ::File.join(::File.dirname(__FILE__), "api", "init.ru"), :binds => ["tcp://#{http_host}:#{http_port}"], @@ -37,7 +37,8 @@ def run stop # Just in case - @server = ::Puma::Server.new(LogStash::Api::RackApp.app) + app = LogStash::Api::RackApp.app(logger, http_environment) + @server = ::Puma::Server.new(app) @server.add_tcp_listener(http_host, http_port) @server.run.join diff --git a/logstash-core/spec/api/lib/rack_app_spec.rb b/logstash-core/spec/api/lib/rack_app_spec.rb new file mode 100644 index 00000000000..0546df9fbf6 --- /dev/null +++ b/logstash-core/spec/api/lib/rack_app_spec.rb @@ -0,0 +1,88 @@ +require "logstash/api/rack_app" +require "rack/test" + +describe LogStash::Api::RackApp do + include Rack::Test::Methods + + class DummyApp + class RaisedError < StandardError; end + + def call(env) + case env["PATH_INFO"] + when "/good-page" + [200, {}, ["200 OK"]] + when "/service-unavailable" + [503, {}, ["503 service unavailable"]] + when "/raise-error" + raise RaisedError, "Error raised" + else + [404, {}, ["404 Page not found"]] + end + end + end + + let(:logger) { Cabin::Channel.get } + + describe LogStash::Api::RackApp::ApiErrorHandler do + let(:app) do + # Scoping in rack builder is weird, these need to be locals + rack_class = described_class + rack_logger = logger + Rack::Builder.new do + use rack_class, rack_logger + run DummyApp.new + end + end + + it "should let good requests through as normal" do + get "/good-page" + expect(last_response).to be_ok + end + + it "should let through 5xx codes" do + get "/service-unavailable" + expect(last_response.status).to eql(503) + end + + describe "raised exceptions" do + before do + allow(logger).to receive(:error).with(any_args) + get "/raise-error" + end + + it "should return a 500 error" do + expect(last_response.status).to eql(500) + end + + it "should return valid JSON" do + expect { LogStash::Json.load(last_response.body) }.not_to raise_error + end + + it "should log the error" do + expect(logger).to have_received(:error).with(LogStash::Api::RackApp::ApiErrorHandler::LOG_MESSAGE, anything).once + end + end + end + + describe LogStash::Api::RackApp::ApiLogger do + let(:app) do + # Scoping in rack builder is weird, these need to be locals + rack_class = described_class + rack_logger = logger + Rack::Builder.new do + use rack_class, rack_logger + run DummyApp.new + end + end + + it "should log good requests as info" do + expect(logger).to receive(:info).with(LogStash::Api::RackApp::ApiLogger::LOG_MESSAGE, anything).once + get "/good-page" + end + + it "should log 5xx requests as warnings" do + expect(logger).to receive(:warn).with(LogStash::Api::RackApp::ApiLogger::LOG_MESSAGE, anything).once + get "/service-unavailable" + end + end +end diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index befead55d1e..041311b9314 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -46,6 +46,7 @@ def initialize "log.level" => "debug", "node.name" => "test_agent", "http.port" => rand(9600..9700), + "http.environment" => "test", "config.string" => @config_str, "pipeline.batch.size" => 1, "pipeline.workers" => 1 @@ -60,7 +61,8 @@ def start @runner = Thread.new(agent) do |_agent| _agent.execute end - wait_until_snapshot_received + + wait_until_ready end def stop @@ -71,8 +73,9 @@ def stop private - def wait_until_snapshot_received - while !LogStash::Api::Service.instance.started? do + def wait_until_ready + # Wait until the service and pipeline have started + while !(LogStash::Api::Service.instance.started? && agent.pipelines["main"].running?) do sleep 0.5 end end From a3b41fa9047b32375adcbe74dbb5f290f89c5cfe Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 1 Jun 2016 14:45:04 +0200 Subject: [PATCH 158/632] Add node stats API changes Fixes #5420 --- docs/static/monitoring-apis.asciidoc | 88 +++++++++++++++------------- 1 file changed, 47 insertions(+), 41 deletions(-) diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 6b694ee6eb3..7e5717e04ac 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -99,11 +99,13 @@ Example response: -------------------------------------------------- [[stats-info-api]] -=== Stats Info API +=== Node Stats API + +coming[5.0.0-beta3,Replaces the Stats Info API] experimental[] -The stats info API retrieves runtime stats about Logstash. +The node stats API retrieves runtime stats about Logstash. // COMMENTED OUT until Logstash supports multiple pipelines: To retrieve all stats for the Logstash instance, use the `_node/stats` endpoint: @@ -127,9 +129,11 @@ By default, all stats are returned. You can limit this by combining any of the f [horizontal] `events`:: - Gets event information since startup. +Gets event information since startup. `jvm`:: - Gets JVM stats, including stats about garbage collection. +Gets JVM stats, including stats about threads. coming[5.0.0-alpha3,Adds thread count] +`process`:: +Gets process stats, including stats about file descriptors, memory consumption, and CPU usage. coming[5.0.0-alpha3] For example, the following request returns a JSON document that shows the number of events that were input, filtered, and output by Logstash since startup: @@ -144,12 +148,11 @@ Example response: [source,js] -------------------------------------------------- { - "events": { - "in": 91, - "filtered": 91, - "out": 91 - } -} + "events" : { + "in" : 59685, + "filtered" : 59685, + "out" : 59685 + } -------------------------------------------------- The following request returns a JSON document containing JVM stats: @@ -163,42 +166,45 @@ Example response: [source,js] -------------------------------------------------- -"jvm":{ - "timestamp":1453233447702, - "uptime_in_millis":211125811, - "mem":{ - "heap_used_in_bytes":58442576, - "heap_used_percent":5, - "heap_committed_in_bytes":259522560, - "heap_max_in_bytes":1037959168, - "non_heap_used_in_bytes":56332256, - "non_heap_committed_in_bytes":57475072, - "pools":{ - "young":{ - "used_in_bytes":41672000, - "max_in_bytes":286326784, - "peak_used_in_bytes":71630848, - "peak_max_in_bytes":286326784 - }, - "survivor":{ - "used_in_bytes":260552, - "max_in_bytes":35782656, - "peak_used_in_bytes":8912896, - "peak_max_in_bytes":35782656 - }, - "old":{ - "used_in_bytes":16510024, - "max_in_bytes":715849728, - "peak_used_in_bytes":16510024, - "peak_max_in_bytes":715849728 - } - } - } +{ + "jvm" : { + "threads" : { + "count" : 32, + "peak_count" : 34 + } + } +-------------------------------------------------- + +The following request returns a JSON document containing process stats: + +[source,js] +-------------------------------------------------- +GET /_node/stats/process +-------------------------------------------------- + +Example response: + +[source,js] +-------------------------------------------------- +{ + "process" : { + "peak_open_file_descriptors" : 64, + "max_file_descriptors" : 10240, + "open_file_descriptors" : 64, + "mem" : { + "total_virtual_in_bytes" : 5278068736 + }, + "cpu" : { + "total_in_millis" : 103290097000, + "percent" : 0 + } + } -------------------------------------------------- See <> for a list of options that can be applied to all Logstash monitoring APIs. + [[hot-threads-api]] === Hot Threads API From 71290426f9f20da6fe3ae2145a77af54d6787962 Mon Sep 17 00:00:00 2001 From: arnaudblancher Date: Thu, 2 Jun 2016 14:36:28 +0200 Subject: [PATCH 159/632] Update life-of-an-event.asciidoc (#5409) correct graphite url --- docs/static/life-of-an-event.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/life-of-an-event.asciidoc b/docs/static/life-of-an-event.asciidoc index a4383d95514..d1431d116b6 100644 --- a/docs/static/life-of-an-event.asciidoc +++ b/docs/static/life-of-an-event.asciidoc @@ -55,7 +55,7 @@ your data in an efficient, convenient, and easily queryable format... Elasticsearch is the way to go. Period. Yes, we're biased :) * *file*: write event data to a file on disk. * *graphite*: send event data to graphite, a popular open source tool for -storing and graphing metrics. http://graphite.wikidot.com/ +storing and graphing metrics. http://graphite.readthedocs.io/en/latest/ * *statsd*: send event data to statsd, a service that "listens for statistics, like counters and timers, sent over UDP and sends aggregates to one or more pluggable backend services". If you're already using statsd, this could be From 6c4a09c631d0609d530c76100aed4d304b06518d Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 19 Apr 2016 14:23:13 +0200 Subject: [PATCH 160/632] first iteration of a QA acceptance and integration test framework, this initial run include only very basic infraestructure and is for sure going to evolve as necessary to make it a reality. Fixes #5350 --- .gitignore | 5 ++ qa/Gemfile | 4 ++ qa/README.md | 34 +++++++++++ qa/Rakefile | 53 +++++++++++++++++ qa/acceptance/Vagrantfile | 43 ++++++++++++++ qa/acceptance/spec/centos/lib/install_spec.rb | 33 +++++++++++ qa/acceptance/spec/centos/spec_helper.rb | 15 +++++ qa/acceptance/spec/config_helper.rb | 28 +++++++++ qa/acceptance/spec/debian/lib/install_spec.rb | 33 +++++++++++ qa/acceptance/spec/debian/spec_helper.rb | 15 +++++ qa/acceptance/spec/spec_helper.rb | 14 +++++ qa/acceptance/sys/centos/bootstrap.sh | 12 ++++ qa/acceptance/sys/centos/user_bootstrap.sh | 4 ++ qa/acceptance/sys/ubuntu/bootstrap.sh | 12 ++++ qa/acceptance/sys/ubuntu/user_bootstrap.sh | 4 ++ qa/rspec/centos/commands.rb | 58 ++++++++++++++++++ qa/rspec/commands.rb | 19 ++++++ qa/rspec/debian/commands.rb | 59 +++++++++++++++++++ qa/rspec/helpers.rb | 50 ++++++++++++++++ qa/rspec/matchers.rb | 3 + qa/rspec/matchers/be_installed.rb | 25 ++++++++ qa/rspec/matchers/be_running.rb | 14 +++++ qa/vagrant-helpers.rb | 43 ++++++++++++++ 23 files changed, 580 insertions(+) create mode 100644 qa/Gemfile create mode 100644 qa/README.md create mode 100644 qa/Rakefile create mode 100644 qa/acceptance/Vagrantfile create mode 100644 qa/acceptance/spec/centos/lib/install_spec.rb create mode 100644 qa/acceptance/spec/centos/spec_helper.rb create mode 100644 qa/acceptance/spec/config_helper.rb create mode 100644 qa/acceptance/spec/debian/lib/install_spec.rb create mode 100644 qa/acceptance/spec/debian/spec_helper.rb create mode 100644 qa/acceptance/spec/spec_helper.rb create mode 100644 qa/acceptance/sys/centos/bootstrap.sh create mode 100644 qa/acceptance/sys/centos/user_bootstrap.sh create mode 100644 qa/acceptance/sys/ubuntu/bootstrap.sh create mode 100644 qa/acceptance/sys/ubuntu/user_bootstrap.sh create mode 100644 qa/rspec/centos/commands.rb create mode 100644 qa/rspec/commands.rb create mode 100644 qa/rspec/debian/commands.rb create mode 100644 qa/rspec/helpers.rb create mode 100644 qa/rspec/matchers.rb create mode 100644 qa/rspec/matchers/be_installed.rb create mode 100644 qa/rspec/matchers/be_running.rb create mode 100644 qa/vagrant-helpers.rb diff --git a/.gitignore b/.gitignore index 9360eb39bb9..d6cbc6a259f 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,8 @@ rspec.xml .vendor integration_run .mvn/ +qa/.vm_ssh_config +qa/.vagrant +qa/.rspec +qa/acceptance/.vagrant +qa/Gemfile.lock diff --git a/qa/Gemfile b/qa/Gemfile new file mode 100644 index 00000000000..76cbdeddcdf --- /dev/null +++ b/qa/Gemfile @@ -0,0 +1,4 @@ +source "https://rubygems.org" +gem "runner-tool", :git => "https://github.com/purbon/runner-tool.git" +gem "rspec", "~> 3.1.0" +gem "rake" diff --git a/qa/README.md b/qa/README.md new file mode 100644 index 00000000000..fe5f0308052 --- /dev/null +++ b/qa/README.md @@ -0,0 +1,34 @@ +## Acceptance test Framework + +Welcome to the acceptance test framework for logstash, in this small +readme we're going to describe it's features and the the necessary steps you will need to +follow to setup your environment. + +### Environment setup + +This test are based on a collection of Vagrant defined VM's where the +different test are going to be executed, so first setup necessary is to +have vagrant properly available, see https://www.vagrantup.com/ for +details on how to install it. + +After you get vagrant installed, you will need to perform the next +setups: + +* Cd into the acceptance directory +* run the command `vagrant up`, this will provision all the machines + defined in the Vagrantfile (located in this directory). + +An alternative way would to run the task `rake test:setup` what will do +basically the same. + +When this process is done your test can be executed, to do that you will +need to: + +_Inside the `qa` directory_ + +* Execute the command `bundle` this will pull the necessary dependencies in your environment. +* Run `rake test:ssh_config` to dump the ssh configuration to access the different vagrant machines, this will generate a file named `.vm_ssh_config` that is going to be used for the tests. +* Run `bundle exec rake test:acceptance:all` to run all acceptance test + at once, there is also detailed tasks for platforms: + * `rake test:acceptance:debian` for debian platforms. + * `rake test:acceptance:centos` for centos platforms. diff --git a/qa/Rakefile b/qa/Rakefile new file mode 100644 index 00000000000..afbf3dea594 --- /dev/null +++ b/qa/Rakefile @@ -0,0 +1,53 @@ +require "rspec" +require "rspec/core/runner" +require "rspec/core/rake_task" +require_relative "vagrant-helpers" + +task :spec => 'spec:all' +task :default => :spec + +namespace :test do + + desc "Generate a valid ssh-config" + task :ssh_config do + require "json" + cd "acceptance" do + raw_ssh_config = LogStash::VagrantHelpers.fetch_config[:stdout].split("\n"); + parsed_ssh_config = LogStash::VagrantHelpers.parse(raw_ssh_config) + File.write("../.vm_ssh_config", parsed_ssh_config.to_json) + end + end + + desc "Bootstrap all the VM's used for this tests" + task "setup" do + puts "bootstraping all VM's defined in acceptance/Vagrantfile" + cd "acceptance" do + LogStash::VagrantHelpers.bootstrap + end + end + + namespace :acceptance do + + desc "Run all acceptance" + task :all do + exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/**/*_spec.rb"]])) + end + + desc "Run acceptance test in debian machines" + task :debian do + exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/debian/**/*_spec.rb"]])) + end + + desc "Run acceptance test in centos machines" + task :centos do + exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/centos/**/*_spec.rb"]])) + end + + desc "Run one single machine acceptance test" + task :single, :machine do |t, args| + ENV['LS_VAGRANT_HOST'] = args[:machine] + platform = LogStash::VagrantHelpers.translate(args[:machine]) + exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/**/*_spec.rb"]])) + end + end +end diff --git a/qa/acceptance/Vagrantfile b/qa/acceptance/Vagrantfile new file mode 100644 index 00000000000..27d55a60a16 --- /dev/null +++ b/qa/acceptance/Vagrantfile @@ -0,0 +1,43 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure(2) do |config| + + config.vm.define "ubuntu-1204" do |machine| + machine.vm.box = "elastic/ubuntu-12.04-x86_64" + common_config(machine, "ubuntu") + end + + config.vm.define "ubuntu-1404" do |machine| + machine.vm.box = "elastic/ubuntu-14.04-x86_64" + common_config(machine, "ubuntu") + end + + config.vm.define "centos-6" do |machine| + machine.vm.box = "elastic/centos-6-x86_64" + common_config(machine, "ubuntu") + end + + config.vm.define "centos-7" do |machine| + machine.vm.box = "elastic/centos-7-x86_64" + common_config(machine, "ubuntu") + end + +end + +def common_config(machine, type) + machine.vm.provider "virtualbox" do |v| + v.memory = 4096 + v.cpus = 4 + end + machine.vm.synced_folder "../../build", "/logstash-build", create: true + machine.vm.provision :shell do |sh| + sh.path = "sys/#{type}/bootstrap.sh" + sh.privileged = true + end + + machine.vm.provision :shell do |sh| + sh.path = "sys/#{type}/user_bootstrap.sh" + sh.privileged = false + end +end diff --git a/qa/acceptance/spec/centos/lib/install_spec.rb b/qa/acceptance/spec/centos/lib/install_spec.rb new file mode 100644 index 00000000000..b0c9e3130ce --- /dev/null +++ b/qa/acceptance/spec/centos/lib/install_spec.rb @@ -0,0 +1,33 @@ +# encoding: utf-8 +require_relative '../spec_helper' +require 'logstash/version' + +describe "artifacts", :platform => :centos do + + shared_examples "installable" do |host, name| + + before(:each) do + install("/logstash-build/logstash-#{LOGSTASH_VERSION}.noarch.rpm", host) + end + + it "is installed on #{name}" do + expect("logstash").to be_installed.on(host) + end + + it "is running in #{name}" do + start_service("logstash", host) + expect("logstash").to be_running.on(host) + stop_service("logstash", host) + end + + it "is removable on #{name}" do + uninstall("logstash", host) + expect("logstash").to be_removed.on(host) + end + end + + config = ServiceTester.configuration + config.servers.each do |host| + it_behaves_like "installable", host, config.lookup[host] + end +end diff --git a/qa/acceptance/spec/centos/spec_helper.rb b/qa/acceptance/spec/centos/spec_helper.rb new file mode 100644 index 00000000000..cbb2c30e545 --- /dev/null +++ b/qa/acceptance/spec/centos/spec_helper.rb @@ -0,0 +1,15 @@ +# encoding: utf-8 +require_relative '../spec_helper' + +def default_vagrant_boxes + [ + "centos-6", + "centos-7" + ] +end + +selected_boxes = SpecsHelper.find_selected_boxes(default_vagrant_boxes) + +SpecsHelper.configure(selected_boxes) + +puts "[Acceptance specs] running on #{ServiceTester.configuration.lookup.values}" if !selected_boxes.empty? diff --git a/qa/acceptance/spec/config_helper.rb b/qa/acceptance/spec/config_helper.rb new file mode 100644 index 00000000000..245aeb8e5e7 --- /dev/null +++ b/qa/acceptance/spec/config_helper.rb @@ -0,0 +1,28 @@ +# encoding: utf-8 +require "json" + +module SpecsHelper + + def self.find_selected_boxes(default_boxes=[]) + if ENV.include?('LS_VAGRANT_HOST') then + default_boxes.include?(ENV['LS_VAGRANT_HOST']) ? ENV['LS_VAGRANT_HOST'] : [] + else + default_boxes + end + end + + def self.configure(vagrant_boxes) + setup_config = JSON.parse(File.read(".vm_ssh_config")) + ServiceTester.configure do |config| + config.servers = [] + config.lookup = {} + setup_config.each do |host_info| + next unless vagrant_boxes.include?(host_info["host"]) + url = "#{host_info["hostname"]}:#{host_info["port"]}" + config.servers << url + config.lookup[url] = host_info["host"] + end + end + end + +end diff --git a/qa/acceptance/spec/debian/lib/install_spec.rb b/qa/acceptance/spec/debian/lib/install_spec.rb new file mode 100644 index 00000000000..4b10baa6e5d --- /dev/null +++ b/qa/acceptance/spec/debian/lib/install_spec.rb @@ -0,0 +1,33 @@ +# encoding: utf-8 +require_relative '../spec_helper' +require 'logstash/version' + +describe "artifacts", :platform => :debian do + + shared_examples "installable" do |host, name| + + before(:each) do + install("/logstash-build/logstash-#{LOGSTASH_VERSION}_all.deb", host) + end + + it "is installed on #{name}" do + expect("logstash").to be_installed.on(host) + end + + it "is running on #{name}" do + start_service("logstash", host) + expect("logstash").to be_running.on(host) + stop_service("logstash", host) + end + + it "is removable on #{name}" do + uninstall("logstash", host) + expect("logstash").to be_removed.on(host) + end + end + + config = ServiceTester.configuration + config.servers.each do |host| + it_behaves_like "installable", host, config.lookup[host] + end +end diff --git a/qa/acceptance/spec/debian/spec_helper.rb b/qa/acceptance/spec/debian/spec_helper.rb new file mode 100644 index 00000000000..c9cfe0da7d7 --- /dev/null +++ b/qa/acceptance/spec/debian/spec_helper.rb @@ -0,0 +1,15 @@ +# encoding: utf-8 +require_relative '../spec_helper' + +def default_vagrant_boxes + [ + "ubuntu-1204", + "ubuntu-1404" + ] +end + +selected_boxes = SpecsHelper.find_selected_boxes(default_vagrant_boxes) + +SpecsHelper.configure(selected_boxes) + +puts "[Acceptance specs] running on #{ServiceTester.configuration.lookup.values}" if !selected_boxes.empty? diff --git a/qa/acceptance/spec/spec_helper.rb b/qa/acceptance/spec/spec_helper.rb new file mode 100644 index 00000000000..4e8e0c40a5c --- /dev/null +++ b/qa/acceptance/spec/spec_helper.rb @@ -0,0 +1,14 @@ +# encoding: utf-8 +require 'runner-tool' +require_relative '../../rspec/helpers' +require_relative '../../rspec/matchers' +require_relative 'config_helper' + +ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..')) +$LOAD_PATH.unshift File.join(ROOT, 'logstash-core/lib') + +RunnerTool.configure + +RSpec.configure do |c| + c.include ServiceTester +end diff --git a/qa/acceptance/sys/centos/bootstrap.sh b/qa/acceptance/sys/centos/bootstrap.sh new file mode 100644 index 00000000000..cf02a31f250 --- /dev/null +++ b/qa/acceptance/sys/centos/bootstrap.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +yum update +yum install -y java-1.8.0-openjdk-devel.x86_64 + +## +# Install logstash manually from a URL +## +BRANCH=${LOGSTASH_BRANCH:-'master'} +BUILD_URL='https://s3-eu-west-1.amazonaws.com/build-eu.elasticsearch.org/logstash' +URL="$BUILD_URL/$BRANCH/nightly/JDK8/logstash-latest-SNAPSHOT.rpm" +wget --no-verbose $URL diff --git a/qa/acceptance/sys/centos/user_bootstrap.sh b/qa/acceptance/sys/centos/user_bootstrap.sh new file mode 100644 index 00000000000..835dcd580b4 --- /dev/null +++ b/qa/acceptance/sys/centos/user_bootstrap.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +cd +wget --no-verbose https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.3.1-1.noarch.rpm diff --git a/qa/acceptance/sys/ubuntu/bootstrap.sh b/qa/acceptance/sys/ubuntu/bootstrap.sh new file mode 100644 index 00000000000..e72bac6e18e --- /dev/null +++ b/qa/acceptance/sys/ubuntu/bootstrap.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +apt-get update +apt-get install -y openjdk-7-jdk + +## +# Install logstash manually from a URL +## +BRANCH=${LOGSTASH_BRANCH:-'master'} +BUILD_URL='https://s3-eu-west-1.amazonaws.com/build-eu.elasticsearch.org/logstash' +URL="$BUILD_URL/$BRANCH/nightly/JDK8/logstash-latest-SNAPSHOT.deb" +wget --no-verbose $URL diff --git a/qa/acceptance/sys/ubuntu/user_bootstrap.sh b/qa/acceptance/sys/ubuntu/user_bootstrap.sh new file mode 100644 index 00000000000..ef0699cf560 --- /dev/null +++ b/qa/acceptance/sys/ubuntu/user_bootstrap.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +cd +wget --no-verbose https://download.elastic.co/logstash/logstash/packages/debian/logstash_2.3.1-1_all.deb diff --git a/qa/rspec/centos/commands.rb b/qa/rspec/centos/commands.rb new file mode 100644 index 00000000000..c293bb65338 --- /dev/null +++ b/qa/rspec/centos/commands.rb @@ -0,0 +1,58 @@ +# encoding: utf-8 +module ServiceTester + class CentosCommands + + def installed?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = exec!("yum list installed #{package}") + stdout = cmd.stdout + end + stdout.match(/^Installed Packages$/) + stdout.match(/^logstash.noarch/) + end + + def install(package, host=nil) + hosts = (host.nil? ? servers : Array(host)) + errors = {} + at(hosts, {in: :serial}) do |_host| + cmd = sudo_exec!("yum install -y #{package}") + errors[_host] = cmd.stderr unless cmd.stderr.empty? + end + errors + end + + def uninstall(package, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + sudo_exec!("yum remove -y #{package}") + end + end + + def removed?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("yum list installed #{package}") + stdout = cmd.stderr + end + stdout.match(/^Error: No matching Packages to list$/) + end + + def running?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("service #{package} status") + stdout = cmd.stdout + end + stdout.match(/^#{package} is running$/) + end + + def service_manager(service, action, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |host| + sudo_exec!("service #{service} #{action}") + end + end + + end +end diff --git a/qa/rspec/commands.rb b/qa/rspec/commands.rb new file mode 100644 index 00000000000..a06a8ceb10e --- /dev/null +++ b/qa/rspec/commands.rb @@ -0,0 +1,19 @@ +# encoding: utf-8 +require_relative "./debian/commands" +require_relative "./centos/commands" + +module ServiceTester + class CommandsFactory + + def self.fetch(type) + case type + when :debian + return DebianCommands.new + when :centos + return CentosCommands.new + else + return + end + end + end +end diff --git a/qa/rspec/debian/commands.rb b/qa/rspec/debian/commands.rb new file mode 100644 index 00000000000..c0570dcad65 --- /dev/null +++ b/qa/rspec/debian/commands.rb @@ -0,0 +1,59 @@ +# encoding: utf-8 +module ServiceTester + class DebianCommands + + def installed?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("dpkg -s #{package}") + stdout = cmd.stdout + end + stdout.match(/^Package: #{package}$/) + stdout.match(/^Status: install ok installed$/) + end + + def install(package, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + sudo_exec!("dpkg -i #{package}") + end + end + + def uninstall(package, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + sudo_exec!("dpkg -r #{package}") + sudo_exec!("dpkg --purge #{package}") + end + end + + def removed?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("dpkg -s #{package}") + stdout = cmd.stderr + end + ( + stdout.match(/^Package `#{package}' is not installed and no info is available.$/) || + stdout.match(/^dpkg-query: package '#{package}' is not installed and no information is available$/) + ) + end + + def running?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("service #{package} status") + stdout = cmd.stdout + end + stdout.match(/^#{package} is running$/) + end + + def service_manager(service, action, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + sudo_exec!("service #{service} #{action}") + end + end + + end +end diff --git a/qa/rspec/helpers.rb b/qa/rspec/helpers.rb new file mode 100644 index 00000000000..60f6729a1b4 --- /dev/null +++ b/qa/rspec/helpers.rb @@ -0,0 +1,50 @@ +# encoding: utf-8 +require_relative "commands" + +module ServiceTester + + class Configuration + attr_accessor :servers, :lookup + def initialize + @servers = [] + @lookup = {} + end + end + + class << self + attr_accessor :configuration + end + + def self.configure + self.configuration ||= Configuration.new + yield(configuration) if block_given? + end + + def servers + ServiceTester.configuration.servers + end + + def install(package, host=nil) + select_client.install(package, host) + end + + def uninstall(package, host=nil) + select_client.uninstall(package, host) + end + + def start_service(service, host=nil) + select_client.service_manager(service, "start", host) + end + + def stop_service(service, host=nil) + select_client.service_manager(service, "stop", host) + end + + def select_client + CommandsFactory.fetch(current_example.metadata[:platform]) + end + + def current_example + RSpec.respond_to?(:current_example) ? RSpec.current_example : self.example + end +end diff --git a/qa/rspec/matchers.rb b/qa/rspec/matchers.rb new file mode 100644 index 00000000000..226a0ce9cd6 --- /dev/null +++ b/qa/rspec/matchers.rb @@ -0,0 +1,3 @@ +# encoding: utf-8 +require_relative './matchers/be_installed' +require_relative './matchers/be_running' diff --git a/qa/rspec/matchers/be_installed.rb b/qa/rspec/matchers/be_installed.rb new file mode 100644 index 00000000000..83ab67f80fe --- /dev/null +++ b/qa/rspec/matchers/be_installed.rb @@ -0,0 +1,25 @@ +# encoding: utf-8 +require 'rspec/expectations' +require_relative '../helpers' + +RSpec::Matchers.define :be_installed do + + match do |actual| + select_client.installed?([@host], actual) + end + + chain :on do |host| + @host = host + end +end + +RSpec::Matchers.define :be_removed do + + match do |actual| + select_client.removed?([@host], actual) + end + + chain :on do |host| + @host = host + end +end diff --git a/qa/rspec/matchers/be_running.rb b/qa/rspec/matchers/be_running.rb new file mode 100644 index 00000000000..beeb98f1082 --- /dev/null +++ b/qa/rspec/matchers/be_running.rb @@ -0,0 +1,14 @@ +# encoding: utf-8 +require 'rspec/expectations' +require_relative '../helpers' + +RSpec::Matchers.define :be_running do + + match do |actual| + select_client.running?([@host], actual) + end + + chain :on do |host| + @host = host + end +end diff --git a/qa/vagrant-helpers.rb b/qa/vagrant-helpers.rb new file mode 100644 index 00000000000..aba405bbb2a --- /dev/null +++ b/qa/vagrant-helpers.rb @@ -0,0 +1,43 @@ +# encoding: utf-8 +require "open3" + +module LogStash + class VagrantHelpers + + def self.bootstrap + execute("vagrant up") + end + + def self.fetch_config + execute("vagrant ssh-config") + end + + def self.parse(lines) + hosts, host = [], {} + lines.each do |line| + if line.match(/Host\s(.*)$/) + host = { :host => line.gsub("Host","").strip } + elsif line.match(/HostName\s(.*)$/) + host[:hostname] = line.gsub("HostName","").strip + elsif line.match(/Port\s(.*)$/) + host[:port] = line.gsub("Port","").strip + elsif line.empty? + hosts << host + host = {} + end + end + hosts << host + hosts + end + + private + + def self.execute(cmd) + Open3.popen3(cmd) do |stdin, stdout, stderr, wait_thr| + { :stdout => stdout.read.chomp, :stderr => stderr.read.chomp, + :exit_status => wait_thr.value.exitstatus } + end + end + + end +end From 99b7f772cfa2f6eb0de4c18066770eb8ffb2ad14 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 25 Apr 2016 11:05:54 -0400 Subject: [PATCH 161/632] Introduce the use of a platforms.json file where to keep all platforms information to simplify the vagrantfile structure. Also make the vagrant execution more elegant under rake Fixes #5350 --- qa/Rakefile | 24 ++++---- qa/Vagrantfile | 27 +++++++++ qa/acceptance/Vagrantfile | 43 --------------- qa/platform_config.rb | 41 ++++++++++++++ qa/platforms.json | 6 ++ qa/{acceptance => }/sys/centos/bootstrap.sh | 0 .../sys/centos/user_bootstrap.sh | 0 qa/{acceptance => }/sys/ubuntu/bootstrap.sh | 0 .../sys/ubuntu/user_bootstrap.sh | 0 qa/vagrant-helpers.rb | 55 +++++++++++++++---- 10 files changed, 127 insertions(+), 69 deletions(-) create mode 100644 qa/Vagrantfile delete mode 100644 qa/acceptance/Vagrantfile create mode 100644 qa/platform_config.rb create mode 100644 qa/platforms.json rename qa/{acceptance => }/sys/centos/bootstrap.sh (100%) rename qa/{acceptance => }/sys/centos/user_bootstrap.sh (100%) rename qa/{acceptance => }/sys/ubuntu/bootstrap.sh (100%) rename qa/{acceptance => }/sys/ubuntu/user_bootstrap.sh (100%) diff --git a/qa/Rakefile b/qa/Rakefile index afbf3dea594..3c38901bf2c 100644 --- a/qa/Rakefile +++ b/qa/Rakefile @@ -2,17 +2,19 @@ require "rspec" require "rspec/core/runner" require "rspec/core/rake_task" require_relative "vagrant-helpers" +require_relative "platform_config" + +platforms = PlatformConfig.new task :spec => 'spec:all' task :default => :spec namespace :test do - desc "Generate a valid ssh-config" task :ssh_config do require "json" cd "acceptance" do - raw_ssh_config = LogStash::VagrantHelpers.fetch_config[:stdout].split("\n"); + raw_ssh_config = LogStash::VagrantHelpers.fetch_config.stdout.split("\n"); parsed_ssh_config = LogStash::VagrantHelpers.parse(raw_ssh_config) File.write("../.vm_ssh_config", parsed_ssh_config.to_json) end @@ -21,26 +23,20 @@ namespace :test do desc "Bootstrap all the VM's used for this tests" task "setup" do puts "bootstraping all VM's defined in acceptance/Vagrantfile" - cd "acceptance" do - LogStash::VagrantHelpers.bootstrap - end + LogStash::VagrantHelpers.bootstrap end namespace :acceptance do - desc "Run all acceptance" task :all do exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/**/*_spec.rb"]])) end - desc "Run acceptance test in debian machines" - task :debian do - exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/debian/**/*_spec.rb"]])) - end - - desc "Run acceptance test in centos machines" - task :centos do - exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/centos/**/*_spec.rb"]])) + platforms.types.each do |type| + desc "Run acceptance test in #{type} machines" + task type do + exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/#{type}/**/*_spec.rb"]])) + end end desc "Run one single machine acceptance test" diff --git a/qa/Vagrantfile b/qa/Vagrantfile new file mode 100644 index 00000000000..50e10b83586 --- /dev/null +++ b/qa/Vagrantfile @@ -0,0 +1,27 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : +require_relative "./platform_config.rb" + +Vagrant.configure(2) do |config| + platforms = PlatformConfig.new + + platforms.each do |platform| + config.vm.define platform.name do |machine| + machine.vm.box = platform.box + machine.vm.provider "virtualbox" do |v| + v.memory = 2096 + v.cpus = 4 + end + machine.vm.synced_folder "../../build", "/logstash-build", create: true + machine.vm.provision :shell do |sh| + sh.path = "sys/#{platform.type}/bootstrap.sh" + sh.privileged = true + end + + machine.vm.provision :shell do |sh| + sh.path = "sys/#{platform.type}/user_bootstrap.sh" + sh.privileged = false + end + end + end +end diff --git a/qa/acceptance/Vagrantfile b/qa/acceptance/Vagrantfile deleted file mode 100644 index 27d55a60a16..00000000000 --- a/qa/acceptance/Vagrantfile +++ /dev/null @@ -1,43 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -Vagrant.configure(2) do |config| - - config.vm.define "ubuntu-1204" do |machine| - machine.vm.box = "elastic/ubuntu-12.04-x86_64" - common_config(machine, "ubuntu") - end - - config.vm.define "ubuntu-1404" do |machine| - machine.vm.box = "elastic/ubuntu-14.04-x86_64" - common_config(machine, "ubuntu") - end - - config.vm.define "centos-6" do |machine| - machine.vm.box = "elastic/centos-6-x86_64" - common_config(machine, "ubuntu") - end - - config.vm.define "centos-7" do |machine| - machine.vm.box = "elastic/centos-7-x86_64" - common_config(machine, "ubuntu") - end - -end - -def common_config(machine, type) - machine.vm.provider "virtualbox" do |v| - v.memory = 4096 - v.cpus = 4 - end - machine.vm.synced_folder "../../build", "/logstash-build", create: true - machine.vm.provision :shell do |sh| - sh.path = "sys/#{type}/bootstrap.sh" - sh.privileged = true - end - - machine.vm.provision :shell do |sh| - sh.path = "sys/#{type}/user_bootstrap.sh" - sh.privileged = false - end -end diff --git a/qa/platform_config.rb b/qa/platform_config.rb new file mode 100644 index 00000000000..b3df09da7fe --- /dev/null +++ b/qa/platform_config.rb @@ -0,0 +1,41 @@ +# encoding: utf-8 +require "json" + +class PlatformConfig + Platform = Struct.new(:name, :box, :type) + + DEFAULT_CONFIG_LOCATION = File.join(File.dirname(__FILE__), "platforms.json") + + def initialize(config_path = DEFAULT_CONFIG_LOCATION) + @config_path = config_path + @platforms = [] + + data = JSON.parse(File.read(@config_path)) + data.each do |k, v| + @platforms << Platform.new(k, v["box"], v["type"]) + end + + @platforms.sort! { |a, b| a.name <=> b.name } + end + + def find!(platform_name) + result = @platforms.find { |platform| platform.name == platform_name }.first + if result.nil? + raise "Cannot find platform named: #{platform_name} in @config_path" + else + return result + end + end + + def each(&block) + @platforms.each(&block) + end + + def filter_type(type_name) + @platforms.select { |platform| platform.type == type_name } + end + + def types + @platforms.collect(&:type).uniq.sort + end +end diff --git a/qa/platforms.json b/qa/platforms.json new file mode 100644 index 00000000000..b57e3b038bb --- /dev/null +++ b/qa/platforms.json @@ -0,0 +1,6 @@ +{ + "ubuntu-1204": { "box": "elastic/ubuntu-12.04-x86_64", "type": "ubuntu" }, + "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "ubuntu" }, + "centos-6": { "box": "elastic/centos-6-x86_64", "type": "centos" }, + "centos-7": { "box": "elastic/centos-7-x86_64", "type": "centos" } +} diff --git a/qa/acceptance/sys/centos/bootstrap.sh b/qa/sys/centos/bootstrap.sh similarity index 100% rename from qa/acceptance/sys/centos/bootstrap.sh rename to qa/sys/centos/bootstrap.sh diff --git a/qa/acceptance/sys/centos/user_bootstrap.sh b/qa/sys/centos/user_bootstrap.sh similarity index 100% rename from qa/acceptance/sys/centos/user_bootstrap.sh rename to qa/sys/centos/user_bootstrap.sh diff --git a/qa/acceptance/sys/ubuntu/bootstrap.sh b/qa/sys/ubuntu/bootstrap.sh similarity index 100% rename from qa/acceptance/sys/ubuntu/bootstrap.sh rename to qa/sys/ubuntu/bootstrap.sh diff --git a/qa/acceptance/sys/ubuntu/user_bootstrap.sh b/qa/sys/ubuntu/user_bootstrap.sh similarity index 100% rename from qa/acceptance/sys/ubuntu/user_bootstrap.sh rename to qa/sys/ubuntu/user_bootstrap.sh diff --git a/qa/vagrant-helpers.rb b/qa/vagrant-helpers.rb index aba405bbb2a..fcff83f9b0c 100644 --- a/qa/vagrant-helpers.rb +++ b/qa/vagrant-helpers.rb @@ -1,15 +1,56 @@ # encoding: utf-8 require "open3" +require "bundler" module LogStash + class CommandExecutor + class CommandError < StandardError; end + + class CommandResponse + attr_reader :stdin, :stdout, :stderr, :exitstatus + + def initialize(stdin, stdout, stderr, exitstatus) + @stdin = stdin, + @stdout = stdout + @stderr = stderr + @exitstatus = exitstatus + end + + def success? + exitstatus == 0 + end + end + + def self.run(cmd) + # This block is require to be able to launch a ruby subprocess + # that use bundler. + Bundler.with_clean_env do + Open3.popen3(cmd) do |stdin, stdout, stderr, wait_thr| + CommandResponse.new(stdin, stdout.read.chomp, stderr.read.chomp, wait_thr.value.exitstatus) + end + end + end + + # This method will raise an exception if the `CMD` + # was not run successfully and will display the content of STDERR + def self.run!(cmd) + response = run(cmd) + + unless response.success? + raise CommandError, "CMD: #{cmd} STDERR: #{response.stderr}" + end + response + end + end + class VagrantHelpers def self.bootstrap - execute("vagrant up") + CommandExecutor.run!("vagrant up") end def self.fetch_config - execute("vagrant ssh-config") + CommandExecutor.run!("vagrant ssh-config") end def self.parse(lines) @@ -29,15 +70,5 @@ def self.parse(lines) hosts << host hosts end - - private - - def self.execute(cmd) - Open3.popen3(cmd) do |stdin, stdout, stderr, wait_thr| - { :stdout => stdout.read.chomp, :stderr => stderr.read.chomp, - :exit_status => wait_thr.value.exitstatus } - end - end - end end From 34edb9773f6fbd33733724fcee8ff1c60274eb17 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Wed, 27 Apr 2016 12:50:32 -0700 Subject: [PATCH 162/632] update SNAPSHOT tests to run Fixes #5350 --- qa/README.md | 16 ++-------------- qa/Rakefile | 8 +++----- qa/acceptance/spec/centos/lib/install_spec.rb | 2 +- qa/acceptance/spec/debian/lib/install_spec.rb | 2 +- qa/platforms.json | 4 ++-- qa/sys/{ubuntu => debian}/bootstrap.sh | 0 qa/sys/{ubuntu => debian}/user_bootstrap.sh | 0 7 files changed, 9 insertions(+), 23 deletions(-) rename qa/sys/{ubuntu => debian}/bootstrap.sh (100%) rename qa/sys/{ubuntu => debian}/user_bootstrap.sh (100%) diff --git a/qa/README.md b/qa/README.md index fe5f0308052..95811dd73ab 100644 --- a/qa/README.md +++ b/qa/README.md @@ -4,29 +4,17 @@ Welcome to the acceptance test framework for logstash, in this small readme we're going to describe it's features and the the necessary steps you will need to follow to setup your environment. -### Environment setup +### Environment setup and Running Tests This test are based on a collection of Vagrant defined VM's where the different test are going to be executed, so first setup necessary is to have vagrant properly available, see https://www.vagrantup.com/ for details on how to install it. -After you get vagrant installed, you will need to perform the next -setups: - -* Cd into the acceptance directory -* run the command `vagrant up`, this will provision all the machines - defined in the Vagrantfile (located in this directory). - -An alternative way would to run the task `rake test:setup` what will do -basically the same. - -When this process is done your test can be executed, to do that you will -need to: - _Inside the `qa` directory_ * Execute the command `bundle` this will pull the necessary dependencies in your environment. +* start your machines with `bundle exec test:setup` * Run `rake test:ssh_config` to dump the ssh configuration to access the different vagrant machines, this will generate a file named `.vm_ssh_config` that is going to be used for the tests. * Run `bundle exec rake test:acceptance:all` to run all acceptance test at once, there is also detailed tasks for platforms: diff --git a/qa/Rakefile b/qa/Rakefile index 3c38901bf2c..6c0a6e460c5 100644 --- a/qa/Rakefile +++ b/qa/Rakefile @@ -13,11 +13,9 @@ namespace :test do desc "Generate a valid ssh-config" task :ssh_config do require "json" - cd "acceptance" do - raw_ssh_config = LogStash::VagrantHelpers.fetch_config.stdout.split("\n"); - parsed_ssh_config = LogStash::VagrantHelpers.parse(raw_ssh_config) - File.write("../.vm_ssh_config", parsed_ssh_config.to_json) - end + raw_ssh_config = LogStash::VagrantHelpers.fetch_config.stdout.split("\n"); + parsed_ssh_config = LogStash::VagrantHelpers.parse(raw_ssh_config) + File.write(".vm_ssh_config", parsed_ssh_config.to_json) end desc "Bootstrap all the VM's used for this tests" diff --git a/qa/acceptance/spec/centos/lib/install_spec.rb b/qa/acceptance/spec/centos/lib/install_spec.rb index b0c9e3130ce..ceb9597c49e 100644 --- a/qa/acceptance/spec/centos/lib/install_spec.rb +++ b/qa/acceptance/spec/centos/lib/install_spec.rb @@ -7,7 +7,7 @@ shared_examples "installable" do |host, name| before(:each) do - install("/logstash-build/logstash-#{LOGSTASH_VERSION}.noarch.rpm", host) + install("/home/vagrant/logstash-latest-SNAPSHOT.rpm", host) end it "is installed on #{name}" do diff --git a/qa/acceptance/spec/debian/lib/install_spec.rb b/qa/acceptance/spec/debian/lib/install_spec.rb index 4b10baa6e5d..424c84f3482 100644 --- a/qa/acceptance/spec/debian/lib/install_spec.rb +++ b/qa/acceptance/spec/debian/lib/install_spec.rb @@ -7,7 +7,7 @@ shared_examples "installable" do |host, name| before(:each) do - install("/logstash-build/logstash-#{LOGSTASH_VERSION}_all.deb", host) + install("/home/vagrant/logstash-latest-SNAPSHOT.deb", host) end it "is installed on #{name}" do diff --git a/qa/platforms.json b/qa/platforms.json index b57e3b038bb..f97de63cbdd 100644 --- a/qa/platforms.json +++ b/qa/platforms.json @@ -1,6 +1,6 @@ { - "ubuntu-1204": { "box": "elastic/ubuntu-12.04-x86_64", "type": "ubuntu" }, - "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "ubuntu" }, + "ubuntu-1204": { "box": "elastic/ubuntu-12.04-x86_64", "type": "debian" }, + "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "debian" }, "centos-6": { "box": "elastic/centos-6-x86_64", "type": "centos" }, "centos-7": { "box": "elastic/centos-7-x86_64", "type": "centos" } } diff --git a/qa/sys/ubuntu/bootstrap.sh b/qa/sys/debian/bootstrap.sh similarity index 100% rename from qa/sys/ubuntu/bootstrap.sh rename to qa/sys/debian/bootstrap.sh diff --git a/qa/sys/ubuntu/user_bootstrap.sh b/qa/sys/debian/user_bootstrap.sh similarity index 100% rename from qa/sys/ubuntu/user_bootstrap.sh rename to qa/sys/debian/user_bootstrap.sh From f74e339e77dc6f5f944958df31528b30c43ccb72 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 27 Apr 2016 16:11:24 -0400 Subject: [PATCH 163/632] Allow to run acceptance test with the local logstash This change introduce a new command ci/ci_acceptance which is responsable of building the packages, bootstraping the acceptance test environment, launching the VMs and running the tests. You can use the following command to target specific platform. ``` ci/ci_acceptance.sh all ci/ci_acceptance.sh centos ci/ci_acceptance.sh debian ``` This PR also add a new rake task to build all the artifacts in a single run called rake artifact:all it make sure we only install the plugin only once and make the build process faster. Fixes #5350 --- ci/ci_acceptance.sh | 46 +++++++++++++++++++ qa/README.md | 5 ++ qa/Rakefile | 2 +- qa/Vagrantfile | 7 +-- qa/acceptance/spec/centos/lib/install_spec.rb | 6 +-- qa/acceptance/spec/config_helper.rb | 4 +- qa/acceptance/spec/debian/lib/install_spec.rb | 6 +-- qa/sys/centos/bootstrap.sh | 8 ---- qa/sys/centos/user_bootstrap.sh | 4 -- qa/sys/debian/bootstrap.sh | 8 ---- qa/sys/debian/user_bootstrap.sh | 4 -- rakelib/artifacts.rake | 15 ++++++ 12 files changed, 76 insertions(+), 39 deletions(-) create mode 100755 ci/ci_acceptance.sh delete mode 100644 qa/sys/centos/user_bootstrap.sh delete mode 100644 qa/sys/debian/user_bootstrap.sh diff --git a/ci/ci_acceptance.sh b/ci/ci_acceptance.sh new file mode 100755 index 00000000000..b85e26fb3cd --- /dev/null +++ b/ci/ci_acceptance.sh @@ -0,0 +1,46 @@ +#!/bin/sh +set -e + +# Since we are using the system jruby, we need to make sure our jvm process +# uses at least 1g of memory, If we don't do this we can get OOM issues when +# installing gems. See https://github.com/elastic/logstash/issues/5179 +export JRUBY_OPTS="-J-Xmx1g" + +SELECTED_TEST_SUITE=$1 + +if [[ $SELECTED_TEST_SUITE == $"centos" ]]; then + echo "Generating the RPM, make sure you start with a clean environment before generating other packages." + rake artifact:rpm + echo "Acceptance: Installing dependencies" + cd qa + bundle install + + echo "Acceptance: Running the tests" + bundle exec rake test:setup + bundle exec rake test:ssh_config + bundle exec rake test:acceptance:centos +elif [[ $SELECTED_TEST_SUITE == $"debian" ]]; then + echo "Generating the DEB, make sure you start with a clean environment before generating other packages." + rake artifact:deb + echo "Acceptance: Installing dependencies" + cd qa + bundle install + + echo "Acceptance: Running the tests" + bundle exec rake test:setup + bundle exec rake test:ssh_config + bundle exec rake test:acceptance:debian +elif [[ $SELECTED_TEST_SUITE == $"all" ]]; then + echo "Building Logstash artifacts" + rake artifact:all + + echo "Acceptance: Installing dependencies" + cd qa + bundle install + + echo "Acceptance: Running the tests" + bundle exec rake test:setup + bundle exec rake test:ssh_config + bundle exec rake test:acceptance:all + cd .. +fi diff --git a/qa/README.md b/qa/README.md index 95811dd73ab..1cd42210a7e 100644 --- a/qa/README.md +++ b/qa/README.md @@ -6,6 +6,11 @@ follow to setup your environment. ### Environment setup and Running Tests +It is possible to run the full suite of the acceptance test with the codebase by +running the command `ci/ci_acceptance.sh`, this command will generate the artefacts, bootstrap +the VM and run the tests. + + This test are based on a collection of Vagrant defined VM's where the different test are going to be executed, so first setup necessary is to have vagrant properly available, see https://www.vagrantup.com/ for diff --git a/qa/Rakefile b/qa/Rakefile index 6c0a6e460c5..f8d616d4eac 100644 --- a/qa/Rakefile +++ b/qa/Rakefile @@ -15,7 +15,7 @@ namespace :test do require "json" raw_ssh_config = LogStash::VagrantHelpers.fetch_config.stdout.split("\n"); parsed_ssh_config = LogStash::VagrantHelpers.parse(raw_ssh_config) - File.write(".vm_ssh_config", parsed_ssh_config.to_json) + File.write(File.join(File.dirname(__FILE__), ".vm_ssh_config"), parsed_ssh_config.to_json) end desc "Bootstrap all the VM's used for this tests" diff --git a/qa/Vagrantfile b/qa/Vagrantfile index 50e10b83586..fa98a6f93c8 100644 --- a/qa/Vagrantfile +++ b/qa/Vagrantfile @@ -12,16 +12,11 @@ Vagrant.configure(2) do |config| v.memory = 2096 v.cpus = 4 end - machine.vm.synced_folder "../../build", "/logstash-build", create: true + machine.vm.synced_folder "../build", "/logstash-build", create: true machine.vm.provision :shell do |sh| sh.path = "sys/#{platform.type}/bootstrap.sh" sh.privileged = true end - - machine.vm.provision :shell do |sh| - sh.path = "sys/#{platform.type}/user_bootstrap.sh" - sh.privileged = false - end end end end diff --git a/qa/acceptance/spec/centos/lib/install_spec.rb b/qa/acceptance/spec/centos/lib/install_spec.rb index ceb9597c49e..44353bb92cf 100644 --- a/qa/acceptance/spec/centos/lib/install_spec.rb +++ b/qa/acceptance/spec/centos/lib/install_spec.rb @@ -1,13 +1,13 @@ # encoding: utf-8 -require_relative '../spec_helper' -require 'logstash/version' +require_relative "../spec_helper" +require "logstash/version" describe "artifacts", :platform => :centos do shared_examples "installable" do |host, name| before(:each) do - install("/home/vagrant/logstash-latest-SNAPSHOT.rpm", host) + install("/logstash-build/logstash-#{LOGSTASH_VERSION}.noarch.rpm", host) end it "is installed on #{name}" do diff --git a/qa/acceptance/spec/config_helper.rb b/qa/acceptance/spec/config_helper.rb index 245aeb8e5e7..dc7b5b4fe44 100644 --- a/qa/acceptance/spec/config_helper.rb +++ b/qa/acceptance/spec/config_helper.rb @@ -12,7 +12,8 @@ def self.find_selected_boxes(default_boxes=[]) end def self.configure(vagrant_boxes) - setup_config = JSON.parse(File.read(".vm_ssh_config")) + setup_config = JSON.parse(File.read(File.join(File.dirname(__FILE__), "..", "..", ".vm_ssh_config"))) + ServiceTester.configure do |config| config.servers = [] config.lookup = {} @@ -24,5 +25,4 @@ def self.configure(vagrant_boxes) end end end - end diff --git a/qa/acceptance/spec/debian/lib/install_spec.rb b/qa/acceptance/spec/debian/lib/install_spec.rb index 424c84f3482..6a91605c4d4 100644 --- a/qa/acceptance/spec/debian/lib/install_spec.rb +++ b/qa/acceptance/spec/debian/lib/install_spec.rb @@ -1,13 +1,13 @@ # encoding: utf-8 -require_relative '../spec_helper' -require 'logstash/version' +require_relative "../spec_helper" +require "logstash/version" describe "artifacts", :platform => :debian do shared_examples "installable" do |host, name| before(:each) do - install("/home/vagrant/logstash-latest-SNAPSHOT.deb", host) + install("/logstash-build/logstash-#{LOGSTASH_VERSION}_all.deb", host) end it "is installed on #{name}" do diff --git a/qa/sys/centos/bootstrap.sh b/qa/sys/centos/bootstrap.sh index cf02a31f250..5976f47722f 100644 --- a/qa/sys/centos/bootstrap.sh +++ b/qa/sys/centos/bootstrap.sh @@ -2,11 +2,3 @@ yum update yum install -y java-1.8.0-openjdk-devel.x86_64 - -## -# Install logstash manually from a URL -## -BRANCH=${LOGSTASH_BRANCH:-'master'} -BUILD_URL='https://s3-eu-west-1.amazonaws.com/build-eu.elasticsearch.org/logstash' -URL="$BUILD_URL/$BRANCH/nightly/JDK8/logstash-latest-SNAPSHOT.rpm" -wget --no-verbose $URL diff --git a/qa/sys/centos/user_bootstrap.sh b/qa/sys/centos/user_bootstrap.sh deleted file mode 100644 index 835dcd580b4..00000000000 --- a/qa/sys/centos/user_bootstrap.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -cd -wget --no-verbose https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.3.1-1.noarch.rpm diff --git a/qa/sys/debian/bootstrap.sh b/qa/sys/debian/bootstrap.sh index e72bac6e18e..7d385b93490 100644 --- a/qa/sys/debian/bootstrap.sh +++ b/qa/sys/debian/bootstrap.sh @@ -2,11 +2,3 @@ apt-get update apt-get install -y openjdk-7-jdk - -## -# Install logstash manually from a URL -## -BRANCH=${LOGSTASH_BRANCH:-'master'} -BUILD_URL='https://s3-eu-west-1.amazonaws.com/build-eu.elasticsearch.org/logstash' -URL="$BUILD_URL/$BRANCH/nightly/JDK8/logstash-latest-SNAPSHOT.deb" -wget --no-verbose $URL diff --git a/qa/sys/debian/user_bootstrap.sh b/qa/sys/debian/user_bootstrap.sh deleted file mode 100644 index ef0699cf560..00000000000 --- a/qa/sys/debian/user_bootstrap.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -cd -wget --no-verbose https://download.elastic.co/logstash/logstash/packages/debian/logstash_2.3.1-1_all.deb diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index 1655302e4ac..581d8c798cb 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -55,6 +55,20 @@ namespace "artifact" do end.flatten.uniq end + task "all" => ["prepare"] do + Rake::Task["artifact:deb"].invoke + Rake::Task["artifact:rpm"].invoke + Rake::Task["artifact:zip"].invoke + Rake::Task["artifact:tar"].invoke + end + + task "all-all-plugins" => ["prepare-all"] do + Rake::Task["artifact:deb"].invoke + Rake::Task["artifact:rpm"].invoke + Rake::Task["artifact:zip"].invoke + Rake::Task["artifact:tar"].invoke + end + # We create an empty bundle config file # This will allow the deb and rpm to create a file # with the correct user group and permission. @@ -122,6 +136,7 @@ namespace "artifact" do end task "prepare" => ["bootstrap", "plugin:install-default", "install-logstash-core", "install-logstash-core-event", "install-logstash-core-plugin-api", "clean-bundle-config"] + task "prepare-all" => ["bootstrap", "plugin:install-all", "install-logstash-core", "install-logstash-core-event", "install-logstash-core-plugin-api", "clean-bundle-config"] desc "Build a tar.gz of default logstash plugins with all dependencies" From 1be0d271d3f0ed8ef4263e1e9fd80298221eb062 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Fri, 29 Apr 2016 11:13:16 +0200 Subject: [PATCH 164/632] Introduce the concept of a single spec for the tests, we removed the platform depant test as they where mostly similar, but only used with small platform dependant metadata, this all has been moved to factory methods. make sure platforms uses canonicals "former" names, so no "ubuntu" platfrom as is debian based, and no "centos" as is redhat based. Also: * Refactored the specs organization to make the resoning behind simplier, introducing the idea of an artifact subject that it wraps the interactions with the platform. * Add methods to destroy, bootstrap and halt a list of machines either all of them or the ones listed under a given platform name. * Introduced more clear namespacing in the rakefile. * Updated the list of available platforms for acceptance testing, including latest ubuntu, oel, fedora, debian and suse versions Fixes #5350 --- ci/ci_acceptance.sh | 23 ++++--- qa/Gemfile | 1 + qa/Rakefile | 58 +++++++++++----- qa/acceptance/spec/centos/lib/install_spec.rb | 33 --------- qa/acceptance/spec/centos/spec_helper.rb | 15 ----- qa/acceptance/spec/config_helper.rb | 17 ++--- qa/acceptance/spec/debian/lib/install_spec.rb | 33 --------- qa/acceptance/spec/debian/spec_helper.rb | 15 ----- .../spec/lib/artifact_operation_spec.rb | 13 ++++ .../spec/shared_examples/installed.rb | 24 +++++++ qa/acceptance/spec/shared_examples/running.rb | 16 +++++ qa/acceptance/spec/spec_helper.rb | 16 +++++ qa/platform_config.rb | 9 ++- qa/platforms.json | 11 ++- qa/rspec/commands.rb | 67 +++++++++++++++++-- qa/rspec/commands/base.rb | 18 +++++ .../commands.rb => commands/debian.rb} | 10 ++- .../commands.rb => commands/redhat.rb} | 10 ++- qa/rspec/commands/suse.rb | 63 +++++++++++++++++ qa/rspec/commands/ubuntu.rb | 17 +++++ qa/rspec/helpers.rb | 20 ++---- qa/rspec/matchers/be_installed.rb | 17 ++--- qa/rspec/matchers/be_running.rb | 8 +-- qa/sys/{centos => redhat}/bootstrap.sh | 0 qa/sys/suse/bootstrap.sh | 4 ++ qa/vagrant-helpers.rb | 18 +++-- 26 files changed, 348 insertions(+), 188 deletions(-) delete mode 100644 qa/acceptance/spec/centos/lib/install_spec.rb delete mode 100644 qa/acceptance/spec/centos/spec_helper.rb delete mode 100644 qa/acceptance/spec/debian/lib/install_spec.rb delete mode 100644 qa/acceptance/spec/debian/spec_helper.rb create mode 100644 qa/acceptance/spec/lib/artifact_operation_spec.rb create mode 100644 qa/acceptance/spec/shared_examples/installed.rb create mode 100644 qa/acceptance/spec/shared_examples/running.rb create mode 100644 qa/rspec/commands/base.rb rename qa/rspec/{debian/commands.rb => commands/debian.rb} (87%) rename qa/rspec/{centos/commands.rb => commands/redhat.rb} (87%) create mode 100644 qa/rspec/commands/suse.rb create mode 100644 qa/rspec/commands/ubuntu.rb rename qa/sys/{centos => redhat}/bootstrap.sh (100%) create mode 100644 qa/sys/suse/bootstrap.sh diff --git a/ci/ci_acceptance.sh b/ci/ci_acceptance.sh index b85e26fb3cd..7117cb8025c 100755 --- a/ci/ci_acceptance.sh +++ b/ci/ci_acceptance.sh @@ -8,7 +8,7 @@ export JRUBY_OPTS="-J-Xmx1g" SELECTED_TEST_SUITE=$1 -if [[ $SELECTED_TEST_SUITE == $"centos" ]]; then +if [[ $SELECTED_TEST_SUITE == $"redhat" ]]; then echo "Generating the RPM, make sure you start with a clean environment before generating other packages." rake artifact:rpm echo "Acceptance: Installing dependencies" @@ -16,9 +16,10 @@ if [[ $SELECTED_TEST_SUITE == $"centos" ]]; then bundle install echo "Acceptance: Running the tests" - bundle exec rake test:setup - bundle exec rake test:ssh_config - bundle exec rake test:acceptance:centos + bundle exec rake qa:vm:setup["redhat"] + bundle exec rake qa:vm:ssh_config + bundle exec rake qa:acceptance:redhat + bundle exec rake qa:vm:halt["redhat"] elif [[ $SELECTED_TEST_SUITE == $"debian" ]]; then echo "Generating the DEB, make sure you start with a clean environment before generating other packages." rake artifact:deb @@ -27,9 +28,10 @@ elif [[ $SELECTED_TEST_SUITE == $"debian" ]]; then bundle install echo "Acceptance: Running the tests" - bundle exec rake test:setup - bundle exec rake test:ssh_config - bundle exec rake test:acceptance:debian + bundle exec rake qa:vm:setup["debian"] + bundle exec rake qa:vm:ssh_config + bundle exec rake qa:acceptance:debian + bundle exec rake qa:vm:halt["debian"] elif [[ $SELECTED_TEST_SUITE == $"all" ]]; then echo "Building Logstash artifacts" rake artifact:all @@ -39,8 +41,9 @@ elif [[ $SELECTED_TEST_SUITE == $"all" ]]; then bundle install echo "Acceptance: Running the tests" - bundle exec rake test:setup - bundle exec rake test:ssh_config - bundle exec rake test:acceptance:all + bundle exec rake qa:vm:setup + bundle exec rake qa:vm:ssh_config + bundle exec rake qa:acceptance:all + bundle exec rake qa:vm:halt cd .. fi diff --git a/qa/Gemfile b/qa/Gemfile index 76cbdeddcdf..1919a50f272 100644 --- a/qa/Gemfile +++ b/qa/Gemfile @@ -2,3 +2,4 @@ source "https://rubygems.org" gem "runner-tool", :git => "https://github.com/purbon/runner-tool.git" gem "rspec", "~> 3.1.0" gem "rake" +gem "pry", :group => :test diff --git a/qa/Rakefile b/qa/Rakefile index f8d616d4eac..fdaf91556fc 100644 --- a/qa/Rakefile +++ b/qa/Rakefile @@ -9,39 +9,61 @@ platforms = PlatformConfig.new task :spec => 'spec:all' task :default => :spec -namespace :test do - desc "Generate a valid ssh-config" - task :ssh_config do - require "json" - raw_ssh_config = LogStash::VagrantHelpers.fetch_config.stdout.split("\n"); - parsed_ssh_config = LogStash::VagrantHelpers.parse(raw_ssh_config) - File.write(File.join(File.dirname(__FILE__), ".vm_ssh_config"), parsed_ssh_config.to_json) - end +namespace :qa do + + namespace :vm do + + desc "Generate a valid ssh-config" + task :ssh_config do + require "json" + raw_ssh_config = LogStash::VagrantHelpers.fetch_config.stdout.split("\n"); + parsed_ssh_config = LogStash::VagrantHelpers.parse(raw_ssh_config) + File.write(".vm_ssh_config", parsed_ssh_config.to_json) + end + + desc "Bootstrap all the VM's used for this tests" + task :setup, :platform do |t, args| + config = PlatformConfig.new + machines = config.select_names_for(args[:platform]) - desc "Bootstrap all the VM's used for this tests" - task "setup" do - puts "bootstraping all VM's defined in acceptance/Vagrantfile" - LogStash::VagrantHelpers.bootstrap + message = "bootstraping all VM's defined in acceptance/Vagrantfile" + message = "#{message} for #{args[:platform]}: #{machines}" if !args[:platform].nil? + puts message + + LogStash::VagrantHelpers.destroy(machines) + LogStash::VagrantHelpers.bootstrap(machines) + end + + desc "Halt all VM's involved in the acceptance test round" + task :halt, :platform do |t, args| + config = PlatformConfig.new + machines = config.select_names_for(args[:platform]) + message = "halting all VM's defined inside Vagrantfile" + message = "#{message} for #{args[:platform]}: #{machines}" if !args[:platform].nil? + puts message + + LogStash::VagrantHelpers.halt(machines) + end end namespace :acceptance do desc "Run all acceptance" task :all do - exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/**/*_spec.rb"]])) + exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/lib/*_spec.rb"]])) end platforms.types.each do |type| desc "Run acceptance test in #{type} machines" task type do - exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/#{type}/**/*_spec.rb"]])) + ENV['LS_TEST_PLATFORM']=type + exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/lib/*_spec.rb"]])) end end desc "Run one single machine acceptance test" - task :single, :machine do |t, args| - ENV['LS_VAGRANT_HOST'] = args[:machine] - platform = LogStash::VagrantHelpers.translate(args[:machine]) - exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/**/*_spec.rb"]])) + task :single, :machine do |t, args| + ENV['LS_VAGRANT_HOST'] = args[:machine] + exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/lib/*_spec.rb"]])) end end end diff --git a/qa/acceptance/spec/centos/lib/install_spec.rb b/qa/acceptance/spec/centos/lib/install_spec.rb deleted file mode 100644 index 44353bb92cf..00000000000 --- a/qa/acceptance/spec/centos/lib/install_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -# encoding: utf-8 -require_relative "../spec_helper" -require "logstash/version" - -describe "artifacts", :platform => :centos do - - shared_examples "installable" do |host, name| - - before(:each) do - install("/logstash-build/logstash-#{LOGSTASH_VERSION}.noarch.rpm", host) - end - - it "is installed on #{name}" do - expect("logstash").to be_installed.on(host) - end - - it "is running in #{name}" do - start_service("logstash", host) - expect("logstash").to be_running.on(host) - stop_service("logstash", host) - end - - it "is removable on #{name}" do - uninstall("logstash", host) - expect("logstash").to be_removed.on(host) - end - end - - config = ServiceTester.configuration - config.servers.each do |host| - it_behaves_like "installable", host, config.lookup[host] - end -end diff --git a/qa/acceptance/spec/centos/spec_helper.rb b/qa/acceptance/spec/centos/spec_helper.rb deleted file mode 100644 index cbb2c30e545..00000000000 --- a/qa/acceptance/spec/centos/spec_helper.rb +++ /dev/null @@ -1,15 +0,0 @@ -# encoding: utf-8 -require_relative '../spec_helper' - -def default_vagrant_boxes - [ - "centos-6", - "centos-7" - ] -end - -selected_boxes = SpecsHelper.find_selected_boxes(default_vagrant_boxes) - -SpecsHelper.configure(selected_boxes) - -puts "[Acceptance specs] running on #{ServiceTester.configuration.lookup.values}" if !selected_boxes.empty? diff --git a/qa/acceptance/spec/config_helper.rb b/qa/acceptance/spec/config_helper.rb index dc7b5b4fe44..3d9730c2d2d 100644 --- a/qa/acceptance/spec/config_helper.rb +++ b/qa/acceptance/spec/config_helper.rb @@ -3,25 +3,20 @@ module SpecsHelper - def self.find_selected_boxes(default_boxes=[]) - if ENV.include?('LS_VAGRANT_HOST') then - default_boxes.include?(ENV['LS_VAGRANT_HOST']) ? ENV['LS_VAGRANT_HOST'] : [] - else - default_boxes - end - end - def self.configure(vagrant_boxes) setup_config = JSON.parse(File.read(File.join(File.dirname(__FILE__), "..", "..", ".vm_ssh_config"))) - + boxes = vagrant_boxes.inject({}) do |acc, v| + acc[v.name] = v.type + acc + end ServiceTester.configure do |config| config.servers = [] config.lookup = {} setup_config.each do |host_info| - next unless vagrant_boxes.include?(host_info["host"]) + next unless boxes.keys.include?(host_info["host"]) url = "#{host_info["hostname"]}:#{host_info["port"]}" config.servers << url - config.lookup[url] = host_info["host"] + config.lookup[url] = {"host" => host_info["host"], "type" => boxes[host_info["host"]] } end end end diff --git a/qa/acceptance/spec/debian/lib/install_spec.rb b/qa/acceptance/spec/debian/lib/install_spec.rb deleted file mode 100644 index 6a91605c4d4..00000000000 --- a/qa/acceptance/spec/debian/lib/install_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -# encoding: utf-8 -require_relative "../spec_helper" -require "logstash/version" - -describe "artifacts", :platform => :debian do - - shared_examples "installable" do |host, name| - - before(:each) do - install("/logstash-build/logstash-#{LOGSTASH_VERSION}_all.deb", host) - end - - it "is installed on #{name}" do - expect("logstash").to be_installed.on(host) - end - - it "is running on #{name}" do - start_service("logstash", host) - expect("logstash").to be_running.on(host) - stop_service("logstash", host) - end - - it "is removable on #{name}" do - uninstall("logstash", host) - expect("logstash").to be_removed.on(host) - end - end - - config = ServiceTester.configuration - config.servers.each do |host| - it_behaves_like "installable", host, config.lookup[host] - end -end diff --git a/qa/acceptance/spec/debian/spec_helper.rb b/qa/acceptance/spec/debian/spec_helper.rb deleted file mode 100644 index c9cfe0da7d7..00000000000 --- a/qa/acceptance/spec/debian/spec_helper.rb +++ /dev/null @@ -1,15 +0,0 @@ -# encoding: utf-8 -require_relative '../spec_helper' - -def default_vagrant_boxes - [ - "ubuntu-1204", - "ubuntu-1404" - ] -end - -selected_boxes = SpecsHelper.find_selected_boxes(default_vagrant_boxes) - -SpecsHelper.configure(selected_boxes) - -puts "[Acceptance specs] running on #{ServiceTester.configuration.lookup.values}" if !selected_boxes.empty? diff --git a/qa/acceptance/spec/lib/artifact_operation_spec.rb b/qa/acceptance/spec/lib/artifact_operation_spec.rb new file mode 100644 index 00000000000..49094dba7c3 --- /dev/null +++ b/qa/acceptance/spec/lib/artifact_operation_spec.rb @@ -0,0 +1,13 @@ +# encoding: utf-8 +require_relative '../spec_helper' +require_relative '../shared_examples/installed' +require_relative '../shared_examples/running' + +describe "artifacts operation" do + config = ServiceTester.configuration + config.servers.each do |address| + logstash = ServiceTester::Artifact.new(address, config.lookup[address]) + it_behaves_like "installable", logstash + it_behaves_like "runnable", logstash + end +end diff --git a/qa/acceptance/spec/shared_examples/installed.rb b/qa/acceptance/spec/shared_examples/installed.rb new file mode 100644 index 00000000000..9ca89ab004a --- /dev/null +++ b/qa/acceptance/spec/shared_examples/installed.rb @@ -0,0 +1,24 @@ +require_relative '../spec_helper' +require 'logstash/version' + +RSpec.shared_examples "installable" do |logstash| + + before(:each) do + logstash.install(LOGSTASH_VERSION) + end + + it "is installed on #{logstash.host}" do + expect(logstash).to be_installed + end + + it "is running on #{logstash.host}" do + logstash.start_service + expect(logstash).to be_running + logstash.stop_service + end + + it "is removable on #{logstash.host}" do + logstash.uninstall + expect(logstash).to be_removed + end +end diff --git a/qa/acceptance/spec/shared_examples/running.rb b/qa/acceptance/spec/shared_examples/running.rb new file mode 100644 index 00000000000..0e2166f70d5 --- /dev/null +++ b/qa/acceptance/spec/shared_examples/running.rb @@ -0,0 +1,16 @@ +require_relative '../spec_helper' +require 'logstash/version' + +RSpec.shared_examples "runnable" do |logstash| + + before(:each) do + logstash.install(LOGSTASH_VERSION) + end + + it "is running on #{logstash.host}" do + logstash.start_service + expect(logstash).to be_running + logstash.stop_service + end + +end diff --git a/qa/acceptance/spec/spec_helper.rb b/qa/acceptance/spec/spec_helper.rb index 4e8e0c40a5c..1aefa919232 100644 --- a/qa/acceptance/spec/spec_helper.rb +++ b/qa/acceptance/spec/spec_helper.rb @@ -3,6 +3,7 @@ require_relative '../../rspec/helpers' require_relative '../../rspec/matchers' require_relative 'config_helper' +require_relative "../../platform_config" ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..')) $LOAD_PATH.unshift File.join(ROOT, 'logstash-core/lib') @@ -12,3 +13,18 @@ RSpec.configure do |c| c.include ServiceTester end + +platform = ENV['LS_TEST_PLATFORM'] || 'all' + +config = PlatformConfig.new +default_vagrant_boxes = ( platform == 'all' ? config.platforms : config.filter_type(platform) ) + +selected_boxes = if ENV.include?('LS_VAGRANT_HOST') then + config.platforms.select { |p| p.name == ENV['LS_VAGRANT_HOST'] } + else + default_vagrant_boxes + end + +SpecsHelper.configure(selected_boxes) + +puts "[Acceptance specs] running on #{ServiceTester.configuration.hosts}" if !selected_boxes.empty? diff --git a/qa/platform_config.rb b/qa/platform_config.rb index b3df09da7fe..9827f6ea841 100644 --- a/qa/platform_config.rb +++ b/qa/platform_config.rb @@ -2,9 +2,12 @@ require "json" class PlatformConfig + Platform = Struct.new(:name, :box, :type) - DEFAULT_CONFIG_LOCATION = File.join(File.dirname(__FILE__), "platforms.json") + DEFAULT_CONFIG_LOCATION = File.join(File.dirname(__FILE__), "platforms.json").freeze + + attr_reader :platforms def initialize(config_path = DEFAULT_CONFIG_LOCATION) @config_path = config_path @@ -35,6 +38,10 @@ def filter_type(type_name) @platforms.select { |platform| platform.type == type_name } end + def select_names_for(platform=nil) + !platform.nil? ? filter_type(platform).map{ |p| p.name } : "" + end + def types @platforms.collect(&:type).uniq.sort end diff --git a/qa/platforms.json b/qa/platforms.json index f97de63cbdd..157f87cbea5 100644 --- a/qa/platforms.json +++ b/qa/platforms.json @@ -1,6 +1,13 @@ { "ubuntu-1204": { "box": "elastic/ubuntu-12.04-x86_64", "type": "debian" }, "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "debian" }, - "centos-6": { "box": "elastic/centos-6-x86_64", "type": "centos" }, - "centos-7": { "box": "elastic/centos-7-x86_64", "type": "centos" } + "ubuntu-1504": { "box": "elastic/ubuntu-15.04-x86_64", "type": "debian" }, + "centos-6": { "box": "elastic/centos-6-x86_64", "type": "redhat" }, + "centos-7": { "box": "elastic/centos-7-x86_64", "type": "redhat" }, + "oel-6": { "box": "elastic/oraclelinux-6-x86_64", "type": "redhat" }, + "oel-7": { "box": "elastic/oraclelinux-7-x86_64", "type": "redhat" }, + "fedora-22": { "box": "elastic/fedora-22-x86_64", "type": "redhat" }, + "debian-8": { "box": "elastic/debian-8-x86_64", "type": "debian" }, + "opensuse-13": { "box": "elastic/opensuse-13-x86_64", "type": "suse" }, + "sles-12": { "box": "elastic/sles-12-x86_64", "type": "suse" } } diff --git a/qa/rspec/commands.rb b/qa/rspec/commands.rb index a06a8ceb10e..8f868ea8c87 100644 --- a/qa/rspec/commands.rb +++ b/qa/rspec/commands.rb @@ -1,16 +1,69 @@ # encoding: utf-8 -require_relative "./debian/commands" -require_relative "./centos/commands" +require_relative "./commands/debian" +require_relative "./commands/ubuntu" +require_relative "./commands/redhat" +require_relative "./commands/suse" +require "forwardable" module ServiceTester + + class Artifact + + extend Forwardable + def_delegators :@client, :installed?, :removed?, :running? + + attr_reader :host, :client + + def initialize(host, options={}) + @host = host + @options = options + @client = CommandsFactory.fetch(options["type"], options["host"]) + end + + def name + "logstash" + end + + def hosts + [@host] + end + + def start_service + client.start_service(name, host) + end + + def stop_service + client.stop_service(name, host) + end + + def install(version) + package = client.package_for(version) + client.install(package, host) + end + + def uninstall + client.uninstall(name, host) + end + + def to_s + "Artifact #{name}@#{host}" + end + end + class CommandsFactory - def self.fetch(type) + def self.fetch(type, host) case type - when :debian - return DebianCommands.new - when :centos - return CentosCommands.new + when "debian" + if host.start_with?("ubuntu") + return UbuntuCommands.new + else + return DebianCommands.new + end + when "suse" + return SuseCommands.new + when "redhat" + return RedhatCommands.new else return end diff --git a/qa/rspec/commands/base.rb b/qa/rspec/commands/base.rb new file mode 100644 index 00000000000..148dcdd9ea0 --- /dev/null +++ b/qa/rspec/commands/base.rb @@ -0,0 +1,18 @@ +# encoding: utf-8 + +module ServiceTester + + class Base + + LOCATION="/logstash-build".freeze + + def start_service(service, host=nil) + service_manager(service, "start", host) + end + + def stop_service(service, host=nil) + service_manager(service, "stop", host) + end + + end +end diff --git a/qa/rspec/debian/commands.rb b/qa/rspec/commands/debian.rb similarity index 87% rename from qa/rspec/debian/commands.rb rename to qa/rspec/commands/debian.rb index c0570dcad65..3dabb1d31b8 100644 --- a/qa/rspec/debian/commands.rb +++ b/qa/rspec/commands/debian.rb @@ -1,6 +1,8 @@ # encoding: utf-8 +require_relative "base" + module ServiceTester - class DebianCommands + class DebianCommands < Base def installed?(hosts, package) stdout = "" @@ -12,6 +14,10 @@ def installed?(hosts, package) stdout.match(/^Status: install ok installed$/) end + def package_for(version) + File.join(ServiceTester::Base::LOCATION, "logstash-#{version}_all.deb") + end + def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) at(hosts, {in: :serial}) do |_| @@ -45,7 +51,7 @@ def running?(hosts, package) cmd = sudo_exec!("service #{package} status") stdout = cmd.stdout end - stdout.match(/^#{package} is running$/) + stdout.match(/#{package} started.$/) end def service_manager(service, action, host=nil) diff --git a/qa/rspec/centos/commands.rb b/qa/rspec/commands/redhat.rb similarity index 87% rename from qa/rspec/centos/commands.rb rename to qa/rspec/commands/redhat.rb index c293bb65338..7072611233a 100644 --- a/qa/rspec/centos/commands.rb +++ b/qa/rspec/commands/redhat.rb @@ -1,6 +1,8 @@ # encoding: utf-8 +require_relative "base" + module ServiceTester - class CentosCommands + class RedhatCommands < Base def installed?(hosts, package) stdout = "" @@ -12,6 +14,10 @@ def installed?(hosts, package) stdout.match(/^logstash.noarch/) end + def package_for(version) + File.join(ServiceTester::Base::LOCATION, "logstash-#{version}.noarch.rpm") + end + def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) errors = {} @@ -49,7 +55,7 @@ def running?(hosts, package) def service_manager(service, action, host=nil) hosts = (host.nil? ? servers : Array(host)) - at(hosts, {in: :serial}) do |host| + at(hosts, {in: :serial}) do |_| sudo_exec!("service #{service} #{action}") end end diff --git a/qa/rspec/commands/suse.rb b/qa/rspec/commands/suse.rb new file mode 100644 index 00000000000..57840415cb1 --- /dev/null +++ b/qa/rspec/commands/suse.rb @@ -0,0 +1,63 @@ +# encoding: utf-8 +require_relative "base" + +module ServiceTester + class SuseCommands < Base + + def installed?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = exec!("zypper search #{package}") + stdout = cmd.stdout + end + stdout.match(/^i | logstash | An extensible logging pipeline | package$/) + end + + def package_for(version) + File.join(ServiceTester::Base::LOCATION, "logstash-#{version}.noarch.rpm") + end + + def install(package, host=nil) + hosts = (host.nil? ? servers : Array(host)) + errors = {} + at(hosts, {in: :serial}) do |_host| + cmd = sudo_exec!("zypper --no-gpg-checks --non-interactive install #{package}") + errors[_host] = cmd.stderr unless cmd.stderr.empty? + end + errors + end + + def uninstall(package, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + cmd = sudo_exec!("zypper --no-gpg-checks --non-interactive remove #{package}") + end + end + + def removed?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = exec!("zypper search #{package}") + stdout = cmd.stdout + end + stdout.match(/No packages found/) + end + + def running?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("service #{package} status") + stdout = cmd.stdout + end + stdout.match(/#{package} started.$/) + end + + def service_manager(service, action, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + sudo_exec!("service #{service} #{action}") + end + end + + end +end diff --git a/qa/rspec/commands/ubuntu.rb b/qa/rspec/commands/ubuntu.rb new file mode 100644 index 00000000000..835e31a9ad4 --- /dev/null +++ b/qa/rspec/commands/ubuntu.rb @@ -0,0 +1,17 @@ +# encoding: utf-8 +require_relative "debian" + +module ServiceTester + class UbuntuCommands < DebianCommands + + def running?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("service #{package} status") + stdout = cmd.stdout + end + stdout.match(/^#{package} is running$/) + end + + end +end diff --git a/qa/rspec/helpers.rb b/qa/rspec/helpers.rb index 60f6729a1b4..a939fa7dfca 100644 --- a/qa/rspec/helpers.rb +++ b/qa/rspec/helpers.rb @@ -9,6 +9,10 @@ def initialize @servers = [] @lookup = {} end + + def hosts + lookup.values.map { |val| val["host"] } + end end class << self @@ -24,22 +28,6 @@ def servers ServiceTester.configuration.servers end - def install(package, host=nil) - select_client.install(package, host) - end - - def uninstall(package, host=nil) - select_client.uninstall(package, host) - end - - def start_service(service, host=nil) - select_client.service_manager(service, "start", host) - end - - def stop_service(service, host=nil) - select_client.service_manager(service, "stop", host) - end - def select_client CommandsFactory.fetch(current_example.metadata[:platform]) end diff --git a/qa/rspec/matchers/be_installed.rb b/qa/rspec/matchers/be_installed.rb index 83ab67f80fe..cca6c56a0be 100644 --- a/qa/rspec/matchers/be_installed.rb +++ b/qa/rspec/matchers/be_installed.rb @@ -4,22 +4,13 @@ RSpec::Matchers.define :be_installed do - match do |actual| - select_client.installed?([@host], actual) - end - - chain :on do |host| - @host = host + match do |subject| + subject.installed?(subject.hosts, subject.name) end end RSpec::Matchers.define :be_removed do - - match do |actual| - select_client.removed?([@host], actual) - end - - chain :on do |host| - @host = host + match do |subject| + subject.removed?(subject.hosts, subject.name) end end diff --git a/qa/rspec/matchers/be_running.rb b/qa/rspec/matchers/be_running.rb index beeb98f1082..53dc2738c47 100644 --- a/qa/rspec/matchers/be_running.rb +++ b/qa/rspec/matchers/be_running.rb @@ -4,11 +4,7 @@ RSpec::Matchers.define :be_running do - match do |actual| - select_client.running?([@host], actual) - end - - chain :on do |host| - @host = host + match do |subject| + subject.running?(subject.hosts, subject.name) end end diff --git a/qa/sys/centos/bootstrap.sh b/qa/sys/redhat/bootstrap.sh similarity index 100% rename from qa/sys/centos/bootstrap.sh rename to qa/sys/redhat/bootstrap.sh diff --git a/qa/sys/suse/bootstrap.sh b/qa/sys/suse/bootstrap.sh new file mode 100644 index 00000000000..4dba83eb9ea --- /dev/null +++ b/qa/sys/suse/bootstrap.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +zypper --non-interactive list-updates +zypper --non-interactive --no-gpg-checks --quiet install --no-recommends java-1_8_0-openjdk-devel diff --git a/qa/vagrant-helpers.rb b/qa/vagrant-helpers.rb index fcff83f9b0c..70cb870bb9c 100644 --- a/qa/vagrant-helpers.rb +++ b/qa/vagrant-helpers.rb @@ -35,7 +35,7 @@ def self.run(cmd) # was not run successfully and will display the content of STDERR def self.run!(cmd) response = run(cmd) - + unless response.success? raise CommandError, "CMD: #{cmd} STDERR: #{response.stderr}" end @@ -45,12 +45,22 @@ def self.run!(cmd) class VagrantHelpers - def self.bootstrap - CommandExecutor.run!("vagrant up") + def self.halt(machines="") + CommandExecutor.run!("vagrant halt #{machines.join(' ')}") + end + + def self.destroy(machines="") + CommandExecutor.run!("vagrant destroy --force #{machines.join(' ')}") + end + + def self.bootstrap(machines="") + CommandExecutor.run!("vagrant up #{machines.join(' ')}") end def self.fetch_config - CommandExecutor.run!("vagrant ssh-config") + cmd = CommandExecutor.run!("vagrant status") + machines = cmd.stdout.split("\n").select { |m| m.include?("running") }.map { |s| s.split(" ")[0] } + CommandExecutor.run!("vagrant ssh-config #{machines.join(' ')}") end def self.parse(lines) From 7dbdf2b5178b960ff95ab50d03400a94f99d4cec Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 4 May 2016 14:41:41 +0200 Subject: [PATCH 165/632] Introduction of an update scenario for artifacts, including snapshot/restore for VM's and initial schema for this scenario. Some other minor changes include: * add back the user level boostrap scripts, useful in that case to pull latest released LS * cleanup formatting for specs and fixed bootstrap scripts for redhats * make the latest logstash version available from the current platform config file * make sure debian based machines use java8 * make sure to use hostname and not just ip:port address when reporting the names Fixes #5350 --- qa/Rakefile | 2 +- qa/Vagrantfile | 4 + .../spec/lib/artifact_operation_spec.rb | 3 +- .../spec/shared_examples/installed.rb | 6 +- qa/acceptance/spec/shared_examples/running.rb | 2 +- qa/acceptance/spec/shared_examples/updated.rb | 21 +++++ qa/acceptance/spec/spec_helper.rb | 4 +- qa/config/platforms.json | 16 ++++ qa/platform_config.rb | 8 +- qa/platforms.json | 13 --- qa/rspec/commands.rb | 16 +++- qa/rspec/commands/base.rb | 9 ++ qa/rspec/commands/debian.rb | 4 +- qa/rspec/commands/redhat.rb | 4 +- qa/sys/debian/bootstrap.sh | 5 +- qa/sys/debian/user_bootstrap.sh | 5 ++ qa/sys/redhat/user_bootstrap.sh | 5 ++ qa/sys/suse/user_bootstrap.sh | 1 + qa/vagrant-helpers.rb | 84 ------------------- qa/vagrant/command.rb | 45 ++++++++++ qa/vagrant/helpers.rb | 52 ++++++++++++ 21 files changed, 194 insertions(+), 115 deletions(-) create mode 100644 qa/acceptance/spec/shared_examples/updated.rb create mode 100644 qa/config/platforms.json delete mode 100644 qa/platforms.json create mode 100644 qa/sys/debian/user_bootstrap.sh create mode 100644 qa/sys/redhat/user_bootstrap.sh create mode 100644 qa/sys/suse/user_bootstrap.sh delete mode 100644 qa/vagrant-helpers.rb create mode 100644 qa/vagrant/command.rb create mode 100644 qa/vagrant/helpers.rb diff --git a/qa/Rakefile b/qa/Rakefile index fdaf91556fc..5c8ea3cf73a 100644 --- a/qa/Rakefile +++ b/qa/Rakefile @@ -1,7 +1,7 @@ require "rspec" require "rspec/core/runner" require "rspec/core/rake_task" -require_relative "vagrant-helpers" +require_relative "vagrant/helpers" require_relative "platform_config" platforms = PlatformConfig.new diff --git a/qa/Vagrantfile b/qa/Vagrantfile index fa98a6f93c8..280a8759484 100644 --- a/qa/Vagrantfile +++ b/qa/Vagrantfile @@ -17,6 +17,10 @@ Vagrant.configure(2) do |config| sh.path = "sys/#{platform.type}/bootstrap.sh" sh.privileged = true end + machine.vm.provision :shell do |sh| + sh.path = "sys/#{platform.type}/user_bootstrap.sh" + sh.privileged = false + end end end end diff --git a/qa/acceptance/spec/lib/artifact_operation_spec.rb b/qa/acceptance/spec/lib/artifact_operation_spec.rb index 49094dba7c3..faf72267335 100644 --- a/qa/acceptance/spec/lib/artifact_operation_spec.rb +++ b/qa/acceptance/spec/lib/artifact_operation_spec.rb @@ -2,12 +2,13 @@ require_relative '../spec_helper' require_relative '../shared_examples/installed' require_relative '../shared_examples/running' +require_relative '../shared_examples/updated' describe "artifacts operation" do config = ServiceTester.configuration config.servers.each do |address| logstash = ServiceTester::Artifact.new(address, config.lookup[address]) it_behaves_like "installable", logstash - it_behaves_like "runnable", logstash + it_behaves_like "updated", logstash end end diff --git a/qa/acceptance/spec/shared_examples/installed.rb b/qa/acceptance/spec/shared_examples/installed.rb index 9ca89ab004a..045003433dd 100644 --- a/qa/acceptance/spec/shared_examples/installed.rb +++ b/qa/acceptance/spec/shared_examples/installed.rb @@ -7,17 +7,17 @@ logstash.install(LOGSTASH_VERSION) end - it "is installed on #{logstash.host}" do + it "is installed on #{logstash.hostname}" do expect(logstash).to be_installed end - it "is running on #{logstash.host}" do + it "is running on #{logstash.hostname}" do logstash.start_service expect(logstash).to be_running logstash.stop_service end - it "is removable on #{logstash.host}" do + it "is removable on #{logstash.hostname}" do logstash.uninstall expect(logstash).to be_removed end diff --git a/qa/acceptance/spec/shared_examples/running.rb b/qa/acceptance/spec/shared_examples/running.rb index 0e2166f70d5..787a43c3908 100644 --- a/qa/acceptance/spec/shared_examples/running.rb +++ b/qa/acceptance/spec/shared_examples/running.rb @@ -7,7 +7,7 @@ logstash.install(LOGSTASH_VERSION) end - it "is running on #{logstash.host}" do + it "is running on #{logstash.hostname}" do logstash.start_service expect(logstash).to be_running logstash.stop_service diff --git a/qa/acceptance/spec/shared_examples/updated.rb b/qa/acceptance/spec/shared_examples/updated.rb new file mode 100644 index 00000000000..60409a4bdc1 --- /dev/null +++ b/qa/acceptance/spec/shared_examples/updated.rb @@ -0,0 +1,21 @@ +require_relative '../spec_helper' +require 'logstash/version' + +RSpec.shared_examples "updated" do |logstash| + + before (:all) { logstash.snapshot } + after (:all) { logstash.restore } + + it "can update on #{logstash.hostname}" do + logstash.install(LOGSTASH_LATEST_VERSION, "./") + expect(logstash).to be_installed + logstash.install(LOGSTASH_VERSION) + expect(logstash).to be_installed + end + + it "can run on #{logstash.hostname}" do + logstash.start_service + expect(logstash).to be_running + logstash.stop_service + end +end diff --git a/qa/acceptance/spec/spec_helper.rb b/qa/acceptance/spec/spec_helper.rb index 1aefa919232..8cceefd5c13 100644 --- a/qa/acceptance/spec/spec_helper.rb +++ b/qa/acceptance/spec/spec_helper.rb @@ -16,7 +16,9 @@ platform = ENV['LS_TEST_PLATFORM'] || 'all' -config = PlatformConfig.new +config = PlatformConfig.new +LOGSTASH_LATEST_VERSION = config.latest + default_vagrant_boxes = ( platform == 'all' ? config.platforms : config.filter_type(platform) ) selected_boxes = if ENV.include?('LS_VAGRANT_HOST') then diff --git a/qa/config/platforms.json b/qa/config/platforms.json new file mode 100644 index 00000000000..d918a49856e --- /dev/null +++ b/qa/config/platforms.json @@ -0,0 +1,16 @@ +{ + "latest": "5.0.0-alpha2", + "platforms" : { + "ubuntu-1204": { "box": "elastic/ubuntu-12.04-x86_64", "type": "debian" }, + "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "debian" }, + "ubuntu-1504": { "box": "elastic/ubuntu-15.04-x86_64", "type": "debian" }, + "centos-6": { "box": "elastic/centos-6-x86_64", "type": "redhat" }, + "centos-7": { "box": "elastic/centos-7-x86_64", "type": "redhat" }, + "oel-6": { "box": "elastic/oraclelinux-6-x86_64", "type": "redhat" }, + "oel-7": { "box": "elastic/oraclelinux-7-x86_64", "type": "redhat" }, + "fedora-22": { "box": "elastic/fedora-22-x86_64", "type": "redhat" }, + "debian-8": { "box": "elastic/debian-8-x86_64", "type": "debian" }, + "opensuse-13": { "box": "elastic/opensuse-13-x86_64", "type": "suse" }, + "sles-12": { "box": "elastic/sles-12-x86_64", "type": "suse" } + } +} diff --git a/qa/platform_config.rb b/qa/platform_config.rb index 9827f6ea841..a8c4940d190 100644 --- a/qa/platform_config.rb +++ b/qa/platform_config.rb @@ -5,20 +5,20 @@ class PlatformConfig Platform = Struct.new(:name, :box, :type) - DEFAULT_CONFIG_LOCATION = File.join(File.dirname(__FILE__), "platforms.json").freeze + DEFAULT_CONFIG_LOCATION = File.join(File.dirname(__FILE__), "config", "platforms.json").freeze - attr_reader :platforms + attr_reader :platforms, :latest def initialize(config_path = DEFAULT_CONFIG_LOCATION) @config_path = config_path @platforms = [] data = JSON.parse(File.read(@config_path)) - data.each do |k, v| + data["platforms"].each do |k, v| @platforms << Platform.new(k, v["box"], v["type"]) end - @platforms.sort! { |a, b| a.name <=> b.name } + @latest = data["latest"] end def find!(platform_name) diff --git a/qa/platforms.json b/qa/platforms.json deleted file mode 100644 index 157f87cbea5..00000000000 --- a/qa/platforms.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ubuntu-1204": { "box": "elastic/ubuntu-12.04-x86_64", "type": "debian" }, - "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "debian" }, - "ubuntu-1504": { "box": "elastic/ubuntu-15.04-x86_64", "type": "debian" }, - "centos-6": { "box": "elastic/centos-6-x86_64", "type": "redhat" }, - "centos-7": { "box": "elastic/centos-7-x86_64", "type": "redhat" }, - "oel-6": { "box": "elastic/oraclelinux-6-x86_64", "type": "redhat" }, - "oel-7": { "box": "elastic/oraclelinux-7-x86_64", "type": "redhat" }, - "fedora-22": { "box": "elastic/fedora-22-x86_64", "type": "redhat" }, - "debian-8": { "box": "elastic/debian-8-x86_64", "type": "debian" }, - "opensuse-13": { "box": "elastic/opensuse-13-x86_64", "type": "suse" }, - "sles-12": { "box": "elastic/sles-12-x86_64", "type": "suse" } -} diff --git a/qa/rspec/commands.rb b/qa/rspec/commands.rb index 8f868ea8c87..57c67a814ae 100644 --- a/qa/rspec/commands.rb +++ b/qa/rspec/commands.rb @@ -20,6 +20,10 @@ def initialize(host, options={}) @client = CommandsFactory.fetch(options["type"], options["host"]) end + def hostname + @options["host"] + end + def name "logstash" end @@ -28,6 +32,14 @@ def hosts [@host] end + def snapshot + client.snapshot(@options["host"]) + end + + def restore + client.restore(@options["host"]) + end + def start_service client.start_service(name, host) end @@ -36,8 +48,8 @@ def stop_service client.stop_service(name, host) end - def install(version) - package = client.package_for(version) + def install(version, base=ServiceTester::Base::LOCATION) + package = client.package_for(version, base) client.install(package, host) end diff --git a/qa/rspec/commands/base.rb b/qa/rspec/commands/base.rb index 148dcdd9ea0..0f4f6daa2cf 100644 --- a/qa/rspec/commands/base.rb +++ b/qa/rspec/commands/base.rb @@ -1,4 +1,5 @@ # encoding: utf-8 +require_relative "../../vagrant/helpers" module ServiceTester @@ -6,6 +7,14 @@ class Base LOCATION="/logstash-build".freeze + def snapshot(host) + LogStash::VagrantHelpers.save_snapshot(host) + end + + def restore(host) + LogStash::VagrantHelpers.restore_snapshot(host) + end + def start_service(service, host=nil) service_manager(service, "start", host) end diff --git a/qa/rspec/commands/debian.rb b/qa/rspec/commands/debian.rb index 3dabb1d31b8..e007de88fcb 100644 --- a/qa/rspec/commands/debian.rb +++ b/qa/rspec/commands/debian.rb @@ -14,8 +14,8 @@ def installed?(hosts, package) stdout.match(/^Status: install ok installed$/) end - def package_for(version) - File.join(ServiceTester::Base::LOCATION, "logstash-#{version}_all.deb") + def package_for(version, base=ServiceTester::Base::LOCATION) + File.join(base, "logstash-#{version}_all.deb") end def install(package, host=nil) diff --git a/qa/rspec/commands/redhat.rb b/qa/rspec/commands/redhat.rb index 7072611233a..d29934da3dd 100644 --- a/qa/rspec/commands/redhat.rb +++ b/qa/rspec/commands/redhat.rb @@ -14,8 +14,8 @@ def installed?(hosts, package) stdout.match(/^logstash.noarch/) end - def package_for(version) - File.join(ServiceTester::Base::LOCATION, "logstash-#{version}.noarch.rpm") + def package_for(version, base=ServiceTester::Base::LOCATION) + File.join(base, "logstash-#{version}.noarch.rpm") end def install(package, host=nil) diff --git a/qa/sys/debian/bootstrap.sh b/qa/sys/debian/bootstrap.sh index 7d385b93490..29c2c840346 100644 --- a/qa/sys/debian/bootstrap.sh +++ b/qa/sys/debian/bootstrap.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +add-apt-repository ppa:openjdk-r/ppa apt-get update -apt-get install -y openjdk-7-jdk +apt-get install -y openjdk-8-jdk +update-alternatives --config java +update-alternatives --config javac diff --git a/qa/sys/debian/user_bootstrap.sh b/qa/sys/debian/user_bootstrap.sh new file mode 100644 index 00000000000..19cd405f529 --- /dev/null +++ b/qa/sys/debian/user_bootstrap.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +VERSION=`cat /vagrant/config/platforms.json | grep latest | cut -d":" -f2 | sed 's/["\|,| ]//g'` +LOGSTASH_FILENAME="logstash-${VERSION}_all.deb" +wget -q https://download.elastic.co/logstash/logstash/packages/debian/$LOGSTASH_FILENAME diff --git a/qa/sys/redhat/user_bootstrap.sh b/qa/sys/redhat/user_bootstrap.sh new file mode 100644 index 00000000000..2961e53ec4b --- /dev/null +++ b/qa/sys/redhat/user_bootstrap.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +VERSION=`cat /vagrant/config/platforms.json | grep latest | cut -d":" -f2 | sed 's/["\|,| ]//g'` +LOGSTASH_FILENAME="logstash-${VERSION}.noarch.rpm" +wget -q https://download.elastic.co/logstash/logstash/packages/centos/$LOGSTASH_FILENAME diff --git a/qa/sys/suse/user_bootstrap.sh b/qa/sys/suse/user_bootstrap.sh new file mode 100644 index 00000000000..f1f641af19b --- /dev/null +++ b/qa/sys/suse/user_bootstrap.sh @@ -0,0 +1 @@ +#!/usr/bin/env bash diff --git a/qa/vagrant-helpers.rb b/qa/vagrant-helpers.rb deleted file mode 100644 index 70cb870bb9c..00000000000 --- a/qa/vagrant-helpers.rb +++ /dev/null @@ -1,84 +0,0 @@ -# encoding: utf-8 -require "open3" -require "bundler" - -module LogStash - class CommandExecutor - class CommandError < StandardError; end - - class CommandResponse - attr_reader :stdin, :stdout, :stderr, :exitstatus - - def initialize(stdin, stdout, stderr, exitstatus) - @stdin = stdin, - @stdout = stdout - @stderr = stderr - @exitstatus = exitstatus - end - - def success? - exitstatus == 0 - end - end - - def self.run(cmd) - # This block is require to be able to launch a ruby subprocess - # that use bundler. - Bundler.with_clean_env do - Open3.popen3(cmd) do |stdin, stdout, stderr, wait_thr| - CommandResponse.new(stdin, stdout.read.chomp, stderr.read.chomp, wait_thr.value.exitstatus) - end - end - end - - # This method will raise an exception if the `CMD` - # was not run successfully and will display the content of STDERR - def self.run!(cmd) - response = run(cmd) - - unless response.success? - raise CommandError, "CMD: #{cmd} STDERR: #{response.stderr}" - end - response - end - end - - class VagrantHelpers - - def self.halt(machines="") - CommandExecutor.run!("vagrant halt #{machines.join(' ')}") - end - - def self.destroy(machines="") - CommandExecutor.run!("vagrant destroy --force #{machines.join(' ')}") - end - - def self.bootstrap(machines="") - CommandExecutor.run!("vagrant up #{machines.join(' ')}") - end - - def self.fetch_config - cmd = CommandExecutor.run!("vagrant status") - machines = cmd.stdout.split("\n").select { |m| m.include?("running") }.map { |s| s.split(" ")[0] } - CommandExecutor.run!("vagrant ssh-config #{machines.join(' ')}") - end - - def self.parse(lines) - hosts, host = [], {} - lines.each do |line| - if line.match(/Host\s(.*)$/) - host = { :host => line.gsub("Host","").strip } - elsif line.match(/HostName\s(.*)$/) - host[:hostname] = line.gsub("HostName","").strip - elsif line.match(/Port\s(.*)$/) - host[:port] = line.gsub("Port","").strip - elsif line.empty? - hosts << host - host = {} - end - end - hosts << host - hosts - end - end -end diff --git a/qa/vagrant/command.rb b/qa/vagrant/command.rb new file mode 100644 index 00000000000..740514df8e7 --- /dev/null +++ b/qa/vagrant/command.rb @@ -0,0 +1,45 @@ +# encoding: utf-8 +require "open3" +require "bundler" + +module LogStash + class CommandExecutor + class CommandError < StandardError; end + + class CommandResponse + attr_reader :stdin, :stdout, :stderr, :exitstatus + + def initialize(stdin, stdout, stderr, exitstatus) + @stdin = stdin + @stdout = stdout + @stderr = stderr + @exitstatus = exitstatus + end + + def success? + exitstatus == 0 + end + end + + def self.run(cmd) + # This block is require to be able to launch a ruby subprocess + # that use bundler. + Bundler.with_clean_env do + Open3.popen3(cmd) do |stdin, stdout, stderr, wait_thr| + CommandResponse.new(stdin, stdout.read.chomp, stderr.read.chomp, wait_thr.value.exitstatus) + end + end + end + + # This method will raise an exception if the `CMD` + # was not run successfully and will display the content of STDERR + def self.run!(cmd) + response = run(cmd) + + unless response.success? + raise CommandError, "CMD: #{cmd} STDERR: #{response.stderr}" + end + response + end + end +end diff --git a/qa/vagrant/helpers.rb b/qa/vagrant/helpers.rb new file mode 100644 index 00000000000..1b2a63929a7 --- /dev/null +++ b/qa/vagrant/helpers.rb @@ -0,0 +1,52 @@ +# encoding: utf-8 +require "open3" +require "bundler" +require_relative "command" + +module LogStash + class VagrantHelpers + + def self.halt(machines="") + CommandExecutor.run!("vagrant halt #{machines.join(' ')}") + end + + def self.destroy(machines="") + CommandExecutor.run!("vagrant destroy --force #{machines.join(' ')}") + end + + def self.bootstrap(machines="") + CommandExecutor.run!("vagrant up #{machines.join(' ')}") + end + + def self.save_snapshot(machine="") + CommandExecutor.run!("vagrant snapshot save #{machine} #{machine}-snapshot") + end + + def self.restore_snapshot(machine="") + CommandExecutor.run!("vagrant snapshot restore #{machine} #{machine}-snapshot") + end + + def self.fetch_config + machines = CommandExecutor.run!("vagrant status").stdout.split("\n").select { |l| l.include?("running") }.map { |r| r.split(' ')[0]} + CommandExecutor.run!("vagrant ssh-config #{machines.join(' ')}") + end + + def self.parse(lines) + hosts, host = [], {} + lines.each do |line| + if line.match(/Host\s(.*)$/) + host = { :host => line.gsub("Host","").strip } + elsif line.match(/HostName\s(.*)$/) + host[:hostname] = line.gsub("HostName","").strip + elsif line.match(/Port\s(.*)$/) + host[:port] = line.gsub("Port","").strip + elsif line.empty? + hosts << host + host = {} + end + end + hosts << host + hosts + end + end +end From 7b38e798c2716fe4550bfa62ccea017759f1f0bd Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 19 Apr 2016 14:23:13 +0200 Subject: [PATCH 166/632] Migration of the CLI script to run under Vagrant VMs. This is the First pass to add the `integration` test for the CLI, the Logstash and the logstash-plugin command. Fixes #5259 Fixes #5350 --- qa/Gemfile | 2 + qa/Rakefile | 5 +- qa/acceptance/spec/lib/cli_operation_spec.rb | 19 ++++++ .../cli/logstash-plugin/install.rb | 58 +++++++++++++++++++ .../cli/logstash-plugin/list.rb | 48 +++++++++++++++ .../cli/logstash-plugin/uninstall.rb | 35 +++++++++++ .../cli/logstash-plugin/update.rb | 40 +++++++++++++ .../shared_examples/cli/logstash/version.rb | 22 +++++++ qa/rspec/commands.rb | 24 ++++++++ qa/rspec/commands/base.rb | 41 ++++++++++++- qa/rspec/commands/debian.rb | 3 +- qa/rspec/commands/redhat.rb | 2 +- qa/rspec/matchers.rb | 5 +- qa/rspec/matchers/be_installed.rb | 1 - qa/rspec/matchers/be_running.rb | 1 - qa/rspec/matchers/cli_matchers.rb | 31 ++++++++++ .../logstash-filter-qatest-newer.gemspec | 25 ++++++++ .../logstash-filter-qatest-old.gemspec | 24 ++++++++ 18 files changed, 375 insertions(+), 11 deletions(-) create mode 100644 qa/acceptance/spec/lib/cli_operation_spec.rb create mode 100644 qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb create mode 100644 qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb create mode 100644 qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb create mode 100644 qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb create mode 100644 qa/acceptance/spec/shared_examples/cli/logstash/version.rb create mode 100644 qa/rspec/matchers/cli_matchers.rb create mode 100644 qa/support/logstash-filter-qatest/logstash-filter-qatest-newer.gemspec create mode 100644 qa/support/logstash-filter-qatest/logstash-filter-qatest-old.gemspec diff --git a/qa/Gemfile b/qa/Gemfile index 1919a50f272..662249894ae 100644 --- a/qa/Gemfile +++ b/qa/Gemfile @@ -3,3 +3,5 @@ gem "runner-tool", :git => "https://github.com/purbon/runner-tool.git" gem "rspec", "~> 3.1.0" gem "rake" gem "pry", :group => :test +gem "stud" +gem "logstash-devutils" diff --git a/qa/Rakefile b/qa/Rakefile index 5c8ea3cf73a..ffcde89f07a 100644 --- a/qa/Rakefile +++ b/qa/Rakefile @@ -28,7 +28,6 @@ namespace :qa do message = "bootstraping all VM's defined in acceptance/Vagrantfile" message = "#{message} for #{args[:platform]}: #{machines}" if !args[:platform].nil? - puts message LogStash::VagrantHelpers.destroy(machines) LogStash::VagrantHelpers.bootstrap(machines) @@ -49,7 +48,7 @@ namespace :qa do namespace :acceptance do desc "Run all acceptance" task :all do - exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/lib/*_spec.rb"]])) + exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/lib/**/*_spec.rb"]])) end platforms.types.each do |type| @@ -63,7 +62,7 @@ namespace :qa do desc "Run one single machine acceptance test" task :single, :machine do |t, args| ENV['LS_VAGRANT_HOST'] = args[:machine] - exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/lib/*_spec.rb"]])) + exit(RSpec::Core::Runner.run([Rake::FileList["acceptance/spec/lib/**/**/*_spec.rb"]])) end end end diff --git a/qa/acceptance/spec/lib/cli_operation_spec.rb b/qa/acceptance/spec/lib/cli_operation_spec.rb new file mode 100644 index 00000000000..3830c58001a --- /dev/null +++ b/qa/acceptance/spec/lib/cli_operation_spec.rb @@ -0,0 +1,19 @@ +# encoding: utf-8 +require_relative "../spec_helper" +require_relative "../shared_examples/cli/logstash/version" +require_relative "../shared_examples/cli/logstash-plugin/install" +require_relative "../shared_examples/cli/logstash-plugin/list" +require_relative "../shared_examples/cli/logstash-plugin/uninstall" +require_relative "../shared_examples/cli/logstash-plugin/update" + +describe "CLI operation" do + config = ServiceTester.configuration + config.servers.each do |address| + logstash = ServiceTester::Artifact.new(address, config.lookup[address]) + it_behaves_like "logstash version", logstash + it_behaves_like "logstash install", logstash + it_behaves_like "logstash list", logstash + it_behaves_like "logstash uninstall", logstash + it_behaves_like "logstash update", logstash + end +end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb new file mode 100644 index 00000000000..8e0c6814933 --- /dev/null +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb @@ -0,0 +1,58 @@ +# encoding: utf-8 +require_relative "../../../spec_helper" +require "logstash/version" +require "fileutils" +require "logstash/devutils/rake" + +shared_examples "logstash install" do |logstash| + before(:each) do + logstash.install(LOGSTASH_VERSION) + end + + after(:each) do + logstash.uninstall + end + + describe "on #{logstash.hostname}" do + context "with a direct internet connection" do + context "when the plugin exist" do + context "from a local `.GEM` file" do + let(:gem_name) { "logstash-filter-qatest-0.1.1.gem" } + let(:gem_path_on_vagrant) { "/tmp/#{gem_name}" } + before(:each) do + logstash.download("https://rubygems.org/gems/#{gem_name}", gem_path_on_vagrant) + end + + after(:each) { logstash.delete_file(gem_path_on_vagrant) } + + it "successfully install the plugin" do + command = logstash.run_command_in_path("bin/logstash-plugin install #{gem_path_on_vagrant}") + expect(command).to install_successfully + expect(logstash).to have_installed?("logstash-filter-dns") + end + end + + context "when fetching a gem from rubygems" do + it "successfully install the plugin" do + command = logstash.run_command_in_path("bin/logstash-plugin install logstash-filter-qatest") + expect(command).to install_successfully + expect(logstash).to have_installed?("logstash-filter-qatest") + end + + it "allow to install a specific version" do + command = logstash.run_command_in_path("bin/logstash-plugin install --version 0.1.0 logstash-filter-qatest") + expect(command).to install_successfully + expect(logstash).to have_installed?("logstash-filter-qatest", "0.1.0") + end + end + end + + context "when the plugin doesnt exist" do + it "fails to install and report an error" do + command = logstash.run_command_in_path("bin/logstash-plugin install --no-verify logstash-output-impossible-plugin") + expect(command.stderr).to match(/Plugin not found, aborting/) + end + end + end + end +end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb new file mode 100644 index 00000000000..64e6cd1be1a --- /dev/null +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb @@ -0,0 +1,48 @@ +# encoding: utf-8 +require_relative "../../../spec_helper" +require "logstash/version" +require "fileutils" + +shared_examples "logstash list" do |logstash| + describe "logstash-plugin list on #{logstash.hostname}" do + before(:all) do + logstash.install(LOGSTASH_VERSION) + end + + after(:all) do + logstash.uninstall + end + + context "without a specific plugin" do + it "display a list of plugins" do + result = logstash.run_command_in_path("bin/logstash-plugin list") + expect(result.stdout.split("\n").size).to be > 1 + end + + it "display a list of installed plugins" do + result = logstash.run_command_in_path("bin/logstash-plugin list --installed") + expect(result.stdout.split("\n").size).to be > 1 + end + + it "list the plugins with their versions" do + result = logstash.run_command_in_path("bin/logstash-plugin list --verbose") + result.stdout.split("\n").each do |plugin| + expect(plugin).to match(/^logstash-\w+-\w+\s\(\d+\.\d+.\d+\)/) + end + end + end + + context "with a specific plugin" do + let(:plugin_name) { "logstash-input-stdin" } + it "list the plugin and display the plugin name" do + result = logstash.run_command_in_path("bin/logstash-plugin list #{plugin_name}") + expect(result).to run_successfully_and_output(/^#{plugin_name}$/) + end + + it "list the plugin with his version" do + result = logstash.run_command_in_path("bin/logstash-plugin list --verbose #{plugin_name}") + expect(result).to run_successfully_and_output(/^#{plugin_name} \(\d+\.\d+.\d+\)/) + end + end + end +end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb new file mode 100644 index 00000000000..d12bbb954c0 --- /dev/null +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb @@ -0,0 +1,35 @@ +# encoding: utf-8 +require_relative "../../../spec_helper" +require "logstash/version" +require "fileutils" + +shared_examples "logstash uninstall" do |logstash| + describe "logstash uninstall on #{logstash.hostname}" do + before :each do + logstash.install(LOGSTASH_VERSION) + end + + after :each do + logstash.uninstall + end + + context "when the plugin isn't installed" do + it "fails to uninstall it" do + result = logstash.run_command_in_path("bin/logstash-plugin uninstall logstash-filter-qatest") + expect(result.stderr).to match(/ERROR: Uninstall Aborted, message: This plugin has not been previously installed, aborting/) + end + end + + # Disabled because of this bug https://github.com/elastic/logstash/issues/5286 + xcontext "when the plugin is installed" do + it "succesfully uninstall it" do + result = logstash.run_command_in_path("bin/logstash-plugin install logstash-filter-qatest") + expect(logstash).to have_installed?("logstash-filter-qatest") + + result = logstash.run_command_in_path("bin/logstash-plugin uninstall logstash-filter-qatest") + expect(result.stdout).to match(/^Uninstalling logstash-filter-qatest/) + expect(logstash).not_to have_installed?("logstash-filter-qatest") + end + end + end +end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb new file mode 100644 index 00000000000..3aaaa30523a --- /dev/null +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb @@ -0,0 +1,40 @@ +# encoding: utf-8 +require_relative "../../../spec_helper" +require "logstash/version" + +shared_examples "logstash update" do |logstash| + describe "logstash update on #{logstash.hostname}" do + before :each do + logstash.install(LOGSTASH_VERSION) + end + + after :each do + logstash.uninstall + end + + let(:plugin_name) { "logstash-filter-qatest" } + let(:previous_version) { "0.1.0" } + + before do + logstash.run_command_in_path("bin/logstash-plugin install --version #{previous_version} #{plugin_name}") + # Logstash wont update when we have a pinned versionin the gemfile so we remove them + logstash.replace_in_gemfile(',\s"0.1.0"', "") + expect(logstash).to have_installed?(plugin_name, previous_version) + end + + context "update a specific plugin" do + it "has executed succesfully" do + cmd = logstash.run_command_in_path("bin/logstash-plugin update #{plugin_name}") + expect(cmd.stdout).to match(/Updating #{plugin_name}/) + expect(logstash).not_to have_installed?(plugin_name, previous_version) + end + end + + context "update all the plugins" do + it "has executed succesfully" do + logstash.run_command_in_path("bin/logstash-plugin update") + expect(logstash).to have_installed?(plugin_name, "0.1.1") + end + end + end +end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb new file mode 100644 index 00000000000..cde8d10eec8 --- /dev/null +++ b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb @@ -0,0 +1,22 @@ +# encoding: utf-8 +require_relative "../../../spec_helper" +require "logstash/version" + +shared_examples "logstash version" do |logstash| + describe "logstash --version" do + before :all do + logstash.install(LOGSTASH_VERSION) + end + + after :all do + logstash.uninstall + end + + context "on #{logstash.hostname}" do + it "returns the right logstash version" do + result = logstash.run_command_in_path("bin/logstash --version") + expect(result).to run_successfully_and_output(/#{LOGSTASH_VERSION}/) + end + end + end +end diff --git a/qa/rspec/commands.rb b/qa/rspec/commands.rb index 57c67a814ae..a2bcab6f54b 100644 --- a/qa/rspec/commands.rb +++ b/qa/rspec/commands.rb @@ -57,6 +57,30 @@ def uninstall client.uninstall(name, host) end + def run_command_in_path(cmd) + client.run_command_in_path(cmd, host) + end + + def run_command(cmd) + client.run_command(cmd, host) + end + + def plugin_installed?(name, version = nil) + client.plugin_installed?(host, name, version) + end + + def download(from, to) + client.download(from, to , host) + end + + def replace_in_gemfile(pattern, replace) + client.replace_in_gemfile(pattern, replace, host) + end + + def delete_file(path) + client.delete_file(path, host) + end + def to_s "Artifact #{name}@#{host}" end diff --git a/qa/rspec/commands/base.rb b/qa/rspec/commands/base.rb index 0f4f6daa2cf..7262825db32 100644 --- a/qa/rspec/commands/base.rb +++ b/qa/rspec/commands/base.rb @@ -4,8 +4,8 @@ module ServiceTester class Base - LOCATION="/logstash-build".freeze + LOGSTASH_PATH="/opt/logstash/".freeze def snapshot(host) LogStash::VagrantHelpers.save_snapshot(host) @@ -23,5 +23,44 @@ def stop_service(service, host=nil) service_manager(service, "stop", host) end + def run_command(cmd, host) + hosts = (host.nil? ? servers : Array(host)) + + response = nil + at(hosts, {in: :serial}) do |_host| + response = sudo_exec!(cmd) + end + response + end + + def replace_in_gemfile(pattern, replace, host) + cmd = "/bin/env sed -i.sedbak 's/#{pattern}/#{replace}/' /opt/logstash/Gemfile" + run_command(cmd, host) + end + + def run_command_in_path(cmd, host) + run_command("#{File.join(LOGSTASH_PATH, cmd)}", host) + end + + def plugin_installed?(host, plugin_name, version = nil) + if version.nil? + cmd = run_command_in_path("bin/logstash-plugin list", host) + search_token = plugin_name + else + cmd = run_command_in_path("bin/logstash-plugin list --verbose", host) + search_token ="#{plugin_name} (#{version})" + end + + plugins_list = cmd.stdout.split("\n") + plugins_list.include?(search_token) + end + + def download(from, to, host) + run_command("wget #{from} -O #{to}", host) + end + + def delete_file(path, host) + run_command("rm -rf #{path}", host) + end end end diff --git a/qa/rspec/commands/debian.rb b/qa/rspec/commands/debian.rb index e007de88fcb..b2e1a37e534 100644 --- a/qa/rspec/commands/debian.rb +++ b/qa/rspec/commands/debian.rb @@ -15,7 +15,7 @@ def installed?(hosts, package) end def package_for(version, base=ServiceTester::Base::LOCATION) - File.join(base, "logstash-#{version}_all.deb") + File.join(base, "logstash-#{version}.deb") end def install(package, host=nil) @@ -60,6 +60,5 @@ def service_manager(service, action, host=nil) sudo_exec!("service #{service} #{action}") end end - end end diff --git a/qa/rspec/commands/redhat.rb b/qa/rspec/commands/redhat.rb index d29934da3dd..76275b5fbfc 100644 --- a/qa/rspec/commands/redhat.rb +++ b/qa/rspec/commands/redhat.rb @@ -15,7 +15,7 @@ def installed?(hosts, package) end def package_for(version, base=ServiceTester::Base::LOCATION) - File.join(base, "logstash-#{version}.noarch.rpm") + File.join(base, "logstash-#{version}.rpm") end def install(package, host=nil) diff --git a/qa/rspec/matchers.rb b/qa/rspec/matchers.rb index 226a0ce9cd6..4da583262f2 100644 --- a/qa/rspec/matchers.rb +++ b/qa/rspec/matchers.rb @@ -1,3 +1,4 @@ # encoding: utf-8 -require_relative './matchers/be_installed' -require_relative './matchers/be_running' +require_relative "./matchers/be_installed" +require_relative "./matchers/be_running" +require_relative "./matchers/cli_matchers" diff --git a/qa/rspec/matchers/be_installed.rb b/qa/rspec/matchers/be_installed.rb index cca6c56a0be..4de70ae21ed 100644 --- a/qa/rspec/matchers/be_installed.rb +++ b/qa/rspec/matchers/be_installed.rb @@ -3,7 +3,6 @@ require_relative '../helpers' RSpec::Matchers.define :be_installed do - match do |subject| subject.installed?(subject.hosts, subject.name) end diff --git a/qa/rspec/matchers/be_running.rb b/qa/rspec/matchers/be_running.rb index 53dc2738c47..dc687e1b11d 100644 --- a/qa/rspec/matchers/be_running.rb +++ b/qa/rspec/matchers/be_running.rb @@ -3,7 +3,6 @@ require_relative '../helpers' RSpec::Matchers.define :be_running do - match do |subject| subject.running?(subject.hosts, subject.name) end diff --git a/qa/rspec/matchers/cli_matchers.rb b/qa/rspec/matchers/cli_matchers.rb new file mode 100644 index 00000000000..e31aa050af3 --- /dev/null +++ b/qa/rspec/matchers/cli_matchers.rb @@ -0,0 +1,31 @@ +# encoding: utf-8 +RSpec::Matchers.define :be_successful do + match do |actual| + actual.exit_status == 0 + end +end + +RSpec::Matchers.define :fail_and_output do |expected_output| + match do |actual| + actual.exit_status == 1 && actual.stderr =~ expected_output + end +end + +RSpec::Matchers.define :run_successfully_and_output do |expected_output| + match do |actual| + (actual.exit_status == 0 || actual.exit_status.nil?) && actual.stdout =~ expected_output + end +end + +RSpec::Matchers.define :have_installed? do |name,*args| + match do |actual| + version = args.first + actual.plugin_installed?(name, version) + end +end + +RSpec::Matchers.define :install_successfully do + match do |cmd| + expect(cmd).to run_successfully_and_output(/Installation successful/) + end +end diff --git a/qa/support/logstash-filter-qatest/logstash-filter-qatest-newer.gemspec b/qa/support/logstash-filter-qatest/logstash-filter-qatest-newer.gemspec new file mode 100644 index 00000000000..1e9fe168abe --- /dev/null +++ b/qa/support/logstash-filter-qatest/logstash-filter-qatest-newer.gemspec @@ -0,0 +1,25 @@ +Gem::Specification.new do |s| + s.name = 'logstash-filter-qatest' + s.version = '0.1.1' + s.licenses = ['Apache License (2.0)'] + s.summary = "This plugin is only used in the acceptance test" + s.description = "This plugin is only used in the acceptance test" + s.authors = ["Elasticsearch"] + s.email = 'info@elasticsearch.com' + s.homepage = "http://www.elasticsearch.org/guide/en/logstash/current/index.html" + s.require_paths = ["lib"] + + # Files + s.files = `git ls-files`.split($\)+::Dir.glob('vendor/*') + + # Tests + s.test_files = s.files.grep(%r{^(test|spec|features)/}) + + # Special flag to let us know this is actually a logstash plugin + s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" } + + # Gem dependencies + s.add_development_dependency 'logstash-devutils' + s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0" +end + diff --git a/qa/support/logstash-filter-qatest/logstash-filter-qatest-old.gemspec b/qa/support/logstash-filter-qatest/logstash-filter-qatest-old.gemspec new file mode 100644 index 00000000000..82e3be79baf --- /dev/null +++ b/qa/support/logstash-filter-qatest/logstash-filter-qatest-old.gemspec @@ -0,0 +1,24 @@ +Gem::Specification.new do |s| + s.name = 'logstash-filter-qatest' + s.version = '0.1.0' + s.licenses = ['Apache License (2.0)'] + s.summary = "This plugin is only used in the acceptance test" + s.description = "This plugin is only used in the acceptance test" + s.authors = ["Elasticsearch"] + s.email = 'info@elasticsearch.com' + s.homepage = "http://www.elasticsearch.org/guide/en/logstash/current/index.html" + s.require_paths = ["lib"] + + # Files + s.files = `git ls-files`.split($\)+::Dir.glob('vendor/*') + + # Tests + s.test_files = s.files.grep(%r{^(test|spec|features)/}) + + # Special flag to let us know this is actually a logstash plugin + s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" } + + # Gem dependencies + s.add_development_dependency 'logstash-devutils' + s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0" +end From 21777bae4041e341a3b093f1c085046d25220b61 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Mon, 23 May 2016 12:53:32 +0200 Subject: [PATCH 167/632] Collection of small bootstrap related fixes like * make sure downloaded logstashes use the new (arch independant files name) * add specific privileged bootstrap script for debian 8 that is able to install java8 for this distro * wrap the bootstrap scripts within the platform class, like this logic is in one specific place to select platform specific components * add platform specific bootstrap file for sles-12 and also scripts to download latest logstash rpm version * add custom bootstrap script for ubuntu-1404 to be sure it loads all ca certificates into the system * make the necessary changes to compile with the new package system * correct logstash path usage * remove unnecessary dependancy to rake inside the acceptance test framework * fix script execution under ubuntu environments, making sure it runs on bash Fixes #5350 --- ci/ci_acceptance.sh | 2 +- qa/Vagrantfile | 6 ++-- .../cli/logstash-plugin/install.rb | 1 - qa/config/platforms.json | 6 ++-- qa/platform_config.rb | 29 +++++++++++++++++-- qa/rspec/commands.rb | 11 ++++++- qa/rspec/commands/base.rb | 5 ++-- qa/rspec/commands/centos/centos-6.rb | 23 +++++++++++++++ qa/rspec/commands/debian.rb | 5 +++- qa/rspec/commands/oel/oel-6.rb | 23 +++++++++++++++ qa/rspec/commands/redhat.rb | 5 +++- qa/rspec/commands/ubuntu.rb | 2 +- qa/sys/debian/debian-8/bootstrap.sh | 5 ++++ qa/sys/debian/ubuntu-1404/bootstrap.sh | 8 +++++ qa/sys/debian/user_bootstrap.sh | 1 + qa/sys/redhat/user_bootstrap.sh | 1 + qa/sys/suse/sles-12/bootstrap.sh | 9 ++++++ qa/sys/suse/user_bootstrap.sh | 4 +++ 18 files changed, 131 insertions(+), 15 deletions(-) create mode 100644 qa/rspec/commands/centos/centos-6.rb create mode 100644 qa/rspec/commands/oel/oel-6.rb create mode 100644 qa/sys/debian/debian-8/bootstrap.sh create mode 100644 qa/sys/debian/ubuntu-1404/bootstrap.sh create mode 100644 qa/sys/suse/sles-12/bootstrap.sh diff --git a/ci/ci_acceptance.sh b/ci/ci_acceptance.sh index 7117cb8025c..5665fe5cc4a 100755 --- a/ci/ci_acceptance.sh +++ b/ci/ci_acceptance.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash set -e # Since we are using the system jruby, we need to make sure our jvm process diff --git a/qa/Vagrantfile b/qa/Vagrantfile index 280a8759484..b7da73064f6 100644 --- a/qa/Vagrantfile +++ b/qa/Vagrantfile @@ -13,12 +13,14 @@ Vagrant.configure(2) do |config| v.cpus = 4 end machine.vm.synced_folder "../build", "/logstash-build", create: true + machine.vm.provision :shell do |sh| - sh.path = "sys/#{platform.type}/bootstrap.sh" + sh.path = platform.bootstrap.privileged sh.privileged = true end + machine.vm.provision :shell do |sh| - sh.path = "sys/#{platform.type}/user_bootstrap.sh" + sh.path = platform.bootstrap.non_privileged sh.privileged = false end end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb index 8e0c6814933..13cb52036a2 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb @@ -2,7 +2,6 @@ require_relative "../../../spec_helper" require "logstash/version" require "fileutils" -require "logstash/devutils/rake" shared_examples "logstash install" do |logstash| before(:each) do diff --git a/qa/config/platforms.json b/qa/config/platforms.json index d918a49856e..f99c76cf72a 100644 --- a/qa/config/platforms.json +++ b/qa/config/platforms.json @@ -2,15 +2,15 @@ "latest": "5.0.0-alpha2", "platforms" : { "ubuntu-1204": { "box": "elastic/ubuntu-12.04-x86_64", "type": "debian" }, - "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "debian" }, + "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "debian", "specific": true }, "ubuntu-1504": { "box": "elastic/ubuntu-15.04-x86_64", "type": "debian" }, "centos-6": { "box": "elastic/centos-6-x86_64", "type": "redhat" }, "centos-7": { "box": "elastic/centos-7-x86_64", "type": "redhat" }, "oel-6": { "box": "elastic/oraclelinux-6-x86_64", "type": "redhat" }, "oel-7": { "box": "elastic/oraclelinux-7-x86_64", "type": "redhat" }, "fedora-22": { "box": "elastic/fedora-22-x86_64", "type": "redhat" }, - "debian-8": { "box": "elastic/debian-8-x86_64", "type": "debian" }, + "debian-8": { "box": "elastic/debian-8-x86_64", "type": "debian", "specific": true }, "opensuse-13": { "box": "elastic/opensuse-13-x86_64", "type": "suse" }, - "sles-12": { "box": "elastic/sles-12-x86_64", "type": "suse" } + "sles-12": { "box": "elastic/sles-12-x86_64", "type": "suse", "specific": true } } } diff --git a/qa/platform_config.rb b/qa/platform_config.rb index a8c4940d190..f895074b68b 100644 --- a/qa/platform_config.rb +++ b/qa/platform_config.rb @@ -1,9 +1,34 @@ # encoding: utf-8 require "json" +require "ostruct" class PlatformConfig - Platform = Struct.new(:name, :box, :type) + + class Platform + + attr_reader :name, :box, :type, :bootstrap + + def initialize(name, data) + @name = name + @box = data["box"] + @type = data["type"] + configure_bootstrap_scripts(data) + end + + private + + def configure_bootstrap_scripts(data) + @bootstrap = OpenStruct.new(:privileged => "sys/#{type}/bootstrap.sh", + :non_privileged => "sys/#{type}/user_bootstrap.sh") + ## + # for now the only specific boostrap scripts are ones need + # with privileged access level, whenever others are also + # required we can update this section as well with the same pattern. + ## + @bootstrap.privileged = "sys/#{type}/#{name}/bootstrap.sh" if data["specific"] + end + end DEFAULT_CONFIG_LOCATION = File.join(File.dirname(__FILE__), "config", "platforms.json").freeze @@ -15,7 +40,7 @@ def initialize(config_path = DEFAULT_CONFIG_LOCATION) data = JSON.parse(File.read(@config_path)) data["platforms"].each do |k, v| - @platforms << Platform.new(k, v["box"], v["type"]) + @platforms << Platform.new(k, v) end @platforms.sort! { |a, b| a.name <=> b.name } @latest = data["latest"] diff --git a/qa/rspec/commands.rb b/qa/rspec/commands.rb index a2bcab6f54b..310dd86de3b 100644 --- a/qa/rspec/commands.rb +++ b/qa/rspec/commands.rb @@ -3,6 +3,9 @@ require_relative "./commands/ubuntu" require_relative "./commands/redhat" require_relative "./commands/suse" +require_relative "./commands/centos/centos-6" +require_relative "./commands/oel/oel-6" + require "forwardable" module ServiceTester @@ -99,7 +102,13 @@ def self.fetch(type, host) when "suse" return SuseCommands.new when "redhat" - return RedhatCommands.new + if host == "centos-6" + return Centos6Commands.new + elsif host == "oel-6" + return Oel6Commands.new + else + return RedhatCommands.new + end else return end diff --git a/qa/rspec/commands/base.rb b/qa/rspec/commands/base.rb index 7262825db32..d735a10a48e 100644 --- a/qa/rspec/commands/base.rb +++ b/qa/rspec/commands/base.rb @@ -5,7 +5,7 @@ module ServiceTester class Base LOCATION="/logstash-build".freeze - LOGSTASH_PATH="/opt/logstash/".freeze + LOGSTASH_PATH="/usr/share/logstash/".freeze def snapshot(host) LogStash::VagrantHelpers.save_snapshot(host) @@ -34,7 +34,8 @@ def run_command(cmd, host) end def replace_in_gemfile(pattern, replace, host) - cmd = "/bin/env sed -i.sedbak 's/#{pattern}/#{replace}/' /opt/logstash/Gemfile" + gemfile = File.join(LOGSTASH_PATH, "Gemfile") + cmd = "/bin/env sed -i.sedbak 's/#{pattern}/#{replace}/' #{gemfile}" run_command(cmd, host) end diff --git a/qa/rspec/commands/centos/centos-6.rb b/qa/rspec/commands/centos/centos-6.rb new file mode 100644 index 00000000000..565b8fa8287 --- /dev/null +++ b/qa/rspec/commands/centos/centos-6.rb @@ -0,0 +1,23 @@ +# encoding: utf-8 +require_relative "../base" +require_relative "../redhat" + +module ServiceTester + class Centos6Commands < RedhatCommands + def running?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("initctl status #{package}") + stdout = cmd.stdout + end + stdout.match(/#{package} start\/running/) + end + + def service_manager(service, action, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + sudo_exec!("initctl #{service} #{action}") + end + end + end +end diff --git a/qa/rspec/commands/debian.rb b/qa/rspec/commands/debian.rb index b2e1a37e534..a63c7ffff0e 100644 --- a/qa/rspec/commands/debian.rb +++ b/qa/rspec/commands/debian.rb @@ -51,7 +51,10 @@ def running?(hosts, package) cmd = sudo_exec!("service #{package} status") stdout = cmd.stdout end - stdout.match(/#{package} started.$/) + ( + stdout.match(/Active: active \(running\)/) && + stdout.match(/#{package}.service - #{package}/) + ) end def service_manager(service, action, host=nil) diff --git a/qa/rspec/commands/oel/oel-6.rb b/qa/rspec/commands/oel/oel-6.rb new file mode 100644 index 00000000000..6070edc3ca7 --- /dev/null +++ b/qa/rspec/commands/oel/oel-6.rb @@ -0,0 +1,23 @@ +# encoding: utf-8 +require_relative "../base" +require_relative "../redhat" + +module ServiceTester + class Oel6Commands < RedhatCommands + def running?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("initctl status #{package}") + stdout = cmd.stdout + end + stdout.match(/#{package} start\/running/) + end + + def service_manager(service, action, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + sudo_exec!("initctl #{service} #{action}") + end + end + end +end diff --git a/qa/rspec/commands/redhat.rb b/qa/rspec/commands/redhat.rb index 76275b5fbfc..83e9f04a90f 100644 --- a/qa/rspec/commands/redhat.rb +++ b/qa/rspec/commands/redhat.rb @@ -50,7 +50,10 @@ def running?(hosts, package) cmd = sudo_exec!("service #{package} status") stdout = cmd.stdout end - stdout.match(/^#{package} is running$/) + ( + stdout.match(/Active: active \(running\)/) && + stdout.match(/#{package}.service - #{package}/) + ) end def service_manager(service, action, host=nil) diff --git a/qa/rspec/commands/ubuntu.rb b/qa/rspec/commands/ubuntu.rb index 835e31a9ad4..1d1ae75f96d 100644 --- a/qa/rspec/commands/ubuntu.rb +++ b/qa/rspec/commands/ubuntu.rb @@ -10,7 +10,7 @@ def running?(hosts, package) cmd = sudo_exec!("service #{package} status") stdout = cmd.stdout end - stdout.match(/^#{package} is running$/) + stdout.match(/^#{package} start\/running/) end end diff --git a/qa/sys/debian/debian-8/bootstrap.sh b/qa/sys/debian/debian-8/bootstrap.sh new file mode 100644 index 00000000000..d1a23d54430 --- /dev/null +++ b/qa/sys/debian/debian-8/bootstrap.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +echo "deb http://http.debian.net/debian jessie-backports main" >> /etc/apt/sources.list +apt-get update +apt-get install -y openjdk-8-jdk diff --git a/qa/sys/debian/ubuntu-1404/bootstrap.sh b/qa/sys/debian/ubuntu-1404/bootstrap.sh new file mode 100644 index 00000000000..728b0c3d13f --- /dev/null +++ b/qa/sys/debian/ubuntu-1404/bootstrap.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +add-apt-repository ppa:openjdk-r/ppa +apt-get update +apt-get install -y openjdk-8-jdk +update-alternatives --config java +update-alternatives --config javac +update-ca-certificates -f diff --git a/qa/sys/debian/user_bootstrap.sh b/qa/sys/debian/user_bootstrap.sh index 19cd405f529..8d9fcb70c1d 100644 --- a/qa/sys/debian/user_bootstrap.sh +++ b/qa/sys/debian/user_bootstrap.sh @@ -3,3 +3,4 @@ VERSION=`cat /vagrant/config/platforms.json | grep latest | cut -d":" -f2 | sed 's/["\|,| ]//g'` LOGSTASH_FILENAME="logstash-${VERSION}_all.deb" wget -q https://download.elastic.co/logstash/logstash/packages/debian/$LOGSTASH_FILENAME +mv $LOGSTASH_FILENAME "logstash-${VERSION}.deb" # necessary patch until new version with the standard name format are released diff --git a/qa/sys/redhat/user_bootstrap.sh b/qa/sys/redhat/user_bootstrap.sh index 2961e53ec4b..db964babc63 100644 --- a/qa/sys/redhat/user_bootstrap.sh +++ b/qa/sys/redhat/user_bootstrap.sh @@ -3,3 +3,4 @@ VERSION=`cat /vagrant/config/platforms.json | grep latest | cut -d":" -f2 | sed 's/["\|,| ]//g'` LOGSTASH_FILENAME="logstash-${VERSION}.noarch.rpm" wget -q https://download.elastic.co/logstash/logstash/packages/centos/$LOGSTASH_FILENAME +mv $LOGSTASH_FILENAME "logstash-${VERSION}.rpm" # necessary patch until new version with the standard name format are released diff --git a/qa/sys/suse/sles-12/bootstrap.sh b/qa/sys/suse/sles-12/bootstrap.sh new file mode 100644 index 00000000000..3ed7a04ed15 --- /dev/null +++ b/qa/sys/suse/sles-12/bootstrap.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +zypper rr systemsmanagement_puppet +zypper addrepo -t yast2 http://demeter.uni-regensburg.de/SLES12-x64/DVD1/ dvd1 || true +zypper addrepo -t yast2 http://demeter.uni-regensburg.de/SLES12-x64/DVD2/ dvd2 || true +zypper addrepo http://download.opensuse.org/repositories/Java:Factory/SLE_12/Java:Factory.repo || true +zypper --no-gpg-checks --non-interactive refresh +zypper --non-interactive list-updates +zypper --non-interactive --no-gpg-checks --quiet install --no-recommends java-1_8_0-openjdk-devel diff --git a/qa/sys/suse/user_bootstrap.sh b/qa/sys/suse/user_bootstrap.sh index f1f641af19b..77653c4e980 100644 --- a/qa/sys/suse/user_bootstrap.sh +++ b/qa/sys/suse/user_bootstrap.sh @@ -1 +1,5 @@ #!/usr/bin/env bash +VERSION=`cat /vagrant/config/platforms.json | grep latest | cut -d":" -f2 | sed 's/["\|,| ]//g'` +LOGSTASH_FILENAME="logstash-${VERSION}.noarch.rpm" +wget -q https://download.elastic.co/logstash/logstash/packages/centos/$LOGSTASH_FILENAME +mv $LOGSTASH_FILENAME "logstash-${VERSION}.rpm" # necessary patch until new version with the standard name format are released From 1c7640bb071c5fd2e821747b3f7f125f5762f42d Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 31 May 2016 15:00:31 +0200 Subject: [PATCH 168/632] pass the settings file location as required by the new package structure Fixes #5399 Fixes #5350 --- qa/acceptance/spec/shared_examples/cli/logstash/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb index cde8d10eec8..97a2027064b 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb @@ -14,7 +14,7 @@ context "on #{logstash.hostname}" do it "returns the right logstash version" do - result = logstash.run_command_in_path("bin/logstash --version") + result = logstash.run_command_in_path("bin/logstash --path.settings=/etc/logstash --version") expect(result).to run_successfully_and_output(/#{LOGSTASH_VERSION}/) end end From afce9e74ff738da3ecb79e79f8ce2068e94d33c9 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 1 Jun 2016 17:07:11 +0200 Subject: [PATCH 169/632] Remove unused dependencies, cleanup readme and add new platforms to the list of options Fixes #5350 --- qa/Gemfile | 2 -- qa/README.md | 4 +-- qa/config/platforms.json | 4 ++- qa/rspec/commands.rb | 14 +++++++-- qa/rspec/commands/base.rb | 1 + qa/rspec/commands/centos/centos-6.rb | 16 +--------- qa/rspec/commands/debian.rb | 21 ++----------- qa/rspec/commands/oel/oel-6.rb | 16 +--------- qa/rspec/commands/redhat.rb | 22 ++----------- qa/rspec/commands/suse.rb | 4 +-- qa/rspec/commands/suse/sles-11.rb | 25 +++++++++++++++ qa/rspec/commands/system_helpers.rb | 42 +++++++++++++++++++++++++ qa/rspec/commands/ubuntu/ubuntu-1604.rb | 9 ++++++ qa/sys/suse/sles-11/bootstrap.sh | 8 +++++ 14 files changed, 110 insertions(+), 78 deletions(-) create mode 100644 qa/rspec/commands/suse/sles-11.rb create mode 100644 qa/rspec/commands/system_helpers.rb create mode 100644 qa/rspec/commands/ubuntu/ubuntu-1604.rb create mode 100644 qa/sys/suse/sles-11/bootstrap.sh diff --git a/qa/Gemfile b/qa/Gemfile index 662249894ae..1919a50f272 100644 --- a/qa/Gemfile +++ b/qa/Gemfile @@ -3,5 +3,3 @@ gem "runner-tool", :git => "https://github.com/purbon/runner-tool.git" gem "rspec", "~> 3.1.0" gem "rake" gem "pry", :group => :test -gem "stud" -gem "logstash-devutils" diff --git a/qa/README.md b/qa/README.md index 1cd42210a7e..0e6e47cec50 100644 --- a/qa/README.md +++ b/qa/README.md @@ -1,13 +1,13 @@ ## Acceptance test Framework Welcome to the acceptance test framework for logstash, in this small -readme we're going to describe it's features and the the necessary steps you will need to +README we're going to describe it's features and the necessary steps you will need to follow to setup your environment. ### Environment setup and Running Tests It is possible to run the full suite of the acceptance test with the codebase by -running the command `ci/ci_acceptance.sh`, this command will generate the artefacts, bootstrap +running the command `ci/ci_acceptance.sh`, this command will generate the artifacts, bootstrap the VM and run the tests. diff --git a/qa/config/platforms.json b/qa/config/platforms.json index f99c76cf72a..09a7d6ce481 100644 --- a/qa/config/platforms.json +++ b/qa/config/platforms.json @@ -3,14 +3,16 @@ "platforms" : { "ubuntu-1204": { "box": "elastic/ubuntu-12.04-x86_64", "type": "debian" }, "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "debian", "specific": true }, - "ubuntu-1504": { "box": "elastic/ubuntu-15.04-x86_64", "type": "debian" }, + "ubuntu-1604": { "box": "elastic/ubuntu-16.04-x86_64", "type": "debian" }, "centos-6": { "box": "elastic/centos-6-x86_64", "type": "redhat" }, "centos-7": { "box": "elastic/centos-7-x86_64", "type": "redhat" }, "oel-6": { "box": "elastic/oraclelinux-6-x86_64", "type": "redhat" }, "oel-7": { "box": "elastic/oraclelinux-7-x86_64", "type": "redhat" }, "fedora-22": { "box": "elastic/fedora-22-x86_64", "type": "redhat" }, + "fedora-23": { "box": "elastic/fedora-23-x86_64", "type": "redhat" }, "debian-8": { "box": "elastic/debian-8-x86_64", "type": "debian", "specific": true }, "opensuse-13": { "box": "elastic/opensuse-13-x86_64", "type": "suse" }, + "sles-11": { "box": "elastic/sles-11-x86_64", "type": "suse", "specific": true }, "sles-12": { "box": "elastic/sles-12-x86_64", "type": "suse", "specific": true } } } diff --git a/qa/rspec/commands.rb b/qa/rspec/commands.rb index 310dd86de3b..bd8d6f195bd 100644 --- a/qa/rspec/commands.rb +++ b/qa/rspec/commands.rb @@ -5,6 +5,8 @@ require_relative "./commands/suse" require_relative "./commands/centos/centos-6" require_relative "./commands/oel/oel-6" +require_relative "./commands/ubuntu/ubuntu-1604" +require_relative "./commands/suse/sles-11" require "forwardable" @@ -95,12 +97,20 @@ def self.fetch(type, host) case type when "debian" if host.start_with?("ubuntu") - return UbuntuCommands.new + if host == "ubuntu-1604" + return Ubuntu1604Commands.new + else + return UbuntuCommands.new + end else return DebianCommands.new end when "suse" - return SuseCommands.new + if host == "sles-11" + return Sles11Commands.new + else + return SuseCommands.new + end when "redhat" if host == "centos-6" return Centos6Commands.new diff --git a/qa/rspec/commands/base.rb b/qa/rspec/commands/base.rb index d735a10a48e..cd2acc2bfc9 100644 --- a/qa/rspec/commands/base.rb +++ b/qa/rspec/commands/base.rb @@ -1,5 +1,6 @@ # encoding: utf-8 require_relative "../../vagrant/helpers" +require_relative "system_helpers" module ServiceTester diff --git a/qa/rspec/commands/centos/centos-6.rb b/qa/rspec/commands/centos/centos-6.rb index 565b8fa8287..371590490e6 100644 --- a/qa/rspec/commands/centos/centos-6.rb +++ b/qa/rspec/commands/centos/centos-6.rb @@ -4,20 +4,6 @@ module ServiceTester class Centos6Commands < RedhatCommands - def running?(hosts, package) - stdout = "" - at(hosts, {in: :serial}) do |host| - cmd = sudo_exec!("initctl status #{package}") - stdout = cmd.stdout - end - stdout.match(/#{package} start\/running/) - end - - def service_manager(service, action, host=nil) - hosts = (host.nil? ? servers : Array(host)) - at(hosts, {in: :serial}) do |_| - sudo_exec!("initctl #{service} #{action}") - end - end + include ::ServiceTester::InitD end end diff --git a/qa/rspec/commands/debian.rb b/qa/rspec/commands/debian.rb index a63c7ffff0e..710ffc48d57 100644 --- a/qa/rspec/commands/debian.rb +++ b/qa/rspec/commands/debian.rb @@ -4,6 +4,8 @@ module ServiceTester class DebianCommands < Base + include ::ServiceTester::SystemD + def installed?(hosts, package) stdout = "" at(hosts, {in: :serial}) do |host| @@ -44,24 +46,5 @@ def removed?(hosts, package) stdout.match(/^dpkg-query: package '#{package}' is not installed and no information is available$/) ) end - - def running?(hosts, package) - stdout = "" - at(hosts, {in: :serial}) do |host| - cmd = sudo_exec!("service #{package} status") - stdout = cmd.stdout - end - ( - stdout.match(/Active: active \(running\)/) && - stdout.match(/#{package}.service - #{package}/) - ) - end - - def service_manager(service, action, host=nil) - hosts = (host.nil? ? servers : Array(host)) - at(hosts, {in: :serial}) do |_| - sudo_exec!("service #{service} #{action}") - end - end end end diff --git a/qa/rspec/commands/oel/oel-6.rb b/qa/rspec/commands/oel/oel-6.rb index 6070edc3ca7..ed92a8ce11d 100644 --- a/qa/rspec/commands/oel/oel-6.rb +++ b/qa/rspec/commands/oel/oel-6.rb @@ -4,20 +4,6 @@ module ServiceTester class Oel6Commands < RedhatCommands - def running?(hosts, package) - stdout = "" - at(hosts, {in: :serial}) do |host| - cmd = sudo_exec!("initctl status #{package}") - stdout = cmd.stdout - end - stdout.match(/#{package} start\/running/) - end - - def service_manager(service, action, host=nil) - hosts = (host.nil? ? servers : Array(host)) - at(hosts, {in: :serial}) do |_| - sudo_exec!("initctl #{service} #{action}") - end - end + include ::ServiceTester::InitD end end diff --git a/qa/rspec/commands/redhat.rb b/qa/rspec/commands/redhat.rb index 83e9f04a90f..8f0cf753c23 100644 --- a/qa/rspec/commands/redhat.rb +++ b/qa/rspec/commands/redhat.rb @@ -4,6 +4,8 @@ module ServiceTester class RedhatCommands < Base + include ::ServiceTester::SystemD + def installed?(hosts, package) stdout = "" at(hosts, {in: :serial}) do |host| @@ -43,25 +45,5 @@ def removed?(hosts, package) end stdout.match(/^Error: No matching Packages to list$/) end - - def running?(hosts, package) - stdout = "" - at(hosts, {in: :serial}) do |host| - cmd = sudo_exec!("service #{package} status") - stdout = cmd.stdout - end - ( - stdout.match(/Active: active \(running\)/) && - stdout.match(/#{package}.service - #{package}/) - ) - end - - def service_manager(service, action, host=nil) - hosts = (host.nil? ? servers : Array(host)) - at(hosts, {in: :serial}) do |_| - sudo_exec!("service #{service} #{action}") - end - end - end end diff --git a/qa/rspec/commands/suse.rb b/qa/rspec/commands/suse.rb index 57840415cb1..2a214a53b7e 100644 --- a/qa/rspec/commands/suse.rb +++ b/qa/rspec/commands/suse.rb @@ -13,8 +13,8 @@ def installed?(hosts, package) stdout.match(/^i | logstash | An extensible logging pipeline | package$/) end - def package_for(version) - File.join(ServiceTester::Base::LOCATION, "logstash-#{version}.noarch.rpm") + def package_for(version, base=ServiceTester::Base::LOCATION) + File.join(base, "logstash-#{version}.rpm") end def install(package, host=nil) diff --git a/qa/rspec/commands/suse/sles-11.rb b/qa/rspec/commands/suse/sles-11.rb new file mode 100644 index 00000000000..80dd94dd719 --- /dev/null +++ b/qa/rspec/commands/suse/sles-11.rb @@ -0,0 +1,25 @@ +# encoding: utf-8 +require_relative "../base" +require_relative "../suse" + +module ServiceTester + class Sles11Commands < SuseCommands + + def running?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("/etc/init.d/#{package} status") + stdout = cmd.stdout + end + stdout.match(/#{package} is running$/) + end + + def service_manager(service, action, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + sudo_exec!("/etc/init.d/#{service} #{action}") + end + end + + end +end diff --git a/qa/rspec/commands/system_helpers.rb b/qa/rspec/commands/system_helpers.rb new file mode 100644 index 00000000000..8cb8922946b --- /dev/null +++ b/qa/rspec/commands/system_helpers.rb @@ -0,0 +1,42 @@ +require_relative "base" + +module ServiceTester + module SystemD + def running?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("service #{package} status") + stdout = cmd.stdout + end + ( + stdout.match(/Active: active \(running\)/) && + stdout.match(/#{package}.service - #{package}/) + ) + end + + def service_manager(service, action, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + sudo_exec!("service #{service} #{action}") + end + end + end + + module InitD + def running?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("initctl status #{package}") + stdout = cmd.stdout + end + stdout.match(/#{package} start\/running/) + end + + def service_manager(service, action, host=nil) + hosts = (host.nil? ? servers : Array(host)) + at(hosts, {in: :serial}) do |_| + sudo_exec!("initctl #{action} #{service}") + end + end + end +end diff --git a/qa/rspec/commands/ubuntu/ubuntu-1604.rb b/qa/rspec/commands/ubuntu/ubuntu-1604.rb new file mode 100644 index 00000000000..ae26bc09f28 --- /dev/null +++ b/qa/rspec/commands/ubuntu/ubuntu-1604.rb @@ -0,0 +1,9 @@ +# encoding: utf-8 +require_relative "../base" +require_relative "../ubuntu" + +module ServiceTester + class Ubuntu1604Commands < UbuntuCommands + include ::ServiceTester::SystemD + end +end diff --git a/qa/sys/suse/sles-11/bootstrap.sh b/qa/sys/suse/sles-11/bootstrap.sh new file mode 100644 index 00000000000..654be5d7ec0 --- /dev/null +++ b/qa/sys/suse/sles-11/bootstrap.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +zypper rr systemsmanagement_puppet +zypper addrepo -t yast2 http://demeter.uni-regensburg.de/SLES12-x64/DVD1/ dvd1 || true +zypper addrepo -t yast2 http://demeter.uni-regensburg.de/SLES12-x64/DVD2/ dvd2 || true +ln -s /usr/sbin/update-alternatives /usr/sbin/alternatives +curl -L 'https://edelivery.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.rpm' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en-US,en;q=0.8' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0' -H 'Cookie: oraclelicense=accept-securebackup-cookie;' -H 'Connection: keep-alive' --compressed -o oracle_jdk_1.8.rpm +zypper -q -n --non-interactive install oracle_jdk_1.8.rpm From 5ede7afcae05298cd7424111f7e66720fa6c029e Mon Sep 17 00:00:00 2001 From: arnaudblancher Date: Thu, 2 Jun 2016 11:53:17 +0200 Subject: [PATCH 170/632] typo Fixes #5432 --- docs/static/configuration.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index b74750d4b99..d7834785798 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -450,7 +450,7 @@ doesn't exist versus a field that's simply false. The expression `if [foo]` retu * `[foo]` doesn't exist in the event, * `[foo]` exists in the event, but is false, or -* `[foo]` exists in the event, but is nil +* `[foo]` exists in the event, but is null For more complex examples, see <>. From c5610505c793497fa3aeb38550dbea5510e02663 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Thu, 2 Jun 2016 17:53:37 +0200 Subject: [PATCH 171/632] Enhance QA acceptance test framework docs by adding comments and and upgraded readme in order to provide more context and knowledge around it. Fixes #5436 --- qa/README.md | 187 +++++++++++++++++- .../spec/lib/artifact_operation_spec.rb | 1 + qa/acceptance/spec/lib/cli_operation_spec.rb | 2 + .../spec/shared_examples/installed.rb | 1 + qa/acceptance/spec/shared_examples/running.rb | 1 + qa/acceptance/spec/shared_examples/updated.rb | 1 + qa/platform_config.rb | 6 +- qa/rspec/commands.rb | 5 + 8 files changed, 195 insertions(+), 9 deletions(-) diff --git a/qa/README.md b/qa/README.md index 0e6e47cec50..3d4b152d4ee 100644 --- a/qa/README.md +++ b/qa/README.md @@ -4,7 +4,25 @@ Welcome to the acceptance test framework for logstash, in this small README we're going to describe it's features and the necessary steps you will need to follow to setup your environment. -### Environment setup and Running Tests +### Setup your environment + +In summary this test framework is composed of: + +* A collection of rspec helpers and matchers that make creating tests + easy. +* This rspecs helpers execute commands over SSH to a set of machines. +* The tests are run, for now, as vagrant (virtualbox provided) machines. + +As of this, you need to have installed: + +* The latest version vagrant (=> 1.8.1) +* Virtualbox as VM provider (=> 5.0) + +Is important to notice that the first time you set everything up, or when a +new VM is added, there is the need to download the box (this will +take a while depending on your internet speed). + +### Running Tests It is possible to run the full suite of the acceptance test with the codebase by running the command `ci/ci_acceptance.sh`, this command will generate the artifacts, bootstrap @@ -18,10 +36,163 @@ details on how to install it. _Inside the `qa` directory_ -* Execute the command `bundle` this will pull the necessary dependencies in your environment. -* start your machines with `bundle exec test:setup` -* Run `rake test:ssh_config` to dump the ssh configuration to access the different vagrant machines, this will generate a file named `.vm_ssh_config` that is going to be used for the tests. -* Run `bundle exec rake test:acceptance:all` to run all acceptance test - at once, there is also detailed tasks for platforms: - * `rake test:acceptance:debian` for debian platforms. - * `rake test:acceptance:centos` for centos platforms. +First of all execute the command `bundle` this will pull the necessary +dependencies in your environment, after this is done, this is the collection of task available for you: + +``` +skywalker% rake -T +rake qa:acceptance:all # Run all acceptance +rake qa:acceptance:debian # Run acceptance test in debian machines +rake qa:acceptance:redhat # Run acceptance test in redhat machines +rake qa:acceptance:single[machine] # Run one single machine acceptance test +rake qa:acceptance:suse # Run acceptance test in suse machines +rake qa:vm:halt[platform] # Halt all VM's involved in the acceptance test round +rake qa:vm:setup[platform] # Bootstrap all the VM's used for this tests +rake qa:vm:ssh_config # Generate a valid ssh-config +``` + +Important to be aware that using any of this commands: + +``` +rake qa:acceptance:all # Run all acceptance +rake qa:acceptance:debian # Run acceptance test in debian machines +rake qa:acceptance:redhat # Run acceptance test in redhat machines +rake qa:acceptance:suse # Run acceptance test in suse machines +``` + +will bootstrap all selected machines. If you're willing to run on single +platform you should use + +``` +rake qa:acceptance:single[machine] # Run one single machine acceptance test +``` + +this will not do any bootstrap, so you are required to previously +boostrap the VM yourself by doing `vagrant up`. This is like this +because this command is only here for developers, not for automated +CI's. + + +### How to run tests + +In this framework we're using ssh to connect to a collection of Vagrant +machines, so first and most important is to generate a valid ssh config +file, this could be done running `rake qa:vm:ssh_config`. When this task +is finished a file named `.vm_ssh_config` will be generated with all the +necessary information to connect with the different machines. + +Now is time to run your test and to do that we have different options: + +* rake qa:acceptance:all # Run all acceptance +* rake qa:acceptance:debian # Run acceptance test in debian machines +* rake qa:acceptance:redhat # Run acceptance test in redhat machines +* rake qa:acceptance:suse # Run acceptance test in suse machines +* rake qa:acceptance:single[machine] # Run one single machine acceptance test + +Generally speaking this are complex tests so they take a long time to +finish completly, if you look for faster feedback see at the end of this +README how to run fewer tests. + +## Architecture of the Framework + +If you wanna know more about how this framework works, here is your +section of information. + +### Directory structure + +* ```acceptance/``` here it goes all the specs definitions. +* ```config``` inside you can find all config files, for now only the + platform definition. +* ```rspec``` here stay all framework parts necessary to get the test + running, you will find the commands, the rspec matchers and a +collection of useful helpers for your test. +* ```sys``` a collection of bash scripts used to bootstrap the machines. +* ```vagrant``` classes and modules used to help us running vagrant. + +### The platform configuration file + +Located inside the config directory there is the platforms.json which is used to define the different platforms we test with. +Important bits here are: + +* `latest` key defines the latest published version of LS release which is used to test the package upgrade scenario. +* inside the `platforms` key you will find the list of current available + OS we tests with, this include the box name, their type and if they +have to go under specific bootstrap scripts (see ```specific: true ``` +in the platform definition). + +This file is the one that you will use to know about differnt OS's +testes, add new ones, etc.. + +### I want to add a test, whad should I do? + +To add a test you basically should start by the acceptance directory, +here you will find an already created tests, most important locations +here are: + +* ```lib``` here is where the tests are living. If a test is not going + to be reused it should be created here. +* ```shared_examples``` inside that directory should be living all tests + that could be reused in different scenarios, like you can see the CLI +ones. + +but we want to write tests, here is an example of how do they look like, +including the different moving parts we encounter in the framework. + + +``` + config = ServiceTester.configuration + config.servers.each do |address| + ## + # ServiceTester::Artifact is the component used to interact with the + # destination machineri and the one that keep the necessary logic + # for it. + ## + + logstash = ServiceTester::Artifact.new(address, config.lookup[address]) + + ## your test code goes here. + end +``` + +this is important because as you know we test with different machines, +so the build out artifact will be the component necessary to run the +actions with the destination machine. + +but this is the main parts, to run your test you need the framework +located inside the ```rspec``` directory. Here you will find a +collection of commands, properly organized per operating system, that +will let you operate and get your tests done. But don't freak out, we +got all logic necessary to select the right one for your test. + +You'll probably find enough supporting classes for different platforms, but if not, feel free to add it. + +FYI, this is how a command looks like: + +``` + def installed?(hosts, package) + stdout = "" + at(hosts, {in: :serial}) do |host| + cmd = sudo_exec!("dpkg -s #{package}") + stdout = cmd.stdout + end + stdout.match(/^Package: #{package}$/) + stdout.match(/^Status: install ok installed$/) + end + ``` +this is how we run operations and wrap them as ruby code. + +### Running a test (detailed level) + +There is also the possibility to run your tests with more granularity by +using the `rspec` command, this will let you for example run a single +tests, a collection of them using filtering, etc. + +Check https://relishapp.com/rspec/rspec-core/v/3-4/docs/command-line for more details, but here is a quick cheat sheet to run them: + +# Run the examples that get "is installed" in their description + +* bundle exec rspec acceptance/spec -e "is installed" + +# Run the example desfined at line 11 + +* bundle exec rspec acceptance/spec/lib/artifact_operation_spec.rb:11 diff --git a/qa/acceptance/spec/lib/artifact_operation_spec.rb b/qa/acceptance/spec/lib/artifact_operation_spec.rb index faf72267335..fdebf23de31 100644 --- a/qa/acceptance/spec/lib/artifact_operation_spec.rb +++ b/qa/acceptance/spec/lib/artifact_operation_spec.rb @@ -4,6 +4,7 @@ require_relative '../shared_examples/running' require_relative '../shared_examples/updated' +# This tests verify that the generated artifacts could be used properly in a relase, implements https://github.com/elastic/logstash/issues/5070 describe "artifacts operation" do config = ServiceTester.configuration config.servers.each do |address| diff --git a/qa/acceptance/spec/lib/cli_operation_spec.rb b/qa/acceptance/spec/lib/cli_operation_spec.rb index 3830c58001a..2a0fbaa2176 100644 --- a/qa/acceptance/spec/lib/cli_operation_spec.rb +++ b/qa/acceptance/spec/lib/cli_operation_spec.rb @@ -6,6 +6,8 @@ require_relative "../shared_examples/cli/logstash-plugin/uninstall" require_relative "../shared_examples/cli/logstash-plugin/update" +# This is the collection of test for the CLI interface, this include the plugin manager behaviour, +# it also include the checks for other CLI options. describe "CLI operation" do config = ServiceTester.configuration config.servers.each do |address| diff --git a/qa/acceptance/spec/shared_examples/installed.rb b/qa/acceptance/spec/shared_examples/installed.rb index 045003433dd..94089232174 100644 --- a/qa/acceptance/spec/shared_examples/installed.rb +++ b/qa/acceptance/spec/shared_examples/installed.rb @@ -1,6 +1,7 @@ require_relative '../spec_helper' require 'logstash/version' +# This test checks if a package is possible to be installed without errors. RSpec.shared_examples "installable" do |logstash| before(:each) do diff --git a/qa/acceptance/spec/shared_examples/running.rb b/qa/acceptance/spec/shared_examples/running.rb index 787a43c3908..4c051dc8f29 100644 --- a/qa/acceptance/spec/shared_examples/running.rb +++ b/qa/acceptance/spec/shared_examples/running.rb @@ -1,6 +1,7 @@ require_relative '../spec_helper' require 'logstash/version' +# Test if an installed package can actually be started and runs OK. RSpec.shared_examples "runnable" do |logstash| before(:each) do diff --git a/qa/acceptance/spec/shared_examples/updated.rb b/qa/acceptance/spec/shared_examples/updated.rb index 60409a4bdc1..87d39b1acb3 100644 --- a/qa/acceptance/spec/shared_examples/updated.rb +++ b/qa/acceptance/spec/shared_examples/updated.rb @@ -1,6 +1,7 @@ require_relative '../spec_helper' require 'logstash/version' +# This test checks if the current package could used to update from the latest version released. RSpec.shared_examples "updated" do |logstash| before (:all) { logstash.snapshot } diff --git a/qa/platform_config.rb b/qa/platform_config.rb index f895074b68b..42e4b197404 100644 --- a/qa/platform_config.rb +++ b/qa/platform_config.rb @@ -2,9 +2,13 @@ require "json" require "ostruct" +# This is a wrapper to encapsulate the logic behind the different platforms we test with, +# this is done here in order to simplify the necessary configuration for bootstrap and interactions +# necessary later on in the tests phases. +# class PlatformConfig - + # Abstract the idea of a platform, aka an OS class Platform attr_reader :name, :box, :type, :bootstrap diff --git a/qa/rspec/commands.rb b/qa/rspec/commands.rb index bd8d6f195bd..c4e739198e8 100644 --- a/qa/rspec/commands.rb +++ b/qa/rspec/commands.rb @@ -12,6 +12,9 @@ module ServiceTester + # An artifact is the component being tested, it's able to interact with + # a destination machine by holding a client and is basically provides all + # necessary abstractions to make the test simple. class Artifact extend Forwardable @@ -91,6 +94,8 @@ def to_s end end + # Factory of commands used to select the right clients for a given type of OS and host name, + # this give you as much granularity as required. class CommandsFactory def self.fetch(type, host) From f29ff3186f4f4e96410ba1568e094296ac8cabfd Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 7 Jun 2016 16:30:39 +0100 Subject: [PATCH 172/632] ensure plugins are correctly compiled outside of same plugin section Fixes #5459 --- .../lib/logstash/config/config_ast.rb | 14 ++++-- .../spec/logstash/config/config_ast_spec.rb | 43 +++++++++++++++++++ 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/logstash-core/lib/logstash/config/config_ast.rb b/logstash-core/lib/logstash/config/config_ast.rb index b235dded4ed..6963fc7d31e 100644 --- a/logstash-core/lib/logstash/config/config_ast.rb +++ b/logstash-core/lib/logstash/config/config_ast.rb @@ -76,6 +76,14 @@ def self.defered_conditionals_index=(val) @defered_conditionals_index = val end + def self.plugin_instance_index + @plugin_instance_index + end + + def self.plugin_instance_index=(val) + @plugin_instance_index = val + end + class Node < Treetop::Runtime::SyntaxNode def text_value_for_comments text_value.gsub(/[\r\n]/, " ") @@ -86,6 +94,7 @@ class Config < Node def compile LogStash::Config::AST.defered_conditionals = [] LogStash::Config::AST.defered_conditionals_index = 0 + LogStash::Config::AST.plugin_instance_index = 0 code = [] code << <<-CODE @@ -140,7 +149,6 @@ class PluginSection < Node # like @filter__1 def initialize(*args) super(*args) - @i = 0 end # Generate ruby code to initialize all the plugins. @@ -196,9 +204,9 @@ def generate_variables plugins.each do |plugin| # Unique number for every plugin. - @i += 1 + LogStash::Config::AST.plugin_instance_index += 1 # store things as ivars, like @filter_grok_3 - var = :"#{plugin.plugin_type}_#{plugin.plugin_name}_#{@i}" + var = :"#{plugin.plugin_type}_#{plugin.plugin_name}_#{LogStash::Config::AST.plugin_instance_index}" # puts("var=#{var.inspect}") @variables[plugin] = var end diff --git a/logstash-core/spec/logstash/config/config_ast_spec.rb b/logstash-core/spec/logstash/config/config_ast_spec.rb index fcf989fcd0c..657b00523c4 100644 --- a/logstash-core/spec/logstash/config/config_ast_spec.rb +++ b/logstash-core/spec/logstash/config/config_ast_spec.rb @@ -144,6 +144,49 @@ end end + context "when using two plugin sections of the same type" do + let(:pipeline_klass) do + Class.new do + def initialize(config) + grammar = LogStashConfigParser.new + @config = grammar.parse(config) + @code = @config.compile + eval(@code) + end + def plugin(*args);end + end + end + context "(filters)" do + let(:config_string) { + "input { generator { } } + filter { filter1 { } } + filter { filter1 { } } + output { output1 { } }" + } + + + it "should create a pipeline with both sections" do + generated_objects = pipeline_klass.new(config_string).instance_variable_get("@generated_objects") + filters = generated_objects.keys.map(&:to_s).select {|obj_name| obj_name.match(/^filter.+?_\d+$/) } + expect(filters.size).to eq(2) + end + end + + context "(filters)" do + let(:config_string) { + "input { generator { } } + output { output1 { } } + output { output1 { } }" + } + + + it "should create a pipeline with both sections" do + generated_objects = pipeline_klass.new(config_string).instance_variable_get("@generated_objects") + outputs = generated_objects.keys.map(&:to_s).select {|obj_name| obj_name.match(/^output.+?_\d+$/) } + expect(outputs.size).to eq(2) + end + end + end context "when creating two instances of the same configuration" do let(:config_string) { From e254d9f67d44ba2caf176ca6c6a26239a44c24f4 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 7 Jun 2016 13:56:40 +0200 Subject: [PATCH 173/632] rework the acceptance update scenario to avoid using snapshort restore, this might be a temporary solution for ssh issues in vagrant and ubuntu hosts Fixes #5456 --- qa/acceptance/spec/shared_examples/updated.rb | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/qa/acceptance/spec/shared_examples/updated.rb b/qa/acceptance/spec/shared_examples/updated.rb index 87d39b1acb3..689a9d190b2 100644 --- a/qa/acceptance/spec/shared_examples/updated.rb +++ b/qa/acceptance/spec/shared_examples/updated.rb @@ -4,19 +4,22 @@ # This test checks if the current package could used to update from the latest version released. RSpec.shared_examples "updated" do |logstash| - before (:all) { logstash.snapshot } - after (:all) { logstash.restore } + before(:all) { logstash.uninstall } + after(:all) do + logstash.stop_service # make sure the service is stopped + logstash.uninstall #remove the package to keep uniform state + end - it "can update on #{logstash.hostname}" do - logstash.install(LOGSTASH_LATEST_VERSION, "./") - expect(logstash).to be_installed - logstash.install(LOGSTASH_VERSION) - expect(logstash).to be_installed + before(:each) do + logstash.install(LOGSTASH_LATEST_VERSION, "./") # make sure latest version is installed end - it "can run on #{logstash.hostname}" do + it "can be updated an run on #{logstash.hostname}" do + # Performing the update + logstash.install(LOGSTASH_VERSION) + expect(logstash).to be_installed + # starts the service to be sure it runs after the upgrade logstash.start_service expect(logstash).to be_running - logstash.stop_service end end From 35cffb5b39399782c72b20f64e56e2deb0c74919 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 2 Jun 2016 18:26:27 -0500 Subject: [PATCH 174/632] Add URI config validator/type Often times plugins (like the Elasticsearch output) can naturally use URIs for their configuration. Unfortunately using the :string type here means that the password portion of the URI can easily be leaked. This wraps the URI class in a new LogStash::Util::SafeURI class that proxies all regular URI methods but masks the password when `#to_s` and `#inspect` are invoked. Fixes #5439 --- docs/static/configuration.asciidoc | 15 ++++ logstash-core/lib/logstash/config/mixin.rb | 11 +++ logstash-core/lib/logstash/util/safe_uri.rb | 44 ++++++++++++ .../spec/logstash/config/mixin_spec.rb | 70 +++++++++++++++++++ 4 files changed, 140 insertions(+) create mode 100644 logstash-core/lib/logstash/util/safe_uri.rb diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index d7834785798..90e51154b42 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -203,6 +203,21 @@ Example: my_password => "password" ---------------------------------- +[[uri]] +[float] +==== URI + +A URI can be anything from a full URL like 'http://elastic.co/' to a simple identifier +like 'foobar'. If the URI contains a password such as 'http://user:pass@example.net' the password +portion of the URI will not be logged or printed. + +Example: +[source,js] +---------------------------------- + my_uri => "http://foo:bar@example.net" +---------------------------------- + + [[path]] [float] ==== Path diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index d5a1637f354..6929b6eedc9 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -4,6 +4,7 @@ require "logstash/plugins/registry" require "logstash/logging" require "logstash/util/password" +require "logstash/util/safe_uri" require "logstash/version" require "logstash/environment" require "logstash/util/plugin_version" @@ -513,6 +514,12 @@ def validate_value(value, validator) end result = value.first.is_a?(::LogStash::Util::Password) ? value.first : ::LogStash::Util::Password.new(value.first) + when :uri + if value.size > 1 + return false, "Expected uri (one value), got #{value.size} values?" + end + + result = value.first.is_a?(::LogStash::Util::SafeURI) ? value.first : ::LogStash::Util::SafeURI.new(value.first) when :path if value.size > 1 # Only 1 value wanted return false, "Expected path (one value), got #{value.size} values?" @@ -551,6 +558,10 @@ def secure_params!(params) if @config[key][:validate] == :password && !value.is_a?(::LogStash::Util::Password) params[key] = ::LogStash::Util::Password.new(value) end + + if @config[key][:validate] == :uri && !value.is_a?(::LogStash::Util::SafeURI) + params[key] = ::LogStash::Util::SafeURI.new(value) + end end end diff --git a/logstash-core/lib/logstash/util/safe_uri.rb b/logstash-core/lib/logstash/util/safe_uri.rb new file mode 100644 index 00000000000..9d24386e63b --- /dev/null +++ b/logstash-core/lib/logstash/util/safe_uri.rb @@ -0,0 +1,44 @@ +# encoding: utf-8 +require "logstash/namespace" +require "logstash/util" + +# This class exists to quietly wrap a password string so that, when printed or +# logged, you don't accidentally print the password itself. +class LogStash::Util::SafeURI + PASS_PLACEHOLDER = "xxxxxx".freeze + + extend Forwardable + + def_delegators :@uri, :coerce, :query=, :route_from, :port=, :default_port, :select, :normalize!, :absolute?, :registry=, :path, :password, :hostname, :merge, :normalize, :host, :component_ary, :userinfo=, :query, :set_opaque, :+, :merge!, :-, :password=, :parser, :port, :set_host, :set_path, :opaque=, :scheme, :fragment=, :set_query, :set_fragment, :userinfo, :hostname=, :set_port, :path=, :registry, :opaque, :route_to, :set_password, :hierarchical?, :set_user, :set_registry, :set_userinfo, :fragment, :component, :user=, :set_scheme, :absolute, :host=, :relative?, :scheme=, :user + + attr_reader :uri + + public + def initialize(arg) + @uri = case arg + when String + URI.parse(arg) + when URI + arg + else + raise ArgumentError, "Expected a string or URI, got a #{arg.class} creating a URL" + end + end + + def to_s + sanitized.to_s + end + + def inspect + sanitized.to_s + end + + def sanitized + return uri unless uri.password # nothing to sanitize here! + + safe = uri.clone + safe.password = PASS_PLACEHOLDER + safe + end +end + diff --git a/logstash-core/spec/logstash/config/mixin_spec.rb b/logstash-core/spec/logstash/config/mixin_spec.rb index ca20d3649eb..5c18b6e88d1 100644 --- a/logstash-core/spec/logstash/config/mixin_spec.rb +++ b/logstash-core/spec/logstash/config/mixin_spec.rb @@ -102,6 +102,76 @@ end end + context "when validating :uri" do + let(:klass) do + Class.new(LogStash::Filters::Base) do + config_name "fakeuri" + config :uri, :validate => :uri + end + end + + shared_examples("safe URI") do + subject { klass.new("uri" => uri_str) } + + it "should be a SafeURI object" do + expect(subject.uri).to(be_a(LogStash::Util::SafeURI)) + end + + it "should make password values hidden with #to_s" do + expect(subject.uri.to_s).to eql(uri_hidden) + end + + it "should make password values hidden with #inspect" do + expect(subject.uri.inspect).to eql(uri_hidden) + end + + it "should correctly copy URI types" do + clone = subject.class.new(subject.params) + expect(clone.uri.to_s).to eql(uri_hidden) + end + + it "should make the real URI object availale under #uri" do + expect(subject.uri.uri).to be_a(::URI) + end + + it "should obfuscate original_params" do + expect(subject.original_params['uri']).to(be_a(LogStash::Util::SafeURI)) + end + + context "attributes" do + [:scheme, :user, :password, :hostname, :path].each do |attr| + it "should make #{attr} available" do + expect(subject.uri.send(attr)).to eql(self.send(attr)) + end + end + end + end + + context "with a username / password" do + let(:scheme) { "myscheme" } + let(:user) { "myuser" } + let(:password) { "fancypants" } + let(:hostname) { "myhostname" } + let(:path) { "/my/path" } + let(:uri_str) { "#{scheme}://#{user}:#{password}@#{hostname}#{path}" } + let(:uri_hidden) { "#{scheme}://#{user}:#{LogStash::Util::SafeURI::PASS_PLACEHOLDER}@#{hostname}#{path}" } + + include_examples("safe URI") + end + + context "without a username / password" do + let(:scheme) { "myscheme" } + let(:user) { nil } + let(:password) { nil } + let(:hostname) { "myhostname" } + let(:path) { "/my/path" } + let(:uri_str) { "#{scheme}://#{hostname}#{path}" } + let(:uri_hidden) { "#{scheme}://#{hostname}#{path}" } + + include_examples("safe URI") + end + end + describe "obsolete settings" do let(:plugin_class) do Class.new(LogStash::Inputs::Base) do From b70a64dae0d41b291c05f323cb78550bc2116548 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 9 Jun 2016 11:06:40 -0400 Subject: [PATCH 175/632] Remove the `/bin/env` command before using sed and rely on $PATH related to a discussion in #5468 Fixes #5471 --- qa/rspec/commands/base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/rspec/commands/base.rb b/qa/rspec/commands/base.rb index cd2acc2bfc9..61112f12536 100644 --- a/qa/rspec/commands/base.rb +++ b/qa/rspec/commands/base.rb @@ -36,7 +36,7 @@ def run_command(cmd, host) def replace_in_gemfile(pattern, replace, host) gemfile = File.join(LOGSTASH_PATH, "Gemfile") - cmd = "/bin/env sed -i.sedbak 's/#{pattern}/#{replace}/' #{gemfile}" + cmd = "sed -i.sedbak 's/#{pattern}/#{replace}/' #{gemfile}" run_command(cmd, host) end From 81cdf32ae5fa67d9395b6c6ef5edf99ee1aeded3 Mon Sep 17 00:00:00 2001 From: Jelmer de Reus Date: Fri, 10 Jun 2016 13:48:42 +0200 Subject: [PATCH 176/632] fix CONTRIBUTING.md link in README.md (#5477) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e8aeedf903d..d839c1c5d0a 100644 --- a/README.md +++ b/README.md @@ -171,4 +171,4 @@ see that here. It is more important to me that you are able to contribute. For more information about contributing, see the -[CONTRIBUTING](.github/CONTRIBUTING.md) file. +[CONTRIBUTING](./CONTRIBUTING.md) file. From 0b50e2e6249ef30bef2aff8db84aa383b30e287c Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 2 Jun 2016 09:28:45 -0400 Subject: [PATCH 177/632] Do not declare the collector as a singleton Fixes #5446 --- logstash-core/lib/logstash/instrument/collector.rb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/logstash-core/lib/logstash/instrument/collector.rb b/logstash-core/lib/logstash/instrument/collector.rb index 302fe4c3ac7..2059ea22268 100644 --- a/logstash-core/lib/logstash/instrument/collector.rb +++ b/logstash-core/lib/logstash/instrument/collector.rb @@ -17,7 +17,6 @@ module LogStash module Instrument class Collector include LogStash::Util::Loggable include Observable - include Singleton SNAPSHOT_ROTATION_TIME_SECS = 1 # seconds SNAPSHOT_ROTATION_TIMEOUT_INTERVAL_SECS = 10 * 60 # seconds @@ -59,10 +58,6 @@ def push(namespaces_path, key, type, *metric_type_params) end end - def clear - @metric_store = MetricStore.new - end - # Monitor the `Concurrent::TimerTask` this update is triggered on every successful or not # run of the task, TimerTask implement Observable and the collector acts as # the observer and will keep track if something went wrong in the execution. From d02d4e4429d8a4655cb52c6fb68b7a2de910c6a1 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 2 Jun 2016 10:42:06 -0400 Subject: [PATCH 178/632] Refactor the metric library interaction The metric library now require an instance of the collector and will not use the singleton Fixes #5446 --- logstash-core/lib/logstash/instrument/metric.rb | 2 +- logstash-core/spec/logstash/instrument/collector_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/instrument/metric.rb b/logstash-core/lib/logstash/instrument/metric.rb index 601c7b0ed4b..e6e12262a20 100644 --- a/logstash-core/lib/logstash/instrument/metric.rb +++ b/logstash-core/lib/logstash/instrument/metric.rb @@ -13,7 +13,7 @@ class MetricNoNamespaceProvided < MetricException; end class Metric attr_reader :collector - def initialize(collector = LogStash::Instrument::Collector.instance) + def initialize(collector) @collector = collector end diff --git a/logstash-core/spec/logstash/instrument/collector_spec.rb b/logstash-core/spec/logstash/instrument/collector_spec.rb index b96be4a5ede..2a9979d0caa 100644 --- a/logstash-core/spec/logstash/instrument/collector_spec.rb +++ b/logstash-core/spec/logstash/instrument/collector_spec.rb @@ -3,7 +3,7 @@ require "spec_helper" describe LogStash::Instrument::Collector do - subject { LogStash::Instrument::Collector.instance } + subject { LogStash::Instrument::Collector.new } describe "#push" do let(:namespaces_path) { [:root, :pipelines, :pipelines01] } let(:key) { :my_key } From 21a47b8db9ca7059586cfaf59609e5255c87b4b0 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 2 Jun 2016 10:43:06 -0400 Subject: [PATCH 179/632] Fix an issue when data was not present in the collector When you ran this test in isolation it failed to find the corresponding metric, Changed the behavior to force a collect before running the tests. Fixes #5446 --- .../spec/logstash/instrument/periodic_poller/jvm_spec.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb index 649e711d119..7506d3516aa 100644 --- a/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb +++ b/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb @@ -1,8 +1,10 @@ -require 'spec_helper' -require 'logstash/instrument/periodic_poller/jvm' +# encoding: utf-8 +require "spec_helper" +require "logstash/instrument/periodic_poller/jvm" +require "logstash/instrument/collector" describe LogStash::Instrument::PeriodicPoller::JVM do - let(:metric) { LogStash::Instrument::Metric.new } + let(:metric) { LogStash::Instrument::Metric.new(LogStash::Instrument::Collector.new) } let(:options) { {} } subject(:jvm) { described_class.new(metric, options) } @@ -18,6 +20,7 @@ end describe "metrics" do + before(:each) { jvm.collect } let(:snapshot_store) { metric.collector.snapshot_metric.metric_store } subject(:jvm_metrics) { snapshot_store.get_shallow(:jvm, :process) } From d81ad6172ff9d58dda9abbd5e7f250f50264f95b Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 2 Jun 2016 15:16:00 -0400 Subject: [PATCH 180/632] Fix a thread safety issue with the agent. Make sure we pass the metric when we create a pipeline this make sure the metric is correctly visible in the pipeline and remove the need to lock the variables. Make the expectation more robust in the metric reload scenario. Fixes #5400 for the greater good. Fixes #5446 --- logstash-core/lib/logstash/agent.rb | 53 +++++++++++-------- .../lib/logstash/instrument/collector.rb | 6 ++- logstash-core/lib/logstash/pipeline.rb | 8 +-- logstash-core/spec/logstash/agent_spec.rb | 40 ++++++++++---- logstash-core/spec/logstash/pipeline_spec.rb | 14 ++--- logstash-core/spec/support/mocks_classes.rb | 3 +- 6 files changed, 79 insertions(+), 45 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 8bb3649e9ca..85522323087 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -45,8 +45,10 @@ def initialize(settings = LogStash::SETTINGS) @upgrade_mutex = Mutex.new @collect_metric = setting("metric.collect") - @metric = create_metric_collector - @periodic_pollers = LogStash::Instrument::PeriodicPollers.new(create_metric_collector) + + + # Create the collectors and configured it with the library + configure_metrics_collectors end def execute @@ -156,14 +158,25 @@ def stop_background_services end end - def create_metric_collector - if collect_metrics? - @logger.debug("Agent: Configuring metric collection") - LogStash::Instrument::Collector.instance.agent = self - LogStash::Instrument::Metric.new - else - LogStash::Instrument::NullMetric.new - end + def configure_metrics_collectors + @collector = LogStash::Instrument::Collector.new + + @metric = if collect_metrics? + @logger.debug("Agent: Configuring metric collection") + LogStash::Instrument::Metric.new(@collector) + else + LogStash::Instrument::NullMetric.new + end + + + @periodic_pollers = LogStash::Instrument::PeriodicPollers.new(@metric) + end + + def reset_metrics_collectors + @periodic_pollers.stop + @collector.stop + configure_metrics_collectors + @periodic_pollers.start end def collect_metrics? @@ -171,7 +184,6 @@ def collect_metrics? end def create_pipeline(settings, config=nil) - if config.nil? begin config = fetch_config(settings) @@ -182,7 +194,7 @@ def create_pipeline(settings, config=nil) end begin - LogStash::Pipeline.new(config, settings) + LogStash::Pipeline.new(config, settings, metric) rescue => e @logger.error("fetched an invalid config", :config => config, :reason => e.message) return @@ -204,6 +216,11 @@ def reload_pipeline!(id) return end + # Reset the current collected stats, + # starting a pipeline with a new configuration should be the same as restarting + # logstash. + reset_metrics_collectors + new_pipeline = create_pipeline(old_pipeline.settings, new_config) return if new_pipeline.nil? @@ -225,12 +242,6 @@ def start_pipeline(id) return unless pipeline.is_a?(LogStash::Pipeline) return if pipeline.ready? @logger.info("starting pipeline", :id => id) - - # Reset the current collected stats, - # starting a pipeline with a new configuration should be the same as restarting - # logstash. - reset_collector - Thread.new do LogStash::Util.set_thread_name("pipeline.#{id}") begin @@ -266,6 +277,8 @@ def running_pipeline?(pipeline_id) def upgrade_pipeline(pipeline_id, new_pipeline) stop_pipeline(pipeline_id) @pipelines[pipeline_id] = new_pipeline + + new_pipeline = metric start_pipeline(pipeline_id) end @@ -273,10 +286,6 @@ def clean_state? @pipelines.empty? end - def reset_collector - LogStash::Instrument::Collector.instance.clear - end - def setting(key) @settings.get(key) end diff --git a/logstash-core/lib/logstash/instrument/collector.rb b/logstash-core/lib/logstash/instrument/collector.rb index 2059ea22268..ff4c658bcff 100644 --- a/logstash-core/lib/logstash/instrument/collector.rb +++ b/logstash-core/lib/logstash/instrument/collector.rb @@ -8,7 +8,7 @@ require "thread" module LogStash module Instrument - # The Collector singleton is the single point of reference for all + # The Collector is the single point of reference for all # the metrics collection inside logstash, the metrics library will make # direct calls to this class. # @@ -91,6 +91,10 @@ def start_periodic_snapshotting @snapshot_task.execute end + def stop + @snapshot_task.shutdown + end + # Create a snapshot of the MetricStore and send it to to the registered observers # The observer will receive the following signature in the update methode. # diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index a8c1421473f..46c3e43184f 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -32,8 +32,8 @@ module LogStash; class Pipeline :started_at, :thread, :config_str, - :settings - attr_accessor :metric + :settings, + :metric MAX_INFLIGHT_WARN_THRESHOLD = 10_000 @@ -41,7 +41,7 @@ module LogStash; class Pipeline "LogStash::Inputs::Stdin" ] - def initialize(config_str, settings = LogStash::SETTINGS) + def initialize(config_str, settings = LogStash::SETTINGS, provided_metric = nil) @config_str = config_str @logger = Cabin::Channel.get(LogStash) @settings = settings @@ -56,7 +56,7 @@ def initialize(config_str, settings = LogStash::SETTINGS) # This needs to be configured before we evaluate the code to make # sure the metric instance is correctly send to the plugins to make the namespace scoping work - @metric = settings.get_value("metric.collect") ? Instrument::Metric.new : Instrument::NullMetric.new + @metric = provided_metric.nil? ? LogStash::Instrument::NullMetric.new : provided_metric grammar = LogStashConfigParser.new @config = grammar.parse(config_str) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 5a40ee9c0ec..3bc59233b7b 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -328,11 +328,11 @@ end end + context "metrics after config reloading" do - let(:dummy_output) { DummyOutput.new } let(:config) { "input { generator { } } output { dummyoutput { } }" } - let(:new_config_generator_counter) { 50 } - let(:new_config) { "input { generator { count => #{new_config_generator_counter} } } output { dummyoutput {} }" } + let(:new_config_generator_counter) { 500 } + let(:new_config) { "input { generator { count => #{new_config_generator_counter} } } output { dummyoutput2 {} }" } let(:config_path) do f = Stud::Temporary.file f.write(config) @@ -353,11 +353,24 @@ "metric.collect" => true }) end + # We need to create theses dummy classes to know how many + # events where actually generated by the pipeline and successfully send to the output. + # Theses values are compared with what we store in the metric store. + let!(:dummy_output) { DummyOutput.new } + let!(:dummy_output2) { DummyOutput.new } + class DummyOutput2 < LogStash::Outputs::Base; end + before :each do allow(DummyOutput).to receive(:new).at_least(:once).with(anything).and_return(dummy_output) + allow(DummyOutput2).to receive(:new).at_least(:once).with(anything).and_return(dummy_output2) + allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(LogStash::Codecs::Plain) allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput2").and_return(DummyOutput2) + + @abort_on_exception = Thread.abort_on_exception + Thread.abort_on_exception = true @t = Thread.new do subject.register_pipeline("main", pipeline_settings) @@ -371,25 +384,32 @@ subject.shutdown Stud.stop!(@t) @t.join + Thread.abort_on_exception = @abort_on_exception end it "resets the metric collector" do # We know that the store has more events coming in. - sleep(0.01) while dummy_output.events.size < new_config_generator_counter - snapshot = LogStash::Instrument::Collector.instance.snapshot_metric + while dummy_output.events.size <= new_config_generator_counter + sleep(0.1) + end + + snapshot = subject.metric.collector.snapshot_metric expect(snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value).to be > new_config_generator_counter # update the configuration and give some time to logstash to pick it up and do the work - IO.write(config_path, new_config) + # Also force a flush to disk to make sure ruby reload it. + File.open(config_path, "w") do |f| + f.write(new_config) + f.fsync + end sleep(interval * 3) # Give time to reload the config - # Since there is multiple threads involved with the configuration reload, - # It can take some time to the stats be visible in the store but it will # be eventually consistent. - sleep(0.01) while dummy_output.events.size < new_config_generator_counter + sleep(0.01) while dummy_output2.events.size < new_config_generator_counter - value = LogStash::Instrument::Collector.instance.snapshot_metric.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value expect(value).to eq(new_config_generator_counter) end end diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 0fb6be8368d..506e121675f 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -554,10 +554,12 @@ class TestPipeline < LogStash::Pipeline end context "when collecting metrics in the pipeline" do + let(:metric) { LogStash::Instrument::Metric.new(LogStash::Instrument::Collector.new) } + + subject { described_class.new(config, pipeline_settings_obj, metric) } + let(:pipeline_settings) { { "pipeline.id" => pipeline_id } } - subject { described_class.new(config, pipeline_settings_obj) } let(:pipeline_id) { "main" } - let(:metric) { LogStash::Instrument::Metric.new } let(:number_of_events) { 1000 } let(:multiline_id) { "my-multiline" } let(:multiline_id_other) { "my-multiline_other" } @@ -591,6 +593,7 @@ class TestPipeline < LogStash::Pipeline EOS end let(:dummyoutput) { DummyOutput.new({ "id" => dummy_output_id }) } + let(:metric_store) { subject.metric.collector.snapshot_metric.metric_store } before :each do allow(DummyOutput).to receive(:new).with(any_args).and_return(dummyoutput) @@ -599,9 +602,6 @@ class TestPipeline < LogStash::Pipeline allow(LogStash::Plugin).to receive(:lookup).with("filter", "multiline").and_return(LogStash::Filters::Multiline) allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) - # Reset the metric store - LogStash::Instrument::Collector.instance.clear - Thread.new { subject.run } # make sure we have received all the generated events sleep 1 while dummyoutput.events.size < number_of_events @@ -612,7 +612,7 @@ class TestPipeline < LogStash::Pipeline end context "global metric" do - let(:collected_metric) { LogStash::Instrument::Collector.instance.snapshot_metric.metric_store.get_with_path("stats/events") } + let(:collected_metric) { metric_store.get_with_path("stats/events") } it "populates the differents" do expect(collected_metric[:stats][:events][:in].value).to eq(number_of_events) @@ -622,7 +622,7 @@ class TestPipeline < LogStash::Pipeline end context "pipelines" do - let(:collected_metric) { LogStash::Instrument::Collector.instance.snapshot_metric.metric_store.get_with_path("stats/pipelines/") } + let(:collected_metric) { metric_store.get_with_path("stats/pipelines/") } it "populates the pipelines core metrics" do expect(collected_metric[:stats][:pipelines][:main][:events][:in].value).to eq(number_of_events) diff --git a/logstash-core/spec/support/mocks_classes.rb b/logstash-core/spec/support/mocks_classes.rb index c481e8be21e..3d4ed28f42e 100644 --- a/logstash-core/spec/support/mocks_classes.rb +++ b/logstash-core/spec/support/mocks_classes.rb @@ -1,5 +1,6 @@ # encoding: utf-8 require "logstash/outputs/base" +require "thread" class DummyOutput < LogStash::Outputs::Base config_name "dummyoutput" @@ -10,7 +11,7 @@ class DummyOutput < LogStash::Outputs::Base def initialize(params={}) super @num_closes = 0 - @events = [] + @events = Queue.new end def register From 587debd3e64c534e4c264aa0a65deb115ed15bbe Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 2 Jun 2016 15:50:31 -0400 Subject: [PATCH 181/632] typos Fixes #5446 --- logstash-core/lib/logstash/runner.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index f0a630a324a..c24a692feb9 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -18,10 +18,10 @@ require "logstash/settings" class LogStash::Runner < Clamp::StrictCommand - # The `path.settings` need to be defined in the runner instead of the `logstash-core/lib/logstash/environment.r` + # The `path.settings` need to be defined in the runner instead of the `logstash-core/lib/logstash/environment.rb` # because the `Environment::LOGSTASH_HOME` doesn't exist in the context of the `logstash-core` gem. # - # See issues https://github.com/elastic/logstash/issues/5361 + # See issue https://github.com/elastic/logstash/issues/5361 LogStash::SETTINGS.register(LogStash::Setting::String.new("path.settings", ::File.join(LogStash::Environment::LOGSTASH_HOME, "config"))) # Node Settings From 47239b30c713611eabf23c341bf5ec81dc53a753 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 3 Jun 2016 09:27:55 -0400 Subject: [PATCH 182/632] Fix the ApiTest and the Metric inputs tests Fixes #5446 --- logstash-core/lib/logstash/agent.rb | 29 +++------- .../lib/logstash/api/modules/base.rb | 4 +- .../lib/logstash/api/modules/node.rb | 1 - logstash-core/lib/logstash/api/rack_app.rb | 15 +++-- logstash-core/lib/logstash/api/service.rb | 41 +++----------- logstash-core/lib/logstash/inputs/metrics.rb | 4 +- logstash-core/lib/logstash/webserver.rb | 15 ++--- logstash-core/spec/api/lib/api/node_spec.rb | 7 +-- .../spec/api/lib/api/node_stats_spec.rb | 7 +-- .../spec/api/lib/api/plugins_spec.rb | 8 +-- logstash-core/spec/api/lib/api/root_spec.rb | 9 +-- logstash-core/spec/api/spec_helper.rb | 55 ++++++++----------- .../spec/logstash/inputs/metrics_spec.rb | 21 ++++--- 13 files changed, 75 insertions(+), 141 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 85522323087..4db2fada748 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -55,7 +55,6 @@ def execute @thread = Thread.current # this var is implicilty used by Stud.stop? @logger.info("starting agent") - start_background_services start_pipelines start_webserver @@ -114,8 +113,13 @@ def uptime ((Time.now.to_f - STARTED_AT.to_f) * 1000.0).to_i end + def stop_collecting_metric + @collector.stop + @periodic_pollers.stop + end + def shutdown - stop_background_services + stop_collecting_metric stop_webserver shutdown_pipelines end @@ -133,7 +137,7 @@ def running_pipelines? private def start_webserver options = {:http_host => @http_host, :http_port => @http_port, :http_environment => @http_environment } - @webserver = LogStash::WebServer.new(@logger, options) + @webserver = LogStash::WebServer.new(@logger, self, options) Thread.new(@webserver) do |webserver| LogStash::Util.set_thread_name("Api Webserver") webserver.run @@ -144,20 +148,6 @@ def stop_webserver @webserver.stop if @webserver end - def start_background_services - if collect_metrics? - @logger.debug("Agent: Starting metric periodic pollers") - @periodic_pollers.start - end - end - - def stop_background_services - if collect_metrics? - @logger.debug("Agent: Stopping metric periodic pollers") - @periodic_pollers.stop - end - end - def configure_metrics_collectors @collector = LogStash::Instrument::Collector.new @@ -170,13 +160,12 @@ def configure_metrics_collectors @periodic_pollers = LogStash::Instrument::PeriodicPollers.new(@metric) + @periodic_pollers.start end def reset_metrics_collectors - @periodic_pollers.stop - @collector.stop + stop_collecting_metric configure_metrics_collectors - @periodic_pollers.start end def collect_metrics? diff --git a/logstash-core/lib/logstash/api/modules/base.rb b/logstash-core/lib/logstash/api/modules/base.rb index 7a750d02f32..e7a4fd9ddea 100644 --- a/logstash-core/lib/logstash/api/modules/base.rb +++ b/logstash-core/lib/logstash/api/modules/base.rb @@ -21,9 +21,9 @@ class Base < ::Sinatra::Base helpers AppHelpers - def initialize(app=nil) + def initialize(app=nil, agent) super(app) - @factory = ::LogStash::Api::CommandFactory.new(LogStash::Api::Service.instance) + @factory = ::LogStash::Api::CommandFactory.new(LogStash::Api::Service.new(agent)) end not_found do diff --git a/logstash-core/lib/logstash/api/modules/node.rb b/logstash-core/lib/logstash/api/modules/node.rb index 38ae44f7b7c..b5139a027ea 100644 --- a/logstash-core/lib/logstash/api/modules/node.rb +++ b/logstash-core/lib/logstash/api/modules/node.rb @@ -19,7 +19,6 @@ class Node < ::LogStash::Api::Modules::Base as = options[:human] ? :string : :json respond_with(stats.hot_threads(options), {:as => as}) end - end end end diff --git a/logstash-core/lib/logstash/api/rack_app.rb b/logstash-core/lib/logstash/api/rack_app.rb index 861e26d0697..a7d326bb154 100644 --- a/logstash-core/lib/logstash/api/rack_app.rb +++ b/logstash-core/lib/logstash/api/rack_app.rb @@ -73,8 +73,9 @@ def call(env) end end - def self.app(logger, environment) - namespaces = rack_namespaces + def self.app(logger, agent, environment) + namespaces = rack_namespaces(agent) + Rack::Builder.new do # Custom logger object. Rack CommonLogger does not work with cabin use ApiLogger, logger @@ -87,21 +88,23 @@ def self.app(logger, environment) use ApiErrorHandler, logger end - run LogStash::Api::Modules::Root + run LogStash::Api::Modules::Root.new(nil, agent) namespaces.each_pair do |namespace, app| map(namespace) do - run app + # Pass down a reference to the current agent + # This allow the API to have direct access to the collector + run app.new(nil, agent) end end end end - def self.rack_namespaces + def self.rack_namespaces(agent) { "/_node" => LogStash::Api::Modules::Node, "/_stats" => LogStash::Api::Modules::Stats, "/_node/stats" => LogStash::Api::Modules::NodeStats, - "/_plugins" => LogStash::Api::Modules::Plugins + "/_plugins" => LogStash::Api::Modules::Plugins, } end end diff --git a/logstash-core/lib/logstash/api/service.rb b/logstash-core/lib/logstash/api/service.rb index 3eaeb2535ef..183451c8eab 100644 --- a/logstash-core/lib/logstash/api/service.rb +++ b/logstash-core/lib/logstash/api/service.rb @@ -5,40 +5,21 @@ module LogStash module Api class Service - - include Singleton include LogStash::Util::Loggable - def initialize - @snapshot_rotation_mutex = Mutex.new - @snapshot = nil - logger.debug("[api-service] start") if logger.debug? - LogStash::Instrument::Collector.instance.add_observer(self) - end + attr_reader :agent - def stop - logger.debug("[api-service] stop") if logger.debug? - LogStash::Instrument::Collector.instance.delete_observer(self) - end - - def agent - LogStash::Instrument::Collector.instance.agent + def initialize(agent) + @agent = agent + logger.debug("[api-service] start") if logger.debug? end def started? - !@snapshot.nil? && has_counters? - end - - def update(snapshot) - logger.debug("[api-service] snapshot received", :snapshot_time => snapshot.created_at) if logger.debug? - - @snapshot_rotation_mutex.synchronize do - @snapshot = snapshot - end + true end def snapshot - @snapshot_rotation_mutex.synchronize { @snapshot } + agent.metric.collector.snapshot_metric end def get_shallow(*path) @@ -58,15 +39,7 @@ def get(key) private def has_counters? - (["LogStash::Instrument::MetricType::Counter", "LogStash::Instrument::MetricType::Gauge"] - metric_types).empty? - end - - def metric_types - types = [] - @snapshot_rotation_mutex.synchronize do - types = @snapshot.metric_store.all.map { |t| t.class.to_s } - end - return types + true end end end diff --git a/logstash-core/lib/logstash/inputs/metrics.rb b/logstash-core/lib/logstash/inputs/metrics.rb index 8a8ce92dcf0..d85bcc4e53c 100644 --- a/logstash-core/lib/logstash/inputs/metrics.rb +++ b/logstash-core/lib/logstash/inputs/metrics.rb @@ -21,7 +21,7 @@ def run(queue) @queue = queue # we register to the collector after receiving the pipeline queue - LogStash::Instrument::Collector.instance.add_observer(self) + metric.collector.add_observer(self) # Keep this plugin thread alive, # until we shutdown the metric pipeline @@ -30,7 +30,7 @@ def run(queue) def stop @logger.debug("Metrics input: stopped") - LogStash::Instrument::Collector.instance.delete_observer(self) + metric.collector.delete_observer(self) end def update(snapshot) diff --git a/logstash-core/lib/logstash/webserver.rb b/logstash-core/lib/logstash/webserver.rb index 6cf8366e3ba..1498f380493 100644 --- a/logstash-core/lib/logstash/webserver.rb +++ b/logstash-core/lib/logstash/webserver.rb @@ -7,7 +7,7 @@ module LogStash class WebServer extend Forwardable - attr_reader :logger, :status, :config, :options, :cli_options, :runner, :binder, :events, :http_host, :http_port, :http_environment + attr_reader :logger, :status, :config, :options, :cli_options, :runner, :binder, :events, :http_host, :http_port, :http_environment, :agent def_delegator :@runner, :stats @@ -15,12 +15,13 @@ class WebServer DEFAULT_PORT = 9600.freeze DEFAULT_ENVIRONMENT = 'production'.freeze - def initialize(logger, options={}) - @logger = logger - @http_host = options[:http_host] || DEFAULT_HOST - @http_port = options[:http_port] || DEFAULT_PORT + def initialize(logger, agent, options={}) + @logger = logger + @agent = agent + @http_host = options[:http_host] || DEFAULT_HOST + @http_port = options[:http_port] || DEFAULT_PORT @http_environment = options[:http_environment] || DEFAULT_ENVIRONMENT - @options = {} + @options = {} @cli_options = options.merge({ :rackup => ::File.join(::File.dirname(__FILE__), "api", "init.ru"), :binds => ["tcp://#{http_host}:#{http_port}"], :debug => logger.debug?, @@ -37,7 +38,7 @@ def run stop # Just in case - app = LogStash::Api::RackApp.app(logger, http_environment) + app = LogStash::Api::RackApp.app(logger, agent, http_environment) @server = ::Puma::Server.new(app) @server.add_tcp_listener(http_host, http_port) diff --git a/logstash-core/spec/api/lib/api/node_spec.rb b/logstash-core/spec/api/lib/api/node_spec.rb index 3fc6ad97752..ae548337dde 100644 --- a/logstash-core/spec/api/lib/api/node_spec.rb +++ b/logstash-core/spec/api/lib/api/node_spec.rb @@ -5,12 +5,7 @@ require "logstash/json" describe LogStash::Api::Modules::Node do - - include Rack::Test::Methods - - def app() - described_class - end + include_context "api setup" describe "#hot threads" do diff --git a/logstash-core/spec/api/lib/api/node_stats_spec.rb b/logstash-core/spec/api/lib/api/node_stats_spec.rb index 03bf7fd6152..addb45667e0 100644 --- a/logstash-core/spec/api/lib/api/node_stats_spec.rb +++ b/logstash-core/spec/api/lib/api/node_stats_spec.rb @@ -5,12 +5,9 @@ require "logstash/json" describe LogStash::Api::Modules::NodeStats do - include Rack::Test::Methods - extend ResourceDSLMethods + include_context "api setup" - def app() # Used by Rack::Test::Methods - described_class - end + extend ResourceDSLMethods # DSL describing response structure root_structure = { diff --git a/logstash-core/spec/api/lib/api/plugins_spec.rb b/logstash-core/spec/api/lib/api/plugins_spec.rb index 216811d0a9b..aecb6f46542 100644 --- a/logstash-core/spec/api/lib/api/plugins_spec.rb +++ b/logstash-core/spec/api/lib/api/plugins_spec.rb @@ -5,12 +5,7 @@ require "logstash/json" describe LogStash::Api::Modules::Plugins do - - include Rack::Test::Methods - - def app() - described_class - end + include_context "api setup" before(:all) do get "/" @@ -52,6 +47,5 @@ def app() expect(plugin["version"]).not_to be_empty end end - end end diff --git a/logstash-core/spec/api/lib/api/root_spec.rb b/logstash-core/spec/api/lib/api/root_spec.rb index 2395c9edc5d..8347580a639 100644 --- a/logstash-core/spec/api/lib/api/root_spec.rb +++ b/logstash-core/spec/api/lib/api/root_spec.rb @@ -5,16 +5,11 @@ require "logstash/json" describe LogStash::Api::Modules::Root do - - include Rack::Test::Methods - - def app() - described_class - end + include_context "api setup" it "should respond to root resource" do do_request { get "/" } expect(last_response).to be_ok end - end + diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index 041311b9314..4fb51f25bd9 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -1,13 +1,10 @@ # encoding: utf-8 API_ROOT = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "lib", "logstash", "api")) - - require "logstash/devutils/rspec/spec_helper" - $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) require "lib/api/support/resource_dsl_methods" - +require 'rspec/expectations' require "logstash/settings" require 'rack/test' require 'rspec' @@ -74,14 +71,13 @@ def stop private def wait_until_ready - # Wait until the service and pipeline have started - while !(LogStash::Api::Service.instance.started? && agent.pipelines["main"].running?) do - sleep 0.5 - end + # # Wait until the service and pipeline have started + # while !(LogStash::Api::Service.instance.started? && agent.pipelines["main"].running?) do + # sleep 0.5 + # end end end - ## # Method used to wrap up a request in between of a running # pipeline, this makes the whole execution model easier and @@ -95,30 +91,6 @@ def do_request(&block) ret_val end -## -# Helper module that setups necessary mocks when doing the requests, -# this could be just included in the test and the runner will be -# started managed for all tests. -## -module LogStash; module RSpec; module RunnerConfig - def self.included(klass) - klass.before(:all) do - LogStashRunner.instance.start - end - - klass.before(:each) do - runner = LogStashRunner.instance - allow(LogStash::Instrument::Collector.instance).to receive(:agent).and_return(runner.agent) - end - - klass.after(:all) do - LogStashRunner.instance.stop - end - end -end; end; end - -require 'rspec/expectations' - RSpec::Matchers.define :be_available? do match do |plugin| begin @@ -129,3 +101,20 @@ def self.included(klass) end end end + +shared_context "api setup" do + before :all do + @runner = LogStashRunner.new + @runner.start + end + + after :all do + @runner.stop + end + + include Rack::Test::Methods + + def app() + described_class.new(nil, @runner.agent) + end +end diff --git a/logstash-core/spec/logstash/inputs/metrics_spec.rb b/logstash-core/spec/logstash/inputs/metrics_spec.rb index 97a89facda3..436d676f62d 100644 --- a/logstash-core/spec/logstash/inputs/metrics_spec.rb +++ b/logstash-core/spec/logstash/inputs/metrics_spec.rb @@ -3,15 +3,17 @@ require "spec_helper" describe LogStash::Inputs::Metrics do + let(:collector) { LogStash::Instrument::Collector.new } + let(:metric) { LogStash::Instrument::Metric.new(collector) } + let(:queue) { [] } + before :each do - LogStash::Instrument::Collector.instance.clear + allow(subject).to receive(:metric).and_return(metric) end - let(:queue) { [] } - describe "#run" do it "should register itself to the collector observer" do - expect(LogStash::Instrument::Collector.instance).to receive(:add_observer).with(subject) + expect(collector).to receive(:add_observer).with(subject) t = Thread.new { subject.run(queue) } sleep(0.1) # give a bit of time to the thread to start subject.stop @@ -19,24 +21,21 @@ end describe "#update" do - let(:namespaces) { [:root, :base] } - let(:key) { :foo } - let(:metric_store) { LogStash::Instrument::MetricStore.new } - it "should fill up the queue with received events" do Thread.new { subject.run(queue) } sleep(0.1) subject.stop - metric_store.fetch_or_store(namespaces, key, LogStash::Instrument::MetricType::Counter.new(namespaces, key)) - subject.update(LogStash::Instrument::Snapshot.new(metric_store)) + metric.increment([:root, :test], :plugin) + + subject.update(collector.snapshot_metric) expect(queue.count).to eq(1) end end describe "#stop" do it "should remove itself from the the collector observer" do - expect(LogStash::Instrument::Collector.instance).to receive(:delete_observer).with(subject) + expect(collector).to receive(:delete_observer).with(subject) t = Thread.new { subject.run(queue) } sleep(0.1) # give a bit of time to the thread to start subject.stop From 6acbdc3015f0a6c04e40f24c9020a410a7689808 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 3 Jun 2016 13:00:02 -0400 Subject: [PATCH 183/632] Make the test more reliable by used a fixed amount of generated events Fixes #5446 --- logstash-core/spec/api/spec_helper.rb | 27 +++++--------------- logstash-core/spec/logstash/pipeline_spec.rb | 4 +-- 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index 4fb51f25bd9..ac4b977b6ac 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -17,10 +17,6 @@ def read_fixture(name) module LogStash class DummyAgent < Agent - def fetch_config(settings) - "input { generator {count => 0} } output { }" - end - def start_webserver; end def stop_webserver; end end @@ -36,7 +32,8 @@ class LogStashRunner attr_reader :config_str, :agent, :pipeline_settings def initialize - @config_str = "input { generator {count => 0} } output { }" + @config_str = "input { generator {count => 100 } } output { dummyoutput {} }" + args = { "config.reload.automatic" => false, "metric.collect" => true, @@ -54,27 +51,15 @@ def initialize end def start + # We start a pipeline that will generate a finite number of events + # before starting the expectations agent.register_pipeline("main", @settings) - @runner = Thread.new(agent) do |_agent| - _agent.execute - end - - wait_until_ready + @agent_task = Stud::Task.new { agent.execute } + @agent_task.wait end def stop agent.shutdown - Thread.kill(@runner) - sleep 0.1 while !@runner.stop? - end - - private - - def wait_until_ready - # # Wait until the service and pipeline have started - # while !(LogStash::Api::Service.instance.started? && agent.pipelines["main"].running?) do - # sleep 0.5 - # end end end diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 506e121675f..823e2cb5df9 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -468,8 +468,8 @@ class TestPipeline < LogStash::Pipeline sleep 0.1 while !pipeline.ready? # give us a bit of time to flush the events wait(5).for do - next unless output && output.events && output.events.first - output.events.first.get("message").split("\n").count + next unless output && output.events && !(event = output.events.pop).nil? + event.get("message").split("\n").count end.to eq(number_of_events) pipeline.shutdown end From a741534f7ced16ef90421b861a291ee719b3b7f7 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 6 Jun 2016 09:59:16 -0400 Subject: [PATCH 184/632] Code review Fixes #5446 --- logstash-core/lib/logstash/agent.rb | 8 +++----- logstash-core/lib/logstash/api/rack_app.rb | 2 +- logstash-core/lib/logstash/api/service.rb | 6 ------ logstash-core/lib/logstash/pipeline.rb | 4 ++-- logstash-core/spec/logstash/agent_spec.rb | 11 +++++++---- 5 files changed, 13 insertions(+), 18 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 4db2fada748..21fa2196e03 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -113,13 +113,13 @@ def uptime ((Time.now.to_f - STARTED_AT.to_f) * 1000.0).to_i end - def stop_collecting_metric + def stop_collecting_metrics @collector.stop @periodic_pollers.stop end def shutdown - stop_collecting_metric + stop_collecting_metrics stop_webserver shutdown_pipelines end @@ -164,7 +164,7 @@ def configure_metrics_collectors end def reset_metrics_collectors - stop_collecting_metric + stop_collecting_metrics configure_metrics_collectors end @@ -266,8 +266,6 @@ def running_pipeline?(pipeline_id) def upgrade_pipeline(pipeline_id, new_pipeline) stop_pipeline(pipeline_id) @pipelines[pipeline_id] = new_pipeline - - new_pipeline = metric start_pipeline(pipeline_id) end diff --git a/logstash-core/lib/logstash/api/rack_app.rb b/logstash-core/lib/logstash/api/rack_app.rb index a7d326bb154..6c551b3277c 100644 --- a/logstash-core/lib/logstash/api/rack_app.rb +++ b/logstash-core/lib/logstash/api/rack_app.rb @@ -104,7 +104,7 @@ def self.rack_namespaces(agent) "/_node" => LogStash::Api::Modules::Node, "/_stats" => LogStash::Api::Modules::Stats, "/_node/stats" => LogStash::Api::Modules::NodeStats, - "/_plugins" => LogStash::Api::Modules::Plugins, + "/_plugins" => LogStash::Api::Modules::Plugins } end end diff --git a/logstash-core/lib/logstash/api/service.rb b/logstash-core/lib/logstash/api/service.rb index 183451c8eab..d286f8f0ca0 100644 --- a/logstash-core/lib/logstash/api/service.rb +++ b/logstash-core/lib/logstash/api/service.rb @@ -35,12 +35,6 @@ def get(key) end LogStash::Json.dump(data) end - - private - - def has_counters? - true - end end end end diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 46c3e43184f..8c6a6cf221c 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -41,7 +41,7 @@ module LogStash; class Pipeline "LogStash::Inputs::Stdin" ] - def initialize(config_str, settings = LogStash::SETTINGS, provided_metric = nil) + def initialize(config_str, settings = LogStash::SETTINGS, namespaced_metric = nil) @config_str = config_str @logger = Cabin::Channel.get(LogStash) @settings = settings @@ -56,7 +56,7 @@ def initialize(config_str, settings = LogStash::SETTINGS, provided_metric = nil) # This needs to be configured before we evaluate the code to make # sure the metric instance is correctly send to the plugins to make the namespace scoping work - @metric = provided_metric.nil? ? LogStash::Instrument::NullMetric.new : provided_metric + @metric = namespaced_metric.nil? ? LogStash::Instrument::NullMetric.new : namespaced_metric grammar = LogStashConfigParser.new @config = grammar.parse(config_str) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 3bc59233b7b..64aa3ee3cfd 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -381,10 +381,13 @@ class DummyOutput2 < LogStash::Outputs::Base; end end after :each do - subject.shutdown - Stud.stop!(@t) - @t.join - Thread.abort_on_exception = @abort_on_exception + begin + subject.shutdown + Stud.stop!(@t) + @t.join + ensure + Thread.abort_on_exception = @abort_on_exception + end end it "resets the metric collector" do From 76c4bc99717c2696fdbdfd403673e0e175ef3f79 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Mon, 6 Jun 2016 18:05:44 -0500 Subject: [PATCH 185/632] Add new :list property to configuration parameters. If set to try this will allow the user to specify one or more values. This generally replaces the :array type, which had fewer type checks. The array type is still needed for lists of complex objects, e.g. hashes. Fixes #5453 --- docs/static/configuration.asciidoc | 25 ++++-- docs/static/include/pluginbody.asciidoc | 3 +- logstash-core/lib/logstash/config/mixin.rb | 77 ++++++++++++------- logstash-core/lib/logstash/util/safe_uri.rb | 4 + .../spec/logstash/config/mixin_spec.rb | 68 ++++++++++++++++ 5 files changed, 143 insertions(+), 34 deletions(-) diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index 90e51154b42..e616c8d86da 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -83,25 +83,38 @@ The settings you can configure vary according to the plugin type. For informatio === Value Types A plugin can require that the value for a setting be a -certain type, such as boolean or hash. The following value +certain type, such as boolean, list, or hash. The following value types are supported. [[array]] -[float] ==== Array -An array can be a single string value or multiple values. If you specify the same -setting multiple times, it appends to the array. +This type is now mostly deprecated in favor of using a standard type like `string` with the plugin defining the `:list => true` property for better type checking. It is still needed to handle lists of hashes or mixed types where type checking is not desired. + +Example: + +[source,js] +---------------------------------- + users => [ {id => 1, name => bob}, {id => 2, name => jane} ] +---------------------------------- + +[[list]] +[float] +==== Lists + +Not a type in and of itself, but a property types can have. +This makes it possible to type check multiple values. +Plugin authors can enable list checking by specifying `:list => true` when declaring an argument. Example: [source,js] ---------------------------------- path => [ "/var/log/messages", "/var/log/*.log" ] - path => "/data/mysql/mysql.log" + uris => [ "http://elastic.co", "http://example.net" ] ---------------------------------- -This example configures `path` to be an array that contains an element for each of the three strings. +This example configures `path`, which is a `string` to be a list that contains an element for each of the three strings. It also will configure the `uris` parameter to be a list of URIs, failing if any of the URIs provided are not valid. [[boolean]] diff --git a/docs/static/include/pluginbody.asciidoc b/docs/static/include/pluginbody.asciidoc index bb44db58c3b..758f413eb3c 100644 --- a/docs/static/include/pluginbody.asciidoc +++ b/docs/static/include/pluginbody.asciidoc @@ -474,13 +474,14 @@ There are several configuration attributes: * `:validate` - allows you to enforce passing a particular data type to Logstash for this configuration option, such as `:string`, `:password`, `:boolean`, -`:number`, `:array`, `:hash`, `:path` (a file-system path), `:codec` (since +`:number`, `:array`, `:hash`, `:path` (a file-system path), `uri`, `:codec` (since 1.2.0), `:bytes` (starting in 1.5.0). Note that this also works as a coercion in that if I specify "true" for boolean (even though technically a string), it will become a valid boolean in the config. This coercion works for the `:number` type as well where "1.2" becomes a float and "22" is an integer. * `:default` - lets you specify a default value for a parameter * `:required` - whether or not this parameter is mandatory (a Boolean `true` or +* `:list` - whether or not this value should be a list of values. Will typecheck the list members, and convert scalars to one element lists. Note that this mostly obviates the array type, though if you need lists of complex objects that will be more suitable. `false`) * `:deprecated` - informational (also a Boolean `true` or `false`) * `:obsolete` - used to declare that a given setting has been removed and is no longer functioning. The idea is to provide an informed upgrade path to users who are still using a now-removed setting. diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 6929b6eedc9..83198e0abbc 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -328,58 +328,84 @@ def validate_check_invalid_parameter_names(params) return true end # def validate_check_invalid_parameter_names + def validate_check_required_parameter(config_key, config_opts, k, v) + if config_key.is_a?(Regexp) + (k =~ config_key && v) + elsif config_key.is_a?(String) + k && v + end + end + def validate_check_required_parameter_names(params) is_valid = true @config.each do |config_key, config| next unless config[:required] - if config_key.is_a?(Regexp) - next if params.keys.select { |k| k =~ config_key }.length > 0 - elsif config_key.is_a?(String) - next if params.keys.member?(config_key) - end - @logger.error(I18n.t("logstash.runner.configuration.setting_missing", - :setting => config_key, :plugin => @plugin_name, - :type => @plugin_type)) - is_valid = false + value = params[config_key] + if value.nil? || (config[:list] && Array(value).empty?) + @logger.error(I18n.t("logstash.runner.configuration.setting_missing", + :setting => config_key, :plugin => @plugin_name, + :type => @plugin_type)) + is_valid = false + end end return is_valid end + def process_parameter_value(value, config_settings) + config_val = config_settings[:validate] + + if config_settings[:list] + value = Array(value) # coerce scalars to lists + # Empty lists are converted to nils + return true, nil if value.empty? + + validated_items = value.map {|v| validate_value(v, config_val)} + is_valid = validated_items.all? {|sr| sr[0] } + processed_value = validated_items.map {|sr| sr[1]} + else + is_valid, processed_value = validate_value(value, config_val) + end + + return [is_valid, processed_value] + end + def validate_check_parameter_values(params) # Filter out parametrs that match regexp keys. # These are defined in plugins like this: # config /foo.*/ => ... - is_valid = true + all_params_valid = true params.each do |key, value| @config.keys.each do |config_key| next unless (config_key.is_a?(Regexp) && key =~ config_key) \ || (config_key.is_a?(String) && key == config_key) - config_val = @config[config_key][:validate] - #puts " Key matches." - success, result = validate_value(value, config_val) - if success - # Accept coerced value if success + + config_settings = @config[config_key] + + is_valid, processed_value = process_parameter_value(value, config_settings) + + if is_valid + # Accept coerced value if valid # Used for converting values in the config to proper objects. - params[key] = result if !result.nil? + params[key] = processed_value else @logger.error(I18n.t("logstash.runner.configuration.setting_invalid", :plugin => @plugin_name, :type => @plugin_type, :setting => key, :value => value.inspect, - :value_type => config_val, - :note => result)) + :value_type => config_settings[:validate], + :note => processed_value)) end - #puts "Result: #{key} / #{result.inspect} / #{success}" - is_valid &&= success + + all_params_valid &&= is_valid break # done with this param key end # config.each end # params.each - return is_valid + return all_params_valid end # def validate_check_parameter_values def validator_find(key) @@ -555,12 +581,9 @@ def validate_value(value, validator) def secure_params!(params) params.each do |key, value| - if @config[key][:validate] == :password && !value.is_a?(::LogStash::Util::Password) - params[key] = ::LogStash::Util::Password.new(value) - end - - if @config[key][:validate] == :uri && !value.is_a?(::LogStash::Util::SafeURI) - params[key] = ::LogStash::Util::SafeURI.new(value) + if [:uri, :password].include? @config[key][:validate] + is_valid, processed_value = process_parameter_value(value, @config[key]) + params[key] = processed_value end end end diff --git a/logstash-core/lib/logstash/util/safe_uri.rb b/logstash-core/lib/logstash/util/safe_uri.rb index 9d24386e63b..7d203a0dad0 100644 --- a/logstash-core/lib/logstash/util/safe_uri.rb +++ b/logstash-core/lib/logstash/util/safe_uri.rb @@ -40,5 +40,9 @@ def sanitized safe.password = PASS_PLACEHOLDER safe end + + def ==(other) + other.is_a?(::LogStash::Util::SafeURI) ? @uri == other.uri : false + end end diff --git a/logstash-core/spec/logstash/config/mixin_spec.rb b/logstash-core/spec/logstash/config/mixin_spec.rb index 5c18b6e88d1..8517827c635 100644 --- a/logstash-core/spec/logstash/config/mixin_spec.rb +++ b/logstash-core/spec/logstash/config/mixin_spec.rb @@ -68,6 +68,74 @@ end end + context "when validating lists of items" do + let(:klass) do + Class.new(LogStash::Filters::Base) do + config_name "multiuri" + config :uris, :validate => :uri, :list => true + config :strings, :validate => :string, :list => true + config :required_strings, :validate => :string, :list => true, :required => true + end + end + + let(:uris) { ["http://example.net/1", "http://example.net/2"] } + let(:safe_uris) { uris.map {|str| ::LogStash::Util::SafeURI.new(str) } } + let(:strings) { ["I am a", "modern major general"] } + let(:required_strings) { ["required", "strings"] } + + subject { klass.new("uris" => uris, "strings" => strings, "required_strings" => required_strings) } + + it "a URI list should return an array of URIs" do + expect(subject.uris).to match_array(safe_uris) + end + + it "a string list should return an array of strings" do + expect(subject.strings).to match_array(strings) + end + + context "with a scalar value" do + let(:strings) { "foo" } + + it "should return the scalar value as a single element array" do + expect(subject.strings).to match_array([strings]) + end + end + + context "with an empty list" do + let(:strings) { [] } + + it "should return nil" do + expect(subject.strings).to be_nil + end + end + + describe "with required => true" do + context "and a single element" do + let(:required_strings) { ["foo"] } + + it "should return the single value" do + expect(subject.required_strings).to eql(required_strings) + end + end + + context "with an empty list" do + let (:required_strings) { [] } + + it "should raise a configuration error" do + expect { subject.required_strings }.to raise_error(LogStash::ConfigurationError) + end + end + + context "with no value specified" do + let (:required_strings) { nil } + + it "should raise a configuration error" do + expect { subject.required_strings }.to raise_error(LogStash::ConfigurationError) + end + end + end + end + context "when validating :password" do let(:klass) do Class.new(LogStash::Filters::Base) do From 293b053461a0b777de561655db3111ba0d48969a Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 2 Jun 2016 15:43:13 +0200 Subject: [PATCH 186/632] Add light edits to breaking changes docs Fixes #5435 --- docs/static/breaking-changes.asciidoc | 30 +++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index fc722534fdd..61b4aed17ec 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -3,38 +3,38 @@ **Breaking changes in 5.0** -Application Settings: Introduced a new way to configure application settings for Logstash through a settings.yml file. This file +Application Settings: Introduced a new way to configure application settings for Logstash through a `settings.yml` file. This file is typically located in `LS_HOME/config`, or `/etc/logstash` when installed via packages. Logstash will not be able to start without this file, so please make sure to pass in `--path.settings` if you are starting Logstash manually -after installing it via a package (RPM, DEB). +after installing it via a package (RPM or DEB). -Release Packages: When Logstash is installed via DEB, RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries and config files -respectively. Previously it used to install in `/opt` directory. This change was done to make the user experience -consistent with other Elastic products. Full directory layout is described https://www.elastic.co/guide/en/logstash/5.0/dir-layout.html[here]. +Release Packages: When Logstash is installed via DEB or RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries and config files +respectively. Previously it used the `/opt` directory. This change was done to make the user experience +consistent with other Elastic products. The full directory layout is described https://www.elastic.co/guide/en/logstash/5.0/dir-layout.html[here]. Command Line Interface: Most of the long form https://www.elastic.co/guide/en/logstash/5.0/command-line-flags.html[options] have been renamed -to adhere to the yml dot notation to be used in the settings file. Short form options have not been changed. +to adhere to the YAML dot notation used in the settings file. Short form options have not been changed. Plugin Developers: The Event class has a https://github.com/elastic/logstash/issues/5141[new API] to access its data. You will no longer be able to directly use -the Event class through the ruby hash paradigm. All the plugins packaged with Logstash has been updated -to use the new API and their versions bumped to the next major. +the Event class through the Ruby hash paradigm. All the plugins packaged with Logstash has been updated +to use the new API, and their versions bumped to the next major. -The command `bin/plugin` has been renamed to `bin/logstash-plugin`. `bin/plugin `` which is the current -way of install packs/plugins is problematic because it pollutes the global namespace if it is put in the path. +The command `bin/plugin` has been renamed to `bin/logstash-plugin`. `bin/plugin `, which is the current +way of install packs/plugins, is problematic because it pollutes the global namespace if it is put in the path. This command can now install both plugins and "Packs" - a single zip that contains 0 or 1 plugin for each system in the Elastic stack. **Environment Variables Support in Configuration** -You can set environment variable references into Logstash plugins configuration using `${var}` or `$var` syntax. -Previously if you had used `${var}` or `$var` as a value in configuration, 5.0 will try to resolve it assuming -it is an environment variable +You can set environment variable references in the configuration for Logstash plugins by using either the `${var}` or `$var` syntax. +Previously if you used `${var}` or `$var` as a value in the configuration, 5.0 would try to resolve the value assuming +it was an environment variable. [float] == Kafka Input and Output Plugins Kafka version 0.9 brings in new security features (SSL, client based auth, access control), -improved consumer and producer API, and much more. For bringing in these features, Logstash -had to use the new 0.9 version of the consumer which is not compatible with previous versions of the broker. +an improved consumer and producer API, and much more. To bring in these features, Logstash +had to use the new 0.9 version of the consumer, which is not compatible with previous versions of the broker. To use these new features, users have to first upgrade Kafka Brokers from 0.8.x to 0.9 and then use the input plugins. Please note that several configurations have changed in the Logstash configuration. From b4e9d0640137d9cddd9a694cf87df679582bf67b Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 14 Jun 2016 10:38:06 +0200 Subject: [PATCH 187/632] remove fedora from qa Fixes #5487 --- qa/config/platforms.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/qa/config/platforms.json b/qa/config/platforms.json index 09a7d6ce481..fcf65d96094 100644 --- a/qa/config/platforms.json +++ b/qa/config/platforms.json @@ -8,8 +8,6 @@ "centos-7": { "box": "elastic/centos-7-x86_64", "type": "redhat" }, "oel-6": { "box": "elastic/oraclelinux-6-x86_64", "type": "redhat" }, "oel-7": { "box": "elastic/oraclelinux-7-x86_64", "type": "redhat" }, - "fedora-22": { "box": "elastic/fedora-22-x86_64", "type": "redhat" }, - "fedora-23": { "box": "elastic/fedora-23-x86_64", "type": "redhat" }, "debian-8": { "box": "elastic/debian-8-x86_64", "type": "debian", "specific": true }, "opensuse-13": { "box": "elastic/opensuse-13-x86_64", "type": "suse" }, "sles-11": { "box": "elastic/sles-11-x86_64", "type": "suse", "specific": true }, From 2d059cd1db7fa711b8d328a99656f86653bb6591 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 3 Jun 2016 10:43:00 +0200 Subject: [PATCH 188/632] Minor fixes to gs Fixes #5493 --- docs/static/advanced-pipeline.asciidoc | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index f38bc3aa1c4..f7a89598f9b 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -184,7 +184,7 @@ output { With this configuration, Logstash uses http protocol to connect to Elasticsearch. The above example assumes that Logstash and Elasticsearch are running on the same instance. You can specify a remote Elasticsearch instance by using -the `hosts` configuration to specify something like `hosts => "es-machine:9092"`. +the `hosts` configuration to specify something like `hosts => [ "es-machine:9092" ]`. [float] [[testing-initial-pipeline]] @@ -212,7 +212,7 @@ filter { } output { elasticsearch { - hosts => "localhost:9200" + hosts => [ "localhost:9200" ] } } -------------------------------------------------------------------------------- @@ -422,7 +422,7 @@ NOTE: In a typical use case, Filebeat runs on a separate machine from the machin Logstash instance. For the purposes of this tutorial, Logstash and Filebeat are running on the same machine. -The default Logstash configuration includes the {logstash}plugins-inputs-beats.html[`Beats input`] plugin. To install +The default Logstash installation includes the {logstash}plugins-inputs-beats.html[`Beats input`] plugin. To install Filebeat on your data source machine, download the appropriate package from the Filebeat https://www.elastic.co/downloads/beats/filebeat[product page]. After installing Filebeat, you need to configure it. Open the `filebeat.yml` file located in your Filebeat installation @@ -445,7 +445,7 @@ output.logstash: Save your changes. -To keep the example configuration simple, you won't specify TLS/SSL settings as you would in a real world +To keep the configuration simple, you won't specify TLS/SSL settings as you would in a real world scenario. Configure your Logstash instance to use the Filebeat input plugin by adding the following lines to the `input` section @@ -453,9 +453,9 @@ of the `second-pipeline.conf` file: [source,json] -------------------------------------------------------------------------------- -beats { - port => "5043" -} + beats { + port => "5043" + } -------------------------------------------------------------------------------- [float] @@ -470,14 +470,14 @@ of the `second-pipeline.conf` file: [source,json] -------------------------------------------------------------------------------- -file { - path => /path/to/target/file -} + file { + path => "/path/to/target/file" + } -------------------------------------------------------------------------------- [float] [[multiple-es-nodes]] -==== Writing to multiple Elasticsearch nodes +==== Writing to Multiple Elasticsearch Nodes Writing to multiple Elasticsearch nodes lightens the resource demands on a given Elasticsearch node, as well as providing redundant points of entry into the cluster when a particular node is unavailable. @@ -495,7 +495,7 @@ output { Use the IP addresses of three non-master nodes in your Elasticsearch cluster in the host line. When the `hosts` parameter lists multiple IP addresses, Logstash load-balances requests across the list of addresses. Also note that -default port for Elasticsearch is `9200` and can be omitted in the configuration above. +the default port for Elasticsearch is `9200` and can be omitted in the configuration above. [float] [[testing-second-pipeline]] From b148df70fcd75a1a36709cf9fc3b3c2f33e87363 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Mon, 13 Jun 2016 15:21:35 +0200 Subject: [PATCH 189/632] remove patch ot use common file name, wihtout arch, also update ls filename in bootstrap scripts Fixes #5486 --- qa/config/platforms.json | 2 +- qa/sys/debian/user_bootstrap.sh | 3 +-- qa/sys/redhat/user_bootstrap.sh | 3 +-- qa/sys/suse/user_bootstrap.sh | 3 +-- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/qa/config/platforms.json b/qa/config/platforms.json index fcf65d96094..3556b418cb2 100644 --- a/qa/config/platforms.json +++ b/qa/config/platforms.json @@ -1,5 +1,5 @@ { - "latest": "5.0.0-alpha2", + "latest": "5.0.0-alpha3", "platforms" : { "ubuntu-1204": { "box": "elastic/ubuntu-12.04-x86_64", "type": "debian" }, "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "debian", "specific": true }, diff --git a/qa/sys/debian/user_bootstrap.sh b/qa/sys/debian/user_bootstrap.sh index 8d9fcb70c1d..a99d4ff056f 100644 --- a/qa/sys/debian/user_bootstrap.sh +++ b/qa/sys/debian/user_bootstrap.sh @@ -1,6 +1,5 @@ #!/usr/bin/env bash VERSION=`cat /vagrant/config/platforms.json | grep latest | cut -d":" -f2 | sed 's/["\|,| ]//g'` -LOGSTASH_FILENAME="logstash-${VERSION}_all.deb" +LOGSTASH_FILENAME="logstash-${VERSION}.deb" wget -q https://download.elastic.co/logstash/logstash/packages/debian/$LOGSTASH_FILENAME -mv $LOGSTASH_FILENAME "logstash-${VERSION}.deb" # necessary patch until new version with the standard name format are released diff --git a/qa/sys/redhat/user_bootstrap.sh b/qa/sys/redhat/user_bootstrap.sh index db964babc63..4713b3f5c1b 100644 --- a/qa/sys/redhat/user_bootstrap.sh +++ b/qa/sys/redhat/user_bootstrap.sh @@ -1,6 +1,5 @@ #!/usr/bin/env bash VERSION=`cat /vagrant/config/platforms.json | grep latest | cut -d":" -f2 | sed 's/["\|,| ]//g'` -LOGSTASH_FILENAME="logstash-${VERSION}.noarch.rpm" +LOGSTASH_FILENAME="logstash-${VERSION}.rpm" wget -q https://download.elastic.co/logstash/logstash/packages/centos/$LOGSTASH_FILENAME -mv $LOGSTASH_FILENAME "logstash-${VERSION}.rpm" # necessary patch until new version with the standard name format are released diff --git a/qa/sys/suse/user_bootstrap.sh b/qa/sys/suse/user_bootstrap.sh index 77653c4e980..be22af8b0c1 100644 --- a/qa/sys/suse/user_bootstrap.sh +++ b/qa/sys/suse/user_bootstrap.sh @@ -1,5 +1,4 @@ #!/usr/bin/env bash VERSION=`cat /vagrant/config/platforms.json | grep latest | cut -d":" -f2 | sed 's/["\|,| ]//g'` -LOGSTASH_FILENAME="logstash-${VERSION}.noarch.rpm" +LOGSTASH_FILENAME="logstash-${VERSION}.rpm" wget -q https://download.elastic.co/logstash/logstash/packages/centos/$LOGSTASH_FILENAME -mv $LOGSTASH_FILENAME "logstash-${VERSION}.rpm" # necessary patch until new version with the standard name format are released From 829af589cdaa4ca33eaa709077c2cc9930f5e6c8 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 14 Jun 2016 10:11:11 +0200 Subject: [PATCH 190/632] wrap usage of Gems.versions withing a patch that forces UTF-8 encoding locate the patch to his own location rename patches directory Fixes #5486 --- lib/bootstrap/patches/gems.rb | 16 ++++++++++++++++ lib/bootstrap/rubygems.rb | 10 ++++++++++ lib/pluginmanager/util.rb | 3 +-- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 lib/bootstrap/patches/gems.rb diff --git a/lib/bootstrap/patches/gems.rb b/lib/bootstrap/patches/gems.rb new file mode 100644 index 00000000000..94154a51345 --- /dev/null +++ b/lib/bootstrap/patches/gems.rb @@ -0,0 +1,16 @@ +# encoding: utf-8 +require "gems" + +# This patch is necessary to avoid encoding problems when Net:HTTP return stuff in ASCII format, but +# consumer libraries, like the YAML parsers expect them to be in UTF-8. As we're using UTF-8 everywhere +# and the usage of versions is minimal in our codebase, the patch is done here. If extended usage of this +# is done in the feature, more proper fix should be implemented, including the creation of our own lib for +# this tasks. +module Gems + module Request + def get(path, data = {}, content_type = 'application/x-www-form-urlencoded', request_host = host) + request(:get, path, data, content_type, request_host).force_encoding("UTF-8") + end + end +end + diff --git a/lib/bootstrap/rubygems.rb b/lib/bootstrap/rubygems.rb index 06e1775c380..f11b792e7e3 100644 --- a/lib/bootstrap/rubygems.rb +++ b/lib/bootstrap/rubygems.rb @@ -43,6 +43,16 @@ def self.reset end end + ## + # Take a plugin name and get the latest versions available in the gem repository. + # @param [String] The plugin name + # @return [Hash] The collection of registered versions + ## + def versions(plugin) + require "gems" + require_relative "patches/gems" + Gems.versions(plugin) + end # Take a gem package and extract it to a specific target # @param [String] Gem file, this must be a path # @param [String, String] Return a Gem::Package and the installed path diff --git a/lib/pluginmanager/util.rb b/lib/pluginmanager/util.rb index 149ff6256d4..ccb08c4d7fd 100644 --- a/lib/pluginmanager/util.rb +++ b/lib/pluginmanager/util.rb @@ -50,9 +50,8 @@ def self.logstash_plugin?(plugin, version = nil, options={}) # @option options [Boolean] :pre Include pre release versions in the search (default: false) # @return [Hash] The plugin version information as returned by rubygems def self.fetch_latest_version_info(plugin, options={}) - require "gems" exclude_prereleases = options.fetch(:pre, false) - versions = Gems.versions(plugin) + versions = LogStash::Rubygems.versions(plugin) raise ValidationError.new("Something went wrong with the validation. You can skip the validation with the --no-verify option") if !versions.is_a?(Array) || versions.empty? versions = versions.select { |version| !version["prerelease"] } if !exclude_prereleases versions.first From 86f776fafa41688b99537fa5ff8271b58b1c13e7 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Fri, 27 May 2016 15:42:07 -0500 Subject: [PATCH 191/632] Add more node stats + refactor stats internals Add node stats mem endpoint Fixes #5381 --- logstash-core/lib/logstash/agent.rb | 1 - .../lib/logstash/api/command_factory.rb | 4 +- .../lib/logstash/api/commands/base.rb | 4 + .../lib/logstash/api/commands/node.rb | 117 ++++++++++++++++++ .../lib/logstash/api/commands/stats.rb | 105 +++++----------- .../lib/logstash/api/modules/node.rb | 28 ++++- .../lib/logstash/api/modules/node_stats.rb | 16 ++- logstash-core/lib/logstash/api/service.rb | 10 +- .../lib/logstash/instrument/metric_store.rb | 48 +++++++ logstash-core/lib/logstash/pipeline.rb | 6 + logstash-core/spec/api/lib/api/node_spec.rb | 41 +++++- .../spec/api/lib/api/node_stats_spec.rb | 30 ++++- .../lib/api/support/resource_dsl_methods.rb | 14 ++- 13 files changed, 324 insertions(+), 100 deletions(-) create mode 100644 logstash-core/lib/logstash/api/commands/node.rb diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 21fa2196e03..be846734486 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -46,7 +46,6 @@ def initialize(settings = LogStash::SETTINGS) @collect_metric = setting("metric.collect") - # Create the collectors and configured it with the library configure_metrics_collectors end diff --git a/logstash-core/lib/logstash/api/command_factory.rb b/logstash-core/lib/logstash/api/command_factory.rb index df26ccad546..4de019a186d 100644 --- a/logstash-core/lib/logstash/api/command_factory.rb +++ b/logstash-core/lib/logstash/api/command_factory.rb @@ -3,6 +3,7 @@ require "logstash/api/commands/system/basicinfo_command" require "logstash/api/commands/system/plugins_command" require "logstash/api/commands/stats" +require "logstash/api/commands/node" module LogStash @@ -15,7 +16,8 @@ def initialize(service) @factory = { :system_basic_info => ::LogStash::Api::Commands::System::BasicInfo, :plugins_command => ::LogStash::Api::Commands::System::Plugins, - :stats => ::LogStash::Api::Commands::Stats + :stats => ::LogStash::Api::Commands::Stats, + :node => ::LogStash::Api::Commands::Node } end diff --git a/logstash-core/lib/logstash/api/commands/base.rb b/logstash-core/lib/logstash/api/commands/base.rb index 1ca1d879832..c2fd22a05a4 100644 --- a/logstash-core/lib/logstash/api/commands/base.rb +++ b/logstash-core/lib/logstash/api/commands/base.rb @@ -19,6 +19,10 @@ def uptime def started_at (LogStash::Agent::STARTED_AT.to_f * 1000.0).to_i end + + def extract_metrics(path, *keys) + service.extract_metrics(path, *keys) + end end end end diff --git a/logstash-core/lib/logstash/api/commands/node.rb b/logstash-core/lib/logstash/api/commands/node.rb new file mode 100644 index 00000000000..c5d56747323 --- /dev/null +++ b/logstash-core/lib/logstash/api/commands/node.rb @@ -0,0 +1,117 @@ +require "logstash/api/commands/base" + +module LogStash + module Api + module Commands + class Node < Commands::Base + def all + { + :pipeline => pipeline, + :os => os, + :jvm => jvm, + :hot_threads => hot_threads + } + end + + def pipeline + extract_metrics( + [:stats, :pipelines, :main, :config], + :workers, :batch_size, :batch_delay + ) + end + + def os + { + :name => java.lang.System.getProperty("os.name"), + :arch => java.lang.System.getProperty("os.arch"), + :version => java.lang.System.getProperty("os.version"), + :available_processors => java.lang.Runtime.getRuntime().availableProcessors() + } + end + + def jvm + memory_bean = ManagementFactory.getMemoryMXBean() + { + :pid => ManagementFactory.getRuntimeMXBean().getName().split("@").first.to_i, + :version => java.lang.System.getProperty("java.version"), + :vm_name => java.lang.System.getProperty("java.vm.name"), + :vm_version => java.lang.System.getProperty("java.version"), + :vm_vendor => java.lang.System.getProperty("java.vendor"), + :vm_name => java.lang.System.getProperty("java.vm.name"), + :start_time_in_millis => started_at, + :mem => { + :heap_init_in_bytes => (memory_bean.getHeapMemoryUsage().getInit() < 0 ? 0 : memory_bean.getHeapMemoryUsage().getInit()), + :heap_max_in_bytes => (memory_bean.getHeapMemoryUsage().getMax() < 0 ? 0 : memory_bean.getHeapMemoryUsage().getMax()), + :non_heap_init_in_bytes => (memory_bean.getNonHeapMemoryUsage().getInit() < 0 ? 0 : memory_bean.getNonHeapMemoryUsage().getInit()), + :non_heap_max_in_bytes => (memory_bean.getNonHeapMemoryUsage().getMax() < 0 ? 0 : memory_bean.getNonHeapMemoryUsage().getMax()) + } + } + end + + def hot_threads(options={}) + HotThreadsReport.new(self, options) + end + + class HotThreadsReport + HOT_THREADS_STACK_TRACES_SIZE_DEFAULT = 10.freeze + + def initialize(cmd, options) + @cmd = cmd + filter = { :stacktrace_size => options.fetch(:stacktrace_size, HOT_THREADS_STACK_TRACES_SIZE_DEFAULT) } + jr_dump = JRMonitor.threads.generate(filter) + @thread_dump = ::LogStash::Util::ThreadDump.new(options.merge(:dump => jr_dump)) + end + + def to_s + hash = to_hash + report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" + report << '=' * 80 + report << "\n" + hash[:threads].each do |thread| + thread_report = "" + thread_report = "#{I18n.t("logstash.web_api. + hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" + thread_report = "#{thread[:percent_of_cpu_time]} % of of cpu usage by #{thread[:state]} thread named '#{thread[:name]}'\n" + thread_report << "#{thread[:path]}\n" if thread[:path] + thread[:traces].each do |trace| + thread_report << "\t#{trace}\n" + end + report << thread_report + report << '-' * 80 + report << "\n" + end + report + end + + def to_hash + hash = { :hostname => @cmd.hostname, :time => Time.now.iso8601, :busiest_threads => @thread_dump.top_count, :threads => [] } + @thread_dump.each do |thread_name, _hash| + thread_name, thread_path = _hash["thread.name"].split(": ") + thread = { :name => thread_name, + :percent_of_cpu_time => cpu_time_as_percent(_hash), + :state => _hash["thread.state"] + } + thread[:path] = thread_path if thread_path + traces = [] + _hash["thread.stacktrace"].each do |trace| + traces << trace + end + thread[:traces] = traces unless traces.empty? + hash[:threads] << thread + end + hash + end + + def cpu_time_as_percent(hash) + (((cpu_time(hash) / @cmd.uptime * 1.0)*10000).to_i)/100.0 + end + + def cpu_time(hash) + hash["cpu.time"] / 1000000.0 + end + + end + end + end + end +end diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index 6d4ef2430fc..8737d65ebd7 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -5,99 +5,50 @@ module LogStash module Api module Commands class Stats < Commands::Base - def jvm - {:threads => service.get_shallow(:jvm, :threads)} + { + :threads => extract_metrics( + [:jvm, :threads], + :count, + :peak_count + ) + } end def process - service.get_shallow(:jvm, :process) + extract_metrics( + [:jvm, :process], + :open_file_descriptors, + :peak_open_file_descriptors, + :max_file_descriptors, + [:mem, [:total_virtual_in_bytes]], + [:cpu, [:total_in_millis, :percent]] + ) end def events - service.get_shallow(:stats, :events) + extract_metrics( + [:stats, :events], + :in, :filtered, :out + ) end def memory - memory = LogStash::Json.load(service.get(:jvm_memory_stats)) + memory = service.get_shallow(:jvm, :memory) { - :heap_used_in_bytes => memory["heap"]["used_in_bytes"], - :heap_used_percent => memory["heap"]["used_percent"], - :heap_committed_in_bytes => memory["heap"]["committed_in_bytes"], - :heap_max_in_bytes => memory["heap"]["max_in_bytes"], - :heap_used_in_bytes => memory["heap"]["used_in_bytes"], - :non_heap_used_in_bytes => memory["non_heap"]["used_in_bytes"], - :non_heap_committed_in_bytes => memory["non_heap"]["committed_in_bytes"], - :pools => memory["pools"].inject({}) do |acc, (type, hash)| + :heap_used_in_bytes => memory[:heap][:used_in_bytes], + :heap_used_percent => memory[:heap][:used_percent], + :heap_committed_in_bytes => memory[:heap][:committed_in_bytes], + :heap_max_in_bytes => memory[:heap][:max_in_bytes], + :heap_used_in_bytes => memory[:heap][:used_in_bytes], + :non_heap_used_in_bytes => memory[:non_heap][:used_in_bytes], + :non_heap_committed_in_bytes => memory[:non_heap][:committed_in_bytes], + :pools => memory[:pools].inject({}) do |acc, (type, hash)| hash.delete("committed_in_bytes") acc[type] = hash acc end } - end - - def hot_threads(options={}) - HotThreadsReport.new(self, options) - end - - class HotThreadsReport - HOT_THREADS_STACK_TRACES_SIZE_DEFAULT = 10.freeze - - def initialize(cmd, options) - @cmd = cmd - filter = { :stacktrace_size => options.fetch(:stacktrace_size, HOT_THREADS_STACK_TRACES_SIZE_DEFAULT) } - jr_dump = JRMonitor.threads.generate(filter) - @thread_dump = ::LogStash::Util::ThreadDump.new(options.merge(:dump => jr_dump)) - end - - def to_s - hash = to_hash - report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" - report << '=' * 80 - report << "\n" - hash[:threads].each do |thread| - thread_report = "" - thread_report = "#{I18n.t("logstash.web_api. - hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" - thread_report = "#{thread[:percent_of_cpu_time]} % of of cpu usage by #{thread[:state]} thread named '#{thread[:name]}'\n" - thread_report << "#{thread[:path]}\n" if thread[:path] - thread[:traces].each do |trace| - thread_report << "\t#{trace}\n" - end - report << thread_report - report << '-' * 80 - report << "\n" - end - report - end - - def to_hash - hash = { :hostname => @cmd.hostname, :time => Time.now.iso8601, :busiest_threads => @thread_dump.top_count, :threads => [] } - @thread_dump.each do |thread_name, _hash| - thread_name, thread_path = _hash["thread.name"].split(": ") - thread = { :name => thread_name, - :percent_of_cpu_time => cpu_time_as_percent(_hash), - :state => _hash["thread.state"] - } - thread[:path] = thread_path if thread_path - traces = [] - _hash["thread.stacktrace"].each do |trace| - traces << trace - end - thread[:traces] = traces unless traces.empty? - hash[:threads] << thread - end - hash - end - - def cpu_time_as_percent(hash) - (((cpu_time(hash) / @cmd.uptime * 1.0)*10000).to_i)/100.0 - end - - def cpu_time(hash) - hash["cpu.time"] / 1000000.0 - end - end end end diff --git a/logstash-core/lib/logstash/api/modules/node.rb b/logstash-core/lib/logstash/api/modules/node.rb index b5139a027ea..2ba3f933e77 100644 --- a/logstash-core/lib/logstash/api/modules/node.rb +++ b/logstash-core/lib/logstash/api/modules/node.rb @@ -5,7 +5,26 @@ module LogStash module Api module Modules class Node < ::LogStash::Api::Modules::Base - # return hot threads information + def node + factory.build(:node) + end + + get "/" do + respond_with node.all + end + + get "/os" do + respond_with :os => node.os + end + + get "/jvm" do + respond_with :jvm => node.jvm + end + + get "/pipeline" do + respond_with :pipeline => node.pipeline + end + get "/hot_threads" do ignore_idle_threads = params["ignore_idle_threads"] || true @@ -15,10 +34,9 @@ class Node < ::LogStash::Api::Modules::Base } options[:threads] = params["threads"].to_i if params.has_key?("threads") - stats = factory.build(:stats) - as = options[:human] ? :string : :json - respond_with(stats.hot_threads(options), {:as => as}) - end + as = options[:human] ? :string : :json + respond_with({:hot_threads => node.hot_threads(options)}, {:as => as}) + end end end end diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index a744eb8ee33..73a7e1bd1b8 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -3,6 +3,11 @@ module LogStash module Api module Modules class NodeStats < ::LogStash::Api::Modules::Base + #set :environment, :test + #set :dump_errors, true + #set :raise_errors, true + #set :logging, Logger.new(STDERR) + before do @stats = factory.build(:stats) @@ -14,7 +19,8 @@ class NodeStats < ::LogStash::Api::Modules::Base payload = { :events => events_payload, :jvm => jvm_payload, - :process => process_payload + :process => process_payload, + :mem => mem_payload } respond_with payload @@ -40,6 +46,10 @@ class NodeStats < ::LogStash::Api::Modules::Base respond_with :process => process_payload end + get "/mem" do + respond_with :mem => mem_payload + end + private def events_payload @@ -53,6 +63,10 @@ def jvm_payload def process_payload @stats.process end + + def mem_payload + @stats.memory + end end end end diff --git a/logstash-core/lib/logstash/api/service.rb b/logstash-core/lib/logstash/api/service.rb index d286f8f0ca0..32563fc994e 100644 --- a/logstash-core/lib/logstash/api/service.rb +++ b/logstash-core/lib/logstash/api/service.rb @@ -26,14 +26,8 @@ def get_shallow(*path) snapshot.metric_store.get_shallow(*path) end - def get(key) - metric_store = @snapshot_rotation_mutex.synchronize { @snapshot.metric_store } - if key == :jvm_memory_stats - data = metric_store.get_shallow(:jvm, :memory) - else - data = metric_store.get_with_path("stats/events") - end - LogStash::Json.dump(data) + def extract_metrics(path, *keys) + snapshot.metric_store.extract_metrics(path, *keys) end end end diff --git a/logstash-core/lib/logstash/instrument/metric_store.rb b/logstash-core/lib/logstash/instrument/metric_store.rb index 653f6774440..48240a5579f 100644 --- a/logstash-core/lib/logstash/instrument/metric_store.rb +++ b/logstash-core/lib/logstash/instrument/metric_store.rb @@ -110,6 +110,54 @@ def get_shallow(*key_paths) key_paths.reduce(get(*key_paths)) {|acc, p| acc[p]} end + + # Return a hash including the values of the keys given at the path given + # + # Example Usage: + # extract_metrics( + # [:jvm, :process], + # :open_file_descriptors, + # [:cpu, [:total_in_millis, :percent]] + # ) + # + # Returns: + # # From the jvm.process metrics namespace + # { + # :open_file_descriptors => 123 + # :cpu => { :total_in_millis => 456, :percent => 789 } + # } + def extract_metrics(path, *keys) + metrics = get_shallow(*path) + + keys.reduce({}) do |acc,k| + # Get the value of this key, recurse as needed + # to get deeply nested paths + v = if k.is_a?(Array) + # We have a nested hash, time to recurse + res = extract_metrics(path + k[0..-2], *k.last) + # We're only going one level deep into the array in this frame + # so make the key that one. Otherwise we get the full path + # as an array as the key, which makes no sense + k = k.first + res + else # Scalar value + metrics[k] + end + + if v.is_a?(Hash) + # This is a nested structure, simple assignment + acc[k] = v + else + # This is a Metric object, we need to extract its value + # If the metric didn't exist it might be nil, but we still want its key + # to exist with a nil value + acc[k] = v ? v.value : nil; acc + end + + acc + end + end + # Return all the individuals Metric, # This call mimic a Enum's each if a block is provided # diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 8c6a6cf221c..024f75c7f1a 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -188,6 +188,12 @@ def start_workers batch_size = @settings.get("pipeline.batch.size") batch_delay = @settings.get("pipeline.batch.delay") max_inflight = batch_size * pipeline_workers + + config_metric = metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :config]) + config_metric.gauge(:workers, pipeline_workers) + config_metric.gauge(:batch_size, batch_size) + config_metric.gauge(:batch_delay, batch_delay) + @logger.info("Starting pipeline", "id" => self.pipeline_id, "pipeline.workers" => pipeline_workers, diff --git a/logstash-core/spec/api/lib/api/node_spec.rb b/logstash-core/spec/api/lib/api/node_spec.rb index ae548337dde..7074956cf3b 100644 --- a/logstash-core/spec/api/lib/api/node_spec.rb +++ b/logstash-core/spec/api/lib/api/node_spec.rb @@ -34,7 +34,7 @@ end it "should return information for <= # requested threads" do - expect(payload["threads"].count).to be <= 5 + expect(payload["hot_threads"]["threads"].count).to be <= 5 end end @@ -55,5 +55,44 @@ end end + describe "Generic JSON testing" do + extend ResourceDSLMethods + + root_structure = { + "pipeline" => { + "workers" => Numeric, + "batch_size" => Numeric, + "batch_delay" => Numeric + }, + "os" => { + "name" => String, + "arch" => String, + "version" => String, + "available_processors" => Numeric + }, + "jvm" => { + "pid" => Numeric, + "version" => String, + "vm_name" => String, + "vm_version" => String, + "vm_vendor" => String, + "start_time_in_millis" => Numeric, + "mem" => { + "heap_init_in_bytes" => Numeric, + "heap_max_in_bytes" => Numeric, + "non_heap_init_in_bytes" => Numeric, + "non_heap_max_in_bytes" => Numeric + } + }, + "hot_threads"=> { + "hostname" => String, + "time" => String, + "busiest_threads" => Numeric, + "threads" => Array + } + } + + test_api_and_resources(root_structure) + end end end diff --git a/logstash-core/spec/api/lib/api/node_stats_spec.rb b/logstash-core/spec/api/lib/api/node_stats_spec.rb index addb45667e0..44cc0a3c37e 100644 --- a/logstash-core/spec/api/lib/api/node_stats_spec.rb +++ b/logstash-core/spec/api/lib/api/node_stats_spec.rb @@ -33,8 +33,36 @@ "total_in_millis"=>Numeric, "percent"=>Numeric } + }, + "mem" => { + "heap_used_in_bytes" => Numeric, + "heap_used_percent" => Numeric, + "heap_committed_in_bytes" => Numeric, + "heap_max_in_bytes" => Numeric, + "non_heap_used_in_bytes" => Numeric, + "non_heap_committed_in_bytes" => Numeric, + "pools" => { + "survivor" => { + "peak_used_in_bytes" => Numeric, + "used_in_bytes" => Numeric, + "peak_max_in_bytes" => Numeric, + "max_in_bytes" => Numeric + }, + "old" => { + "peak_used_in_bytes" => Numeric, + "used_in_bytes" => Numeric, + "peak_max_in_bytes" => Numeric, + "max_in_bytes" => Numeric + }, + "young" => { + "peak_used_in_bytes" => Numeric, + "used_in_bytes" => Numeric, + "peak_max_in_bytes" => Numeric, + "max_in_bytes" => Numeric + } + } } } - + test_api_and_resources(root_structure) end diff --git a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb index 786a37f984a..97967677c87 100644 --- a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb +++ b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb @@ -24,12 +24,16 @@ def test_api(expected, path) expect(last_response).to be_ok end - hash_to_mapping(expected).each do |path,klass| - dotted = path.join(".") + hash_to_mapping(expected).each do |resource_path,klass| + dotted = resource_path.join(".") - it "should set '#{dotted}' to be a '#{klass}'" do - path_value = path.reduce(payload) {|acc,v| acc[v]} - expect(path_value).to be_a(klass), "could not find '#{dotted}' in #{payload}" + it "should set '#{dotted}' at '#{path}' to be a '#{klass}'" do + expect(last_response).to be_ok # fail early if need be + resource_path_value = resource_path.reduce(payload) do |acc,v| + expect(acc.has_key?(v)).to eql(true), "Expected to find value '#{v}' in structure '#{acc}', but could not. Payload was '#{payload}'" + acc[v] + end + expect(resource_path_value).to be_a(klass), "could not find '#{dotted}' in #{payload}" end end end From 4c38288d31da27f6d5b928aa209391343efda85d Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 14 Jun 2016 12:55:47 -0500 Subject: [PATCH 192/632] Refactor MetricStore#extract_metrics to handle every possible situation that makes sense Fixes #5381 --- .../lib/logstash/instrument/metric_store.rb | 52 +++++++++------- .../logstash/instrument/metric_store_spec.rb | 61 +++++++++++++++++++ 2 files changed, 90 insertions(+), 23 deletions(-) diff --git a/logstash-core/lib/logstash/instrument/metric_store.rb b/logstash-core/lib/logstash/instrument/metric_store.rb index 48240a5579f..de3c8b3b8dd 100644 --- a/logstash-core/lib/logstash/instrument/metric_store.rb +++ b/logstash-core/lib/logstash/instrument/metric_store.rb @@ -118,6 +118,7 @@ def get_shallow(*key_paths) # [:jvm, :process], # :open_file_descriptors, # [:cpu, [:total_in_millis, :percent]] + # [:pipelines, [:one, :two], :size] # ) # # Returns: @@ -125,33 +126,38 @@ def get_shallow(*key_paths) # { # :open_file_descriptors => 123 # :cpu => { :total_in_millis => 456, :percent => 789 } + # :pipelines => { + # :one => {:size => 90210}, + # :two => {:size => 8675309} + # } # } def extract_metrics(path, *keys) - metrics = get_shallow(*path) - keys.reduce({}) do |acc,k| - # Get the value of this key, recurse as needed - # to get deeply nested paths - v = if k.is_a?(Array) - # We have a nested hash, time to recurse - res = extract_metrics(path + k[0..-2], *k.last) - # We're only going one level deep into the array in this frame - # so make the key that one. Otherwise we get the full path - # as an array as the key, which makes no sense - k = k.first - res - else # Scalar value - metrics[k] + # Simplifiy 1-length keys + k = k.first if k.is_a?(Array) && k.size == 1 + + # If we have array values here we need to recurse + # There are two levels of looping here, one for the paths we might pass in + # one for the upcoming keys we might pass in + if k.is_a?(Array) + # We need to build up future executions to extract_metrics + # which means building up the path and keys arguments. + # We need a nested loop her to execute all permutations of these in case we hit + # something like [[:a,:b],[:c,:d]] which produces 4 different metrics + next_paths = Array(k.first) + next_keys = Array(k[1]) + rest = k[2..-1] + next_paths.each do |next_path| + # If there already is a hash at this location use that so we don't overwrite it + np_hash = acc[next_path] || {} + + acc[next_path] = next_keys.reduce(np_hash) do |a,next_key| + a.merge! extract_metrics(path + [next_path], [next_key, *rest]) end - - if v.is_a?(Hash) - # This is a nested structure, simple assignment - acc[k] = v - else - # This is a Metric object, we need to extract its value - # If the metric didn't exist it might be nil, but we still want its key - # to exist with a nil value - acc[k] = v ? v.value : nil; acc + end + else # Scalar value + res = get_shallow(*path)[k] + acc[k] = res ? res.value : nil end acc diff --git a/logstash-core/spec/logstash/instrument/metric_store_spec.rb b/logstash-core/spec/logstash/instrument/metric_store_spec.rb index 4371977355b..7e579064129 100644 --- a/logstash-core/spec/logstash/instrument/metric_store_spec.rb +++ b/logstash-core/spec/logstash/instrument/metric_store_spec.rb @@ -142,6 +142,67 @@ end end + describe "get_shallow" do + it "should retrieve a path as a single value" do + r = subject.get_shallow(:node, :sashimi, :pipelines, :pipeline01, :processed_events_in) + expect(r.value).to eql(1) + end + end + + describe "extract_metrics" do + it "should retrieve non-nested values correctly" do + r = subject.extract_metrics( + [:node, :sashimi, :pipelines, :pipeline01], + :processed_events_in, + :processed_events_out, + ) + expect(r[:processed_events_in]).to eql(1) + expect(r[:processed_events_out]).to eql(1) + end + + it "should retrieve nested values correctly alongside non-nested ones" do + r = subject.extract_metrics( + [:node, :sashimi, :pipelines, :pipeline01], + :processed_events_in, + [:plugins, :"logstash-output-elasticsearch", :event_in] + ) + expect(r[:processed_events_in]).to eql(1) + expect(r[:plugins][:"logstash-output-elasticsearch"][:event_in]).to eql(1) + end + + it "should retrieve multiple nested keys at a given location" do + r = subject.extract_metrics( + [:node, :sashimi, :pipelines], + [:pipeline01, [:processed_events_in, :processed_events_out]] + ) + + expect(r[:pipeline01][:processed_events_in]).to eql(1) + expect(r[:pipeline01][:processed_events_out]).to eql(1) + end + + it "should retrieve a single key nested in multiple places" do + r = subject.extract_metrics( + [:node, :sashimi, :pipelines], + [[:pipeline01, :pipeline02], :processed_events_out] + ) + + expect(r[:pipeline01][:processed_events_out]).to eql(1) + expect(r[:pipeline02][:processed_events_out]).to eql(1) + end + + it "handle overlaps of paths" do + r = subject.extract_metrics( + [:node, :sashimi, :pipelines], + [:pipeline01, :processed_events_in], + [[:pipeline01, :pipeline02], :processed_events_out] + ) + + expect(r[:pipeline01][:processed_events_in]).to eql(1) + expect(r[:pipeline01][:processed_events_out]).to eql(1) + expect(r[:pipeline02][:processed_events_out]).to eql(1) + end + end + describe "#each" do it "retrieves all the metric" do expect(subject.each.size).to eq(metric_events.size) From 6268e063e322158edf416b64e652a3787bfed02d Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 14 Jun 2016 14:29:29 -0500 Subject: [PATCH 193/632] Move _plugin api to _node/plugin + add tests Fixes #5381 --- logstash-core/lib/logstash/api/rack_app.rb | 2 +- .../spec/api/lib/api/node_plugins_spec.rb | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 logstash-core/spec/api/lib/api/node_plugins_spec.rb diff --git a/logstash-core/lib/logstash/api/rack_app.rb b/logstash-core/lib/logstash/api/rack_app.rb index 6c551b3277c..6a5507d0a32 100644 --- a/logstash-core/lib/logstash/api/rack_app.rb +++ b/logstash-core/lib/logstash/api/rack_app.rb @@ -104,7 +104,7 @@ def self.rack_namespaces(agent) "/_node" => LogStash::Api::Modules::Node, "/_stats" => LogStash::Api::Modules::Stats, "/_node/stats" => LogStash::Api::Modules::NodeStats, - "/_plugins" => LogStash::Api::Modules::Plugins + "/_node/plugins" => LogStash::Api::Modules::Plugins } end end diff --git a/logstash-core/spec/api/lib/api/node_plugins_spec.rb b/logstash-core/spec/api/lib/api/node_plugins_spec.rb new file mode 100644 index 00000000000..d78340effd3 --- /dev/null +++ b/logstash-core/spec/api/lib/api/node_plugins_spec.rb @@ -0,0 +1,32 @@ +# encoding: utf-8 +require_relative "../../spec_helper" +require "sinatra" +require "logstash/api/modules/plugins" +require "logstash/json" + +describe LogStash::Api::Modules::Plugins do + include_context "api setup" + + extend ResourceDSLMethods + + before(:all) do + do_request { get "/" } + end + + let(:payload) { LogStash::Json.load(last_response.body) } + + describe "retrieving plugins" do + it "should return OK" do + expect(last_response).to be_ok + end + + it "should return a list of plugins" do + expect(payload["plugins"]).to be_a(Array) + end + + it "should return the total number of plugins" do + expect(payload["total"]).to be_a(Numeric) + end + + end +end From 0f478b4faa876ed0d42e803b3bd81ca9d550a801 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 14 Jun 2016 14:42:10 -0500 Subject: [PATCH 194/632] Remove hot_threads from default _node API endpoint results Fixes #5381 --- logstash-core/lib/logstash/api/commands/node.rb | 3 +-- logstash-core/spec/api/lib/api/node_spec.rb | 2 +- .../spec/api/lib/api/support/resource_dsl_methods.rb | 7 +++++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/node.rb b/logstash-core/lib/logstash/api/commands/node.rb index c5d56747323..cc74e0bb82b 100644 --- a/logstash-core/lib/logstash/api/commands/node.rb +++ b/logstash-core/lib/logstash/api/commands/node.rb @@ -8,8 +8,7 @@ def all { :pipeline => pipeline, :os => os, - :jvm => jvm, - :hot_threads => hot_threads + :jvm => jvm } end diff --git a/logstash-core/spec/api/lib/api/node_spec.rb b/logstash-core/spec/api/lib/api/node_spec.rb index 7074956cf3b..c9317231449 100644 --- a/logstash-core/spec/api/lib/api/node_spec.rb +++ b/logstash-core/spec/api/lib/api/node_spec.rb @@ -92,7 +92,7 @@ } } - test_api_and_resources(root_structure) + test_api_and_resources(root_structure, :exclude_from_root => ["hot_threads"]) end end end diff --git a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb index 97967677c87..0e75c5d00fd 100644 --- a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb +++ b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb @@ -41,8 +41,11 @@ def test_api(expected, path) yield if block_given? # Add custom expectations end - def test_api_and_resources(expected) - test_api(expected, "/") + def test_api_and_resources(expected, xopts={}) + xopts[:exclude_from_root] ||= [] + root_expectation = expected.clone + xopts[:exclude_from_root].each {|k| root_expectation.delete(k)} + test_api(root_expectation, "/") expected.keys.each do |key| test_api({key => expected[key]}, "/#{key}") From 11c3b83d10500fae6b572ae5b8ff74c210b2914e Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 14 Jun 2016 21:12:50 -0500 Subject: [PATCH 195/632] Bring back accidentally deleted regexp param required validation Fixes #5500 --- logstash-core/lib/logstash/config/mixin.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 83198e0abbc..7add958ed19 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -342,6 +342,10 @@ def validate_check_required_parameter_names(params) @config.each do |config_key, config| next unless config[:required] + if config_key.is_a?(Regexp) && !params.keys.any? { |k| k =~ config_key } + is_valid = false + end + value = params[config_key] if value.nil? || (config[:list] && Array(value).empty?) @logger.error(I18n.t("logstash.runner.configuration.setting_missing", From 95cdab35838563a7da90426331bdf681c67d6a86 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 14 Jun 2016 12:24:58 +0200 Subject: [PATCH 196/632] add cleaner error for when the webserver port is already in use Fixes #5489 --- logstash-core/lib/logstash/webserver.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/logstash-core/lib/logstash/webserver.rb b/logstash-core/lib/logstash/webserver.rb index 1498f380493..e7f7c2efcda 100644 --- a/logstash-core/lib/logstash/webserver.rb +++ b/logstash-core/lib/logstash/webserver.rb @@ -43,6 +43,9 @@ def run @server.add_tcp_listener(http_host, http_port) @server.run.join + rescue Errno::EADDRINUSE + message = "Logstash tried to bind to port #{@http_port}, but the port is already in use. You can specify a new port by launching logtash with the --http-port option." + raise Errno::EADDRINUSE.new(message) end def log(str) From 562754b11aef83d39f2e7852380673b6e59a9878 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 14 Jun 2016 15:32:27 +0100 Subject: [PATCH 197/632] make -V/--version fast on *nix --- bin/logstash | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/bin/logstash b/bin/logstash index 7ddc8bb568f..45d65afc384 100755 --- a/bin/logstash +++ b/bin/logstash @@ -46,4 +46,11 @@ fi . "$(cd `dirname $SOURCEPATH`/..; pwd)/bin/logstash.lib.sh" setup -ruby_exec "${LOGSTASH_HOME}/lib/bootstrap/environment.rb" "logstash/runner.rb" "$@" +if [ "$1" = "-V" ] || [ "$1" = "--version" ]; +then + LOGSTASH_VERSION_FILE="${LOGSTASH_HOME}/logstash-core/lib/logstash/version.rb" + LOGSTASH_VERSION="$(sed -ne 's/^LOGSTASH_VERSION = "\([^*]*\)"$/\1/p' $LOGSTASH_VERSION_FILE)" + echo "logstash $LOGSTASH_VERSION" +else + ruby_exec "${LOGSTASH_HOME}/lib/bootstrap/environment.rb" "logstash/runner.rb" "$@" +fi From fc39bba223f0b7ba964d2dda92f1cd91efbb3ede Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 15 Jun 2016 17:57:11 +0100 Subject: [PATCH 198/632] add acceptance test --- .../spec/shared_examples/cli/logstash/version.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb index 97a2027064b..b9b47131a7f 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb @@ -14,9 +14,15 @@ context "on #{logstash.hostname}" do it "returns the right logstash version" do - result = logstash.run_command_in_path("bin/logstash --path.settings=/etc/logstash --version") + result = logstash.run_command_in_path("bin/logstash --version") expect(result).to run_successfully_and_output(/#{LOGSTASH_VERSION}/) end + context "when also using the --path.settings argument" do + it "returns the right logstash version" do + result = logstash.run_command_in_path("bin/logstash --path.settings=/etc/logstash --version") + expect(result).to run_successfully_and_output(/#{LOGSTASH_VERSION}/) + end + end end end end From 48b78e8c586b13ad00ad5e680bc0a7992fca3d7c Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 16 Jun 2016 12:56:56 -0500 Subject: [PATCH 199/632] Fix a regression where untyped fields would return null values This patch fixes a bug where config fields declared without a type would just return null. Fixes #5512 --- logstash-core/lib/logstash/config/mixin.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 7add958ed19..5ffd320cc1d 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -430,7 +430,7 @@ def validate_value(value, validator) result = nil if validator.nil? - return true + return true, value elsif validator.is_a?(Array) value = [*value] if value.size > 1 From 74672c994b343aadc7f7afd682135e118b092efc Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 16 Jun 2016 14:26:09 -0500 Subject: [PATCH 200/632] Fix direct require of environment.rb to properly load Socket class This was causing devutils to fail Fixes #5511 --- logstash-core/lib/logstash/environment.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 9f1777498fd..560629ff47f 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -2,6 +2,7 @@ require "logstash/errors" require "logstash/config/cpu_core_strategy" require "logstash/settings" +require "socket" module LogStash From 73c1e6805045d759be3ee38d88c6d99ac7183b5b Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 16 Jun 2016 13:55:23 -0400 Subject: [PATCH 201/632] Namespace should use a copy of the arrays when creating a sub space Fix: #5510 Fixes #5513 --- logstash-core/lib/logstash/instrument/namespaced_metric.rb | 2 +- .../spec/logstash/instrument/namespaced_metric_spec.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/instrument/namespaced_metric.rb b/logstash-core/lib/logstash/instrument/namespaced_metric.rb index 6b0ad020e60..330ded453bc 100644 --- a/logstash-core/lib/logstash/instrument/namespaced_metric.rb +++ b/logstash-core/lib/logstash/instrument/namespaced_metric.rb @@ -45,7 +45,7 @@ def collector end def namespace(name) - NamespacedMetric.new(metric, namespace_name.concat(Array(name))) + NamespacedMetric.new(metric, namespace_name + Array(name)) end private diff --git a/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb b/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb index 6ba84168df9..289a9dba566 100644 --- a/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb +++ b/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb @@ -22,4 +22,11 @@ it "returns the value of the block" do expect(subject.time(:duration_ms) { "hello" }).to eq("hello") end + + it "its doesnt change the original `namespace` when creating a subnamespace" do + new_namespace = subject.namespace(:wally) + + expect(subject.namespace_name).to eq([namespace]) + expect(new_namespace.namespace_name).to eq([:stats, :wally]) + end end From 85e39d99f176c961d3ea15ec1bb2f1b4e0bef6c6 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Thu, 16 Jun 2016 11:41:05 +0200 Subject: [PATCH 202/632] Add the idea of experimental platforms for the acceptance testing framework, this will let us keep focus on platforms inside the support matrix, but also do some testing on upcoming platforms without mixing boths ideas. Fixes #5506 --- qa/Rakefile | 20 +++++++++++++------- qa/acceptance/spec/spec_helper.rb | 3 ++- qa/config/platforms.json | 4 +++- qa/platform_config.rb | 13 ++++++++----- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/qa/Rakefile b/qa/Rakefile index ffcde89f07a..88c1e1c97b7 100644 --- a/qa/Rakefile +++ b/qa/Rakefile @@ -13,6 +13,12 @@ namespace :qa do namespace :vm do + def user_feedback_string_for(action, platform, machines, options={}) + experimental_string = options["experimental"] ? "experimental" : "non experimental" + message = "#{action} all #{experimental_string} VM's defined in acceptance/Vagrantfile" + "#{message} for #{platform}: #{machines}" if !platform.nil? + end + desc "Generate a valid ssh-config" task :ssh_config do require "json" @@ -24,10 +30,10 @@ namespace :qa do desc "Bootstrap all the VM's used for this tests" task :setup, :platform do |t, args| config = PlatformConfig.new - machines = config.select_names_for(args[:platform]) + experimental = (ENV['LS_QA_EXPERIMENTAL'].to_s.downcase || "false") == "true" + machines = config.select_names_for(args[:platform], {"experimental" => experimental}) - message = "bootstraping all VM's defined in acceptance/Vagrantfile" - message = "#{message} for #{args[:platform]}: #{machines}" if !args[:platform].nil? + puts user_feedback_string_for("bootstraping", args[:platform], machines, {"experimental" => experimental}) LogStash::VagrantHelpers.destroy(machines) LogStash::VagrantHelpers.bootstrap(machines) @@ -36,10 +42,10 @@ namespace :qa do desc "Halt all VM's involved in the acceptance test round" task :halt, :platform do |t, args| config = PlatformConfig.new - machines = config.select_names_for(args[:platform]) - message = "halting all VM's defined inside Vagrantfile" - message = "#{message} for #{args[:platform]}: #{machines}" if !args[:platform].nil? - puts message + experimental = (ENV['LS_QA_EXPERIMENTAL'].to_s.downcase || "false") == "true" + machines = config.select_names_for(args[:platform], {"experimental" => experimental}) + + puts user_feedback_string_for("halting", args[:platform], machines, {"experimental" => experimental}) LogStash::VagrantHelpers.halt(machines) end diff --git a/qa/acceptance/spec/spec_helper.rb b/qa/acceptance/spec/spec_helper.rb index 8cceefd5c13..edd696f6ad6 100644 --- a/qa/acceptance/spec/spec_helper.rb +++ b/qa/acceptance/spec/spec_helper.rb @@ -15,11 +15,12 @@ end platform = ENV['LS_TEST_PLATFORM'] || 'all' +experimental = (ENV['LS_QA_EXPERIMENTAL'].to_s.downcase || "false") == "true" config = PlatformConfig.new LOGSTASH_LATEST_VERSION = config.latest -default_vagrant_boxes = ( platform == 'all' ? config.platforms : config.filter_type(platform) ) +default_vagrant_boxes = ( platform == 'all' ? config.platforms : config.filter_type(platform, {"experimental" => experimental}) ) selected_boxes = if ENV.include?('LS_VAGRANT_HOST') then config.platforms.select { |p| p.name == ENV['LS_VAGRANT_HOST'] } diff --git a/qa/config/platforms.json b/qa/config/platforms.json index 3556b418cb2..52f8223644e 100644 --- a/qa/config/platforms.json +++ b/qa/config/platforms.json @@ -3,11 +3,13 @@ "platforms" : { "ubuntu-1204": { "box": "elastic/ubuntu-12.04-x86_64", "type": "debian" }, "ubuntu-1404": { "box": "elastic/ubuntu-14.04-x86_64", "type": "debian", "specific": true }, - "ubuntu-1604": { "box": "elastic/ubuntu-16.04-x86_64", "type": "debian" }, + "ubuntu-1604": { "box": "elastic/ubuntu-16.04-x86_64", "type": "debian", "experimental": true }, "centos-6": { "box": "elastic/centos-6-x86_64", "type": "redhat" }, "centos-7": { "box": "elastic/centos-7-x86_64", "type": "redhat" }, "oel-6": { "box": "elastic/oraclelinux-6-x86_64", "type": "redhat" }, "oel-7": { "box": "elastic/oraclelinux-7-x86_64", "type": "redhat" }, + "fedora-22": { "box": "elastic/fedora-22-x86_64", "type": "redhat", "experimental": true }, + "fedora-23": { "box": "elastic/fedora-23-x86_64", "type": "redhat", "experimental": true }, "debian-8": { "box": "elastic/debian-8-x86_64", "type": "debian", "specific": true }, "opensuse-13": { "box": "elastic/opensuse-13-x86_64", "type": "suse" }, "sles-11": { "box": "elastic/sles-11-x86_64", "type": "suse", "specific": true }, diff --git a/qa/platform_config.rb b/qa/platform_config.rb index 42e4b197404..37073b2bb50 100644 --- a/qa/platform_config.rb +++ b/qa/platform_config.rb @@ -11,12 +11,13 @@ class PlatformConfig # Abstract the idea of a platform, aka an OS class Platform - attr_reader :name, :box, :type, :bootstrap + attr_reader :name, :box, :type, :bootstrap, :experimental def initialize(name, data) @name = name @box = data["box"] @type = data["type"] + @experimental = data["experimental"] || false configure_bootstrap_scripts(data) end @@ -63,12 +64,14 @@ def each(&block) @platforms.each(&block) end - def filter_type(type_name) - @platforms.select { |platform| platform.type == type_name } + def filter_type(type_name, options={}) + experimental = options.fetch("experimental", false) + @platforms.select { |platform| platform.type == type_name && platform.experimental == experimental } end - def select_names_for(platform=nil) - !platform.nil? ? filter_type(platform).map{ |p| p.name } : "" + def select_names_for(platform, options={}) + filter_options = { "experimental" => options.fetch("experimental", false) } + !platform.nil? ? filter_type(platform, filter_options).map{ |p| p.name } : "" end def types From 3d8608f5a512e32e55cd3e960f3966359072abe7 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Thu, 16 Jun 2016 17:29:58 +0200 Subject: [PATCH 203/632] make LS_QA_EXPERIMENTAL be LS_QA_EXPERIMENTAL_OS Fixes #5506 --- qa/Rakefile | 4 ++-- qa/acceptance/spec/spec_helper.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/qa/Rakefile b/qa/Rakefile index 88c1e1c97b7..b432a79f91d 100644 --- a/qa/Rakefile +++ b/qa/Rakefile @@ -30,7 +30,7 @@ namespace :qa do desc "Bootstrap all the VM's used for this tests" task :setup, :platform do |t, args| config = PlatformConfig.new - experimental = (ENV['LS_QA_EXPERIMENTAL'].to_s.downcase || "false") == "true" + experimental = (ENV['LS_QA_EXPERIMENTAL_OS'].to_s.downcase || "false") == "true" machines = config.select_names_for(args[:platform], {"experimental" => experimental}) puts user_feedback_string_for("bootstraping", args[:platform], machines, {"experimental" => experimental}) @@ -42,7 +42,7 @@ namespace :qa do desc "Halt all VM's involved in the acceptance test round" task :halt, :platform do |t, args| config = PlatformConfig.new - experimental = (ENV['LS_QA_EXPERIMENTAL'].to_s.downcase || "false") == "true" + experimental = (ENV['LS_QA_EXPERIMENTAL_OS'].to_s.downcase || "false") == "true" machines = config.select_names_for(args[:platform], {"experimental" => experimental}) puts user_feedback_string_for("halting", args[:platform], machines, {"experimental" => experimental}) diff --git a/qa/acceptance/spec/spec_helper.rb b/qa/acceptance/spec/spec_helper.rb index edd696f6ad6..99d6bb9a141 100644 --- a/qa/acceptance/spec/spec_helper.rb +++ b/qa/acceptance/spec/spec_helper.rb @@ -15,7 +15,7 @@ end platform = ENV['LS_TEST_PLATFORM'] || 'all' -experimental = (ENV['LS_QA_EXPERIMENTAL'].to_s.downcase || "false") == "true" +experimental = (ENV['LS_QA_EXPERIMENTAL_OS'].to_s.downcase || "false") == "true" config = PlatformConfig.new LOGSTASH_LATEST_VERSION = config.latest From bd43b287648155ffa6445d0507c6c46f1dd22772 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 17 Jun 2016 10:00:44 +0100 Subject: [PATCH 204/632] Revert "add acceptance test" This reverts commit fc39bba223f0b7ba964d2dda92f1cd91efbb3ede. --- .../spec/shared_examples/cli/logstash/version.rb | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb index b9b47131a7f..97a2027064b 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb @@ -14,15 +14,9 @@ context "on #{logstash.hostname}" do it "returns the right logstash version" do - result = logstash.run_command_in_path("bin/logstash --version") + result = logstash.run_command_in_path("bin/logstash --path.settings=/etc/logstash --version") expect(result).to run_successfully_and_output(/#{LOGSTASH_VERSION}/) end - context "when also using the --path.settings argument" do - it "returns the right logstash version" do - result = logstash.run_command_in_path("bin/logstash --path.settings=/etc/logstash --version") - expect(result).to run_successfully_and_output(/#{LOGSTASH_VERSION}/) - end - end end end end From bb0694d69a16c13a9b16369f7c42ec8dda65abb7 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 17 Jun 2016 10:00:57 +0100 Subject: [PATCH 205/632] Revert "make -V/--version fast on *nix" This reverts commit 562754b11aef83d39f2e7852380673b6e59a9878. --- bin/logstash | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/bin/logstash b/bin/logstash index 45d65afc384..7ddc8bb568f 100755 --- a/bin/logstash +++ b/bin/logstash @@ -46,11 +46,4 @@ fi . "$(cd `dirname $SOURCEPATH`/..; pwd)/bin/logstash.lib.sh" setup -if [ "$1" = "-V" ] || [ "$1" = "--version" ]; -then - LOGSTASH_VERSION_FILE="${LOGSTASH_HOME}/logstash-core/lib/logstash/version.rb" - LOGSTASH_VERSION="$(sed -ne 's/^LOGSTASH_VERSION = "\([^*]*\)"$/\1/p' $LOGSTASH_VERSION_FILE)" - echo "logstash $LOGSTASH_VERSION" -else - ruby_exec "${LOGSTASH_HOME}/lib/bootstrap/environment.rb" "logstash/runner.rb" "$@" -fi +ruby_exec "${LOGSTASH_HOME}/lib/bootstrap/environment.rb" "logstash/runner.rb" "$@" From 5a4d4bc3ba12d79804bb786761655056751e58b7 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Sat, 4 Jun 2016 08:41:58 -0700 Subject: [PATCH 206/632] Track wallclock time spent in each filter. Fixes #5472 --- logstash-core/lib/logstash/filter_delegator.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/logstash-core/lib/logstash/filter_delegator.rb b/logstash-core/lib/logstash/filter_delegator.rb index 132d03f933e..0c899f97de8 100644 --- a/logstash-core/lib/logstash/filter_delegator.rb +++ b/logstash-core/lib/logstash/filter_delegator.rb @@ -37,7 +37,9 @@ def config_name def multi_filter(events) @metric_events.increment(:in, events.size) + start = Time.now new_events = @filter.multi_filter(events) + @filter.metric.increment(:time_ms, ((Time.now - start)*1000).to_i) # There is no garantee in the context of filter # that EVENTS_INT == EVENTS_OUT, see the aggregates and From 1eef8c9be7f145eca1bbfa19ca82a20373a34049 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Sat, 4 Jun 2016 08:42:15 -0700 Subject: [PATCH 207/632] Expose pipeline metrics to /_node/stats/pipelines Fixes #5472 --- logstash-core/lib/logstash/api/commands/stats.rb | 4 ++++ logstash-core/lib/logstash/api/modules/node_stats.rb | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index 8737d65ebd7..d3ad27f259e 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -33,6 +33,10 @@ def events ) end + def pipeline + service.get_shallow(:stats, :pipelines) + end + def memory memory = service.get_shallow(:jvm, :memory) { diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index 73a7e1bd1b8..251531985a4 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -50,6 +50,10 @@ class NodeStats < ::LogStash::Api::Modules::Base respond_with :mem => mem_payload end + get "/pipeline" do + respond_with :pipeline => pipeline_payload + end + private def events_payload @@ -67,6 +71,10 @@ def process_payload def mem_payload @stats.memory end + + def pipeline_payload + @stats.pipeline + end end end end From 6cb0b538e357ee7027724d238e22beb202ba503d Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Sat, 4 Jun 2016 09:11:09 -0700 Subject: [PATCH 208/632] Fix failing tests. Allow metric time_ms capture now. Fixes #5472 --- logstash-core/spec/logstash/filter_delegator_spec.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/logstash-core/spec/logstash/filter_delegator_spec.rb b/logstash-core/spec/logstash/filter_delegator_spec.rb index 595fbfedc36..a381d97e161 100644 --- a/logstash-core/spec/logstash/filter_delegator_spec.rb +++ b/logstash-core/spec/logstash/filter_delegator_spec.rb @@ -68,8 +68,9 @@ def filter(event) context "when the filter buffer events" do it "doesn't increment out" do + allow(metric).to receive(:increment).with(:time_ms, anything) expect(metric).to receive(:increment).with(:in, events.size) - expect(metric).not_to receive(:increment) + expect(metric).not_to receive(:increment).with(:out, anything) subject.multi_filter(events) end @@ -92,6 +93,7 @@ def filter(event) end it "increments the in/out of the metric" do + allow(metric).to receive(:increment).with(:time_ms, anything) expect(metric).to receive(:increment).with(:in, events.size) expect(metric).to receive(:increment).with(:out, events.size * 2) @@ -117,6 +119,7 @@ def filter(event) end it "increments the in/out of the metric" do + allow(metric).to receive(:increment).with(:time_ms, anything) expect(metric).to receive(:increment).with(:in, events.size) expect(metric).to receive(:increment).with(:out, events.size) From a8282184f396fdd4da730b8e696246f9f17beb44 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Sun, 5 Jun 2016 03:36:42 -0700 Subject: [PATCH 209/632] Slight tidying of specs Any metric calls are now allowed. This should help us grow our metrics usage without accidentally failing tests that were too rigid. I also split some testing up to have more alignment between the 'it' description and the execution. Fixes #5472 --- .../spec/logstash/filter_delegator_spec.rb | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/logstash-core/spec/logstash/filter_delegator_spec.rb b/logstash-core/spec/logstash/filter_delegator_spec.rb index a381d97e161..027ddfdd104 100644 --- a/logstash-core/spec/logstash/filter_delegator_spec.rb +++ b/logstash-core/spec/logstash/filter_delegator_spec.rb @@ -67,11 +67,17 @@ def filter(event) end context "when the filter buffer events" do - it "doesn't increment out" do - allow(metric).to receive(:increment).with(:time_ms, anything) + before do + allow(metric).to receive(:increment).with(anything, anything) + end + + it "has incremented :in" do expect(metric).to receive(:increment).with(:in, events.size) - expect(metric).not_to receive(:increment).with(:out, anything) + subject.multi_filter(events) + end + it "has not incremented :out" do + expect(metric).not_to receive(:increment).with(:out, anything) subject.multi_filter(events) end end @@ -92,8 +98,11 @@ def filter(event) end end + before do + allow(metric).to receive(:increment).with(anything, anything) + end + it "increments the in/out of the metric" do - allow(metric).to receive(:increment).with(:time_ms, anything) expect(metric).to receive(:increment).with(:in, events.size) expect(metric).to receive(:increment).with(:out, events.size * 2) @@ -114,12 +123,15 @@ def filter(event) end end + before do + allow(metric).to receive(:increment).with(anything, anything) + end + it "doesnt define a flush method" do expect(subject.respond_to?(:flush)).to be_falsey end it "increments the in/out of the metric" do - allow(metric).to receive(:increment).with(:time_ms, anything) expect(metric).to receive(:increment).with(:in, events.size) expect(metric).to receive(:increment).with(:out, events.size) From f5335c990a059ff03154482d0f9b12d67fcc41ad Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Sun, 12 Jun 2016 19:43:53 -0700 Subject: [PATCH 210/632] Structure the "plugins" stats as an array of data points. Each data point contains the stats for a plugin instance (one particular grok, for example). Fixes #5472 --- .../lib/logstash/api/commands/stats.rb | 96 ++++++++++++++++++- 1 file changed, 94 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index d3ad27f259e..533d3e7e862 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -34,7 +34,8 @@ def events end def pipeline - service.get_shallow(:stats, :pipelines) + stats = service.get_shallow(:stats, :pipelines) + PluginsStats.report(stats) end def memory @@ -53,7 +54,98 @@ def memory acc end } - end + end + + def hot_threads(options={}) + HotThreadsReport.new(self, options) + end + + class HotThreadsReport + HOT_THREADS_STACK_TRACES_SIZE_DEFAULT = 10.freeze + + def initialize(cmd, options) + @cmd = cmd + filter = { :stacktrace_size => options.fetch(:stacktrace_size, HOT_THREADS_STACK_TRACES_SIZE_DEFAULT) } + jr_dump = JRMonitor.threads.generate(filter) + @thread_dump = ::LogStash::Util::ThreadDump.new(options.merge(:dump => jr_dump)) + end + + def to_s + hash = to_hash + report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" + report << '=' * 80 + report << "\n" + hash[:threads].each do |thread| + thread_report = "" + thread_report = "#{I18n.t("logstash.web_api. + hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" + thread_report = "#{thread[:percent_of_cpu_time]} % of of cpu usage by #{thread[:state]} thread named '#{thread[:name]}'\n" + thread_report << "#{thread[:path]}\n" if thread[:path] + thread[:traces].each do |trace| + thread_report << "\t#{trace}\n" + end + report << thread_report + report << '-' * 80 + report << "\n" + end + report + end + + def to_hash + hash = { :hostname => @cmd.hostname, :time => Time.now.iso8601, :busiest_threads => @thread_dump.top_count, :threads => [] } + @thread_dump.each do |thread_name, _hash| + thread_name, thread_path = _hash["thread.name"].split(": ") + thread = { :name => thread_name, + :percent_of_cpu_time => cpu_time_as_percent(_hash), + :state => _hash["thread.state"] + } + thread[:path] = thread_path if thread_path + traces = [] + _hash["thread.stacktrace"].each do |trace| + traces << trace + end + thread[:traces] = traces unless traces.empty? + hash[:threads] << thread + end + hash + end + + def cpu_time_as_percent(hash) + (((cpu_time(hash) / @cmd.uptime * 1.0)*10000).to_i)/100.0 + end + + def cpu_time(hash) + hash["cpu.time"] / 1000000.0 + end + end # class HotThreadsReport + + module PluginsStats + module_function + + def plugin_stats(stats, plugin_type) + # Turn the `plugins` stats hash into an array of [ {}, {}, ... ] + # This is to produce an array of data points, one point for each + # plugin instance. + return [] unless stats[:plugins].include?(plugin_type) + stats[:plugins][plugin_type].collect do |id, data| + { :id => id }.merge(data) + end + end + + def report(stats) + # Only one pipeline right now. + stats = stats[:main] + + { + :events => stats[:events], + :pipeline => { + :inputs => plugin_stats(stats, :inputs), + :filters => plugin_stats(stats, :filters), + :outputs => plugin_stats(stats, :outputs) + } + } + end + end # module PluginsStats end end end From c8f7aee9b1cdb853d1ac7460c6d3ebff5f8b3e17 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Sun, 12 Jun 2016 19:51:18 -0700 Subject: [PATCH 211/632] Rename :time_ms to :duration_in_millis This was chosen based on discussion w/ Suyog, Alvin, and others. Fixes #5472 --- logstash-core/lib/logstash/filter_delegator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/filter_delegator.rb b/logstash-core/lib/logstash/filter_delegator.rb index 0c899f97de8..712c2bc4b23 100644 --- a/logstash-core/lib/logstash/filter_delegator.rb +++ b/logstash-core/lib/logstash/filter_delegator.rb @@ -39,7 +39,7 @@ def multi_filter(events) start = Time.now new_events = @filter.multi_filter(events) - @filter.metric.increment(:time_ms, ((Time.now - start)*1000).to_i) + @filter.metric.increment(:duration_in_millis, ((Time.now - start)*1000).to_i) # There is no garantee in the context of filter # that EVENTS_INT == EVENTS_OUT, see the aggregates and From 07be0dcb3bd54e22aad19b7dd057d5162a96081d Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Tue, 14 Jun 2016 05:46:51 -0700 Subject: [PATCH 212/632] Use metric#time instead of computing duration locally. Fix a bug in the metric that called 'milliseconds' 1_000_000 for a multiplier when it should be 1000. Fixes #5472 --- logstash-core/lib/logstash/filter_delegator.rb | 4 ++-- logstash-core/lib/logstash/instrument/metric.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/logstash-core/lib/logstash/filter_delegator.rb b/logstash-core/lib/logstash/filter_delegator.rb index 712c2bc4b23..a18ee83712f 100644 --- a/logstash-core/lib/logstash/filter_delegator.rb +++ b/logstash-core/lib/logstash/filter_delegator.rb @@ -37,9 +37,9 @@ def config_name def multi_filter(events) @metric_events.increment(:in, events.size) - start = Time.now + clock = @filter.metric.time(:duration_in_millis) new_events = @filter.multi_filter(events) - @filter.metric.increment(:duration_in_millis, ((Time.now - start)*1000).to_i) + clock.stop # There is no garantee in the context of filter # that EVENTS_INT == EVENTS_OUT, see the aggregates and diff --git a/logstash-core/lib/logstash/instrument/metric.rb b/logstash-core/lib/logstash/instrument/metric.rb index e6e12262a20..1bc39d75442 100644 --- a/logstash-core/lib/logstash/instrument/metric.rb +++ b/logstash-core/lib/logstash/instrument/metric.rb @@ -46,7 +46,7 @@ def time(namespace, key) end def report_time(namespace, key, duration) - collector.push(namespace, key, :mean, :increment, duration) + collector.push(namespace, key, :counter, :increment, duration) end # This method return a metric instance tied to a specific namespace @@ -81,7 +81,7 @@ def validate_key!(key) # # @see LogStash::Instrument::Metric#time class TimedExecution - MILLISECONDS = 1_000_000.0.freeze + MILLISECONDS = 1_000.0.freeze def initialize(metric, namespace, key) @metric = metric From 97a2f16b48435badf84ef61f393de9733a10db49 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Tue, 14 Jun 2016 06:23:00 -0700 Subject: [PATCH 213/632] Add a gauge 'name' that shows the plugin's name in metrics Fixes #5472 --- logstash-core/lib/logstash/filter_delegator.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/logstash-core/lib/logstash/filter_delegator.rb b/logstash-core/lib/logstash/filter_delegator.rb index a18ee83712f..dc5219fdb82 100644 --- a/logstash-core/lib/logstash/filter_delegator.rb +++ b/logstash-core/lib/logstash/filter_delegator.rb @@ -24,6 +24,7 @@ def initialize(logger, klass, metric, *args) namespaced_metric = metric.namespace(@filter.plugin_unique_name.to_sym) @filter.metric = metric + namespaced_metric.gauge(:name, config_name) @metric_events = namespaced_metric.namespace(:events) # Not all the filters will do bufferings From fdf19eab2ec229be48e65b1b562403516589f62a Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Tue, 14 Jun 2016 09:48:32 -0700 Subject: [PATCH 214/632] Store duration_in_millis under the 'events' section in metrics Fixes #5472 --- logstash-core/lib/logstash/filter_delegator.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/filter_delegator.rb b/logstash-core/lib/logstash/filter_delegator.rb index dc5219fdb82..7d50ee58ca6 100644 --- a/logstash-core/lib/logstash/filter_delegator.rb +++ b/logstash-core/lib/logstash/filter_delegator.rb @@ -24,8 +24,8 @@ def initialize(logger, klass, metric, *args) namespaced_metric = metric.namespace(@filter.plugin_unique_name.to_sym) @filter.metric = metric - namespaced_metric.gauge(:name, config_name) @metric_events = namespaced_metric.namespace(:events) + namespaced_metric.gauge(:name, config_name) # Not all the filters will do bufferings define_flush_method if @filter.respond_to?(:flush) @@ -38,7 +38,7 @@ def config_name def multi_filter(events) @metric_events.increment(:in, events.size) - clock = @filter.metric.time(:duration_in_millis) + clock = @metric_events.time(:duration_in_millis) new_events = @filter.multi_filter(events) clock.stop From d2400ac93a63a438891c4e2156c1c13b243a0a83 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Tue, 14 Jun 2016 09:48:53 -0700 Subject: [PATCH 215/632] Add plugin name and wallclock duration to output metrics. Fixes #5472 --- logstash-core/lib/logstash/output_delegator.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/logstash-core/lib/logstash/output_delegator.rb b/logstash-core/lib/logstash/output_delegator.rb index a8d05c18e36..d6450ac4377 100644 --- a/logstash-core/lib/logstash/output_delegator.rb +++ b/logstash-core/lib/logstash/output_delegator.rb @@ -28,6 +28,7 @@ def initialize(logger, klass, default_worker_count, metric, *plugin_args) # Scope the metrics to the plugin namespaced_metric = metric.namespace(output.plugin_unique_name.to_sym) @metric_events = namespaced_metric.namespace(:events) + namespaced_metric.gauge(:name, config_name) @events_received = Concurrent::AtomicFixnum.new(0) end @@ -129,7 +130,9 @@ def threadsafe_multi_receive(events) @events_received.increment(events.length) @metric_events.increment(:in, events.length) + clock = @metric_events.time(:duration_in_millis) @threadsafe_worker.multi_receive(events) + clock.stop @metric_events.increment(:out, events.length) end @@ -139,7 +142,9 @@ def worker_multi_receive(events) worker = @worker_queue.pop begin + clock = @metric_events.time(:duration_in_millis) worker.multi_receive(events) + clock.stop @metric_events.increment(:out, events.length) ensure @worker_queue.push(worker) From 246a2e7ad356e1981ed7adad70b219ce0f3abd89 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Fri, 17 Jun 2016 11:36:48 -0700 Subject: [PATCH 216/632] Fix tests that broke as a result of recent changes Fixes #5472 --- logstash-core/spec/logstash/filter_delegator_spec.rb | 2 +- logstash-core/spec/logstash/instrument/metric_spec.rb | 8 ++++---- logstash-core/spec/logstash/output_delegator_spec.rb | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/logstash-core/spec/logstash/filter_delegator_spec.rb b/logstash-core/spec/logstash/filter_delegator_spec.rb index 027ddfdd104..98586a1736d 100644 --- a/logstash-core/spec/logstash/filter_delegator_spec.rb +++ b/logstash-core/spec/logstash/filter_delegator_spec.rb @@ -82,7 +82,7 @@ def filter(event) end end - context "when the fitler create more events" do + context "when the filter create more events" do let(:plugin_klass) do Class.new(LogStash::Filters::Base) do config_name "super_plugin" diff --git a/logstash-core/spec/logstash/instrument/metric_spec.rb b/logstash-core/spec/logstash/instrument/metric_spec.rb index 0a8a65d4338..4e2eae81e92 100644 --- a/logstash-core/spec/logstash/instrument/metric_spec.rb +++ b/logstash-core/spec/logstash/instrument/metric_spec.rb @@ -67,15 +67,15 @@ context "#time" do let(:sleep_time) { 2 } - let(:sleep_time_ms) { sleep_time * 1_000_000 } + let(:sleep_time_ms) { sleep_time * 1_000 } it "records the duration" do subject.time(:root, :duration_ms) { sleep(sleep_time) } - expect(collector.last).to be_within(sleep_time_ms).of(sleep_time_ms + 5000) + expect(collector.last).to be_within(sleep_time_ms).of(sleep_time_ms + 5) expect(collector[0]).to match(:root) expect(collector[1]).to be(:duration_ms) - expect(collector[2]).to be(:mean) + expect(collector[2]).to be(:counter) end it "returns the value of the executed block" do @@ -90,7 +90,7 @@ expect(collector.last).to be_within(sleep_time_ms).of(sleep_time_ms + 0.1) expect(collector[0]).to match(:root) expect(collector[1]).to be(:duration_ms) - expect(collector[2]).to be(:mean) + expect(collector[2]).to be(:counter) end end diff --git a/logstash-core/spec/logstash/output_delegator_spec.rb b/logstash-core/spec/logstash/output_delegator_spec.rb index 04e4b54a020..ff6fb0a7919 100644 --- a/logstash-core/spec/logstash/output_delegator_spec.rb +++ b/logstash-core/spec/logstash/output_delegator_spec.rb @@ -19,6 +19,7 @@ allow(out_klass).to receive(:threadsafe?).and_return(false) allow(out_klass).to receive(:workers_not_supported?).and_return(false) allow(out_klass).to receive(:name).and_return("example") + allow(out_klass).to receive(:config_name) allow(out_inst).to receive(:register) allow(out_inst).to receive(:multi_receive) allow(out_inst).to receive(:metric=).with(any_args) From d48896a0b1acfd68dfb5f96001ebd65d8d949d18 Mon Sep 17 00:00:00 2001 From: Guy Boertje Date: Fri, 17 Jun 2016 20:26:17 +0100 Subject: [PATCH 217/632] Fix Javafier for MapJavaProxy, ArrayJavaProxy, ConcreteJavaProxy. (#5474) * Fix Javafier for MapJavaProxy, ArrayJavaProxy, ConcreteJavaProxy. + JUnit tests + Rspec test * fix splat imports * use a method instead of switch case code and throw an error if we don't know how to handle the wrapped type. * Add hand crafted map to use in rspec from Java directly and rspec test * changes for review comments. --- logstash-core-event-java/spec/event_spec.rb | 27 ++++ .../src/main/java/com/logstash/Javafier.java | 117 ++++++++++++++---- .../src/main/java/com/logstash/Util.java | 31 +++++ .../test/java/com/logstash/JavafierTest.java | 88 ++++++++++++- 4 files changed, 238 insertions(+), 25 deletions(-) diff --git a/logstash-core-event-java/spec/event_spec.rb b/logstash-core-event-java/spec/event_spec.rb index a70c2307aef..144d817b789 100644 --- a/logstash-core-event-java/spec/event_spec.rb +++ b/logstash-core-event-java/spec/event_spec.rb @@ -5,6 +5,7 @@ require "logstash/event" require "json" require "java" +# java_import 'com.logstash.Util' TIMESTAMP = "@timestamp" @@ -112,6 +113,32 @@ expect(e.get("foo")).to be_kind_of(Bignum) expect(e.get("foo")).to eq(-9223372036854776000) end + + it "should set XXJavaProxy Jackson crafted" do + proxy = com.logstash.Util.getMapFixtureJackson() + # proxy is {"string": "foo", "int": 42, "float": 42.42, "array": ["bar","baz"], "hash": {"string":"quux"} } + e = LogStash::Event.new() + e.set("[proxy]", proxy) + expect(e.get("[proxy][string]")).to eql("foo") + expect(e.get("[proxy][int]")).to eql(42) + expect(e.get("[proxy][float]")).to eql(42.42) + expect(e.get("[proxy][array][0]")).to eql("bar") + expect(e.get("[proxy][array][1]")).to eql("baz") + expect(e.get("[proxy][hash][string]")).to eql("quux") + end + + it "should set XXJavaProxy hand crafted" do + proxy = com.logstash.Util.getMapFixtureHandcrafted() + # proxy is {"string": "foo", "int": 42, "float": 42.42, "array": ["bar","baz"], "hash": {"string":"quux"} } + e = LogStash::Event.new() + e.set("[proxy]", proxy) + expect(e.get("[proxy][string]")).to eql("foo") + expect(e.get("[proxy][int]")).to eql(42) + expect(e.get("[proxy][float]")).to eql(42.42) + expect(e.get("[proxy][array][0]")).to eql("bar") + expect(e.get("[proxy][array][1]")).to eql("baz") + expect(e.get("[proxy][hash][string]")).to eql("quux") + end end context "timestamp" do diff --git a/logstash-core-event-java/src/main/java/com/logstash/Javafier.java b/logstash-core-event-java/src/main/java/com/logstash/Javafier.java index e1e03156be7..76103bf29ef 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Javafier.java +++ b/logstash-core-event-java/src/main/java/com/logstash/Javafier.java @@ -1,44 +1,76 @@ package com.logstash; +import com.logstash.ext.JrubyTimestampExtLibrary; +import org.joda.time.DateTime; import org.jruby.RubyArray; -import org.jruby.RubyHash; -import org.jruby.RubyString; -import org.jruby.RubyObject; +import org.jruby.RubyBignum; import org.jruby.RubyBoolean; -import org.jruby.RubyArray; +import org.jruby.RubyFixnum; import org.jruby.RubyFloat; +import org.jruby.RubyHash; import org.jruby.RubyInteger; import org.jruby.RubyNil; -import org.jruby.RubyBoolean; -import org.jruby.RubyFixnum; -import org.jruby.RubyTime; +import org.jruby.RubyString; import org.jruby.RubySymbol; -import org.jruby.RubyBignum; +import org.jruby.RubyTime; import org.jruby.ext.bigdecimal.RubyBigDecimal; -import com.logstash.ext.JrubyTimestampExtLibrary; +import org.jruby.java.proxies.JavaProxy; +import org.jruby.java.proxies.MapJavaProxy; +import org.jruby.javasupport.JavaUtil; import org.jruby.runtime.builtin.IRubyObject; -import java.math.BigDecimal; -import org.joda.time.DateTime; +import java.math.BigDecimal; import java.math.BigInteger; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class Javafier { + private static final String ERR_TEMPLATE = "Missing Ruby class handling for full class name=%s, simple name=%s"; + private static final String PROXY_ERR_TEMPLATE = "Missing Ruby class handling for full class name=%s, simple name=%s, wrapped object=%s"; private Javafier(){} - public static List deep(RubyArray a) { + public static List deep(IRubyObject[] a) { final ArrayList result = new ArrayList(); - // TODO: (colin) investagate why .toJavaArrayUnsafe() which should be faster by avoiding copying produces nil values spec errors in arrays - for (IRubyObject o : a.toJavaArray()) { + for (IRubyObject o : a) { result.add(deep(o)); } return result; } + public static List deep(RubyArray a) { + return deep(a.toJavaArray()); + } + + private static HashMap deepMap(final Map map) { + final HashMap result = new HashMap(); + + for (Map.Entry entry : map.entrySet()) { + String k; + if (entry.getKey() instanceof IRubyObject) { + k = ((IRubyObject) entry.getKey()).asJavaString(); + } else { + k = String.valueOf(entry.getKey()); + } + result.put(k, deepAnything(entry.getValue())); + } + return result; + } + + private static List deepList(List a) { + final ArrayList result = new ArrayList(); + + for (Object o : a) { + result.add(deepAnything(o)); + } + return result; + } + public static HashMap deep(RubyHash h) { - final HashMap result = new HashMap(); + final HashMap result = new HashMap(); h.visitAll(new RubyHash.Visitor() { @Override @@ -49,6 +81,20 @@ public void visit(IRubyObject key, IRubyObject value) { return result; } + private static Object deepAnything(Object o) { + // because, although we have a Java object (from a JavaProxy??), it may have IRubyObjects inside + if (o instanceof IRubyObject) { + return deep((IRubyObject) o); + } + if (o instanceof Map) { + return deepMap((Map) o); + } + if (o instanceof List) { + return deepList((List) o); + } + return o; + } + public static String deep(RubyString s) { return s.asJavaString(); } @@ -101,14 +147,26 @@ public static Object deep(RubyBoolean.False b) { return false; } + private static Object deepJavaProxy(JavaProxy jp) { + Object obj = JavaUtil.unwrapJavaObject(jp); + if (obj instanceof IRubyObject[]) { + return deep((IRubyObject[])obj); + } + if (obj instanceof List) { + return deepList((List) obj); + } + Class cls = jp.getClass(); + throw new IllegalArgumentException(missingHandlerString(PROXY_ERR_TEMPLATE, cls.getName(), cls.getSimpleName(), obj.getClass().getName())); + } + public static Object deep(IRubyObject o) { // TODO: (colin) this enum strategy is cleaner but I am hoping that is not slower than using a instanceof cascade - + Class cls = o.getClass(); RUBYCLASS clazz; try { - clazz = RUBYCLASS.valueOf(o.getClass().getSimpleName()); + clazz = RUBYCLASS.valueOf(cls.getSimpleName()); } catch (IllegalArgumentException e) { - throw new IllegalArgumentException("Missing Ruby class handling for full class name=" + o.getClass().getName() + ", simple name=" + o.getClass().getSimpleName()); + throw new IllegalArgumentException(missingHandlerString(ERR_TEMPLATE, cls.getName(), cls.getSimpleName())); } switch(clazz) { @@ -127,6 +185,9 @@ public static Object deep(IRubyObject o) { case RubyNil: return deep((RubyNil)o); case True: return deep((RubyBoolean.True)o); case False: return deep((RubyBoolean.False)o); + case MapJavaProxy: return deepMap((Map)((MapJavaProxy) o).getObject()); + case ArrayJavaProxy: return deepJavaProxy((JavaProxy) o); + case ConcreteJavaProxy: return deepJavaProxy((JavaProxy) o); } if (o.isNil()) { @@ -134,7 +195,12 @@ public static Object deep(IRubyObject o) { } // TODO: (colin) temporary trace to spot any unhandled types - System.out.println("***** WARN: UNHANDLED IRubyObject full class name=" + o.getMetaClass().getRealClass().getName() + ", simple name=" + o.getClass().getSimpleName() + " java class=" + o.getJavaClass().toString() + " toString=" + o.toString()); + System.out.println(String.format( + "***** WARN: UNHANDLED IRubyObject full class name=%s, simple name=%s java class=%s toString=%s", + o.getMetaClass().getRealClass().getName(), + o.getClass().getSimpleName(), + o.getJavaClass().toString(), + o.toString())); return o.toJava(o.getJavaClass()); } @@ -150,12 +216,19 @@ enum RUBYCLASS { RubyBoolean, RubyFixnum, RubyBignum, - RubyObject, RubyNil, RubyTime, RubySymbol, True, - False; + False, + // these proxies may wrap a java collection of IRubyObject types + MapJavaProxy, + ArrayJavaProxy, + ConcreteJavaProxy + } + + private static String missingHandlerString(String fmt, String... subs) { + return String.format(fmt, subs); } } diff --git a/logstash-core-event-java/src/main/java/com/logstash/Util.java b/logstash-core-event-java/src/main/java/com/logstash/Util.java index 907fd5489b1..c2050c47ad5 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Util.java +++ b/logstash-core-event-java/src/main/java/com/logstash/Util.java @@ -1,13 +1,44 @@ package com.logstash; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; + public class Util { private Util() {} + public static Object getMapFixtureJackson() throws IOException { + StringBuilder json = new StringBuilder(); + json.append("{"); + json.append("\"string\": \"foo\", "); + json.append("\"int\": 42, "); + json.append("\"float\": 42.42, "); + json.append("\"array\": [\"bar\",\"baz\"], "); + json.append("\"hash\": {\"string\":\"quux\"} }"); + + ObjectMapper mapper = new ObjectMapper(); + return mapper.readValue(json.toString(), Object.class); + } + + public static Map getMapFixtureHandcrafted() { + HashMap inner = new HashMap<>(); + inner.put("string", "quux"); + HashMap map = new HashMap<>(); + map.put("string", "foo"); + map.put("int", 42); + map.put("float", 42.42); + map.put("array", Arrays.asList("bar", "baz")); + map.put("hash", inner); + return map; + } + public static void mapMerge(Map target, Map add) { for (Map.Entry e : add.entrySet()) { if (target.containsKey(e.getKey())) { diff --git a/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java b/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java index 40aaa7b6c53..4e0653b630d 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java +++ b/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java @@ -2,17 +2,99 @@ import org.jruby.Ruby; import org.jruby.RubyBignum; -import java.math.BigInteger; +import org.jruby.RubyClass; +import org.jruby.RubyMatchData; +import org.jruby.RubyString; +import org.jruby.java.proxies.ArrayJavaProxy; +import org.jruby.java.proxies.ConcreteJavaProxy; +import org.jruby.java.proxies.MapJavaProxy; +import org.jruby.javasupport.Java; +import org.jruby.runtime.builtin.IRubyObject; +import org.junit.Rule; import org.junit.Test; -import static org.junit.Assert.*; +import org.junit.rules.ExpectedException; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; public class JavafierTest { + public static final Ruby ruby; + static { + ruby = Ruby.getGlobalRuntime(); + } + @Test public void testRubyBignum() { - RubyBignum v = RubyBignum.newBignum(Ruby.getGlobalRuntime(), "-9223372036854776000"); + RubyBignum v = RubyBignum.newBignum(ruby, "-9223372036854776000"); Object result = Javafier.deep(v); assertEquals(BigInteger.class, result.getClass()); assertEquals( "-9223372036854776000", result.toString()); } + + @Test + public void testMapJavaProxy() { + Map map = new HashMap<>(); + map.put(RubyString.newString(ruby, "foo"), RubyString.newString(ruby, "bar")); + RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, HashMap.class); + MapJavaProxy mjp = new MapJavaProxy(ruby, proxyClass); + mjp.setObject(map); + + Object result = Javafier.deep(mjp); + assertEquals(HashMap.class, result.getClass()); + HashMap m = (HashMap) result; + assertEquals("bar", m.get("foo")); + } + + @Test + public void testArrayJavaProxy() { + IRubyObject[] array = new IRubyObject[]{RubyString.newString(ruby, "foo")}; + RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, String[].class); + ArrayJavaProxy ajp = new ArrayJavaProxy(ruby, proxyClass, array); + + Object result = Javafier.deep(ajp); + assertEquals(ArrayList.class, result.getClass()); + List a = (ArrayList) result; + assertEquals("foo", a.get(0)); + } + + @Test + public void testConcreteJavaProxy() { + List array = new ArrayList<>(); + array.add(RubyString.newString(ruby, "foo")); + RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, ArrayList.class); + ConcreteJavaProxy cjp = new ConcreteJavaProxy(ruby, proxyClass, array); + Object result = Javafier.deep(cjp); + assertEquals(ArrayList.class, result.getClass()); + List a = (ArrayList) result; + assertEquals("foo", a.get(0)); + } + + @Rule + public ExpectedException exception = ExpectedException.none(); + + @Test + public void testUnhandledObject() { + RubyMatchData md = new RubyMatchData(ruby); + exception.expect(IllegalArgumentException.class); + exception.expectMessage("Missing Ruby class handling for full class name=org.jruby.RubyMatchData, simple name=RubyMatchData"); + Javafier.deep(md); + } + + @Test + public void testUnhandledProxyObject() { + HashSet hs = new HashSet<>(); + hs.add(42); + RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, HashSet.class); + ConcreteJavaProxy cjp = new ConcreteJavaProxy(ruby, proxyClass, hs); + exception.expect(IllegalArgumentException.class); + exception.expectMessage("Missing Ruby class handling for full class name=org.jruby.java.proxies.ConcreteJavaProxy, simple name=ConcreteJavaProxy, wrapped object=java.util.HashSet"); + Javafier.deep(cjp); + } } From a859bd4a3fd71ac0b65d248988a2d30812ee3a63 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 1 Jun 2016 17:46:11 +0100 Subject: [PATCH 218/632] add single command release task and other release support tooling Purpose: * manage releases through a minimum number of rake tasks * simplify building of snapshot builds * create staged artifacts, candidates for releases, that required no changes to become releases * this means the snapshot release process will not involve publishing gems, therefore: * the gem artifacts should only be published to rubygems as a final artifact, at the time of GA Changes: * release artifacts no longer depend on gems of core components * all core components are used locally AS-IS to minimize code changes between snapshot, RC and GA * `versions.yml` describes the versions of all logstash parts and package * `rake version:set[version]` manage the yaml file and push the changes to the gemspecs/version.rb files * `rake version:set_plugin_api[version]` manage the yaml file and push the changes to the gemspecs/version.rb files * `rake artifact:all` generates SNAPSHOT artifacts: tar.gz, zip, rpm, deb * `RELEASE=1 rake artifact:all` creates release candidate artifacts + 4 gems: logstash-core, logstash-core-event, logstash-core-event-java and logstash-core-plugin-api implements #5416 and #5414 Fixes #5460 --- Gemfile | 9 +- Gemfile.jruby-1.9.lock | 326 ------------------ lib/bootstrap/bundler.rb | 2 +- .../lib/logstash-core-event-java/version.rb | 2 +- .../lib/logstash-core-event-java_jars.rb | 16 +- .../lib/logstash-core-event/version.rb | 2 +- .../lib/logstash-core-plugin-api/version.rb | 2 +- .../logstash-core-plugin-api.gemspec | 4 +- logstash-core/lib/logstash-core/version.rb | 2 +- .../api/commands/system/basicinfo_command.rb | 5 +- logstash-core/lib/logstash/build.rb | 6 + logstash-core/lib/logstash/version.rb | 2 +- logstash-core/logstash-core.gemspec | 2 +- rakelib/artifacts.rake | 215 ++++++++---- rakelib/build.rake | 3 + rakelib/plugin.rake | 6 +- rakelib/version.rake | 132 +++++++ versions.yml | 6 + 18 files changed, 316 insertions(+), 426 deletions(-) delete mode 100644 Gemfile.jruby-1.9.lock create mode 100644 logstash-core/lib/logstash/build.rb create mode 100644 rakelib/version.rake create mode 100644 versions.yml diff --git a/Gemfile b/Gemfile index f4aab97ef6c..0e392191ecd 100644 --- a/Gemfile +++ b/Gemfile @@ -2,16 +2,13 @@ # If you modify this file manually all comments and formatting will be lost. source "https://rubygems.org" -gem "logstash-core", "5.0.0.dev", :path => "./logstash-core" -gem "logstash-core-event-java", "5.0.0.dev", :path => "./logstash-core-event-java" -gem "logstash-core-plugin-api", "2.0.0", :path => "./logstash-core-plugin-api" +gem "logstash-core", :path => "./logstash-core" +gem "logstash-core-event-java", :path => "./logstash-core-event-java" +gem "logstash-core-plugin-api", :path => "./logstash-core-plugin-api" gem "file-dependencies", "0.1.6" gem "ci_reporter_rspec", "1.0.0", :group => :development gem "simplecov", :group => :development gem "coveralls", :group => :development -# Tins 1.7 requires the ruby 2.0 platform to install, -# this gem is a dependency of term-ansi-color which is a dependency of coveralls. -# 1.6 is the last supported version on jruby. gem "tins", "1.6", :group => :development gem "rspec", "~> 3.1.0", :group => :development gem "logstash-devutils", :group => :development diff --git a/Gemfile.jruby-1.9.lock b/Gemfile.jruby-1.9.lock deleted file mode 100644 index 709340a1965..00000000000 --- a/Gemfile.jruby-1.9.lock +++ /dev/null @@ -1,326 +0,0 @@ -GIT - remote: git://github.com/elastic/logstash-devutils.git - revision: e9af3a24824a41d0f19b025ca359e0735e820251 - branch: feature/plugin-api-2_0 - specs: - logstash-devutils (0.0.19-java) - fivemat - gem_publisher - insist (= 1.0.0) - kramdown - minitar - rake - rspec (~> 3.1.0) - rspec-wait - stud (>= 0.0.20) - -GIT - remote: git://github.com/logstash-plugins/logstash-codec-json.git - revision: 141d488f3a73706d5ae08dd41468fed285fbbdf9 - branch: feature/plugin-api-2_0 - specs: - logstash-codec-json (2.1.4) - logstash-core-plugin-api (~> 2.0) - -GIT - remote: git://github.com/logstash-plugins/logstash-codec-json_lines.git - revision: f1a3fda4d1affaa6da4b037eec78ee5f10287eb8 - branch: feature/plugin-api-2_0 - specs: - logstash-codec-json_lines (2.1.3) - logstash-codec-line (>= 2.1.0) - logstash-core-plugin-api (~> 2.0) - -GIT - remote: git://github.com/logstash-plugins/logstash-codec-line.git - revision: f912b6ca5137bef914ea0e605cb34520b0f172d4 - branch: feature/plugin-api-2_0 - specs: - logstash-codec-line (2.1.2) - logstash-core-plugin-api (~> 2.0) - -GIT - remote: git://github.com/logstash-plugins/logstash-codec-plain.git - revision: 5c5424905d5e06d7f7adc888411057c8a5681194 - branch: feature/plugin-api-2_0 - specs: - logstash-codec-plain (2.0.4) - logstash-core-plugin-api (~> 2.0) - -GIT - remote: git://github.com/logstash-plugins/logstash-filter-clone.git - revision: 4da247817809ff68a47557f022c8049536651564 - branch: feature/plugin-api-2_0 - specs: - logstash-filter-clone (2.0.6) - logstash-core-plugin-api (~> 2.0) - -GIT - remote: git://github.com/logstash-plugins/logstash-filter-grok.git - revision: 284dc6614b0cac6770cda2c18a52f8405146f1eb - branch: feature/plugin-api-2_0 - specs: - logstash-filter-grok (2.0.5) - jls-grok (~> 0.11.1) - logstash-core-plugin-api (~> 2.0) - logstash-patterns-core - -GIT - remote: git://github.com/logstash-plugins/logstash-filter-multiline.git - revision: fd1da31b7d1e0b44319c0f2865c767b36440583d - branch: feature/plugin-api-2_0 - specs: - logstash-filter-multiline (2.0.5) - jls-grok (~> 0.11.0) - logstash-core-plugin-api (~> 2.0) - logstash-patterns-core - -GIT - remote: git://github.com/logstash-plugins/logstash-filter-mutate.git - revision: f9624cc0a05354c308b2d22a5895c737eceaa08b - branch: feature/plugin-api-2_0 - specs: - logstash-filter-mutate (2.0.6) - logstash-core-plugin-api (~> 2.0) - -GIT - remote: git://github.com/logstash-plugins/logstash-input-generator.git - revision: 2557a4e7da667d6e801cac47e27ff297b6ecc79a - branch: feature/plugin-api-2_0 - specs: - logstash-input-generator (2.0.4) - logstash-codec-plain - logstash-core-plugin-api (~> 2.0) - -GIT - remote: git://github.com/logstash-plugins/logstash-input-stdin.git - revision: cca193c505f931500bd0f6be45afada2af0578ed - branch: feature/plugin-api-2_0 - specs: - logstash-input-stdin (2.0.4) - concurrent-ruby - logstash-codec-line - logstash-core-plugin-api (~> 2.0) - -GIT - remote: git://github.com/logstash-plugins/logstash-input-tcp.git - revision: b6f2705d7fc226c08dd0905561ef9373d2801a58 - branch: feature/plugin-api-2_0 - specs: - logstash-input-tcp (3.0.5) - logstash-codec-json - logstash-codec-json_lines - logstash-codec-line - logstash-codec-plain - logstash-core-plugin-api (~> 2.0) - -GIT - remote: git://github.com/logstash-plugins/logstash-output-stdout.git - revision: c150cb4f560b047372e15887e8b6bf421af22fc9 - branch: feature/plugin-api-2_0 - specs: - logstash-output-stdout (2.0.6) - logstash-codec-line - logstash-core-plugin-api (~> 2.0) - -GIT - remote: git://github.com/logstash-plugins/logstash-patterns-core.git - revision: e039ba2d3db6a01b6501fe0cab8a82453c6dc45f - branch: feature/plugin-api-2_0 - specs: - logstash-patterns-core (2.0.5) - logstash-core-plugin-api (~> 2.0) - -PATH - remote: ./logstash-core - specs: - logstash-core (5.0.0.dev-java) - cabin (~> 0.8.0) - chronic_duration (= 0.10.6) - clamp (~> 0.6.5) - concurrent-ruby (= 1.0.0) - filesize (= 0.0.4) - gems (~> 0.8.3) - i18n (= 0.6.9) - jrjackson (~> 0.3.7) - jruby-monitoring (~> 0.3.1) - jruby-openssl (= 0.9.16) - logstash-core-event-java (~> 5.0.0.dev) - minitar (~> 0.5.4) - pry (~> 0.10.1) - puma (~> 2.16, >= 2.16.0) - rubyzip (~> 1.1.7) - sinatra (~> 1.4, >= 1.4.6) - stud (~> 0.0.19) - thread_safe (~> 0.3.5) - treetop (< 1.5.0) - -PATH - remote: ./logstash-core-event-java - specs: - logstash-core-event-java (5.0.0.dev-java) - jar-dependencies - ruby-maven (~> 3.3.9) - -PATH - remote: ./logstash-core-plugin-api - specs: - logstash-core-plugin-api (2.0.0-java) - logstash-core (= 5.0.0.dev) - -GEM - remote: https://rubygems.org/ - specs: - addressable (2.3.8) - arr-pm (0.0.10) - cabin (> 0) - backports (3.6.8) - benchmark-ips (2.6.1) - builder (3.2.2) - cabin (0.8.1) - childprocess (0.5.9) - ffi (~> 1.0, >= 1.0.11) - chronic_duration (0.10.6) - numerizer (~> 0.1.1) - ci_reporter (2.0.0) - builder (>= 2.1.2) - ci_reporter_rspec (1.0.0) - ci_reporter (~> 2.0) - rspec (>= 2.14, < 4) - clamp (0.6.5) - coderay (1.1.1) - concurrent-ruby (1.0.0-java) - coveralls (0.8.13) - json (~> 1.8) - simplecov (~> 0.11.0) - term-ansicolor (~> 1.3) - thor (~> 0.19.1) - tins (~> 1.6.0) - diff-lcs (1.2.5) - docile (1.1.5) - faraday (0.9.2) - multipart-post (>= 1.2, < 3) - ffi (1.9.10-java) - file-dependencies (0.1.6) - minitar - filesize (0.0.4) - fivemat (1.3.2) - flores (0.0.6) - fpm (1.3.3) - arr-pm (~> 0.0.9) - backports (>= 2.6.2) - cabin (>= 0.6.0) - childprocess - clamp (~> 0.6) - ffi - json (>= 1.7.7) - gem_publisher (1.5.0) - gems (0.8.3) - i18n (0.6.9) - insist (1.0.0) - jar-dependencies (0.3.2) - jls-grok (0.11.2) - cabin (>= 0.6.0) - jrjackson (0.3.9-java) - jruby-monitoring (0.3.1) - jruby-openssl (0.9.16-java) - json (1.8.3-java) - kramdown (1.10.0) - method_source (0.8.2) - minitar (0.5.4) - multipart-post (2.0.0) - numerizer (0.1.1) - octokit (3.8.0) - sawyer (~> 0.6.0, >= 0.5.3) - polyglot (0.3.5) - pry (0.10.3-java) - coderay (~> 1.1.0) - method_source (~> 0.8.1) - slop (~> 3.4) - spoon (~> 0.0) - puma (2.16.0-java) - rack (1.6.4) - rack-protection (1.5.3) - rack - rack-test (0.6.3) - rack (>= 1.0) - rake (11.1.2) - rspec (3.1.0) - rspec-core (~> 3.1.0) - rspec-expectations (~> 3.1.0) - rspec-mocks (~> 3.1.0) - rspec-core (3.1.7) - rspec-support (~> 3.1.0) - rspec-expectations (3.1.2) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.1.0) - rspec-mocks (3.1.3) - rspec-support (~> 3.1.0) - rspec-support (3.1.2) - rspec-wait (0.0.8) - rspec (>= 2.11, < 3.5) - ruby-maven (3.3.10) - ruby-maven-libs (~> 3.3.1) - ruby-maven-libs (3.3.3) - rubyzip (1.1.7) - sawyer (0.6.0) - addressable (~> 2.3.5) - faraday (~> 0.8, < 0.10) - simplecov (0.11.2) - docile (~> 1.1.0) - json (~> 1.8) - simplecov-html (~> 0.10.0) - simplecov-html (0.10.0) - sinatra (1.4.7) - rack (~> 1.5) - rack-protection (~> 1.4) - tilt (>= 1.3, < 3) - slop (3.6.0) - spoon (0.0.4) - ffi - stud (0.0.22) - term-ansicolor (1.3.2) - tins (~> 1.0) - thor (0.19.1) - thread_safe (0.3.5-java) - tilt (2.0.2) - tins (1.6.0) - treetop (1.4.15) - polyglot - polyglot (>= 0.3.1) - -PLATFORMS - java - -DEPENDENCIES - benchmark-ips - ci_reporter_rspec (= 1.0.0) - coveralls - file-dependencies (= 0.1.6) - flores (~> 0.0.6) - fpm (~> 1.3.3) - gems (~> 0.8.3) - logstash-codec-json! - logstash-codec-json_lines! - logstash-codec-line! - logstash-codec-plain! - logstash-core (= 5.0.0.dev)! - logstash-core-event-java (= 5.0.0.dev)! - logstash-core-plugin-api (= 2.0.0)! - logstash-devutils! - logstash-filter-clone! - logstash-filter-grok! - logstash-filter-multiline! - logstash-filter-mutate! - logstash-input-generator! - logstash-input-stdin! - logstash-input-tcp! - logstash-output-stdout! - logstash-patterns-core! - octokit (= 3.8.0) - rack-test - rspec (~> 3.1.0) - rubyzip (~> 1.1.7) - simplecov - stud (~> 0.0.22) - tins (= 1.6) diff --git a/lib/bootstrap/bundler.rb b/lib/bootstrap/bundler.rb index 1a7bb057219..13c04b58ab9 100644 --- a/lib/bootstrap/bundler.rb +++ b/lib/bootstrap/bundler.rb @@ -78,7 +78,7 @@ def setup!(options = {}) # @return [String, Exception] the installation captured output and any raised exception or nil if none def invoke!(options = {}) options = {:max_tries => 10, :clean => false, :install => false, :update => false, :local => false, - :all => false, :package => false, :without => [:development]}.merge(options) + :jobs => 12, :all => false, :package => false, :without => [:development]}.merge(options) options[:without] = Array(options[:without]) options[:update] = Array(options[:update]) if options[:update] diff --git a/logstash-core-event-java/lib/logstash-core-event-java/version.rb b/logstash-core-event-java/lib/logstash-core-event-java/version.rb index cfc6a162494..ceaa49b4728 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java/version.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_EVENT_JAVA_VERSION = "5.0.0.dev" +LOGSTASH_CORE_EVENT_JAVA_VERSION = "5.0.0" diff --git a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb index 143d7a3e068..d4503671464 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb @@ -1,6 +1,14 @@ # this is a generated file, to avoid over-writing it just delete this comment -require 'jar_dependencies' +begin + require 'jar_dependencies' +rescue LoadError + require 'com/fasterxml/jackson/core/jackson-core/2.7.1/jackson-core-2.7.1.jar' + require 'com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar' + require 'com/fasterxml/jackson/core/jackson-databind/2.7.1-1/jackson-databind-2.7.1-1.jar' +end -require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.1' ) -require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) -require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.1-1' ) +if defined? Jars + require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.1' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.1-1' ) +end diff --git a/logstash-core-event/lib/logstash-core-event/version.rb b/logstash-core-event/lib/logstash-core-event/version.rb index e1e0774da55..04253b62242 100644 --- a/logstash-core-event/lib/logstash-core-event/version.rb +++ b/logstash-core-event/lib/logstash-core-event/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_EVENT_VERSION = "5.0.0.dev" +LOGSTASH_CORE_EVENT_VERSION = "5.0.0" diff --git a/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb b/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb index ced5939392b..9e4e415bd49 100644 --- a/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb +++ b/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb @@ -1,2 +1,2 @@ # encoding: utf-8 -LOGSTASH_CORE_PLUGIN_API = "2.0.0" +LOGSTASH_CORE_PLUGIN_API = "2.1.7" diff --git a/logstash-core-plugin-api/logstash-core-plugin-api.gemspec b/logstash-core-plugin-api/logstash-core-plugin-api.gemspec index 8764ad5b24c..f7787f65a09 100644 --- a/logstash-core-plugin-api/logstash-core-plugin-api.gemspec +++ b/logstash-core-plugin-api/logstash-core-plugin-api.gemspec @@ -11,13 +11,13 @@ Gem::Specification.new do |gem| gem.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html" gem.license = "Apache License (2.0)" - gem.files = Dir.glob(["logstash-core-event.gemspec", "lib/**/*.rb", "spec/**/*.rb"]) + gem.files = Dir.glob(["logstash-core-plugin-api.gemspec", "lib/**/*.rb", "spec/**/*.rb"]) gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) gem.name = "logstash-core-plugin-api" gem.require_paths = ["lib"] gem.version = LOGSTASH_CORE_PLUGIN_API - gem.add_runtime_dependency "logstash-core", "5.0.0.dev" + gem.add_runtime_dependency "logstash-core", "5.0.0" # Make sure we dont build this gem from a non jruby # environment. diff --git a/logstash-core/lib/logstash-core/version.rb b/logstash-core/lib/logstash-core/version.rb index 737441c5abc..ad8cbbd3431 100644 --- a/logstash-core/lib/logstash-core/version.rb +++ b/logstash-core/lib/logstash-core/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_VERSION = "5.0.0.dev" +LOGSTASH_CORE_VERSION = "5.0.0" diff --git a/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb b/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb index 7a32073990e..30e74f69268 100644 --- a/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb +++ b/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb @@ -1,6 +1,7 @@ # encoding: utf-8 require 'logstash/api/commands/base' require "logstash/util/duration_formatter" +require 'logstash/build' module LogStash module Api @@ -11,9 +12,7 @@ class BasicInfo < Commands::Base def run { "hostname" => hostname, - "version" => { - "number" => LOGSTASH_VERSION - } + "version" => { "number" => LOGSTASH_VERSION }.merge(BUILD_INFO) } end end diff --git a/logstash-core/lib/logstash/build.rb b/logstash-core/lib/logstash/build.rb new file mode 100644 index 00000000000..fb2132c22c4 --- /dev/null +++ b/logstash-core/lib/logstash/build.rb @@ -0,0 +1,6 @@ +# encoding: utf-8 + +# DO NOT EDIT +# this file acts as a placeholder for build information when executing +# logstash in dev mode (outside of a package build) +BUILD_INFO = {} diff --git a/logstash-core/lib/logstash/version.rb b/logstash-core/lib/logstash/version.rb index 676dde5ac32..c2d7b8d144a 100644 --- a/logstash-core/lib/logstash/version.rb +++ b/logstash-core/lib/logstash/version.rb @@ -11,4 +11,4 @@ # eventually this file should be in the root logstash lib fir and dependencies in logstash-core should be # fixed. -LOGSTASH_VERSION = "5.0.0.dev" +LOGSTASH_VERSION = "5.0.0" diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index f63617656f8..938612d4ea1 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = LOGSTASH_CORE_VERSION - gem.add_runtime_dependency "logstash-core-event-java", "~> 5.0.0.dev" + gem.add_runtime_dependency "logstash-core-event-java", "5.0.0" gem.add_runtime_dependency "cabin", "~> 0.8.0" #(Apache 2.0 license) gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index 581d8c798cb..877b9ef826c 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -2,6 +2,9 @@ require "logstash/version" namespace "artifact" do + SNAPSHOT_BUILD = ENV["RELEASE"] != "1" + PACKAGE_SUFFIX = SNAPSHOT_BUILD ? "-SNAPSHOT" : "" + def package_files [ "LICENSE", @@ -13,6 +16,13 @@ namespace "artifact" do "lib/bootstrap/**/*", "lib/pluginmanager/**/*", "lib/systeminstall/**/*", + "logstash-core/lib/**/*", + "logstash-core/locales/**/*", + "logstash-core/*.gemspec", + "logstash-core-event-java/lib/**/*", + "logstash-core-event-java/*.gemspec", + "logstash-core-plugin-api/lib/**/*", + "logstash-core-plugin-api/*.gemspec", "patterns/**/*", "vendor/??*/**/*", # To include ruby-maven's hidden ".mvn" directory, we need to @@ -55,20 +65,77 @@ namespace "artifact" do end.flatten.uniq end - task "all" => ["prepare"] do - Rake::Task["artifact:deb"].invoke - Rake::Task["artifact:rpm"].invoke - Rake::Task["artifact:zip"].invoke - Rake::Task["artifact:tar"].invoke + desc "Generate rpm, deb, tar and zip artifacts" + task "all" => ["prepare", "build"] + + desc "Build a tar.gz of default logstash plugins with all dependencies" + task "tar" => ["prepare", "generate_build_metadata"] do + puts("[artifact:tar] Building tar.gz of default plugins") + build_tar + end + + desc "Build a zip of default logstash plugins with all dependencies" + task "zip" => ["prepare", "generate_build_metadata"] do + puts("[artifact:zip] Building zip of default plugins") + build_zip + end + + desc "Build an RPM of logstash with all dependencies" + task "rpm" => ["prepare", "generate_build_metadata"] do + puts("[artifact:rpm] building rpm package") + package("centos", "5") end - task "all-all-plugins" => ["prepare-all"] do + desc "Build a DEB of logstash with all dependencies" + task "deb" => ["prepare", "generate_build_metadata"] do + puts("[artifact:deb] building deb package") + package("ubuntu", "12.04") + end + + desc "Generate logstash core gems" + task "gems" => ["prepare"] do + Rake::Task["artifact:build-logstash-core"].invoke + Rake::Task["artifact:build-logstash-core-event"].invoke + Rake::Task["artifact:build-logstash-core-plugin-api"].invoke + end + + # "all-plugins" version of tasks + desc "Generate rpm, deb, tar and zip artifacts (\"all-plugins\" version)" + task "all-all-plugins" => ["prepare-all", "build"] + + desc "Build a zip of all logstash plugins from logstash-plugins github repo" + task "zip-all-plugins" => ["prepare-all", "generate_build_metadata"] do + puts("[artifact:zip] Building zip of all plugins") + build_zip "-all-plugins" + end + + desc "Build a tar.gz of all logstash plugins from logstash-plugins github repo" + task "tar-all-plugins" => ["prepare-all", "generate_build_metadata"] do + puts("[artifact:tar] Building tar.gz of all plugins") + build_tar "-all-plugins" + end + + # Auxiliary tasks + task "build" => [:generate_build_metadata] do + Rake::Task["artifact:gems"].invoke unless SNAPSHOT_BUILD Rake::Task["artifact:deb"].invoke Rake::Task["artifact:rpm"].invoke Rake::Task["artifact:zip"].invoke Rake::Task["artifact:tar"].invoke end + task "generate_build_metadata" do + return if defined?(BUILD_METADATA_FILE) + BUILD_METADATA_FILE = Tempfile.new('build.rb') + build_info = { + "build_date" => Time.now.iso8601, + "build_sha" => `git rev-parse HEAD`.chomp, + "build_snapshot" => SNAPSHOT_BUILD + } + metadata = [ "# encoding: utf-8", "BUILD_INFO = #{build_info}" ] + IO.write(BUILD_METADATA_FILE.path, metadata.join("\n")) + end + # We create an empty bundle config file # This will allow the deb and rpm to create a file # with the correct user group and permission. @@ -78,8 +145,8 @@ namespace "artifact" do end # locate the "gem "logstash-core" ..." line in Gemfile, and if the :path => "..." option if specified - # build and install the local logstash-core gem otherwise just do nothing, bundler will deal with it. - task "install-logstash-core" do + # build the local logstash-core gem otherwise just do nothing, bundler will deal with it. + task "build-logstash-core" do # regex which matches a Gemfile gem definition for the logstash-core gem and captures the :path option gem_line_regex = /^\s*gem\s+["']logstash-core["'](?:\s*,\s*["'][^"^']+["'])?(?:\s*,\s*:path\s*=>\s*["']([^"^']+)["'])?/i @@ -90,15 +157,16 @@ namespace "artifact" do path = matches.first[gem_line_regex, 1] if path - Rake::Task["plugin:install-local-core-gem"].invoke("logstash-core", path) + Rake::Task["plugin:build-local-core-gem"].invoke("logstash-core", path) else - puts("[artifact:install-logstash-core] using logstash-core from Rubygems") + puts "The Gemfile should reference \"logstash-core\" gem locally through :path, but found instead: #{matches}" + exit(1) end end # # locate the "gem "logstash-core-event*" ..." line in Gemfile, and if the :path => "." option if specified - # # build and install the local logstash-core-event* gem otherwise just do nothing, bundler will deal with it. - task "install-logstash-core-event" do + # # build the local logstash-core-event* gem otherwise just do nothing, bundler will deal with it. + task "build-logstash-core-event" do # regex which matches a Gemfile gem definition for the logstash-core-event* gem and captures the gem name and :path option gem_line_regex = /^\s*gem\s+["'](logstash-core-event[^"^']*)["'](?:\s*,\s*["'][^"^']+["'])?(?:\s*,\s*:path\s*=>\s*["']([^"^']+)["'])?/i @@ -110,15 +178,16 @@ namespace "artifact" do path = matches.first[gem_line_regex, 2] if path - Rake::Task["plugin:install-local-core-gem"].invoke(name, path) + Rake::Task["plugin:build-local-core-gem"].invoke(name, path) else - puts("[artifact:install-logstash-core] using #{name} from Rubygems") + puts "The Gemfile should reference \"logstash-core-event\" gem locally through :path, but found instead: #{matches}" + exit(1) end end # locate the "gem "logstash-core-plugin-api" ..." line in Gemfile, and if the :path => "..." option if specified - # build and install the local logstash-core-plugin-api gem otherwise just do nothing, bundler will deal with it. - task "install-logstash-core-plugin-api" do + # build the local logstash-core-plugin-api gem otherwise just do nothing, bundler will deal with it. + task "build-logstash-core-plugin-api" do # regex which matches a Gemfile gem definition for the logstash-core gem and captures the :path option gem_line_regex = /^\s*gem\s+["']logstash-core-plugin-api["'](?:\s*,\s*["'][^"^']+["'])?(?:\s*,\s*:path\s*=>\s*["']([^"^']+)["'])?/i @@ -129,86 +198,87 @@ namespace "artifact" do path = matches.first[gem_line_regex, 1] if path - Rake::Task["plugin:install-local-core-gem"].invoke("logstash-core-plugin-api", path) + Rake::Task["plugin:build-local-core-gem"].invoke("logstash-core-plugin-api", path) else - puts("[artifact:install-logstash-core-plugin-api] using logstash-core from Rubygems") + puts "The Gemfile should reference \"logstash-core-plugin-api\" gem locally through :path, but found instead: #{matches}" + exit(1) end end - task "prepare" => ["bootstrap", "plugin:install-default", "install-logstash-core", "install-logstash-core-event", "install-logstash-core-plugin-api", "clean-bundle-config"] - - task "prepare-all" => ["bootstrap", "plugin:install-all", "install-logstash-core", "install-logstash-core-event", "install-logstash-core-plugin-api", "clean-bundle-config"] - - desc "Build a tar.gz of default logstash plugins with all dependencies" - task "tar" => ["prepare"] do - puts("[artifact:tar] Building tar.gz of default plugins") - build_tar + task "prepare" do + if ENV['SKIP_PREPARE'] != "1" + ["bootstrap", "plugin:install-default", "artifact:clean-bundle-config"].each {|task| Rake::Task[task].invoke } + end end - desc "Build a tar.gz of all logstash plugins from logstash-plugins github repo" - task "tar-all-plugins" => ["prepare-all"] do - puts("[artifact:tar] Building tar.gz of all plugins") - build_tar "-all-plugins" + task "prepare-all" do + if ENV['SKIP_PREPARE'] != "1" + ["bootstrap", "plugin:install-all", "artifact:clean-bundle-config"].each {|task| Rake::Task[task].invoke } + end end def build_tar(tar_suffix = nil) require "zlib" require "archive/tar/minitar" require "logstash/version" - tarpath = "build/logstash#{tar_suffix}-#{LOGSTASH_VERSION}.tar.gz" + tarpath = "build/logstash#{tar_suffix}-#{LOGSTASH_VERSION}#{PACKAGE_SUFFIX}.tar.gz" puts("[artifact:tar] building #{tarpath}") gz = Zlib::GzipWriter.new(File.new(tarpath, "wb"), Zlib::BEST_COMPRESSION) tar = Archive::Tar::Minitar::Output.new(gz) files.each do |path| - stat = File.lstat(path) - path_in_tar = "logstash-#{LOGSTASH_VERSION}/#{path}" - opts = { - :size => stat.size, - :mode => stat.mode, - :mtime => stat.mtime - } - if stat.directory? - tar.tar.mkdir(path_in_tar, opts) - else - tar.tar.add_file_simple(path_in_tar, opts) do |io| - File.open(path,'rb') do |fd| - chunk = nil - size = 0 - size += io.write(chunk) while chunk = fd.read(16384) - if stat.size != size - raise "Failure to write the entire file (#{path}) to the tarball. Expected to write #{stat.size} bytes; actually write #{size}" - end - end - end - end + write_to_tar(tar, path, "logstash-#{LOGSTASH_VERSION}#{PACKAGE_SUFFIX}/#{path}") end + + # add build.rb to tar + metadata_file_path_in_tar = File.join("logstash-core", "lib", "logstash", "build.rb") + path_in_tar = File.join("logstash-#{LOGSTASH_VERSION}#{PACKAGE_SUFFIX}", metadata_file_path_in_tar) + write_to_tar(tar, BUILD_METADATA_FILE.path, path_in_tar) + tar.close gz.close puts "Complete: #{tarpath}" end - desc "Build a zip of default logstash plugins with all dependencies" - task "zip" => ["prepare"] do - puts("[artifact:zip] Building zip of default plugins") - build_zip - end - - desc "Build a zip of all logstash plugins from logstash-plugins github repo" - task "zip-all-plugins" => ["prepare-all"] do - puts("[artifact:zip] Building zip of all plugins") - build_zip "-all-plugins" + def write_to_tar(tar, path, path_in_tar) + stat = File.lstat(path) + opts = { + :size => stat.size, + :mode => stat.mode, + :mtime => stat.mtime + } + if stat.directory? + tar.tar.mkdir(path_in_tar, opts) + else + tar.tar.add_file_simple(path_in_tar, opts) do |io| + File.open(path,'rb') do |fd| + chunk = nil + size = 0 + size += io.write(chunk) while chunk = fd.read(16384) + if stat.size != size + raise "Failure to write the entire file (#{path}) to the tarball. Expected to write #{stat.size} bytes; actually write #{size}" + end + end + end + end end def build_zip(zip_suffix = "") require 'zip' - zippath = "build/logstash#{zip_suffix}-#{LOGSTASH_VERSION}.zip" + zippath = "build/logstash#{zip_suffix}-#{LOGSTASH_VERSION}#{PACKAGE_SUFFIX}.zip" puts("[artifact:zip] building #{zippath}") File.unlink(zippath) if File.exists?(zippath) Zip::File.open(zippath, Zip::File::CREATE) do |zipfile| files.each do |path| - path_in_zip = "logstash-#{LOGSTASH_VERSION}/#{path}" + path_in_zip = "logstash-#{LOGSTASH_VERSION}#{PACKAGE_SUFFIX}/#{path}" zipfile.add(path_in_zip, path) end + + # add build.rb to zip + metadata_file_path_in_zip = File.join("logstash-core", "lib", "logstash", "build.rb") + path_in_zip = File.join("logstash-#{LOGSTASH_VERSION}#{PACKAGE_SUFFIX}", metadata_file_path_in_zip) + path = BUILD_METADATA_FILE.path + Zip.continue_on_exists_proc = true + zipfile.add(path_in_zip, path) end puts "Complete: #{zippath}" end @@ -221,6 +291,10 @@ namespace "artifact" do dir = FPM::Package::Dir.new + metadata_file_path = File.join("logstash-core", "lib", "logstash", "build.rb") + metadata_source_file_path = BUILD_METADATA_FILE.path + dir.input("#{metadata_source_file_path}=/usr/share/logstash/#{metadata_file_path}") + files.each do |path| next if File.directory?(path) # Omit any config dir from /usr/share/logstash for packages, since we're @@ -246,7 +320,7 @@ namespace "artifact" do # produce: logstash-5.0.0-alpha1.deb" # produce: logstash-5.0.0-alpha1.rpm - package_filename = "logstash-#{LOGSTASH_VERSION}.TYPE" + package_filename = "logstash-#{LOGSTASH_VERSION}#{PACKAGE_SUFFIX}.TYPE" case platform when "redhat", "centos" @@ -350,15 +424,4 @@ namespace "artifact" do end end # def package - desc "Build an RPM of logstash with all dependencies" - task "rpm" => ["prepare"] do - puts("[artifact:rpm] building rpm package") - package("centos", "5") - end - - desc "Build a DEB of logstash with all dependencies" - task "deb" => ["prepare"] do - puts("[artifact:deb] building deb package") - package("ubuntu", "12.04") - end end diff --git a/rakelib/build.rake b/rakelib/build.rake index 2b443add8b7..45aec1f9b5f 100644 --- a/rakelib/build.rake +++ b/rakelib/build.rake @@ -4,3 +4,6 @@ end directory "build/bootstrap" => "build" do |task, args| mkdir_p task.name unless File.directory?(task.name) end +directory "build/gems" => "build" do |task, args| + mkdir_p task.name unless File.directory?(task.name) +end diff --git a/rakelib/plugin.rake b/rakelib/plugin.rake index 0bc1b708906..79be84172b7 100644 --- a/rakelib/plugin.rake +++ b/rakelib/plugin.rake @@ -81,7 +81,7 @@ namespace "plugin" do task.reenable # Allow this task to be run again end - task "build-local-core-gem", [:name, :path] do |task, args| + task "build-local-core-gem", [:name, :path] => ["build/gems"] do |task, args| name = args[:name] path = args[:path] @@ -89,10 +89,12 @@ namespace "plugin" do puts("[plugin:build-local-core-gem] Building #{File.join(path, name)}.gemspec") + gem_path = nil Dir.chdir(path) do spec = Gem::Specification.load("#{name}.gemspec") - Gem::Package.build(spec) + gem_path = Gem::Package.build(spec) end + FileUtils.cp(File.join(path, gem_path), "build/gems/") task.reenable # Allow this task to be run again end diff --git a/rakelib/version.rake b/rakelib/version.rake new file mode 100644 index 00000000000..45655cd330d --- /dev/null +++ b/rakelib/version.rake @@ -0,0 +1,132 @@ +require 'yaml' + +def get_versions + yaml_versions = YAML.safe_load(IO.read("versions.yml")) + { + "logstash" => { + "location" => File.join("logstash-core", "lib", "logstash", "version.rb"), + "yaml_version" => yaml_versions["logstash"], + "current_version" => get_version(File.join("logstash-core", "lib", "logstash", "version.rb")), + }, + "logstash-core" => { + "location" => File.join("logstash-core", "lib", "logstash-core", "version.rb"), + "yaml_version" => yaml_versions["logstash-core"], + "current_version" => get_version(File.join("logstash-core", "lib", "logstash-core", "version.rb")), + }, + "logstash-core-event" => { + "location" => File.join("logstash-core-event", "lib", "logstash-core-event", "version.rb"), + "yaml_version" => yaml_versions["logstash-core-event"], + "current_version" => get_version(File.join("logstash-core-event", "lib", "logstash-core-event", "version.rb")), + }, + "logstash-core-event-java" => { + "location" => File.join("logstash-core-event-java", "lib", "logstash-core-event-java", "version.rb"), + "yaml_version" => yaml_versions["logstash-core-event-java"], + "current_version" => get_version(File.join("logstash-core-event-java", "lib", "logstash-core-event-java", "version.rb")), + }, + "logstash-core-plugin-api" => { + "location" => File.join("logstash-core-plugin-api", "lib", "logstash-core-plugin-api", "version.rb"), + "yaml_version" => yaml_versions["logstash-core-plugin-api"], + "current_version" => get_version(File.join("logstash-core-plugin-api", "lib", "logstash-core-plugin-api", "version.rb")), + } + } +end + +def get_version(file) + text = IO.read(file) + version = text.match(/^[A-Z_]+ = "(.+?)"/) + version[1] +end + +namespace :version do + + desc "check if the versions.yml is out of sync with .gemspecs and other references" + task :check do + out_of_sync = get_versions.select do |component, metadata| + metadata["yaml_version"] != metadata["current_version"] + end + if out_of_sync.any? + out_of_sync.each do |component, metadata| + puts "#{component} is out of sync. CURRENT: #{metadata['current_version']} | YAML: #{metadata['yaml_version']}" + end + exit(1) + end + end + + desc "push versions found in versions.yml to all component version locations" + task :sync do + versions = get_versions + # update version.rb files + versions.select do |component, metadata| + next if metadata["yaml_version"] == metadata["current_version"] + puts "Updating \"#{component}\" from \"#{metadata['current_version']}\" to \"#{metadata['yaml_version']}\"" + text = IO.read(metadata["location"]) + IO.write(metadata["location"], text.gsub(metadata["current_version"], metadata["yaml_version"])) + end + + # update dependencies + # + # logstash-core depends on logstash-core-event-java + # ./logstash-core/logstash-core.gemspec: gem.add_runtime_dependency "logstash-core-event-java", "~> 5.0.0.dev" + logstash_core_gemspec = File.join("logstash-core", "logstash-core.gemspec") + logstash_core_event_java_version = versions['logstash-core-event-java']['yaml_version'] + text = IO.read(logstash_core_gemspec) + IO.write(logstash_core_gemspec, text.sub( + / gem.add_runtime_dependency \"logstash-core-event-java\", \".+?\"/, + " gem.add_runtime_dependency \"logstash-core-event-java\", \"#{logstash_core_event_java_version}\"")) + + # logstash-core-event-java depends on logstash-code + # ./logstash-core-plugin-api/logstash-core-plugin-api.gemspec: gem.add_runtime_dependency "logstash-core", "5.0.0.dev" + logstash_core_plugin_api_gemspec = File.join("logstash-core-plugin-api", "logstash-core-plugin-api.gemspec") + logstash_core_version = versions['logstash-core']['yaml_version'] + text = IO.read(logstash_core_plugin_api_gemspec) + IO.write(logstash_core_plugin_api_gemspec, text.sub( + / gem.add_runtime_dependency \"logstash-core\", \".+?\"/, + " gem.add_runtime_dependency \"logstash-core\", \"#{logstash_core_version}\"")) + end + + desc "show version of core components" + task :show do + Rake::Task["version:sync"].invoke; Rake::Task["version:sync"].reenable + get_versions.each do |component, metadata| + puts "#{component}: #{metadata['yaml_version']}" + end + end + + desc "set version of logstash, logstash-core, logstash-core-event, logstash-core-event-java" + task :set, [:version] => [:validate] do |t, args| + hash = {} + get_versions.each do |component, metadata| + # we just assume that, usually, all components except + # "logstash-core-plugin-api" will be versioned together + # so let's skip this one and have a separate task for it + if component == "logstash-core-plugin-api" + hash[component] = metadata["yaml_version"] + else + hash[component] = args[:version] + end + end + IO.write("versions.yml", hash.to_yaml) + Rake::Task["version:sync"].invoke; Rake::Task["version:sync"].reenable + end + + desc "set version of logstash-core-plugin-api" + task :set_plugin_api, [:version] => [:validate] do |t, args| + hash = {} + get_versions.each do |component, metadata| + if component == "logstash-core-plugin-api" + hash[component] = args[:version] + else + hash[component] = metadata["yaml_version"] + end + end + IO.write("versions.yml", hash.to_yaml) + Rake::Task["version:sync"].invoke; Rake::Task["version:sync"].reenable + end + + task :validate, :version do |t, args| + unless Regexp.new('^\d+\.\d+\.\d+(?:-\w+\d+)?$').match(args[:version]) + abort("Invalid version argument: \"#{args[:version]}\". Aborting...") + end + end + +end diff --git a/versions.yml b/versions.yml new file mode 100644 index 00000000000..a7e6c26dfaa --- /dev/null +++ b/versions.yml @@ -0,0 +1,6 @@ +--- +logstash: 5.0.0 +logstash-core: 5.0.0 +logstash-core-event: 5.0.0 +logstash-core-event-java: 5.0.0 +logstash-core-plugin-api: 2.1.7 From d01b5f6b9cfa55fb4ca892ce02bd346e717754c4 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 16 Jun 2016 10:00:29 -0500 Subject: [PATCH 219/632] Add stats default fields (hostname, http_address, version) Fixes #5520 --- logstash-core/lib/logstash/agent.rb | 2 +- logstash-core/lib/logstash/api/app_helpers.rb | 9 +++++++ .../lib/logstash/api/command_factory.rb | 4 ++- .../lib/logstash/api/commands/base.rb | 6 +---- .../logstash/api/commands/default_metadata.rb | 25 +++++++++++++++++++ .../lib/logstash/api/commands/node.rb | 4 +-- .../api/commands/system/basicinfo_command.rb | 6 ++--- .../lib/logstash/api/modules/base.rb | 3 ++- logstash-core/lib/logstash/runner.rb | 2 +- logstash-core/lib/logstash/webserver.rb | 4 +++ logstash-core/spec/api/lib/api/node_spec.rb | 1 - .../lib/api/support/resource_dsl_methods.rb | 15 +++++++++++ logstash-core/spec/api/spec_helper.rb | 6 +++-- 13 files changed, 69 insertions(+), 18 deletions(-) create mode 100644 logstash-core/lib/logstash/api/commands/default_metadata.rb diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index be846734486..3bbbd73c58e 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -20,7 +20,7 @@ class LogStash::Agent STARTED_AT = Time.now.freeze - attr_reader :metric, :node_name, :pipelines, :settings + attr_reader :metric, :node_name, :pipelines, :settings, :webserver attr_accessor :logger # initialize method for LogStash::Agent diff --git a/logstash-core/lib/logstash/api/app_helpers.rb b/logstash-core/lib/logstash/api/app_helpers.rb index cd872edc51d..33521d701fe 100644 --- a/logstash-core/lib/logstash/api/app_helpers.rb +++ b/logstash-core/lib/logstash/api/app_helpers.rb @@ -6,6 +6,11 @@ module LogStash::Api::AppHelpers def respond_with(data, options={}) as = options.fetch(:as, :json) pretty = params.has_key?("pretty") + + unless options.include?(:exclude_default_metadata) + data = default_metadata.merge(data) + end + if as == :json content_type "application/json" LogStash::Json.dump(data, {:pretty => pretty}) @@ -20,4 +25,8 @@ def as_boolean(string) return false if string == false || string.blank? || string =~ (/(false|f|no|n|0)$/i) raise ArgumentError.new("invalid value for Boolean: \"#{string}\"") end + + def default_metadata + @factory.build(:default_metadata).all + end end diff --git a/logstash-core/lib/logstash/api/command_factory.rb b/logstash-core/lib/logstash/api/command_factory.rb index 4de019a186d..2d790b5ee1c 100644 --- a/logstash-core/lib/logstash/api/command_factory.rb +++ b/logstash-core/lib/logstash/api/command_factory.rb @@ -4,6 +4,7 @@ require "logstash/api/commands/system/plugins_command" require "logstash/api/commands/stats" require "logstash/api/commands/node" +require "logstash/api/commands/default_metadata" module LogStash @@ -17,7 +18,8 @@ def initialize(service) :system_basic_info => ::LogStash::Api::Commands::System::BasicInfo, :plugins_command => ::LogStash::Api::Commands::System::Plugins, :stats => ::LogStash::Api::Commands::Stats, - :node => ::LogStash::Api::Commands::Node + :node => ::LogStash::Api::Commands::Node, + :default_metadata => ::LogStash::Api::Commands::DefaultMetadata } end diff --git a/logstash-core/lib/logstash/api/commands/base.rb b/logstash-core/lib/logstash/api/commands/base.rb index c2fd22a05a4..873f4e7e198 100644 --- a/logstash-core/lib/logstash/api/commands/base.rb +++ b/logstash-core/lib/logstash/api/commands/base.rb @@ -8,14 +8,10 @@ def initialize(service = LogStash::Api::Service.instance) @service = service end - def hostname - service.agent.node_name - end - def uptime service.agent.uptime end - + def started_at (LogStash::Agent::STARTED_AT.to_f * 1000.0).to_i end diff --git a/logstash-core/lib/logstash/api/commands/default_metadata.rb b/logstash-core/lib/logstash/api/commands/default_metadata.rb new file mode 100644 index 00000000000..bae4f081139 --- /dev/null +++ b/logstash-core/lib/logstash/api/commands/default_metadata.rb @@ -0,0 +1,25 @@ +require "logstash/api/commands/base" + +module LogStash + module Api + module Commands + class DefaultMetadata < Commands::Base + def all + {:host => host, :version => version, :http_address => http_address} + end + + def host + Socket.gethostname + end + + def version + LOGSTASH_CORE_VERSION + end + + def http_address + service.agent.webserver.address + end + end + end + end +end diff --git a/logstash-core/lib/logstash/api/commands/node.rb b/logstash-core/lib/logstash/api/commands/node.rb index cc74e0bb82b..c8dcc1446be 100644 --- a/logstash-core/lib/logstash/api/commands/node.rb +++ b/logstash-core/lib/logstash/api/commands/node.rb @@ -9,7 +9,7 @@ def all :pipeline => pipeline, :os => os, :jvm => jvm - } + } end def pipeline @@ -83,7 +83,7 @@ def to_s end def to_hash - hash = { :hostname => @cmd.hostname, :time => Time.now.iso8601, :busiest_threads => @thread_dump.top_count, :threads => [] } + hash = { :time => Time.now.iso8601, :busiest_threads => @thread_dump.top_count, :threads => [] } @thread_dump.each do |thread_name, _hash| thread_name, thread_path = _hash["thread.name"].split(": ") thread = { :name => thread_name, diff --git a/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb b/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb index 30e74f69268..6eacdbd5b4b 100644 --- a/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb +++ b/logstash-core/lib/logstash/api/commands/system/basicinfo_command.rb @@ -10,10 +10,8 @@ module System class BasicInfo < Commands::Base def run - { - "hostname" => hostname, - "version" => { "number" => LOGSTASH_VERSION }.merge(BUILD_INFO) - } + # Just merge this stuff with the defaults + BUILD_INFO end end end diff --git a/logstash-core/lib/logstash/api/modules/base.rb b/logstash-core/lib/logstash/api/modules/base.rb index e7a4fd9ddea..b47ca016dff 100644 --- a/logstash-core/lib/logstash/api/modules/base.rb +++ b/logstash-core/lib/logstash/api/modules/base.rb @@ -15,7 +15,7 @@ class Base < ::Sinatra::Base set :raise_errors, true set :show_exceptions, false - attr_reader :factory + attr_reader :factory, :agent include LogStash::Util::Loggable @@ -23,6 +23,7 @@ class Base < ::Sinatra::Base def initialize(app=nil, agent) super(app) + @agent = agent @factory = ::LogStash::Api::CommandFactory.new(LogStash::Api::Service.new(agent)) end diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index c24a692feb9..08d1e6d6ffc 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -16,6 +16,7 @@ require "logstash/shutdown_watcher" require "logstash/patches/clamp" require "logstash/settings" +require "logstash/version" class LogStash::Runner < Clamp::StrictCommand # The `path.settings` need to be defined in the runner instead of the `logstash-core/lib/logstash/environment.rb` @@ -256,7 +257,6 @@ def show_version end # def show_version def show_version_logstash - require "logstash/version" puts "logstash #{LOGSTASH_VERSION}" end # def show_version_logstash diff --git a/logstash-core/lib/logstash/webserver.rb b/logstash-core/lib/logstash/webserver.rb index e7f7c2efcda..c7007efdb2e 100644 --- a/logstash-core/lib/logstash/webserver.rb +++ b/logstash-core/lib/logstash/webserver.rb @@ -55,6 +55,10 @@ def log(str) def error(str) logger.error(str) end + + def address + "#{http_host}:#{http_port}" + end # Empty method, this method is required because of the puma usage we make through # the Single interface, https://github.com/puma/puma/blob/master/lib/puma/single.rb#L82 diff --git a/logstash-core/spec/api/lib/api/node_spec.rb b/logstash-core/spec/api/lib/api/node_spec.rb index c9317231449..4ba62d10f1a 100644 --- a/logstash-core/spec/api/lib/api/node_spec.rb +++ b/logstash-core/spec/api/lib/api/node_spec.rb @@ -85,7 +85,6 @@ } }, "hot_threads"=> { - "hostname" => String, "time" => String, "busiest_threads" => Numeric, "threads" => Array diff --git a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb index 0e75c5d00fd..0e22176cd60 100644 --- a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb +++ b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb @@ -23,6 +23,21 @@ def test_api(expected, path) it "should respond OK" do expect(last_response).to be_ok end + + + describe "the default metadata" do + it "should include the host" do + expect(payload["host"]).to eql(Socket.gethostname) + end + + it "should include the version" do + expect(payload["version"]).to eql(LOGSTASH_CORE_VERSION) + end + + it "should include the http address" do + expect(payload["http_address"]).to eql("#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORT}") + end + end hash_to_mapping(expected).each do |resource_path,klass| dotted = resource_path.join(".") diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index ac4b977b6ac..635e47906d7 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -17,7 +17,9 @@ def read_fixture(name) module LogStash class DummyAgent < Agent - def start_webserver; end + def start_webserver + @webserver = Struct.new(:address).new("#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORT}") + end def stop_webserver; end end end @@ -92,7 +94,7 @@ def do_request(&block) @runner = LogStashRunner.new @runner.start end - + after :all do @runner.stop end From 0e022bb2d0a9714a73050f9fc84d101848048d67 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 20 Jun 2016 11:58:47 +0100 Subject: [PATCH 220/632] make acceptance test framework pick snapshot rpm/deb builds Fixes #5522 --- qa/rspec/commands/debian.rb | 2 +- qa/rspec/commands/redhat.rb | 2 +- qa/rspec/commands/suse.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/qa/rspec/commands/debian.rb b/qa/rspec/commands/debian.rb index 710ffc48d57..91151eff1c9 100644 --- a/qa/rspec/commands/debian.rb +++ b/qa/rspec/commands/debian.rb @@ -17,7 +17,7 @@ def installed?(hosts, package) end def package_for(version, base=ServiceTester::Base::LOCATION) - File.join(base, "logstash-#{version}.deb") + File.join(base, "logstash-#{version}-SNAPSHOT.deb") end def install(package, host=nil) diff --git a/qa/rspec/commands/redhat.rb b/qa/rspec/commands/redhat.rb index 8f0cf753c23..db3cf015056 100644 --- a/qa/rspec/commands/redhat.rb +++ b/qa/rspec/commands/redhat.rb @@ -17,7 +17,7 @@ def installed?(hosts, package) end def package_for(version, base=ServiceTester::Base::LOCATION) - File.join(base, "logstash-#{version}.rpm") + File.join(base, "logstash-#{version}-SNAPSHOT.rpm") end def install(package, host=nil) diff --git a/qa/rspec/commands/suse.rb b/qa/rspec/commands/suse.rb index 2a214a53b7e..9a7e52db66f 100644 --- a/qa/rspec/commands/suse.rb +++ b/qa/rspec/commands/suse.rb @@ -14,7 +14,7 @@ def installed?(hosts, package) end def package_for(version, base=ServiceTester::Base::LOCATION) - File.join(base, "logstash-#{version}.rpm") + File.join(base, "logstash-#{version}-SNAPSHOT.rpm") end def install(package, host=nil) From 20b928392d7f27d419504ec5e4099b068d5002e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pere=20Urb=C3=B3n?= Date: Tue, 21 Jun 2016 12:48:51 +0200 Subject: [PATCH 221/632] make acceptance test understand there are artifacts that are snapshots and ones that not (#2) Fixes #5522 --- .../shared_examples/cli/logstash-plugin/install.rb | 2 +- .../spec/shared_examples/cli/logstash-plugin/list.rb | 2 +- .../shared_examples/cli/logstash-plugin/uninstall.rb | 2 +- .../shared_examples/cli/logstash-plugin/update.rb | 2 +- .../spec/shared_examples/cli/logstash/version.rb | 2 +- qa/acceptance/spec/shared_examples/installed.rb | 2 +- qa/acceptance/spec/shared_examples/running.rb | 2 +- qa/acceptance/spec/shared_examples/updated.rb | 6 ++++-- qa/rspec/commands.rb | 12 ++++++++++-- qa/rspec/commands/debian.rb | 6 +++--- qa/rspec/commands/redhat.rb | 4 ++-- qa/rspec/commands/suse.rb | 4 ++-- 12 files changed, 28 insertions(+), 18 deletions(-) diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb index 13cb52036a2..afa8381bca9 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb @@ -5,7 +5,7 @@ shared_examples "logstash install" do |logstash| before(:each) do - logstash.install(LOGSTASH_VERSION) + logstash.install({:version => LOGSTASH_VERSION}) end after(:each) do diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb index 64e6cd1be1a..89336dc31bf 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb @@ -6,7 +6,7 @@ shared_examples "logstash list" do |logstash| describe "logstash-plugin list on #{logstash.hostname}" do before(:all) do - logstash.install(LOGSTASH_VERSION) + logstash.install({:version => LOGSTASH_VERSION}) end after(:all) do diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb index d12bbb954c0..2fe6f94971b 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb @@ -6,7 +6,7 @@ shared_examples "logstash uninstall" do |logstash| describe "logstash uninstall on #{logstash.hostname}" do before :each do - logstash.install(LOGSTASH_VERSION) + logstash.install({:version => LOGSTASH_VERSION}) end after :each do diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb index 3aaaa30523a..9506654a336 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb @@ -5,7 +5,7 @@ shared_examples "logstash update" do |logstash| describe "logstash update on #{logstash.hostname}" do before :each do - logstash.install(LOGSTASH_VERSION) + logstash.install({:version => LOGSTASH_VERSION}) end after :each do diff --git a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb index 97a2027064b..0980e15e831 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb @@ -5,7 +5,7 @@ shared_examples "logstash version" do |logstash| describe "logstash --version" do before :all do - logstash.install(LOGSTASH_VERSION) + logstash.install({:version => LOGSTASH_VERSION}) end after :all do diff --git a/qa/acceptance/spec/shared_examples/installed.rb b/qa/acceptance/spec/shared_examples/installed.rb index 94089232174..8773dfa4de9 100644 --- a/qa/acceptance/spec/shared_examples/installed.rb +++ b/qa/acceptance/spec/shared_examples/installed.rb @@ -5,7 +5,7 @@ RSpec.shared_examples "installable" do |logstash| before(:each) do - logstash.install(LOGSTASH_VERSION) + logstash.install({:version => LOGSTASH_VERSION}) end it "is installed on #{logstash.hostname}" do diff --git a/qa/acceptance/spec/shared_examples/running.rb b/qa/acceptance/spec/shared_examples/running.rb index 4c051dc8f29..55d18507cba 100644 --- a/qa/acceptance/spec/shared_examples/running.rb +++ b/qa/acceptance/spec/shared_examples/running.rb @@ -5,7 +5,7 @@ RSpec.shared_examples "runnable" do |logstash| before(:each) do - logstash.install(LOGSTASH_VERSION) + logstash.install({:version => LOGSTASH_VERSION}) end it "is running on #{logstash.hostname}" do diff --git a/qa/acceptance/spec/shared_examples/updated.rb b/qa/acceptance/spec/shared_examples/updated.rb index 689a9d190b2..f6c9e81319a 100644 --- a/qa/acceptance/spec/shared_examples/updated.rb +++ b/qa/acceptance/spec/shared_examples/updated.rb @@ -11,12 +11,14 @@ end before(:each) do - logstash.install(LOGSTASH_LATEST_VERSION, "./") # make sure latest version is installed + options={:version => LOGSTASH_LATEST_VERSION, :snapshot => false, :base => "./" } + logstash.install(options) # make sure latest version is installed end it "can be updated an run on #{logstash.hostname}" do + expect(logstash).to be_installed # Performing the update - logstash.install(LOGSTASH_VERSION) + logstash.install({:version => LOGSTASH_VERSION}) expect(logstash).to be_installed # starts the service to be sure it runs after the upgrade logstash.start_service diff --git a/qa/rspec/commands.rb b/qa/rspec/commands.rb index c4e739198e8..f90bc74cc97 100644 --- a/qa/rspec/commands.rb +++ b/qa/rspec/commands.rb @@ -56,8 +56,9 @@ def stop_service client.stop_service(name, host) end - def install(version, base=ServiceTester::Base::LOCATION) - package = client.package_for(version, base) + def install(options={}) + base = options.fetch(:base, ServiceTester::Base::LOCATION) + package = client.package_for(filename(options), base) client.install(package, host) end @@ -92,6 +93,13 @@ def delete_file(path) def to_s "Artifact #{name}@#{host}" end + + private + + def filename(options={}) + snapshot = options.fetch(:snapshot, true) + "logstash-#{options[:version]}#{(snapshot ? "-SNAPSHOT" : "")}" + end end # Factory of commands used to select the right clients for a given type of OS and host name, diff --git a/qa/rspec/commands/debian.rb b/qa/rspec/commands/debian.rb index 91151eff1c9..aa722d558dc 100644 --- a/qa/rspec/commands/debian.rb +++ b/qa/rspec/commands/debian.rb @@ -16,14 +16,14 @@ def installed?(hosts, package) stdout.match(/^Status: install ok installed$/) end - def package_for(version, base=ServiceTester::Base::LOCATION) - File.join(base, "logstash-#{version}-SNAPSHOT.deb") + def package_for(filename, base=ServiceTester::Base::LOCATION) + File.join(base, "#{filename}.deb") end def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) at(hosts, {in: :serial}) do |_| - sudo_exec!("dpkg -i #{package}") + cmd = sudo_exec!("dpkg -i #{package}") end end diff --git a/qa/rspec/commands/redhat.rb b/qa/rspec/commands/redhat.rb index db3cf015056..67ec8143a38 100644 --- a/qa/rspec/commands/redhat.rb +++ b/qa/rspec/commands/redhat.rb @@ -16,8 +16,8 @@ def installed?(hosts, package) stdout.match(/^logstash.noarch/) end - def package_for(version, base=ServiceTester::Base::LOCATION) - File.join(base, "logstash-#{version}-SNAPSHOT.rpm") + def package_for(filename, base=ServiceTester::Base::LOCATION) + File.join(base, "#{filename}.rpm") end def install(package, host=nil) diff --git a/qa/rspec/commands/suse.rb b/qa/rspec/commands/suse.rb index 9a7e52db66f..028d9a5cab1 100644 --- a/qa/rspec/commands/suse.rb +++ b/qa/rspec/commands/suse.rb @@ -13,8 +13,8 @@ def installed?(hosts, package) stdout.match(/^i | logstash | An extensible logging pipeline | package$/) end - def package_for(version, base=ServiceTester::Base::LOCATION) - File.join(base, "logstash-#{version}-SNAPSHOT.rpm") + def package_for(filename, base=ServiceTester::Base::LOCATION) + File.join(base, "#{filename}.rpm") end def install(package, host=nil) From 72b277404b2da8586e23327e1659c06db69e274b Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 14 Jun 2016 15:32:27 +0100 Subject: [PATCH 222/632] make -V/--version fast on *nix --- bin/logstash | 9 ++++++++- .../spec/shared_examples/cli/logstash/version.rb | 8 +++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/bin/logstash b/bin/logstash index 7ddc8bb568f..45d65afc384 100755 --- a/bin/logstash +++ b/bin/logstash @@ -46,4 +46,11 @@ fi . "$(cd `dirname $SOURCEPATH`/..; pwd)/bin/logstash.lib.sh" setup -ruby_exec "${LOGSTASH_HOME}/lib/bootstrap/environment.rb" "logstash/runner.rb" "$@" +if [ "$1" = "-V" ] || [ "$1" = "--version" ]; +then + LOGSTASH_VERSION_FILE="${LOGSTASH_HOME}/logstash-core/lib/logstash/version.rb" + LOGSTASH_VERSION="$(sed -ne 's/^LOGSTASH_VERSION = "\([^*]*\)"$/\1/p' $LOGSTASH_VERSION_FILE)" + echo "logstash $LOGSTASH_VERSION" +else + ruby_exec "${LOGSTASH_HOME}/lib/bootstrap/environment.rb" "logstash/runner.rb" "$@" +fi diff --git a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb index 0980e15e831..ae6843313d7 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash/version.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash/version.rb @@ -14,9 +14,15 @@ context "on #{logstash.hostname}" do it "returns the right logstash version" do - result = logstash.run_command_in_path("bin/logstash --path.settings=/etc/logstash --version") + result = logstash.run_command_in_path("bin/logstash --version") expect(result).to run_successfully_and_output(/#{LOGSTASH_VERSION}/) end + context "when also using the --path.settings argument" do + it "returns the right logstash version" do + result = logstash.run_command_in_path("bin/logstash --path.settings=/etc/logstash --version") + expect(result).to run_successfully_and_output(/#{LOGSTASH_VERSION}/) + end + end end end end From 1dd44383c71b67299e033ecefc2ff469f140fe44 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 21 Jun 2016 16:12:23 -0400 Subject: [PATCH 223/632] Make sure the namespace metric is send to the plugin correctly and MetricType#To_hash wont return all the values Fixes: #5529 Fixes #5532 --- logstash-core/lib/logstash/filter_delegator.rb | 2 +- logstash-core/lib/logstash/instrument/metric_type/base.rb | 5 +---- logstash-core/lib/logstash/output_delegator.rb | 2 ++ .../spec/logstash/instrument/metric_type/counter_spec.rb | 7 +------ .../spec/logstash/instrument/metric_type/gauge_spec.rb | 5 +---- 5 files changed, 6 insertions(+), 15 deletions(-) diff --git a/logstash-core/lib/logstash/filter_delegator.rb b/logstash-core/lib/logstash/filter_delegator.rb index 7d50ee58ca6..b311cd2bf8b 100644 --- a/logstash-core/lib/logstash/filter_delegator.rb +++ b/logstash-core/lib/logstash/filter_delegator.rb @@ -22,7 +22,7 @@ def initialize(logger, klass, metric, *args) # Scope the metrics to the plugin namespaced_metric = metric.namespace(@filter.plugin_unique_name.to_sym) - @filter.metric = metric + @filter.metric = namespaced_metric @metric_events = namespaced_metric.namespace(:events) namespaced_metric.gauge(:name, config_name) diff --git a/logstash-core/lib/logstash/instrument/metric_type/base.rb b/logstash-core/lib/logstash/instrument/metric_type/base.rb index 5711c3f83b6..206f175c753 100644 --- a/logstash-core/lib/logstash/instrument/metric_type/base.rb +++ b/logstash-core/lib/logstash/instrument/metric_type/base.rb @@ -17,10 +17,7 @@ def inspect def to_hash { - "namespaces" => namespaces, - "key" => key, - "type" => type, - "value" => value + key => value } end diff --git a/logstash-core/lib/logstash/output_delegator.rb b/logstash-core/lib/logstash/output_delegator.rb index d6450ac4377..ef7281535b6 100644 --- a/logstash-core/lib/logstash/output_delegator.rb +++ b/logstash-core/lib/logstash/output_delegator.rb @@ -27,6 +27,8 @@ def initialize(logger, klass, default_worker_count, metric, *plugin_args) # Scope the metrics to the plugin namespaced_metric = metric.namespace(output.plugin_unique_name.to_sym) + output.metric = namespaced_metric + @metric_events = namespaced_metric.namespace(:events) namespaced_metric.gauge(:name, config_name) diff --git a/logstash-core/spec/logstash/instrument/metric_type/counter_spec.rb b/logstash-core/spec/logstash/instrument/metric_type/counter_spec.rb index b51aebc792d..05d9054069d 100644 --- a/logstash-core/spec/logstash/instrument/metric_type/counter_spec.rb +++ b/logstash-core/spec/logstash/instrument/metric_type/counter_spec.rb @@ -28,12 +28,7 @@ context "When creating a hash " do it "creates the hash from all the values" do - metric_hash = { - "key" => key, - "namespaces" => namespaces, - "value" => 0, - "type" => "counter" - } + metric_hash = { key => 0 } expect(subject.to_hash).to match(metric_hash) end end diff --git a/logstash-core/spec/logstash/instrument/metric_type/gauge_spec.rb b/logstash-core/spec/logstash/instrument/metric_type/gauge_spec.rb index 0481f6d283b..e285a8eb5cf 100644 --- a/logstash-core/spec/logstash/instrument/metric_type/gauge_spec.rb +++ b/logstash-core/spec/logstash/instrument/metric_type/gauge_spec.rb @@ -29,10 +29,7 @@ context "When creating a hash " do it "creates the hash from all the values" do metric_hash = { - "key" => key, - "namespaces" => namespaces, - "value" => value, - "type" => "gauge" + key => value } expect(subject.to_hash).to match(metric_hash) end From 645eee4a70fdc484752e2ce9ef0ff4fcec0bdf06 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 22 Jun 2016 14:00:45 +0100 Subject: [PATCH 224/632] avoid using duplicate logstash.yml for rpm/deb Fixes #5537 --- pkg/logstash.yml | 106 ----------------------------------------- rakelib/artifacts.rake | 4 +- 2 files changed, 2 insertions(+), 108 deletions(-) delete mode 100644 pkg/logstash.yml diff --git a/pkg/logstash.yml b/pkg/logstash.yml deleted file mode 100644 index a04760246a6..00000000000 --- a/pkg/logstash.yml +++ /dev/null @@ -1,106 +0,0 @@ -# Settings file in YAML -# -# Settings can be specified either in hierarchical form, e.g.: -# -# pipeline: -# batch: -# size: 125 -# delay: 5 -# -# Or as flat keys: -# -# pipeline.batch.size: 125 -# pipeline.batch.delay: 5 -# -# ------------ Node identity ------------ -# -# Use a descriptive name for the node: -# -# node.name: test -# -# If omitted the node name will default to the machine's host name -# -# ------------ Pipeline Settings -------------- -# -# Set the number of workers that will, in parallel, execute the filters+outputs -# stage of the pipeline. -# -# This defaults to half the number of the host's CPU cores. -# -# pipeline.workers: 2 -# -# How many workers should be used per output plugin instance -# -# pipeline.output.workers: 1 -# -# How many events to retrieve from inputs before sending to filters+workers -# -# pipeline.batch.size: 125 -# -# How long to wait before dispatching an undersized batch to filters+workers -# Value is in seconds. -# -# pipeline.batch.delay: 5 -# -# Force Logstash to exit during shutdown even if there are still inflight -# events in memory. By default, logstash will refuse to quit until all -# received events have been pushed to the outputs. -# -# WARNING: enabling this can lead to data loss during shutdown -# -# pipeline.unsafe_shutdown: false -# -# ------------ Pipeline Configuration Settings -------------- -# -# Where to fetch the pipeline configuration for the main pipeline -# -# path.config: -# -# Pipeline configuration string for the main pipeline -# -# config.string: -# -# At startup, test if the configuration is valid and exit (dry run) -# -# config.test_and_exit: false -# -# Periodically check if the configuration has changed and reload the pipeline -# This can also be triggered manually through the SIGHUP signal -# -# config.reload.automatic: false -# -# How often to check if the pipeline configuration has changed (in seconds) -# -# config.reload.interval: 3 -# -# Show fully compiled configuration as debug log message -# NOTE: --log.level must be 'debug' -# -# config.debug: false -# -# ------------ Metrics Settings -------------- -# -# Bind address for the metrics REST endpoint -# -# http.host: "127.0.0.1" -# -# Bind port for the metrics REST endpoint -# -# http.port: 9600 -# -# ------------ Debugging Settings -------------- -# -# Options for log.level: -# * warn => warn (default) -# * quiet => error -# * verbose => info -# * debug => debug -# -# log.level: warn -# log.format: plain (or 'json') -# path.log: -# -# ------------ Other Settings -------------- -# -# Where to find custom plugins -# path.plugins: [] diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index 877b9ef826c..4bb835afe8c 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -333,7 +333,7 @@ namespace "artifact" do File.join(basedir, "pkg", "jvm.options").tap do |path| dir.input("#{path}=/etc/logstash") end - File.join(basedir, "pkg", "logstash.yml").tap do |path| + File.join(basedir, "config", "logstash.yml").tap do |path| dir.input("#{path}=/etc/logstash") end require "fpm/package/rpm" @@ -354,7 +354,7 @@ namespace "artifact" do File.join(basedir, "pkg", "jvm.options").tap do |path| dir.input("#{path}=/etc/logstash") end - File.join(basedir, "pkg", "logstash.yml").tap do |path| + File.join(basedir, "config", "logstash.yml").tap do |path| dir.input("#{path}=/etc/logstash") end require "fpm/package/deb" From c0c9a3babc1beea0d2ff9547bec6a0ca21330fdb Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 21 Jun 2016 17:53:42 +0100 Subject: [PATCH 225/632] add data.path setting Fixes #5528 --- config/logstash.yml | 7 +++++++ data/.gitkeep | 0 logstash-core/lib/logstash/environment.rb | 1 + logstash-core/lib/logstash/runner.rb | 6 ++++++ logstash-core/lib/logstash/settings.rb | 12 ++++++++++++ logstash-core/locales/en.yml | 4 ++++ pkg/centos/after-install.sh | 1 + pkg/debian/after-install.sh | 1 + pkg/ubuntu/after-install.sh | 1 + rakelib/artifacts.rake | 2 ++ 10 files changed, 35 insertions(+) create mode 100644 data/.gitkeep diff --git a/config/logstash.yml b/config/logstash.yml index 99cad344dfa..08d0ecf9dd5 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -20,6 +20,13 @@ # # If omitted the node name will default to the machine's host name # +# ------------ Data path ------------------ +# +# Which directory should be used by logstash and its plugins +# for any persistent needs. Defaults to LOGSTASH_HOME/data +# +# path.data: +# # ------------ Pipeline Settings -------------- # # Set the number of workers that will, in parallel, execute the filters+outputs diff --git a/data/.gitkeep b/data/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 560629ff47f..3ea629623fd 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -9,6 +9,7 @@ module LogStash [ Setting::String.new("node.name", Socket.gethostname), Setting::String.new("path.config", nil, false), + Setting::WritableDirectory.new("path.data", ::File.join(LogStash::Environment::LOGSTASH_HOME, "data")), Setting::String.new("config.string", nil, false), Setting::Boolean.new("config.test_and_exit", false), Setting::Boolean.new("config.reload.automatic", false), diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 08d1e6d6ffc..bd85b77b752 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -64,6 +64,12 @@ class LogStash::Runner < Clamp::StrictCommand :attribute_name => "pipeline.unsafe_shutdown", :default => LogStash::SETTINGS.get_default("pipeline.unsafe_shutdown") + # Data Path Setting + option ["--path.data"] , "PATH", + I18n.t("logstash.runner.flag.datapath"), + :attribute_name => "path.data", + :default => LogStash::SETTINGS.get_default("path.data") + # Plugins Settings option ["-p", "--path.plugins"] , "PATH", I18n.t("logstash.runner.flag.pluginpath"), diff --git a/logstash-core/lib/logstash/settings.rb b/logstash-core/lib/logstash/settings.rb index 7cc0e043b38..f3f95e4f479 100644 --- a/logstash-core/lib/logstash/settings.rb +++ b/logstash-core/lib/logstash/settings.rb @@ -261,6 +261,18 @@ def initialize(name, default=nil, strict=true) end end + class WritableDirectory < Setting + def initialize(name, default=nil, strict=true) + super(name, ::String, default, strict) do |path| + if ::File.directory?(path) && ::File.writable?(path) + true + else + raise ::ArgumentError.new("Path \"#{path}\" is not a directory or not writable.") + end + end + end + end + end SETTINGS = Settings.new diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index ed38a34f968..3a32ba97202 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -210,6 +210,10 @@ en: version: |+ Emit the version of logstash and its friends, then exit. + datapath: |+ + This should point to a writable directory. Logstash + will use this directory whenever it needs to store + data. Plugins will also have access to this path. pluginpath: |+ A path of where to find plugins. This flag can be given multiple times to include diff --git a/pkg/centos/after-install.sh b/pkg/centos/after-install.sh index 1c4e7d6a6b7..c55619f0c69 100644 --- a/pkg/centos/after-install.sh +++ b/pkg/centos/after-install.sh @@ -5,5 +5,6 @@ chmod 0644 /etc/logrotate.d/logstash sed -i \ -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ -e 's|# path.log:|path.log: /var/log/logstash/logstash.log|' \ + -e 's|# path.data:|path.data: /var/lib/logstash|' \ /etc/logstash/logstash.yml /usr/share/logstash/bin/system-install /etc/logstash/startup.options diff --git a/pkg/debian/after-install.sh b/pkg/debian/after-install.sh index 362a4ea1e58..786c441cbb8 100644 --- a/pkg/debian/after-install.sh +++ b/pkg/debian/after-install.sh @@ -8,5 +8,6 @@ chmod 0644 /etc/logrotate.d/logstash sed -i \ -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ -e 's|# path.log:|path.log: /var/log/logstash/logstash.log|' \ + -e 's|# path.data:|path.data: /var/lib/logstash|' \ /etc/logstash/logstash.yml /usr/share/logstash/bin/system-install /etc/logstash/startup.options diff --git a/pkg/ubuntu/after-install.sh b/pkg/ubuntu/after-install.sh index d4827cb7e3a..ca9ec6a8824 100644 --- a/pkg/ubuntu/after-install.sh +++ b/pkg/ubuntu/after-install.sh @@ -7,5 +7,6 @@ chmod 0644 /etc/logrotate.d/logstash sed -i \ -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ -e 's|# path.log:|path.log: /var/log/logstash/logstash.log|' \ + -e 's|# path.data:|path.data: /var/lib/logstash|' \ /etc/logstash/logstash.yml /usr/share/logstash/bin/system-install /etc/logstash/startup.options diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index 4bb835afe8c..f4fa01b9d28 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -13,6 +13,7 @@ namespace "artifact" do "CONTRIBUTORS", "bin/**/*", "config/**/*", + "data", "lib/bootstrap/**/*", "lib/pluginmanager/**/*", "lib/systeminstall/**/*", @@ -313,6 +314,7 @@ namespace "artifact" do # This is a bit obtuse, I suppose, but it is necessary until # we find a better way to do this with fpm. Stud::Temporary.directory do |empty| + dir.input("#{empty}/=/usr/share/logstash/data") dir.input("#{empty}/=/var/log/logstash") dir.input("#{empty}/=/var/lib/logstash") dir.input("#{empty}/=/etc/logstash/conf.d") From 988793dbb160a41a1773eba24f4d4f44843fbe2e Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 23 Jun 2016 11:27:09 -0400 Subject: [PATCH 226/632] Add more testing around the `NullMetric` implementation The current test where only checking if the `NullMetric` Interface was matching the original metric interface, this PR add more test around the actual methods and fix an issue with `decrement` using too much arguments in the context of a namespaced metric. The test were also move into a shared example to be used in both the `NullMetric` and the `NamedspacedMetric`. Also the NullMetric class will no use the same validation for keys as the namespaced class and will reject empty or nil keys. Fixes #5545 --- .../lib/logstash/instrument/metric.rb | 13 +-- .../logstash/instrument/namespaced_metric.rb | 2 +- .../lib/logstash/instrument/null_metric.rb | 7 +- .../instrument/namespaced_metric_spec.rb | 63 +++++++++++- .../logstash/instrument/null_metric_spec.rb | 16 ++- logstash-core/spec/support/shared_examples.rb | 98 +++++++++++++++++++ 6 files changed, 180 insertions(+), 19 deletions(-) create mode 100644 logstash-core/spec/support/shared_examples.rb diff --git a/logstash-core/lib/logstash/instrument/metric.rb b/logstash-core/lib/logstash/instrument/metric.rb index 1bc39d75442..6f071917a17 100644 --- a/logstash-core/lib/logstash/instrument/metric.rb +++ b/logstash-core/lib/logstash/instrument/metric.rb @@ -18,22 +18,22 @@ def initialize(collector) end def increment(namespace, key, value = 1) - validate_key!(key) + self.class.validate_key!(key) collector.push(namespace, key, :counter, :increment, value) end def decrement(namespace, key, value = 1) - validate_key!(key) + self.class.validate_key!(key) collector.push(namespace, key, :counter, :decrement, value) end def gauge(namespace, key, value) - validate_key!(key) + self.class.validate_key!(key) collector.push(namespace, key, :gauge, :set, value) end def time(namespace, key) - validate_key!(key) + self.class.validate_key!(key) if block_given? timer = TimedExecution.new(self, namespace, key) @@ -46,6 +46,7 @@ def time(namespace, key) end def report_time(namespace, key, duration) + self.class.validate_key!(key) collector.push(namespace, key, :counter, :increment, duration) end @@ -69,11 +70,11 @@ def namespace(name) NamespacedMetric.new(self, name) end - private - def validate_key!(key) + def self.validate_key!(key) raise MetricNoKeyProvided if key.nil? || key.empty? end + private # Allow to calculate the execution of a block of code. # This class support 2 differents syntax a block or the return of # the object itself, but in the later case the metric wont be recorded diff --git a/logstash-core/lib/logstash/instrument/namespaced_metric.rb b/logstash-core/lib/logstash/instrument/namespaced_metric.rb index 330ded453bc..1f056bd0735 100644 --- a/logstash-core/lib/logstash/instrument/namespaced_metric.rb +++ b/logstash-core/lib/logstash/instrument/namespaced_metric.rb @@ -24,7 +24,7 @@ def increment(key, value = 1) @metric.increment(namespace_name, key, value) end - def decrement(namespace, key, value = 1) + def decrement(key, value = 1) @metric.decrement(namespace_name, key, value) end diff --git a/logstash-core/lib/logstash/instrument/null_metric.rb b/logstash-core/lib/logstash/instrument/null_metric.rb index b8054b766dc..aec7d811633 100644 --- a/logstash-core/lib/logstash/instrument/null_metric.rb +++ b/logstash-core/lib/logstash/instrument/null_metric.rb @@ -9,20 +9,25 @@ class NullMetric attr_reader :namespace_name, :collector def increment(key, value = 1) + Metric.validate_key!(key) end - def decrement(namespace, key, value = 1) + def decrement(key, value = 1) + Metric.validate_key!(key) end def gauge(key, value) + Metric.validate_key!(key) end def report_time(key, duration) + Metric.validate_key!(key) end # We have to manually redefine this method since it can return an # object this object also has to be implemented as a NullObject def time(key) + Metric.validate_key!(key) if block_given? yield else diff --git a/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb b/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb index 289a9dba566..1f7f1d8ab9f 100644 --- a/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb +++ b/logstash-core/spec/logstash/instrument/namespaced_metric_spec.rb @@ -2,10 +2,11 @@ require "logstash/instrument/namespaced_metric" require "logstash/instrument/metric" require_relative "../../support/matchers" +require_relative "../../support/shared_examples" require "spec_helper" describe LogStash::Instrument::NamespacedMetric do - let(:namespace) { :stats } + let(:namespace) { :root } let(:collector) { [] } let(:metric) { LogStash::Instrument::Metric.new(collector) } @@ -27,6 +28,64 @@ new_namespace = subject.namespace(:wally) expect(subject.namespace_name).to eq([namespace]) - expect(new_namespace.namespace_name).to eq([:stats, :wally]) + expect(new_namespace.namespace_name).to eq([:root, :wally]) end + + context "#increment" do + it "a counter by 1" do + metric = subject.increment(:error_rate) + expect(collector).to be_a_metric_event([:root, :error_rate], :counter, :increment, 1) + end + + it "a counter by a provided value" do + metric = subject.increment(:error_rate, 20) + expect(collector).to be_a_metric_event([:root, :error_rate], :counter, :increment, 20) + end + end + + context "#decrement" do + it "a counter by 1" do + metric = subject.decrement(:error_rate) + expect(collector).to be_a_metric_event([:root, :error_rate], :counter, :decrement, 1) + end + + it "a counter by a provided value" do + metric = subject.decrement(:error_rate, 20) + expect(collector).to be_a_metric_event([:root, :error_rate], :counter, :decrement, 20) + end + end + + context "#gauge" do + it "set the value of a key" do + metric = subject.gauge(:size_queue, 20) + expect(collector).to be_a_metric_event([:root, :size_queue], :gauge, :set, 20) + end + end + + context "#time" do + let(:sleep_time) { 2 } + let(:sleep_time_ms) { sleep_time * 1_000 } + + it "records the duration" do + subject.time(:duration_ms) { sleep(sleep_time) } + + expect(collector.last).to be_within(sleep_time_ms).of(sleep_time_ms + 5) + expect(collector[0]).to match([:root]) + expect(collector[1]).to be(:duration_ms) + expect(collector[2]).to be(:counter) + end + + it "return a TimedExecution" do + execution = subject.time(:duration_ms) + sleep(sleep_time) + execution.stop + + expect(collector.last).to be_within(sleep_time_ms).of(sleep_time_ms + 0.1) + expect(collector[0]).to match([:root]) + expect(collector[1]).to be(:duration_ms) + expect(collector[2]).to be(:counter) + end + end + + include_examples "metrics commons operations" end diff --git a/logstash-core/spec/logstash/instrument/null_metric_spec.rb b/logstash-core/spec/logstash/instrument/null_metric_spec.rb index ec55d341be4..8f4aa4b1f3a 100644 --- a/logstash-core/spec/logstash/instrument/null_metric_spec.rb +++ b/logstash-core/spec/logstash/instrument/null_metric_spec.rb @@ -1,21 +1,19 @@ # encoding: utf-8 require "logstash/instrument/null_metric" require "logstash/instrument/namespaced_metric" -require_relative "../../support/matchers" +require_relative "../../support/shared_examples" describe LogStash::Instrument::NullMetric do + # This is defined in the `namespaced_metric_spec` + include_examples "metrics commons operations" + it "defines the same interface as `Metric`" do expect(described_class).to implement_interface_of(LogStash::Instrument::NamespacedMetric) end - describe "#time" do - it "returns the value of the block without recording any metrics" do - expect(subject.time(:execution_time) { "hello" }).to eq("hello") - end - - it "return a TimedExecution" do - execution = subject.time(:do_something) - expect { execution.stop }.not_to raise_error + describe "#namespace" do + it "return a NullMetric" do + expect(subject.namespace(key)).to be_kind_of LogStash::Instrument::NullMetric end end end diff --git a/logstash-core/spec/support/shared_examples.rb b/logstash-core/spec/support/shared_examples.rb new file mode 100644 index 00000000000..b65f2acfaaf --- /dev/null +++ b/logstash-core/spec/support/shared_examples.rb @@ -0,0 +1,98 @@ +# encoding: utf-8 +# Define the common operation that both the `NullMetric` class and the Namespaced class should answer. +shared_examples "metrics commons operations" do + let(:key) { "galaxy" } + + describe "#increment" do + it "allows to increment a key with no amount" do + expect { subject.increment(key, 100) }.not_to raise_error + end + + it "allow to increment a key" do + expect { subject.increment(key) }.not_to raise_error + end + + it "raises an exception if the key is an empty string" do + expect { subject.increment("", 20) }.to raise_error(LogStash::Instrument::MetricNoKeyProvided) + end + + it "raise an exception if the key is nil" do + expect { subject.increment(nil, 20) }.to raise_error(LogStash::Instrument::MetricNoKeyProvided) + end + end + + describe "#decrement" do + it "allows to decrement a key with no amount" do + expect { subject.decrement(key, 100) }.not_to raise_error + end + + it "allow to decrement a key" do + expect { subject.decrement(key) }.not_to raise_error + end + + it "raises an exception if the key is an empty string" do + expect { subject.decrement("", 20) }.to raise_error(LogStash::Instrument::MetricNoKeyProvided) + end + + it "raise an exception if the key is nil" do + expect { subject.decrement(nil, 20) }.to raise_error(LogStash::Instrument::MetricNoKeyProvided) + end + end + + describe "#gauge" do + it "allows to set a value" do + expect { subject.gauge(key, "pluto") }.not_to raise_error + end + + + it "raises an exception if the key is an empty string" do + expect { subject.gauge("", 20) }.to raise_error(LogStash::Instrument::MetricNoKeyProvided) + end + + it "raise an exception if the key is nil" do + expect { subject.gauge(nil, 20) }.to raise_error(LogStash::Instrument::MetricNoKeyProvided) + end + end + + describe "#report_time" do + it "allow to record time" do + expect { subject.report_time(key, 1000) }.not_to raise_error + end + + it "raises an exception if the key is an empty string" do + expect { subject.report_time("", 20) }.to raise_error(LogStash::Instrument::MetricNoKeyProvided) + end + + it "raise an exception if the key is nil" do + expect { subject.report_time(nil, 20) }.to raise_error(LogStash::Instrument::MetricNoKeyProvided) + end + end + + describe "#time" do + it "allow to record time with a block given" do + expect do + subject.time(key) { 1+1 } + end.not_to raise_error + end + + it "returns the value of the block without recording any metrics" do + expect(subject.time(:execution_time) { "hello" }).to eq("hello") + end + + it "return a TimedExecution" do + execution = subject.time(:do_something) + expect { execution.stop }.not_to raise_error + end + + + it "raises an exception if the key is an empty string" do + expect { subject.time("") {} }.to raise_error(LogStash::Instrument::MetricNoKeyProvided) + end + + it "raise an exception if the key is nil" do + expect { subject.time(nil) {} }.to raise_error(LogStash::Instrument::MetricNoKeyProvided) + end + end +end + + From cfe71cb58b8d7587322fbdd7bb4004feb204aa4e Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 22 Jun 2016 13:49:03 -0400 Subject: [PATCH 227/632] When running logstash in debug mode, display the stacktrace Fixes #5542 --- logstash-core/lib/logstash/agent.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 3bbbd73c58e..e619494799f 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -184,7 +184,11 @@ def create_pipeline(settings, config=nil) begin LogStash::Pipeline.new(config, settings, metric) rescue => e - @logger.error("fetched an invalid config", :config => config, :reason => e.message) + if @logger.debug? + @logger.error("fetched an invalid config", :config => config, :reason => e.message, :backtrace => e.backtrace) + else + @logger.error("fetched an invalid config", :config => config, :reason => e.message) + end return end end From 363879546d07534ae487dd73efc6c170057ce442 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 22 Jun 2016 16:17:54 -0400 Subject: [PATCH 228/632] Always provide a default metric to the plugin instance Fix an issue when running tests of the plugin in isolation, no default metric was created and the metric was nil. This commit change the behavior to always return a `NullMetric` when plugin instances are created outside of the pipeline. Added tests to cover all the base class of plugin that can record metric. Fixes #5542 --- logstash-core/lib/logstash/plugin.rb | 12 +++- logstash-core/spec/logstash/plugin_spec.rb | 73 ++++++++++++++++++++++ 2 files changed, 83 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index 0c6ce147fa8..feab35251a7 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -105,9 +105,17 @@ def metric=(new_metric) end def metric - @metric_plugin ||= enable_metric ? @metric : LogStash::Instrument::NullMetric.new + @metric_plugin ||= begin + # We can disable metric per plugin if we want in the configuration + # we will use the NullMetric in this case. + if @enable_metric + # Fallback when testing plugin and no metric collector are correctly configured. + @metric.nil? ? LogStash::Instrument::NullMetric.new : @metric + else + LogStash::Instrument::NullMetric.new + end + end end - # return the configured name of this plugin # @return [String] The name of the plugin defined by `config_name` def config_name diff --git a/logstash-core/spec/logstash/plugin_spec.rb b/logstash-core/spec/logstash/plugin_spec.rb index 2a5040551ff..5f0bde381f9 100644 --- a/logstash-core/spec/logstash/plugin_spec.rb +++ b/logstash-core/spec/logstash/plugin_spec.rb @@ -270,4 +270,77 @@ def register; end end end end + + + context "When the plugin record a metric" do + let(:config) { {} } + + [LogStash::Inputs::Base, LogStash::Filters::Base, LogStash::Outputs::Base].each do |base| + let(:plugin) do + Class.new(base) do + config_name "testing" + + def register + metric.gauge("power_level", 9000) + end + end + end + + subject { plugin.new(config) } + + context "when no metric is set to the plugin" do + context "when `enable_metric` is TRUE" do + it "recording metric should not raise an exception" do + expect { subject.register }.not_to raise_error + end + + it "should use a `NullMetric`" do + expect(subject.metric).to be_kind_of(LogStash::Instrument::NullMetric) + end + end + + context "when `enable_metric` is FALSE" do + let(:config) { { "enable_metric" => false } } + + it "recording metric should not raise an exception" do + expect { subject.register }.not_to raise_error + end + + it "should use a `NullMetric`" do + expect(subject.metric).to be_kind_of(LogStash::Instrument::NullMetric) + end + end + end + + context "When a specific metric collector is configured" do + context "when `enable_metric` is TRUE" do + let(:metric) { LogStash::Instrument::Metric.new(LogStash::Instrument::Collector.new).namespace("dbz") } + + before :each do + subject.metric = metric + end + + it "recording metric should not raise an exception" do + expect { subject.register }.not_to raise_error + end + + it "should use the configured metric" do + expect(subject.metric).to eq(metric) + end + end + + context "when `enable_metric` is FALSE" do + let(:config) { { "enable_metric" => false } } + + it "recording metric should not raise an exception" do + expect { subject.register }.not_to raise_error + end + + it "should use a `NullMetric`" do + expect(subject.metric).to be_kind_of(LogStash::Instrument::NullMetric) + end + end + end + end + end end From 6fdb1935c332e3637d1a065515775a18a7b08aa4 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 22 Jun 2016 19:49:02 -0400 Subject: [PATCH 229/632] Making sure the input plugin have access to the metric Fixes #5542 --- logstash-core/lib/logstash/pipeline.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 024f75c7f1a..4ba7d2675a8 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -437,7 +437,9 @@ def plugin(plugin_type, name, *args) elsif plugin_type == "filter" LogStash::FilterDelegator.new(@logger, klass, pipeline_scoped_metric.namespace(:filters), *args) else - klass.new(*args) + new_plugin = klass.new(*args) + new_plugin.metric = pipeline_scoped_metric.namespace(:inputs) + new_plugin end end From 1a2b11e23149d909948d8659c70cbfac541bfed5 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 22 Jun 2016 19:50:31 -0400 Subject: [PATCH 230/632] making sure that flores rspec are acessible everywhere Fixes #5542 --- spec/spec_helper.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index bb2ccba5c7d..2daa3e6937c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -7,6 +7,9 @@ require "logstash/devutils/rspec/spec_helper" require "logstash/logging/json" +require "flores/rspec" +require "flores/random" + class JSONIOThingy < IO def initialize; end def flush; end @@ -18,6 +21,7 @@ def puts(payload) end RSpec.configure do |c| + Flores::RSpec.configure(c) c.before do # Force Cabin to always have a JSON subscriber. The main purpose of this # is to catch crashes in json serialization for our logs. JSONIOThingy From 0b02cf66516c975bbf4e22ebb0e1ff9f41b8dd00 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 22 Jun 2016 19:54:34 -0400 Subject: [PATCH 231/632] No need to use rspec mocking to set the metric for a plugin we can use the accessor Fixes #5542 --- logstash-core/spec/logstash/inputs/metrics_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/spec/logstash/inputs/metrics_spec.rb b/logstash-core/spec/logstash/inputs/metrics_spec.rb index 436d676f62d..842e8b48bfe 100644 --- a/logstash-core/spec/logstash/inputs/metrics_spec.rb +++ b/logstash-core/spec/logstash/inputs/metrics_spec.rb @@ -8,7 +8,7 @@ let(:queue) { [] } before :each do - allow(subject).to receive(:metric).and_return(metric) + subject.metric = metric end describe "#run" do From 64f9a27208fd7069cdd8faffa2140342e44b7d5f Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 23 Jun 2016 16:09:37 -0400 Subject: [PATCH 232/632] Review changes Fixes #5542 --- logstash-core/lib/logstash/plugin.rb | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index feab35251a7..549291513c9 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -105,15 +105,13 @@ def metric=(new_metric) end def metric - @metric_plugin ||= begin - # We can disable metric per plugin if we want in the configuration - # we will use the NullMetric in this case. - if @enable_metric - # Fallback when testing plugin and no metric collector are correctly configured. - @metric.nil? ? LogStash::Instrument::NullMetric.new : @metric - else - LogStash::Instrument::NullMetric.new - end + # We can disable metric per plugin if we want in the configuration + # we will use the NullMetric in this case. + @metric_plugin ||= if @enable_metric + # Fallback when testing plugin and no metric collector are correctly configured. + @metric.nil? ? LogStash::Instrument::NullMetric.new : @metric + else + LogStash::Instrument::NullMetric.new end end # return the configured name of this plugin From a0db616fca29f0f2a2177130b18210fa43b6b2b8 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Mon, 27 Jun 2016 09:56:09 +0200 Subject: [PATCH 233/632] remove jms from skip list Fixes #5555 --- rakelib/default_plugins.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/rakelib/default_plugins.rb b/rakelib/default_plugins.rb index 52ba5c14005..73c1062fb74 100644 --- a/rakelib/default_plugins.rb +++ b/rakelib/default_plugins.rb @@ -116,7 +116,6 @@ module RakeLib ALL_PLUGINS_SKIP_LIST = Regexp.union([ /^logstash-filter-yaml$/, - /jms$/, /example$/, /drupal/i, /^logstash-output-logentries$/, From 1fa83b99dd9dd7e1548ad4d9f79d75c63c3efd7c Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 28 Jun 2016 16:01:45 +0200 Subject: [PATCH 234/632] add --force-confnew to pick automatically new config when updating packages for debians, this avoid interactive prompt issues Fixes #5559 --- qa/rspec/commands/debian.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/rspec/commands/debian.rb b/qa/rspec/commands/debian.rb index aa722d558dc..6ddbd08244b 100644 --- a/qa/rspec/commands/debian.rb +++ b/qa/rspec/commands/debian.rb @@ -23,7 +23,7 @@ def package_for(filename, base=ServiceTester::Base::LOCATION) def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) at(hosts, {in: :serial}) do |_| - cmd = sudo_exec!("dpkg -i #{package}") + sudo_exec!("dpkg -i --force-confnew #{package}") end end From 82519ef940e6c7725092202746cbefa0d06f1683 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 24 Jun 2016 19:28:14 -0700 Subject: [PATCH 235/632] Add docs for monitoring API changes in Alpha4 Fixes #5553 --- docs/static/monitoring-apis.asciidoc | 375 ++++++++++++++++++++++----- 1 file changed, 315 insertions(+), 60 deletions(-) diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 7e5717e04ac..635fe8b1523 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -6,13 +6,14 @@ experimental[] Logstash provides the following monitoring APIs to retrieve runtime metrics about Logstash: +* <> * <> * <> * <> You can use the root resource to retrieve general information about the Logstash instance, including -the host name and version information. +the hostname and version. [source,js] -------------------------------------------------- @@ -21,14 +22,13 @@ GET / Example response: -[source,js] +["source","js",subs="attributes"] -------------------------------------------------- { "hostname": "skywalker", - "version" : { - "number" : "2.1.0", - } - } + "version": "{logstash_version}", + "http_address": "127.0.0.1:9600" +} -------------------------------------------------- NOTE: By default, the monitoring API attempts to bind to `tcp:9600`. If this port is already in use by another Logstash @@ -65,6 +65,110 @@ being consumed by a monitoring tool, rather than intended for human consumption. The default for the `human` flag is `false`. +[[node-info-api]] +=== Node Info API + +coming[5.0.0-alpha4] + +experimental[] + +The node info API retrieves information about the node. + +[source,js] +-------------------------------------------------- +GET /_node/ +-------------------------------------------------- + +Where `` is optional and specifies the types of node info you want to return. + +You can limit the info that's returned by combining any of the following types: + +//REVIEWERS: It looks like you cannot combine types in a comma-spearated list like you can for the Elasticsearch cluster APIs. Is this intentional/correct behavior? If so, I need to change this to say "". + +[horizontal] +`pipeline`:: +Gets pipeline-specific information and settings. +`os`:: +Gets node-level info about the OS. +`jvm`:: +Gets node-level JVM info, including info about threads. + +==== Pipeline Info + +The following request returns a JSON document that shows pipeline info, such as the number of workers, +batch size, and batch delay: + +[source,js] +-------------------------------------------------- +GET /_node/pipeline +-------------------------------------------------- + +Example response: + +["source","js",subs="attributes"] +-------------------------------------------------- +{ + "pipeline": { + "workers": 8, + "batch_size": 125, + "batch_delay": 5 + } +-------------------------------------------------- + +==== OS Info + +The following request returns a JSON document that shows the OS name, architecture, version, and +available processors: + +[source,js] +-------------------------------------------------- +GET /_node/os +-------------------------------------------------- + +Example response: + +[source,js] +-------------------------------------------------- +{ + "os": { + "name": "Mac OS X", + "arch": "x86_64", + "version": "10.11.2", + "available_processors": 8 + } +-------------------------------------------------- + +==== JVM Info + +The following request returns a JSON document that shows node-level JVM stats, such as the JVM process id, version, +VM info, and memory usage: + +[source,js] +-------------------------------------------------- +GET /_node/jvm +-------------------------------------------------- + +Example response: + +[source,js] +-------------------------------------------------- +{ + "jvm": { + "pid": 31580, + "version": "1.8.0_65", + "vm_name": "Java HotSpot(TM) 64-Bit Server VM", + "vm_version": "1.8.0_65", + "vm_vendor": "Oracle Corporation", + "start_time_in_millis": 1466799661753, + "mem": { + "heap_init_in_bytes": 268435456, + "heap_max_in_bytes": 1037959168, + "non_heap_init_in_bytes": 2555904, + "non_heap_max_in_bytes": 0 + } + } +-------------------------------------------------- + [[plugins-api]] === Plugins API @@ -75,33 +179,39 @@ This API basically returns the output of running the `bin/logstash-plugin list - [source,js] -------------------------------------------------- -GET /_plugins +GET /_node/plugins -------------------------------------------------- The output is a JSON document. Example response: -[source,js] +["source","js",subs="attributes"] -------------------------------------------------- -"total": 102 -"plugins" : [ - { - "name": "logstash-output-pagerduty" - "version": "2.0.2" - }, - { - "name": "logstash-output-elasticsearch" - "version": "2.1.2" - } -.... -] +{ + "plugins": [ + { + "name": "logstash-codec-collectd", + "version": "3.0.1" + }, + { + "name": "logstash-codec-dots", + "version": "3.0.1" + }, + { + "name": "logstash-codec-edn", + "version": "3.0.1" + }, + . + . + . + ] -------------------------------------------------- [[stats-info-api]] === Node Stats API -coming[5.0.0-beta3,Replaces the Stats Info API] +added[5.0.0-beta3,Replaces the Stats Info API] experimental[] @@ -114,28 +224,27 @@ The node stats API retrieves runtime stats about Logstash. GET /_node/stats/ -------------------------------------------------- -//// -COMMENTED OUT until Logstash supports multiple pipelines: To retrieve all stats per pipeline, use the `_pipelines/stats` endpoint: - -[source,js] --------------------------------------------------- -GET /_pipelines/stats/ --------------------------------------------------- -//// - Where `` is optional and specifies the types of stats you want to return. By default, all stats are returned. You can limit this by combining any of the following types: [horizontal] `events`:: -Gets event information since startup. +Gets event information since startup. `jvm`:: -Gets JVM stats, including stats about threads. coming[5.0.0-alpha3,Adds thread count] +Gets JVM stats, including stats about threads. added[5.0.0-alpha3,Adds thread count] `process`:: -Gets process stats, including stats about file descriptors, memory consumption, and CPU usage. coming[5.0.0-alpha3] +Gets process stats, including stats about file descriptors, memory consumption, and CPU usage. added[5.0.0-alpha3] +`mem`:: +Gets memory usage stats. coming[5.0.0-alpha4] +`pipeline`:: +Gets stats for a pipeline, including stats about each configured input, filter, or output stage. coming[5.0.0-alpha4,Stats for input stages are not yet available] + +//REVIEWERS: In the latest Logstash build available on June 24, the APIs did not behave exactly as they are documented in https://github.com/elastic/logstash/issues/5475. /_node/stats/pipeline returns the expected results, but I couldn't specify anything below that (such as /_node/stats/pipeline/events). So I've documented the end points accordingly. I also noticed that mem appears in the returned JSON doc. Can you help me by suggesting a better/more complete description>? -For example, the following request returns a JSON document that shows the number of events +==== Event Stats + +The following request returns a JSON document that shows the number of events that were input, filtered, and output by Logstash since startup: [source,js] @@ -155,6 +264,8 @@ Example response: } -------------------------------------------------- +==== JVM Stats + The following request returns a JSON document containing JVM stats: [source,js] @@ -175,6 +286,8 @@ Example response: } -------------------------------------------------- +==== Process Stats + The following request returns a JSON document containing process stats: [source,js] @@ -201,6 +314,117 @@ Example response: } -------------------------------------------------- +==== Mem Stats + +The following request returns a JSON document containing memory stats: + +[source,js] +-------------------------------------------------- +GET /_node/stats/mem +-------------------------------------------------- + +Example response: + +[source,js] +-------------------------------------------------- +{ + "mem": { + "heap_used_in_bytes": 262641008, + "heap_used_percent": 12, + "heap_committed_in_bytes": 519045120, + "heap_max_in_bytes": 2075918336, + "non_heap_used_in_bytes": 184060512, + "non_heap_committed_in_bytes": 195870720, + "pools": { + "survivor": { + "peak_used_in_bytes": 8912896, + "used_in_bytes": 9280256, + "peak_max_in_bytes": 35782656, + "max_in_bytes": 71565312, + "committed_in_bytes": 17825792 + }, + "old": { + "peak_used_in_bytes": 112649208, + "used_in_bytes": 170055984, + "peak_max_in_bytes": 715849728, + "max_in_bytes": 1431699456, + "committed_in_bytes": 357957632 + }, + "young": { + "peak_used_in_bytes": 71630848, + "used_in_bytes": 83304768, + "peak_max_in_bytes": 286326784, + "max_in_bytes": 572653568, + "committed_in_bytes": 143261696 + } + } + } +-------------------------------------------------- + +==== Pipeline Stats + +The following request returns a JSON document containing pipeline stats, including the number of events that were +input, filtered, or output by the pipeline. The request also returns stats for each configured input, filter, or +output stage. coming[5.0.0-alpha4,Stats for input stages are not yet available] + +[source,js] +-------------------------------------------------- +GET /_node/stats/pipeline +-------------------------------------------------- + +//REVIEWERS: Note that when you call /_node/stats, it does not return the pipeline stats. You need to specify /_node/stats/pipeline specifically. This makes me wonder if it shouldn't be its own API topic. WDYT? + +Example response: + +[source,js] +-------------------------------------------------- + "pipeline": { + "events": { + "in": 100, + "filtered": 100, + "out": 100 + }, + "pipeline": { + "inputs": [], + "filters": [ + { + "id": "geoip_6aea6f9a-c100-4c39-ab00-e34d54d6e573", + "events": { + "duration_in_millis": 145, + "in": 100, + "out": 100 + }, + "name": "geoip" + }, + { + "id": "grok_4000f2bf-4baf-4258-b72f-56e0b6f15fc1", + "events": { + "duration_in_millis": 48, + "in": 100, + "out": 100 + }, + "matches": 100, + "patterns_per_field": { + "message": 1 + }, + "name": "grok" + } + ], + "outputs": [ + { + "id": "elasticsearch_db05752c-2e30-4f77-a3d7-167e915d470f", + "events": { + "duration_in_millis": 232, + "in": 100, + "out": 100 + }, + "name": "elasticsearch" + } + ] + } + } +-------------------------------------------------- + See <> for a list of options that can be applied to all Logstash monitoring APIs. @@ -220,40 +444,69 @@ GET /_node/hot_threads -------------------------------------------------- The output is a JSON document that contains a breakdown of the top hot threads for -Logstash. The parameters allowed are: - -[horizontal] -`threads`:: The number of hot threads to return. The default is 3. -`human`:: If true, returns plain text instead of JSON format. The default is false. -`ignore_idle_threads`:: If true, does not return idle threads. The default is true. +Logstash. Example response: [source,js] -------------------------------------------------- { - "hostname" : "Example-MBP-2", - "time" : "2016-03-08T17:58:18-08:00", - "busiest_threads" : 3, - "threads" : [ { - "name" : "LogStash::Runner", - "percent_of_cpu_time" : 16.93, - "state" : "timed_waiting", - "traces" : "\t\tjava.lang.Object.wait(Native Method)\n\t\tjava.lang.Thread.join(Thread.java:1253)\n\t\torg.jruby.internal.runtime.NativeThread.join(NativeThread.java:75)\n\t\torg.jruby.RubyThread.join(RubyThread.java:697)\n\t\torg.jruby.RubyThread$INVOKER$i$0$1$join.call(RubyThread$INVOKER$i$0$1$join.gen)\n\t\torg.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:663)\n\t\torg.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:198)\n\t\torg.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306)\n\t\torg.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136)\n\t\torg.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60)\n" - }, { - "name" : "Api Webserver", - "percent_of_cpu_time" : 0.39, - "state" : "timed_waiting", - "traces" : "\t\tjava.lang.Object.wait(Native Method)\n\t\tjava.lang.Thread.join(Thread.java:1253)\n\t\torg.jruby.internal.runtime.NativeThread.join(NativeThread.java:75)\n\t\torg.jruby.RubyThread.join(RubyThread.java:697)\n\t\torg.jruby.RubyThread$INVOKER$i$0$1$join.call(RubyThread$INVOKER$i$0$1$join.gen)\n\t\torg.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:663)\n\t\torg.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:198)\n\t\torg.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306)\n\t\torg.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136)\n\t\torg.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60)\n" - }, { - "name" : "Ruby-0-Thread-13", - "percent_of_cpu_time" : 0.15, - "state" : "timed_waiting", - "path" : "/Users/suyog/ws/elastic/logstash/build/logstash-3.0.0.dev/vendor/local_gems/f5685da5/logstash-core-3.0.0.dev-java/lib/logstash/pipeline.rb:496", - "traces" : "\t\tjava.lang.Object.wait(Native Method)\n\t\torg.jruby.RubyThread.sleep(RubyThread.java:1002)\n\t\torg.jruby.RubyKernel.sleep(RubyKernel.java:803)\n\t\torg.jruby.RubyKernel$INVOKER$s$0$1$sleep.call(RubyKernel$INVOKER$s$0$1$sleep.gen)\n\t\torg.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:667)\n\t\torg.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:206)\n\t\torg.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)\n\t\torg.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)\n\t\torg.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)\n\t\torg.jruby.ast.BlockNode.interpret(BlockNode.java:71)\n" - } ] + "host": "skywalker", + "version": "5.0.0-alpha4", + "http_address": "127.0.0.1:9600", + "hot_threads": { + "time": "2016-06-24T18:19:48-07:00", + "busiest_threads": 3, + "threads": [ + { + "name": "LogStash::Runner", + "percent_of_cpu_time": 0.09, + "state": "timed_waiting", + "traces": [ + "java.lang.Object.wait(Native Method)", + "java.lang.Thread.join(Thread.java:1253)", + "org.jruby.internal.runtime.NativeThread.join(NativeThread.java:75)", + "org.jruby.RubyThread.join(RubyThread.java:697)", + "org.jruby.RubyThread$INVOKER$i$0$1$join.call(RubyThread$INVOKER$i$0$1$join.gen)", + "org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:663)", + "org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:198)", + "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306)", + "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136)", + "org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60)" + ] + }, + { + "name": "Ruby-0-Thread-17", + "percent_of_cpu_time": 0.05, + "state": "timed_waiting", + "path": "/Users/dedemorton/BuildTesting/5.0.0-alpha4/logstash-5.0.0-alpha4/logstash-core/lib/logstash/pipeline.rb:467", + "traces": [ + "java.lang.Object.wait(Native Method)", + "org.jruby.RubyThread.sleep(RubyThread.java:1002)", + "org.jruby.RubyKernel.sleep(RubyKernel.java:803)", + "org.jruby.RubyKernel$INVOKER$s$0$1$sleep.call(RubyKernel$INVOKER$s$0$1$sleep.gen)", + "org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:667)", + "org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:206)", + "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)", + "rubyjit.Module$$stoppable_sleep_c19c1639527ca7d373b5093f339d26538f1c21ef1028566121.__file__(/Users/dedemorton/BuildTesting/5.0.0-alpha4/logstash-5.0.0-alpha4/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/interval.rb:84)", + "rubyjit.Module$$stoppable_sleep_c19c1639527ca7d373b5093f339d26538f1c21ef1028566121.__file__(/Users/dedemorton/BuildTesting/5.0.0-alpha4/logstash-5.0.0-alpha4/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/interval.rb)", + "org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:46)" + ] + } + ] + } +} -------------------------------------------------- +//REVIEWERS: Curious why the hot threads API is the only one that (appears) to accept parameters. Am I missing parameters in the other APIs? + +The parameters allowed are: + +[horizontal] +`threads`:: The number of hot threads to return. The default is 3. +`human`:: If true, returns plain text instead of JSON format. The default is false. +`ignore_idle_threads`:: If true, does not return idle threads. The default is true. + You can use the `?human` parameter to return the document in a human-readable format. [source,js] @@ -261,6 +514,8 @@ You can use the `?human` parameter to return the document in a human-readable fo GET /_node/hot_threads?human=true -------------------------------------------------- +//REVIEWERS: Does the ?human parameter still work? It didn't work in the build that I used. + Example of a human-readable response: [source,js] From 6a1e64660d45f6c4c3a8efedb255be3364db5aa3 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 28 Jun 2016 11:58:53 -0700 Subject: [PATCH 236/632] Resolve comments from review Fixes #5553 --- docs/static/monitoring-apis.asciidoc | 43 ++++++++++++++++------------ 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 635fe8b1523..6771c48f0c3 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -8,7 +8,8 @@ about Logstash: * <> * <> -* <> +* <> +* <> * <> @@ -81,9 +82,9 @@ GET /_node/ Where `` is optional and specifies the types of node info you want to return. -You can limit the info that's returned by combining any of the following types: +You can limit the info that's returned by specifying one of the following types: -//REVIEWERS: It looks like you cannot combine types in a comma-spearated list like you can for the Elasticsearch cluster APIs. Is this intentional/correct behavior? If so, I need to change this to say "". +//TODO: For 5.0.0 Alpha4, this endpoint does not support specifying a comma-separated list like you can for the Elasticsearch cluster APIs. When this issue is fixed, we need to change the wording above to say: "You can limit the info that's returned by combining any of the following types" [horizontal] `pipeline`:: @@ -103,6 +104,9 @@ batch size, and batch delay: GET /_node/pipeline -------------------------------------------------- +See <> if you want to view additional information, such as stats for each configured input, filter, +or output stage. + Example response: ["source","js",subs="attributes"] @@ -208,7 +212,7 @@ Example response: ] -------------------------------------------------- -[[stats-info-api]] +[[node-stats-api]] === Node Stats API added[5.0.0-beta3,Replaces the Stats Info API] @@ -217,8 +221,6 @@ experimental[] The node stats API retrieves runtime stats about Logstash. -// COMMENTED OUT until Logstash supports multiple pipelines: To retrieve all stats for the Logstash instance, use the `_node/stats` endpoint: - [source,js] -------------------------------------------------- GET /_node/stats/ @@ -226,7 +228,9 @@ GET /_node/stats/ Where `` is optional and specifies the types of stats you want to return. -By default, all stats are returned. You can limit this by combining any of the following types: +By default, all stats are returned. You can limit this by specifying one of the following types: + +//TODO: Update the above description when support for specifying a comma-separated list of types is added back in. See above comment. [horizontal] `events`:: @@ -237,10 +241,6 @@ Gets JVM stats, including stats about threads. added[5.0.0-alpha3,Adds thread co Gets process stats, including stats about file descriptors, memory consumption, and CPU usage. added[5.0.0-alpha3] `mem`:: Gets memory usage stats. coming[5.0.0-alpha4] -`pipeline`:: -Gets stats for a pipeline, including stats about each configured input, filter, or output stage. coming[5.0.0-alpha4,Stats for input stages are not yet available] - -//REVIEWERS: In the latest Logstash build available on June 24, the APIs did not behave exactly as they are documented in https://github.com/elastic/logstash/issues/5475. /_node/stats/pipeline returns the expected results, but I couldn't specify anything below that (such as /_node/stats/pipeline/events). So I've documented the end points accordingly. I also noticed that mem appears in the returned JSON doc. Can you help me by suggesting a better/more complete description>? ==== Event Stats @@ -361,23 +361,32 @@ Example response: } -------------------------------------------------- -==== Pipeline Stats +See <> for a list of options that can be applied to all +Logstash monitoring APIs. + +[[pipeline-stats-api]] +=== Pipeline Stats API + +coming[5.0.0-alpha4,Stats for input stages are not yet available] + +experimental[] + +The pipeline stats API retrieves runtime stats about the Logstash pipeline. The following request returns a JSON document containing pipeline stats, including the number of events that were input, filtered, or output by the pipeline. The request also returns stats for each configured input, filter, or -output stage. coming[5.0.0-alpha4,Stats for input stages are not yet available] +output stage. [source,js] -------------------------------------------------- GET /_node/stats/pipeline -------------------------------------------------- -//REVIEWERS: Note that when you call /_node/stats, it does not return the pipeline stats. You need to specify /_node/stats/pipeline specifically. This makes me wonder if it shouldn't be its own API topic. WDYT? - Example response: [source,js] -------------------------------------------------- +{ "pipeline": { "events": { "in": 100, @@ -498,8 +507,6 @@ Example response: } -------------------------------------------------- -//REVIEWERS: Curious why the hot threads API is the only one that (appears) to accept parameters. Am I missing parameters in the other APIs? - The parameters allowed are: [horizontal] @@ -514,8 +521,6 @@ You can use the `?human` parameter to return the document in a human-readable fo GET /_node/hot_threads?human=true -------------------------------------------------- -//REVIEWERS: Does the ?human parameter still work? It didn't work in the build that I used. - Example of a human-readable response: [source,js] From 13b29db5f68da6fd1098289653bd3af2d182bd98 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 28 Jun 2016 18:14:04 +0200 Subject: [PATCH 237/632] add .rspec file to the qa dir so the default formater is documentation Fixes #5561 --- qa/.rspec | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 qa/.rspec diff --git a/qa/.rspec b/qa/.rspec new file mode 100644 index 00000000000..23c67a21149 --- /dev/null +++ b/qa/.rspec @@ -0,0 +1,2 @@ +--format +documentation From 739713b518ae58892d81222d4d9ca0acbcef75fb Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 21 Jun 2016 14:58:52 +0200 Subject: [PATCH 238/632] add --no-verify to all plugin install commands and prefix also all of them with JAR_SKIP in to improve speed of the acceptance test exclude jar-dependency when running the plugin manager tests Fixes #5538 --- .../spec/shared_examples/cli/logstash-plugin/install.rb | 4 ++-- .../spec/shared_examples/cli/logstash-plugin/update.rb | 6 +++--- qa/rspec/commands/base.rb | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb index afa8381bca9..a3a7ee0eab4 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb @@ -33,13 +33,13 @@ context "when fetching a gem from rubygems" do it "successfully install the plugin" do - command = logstash.run_command_in_path("bin/logstash-plugin install logstash-filter-qatest") + command = logstash.run_command_in_path("bin/logstash-plugin install --no-verify logstash-filter-qatest") expect(command).to install_successfully expect(logstash).to have_installed?("logstash-filter-qatest") end it "allow to install a specific version" do - command = logstash.run_command_in_path("bin/logstash-plugin install --version 0.1.0 logstash-filter-qatest") + command = logstash.run_command_in_path("bin/logstash-plugin install --no-verify --version 0.1.0 logstash-filter-qatest") expect(command).to install_successfully expect(logstash).to have_installed?("logstash-filter-qatest", "0.1.0") end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb index 9506654a336..c21ceeb6c33 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb @@ -16,7 +16,7 @@ let(:previous_version) { "0.1.0" } before do - logstash.run_command_in_path("bin/logstash-plugin install --version #{previous_version} #{plugin_name}") + logstash.run_command_in_path("bin/logstash-plugin install --no-verify --version #{previous_version} #{plugin_name}") # Logstash wont update when we have a pinned versionin the gemfile so we remove them logstash.replace_in_gemfile(',\s"0.1.0"', "") expect(logstash).to have_installed?(plugin_name, previous_version) @@ -24,7 +24,7 @@ context "update a specific plugin" do it "has executed succesfully" do - cmd = logstash.run_command_in_path("bin/logstash-plugin update #{plugin_name}") + cmd = logstash.run_command_in_path("bin/logstash-plugin update --no-verify #{plugin_name}") expect(cmd.stdout).to match(/Updating #{plugin_name}/) expect(logstash).not_to have_installed?(plugin_name, previous_version) end @@ -32,7 +32,7 @@ context "update all the plugins" do it "has executed succesfully" do - logstash.run_command_in_path("bin/logstash-plugin update") + logstash.run_command_in_path("bin/logstash-plugin update --no-verify") expect(logstash).to have_installed?(plugin_name, "0.1.1") end end diff --git a/qa/rspec/commands/base.rb b/qa/rspec/commands/base.rb index 61112f12536..1fe62499d8a 100644 --- a/qa/rspec/commands/base.rb +++ b/qa/rspec/commands/base.rb @@ -29,7 +29,7 @@ def run_command(cmd, host) response = nil at(hosts, {in: :serial}) do |_host| - response = sudo_exec!(cmd) + response = sudo_exec!("JARS_SKIP='true' #{cmd}") end response end From 612c9b8a6d7e75780919caa337baf5085e3c3c50 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 29 Jun 2016 12:46:42 +0200 Subject: [PATCH 239/632] Add specific tests in the plugin manager acceptance test for --no-verify flag Fixes #5538 --- .../shared_examples/cli/logstash-plugin/install.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb index a3a7ee0eab4..1ef1e8aa90f 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/install.rb @@ -32,12 +32,24 @@ end context "when fetching a gem from rubygems" do + it "successfully install the plugin" do + command = logstash.run_command_in_path("bin/logstash-plugin install logstash-filter-qatest") + expect(command).to install_successfully + expect(logstash).to have_installed?("logstash-filter-qatest") + end + + it "successfully install the plugin when verification is disabled" do command = logstash.run_command_in_path("bin/logstash-plugin install --no-verify logstash-filter-qatest") expect(command).to install_successfully expect(logstash).to have_installed?("logstash-filter-qatest") end + it "fails when installing a non logstash plugin" do + command = logstash.run_command_in_path("bin/logstash-plugin install bundler") + expect(command).not_to install_successfully + end + it "allow to install a specific version" do command = logstash.run_command_in_path("bin/logstash-plugin install --no-verify --version 0.1.0 logstash-filter-qatest") expect(command).to install_successfully From 5f1e7596cfd2986f9fc68adfb7b6ea4af723443a Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 29 Jun 2016 17:00:27 -0700 Subject: [PATCH 240/632] Fix TOC and apply light edits Fixes #5569 --- docs/static/plugin-generator.asciidoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/static/plugin-generator.asciidoc b/docs/static/plugin-generator.asciidoc index 0563b466b88..cd18d1d6713 100644 --- a/docs/static/plugin-generator.asciidoc +++ b/docs/static/plugin-generator.asciidoc @@ -1,9 +1,9 @@ [[plugin-generator]] -== Generating Plugins +=== Generating Plugins You can now create your own Logstash plugin in seconds! The generate subcommand of `bin/logstash-plugin` creates the foundation -for a new Logstash plugin with templatized files. It creates the right directory structure, gemspec files and dependencies so you -can start adding custom code process data with Logstash. +for a new Logstash plugin with templatized files. It creates the correct directory structure, gemspec files, and dependencies so you +can start adding custom code to process data with Logstash. **Example Usage** @@ -12,8 +12,8 @@ can start adding custom code process data with Logstash. bin/logstash-plugin generate --type input --name xkcd --path ~/ws/elastic/plugins ------------------------------------------- -* `--type`: Type of plugin - input, filter, output and codec +* `--type`: Type of plugin - input, filter, output, or codec * `--name`: Name for the new plugin -* `--path`: Directory path where the new plugin structure will be created. If not specified, it will be ' +* `--path`: Directory path where the new plugin structure will be created. If not specified, it will be created in the current directory. From 72f0740e096702c4f6ec0c0ef13d4ed528f60bbf Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 29 Jun 2016 19:57:08 -0700 Subject: [PATCH 241/632] Remove obsolete logstash startup messages Fixes #5571 --- docs/static/configuration.asciidoc | 31 ++++++++++----------- docs/static/stalled-shutdown.asciidoc | 39 +++++++++++---------------- 2 files changed, 32 insertions(+), 38 deletions(-) diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index e616c8d86da..4e860c96d62 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -519,15 +519,16 @@ Let's see what comes out: ---------------------------------- $ bin/logstash -f ../test.conf -Logstash startup completed +Pipeline main started asdf { - "message" => "asdf", + "@timestamp" => 2016-06-30T02:42:51.496Z, "@version" => "1", - "@timestamp" => "2015-03-18T23:09:29.595Z", "host" => "example.com", - "show" => "This data will be in the output" + "show" => "This data will be in the output", + "message" => "asdf" } + ---------------------------------- The "asdf" typed in became the `message` field contents, and the conditional @@ -548,18 +549,18 @@ Let's see what the output looks like with this change: [source,ruby] ---------------------------------- $ bin/logstash -f ../test.conf -Logstash startup completed +Pipeline main started asdf { - "message" => "asdf", - "@version" => "1", - "@timestamp" => "2015-03-18T23:10:19.859Z", - "host" => "example.com", - "show" => "This data will be in the output", + "@timestamp" => 2016-06-30T02:46:48.565Z, "@metadata" => { "test" => "Hello", "no_show" => "This data will not be in the output" - } + }, + "@version" => "1", + "host" => "example.com", + "show" => "This data will be in the output", + "message" => "asdf" } ---------------------------------- @@ -600,13 +601,13 @@ configuration a sample date string and see what comes out: [source,ruby] ---------------------------------- $ bin/logstash -f ../test.conf -Logstash startup completed +Pipeline main started 02/Mar/2014:15:36:43 +0100 { - "message" => "02/Mar/2014:15:36:43 +0100", + "@timestamp" => 2014-03-02T14:36:43.000Z, "@version" => "1", - "@timestamp" => "2014-03-02T14:36:43.000Z", - "host" => "example.com" + "host" => "example.com", + "message" => "02/Mar/2014:15:36:43 +0100" } ---------------------------------- diff --git a/docs/static/stalled-shutdown.asciidoc b/docs/static/stalled-shutdown.asciidoc index 14fde1ee3de..73a67baa1f1 100644 --- a/docs/static/stalled-shutdown.asciidoc +++ b/docs/static/stalled-shutdown.asciidoc @@ -31,32 +31,25 @@ In this example, slow filter execution prevents the pipeline from clean shutdown ======== [source,shell] -% bin/logstash -e 'input { generator { } } filter { ruby { code => "sleep 10000" } } \ - output { stdout { codec => dots } }' -w 1 --pipeline.unsafe_shutdown -Default settings used: Filter workers: 1 -Logstash startup completed -^CSIGINT received. Shutting down the pipeline. {:level=>:warn} +bin/logstash -e 'input { generator { } } filter { ruby { code => "sleep 10000" } } + output { stdout { codec => dots } }' -w 1 --pipeline.unsafe_shutdown +Pipeline main started +^CSIGINT received. Shutting down the agent. {:level=>:warn} +stopping pipeline {:id=>"main", :level=>:warn} Received shutdown signal, but pipeline is still waiting for in-flight events to be processed. Sending another ^C will force quit Logstash, but this may cause data loss. {:level=>:warn} - {:level=>:warn, "INFLIGHT_EVENT_COUNT"=>{"input_to_filter"=>20, "total"=>20}, - "STALLING_THREADS"=> - {["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>15, - "name"=>"|filterworker.0", "current_call"=>" - (ruby filter code):1:in `sleep'"}]}} -The shutdown process appears to be stalled due to busy or blocked plugins. Check - the logs for more information. -{:level=>:error} - {:level=>:warn, "INFLIGHT_EVENT_COUNT"=>{"input_to_filter"=>20, "total"=>20}, - "STALLING_THREADS"=> - {["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>15, - "name"=>"|filterworker.0", "current_call"=>" - (ruby filter code):1:in `sleep'"}]}} - {:level=>:warn, "INFLIGHT_EVENT_COUNT"=>{"input_to_filter"=>20, "total"=>20}, - "STALLING_THREADS"=> - {["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>15, - "name"=>"|filterworker.0", "current_call"=>" - (ruby filter code):1:in `sleep'"}]}} +{"inflight_count"=>125, "stalling_thread_info"=>{["LogStash::Filters::Ruby", +{"code"=>"sleep 10000"}]=>[{"thread_id"=>19, "name"=>"[main]>worker0", +"current_call"=>"(ruby filter code):1:in `sleep'"}]}} {:level=>:warn} +The shutdown process appears to be stalled due to busy or blocked plugins. +Check the logs for more information. {:level=>:error} +{"inflight_count"=>125, "stalling_thread_info"=>{["LogStash::Filters::Ruby", +{"code"=>"sleep 10000"}]=>[{"thread_id"=>19, "name"=>"[main]>worker0", +"current_call"=>"(ruby filter code):1:in `sleep'"}]}} {:level=>:warn} +{"inflight_count"=>125, "stalling_thread_info"=>{["LogStash::Filters::Ruby", +{"code"=>"sleep 10000"}]=>[{"thread_id"=>19, "name"=>"[main]>worker0", +"current_call"=>"(ruby filter code):1:in `sleep'"}]}} {:level=>:warn} Forcefully quitting logstash.. {:level=>:fatal} ======== From 4cf8031a495ec01f38f5214a2636420adaa58eb8 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 5 Jul 2016 09:45:42 +0100 Subject: [PATCH 242/632] bump to 5.0.0-alpha5 Fixes #5585 --- .../lib/logstash-core-event-java/version.rb | 2 +- logstash-core-event/lib/logstash-core-event/version.rb | 2 +- logstash-core-plugin-api/logstash-core-plugin-api.gemspec | 2 +- logstash-core/lib/logstash-core/version.rb | 2 +- logstash-core/lib/logstash/version.rb | 2 +- logstash-core/logstash-core.gemspec | 2 +- versions.yml | 8 ++++---- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/logstash-core-event-java/lib/logstash-core-event-java/version.rb b/logstash-core-event-java/lib/logstash-core-event-java/version.rb index ceaa49b4728..5c65253966c 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java/version.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_EVENT_JAVA_VERSION = "5.0.0" +LOGSTASH_CORE_EVENT_JAVA_VERSION = "5.0.0-alpha5" diff --git a/logstash-core-event/lib/logstash-core-event/version.rb b/logstash-core-event/lib/logstash-core-event/version.rb index 04253b62242..ed6e80e3ee2 100644 --- a/logstash-core-event/lib/logstash-core-event/version.rb +++ b/logstash-core-event/lib/logstash-core-event/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_EVENT_VERSION = "5.0.0" +LOGSTASH_CORE_EVENT_VERSION = "5.0.0-alpha5" diff --git a/logstash-core-plugin-api/logstash-core-plugin-api.gemspec b/logstash-core-plugin-api/logstash-core-plugin-api.gemspec index f7787f65a09..81a950a4e08 100644 --- a/logstash-core-plugin-api/logstash-core-plugin-api.gemspec +++ b/logstash-core-plugin-api/logstash-core-plugin-api.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = LOGSTASH_CORE_PLUGIN_API - gem.add_runtime_dependency "logstash-core", "5.0.0" + gem.add_runtime_dependency "logstash-core", "5.0.0-alpha5" # Make sure we dont build this gem from a non jruby # environment. diff --git a/logstash-core/lib/logstash-core/version.rb b/logstash-core/lib/logstash-core/version.rb index ad8cbbd3431..215205990be 100644 --- a/logstash-core/lib/logstash-core/version.rb +++ b/logstash-core/lib/logstash-core/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_VERSION = "5.0.0" +LOGSTASH_CORE_VERSION = "5.0.0-alpha5" diff --git a/logstash-core/lib/logstash/version.rb b/logstash-core/lib/logstash/version.rb index c2d7b8d144a..daacb64dd15 100644 --- a/logstash-core/lib/logstash/version.rb +++ b/logstash-core/lib/logstash/version.rb @@ -11,4 +11,4 @@ # eventually this file should be in the root logstash lib fir and dependencies in logstash-core should be # fixed. -LOGSTASH_VERSION = "5.0.0" +LOGSTASH_VERSION = "5.0.0-alpha5" diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index 938612d4ea1..ececc74a80e 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = LOGSTASH_CORE_VERSION - gem.add_runtime_dependency "logstash-core-event-java", "5.0.0" + gem.add_runtime_dependency "logstash-core-event-java", "5.0.0-alpha5" gem.add_runtime_dependency "cabin", "~> 0.8.0" #(Apache 2.0 license) gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license) diff --git a/versions.yml b/versions.yml index a7e6c26dfaa..b1ee5ac4815 100644 --- a/versions.yml +++ b/versions.yml @@ -1,6 +1,6 @@ --- -logstash: 5.0.0 -logstash-core: 5.0.0 -logstash-core-event: 5.0.0 -logstash-core-event-java: 5.0.0 +logstash: 5.0.0-alpha5 +logstash-core: 5.0.0-alpha5 +logstash-core-event: 5.0.0-alpha5 +logstash-core-event-java: 5.0.0-alpha5 logstash-core-plugin-api: 2.1.7 From a597110fd9292122bcc1aeff7118828add6b8629 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 5 Jul 2016 14:23:11 -0700 Subject: [PATCH 243/632] Update coming annotations to reflect current release state Fixes #5589 --- docs/static/command-line-flags.asciidoc | 2 +- docs/static/contributing-to-logstash.asciidoc | 2 +- docs/static/monitoring-apis.asciidoc | 6 +++--- docs/static/setting-up-logstash.asciidoc | 6 +++--- docs/static/settings-file.asciidoc | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index b765788069f..f802819719d 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -5,7 +5,7 @@ Logstash has the following flags. You can use the `--help` flag to display this You can also control Logstash execution by specifying options in the Logstash settings file. For more info, see <>. -coming[5.0.0-alpha3, Command-line flags have dots instead of dashes in their names] +added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their names] *`-f, --path.config CONFIGFILE`*:: Load the Logstash config from a specific file or directory, or a wildcard. If diff --git a/docs/static/contributing-to-logstash.asciidoc b/docs/static/contributing-to-logstash.asciidoc index 05bdeade5e7..063be8244dc 100644 --- a/docs/static/contributing-to-logstash.asciidoc +++ b/docs/static/contributing-to-logstash.asciidoc @@ -24,7 +24,7 @@ deploying your own plugins: * <> [float] -==== Plugin API Changes added[2.0] +==== Plugin API Changes The 2.0 release of Logstash changes how input plugins shut down to increase shutdown reliability. There are three methods for plugin shutdown: `stop`, `stop?`, and `close`. diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 6771c48f0c3..d9333220cf5 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -69,7 +69,7 @@ consumption. The default for the `human` flag is [[node-info-api]] === Node Info API -coming[5.0.0-alpha4] +added[5.0.0-alpha4] experimental[] @@ -240,7 +240,7 @@ Gets JVM stats, including stats about threads. added[5.0.0-alpha3,Adds thread co `process`:: Gets process stats, including stats about file descriptors, memory consumption, and CPU usage. added[5.0.0-alpha3] `mem`:: -Gets memory usage stats. coming[5.0.0-alpha4] +Gets memory usage stats. added[5.0.0-alpha4] ==== Event Stats @@ -367,7 +367,7 @@ Logstash monitoring APIs. [[pipeline-stats-api]] === Pipeline Stats API -coming[5.0.0-alpha4,Stats for input stages are not yet available] +added[5.0.0-alpha4,Stats for input stages are not yet available] experimental[] diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index 9790f8674e0..50d9fe04a65 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -16,7 +16,7 @@ This section includes additional information on how to set up and run Logstash, This section describes the default directory structure that is created when you unpack the Logstash installation packages. -coming[5.0.0-alpha3, Includes breaking changes to the Logstash directory structure] +added[5.0.0-alpha3, Includes breaking changes to the Logstash directory structure] [[zip-targz-layout]] ==== Directory Layout of `.zip` and `.tar.gz` Archives @@ -118,7 +118,7 @@ See <> for more info. ==== Settings Files -coming[5.0.0-alpha3] +added[5.0.0-alpha3] The settings files are already defined in the Logstash installation. Logstash includes the following settings files: @@ -140,7 +140,7 @@ The settings files are already defined in the Logstash installation. Logstash in [[running-logstash]] === Running Logstash as a Service on Debian or RPM -coming[5.0.0-alpha3] +added[5.0.0-alpha3] Logstash is not started automatically after installation. How to start and stop Logstash depends on whether your system uses systemd, upstart, or SysV. diff --git a/docs/static/settings-file.asciidoc b/docs/static/settings-file.asciidoc index 748b0e79c4d..267f5f48e1a 100644 --- a/docs/static/settings-file.asciidoc +++ b/docs/static/settings-file.asciidoc @@ -1,7 +1,7 @@ [[logstash-settings-file]] === Settings File -coming[5.0.0-alpha3] +added[5.0.0-alpha3] You can set options in the Logstash settings file, `logstash.yml`, to control Logstash execution. Each setting in the `logstash.yml` file corresponds to a <>. From 019e3d32efe7b3f4848922f1d87fdf06df4fb7d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Duarte?= Date: Thu, 7 Jul 2016 22:59:14 +0100 Subject: [PATCH 244/632] add default plugins to Gemfile (#5588) --- Gemfile | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/Gemfile b/Gemfile index 0e392191ecd..d2be4f22d8a 100644 --- a/Gemfile +++ b/Gemfile @@ -21,3 +21,93 @@ gem "gems", "~> 0.8.3", :group => :build gem "rack-test", :require => "rack/test", :group => :development gem "flores", "~> 0.0.6", :group => :development gem "pleaserun" +gem "logstash-input-heartbeat" +gem "logstash-codec-collectd" +gem "logstash-output-xmpp" +gem "logstash-codec-dots" +gem "logstash-codec-edn" +gem "logstash-codec-edn_lines" +gem "logstash-codec-fluent" +gem "logstash-codec-es_bulk" +gem "logstash-codec-graphite" +gem "logstash-codec-json" +gem "logstash-codec-json_lines" +gem "logstash-codec-line" +gem "logstash-codec-msgpack" +gem "logstash-codec-multiline" +gem "logstash-codec-netflow" +gem "logstash-codec-plain" +gem "logstash-codec-rubydebug" +gem "logstash-filter-clone" +gem "logstash-filter-csv" +gem "logstash-filter-date" +gem "logstash-filter-dns" +gem "logstash-filter-drop" +gem "logstash-filter-fingerprint" +gem "logstash-filter-geoip" +gem "logstash-filter-grok" +gem "logstash-filter-json" +gem "logstash-filter-kv" +gem "logstash-filter-metrics" +gem "logstash-filter-mutate" +gem "logstash-filter-ruby" +gem "logstash-filter-sleep" +gem "logstash-filter-split" +gem "logstash-filter-syslog_pri" +gem "logstash-filter-throttle" +gem "logstash-filter-urldecode" +gem "logstash-filter-useragent" +gem "logstash-filter-uuid" +gem "logstash-filter-xml" +gem "logstash-input-couchdb_changes" +gem "logstash-input-elasticsearch" +gem "logstash-input-exec" +gem "logstash-input-file" +gem "logstash-input-ganglia" +gem "logstash-input-gelf" +gem "logstash-input-generator" +gem "logstash-input-graphite" +gem "logstash-input-http" +gem "logstash-input-http_poller" +gem "logstash-input-imap" +gem "logstash-input-irc" +gem "logstash-input-jdbc" +gem "logstash-input-log4j" +gem "logstash-input-lumberjack" +gem "logstash-input-pipe" +gem "logstash-input-rabbitmq" +gem "logstash-input-redis" +gem "logstash-input-s3" +gem "logstash-input-snmptrap" +gem "logstash-input-sqs" +gem "logstash-input-stdin" +gem "logstash-input-syslog" +gem "logstash-input-tcp" +gem "logstash-input-twitter" +gem "logstash-input-udp" +gem "logstash-input-unix" +gem "logstash-input-xmpp" +gem "logstash-input-kafka" +gem "logstash-input-beats" +gem "logstash-output-cloudwatch" +gem "logstash-output-csv" +gem "logstash-output-elasticsearch" +gem "logstash-output-file" +gem "logstash-output-graphite" +gem "logstash-output-http" +gem "logstash-output-irc" +gem "logstash-output-kafka" +gem "logstash-output-nagios" +gem "logstash-output-null" +gem "logstash-output-pagerduty" +gem "logstash-output-pipe" +gem "logstash-output-rabbitmq" +gem "logstash-output-redis" +gem "logstash-output-s3" +gem "logstash-output-sns" +gem "logstash-output-sqs" +gem "logstash-output-statsd" +gem "logstash-output-stdout" +gem "logstash-output-tcp" +gem "logstash-output-udp" +gem "logstash-output-webhdfs" From 4045aea1fff889d834d2444c4227b089d87c31a2 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 8 Jul 2016 19:55:22 -0700 Subject: [PATCH 245/632] Convert examples from table to text to fix rendering issue tweak Fixes #5612 --- docs/static/configuration.asciidoc | 115 +++++++++++++---------------- 1 file changed, 52 insertions(+), 63 deletions(-) diff --git a/docs/static/configuration.asciidoc b/docs/static/configuration.asciidoc index 4e860c96d62..9ac8526114a 100644 --- a/docs/static/configuration.asciidoc +++ b/docs/static/configuration.asciidoc @@ -636,62 +636,59 @@ output { ---------------------------------- [[environment-variables]] -=== Using Environment Variables in Configuration +=== Using Environment Variables in the Configuration ==== Overview -* You can set environment variable references into Logstash plugins configuration using `${var}`. -* Each reference will be replaced by environment variable value at Logstash startup. +* You can set environment variable references in the configuration for Logstash plugins by using `${var}`. +* At Logstash startup, each reference will be replaced by the value of the environment variable. * The replacement is case-sensitive. * References to undefined variables raise a Logstash configuration error. -* A default value can be given by using the form `${var:default value}`. -* You can add environment variable references in any plugin option type : string, number, boolean, array or hash. -* Environment variables are immutable. If you update the environment variable, you'll have to restart Logstash to pick the updated value. +* You can give a default value by using the form `${var:default value}`. Logstash uses the default value if the +environment variable is undefined. +* You can add environment variable references in any plugin option type : string, number, boolean, array, or hash. +* Environment variables are immutable. If you update the environment variable, you'll have to restart Logstash to pick up the updated value. ==== Examples -[cols="a,a,a"] -|================================== -|Logstash config source |Environment |Logstash config result -| +The following examples show you how to use environment variables to set the values of some commonly used +configuration options. + +===== Setting the TCP Port + +Here's an example that uses an environment variable to set the TCP port: + [source,ruby] ----- +---------------------------------- input { tcp { port => "${TCP_PORT}" } } ----- +---------------------------------- + +Now let's set the value of `TCP_PORT`: -| [source,shell] ---- export TCP_PORT=12345 ---- -| + +At startup, Logstash uses the following configuration: + [source,ruby] ----- +---------------------------------- input { tcp { port => 12345 } } ----- -| -[source,ruby] ----- -input { - tcp { - port => "${TCP_PORT}" - } -} ----- +---------------------------------- + +If the `TCP_PORT` environment variable is not set, Logstash returns a configuration error. + +You can fix this problem by specifying a default value: -| -No TCP_PORT defined -| -Raise a logstash configuration error -| [source,ruby] ---- input { @@ -701,9 +698,8 @@ input { } ---- -| -No TCP_PORT defined -| +Now, instead of returning a configuration error if the variable is undefined, Logstash uses the default: + [source,ruby] ---- input { @@ -712,31 +708,13 @@ input { } } ---- -| -[source,ruby] ----- -input { - tcp { - port => "${TCP_PORT:54321}" - } -} ----- -| -[source,shell] ----- -export TCP_PORT=12345 ----- -| -[source,ruby] ----- -input { - tcp { - port => 12345 - } -} ----- -| +If the environment variable is defined, Logstash uses the value specified for the variable instead of the default. + +===== Setting the Value of a Tag + +Here's an example that uses an environment variable to set the value of a tag: + [source,ruby] ---- filter { @@ -746,12 +724,15 @@ filter { } ---- -| +Let's set the value of `ENV_TAG`: + [source,shell] ---- export ENV_TAG="tag2" ---- -| + +At startup, Logstash uses the following configuration: + [source,ruby] ---- filter { @@ -760,7 +741,11 @@ filter { } } ---- -| + +===== Setting a File Path + +Here's an example that uses an environment variable to set the path to a log file: + [source,ruby] ---- filter { @@ -771,12 +756,16 @@ filter { } } ---- -| + +Let's set the value of `HOME`: + [source,shell] ---- export HOME="/path" ---- -| + +At startup, Logstash uses the following configuration: + [source,ruby] ---- filter { @@ -787,7 +776,7 @@ filter { } } ---- -|================================== + [[config-examples]] === Logstash Configuration Examples From 8cd1a475fe0c72ad8424c27bf3d2cccb531c773c Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Mon, 11 Jul 2016 17:33:24 -0500 Subject: [PATCH 246/632] Add support for hostname:port syntax to SafeURI class This is a deviation from what the ruby URI class normally allows. With this patch users can use "myhost:123" as an option and have it do the right thing, as opposed to before where they'd get an error and have to use "//myhost:123". Fixes #5618 --- logstash-core/lib/logstash/util/safe_uri.rb | 2 + .../spec/logstash/config/mixin_spec.rb | 37 ++++++++++++++----- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/logstash-core/lib/logstash/util/safe_uri.rb b/logstash-core/lib/logstash/util/safe_uri.rb index 7d203a0dad0..de5f720de80 100644 --- a/logstash-core/lib/logstash/util/safe_uri.rb +++ b/logstash-core/lib/logstash/util/safe_uri.rb @@ -6,6 +6,7 @@ # logged, you don't accidentally print the password itself. class LogStash::Util::SafeURI PASS_PLACEHOLDER = "xxxxxx".freeze + HOSTNAME_PORT_REGEX=/\A(?([A-Za-z0-9\.\-]+)|\[[0-9A-Fa-f\:]+\])(:(?\d+))?\Z/ extend Forwardable @@ -17,6 +18,7 @@ class LogStash::Util::SafeURI def initialize(arg) @uri = case arg when String + arg = "//#{arg}" if HOSTNAME_PORT_REGEX.match(arg) URI.parse(arg) when URI arg diff --git a/logstash-core/spec/logstash/config/mixin_spec.rb b/logstash-core/spec/logstash/config/mixin_spec.rb index 8517827c635..a5b74cf5726 100644 --- a/logstash-core/spec/logstash/config/mixin_spec.rb +++ b/logstash-core/spec/logstash/config/mixin_spec.rb @@ -178,21 +178,15 @@ end end - shared_examples("safe URI") do + shared_examples("safe URI") do |options| + options ||= {} + subject { klass.new("uri" => uri_str) } it "should be a SafeURI object" do expect(subject.uri).to(be_a(LogStash::Util::SafeURI)) end - it "should make password values hidden with #to_s" do - expect(subject.uri.to_s).to eql(uri_hidden) - end - - it "should make password values hidden with #inspect" do - expect(subject.uri.inspect).to eql(uri_hidden) - end - it "should correctly copy URI types" do clone = subject.class.new(subject.params) expect(clone.uri.to_s).to eql(uri_hidden) @@ -206,6 +200,18 @@ expect(subject.original_params['uri']).to(be_a(LogStash::Util::SafeURI)) end + if !options[:exclude_password_specs] + describe "passwords" do + it "should make password values hidden with #to_s" do + expect(subject.uri.to_s).to eql(uri_hidden) + end + + it "should make password values hidden with #inspect" do + expect(subject.uri.inspect).to eql(uri_hidden) + end + end + end + context "attributes" do [:scheme, :user, :password, :hostname, :path].each do |attr| it "should make #{attr} available" do @@ -215,6 +221,19 @@ end end + context "with a host:port combination" do + let(:scheme) { nil } + let(:user) { nil } + let(:password) { nil } + let(:hostname) { "myhostname" } + let(:port) { 1234 } + let(:path) { "" } + let(:uri_str) { "#{hostname}:#{port}" } + let(:uri_hidden) { "//#{hostname}:#{port}" } + + include_examples("safe URI", :exclude_password_specs => true) + end + context "with a username / password" do let(:scheme) { "myscheme" } let(:user) { "myuser" } From 7ce4166d3a20bef5ba66af50264a95536554e3ba Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 12 Jul 2016 19:41:32 -0700 Subject: [PATCH 247/632] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d839c1c5d0a..dd8d173b626 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# Logstash [![Code Climate](https://codeclimate.com/github/elasticsearch/logstash/badges/gpa.svg)](https://codeclimate.com/github/elasticsearch/logstash) [![Coverage Status](https://coveralls.io/repos/elasticsearch/logstash/badge.svg?branch=origin%2Fmaster)](https://coveralls.io/r/elasticsearch/logstash?branch=origin%2Fmaster) +# Logstash [![Code Climate](https://codeclimate.com/github/elasticsearch/logstash/badges/gpa.svg)](https://codeclimate.com/github/elasticsearch/logstash) ### Build status | Test | master | 5.0 | 2.3 | |---|---|---|---| -| core | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=master)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.3)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.3)](https://travis-ci.org/elastic/logstash) | +| core | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=master)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.4)](https://travis-ci.org/elastic/logstash) | Logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). If you From 39833f4208198c8f56bacf3bd077c8f6d64b8be6 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 12 Jul 2016 19:43:22 -0700 Subject: [PATCH 248/632] Update travis badge --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dd8d173b626..17e495e5240 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,10 @@ ### Build status -| Test | master | 5.0 | 2.3 | +| Test | master | 5.0 | 2.4 | |---|---|---|---| -| core | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=master)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.4)](https://travis-ci.org/elastic/logstash) | +| core | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=master)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=5.0)](https://travis-ci.org/elastic/logstash) | +[![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.4)](https://travis-ci.org/elastic/logstash) | Logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). If you From a3c73e9cae32b2ba1e1e19d6f69d4eed75db4316 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 12 Jul 2016 19:45:03 -0700 Subject: [PATCH 249/632] Fix travis badge to the correct URLs --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 17e495e5240..868a625c3e1 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,7 @@ | Test | master | 5.0 | 2.4 | |---|---|---|---| -| core | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=master)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=5.0)](https://travis-ci.org/elastic/logstash) | -[![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.4)](https://travis-ci.org/elastic/logstash) | +| core | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=master)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=5.0)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.4)](https://travis-ci.org/elastic/logstash) | Logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). If you From 87e13ced5b29b7e04e88ec5e68b5be25885e45dc Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 13 Jul 2016 12:19:41 +0100 Subject: [PATCH 250/632] fix string setting validation of possible values Fixes #5628 --- logstash-core/lib/logstash/settings.rb | 12 +++++------ .../spec/logstash/settings/string_spec.rb | 21 +++++++++++++++++++ 2 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 logstash-core/spec/logstash/settings/string_spec.rb diff --git a/logstash-core/lib/logstash/settings.rb b/logstash-core/lib/logstash/settings.rb index f3f95e4f479..1412cfa9ea7 100644 --- a/logstash-core/lib/logstash/settings.rb +++ b/logstash-core/lib/logstash/settings.rb @@ -210,12 +210,6 @@ def set(value) end end - class String < Setting - def initialize(name, default=nil, strict=true) - super(name, ::String, default, strict) - end - end - class Numeric < Setting def initialize(name, default=nil, strict=true) super(name, ::Numeric, default, strict) @@ -241,11 +235,15 @@ def validate(value) class String < Setting def initialize(name, default=nil, strict=true, possible_strings=[]) + @possible_strings = possible_strings super(name, ::String, default, strict) end def validate(value) - super(value) && possible_strings.include?(value) + super(value) + unless @possible_strings.empty? || @possible_strings.include?(value) + raise ArgumentError.new("invalid value \"#{value}\". Options are: #{@possible_strings.inspect}") + end end end diff --git a/logstash-core/spec/logstash/settings/string_spec.rb b/logstash-core/spec/logstash/settings/string_spec.rb new file mode 100644 index 00000000000..edd4dc4057c --- /dev/null +++ b/logstash-core/spec/logstash/settings/string_spec.rb @@ -0,0 +1,21 @@ +# encoding: utf-8 +require "spec_helper" +require "logstash/settings" + +describe LogStash::Setting::String do + let(:possible_values) { ["a", "b", "c"] } + subject { described_class.new("mytext", nil, false, possible_values) } + describe "#set" do + context "when a value is given outside of possible_values" do + it "should raise an ArgumentError" do + expect { subject.set("d") }.to raise_error(ArgumentError) + end + end + context "when a value is given within possible_values" do + it "should set the value" do + expect { subject.set("a") }.to_not raise_error + expect(subject.value).to eq("a") + end + end + end +end From f7f1af64b432cf919f5428ebfa5b4534e48a8537 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 12 Jul 2016 19:49:19 -0500 Subject: [PATCH 251/632] Add quicktune guide (#5619) Fixes #5635 --- docs/static/performance-checklist.asciidoc | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 docs/static/performance-checklist.asciidoc diff --git a/docs/static/performance-checklist.asciidoc b/docs/static/performance-checklist.asciidoc new file mode 100644 index 00000000000..ad07936bd0d --- /dev/null +++ b/docs/static/performance-checklist.asciidoc @@ -0,0 +1,35 @@ +[[performance-troubleshooting]] + +=== Logstash Performance Troubleshooting Guide + +This is a quick troubleshooting guide for reasoning about Logstash performance problems. Advanced knowledge of pipeline internals is not needed to understand this at all, but the https://www.elastic.co/guide/en/logstash/current/pipeline.html[pipeline documentation] is recommended reading to go beyond this guide. + +It can be tempting to jump ahead and change settings like `-w` as a first attempt to improve performance, but, in our experience, that can easily make reasoning about performance confusing as that increases the number of variables in play. Only make one change at a time and measure the results. Starting from the back end of this list is a sure-fire way to create a confusing situation. + +==== Performance Checklist + +* Check the input/output sources/destinations +** Logstash is only as fast as the services it connects to. Logstash can only consume and produce data as fast as its input and output destinations can! +* Check System Statistics +** CPU +*** Note whether the CPU is being heavily used. You can do this by running `top -H` if you are on a Linux/UNIX platform to see process statistics broken out by thread, as well as total CPU statistics. +*** If CPU usage is high skip forward to the sections on the JVM Heap and tuning Logstash workers in that order. +* Memory +** Be aware of the fact that Logstash runs on the Java VM. This means that it will always use the maximum amount of memory you allocate to it. +** Look for other applications using large amounts of memory that may be causing Logstash to swap to disk. This can happen if the total memory used by applications exceeds physical memory. +* I/O Utilization +** Monitor disk I/O to check for disk saturation. +*** This can happen if you’re using logstash plugins (such as the file output) that may saturate your storage. +*** This can also happen if you are encountering a lot of errors forcing logstash to generate large error logs +*** If on Linux you can use iostat, dstat, or the like to do this +** Monitor network I/O for network saturation +*** This can happen if you’re using inputs/outputs that perform a lot of network operations. +*** If on linux use a tool like dstat or iftop to monitor your network +* Check the JVM Heap +** Often times CPU utilization can go through the roof if the heap size is too low as the JVM will be constantly GCing. +*** A quick way to check if this is the issue is to double the heap size and see if performance improves. Do not increase heap size past the amount of physical memory, leave at least 1GB free for the OS and other processes. +*** More accurate measurements of the JVM heap can be made using either the `jmap` command line utility distributed with Java or VisualVM. +* Tune Logstash Worker Settings +** Begin by scaling up the number of pipeline workers using the `-w` flag. This will increase the number of threads available for filters and outputs. It is safe to scale this up to a multiple of CPU cores if need be as the threads can become idle on I/O. +** Each output can only be active in a single pipeline worker thread by default. This can be increased by changing the `workers` setting in each output’s configuration block. Never make this value larger than the number of pipeline workers. +** You may also tune the output batch size. For many outputs, like the Elasticsearch output, this will correspond to the size of IO operations. In the case of the Elasticsearch output this corresponds to the batch size. From f5cf122f3b37c812780797d9ac85a70764b209f9 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 12 Jul 2016 18:00:30 -0700 Subject: [PATCH 252/632] Edit performance troubleshooting guide Fixes #5635 --- docs/static/performance-checklist.asciidoc | 60 ++++++++++++---------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/docs/static/performance-checklist.asciidoc b/docs/static/performance-checklist.asciidoc index ad07936bd0d..48e8a4d1bc7 100644 --- a/docs/static/performance-checklist.asciidoc +++ b/docs/static/performance-checklist.asciidoc @@ -1,35 +1,43 @@ [[performance-troubleshooting]] -=== Logstash Performance Troubleshooting Guide +== Performance Troubleshooting Guide -This is a quick troubleshooting guide for reasoning about Logstash performance problems. Advanced knowledge of pipeline internals is not needed to understand this at all, but the https://www.elastic.co/guide/en/logstash/current/pipeline.html[pipeline documentation] is recommended reading to go beyond this guide. +You can use this troubleshooting guide to quickly diagnose and resolve Logstash performance problems. Advanced knowledge of pipeline internals is not required to understand this guide. However, the https://www.elastic.co/guide/en/logstash/current/pipeline.html[pipeline documentation] is recommended reading if you want to go beyond this guide. -It can be tempting to jump ahead and change settings like `-w` as a first attempt to improve performance, but, in our experience, that can easily make reasoning about performance confusing as that increases the number of variables in play. Only make one change at a time and measure the results. Starting from the back end of this list is a sure-fire way to create a confusing situation. +You may be tempted to jump ahead and change settings like `-w` as a first attempt to improve performance. In our experience, changing this setting makes it more difficult to troubleshoot performance problems because you increase the number of variables in play. Instead, make one change at a time and measure the results. Starting at the end of this list is a sure-fire way to create a confusing situation. -==== Performance Checklist +[float] +=== Performance Checklist -* Check the input/output sources/destinations -** Logstash is only as fast as the services it connects to. Logstash can only consume and produce data as fast as its input and output destinations can! -* Check System Statistics -** CPU -*** Note whether the CPU is being heavily used. You can do this by running `top -H` if you are on a Linux/UNIX platform to see process statistics broken out by thread, as well as total CPU statistics. -*** If CPU usage is high skip forward to the sections on the JVM Heap and tuning Logstash workers in that order. +. *Check the performance of input sources and output destinations:* ++ +* Logstash is only as fast as the services it connects to. Logstash can only consume and produce data as fast as its input and output destinations can! + +. *Check system statistics:* ++ +* CPU +** Note whether the CPU is being heavily used. On Linux/Unix, you can run `top -H` to see process statistics broken out by thread, as well as total CPU statistics. +** If CPU usage is high, skip forward to the section about checking the JVM heap and then read the section about tuning Logstash worker settings. * Memory -** Be aware of the fact that Logstash runs on the Java VM. This means that it will always use the maximum amount of memory you allocate to it. -** Look for other applications using large amounts of memory that may be causing Logstash to swap to disk. This can happen if the total memory used by applications exceeds physical memory. +** Be aware of the fact that Logstash runs on the Java VM. This means that Logstash will always use the maximum amount of memory you allocate to it. +** Look for other applications that use large amounts of memory and may be causing Logstash to swap to disk. This can happen if the total memory used by applications exceeds physical memory. * I/O Utilization ** Monitor disk I/O to check for disk saturation. -*** This can happen if you’re using logstash plugins (such as the file output) that may saturate your storage. -*** This can also happen if you are encountering a lot of errors forcing logstash to generate large error logs -*** If on Linux you can use iostat, dstat, or the like to do this -** Monitor network I/O for network saturation -*** This can happen if you’re using inputs/outputs that perform a lot of network operations. -*** If on linux use a tool like dstat or iftop to monitor your network -* Check the JVM Heap -** Often times CPU utilization can go through the roof if the heap size is too low as the JVM will be constantly GCing. -*** A quick way to check if this is the issue is to double the heap size and see if performance improves. Do not increase heap size past the amount of physical memory, leave at least 1GB free for the OS and other processes. -*** More accurate measurements of the JVM heap can be made using either the `jmap` command line utility distributed with Java or VisualVM. -* Tune Logstash Worker Settings -** Begin by scaling up the number of pipeline workers using the `-w` flag. This will increase the number of threads available for filters and outputs. It is safe to scale this up to a multiple of CPU cores if need be as the threads can become idle on I/O. -** Each output can only be active in a single pipeline worker thread by default. This can be increased by changing the `workers` setting in each output’s configuration block. Never make this value larger than the number of pipeline workers. -** You may also tune the output batch size. For many outputs, like the Elasticsearch output, this will correspond to the size of IO operations. In the case of the Elasticsearch output this corresponds to the batch size. +*** Disk saturation can happen if you’re using Logstash plugins (such as the file output) that may saturate your storage. +*** Disk saturation can also happen if you're encountering a lot of errors that force Logstash to generate large error logs. +*** On Linux, you can use iostat, dstat, or something similar to monitor disk I/O. +** Monitor network I/O for network saturation. +*** Network saturation can happen if you’re using inputs/outputs that perform a lot of network operations. +*** On Linux, you can use a tool like dstat or iftop to monitor your network. + +. *Check the JVM heap:* ++ +* Often times CPU utilization can go through the roof if the heap size is too low, resulting in the JVM constantly garbage collecting. +* A quick way to check for this issue is to double the heap size and see if performance improves. Do not increase the heap size past the amount of physical memory. Leave at least 1GB free for the OS and other processes. +* You can make more accurate measurements of the JVM heap by using either the `jmap` command line utility distributed with Java or by using VisualVM. + +. *Tune Logstash worker settings:* ++ +* Begin by scaling up the number of pipeline workers by using the `-w` flag. This will increase the number of threads available for filters and outputs. It is safe to scale this up to a multiple of CPU cores, if need be, as the threads can become idle on I/O. +* Each output can only be active in a single pipeline worker thread by default. You can increase this by changing the `workers` setting in the configuration block for each output. Never make this value larger than the number of pipeline workers. +* You may also tune the output batch size. For many outputs, such as the Elasticsearch output, this setting will correspond to the size of I/O operations. In the case of the Elasticsearch output, this setting corresponds to the batch size. From d54c66a8dddbb3e0cf9e885d1bb6188c22f2b98a Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 12 Jul 2016 12:24:12 +0200 Subject: [PATCH 253/632] fix human parameter processing Fixes #5621 --- logstash-core/lib/logstash/api/app_helpers.rb | 7 +++---- logstash-core/lib/logstash/api/commands/node.rb | 4 ++-- logstash-core/lib/logstash/api/modules/node.rb | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/logstash-core/lib/logstash/api/app_helpers.rb b/logstash-core/lib/logstash/api/app_helpers.rb index 33521d701fe..a235f809ac8 100644 --- a/logstash-core/lib/logstash/api/app_helpers.rb +++ b/logstash-core/lib/logstash/api/app_helpers.rb @@ -7,11 +7,10 @@ def respond_with(data, options={}) as = options.fetch(:as, :json) pretty = params.has_key?("pretty") - unless options.include?(:exclude_default_metadata) - data = default_metadata.merge(data) - end - if as == :json + unless options.include?(:exclude_default_metadata) + data = default_metadata.merge(data) + end content_type "application/json" LogStash::Json.dump(data, {:pretty => pretty}) else diff --git a/logstash-core/lib/logstash/api/commands/node.rb b/logstash-core/lib/logstash/api/commands/node.rb index c8dcc1446be..53962a953d5 100644 --- a/logstash-core/lib/logstash/api/commands/node.rb +++ b/logstash-core/lib/logstash/api/commands/node.rb @@ -62,7 +62,7 @@ def initialize(cmd, options) end def to_s - hash = to_hash + hash = to_hash[:hot_threads] report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" report << '=' * 80 report << "\n" @@ -98,7 +98,7 @@ def to_hash thread[:traces] = traces unless traces.empty? hash[:threads] << thread end - hash + { :hot_threads => hash } end def cpu_time_as_percent(hash) diff --git a/logstash-core/lib/logstash/api/modules/node.rb b/logstash-core/lib/logstash/api/modules/node.rb index 2ba3f933e77..043b5faf2a8 100644 --- a/logstash-core/lib/logstash/api/modules/node.rb +++ b/logstash-core/lib/logstash/api/modules/node.rb @@ -35,7 +35,7 @@ def node options[:threads] = params["threads"].to_i if params.has_key?("threads") as = options[:human] ? :string : :json - respond_with({:hot_threads => node.hot_threads(options)}, {:as => as}) + respond_with(node.hot_threads(options), {:as => as}) end end end From e35addbbb5f1b374d6ec89934a47407ef578da1f Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 12 Jul 2016 12:53:29 +0200 Subject: [PATCH 254/632] add /_node/stats/pipeline inside /_node/stats main resource Fixes #5623 --- logstash-core/lib/logstash/api/modules/node_stats.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index 251531985a4..3a5a32ec81f 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -20,7 +20,8 @@ class NodeStats < ::LogStash::Api::Modules::Base :events => events_payload, :jvm => jvm_payload, :process => process_payload, - :mem => mem_payload + :mem => mem_payload, + :pipeline => pipeline_payload } respond_with payload From 97d679f933bd4c9754b150ca1727d0a714ef264c Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 12 Jul 2016 13:00:49 +0200 Subject: [PATCH 255/632] =?UTF-8?q?Removed=20/=5Fnode/stats/mem=20and=20in?= =?UTF-8?q?sted=20nested=20them=20under=20/=5Fnode/stats/jvm=20along=20wit?= =?UTF-8?q?h=20the=20=E2=80=98thread=E2=80=99=20stats?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #5623 --- logstash-core/lib/logstash/api/commands/stats.rb | 3 ++- logstash-core/lib/logstash/api/modules/node_stats.rb | 5 ----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index 533d3e7e862..f9b4d103eb5 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -11,7 +11,8 @@ def jvm [:jvm, :threads], :count, :peak_count - ) + ), + :mem => memory } end diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index 3a5a32ec81f..54e349a0978 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -20,7 +20,6 @@ class NodeStats < ::LogStash::Api::Modules::Base :events => events_payload, :jvm => jvm_payload, :process => process_payload, - :mem => mem_payload, :pipeline => pipeline_payload } @@ -47,10 +46,6 @@ class NodeStats < ::LogStash::Api::Modules::Base respond_with :process => process_payload end - get "/mem" do - respond_with :mem => mem_payload - end - get "/pipeline" do respond_with :pipeline => pipeline_payload end From dafb7eafc69c6d5bc53c110e509a41978cdeb3b6 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 12 Jul 2016 13:05:02 +0200 Subject: [PATCH 256/632] /_node/stats/events object+resource is removed as these metrics now instead reside under the pipeline stats /_node/stats/pipeline Fixes #5623 --- .../lib/logstash/api/modules/node_stats.rb | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index 54e349a0978..ecbcad4a0c0 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -17,7 +17,6 @@ class NodeStats < ::LogStash::Api::Modules::Base # retrieved and show get "/" do payload = { - :events => events_payload, :jvm => jvm_payload, :process => process_payload, :pipeline => pipeline_payload @@ -26,18 +25,6 @@ class NodeStats < ::LogStash::Api::Modules::Base respond_with payload end - # Show all events stats information - # (for ingested, emitted, dropped) - # - #events since startup - # - #data (bytes) since startup - # - events/s - # - bytes/s - # - dropped events/s - # - events in the pipeline - get "/events" do - respond_with({ :events => events_payload }) - end - get "/jvm" do respond_with :jvm => jvm_payload end From 2249a03edbe80c792a570760ca3d7a2df40ff8fd Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 12 Jul 2016 13:08:31 +0200 Subject: [PATCH 257/632] rename _node/stats/pipeline pipeline into plugins as is more clean that the resources means Fixes #5623 --- logstash-core/lib/logstash/api/commands/stats.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index f9b4d103eb5..c3a80057146 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -139,7 +139,7 @@ def report(stats) { :events => stats[:events], - :pipeline => { + :plugins => { :inputs => plugin_stats(stats, :inputs), :filters => plugin_stats(stats, :filters), :outputs => plugin_stats(stats, :outputs) From 9618b658f7df461f2e125d9f00cf6b5d26f942c9 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 12 Jul 2016 15:02:06 +0200 Subject: [PATCH 258/632] reorg specs to fit the new schema Fixes #5623 --- .../spec/api/lib/api/node_stats_spec.rb | 70 ++++++++++--------- logstash-core/spec/api/spec_helper.rb | 1 + 2 files changed, 37 insertions(+), 34 deletions(-) diff --git a/logstash-core/spec/api/lib/api/node_stats_spec.rb b/logstash-core/spec/api/lib/api/node_stats_spec.rb index 44cc0a3c37e..ea406980f88 100644 --- a/logstash-core/spec/api/lib/api/node_stats_spec.rb +++ b/logstash-core/spec/api/lib/api/node_stats_spec.rb @@ -11,15 +11,38 @@ # DSL describing response structure root_structure = { - "events"=>{ - "in"=>Numeric, - "filtered"=>Numeric, - "out"=>Numeric - }, "jvm"=>{ "threads"=>{ "count"=>Numeric, "peak_count"=>Numeric + }, + "mem" => { + "heap_used_in_bytes" => Numeric, + "heap_used_percent" => Numeric, + "heap_committed_in_bytes" => Numeric, + "heap_max_in_bytes" => Numeric, + "non_heap_used_in_bytes" => Numeric, + "non_heap_committed_in_bytes" => Numeric, + "pools" => { + "survivor" => { + "peak_used_in_bytes" => Numeric, + "used_in_bytes" => Numeric, + "peak_max_in_bytes" => Numeric, + "max_in_bytes" => Numeric + }, + "old" => { + "peak_used_in_bytes" => Numeric, + "used_in_bytes" => Numeric, + "peak_max_in_bytes" => Numeric, + "max_in_bytes" => Numeric + }, + "young" => { + "peak_used_in_bytes" => Numeric, + "used_in_bytes" => Numeric, + "peak_max_in_bytes" => Numeric, + "max_in_bytes" => Numeric + } + } } }, "process"=>{ @@ -33,35 +56,14 @@ "total_in_millis"=>Numeric, "percent"=>Numeric } - }, - "mem" => { - "heap_used_in_bytes" => Numeric, - "heap_used_percent" => Numeric, - "heap_committed_in_bytes" => Numeric, - "heap_max_in_bytes" => Numeric, - "non_heap_used_in_bytes" => Numeric, - "non_heap_committed_in_bytes" => Numeric, - "pools" => { - "survivor" => { - "peak_used_in_bytes" => Numeric, - "used_in_bytes" => Numeric, - "peak_max_in_bytes" => Numeric, - "max_in_bytes" => Numeric - }, - "old" => { - "peak_used_in_bytes" => Numeric, - "used_in_bytes" => Numeric, - "peak_max_in_bytes" => Numeric, - "max_in_bytes" => Numeric - }, - "young" => { - "peak_used_in_bytes" => Numeric, - "used_in_bytes" => Numeric, - "peak_max_in_bytes" => Numeric, - "max_in_bytes" => Numeric - } - } - } + }, + "pipeline" => { + "events" => { + "in" => Numeric, + "filtered" => Numeric, + "out" => Numeric + } + } } test_api_and_resources(root_structure) diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index 635e47906d7..9f9115772d7 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -1,6 +1,7 @@ # encoding: utf-8 API_ROOT = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "lib", "logstash", "api")) +require "stud/task" require "logstash/devutils/rspec/spec_helper" $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) require "lib/api/support/resource_dsl_methods" From d8d85d60e7df1df3161cad626acc042d87da1ec3 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Mon, 20 Jun 2016 12:01:12 +0200 Subject: [PATCH 259/632] provide more clarity to the QA test readme Fixes #5521 --- qa/README.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/qa/README.md b/qa/README.md index 3d4b152d4ee..ceb72746ded 100644 --- a/qa/README.md +++ b/qa/README.md @@ -28,7 +28,6 @@ It is possible to run the full suite of the acceptance test with the codebase by running the command `ci/ci_acceptance.sh`, this command will generate the artifacts, bootstrap the VM and run the tests. - This test are based on a collection of Vagrant defined VM's where the different test are going to be executed, so first setup necessary is to have vagrant properly available, see https://www.vagrantup.com/ for @@ -60,21 +59,25 @@ rake qa:acceptance:redhat # Run acceptance test in redhat machines rake qa:acceptance:suse # Run acceptance test in suse machines ``` -will bootstrap all selected machines. If you're willing to run on single -platform you should use +before you *will have to bootstrap* all selected machines, you can do +that using the `rake qa:vm:setup[platform]` task. This is done like this +as bootstrap imply setting up the VM'S and this might take some time and +you might only want to this once. + +In the feature we might add new rake tasks to do all at once, but for now you can use the script under +`ci/ci_acceptance.sh` to do all at once. + +For local testing puroposes, is recommended to not run all together, pick your target and run with the single machine command, If you're willing to run on single one, you should use: ``` rake qa:acceptance:single[machine] # Run one single machine acceptance test ``` -this will not do any bootstrap, so you are required to previously -boostrap the VM yourself by doing `vagrant up`. This is like this -because this command is only here for developers, not for automated -CI's. - - ### How to run tests +If you are *running this test for first time*, you will need to setup +your VM's first, you can do that using either `vagrant up` or `rake qa:vm:setup[platform]`. + In this framework we're using ssh to connect to a collection of Vagrant machines, so first and most important is to generate a valid ssh config file, this could be done running `rake qa:vm:ssh_config`. When this task From fcfebb7535d394957d2b1568942ebfad06903668 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 13 Jul 2016 12:24:58 +0200 Subject: [PATCH 260/632] add option to filter payload (first level) in the node api Fixes #5630 --- logstash-core/lib/logstash/api/app_helpers.rb | 4 ++++ .../lib/logstash/api/commands/node.rb | 7 ++++-- .../lib/logstash/api/modules/node.rb | 24 ++++++------------- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/logstash-core/lib/logstash/api/app_helpers.rb b/logstash-core/lib/logstash/api/app_helpers.rb index a235f809ac8..cf3c68c875f 100644 --- a/logstash-core/lib/logstash/api/app_helpers.rb +++ b/logstash-core/lib/logstash/api/app_helpers.rb @@ -19,6 +19,10 @@ def respond_with(data, options={}) end end + def extract_fields(filter_string) + (filter_string.empty? ? [] : filter_string.split(",").map { |s| s.strip.to_sym }) + end + def as_boolean(string) return true if string == true || string =~ (/(true|t|yes|y|1)$/i) return false if string == false || string.blank? || string =~ (/(false|f|no|n|0)$/i) diff --git a/logstash-core/lib/logstash/api/commands/node.rb b/logstash-core/lib/logstash/api/commands/node.rb index 53962a953d5..6ffc427465e 100644 --- a/logstash-core/lib/logstash/api/commands/node.rb +++ b/logstash-core/lib/logstash/api/commands/node.rb @@ -4,12 +4,15 @@ module LogStash module Api module Commands class Node < Commands::Base - def all - { + + def all(selected_fields=[]) + payload = { :pipeline => pipeline, :os => os, :jvm => jvm } + payload.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty? + payload end def pipeline diff --git a/logstash-core/lib/logstash/api/modules/node.rb b/logstash-core/lib/logstash/api/modules/node.rb index 043b5faf2a8..d76f7dccc34 100644 --- a/logstash-core/lib/logstash/api/modules/node.rb +++ b/logstash-core/lib/logstash/api/modules/node.rb @@ -8,23 +8,7 @@ class Node < ::LogStash::Api::Modules::Base def node factory.build(:node) end - - get "/" do - respond_with node.all - end - - get "/os" do - respond_with :os => node.os - end - - get "/jvm" do - respond_with :jvm => node.jvm - end - get "/pipeline" do - respond_with :pipeline => node.pipeline - end - get "/hot_threads" do ignore_idle_threads = params["ignore_idle_threads"] || true @@ -36,7 +20,13 @@ def node as = options[:human] ? :string : :json respond_with(node.hot_threads(options), {:as => as}) - end + end + + get "/?:filter?" do + selected_fields = extract_fields(params["filter"].to_s.strip) + respond_with node.all(selected_fields) + end + end end end From 0a59cde937141023456f53a766a0a21fcd265392 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 13 Jul 2016 12:47:30 +0200 Subject: [PATCH 261/632] Introduce the first level, comma separated selector for fields. Also corrected an issue where memory refence was also using mem. Fixes #5630 --- .../lib/logstash/api/modules/stats.rb | 48 ++++++------------- 1 file changed, 15 insertions(+), 33 deletions(-) diff --git a/logstash-core/lib/logstash/api/modules/stats.rb b/logstash-core/lib/logstash/api/modules/stats.rb index fde364f2432..ff566452a81 100644 --- a/logstash-core/lib/logstash/api/modules/stats.rb +++ b/logstash-core/lib/logstash/api/modules/stats.rb @@ -8,39 +8,6 @@ def stats_command factory.build(:stats) end - # Global _stats resource where all information is - # retrieved and show - get "/" do - payload = { - :events => stats_command.events, - :jvm => { :memory => stats_command.memory } - } - respond_with payload - end - - - # return hot threads information - get "/jvm" do - jvm_payload = { - :timestamp => stats_command.started_at, - :uptime_in_millis => stats_command.uptime, - :mem => stats_command.memory - } - respond_with({:jvm => jvm_payload}) - end - - # Show all events stats information - # (for ingested, emitted, dropped) - # - #events since startup - # - #data (bytes) since startup - # - events/s - # - bytes/s - # - dropped events/s - # - events in the pipeline - get "/events" do - respond_with({ :events => stats_command.events }) - end - # return hot threads information get "/jvm/hot_threads" do top_threads_count = params["threads"] || 3 @@ -57,6 +24,21 @@ def stats_command get "/jvm/memory" do respond_with({ :memory => stats_command.memory }) end + + get "/?:filter?" do + selected_fields = extract_fields(params["filter"].to_s.strip) + payload = { + :events => stats_command.events, + :jvm => { + :timestamp => stats_command.started_at, + :uptime_in_millis => stats_command.uptime, + :memory => stats_command.memory + } + } + payload.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty? + respond_with payload + end + end end end From e812821fd241e2d085a014ce34779c76f2b84ece Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 13 Jul 2016 13:47:45 +0200 Subject: [PATCH 262/632] add the magic header # encoding: utf-8 to a few files, plus refactoring the hot threads code to be in single location Fixes #5630 --- .../lib/logstash/api/commands/base.rb | 2 + .../logstash/api/commands/default_metadata.rb | 2 + .../api/commands/hot_threads_reporter.rb | 61 +++++++++++++++++ .../lib/logstash/api/commands/node.rb | 65 ++----------------- .../lib/logstash/api/commands/stats.rb | 61 +---------------- .../lib/logstash/api/modules/base.rb | 1 + 6 files changed, 72 insertions(+), 120 deletions(-) create mode 100644 logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb diff --git a/logstash-core/lib/logstash/api/commands/base.rb b/logstash-core/lib/logstash/api/commands/base.rb index 873f4e7e198..d2bef44e6fb 100644 --- a/logstash-core/lib/logstash/api/commands/base.rb +++ b/logstash-core/lib/logstash/api/commands/base.rb @@ -1,3 +1,5 @@ +# encoding: utf-8 + module LogStash module Api module Commands diff --git a/logstash-core/lib/logstash/api/commands/default_metadata.rb b/logstash-core/lib/logstash/api/commands/default_metadata.rb index bae4f081139..2a5e03dbb98 100644 --- a/logstash-core/lib/logstash/api/commands/default_metadata.rb +++ b/logstash-core/lib/logstash/api/commands/default_metadata.rb @@ -1,3 +1,5 @@ +# encoding: utf-8 + require "logstash/api/commands/base" module LogStash diff --git a/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb b/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb new file mode 100644 index 00000000000..3b27a6e329a --- /dev/null +++ b/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb @@ -0,0 +1,61 @@ +# encoding: utf-8 + +class HotThreadsReport + HOT_THREADS_STACK_TRACES_SIZE_DEFAULT = 10.freeze + + def initialize(cmd, options) + @cmd = cmd + filter = { :stacktrace_size => options.fetch(:stacktrace_size, HOT_THREADS_STACK_TRACES_SIZE_DEFAULT) } + jr_dump = JRMonitor.threads.generate(filter) + @thread_dump = ::LogStash::Util::ThreadDump.new(options.merge(:dump => jr_dump)) + end + + def to_s + hash = to_hash + report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" + report << '=' * 80 + report << "\n" + hash[:threads].each do |thread| + thread_report = "" + thread_report = "#{I18n.t("logstash.web_api. + hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" + thread_report = "#{thread[:percent_of_cpu_time]} % of of cpu usage by #{thread[:state]} thread named '#{thread[:name]}'\n" + thread_report << "#{thread[:path]}\n" if thread[:path] + thread[:traces].each do |trace| + thread_report << "\t#{trace}\n" + end + report << thread_report + report << '-' * 80 + report << "\n" + end + report + end + + def to_hash + hash = { :time => Time.now.iso8601, :busiest_threads => @thread_dump.top_count, :threads => [] } + @thread_dump.each do |thread_name, _hash| + thread_name, thread_path = _hash["thread.name"].split(": ") + thread = { :name => thread_name, + :percent_of_cpu_time => cpu_time_as_percent(_hash), + :state => _hash["thread.state"] + } + thread[:path] = thread_path if thread_path + traces = [] + _hash["thread.stacktrace"].each do |trace| + traces << trace + end + thread[:traces] = traces unless traces.empty? + hash[:threads] << thread + end + hash + end + + def cpu_time_as_percent(hash) + (((cpu_time(hash) / @cmd.uptime * 1.0)*10000).to_i)/100.0 + end + + def cpu_time(hash) + hash["cpu.time"] / 1000000.0 + end + +end diff --git a/logstash-core/lib/logstash/api/commands/node.rb b/logstash-core/lib/logstash/api/commands/node.rb index 6ffc427465e..d35fac99011 100644 --- a/logstash-core/lib/logstash/api/commands/node.rb +++ b/logstash-core/lib/logstash/api/commands/node.rb @@ -1,10 +1,12 @@ +# encoding: utf-8 require "logstash/api/commands/base" +require_relative "hot_threads_reporter" module LogStash module Api module Commands class Node < Commands::Base - + def all(selected_fields=[]) payload = { :pipeline => pipeline, @@ -14,7 +16,7 @@ def all(selected_fields=[]) payload.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty? payload end - + def pipeline extract_metrics( [:stats, :pipelines, :main, :config], @@ -54,65 +56,6 @@ def hot_threads(options={}) HotThreadsReport.new(self, options) end - class HotThreadsReport - HOT_THREADS_STACK_TRACES_SIZE_DEFAULT = 10.freeze - - def initialize(cmd, options) - @cmd = cmd - filter = { :stacktrace_size => options.fetch(:stacktrace_size, HOT_THREADS_STACK_TRACES_SIZE_DEFAULT) } - jr_dump = JRMonitor.threads.generate(filter) - @thread_dump = ::LogStash::Util::ThreadDump.new(options.merge(:dump => jr_dump)) - end - - def to_s - hash = to_hash[:hot_threads] - report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" - report << '=' * 80 - report << "\n" - hash[:threads].each do |thread| - thread_report = "" - thread_report = "#{I18n.t("logstash.web_api. - hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" - thread_report = "#{thread[:percent_of_cpu_time]} % of of cpu usage by #{thread[:state]} thread named '#{thread[:name]}'\n" - thread_report << "#{thread[:path]}\n" if thread[:path] - thread[:traces].each do |trace| - thread_report << "\t#{trace}\n" - end - report << thread_report - report << '-' * 80 - report << "\n" - end - report - end - - def to_hash - hash = { :time => Time.now.iso8601, :busiest_threads => @thread_dump.top_count, :threads => [] } - @thread_dump.each do |thread_name, _hash| - thread_name, thread_path = _hash["thread.name"].split(": ") - thread = { :name => thread_name, - :percent_of_cpu_time => cpu_time_as_percent(_hash), - :state => _hash["thread.state"] - } - thread[:path] = thread_path if thread_path - traces = [] - _hash["thread.stacktrace"].each do |trace| - traces << trace - end - thread[:traces] = traces unless traces.empty? - hash[:threads] << thread - end - { :hot_threads => hash } - end - - def cpu_time_as_percent(hash) - (((cpu_time(hash) / @cmd.uptime * 1.0)*10000).to_i)/100.0 - end - - def cpu_time(hash) - hash["cpu.time"] / 1000000.0 - end - - end end end end diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index c3a80057146..d89770090fe 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -1,5 +1,7 @@ +# encoding: utf-8 require "logstash/api/commands/base" require 'logstash/util/thread_dump' +require_relative "hot_threads_reporter" module LogStash module Api @@ -61,65 +63,6 @@ def hot_threads(options={}) HotThreadsReport.new(self, options) end - class HotThreadsReport - HOT_THREADS_STACK_TRACES_SIZE_DEFAULT = 10.freeze - - def initialize(cmd, options) - @cmd = cmd - filter = { :stacktrace_size => options.fetch(:stacktrace_size, HOT_THREADS_STACK_TRACES_SIZE_DEFAULT) } - jr_dump = JRMonitor.threads.generate(filter) - @thread_dump = ::LogStash::Util::ThreadDump.new(options.merge(:dump => jr_dump)) - end - - def to_s - hash = to_hash - report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" - report << '=' * 80 - report << "\n" - hash[:threads].each do |thread| - thread_report = "" - thread_report = "#{I18n.t("logstash.web_api. - hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" - thread_report = "#{thread[:percent_of_cpu_time]} % of of cpu usage by #{thread[:state]} thread named '#{thread[:name]}'\n" - thread_report << "#{thread[:path]}\n" if thread[:path] - thread[:traces].each do |trace| - thread_report << "\t#{trace}\n" - end - report << thread_report - report << '-' * 80 - report << "\n" - end - report - end - - def to_hash - hash = { :hostname => @cmd.hostname, :time => Time.now.iso8601, :busiest_threads => @thread_dump.top_count, :threads => [] } - @thread_dump.each do |thread_name, _hash| - thread_name, thread_path = _hash["thread.name"].split(": ") - thread = { :name => thread_name, - :percent_of_cpu_time => cpu_time_as_percent(_hash), - :state => _hash["thread.state"] - } - thread[:path] = thread_path if thread_path - traces = [] - _hash["thread.stacktrace"].each do |trace| - traces << trace - end - thread[:traces] = traces unless traces.empty? - hash[:threads] << thread - end - hash - end - - def cpu_time_as_percent(hash) - (((cpu_time(hash) / @cmd.uptime * 1.0)*10000).to_i)/100.0 - end - - def cpu_time(hash) - hash["cpu.time"] / 1000000.0 - end - end # class HotThreadsReport - module PluginsStats module_function diff --git a/logstash-core/lib/logstash/api/modules/base.rb b/logstash-core/lib/logstash/api/modules/base.rb index b47ca016dff..5146dd96db8 100644 --- a/logstash-core/lib/logstash/api/modules/base.rb +++ b/logstash-core/lib/logstash/api/modules/base.rb @@ -1,3 +1,4 @@ +# encoding: utf-8 require "logstash/api/app_helpers" require "logstash/api/command_factory" From 51fd381b0432d019881c26806778246bf15fbb0c Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 13 Jul 2016 14:00:29 +0200 Subject: [PATCH 263/632] add generic filter for _node/stats api ammend wrong rebase in terms of the hot_threads api fix Fixes #5630 --- .../api/commands/hot_threads_reporter.rb | 4 +-- .../lib/logstash/api/modules/node_stats.rb | 27 ++++--------------- 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb b/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb index 3b27a6e329a..b5c0a914fbe 100644 --- a/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb +++ b/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb @@ -11,7 +11,7 @@ def initialize(cmd, options) end def to_s - hash = to_hash + hash = to_hash[:hot_threads] report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" report << '=' * 80 report << "\n" @@ -47,7 +47,7 @@ def to_hash thread[:traces] = traces unless traces.empty? hash[:threads] << thread end - hash + { :hot_threads => hash } end def cpu_time_as_percent(hash) diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index ecbcad4a0c0..4b05b6cbd46 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -3,40 +3,23 @@ module LogStash module Api module Modules class NodeStats < ::LogStash::Api::Modules::Base - #set :environment, :test - #set :dump_errors, true - #set :raise_errors, true - #set :logging, Logger.new(STDERR) - - + before do @stats = factory.build(:stats) end - # Global _stats resource where all information is - # retrieved and show - get "/" do + get "/?:filter?" do + selected_fields = extract_fields(params["filter"].to_s.strip) payload = { :jvm => jvm_payload, :process => process_payload, + :mem => mem_payload, :pipeline => pipeline_payload } - + payload.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty? respond_with payload end - get "/jvm" do - respond_with :jvm => jvm_payload - end - - get "/process" do - respond_with :process => process_payload - end - - get "/pipeline" do - respond_with :pipeline => pipeline_payload - end - private def events_payload From b0e1ded0fbc27bc85d3953a16442ef7da4a870cf Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Tue, 19 Jul 2016 16:25:44 +0200 Subject: [PATCH 264/632] move the payload filter to the respond_with method helper Fixes #5630 --- logstash-core/lib/logstash/api/app_helpers.rb | 3 +++ logstash-core/lib/logstash/api/modules/node_stats.rb | 4 +--- logstash-core/lib/logstash/api/modules/stats.rb | 4 +--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/logstash-core/lib/logstash/api/app_helpers.rb b/logstash-core/lib/logstash/api/app_helpers.rb index cf3c68c875f..4eeb7b788c6 100644 --- a/logstash-core/lib/logstash/api/app_helpers.rb +++ b/logstash-core/lib/logstash/api/app_helpers.rb @@ -5,9 +5,12 @@ module LogStash::Api::AppHelpers def respond_with(data, options={}) as = options.fetch(:as, :json) + filter = options.fetch(:filter, "") pretty = params.has_key?("pretty") if as == :json + selected_fields = extract_fields(filter.to_s.strip) + data.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty? unless options.include?(:exclude_default_metadata) data = default_metadata.merge(data) end diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index 4b05b6cbd46..46bc9147fc4 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -9,15 +9,13 @@ class NodeStats < ::LogStash::Api::Modules::Base end get "/?:filter?" do - selected_fields = extract_fields(params["filter"].to_s.strip) payload = { :jvm => jvm_payload, :process => process_payload, :mem => mem_payload, :pipeline => pipeline_payload } - payload.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty? - respond_with payload + respond_with(payload, {:filter => params["filter"]}) end private diff --git a/logstash-core/lib/logstash/api/modules/stats.rb b/logstash-core/lib/logstash/api/modules/stats.rb index ff566452a81..377a3156d97 100644 --- a/logstash-core/lib/logstash/api/modules/stats.rb +++ b/logstash-core/lib/logstash/api/modules/stats.rb @@ -26,7 +26,6 @@ def stats_command end get "/?:filter?" do - selected_fields = extract_fields(params["filter"].to_s.strip) payload = { :events => stats_command.events, :jvm => { @@ -35,8 +34,7 @@ def stats_command :memory => stats_command.memory } } - payload.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty? - respond_with payload + respond_with(payload, {:filter => params["filter"]}) end end From 1002d50524a5d2836356ca9d357590a2f5a44a26 Mon Sep 17 00:00:00 2001 From: Guy Boertje Date: Wed, 20 Jul 2016 20:03:03 +0100 Subject: [PATCH 265/632] Implementation - Java Event type casting conversion optimization (#4999) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add RubyJavaObject and Valuefier classes and use, junit and rspec pass * add benchmark * update benchmark Deep fetch 6.015M (± 4.4%) i/s - 60.086M * change warmup to 30 seconds * support for rubyValue = RubyNil, shortcut null when asking for javaValue * prevent Lists and Maps from being converted to RubyJavaValue too * camel case: is_ruby_nil * rename method, use renamed method, make serializable and add junit test * encapsulate refs to RubyJavaObject to setableValue, use StringBuilder * remove unused newObj * some fixes after PR review * wip * ruby and java tests pass with BiValues. * Benchmarks are still good * Fixes for spec failures in normal event specs * integrate JavaProxy support into BiValues * edit a TODO * rebase master and updates from PR review. * revert the use of JavaUtil.convertJavaToUsableRubyObject * allow initTimestamp to handle NullBiValue * remove TimeBiValue, convert Joda DateTime and Ruby Time to Timestamp beforehand --- .gitignore | 1 + benchmark/event_accessor.rb | 17 ++ logstash-core-event-java/.gitignore | 4 - logstash-core-event-java/build.gradle | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- logstash-core-event-java/spec/event_spec.rb | 8 + .../src/main/java/com/logstash/Cloner.java | 4 + .../main/java/com/logstash/ConvertedList.java | 224 ++++++++++++++ .../main/java/com/logstash/ConvertedMap.java | 182 ++++++++++++ .../src/main/java/com/logstash/Event.java | 37 ++- .../src/main/java/com/logstash/Javafier.java | 242 ++------------- .../src/main/java/com/logstash/KeyNode.java | 4 + .../src/main/java/com/logstash/Rubyfier.java | 64 ++-- .../src/main/java/com/logstash/Valuefier.java | 92 ++++++ .../java/com/logstash/bivalues/BiValue.java | 18 ++ .../com/logstash/bivalues/BiValueCommon.java | 110 +++++++ .../java/com/logstash/bivalues/BiValues.java | 203 +++++++++++++ .../logstash/bivalues/BigDecimalBiValue.java | 36 +++ .../logstash/bivalues/BigIntegerBiValue.java | 36 +++ .../com/logstash/bivalues/BooleanBiValue.java | 36 +++ .../com/logstash/bivalues/DoubleBiValue.java | 36 +++ .../com/logstash/bivalues/FloatBiValue.java | 40 +++ .../com/logstash/bivalues/IntegerBiValue.java | 40 +++ .../logstash/bivalues/JavaProxyBiValue.java | 36 +++ .../com/logstash/bivalues/LongBiValue.java | 36 +++ .../com/logstash/bivalues/NullBiValue.java | 45 +++ .../com/logstash/bivalues/StringBiValue.java | 35 +++ .../com/logstash/bivalues/SymbolBiValue.java | 35 +++ .../com/logstash/bivalues/TimeBiValue.java | 37 +++ .../logstash/bivalues/TimestampBiValue.java | 36 +++ .../logstash/ext/JrubyEventExtLibrary.java | 42 +-- .../ext/JrubyTimestampExtLibrary.java | 18 +- .../src/test/java/com/logstash/EventTest.java | 13 +- .../test/java/com/logstash/JavafierTest.java | 83 +----- .../test/java/com/logstash/RubyfierTest.java | 63 ++-- .../src/test/java/com/logstash/TestBase.java | 25 ++ .../test/java/com/logstash/ValuefierTest.java | 113 +++++++ .../com/logstash/bivalues/BiValueTest.java | 215 ++++++++++++++ .../com/logstash/bivalues/BiValuesTest.java | 280 ++++++++++++++++++ .../com/logstash/bivalues/SomeJavaObject.java | 29 ++ 40 files changed, 2163 insertions(+), 420 deletions(-) create mode 100644 benchmark/event_accessor.rb create mode 100644 logstash-core-event-java/src/main/java/com/logstash/ConvertedList.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/ConvertedMap.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/Valuefier.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValueCommon.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValues.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/BigDecimalBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/BigIntegerBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/BooleanBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/DoubleBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/FloatBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/IntegerBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/JavaProxyBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/LongBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/NullBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/StringBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/SymbolBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/TimeBiValue.java create mode 100644 logstash-core-event-java/src/main/java/com/logstash/bivalues/TimestampBiValue.java create mode 100644 logstash-core-event-java/src/test/java/com/logstash/TestBase.java create mode 100644 logstash-core-event-java/src/test/java/com/logstash/ValuefierTest.java create mode 100644 logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValueTest.java create mode 100644 logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValuesTest.java create mode 100644 logstash-core-event-java/src/test/java/com/logstash/bivalues/SomeJavaObject.java diff --git a/.gitignore b/.gitignore index d6cbc6a259f..0cadd48f8fb 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ qa/.vagrant qa/.rspec qa/acceptance/.vagrant qa/Gemfile.lock + diff --git a/benchmark/event_accessor.rb b/benchmark/event_accessor.rb new file mode 100644 index 00000000000..018785b51ae --- /dev/null +++ b/benchmark/event_accessor.rb @@ -0,0 +1,17 @@ +# encoding: utf-8 +require "benchmark/ips" +require "logstash/event" + +options = { :time => 10, :warmup => 60 } +puts "Same Event instance" + +event = LogStash::Event.new("foo" => {"bar" => {"foobar" => "morebar"} }) +STDERR.puts "" +STDERR.puts " ----------> event.get(\"[foo][bar][foobar]\") => #{event.get("[foo][bar][foobar]")}" +STDERR.puts "" + +Benchmark.ips do |x| + x.config(options) + + x.report("Deep fetch") { event.get("[foo][bar][foobar]") } +end diff --git a/logstash-core-event-java/.gitignore b/logstash-core-event-java/.gitignore index a453cb95034..0224a02d2d8 100644 --- a/logstash-core-event-java/.gitignore +++ b/logstash-core-event-java/.gitignore @@ -3,7 +3,3 @@ # build dirs build .gradle - -# Intellij -.idea -*.iml diff --git a/logstash-core-event-java/build.gradle b/logstash-core-event-java/build.gradle index b2a4a55ec43..cbefa2fc893 100644 --- a/logstash-core-event-java/build.gradle +++ b/logstash-core-event-java/build.gradle @@ -27,7 +27,7 @@ apply plugin: 'idea' group = 'org.logstash' -project.sourceCompatibility = 1.7 +project.sourceCompatibility = 1.8 task sourcesJar(type: Jar, dependsOn: classes) { from sourceSets.main.allSource @@ -94,7 +94,7 @@ idea { dependencies { compile 'com.fasterxml.jackson.core:jackson-core:2.7.1' compile 'com.fasterxml.jackson.core:jackson-databind:2.7.1-1' - provided 'org.jruby:jruby-core:1.7.22' + provided 'org.jruby:jruby-core:1.7.25' testCompile 'junit:junit:4.12' testCompile 'net.javacrumbs.json-unit:json-unit:1.9.0' } diff --git a/logstash-core-event-java/gradle/wrapper/gradle-wrapper.properties b/logstash-core-event-java/gradle/wrapper/gradle-wrapper.properties index 25611753f15..5dd8b01df92 100644 --- a/logstash-core-event-java/gradle/wrapper/gradle-wrapper.properties +++ b/logstash-core-event-java/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Jan 22 14:29:02 EST 2016 +#Sat Jun 11 09:10:51 BST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip diff --git a/logstash-core-event-java/spec/event_spec.rb b/logstash-core-event-java/spec/event_spec.rb index 144d817b789..86b670a5706 100644 --- a/logstash-core-event-java/spec/event_spec.rb +++ b/logstash-core-event-java/spec/event_spec.rb @@ -114,6 +114,14 @@ expect(e.get("foo")).to eq(-9223372036854776000) end + it "should convert Time to Timestamp" do + e = LogStash::Event.new() + time = Time.now + e.set("[foo]", Time.at(time.to_f)) + expect(e.get("foo")).to be_kind_of(LogStash::Timestamp) + expect(e.get("foo").to_f).to be_within(0.1).of(time.to_f) + end + it "should set XXJavaProxy Jackson crafted" do proxy = com.logstash.Util.getMapFixtureJackson() # proxy is {"string": "foo", "int": 42, "float": 42.42, "array": ["bar","baz"], "hash": {"string":"quux"} } diff --git a/logstash-core-event-java/src/main/java/com/logstash/Cloner.java b/logstash-core-event-java/src/main/java/com/logstash/Cloner.java index 4823f10726a..cd78a7007d8 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Cloner.java +++ b/logstash-core-event-java/src/main/java/com/logstash/Cloner.java @@ -24,6 +24,8 @@ private static List deepList(final List list) { clone = new LinkedList(); } else if (list instanceof ArrayList) { clone = new ArrayList(); + } else if (list instanceof ConvertedList) { + clone = new ArrayList(); } else { throw new ClassCastException("unexpected List type " + list.getClass()); } @@ -43,6 +45,8 @@ private static Map deepMap(final Map map) { clone = new TreeMap(); } else if (map instanceof HashMap) { clone = new HashMap(); + } else if (map instanceof ConvertedMap) { + clone = new HashMap(); } else { throw new ClassCastException("unexpected Map type " + map.getClass()); } diff --git a/logstash-core-event-java/src/main/java/com/logstash/ConvertedList.java b/logstash-core-event-java/src/main/java/com/logstash/ConvertedList.java new file mode 100644 index 00000000000..319f1c300cf --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/ConvertedList.java @@ -0,0 +1,224 @@ +package com.logstash; + +import org.jruby.RubyArray; +import org.jruby.runtime.builtin.IRubyObject; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import java.util.Spliterator; +import java.util.function.Consumer; +import java.util.function.Predicate; +import java.util.function.UnaryOperator; +import java.util.stream.Stream; + +import static com.logstash.Valuefier.convert; + +public class ConvertedList implements List, Collection, Iterable { + private final List delegate; + + public ConvertedList(List delegate) { + this.delegate = delegate; + } + public ConvertedList() { + this.delegate = new ArrayList<>(); + } + + public static ConvertedList newFromList(List list) { + ConvertedList array = new ConvertedList<>(); + + for (Object item : list) { + array.add(convert(item)); + } + return array; + } + + public static ConvertedList newFromRubyArray(RubyArray a) { + final ConvertedList result = new ConvertedList<>(); + + for (IRubyObject o : a.toJavaArray()) { + result.add(convert(o)); + } + return result; + } + + public Object unconvert() { + final ArrayList result = new ArrayList<>(); + for (Object obj : delegate) { + result.add(Javafier.deep(obj)); + } + return result; + } + + // delegate methods + @Override + public int size() { + return delegate.size(); + } + + @Override + public boolean isEmpty() { + return delegate.isEmpty(); + } + + @Override + public boolean contains(Object o) { + return delegate.contains(o); + } + + @Override + public Iterator iterator() { + return delegate.iterator(); + } + + @Override + public Object[] toArray() { + return delegate.toArray(); + } + + @Override + public T1[] toArray(T1[] a) { + return delegate.toArray(a); + } + + @Override + public boolean add(T t) { + return delegate.add(t); + } + + @Override + public boolean remove(Object o) { + return delegate.remove(o); + } + + @Override + public boolean containsAll(Collection c) { + return delegate.containsAll(c); + } + + @Override + public boolean addAll(Collection c) { + return delegate.addAll(c); + } + + @Override + public boolean addAll(int index, Collection c) { + return delegate.addAll(index, c); + } + + @Override + public boolean removeAll(Collection c) { + return delegate.removeAll(c); + } + + @Override + public boolean retainAll(Collection c) { + return delegate.retainAll(c); + } + + @Override + public void replaceAll(UnaryOperator operator) { + delegate.replaceAll(operator); + } + + @Override + public void sort(Comparator c) { + delegate.sort(c); + } + + @Override + public void clear() { + delegate.clear(); + } + + @Override + public boolean equals(Object o) { + return delegate.equals(o); + } + + @Override + public int hashCode() { + return delegate.hashCode(); + } + + @Override + public T get(int index) { + return delegate.get(index); + } + + @Override + public T set(int index, T element) { + return delegate.set(index, element); + } + + @Override + public void add(int index, T element) { + delegate.add(index, element); + } + + @Override + public T remove(int index) { + return delegate.remove(index); + } + + @Override + public int indexOf(Object o) { + return delegate.indexOf(o); + } + + @Override + public int lastIndexOf(Object o) { + return delegate.lastIndexOf(o); + } + + @Override + public ListIterator listIterator() { + return delegate.listIterator(); + } + + @Override + public ListIterator listIterator(int index) { + return delegate.listIterator(index); + } + + @Override + public List subList(int fromIndex, int toIndex) { + return delegate.subList(fromIndex, toIndex); + } + + @Override + public Spliterator spliterator() { + return delegate.spliterator(); + } + + @Override + public String toString() { + final StringBuffer sb = new StringBuffer("ConvertedList{"); + sb.append("delegate=").append(delegate.toString()); + sb.append('}'); + return sb.toString(); + } + + @Override + public boolean removeIf(Predicate filter) { + return delegate.removeIf(filter); + } + + @Override + public Stream stream() { + return delegate.stream(); + } + + @Override + public Stream parallelStream() { + return delegate.parallelStream(); + } + + @Override + public void forEach(Consumer action) { + delegate.forEach(action); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/ConvertedMap.java b/logstash-core-event-java/src/main/java/com/logstash/ConvertedMap.java new file mode 100644 index 00000000000..1efc2be8308 --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/ConvertedMap.java @@ -0,0 +1,182 @@ +package com.logstash; + +import com.logstash.bivalues.BiValues; +import org.jruby.RubyHash; +import org.jruby.runtime.builtin.IRubyObject; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Function; + +public class ConvertedMap implements Map { + + private final Map delegate; + + public ConvertedMap(Map delegate) { + this.delegate = delegate; + } + + public ConvertedMap() { + this.delegate = new HashMap<>(); + } + + public static ConvertedMap newFromMap(Map o) { + ConvertedMap cm = new ConvertedMap<>(); + for (Map.Entry entry : o.entrySet()) { + String k = String.valueOf(BiValues.newBiValue(entry.getKey()).javaValue()); + cm.put(k, Valuefier.convert(entry.getValue())); + } + return cm; + } + + public static ConvertedMap newFromRubyHash(RubyHash o) { + final ConvertedMap result = new ConvertedMap<>(); + + o.visitAll(new RubyHash.Visitor() { + @Override + public void visit(IRubyObject key, IRubyObject value) { + String k = String.valueOf(BiValues.newBiValue(key).javaValue()) ; + result.put(k, Valuefier.convert(value)); + } + }); + return result; + } + + public Object unconvert() { + final HashMap result = new HashMap<>(); + for (Map.Entry entry : entrySet()) { + result.put(entry.getKey(), (V) Javafier.deep(entry.getValue())); + } + return result; + } + + // Delegate methods + @Override + public int size() { + return delegate.size(); + } + + @Override + public boolean isEmpty() { + return delegate.isEmpty(); + } + + @Override + public boolean containsKey(Object key) { + return delegate.containsKey(key); + } + + @Override + public boolean containsValue(Object value) { + return delegate.containsValue(value); + } + + @Override + public V get(Object key) { + return delegate.get(key); + } + + @Override + public V put(K key, V value) { + return delegate.put(key, value); + } + + @Override + public V remove(Object key) { + return delegate.remove(key); + } + + @Override + public void putAll(Map m) { + delegate.putAll(m); + } + + @Override + public void clear() { + delegate.clear(); + } + + @Override + public Set keySet() { + return delegate.keySet(); + } + + @Override + public Collection values() { + return delegate.values(); + } + + @Override + public Set> entrySet() { + return delegate.entrySet(); + } + + @Override + public V getOrDefault(Object key, V defaultValue) { + return delegate.getOrDefault(key, defaultValue); + } + + @Override + public void forEach(BiConsumer action) { + delegate.forEach(action); + } + + @Override + public void replaceAll(BiFunction function) { + delegate.replaceAll(function); + } + + @Override + public V putIfAbsent(K key, V value) { + return delegate.putIfAbsent(key, value); + } + + @Override + public boolean remove(Object key, Object value) { + return delegate.remove(key, value); + } + + @Override + public boolean replace(K key, V oldValue, V newValue) { + return delegate.replace(key, oldValue, newValue); + } + + @Override + public V replace(K key, V value) { + return delegate.replace(key, value); + } + + @Override + public V computeIfAbsent(K key, Function mappingFunction) { + return delegate.computeIfAbsent(key, mappingFunction); + } + + @Override + public V computeIfPresent(K key, BiFunction remappingFunction) { + return delegate.computeIfPresent(key, remappingFunction); + } + + @Override + public V compute(K key, BiFunction remappingFunction) { + return delegate.compute(key, remappingFunction); + } + + @Override + public V merge(K key, V value, BiFunction remappingFunction) { + return delegate.merge(key, value, remappingFunction); + } + + @Override + public boolean equals(Object o) { + return delegate.equals(o); + } + + @Override + public int hashCode() { + return delegate.hashCode(); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/Event.java b/logstash-core-event-java/src/main/java/com/logstash/Event.java index d8979b41003..a95fb08e472 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Event.java +++ b/logstash-core-event-java/src/main/java/com/logstash/Event.java @@ -1,13 +1,21 @@ package com.logstash; import com.fasterxml.jackson.databind.ObjectMapper; +import com.logstash.bivalues.NullBiValue; +import com.logstash.bivalues.StringBiValue; +import com.logstash.bivalues.TimeBiValue; +import com.logstash.bivalues.TimestampBiValue; import com.logstash.ext.JrubyTimestampExtLibrary; import org.joda.time.DateTime; import org.jruby.RubySymbol; import java.io.IOException; import java.io.Serializable; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class Event implements Cloneable, Serializable { @@ -48,13 +56,14 @@ public Event() public Event(Map data) { - this.data = data; + this.data = (Map)Valuefier.convert(data); + if (!this.data.containsKey(VERSION)) { this.data.put(VERSION, VERSION_ONE); } if (this.data.containsKey(METADATA)) { - this.metadata = (HashMap) this.data.remove(METADATA); + this.metadata = (Map) this.data.remove(METADATA); } else { this.metadata = new HashMap(); } @@ -75,7 +84,7 @@ public Map getMetadata() { } public void setData(Map data) { - this.data = data; + this.data = ConvertedMap.newFromMap(data); } public Accessors getAccessors() { @@ -120,6 +129,11 @@ public void setTimestamp(Timestamp t) { } public Object getField(String reference) { + Object val = getUnconvertedField(reference); + return Javafier.deep(val); + } + + public Object getUnconvertedField(String reference) { if (reference.equals(METADATA)) { return this.metadata; } else if (reference.startsWith(METADATA_BRACKETS)) { @@ -134,12 +148,12 @@ public void setField(String reference, Object value) { // TODO(talevy): check type of timestamp this.accessors.set(reference, value); } else if (reference.equals(METADATA_BRACKETS) || reference.equals(METADATA)) { - this.metadata = (HashMap) value; + this.metadata = (Map) value; this.metadata_accessors = new Accessors(this.metadata); } else if (reference.startsWith(METADATA_BRACKETS)) { this.metadata_accessors.set(reference.substring(METADATA_BRACKETS.length()), value); } else { - this.accessors.set(reference, value); + this.accessors.set(reference, Valuefier.convert(value)); } } @@ -156,7 +170,7 @@ public boolean includes(String reference) { public String toJson() throws IOException { - return mapper.writeValueAsString((Map)this.data); + return mapper.writeValueAsString(this.data); } public static Event[] fromJson(String json) @@ -205,7 +219,6 @@ public Event overwrite(Event e) { return this; } - public Event append(Event e) { Util.mapMerge(this.data, e.data); @@ -247,16 +260,22 @@ public String toString() { private Timestamp initTimestamp(Object o) { try { - if (o == null) { + if (o == null || o instanceof NullBiValue) { // most frequent return new Timestamp(); } else if (o instanceof String) { // second most frequent return new Timestamp((String) o); + } else if (o instanceof StringBiValue) { + return new Timestamp(((StringBiValue) o).javaValue()); + } else if (o instanceof TimeBiValue) { + return new Timestamp(((TimeBiValue) o).javaValue()); } else if (o instanceof JrubyTimestampExtLibrary.RubyTimestamp) { return new Timestamp(((JrubyTimestampExtLibrary.RubyTimestamp) o).getTimestamp()); } else if (o instanceof Timestamp) { return new Timestamp((Timestamp) o); + } else if (o instanceof TimestampBiValue) { + return new Timestamp(((TimestampBiValue) o).javaValue()); } else if (o instanceof DateTime) { return new Timestamp((DateTime) o); } else if (o instanceof Date) { diff --git a/logstash-core-event-java/src/main/java/com/logstash/Javafier.java b/logstash-core-event-java/src/main/java/com/logstash/Javafier.java index 76103bf29ef..ab8ec0ebbff 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Javafier.java +++ b/logstash-core-event-java/src/main/java/com/logstash/Javafier.java @@ -1,234 +1,34 @@ package com.logstash; -import com.logstash.ext.JrubyTimestampExtLibrary; -import org.joda.time.DateTime; -import org.jruby.RubyArray; -import org.jruby.RubyBignum; -import org.jruby.RubyBoolean; -import org.jruby.RubyFixnum; -import org.jruby.RubyFloat; -import org.jruby.RubyHash; -import org.jruby.RubyInteger; -import org.jruby.RubyNil; -import org.jruby.RubyString; -import org.jruby.RubySymbol; -import org.jruby.RubyTime; -import org.jruby.ext.bigdecimal.RubyBigDecimal; -import org.jruby.java.proxies.JavaProxy; -import org.jruby.java.proxies.MapJavaProxy; -import org.jruby.javasupport.JavaUtil; -import org.jruby.runtime.builtin.IRubyObject; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.logstash.bivalues.BiValue; +import com.logstash.bivalues.BiValues; public class Javafier { private static final String ERR_TEMPLATE = "Missing Ruby class handling for full class name=%s, simple name=%s"; - private static final String PROXY_ERR_TEMPLATE = "Missing Ruby class handling for full class name=%s, simple name=%s, wrapped object=%s"; - + /* + Javafier.deep() is called by getField. + When any value is added to the Event it should pass through Valuefier.convert. + deep(Object o) is the mechanism to pluck the Java value from a BiValue or convert a + ConvertedList and ConvertedMap back to ArrayList or HashMap. + */ private Javafier(){} - public static List deep(IRubyObject[] a) { - final ArrayList result = new ArrayList(); - - for (IRubyObject o : a) { - result.add(deep(o)); - } - return result; - } - - public static List deep(RubyArray a) { - return deep(a.toJavaArray()); - } - - private static HashMap deepMap(final Map map) { - final HashMap result = new HashMap(); - - for (Map.Entry entry : map.entrySet()) { - String k; - if (entry.getKey() instanceof IRubyObject) { - k = ((IRubyObject) entry.getKey()).asJavaString(); - } else { - k = String.valueOf(entry.getKey()); - } - result.put(k, deepAnything(entry.getValue())); - } - return result; - } - - private static List deepList(List a) { - final ArrayList result = new ArrayList(); - - for (Object o : a) { - result.add(deepAnything(o)); - } - return result; - } - - public static HashMap deep(RubyHash h) { - final HashMap result = new HashMap(); - - h.visitAll(new RubyHash.Visitor() { - @Override - public void visit(IRubyObject key, IRubyObject value) { - result.put(deep(key).toString(), deep(value)); + public static Object deep(Object o) { + if (o instanceof BiValue) { + return ((BiValue)o).javaValue(); + } else if(o instanceof ConvertedMap) { + return ((ConvertedMap) o).unconvert(); + } else if(o instanceof ConvertedList) { + return ((ConvertedList) o).unconvert(); + } else { + try { + return BiValues.newBiValue(o).javaValue(); + } catch (IllegalArgumentException e) { + Class cls = o.getClass(); + throw new IllegalArgumentException(String.format(ERR_TEMPLATE, cls.getName(), cls.getSimpleName())); } - }); - return result; - } - - private static Object deepAnything(Object o) { - // because, although we have a Java object (from a JavaProxy??), it may have IRubyObjects inside - if (o instanceof IRubyObject) { - return deep((IRubyObject) o); - } - if (o instanceof Map) { - return deepMap((Map) o); - } - if (o instanceof List) { - return deepList((List) o); - } - return o; - } - - public static String deep(RubyString s) { - return s.asJavaString(); - } - - public static long deep(RubyInteger i) { - return i.getLongValue(); - } - - public static long deep(RubyFixnum n) { - return n.getLongValue(); - } - - public static double deep(RubyFloat f) { - return f.getDoubleValue(); - } - - public static BigDecimal deep(RubyBigDecimal bd) { - return bd.getBigDecimalValue(); - } - - public static BigInteger deep(RubyBignum bn) { - return bn.getBigIntegerValue(); - } - - public static Timestamp deep(JrubyTimestampExtLibrary.RubyTimestamp t) { - return t.getTimestamp(); - } - - public static boolean deep(RubyBoolean b) { - return b.isTrue(); - } - - public static Object deep(RubyNil n) { - return null; - } - - public static DateTime deep(RubyTime t) { - return t.getDateTime(); - } - - public static String deep(RubySymbol s) { - return s.asJavaString(); - } - - public static Object deep(RubyBoolean.True b) { - return true; - } - - public static Object deep(RubyBoolean.False b) { - return false; - } - - private static Object deepJavaProxy(JavaProxy jp) { - Object obj = JavaUtil.unwrapJavaObject(jp); - if (obj instanceof IRubyObject[]) { - return deep((IRubyObject[])obj); - } - if (obj instanceof List) { - return deepList((List) obj); - } - Class cls = jp.getClass(); - throw new IllegalArgumentException(missingHandlerString(PROXY_ERR_TEMPLATE, cls.getName(), cls.getSimpleName(), obj.getClass().getName())); - } - - public static Object deep(IRubyObject o) { - // TODO: (colin) this enum strategy is cleaner but I am hoping that is not slower than using a instanceof cascade - Class cls = o.getClass(); - RUBYCLASS clazz; - try { - clazz = RUBYCLASS.valueOf(cls.getSimpleName()); - } catch (IllegalArgumentException e) { - throw new IllegalArgumentException(missingHandlerString(ERR_TEMPLATE, cls.getName(), cls.getSimpleName())); - } - - switch(clazz) { - case RubyArray: return deep((RubyArray)o); - case RubyHash: return deep((RubyHash)o); - case RubyString: return deep((RubyString)o); - case RubyInteger: return deep((RubyInteger)o); - case RubyFloat: return deep((RubyFloat)o); - case RubyBigDecimal: return deep((RubyBigDecimal)o); - case RubyTimestamp: return deep((JrubyTimestampExtLibrary.RubyTimestamp)o); - case RubyBoolean: return deep((RubyBoolean)o); - case RubyFixnum: return deep((RubyFixnum)o); - case RubyBignum: return deep((RubyBignum)o); - case RubyTime: return deep((RubyTime)o); - case RubySymbol: return deep((RubySymbol)o); - case RubyNil: return deep((RubyNil)o); - case True: return deep((RubyBoolean.True)o); - case False: return deep((RubyBoolean.False)o); - case MapJavaProxy: return deepMap((Map)((MapJavaProxy) o).getObject()); - case ArrayJavaProxy: return deepJavaProxy((JavaProxy) o); - case ConcreteJavaProxy: return deepJavaProxy((JavaProxy) o); } - - if (o.isNil()) { - return null; - } - - // TODO: (colin) temporary trace to spot any unhandled types - System.out.println(String.format( - "***** WARN: UNHANDLED IRubyObject full class name=%s, simple name=%s java class=%s toString=%s", - o.getMetaClass().getRealClass().getName(), - o.getClass().getSimpleName(), - o.getJavaClass().toString(), - o.toString())); - - return o.toJava(o.getJavaClass()); - } - - enum RUBYCLASS { - RubyString, - RubyInteger, - RubyFloat, - RubyBigDecimal, - RubyTimestamp, - RubyArray, - RubyHash, - RubyBoolean, - RubyFixnum, - RubyBignum, - RubyNil, - RubyTime, - RubySymbol, - True, - False, - // these proxies may wrap a java collection of IRubyObject types - MapJavaProxy, - ArrayJavaProxy, - ConcreteJavaProxy - } - - private static String missingHandlerString(String fmt, String... subs) { - return String.format(fmt, subs); } } diff --git a/logstash-core-event-java/src/main/java/com/logstash/KeyNode.java b/logstash-core-event-java/src/main/java/com/logstash/KeyNode.java index cfc46861f69..ed5ada11e7c 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/KeyNode.java +++ b/logstash-core-event-java/src/main/java/com/logstash/KeyNode.java @@ -1,6 +1,7 @@ package com.logstash; import com.fasterxml.jackson.databind.ObjectMapper; +import com.logstash.bivalues.BiValue; import java.io.IOException; import java.util.List; @@ -58,6 +59,9 @@ public static String join(List list, String delim) { private static String toString(Object value, String delim) { if (value == null) return ""; if (value instanceof List) return join((List)value, delim); + if (value instanceof BiValue) { + return ((BiValue) value).toString(); + } return value.toString(); } } \ No newline at end of file diff --git a/logstash-core-event-java/src/main/java/com/logstash/Rubyfier.java b/logstash-core-event-java/src/main/java/com/logstash/Rubyfier.java index 0bafab8c9da..7f32ab96027 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Rubyfier.java +++ b/logstash-core-event-java/src/main/java/com/logstash/Rubyfier.java @@ -1,65 +1,59 @@ package com.logstash; -import com.logstash.ext.JrubyTimestampExtLibrary; +import com.logstash.bivalues.BiValue; +import com.logstash.bivalues.BiValues; import org.jruby.Ruby; import org.jruby.RubyArray; import org.jruby.RubyHash; -import org.jruby.ext.bigdecimal.RubyBigDecimal; -import org.jruby.javasupport.JavaUtil; import org.jruby.runtime.builtin.IRubyObject; -import java.math.BigDecimal; -import java.util.*; +import java.util.Collection; +import java.util.List; +import java.util.Map; public final class Rubyfier { - - private Rubyfier(){} - - public static IRubyObject deep(Ruby runtime, final Object input) { - if (input instanceof IRubyObject) return (IRubyObject)input; - if (input instanceof Map) return deepMap(runtime, (Map) input); - if (input instanceof List) return deepList(runtime, (List) input); - if (input instanceof Timestamp) return JrubyTimestampExtLibrary.RubyTimestamp.newRubyTimestamp(runtime, (Timestamp)input); - if (input instanceof Collection) throw new ClassCastException("unexpected Collection type " + input.getClass()); - - // BigDecimal is not currenly handled by JRuby and this is the type Jackson uses for floats - if (input instanceof BigDecimal) return new RubyBigDecimal(runtime, runtime.getClass("BigDecimal"), (BigDecimal)input); - - return JavaUtil.convertJavaToUsableRubyObject(runtime, input); + private static final String ERR_TEMPLATE = "Missing Java class handling for full class name=%s, simple name=%s"; + /* + Rubyfier.deep() is called by JrubyEventExtLibrary RubyEvent ruby_get_field, + ruby_remove, ruby_to_hash and ruby_to_hash_with_metadata. + When any value is added to the Event it should pass through Valuefier.convert. + Rubyfier.deep is the mechanism to pluck the Ruby value from a BiValue or convert a + ConvertedList and ConvertedMap back to RubyArray or RubyHash. + However, IRubyObjects and the RUby runtime do not belong in ConvertedMap or ConvertedList + so they are unconverted here. + */ + private Rubyfier() { } - public static Object deepOnly(Ruby runtime, final Object input) { + public static IRubyObject deep(Ruby runtime, final Object input) { + if (input instanceof BiValue) return ((BiValue) input).rubyValue(runtime); if (input instanceof Map) return deepMap(runtime, (Map) input); if (input instanceof List) return deepList(runtime, (List) input); - if (input instanceof Timestamp) return JrubyTimestampExtLibrary.RubyTimestamp.newRubyTimestamp(runtime, (Timestamp)input); - if (input instanceof Collection) throw new ClassCastException("unexpected Collection type " + input.getClass()); - - // BigDecimal is not currenly handled by JRuby and this is the type Jackson uses for floats - if (input instanceof BigDecimal) return new RubyBigDecimal(runtime, runtime.getClass("BigDecimal"), (BigDecimal)input); + if (input instanceof Collection) throw new ClassCastException("Unexpected Collection type " + input.getClass()); - return input; + try { + return BiValues.newBiValue(input).rubyValue(runtime); + } catch (IllegalArgumentException e) { + Class cls = input.getClass(); + throw new IllegalArgumentException(String.format(ERR_TEMPLATE, cls.getName(), cls.getSimpleName())); + } } private static RubyArray deepList(Ruby runtime, final List list) { final int length = list.size(); final RubyArray array = runtime.newArray(length); - for (Object item : list) { - // use deepOnly because RubyArray.add already calls JavaUtil.convertJavaToUsableRubyObject on item - array.add(deepOnly(runtime, item)); + array.add(deep(runtime, item)); } - return array; } private static RubyHash deepMap(Ruby runtime, final Map map) { RubyHash hash = RubyHash.newHash(runtime); - - for (Map.Entry entry : map.entrySet()) { - // use deepOnly on value because RubyHash.put already calls JavaUtil.convertJavaToUsableRubyObject on items - hash.put(entry.getKey(), deepOnly(runtime, entry.getValue())); + for (Map.Entry entry : map.entrySet()) { + // Note: RubyHash.put calls JavaUtil.convertJavaToUsableRubyObject on keys and values + hash.put(entry.getKey(), deep(runtime, entry.getValue())); } - return hash; } } diff --git a/logstash-core-event-java/src/main/java/com/logstash/Valuefier.java b/logstash-core-event-java/src/main/java/com/logstash/Valuefier.java new file mode 100644 index 00000000000..ea2b55b8a38 --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/Valuefier.java @@ -0,0 +1,92 @@ +package com.logstash; + +import com.logstash.bivalues.BiValue; +import com.logstash.bivalues.BiValues; +import com.logstash.ext.JrubyTimestampExtLibrary; +import org.joda.time.DateTime; +import org.jruby.RubyArray; +import org.jruby.RubyHash; +import org.jruby.RubyTime; +import org.jruby.java.proxies.ArrayJavaProxy; +import org.jruby.java.proxies.ConcreteJavaProxy; +import org.jruby.java.proxies.JavaProxy; +import org.jruby.java.proxies.MapJavaProxy; +import org.jruby.javasupport.JavaUtil; +import org.jruby.runtime.builtin.IRubyObject; + +import java.util.List; +import java.util.Map; + +public class Valuefier { + private static final String PROXY_ERR_TEMPLATE = "Missing Valuefier handling for full class name=%s, simple name=%s, wrapped object=%s"; + private static final String ERR_TEMPLATE = "Missing Valuefier handling for full class name=%s, simple name=%s"; + + private Valuefier(){} + + private static Object convertJavaProxy(JavaProxy jp) { + Object obj = JavaUtil.unwrapJavaObject(jp); + if (obj instanceof IRubyObject[]) { + ConvertedList list = new ConvertedList<>(); + for (IRubyObject ro : ((IRubyObject[]) obj)) { + list.add(convert(ro)); + } + return list; + } + if (obj instanceof List) { + return ConvertedList.newFromList((List) obj); + } + try { + return BiValues.newBiValue(jp); + } catch (IllegalArgumentException e) { + Class cls = obj.getClass(); + throw new IllegalArgumentException(String.format(PROXY_ERR_TEMPLATE, cls.getName(), cls.getSimpleName(), obj.getClass().getName()), e); + } + } + + public static Object convertNonCollection(Object o) { + try { + return BiValues.newBiValue(o); + } catch (IllegalArgumentException e) { + Class cls = o.getClass(); + throw new IllegalArgumentException(String.format(ERR_TEMPLATE, cls.getName(), cls.getSimpleName()), e); + } + } + + public static Object convert(Object o) throws IllegalArgumentException { + if (o instanceof ConvertedMap || o instanceof ConvertedList) { + return o; + } + if (o instanceof BiValue) { + return o; + } + if (o instanceof RubyHash) { + return ConvertedMap.newFromRubyHash((RubyHash) o); + } + if (o instanceof RubyArray) { + return ConvertedList.newFromRubyArray((RubyArray) o); + } + if (o instanceof Map) { + return ConvertedMap.newFromMap((Map) o); + } + if (o instanceof List) { + return ConvertedList.newFromList((List) o); + } + if (o instanceof MapJavaProxy){ + return ConvertedMap.newFromMap((Map)((MapJavaProxy) o).getObject()); + } + if (o instanceof ArrayJavaProxy || o instanceof ConcreteJavaProxy){ + return convertJavaProxy((JavaProxy) o); + } + if (o instanceof RubyTime) { + RubyTime time = (RubyTime) o; + Timestamp ts = new Timestamp(time.getDateTime()); + JrubyTimestampExtLibrary.RubyTimestamp rts = JrubyTimestampExtLibrary.RubyTimestamp.newRubyTimestamp(time.getRuntime(), ts); + return convertNonCollection(rts); + } + if (o instanceof DateTime) { + Timestamp ts = new Timestamp((DateTime) o); + return convertNonCollection(ts); + } + return convertNonCollection(o); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValue.java new file mode 100644 index 00000000000..1eab0cd359e --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValue.java @@ -0,0 +1,18 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.runtime.builtin.IRubyObject; + +public interface BiValue { + IRubyObject rubyValue(Ruby runtime); + + J javaValue(); + + R rubyValueUnconverted(); + + boolean hasRubyValue(); + + boolean hasJavaValue(); +} + + diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValueCommon.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValueCommon.java new file mode 100644 index 00000000000..b8759f27d5c --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValueCommon.java @@ -0,0 +1,110 @@ +package com.logstash.bivalues; + +import com.fasterxml.jackson.annotation.JsonValue; +import org.jruby.Ruby; +import org.jruby.runtime.builtin.IRubyObject; + +import java.io.InvalidObjectException; +import java.io.ObjectInputStream; +import java.io.ObjectStreamException; +import java.io.Serializable; + +public abstract class BiValueCommon implements Serializable { + protected transient R rubyValue; + protected J javaValue; + + public R rubyValue(Ruby runtime) { + if (hasRubyValue()) { + return rubyValue; + } + addRuby(runtime); + return rubyValue; + } + + @JsonValue + public J javaValue() { + if (javaValue == null) { + addJava(); + } + return javaValue; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + + if (hasJavaValue() && javaValue.getClass().isAssignableFrom(o.getClass())){ + return javaValue.equals(o); + } + + if(!(o instanceof BiValue)) { + return false; + } + + BiValueCommon other = (BiValueCommon) o; + + return (other.hasJavaValue() && other.javaValue().equals(javaValue)) || + (other.hasRubyValue() && other.rubyValueUnconverted().equals(rubyValue)); + + } + + @Override + public int hashCode() { + if (hasRubyValue()) { + return rubyValue.hashCode(); + } + if (hasJavaValue()) { + return javaValue.hashCode(); + } + return 0; + } + + public R rubyValueUnconverted() { + return rubyValue; + } + + public boolean hasRubyValue() { + return null != rubyValue; + } + + public boolean hasJavaValue() { + return null != javaValue; + } + + protected abstract void addRuby(Ruby runtime); + + protected abstract void addJava(); + + @Override + public String toString() { + if (hasRubyValue()) { + javaValue(); + } + if (javaValue == null) { + return ""; + } + return String.valueOf(javaValue); + } + + protected static Object newProxy(BiValue instance) { + return new SerializationProxy(instance); + } + + private static class SerializationProxy implements Serializable { + private static final long serialVersionUID = -1749700725129586973L; + + private final Object javaValue; + + public SerializationProxy(BiValue o) { + javaValue = o.javaValue(); // ensure the javaValue is converted from a ruby one if it exists + } + + private Object readResolve() throws ObjectStreamException { + return BiValues.newBiValue(javaValue); + } + } + + private void readObject(ObjectInputStream stream) throws InvalidObjectException { + throw new InvalidObjectException("Proxy required"); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValues.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValues.java new file mode 100644 index 00000000000..df1ffbfaebc --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValues.java @@ -0,0 +1,203 @@ +package com.logstash.bivalues; + +import com.logstash.Timestamp; +import com.logstash.ext.JrubyTimestampExtLibrary.RubyTimestamp; +import org.jruby.RubyBignum; +import org.jruby.RubyBoolean; +import org.jruby.RubyFloat; +import org.jruby.RubyInteger; +import org.jruby.RubyNil; +import org.jruby.RubyString; +import org.jruby.RubySymbol; +import org.jruby.ext.bigdecimal.RubyBigDecimal; +import org.jruby.java.proxies.JavaProxy; +import org.jruby.runtime.builtin.IRubyObject; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.HashMap; + +public enum BiValues { + COM_LOGSTASH_EXT_JRUBYTIMESTAMPEXTLIBRARY$RUBYTIMESTAMP(BiValueType.TIMESTAMP), + COM_LOGSTASH_TIMESTAMP(BiValueType.TIMESTAMP), + JAVA_LANG_BOOLEAN(BiValueType.BOOLEAN), + JAVA_LANG_DOUBLE(BiValueType.DOUBLE), + JAVA_LANG_FLOAT(BiValueType.FLOAT), + JAVA_LANG_INTEGER(BiValueType.INT), + JAVA_LANG_LONG(BiValueType.LONG), + JAVA_LANG_STRING(BiValueType.STRING), + JAVA_MATH_BIGDECIMAL(BiValueType.DECIMAL), + JAVA_MATH_BIGINTEGER(BiValueType.BIGINT), + ORG_JRUBY_EXT_BIGDECIMAL_RUBYBIGDECIMAL(BiValueType.DECIMAL), + ORG_JRUBY_JAVA_PROXIES_CONCRETEJAVAPROXY(BiValueType.JAVAPROXY), + ORG_JRUBY_RUBYBIGNUM(BiValueType.BIGINT), + ORG_JRUBY_RUBYBOOLEAN$FALSE(BiValueType.BOOLEAN), + ORG_JRUBY_RUBYBOOLEAN$TRUE(BiValueType.BOOLEAN), + ORG_JRUBY_RUBYBOOLEAN(BiValueType.BOOLEAN), + ORG_JRUBY_RUBYFIXNUM(BiValueType.LONG), + ORG_JRUBY_RUBYFLOAT(BiValueType.DOUBLE), + ORG_JRUBY_RUBYINTEGER(BiValueType.LONG), + ORG_JRUBY_RUBYNIL(BiValueType.NULL), + ORG_JRUBY_RUBYSTRING(BiValueType.STRING), + ORG_JRUBY_RUBYSYMBOL(BiValueType.SYMBOL), // one way conversion, a Java string will use STRING + NULL(BiValueType.NULL); + + private static HashMap initCache() { + HashMap hm = new HashMap<>(); + hm.put("com.logstash.Timestamp", "COM_LOGSTASH_TIMESTAMP"); + hm.put("com.logstash.ext.JrubyTimestampExtLibrary$RubyTimestamp", "COM_LOGSTASH_EXT_JRUBYTIMESTAMPEXTLIBRARY$RUBYTIMESTAMP"); + hm.put("java.lang.Boolean", "JAVA_LANG_BOOLEAN"); + hm.put("java.lang.Double", "JAVA_LANG_DOUBLE"); + hm.put("java.lang.Float", "JAVA_LANG_FLOAT"); + hm.put("java.lang.Integer", "JAVA_LANG_INTEGER"); + hm.put("java.lang.Long", "JAVA_LANG_LONG"); + hm.put("java.lang.String", "JAVA_LANG_STRING"); + hm.put("java.math.BigDecimal", "JAVA_MATH_BIGDECIMAL"); + hm.put("java.math.BigInteger", "JAVA_MATH_BIGINTEGER"); + hm.put("org.jruby.RubyBignum", "ORG_JRUBY_RUBYBIGNUM"); + hm.put("org.jruby.RubyBoolean", "ORG_JRUBY_RUBYBOOLEAN"); + hm.put("org.jruby.RubyBoolean$False", "ORG_JRUBY_RUBYBOOLEAN$FALSE"); + hm.put("org.jruby.RubyBoolean$True", "ORG_JRUBY_RUBYBOOLEAN$TRUE"); + hm.put("org.jruby.RubyFixnum", "ORG_JRUBY_RUBYFIXNUM"); + hm.put("org.jruby.RubyFloat", "ORG_JRUBY_RUBYFLOAT"); + hm.put("org.jruby.RubyInteger", "ORG_JRUBY_RUBYINTEGER"); + hm.put("org.jruby.RubyNil", "ORG_JRUBY_RUBYNIL"); + hm.put("org.jruby.RubyString", "ORG_JRUBY_RUBYSTRING"); + hm.put("org.jruby.RubySymbol", "ORG_JRUBY_RUBYSYMBOL"); + hm.put("org.jruby.ext.bigdecimal.RubyBigDecimal", "ORG_JRUBY_EXT_BIGDECIMAL_RUBYBIGDECIMAL"); + hm.put("org.jruby.java.proxies.ConcreteJavaProxy", "ORG_JRUBY_JAVA_PROXIES_CONCRETEJAVAPROXY"); + return hm; + } + + private final BiValueType biValueType; + + BiValues(BiValueType biValueType) { + this.biValueType = biValueType; + } + + private static final HashMap nameCache = initCache(); + + private BiValue build(Object value) { + return biValueType.build(value); + } + + public static BiValue newBiValue(Object o) { + if (o == null){ + return NULL.build(null); + } + BiValues bvs = valueOf(fetchName(o)); + return bvs.build(o); + } + + private static String fetchName(Object o) { + String cls = o.getClass().getName(); + if (nameCache.containsKey(cls)) { + return nameCache.get(cls); + } + String toCache = cls.toUpperCase().replace('.', '_'); + // TODO[Guy] log warn that we are seeing a uncached value + nameCache.put(cls, toCache); + return toCache; + } + + private enum BiValueType { + STRING { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new StringBiValue((RubyString) value); + } + return new StringBiValue((String) value); + } + }, + SYMBOL { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new SymbolBiValue((RubySymbol) value); + } + return new SymbolBiValue((String) value); + } + }, + LONG { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new LongBiValue((RubyInteger) value); + } + return new LongBiValue((Long) value); + } + }, + INT { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new IntegerBiValue((RubyInteger) value); + } + return new IntegerBiValue((Integer) value); + } + }, + DOUBLE { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new DoubleBiValue((RubyFloat) value); + } + return new DoubleBiValue((Double) value); + } + }, + FLOAT { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new DoubleBiValue((RubyFloat) value); + } + return new FloatBiValue((Float) value); + } + }, + DECIMAL { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new BigDecimalBiValue((RubyBigDecimal) value); + } + return new BigDecimalBiValue((BigDecimal) value); + } + }, + BOOLEAN { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new BooleanBiValue((RubyBoolean) value); + } + return new BooleanBiValue((Boolean) value); + } + }, + TIMESTAMP { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new TimestampBiValue((RubyTimestamp) value); + } + return new TimestampBiValue((Timestamp) value); + } + }, + NULL { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new NullBiValue((RubyNil) value); + } + return NullBiValue.newNullBiValue(); + } + }, + BIGINT { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new BigIntegerBiValue((RubyBignum) value); + } + return new BigIntegerBiValue((BigInteger) value); + } + }, + JAVAPROXY { + BiValue build(Object value) { + if (value instanceof IRubyObject) { + return new JavaProxyBiValue((JavaProxy) value); + } + return new JavaProxyBiValue(value); + } + }; + abstract BiValue build(Object value); + } + +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BigDecimalBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BigDecimalBiValue.java new file mode 100644 index 00000000000..77a41d3619c --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BigDecimalBiValue.java @@ -0,0 +1,36 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.ext.bigdecimal.RubyBigDecimal; + +import java.io.ObjectStreamException; +import java.math.BigDecimal; + +public class BigDecimalBiValue extends BiValueCommon implements BiValue { + + public BigDecimalBiValue(RubyBigDecimal rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public BigDecimalBiValue(BigDecimal javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private BigDecimalBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = new RubyBigDecimal(runtime, runtime.getClass("BigDecimal"), javaValue); + } + + protected void addJava() { + javaValue = rubyValue.getBigDecimalValue(); + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BigIntegerBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BigIntegerBiValue.java new file mode 100644 index 00000000000..e4760ac85bf --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BigIntegerBiValue.java @@ -0,0 +1,36 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.RubyBignum; + +import java.io.ObjectStreamException; +import java.math.BigInteger; + +public class BigIntegerBiValue extends BiValueCommon implements BiValue { + + public BigIntegerBiValue(RubyBignum rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public BigIntegerBiValue(BigInteger javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private BigIntegerBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = new RubyBignum(runtime, javaValue); + } + + protected void addJava() { + javaValue = rubyValue.getValue(); + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BooleanBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BooleanBiValue.java new file mode 100644 index 00000000000..aab70dcef52 --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/BooleanBiValue.java @@ -0,0 +1,36 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.RubyBoolean; + +import java.io.ObjectStreamException; + + +public class BooleanBiValue extends BiValueCommon implements BiValue { + + public BooleanBiValue(RubyBoolean rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public BooleanBiValue(Boolean javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private BooleanBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = RubyBoolean.newBoolean(runtime, javaValue); + } + + protected void addJava() { + javaValue = rubyValue.isTrue(); + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/DoubleBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/DoubleBiValue.java new file mode 100644 index 00000000000..7a39ea13523 --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/DoubleBiValue.java @@ -0,0 +1,36 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.RubyFloat; + +import java.io.ObjectStreamException; + + +public class DoubleBiValue extends BiValueCommon implements BiValue { + + public DoubleBiValue(RubyFloat rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public DoubleBiValue(Double javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private DoubleBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = RubyFloat.newFloat(runtime, javaValue); + } + + protected void addJava() { + javaValue = rubyValue.getDoubleValue(); + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/FloatBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/FloatBiValue.java new file mode 100644 index 00000000000..d33a38bcba1 --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/FloatBiValue.java @@ -0,0 +1,40 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.RubyFloat; + +import java.io.ObjectStreamException; + + +public class FloatBiValue extends BiValueCommon implements BiValue { + + public FloatBiValue(RubyFloat rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public FloatBiValue(Float javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private FloatBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = RubyFloat.newFloat(runtime, (double)javaValue); + } + + protected void addJava() { + double value = rubyValue.getDoubleValue(); + if ((float) value != value) { + throw new ArithmeticException("Float overflow - Incorrect FloatBiValue usage: BiValues should pick DoubleBiValue for RubyFloat"); + } + javaValue = (float) value; + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/IntegerBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/IntegerBiValue.java new file mode 100644 index 00000000000..30ad9d43dec --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/IntegerBiValue.java @@ -0,0 +1,40 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.RubyInteger; +import org.jruby.javasupport.JavaUtil; + +import java.io.ObjectStreamException; + +public class IntegerBiValue extends BiValueCommon implements BiValue { + + public IntegerBiValue(RubyInteger rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public IntegerBiValue(int javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private IntegerBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = (RubyInteger) JavaUtil.convertJavaToUsableRubyObject(runtime, javaValue); + } + + protected void addJava() { + long value = rubyValue.getLongValue(); + if ((int) value != value) { + throw new ArithmeticException("Integer overflow - Incorrect IntegerBiValue usage: BiValues should pick LongBiValue for RubyInteger"); + } + javaValue = (int) value; + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/JavaProxyBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/JavaProxyBiValue.java new file mode 100644 index 00000000000..e18c0a5540f --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/JavaProxyBiValue.java @@ -0,0 +1,36 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.java.proxies.JavaProxy; +import org.jruby.javasupport.JavaUtil; + +import java.io.ObjectStreamException; + +public class JavaProxyBiValue extends BiValueCommon implements BiValue { + + public JavaProxyBiValue(JavaProxy rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public JavaProxyBiValue(Object javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private JavaProxyBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = (JavaProxy) JavaUtil.convertJavaToUsableRubyObject(runtime, javaValue); + } + + protected void addJava() { + javaValue = rubyValue.getObject(); + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/LongBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/LongBiValue.java new file mode 100644 index 00000000000..97f5285f3db --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/LongBiValue.java @@ -0,0 +1,36 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.RubyInteger; +import org.jruby.javasupport.JavaUtil; + +import java.io.ObjectStreamException; + +public class LongBiValue extends BiValueCommon implements BiValue { + + public LongBiValue(RubyInteger rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public LongBiValue(long javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private LongBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = (RubyInteger) JavaUtil.convertJavaToUsableRubyObject(runtime, javaValue); + } + + protected void addJava() { + javaValue = rubyValue.getLongValue(); + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/NullBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/NullBiValue.java new file mode 100644 index 00000000000..285d304e483 --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/NullBiValue.java @@ -0,0 +1,45 @@ +package com.logstash.bivalues; + +import com.fasterxml.jackson.annotation.JsonValue; +import org.jruby.Ruby; +import org.jruby.RubyNil; + +import java.io.ObjectStreamException; + +public class NullBiValue extends BiValueCommon implements BiValue { + public static NullBiValue newNullBiValue() { + return new NullBiValue(); + } + + public NullBiValue(RubyNil rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + private NullBiValue() { + rubyValue = null; + javaValue = null; + } + + @JsonValue + @Override + public Object javaValue() { + return null; + } + + @Override + public boolean hasJavaValue() { + return true; + } + + protected void addRuby(Ruby runtime) { + rubyValue = (RubyNil) runtime.getNil(); + } + + protected void addJava() {} + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/StringBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/StringBiValue.java new file mode 100644 index 00000000000..664f51ddc27 --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/StringBiValue.java @@ -0,0 +1,35 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.RubyString; + +import java.io.ObjectStreamException; + +public class StringBiValue extends BiValueCommon implements BiValue { + + public StringBiValue(RubyString rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public StringBiValue(String javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private StringBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = RubyString.newUnicodeString(runtime, javaValue); + } + + protected void addJava() { + javaValue = rubyValue.asJavaString(); + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/SymbolBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/SymbolBiValue.java new file mode 100644 index 00000000000..db5da434106 --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/SymbolBiValue.java @@ -0,0 +1,35 @@ +package com.logstash.bivalues; + +import org.jruby.Ruby; +import org.jruby.RubySymbol; + +import java.io.ObjectStreamException; + +public class SymbolBiValue extends BiValueCommon implements BiValue { + + public SymbolBiValue(RubySymbol rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public SymbolBiValue(String javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private SymbolBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = RubySymbol.newSymbol(runtime, javaValue); + } + + protected void addJava() { + javaValue = rubyValue.asJavaString(); + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/TimeBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/TimeBiValue.java new file mode 100644 index 00000000000..548ecd61d28 --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/TimeBiValue.java @@ -0,0 +1,37 @@ +package com.logstash.bivalues; + +import org.joda.time.DateTime; +import org.jruby.Ruby; +import org.jruby.RubyTime; + +import java.io.ObjectStreamException; + + +public class TimeBiValue extends BiValueCommon implements BiValue { + + public TimeBiValue(RubyTime rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public TimeBiValue(DateTime javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private TimeBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = RubyTime.newTime(runtime, javaValue); + } + + protected void addJava() { + javaValue = rubyValue.getDateTime(); + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/TimestampBiValue.java b/logstash-core-event-java/src/main/java/com/logstash/bivalues/TimestampBiValue.java new file mode 100644 index 00000000000..59b844a20b2 --- /dev/null +++ b/logstash-core-event-java/src/main/java/com/logstash/bivalues/TimestampBiValue.java @@ -0,0 +1,36 @@ +package com.logstash.bivalues; + +import com.logstash.Timestamp; +import com.logstash.ext.JrubyTimestampExtLibrary.RubyTimestamp; +import org.jruby.Ruby; + +import java.io.ObjectStreamException; + +public class TimestampBiValue extends BiValueCommon implements BiValue { + + public TimestampBiValue(RubyTimestamp rubyValue) { + this.rubyValue = rubyValue; + javaValue = null; + } + + public TimestampBiValue(Timestamp javaValue) { + this.javaValue = javaValue; + rubyValue = null; + } + + private TimestampBiValue() { + } + + protected void addRuby(Ruby runtime) { + rubyValue = RubyTimestamp.newRubyTimestamp(runtime, (Timestamp) javaValue); + } + + protected void addJava() { + javaValue = rubyValue.getTimestamp(); + } + + // Called when object is to be serialized on a stream to allow the object to substitute a proxy for itself. + private Object writeReplace() throws ObjectStreamException { + return newProxy(this); + } +} diff --git a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java index d468def96dd..6c533f663e7 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java +++ b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java @@ -1,22 +1,7 @@ package com.logstash.ext; -import com.logstash.Logger; -import com.logstash.Event; -import com.logstash.PathCache; -import com.logstash.Javafier; -import com.logstash.Timestamp; -import com.logstash.Rubyfier; -import com.logstash.Javafier; -import org.jruby.Ruby; -import org.jruby.RubyObject; -import org.jruby.RubyClass; -import org.jruby.RubyModule; -import org.jruby.RubyString; -import org.jruby.RubyHash; -import org.jruby.RubyBoolean; -import org.jruby.RubyArray; -import org.jruby.RubyFloat; -import org.jruby.RubyInteger; +import com.logstash.*; +import org.jruby.*; import org.jruby.anno.JRubyClass; import org.jruby.anno.JRubyMethod; import org.jruby.exceptions.RaiseException; @@ -27,12 +12,9 @@ import org.jruby.runtime.ThreadContext; import org.jruby.runtime.builtin.IRubyObject; import org.jruby.runtime.load.Library; -import org.jruby.ext.bigdecimal.RubyBigDecimal; + import java.io.IOException; import java.util.Map; -import java.util.HashMap; -import java.util.List; - public class JrubyEventExtLibrary implements Library { @@ -40,10 +22,12 @@ public class JrubyEventExtLibrary implements Library { private static RubyClass GENERATOR_ERROR = null; private static RubyClass LOGSTASH_ERROR = null; + @Override public void load(Ruby runtime, boolean wrap) throws IOException { RubyModule module = runtime.defineModule("LogStash"); RubyClass clazz = runtime.defineClassUnder("Event", runtime.getObject(), new ObjectAllocator() { + @Override public IRubyObject allocate(Ruby runtime, RubyClass rubyClass) { return new RubyEvent(runtime, rubyClass); } @@ -128,9 +112,10 @@ public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) if (data == null || data.isNil()) { this.event = new Event(); } else if (data instanceof RubyHash) { - this.event = new Event(Javafier.deep((RubyHash) data)); + this.event = new Event(ConvertedMap.newFromRubyHash((RubyHash) data)); } else if (data instanceof MapJavaProxy) { - this.event = new Event((Map)((MapJavaProxy)data).getObject()); + Map m = (Map)((MapJavaProxy)data).getObject(); + this.event = new Event(ConvertedMap.newFromMap(m)); } else { throw context.runtime.newTypeError("wrong argument type " + data.getMetaClass() + " (expected Hash)"); } @@ -141,7 +126,7 @@ public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) @JRubyMethod(name = "get", required = 1) public IRubyObject ruby_get_field(ThreadContext context, RubyString reference) { - Object value = this.event.getField(reference.asJavaString()); + Object value = this.event.getUnconvertedField(reference.asJavaString()); return Rubyfier.deep(context.runtime, value); } @@ -156,7 +141,7 @@ public IRubyObject ruby_set_field(ThreadContext context, RubyString reference, I } this.event.setTimestamp(((JrubyTimestampExtLibrary.RubyTimestamp)value).getTimestamp()); } else { - this.event.setField(r, Javafier.deep(value)); + this.event.setField(r, Valuefier.convert(value)); } return value; } @@ -274,8 +259,8 @@ public IRubyObject ruby_to_json(ThreadContext context, IRubyObject[] args) } } - // @param value [String] the json string. A json object/map will convert to an array containing a single Event. - // and a json array will convert each element into individual Event + // @param value [String] the json string. A json object/map will newFromRubyArray to an array containing a single Event. + // and a json array will newFromRubyArray each element into individual Event // @return Array array of events @JRubyMethod(name = "from_json", required = 1, meta = true) public static IRubyObject ruby_from_json(ThreadContext context, IRubyObject recv, RubyString value) @@ -310,8 +295,9 @@ public static IRubyObject ruby_validate_value(ThreadContext context, IRubyObject @JRubyMethod(name = "tag", required = 1) public IRubyObject ruby_tag(ThreadContext context, RubyString value) { + //TODO(guy) should these tags be BiValues? this.event.tag(((RubyString) value).asJavaString()); - return context.runtime.getNil(); + return context.nil; } @JRubyMethod(name = "timestamp") diff --git a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyTimestampExtLibrary.java b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyTimestampExtLibrary.java index 9748a815ccb..86e0d3ef3e8 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyTimestampExtLibrary.java +++ b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyTimestampExtLibrary.java @@ -16,14 +16,22 @@ import java.io.IOException; public class JrubyTimestampExtLibrary implements Library { + + private static final ObjectAllocator ALLOCATOR = new ObjectAllocator() { + public RubyTimestamp allocate(Ruby runtime, RubyClass rubyClass) { + return new RubyTimestamp(runtime, rubyClass); + } + }; + public void load(Ruby runtime, boolean wrap) throws IOException { + createTimestamp(runtime); + } + + public static RubyClass createTimestamp(Ruby runtime) { RubyModule module = runtime.defineModule("LogStash"); - RubyClass clazz = runtime.defineClassUnder("Timestamp", runtime.getObject(), new ObjectAllocator() { - public IRubyObject allocate(Ruby runtime, RubyClass rubyClass) { - return new RubyTimestamp(runtime, rubyClass); - } - }, module); + RubyClass clazz = runtime.defineClassUnder("Timestamp", runtime.getObject(), ALLOCATOR, module); clazz.defineAnnotatedMethods(RubyTimestamp.class); + return clazz; } @JRubyClass(name = "Timestamp", parent = "Object") diff --git a/logstash-core-event-java/src/test/java/com/logstash/EventTest.java b/logstash-core-event-java/src/test/java/com/logstash/EventTest.java index 61bb4bb7a58..0177e66346d 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/EventTest.java +++ b/logstash-core-event-java/src/test/java/com/logstash/EventTest.java @@ -3,10 +3,15 @@ import org.junit.Test; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; -import static org.junit.Assert.*; import static net.javacrumbs.jsonunit.JsonAssert.assertJsonEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; public class EventTest { @Test @@ -126,7 +131,9 @@ public void testAppend() throws Exception { Event e2 = new Event(data2); e.append(e2); - assertEquals(Arrays.asList("original1", "original2"), e.getField("field1")); + assertEquals(2, ((List) e.getField("[field1]")).size()); + assertEquals("original1", e.getField("[field1][0]")); + assertEquals("original2", e.getField("[field1][1]")); } @Test diff --git a/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java b/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java index 4e0653b630d..5a6f730e4eb 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java +++ b/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java @@ -1,33 +1,12 @@ package com.logstash; -import org.jruby.Ruby; import org.jruby.RubyBignum; -import org.jruby.RubyClass; -import org.jruby.RubyMatchData; -import org.jruby.RubyString; -import org.jruby.java.proxies.ArrayJavaProxy; -import org.jruby.java.proxies.ConcreteJavaProxy; -import org.jruby.java.proxies.MapJavaProxy; -import org.jruby.javasupport.Java; -import org.jruby.runtime.builtin.IRubyObject; -import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; - import static org.junit.Assert.assertEquals; -public class JavafierTest { - public static final Ruby ruby; - static { - ruby = Ruby.getGlobalRuntime(); - } +public class JavafierTest extends TestBase { @Test public void testRubyBignum() { @@ -37,64 +16,4 @@ public void testRubyBignum() { assertEquals(BigInteger.class, result.getClass()); assertEquals( "-9223372036854776000", result.toString()); } - - @Test - public void testMapJavaProxy() { - Map map = new HashMap<>(); - map.put(RubyString.newString(ruby, "foo"), RubyString.newString(ruby, "bar")); - RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, HashMap.class); - MapJavaProxy mjp = new MapJavaProxy(ruby, proxyClass); - mjp.setObject(map); - - Object result = Javafier.deep(mjp); - assertEquals(HashMap.class, result.getClass()); - HashMap m = (HashMap) result; - assertEquals("bar", m.get("foo")); - } - - @Test - public void testArrayJavaProxy() { - IRubyObject[] array = new IRubyObject[]{RubyString.newString(ruby, "foo")}; - RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, String[].class); - ArrayJavaProxy ajp = new ArrayJavaProxy(ruby, proxyClass, array); - - Object result = Javafier.deep(ajp); - assertEquals(ArrayList.class, result.getClass()); - List a = (ArrayList) result; - assertEquals("foo", a.get(0)); - } - - @Test - public void testConcreteJavaProxy() { - List array = new ArrayList<>(); - array.add(RubyString.newString(ruby, "foo")); - RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, ArrayList.class); - ConcreteJavaProxy cjp = new ConcreteJavaProxy(ruby, proxyClass, array); - Object result = Javafier.deep(cjp); - assertEquals(ArrayList.class, result.getClass()); - List a = (ArrayList) result; - assertEquals("foo", a.get(0)); - } - - @Rule - public ExpectedException exception = ExpectedException.none(); - - @Test - public void testUnhandledObject() { - RubyMatchData md = new RubyMatchData(ruby); - exception.expect(IllegalArgumentException.class); - exception.expectMessage("Missing Ruby class handling for full class name=org.jruby.RubyMatchData, simple name=RubyMatchData"); - Javafier.deep(md); - } - - @Test - public void testUnhandledProxyObject() { - HashSet hs = new HashSet<>(); - hs.add(42); - RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, HashSet.class); - ConcreteJavaProxy cjp = new ConcreteJavaProxy(ruby, proxyClass, hs); - exception.expect(IllegalArgumentException.class); - exception.expectMessage("Missing Ruby class handling for full class name=org.jruby.java.proxies.ConcreteJavaProxy, simple name=ConcreteJavaProxy, wrapped object=java.util.HashSet"); - Javafier.deep(cjp); - } } diff --git a/logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java b/logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java index 5773ce65ae5..d8d015c739b 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java +++ b/logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java @@ -1,6 +1,11 @@ package com.logstash; -import org.jruby.*; +import org.jruby.RubyArray; +import org.jruby.RubyBignum; +import org.jruby.RubyFixnum; +import org.jruby.RubyFloat; +import org.jruby.RubyHash; +import org.jruby.RubyString; import org.jruby.ext.bigdecimal.RubyBigDecimal; import org.jruby.javasupport.JavaUtil; import org.jruby.runtime.builtin.IRubyObject; @@ -14,13 +19,13 @@ import java.util.List; import java.util.Map; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; -public class RubyfierTest { +public class RubyfierTest extends TestBase { @Test public void testDeepWithString() { - Object result = Rubyfier.deep(Ruby.getGlobalRuntime(), "foo"); + Object result = Rubyfier.deep(ruby, "foo"); assertEquals(RubyString.class, result.getClass()); assertEquals("foo", result.toString()); } @@ -31,14 +36,14 @@ public void testDeepMapWithString() { Map data = new HashMap(); data.put("foo", "bar"); - RubyHash rubyHash = ((RubyHash)Rubyfier.deep(Ruby.getGlobalRuntime(), data)); + RubyHash rubyHash = ((RubyHash)Rubyfier.deep(ruby, data)); // Hack to be able to retrieve the original, unconverted Ruby object from Map // it seems the only method providing this is internalGet but it is declared protected. // I know this is bad practice but I think this is practically acceptable. Method internalGet = RubyHash.class.getDeclaredMethod("internalGet", IRubyObject.class); internalGet.setAccessible(true); - Object result = internalGet.invoke(rubyHash, JavaUtil.convertJavaToUsableRubyObject(Ruby.getGlobalRuntime(), "foo")); + Object result = internalGet.invoke(rubyHash, JavaUtil.convertJavaToUsableRubyObject(ruby, "foo")); assertEquals(RubyString.class, result.getClass()); assertEquals("bar", result.toString()); @@ -51,16 +56,16 @@ public void testDeepListWithString() List data = new ArrayList(); data.add("foo"); - RubyArray rubyArray = ((RubyArray)Rubyfier.deep(Ruby.getGlobalRuntime(), data)); + RubyArray rubyArray = ((RubyArray)Rubyfier.deep(ruby, data)); - // toJavaArray does not convert inner elemenst to Java types \o/ + // toJavaArray does not newFromRubyArray inner elemenst to Java types \o/ assertEquals(RubyString.class, rubyArray.toJavaArray()[0].getClass()); assertEquals("foo", rubyArray.toJavaArray()[0].toString()); } @Test public void testDeepWithInteger() { - Object result = Rubyfier.deep(Ruby.getGlobalRuntime(), 1); + Object result = Rubyfier.deep(ruby, 1); assertEquals(RubyFixnum.class, result.getClass()); assertEquals(1L, ((RubyFixnum)result).getLongValue()); } @@ -71,14 +76,14 @@ public void testDeepMapWithInteger() { Map data = new HashMap(); data.put("foo", 1); - RubyHash rubyHash = ((RubyHash)Rubyfier.deep(Ruby.getGlobalRuntime(), data)); + RubyHash rubyHash = ((RubyHash)Rubyfier.deep(ruby, data)); // Hack to be able to retrieve the original, unconverted Ruby object from Map // it seems the only method providing this is internalGet but it is declared protected. // I know this is bad practice but I think this is practically acceptable. Method internalGet = RubyHash.class.getDeclaredMethod("internalGet", IRubyObject.class); internalGet.setAccessible(true); - Object result = internalGet.invoke(rubyHash, JavaUtil.convertJavaToUsableRubyObject(Ruby.getGlobalRuntime(), "foo")); + Object result = internalGet.invoke(rubyHash, JavaUtil.convertJavaToUsableRubyObject(ruby, "foo")); assertEquals(RubyFixnum.class, result.getClass()); assertEquals(1L, ((RubyFixnum)result).getLongValue()); @@ -91,16 +96,16 @@ public void testDeepListWithInteger() List data = new ArrayList(); data.add(1); - RubyArray rubyArray = ((RubyArray)Rubyfier.deep(Ruby.getGlobalRuntime(), data)); + RubyArray rubyArray = ((RubyArray)Rubyfier.deep(ruby, data)); - // toJavaArray does not convert inner elemenst to Java types \o/ + // toJavaArray does not newFromRubyArray inner elemenst to Java types \o/ assertEquals(RubyFixnum.class, rubyArray.toJavaArray()[0].getClass()); assertEquals(1L, ((RubyFixnum)rubyArray.toJavaArray()[0]).getLongValue()); } @Test public void testDeepWithFloat() { - Object result = Rubyfier.deep(Ruby.getGlobalRuntime(), 1.0F); + Object result = Rubyfier.deep(ruby, 1.0F); assertEquals(RubyFloat.class, result.getClass()); assertEquals(1.0D, ((RubyFloat)result).getDoubleValue(), 0); } @@ -111,14 +116,14 @@ public void testDeepMapWithFloat() { Map data = new HashMap(); data.put("foo", 1.0F); - RubyHash rubyHash = ((RubyHash)Rubyfier.deep(Ruby.getGlobalRuntime(), data)); + RubyHash rubyHash = ((RubyHash)Rubyfier.deep(ruby, data)); // Hack to be able to retrieve the original, unconverted Ruby object from Map // it seems the only method providing this is internalGet but it is declared protected. // I know this is bad practice but I think this is practically acceptable. Method internalGet = RubyHash.class.getDeclaredMethod("internalGet", IRubyObject.class); internalGet.setAccessible(true); - Object result = internalGet.invoke(rubyHash, JavaUtil.convertJavaToUsableRubyObject(Ruby.getGlobalRuntime(), "foo")); + Object result = internalGet.invoke(rubyHash, JavaUtil.convertJavaToUsableRubyObject(ruby, "foo")); assertEquals(RubyFloat.class, result.getClass()); assertEquals(1.0D, ((RubyFloat)result).getDoubleValue(), 0); @@ -131,16 +136,16 @@ public void testDeepListWithFloat() List data = new ArrayList(); data.add(1.0F); - RubyArray rubyArray = ((RubyArray)Rubyfier.deep(Ruby.getGlobalRuntime(), data)); + RubyArray rubyArray = ((RubyArray)Rubyfier.deep(ruby, data)); - // toJavaArray does not convert inner elemenst to Java types \o/ + // toJavaArray does not newFromRubyArray inner elemenst to Java types \o/ assertEquals(RubyFloat.class, rubyArray.toJavaArray()[0].getClass()); assertEquals(1.0D, ((RubyFloat)rubyArray.toJavaArray()[0]).getDoubleValue(), 0); } @Test public void testDeepWithDouble() { - Object result = Rubyfier.deep(Ruby.getGlobalRuntime(), 1.0D); + Object result = Rubyfier.deep(ruby, 1.0D); assertEquals(RubyFloat.class, result.getClass()); assertEquals(1.0D, ((RubyFloat)result).getDoubleValue(), 0); } @@ -151,14 +156,14 @@ public void testDeepMapWithDouble() { Map data = new HashMap(); data.put("foo", 1.0D); - RubyHash rubyHash = ((RubyHash)Rubyfier.deep(Ruby.getGlobalRuntime(), data)); + RubyHash rubyHash = ((RubyHash)Rubyfier.deep(ruby, data)); // Hack to be able to retrieve the original, unconverted Ruby object from Map // it seems the only method providing this is internalGet but it is declared protected. // I know this is bad practice but I think this is practically acceptable. Method internalGet = RubyHash.class.getDeclaredMethod("internalGet", IRubyObject.class); internalGet.setAccessible(true); - Object result = internalGet.invoke(rubyHash, JavaUtil.convertJavaToUsableRubyObject(Ruby.getGlobalRuntime(), "foo")); + Object result = internalGet.invoke(rubyHash, JavaUtil.convertJavaToUsableRubyObject(ruby, "foo")); assertEquals(RubyFloat.class, result.getClass()); assertEquals(1.0D, ((RubyFloat)result).getDoubleValue(), 0); @@ -171,16 +176,16 @@ public void testDeepListWithDouble() List data = new ArrayList(); data.add(1.0D); - RubyArray rubyArray = ((RubyArray)Rubyfier.deep(Ruby.getGlobalRuntime(), data)); + RubyArray rubyArray = ((RubyArray)Rubyfier.deep(ruby, data)); - // toJavaArray does not convert inner elemenst to Java types \o/ + // toJavaArray does not newFromRubyArray inner elemenst to Java types \o/ assertEquals(RubyFloat.class, rubyArray.toJavaArray()[0].getClass()); assertEquals(1.0D, ((RubyFloat)rubyArray.toJavaArray()[0]).getDoubleValue(), 0); } @Test public void testDeepWithBigDecimal() { - Object result = Rubyfier.deep(Ruby.getGlobalRuntime(), new BigDecimal(1)); + Object result = Rubyfier.deep(ruby, new BigDecimal(1)); assertEquals(RubyBigDecimal.class, result.getClass()); assertEquals(1.0D, ((RubyBigDecimal)result).getDoubleValue(), 0); } @@ -192,14 +197,14 @@ public void testDeepMapWithBigDecimal() Map data = new HashMap(); data.put("foo", new BigDecimal(1)); - RubyHash rubyHash = ((RubyHash)Rubyfier.deep(Ruby.getGlobalRuntime(), data)); + RubyHash rubyHash = ((RubyHash)Rubyfier.deep(ruby, data)); // Hack to be able to retrieve the original, unconverted Ruby object from Map // it seems the only method providing this is internalGet but it is declared protected. // I know this is bad practice but I think this is practically acceptable. Method internalGet = RubyHash.class.getDeclaredMethod("internalGet", IRubyObject.class); internalGet.setAccessible(true); - Object result = internalGet.invoke(rubyHash, JavaUtil.convertJavaToUsableRubyObject(Ruby.getGlobalRuntime(), "foo")); + Object result = internalGet.invoke(rubyHash, JavaUtil.convertJavaToUsableRubyObject(ruby, "foo")); assertEquals(RubyBigDecimal.class, result.getClass()); assertEquals(1.0D, ((RubyBigDecimal)result).getDoubleValue(), 0); @@ -212,9 +217,9 @@ public void testDeepListWithBigDecimal() List data = new ArrayList(); data.add(new BigDecimal(1)); - RubyArray rubyArray = ((RubyArray)Rubyfier.deep(Ruby.getGlobalRuntime(), data)); + RubyArray rubyArray = ((RubyArray)Rubyfier.deep(ruby, data)); - // toJavaArray does not convert inner elemenst to Java types \o/ + // toJavaArray does not newFromRubyArray inner elemenst to Java types \o/ assertEquals(RubyBigDecimal.class, rubyArray.toJavaArray()[0].getClass()); assertEquals(1.0D, ((RubyBigDecimal)rubyArray.toJavaArray()[0]).getDoubleValue(), 0); } @@ -222,7 +227,7 @@ public void testDeepListWithBigDecimal() @Test public void testDeepWithBigInteger() { - Object result = Rubyfier.deep(Ruby.getGlobalRuntime(), new BigInteger("1")); + Object result = Rubyfier.deep(ruby, new BigInteger("1")); assertEquals(RubyBignum.class, result.getClass()); assertEquals(1L, ((RubyBignum)result).getLongValue()); } diff --git a/logstash-core-event-java/src/test/java/com/logstash/TestBase.java b/logstash-core-event-java/src/test/java/com/logstash/TestBase.java new file mode 100644 index 00000000000..47e2ef73c64 --- /dev/null +++ b/logstash-core-event-java/src/test/java/com/logstash/TestBase.java @@ -0,0 +1,25 @@ +package com.logstash; + +import com.logstash.ext.JrubyTimestampExtLibrary; +import org.jruby.CompatVersion; +import org.jruby.Ruby; +import org.jruby.RubyInstanceConfig; +import org.jruby.ext.bigdecimal.RubyBigDecimal; +import org.junit.Before; + +public abstract class TestBase { + private static boolean setupDone = false; + public static Ruby ruby; + + @Before + public void setUp() throws Exception { + if (setupDone) return; + + RubyInstanceConfig config_19 = new RubyInstanceConfig(); + config_19.setCompatVersion(CompatVersion.RUBY1_9); + ruby = Ruby.newInstance(config_19); + RubyBigDecimal.createBigDecimal(ruby); // we need to do 'require "bigdecimal"' + JrubyTimestampExtLibrary.createTimestamp(ruby); + setupDone = true; + } +} diff --git a/logstash-core-event-java/src/test/java/com/logstash/ValuefierTest.java b/logstash-core-event-java/src/test/java/com/logstash/ValuefierTest.java new file mode 100644 index 00000000000..ff00cafb1c6 --- /dev/null +++ b/logstash-core-event-java/src/test/java/com/logstash/ValuefierTest.java @@ -0,0 +1,113 @@ +package com.logstash; + +import com.logstash.bivalues.BiValue; +import com.logstash.bivalues.BiValues; +import com.logstash.bivalues.TimestampBiValue; +import org.joda.time.DateTime; +import org.jruby.RubyClass; +import org.jruby.RubyMatchData; +import org.jruby.RubyString; +import org.jruby.RubyTime; +import org.jruby.java.proxies.ArrayJavaProxy; +import org.jruby.java.proxies.ConcreteJavaProxy; +import org.jruby.java.proxies.MapJavaProxy; +import org.jruby.javasupport.Java; +import org.jruby.runtime.builtin.IRubyObject; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import static junit.framework.TestCase.assertEquals; + +public class ValuefierTest extends TestBase { + @Test + public void testMapJavaProxy() { + Map map = new HashMap<>(); + map.put(RubyString.newString(ruby, "foo"), RubyString.newString(ruby, "bar")); + RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, HashMap.class); + MapJavaProxy mjp = new MapJavaProxy(ruby, proxyClass); + mjp.setObject(map); + + Object result = Valuefier.convert(mjp); + assertEquals(ConvertedMap.class, result.getClass()); + ConvertedMap m = (ConvertedMap) result; + BiValue bv = BiValues.newBiValue("bar"); + assertEquals(bv.javaValue(), ((BiValue) m.get("foo")).javaValue()); + } + + @Test + public void testArrayJavaProxy() { + IRubyObject[] array = new IRubyObject[]{RubyString.newString(ruby, "foo")}; + RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, String[].class); + ArrayJavaProxy ajp = new ArrayJavaProxy(ruby, proxyClass, array); + + Object result = Valuefier.convert(ajp); + assertEquals(ConvertedList.class, result.getClass()); + List a = (ConvertedList) result; + BiValue bv = BiValues.newBiValue("foo"); + assertEquals(bv.javaValue(), ((BiValue) a.get(0)).javaValue()); + } + + @Test + public void testConcreteJavaProxy() { + List array = new ArrayList<>(); + array.add(RubyString.newString(ruby, "foo")); + RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, ArrayList.class); + ConcreteJavaProxy cjp = new ConcreteJavaProxy(ruby, proxyClass, array); + Object result = Valuefier.convert(cjp); + assertEquals(ConvertedList.class, result.getClass()); + List a = (ConvertedList) result; + BiValue bv = BiValues.newBiValue("foo"); + assertEquals(bv.javaValue(), ((BiValue) a.get(0)).javaValue()); + } + + @Test + public void testRubyTime() { + RubyTime ro = RubyTime.newTime(ruby, DateTime.now()); + Object result = Valuefier.convert(ro); + + assertEquals(TimestampBiValue.class, result.getClass()); + } + + @Test + public void testJodaDateTIme() { + DateTime jo = DateTime.now(); + Object result = Valuefier.convert(jo); + + assertEquals(TimestampBiValue.class, result.getClass()); + } + + @Rule + public ExpectedException exception = ExpectedException.none(); + + @Test + public void testUnhandledObject() { + RubyMatchData md = new RubyMatchData(ruby); + exception.expect(IllegalArgumentException.class); + exception.expectMessage("Missing Valuefier handling for full class name=org.jruby.RubyMatchData, simple name=RubyMatchData"); + Valuefier.convert(md); + } + + @Test + public void testUnhandledProxyObject() { + HashSet hs = new HashSet<>(); + hs.add(42); + RubyClass proxyClass = (RubyClass) Java.getProxyClass(ruby, HashSet.class); + ConcreteJavaProxy cjp = new ConcreteJavaProxy(ruby, proxyClass, hs); + BiValue result = (BiValue) Valuefier.convert(cjp); + assertEquals(hs, result.javaValue()); + } + + @Test + public void scratch() { + String[] parts = "foo/1_4".split("\\W|_"); + int ord = Integer.valueOf(parts[1]); + assertEquals(ord, 1); + } +} diff --git a/logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValueTest.java b/logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValueTest.java new file mode 100644 index 00000000000..12ec50a128b --- /dev/null +++ b/logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValueTest.java @@ -0,0 +1,215 @@ +package com.logstash.bivalues; + +import com.logstash.TestBase; +import org.joda.time.DateTime; +import org.jruby.RubyBignum; +import org.jruby.RubyBoolean; +import org.jruby.RubyFixnum; +import org.jruby.RubyFloat; +import org.jruby.RubyInteger; +import org.jruby.RubyNil; +import org.jruby.RubyString; +import org.jruby.RubySymbol; +import org.jruby.RubyTime; +import org.jruby.ext.bigdecimal.RubyBigDecimal; +import org.junit.Test; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.math.BigDecimal; +import java.math.BigInteger; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +public class BiValueTest extends TestBase { + @Test + public void testStringBiValueFromRuby() { + String s = "foo bar baz"; + StringBiValue subject = new StringBiValue(RubyString.newString(ruby, s)); + assertTrue(subject.hasRubyValue()); + assertFalse(subject.hasJavaValue()); + assertEquals(s, subject.javaValue()); + } + + @Test + public void testStringBiValueFromJava() { + RubyString v = RubyString.newString(ruby, "foo bar baz"); + StringBiValue subject = new StringBiValue("foo bar baz"); + assertFalse(subject.hasRubyValue()); + assertTrue(subject.hasJavaValue()); + assertEquals(v, subject.rubyValue(ruby)); + } + + @Test + public void testSymbolBiValueFromRuby() { + String s = "foo"; + SymbolBiValue subject = new SymbolBiValue(RubySymbol.newSymbol(ruby, s)); + assertTrue(subject.hasRubyValue()); + assertFalse(subject.hasJavaValue()); + assertEquals(s, subject.javaValue()); + } + + @Test + public void testLongBiValueFromRuby() { + Long s = 123456789L; + LongBiValue subject = new LongBiValue(RubyFixnum.newFixnum(ruby, s)); + assertTrue(subject.hasRubyValue()); + assertFalse(subject.hasJavaValue()); + assertEquals(s, subject.javaValue()); + } + + @Test + public void testLongBiValueFromJava() { + RubyInteger v = RubyFixnum.newFixnum(ruby, 123456789L); + LongBiValue subject = new LongBiValue(123456789L); + assertFalse(subject.hasRubyValue()); + assertTrue(subject.hasJavaValue()); + assertEquals(v, subject.rubyValue(ruby)); + } + + + @Test + public void testIntegerBiValueFromRuby() { + int j = 123456789; + IntegerBiValue subject = new IntegerBiValue(RubyFixnum.newFixnum(ruby, j)); + assertTrue(subject.hasRubyValue()); + assertFalse(subject.hasJavaValue()); + assertTrue(j - subject.javaValue() == 0); + } + + @Test + public void testIntegerBiValueFromJava() { + RubyInteger v = RubyFixnum.newFixnum(ruby, 123456789); + IntegerBiValue subject = new IntegerBiValue(123456789); + assertFalse(subject.hasRubyValue()); + assertTrue(subject.hasJavaValue()); + assertEquals(v, subject.rubyValue(ruby)); + } + + @Test + public void testBigDecimalBiValueFromRuby() { + BigDecimal s = BigDecimal.valueOf(12345.678D); + BigDecimalBiValue subject = new BigDecimalBiValue(new RubyBigDecimal(ruby, s)); + assertTrue(subject.hasRubyValue()); + assertFalse(subject.hasJavaValue()); + assertEquals(s, subject.javaValue()); + } + + @Test + public void testBigDecimalBiValueFromJava() { + RubyBigDecimal v = new RubyBigDecimal(ruby, new BigDecimal(12345.678D)); + BigDecimalBiValue subject = new BigDecimalBiValue(new BigDecimal(12345.678D)); + assertFalse(subject.hasRubyValue()); + assertTrue(subject.hasJavaValue()); + assertEquals(v, subject.rubyValue(ruby)); + } + + @Test + public void testDoubleBiValueFromRuby() { + Double s = 12345.678D; + DoubleBiValue subject = new DoubleBiValue(RubyFloat.newFloat(ruby, 12345.678D)); + assertTrue(subject.hasRubyValue()); + assertFalse(subject.hasJavaValue()); + assertEquals(s, subject.javaValue()); + } + + @Test + public void testDoubleBiValueFromJava() { + RubyFloat v = RubyFloat.newFloat(ruby, 12345.678D); + DoubleBiValue subject = new DoubleBiValue(12345.678D); + assertFalse(subject.hasRubyValue()); + assertTrue(subject.hasJavaValue()); + assertEquals(v, subject.rubyValue(ruby)); + } + + @Test + public void testBooleanBiValueFromRuby() { + BooleanBiValue subject = new BooleanBiValue(RubyBoolean.newBoolean(ruby, true)); + assertTrue(subject.hasRubyValue()); + assertFalse(subject.hasJavaValue()); + assertTrue(subject.javaValue()); + } + + @Test + public void testBooleanBiValueFromJava() { + RubyBoolean v = RubyBoolean.newBoolean(ruby, true); + BooleanBiValue subject = new BooleanBiValue(true); + assertFalse(subject.hasRubyValue()); + assertTrue(subject.hasJavaValue()); + assertEquals(v, subject.rubyValue(ruby)); + } + + @Test + public void testNullBiValueFromRuby() { + NullBiValue subject = new NullBiValue((RubyNil) ruby.getNil()); + assertTrue(subject.hasRubyValue()); + assertTrue(subject.hasJavaValue()); + assertEquals(null, subject.javaValue()); + } + + @Test + public void testNullBiValueFromJava() { + NullBiValue subject = NullBiValue.newNullBiValue(); + assertFalse(subject.hasRubyValue()); + assertTrue(subject.hasJavaValue()); + assertEquals(ruby.getNil(), subject.rubyValue(ruby)); + } + + @Test + public void testTimeBiValueFromRuby() { + DateTime t = DateTime.now(); + RubyTime now = RubyTime.newTime(ruby, t); + TimeBiValue subject = new TimeBiValue(now); + assertTrue(subject.hasRubyValue()); + assertFalse(subject.hasJavaValue()); + assertEquals(t, subject.javaValue()); + } + + @Test + public void testTimeBiValueFromJava() { + DateTime t = DateTime.now(); + TimeBiValue subject = new TimeBiValue(t); + assertFalse(subject.hasRubyValue()); + assertTrue(subject.hasJavaValue()); + assertEquals(RubyTime.newTime(ruby, t), subject.rubyValue(ruby)); + } + + @Test + public void testBigIntegerBiValueFromRuby() { + BigInteger s = BigInteger.valueOf(12345678L); + BigIntegerBiValue subject = new BigIntegerBiValue(new RubyBignum(ruby, s)); + assertTrue(subject.hasRubyValue()); + assertFalse(subject.hasJavaValue()); + assertEquals(s, subject.javaValue()); + } + + @Test + public void testBigIntegerBiValueFromJava() { + RubyBignum v = new RubyBignum(ruby, BigInteger.valueOf(12345678L)); + BigIntegerBiValue subject = new BigIntegerBiValue(BigInteger.valueOf(12345678L)); + assertFalse(subject.hasRubyValue()); + assertTrue(subject.hasJavaValue()); + assertEquals(v, subject.rubyValue(ruby)); + } + + @Test + public void testSerialization() throws Exception { + RubyBignum v = RubyBignum.newBignum(ruby, "-9223372036854776000"); + BiValue original = BiValues.newBiValue(v); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); + oos.writeObject(original); + oos.close(); + + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + ObjectInputStream ois = new ObjectInputStream(bais); + BiValue copy = (BiValue) ois.readObject(); + assertEquals(original, copy); + assertFalse(copy.hasRubyValue()); + } +} \ No newline at end of file diff --git a/logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValuesTest.java b/logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValuesTest.java new file mode 100644 index 00000000000..d2cd3322a23 --- /dev/null +++ b/logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValuesTest.java @@ -0,0 +1,280 @@ +package com.logstash.bivalues; + +import com.logstash.TestBase; +import com.logstash.Timestamp; +import com.logstash.ext.JrubyTimestampExtLibrary.RubyTimestamp; +import org.jruby.RubyBignum; +import org.jruby.RubyBoolean; +import org.jruby.RubyFixnum; +import org.jruby.RubyFloat; +import org.jruby.RubyInteger; +import org.jruby.RubyNil; +import org.jruby.RubyString; +import org.jruby.RubySymbol; +import org.jruby.ext.bigdecimal.RubyBigDecimal; +import org.jruby.javasupport.JavaUtil; +import org.junit.Test; + +import java.math.BigDecimal; +import java.math.BigInteger; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +public class BiValuesTest extends TestBase { + + @Test + public void testBiValuesStringRuby() { + String js = "double"; + RubyString rs = RubyString.newUnicodeString(ruby, js); + BiValue subject = BiValues.newBiValue(rs); + + assertEquals(rs, subject.rubyValueUnconverted()); + assertEquals(rs.getClass(), subject.rubyValue(ruby).getClass()); + assertEquals(js, subject.javaValue()); + assertEquals(String.class, subject.javaValue().getClass()); + } + + @Test + public void testBiValuesStringJava() { + String js = "double"; + RubyString rs = RubyString.newUnicodeString(ruby, js); + BiValue subject = BiValues.newBiValue(js); + + assertEquals(js, subject.javaValue()); + assertEquals(String.class, subject.javaValue().getClass()); + assertEquals(rs, subject.rubyValue(ruby)); + assertEquals(rs.getClass(), subject.rubyValue(ruby).getClass()); + } + + @Test + public void testBiValuesSymbolRuby() { + String js = "double"; + RubySymbol rs = RubySymbol.newSymbol(ruby, js); + BiValue subject = BiValues.newBiValue(rs); + + assertEquals(rs, subject.rubyValueUnconverted()); + assertEquals(rs.getClass(), subject.rubyValue(ruby).getClass()); + assertEquals(js, subject.javaValue()); + assertEquals(String.class, subject.javaValue().getClass()); + } + + @Test + public void testBiValuesLongRuby() { + long jo = 1234567L; + RubyInteger ro = (RubyInteger) JavaUtil.convertJavaToUsableRubyObject(ruby, jo); + BiValue subject = BiValues.newBiValue(ro); + + assertEquals(ro, subject.rubyValueUnconverted()); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + assertEquals(jo, subject.javaValue()); + assertEquals(Long.class, subject.javaValue().getClass()); + } + + @Test + public void testBiValuesLongJava() { + long jo = 1234567L; + RubyInteger ro = (RubyInteger) JavaUtil.convertJavaToUsableRubyObject(ruby, jo); + BiValue subject = BiValues.newBiValue(jo); + + assertEquals(jo, subject.javaValue()); + assertEquals(Long.class, subject.javaValue().getClass()); + assertEquals(ro, subject.rubyValue(ruby)); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + } + + @Test + public void testBiValuesFloatRuby() { + double jo = 1234.567D; + RubyFloat ro = (RubyFloat) JavaUtil.convertJavaToUsableRubyObject(ruby, jo); + BiValue subject = BiValues.newBiValue(ro); + + assertEquals(ro, subject.rubyValueUnconverted()); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + assertEquals(jo, subject.javaValue()); + assertEquals(Double.class, subject.javaValue().getClass()); + } + + @Test + public void testBiValuesFloatJava() { + double jo = 1234.567D; + RubyFloat ro = (RubyFloat) JavaUtil.convertJavaToUsableRubyObject(ruby, jo); + BiValue subject = BiValues.newBiValue(jo); + + assertEquals(jo, subject.javaValue()); + assertEquals(Double.class, subject.javaValue().getClass()); + assertEquals(ro, subject.rubyValue(ruby)); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + } + + @Test + public void testBiValuesBigDecimalRuby() { + BigDecimal jo = BigDecimal.valueOf(12345.678D); + RubyBigDecimal ro = new RubyBigDecimal(ruby, ruby.getClass("BigDecimal"), jo); + BiValue subject = BiValues.newBiValue(ro); + + assertEquals(ro, subject.rubyValueUnconverted()); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + assertEquals(jo, subject.javaValue()); + assertEquals(BigDecimal.class, subject.javaValue().getClass()); + } + + @Test + public void testBiValuesBigDecimalJava() { + BigDecimal jo = BigDecimal.valueOf(12345.678D); + RubyBigDecimal ro = new RubyBigDecimal(ruby, ruby.getClass("BigDecimal"), jo); + BiValue subject = BiValues.newBiValue(jo); + + assertEquals(jo, subject.javaValue()); + assertEquals(BigDecimal.class, subject.javaValue().getClass()); + assertEquals(ro, subject.rubyValue(ruby)); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + } + + @Test + public void testBiValuesBooleanRubyTrue() { + boolean jo = true; + RubyBoolean ro = (RubyBoolean) JavaUtil.convertJavaToUsableRubyObject(ruby, jo); + BiValue subject = BiValues.newBiValue(ro); + + assertEquals(ro, subject.rubyValueUnconverted()); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + assertTrue(subject.javaValue()); + assertEquals(Boolean.class, subject.javaValue().getClass()); + } + + @Test + public void testBiValuesBooleanRubyFalse() { + boolean jo = false; + RubyBoolean ro = (RubyBoolean) JavaUtil.convertJavaToUsableRubyObject(ruby, jo); + BiValue subject = BiValues.newBiValue(ro); + + assertEquals(ro, subject.rubyValueUnconverted()); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + assertFalse(subject.javaValue()); + assertEquals(Boolean.class, subject.javaValue().getClass()); + } + + @Test + public void testBiValuesBooleanJavaTrue() { + boolean jo = true; + RubyBoolean ro = (RubyBoolean) JavaUtil.convertJavaToUsableRubyObject(ruby, jo); + BiValue subject = BiValues.newBiValue(jo); + + assertTrue(subject.javaValue()); + assertEquals(Boolean.class, subject.javaValue().getClass()); + assertEquals(ro, subject.rubyValue(ruby)); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + } + + @Test + public void testBiValuesBooleanJavaFalse() { + boolean jo = false; + RubyBoolean ro = (RubyBoolean) JavaUtil.convertJavaToUsableRubyObject(ruby, jo); + BiValue subject = BiValues.newBiValue(jo); + + assertFalse(subject.javaValue()); + assertEquals(Boolean.class, subject.javaValue().getClass()); + assertEquals(ro, subject.rubyValue(ruby)); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + } + + @Test + public void testBiValuesTimestampRuby() { + Timestamp jo = new Timestamp("2014-09-23T00:00:00-0800"); + RubyTimestamp ro = RubyTimestamp.newRubyTimestamp(ruby, jo); + BiValue subject = BiValues.newBiValue(ro); + + assertEquals(ro, subject.rubyValueUnconverted()); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + assertEquals(jo, subject.javaValue()); + assertEquals(Timestamp.class, subject.javaValue().getClass()); + } + + @Test + public void testBiValuesTimestampJava() { + Timestamp jo = new Timestamp("2014-09-23T00:00:00-0800"); + RubyTimestamp ro = RubyTimestamp.newRubyTimestamp(ruby, jo); + BiValue subject = BiValues.newBiValue(jo); + + assertEquals(jo, subject.javaValue()); + assertEquals(Timestamp.class, subject.javaValue().getClass()); + assertEquals(ro.toString(), subject.rubyValue(ruby).toString()); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + } + + @Test + public void testBiValuesNilRuby() { + RubyNil ro = (RubyNil) ruby.getNil(); + BiValue subject = BiValues.newBiValue(ro); + + assertEquals(ro, subject.rubyValueUnconverted()); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + assertNull(subject.javaValue()); + } + + @Test + public void testBiValuesNullJava() { + RubyNil ro = (RubyNil) ruby.getNil(); + BiValue subject = BiValues.newBiValue(null); + + assertNull(subject.javaValue()); + assertEquals(ro, subject.rubyValue(ruby)); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + } + + @Test + public void testBiValuesBigIntegerRuby() { + BigInteger jo = BigInteger.valueOf(12345678L); + RubyBignum ro = new RubyBignum(ruby, jo); + BiValue subject = BiValues.newBiValue(ro); + + assertEquals(BigIntegerBiValue.class, subject.getClass()); + assertEquals(ro, subject.rubyValueUnconverted()); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + assertEquals(jo, subject.javaValue()); + assertEquals(BigInteger.class, subject.javaValue().getClass()); + } + + @Test + public void testBiValuesBigIntegerJava() { + BigInteger jo = BigInteger.valueOf(12345678L); + RubyBignum ro = new RubyBignum(ruby, jo); + BiValue subject = BiValues.newBiValue(jo); + + assertEquals(jo, subject.javaValue()); + assertEquals(BigInteger.class, subject.javaValue().getClass()); + assertEquals(ro, subject.rubyValue(ruby)); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + } + + // NOTE: testBiValuesIntegerRuby will map to LongBiValue + @Test + public void testBiValuesIntegerRuby() { + int jo = 12345678; + RubyInteger ro = RubyFixnum.newFixnum(ruby, jo); + BiValue subject = BiValues.newBiValue(ro); + + assertEquals(LongBiValue.class, subject.getClass()); + assertEquals(ro, subject.rubyValueUnconverted()); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + assertEquals(12345678L, subject.javaValue()); + assertEquals(Long.class, subject.javaValue().getClass()); + } + + @Test + public void testBiValuesIntegerJava() { + int jo = 12345678; + RubyInteger ro = RubyFixnum.newFixnum(ruby, jo); + BiValue subject = BiValues.newBiValue(jo); + + assertEquals(IntegerBiValue.class, subject.getClass()); + assertEquals(jo, subject.javaValue()); + assertEquals(Integer.class, subject.javaValue().getClass()); + assertEquals(ro, subject.rubyValue(ruby)); + assertEquals(ro.getClass(), subject.rubyValue(ruby).getClass()); + } + +} \ No newline at end of file diff --git a/logstash-core-event-java/src/test/java/com/logstash/bivalues/SomeJavaObject.java b/logstash-core-event-java/src/test/java/com/logstash/bivalues/SomeJavaObject.java new file mode 100644 index 00000000000..21a86a111c5 --- /dev/null +++ b/logstash-core-event-java/src/test/java/com/logstash/bivalues/SomeJavaObject.java @@ -0,0 +1,29 @@ +package com.logstash.bivalues; + +public class SomeJavaObject { + private T value; + + public T getValue() { + return value; + } + + public SomeJavaObject(T value) { + this.value = value; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof SomeJavaObject)) return false; + + SomeJavaObject that = (SomeJavaObject) o; + + return value != null ? value.equals(that.getValue()) : that.value == null; + + } + + @Override + public int hashCode() { + return value != null ? value.hashCode() : 0; + } +} From cfd331b2300946a45ba7e9f0879ac99e04040286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pere=20Urb=C3=B3n?= Date: Thu, 21 Jul 2016 17:25:29 +0200 Subject: [PATCH 266/632] add namespaced metrics for inputs (#5668) --- logstash-core/lib/logstash/pipeline.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 4ba7d2675a8..aded23ba5b5 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -438,7 +438,9 @@ def plugin(plugin_type, name, *args) LogStash::FilterDelegator.new(@logger, klass, pipeline_scoped_metric.namespace(:filters), *args) else new_plugin = klass.new(*args) - new_plugin.metric = pipeline_scoped_metric.namespace(:inputs) + inputs_metric = pipeline_scoped_metric.namespace(:inputs) + namespaced_metric = inputs_metric.namespace(new_plugin.plugin_unique_name.to_sym) + new_plugin.metric = namespaced_metric new_plugin end end From 07f802c0ac827f9800642600ab628256d64de46e Mon Sep 17 00:00:00 2001 From: 7lima Date: Tue, 26 Jul 2016 18:05:20 +0200 Subject: [PATCH 267/632] Doc: quote shell glob pattern (#5692) ... otherwise it may pick up some real file name in the current working directory - which is not what's intended! --- docs/static/plugin-manager.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/plugin-manager.asciidoc b/docs/static/plugin-manager.asciidoc index 294aedcb334..e03ff38117c 100644 --- a/docs/static/plugin-manager.asciidoc +++ b/docs/static/plugin-manager.asciidoc @@ -17,7 +17,7 @@ available in your deployment: ---------------------------------- bin/logstash-plugin list <1> bin/logstash-plugin list --verbose <2> -bin/logstash-plugin list *namefragment* <3> +bin/logstash-plugin list '*namefragment*' <3> bin/logstash-plugin list --group output <4> ---------------------------------- <1> Will list all installed plugins From fcae528ad9164b5a66e00335fff0efb1094924f3 Mon Sep 17 00:00:00 2001 From: 7lima Date: Tue, 26 Jul 2016 18:05:35 +0200 Subject: [PATCH 268/632] Doc: typo and missing word. (#5691) --- docs/static/plugin-manager.asciidoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/static/plugin-manager.asciidoc b/docs/static/plugin-manager.asciidoc index e03ff38117c..d36936718d2 100644 --- a/docs/static/plugin-manager.asciidoc +++ b/docs/static/plugin-manager.asciidoc @@ -2,9 +2,9 @@ == Working with plugins Logstash has a rich collection of input, filter, codec and output plugins. Plugins are available as self-contained -packages called gems and hosted on RubyGems.org. The plugin manager accesed via `bin/logstash-plugin` script is used to manage the -lifecycle of plugins in your Logstash deployment. You can install, uninstall and upgrade plugins using these Command Line -Interface (CLI) described below. +packages called gems and hosted on RubyGems.org. The plugin manager accessed via `bin/logstash-plugin` script is used to manage the +lifecycle of plugins in your Logstash deployment. You can install, uninstall and upgrade plugins using the Command Line +Interface (CLI) invocations described below. [float] [[listing-plugins]] From 3c499b25e9c470dd24d5a9697d6d70ef47ad6144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ru=C5=80lan=20Ferragut?= Date: Tue, 26 Jul 2016 18:07:44 +0200 Subject: [PATCH 269/632] Update plugin manager --path.plugins (#5690) The plugin manager `--path.plugins` (old --pluginpath) is completely wrong in the documentation. It cost me FOUR hours to find the bug and I hope this fix will remove pain for other developers. This change should be backported to the current documentation. --- docs/static/plugin-manager.asciidoc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/static/plugin-manager.asciidoc b/docs/static/plugin-manager.asciidoc index d36936718d2..ae4dea46775 100644 --- a/docs/static/plugin-manager.asciidoc +++ b/docs/static/plugin-manager.asciidoc @@ -62,9 +62,12 @@ bin/logstash-plugin install /path/to/logstash-output-kafka-1.0.0.gem Using the Logstash `--path.plugins` flag, you can load a plugin source code located on your file system. Typically this is used by developers who are iterating on a custom plugin and want to test it before creating a ruby gem. +The path needs to be in a specific directory hierarchy: `PATH/logstash/TYPE/NAME.rb`, where TYPE is 'inputs' 'filters', 'outputs' or 'codecs' and NAME is the name of the plugin. + [source,shell] ---------------------------------- -bin/logstash --path.plugins /opt/shared/lib/logstash/input/my-custom-plugin-code.rb +# supposing the code is in /opt/shared/lib/logstash/inputs/my-custom-plugin-code.rb +bin/logstash --path.plugins /opt/shared/lib ---------------------------------- [[updating-plugins]] From fd1a58e3a46f68058e7e993af6dc3b2e4c6b0cc3 Mon Sep 17 00:00:00 2001 From: 7lima Date: Tue, 26 Jul 2016 18:09:41 +0200 Subject: [PATCH 270/632] Doc: fix quoting in shell source. (#5684) Logstash can be invoked this way: "bin/logstash -w 1", so the example should be made to look like that. --- docs/static/upgrading.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/upgrading.asciidoc b/docs/static/upgrading.asciidoc index f466673f39b..42f4b7997da 100644 --- a/docs/static/upgrading.asciidoc +++ b/docs/static/upgrading.asciidoc @@ -76,7 +76,7 @@ you will get an error. Make sure to explicitly set the number of filter workers of workers by passing a command line flag such as: [source,shell] -bin/logstash `-w 1` +bin/logstash -w 1 [[upgrading-logstash-2.2]] === Upgrading Logstash to 2.2 From 48bd2e344d176985184742462b6eb019dcd0bdda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pere=20Urb=C3=B3n?= Date: Tue, 26 Jul 2016 22:12:13 +0200 Subject: [PATCH 271/632] add bin/rspec and bin/rspec.bat to the packaging exclude list (#5667) --- rakelib/artifacts.rake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index f4fa01b9d28..c3ad0ab60fe 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -46,6 +46,8 @@ namespace "artifact" do @exclude_paths << "**/test/files/slow-xpath.xml" @exclude_paths << "**/logstash-*/spec" @exclude_paths << "bin/bundle" + @exclude_paths << "bin/rspec" + @exclude_paths << "bin/rspec.bat" @exclude_paths end From fef45b8aa099ed14041b1415ea69378e0c79f9a0 Mon Sep 17 00:00:00 2001 From: Guy Boertje Date: Wed, 27 Jul 2016 16:21:11 +0100 Subject: [PATCH 272/632] Add queue client support (and batch object) to pipeline (#5560) * add batch object and queue client support to pipeline * post review updates * add note about inflight_batches to pipeline and wrapped_sync_queue * remove more whitespace changes * remove more whitespace changes * rename add to merge + refactor event fill on ReadBatch.new * better handle the initial filling of the batch, handle merging better --- logstash-core/lib/logstash/pipeline.rb | 149 +++++------- .../lib/logstash/pipeline_reporter.rb | 27 +-- .../util/wrapped_synchronous_queue.rb | 220 ++++++++++++++++++ logstash-core/spec/logstash/pipeline_spec.rb | 14 +- .../util/wrapped_synchronous_queue_spec.rb | 92 ++++++-- 5 files changed, 368 insertions(+), 134 deletions(-) diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index aded23ba5b5..d2bd7dddc13 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -33,7 +33,9 @@ module LogStash; class Pipeline :thread, :config_str, :settings, - :metric + :metric, + :filter_queue_client, + :input_queue_client MAX_INFLIGHT_WARN_THRESHOLD = 10_000 @@ -82,14 +84,18 @@ def initialize(config_str, settings = LogStash::SETTINGS, namespaced_metric = ni raise end - @input_queue = LogStash::Util::WrappedSynchronousQueue.new + queue = LogStash::Util::WrappedSynchronousQueue.new + @input_queue_client = queue.write_client + @filter_queue_client = queue.read_client + # Note that @infilght_batches as a central mechanism for tracking inflight + # batches will fail if we have multiple read clients here. + @filter_queue_client.set_events_metric(metric.namespace([:stats, :events])) + @filter_queue_client.set_pipeline_metric( + metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :events]) + ) @events_filtered = Concurrent::AtomicFixnum.new(0) @events_consumed = Concurrent::AtomicFixnum.new(0) - # We generally only want one thread at a time able to access pop/take/poll operations - # from this queue. We also depend on this to be able to block consumers while we snapshot - # in-flight buffers - @input_queue_pop_mutex = Mutex.new @input_threads = [] # @ready requires thread safety since it is typically polled from outside the pipeline thread @ready = Concurrent::AtomicBoolean.new(false) @@ -176,8 +182,6 @@ def stopped? end def start_workers - @inflight_batches = {} - @worker_threads.clear # In case we're restarting the pipeline begin start_inputs @@ -187,13 +191,14 @@ def start_workers pipeline_workers = safe_pipeline_worker_count batch_size = @settings.get("pipeline.batch.size") batch_delay = @settings.get("pipeline.batch.delay") + max_inflight = batch_size * pipeline_workers - config_metric = metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :config]) + config_metric = metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :config]) config_metric.gauge(:workers, pipeline_workers) config_metric.gauge(:batch_size, batch_size) config_metric.gauge(:batch_delay, batch_delay) - + @logger.info("Starting pipeline", "id" => self.pipeline_id, "pipeline.workers" => pipeline_workers, @@ -211,7 +216,7 @@ def start_workers end end ensure - # it is important to garantee @ready to be true after the startup sequence has been completed + # it is important to guarantee @ready to be true after the startup sequence has been completed # to potentially unblock the shutdown method which may be waiting on @ready to proceed @ready.make_true end @@ -222,73 +227,39 @@ def start_workers def worker_loop(batch_size, batch_delay) running = true - namespace_events = metric.namespace([:stats, :events]) - namespace_pipeline = metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :events]) + @filter_queue_client.set_batch_dimensions(batch_size, batch_delay) while running - # To understand the purpose behind this synchronize please read the body of take_batch - input_batch, signal = @input_queue_pop_mutex.synchronize { take_batch(batch_size, batch_delay) } - running = false if signal == LogStash::SHUTDOWN - - @events_consumed.increment(input_batch.size) - namespace_events.increment(:in, input_batch.size) - namespace_pipeline.increment(:in, input_batch.size) + batch = @filter_queue_client.take_batch + @events_consumed.increment(batch.size) + running = false if batch.shutdown_signal_received? + filter_batch(batch) - filtered_batch = filter_batch(input_batch) - - if signal # Flush on SHUTDOWN or FLUSH - flush_options = (signal == LogStash::SHUTDOWN) ? {:final => true} : {} - flush_filters_to_batch(filtered_batch, flush_options) + if batch.shutdown_signal_received? || batch.flush_signal_received? + flush_filters_to_batch(batch) end - @events_filtered.increment(filtered_batch.size) - - namespace_events.increment(:filtered, filtered_batch.size) - namespace_pipeline.increment(:filtered, filtered_batch.size) - - output_batch(filtered_batch) - - namespace_events.increment(:out, filtered_batch.size) - namespace_pipeline.increment(:out, filtered_batch.size) - - inflight_batches_synchronize { set_current_thread_inflight_batch(nil) } + output_batch(batch) + @filter_queue_client.close_batch(batch) end end - def take_batch(batch_size, batch_delay) - batch = [] - # Since this is externally synchronized in `worker_look` wec can guarantee that the visibility of an insight batch - # guaranteed to be a full batch not a partial batch - set_current_thread_inflight_batch(batch) - - signal = false - batch_size.times do |t| - event = (t == 0) ? @input_queue.take : @input_queue.poll(batch_delay) - - if event.nil? - next - elsif event == LogStash::SHUTDOWN || event == LogStash::FLUSH - # We MUST break here. If a batch consumes two SHUTDOWN events - # then another worker may have its SHUTDOWN 'stolen', thus blocking - # the pipeline. We should stop doing work after flush as well. - signal = event - break - else - batch << event - end - end - - [batch, signal] - end - def filter_batch(batch) - batch.reduce([]) do |acc,e| - if e.is_a?(LogStash::Event) - filtered = filter_func(e) - filtered.each {|fe| acc << fe unless fe.cancelled?} + batch.each do |event| + if event.is_a?(LogStash::Event) + filtered = filter_func(event) + filtered.each do |e| + #these are both original and generated events + if e.cancelled? + batch.cancel(e) + else + batch.merge(e) + end + end end - acc end + @filter_queue_client.add_filtered_metrics(batch) + @events_filtered.increment(batch.size) rescue Exception => e # Plugins authors should manage their own exceptions in the plugin code # but if an exception is raised up to the worker thread they are considered @@ -304,31 +275,21 @@ def filter_batch(batch) # Take an array of events and send them to the correct output def output_batch(batch) # Build a mapping of { output_plugin => [events...]} - outputs_events = batch.reduce(Hash.new { |h, k| h[k] = [] }) do |acc, event| + output_events_map = Hash.new { |h, k| h[k] = [] } + batch.each do |event| # We ask the AST to tell us which outputs to send each event to # Then, we stick it in the correct bin # output_func should never return anything other than an Array but we have lots of legacy specs # that monkeypatch it and return nil. We can deprecate "|| []" after fixing these specs - outputs_for_event = output_func(event) || [] - - outputs_for_event.each { |output| acc[output] << event } - acc + (output_func(event) || []).each do |output| + output_events_map[output].push(event) + end end - # Now that we have our output to event mapping we can just invoke each output # once with its list of events - outputs_events.each { |output, events| output.multi_receive(events) } - end - - def set_current_thread_inflight_batch(batch) - @inflight_batches[Thread.current] = batch - end - - def inflight_batches_synchronize - @input_queue_pop_mutex.synchronize do - yield(@inflight_batches) - end + output_events_map.each { |output, events| output.multi_receive(events) } + @filter_queue_client.add_output_metrics(batch) end def wait_inputs @@ -359,7 +320,7 @@ def start_input(plugin) def inputworker(plugin) LogStash::Util::set_thread_name("[#{pipeline_id}]<#{plugin.class.config_name}") begin - plugin.run(@input_queue) + plugin.run(@input_queue_client) rescue => e if plugin.stop? @logger.debug("Input plugin raised exception during shutdown, ignoring it.", @@ -413,7 +374,7 @@ def shutdown_workers # Each worker thread will receive this exactly once! @worker_threads.each do |t| @logger.debug("Pushing shutdown", :thread => t.inspect) - @input_queue.push(LogStash::SHUTDOWN) + @input_queue_client.push(LogStash::SHUTDOWN) end @worker_threads.each do |t| @@ -453,7 +414,7 @@ def filter(event, &block) end - # perform filters flush and yeild flushed event to the passed block + # perform filters flush and yield flushed event to the passed block # @param options [Hash] # @option options [Boolean] :final => true to signal a final shutdown flush def flush_filters(options = {}, &block) @@ -483,7 +444,7 @@ def shutdown_flusher def flush if @flushing.compare_and_set(false, true) @logger.debug? && @logger.debug("Pushing flush onto pipeline") - @input_queue.push(LogStash::FLUSH) + @input_queue_client.push(LogStash::FLUSH) end end @@ -497,18 +458,22 @@ def uptime end # perform filters flush into the output queue + # + # @param batch [ReadClient::ReadBatch] # @param options [Hash] - # @option options [Boolean] :final => true to signal a final shutdown flush def flush_filters_to_batch(batch, options = {}) + options[:final] = batch.shutdown_signal_received? flush_filters(options) do |event| - unless event.cancelled? + if event.cancelled? + batch.cancel(event) + else @logger.debug? and @logger.debug("Pushing flushed events", :event => event) - batch << event + batch.merge(event) end end @flushing.set(false) - end # flush_filters_to_output! + end # flush_filters_to_batch def plugin_threads_info input_threads = @input_threads.select {|t| t.alive? } diff --git a/logstash-core/lib/logstash/pipeline_reporter.rb b/logstash-core/lib/logstash/pipeline_reporter.rb index c7ae6ca847c..31aaf28416e 100644 --- a/logstash-core/lib/logstash/pipeline_reporter.rb +++ b/logstash-core/lib/logstash/pipeline_reporter.rb @@ -39,7 +39,7 @@ def format_threads_by_plugin end end - def initialize(logger,pipeline) + def initialize(logger, pipeline) @logger = logger @pipeline = pipeline end @@ -52,7 +52,8 @@ def snapshot end def to_hash - pipeline.inflight_batches_synchronize do |batch_map| + # pipeline.filter_queue_client.inflight_batches is synchronized + pipeline.filter_queue_client.inflight_batches do |batch_map| worker_states_snap = worker_states(batch_map) # We only want to run this once inflight_count = worker_states_snap.map {|s| s[:inflight_count] }.reduce(0, :+) @@ -83,17 +84,17 @@ def plugin_threads pipeline.plugin_threads end - # Not threadsafe! must be called within an `inflight_batches_synchronize` block + # Not threadsafe! ensure synchronization def worker_states(batch_map) - pipeline.worker_threads.map.with_index do |thread,idx| - status = thread.status || "dead" - inflight_count = batch_map[thread] ? batch_map[thread].size : 0 - { - :status => status, - :alive => thread.alive?, - :index => idx, - :inflight_count => inflight_count - } + pipeline.worker_threads.map.with_index do |thread, idx| + status = thread.status || "dead" + inflight_count = batch_map[thread] ? batch_map[thread].size : 0 + { + :status => status, + :alive => thread.alive?, + :index => idx, + :inflight_count => inflight_count + } end end @@ -111,4 +112,4 @@ def output_info } end end -end end \ No newline at end of file +end end diff --git a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb index a8822ca0af5..9cb8c5ecfa1 100644 --- a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb @@ -37,5 +37,225 @@ def take def poll(millis) @queue.poll(millis, TimeUnit::MILLISECONDS) end + + def write_client + WriteClient.new(self) + end + + def read_client() + ReadClient.new(self) + end + + class ReadClient + # We generally only want one thread at a time able to access pop/take/poll operations + # from this queue. We also depend on this to be able to block consumers while we snapshot + # in-flight buffers + + def initialize(queue, batch_size = 125, wait_for = 5) + @queue = queue + @mutex = Mutex.new + # Note that @infilght_batches as a central mechanism for tracking inflight + # batches will fail if we have multiple read clients in the pipeline. + @inflight_batches = {} + @batch_size = batch_size + @wait_for = wait_for + end + + def set_batch_dimensions(batch_size, wait_for) + @batch_size = batch_size + @wait_for = wait_for + end + + def set_events_metric(metric) + @event_metric = metric + end + + def set_pipeline_metric(metric) + @pipeline_metric = metric + end + + def inflight_batches + @mutex.synchronize do + yield(@inflight_batches) + end + end + + def current_inflight_batch + @inflight_batches.fetch(Thread.current, []) + end + + def take_batch + @mutex.synchronize do + batch = ReadBatch.new(@queue, @batch_size, @wait_for) + add_starting_metrics(batch) + set_current_thread_inflight_batch(batch) + batch + end + end + + def set_current_thread_inflight_batch(batch) + @inflight_batches[Thread.current] = batch + end + + def close_batch(batch) + @mutex.synchronize do + @inflight_batches.delete(Thread.current) + end + end + + def add_starting_metrics(batch) + return if @event_metric.nil? || @pipeline_metric.nil? + @event_metric.increment(:in, batch.starting_size) + @pipeline_metric.increment(:in, batch.starting_size) + end + + def add_filtered_metrics(batch) + @event_metric.increment(:filtered, batch.filtered_size) + @pipeline_metric.increment(:filtered, batch.filtered_size) + end + + def add_output_metrics(batch) + @event_metric.increment(:out, batch.filtered_size) + @pipeline_metric.increment(:out, batch.filtered_size) + end + end + + class ReadBatch + def initialize(queue, size, wait) + @shutdown_signal_received = false + @flush_signal_received = false + @originals = Hash.new + @cancelled = Hash.new + @generated = Hash.new + @iterating_temp = Hash.new + @iterating = false # Atomic Boolean maybe? Although batches are not shared across threads + take_originals_from_queue(queue, size, wait) + end + + def merge(event) + return if event.nil? || @originals.key?(event) + # take care not to cause @generated to change during iteration + # @iterating_temp is merged after the iteration + if iterating? + @iterating_temp[event] = true + else + # the periodic flush could generate events outside of an each iteration + @generated[event] = true + end + end + + def cancel(event) + @cancelled[event] = true + end + + def each(&blk) + # take care not to cause @originals or @generated to change during iteration + @iterating = true + @originals.each do |e, _| + blk.call(e) unless @cancelled.include?(e) + end + @generated.each do |e, _| + blk.call(e) unless @cancelled.include?(e) + end + @iterating = false + update_generated + end + + def size + filtered_size + end + + def starting_size + @originals.size + end + + def filtered_size + @originals.size + @generated.size + end + + def cancelled_size + @cancelled.size + end + + def shutdown_signal_received? + @shutdown_signal_received + end + + def flush_signal_received? + @flush_signal_received + end + + private + + def iterating? + @iterating + end + + def update_generated + @generated.update(@iterating_temp) + @iterating_temp.clear + end + + def take_originals_from_queue(queue, size, wait) + size.times do |t| + event = (t == 0) ? queue.take : queue.poll(wait) + if event.nil? + # queue poll timed out + next + elsif event == LogStash::SHUTDOWN + # We MUST break here. If a batch consumes two SHUTDOWN events + # then another worker may have its SHUTDOWN 'stolen', thus blocking + # the pipeline. + @shutdown_signal_received = true + break + elsif event == LogStash::FLUSH + # See comment above + # We should stop doing work after flush as well. + @flush_signal_received = true + break + else + @originals[event] = true + end + end + end + end + + class WriteClient + def initialize(queue) + @queue = queue + end + + def get_new_batch + WriteBatch.new + end + + def push(event) + @queue.push(event) + end + alias_method(:<<, :push) + + def push_batch(batch) + batch.each do |event| + push(event) + end + end + end + + class WriteBatch + def initialize + @events = [] + end + + def push(event) + @events.push(event) + end + alias_method(:<<, :push) + + def each(&blk) + @events.each do |e| + blk.call(e) + end + end + end end end end diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 823e2cb5df9..a0290b1da16 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -360,7 +360,6 @@ class TestPipeline < LogStash::Pipeline end context "compiled filter funtions" do - context "new events should propagate down the filters" do config <<-CONFIG filter { @@ -466,11 +465,12 @@ class TestPipeline < LogStash::Pipeline pipeline = LogStash::Pipeline.new(config, pipeline_settings_obj) Thread.new { pipeline.run } sleep 0.1 while !pipeline.ready? - # give us a bit of time to flush the events wait(5).for do - next unless output && output.events && !(event = output.events.pop).nil? - event.get("message").split("\n").count - end.to eq(number_of_events) + # give us a bit of time to flush the events + output.events.empty? + end.to be_falsey + event = output.events.pop + expect(event.get("message").count("\n")).to eq(99) pipeline.shutdown end end @@ -604,7 +604,7 @@ class TestPipeline < LogStash::Pipeline Thread.new { subject.run } # make sure we have received all the generated events - sleep 1 while dummyoutput.events.size < number_of_events + sleep 0.25 while dummyoutput.events.size < number_of_events end after :each do @@ -614,7 +614,7 @@ class TestPipeline < LogStash::Pipeline context "global metric" do let(:collected_metric) { metric_store.get_with_path("stats/events") } - it "populates the differents" do + it "populates the different metrics" do expect(collected_metric[:stats][:events][:in].value).to eq(number_of_events) expect(collected_metric[:stats][:events][:filtered].value).to eq(number_of_events) expect(collected_metric[:stats][:events][:out].value).to eq(number_of_events) diff --git a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb index 871952482aa..12317f838a9 100644 --- a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb +++ b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb @@ -3,26 +3,74 @@ require "logstash/util/wrapped_synchronous_queue" describe LogStash::Util::WrappedSynchronousQueue do - context "#offer" do - context "queue is blocked" do - it "fails and give feedback" do - expect(subject.offer("Bonjour", 2)).to be_falsey - end - end - - context "queue is not blocked" do - before do - @consumer = Thread.new { loop { subject.take } } - sleep(0.1) - end - - after do - @consumer.kill - end - - it "inserts successfully" do - expect(subject.offer("Bonjour", 20)).to be_truthy - end - end - end + context "#offer" do + context "queue is blocked" do + it "fails and give feedback" do + expect(subject.offer("Bonjour", 2)).to be_falsey + end + end + + context "queue is not blocked" do + before do + @consumer = Thread.new { loop { subject.take } } + sleep(0.1) + end + + after do + @consumer.kill + end + + it "inserts successfully" do + expect(subject.offer("Bonjour", 20)).to be_truthy + end + end + end + + describe "queue clients" do + context "when requesting a write client" do + it "returns a client" do + expect(subject.write_client).to be_a(LogStash::Util::WrappedSynchronousQueue::WriteClient) + end + end + + context "when requesting a read client" do + it "returns a client" do + expect(subject.read_client).to be_a(LogStash::Util::WrappedSynchronousQueue::ReadClient) + end + end + + class DummyQueue < Array + def take() shift(); end + def poll(*) shift(); end + end + + describe "WriteClient | ReadClient" do + context "when writing to the queue" do + let(:queue) { DummyQueue.new } + let(:write_client) { LogStash::Util::WrappedSynchronousQueue::WriteClient.new(queue)} + let(:read_client) { LogStash::Util::WrappedSynchronousQueue::ReadClient.new(queue)} + it "appends batches to the queue" do + batch = write_client.get_new_batch + 5.times {|i| batch.push("value-#{i}")} + write_client.push_batch(batch) + read_batch = read_client.take_batch + expect(read_batch.size).to eq(5) + i = 0 + read_batch.each do |data| + expect(data).to eq("value-#{i}") + read_batch.cancel("value-#{i}") if i > 2 + read_batch.merge("generated-#{i}") if i > 2 + i += 1 + end + expect(read_batch.cancelled_size).to eq(2) + i = 0 + read_batch.each do |data| + expect(data).to eq("value-#{i}") if i < 3 + expect(data).to eq("generated-#{i}") if i > 2 + i += 1 + end + end + end + end + end end From 9f9de6dd885d75691a9ff3aa016b404abecad213 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 27 Jul 2016 15:55:15 -0400 Subject: [PATCH 273/632] Fix an issue with the logstash-plugin list acceptance test The previous regexp used to match the version did not take into consideration pre-release version. Fixes #5700 --- qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb index 89336dc31bf..5f1e00fd2df 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/list.rb @@ -27,7 +27,7 @@ it "list the plugins with their versions" do result = logstash.run_command_in_path("bin/logstash-plugin list --verbose") result.stdout.split("\n").each do |plugin| - expect(plugin).to match(/^logstash-\w+-\w+\s\(\d+\.\d+.\d+\)/) + expect(plugin).to match(/^logstash-\w+-\w+\s\(\d+\.\d+.\d+(.\w+)?\)/) end end end From 3aa592f46ddbe5a421fdaf93e9747237a8d4b46c Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 28 Jul 2016 11:43:00 -0500 Subject: [PATCH 274/632] Fix broken plugin tests that didn't have a defined data.home This is done by providing a default data.home in tmp for environments other than a packaged logstash distro. This is a hack and should be replaced by something better in the future. Fixes #5706 --- logstash-core/lib/logstash/environment.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 3ea629623fd..6d143bb5539 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -3,8 +3,16 @@ require "logstash/config/cpu_core_strategy" require "logstash/settings" require "socket" +require "stud/temporary" module LogStash + # In the event that we're requiring this file without bootstrap/environment.rb + if !defined?(LogStash::Environment::LOGSTASH_HOME) + module Environment + LOGSTASH_HOME = Stud::Temporary.directory("logstash-home") + Dir.mkdir(::File.join(LOGSTASH_HOME, "data")) + end + end [ Setting::String.new("node.name", Socket.gethostname), From 50578b49b440ec75859c9a393f7f3407ad4b742b Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 27 Jul 2016 12:27:43 -0700 Subject: [PATCH 275/632] add changes made to monitoring APIs for alpha5 Fixes #5701 --- docs/static/monitoring-apis.asciidoc | 273 +++++++++++++-------------- 1 file changed, 134 insertions(+), 139 deletions(-) diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index d9333220cf5..97073a3ce06 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -14,7 +14,7 @@ about Logstash: You can use the root resource to retrieve general information about the Logstash instance, including -the hostname and version. +the host and version. [source,js] -------------------------------------------------- @@ -26,7 +26,7 @@ Example response: ["source","js",subs="attributes"] -------------------------------------------------- { - "hostname": "skywalker", + "host": "skywalker", "version": "{logstash_version}", "http_address": "127.0.0.1:9600" } @@ -82,9 +82,7 @@ GET /_node/ Where `` is optional and specifies the types of node info you want to return. -You can limit the info that's returned by specifying one of the following types: - -//TODO: For 5.0.0 Alpha4, this endpoint does not support specifying a comma-separated list like you can for the Elasticsearch cluster APIs. When this issue is fixed, we need to change the wording above to say: "You can limit the info that's returned by combining any of the following types" +You can limit the info that's returned by combining any of the following types: added[5.0.0-alpha5,Support for specifying a comma-separated list of types] [horizontal] `pipeline`:: @@ -174,11 +172,11 @@ Example response: -------------------------------------------------- [[plugins-api]] -=== Plugins API +=== Plugins Info API experimental[] -The plugins API gets information about all Logstash plugins that are currently installed. +The plugins info API gets information about all Logstash plugins that are currently installed. This API basically returns the output of running the `bin/logstash-plugin list --verbose` command. [source,js] @@ -193,18 +191,19 @@ Example response: ["source","js",subs="attributes"] -------------------------------------------------- { + "total": 91, "plugins": [ { "name": "logstash-codec-collectd", - "version": "3.0.1" + "version": "3.0.2" }, { "name": "logstash-codec-dots", - "version": "3.0.1" + "version": "3.0.2" }, { "name": "logstash-codec-edn", - "version": "3.0.1" + "version": "3.0.2" }, . . @@ -228,60 +227,67 @@ GET /_node/stats/ Where `` is optional and specifies the types of stats you want to return. -By default, all stats are returned. You can limit this by specifying one of the following types: - -//TODO: Update the above description when support for specifying a comma-separated list of types is added back in. See above comment. +By default, all stats are returned. You can limit the info that's returned by combining any of the following types: added[5.0.0-alpha5,Support for specifying a comma-separated list of types] [horizontal] -`events`:: -Gets event information since startup. `jvm`:: Gets JVM stats, including stats about threads. added[5.0.0-alpha3,Adds thread count] `process`:: Gets process stats, including stats about file descriptors, memory consumption, and CPU usage. added[5.0.0-alpha3] `mem`:: Gets memory usage stats. added[5.0.0-alpha4] - -==== Event Stats - -The following request returns a JSON document that shows the number of events -that were input, filtered, and output by Logstash since startup: - -[source,js] --------------------------------------------------- -GET /_node/stats/events --------------------------------------------------- - -Example response: - -[source,js] --------------------------------------------------- -{ - "events" : { - "in" : 59685, - "filtered" : 59685, - "out" : 59685 - } --------------------------------------------------- +`pipeline`:: +Gets pipeline stats. See <> for examples. ==== JVM Stats -The following request returns a JSON document containing JVM stats: +The following request returns a JSON document containing JVM stats: [source,js] -------------------------------------------------- GET /_node/stats/jvm -------------------------------------------------- -Example response: +Example response: added[5.0.0-alpha5,JVM stats now include memory stats that were previously returned by `/_node/stats/mem`] [source,js] -------------------------------------------------- { - "jvm" : { - "threads" : { - "count" : 32, - "peak_count" : 34 + "jvm": { + "threads": { + "count": 32, + "peak_count": 33 + }, + "mem": { + "heap_used_in_bytes": 290715552, + "heap_used_percent": 14, + "heap_committed_in_bytes": 519045120, + "heap_max_in_bytes": 2075918336, + "non_heap_used_in_bytes": 181911616, + "non_heap_committed_in_bytes": 193249280, + "pools": { + "survivor": { + "peak_used_in_bytes": 8912896, + "used_in_bytes": 9358024, + "peak_max_in_bytes": 35782656, + "max_in_bytes": 71565312, + "committed_in_bytes": 17825792 + }, + "old": { + "peak_used_in_bytes": 106400040, + "used_in_bytes": 164247880, + "peak_max_in_bytes": 715849728, + "max_in_bytes": 1431699456, + "committed_in_bytes": 357957632 + }, + "young": { + "peak_used_in_bytes": 71630848, + "used_in_bytes": 117109648, + "peak_max_in_bytes": 286326784, + "max_in_bytes": 572653568, + "committed_in_bytes": 143261696 + } + } } } -------------------------------------------------- @@ -300,63 +306,16 @@ Example response: [source,js] -------------------------------------------------- { - "process" : { - "peak_open_file_descriptors" : 64, - "max_file_descriptors" : 10240, - "open_file_descriptors" : 64, - "mem" : { - "total_virtual_in_bytes" : 5278068736 + "process": { + "open_file_descriptors": 60, + "peak_open_file_descriptors": 65, + "max_file_descriptors": 10240, + "mem": { + "total_virtual_in_bytes": 5364461568 }, - "cpu" : { - "total_in_millis" : 103290097000, - "percent" : 0 - } - } --------------------------------------------------- - -==== Mem Stats - -The following request returns a JSON document containing memory stats: - -[source,js] --------------------------------------------------- -GET /_node/stats/mem --------------------------------------------------- - -Example response: - -[source,js] --------------------------------------------------- -{ - "mem": { - "heap_used_in_bytes": 262641008, - "heap_used_percent": 12, - "heap_committed_in_bytes": 519045120, - "heap_max_in_bytes": 2075918336, - "non_heap_used_in_bytes": 184060512, - "non_heap_committed_in_bytes": 195870720, - "pools": { - "survivor": { - "peak_used_in_bytes": 8912896, - "used_in_bytes": 9280256, - "peak_max_in_bytes": 35782656, - "max_in_bytes": 71565312, - "committed_in_bytes": 17825792 - }, - "old": { - "peak_used_in_bytes": 112649208, - "used_in_bytes": 170055984, - "peak_max_in_bytes": 715849728, - "max_in_bytes": 1431699456, - "committed_in_bytes": 357957632 - }, - "young": { - "peak_used_in_bytes": 71630848, - "used_in_bytes": 83304768, - "peak_max_in_bytes": 286326784, - "max_in_bytes": 572653568, - "committed_in_bytes": 143261696 - } + "cpu": { + "total_in_millis": 101294404000, + "percent": 0 } } -------------------------------------------------- @@ -393,37 +352,37 @@ Example response: "filtered": 100, "out": 100 }, - "pipeline": { + "plugins": { "inputs": [], "filters": [ { - "id": "geoip_6aea6f9a-c100-4c39-ab00-e34d54d6e573", + "id": "grok_c4900bd0-29ef-44a5-b44c-f6ffef3ddf8c", "events": { - "duration_in_millis": 145, + "duration_in_millis": 43, "in": 100, "out": 100 }, - "name": "geoip" + "matches": 100, + "patterns_per_field": { + "message": 1 + }, + "name": "grok" }, { - "id": "grok_4000f2bf-4baf-4258-b72f-56e0b6f15fc1", + "id": "geoip_130740d3-cad0-4ae5-96dd-7ef8f0eb1adb", "events": { - "duration_in_millis": 48, + "duration_in_millis": 116, "in": 100, "out": 100 }, - "matches": 100, - "patterns_per_field": { - "message": 1 - }, - "name": "grok" + "name": "geoip" } ], "outputs": [ { - "id": "elasticsearch_db05752c-2e30-4f77-a3d7-167e915d470f", + "id": "elasticsearch_2f22c8b5-3d63-426e-a4cf-08e48af29538", "events": { - "duration_in_millis": 232, + "duration_in_millis": 533, "in": 100, "out": 100 }, @@ -460,16 +419,13 @@ Example response: [source,js] -------------------------------------------------- { - "host": "skywalker", - "version": "5.0.0-alpha4", - "http_address": "127.0.0.1:9600", "hot_threads": { - "time": "2016-06-24T18:19:48-07:00", + "time": "2016-07-26T18:39:08-07:00", "busiest_threads": 3, "threads": [ { "name": "LogStash::Runner", - "percent_of_cpu_time": 0.09, + "percent_of_cpu_time": 0.17, "state": "timed_waiting", "traces": [ "java.lang.Object.wait(Native Method)", @@ -486,9 +442,9 @@ Example response: }, { "name": "Ruby-0-Thread-17", - "percent_of_cpu_time": 0.05, + "percent_of_cpu_time": 0.11, "state": "timed_waiting", - "path": "/Users/dedemorton/BuildTesting/5.0.0-alpha4/logstash-5.0.0-alpha4/logstash-core/lib/logstash/pipeline.rb:467", + "path": "/Users/username/logstash-5.0.0/logstash-core/lib/logstash/pipeline.rb:471", "traces": [ "java.lang.Object.wait(Native Method)", "org.jruby.RubyThread.sleep(RubyThread.java:1002)", @@ -497,10 +453,27 @@ Example response: "org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:667)", "org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:206)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)", - "rubyjit.Module$$stoppable_sleep_c19c1639527ca7d373b5093f339d26538f1c21ef1028566121.__file__(/Users/dedemorton/BuildTesting/5.0.0-alpha4/logstash-5.0.0-alpha4/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/interval.rb:84)", - "rubyjit.Module$$stoppable_sleep_c19c1639527ca7d373b5093f339d26538f1c21ef1028566121.__file__(/Users/dedemorton/BuildTesting/5.0.0-alpha4/logstash-5.0.0-alpha4/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/interval.rb)", + "rubyjit.Module$$stoppable_sleep_c19c1639527ca7d373b5093f339d26538f1c21ef1028566121.__file__(/Users/username/logstash-5.0.0/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/interval.rb:84)", + "rubyjit.Module$$stoppable_sleep_c19c1639527ca7d373b5093f339d26538f1c21ef1028566121.__file__(/Users/username/logstash-5.0.0/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/interval.rb)", "org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:46)" ] + }, + { + "name": "[main]-pipeline-manager", + "percent_of_cpu_time": 0.04, + "state": "timed_waiting", + "traces": [ + "java.lang.Object.wait(Native Method)", + "java.lang.Thread.join(Thread.java:1253)", + "org.jruby.internal.runtime.NativeThread.join(NativeThread.java:75)", + "org.jruby.RubyThread.join(RubyThread.java:697)", + "org.jruby.RubyThread$INVOKER$i$0$1$join.call(RubyThread$INVOKER$i$0$1$join.gen)", + "org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:663)", + "org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:198)", + "org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:683)", + "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:286)", + "org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:81)" + ] } ] } @@ -525,24 +498,46 @@ Example of a human-readable response: [source,js] -------------------------------------------------- -::: {Ringo Kid}{Gv3UrzR3SqmPQIgfG4qJMA}{127.0.0.1}{127.0.0.1:9300} - Hot threads at 2016-01-13T16:55:49.988Z, interval=500ms, busiestThreads=3, ignoreIdleThreads=true: - - 0.0% (216micros out of 500ms) cpu usage by thread 'elasticsearch[Ringo Kid][transport_client_timer][T#1]{Hashed wheel timer #1}' - 10/10 snapshots sharing following 5 elements - java.lang.Thread.sleep(Native Method) - org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:445) - org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:364) - org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) - java.lang.Thread.run(Thread.java:745) - - 0.0% (216micros out of 500ms) cpu usage by thread 'elasticsearch[Ringo Kid][transport_client_timer][T#1]{Hashed wheel timer #1}' - 10/10 snapshots sharing following 5 elements - java.lang.Thread.sleep(Native Method) - org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:445) - org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:364) - org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) - java.lang.Thread.run(Thread.java:745) +::: {} +Hot threads at 2016-07-26T18:46:18-07:00, busiestThreads=3: +================================================================================ + 0.15 % of of cpu usage by timed_waiting thread named 'LogStash::Runner' + java.lang.Object.wait(Native Method) + java.lang.Thread.join(Thread.java:1253) + org.jruby.internal.runtime.NativeThread.join(NativeThread.java:75) + org.jruby.RubyThread.join(RubyThread.java:697) + org.jruby.RubyThread$INVOKER$i$0$1$join.call(RubyThread$INVOKER$i$0$1$join.gen) + org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:663) + org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:198) + org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306) + org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136) + org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60) + -------------------------------------------------------------------------------- + 0.11 % of of cpu usage by timed_waiting thread named 'Ruby-0-Thread-17' + /Users/username/BuildTesting/logstash-5.0.0logstash-core/lib/logstash/pipeline.rb:471 + java.lang.Object.wait(Native Method) + org.jruby.RubyThread.sleep(RubyThread.java:1002) + org.jruby.RubyKernel.sleep(RubyKernel.java:803) + org.jruby.RubyKernel$INVOKER$s$0$1$sleep.call(RubyKernel$INVOKER$s$0$1$sleep.gen) + org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:667) + org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:206) + org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168) + rubyjit.Module$$stoppable_sleep_c19c1639527ca7d373b5093f339d26538f1c21ef1028566121.__file__(/Users/username/BuildTesting/logstash-5.0.0/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/interval.rb:84) + rubyjit.Module$$stoppable_sleep_c19c1639527ca7d373b5093f339d26538f1c21ef1028566121.__file__(/Users/username/BuildTesting/logstash-5.0.0/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/interval.rb) + org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:46) + -------------------------------------------------------------------------------- + 0.04 % of of cpu usage by timed_waiting thread named '[main]-pipeline-manager' + java.lang.Object.wait(Native Method) + java.lang.Thread.join(Thread.java:1253) + org.jruby.internal.runtime.NativeThread.join(NativeThread.java:75) + org.jruby.RubyThread.join(RubyThread.java:697) + org.jruby.RubyThread$INVOKER$i$0$1$join.call(RubyThread$INVOKER$i$0$1$join.gen) + org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:663) + org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:198) + org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:683) + org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:286) + org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:81) + -------------------------------------------------- See <> for a list of options that can be applied to all From 6e7d7f9b48e62209c317185d46457a2585b471de Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 27 Jul 2016 17:12:01 -0700 Subject: [PATCH 276/632] fix issues from PR review Fixes #5701 --- docs/static/monitoring-apis.asciidoc | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 97073a3ce06..3c7ce70b98a 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -9,7 +9,6 @@ about Logstash: * <> * <> * <> -* <> * <> @@ -46,9 +45,7 @@ The following options can be applied to all of the Logstash monitoring APIs. ==== Pretty Results When appending `?pretty=true` to any request made, the JSON returned -will be pretty formatted (use it for debugging only!). Another option is -to set `?format=yaml` which will cause the result to be returned in the -(sometimes) more readable yaml format. +will be pretty formatted (use it for debugging only!). [float] ==== Human-Readable Output @@ -82,7 +79,7 @@ GET /_node/ Where `` is optional and specifies the types of node info you want to return. -You can limit the info that's returned by combining any of the following types: added[5.0.0-alpha5,Support for specifying a comma-separated list of types] +You can limit the info that's returned by combining any of the following types in a comma-separated list: added[5.0.0-alpha5,Support for specifying a comma-separated list of types] [horizontal] `pipeline`:: @@ -102,8 +99,8 @@ batch size, and batch delay: GET /_node/pipeline -------------------------------------------------- -See <> if you want to view additional information, such as stats for each configured input, filter, -or output stage. +If you want to view additional information about the pipeline, such as stats for each configured input, filter, +or output stage, see the <> section under the <>. Example response: @@ -227,7 +224,7 @@ GET /_node/stats/ Where `` is optional and specifies the types of stats you want to return. -By default, all stats are returned. You can limit the info that's returned by combining any of the following types: added[5.0.0-alpha5,Support for specifying a comma-separated list of types] +By default, all stats are returned. You can limit the info that's returned by combining any of the following types in a comma-separated list: added[5.0.0-alpha5,Support for specifying a comma-separated list of types] [horizontal] `jvm`:: @@ -237,7 +234,7 @@ Gets process stats, including stats about file descriptors, memory consumption, `mem`:: Gets memory usage stats. added[5.0.0-alpha4] `pipeline`:: -Gets pipeline stats. See <> for examples. +Gets runtime stats about the Logstash pipeline. ==== JVM Stats @@ -320,18 +317,11 @@ Example response: } -------------------------------------------------- -See <> for a list of options that can be applied to all -Logstash monitoring APIs. - -[[pipeline-stats-api]] -=== Pipeline Stats API +[[pipeline-stats]] +==== Pipeline Stats added[5.0.0-alpha4,Stats for input stages are not yet available] -experimental[] - -The pipeline stats API retrieves runtime stats about the Logstash pipeline. - The following request returns a JSON document containing pipeline stats, including the number of events that were input, filtered, or output by the pipeline. The request also returns stats for each configured input, filter, or output stage. From dfa3dbe970454e50112c5575adf5b4fe3b3c9298 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 2 Aug 2016 14:48:38 -0700 Subject: [PATCH 277/632] Nuke old files no longger used Fixes #5724 --- Makefile | 2 - docs/asciidoc_index.rb | 35 -------- docs/plugin-doc.html.erb | 80 ------------------- docs/plugin-synopsis.html.erb | 24 ------ patterns/.gitkeep | 0 .../benchmark}/event_accessor.rb | 0 6 files changed, 141 deletions(-) delete mode 100644 Makefile delete mode 100644 docs/asciidoc_index.rb delete mode 100644 docs/plugin-doc.html.erb delete mode 100644 docs/plugin-synopsis.html.erb delete mode 100644 patterns/.gitkeep rename {benchmark => tools/benchmark}/event_accessor.rb (100%) diff --git a/Makefile b/Makefile deleted file mode 100644 index db263b80aff..00000000000 --- a/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -%: - rake $@ diff --git a/docs/asciidoc_index.rb b/docs/asciidoc_index.rb deleted file mode 100644 index be1b94403f8..00000000000 --- a/docs/asciidoc_index.rb +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env ruby - -require "erb" - -if ARGV.size != 2 - $stderr.puts "No path given to search for plugin docs" - $stderr.puts "Usage: #{$0} plugin_doc_dir type" - exit 1 -end - - -def plugins(glob) - plugins=Hash.new [] - files = Dir.glob(glob) - files.collect { |f| File.basename(f).gsub(".asciidoc", "") }.each {|plugin| - first_letter = plugin[0,1] - plugins[first_letter] += [plugin] - } - return Hash[plugins.sort] -end # def plugins - -basedir = ARGV[0] -type = ARGV[1] - -docs = plugins(File.join(basedir, "#{type}/*.asciidoc")) -template_path = File.join(File.dirname(__FILE__), "index-#{type}.asciidoc.erb") -template = File.new(template_path).read -erb = ERB.new(template, nil, "-") - -path = "#{basedir}/#{type}.asciidoc" - -File.open(path, "w") do |out| - html = erb.result(binding) - out.puts(html) -end diff --git a/docs/plugin-doc.html.erb b/docs/plugin-doc.html.erb deleted file mode 100644 index c236314e0af..00000000000 --- a/docs/plugin-doc.html.erb +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: logstash docs for <%= section %>s/<%= name %> -layout: content_right ---- -

      <%= name %>

      -

      Milestone: <%= @milestone %>

      -<% if is_contrib_plugin -%> -<% end -%> - -<%= description %> - -

      Synopsis

      - -A sample configuration file is shown here: - -
      <% if section == "codec" -%>
      -# with an input plugin:
      -# you can also use this codec with an output.
      -input { 
      -<% if name == "json_lines" -%>
      -  udp {
      -    port => 1234
      -<% else -%>
      -  file {
      -<% end -%>
      -    codec => <%= synopsis -%>
      -  }
      -}
      -<% else -%>
      -<%= section %> {
      -  <%= synopsis -%>
      -}
      -<% end -%>
      - -

      Details

      - -<% sorted_attributes.each do |name, config| -%> -<% - if name.is_a?(Regexp) - name = "/" + name.to_s.gsub(/^\(\?-mix:/, "").gsub(/\)$/, "") + "/" - is_regexp = true - else - is_regexp = false - end --%> -

      - - <%= name %><%= " (required setting)" if config[:required] %> - <%= " DEPRECATED" if config[:deprecated] %> - -

      - -
        -<% if config[:deprecated] -%> -
      • DEPRECATED WARNING: This configuration item is deprecated and may not be included in later versions.
      • -<% end -%> -<% if is_regexp -%> -
      • The configuration attribute name here is anything that matches the above regular expression.
      • -<% end -%> -<% if config[:validate].is_a?(Symbol) -%> -
      • Value type is <%= config[:validate] %>
      • -<% elsif config[:validate].nil? -%> -
      • Value type is string
      • -<% elsif config[:validate].is_a?(Array) -%> -
      • Value can be any of: <%= config[:validate].map(&:inspect).join(", ") %>
      • -<% end -%> -<% if config.include?(:default) -%> -
      • Default value is <%= config[:default].inspect %>
      • -<% else -%> -
      • There is no default value for this setting.
      • -<% end -%> -
      - -<%= config[:description] %> - -<% end -%> - -
      - -This is documentation from <%= file %> diff --git a/docs/plugin-synopsis.html.erb b/docs/plugin-synopsis.html.erb deleted file mode 100644 index 92465227fa8..00000000000 --- a/docs/plugin-synopsis.html.erb +++ /dev/null @@ -1,24 +0,0 @@ -<%= name %> { -<% sorted_attributes.each do |name, config| - next if config[:deprecated] - if config[:validate].is_a?(Array) - annotation = "string, one of #{config[:validate].inspect}" - elsif config[:validate] == :path - annotation = "a valid filesystem path" - else - annotation = "#{config[:validate]}" - end - - if name.is_a?(Regexp) - name = "/" + name.to_s.gsub(/^\(\?-mix:/, "").gsub(/\)$/, "") + "/" - end - if config[:required] - annotation += " (required)" - else - annotation += " (optional)" - end - annotation += ", default: #{config[:default].inspect}" if config.include?(:default) --%> -<%= " " if section == "codec" %> <%= name %> => ... # <%= annotation %> -<% end -%> -<%= " " if section == "codec" %> } diff --git a/patterns/.gitkeep b/patterns/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/benchmark/event_accessor.rb b/tools/benchmark/event_accessor.rb similarity index 100% rename from benchmark/event_accessor.rb rename to tools/benchmark/event_accessor.rb From d5f1a24788f771eee96e24cc954f10486ad2d779 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 4 Aug 2016 13:26:45 -0700 Subject: [PATCH 278/632] Remove validate warning because its useless Fixes #5686 Fixes #5729 --- lib/pluginmanager/update.rb | 8 +------- lib/pluginmanager/util.rb | 15 --------------- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/lib/pluginmanager/update.rb b/lib/pluginmanager/update.rb index fd840e91183..3227887fc7b 100644 --- a/lib/pluginmanager/update.rb +++ b/lib/pluginmanager/update.rb @@ -47,7 +47,7 @@ def update_gems! filtered_plugins = plugins.map { |plugin| gemfile.find(plugin) } .compact .reject { |plugin| REJECTED_OPTIONS.any? { |key| plugin.options.has_key?(key) } } - .select { |plugin| local? || (verify? ? validates_version(plugin.name) : true) } + .select { |plugin| local? } .each { |plugin| gemfile.update(plugin.name) } # force a disk sync before running bundler @@ -69,12 +69,6 @@ def update_gems! display_bundler_output(output) end - # validate if there is any major version update so then we can ask the user if he is - # sure to update or not. - def validates_version(plugin) - LogStash::PluginManager.update_to_major_version?(plugin) - end - # create list of plugins to update def plugins_to_update(previous_gem_specs_map) if update_all? diff --git a/lib/pluginmanager/util.rb b/lib/pluginmanager/util.rb index ccb08c4d7fd..debd709d256 100644 --- a/lib/pluginmanager/util.rb +++ b/lib/pluginmanager/util.rb @@ -57,21 +57,6 @@ def self.fetch_latest_version_info(plugin, options={}) versions.first end - # Let's you decide to update to the last version of a plugin if this is a major version - # @param [String] A plugin name - # @return [Boolean] True in case the update is moving forward, false otherwise - def self.update_to_major_version?(plugin_name) - plugin_version = fetch_latest_version_info(plugin_name) - latest_version = plugin_version['number'].split(".") - current_version = Gem::Specification.find_by_name(plugin_name).version.version.split(".") - if (latest_version[0].to_i > current_version[0].to_i) - ## warn if users want to continue - puts("You are updating #{plugin_name} to a new version #{latest_version.join('.')}, which may not be compatible with #{current_version.join('.')}. are you sure you want to proceed (Y/N)?") - return ( "y" == STDIN.gets.strip.downcase ? true : false) - end - true - end - # @param spec [Gem::Specification] plugin gem specification # @return [Boolean] true if this spec is for an installable logstash plugin def self.logstash_plugin_gem_spec?(spec) From 5b22797b0b67ca5f2bea12f9eedda224fa1be3ba Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 8 Aug 2016 10:20:24 -0700 Subject: [PATCH 279/632] corrected description of pipeline.batch.delay from seconds to ms Fixes #5738 --- config/logstash.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/logstash.yml b/config/logstash.yml index 08d0ecf9dd5..cdd5107250d 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -45,7 +45,7 @@ # pipeline.batch.size: 125 # # How long to wait before dispatching an undersized batch to filters+workers -# Value is in seconds. +# Value is in milliseconds. # # pipeline.batch.delay: 5 # From 288728c735585e254b24376d2dff0435681517fb Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Mon, 8 Aug 2016 13:14:42 -0700 Subject: [PATCH 280/632] Fix warning when no local plugins are found Fixes #5740 --- lib/pluginmanager/update.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/pluginmanager/update.rb b/lib/pluginmanager/update.rb index 3227887fc7b..714f3e5fdfc 100644 --- a/lib/pluginmanager/update.rb +++ b/lib/pluginmanager/update.rb @@ -6,13 +6,16 @@ class LogStash::PluginManager::Update < LogStash::PluginManager::Command REJECTED_OPTIONS = [:path, :git, :github] + # These are local gems used by LS and needs to be filtered out of other plugin gems + NON_PLUGIN_LOCAL_GEMS = ["logstash-core", "logstash-core-event-java", "logstash-core-plugin-api"] parameter "[PLUGIN] ...", "Plugin name(s) to upgrade to latest version", :attribute_name => :plugins_arg option "--[no-]verify", :flag, "verify plugin validity before installation", :default => true option "--local", :flag, "force local-only plugin update. see bin/logstash-plugin package|unpack", :default => false def execute - local_gems = gemfile.locally_installed_gems + # remove "system" local gems used by LS + local_gems = gemfile.locally_installed_gems.map(&:name) - NON_PLUGIN_LOCAL_GEMS if local_gems.size > 0 if update_all? @@ -21,7 +24,7 @@ def execute plugins_with_path = plugins_arg & local_gems.map(&:name) end - warn_local_gems(plugins_with_path) + warn_local_gems(plugins_with_path) if plugins_with_path.size > 0 end update_gems! end @@ -47,7 +50,6 @@ def update_gems! filtered_plugins = plugins.map { |plugin| gemfile.find(plugin) } .compact .reject { |plugin| REJECTED_OPTIONS.any? { |key| plugin.options.has_key?(key) } } - .select { |plugin| local? } .each { |plugin| gemfile.update(plugin.name) } # force a disk sync before running bundler From 5c7196a5e83a67804c787545e6fcb465f8d5a3c6 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Mon, 8 Aug 2016 13:17:36 -0700 Subject: [PATCH 281/632] Remove use of map Fixes #5740 --- lib/pluginmanager/update.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pluginmanager/update.rb b/lib/pluginmanager/update.rb index 714f3e5fdfc..c33e25d610f 100644 --- a/lib/pluginmanager/update.rb +++ b/lib/pluginmanager/update.rb @@ -19,9 +19,9 @@ def execute if local_gems.size > 0 if update_all? - plugins_with_path = local_gems.map(&:name) + plugins_with_path = local_gems else - plugins_with_path = plugins_arg & local_gems.map(&:name) + plugins_with_path = plugins_arg & local_gems end warn_local_gems(plugins_with_path) if plugins_with_path.size > 0 From c19314f256faabfa498ce9be969d86806a61bb97 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 29 Jul 2016 19:26:20 -0700 Subject: [PATCH 282/632] improve doc on settings file by describing options Fixes #5713 --- docs/static/command-line-flags.asciidoc | 57 +++++++++------- docs/static/settings-file.asciidoc | 89 +++++++++++++++++++++++-- 2 files changed, 116 insertions(+), 30 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index f802819719d..44bc525e53e 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -3,61 +3,68 @@ Logstash has the following flags. You can use the `--help` flag to display this information. -You can also control Logstash execution by specifying options in the Logstash settings file. For more info, see <>. +Instead of specifying options at the command line, we recommend that you control Logstash execution +by specifying options in the Logstash <>. Using a settings file +makes it easier for you to specify mutliple options, and it provides you with a single, versionable +file that you can use to start up Logstash consistently for each run. + +Any flags that you set at the command line override the corresponding settings in the Logstash +<>. added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their names] *`-f, --path.config CONFIGFILE`*:: - Load the Logstash config from a specific file or directory, or a wildcard. If - given a directory or wildcard, config files will be read from the directory in + Load the Logstash config from a specific file or directory. If + you specify a directory or wildcard, config files are read from the directory in alphabetical order. *`-e, --config.string CONFIGSTRING`*:: - Use the given string as the configuration data. Same syntax as the config file. - If no input is specified, `stdin { type => stdin }` is default. If no output - is specified, `stdout { codec => rubydebug }}` is default. + Use the given string as the configuration data. Use the same syntax as the config file. + If no input is specified, `stdin { type => stdin }` is used by default. If no output + is specified, `stdout { codec => rubydebug }}` is used by default. *`-w, --pipeline.workers COUNT`*:: - Sets the number of pipeline workers (threads) to run for filter processing (default: number of cores). - If you find that events are backing up, or that the CPU is not saturated, consider increasing - this number to better utilize machine processing power. + Set the number of workers that will, in parallel, execute the filter and output stages of the pipeline. + This defaults to the number of the host's CPU cores. If you find that events are backing up, or that + the CPU is not saturated, consider increasing this number to better utilize machine processing power. *`-b, --pipeline.batch.size SIZE`*:: - This parameter defines the maximum number of events an individual worker thread will collect - before attempting to execute its filters and outputs. Default is 125 events. + Define the maximum number of events an individual worker thread will collect from inputs + before attempting to execute its filters and outputs. The default is 125 events. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the `LS_HEAP_SIZE` variable to effectively use the option. *`-u, --pipeline.batch.delay DELAY_IN_MS`*:: - When creating pipeline event batches, how long to wait while polling for the next event. - Default is 5ms. + When creating pipeline event batches, how long in milliseconds to wait before dispatching an undersized + batch to filters and workers. + The default is 5ms. *`-l, --path.log FILE`*:: - Log to a given path. Default is to log to stdout + Log to a given file. The default is to log to stdout *`--log.level`*:: - Set the log level to "quiet", "verbose", "warn" (default), or "debug". + Set the log level to "warn" (default), "quiet", "verbose", or "debug". *`--log.format FORMAT`*:: Set to "json" to log in JSON format, or "plain" (default) to use `Object#.inspect`. *`--path.settings SETTINGS_DIR`*:: - Directory containing the `logstash.yml` <>. + Set the directory containing the `logstash.yml` <>. *`--node.name NAME`*:: - Set a descriptive name for the node. If no value is specified, defaults to the current hostname. + Set a descriptive name for the node. If no value is specified, defaults to the machine's hostname. *`--config.debug`*:: - Print the compiled config ruby code out as a debug log (you must also have `--log.level=debug` enabled). - WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result + Show the fully compiled configuration as a debug log message (you must also have `--log.level=debug` enabled). + WARNING: The log message will include any 'password' options passed to plugin configs as plaintext, and may result in plaintext passwords appearing in your logs! *`-V, --version`*:: Display the version of Logstash. *`-p, --path.plugins`*:: - A path of where to find plugins. This flag can be given multiple times to include + Where to find custom plugins. This flag can be given multiple times to include multiple paths. Plugins are expected to be in a specific directory hierarchy: `PATH/logstash/TYPE/NAME.rb` where `TYPE` is `inputs`, `filters`, `outputs`, or `codecs`, and `NAME` is the name of the plugin. @@ -70,21 +77,21 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name each config block with the source file it came from. *`-r, --config.reload.automatic`*:: - Monitor configuration changes and reload the configuration whenever it is changed. + Periodically check if the configuration has changed and reload the configuration whenever it is changed. *`--config.reload.interval RELOAD_INTERVAL`*:: - Specifies how often Logstash checks the config files for changes. The default is every 3 seconds. + Set how often in seconds Logstash checks the config files for changes. The default is every 3 seconds. *`--http.host HTTP_HOST`*:: - Web API binding host (default: "127.0.0.1") + The bind address for the metrics REST endpoint. The default is "127.0.0.1". *`--http.port HTTP_PORT`*:: - Web API http port (default: 9600) + The bind port for the metrics REST endpoint. The default is 9600. *`--pipeline.unsafe_shutdown`*:: Force Logstash to exit during shutdown even if there are still inflight events in memory. By default, Logstash will refuse to quit until all received events - have been pushed to the outputs. + have been pushed to the outputs. Enabling this option can lead to data loss during shutdown. *`-h, --help`*:: Print help diff --git a/docs/static/settings-file.asciidoc b/docs/static/settings-file.asciidoc index 267f5f48e1a..e634a17aa60 100644 --- a/docs/static/settings-file.asciidoc +++ b/docs/static/settings-file.asciidoc @@ -3,10 +3,11 @@ added[5.0.0-alpha3] -You can set options in the Logstash settings file, `logstash.yml`, to control Logstash execution. Each setting in the -`logstash.yml` file corresponds to a <>. - -Any flags that you set at the command line override the corresponding settings in the `logstash.yml` file. +You can set options in the Logstash settings file, `logstash.yml`, to control Logstash execution. For example, +you can specify pipeline settings, the location of configuration files, logging options, and other settings. +Most of the settings in the `logstash.yml` file are also available as <> +when you run Logstash. Any flags that you set at the command line override the corresponding settings in the +`logstash.yml` file. The `logstash.yml` file, which is written in http://http://yaml.org/[YAML], is located in `LOGSTASH_HOME/config`. You can specify settings in hierarchical form or use flat keys. For example, to use hierarchical form to set the pipeline batch @@ -28,4 +29,82 @@ pipeline.batch.size: 125 pipeline.batch.delay: 5 ------------------------------------------------------------------------------------- -See <> for a description of the available options. +The `logstash.yml` file includes the following settings: + + *`node.name`*:: + A descriptive name for the node. If no value is specified, the default is the machine's hostname. + + *`path.data`*:: + The directory that Logstash and its plugins use for any persistent needs. The default is `LOGSTASH_HOME/data`. + + *`pipeline.workers`*:: + The number of workers that will, in parallel, execute the filter and output stages of the pipeline. + This defaults to the number of the host's CPU cores. If you find that events are backing up, or that the + CPU is not saturated, consider increasing this number to better utilize machine processing power. + + *`pipeline.output.workers`*:: + The number of workers to use per output plugin instance. + + *`pipeline.batch.size`*:: + The maximum number of events an individual worker thread will collect from inputs + before attempting to execute its filters and outputs. The default is 125 events. + Larger batch sizes are generally more efficient, but come at the cost of increased memory + overhead. You may have to increase the JVM heap size by setting the `LS_HEAP_SIZE` + variable to effectively use the option. + + *`pipeline.batch.delay`*:: + When creating pipeline event batches, how long in milliseconds to wait before dispatching an undersized + batch to filters and workers. The default is 5ms. + + *`pipeline.unsafe_shutdown`*:: + When set to true, forces Logstash to exit during shutdown even if there are still inflight events + in memory. By default, Logstash will refuse to quit until all received events + have been pushed to the outputs. Enabling this option can lead to data loss during shutdown. + + *`path.config`*:: + The path to the Logstash config for the main pipeline. If you specify a directory or wildcard, + config files are read from the directory in alphabetical order. + + *`config.string`*:: + A string that contains the pipeline configuration to use for the main pipeline. Use the same syntax as + the config file. + + *`config.test_and_exit`*:: + When set to true, checks that the configuration is valid and then exits. Note that grok patterns are not checked for + correctness with this setting. Logstash can read multiple config files from a directory. If you combine this + setting with `log.level: debug`, Logstash will log the combined config file, annotating + each config block with the source file it came from. + + *`config.reload.automatic`*:: + When set to true, periodically checks if the configuration has changed and reloads the configuration whenever it is changed. + This can also be triggered manually through the SIGHUP signal. + +*`config.reload.interval`*:: + How often in seconds Logstash checks the config files for changes. The default is every 3 seconds. + +*`config.debug`*:: + When set to true, shows the fully compiled configuration as a debug log message. You must also set `log.level: debug`. + WARNING: The log message will include any 'password' options passed to plugin configs as plaintext, and may result + in plaintext passwords appearing in your logs! + +*`http.host`*:: + The bind address for the metrics REST endpoint. The default is "127.0.0.1". + +*`http.port`*:: + The bind port for the metrics REST endpoint. The default is 9600. + +*`log.level`*:: + The log level. Valid options are `warn` (default), `quiet`, `verbose`, or `debug`. + +*`log.format`*:: + The log format. Set to `json` to log in JSON format, or `plain` (default) to use `Object#.inspect`. + +*`path.log`*:: + The file to log to. The default is to log to stdout. + +*`path.plugins`*:: + Where to find custom plugins. You can specify this setting multiple times to include + multiple paths. Plugins are expected to be in a specific directory hierarchy: + `PATH/logstash/TYPE/NAME.rb` where `TYPE` is `inputs`, `filters`, `outputs`, or `codecs`, + and `NAME` is the name of the plugin. + From d9fa4f224812b2ac21b4b5cf62d7974db57d6dff Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 5 Aug 2016 21:04:18 -0700 Subject: [PATCH 283/632] reformat as table and clarify logging options Fixes #5713 --- docs/static/command-line-flags.asciidoc | 8 +- docs/static/setting-up-logstash.asciidoc | 5 - docs/static/settings-file.asciidoc | 130 ++++++++++++++--------- 3 files changed, 87 insertions(+), 56 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 44bc525e53e..056b9598bc8 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -43,8 +43,12 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name *`-l, --path.log FILE`*:: Log to a given file. The default is to log to stdout -*`--log.level`*:: - Set the log level to "warn" (default), "quiet", "verbose", or "debug". +*`--log.level LEVEL`*:: + Valid levels are: +* `warn`: log warnings +* `quiet`: log errors +* `verbose`: log verbose info (for users) +* `debug`: log debugging info (for developers) *`--log.format FORMAT`*:: Set to "json" to log in JSON format, or "plain" (default) to use `Object#.inspect`. diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index 50d9fe04a65..fefe15c839e 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -48,11 +48,6 @@ config and the logs directories so that you do not delete important data later o | `{extract.path}/config` | `path.settings` -| logs - | Log files - | `{extract.path}/logs` - | `path.logs` - | plugins | Local, non Ruby-Gem plugin files. Each plugin is contained in a subdirectory. Recommended for development only. | `{extract.path}/plugins` diff --git a/docs/static/settings-file.asciidoc b/docs/static/settings-file.asciidoc index e634a17aa60..13e3f7ac300 100644 --- a/docs/static/settings-file.asciidoc +++ b/docs/static/settings-file.asciidoc @@ -31,80 +31,112 @@ pipeline.batch.delay: 5 The `logstash.yml` file includes the following settings: - *`node.name`*:: - A descriptive name for the node. If no value is specified, the default is the machine's hostname. - - *`path.data`*:: - The directory that Logstash and its plugins use for any persistent needs. The default is `LOGSTASH_HOME/data`. - - *`pipeline.workers`*:: - The number of workers that will, in parallel, execute the filter and output stages of the pipeline. - This defaults to the number of the host's CPU cores. If you find that events are backing up, or that the +[options="header"] +|======================================================================= +| Setting | Description | Default value + +| `node.name` +| A descriptive name for the node. +| Machine's hostname + +| `path.data` +| The directory that Logstash and its plugins use for any persistent needs. +|`LOGSTASH_HOME/data` + +| `pipeline.workers` +| The number of workers that will, in parallel, execute the filter and output stages of the pipeline. + If you find that events are backing up, or that the CPU is not saturated, consider increasing this number to better utilize machine processing power. - - *`pipeline.output.workers`*:: - The number of workers to use per output plugin instance. - - *`pipeline.batch.size`*:: - The maximum number of events an individual worker thread will collect from inputs - before attempting to execute its filters and outputs. The default is 125 events. +| Number of the host's CPU cores + +| `pipeline.output.workers` +| The number of workers to use per output plugin instance. +| `1` + +| `pipeline.batch.size` +| The maximum number of events an individual worker thread will collect from inputs + before attempting to execute its filters and outputs. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the `LS_HEAP_SIZE` variable to effectively use the option. +| `125` - *`pipeline.batch.delay`*:: - When creating pipeline event batches, how long in milliseconds to wait before dispatching an undersized - batch to filters and workers. The default is 5ms. +| `pipeline.batch.delay` +| When creating pipeline event batches, how long in milliseconds to wait before dispatching an undersized + batch to filters and workers. +| `5` - *`pipeline.unsafe_shutdown`*:: - When set to true, forces Logstash to exit during shutdown even if there are still inflight events +| `pipeline.unsafe_shutdown` +| When set to `true`, forces Logstash to exit during shutdown even if there are still inflight events in memory. By default, Logstash will refuse to quit until all received events have been pushed to the outputs. Enabling this option can lead to data loss during shutdown. +| `false` - *`path.config`*:: - The path to the Logstash config for the main pipeline. If you specify a directory or wildcard, +| `path.config` +| The path to the Logstash config for the main pipeline. If you specify a directory or wildcard, config files are read from the directory in alphabetical order. +| Platform-specific. See <>. + +| `config.string` +| A string that contains the pipeline configuration to use for the main pipeline. Use the same syntax as + the config file. +| None - *`config.string`*:: - A string that contains the pipeline configuration to use for the main pipeline. Use the same syntax as - the config file. - - *`config.test_and_exit`*:: - When set to true, checks that the configuration is valid and then exits. Note that grok patterns are not checked for +| `config.test_and_exit` +| When set to `true`, checks that the configuration is valid and then exits. Note that grok patterns are not checked for correctness with this setting. Logstash can read multiple config files from a directory. If you combine this setting with `log.level: debug`, Logstash will log the combined config file, annotating each config block with the source file it came from. +| `false` - *`config.reload.automatic`*:: - When set to true, periodically checks if the configuration has changed and reloads the configuration whenever it is changed. - This can also be triggered manually through the SIGHUP signal. +| `config.reload.automatic` +| When set to `true`, periodically checks if the configuration has changed and reloads the configuration whenever it is changed. + This can also be triggered manually through the SIGHUP signal. +| `false` -*`config.reload.interval`*:: - How often in seconds Logstash checks the config files for changes. The default is every 3 seconds. +| `config.reload.interval` +| How often in seconds Logstash checks the config files for changes. +| `3` -*`config.debug`*:: - When set to true, shows the fully compiled configuration as a debug log message. You must also set `log.level: debug`. +| `config.debug` +| When set to `true`, shows the fully compiled configuration as a debug log message. You must also set `log.level: debug`. WARNING: The log message will include any 'password' options passed to plugin configs as plaintext, and may result - in plaintext passwords appearing in your logs! + in plaintext passwords appearing in your logs! +| `false` -*`http.host`*:: - The bind address for the metrics REST endpoint. The default is "127.0.0.1". +| `http.host` +| The bind address for the metrics REST endpoint. +| `"127.0.0.1"` -*`http.port`*:: - The bind port for the metrics REST endpoint. The default is 9600. +| `http.port` +| The bind port for the metrics REST endpoint. +| `9600` -*`log.level`*:: - The log level. Valid options are `warn` (default), `quiet`, `verbose`, or `debug`. +| `log.level` +a| +The log level. Valid options are: + +* `warn`: log warnings +* `quiet`: log errors +* `verbose`: log verbose info (for users) +* `debug`: log debugging info (for developers) + +| `warn` -*`log.format`*:: - The log format. Set to `json` to log in JSON format, or `plain` (default) to use `Object#.inspect`. +| `log.format` +| The log format. Set to `json` to log in JSON format, or `plain` to use `Object#.inspect`. +| `plain` -*`path.log`*:: - The file to log to. The default is to log to stdout. +| `path.log` +| The file to log to. +| Logs to stdout -*`path.plugins`*:: - Where to find custom plugins. You can specify this setting multiple times to include +| `path.plugins` +| Where to find custom plugins. You can specify this setting multiple times to include multiple paths. Plugins are expected to be in a specific directory hierarchy: `PATH/logstash/TYPE/NAME.rb` where `TYPE` is `inputs`, `filters`, `outputs`, or `codecs`, and `NAME` is the name of the plugin. +| Platform-specific. See <>. + +|======================================================================= From f8739018ab9caf93d4dd1dda6a81932cbc6082da Mon Sep 17 00:00:00 2001 From: Daniel Riegel Date: Tue, 9 Aug 2016 17:27:05 +0200 Subject: [PATCH 284/632] Update after-install.sh - fix log file permissions (#5737) Update after-install.sh - fix log file permissions When installing Logstash (after previous removal of the Logstash RPM), there is a chance that there are old log files without proper owner. Running Logstash as service, it may want to append data to these log files. Consequently, the logstash service does not start because it doesn't have write permissions to that files. This patch sets the (new) user logstash to own these historic files. --- pkg/centos/after-install.sh | 2 +- pkg/debian/after-install.sh | 2 +- pkg/ubuntu/after-install.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/centos/after-install.sh b/pkg/centos/after-install.sh index c55619f0c69..7d5087ab87f 100644 --- a/pkg/centos/after-install.sh +++ b/pkg/centos/after-install.sh @@ -1,5 +1,5 @@ chown -R logstash:logstash /usr/share/logstash -chown logstash /var/log/logstash +chown -R logstash /var/log/logstash chown logstash:logstash /var/lib/logstash chmod 0644 /etc/logrotate.d/logstash sed -i \ diff --git a/pkg/debian/after-install.sh b/pkg/debian/after-install.sh index 786c441cbb8..5f9c6008cd3 100644 --- a/pkg/debian/after-install.sh +++ b/pkg/debian/after-install.sh @@ -1,7 +1,7 @@ #!/bin/sh chown -R logstash:logstash /usr/share/logstash -chown logstash /var/log/logstash +chown -R logstash /var/log/logstash chown logstash:logstash /var/lib/logstash chmod 755 /etc/logstash chmod 0644 /etc/logrotate.d/logstash diff --git a/pkg/ubuntu/after-install.sh b/pkg/ubuntu/after-install.sh index ca9ec6a8824..505f0328cde 100644 --- a/pkg/ubuntu/after-install.sh +++ b/pkg/ubuntu/after-install.sh @@ -1,7 +1,7 @@ #!/bin/sh chown -R logstash:logstash /usr/share/logstash -chown logstash /var/log/logstash +chown -R logstash /var/log/logstash chown logstash:logstash /var/lib/logstash chmod 0644 /etc/logrotate.d/logstash sed -i \ From afcb49d95ebce86b3c2375e004dc011eb9dd95ff Mon Sep 17 00:00:00 2001 From: Lee Drengenberg Date: Tue, 9 Aug 2016 13:17:05 -0500 Subject: [PATCH 285/632] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 868a625c3e1..7eeaa34ceb9 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ or bootstrap & install the core plugins required to run the tests To verify your environment, run `bin/logstash version` which should look like this - $ bin/logstash version + $ bin/logstash --version logstash 2.0.0.dev If you are seeing errors that look like From 8bb01d6358c071f4d07803018c5e4f939dbba2f0 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 9 Aug 2016 17:47:02 -0700 Subject: [PATCH 286/632] Fix the require_jar warning about jackson jars jrjackson was using 2.7.3 whereas core was using 2.7.0. Upgraded jrjackson to 0.4.0 and core libs to match jars in jrjackson Fixes #5159 Fixes #5750 --- logstash-core-event-java/build.gradle | 4 ++-- .../lib/logstash-core-event-java_jars.rb | 12 ++++++------ .../logstash-core-event-java.gemspec | 4 ++-- logstash-core/logstash-core.gemspec | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/logstash-core-event-java/build.gradle b/logstash-core-event-java/build.gradle index cbefa2fc893..8227db430c2 100644 --- a/logstash-core-event-java/build.gradle +++ b/logstash-core-event-java/build.gradle @@ -92,8 +92,8 @@ idea { } dependencies { - compile 'com.fasterxml.jackson.core:jackson-core:2.7.1' - compile 'com.fasterxml.jackson.core:jackson-databind:2.7.1-1' + compile 'com.fasterxml.jackson.core:jackson-core:2.7.3' + compile 'com.fasterxml.jackson.core:jackson-databind:2.7.3' provided 'org.jruby:jruby-core:1.7.25' testCompile 'junit:junit:4.12' testCompile 'net.javacrumbs.json-unit:json-unit:1.9.0' diff --git a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb index d4503671464..8b75882166a 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb @@ -2,13 +2,13 @@ begin require 'jar_dependencies' rescue LoadError - require 'com/fasterxml/jackson/core/jackson-core/2.7.1/jackson-core-2.7.1.jar' - require 'com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar' - require 'com/fasterxml/jackson/core/jackson-databind/2.7.1-1/jackson-databind-2.7.1-1.jar' + require 'com/fasterxml/jackson/core/jackson-databind/2.7.3/jackson-databind-2.7.3.jar' + require 'com/fasterxml/jackson/core/jackson-annotations/2.7.3/jackson-annotations-2.7.3.jar' + require 'com/fasterxml/jackson/core/jackson-core/2.7.3/jackson-core-2.7.3.jar' end if defined? Jars - require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.1' ) - require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) - require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.1-1' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.3' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.3' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.3' ) end diff --git a/logstash-core-event-java/logstash-core-event-java.gemspec b/logstash-core-event-java/logstash-core-event-java.gemspec index ef8d2a2bad5..42c190b5f28 100644 --- a/logstash-core-event-java/logstash-core-event-java.gemspec +++ b/logstash-core-event-java/logstash-core-event-java.gemspec @@ -26,6 +26,6 @@ Gem::Specification.new do |gem| # which does not have this problem. gem.add_runtime_dependency "ruby-maven", "~> 3.3.9" - gem.requirements << "jar com.fasterxml.jackson.core:jackson-core, 2.7.1" - gem.requirements << "jar com.fasterxml.jackson.core:jackson-databind, 2.7.1-1" + gem.requirements << "jar com.fasterxml.jackson.core:jackson-core, 2.7.3" + gem.requirements << "jar com.fasterxml.jackson.core:jackson-databind, 2.7.3" end diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index ececc74a80e..26c3b318c4c 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -46,7 +46,7 @@ Gem::Specification.new do |gem| if RUBY_PLATFORM == 'java' gem.platform = RUBY_PLATFORM - gem.add_runtime_dependency "jrjackson", "~> 0.3.7" #(Apache 2.0 license) + gem.add_runtime_dependency "jrjackson", "~> 0.4.0" #(Apache 2.0 license) else gem.add_runtime_dependency "oj" #(MIT-style license) end From e7dcdd66ba26992a66b18454629704b144152ed0 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 9 Aug 2016 23:33:15 -0700 Subject: [PATCH 287/632] Bump to 5.0.0-alpha6, next release (#5751) --- .../lib/logstash-core-event-java/version.rb | 2 +- logstash-core-event/lib/logstash-core-event/version.rb | 2 +- logstash-core-plugin-api/logstash-core-plugin-api.gemspec | 2 +- logstash-core/lib/logstash-core/version.rb | 2 +- logstash-core/lib/logstash/version.rb | 2 +- logstash-core/logstash-core.gemspec | 2 +- versions.yml | 8 ++++---- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/logstash-core-event-java/lib/logstash-core-event-java/version.rb b/logstash-core-event-java/lib/logstash-core-event-java/version.rb index 5c65253966c..5b8df770945 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java/version.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_EVENT_JAVA_VERSION = "5.0.0-alpha5" +LOGSTASH_CORE_EVENT_JAVA_VERSION = "5.0.0-alpha6" diff --git a/logstash-core-event/lib/logstash-core-event/version.rb b/logstash-core-event/lib/logstash-core-event/version.rb index ed6e80e3ee2..a634f64fa5d 100644 --- a/logstash-core-event/lib/logstash-core-event/version.rb +++ b/logstash-core-event/lib/logstash-core-event/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_EVENT_VERSION = "5.0.0-alpha5" +LOGSTASH_CORE_EVENT_VERSION = "5.0.0-alpha6" diff --git a/logstash-core-plugin-api/logstash-core-plugin-api.gemspec b/logstash-core-plugin-api/logstash-core-plugin-api.gemspec index 81a950a4e08..fced9a2d140 100644 --- a/logstash-core-plugin-api/logstash-core-plugin-api.gemspec +++ b/logstash-core-plugin-api/logstash-core-plugin-api.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = LOGSTASH_CORE_PLUGIN_API - gem.add_runtime_dependency "logstash-core", "5.0.0-alpha5" + gem.add_runtime_dependency "logstash-core", "5.0.0-alpha6" # Make sure we dont build this gem from a non jruby # environment. diff --git a/logstash-core/lib/logstash-core/version.rb b/logstash-core/lib/logstash-core/version.rb index 215205990be..33fd1e31b69 100644 --- a/logstash-core/lib/logstash-core/version.rb +++ b/logstash-core/lib/logstash-core/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_VERSION = "5.0.0-alpha5" +LOGSTASH_CORE_VERSION = "5.0.0-alpha6" diff --git a/logstash-core/lib/logstash/version.rb b/logstash-core/lib/logstash/version.rb index daacb64dd15..4cef54dc2be 100644 --- a/logstash-core/lib/logstash/version.rb +++ b/logstash-core/lib/logstash/version.rb @@ -11,4 +11,4 @@ # eventually this file should be in the root logstash lib fir and dependencies in logstash-core should be # fixed. -LOGSTASH_VERSION = "5.0.0-alpha5" +LOGSTASH_VERSION = "5.0.0-alpha6" diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index 26c3b318c4c..68c3ca99109 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = LOGSTASH_CORE_VERSION - gem.add_runtime_dependency "logstash-core-event-java", "5.0.0-alpha5" + gem.add_runtime_dependency "logstash-core-event-java", "5.0.0-alpha6" gem.add_runtime_dependency "cabin", "~> 0.8.0" #(Apache 2.0 license) gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license) diff --git a/versions.yml b/versions.yml index b1ee5ac4815..d0258a5602a 100644 --- a/versions.yml +++ b/versions.yml @@ -1,6 +1,6 @@ --- -logstash: 5.0.0-alpha5 -logstash-core: 5.0.0-alpha5 -logstash-core-event: 5.0.0-alpha5 -logstash-core-event-java: 5.0.0-alpha5 +logstash: 5.0.0-alpha6 +logstash-core: 5.0.0-alpha6 +logstash-core-event: 5.0.0-alpha6 +logstash-core-event-java: 5.0.0-alpha6 logstash-core-plugin-api: 2.1.7 From 22c857556f4b11a9fd6cfd979acbf9f9f9f59720 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 12 Aug 2016 13:08:30 -0400 Subject: [PATCH 288/632] Remove spec/integration With the addition of the qa acceptance test suite we have decide that we don't need to maintain this suite also since the acceptance test are running really similar test. Fixes: #5744 Fixes #5760 --- rakelib/test.rake | 23 ----- .../file_input_to_file_output_spec.rb | 41 --------- .../plugin_manager/logstash_spec.rb | 11 --- .../plugin_manager/plugin_install_spec.rb | 41 --------- .../plugin_manager/plugin_list_spec.rb | 41 --------- .../plugin_manager/plugin_new_spec.rb | 53 ----------- .../plugin_manager/plugin_uninstall_spec.rb | 24 ----- .../plugin_manager/plugin_update_spec.rb | 32 ------- spec/integration/spec_helper.rb | 37 -------- .../support/integration_test_helpers.rb | 89 ------------------- spec/integration/support/sample.log | 50 ----------- 11 files changed, 442 deletions(-) delete mode 100644 spec/integration/logstash_config/file_input_to_file_output_spec.rb delete mode 100644 spec/integration/plugin_manager/logstash_spec.rb delete mode 100644 spec/integration/plugin_manager/plugin_install_spec.rb delete mode 100644 spec/integration/plugin_manager/plugin_list_spec.rb delete mode 100644 spec/integration/plugin_manager/plugin_new_spec.rb delete mode 100644 spec/integration/plugin_manager/plugin_uninstall_spec.rb delete mode 100644 spec/integration/plugin_manager/plugin_update_spec.rb delete mode 100644 spec/integration/spec_helper.rb delete mode 100644 spec/integration/support/integration_test_helpers.rb delete mode 100644 spec/integration/support/sample.log diff --git a/rakelib/test.rake b/rakelib/test.rake index fb2dad658ab..a02a5c5d65a 100644 --- a/rakelib/test.rake +++ b/rakelib/test.rake @@ -104,29 +104,6 @@ namespace "test" do end task.reenable end - - task "integration" => ["setup"] do - require "fileutils" - - source = File.expand_path(File.join(File.dirname(__FILE__), "..")) - integration_path = File.join(source, "integration_run") - FileUtils.rm_rf(integration_path) - - exit(RSpec::Core::Runner.run([Rake::FileList["spec/integration/**/*_spec.rb"]])) - end - - namespace "integration" do - task "local" => ["setup"] do - require "fileutils" - - source = File.expand_path(File.join(File.dirname(__FILE__), "..")) - integration_path = File.join(source, "integration_run") - FileUtils.mkdir_p(integration_path) - - puts "[integration_spec] configuring local environment for running test in #{integration_path}, if you want to change this behavior delete the directory." - exit(RSpec::Core::Runner.run([Rake::FileList["spec/integration/**/*_spec.rb"]])) - end - end end task "test" => [ "test:core" ] diff --git a/spec/integration/logstash_config/file_input_to_file_output_spec.rb b/spec/integration/logstash_config/file_input_to_file_output_spec.rb deleted file mode 100644 index b9a4fcfd5c9..00000000000 --- a/spec/integration/logstash_config/file_input_to_file_output_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -# Encoding: utf-8 -require_relative "../spec_helper" -require "stud/temporary" - -describe "File input to File output" do - let(:number_of_events) { IO.readlines(sample_log).size } - let(:sample_log) { File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "sample.log")) } - let(:output_file) { Stud::Temporary.file.path } - let(:config) { -< \"#{sample_log}\" - stat_interval => 0 - start_position => \"beginning\" - sincedb_path => \"/dev/null\" - } - } - output { - file { - path => \"#{output_file}\" - } - } -EOS - } - - before :all do - command("bin/logstash-plugin install logstash-input-file logstash-output-file") - end - - it "writes events to file" do - cmd = "bin/logstash -e '#{config}'" - launch_logstash(cmd) - - expect(File.exist?(output_file)).to eq(true) - - # on shutdown the events arent flushed to disk correctly - # Known issue https://github.com/logstash-plugins/logstash-output-file/issues/12 - expect(IO.readlines(output_file).size).to be_between(number_of_events - 10, number_of_events).inclusive - end -end diff --git a/spec/integration/plugin_manager/logstash_spec.rb b/spec/integration/plugin_manager/logstash_spec.rb deleted file mode 100644 index 3f839f060f2..00000000000 --- a/spec/integration/plugin_manager/logstash_spec.rb +++ /dev/null @@ -1,11 +0,0 @@ -# Encoding: utf-8 -require_relative "../spec_helper" -require_relative "../../../logstash-core/lib/logstash/version" - -describe "bin/logstash" do - it "returns the logstash version" do - result = command("bin/logstash --version") - expect(result.exit_status).to eq(0) - expect(result.stdout).to match(/^logstash\s#{LOGSTASH_VERSION}/) - end -end diff --git a/spec/integration/plugin_manager/plugin_install_spec.rb b/spec/integration/plugin_manager/plugin_install_spec.rb deleted file mode 100644 index db31bc95740..00000000000 --- a/spec/integration/plugin_manager/plugin_install_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -# Encoding: utf-8 -require_relative "../spec_helper" -require "fileutils" - -context "bin/logstash-plugin install" do - context "with a local gem" do - let(:gem_name) { "logstash-input-wmi" } - let(:local_gem) { gem_fetch(gem_name) } - - it "install the gem succesfully" do - result = command("bin/logstash-plugin install --no-verify #{local_gem}") - expect(result.exit_status).to eq(0) - expect(result.stdout).to match(/^Installing\s#{gem_name}\nInstallation\ssuccessful$/) - end - end - - context "when the plugin exist" do - let(:plugin_name) { "logstash-input-drupal_dblog" } - - it "sucessfully install" do - result = command("bin/logstash-plugin install #{plugin_name}") - expect(result.exit_status).to eq(0) - expect(result.stdout).to match(/^Validating\s#{plugin_name}\nInstalling\s#{plugin_name}\nInstallation\ssuccessful$/) - end - - it "allow to install a specific version" do - version = "2.0.2" - result = command("bin/logstash-plugin install --version 2.0.2 #{plugin_name}") - expect(result.exit_status).to eq(0) - expect(result.stdout).to match(/^Validating\s#{plugin_name}-#{version}\nInstalling\s#{plugin_name}\nInstallation\ssuccessful$/) - end - end - - context "when the plugin doesn't exist" do - it "fails to install" do - result = command("bin/logstash-plugin install --no-verify logstash-output-impossible-plugin") - expect(result.exit_status).to eq(1) - expect(result.stderr).to match(/Installation Aborted, message: Could not find gem/) - end - end -end diff --git a/spec/integration/plugin_manager/plugin_list_spec.rb b/spec/integration/plugin_manager/plugin_list_spec.rb deleted file mode 100644 index d2ae7807f1c..00000000000 --- a/spec/integration/plugin_manager/plugin_list_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -# Encoding: utf-8 -require_relative "../spec_helper" - -describe "bin/logstash-plugin list" do - context "without a specific plugin" do - it "display a list of plugins" do - result = command("bin/logstash-plugin list") - expect(result.exit_status).to eq(0) - expect(result.stdout.split("\n").size).to be > 1 - end - - it "display a list of installed plugins" do - result = command("bin/logstash-plugin list --installed") - expect(result.exit_status).to eq(0) - expect(result.stdout.split("\n").size).to be > 1 - end - - it "list the plugins with their versions" do - result = command("bin/logstash-plugin list --verbose") - result.stdout.split("\n").each do |plugin| - expect(plugin).to match(/^logstash-\w+-\w+\s\(\d+\.\d+.\d+\)/) - end - expect(result.exit_status).to eq(0) - end - end - - context "with a specific plugin" do - let(:plugin_name) { "logstash-input-stdin" } - it "list the plugin and display the plugin name" do - result = command("bin/logstash-plugin list #{plugin_name}") - expect(result.stdout).to match(/^#{plugin_name}$/) - expect(result.exit_status).to eq(0) - end - - it "list the plugin with his version" do - result = command("bin/logstash-plugin list --verbose #{plugin_name}") - expect(result.stdout).to match(/^#{plugin_name} \(\d+\.\d+.\d+\)/) - expect(result.exit_status).to eq(0) - end - end -end diff --git a/spec/integration/plugin_manager/plugin_new_spec.rb b/spec/integration/plugin_manager/plugin_new_spec.rb deleted file mode 100644 index a961cea4bcf..00000000000 --- a/spec/integration/plugin_manager/plugin_new_spec.rb +++ /dev/null @@ -1,53 +0,0 @@ -# Encoding: utf-8 -require_relative "../spec_helper" -require "fileutils" - -describe "bin/logstash-plugin generate" do - - shared_examples "bin/logstash-plugin generate" do - let(:plugin_name) { "dummy" } - let(:full_plugin_name) { "logstash-#{plugin_type}-#{plugin_name}" } - - describe "plugin creation" do - - before(:each) do - FileUtils.rm_rf(full_plugin_name) - end - - after(:each) do - FileUtils.rm_rf(full_plugin_name) - end - - it "generate a new plugin" do - result = command("bin/logstash-plugin generate --type #{plugin_type} --name #{plugin_name}") - expect(result.exit_status).to eq(0) - expect(result.stdout).to match(/Creating #{full_plugin_name}/) - expect(Dir.exist?("#{full_plugin_name}")).to eq(true) - end - - it "raise an error if the plugin is already generated" do - command("bin/logstash-plugin generate --type #{plugin_type} --name #{plugin_name}") - result = command("bin/logstsh-plugin generate --type #{plugin_type} --name #{plugin_name}") - expect(result.exit_status).to eq(1) - end - end - end - - describe "bin/logstash-plugin generate input" do - it_behaves_like "bin/logstash-plugin generate" do - let(:plugin_type) { "input" } - end - end - - describe "bin/logstash-plugin generate filter" do - it_behaves_like "bin/logstash-plugin generate" do - let(:plugin_type) { "filter" } - end - end - - describe "bin/logstash-plugin generate output" do - it_behaves_like "bin/logstash-plugin generate" do - let(:plugin_type) { "output" } - end - end -end diff --git a/spec/integration/plugin_manager/plugin_uninstall_spec.rb b/spec/integration/plugin_manager/plugin_uninstall_spec.rb deleted file mode 100644 index df3c6e4396e..00000000000 --- a/spec/integration/plugin_manager/plugin_uninstall_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -# Encoding: utf-8 -require_relative "../spec_helper" - -describe "bin/logstash-plugin uninstall" do - context "when the plugin isn't installed" do - it "fails to uninstall it" do - result = command("bin/logstash-plugin uninstall logstash-filter-cidr") - expect(result.stderr).to match(/ERROR: Uninstall Aborted, message: This plugin has not been previously installed, aborting/) - expect(result.exit_status).to eq(1) - end - end - - context "when the plugin is installed" do - it "succesfully uninstall it" do - # make sure we have the plugin installed. - command("bin/logstash-plugin install logstash-filter-ruby") - - result = command("bin/logstash-plugin uninstall logstash-filter-ruby") - - expect(result.stdout).to match(/^Uninstalling logstash-filter-ruby/) - expect(result.exit_status).to eq(0) - end - end -end diff --git a/spec/integration/plugin_manager/plugin_update_spec.rb b/spec/integration/plugin_manager/plugin_update_spec.rb deleted file mode 100644 index 549a9babc80..00000000000 --- a/spec/integration/plugin_manager/plugin_update_spec.rb +++ /dev/null @@ -1,32 +0,0 @@ -# Encoding: utf-8 -require_relative "../spec_helper" - -describe "update" do - let(:plugin_name) { "logstash-input-stdin" } - let(:previous_version) { "2.0.1" } - - before do - command("bin/logstash-plugin install --version #{previous_version} #{plugin_name}") - cmd = command("bin/logstash-plugin list --verbose #{plugin_name}") - expect(cmd.stdout).to match(/#{plugin_name} \(#{previous_version}\)/) - end - - context "update a specific plugin" do - subject { command("bin/logstash-plugin update #{plugin_name}") } - - it "has executed succesfully" do - expect(subject.exit_status).to eq(0) - expect(subject.stdout).to match(/Updating #{plugin_name}/) - end - end - - context "update all the plugins" do - subject { command("bin/logstash-plugin update") } - - it "has executed succesfully" do - expect(subject.exit_status).to eq(0) - cmd = command("bin/logstash-plugin list --verbose #{plugin_name}").stdout - expect(cmd).to match(/logstash-input-stdin \(#{LogStashTestHelpers.latest_version(plugin_name)}\)/) - end - end -end diff --git a/spec/integration/spec_helper.rb b/spec/integration/spec_helper.rb deleted file mode 100644 index 065c812411f..00000000000 --- a/spec/integration/spec_helper.rb +++ /dev/null @@ -1,37 +0,0 @@ -# encoding: utf-8 -require_relative "support/integration_test_helpers" -require_relative "../../logstash-core/lib/logstash/environment" -require "fileutils" - -if LogStash::Environment.windows? - puts "[integration] Theses integration test are specifically made to be run on under linux/unix" - puts "[integration] Please see our windows version of the tests https://github.com/elastic/logstash/tree/master/test/windows" -end - -# Configure the test environment -source = File.expand_path(File.join(File.dirname(__FILE__), "..", "..")) -integration_path = File.join(source, "integration_run") - -puts "[integration_spec] configure environment" - -if Dir.exists?(integration_path) - # We copy the current logstash into a temporary directory - # since the tests are a bit destructive - FileUtils.mkdir_p(integration_path) - rsync_cmd = "rsync -a --delete --exclude 'rspec' --exclude '#{File.basename(integration_path)}' --exclude 'integration_spec' --exclude '.git' #{source} #{integration_path}" - - puts "[integration_spec] Rsync source code into: #{integration_path}" - system(rsync_cmd) - puts "[integration_spec] Finish rsync" - - LOGSTASH_TEST_PATH = File.join(integration_path, "logstash") -else - LOGSTASH_TEST_PATH = File.expand_path(File.join(File.dirname(__FILE__), "..")) -end - -puts "[integration_spec] Running the test in #{LOGSTASH_TEST_PATH}" -puts "[integration_spec] Running specs" - -RSpec.configure do |config| - config.order = "random" -end diff --git a/spec/integration/support/integration_test_helpers.rb b/spec/integration/support/integration_test_helpers.rb deleted file mode 100644 index aad90f8f07a..00000000000 --- a/spec/integration/support/integration_test_helpers.rb +++ /dev/null @@ -1,89 +0,0 @@ -# encoding: utf-8 -require "json" -require "open3" -require "open-uri" -require "stud/temporary" -require "fileutils" -require "bundler" -require "gems" - -class CommandResponse - attr_reader :stdin, :stdout, :stderr, :exit_status - - def initialize(cmd, stdin, stdout, stderr, exit_status) - @stdin = stdin - @stdout = stdout - @stderr = stderr - @exit_status = exit_status - @cmd = cmd - end - - def to_debug - "DEBUG: stdout: #{stdout}, stderr: #{stderr}, exit_status: #{exit_status}" - end - - def to_s - @cmd - end -end - -def command(cmd, path = nil) - # http://bundler.io/v1.3/man/bundle-exec.1.html - # see shelling out. - # - # Since most of the integration test are environment destructive - # its better to run them in a cloned directory. - path = LOGSTASH_TEST_PATH if path == nil - - Bundler.with_clean_env do - Dir.chdir(path) do - Open3.popen3(cmd) do |stdin, stdout, stderr, wait_thr| - CommandResponse.new(cmd, - stdin, - stdout.read.chomp, - stderr.read.chomp, - wait_thr.value.exitstatus) - end - end - end -end - -def gem_fetch(name) - tmp = Stud::Temporary.directory - FileUtils.mkdir_p(tmp) - - c = command("gem fetch #{name}", tmp) - - if c.exit_status == 1 - raise RuntimeError, "Can't fetch gem #{name}" - end - - return Dir.glob(File.join(tmp, "#{name}*.gem")).first -end - -# This is a bit hacky since JRuby doesn't support fork, -# we use popen4 which return the pid of the process and make sure we kill it -# after letting it run for a few seconds. -def launch_logstash(cmd, path = nil) - path = LOGSTASH_TEST_PATH if path == nil - pid = 0 - - Thread.new do - Bundler.with_clean_env do - Dir.chdir(path) do - pid, input, output, error = IO.popen4(cmd) #jruby only - end - end - end - sleep(30) - begin - Process.kill("INT", pid) - rescue - end -end - -module LogStashTestHelpers - def self.latest_version(name) - Gems.versions(name).first["number"] - end -end diff --git a/spec/integration/support/sample.log b/spec/integration/support/sample.log deleted file mode 100644 index 8f304b59c45..00000000000 --- a/spec/integration/support/sample.log +++ /dev/null @@ -1,50 +0,0 @@ -83.149.9.216 - - [26/Aug/2014:21:13:42 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-search.png HTTP/1.1" 200 203023 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:42 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-dashboard3.png HTTP/1.1" 200 171717 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:44 +0000] "GET /presentations/logstash-monitorama-2013/plugin/highlight/highlight.js HTTP/1.1" 200 26185 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:44 +0000] "GET /presentations/logstash-monitorama-2013/plugin/zoom-js/zoom.js HTTP/1.1" 200 7697 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:45 +0000] "GET /presentations/logstash-monitorama-2013/plugin/notes/notes.js HTTP/1.1" 200 2892 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:42 +0000] "GET /presentations/logstash-monitorama-2013/images/sad-medic.png HTTP/1.1" 200 430406 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:45 +0000] "GET /presentations/logstash-monitorama-2013/css/fonts/Roboto-Bold.ttf HTTP/1.1" 200 38720 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:45 +0000] "GET /presentations/logstash-monitorama-2013/css/fonts/Roboto-Regular.ttf HTTP/1.1" 200 41820 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:45 +0000] "GET /presentations/logstash-monitorama-2013/images/frontend-response-codes.png HTTP/1.1" 200 52878 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:43 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-dashboard.png HTTP/1.1" 200 321631 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:46 +0000] "GET /presentations/logstash-monitorama-2013/images/Dreamhost_logo.svg HTTP/1.1" 200 2126 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:43 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-dashboard2.png HTTP/1.1" 200 394967 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:46 +0000] "GET /presentations/logstash-monitorama-2013/images/apache-icon.gif HTTP/1.1" 200 8095 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:46 +0000] "GET /presentations/logstash-monitorama-2013/images/nagios-sms5.png HTTP/1.1" 200 78075 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:46 +0000] "GET /presentations/logstash-monitorama-2013/images/redis.png HTTP/1.1" 200 25230 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:47 +0000] "GET /presentations/logstash-monitorama-2013/images/elasticsearch.png HTTP/1.1" 200 8026 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:47 +0000] "GET /presentations/logstash-monitorama-2013/images/logstashbook.png HTTP/1.1" 200 54662 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:47 +0000] "GET /presentations/logstash-monitorama-2013/images/github-contributions.png HTTP/1.1" 200 34245 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:47 +0000] "GET /presentations/logstash-monitorama-2013/css/print/paper.css HTTP/1.1" 200 4254 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:47 +0000] "GET /presentations/logstash-monitorama-2013/images/1983_delorean_dmc-12-pic-38289.jpeg HTTP/1.1" 200 220562 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:46 +0000] "GET /presentations/logstash-monitorama-2013/images/simple-inputs-filters-outputs.jpg HTTP/1.1" 200 1168622 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:46 +0000] "GET /presentations/logstash-monitorama-2013/images/tiered-outputs-to-inputs.jpg HTTP/1.1" 200 1079983 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -83.149.9.216 - - [26/Aug/2014:21:13:53 +0000] "GET /favicon.ico HTTP/1.1" 200 3638 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" -24.236.252.67 - - [26/Aug/2014:21:14:10 +0000] "GET /favicon.ico HTTP/1.1" 200 3638 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0" -93.114.45.13 - - [26/Aug/2014:21:14:32 +0000] "GET /articles/dynamic-dns-with-dhcp/ HTTP/1.1" 200 18848 "http://www.google.ro/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCwQFjAB&url=http%3A%2F%2Fwww.semicomplete.com%2Farticles%2Fdynamic-dns-with-dhcp%2F&ei=W88AU4n9HOq60QXbv4GwBg&usg=AFQjCNEF1X4Rs52UYQyLiySTQxa97ozM4g&bvm=bv.61535280,d.d2k" "Mozilla/5.0 (X11; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0" -93.114.45.13 - - [26/Aug/2014:21:14:32 +0000] "GET /reset.css HTTP/1.1" 200 1015 "http://www.semicomplete.com/articles/dynamic-dns-with-dhcp/" "Mozilla/5.0 (X11; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0" -93.114.45.13 - - [26/Aug/2014:21:14:33 +0000] "GET /style2.css HTTP/1.1" 200 4877 "http://www.semicomplete.com/articles/dynamic-dns-with-dhcp/" "Mozilla/5.0 (X11; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0" -93.114.45.13 - - [26/Aug/2014:21:14:33 +0000] "GET /favicon.ico HTTP/1.1" 200 3638 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0" -93.114.45.13 - - [26/Aug/2014:21:14:33 +0000] "GET /images/jordan-80.png HTTP/1.1" 200 6146 "http://www.semicomplete.com/articles/dynamic-dns-with-dhcp/" "Mozilla/5.0 (X11; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0" -93.114.45.13 - - [26/Aug/2014:21:14:33 +0000] "GET /images/web/2009/banner.png HTTP/1.1" 200 52315 "http://www.semicomplete.com/style2.css" "Mozilla/5.0 (X11; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0" -66.249.73.135 - - [26/Aug/2014:21:15:03 +0000] "GET /blog/tags/ipv6 HTTP/1.1" 200 12251 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" -50.16.19.13 - - [26/Aug/2014:21:15:15 +0000] "GET /blog/tags/puppet?flav=rss20 HTTP/1.1" 200 14872 "http://www.semicomplete.com/blog/tags/puppet?flav=rss20" "Tiny Tiny RSS/1.11 (http://tt-rss.org/)" -66.249.73.185 - - [26/Aug/2014:21:15:23 +0000] "GET / HTTP/1.1" 200 37932 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" -110.136.166.128 - - [26/Aug/2014:21:16:11 +0000] "GET /projects/xdotool/ HTTP/1.1" 200 12292 "http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&cad=rja&sqi=2&ved=0CFYQFjAE&url=http%3A%2F%2Fwww.semicomplete.com%2Fprojects%2Fxdotool%2F&ei=6cwAU_bRHo6urAeI0YD4Ag&usg=AFQjCNE3V_aCf3-gfNcbS924S6jZ6FqffA&bvm=bv.61535280,d.bmk" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0" -46.105.14.53 - - [26/Aug/2014:21:16:17 +0000] "GET /blog/tags/puppet?flav=rss20 HTTP/1.1" 200 14872 "-" "UniversalFeedParser/4.2-pre-314-svn +http://feedparser.org/" -110.136.166.128 - - [26/Aug/2014:21:16:22 +0000] "GET /reset.css HTTP/1.1" 200 1015 "http://www.semicomplete.com/projects/xdotool/" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0" -110.136.166.128 - - [26/Aug/2014:21:16:22 +0000] "GET /style2.css HTTP/1.1" 200 4877 "http://www.semicomplete.com/projects/xdotool/" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0" -110.136.166.128 - - [26/Aug/2014:21:16:22 +0000] "GET /favicon.ico HTTP/1.1" 200 3638 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0" -110.136.166.128 - - [26/Aug/2014:21:16:22 +0000] "GET /images/jordan-80.png HTTP/1.1" 200 6146 "http://www.semicomplete.com/projects/xdotool/" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0" -123.125.71.35 - - [26/Aug/2014:21:16:31 +0000] "GET /blog/tags/release HTTP/1.1" 200 40693 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" -110.136.166.128 - - [26/Aug/2014:21:16:22 +0000] "GET /images/web/2009/banner.png HTTP/1.1" 200 52315 "http://www.semicomplete.com/style2.css" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0" -50.150.204.184 - - [26/Aug/2014:21:17:06 +0000] "GET /images/googledotcom.png HTTP/1.1" 200 65748 "http://www.google.com/search?q=https//:google.com&source=lnms&tbm=isch&sa=X&ei=4-r8UvDrKZOgkQe7x4CICw&ved=0CAkQ_AUoAA&biw=320&bih=441" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; LG-MS770 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" -207.241.237.225 - - [26/Aug/2014:21:17:35 +0000] "GET /blog/tags/examples HTTP/1.0" 200 9208 "http://www.semicomplete.com/blog/tags/C" "Mozilla/5.0 (compatible; archive.org_bot +http://www.archive.org/details/archive.org_bot)" -200.49.190.101 - - [26/Aug/2014:21:17:39 +0000] "GET /reset.css HTTP/1.1" 200 1015 "-" "-" -200.49.190.100 - - [26/Aug/2014:21:17:37 +0000] "GET /blog/tags/web HTTP/1.1" 200 44019 "-" "QS304 Profile/MIDP-2.0 Configuration/CLDC-1.1" -200.49.190.101 - - [26/Aug/2014:21:17:41 +0000] "GET /style2.css HTTP/1.1" 200 4877 "-" "-" -200.49.190.101 - - [26/Aug/2014:21:17:48 +0000] "GET /images/jordan-80.png HTTP/1.1" 200 6146 "-" "QS304 Profile/MIDP-2.0 Configuration/CLDC-1.1" -66.249.73.185 - - [26/Aug/2014:21:18:48 +0000] "GET /reset.css HTTP/1.1" 200 1015 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" -66.249.73.135 - - [26/Aug/2014:21:18:55 +0000] "GET /blog/tags/munin HTTP/1.1" 200 9746 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" -66.249.73.135 - - [26/Aug/2014:21:19:16 +0000] "GET /blog/tags/firefox?flav=rss20 HTTP/1.1" 200 16021 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" From 59bc304f27f60cff9a02284b4bd004767aefeca7 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 17 Aug 2016 10:47:50 +0100 Subject: [PATCH 289/632] show meaningful error message with an unknown command Fixes #5772 --- logstash-core/lib/logstash/patches/clamp.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/logstash-core/lib/logstash/patches/clamp.rb b/logstash-core/lib/logstash/patches/clamp.rb index 0934157a9e3..c84686adb44 100644 --- a/logstash-core/lib/logstash/patches/clamp.rb +++ b/logstash-core/lib/logstash/patches/clamp.rb @@ -63,6 +63,12 @@ class StrictCommand < Command class << self include ::Clamp::Option::StrictDeclaration end + + def handle_remaining_arguments + unless remaining_arguments.empty? + signal_usage_error "Unknown command '#{remaining_arguments.first}'" + end + end end end From 226c51ca0ea0ce9905cbe2aabf1e7b4b1021ce9a Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 17 Aug 2016 15:44:17 -0400 Subject: [PATCH 290/632] Add GC Strategy under /note/jvm Fixes: #5755 Fixes #5775 --- logstash-core/lib/logstash/api/commands/node.rb | 5 +++-- logstash-core/spec/api/lib/api/node_spec.rb | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/node.rb b/logstash-core/lib/logstash/api/commands/node.rb index d35fac99011..e27ecc3c954 100644 --- a/logstash-core/lib/logstash/api/commands/node.rb +++ b/logstash-core/lib/logstash/api/commands/node.rb @@ -35,6 +35,7 @@ def os def jvm memory_bean = ManagementFactory.getMemoryMXBean() + { :pid => ManagementFactory.getRuntimeMXBean().getName().split("@").first.to_i, :version => java.lang.System.getProperty("java.version"), @@ -48,14 +49,14 @@ def jvm :heap_max_in_bytes => (memory_bean.getHeapMemoryUsage().getMax() < 0 ? 0 : memory_bean.getHeapMemoryUsage().getMax()), :non_heap_init_in_bytes => (memory_bean.getNonHeapMemoryUsage().getInit() < 0 ? 0 : memory_bean.getNonHeapMemoryUsage().getInit()), :non_heap_max_in_bytes => (memory_bean.getNonHeapMemoryUsage().getMax() < 0 ? 0 : memory_bean.getNonHeapMemoryUsage().getMax()) - } + }, + :gc_collectors => ManagementFactory.getGarbageCollectorMXBeans().collect(&:getName) } end def hot_threads(options={}) HotThreadsReport.new(self, options) end - end end end diff --git a/logstash-core/spec/api/lib/api/node_spec.rb b/logstash-core/spec/api/lib/api/node_spec.rb index 4ba62d10f1a..60cdb6b02c0 100644 --- a/logstash-core/spec/api/lib/api/node_spec.rb +++ b/logstash-core/spec/api/lib/api/node_spec.rb @@ -82,7 +82,8 @@ "heap_max_in_bytes" => Numeric, "non_heap_init_in_bytes" => Numeric, "non_heap_max_in_bytes" => Numeric - } + }, + "gc_collectors" => Array }, "hot_threads"=> { "time" => String, From 6c88649afe48398c9f2eeea3726344149b9dd968 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 16 Aug 2016 11:21:25 -0400 Subject: [PATCH 291/632] Small improvements for the hot_threads api - Fix the typo in the human format - Make sure we use the I18n string for the output Fixes #5766 --- .../lib/logstash/api/commands/hot_threads_reporter.rb | 11 ++++------- logstash-core/lib/logstash/api/modules/node.rb | 1 - logstash-core/locales/en.yml | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb b/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb index b5c0a914fbe..39333cf7e73 100644 --- a/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb +++ b/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb @@ -1,6 +1,7 @@ # encoding: utf-8 class HotThreadsReport + STRING_SEPARATOR_LENGHT = 80.freeze HOT_THREADS_STACK_TRACES_SIZE_DEFAULT = 10.freeze def initialize(cmd, options) @@ -13,19 +14,16 @@ def initialize(cmd, options) def to_s hash = to_hash[:hot_threads] report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" - report << '=' * 80 + report << '=' * STRING_SEPARATOR_LENGHT report << "\n" hash[:threads].each do |thread| - thread_report = "" - thread_report = "#{I18n.t("logstash.web_api. - hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" - thread_report = "#{thread[:percent_of_cpu_time]} % of of cpu usage by #{thread[:state]} thread named '#{thread[:name]}'\n" + thread_report = "#{I18n.t("logstash.web_api.hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" thread_report << "#{thread[:path]}\n" if thread[:path] thread[:traces].each do |trace| thread_report << "\t#{trace}\n" end report << thread_report - report << '-' * 80 + report << '-' * STRING_SEPARATOR_LENGHT report << "\n" end report @@ -57,5 +55,4 @@ def cpu_time_as_percent(hash) def cpu_time(hash) hash["cpu.time"] / 1000000.0 end - end diff --git a/logstash-core/lib/logstash/api/modules/node.rb b/logstash-core/lib/logstash/api/modules/node.rb index d76f7dccc34..5f420dee296 100644 --- a/logstash-core/lib/logstash/api/modules/node.rb +++ b/logstash-core/lib/logstash/api/modules/node.rb @@ -26,7 +26,6 @@ def node selected_fields = extract_fields(params["filter"].to_s.strip) respond_with node.all(selected_fields) end - end end end diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 3a32ba97202..52cc4b0666f 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -78,7 +78,7 @@ en: ::: {%{hostname}} Hot threads at %{time}, busiestThreads=%{top_count}: thread_title: |- - %{percent_of_cpu_time} % of cpu usage by %{thread_state} thread named '%{thread_name}' + %{percent_of_cpu_time} % of cpu usage, state: %{thread_state}, thread name: '%{thread_name}' runner: short-help: |- usage: From db5edacf9acbee6d917f486bbbefa993c2ecb176 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 16 Aug 2016 11:58:08 -0400 Subject: [PATCH 292/632] adding test for the human hot_threads call Fixes #5766 --- .../lib/logstash/api/modules/node.rb | 7 ++- logstash-core/spec/api/lib/api/node_spec.rb | 53 ++++++++++++++++--- 2 files changed, 53 insertions(+), 7 deletions(-) diff --git a/logstash-core/lib/logstash/api/modules/node.rb b/logstash-core/lib/logstash/api/modules/node.rb index 5f420dee296..dae676c6743 100644 --- a/logstash-core/lib/logstash/api/modules/node.rb +++ b/logstash-core/lib/logstash/api/modules/node.rb @@ -14,7 +14,7 @@ def node options = { :ignore_idle_threads => as_boolean(ignore_idle_threads), - :human => params.has_key?("human") + :human => human? } options[:threads] = params["threads"].to_i if params.has_key?("threads") @@ -26,6 +26,11 @@ def node selected_fields = extract_fields(params["filter"].to_s.strip) respond_with node.all(selected_fields) end + + protected + def human? + params.has_key?("human") && (params["human"].nil? || as_boolean(params["human"]) == true) + end end end end diff --git a/logstash-core/spec/api/lib/api/node_spec.rb b/logstash-core/spec/api/lib/api/node_spec.rb index 60cdb6b02c0..d7c9efac4fa 100644 --- a/logstash-core/spec/api/lib/api/node_spec.rb +++ b/logstash-core/spec/api/lib/api/node_spec.rb @@ -39,25 +39,66 @@ end context "when asking for human output" do + [ + "/hot_threads?human", + "/hot_threads?human=true", + "/hot_threads?human=1", + "/hot_threads?human=t", + ].each do |path| + + before(:all) do + do_request { get path } + end + + let(:payload) { last_response.body } + + it "should return a text/plain content type" do + expect(last_response.content_type).to eq("text/plain;charset=utf-8") + end + + it "should return a plain text payload" do + expect{ JSON.parse(payload) }.to raise_error + end + end + end + context "When asking for human output and threads count" do before(:all) do - do_request { get "/hot_threads?human" } + do_request { get "/hot_threads?human=t&threads=2"} end let(:payload) { last_response.body } - it "should return a text/plain content type" do - expect(last_response.content_type).to eq("text/plain;charset=utf-8") + it "should return information for <= # requested threads" do + expect(payload.scan(/thread name/).size).to eq(2) end + end - it "should return a plain text payload" do - expect{ JSON.parse(payload) }.to raise_error + context "when not asking for human output" do + [ + "/hot_threads?human=false", + "/hot_threads?human=0", + "/hot_threads?human=f", + ].each do |path| + before(:all) do + do_request { get path } + end + + it "should return a json payload content type" do + expect(last_response.content_type).to eq("application/json") + end + + let(:payload) { last_response.body } + + it "should return a json payload" do + expect{ JSON.parse(payload) }.not_to raise_error + end end end describe "Generic JSON testing" do extend ResourceDSLMethods - + root_structure = { "pipeline" => { "workers" => Numeric, From f2d0dced6ff82e3da140cf137e638d37fc35dc4d Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 16 Aug 2016 12:09:12 -0400 Subject: [PATCH 293/632] make the thread count more reliable Fixes #5766 --- logstash-core/spec/api/lib/api/node_spec.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/logstash-core/spec/api/lib/api/node_spec.rb b/logstash-core/spec/api/lib/api/node_spec.rb index d7c9efac4fa..357b3b5baa4 100644 --- a/logstash-core/spec/api/lib/api/node_spec.rb +++ b/logstash-core/spec/api/lib/api/node_spec.rb @@ -64,9 +64,17 @@ context "When asking for human output and threads count" do before(:all) do + # Make sure we have enough threads for this to work. + @threads = [] + 5.times { @threads << Thread.new { loop {} } } + do_request { get "/hot_threads?human=t&threads=2"} end + after(:all) do + @threads.each { |t| t.kill } rescue nil + end + let(:payload) { last_response.body } it "should return information for <= # requested threads" do From 6d0af1b9b18284ebf9d61231771e4d9608b41b88 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 16 Aug 2016 12:19:27 -0400 Subject: [PATCH 294/632] make the human? method part of the base api class Fixes #5766 --- .../lib/logstash/api/commands/hot_threads_reporter.rb | 6 +++--- logstash-core/lib/logstash/api/modules/base.rb | 5 +++++ logstash-core/lib/logstash/api/modules/node.rb | 5 ----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb b/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb index 39333cf7e73..69a417cdb73 100644 --- a/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb +++ b/logstash-core/lib/logstash/api/commands/hot_threads_reporter.rb @@ -1,7 +1,7 @@ # encoding: utf-8 class HotThreadsReport - STRING_SEPARATOR_LENGHT = 80.freeze + STRING_SEPARATOR_LENGTH = 80.freeze HOT_THREADS_STACK_TRACES_SIZE_DEFAULT = 10.freeze def initialize(cmd, options) @@ -14,7 +14,7 @@ def initialize(cmd, options) def to_s hash = to_hash[:hot_threads] report = "#{I18n.t("logstash.web_api.hot_threads.title", :hostname => hash[:hostname], :time => hash[:time], :top_count => @thread_dump.top_count )} \n" - report << '=' * STRING_SEPARATOR_LENGHT + report << '=' * STRING_SEPARATOR_LENGTH report << "\n" hash[:threads].each do |thread| thread_report = "#{I18n.t("logstash.web_api.hot_threads.thread_title", :percent_of_cpu_time => thread[:percent_of_cpu_time], :thread_state => thread[:state], :thread_name => thread[:name])} \n" @@ -23,7 +23,7 @@ def to_s thread_report << "\t#{trace}\n" end report << thread_report - report << '-' * STRING_SEPARATOR_LENGHT + report << '-' * STRING_SEPARATOR_LENGTH report << "\n" end report diff --git a/logstash-core/lib/logstash/api/modules/base.rb b/logstash-core/lib/logstash/api/modules/base.rb index 5146dd96db8..2c1a56cb8b0 100644 --- a/logstash-core/lib/logstash/api/modules/base.rb +++ b/logstash-core/lib/logstash/api/modules/base.rb @@ -34,6 +34,11 @@ def initialize(app=nil, agent) text = as == :string ? "" : {} respond_with(text, :as => as) end + + protected + def human? + params.has_key?("human") && (params["human"].nil? || as_boolean(params["human"]) == true) + end end end end diff --git a/logstash-core/lib/logstash/api/modules/node.rb b/logstash-core/lib/logstash/api/modules/node.rb index dae676c6743..85263a63805 100644 --- a/logstash-core/lib/logstash/api/modules/node.rb +++ b/logstash-core/lib/logstash/api/modules/node.rb @@ -26,11 +26,6 @@ def node selected_fields = extract_fields(params["filter"].to_s.strip) respond_with node.all(selected_fields) end - - protected - def human? - params.has_key?("human") && (params["human"].nil? || as_boolean(params["human"]) == true) - end end end end From f00fadd6fc081f629861ecb3d7d4350a31ae4888 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 17 Aug 2016 18:07:44 +0100 Subject: [PATCH 295/632] add more numeric setting classes and control cli numeric coersion Fixes #5773 --- logstash-core/lib/logstash/environment.rb | 8 +- logstash-core/lib/logstash/runner.rb | 10 +- logstash-core/lib/logstash/settings.rb | 101 ++++++++++++++---- logstash-core/spec/logstash/runner_spec.rb | 13 ++- .../spec/logstash/settings/integer_spec.rb | 20 ++++ .../spec/logstash/settings/numeric_spec.rb | 28 +++++ 6 files changed, 148 insertions(+), 32 deletions(-) create mode 100644 logstash-core/spec/logstash/settings/integer_spec.rb create mode 100644 logstash-core/spec/logstash/settings/numeric_spec.rb diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 6d143bb5539..f9b4f046f68 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -21,12 +21,12 @@ module Environment Setting::String.new("config.string", nil, false), Setting::Boolean.new("config.test_and_exit", false), Setting::Boolean.new("config.reload.automatic", false), - Setting::Numeric.new("config.reload.interval", 3), + Setting::Numeric.new("config.reload.interval", 3), # in seconds Setting::Boolean.new("metric.collect", true) {|v| v == true }, # metric collection cannot be disabled Setting::String.new("pipeline.id", "main"), - Setting::Numeric.new("pipeline.workers", LogStash::Config::CpuCoreStrategy.maximum), - Setting::Numeric.new("pipeline.output.workers", 1), - Setting::Numeric.new("pipeline.batch.size", 125), + Setting::PositiveInteger.new("pipeline.workers", LogStash::Config::CpuCoreStrategy.maximum), + Setting::PositiveInteger.new("pipeline.output.workers", 1), + Setting::PositiveInteger.new("pipeline.batch.size", 125), Setting::Numeric.new("pipeline.batch.delay", 5), # in milliseconds Setting::Boolean.new("pipeline.unsafe_shutdown", false), Setting.new("path.plugins", Array, []), diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index bd85b77b752..fd935678a4e 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -47,17 +47,17 @@ class LogStash::Runner < Clamp::StrictCommand option ["-w", "--pipeline.workers"], "COUNT", I18n.t("logstash.runner.flag.pipeline-workers"), :attribute_name => "pipeline.workers", - :default => LogStash::SETTINGS.get_default("pipeline.workers"), &:to_i + :default => LogStash::SETTINGS.get_default("pipeline.workers") option ["-b", "--pipeline.batch.size"], "SIZE", I18n.t("logstash.runner.flag.pipeline-batch-size"), :attribute_name => "pipeline.batch.size", - :default => LogStash::SETTINGS.get_default("pipeline.batch.size"), &:to_i + :default => LogStash::SETTINGS.get_default("pipeline.batch.size") option ["-u", "--pipeline.batch.delay"], "DELAY_IN_MS", I18n.t("logstash.runner.flag.pipeline-batch-delay"), :attribute_name => "pipeline.batch.delay", - :default => LogStash::SETTINGS.get_default("pipeline.batch.delay"), &:to_i + :default => LogStash::SETTINGS.get_default("pipeline.batch.delay") option ["--pipeline.unsafe_shutdown"], :flag, I18n.t("logstash.runner.flag.unsafe_shutdown"), @@ -110,7 +110,7 @@ class LogStash::Runner < Clamp::StrictCommand option ["--config.reload.interval"], "RELOAD_INTERVAL", I18n.t("logstash.runner.flag.reload_interval"), :attribute_name => "config.reload.interval", - :default => LogStash::SETTINGS.get_default("config.reload.interval"), &:to_i + :default => LogStash::SETTINGS.get_default("config.reload.interval") option ["--http.host"], "HTTP_HOST", I18n.t("logstash.runner.flag.http_host"), @@ -120,7 +120,7 @@ class LogStash::Runner < Clamp::StrictCommand option ["--http.port"], "HTTP_PORT", I18n.t("logstash.runner.flag.http_port"), :attribute_name => "http.port", - :default => LogStash::SETTINGS.get_default("http.port"), &:to_i + :default => LogStash::SETTINGS.get_default("http.port") option ["--log.format"], "FORMAT", I18n.t("logstash.runner.flag.log_format"), diff --git a/logstash-core/lib/logstash/settings.rb b/logstash-core/lib/logstash/settings.rb index 1412cfa9ea7..7bd0a68126e 100644 --- a/logstash-core/lib/logstash/settings.rb +++ b/logstash-core/lib/logstash/settings.rb @@ -176,18 +176,43 @@ def validate(value) end end - ### Specific settings ##### - - class Boolean < Setting - def initialize(name, default, strict=true, &validator_proc) + class Coercible < Setting + def initialize(name, klass, default=nil, strict=true, &validator_proc) @name = name - @klass = Object + unless klass.is_a?(Class) + raise ArgumentError.new("Setting \"#{@name}\" must be initialized with a class (received #{klass})") + end + @klass = klass + @validator_proc = validator_proc @value = nil @value_is_set = false - @validator_proc = validator_proc - coerced_default = coerce(default) - validate(coerced_default) - @default = coerced_default + + if strict + coerced_default = coerce(default) + validate(coerced_default) + @default = coerced_default + else + @default = default + end + end + + def set(value) + coerced_value = coerce(value) + validate(coerced_value) + @value = coerce(coerced_value) + @value_is_set = true + @value + end + + def coerce(value) + raise NotImplementedError.new("Please implement #coerce for #{self.class}") + end + end + ### Specific settings ##### + + class Boolean < Coercible + def initialize(name, default, strict=true, &validator_proc) + super(name, Object, default, strict, &validator_proc) end def coerce(value) @@ -200,25 +225,61 @@ def coerce(value) raise ArgumentError.new("could not coerce #{value} into a boolean") end end + end - def set(value) - coerced_value = coerce(value) - validate(coerced_value) - @value = coerce(coerced_value) - @value_is_set = true - @value + class Numeric < Coercible + def initialize(name, default=nil, strict=true) + super(name, ::Numeric, default, strict) + end + + def coerce(v) + return v if v.is_a?(::Numeric) + + # I hate these "exceptions as control flow" idioms + # but Ruby's `"a".to_i => 0` makes it hard to do anything else. + coerced_value = (Integer(v) rescue nil) || (Float(v) rescue nil) + + if coerced_value.nil? + raise ArgumentError.new("Failed to coerce value to Numeric. Received #{v} (#{v.class})") + else + coerced_value + end end end - class Numeric < Setting + class Integer < Coercible def initialize(name, default=nil, strict=true) - super(name, ::Numeric, default, strict) + super(name, ::Integer, default, strict) + end + + def coerce(value) + return value unless value.is_a?(::String) + + coerced_value = Integer(value) rescue nil + + if coerced_value.nil? + raise ArgumentError.new("Failed to coerce value to Integer. Received #{value} (#{value.class})") + else + coerced_value + end + end + end + + class PositiveInteger < Integer + def initialize(name, default=nil, strict=true) + super(name, default, strict) do |v| + if v > 0 + true + else + raise ArgumentError.new("Number must be bigger than 0. Received: #{v}") + end + end end end - class Port < Setting + class Port < Integer def initialize(name, default=nil, strict=true) - super(name, ::Numeric, default, strict) {|value| value >= 1 && value <= 65535 } + super(name, default, strict) {|value| value >= 1 && value <= 65535 } end end @@ -242,7 +303,7 @@ def initialize(name, default=nil, strict=true, possible_strings=[]) def validate(value) super(value) unless @possible_strings.empty? || @possible_strings.include?(value) - raise ArgumentError.new("invalid value \"#{value}\". Options are: #{@possible_strings.inspect}") + raise ArgumentError.new("Invalid value \"#{value}\". Options are: #{@possible_strings.inspect}") end end end diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index 7283bf3aa86..ec1d4df755d 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -192,18 +192,25 @@ def run(args); end context "when :pipeline_workers is not defined by the user" do it "should not pass the value to the pipeline" do expect(LogStash::Agent).to receive(:new) do |settings| - expect(settings.set?("pipeline.workers")).to be(false) + expect(settings.set?("pipeline.workers")).to be(false) end args = ["-e", pipeline_string] subject.run("bin/logstash", args) end end + context "when :pipeline_workers flag is passed without a value" do + it "should raise an error" do + args = ["-e", pipeline_string, "-w"] + expect { subject.run("bin/logstash", args) }.to raise_error + end + end + context "when :pipeline_workers is defined by the user" do it "should pass the value to the pipeline" do expect(LogStash::Agent).to receive(:new) do |settings| - expect(settings.set?("pipeline.workers")).to be(true) - expect(settings.get("pipeline.workers")).to be(2) + expect(settings.set?("pipeline.workers")).to be(true) + expect(settings.get("pipeline.workers")).to be(2) end args = ["-w", "2", "-e", pipeline_string] diff --git a/logstash-core/spec/logstash/settings/integer_spec.rb b/logstash-core/spec/logstash/settings/integer_spec.rb new file mode 100644 index 00000000000..f7097d96153 --- /dev/null +++ b/logstash-core/spec/logstash/settings/integer_spec.rb @@ -0,0 +1,20 @@ +# encoding: utf-8 +require "spec_helper" +require "logstash/settings" + +describe LogStash::Setting::Integer do + subject { described_class.new("a number", nil, false) } + describe "#set" do + context "when giving a number which is not an integer" do + it "should raise an exception" do + expect { subject.set(1.1) }.to raise_error(ArgumentError) + end + end + context "when giving a number which is an integer" do + it "should set the number" do + expect { subject.set(100) }.to_not raise_error + expect(subject.value).to eq(100) + end + end + end +end diff --git a/logstash-core/spec/logstash/settings/numeric_spec.rb b/logstash-core/spec/logstash/settings/numeric_spec.rb new file mode 100644 index 00000000000..cab162fce33 --- /dev/null +++ b/logstash-core/spec/logstash/settings/numeric_spec.rb @@ -0,0 +1,28 @@ +# encoding: utf-8 +require "spec_helper" +require "logstash/settings" + +describe LogStash::Setting::Numeric do + subject { described_class.new("a number", nil, false) } + describe "#set" do + context "when giving a string which doesn't represent a string" do + it "should raise an exception" do + expect { subject.set("not-a-number") }.to raise_error(ArgumentError) + end + end + context "when giving a string which represents a " do + context "float" do + it "should coerce that string to the number" do + subject.set("1.1") + expect(subject.value).to eq(1.1) + end + end + context "int" do + it "should coerce that string to the number" do + subject.set("1") + expect(subject.value).to eq(1) + end + end + end + end +end From f68b2c084102d6e04fae68e234b36d0dc234cf54 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Wed, 27 Jul 2016 17:51:33 -0500 Subject: [PATCH 296/632] Cleans up output delegators and simplifies a few other aspects of plugins The new way Output Delegators work is that events flow from: OutputDelegator -> OutputDelegatorStrategy -> Output The output delegator handles all the common denominator tasks (like metrics) and a few other things. The OutputDelegatorStrategy handles concurrency and Output instantiation. This is a significant improvement and simplification over the past where we used mixins and dynamic method redifinition. This removes the concept of plugin 'unique_names' and replaces it with the 'id'. Also consistently autogenerates plugin IDs based on a given config file using SHA1 hashing. Fixes #5752 --- docs/static/include/pluginbody.asciidoc | 43 ++-- .../lib/logstash/api/commands/stats.rb | 2 +- logstash-core/lib/logstash/config/mixin.rb | 2 +- .../lib/logstash/filter_delegator.rb | 9 +- .../lib/logstash/output_delegator.rb | 200 +++--------------- .../output_delegator_strategies/legacy.rb | 29 +++ .../output_delegator_strategies/shared.rb | 20 ++ .../output_delegator_strategies/single.rb | 23 ++ .../output_delegator_strategy_registry.rb | 36 ++++ logstash-core/lib/logstash/outputs/base.rb | 53 ++--- logstash-core/lib/logstash/pipeline.rb | 47 ++-- .../lib/logstash/pipeline_reporter.rb | 10 +- logstash-core/lib/logstash/plugin.rb | 16 +- logstash-core/spec/conditionals_spec.rb | 13 +- logstash-core/spec/logstash/agent_spec.rb | 3 + .../spec/logstash/output_delegator_spec.rb | 148 ++++++------- .../spec/logstash/outputs/base_spec.rb | 63 ++++-- .../spec/logstash/pipeline_reporter_spec.rb | 7 +- logstash-core/spec/logstash/pipeline_spec.rb | 40 ++-- logstash-core/spec/logstash/plugin_spec.rb | 6 +- 20 files changed, 377 insertions(+), 393 deletions(-) create mode 100644 logstash-core/lib/logstash/output_delegator_strategies/legacy.rb create mode 100644 logstash-core/lib/logstash/output_delegator_strategies/shared.rb create mode 100644 logstash-core/lib/logstash/output_delegator_strategies/single.rb create mode 100644 logstash-core/lib/logstash/output_delegator_strategy_registry.rb diff --git a/docs/static/include/pluginbody.asciidoc b/docs/static/include/pluginbody.asciidoc index 758f413eb3c..9f61e541871 100644 --- a/docs/static/include/pluginbody.asciidoc +++ b/docs/static/include/pluginbody.asciidoc @@ -275,40 +275,31 @@ require "logstash/namespace" class LogStash::{pluginclass}::{pluginnamecap} < LogStash::{pluginclass}::Base config_name "example" - # If declared logstash will only allow a single instance of this plugin - # to exist, regardless of how many CPU cores logstash detects. This is best - # used in cases like the File output, where separate threads writing to a single - # File would only cause problems. + # This sets the concurrency behavior of this plugin. By default it is :legacy, which was the standard + # way concurrency worked before Logstash 2.4 + # + # You should explicitly set it to either :single or :shared as :legacy will be removed in Logstash 6.0 + # + # When configured as :single a single instance of the Output will be shared among the + # pipeline worker threads. Access to the `#multi_receive/#multi_receive_encoded/#receive` method will be synchronized + # i.e. only one thread will be active at a time making threadsafety much simpler. + # + # You can set this to :shared if your output is threadsafe. This will maximize + # concurrency but you will need to make appropriate uses of mutexes in `#multi_receive/#receive`. # - # respond_to? check needed for backwards compatibility with < 2.2 Logstashes - declare_workers_not_supported! if self.respond_to?(:declare_workers_not_supported!) - - # If declared threadsafe logstash will only ever create one - # instance of this plugin per pipeline. - # That instance will be shared across all workers - # It is up to the plugin author to correctly write concurrent code! - # - # respond_to? check needed for backwards compatibility with < 2.2 Logstashes - declare_threadsafe! if self.respond_to?(:declare_threadsafe!) - + # Only the `#multi_receive/#multi_receive_encoded` methods need to actually be threadsafe, the other methods + # will only be executed in a single thread + concurrency :single + public - def register - # Does the same thing as declare_workers_not_supported! - # But works in < 2.2 logstashes - # workers_not_supported + def register end # def register public # Takes an array of events + # Must be threadsafe if `concurrency :shared` is set def multi_receive(events) end # def multi_receive - - public - # Needed for logstash < 2.2 compatibility - # Takes events one at a time - def receive(event) - end # def receive - end # class LogStash::{pluginclass}::{pluginnamecap} ---------------------------------- endif::multi_receive_method[] diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index d89770090fe..f578ba4adb2 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -70,7 +70,7 @@ def plugin_stats(stats, plugin_type) # Turn the `plugins` stats hash into an array of [ {}, {}, ... ] # This is to produce an array of data points, one point for each # plugin instance. - return [] unless stats[:plugins].include?(plugin_type) + return [] unless stats[:plugins] && stats[:plugins].include?(plugin_type) stats[:plugins][plugin_type].collect do |id, data| { :id => id }.merge(data) end diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 5ffd320cc1d..eb10f35cc8d 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -209,7 +209,7 @@ def config(name, opts={}) name = name.to_s if name.is_a?(Symbol) @config[name] = opts # ok if this is empty - + if name.is_a?(String) define_method(name) { instance_variable_get("@#{name}") } define_method("#{name}=") { |v| instance_variable_set("@#{name}", v) } diff --git a/logstash-core/lib/logstash/filter_delegator.rb b/logstash-core/lib/logstash/filter_delegator.rb index b311cd2bf8b..02a4f3599ea 100644 --- a/logstash-core/lib/logstash/filter_delegator.rb +++ b/logstash-core/lib/logstash/filter_delegator.rb @@ -13,15 +13,14 @@ class FilterDelegator ] def_delegators :@filter, *DELEGATED_METHODS - def initialize(logger, klass, metric, *args) - options = args.reduce({}, :merge) - + def initialize(logger, klass, metric, plugin_args) @logger = logger @klass = klass - @filter = klass.new(options) + @id = plugin_args["id"] + @filter = klass.new(plugin_args) # Scope the metrics to the plugin - namespaced_metric = metric.namespace(@filter.plugin_unique_name.to_sym) + namespaced_metric = metric.namespace("#{@klass.config_name}_#{@id}".to_sym) @filter.metric = namespaced_metric @metric_events = namespaced_metric.namespace(:events) diff --git a/logstash-core/lib/logstash/output_delegator.rb b/logstash-core/lib/logstash/output_delegator.rb index ef7281535b6..420c6945751 100644 --- a/logstash-core/lib/logstash/output_delegator.rb +++ b/logstash-core/lib/logstash/output_delegator.rb @@ -1,192 +1,56 @@ -# encoding: utf-8 -require "concurrent/atomic/atomic_fixnum" -java_import "java.util.concurrent.CopyOnWriteArrayList" +require "logstash/output_delegator_strategy_registry" + +require "logstash/output_delegator_strategies/shared" +require "logstash/output_delegator_strategies/single" +require "logstash/output_delegator_strategies/legacy" -# This class goes hand in hand with the pipeline to provide a pool of -# free workers to be used by pipeline worker threads. The pool is -# internally represented with a SizedQueue set the the size of the number -# of 'workers' the output plugin is configured with. -# -# This plugin also records some basic statistics module LogStash class OutputDelegator - attr_reader :workers, :config, :threadsafe + attr_reader :metric, :metric_events, :strategy, :namespaced_metric, :metric_events , :plugin_args, :strategy_registry - # The *args this takes are the same format that a Outputs::Base takes. A list of hashes with parameters in them - # Internally these just get merged together into a single hash - def initialize(logger, klass, default_worker_count, metric, *plugin_args) + def initialize(logger, output_class, metric, strategy_registry, plugin_args) @logger = logger - @threadsafe = klass.threadsafe? - @config = plugin_args.reduce({}, :merge) - @klass = klass - @workers = java.util.concurrent.CopyOnWriteArrayList.new - @default_worker_count = default_worker_count - @registered = false - - # Create an instance of the input so we can fetch the identifier - output = @klass.new(@config) - - # Scope the metrics to the plugin - namespaced_metric = metric.namespace(output.plugin_unique_name.to_sym) - output.metric = namespaced_metric - - @metric_events = namespaced_metric.namespace(:events) - namespaced_metric.gauge(:name, config_name) + @output_class = output_class + @metric = metric + @plugin_args = plugin_args + @strategy_registry ||= ::LogStash::OutputDelegatorStrategyRegistry.instance + raise ArgumentError, "No ID specified! Got args #{plugin_args}" unless id + + build_strategy! - @events_received = Concurrent::AtomicFixnum.new(0) + @namespaced_metric = metric.namespace(id.to_sym) + @metric_events = @namespaced_metric.namespace(:events) + @namespaced_metric.gauge(:name, id) end - def threadsafe? - !!@threadsafe + def config_name + @output_class.config_name end - def warn_on_worker_override! - # The user has configured extra workers, but this plugin doesn't support it :( - if worker_limits_overriden? - message = @klass.workers_not_supported_message - warning_meta = {:plugin => @klass.config_name, :worker_count => @config["workers"]} - if message - warning_meta[:message] = message - @logger.warn(I18n.t("logstash.pipeline.output-worker-unsupported-with-message", warning_meta)) - else - @logger.warn(I18n.t("logstash.pipeline.output-worker-unsupported", warning_meta)) - end - end + def concurrency + @output_class.concurrency end - def worker_limits_overriden? - @config["workers"] && @config["workers"] > 1 && @klass.workers_not_supported? + def build_strategy! + @strategy = strategy_registry. + class_for(self.concurrency). + new(@logger, @output_class, @metric, @plugin_args) end - def target_worker_count - # Remove in 5.0 after all plugins upgraded to use class level declarations - raise ArgumentError, "Attempted to detect target worker count before instantiating a worker to test for legacy workers_not_supported!" if @workers.size == 0 - - if @threadsafe || @klass.workers_not_supported? - 1 - else - @config["workers"] || @default_worker_count - end - end - - def config_name - @klass.config_name + def id + @plugin_args["id"] end def register - raise ArgumentError, "Attempted to register #{self} twice!" if @registered - @registered = true - # We define this as an array regardless of threadsafety - # to make reporting simpler, even though a threadsafe plugin will just have - # a single instance - # - # Older plugins invoke the instance method Outputs::Base#workers_not_supported - # To detect these we need an instance to be created first :() - # TODO: In the next major version after 2.x remove support for this - @workers << @klass.new(@config) - @workers.first.register # Needed in case register calls `workers_not_supported` - - @logger.debug("Will start workers for output", :worker_count => target_worker_count, :class => @klass.name) - - # Threadsafe versions don't need additional workers - setup_additional_workers!(target_worker_count) unless @threadsafe - # We skip the first worker because that's pre-registered to deal with legacy workers_not_supported - @workers.subList(1,@workers.size).each(&:register) - setup_multi_receive! - end - - def setup_additional_workers!(target_worker_count) - warn_on_worker_override! - - (target_worker_count - 1).times do - inst = @klass.new(@config) - inst.metric = @metric - @workers << inst - end - - # This queue is used to manage sharing across threads - @worker_queue = SizedQueue.new(target_worker_count) - @workers.each {|w| @worker_queue << w } + @strategy.register end - def setup_multi_receive! - # One might wonder why we don't use something like - # define_singleton_method(:multi_receive, method(:threadsafe_multi_receive) - # and the answer is this is buggy on Jruby 1.7.x . It works 98% of the time! - # The other 2% you get weird errors about rebinding to the same object - # Until we switch to Jruby 9.x keep the define_singleton_method parts - # the way they are, with a block - # See https://github.com/jruby/jruby/issues/3582 - if threadsafe? - @threadsafe_worker = @workers.first - define_singleton_method(:multi_receive) do |events| - threadsafe_multi_receive(events) - end - else - define_singleton_method(:multi_receive) do |events| - worker_multi_receive(events) - end - end - end - - def threadsafe_multi_receive(events) - @events_received.increment(events.length) + def multi_receive(events) @metric_events.increment(:in, events.length) - - clock = @metric_events.time(:duration_in_millis) - @threadsafe_worker.multi_receive(events) - clock.stop + @strategy.multi_receive(events) @metric_events.increment(:out, events.length) end - def worker_multi_receive(events) - @events_received.increment(events.length) - @metric_events.increment(:in, events.length) - - worker = @worker_queue.pop - begin - clock = @metric_events.time(:duration_in_millis) - worker.multi_receive(events) - clock.stop - @metric_events.increment(:out, events.length) - ensure - @worker_queue.push(worker) - end - end - def do_close - @logger.debug("closing output delegator", :klass => @klass.name) - - if @threadsafe - @workers.each(&:do_close) - else - worker_count.times do - worker = @worker_queue.pop - worker.do_close - end - end + @strategy.do_close end - - def events_received - @events_received.value - end - - # There's no concept of 'busy' workers for a threadsafe plugin! - def busy_workers - if @threadsafe - 0 - else - # The pipeline reporter can run before the outputs are registered trying to pull a value here - # In that case @worker_queue is empty, we just return 0 - return 0 unless @worker_queue - @workers.size - @worker_queue.size - end - end - - def worker_count - @workers.size - end - - private - # Needed for testing, so private - attr_reader :threadsafe_worker, :worker_queue -end end +end; end diff --git a/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb b/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb new file mode 100644 index 00000000000..fde11d74fd5 --- /dev/null +++ b/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb @@ -0,0 +1,29 @@ +# Remove this in Logstash 6.0 +module LogStash module OutputDelegatorStrategies class Legacy + attr_reader :worker_count, :workers + + def initialize(logger, klass, metric, plugin_args={}) + @worker_count = (plugin_args["workers"] || 1).to_i + @workers = @worker_count.times.map {|t| klass.new(plugin_args)} + @worker_queue = SizedQueue.new(@worker_count) + @workers.each {|w| @worker_queue << w} + end + + def register + @workers.each(&:register) + end + + def multi_receive(events) + worker = @worker_queue.pop + worker.multi_receive(events) + ensure + @worker_queue << worker if worker + end + + def do_close + # No mutex needed since this is only called when the pipeline is clear + @workers.each(&:do_close) + end + + ::LogStash::OutputDelegatorStrategyRegistry.instance.register(:legacy, self) +end; end; end diff --git a/logstash-core/lib/logstash/output_delegator_strategies/shared.rb b/logstash-core/lib/logstash/output_delegator_strategies/shared.rb new file mode 100644 index 00000000000..02a75f6ed2f --- /dev/null +++ b/logstash-core/lib/logstash/output_delegator_strategies/shared.rb @@ -0,0 +1,20 @@ +module LogStash module OutputDelegatorStrategies class Shared + def initialize(logger, klass, metric, xopts={}, plugin_args={}) + @output = klass.new(plugin_args) + end + + def register + @output.register + end + + def multi_receive(events) + @output.multi_receive(events) + end + + def do_close + @output.do_close + end + + ::LogStash::OutputDelegatorStrategyRegistry.instance.register(:shared, self) +end; end; end + diff --git a/logstash-core/lib/logstash/output_delegator_strategies/single.rb b/logstash-core/lib/logstash/output_delegator_strategies/single.rb new file mode 100644 index 00000000000..53903c36305 --- /dev/null +++ b/logstash-core/lib/logstash/output_delegator_strategies/single.rb @@ -0,0 +1,23 @@ +module LogStash module OutputDelegatorStrategies class Single + def initialize(logger, klass, metric, xopts={}, plugin_args={}) + @output = klass.new(plugin_args) + @mutex = Mutex.new + end + + def register + @output.register + end + + def multi_receive(events) + @mutex.synchronize do + @output.multi_receive(events) + end + end + + def do_close + # No mutex needed since this is only called when the pipeline is clear + @output.do_close + end + + ::LogStash::OutputDelegatorStrategyRegistry.instance.register(:single, self) +end; end; end diff --git a/logstash-core/lib/logstash/output_delegator_strategy_registry.rb b/logstash-core/lib/logstash/output_delegator_strategy_registry.rb new file mode 100644 index 00000000000..dc4e0a02000 --- /dev/null +++ b/logstash-core/lib/logstash/output_delegator_strategy_registry.rb @@ -0,0 +1,36 @@ +module LogStash; class OutputDelegatorStrategyRegistry + class InvalidStrategyError < StandardError; end + + # This is generally used as a singleton + # Except perhaps during testing + def self.instance + @instance ||= self.new + end + + def initialize() + @map = {} + end + + def classes + @map.values + end + + def types + @map.keys + end + + def class_for(type) + klass = @map[type] + + if !klass + raise InvalidStrategyError, "Could not find output delegator strategy of type '#{type}'. Valid strategies: #{@strategy_registry.types}" + end + + klass + end + + def register(type, klass) + @map[type] = klass + end + +end; end diff --git a/logstash-core/lib/logstash/outputs/base.rb b/logstash-core/lib/logstash/outputs/base.rb index 3df4e3b4a81..fcd1d7ee595 100644 --- a/logstash-core/lib/logstash/outputs/base.rb +++ b/logstash-core/lib/logstash/outputs/base.rb @@ -20,42 +20,37 @@ class LogStash::Outputs::Base < LogStash::Plugin # The codec used for output data. Output codecs are a convenient method for encoding your data before it leaves the output, without needing a separate filter in your Logstash pipeline. config :codec, :validate => :codec, :default => "plain" + # TODO remove this in Logstash 6.0 + # when we no longer support the :legacy type + # This is hacky, but it can only be herne + config :workers, :type => :number, :default => 1 + + # Set or return concurrency type + def self.concurrency(type=nil) + if type + @concurrency = type + else + @concurrency || :legacy # default is :legacyo + end + end - # The number of workers to use for this output. - # Note that this setting may not be useful for all outputs. - config :workers, :validate => :number, :default => 1 - - attr_reader :worker_plugins, :available_workers, :workers, :worker_plugins, :workers_not_supported - + # Deprecated: Favor `concurrency :shared` def self.declare_threadsafe! - declare_workers_not_supported! - @threadsafe = true + concurrency :shared end + # Deprecated: Favor `#concurrency` def self.threadsafe? - @threadsafe == true + concurrency == :shared end + # Deprecated: Favor `concurrency :single` + # Remove in Logstash 6.0.0 def self.declare_workers_not_supported!(message=nil) - @workers_not_supported_message = message - @workers_not_supported = true - end - - def self.workers_not_supported_message - @workers_not_supported_message - end - - def self.workers_not_supported? - !!@workers_not_supported + concurrency :single end public - # TODO: Remove this in the next major version after Logstash 2.x - # Post 2.x it should raise an error and tell people to use the class level - # declaration - def workers_not_supported(message=nil) - self.class.declare_workers_not_supported!(message) - end def self.plugin_type "output" @@ -66,6 +61,10 @@ def initialize(params={}) super config_init(@params) + if self.workers != 1 + raise LogStash::ConfigurationError, "You are using a plugin that doesn't support workers but have set the workers value explicitly! This plugin uses the #{concurrency} and doesn't need this option" + end + # If we're running with a single thread we must enforce single-threaded concurrency by default # Maybe in a future version we'll assume output plugins are threadsafe @single_worker_mutex = Mutex.new @@ -87,6 +86,10 @@ def multi_receive(events) events.each {|event| receive(event) } end + def concurrency + self.class.concurrency + end + private def output?(event) # TODO: noop for now, remove this once we delete this call from all plugins diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index d2bd7dddc13..7fdb679f789 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -32,6 +32,7 @@ module LogStash; class Pipeline :started_at, :thread, :config_str, + :config_hash, :settings, :metric, :filter_queue_client, @@ -45,11 +46,18 @@ module LogStash; class Pipeline def initialize(config_str, settings = LogStash::SETTINGS, namespaced_metric = nil) @config_str = config_str + @config_hash = Digest::SHA1.hexdigest(@config_str) + # Every time #plugin is invoked this is incremented to give each plugin + # a unique id when auto-generating plugin ids + @plugin_counter ||= 0 + @logger = Cabin::Channel.get(LogStash) @settings = settings @pipeline_id = @settings.get_value("pipeline.id") || self.object_id @reporter = LogStash::PipelineReporter.new(@logger, self) + # A list of plugins indexed by id + @plugins_by_id = {} @inputs = nil @filters = nil @outputs = nil @@ -387,23 +395,38 @@ def shutdown_workers end def plugin(plugin_type, name, *args) - args << {} if args.empty? + @plugin_counter += 1 + # Collapse the array of arguments into a single merged hash + args = args.reduce({}, &:merge) + + id = if args["id"].nil? || args["id"].empty? + args["id"] = "#{@config_hash}-#{@plugin_counter}" + else + args["id"] + end + + raise LogStash::ConfigurationError, "Two plugins have the id '#{id}', please fix this conflict" if @plugins_by_id[id] + pipeline_scoped_metric = metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :plugins]) klass = LogStash::Plugin.lookup(plugin_type, name) - if plugin_type == "output" - LogStash::OutputDelegator.new(@logger, klass, @settings.get("pipeline.output.workers"), pipeline_scoped_metric.namespace(:outputs), *args) - elsif plugin_type == "filter" - LogStash::FilterDelegator.new(@logger, klass, pipeline_scoped_metric.namespace(:filters), *args) - else - new_plugin = klass.new(*args) - inputs_metric = pipeline_scoped_metric.namespace(:inputs) - namespaced_metric = inputs_metric.namespace(new_plugin.plugin_unique_name.to_sym) - new_plugin.metric = namespaced_metric - new_plugin - end + # Scope plugins of type 'input' to 'inputs' + type_scoped_metric = pipeline_scoped_metric.namespace("#{plugin_type}s".to_sym) + plugin = if plugin_type == "output" + OutputDelegator.new(@logger, klass, type_scoped_metric, + {:strategy_registry => ::LogStash::OutputDelegatorStrategyRegistry.instance}, + args) + elsif plugin_type == "filter" + LogStash::FilterDelegator.new(@logger, klass, type_scoped_metric, args) + else # input + input_plugin = klass.new(args) + input_plugin.metric = type_scoped_metric.namespace(id) + input_plugin + end + + @plugins_by_id[id] = plugin end # for backward compatibility in devutils for the rspec helpers, this method is not used diff --git a/logstash-core/lib/logstash/pipeline_reporter.rb b/logstash-core/lib/logstash/pipeline_reporter.rb index 31aaf28416e..4fbaa843ed6 100644 --- a/logstash-core/lib/logstash/pipeline_reporter.rb +++ b/logstash-core/lib/logstash/pipeline_reporter.rb @@ -60,7 +60,6 @@ def to_hash { :events_filtered => events_filtered, :events_consumed => events_consumed, - :worker_count => pipeline.worker_threads.size, :inflight_count => inflight_count, :worker_states => worker_states_snap, :output_info => output_info, @@ -100,15 +99,10 @@ def worker_states(batch_map) def output_info pipeline.outputs.map do |output_delegator| - is_multi_worker = output_delegator.worker_count > 1 - { :type => output_delegator.config_name, - :config => output_delegator.config, - :is_multi_worker => is_multi_worker, - :events_received => output_delegator.events_received, - :workers => output_delegator.workers, - :busy_workers => output_delegator.busy_workers + :plugin_args => output_delegator.plugin_args, + :concurrency => output_delegator.concurrency, } end end diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index 549291513c9..fc3532b429e 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -45,8 +45,11 @@ def eql?(other) self.class.name == other.class.name && @params == other.params end - def initialize(params=nil) + def initialize(params=nil) @params = LogStash::Util.deep_clone(params) + # The id should always be defined normally, but in tests that might not be the case + # In the future we may make this more strict in the Plugin API + @params["id"] ||= "#{self.class.config_name}_#{SecureRandom.uuid}" @logger = Cabin::Channel.get(LogStash) end @@ -57,15 +60,7 @@ def initialize(params=nil) # # @return [String] A plugin ID def id - (@params["id"].nil? || @params["id"].empty?) ? SecureRandom.uuid : @params["id"] - end - - # Return a unique_name, This is composed by the name of - # the plugin and the generated ID (of the configured one) - # - # @return [String] a unique name - def plugin_unique_name - "#{config_name}_#{id}" + @params["id"] end # close is called during shutdown, after the plugin worker @@ -127,6 +122,7 @@ def self.lookup(type, name) LogStash::Registry.instance.lookup(type ,name) do |plugin_klass, plugin_name| is_a_plugin?(plugin_klass, plugin_name) end + rescue LoadError, NameError => e logger.debug("Problems loading the plugin with", :type => type, :name => name, :path => path) raise(LogStash::PluginLoadingError, I18n.t("logstash.pipeline.plugin-loading-error", :type => type, :name => name, :path => path, :error => e.to_s)) diff --git a/logstash-core/spec/conditionals_spec.rb b/logstash-core/spec/conditionals_spec.rb index c4c68ec4c58..d831513fbfb 100644 --- a/logstash-core/spec/conditionals_spec.rb +++ b/logstash-core/spec/conditionals_spec.rb @@ -25,6 +25,17 @@ def conditional(expression, &block) describe "conditionals in output" do extend ConditionalFanciness + class DummyNullOutput < LogStash::Outputs::Base + def register + end + def multi_receive(events) + end + end + + before do + LogStash::Registry.instance.register("logstash/outputs/dummynull", DummyNullOutput) + end + describe "simple" do config <<-CONFIG input { @@ -35,7 +46,7 @@ def conditional(expression, &block) } output { if [foo] == "bar" { - stdout { } + dummynull { } } } CONFIG diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 64aa3ee3cfd..149eaa611c1 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -392,7 +392,10 @@ class DummyOutput2 < LogStash::Outputs::Base; end it "resets the metric collector" do # We know that the store has more events coming in. + i = 0 while dummy_output.events.size <= new_config_generator_counter + i += 1 + raise "Waiting too long!" if i > 20 sleep(0.1) end diff --git a/logstash-core/spec/logstash/output_delegator_spec.rb b/logstash-core/spec/logstash/output_delegator_spec.rb index ff6fb0a7919..5f6d2cc9841 100644 --- a/logstash-core/spec/logstash/output_delegator_spec.rb +++ b/logstash-core/spec/logstash/output_delegator_spec.rb @@ -5,26 +5,25 @@ describe LogStash::OutputDelegator do let(:logger) { double("logger") } let(:events) { 7.times.map { LogStash::Event.new }} - let(:default_worker_count) { 1 } - subject { described_class.new(logger, out_klass, default_worker_count, LogStash::Instrument::NullMetric.new) } + subject { described_class.new(logger, out_klass, LogStash::Instrument::NullMetric.new, {}, "id" => "foo") } context "with a plain output plugin" do let(:out_klass) { double("output klass") } let(:out_inst) { double("output instance") } - + let(:concurrency) { :single } before(:each) do allow(out_klass).to receive(:new).with(any_args).and_return(out_inst) - allow(out_klass).to receive(:threadsafe?).and_return(false) - allow(out_klass).to receive(:workers_not_supported?).and_return(false) allow(out_klass).to receive(:name).and_return("example") + allow(out_klass).to receive(:concurrency).with(any_args).and_return concurrency allow(out_klass).to receive(:config_name) allow(out_inst).to receive(:register) allow(out_inst).to receive(:multi_receive) allow(out_inst).to receive(:metric=).with(any_args) allow(out_inst).to receive(:id).and_return("a-simple-plugin") - allow(out_inst).to receive(:plugin_unique_name).and_return("hello-123") + + allow(subject.metric_events).to receive(:increment).with(any_args) allow(logger).to receive(:debug).with(any_args) end @@ -43,109 +42,80 @@ end it "should increment the number of events received" do - expect(subject.events_received).to eql(events.length) + expect(subject.metric_events).to have_received(:increment).with(:in, events.length) + expect(subject.metric_events).to have_received(:increment).with(:out, events.length) end end - describe "closing" do before do subject.register end - it "should register all workers on register" do + it "should register the output plugin instance on register" do expect(out_inst).to have_received(:register) end - it "should close all workers when closing" do + it "should close the output plugin instance when closing" do expect(out_inst).to receive(:do_close) subject.do_close end end - describe "concurrency and worker support" do - before do - allow(out_inst).to receive(:id).and_return("a-simple-plugin") - allow(out_inst).to receive(:metric=).with(any_args) - allow(out_klass).to receive(:workers_not_supported?).and_return(false) - end - - describe "non-threadsafe outputs that allow workers" do - let(:default_worker_count) { 3 } - - before do - allow(out_klass).to receive(:threadsafe?).and_return(false) - subject.register - end - - it "should instantiate multiple workers" do - expect(subject.workers.length).to eql(default_worker_count) - end - - it "should send received events to the worker" do - expect(out_inst).to receive(:multi_receive).with(events) - subject.multi_receive(events) - end + describe "concurrency strategies" do + it "should have :single as the default" do + expect(subject.concurrency).to eq :single end - describe "threadsafe outputs" do - before do - allow(out_klass).to receive(:threadsafe?).and_return(true) - subject.register - end - - it "should return true when threadsafe? is invoked" do - expect(subject.threadsafe?).to eql(true) - end - - it "should define a threadsafe_worker" do - expect(subject.send(:threadsafe_worker)).to eql(out_inst) - end - - it "should utilize threadsafe_multi_receive" do - expect(subject.send(:threadsafe_worker)).to receive(:multi_receive).with(events) - subject.multi_receive(events) - end - - it "should not utilize the worker queue" do - expect(subject.send(:worker_queue)).to be_nil - end - - it "should send received events to the worker" do - expect(out_inst).to receive(:multi_receive).with(events) - subject.multi_receive(events) - end - - it "should close all workers when closing" do - expect(out_inst).to receive(:do_close) - subject.do_close + [ + [:shared, ::LogStash::OutputDelegatorStrategies::Shared], + [:single, ::LogStash::OutputDelegatorStrategies::Single], + [:legacy, ::LogStash::OutputDelegatorStrategies::Legacy], + ].each do |strategy_concurrency,klass| + context "with strategy #{strategy_concurrency}" do + let(:concurrency) { strategy_concurrency } + + it "should find the correct concurrency type for the output" do + expect(subject.concurrency).to eq(strategy_concurrency) + end + + it "should find the correct Strategy class for the worker" do + expect(subject.strategy).to be_a(klass) + end + + [[:register], [:do_close], [:multi_receive, [[]] ] ].each do |method, args| + context "strategy objects" do + before do + allow(subject.strategy).to receive(method) + end + + it "should delegate #{method} to the strategy" do + subject.send(method, *args) + if args + expect(subject.strategy).to have_received(method).with(*args) + else + expect(subject.strategy).to have_received(method).with(no_args) + end + end + end + + context "strategy output instances" do + before do + allow(out_inst).to receive(method) + end + + it "should delegate #{method} to the strategy" do + subject.send(method, *args) + if args + expect(out_inst).to have_received(method).with(*args) + else + expect(out_inst).to have_received(method).with(no_args) + end + end + end + end end end end end - - # This may seem suspiciously similar to the class in outputs/base_spec - # but, in fact, we need a whole new class because using this even once - # will immutably modify the base class - class LogStash::Outputs::NOOPDelLegacyNoWorkers < ::LogStash::Outputs::Base - LEGACY_WORKERS_NOT_SUPPORTED_REASON = "legacy reason" - - def register - workers_not_supported(LEGACY_WORKERS_NOT_SUPPORTED_REASON) - end - end - - describe "legacy output workers_not_supported" do - let(:default_worker_count) { 2 } - let(:out_klass) { LogStash::Outputs::NOOPDelLegacyNoWorkers } - - before(:each) do - allow(logger).to receive(:debug).with(any_args) - end - - it "should only setup one worker" do - subject.register - expect(subject.worker_count).to eql(1) - end - end end diff --git a/logstash-core/spec/logstash/outputs/base_spec.rb b/logstash-core/spec/logstash/outputs/base_spec.rb index 44d49a60b99..506d71509b1 100644 --- a/logstash-core/spec/logstash/outputs/base_spec.rb +++ b/logstash-core/spec/logstash/outputs/base_spec.rb @@ -2,9 +2,9 @@ require "spec_helper" # use a dummy NOOP output to test Outputs::Base -class LogStash::Outputs::NOOP < LogStash::Outputs::Base +class LogStash::Outputs::NOOPSingle < LogStash::Outputs::Base config_name "noop" - milestone 2 + concurrency :single config :dummy_option, :validate => :string @@ -15,26 +15,57 @@ def receive(event) end end -class LogStash::Outputs::NOOPLegacyNoWorkers < ::LogStash::Outputs::Base - LEGACY_WORKERS_NOT_SUPPORTED_REASON = "legacy reason" +class LogStash::Outputs::NOOPShared < ::LogStash::Outputs::Base + concurrency :shared + + def register; end +end - def register - workers_not_supported(LEGACY_WORKERS_NOT_SUPPORTED_REASON) - end +class LogStash::Outputs::NOOPLegacy < ::LogStash::Outputs::Base + def register; end end + describe "LogStash::Outputs::Base#new" do - it "should instantiate cleanly" do - params = { "dummy_option" => "potatoes", "codec" => "json", "workers" => 2 } - worker_params = params.dup; worker_params["workers"] = 1 + let(:params) { {} } + subject(:instance) { klass.new(params.dup) } + + context "single" do + let(:klass) { LogStash::Outputs::NOOPSingle } + + it "should instantiate cleanly" do + params = { "dummy_option" => "potatoes", "codec" => "json", "workers" => 2 } + worker_params = params.dup; worker_params["workers"] = 1 - expect do - LogStash::Outputs::NOOP.new(params.dup) - end.not_to raise_error + expect{ subject }.not_to raise_error + end + + it "should set concurrency correctly" do + expect(subject.concurrency).to eq(:single) + end + end + + context "shared" do + let(:klass) { LogStash::Outputs::NOOPShared } + + it "should set concurrency correctly" do + expect(subject.concurrency).to eq(:shared) + end end - it "should move workers_not_supported declarations up to the class level" do - LogStash::Outputs::NOOPLegacyNoWorkers.new.register - expect(LogStash::Outputs::NOOPLegacyNoWorkers.workers_not_supported?).to eql(true) + context "legacy" do + let(:klass) { LogStash::Outputs::NOOPLegacy } + + it "should set concurrency correctly" do + expect(subject.concurrency).to eq(:legacy) + end + + it "should default the # of workers to 1" do + expect(subject.workers).to eq(1) + end + + it "should default concurrency to :legacy" do + expect(subject.concurrency).to eq(:legacy) + end end end diff --git a/logstash-core/spec/logstash/pipeline_reporter_spec.rb b/logstash-core/spec/logstash/pipeline_reporter_spec.rb index 1aeef0e73c3..aa0ac8eb246 100644 --- a/logstash-core/spec/logstash/pipeline_reporter_spec.rb +++ b/logstash-core/spec/logstash/pipeline_reporter_spec.rb @@ -43,6 +43,7 @@ def close allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_call_original @pre_snapshot = reporter.snapshot + pipeline.run @post_snapshot = reporter.snapshot end @@ -80,10 +81,4 @@ def close expect(@post_snapshot.inflight_count).to eql(0) end end - - describe "output states" do - it "should include the count of received events" do - expect(@post_snapshot.output_info.first[:events_received]).to eql(generator_count) - end - end end diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index a0290b1da16..fc29292f294 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -235,31 +235,21 @@ class TestPipeline < LogStash::Pipeline } context "output close" do - it "should call close of output without output-workers" do - pipeline = TestPipeline.new(test_config_without_output_workers) - pipeline.run + let(:pipeline) { TestPipeline.new(test_config_without_output_workers) } + let(:output) { pipeline.outputs.first } - expect(pipeline.outputs.size ).to eq(1) - expect(pipeline.outputs.first.workers.size ).to eq(::LogStash::SETTINGS.get("pipeline.output.workers")) - expect(pipeline.outputs.first.workers.first.num_closes ).to eq(1) - pipeline.shutdown + before do + allow(output).to receive(:do_close) end - it "should call output close correctly with output workers" do - pipeline = TestPipeline.new(test_config_with_output_workers) + after do + pipeline.shutdown + end + + it "should call close of output without output-workers" do pipeline.run - expect(pipeline.outputs.size ).to eq(1) - # We even close the parent output worker, even though it doesn't receive messages - - output_delegator = pipeline.outputs.first - output = output_delegator.workers.first - - expect(output.num_closes).to eq(1) - output_delegator.workers.each do |plugin| - expect(plugin.num_closes ).to eq(1) - end - pipeline.shutdown + expect(output).to have_received(:do_close).once end end end @@ -604,7 +594,13 @@ class TestPipeline < LogStash::Pipeline Thread.new { subject.run } # make sure we have received all the generated events - sleep 0.25 while dummyoutput.events.size < number_of_events + + times = 0 + while dummyoutput.events.size < number_of_events + times += 1 + sleep 0.25 + raise "Waited too long" if times > 4 + end end after :each do @@ -640,7 +636,7 @@ class TestPipeline < LogStash::Pipeline end it "populates the output metrics" do - plugin_name = "dummyoutput_#{dummy_output_id}".to_sym + plugin_name = dummy_output_id.to_sym expect(collected_metric[:stats][:pipelines][:main][:plugins][:outputs][plugin_name][:events][:out].value).to eq(number_of_events) end end diff --git a/logstash-core/spec/logstash/plugin_spec.rb b/logstash-core/spec/logstash/plugin_spec.rb index 5f0bde381f9..e89eb26a7e7 100644 --- a/logstash-core/spec/logstash/plugin_spec.rb +++ b/logstash-core/spec/logstash/plugin_spec.rb @@ -236,7 +236,7 @@ def register; end end end - describe "#plugin_unique_name" do + describe "#id" do let(:plugin) do Class.new(LogStash::Filters::Base,) do config_name "simple_plugin" @@ -258,7 +258,7 @@ def register; end subject { plugin.new(config) } it "return a human readable ID" do - expect(subject.plugin_unique_name).to eq("simple_plugin_#{my_id}") + expect(subject.id).to eq(my_id) end end @@ -266,7 +266,7 @@ def register; end subject { plugin.new(config) } it "return a human readable ID" do - expect(subject.plugin_unique_name).to match(/^simple_plugin_/) + expect(subject.id).to match(/^simple_plugin_/) end end end From 672b369c4129b6624f3f0c2731703e5ce3d0cce7 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 16 Aug 2016 15:50:05 -0400 Subject: [PATCH 297/632] --http.port Now accept a port range This PR does a few modifications for our webserver: - Add a PortRange setting type. - allow the --http.port option to accept a port range or a single port, when a range is provided Logstash will incrementally try this list to find a free port for the webserver. - Logstash will report in the log which port it is using. (INFO LEVEL) - It refactors a few methods of the webserver. - It adds test for the binding of the ports. Notes: Port range can be defined in the logstash.yml or pass via the command line like this. `bin/logstash -e 'input { generator {}} output { null {}}' --log.level verbose --http.port 2000-2005` Fixes #5774 --- config/logstash.yml | 5 +- docs/static/command-line-flags.asciidoc | 3 +- logstash-core/lib/logstash/agent.rb | 2 +- .../logstash/api/commands/default_metadata.rb | 2 +- logstash-core/lib/logstash/environment.rb | 2 +- logstash-core/lib/logstash/settings.rb | 46 ++++++++- logstash-core/lib/logstash/webserver.rb | 77 ++++++++------- logstash-core/locales/en.yml | 4 + .../lib/api/support/resource_dsl_methods.rb | 2 +- logstash-core/spec/api/spec_helper.rb | 2 +- logstash-core/spec/logstash/runner_spec.rb | 59 +++++++++++- .../spec/logstash/settings/port_range_spec.rb | 93 ++++++++++++++++++ logstash-core/spec/logstash/webserver_spec.rb | 95 +++++++++++++++++++ 13 files changed, 348 insertions(+), 44 deletions(-) create mode 100644 logstash-core/spec/logstash/settings/port_range_spec.rb create mode 100644 logstash-core/spec/logstash/webserver_spec.rb diff --git a/config/logstash.yml b/config/logstash.yml index cdd5107250d..8494203231f 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -91,9 +91,10 @@ # # http.host: "127.0.0.1" # -# Bind port for the metrics REST endpoint +# Bind port for the metrics REST endpoint, this option also accept a range +# (9600-9700) and logstash will pick up the first available ports. # -# http.port: 9600 +# http.port: 9600-9700 # # ------------ Debugging Settings -------------- # diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 056b9598bc8..ba0c9514ddc 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -90,7 +90,8 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name The bind address for the metrics REST endpoint. The default is "127.0.0.1". *`--http.port HTTP_PORT`*:: - The bind port for the metrics REST endpoint. The default is 9600. + The bind port for the metrics REST endpoint. The default is 9600-9700. + This settings accept a range of the format 9600-9700 and Logstash will pick up the first available port. *`--pipeline.unsafe_shutdown`*:: Force Logstash to exit during shutdown even if there are still inflight events diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index e619494799f..f999b71fd4b 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -135,7 +135,7 @@ def running_pipelines? private def start_webserver - options = {:http_host => @http_host, :http_port => @http_port, :http_environment => @http_environment } + options = {:http_host => @http_host, :http_ports => @http_port, :http_environment => @http_environment } @webserver = LogStash::WebServer.new(@logger, self, options) Thread.new(@webserver) do |webserver| LogStash::Util.set_thread_name("Api Webserver") diff --git a/logstash-core/lib/logstash/api/commands/default_metadata.rb b/logstash-core/lib/logstash/api/commands/default_metadata.rb index 2a5e03dbb98..a4703072990 100644 --- a/logstash-core/lib/logstash/api/commands/default_metadata.rb +++ b/logstash-core/lib/logstash/api/commands/default_metadata.rb @@ -9,7 +9,7 @@ class DefaultMetadata < Commands::Base def all {:host => host, :version => version, :http_address => http_address} end - + def host Socket.gethostname end diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index f9b4f046f68..75720e763ad 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -38,7 +38,7 @@ module Environment Setting::String.new("path.log", nil, false), Setting::String.new("log.format", "plain", true, ["json", "plain"]), Setting::String.new("http.host", "127.0.0.1"), - Setting::Port.new("http.port", 9600), + Setting::PortRange.new("http.port", 9600..9700), Setting::String.new("http.environment", "production"), ].each {|setting| SETTINGS.register(setting) } diff --git a/logstash-core/lib/logstash/settings.rb b/logstash-core/lib/logstash/settings.rb index 7bd0a68126e..a39f5d29e68 100644 --- a/logstash-core/lib/logstash/settings.rb +++ b/logstash-core/lib/logstash/settings.rb @@ -278,8 +278,51 @@ def initialize(name, default=nil, strict=true) end class Port < Integer + VALID_PORT_RANGE = 1..65535 + def initialize(name, default=nil, strict=true) - super(name, default, strict) {|value| value >= 1 && value <= 65535 } + super(name, default, strict) { |value| valid?(value) } + end + + def valid?(port) + VALID_PORT_RANGE.cover?(port) + end + end + + class PortRange < Coercible + PORT_SEPARATOR = "-" + + def initialize(name, default=nil, strict=true) + super(name, ::Range, default, strict=true) { |value| valid?(value) } + end + + def valid?(range) + Port::VALID_PORT_RANGE.first <= range.first && Port::VALID_PORT_RANGE.last >= range.last + end + + def coerce(value) + case value + when ::Range + value + when ::Fixnum + value..value + when ::String + first, last = value.split(PORT_SEPARATOR) + last = first if last.nil? + begin + (Integer(first))..(Integer(last)) + rescue ArgumentError # Trap and reraise a more human error + raise ArgumentError.new("Could not coerce #{value} into a port range") + end + else + raise ArgumentError.new("Could not coerce #{value} into a port range") + end + end + + def validate(value) + unless valid?(value) + raise ArgumentError.new("Invalid value \"#{value}, valid options are within the range of #{Port::VALID_PORT_RANGE.first}-#{Port::VALID_PORT_RANGE.last}") + end end end @@ -331,7 +374,6 @@ def initialize(name, default=nil, strict=true) end end end - end SETTINGS = Settings.new diff --git a/logstash-core/lib/logstash/webserver.rb b/logstash-core/lib/logstash/webserver.rb index c7007efdb2e..cc2ef6f193c 100644 --- a/logstash-core/lib/logstash/webserver.rb +++ b/logstash-core/lib/logstash/webserver.rb @@ -1,73 +1,84 @@ # encoding: utf-8 +require "logstash/api/rack_app" require "puma" require "puma/server" -require "logstash/api/rack_app" +require "concurrent" -module LogStash +module LogStash class WebServer extend Forwardable - attr_reader :logger, :status, :config, :options, :cli_options, :runner, :binder, :events, :http_host, :http_port, :http_environment, :agent + attr_reader :logger, :status, :config, :options, :runner, :binder, :events, :http_host, :http_ports, :http_environment, :agent def_delegator :@runner, :stats DEFAULT_HOST = "127.0.0.1".freeze - DEFAULT_PORT = 9600.freeze + DEFAULT_PORTS = (9600..9700).freeze DEFAULT_ENVIRONMENT = 'production'.freeze def initialize(logger, agent, options={}) @logger = logger @agent = agent @http_host = options[:http_host] || DEFAULT_HOST - @http_port = options[:http_port] || DEFAULT_PORT + @http_ports = options[:http_ports] || DEFAULT_PORTS @http_environment = options[:http_environment] || DEFAULT_ENVIRONMENT @options = {} - @cli_options = options.merge({ :rackup => ::File.join(::File.dirname(__FILE__), "api", "init.ru"), - :binds => ["tcp://#{http_host}:#{http_port}"], - :debug => logger.debug?, - # Prevent puma from queueing request when not able to properly handling them, - # fixed https://github.com/elastic/logstash/issues/4674. See - # https://github.com/puma/puma/pull/640 for mode internal details in PUMA. - :queue_requests => false - }) - @status = nil + @status = nil + @running = Concurrent::AtomicBoolean.new(false) end def run - log "=== puma start: #{Time.now} ===" + logger.debug("Starting puma") stop # Just in case - app = LogStash::Api::RackApp.app(logger, agent, http_environment) - @server = ::Puma::Server.new(app) - @server.add_tcp_listener(http_host, http_port) + running! - @server.run.join - rescue Errno::EADDRINUSE - message = "Logstash tried to bind to port #{@http_port}, but the port is already in use. You can specify a new port by launching logtash with the --http-port option." - raise Errno::EADDRINUSE.new(message) + http_ports.each_with_index do |port, idx| + begin + if running? + @port = port + logger.debug("Trying to start WebServer", :port => @port) + start_webserver(@port) + else + break # we are closing down the server so just get out of the loop + end + rescue Errno::EADDRINUSE + if http_ports.count == 1 + raise Errno::EADDRINUSE.new(I18n.t("logstash.web_api.cant_bind_to_port", :port => http_ports.first)) + elsif idx == http_ports.count-1 + raise Errno::EADDRINUSE.new(I18n.t("logstash.web_api.cant_bind_to_port_in_range", :http_ports => http_ports)) + end + end + end end - def log(str) - logger.debug(str) + def running! + @running.make_true end - def error(str) - logger.error(str) + def running? + @running.value end def address - "#{http_host}:#{http_port}" + "#{http_host}:#{@port}" end - - # Empty method, this method is required because of the puma usage we make through - # the Single interface, https://github.com/puma/puma/blob/master/lib/puma/single.rb#L82 - # for more details. This can always be implemented when we want to keep track of this - # bit of data. - def write_state; end def stop(options={}) + @running.make_false @server.stop(true) if @server end + + def start_webserver(port) + app = LogStash::Api::RackApp.app(logger, agent, http_environment) + + @server = ::Puma::Server.new(app) + @server.add_tcp_listener(http_host, port) + + logger.info("Succesfully started Logstash API", :port => @port) + + @server.run.join + end end end diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 52cc4b0666f..729aa1365ce 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -73,6 +73,10 @@ en: non_reloadable_config_register: |- Logstash is not able to start since configuration auto reloading was enabled but the configuration contains plugins that don't support it. Quitting... web_api: + cant_bind_to_port: |- + Logstash tried to bind to port %{port}, but the port is already in use. You can specify a new port by launching logtash with the --http-port option." + cant_bind_to_port_in_range: |- + Logstash tried to bind to port range %{http_ports}, but all the ports are already in use. You can specify a new port by launching logtash with the --http-port option." hot_threads: title: |- ::: {%{hostname}} diff --git a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb index 0e22176cd60..03ee08f41c9 100644 --- a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb +++ b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb @@ -35,7 +35,7 @@ def test_api(expected, path) end it "should include the http address" do - expect(payload["http_address"]).to eql("#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORT}") + expect(payload["http_address"]).to eql("#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORTS.first}") end end diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index 9f9115772d7..8e4912ddf84 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -19,7 +19,7 @@ def read_fixture(name) module LogStash class DummyAgent < Agent def start_webserver - @webserver = Struct.new(:address).new("#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORT}") + @webserver = Struct.new(:address).new("#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORTS.first}") end def stop_webserver; end end diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index ec1d4df755d..ba0747cf5a9 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -189,6 +189,64 @@ def run(args); end allow(pipeline).to receive(:shutdown) end + context "when :http.host is defined by the user" do + it "should pass the value to the webserver" do + expect(LogStash::Agent).to receive(:new) do |settings| + expect(settings.set?("http.host")).to be(true) + expect(settings.get("http.host")).to eq("localhost") + end + + args = ["--http.host", "localhost", "-e", pipeline_string] + subject.run("bin/logstash", args) + end + end + + context "when :http.host is not defined by the user" do + it "should pass the value to the webserver" do + expect(LogStash::Agent).to receive(:new) do |settings| + expect(settings.set?("http.host")).to be_falsey + expect(settings.get("http.host")).to eq("127.0.0.1") + end + + args = ["-e", pipeline_string] + subject.run("bin/logstash", args) + end + end + + context "when :http.port is defined by the user" do + it "should pass a single value to the webserver" do + expect(LogStash::Agent).to receive(:new) do |settings| + expect(settings.set?("http.port")).to be(true) + expect(settings.get("http.port")).to eq(10000..10000) + end + + args = ["--http.port", "10000", "-e", pipeline_string] + subject.run("bin/logstash", args) + end + + it "should pass a range value to the webserver" do + expect(LogStash::Agent).to receive(:new) do |settings| + expect(settings.set?("http.port")).to be(true) + expect(settings.get("http.port")).to eq(10000..20000) + end + + args = ["--http.port", "10000-20000", "-e", pipeline_string] + subject.run("bin/logstash", args) + end + end + + context "when no :http.port is not defined by the user" do + it "should use the default settings" do + expect(LogStash::Agent).to receive(:new) do |settings| + expect(settings.set?("http.port")).to be_falsey + expect(settings.get("http.port")).to eq(9600..9700) + end + + args = ["-e", pipeline_string] + subject.run("bin/logstash", args) + end + end + context "when :pipeline_workers is not defined by the user" do it "should not pass the value to the pipeline" do expect(LogStash::Agent).to receive(:new) do |settings| @@ -270,5 +328,4 @@ def run(args); end end end end - end diff --git a/logstash-core/spec/logstash/settings/port_range_spec.rb b/logstash-core/spec/logstash/settings/port_range_spec.rb new file mode 100644 index 00000000000..05afd21edbb --- /dev/null +++ b/logstash-core/spec/logstash/settings/port_range_spec.rb @@ -0,0 +1,93 @@ +# encoding: utf-8 +# +require "logstash/settings" +require "spec_helper" + +describe LogStash::Setting::PortRange do + + context "When the value is a Fixnum" do + subject { LogStash::Setting::PortRange.new("mynewtest", 9000) } + + it "coerces the value in a range" do + expect { subject }.not_to raise_error + end + + it "returns a range" do + expect(subject.value).to eq(9000..9000) + end + + it "can update the range" do + subject.set(10000) + expect(subject.value).to eq(10000..10000) + end + end + + context "When the value is a string" do + subject { LogStash::Setting::PortRange.new("mynewtest", "9000-10000") } + + it "coerces a string range with the format (9000-10000)" do + expect { subject }.not_to raise_error + end + + it "refuses when then upper port is out of range" do + expect { LogStash::Setting::PortRange.new("mynewtest", "1000-95000") }.to raise_error + end + + it "returns a range" do + expect(subject.value).to eq(9000..10000) + end + + it "can update the range" do + subject.set("500-1000") + expect(subject.value).to eq(500..1000) + end + end + + context "when the value is a garbage string" do + subject { LogStash::Setting::PortRange.new("mynewtest", "fsdfnsdkjnfjs") } + + it "raises an argument error" do + expect { subject }.to raise_error + end + + + it "raises an exception on update" do + expect { LogStash::Setting::PortRange.new("mynewtest", 10000).set("dsfnsdknfksdnfjksdnfjns") }.to raise_error + end + end + + context "when the value is an unkown type" do + subject { LogStash::Setting::PortRange.new("mynewtest", 0.1) } + + + it "raises an argument error" do + expect { subject }.to raise_error + end + + + it "raises an exception on update" do + expect { LogStash::Setting::PortRange.new("mynewtest", 10000).set(0.1) }.to raise_error + end + end + + context "When value is a range" do + subject { LogStash::Setting::PortRange.new("mynewtest", 9000..10000) } + + it "accepts a ruby range as the default value" do + expect { subject }.not_to raise_error + end + + it "can update the range" do + subject.set(500..1000) + expect(subject.value).to eq(500..1000) + end + + it "refuses when then upper port is out of range" do + expect { LogStash::Setting::PortRange.new("mynewtest", 9000..1000000) }.to raise_error + end + + it "raise an exception on when port are out of range" do + expect { LogStash::Setting::PortRange.new("mynewtest", -1000..1000) }.to raise_error + end + end +end diff --git a/logstash-core/spec/logstash/webserver_spec.rb b/logstash-core/spec/logstash/webserver_spec.rb new file mode 100644 index 00000000000..f7e887b4757 --- /dev/null +++ b/logstash-core/spec/logstash/webserver_spec.rb @@ -0,0 +1,95 @@ +# encoding: utf-8 +# require "logstash/json" +require "logstash/webserver" +require "socket" +require "spec_helper" +require "open-uri" + +def block_ports(range) + servers = [] + + range.each do |port| + server = TCPServer.new("localhost", port) + Thread.new do + client = server.accept rescue nil + end + servers << server + end + + sleep(1) + servers +end + +def free_ports(servers) + servers.each do |t| + t.close rescue nil # the threads are blocked just kill + end +end + +describe LogStash::WebServer do + before :all do + @abort = Thread.abort_on_exception + Thread.abort_on_exception = true + end + + after :all do + Thread.abort_on_exception = @abort + end + + let(:logger) { double("logger") } + let(:agent) { double("agent") } + let(:webserver) { double("webserver") } + + before :each do + [:info, :warn, :error, :fatal, :debug].each do |level| + allow(logger).to receive(level) + end + [:info?, :warn?, :error?, :fatal?, :debug?].each do |level| + allow(logger).to receive(level) + end + + allow(webserver).to receive(:address).and_return("127.0.0.1") + allow(agent).to receive(:webserver).and_return(webserver) + end + + context "when the port is already in use and a range is provided" do + subject { LogStash::WebServer.new(logger, + agent, + { :http_host => "localhost", :http_ports => port_range + })} + + let(:port_range) { 10000..10010 } + after(:each) { free_ports(@servers) } + + context "when we have available ports" do + before(:each) do + @servers = block_ports(10000..10005) + end + + it "successfully find an available port" do + t = Thread.new do + subject.run + end + + sleep(1) + + response = open("http://localhost:10006").read + expect { LogStash::Json.load(response) }.not_to raise_error + expect(subject.address).to eq("localhost:10006") + + subject.stop + t.kill rescue nil + end + end + + context "when all the ports are taken" do + before(:each) do + @servers = block_ports(port_range) + end + + it "raise an exception" do + expect { subject.run }.to raise_error(Errno::EADDRINUSE, /Logstash tried to bind to port range/) + end + end + end +end From ebed7247e6a11a8017ac9bd80b4d7b0d31675f4d Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 19 Aug 2016 12:50:26 -0400 Subject: [PATCH 298/632] Override default behavior of travis to use `bundle install` and uses rake test:core instead Fixes #5790 --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2d9b5783022..5457ec7613d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,9 @@ rvm: - jruby-1.7.25 jdk: - oraclejdk8 -before_script: +install: - rake test:install-core +before_script: - echo "--order rand" > .rspec - echo "--format documentation" >> .rspec script: rake test:core From bb46aa61889f2668cd8f109728af3093db35e269 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 19 Aug 2016 14:23:51 +0100 Subject: [PATCH 299/632] tolerate bad path.settings when --help is present Fixes #5786 --- logstash-core/lib/logstash/runner.rb | 4 +++- logstash-core/spec/logstash/runner_spec.rb | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index fd935678a4e..cd52867aea0 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -151,7 +151,9 @@ def run(args) @logger.subscribe(STDOUT) @logger.warn("Logstash has a new settings file which defines start up time settings. This file is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually please specify the location to this settings file by passing in \"--path.settings=/path/..\" in the command line options") @logger.fatal("Failed to load settings file from \"path.settings\". Aborting...", "path.settings" => LogStash::SETTINGS.get("path.settings"), "exception" => e.class, "message" => e.message) - exit(-1) + + # abort unless we're just looking for the help + return(1) if (["--help", "-h"] & args).empty? end super(*[args]) diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index ba0747cf5a9..c17c515c02c 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -328,4 +328,23 @@ def run(args); end end end end + + describe "path.settings" do + subject { LogStash::Runner.new("") } + context "if does not exist" do + let(:args) { ["--path.settings", "/tmp/a/a/a/a", "-e", "input {} output {}"] } + + it "should terminate logstash" do + expect(subject.run(args)).to eq(1) + end + + context "but --help is passed" do + let(:args) { ["--path.settings", "/tmp/a/a/a/a", "--help"] } + + it "should show help" do + expect { subject.run(args) }.to raise_error(Clamp::HelpWanted) + end + end + end + end end From c9eff28fb267139dc62a69becfcfd95745d9e102 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 19 Aug 2016 14:27:58 +0100 Subject: [PATCH 300/632] minor english improvement Fixes #5786 --- logstash-core/spec/logstash/runner_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index c17c515c02c..e1b3773bfc3 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -338,7 +338,7 @@ def run(args); end expect(subject.run(args)).to eq(1) end - context "but --help is passed" do + context "but if --help is passed" do let(:args) { ["--path.settings", "/tmp/a/a/a/a", "--help"] } it "should show help" do From 60cf97c8c276abe1de12292cd826b89764927053 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 22 Aug 2016 15:42:07 +0100 Subject: [PATCH 301/632] don't warn of wrong path.settings with --help Fixes #5786 --- logstash-core/lib/logstash/runner.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index cd52867aea0..aa67b413e60 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -148,12 +148,13 @@ def run(args) begin LogStash::SETTINGS.from_yaml(LogStash::SETTINGS.get("path.settings")) rescue => e - @logger.subscribe(STDOUT) - @logger.warn("Logstash has a new settings file which defines start up time settings. This file is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually please specify the location to this settings file by passing in \"--path.settings=/path/..\" in the command line options") - @logger.fatal("Failed to load settings file from \"path.settings\". Aborting...", "path.settings" => LogStash::SETTINGS.get("path.settings"), "exception" => e.class, "message" => e.message) - # abort unless we're just looking for the help - return(1) if (["--help", "-h"] & args).empty? + if (["--help", "-h"] & args).empty? + @logger.subscribe(STDOUT) + @logger.warn("Logstash has a new settings file which defines start up time settings. This file is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually please specify the location to this settings file by passing in \"--path.settings=/path/..\" in the command line options") + @logger.fatal("Failed to load settings file from \"path.settings\". Aborting...", "path.settings" => LogStash::SETTINGS.get("path.settings"), "exception" => e.class, "message" => e.message) + return 1 + end end super(*[args]) From 744f836bbe3e53b28a4df483cd03d72d631849e8 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 19 Aug 2016 16:48:11 -0700 Subject: [PATCH 302/632] fix typo Fixes #5797 --- docs/static/command-line-flags.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index ba0c9514ddc..916f40dcb4d 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -91,7 +91,7 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name *`--http.port HTTP_PORT`*:: The bind port for the metrics REST endpoint. The default is 9600-9700. - This settings accept a range of the format 9600-9700 and Logstash will pick up the first available port. + This setting accepts a range of the format 9600-9700. Logstash will pick up the first available port. *`--pipeline.unsafe_shutdown`*:: Force Logstash to exit during shutdown even if there are still inflight events From 1327fab555cb7521e0a203e96283a8e2c4bed50d Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 19 Aug 2016 10:35:35 -0400 Subject: [PATCH 303/632] Remove `mem` block from `/node` Fixes #5789 --- logstash-core/lib/logstash/api/modules/node_stats.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index 46bc9147fc4..bfdc0e0c1d4 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -12,7 +12,6 @@ class NodeStats < ::LogStash::Api::Modules::Base payload = { :jvm => jvm_payload, :process => process_payload, - :mem => mem_payload, :pipeline => pipeline_payload } respond_with(payload, {:filter => params["filter"]}) From aaa3352d0f4c987069489fafa1d920557a106048 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 18 Aug 2016 13:47:01 -0400 Subject: [PATCH 304/632] Adding the values for the automatic reloading to the API ``` config_reload_automatic: true, config_reload_interval: 3 ``` Fixes: #5681 Fixes #5780 --- logstash-core/lib/logstash/api/commands/node.rb | 4 ++-- logstash-core/lib/logstash/pipeline.rb | 4 +++- logstash-core/spec/api/lib/api/node_spec.rb | 8 +++++--- .../spec/api/lib/api/support/resource_dsl_methods.rb | 10 ++++++++++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/node.rb b/logstash-core/lib/logstash/api/commands/node.rb index e27ecc3c954..816d6be8f8b 100644 --- a/logstash-core/lib/logstash/api/commands/node.rb +++ b/logstash-core/lib/logstash/api/commands/node.rb @@ -20,7 +20,7 @@ def all(selected_fields=[]) def pipeline extract_metrics( [:stats, :pipelines, :main, :config], - :workers, :batch_size, :batch_delay + :workers, :batch_size, :batch_delay, :config_reload_automatic, :config_reload_interval ) end @@ -42,7 +42,7 @@ def jvm :vm_name => java.lang.System.getProperty("java.vm.name"), :vm_version => java.lang.System.getProperty("java.version"), :vm_vendor => java.lang.System.getProperty("java.vendor"), - :vm_name => java.lang.System.getProperty("java.vm.name"), + :vm_name => java.lang.System.getProperty("java.vm.name"), :start_time_in_millis => started_at, :mem => { :heap_init_in_bytes => (memory_bean.getHeapMemoryUsage().getInit() < 0 ? 0 : memory_bean.getHeapMemoryUsage().getInit()), diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 7fdb679f789..9b0c56d5469 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -95,7 +95,7 @@ def initialize(config_str, settings = LogStash::SETTINGS, namespaced_metric = ni queue = LogStash::Util::WrappedSynchronousQueue.new @input_queue_client = queue.write_client @filter_queue_client = queue.read_client - # Note that @infilght_batches as a central mechanism for tracking inflight + # Note that @inflight_batches as a central mechanism for tracking inflight # batches will fail if we have multiple read clients here. @filter_queue_client.set_events_metric(metric.namespace([:stats, :events])) @filter_queue_client.set_pipeline_metric( @@ -206,6 +206,8 @@ def start_workers config_metric.gauge(:workers, pipeline_workers) config_metric.gauge(:batch_size, batch_size) config_metric.gauge(:batch_delay, batch_delay) + config_metric.gauge(:config_reload_automatic, @settings.get("config.reload.automatic")) + config_metric.gauge(:config_reload_interval, @settings.get("config.reload.interval")) @logger.info("Starting pipeline", "id" => self.pipeline_id, diff --git a/logstash-core/spec/api/lib/api/node_spec.rb b/logstash-core/spec/api/lib/api/node_spec.rb index 357b3b5baa4..17cf5620958 100644 --- a/logstash-core/spec/api/lib/api/node_spec.rb +++ b/logstash-core/spec/api/lib/api/node_spec.rb @@ -111,7 +111,9 @@ "pipeline" => { "workers" => Numeric, "batch_size" => Numeric, - "batch_delay" => Numeric + "batch_delay" => Numeric, + "config_reload_automatic" => Boolean, + "config_reload_interval" => Numeric }, "os" => { "name" => String, @@ -140,8 +142,8 @@ "threads" => Array } } - + test_api_and_resources(root_structure, :exclude_from_root => ["hot_threads"]) - end + end end end diff --git a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb index 03ee08f41c9..f014f974059 100644 --- a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb +++ b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb @@ -1,3 +1,13 @@ +# Ruby doesn't have common class for boolean, +# And to simplify the ResourceDSLMethods check it make sense to have it. +module Boolean; end +class TrueClass + include Boolean +end +class FalseClass + include Boolean +end + module ResourceDSLMethods # Convert a nested hash to a mapping of key paths to expected classes def hash_to_mapping(h, path=[], mapping={}) From 228e1fb02bcad2e8ef56bae5d022632b5a3fd06e Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 22 Aug 2016 09:30:07 -0400 Subject: [PATCH 305/632] add config_reload_* to the monitoring doc and fix a typo in the hot threads api Fixes #5780 --- docs/static/monitoring-apis.asciidoc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 3c7ce70b98a..4ee5a54effb 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -110,7 +110,10 @@ Example response: "pipeline": { "workers": 8, "batch_size": 125, - "batch_delay": 5 + "batch_delay": 5, + "config_reload_automatic": true, + "config_reload_interval": 3 + } -------------------------------------------------- @@ -491,7 +494,7 @@ Example of a human-readable response: ::: {} Hot threads at 2016-07-26T18:46:18-07:00, busiestThreads=3: ================================================================================ - 0.15 % of of cpu usage by timed_waiting thread named 'LogStash::Runner' + 0.15 % of cpu usage by timed_waiting thread named 'LogStash::Runner' java.lang.Object.wait(Native Method) java.lang.Thread.join(Thread.java:1253) org.jruby.internal.runtime.NativeThread.join(NativeThread.java:75) @@ -503,7 +506,7 @@ Hot threads at 2016-07-26T18:46:18-07:00, busiestThreads=3: org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136) org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60) -------------------------------------------------------------------------------- - 0.11 % of of cpu usage by timed_waiting thread named 'Ruby-0-Thread-17' + 0.11 % of cpu usage by timed_waiting thread named 'Ruby-0-Thread-17' /Users/username/BuildTesting/logstash-5.0.0logstash-core/lib/logstash/pipeline.rb:471 java.lang.Object.wait(Native Method) org.jruby.RubyThread.sleep(RubyThread.java:1002) @@ -516,7 +519,7 @@ Hot threads at 2016-07-26T18:46:18-07:00, busiestThreads=3: rubyjit.Module$$stoppable_sleep_c19c1639527ca7d373b5093f339d26538f1c21ef1028566121.__file__(/Users/username/BuildTesting/logstash-5.0.0/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/interval.rb) org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:46) -------------------------------------------------------------------------------- - 0.04 % of of cpu usage by timed_waiting thread named '[main]-pipeline-manager' + 0.04 % of cpu usage by timed_waiting thread named '[main]-pipeline-manager' java.lang.Object.wait(Native Method) java.lang.Thread.join(Thread.java:1253) org.jruby.internal.runtime.NativeThread.join(NativeThread.java:75) From f57b5f0cb11cf132c8f72066e6a6302273ad2a21 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Fri, 19 Aug 2016 14:28:37 -0500 Subject: [PATCH 306/632] Cleanup OutputDelegatorStrategy refactor This fixes two issues: 1. This fully removes the xopts parameter which for Shared and Single concurrency would prevent outputs from receiving their parameters 2. This cleans up the injection of the OutputDelegatorStrategyRegistry. This also bumps the plugin api version to 2.1.12 Fixes #5794 --- .../lib/logstash-core-plugin-api/version.rb | 2 +- logstash-core/lib/logstash/output_delegator.rb | 3 ++- .../lib/logstash/output_delegator_strategies/legacy.rb | 2 +- .../lib/logstash/output_delegator_strategies/shared.rb | 2 +- .../lib/logstash/output_delegator_strategies/single.rb | 2 +- logstash-core/lib/logstash/pipeline.rb | 2 +- logstash-core/spec/logstash/output_delegator_spec.rb | 7 ++++++- versions.yml | 2 +- 8 files changed, 14 insertions(+), 8 deletions(-) diff --git a/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb b/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb index 9e4e415bd49..7c3d3e44fb7 100644 --- a/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb +++ b/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb @@ -1,2 +1,2 @@ # encoding: utf-8 -LOGSTASH_CORE_PLUGIN_API = "2.1.7" +LOGSTASH_CORE_PLUGIN_API = "2.1.12" diff --git a/logstash-core/lib/logstash/output_delegator.rb b/logstash-core/lib/logstash/output_delegator.rb index 420c6945751..3a0575ac91d 100644 --- a/logstash-core/lib/logstash/output_delegator.rb +++ b/logstash-core/lib/logstash/output_delegator.rb @@ -12,7 +12,8 @@ def initialize(logger, output_class, metric, strategy_registry, plugin_args) @output_class = output_class @metric = metric @plugin_args = plugin_args - @strategy_registry ||= ::LogStash::OutputDelegatorStrategyRegistry.instance + @strategy_registry = strategy_registry + raise ArgumentError, "No strategy registry specified" unless strategy_registry raise ArgumentError, "No ID specified! Got args #{plugin_args}" unless id build_strategy! diff --git a/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb b/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb index fde11d74fd5..52539c42b45 100644 --- a/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb +++ b/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb @@ -2,7 +2,7 @@ module LogStash module OutputDelegatorStrategies class Legacy attr_reader :worker_count, :workers - def initialize(logger, klass, metric, plugin_args={}) + def initialize(logger, klass, metric, plugin_args) @worker_count = (plugin_args["workers"] || 1).to_i @workers = @worker_count.times.map {|t| klass.new(plugin_args)} @worker_queue = SizedQueue.new(@worker_count) diff --git a/logstash-core/lib/logstash/output_delegator_strategies/shared.rb b/logstash-core/lib/logstash/output_delegator_strategies/shared.rb index 02a75f6ed2f..40a0ff8c86f 100644 --- a/logstash-core/lib/logstash/output_delegator_strategies/shared.rb +++ b/logstash-core/lib/logstash/output_delegator_strategies/shared.rb @@ -1,5 +1,5 @@ module LogStash module OutputDelegatorStrategies class Shared - def initialize(logger, klass, metric, xopts={}, plugin_args={}) + def initialize(logger, klass, metric, plugin_args) @output = klass.new(plugin_args) end diff --git a/logstash-core/lib/logstash/output_delegator_strategies/single.rb b/logstash-core/lib/logstash/output_delegator_strategies/single.rb index 53903c36305..e476013ff8c 100644 --- a/logstash-core/lib/logstash/output_delegator_strategies/single.rb +++ b/logstash-core/lib/logstash/output_delegator_strategies/single.rb @@ -1,5 +1,5 @@ module LogStash module OutputDelegatorStrategies class Single - def initialize(logger, klass, metric, xopts={}, plugin_args={}) + def initialize(logger, klass, metric, plugin_args) @output = klass.new(plugin_args) @mutex = Mutex.new end diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 9b0c56d5469..4662db3136a 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -418,7 +418,7 @@ def plugin(plugin_type, name, *args) type_scoped_metric = pipeline_scoped_metric.namespace("#{plugin_type}s".to_sym) plugin = if plugin_type == "output" OutputDelegator.new(@logger, klass, type_scoped_metric, - {:strategy_registry => ::LogStash::OutputDelegatorStrategyRegistry.instance}, + ::LogStash::OutputDelegatorStrategyRegistry.instance, args) elsif plugin_type == "filter" LogStash::FilterDelegator.new(@logger, klass, type_scoped_metric, args) diff --git a/logstash-core/spec/logstash/output_delegator_spec.rb b/logstash-core/spec/logstash/output_delegator_spec.rb index 5f6d2cc9841..b8c85554197 100644 --- a/logstash-core/spec/logstash/output_delegator_spec.rb +++ b/logstash-core/spec/logstash/output_delegator_spec.rb @@ -5,8 +5,9 @@ describe LogStash::OutputDelegator do let(:logger) { double("logger") } let(:events) { 7.times.map { LogStash::Event.new }} + let(:plugin_args) { {"id" => "foo", "arg1" => "val1"} } - subject { described_class.new(logger, out_klass, LogStash::Instrument::NullMetric.new, {}, "id" => "foo") } + subject { described_class.new(logger, out_klass, LogStash::Instrument::NullMetric.new, ::LogStash::OutputDelegatorStrategyRegistry.instance, plugin_args) } context "with a plain output plugin" do let(:out_klass) { double("output klass") } @@ -83,6 +84,10 @@ expect(subject.strategy).to be_a(klass) end + it "should set the correct parameters on the instance" do + expect(out_klass).to have_received(:new).with(plugin_args) + end + [[:register], [:do_close], [:multi_receive, [[]] ] ].each do |method, args| context "strategy objects" do before do diff --git a/versions.yml b/versions.yml index d0258a5602a..af8d112ab3f 100644 --- a/versions.yml +++ b/versions.yml @@ -3,4 +3,4 @@ logstash: 5.0.0-alpha6 logstash-core: 5.0.0-alpha6 logstash-core-event: 5.0.0-alpha6 logstash-core-event-java: 5.0.0-alpha6 -logstash-core-plugin-api: 2.1.7 +logstash-core-plugin-api: 2.1.12 From ab9f3b79be3aa414fb20bc7318a4dee883af4b3d Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 19 Aug 2016 12:48:59 -0400 Subject: [PATCH 307/632] Expose duration of the Filter+Output part of the pipeline This PR will expose the time spend of a batch in the filter + output Ouput: http://localhost:9600/_node/stats/pipeline ``` events: { duration_in_millis: 18364, in: 309325, filtered: 309325, out: 309325 }, ``` Fixes: #5731 Fixes #5792 --- .../lib/logstash/api/commands/stats.rb | 2 +- .../logstash/util/wrapped_synchronous_queue.rb | 17 ++++++++++++++++- .../spec/api/lib/api/node_stats_spec.rb | 7 ++++--- logstash-core/spec/logstash/pipeline_spec.rb | 2 ++ .../util/wrapped_synchronous_queue_spec.rb | 6 ++++++ 5 files changed, 29 insertions(+), 5 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index f578ba4adb2..100a58d7a6a 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -32,7 +32,7 @@ def process def events extract_metrics( [:stats, :events], - :in, :filtered, :out + :in, :filtered, :out, :duration_in_millis ) end diff --git a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb index 9cb8c5ecfa1..122a917fd11 100644 --- a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb @@ -57,6 +57,9 @@ def initialize(queue, batch_size = 125, wait_for = 5) # Note that @infilght_batches as a central mechanism for tracking inflight # batches will fail if we have multiple read clients in the pipeline. @inflight_batches = {} + + # allow the worker thread to report the execution time of the filter + output + @inflight_clocks = {} @batch_size = batch_size @wait_for = wait_for end @@ -89,6 +92,7 @@ def take_batch batch = ReadBatch.new(@queue, @batch_size, @wait_for) add_starting_metrics(batch) set_current_thread_inflight_batch(batch) + start_clock batch end end @@ -100,11 +104,22 @@ def set_current_thread_inflight_batch(batch) def close_batch(batch) @mutex.synchronize do @inflight_batches.delete(Thread.current) + stop_clock end end + def start_clock + @inflight_clocks[Thread.current] = [ + @event_metric.time(:duration_in_millis), + @pipeline_metric.time(:duration_in_millis) + ] + end + + def stop_clock + @inflight_clocks[Thread.current].each(&:stop) + end + def add_starting_metrics(batch) - return if @event_metric.nil? || @pipeline_metric.nil? @event_metric.increment(:in, batch.starting_size) @pipeline_metric.increment(:in, batch.starting_size) end diff --git a/logstash-core/spec/api/lib/api/node_stats_spec.rb b/logstash-core/spec/api/lib/api/node_stats_spec.rb index ea406980f88..3081bcf6c23 100644 --- a/logstash-core/spec/api/lib/api/node_stats_spec.rb +++ b/logstash-core/spec/api/lib/api/node_stats_spec.rb @@ -59,12 +59,13 @@ }, "pipeline" => { "events" => { + "duration_in_millis" => Numeric, "in" => Numeric, "filtered" => Numeric, "out" => Numeric - } - } + } + } } - + test_api_and_resources(root_structure) end diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index fc29292f294..8bedf937bfa 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -611,6 +611,7 @@ class TestPipeline < LogStash::Pipeline let(:collected_metric) { metric_store.get_with_path("stats/events") } it "populates the different metrics" do + expect(collected_metric[:stats][:events][:duration_in_millis].value).not_to be_nil expect(collected_metric[:stats][:events][:in].value).to eq(number_of_events) expect(collected_metric[:stats][:events][:filtered].value).to eq(number_of_events) expect(collected_metric[:stats][:events][:out].value).to eq(number_of_events) @@ -621,6 +622,7 @@ class TestPipeline < LogStash::Pipeline let(:collected_metric) { metric_store.get_with_path("stats/pipelines/") } it "populates the pipelines core metrics" do + expect(collected_metric[:stats][:pipelines][:main][:events][:duration_in_millis].value).not_to be_nil expect(collected_metric[:stats][:pipelines][:main][:events][:in].value).to eq(number_of_events) expect(collected_metric[:stats][:pipelines][:main][:events][:filtered].value).to eq(number_of_events) expect(collected_metric[:stats][:pipelines][:main][:events][:out].value).to eq(number_of_events) diff --git a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb index 12317f838a9..e0c5ce26d0c 100644 --- a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb +++ b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb @@ -49,6 +49,12 @@ def poll(*) shift(); end let(:queue) { DummyQueue.new } let(:write_client) { LogStash::Util::WrappedSynchronousQueue::WriteClient.new(queue)} let(:read_client) { LogStash::Util::WrappedSynchronousQueue::ReadClient.new(queue)} + + before :each do + read_client.set_events_metric(LogStash::Instrument::NullMetric.new) + read_client.set_pipeline_metric(LogStash::Instrument::NullMetric.new) + end + it "appends batches to the queue" do batch = write_client.get_new_batch 5.times {|i| batch.push("value-#{i}")} From cf3a42460993859eaa081deb3c0547a8593306f3 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 22 Aug 2016 12:01:57 -0400 Subject: [PATCH 308/632] Clear the inflight clock hashmap after stopping a clock Fixes #5792 --- logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb index 122a917fd11..bb20aef5c6d 100644 --- a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb @@ -117,6 +117,7 @@ def start_clock def stop_clock @inflight_clocks[Thread.current].each(&:stop) + @inflight_clocks.delete(Thread.current) end def add_starting_metrics(batch) From 5d4a3aeeb6c3edf4efe79612acd4086578526ac0 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 18 Aug 2016 08:48:04 -0400 Subject: [PATCH 309/632] Add GC stats to the api This PR introduce GC stats in the form of `collection_time` and `collection_count`, it takes the configured gc and categorize them into old and young. Example output: ``` gc: { collectors: { young: { collection_time_in_millis: 22101, collection_count: 5452 }, old: { collection_time_in_millis: 57, collection_count: 1 } } } ``` Fixes: #5730 Fixes #5788 --- .../lib/logstash/api/commands/stats.rb | 7 ++- .../lib/logstash/api/modules/node_stats.rb | 2 +- .../instrument/periodic_poller/jvm.rb | 53 +++++++++++++++---- .../spec/api/lib/api/node_stats_spec.rb | 12 +++++ .../instrument/periodic_poller/jvm_spec.rb | 47 ++++++++++++---- 5 files changed, 99 insertions(+), 22 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index 100a58d7a6a..ae80eecd0da 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -14,7 +14,8 @@ def jvm :count, :peak_count ), - :mem => memory + :mem => memory, + :gc => gc } end @@ -59,6 +60,10 @@ def memory } end + def gc + service.get_shallow(:jvm, :gc) + end + def hot_threads(options={}) HotThreadsReport.new(self, options) end diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index bfdc0e0c1d4..239aaa87cd1 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -12,7 +12,7 @@ class NodeStats < ::LogStash::Api::Modules::Base payload = { :jvm => jvm_payload, :process => process_payload, - :pipeline => pipeline_payload + :pipeline => pipeline_payload, } respond_with(payload, {:filter => params["filter"]}) end diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb index 6cd6495d49f..744bfda8cc3 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb @@ -1,18 +1,36 @@ # encoding: utf-8 require "logstash/instrument/periodic_poller/base" -require 'jrmonitor' +require "jrmonitor" +require "set" java_import 'java.lang.management.ManagementFactory' java_import 'java.lang.management.OperatingSystemMXBean' +java_import 'java.lang.management.GarbageCollectorMXBean' java_import 'com.sun.management.UnixOperatingSystemMXBean' java_import 'javax.management.MBeanServer' java_import 'javax.management.ObjectName' java_import 'javax.management.AttributeList' java_import 'javax.naming.directory.Attribute' + module LogStash module Instrument module PeriodicPoller class JVM < Base + class GarbageCollectorName + YOUNG_GC_NAMES = Set.new(["Copy", "PS Scavenge", "ParNew", "G1 Young Generation"]) + OLD_GC_NAMES = Set.new(["MarkSweepCompact", "PS MarkSweep", "ConcurrentMarkSweep", "G1 Old Generation"]) + + YOUNG = :young + OLD = :old + + def self.get(gc_name) + if YOUNG_GC_NAMES.include?(gc_name) + YOUNG + elsif(OLD_GC_NAMES.include?(gc_name)) + OLD + end + end + end attr_reader :metric @@ -22,31 +40,46 @@ def initialize(metric, options = {}) end def collect - raw = JRMonitor.memory.generate + raw = JRMonitor.memory.generate collect_heap_metrics(raw) collect_non_heap_metrics(raw) collect_pools_metrics(raw) collect_threads_metrics collect_process_metrics + collect_gc_stats end private - def collect_threads_metrics + def collect_gc_stats + garbage_collectors = ManagementFactory.getGarbageCollectorMXBeans() + + garbage_collectors.each do |collector| + name = GarbageCollectorName.get(collector.getName()) + if name.nil? + logger.error("Unknown garbage collector name", :name => name) + else + metric.gauge([:jvm, :gc, :collectors, name], :collection_count, collector.getCollectionCount()) + metric.gauge([:jvm, :gc, :collectors, name], :collection_time_in_millis, collector.getCollectionTime()) + end + end + end + + def collect_threads_metrics threads = JRMonitor.threads.generate - + current = threads.count if @peak_threads.nil? || @peak_threads < current @peak_threads = current - end - - metric.gauge([:jvm, :threads], :count, threads.count) + end + + metric.gauge([:jvm, :threads], :count, threads.count) metric.gauge([:jvm, :threads], :peak_count, @peak_threads) end def collect_process_metrics process_metrics = JRMonitor.process.generate - + path = [:jvm, :process] @@ -91,6 +124,7 @@ def collect_pools_metrics(data) end end + def build_pools_metrics(data) heap = data["heap"] old = {} @@ -129,9 +163,8 @@ def default_information_accumulator :committed_in_bytes => 0, :max_in_bytes => 0, :peak_used_in_bytes => 0, - :peak_max_in_bytes => 0 + :peak_max_in_bytes => 0 } end - end end; end; end diff --git a/logstash-core/spec/api/lib/api/node_stats_spec.rb b/logstash-core/spec/api/lib/api/node_stats_spec.rb index 3081bcf6c23..074f83c3158 100644 --- a/logstash-core/spec/api/lib/api/node_stats_spec.rb +++ b/logstash-core/spec/api/lib/api/node_stats_spec.rb @@ -16,6 +16,18 @@ "count"=>Numeric, "peak_count"=>Numeric }, + "gc" => { + "collectors" => { + "young" => { + "collection_count" => Numeric, + "collection_time_in_millis" => Numeric + }, + "old" => { + "collection_count" => Numeric, + "collection_time_in_millis" => Numeric + } + } + }, "mem" => { "heap_used_in_bytes" => Numeric, "heap_used_percent" => Numeric, diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb index 7506d3516aa..e3e113ca117 100644 --- a/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb +++ b/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb @@ -3,18 +3,41 @@ require "logstash/instrument/periodic_poller/jvm" require "logstash/instrument/collector" +describe LogStash::Instrument::PeriodicPoller::JVM::GarbageCollectorName do + subject { LogStash::Instrument::PeriodicPoller::JVM::GarbageCollectorName } + + context "when the gc is of young type" do + LogStash::Instrument::PeriodicPoller::JVM::GarbageCollectorName::YOUNG_GC_NAMES.each do |name| + it "returns young for #{name}" do + expect(subject.get(name)).to eq(:young) + end + end + end + + context "when the gc is of old type" do + LogStash::Instrument::PeriodicPoller::JVM::GarbageCollectorName::OLD_GC_NAMES.each do |name| + it "returns old for #{name}" do + expect(subject.get(name)).to eq(:old) + end + end + end + + it "returns `nil` when we dont know the gc name" do + expect(subject.get("UNKNOWN GC")).to be_nil + end +end + describe LogStash::Instrument::PeriodicPoller::JVM do let(:metric) { LogStash::Instrument::Metric.new(LogStash::Instrument::Collector.new) } let(:options) { {} } subject(:jvm) { described_class.new(metric, options) } - + it "should initialize cleanly" do expect { jvm }.not_to raise_error end describe "collections" do subject(:collection) { jvm.collect } - it "should run cleanly" do expect { collection }.not_to raise_error end @@ -22,21 +45,25 @@ describe "metrics" do before(:each) { jvm.collect } let(:snapshot_store) { metric.collector.snapshot_metric.metric_store } - subject(:jvm_metrics) { snapshot_store.get_shallow(:jvm, :process) } + subject(:jvm_metrics) { snapshot_store.get_shallow(:jvm) } # Make looking up metric paths easy when given varargs of keys # e.g. mval(:parent, :child) def mval(*metric_path) metric_path.reduce(jvm_metrics) {|acc,k| acc[k]}.value - end + end [ - :max_file_descriptors, - :open_file_descriptors, - :peak_open_file_descriptors, - [:mem, :total_virtual_in_bytes], - [:cpu, :total_in_millis], - [:cpu, :percent] + [:process, :max_file_descriptors], + [:process, :open_file_descriptors], + [:process, :peak_open_file_descriptors], + [:process, :mem, :total_virtual_in_bytes], + [:process, :cpu, :total_in_millis], + [:process, :cpu, :percent], + [:gc, :collectors, :young, :collection_count], + [:gc, :collectors, :young, :collection_time_in_millis], + [:gc, :collectors, :old, :collection_count], + [:gc, :collectors, :old, :collection_time_in_millis] ].each do |path| path = Array(path) it "should have a value for #{path} that is Numeric" do From 33c0a8e89d89984df94476c19a972a42d70e887d Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 16 Aug 2016 17:37:54 -0500 Subject: [PATCH 310/632] Add new `Codec#encode_sync`, `Codec#multi_encode` and `Output#multi_receive_encoded` methods. These methods allow outputs to receive their events pre-encoded for them by the pipeline. This is mostly useful in the context of `#shared` outputs, for whom encoding a discrete batch in a threadsafe way is not necessarily straightforward. It would be advised for codecs to prefer `#multi_encode` as the main way of operating as the standard `#encode` method is not threadsafe. Fixes #5770 --- .../lib/logstash/codecs/example.rb.erb | 7 +- logstash-core/lib/logstash/codecs/base.rb | 30 +++++++- logstash-core/lib/logstash/outputs/base.rb | 12 ++- logstash-core/lib/logstash/pipeline.rb | 5 +- .../spec/logstash/codecs/base_spec.rb | 74 +++++++++++++++++++ .../spec/logstash/outputs/base_spec.rb | 45 +++++++++++ 6 files changed, 167 insertions(+), 6 deletions(-) create mode 100644 logstash-core/spec/logstash/codecs/base_spec.rb diff --git a/lib/pluginmanager/templates/codec-plugin/lib/logstash/codecs/example.rb.erb b/lib/pluginmanager/templates/codec-plugin/lib/logstash/codecs/example.rb.erb index b1a618562d1..91ed93785b8 100644 --- a/lib/pluginmanager/templates/codec-plugin/lib/logstash/codecs/example.rb.erb +++ b/lib/pluginmanager/templates/codec-plugin/lib/logstash/codecs/example.rb.erb @@ -37,8 +37,9 @@ class LogStash::Codecs::<%= classify(plugin_name) %> < LogStash::Codecs::Base end end # def decode - def encode(event) - @on_event.call(event, event.get("message").to_s + @append + NL) - end # def encode + # Encode a single event, this returns the raw data to be returned as a String + def encode_sync(event) + event.get("message").to_s + @append + NL + end # def encode_sync end # class LogStash::Codecs::<%= classify(plugin_name) %> diff --git a/logstash-core/lib/logstash/codecs/base.rb b/logstash-core/lib/logstash/codecs/base.rb index 4fba2b21742..cf8b582d9d5 100644 --- a/logstash-core/lib/logstash/codecs/base.rb +++ b/logstash-core/lib/logstash/codecs/base.rb @@ -18,6 +18,7 @@ def initialize(params={}) super config_init(@params) register if respond_to?(:register) + setup_multi_encode! end public @@ -28,10 +29,37 @@ def decode(data) alias_method :<<, :decode public + # DEPRECATED: Prefer defining encode_sync or multi_encode def encode(event) - raise "#{self.class}#encode must be overidden" + encoded = multi_encode([event]) + encoded.each {|event,data| @on_event.call(event,data) } end # def encode + public + # Relies on the codec being synchronous (which they all are!) + # We need a better long term design here, but this is an improvement + # over the current API for shared plugins + # It is best if the codec implements this directly + def multi_encode(events) + if @has_encode_sync + events.map {|event| [event, self.encode_sync(event)]} + else + batch = Thread.current[:logstash_output_codec_batch] ||= [] + batch.clear + + events.each {|event| self.encode(event) } + batch + end + end + + def setup_multi_encode! + @has_encode_sync = self.methods.include?(:encode_sync) + + on_event do |event, data| + Thread.current[:logstash_output_codec_batch] << [event, data] + end + end + public def close; end; diff --git a/logstash-core/lib/logstash/outputs/base.rb b/logstash-core/lib/logstash/outputs/base.rb index fcd1d7ee595..f26ee960600 100644 --- a/logstash-core/lib/logstash/outputs/base.rb +++ b/logstash-core/lib/logstash/outputs/base.rb @@ -68,6 +68,8 @@ def initialize(params={}) # If we're running with a single thread we must enforce single-threaded concurrency by default # Maybe in a future version we'll assume output plugins are threadsafe @single_worker_mutex = Mutex.new + + @receives_encoded = self.methods.include?(:multi_receive_encoded) end public @@ -83,7 +85,15 @@ def receive(event) public # To be overriden in implementations def multi_receive(events) - events.each {|event| receive(event) } + if @receives_encoded + self.multi_receive_encoded(codec.multi_encode(events)) + else + events.each {|event| receive(event) } + end + end + + def codec + params["codec"] end def concurrency diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 4662db3136a..56916be5385 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -298,7 +298,10 @@ def output_batch(batch) end # Now that we have our output to event mapping we can just invoke each output # once with its list of events - output_events_map.each { |output, events| output.multi_receive(events) } + output_events_map.each do |output, events| + output.multi_receive(events) + end + @filter_queue_client.add_output_metrics(batch) end diff --git a/logstash-core/spec/logstash/codecs/base_spec.rb b/logstash-core/spec/logstash/codecs/base_spec.rb new file mode 100644 index 00000000000..42b07b5d4ed --- /dev/null +++ b/logstash-core/spec/logstash/codecs/base_spec.rb @@ -0,0 +1,74 @@ +# encoding: utf-8 +require "spec_helper" + +DATA_DOUBLE = "data".freeze + +# use a dummy NOOP output to test Outputs::Base +class LogStash::Codecs::NOOPAsync < LogStash::Codecs::Base + attr_reader :last_result + config_name "noop_async" + + def encode(event) + @last_result = @on_event.call(event, DATA_DOUBLE) + end +end + +class LogStash::Codecs::NOOPSync < LogStash::Codecs::Base + attr_reader :last_result + config_name "noop_sync" + + def encode_sync(event) + DATA_DOUBLE + end +end + +class LogStash::Codecs::NOOPMulti < LogStash::Codecs::Base + attr_reader :last_result + config_name "noop_multi" + + def encode_sync(event) + DATA_DOUBLE + end +end + +describe LogStash::Codecs::Base do + let(:params) { {} } + subject(:instance) { klass.new(params.dup) } + let(:event) { double("event") } + let(:encoded_data) { DATA_DOUBLE } + let(:encoded_tuple) { [event, encoded_data] } + + describe "encoding" do + shared_examples "encoder types" do |codec_class| + let(:klass) { codec_class } + + describe "#{codec_class}" do + describe "multi_encode" do + it "should return an array of [event,data] tuples" do + expect(instance.multi_encode([event,event])).to eq([encoded_tuple, encoded_tuple]) + end + end + + describe "#encode" do + before do + @result = nil + instance.on_event do |event, data| + @result = [event, data] + end + instance.encode(event) + end + + it "should yield the correct result" do + expect(@result).to eq(encoded_tuple) + end + end + end + end + + include_examples("encoder types", LogStash::Codecs::NOOPAsync) + include_examples("encoder types", LogStash::Codecs::NOOPSync) + include_examples("encoder types", LogStash::Codecs::NOOPMulti) + end +end + + diff --git a/logstash-core/spec/logstash/outputs/base_spec.rb b/logstash-core/spec/logstash/outputs/base_spec.rb index 506d71509b1..8dd89caa5bf 100644 --- a/logstash-core/spec/logstash/outputs/base_spec.rb +++ b/logstash-core/spec/logstash/outputs/base_spec.rb @@ -25,6 +25,15 @@ class LogStash::Outputs::NOOPLegacy < ::LogStash::Outputs::Base def register; end end +class LogStash::Outputs::NOOPMultiReceiveEncoded < ::LogStash::Outputs::Base + concurrency :single + + def register; end + + def multi_receive_encoded(events_and_encoded) + end +end + describe "LogStash::Outputs::Base#new" do let(:params) { {} } @@ -68,4 +77,40 @@ def register; end expect(subject.concurrency).to eq(:legacy) end end + + describe "dispatching multi_receive" do + let(:event) { double("event") } + let(:events) { [event] } + + context "with multi_receive_encoded" do + let(:klass) { LogStash::Outputs::NOOPMultiReceiveEncoded } + let(:codec) { double("codec") } + let(:encoded) { double("encoded") } + + before do + allow(codec).to receive(:multi_encode).with(events).and_return(encoded) + allow(instance).to receive(:codec).and_return(codec) + allow(instance).to receive(:multi_receive_encoded) + instance.multi_receive(events) + end + + it "should invoke multi_receive_encoded if it exists" do + expect(instance).to have_received(:multi_receive_encoded).with(encoded) + end + end + + context "with plain #receive" do + let(:klass) { LogStash::Outputs::NOOPSingle } + + before do + allow(instance).to receive(:multi_receive).and_call_original + allow(instance).to receive(:receive).with(event) + instance.multi_receive(events) + end + + it "should receive the event by itself" do + expect(instance).to have_received(:receive).with(event) + end + end + end end From 8cd64ee07ea8bef7629833fdb353cde296163d45 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 19 Aug 2016 12:25:26 +0100 Subject: [PATCH 311/632] allow deprecated quiet/debug/verbose flags to be set Fixes #5785 --- logstash-core/lib/logstash/patches/clamp.rb | 21 +++++++++++ logstash-core/lib/logstash/runner.rb | 13 +++++++ logstash-core/spec/logstash/runner_spec.rb | 42 +++++++++++++++++++++ 3 files changed, 76 insertions(+) diff --git a/logstash-core/lib/logstash/patches/clamp.rb b/logstash-core/lib/logstash/patches/clamp.rb index c84686adb44..e993797d80b 100644 --- a/logstash-core/lib/logstash/patches/clamp.rb +++ b/logstash-core/lib/logstash/patches/clamp.rb @@ -16,6 +16,16 @@ def default_from_environment module Option + module Declaration + def deprecated_option(switches, type, description, opts = {}) + Option::Definition.new(switches, type, description, opts).tap do |option| + declared_options << option + block ||= option.default_conversion_block + define_deprecated_accessors_for(option, opts, &block) + end + end + end + module StrictDeclaration include Clamp::Attribute::Declaration @@ -37,6 +47,17 @@ def define_reader_for(option) end end + def define_deprecated_accessors_for(option, opts, &block) + define_deprecated_writer_for(option, opts, &block) + end + + def define_deprecated_writer_for(option, opts, &block) + define_method(option.write_method) do |value| + logger = Cabin::Channel.get(LogStash) + logger.warn "DEPRECATION WARNING: The flag #{option.switches} has been deprecated, please use \"--#{opts[:new_flag]}=#{opts[:new_value]}\" instead." + LogStash::SETTINGS.set(opts[:new_flag], opts[:new_value]) + end + end end class Definition diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index aa67b413e60..67ec8a2a6a1 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -132,6 +132,19 @@ class LogStash::Runner < Clamp::StrictCommand :attribute_name => "path.settings", :default => LogStash::SETTINGS.get_default("path.settings") + ### DEPRECATED FLAGS ### + deprecated_option ["--verbose"], :flag, + I18n.t("logstash.runner.flag.verbose"), + :new_flag => "log.level", :new_value => "verbose" + + deprecated_option ["--debug"], :flag, + I18n.t("logstash.runner.flag.debug"), + :new_flag => "log.level", :new_value => "debug" + + deprecated_option ["--quiet"], :flag, + I18n.t("logstash.runner.flag.quiet"), + :new_flag => "log.level", :new_value => "quiet" + attr_reader :agent def initialize(*args) diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index e1b3773bfc3..40b1958c292 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -327,6 +327,48 @@ def run(args); end expect(channel.level).to eq(:error) end end + + context "deprecated flags" do + context "when using --quiet" do + it "should warn about the deprecated flag" do + expect(channel).to receive(:warn).with(/DEPRECATION WARNING/) + args = ["--quiet", "--version"] + subject.run("bin/logstash", args) + end + + it "should still set the log level accordingly" do + args = ["--quiet", "--version"] + subject.run("bin/logstash", args) + expect(channel.level).to eq(:error) + end + end + context "when using --debug" do + it "should warn about the deprecated flag" do + expect(channel).to receive(:warn).with(/DEPRECATION WARNING/) + args = ["--debug", "--version"] + subject.run("bin/logstash", args) + end + + it "should still set the log level accordingly" do + args = ["--debug", "--version"] + subject.run("bin/logstash", args) + expect(channel.level).to eq(:debug) + end + end + context "when using --verbose" do + it "should warn about the deprecated flag" do + expect(channel).to receive(:warn).with(/DEPRECATION WARNING/) + args = ["--verbose", "--version"] + subject.run("bin/logstash", args) + end + + it "should still set the log level accordingly" do + args = ["--verbose", "--version"] + subject.run("bin/logstash", args) + expect(channel.level).to eq(:info) + end + end + end end describe "path.settings" do From 1f5ae55bef6612472977267aaa41232f794d78f1 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 19 Aug 2016 12:58:56 +0100 Subject: [PATCH 312/632] add missing locale flag messages Fixes #5785 --- logstash-core/locales/en.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 729aa1365ce..2485267fa37 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -252,3 +252,12 @@ en: log_format: |+ Specify if Logstash should write its own logs in JSON form (one event per line) or in plain text (using Ruby's Object#inspect) + debug: |+ + Set the log level to debug. + DEPRECATED: use --log.level=debug instead. + verbose: |+ + Set the log level to info. + DEPRECATED: use --log.level=verbose instead. + quiet: |+ + Set the log level to info. + DEPRECATED: use --log.level=quiet instead. From 32e2cae8a0d87106375bc259299060bec1bad6ea Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 29 Jun 2016 11:02:45 +0200 Subject: [PATCH 313/632] cleanup .rspec from gitignore file for qa directory Fixes #5566 --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0cadd48f8fb..a1952a06fc7 100644 --- a/.gitignore +++ b/.gitignore @@ -30,7 +30,6 @@ integration_run .mvn/ qa/.vm_ssh_config qa/.vagrant -qa/.rspec qa/acceptance/.vagrant qa/Gemfile.lock From 688adca81420436bc709f8848065052f45160de0 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Wed, 29 Jun 2016 12:21:25 +0200 Subject: [PATCH 314/632] Add the idea of a debug flag to make the vagrant commands output explicit to the end user. Also does the changes necessaries to make the vagrant command runner fetch the stdout and stdin on demand and not waiting till the end of it to report. Fixes #5566 --- qa/Rakefile | 8 +++++--- qa/vagrant/command.rb | 36 +++++++++++++++++++++++++++++++----- qa/vagrant/helpers.rb | 15 +++++++++------ 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/qa/Rakefile b/qa/Rakefile index b432a79f91d..fe52f107d9c 100644 --- a/qa/Rakefile +++ b/qa/Rakefile @@ -35,8 +35,9 @@ namespace :qa do puts user_feedback_string_for("bootstraping", args[:platform], machines, {"experimental" => experimental}) - LogStash::VagrantHelpers.destroy(machines) - LogStash::VagrantHelpers.bootstrap(machines) + options = {:debug => ENV['LS_QA_DEBUG']} + LogStash::VagrantHelpers.destroy(machines, options) + LogStash::VagrantHelpers.bootstrap(machines, options) end desc "Halt all VM's involved in the acceptance test round" @@ -46,8 +47,9 @@ namespace :qa do machines = config.select_names_for(args[:platform], {"experimental" => experimental}) puts user_feedback_string_for("halting", args[:platform], machines, {"experimental" => experimental}) + options = {:debug => ENV['LS_QA_DEBUG']} - LogStash::VagrantHelpers.halt(machines) + LogStash::VagrantHelpers.halt(machines, options) end end diff --git a/qa/vagrant/command.rb b/qa/vagrant/command.rb index 740514df8e7..a07b71f817a 100644 --- a/qa/vagrant/command.rb +++ b/qa/vagrant/command.rb @@ -21,25 +21,51 @@ def success? end end - def self.run(cmd) + def self.run(cmd, debug=false) # This block is require to be able to launch a ruby subprocess # that use bundler. Bundler.with_clean_env do - Open3.popen3(cmd) do |stdin, stdout, stderr, wait_thr| - CommandResponse.new(stdin, stdout.read.chomp, stderr.read.chomp, wait_thr.value.exitstatus) + stdin, stdout, stderr, wait_thr = Open3.popen3(cmd) + stdout_acc, stderr_acc = "", "" + stdout_reporter = reporter(stdout, wait_thr) do |c| + stdout_acc << c + print c if debug end + reporter(stderr, wait_thr) do |c| + stderr_acc << c; + print c if debug + end + stdout_reporter.join + CommandResponse.new(stdin, stdout_acc, stderr_acc, wait_thr.value.exitstatus) end end # This method will raise an exception if the `CMD` # was not run successfully and will display the content of STDERR - def self.run!(cmd) - response = run(cmd) + def self.run!(cmd, debug=false) + response = run(cmd, debug) unless response.success? raise CommandError, "CMD: #{cmd} STDERR: #{response.stderr}" end response end + + private + + def self.reporter(io, wait_thr, &block) + Thread.new(io, wait_thr) do |_io, _wait_thr| + while (_wait_thr.status == "run") + begin + c = _io.read(1) + block.call(c) if c + rescue IO::WaitReadable + IO.select([_io]) + retry + end + end + end + end + end end diff --git a/qa/vagrant/helpers.rb b/qa/vagrant/helpers.rb index 1b2a63929a7..96ea1992a02 100644 --- a/qa/vagrant/helpers.rb +++ b/qa/vagrant/helpers.rb @@ -6,16 +6,19 @@ module LogStash class VagrantHelpers - def self.halt(machines="") - CommandExecutor.run!("vagrant halt #{machines.join(' ')}") + def self.halt(machines="", options={}) + debug = options.fetch(:debug, false) + CommandExecutor.run!("vagrant halt #{machines.join(' ')}", debug) end - def self.destroy(machines="") - CommandExecutor.run!("vagrant destroy --force #{machines.join(' ')}") + def self.destroy(machines="", options={}) + debug = options.fetch(:debug, false) + CommandExecutor.run!("vagrant destroy --force #{machines.join(' ')}", debug) end - def self.bootstrap(machines="") - CommandExecutor.run!("vagrant up #{machines.join(' ')}") + def self.bootstrap(machines="", options={}) + debug = options.fetch(:debug, false) + CommandExecutor.run!("vagrant up #{machines.join(' ')}", debug) end def self.save_snapshot(machine="") From 3f4190e7f44656a679a3357b451af692da5c5707 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 22 Aug 2016 11:48:34 -0400 Subject: [PATCH 315/632] Make sure the `name` of the plugin is saved in the metric store Fixes: #5799 Fixes #5800 --- logstash-core/lib/logstash/output_delegator.rb | 4 ++-- .../spec/logstash/output_delegator_spec.rb | 13 +++++++++++-- logstash-core/spec/logstash/pipeline_spec.rb | 12 ++++++++++++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/logstash-core/lib/logstash/output_delegator.rb b/logstash-core/lib/logstash/output_delegator.rb index 3a0575ac91d..e4912f08fc3 100644 --- a/logstash-core/lib/logstash/output_delegator.rb +++ b/logstash-core/lib/logstash/output_delegator.rb @@ -15,12 +15,12 @@ def initialize(logger, output_class, metric, strategy_registry, plugin_args) @strategy_registry = strategy_registry raise ArgumentError, "No strategy registry specified" unless strategy_registry raise ArgumentError, "No ID specified! Got args #{plugin_args}" unless id - + build_strategy! @namespaced_metric = metric.namespace(id.to_sym) + @namespaced_metric.gauge(:name, config_name) @metric_events = @namespaced_metric.namespace(:events) - @namespaced_metric.gauge(:name, id) end def config_name diff --git a/logstash-core/spec/logstash/output_delegator_spec.rb b/logstash-core/spec/logstash/output_delegator_spec.rb index b8c85554197..6f5ceab6876 100644 --- a/logstash-core/spec/logstash/output_delegator_spec.rb +++ b/logstash-core/spec/logstash/output_delegator_spec.rb @@ -6,8 +6,9 @@ let(:logger) { double("logger") } let(:events) { 7.times.map { LogStash::Event.new }} let(:plugin_args) { {"id" => "foo", "arg1" => "val1"} } + let(:metric) { LogStash::Instrument::NullMetric.new } - subject { described_class.new(logger, out_klass, LogStash::Instrument::NullMetric.new, ::LogStash::OutputDelegatorStrategyRegistry.instance, plugin_args) } + subject { described_class.new(logger, out_klass, metric, ::LogStash::OutputDelegatorStrategyRegistry.instance, plugin_args) } context "with a plain output plugin" do let(:out_klass) { double("output klass") } @@ -15,10 +16,13 @@ let(:concurrency) { :single } before(:each) do + # use the same metric instance + allow(metric).to receive(:namespace).with(any_args).and_return(metric) + allow(out_klass).to receive(:new).with(any_args).and_return(out_inst) allow(out_klass).to receive(:name).and_return("example") allow(out_klass).to receive(:concurrency).with(any_args).and_return concurrency - allow(out_klass).to receive(:config_name) + allow(out_klass).to receive(:config_name).and_return("dummy_plugin") allow(out_inst).to receive(:register) allow(out_inst).to receive(:multi_receive) allow(out_inst).to receive(:metric=).with(any_args) @@ -32,6 +36,11 @@ expect { subject }.not_to raise_error end + it "should push the name of the plugin to the metric" do + expect(metric).to receive(:gauge).with(:name, out_klass.config_name) + described_class.new(logger, out_klass, metric, ::LogStash::OutputDelegatorStrategyRegistry.instance, plugin_args) + end + context "after having received a batch of events" do before do subject.register diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 8bedf937bfa..094b994536c 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -641,6 +641,18 @@ class TestPipeline < LogStash::Pipeline plugin_name = dummy_output_id.to_sym expect(collected_metric[:stats][:pipelines][:main][:plugins][:outputs][plugin_name][:events][:out].value).to eq(number_of_events) end + + it "populates the name of the output plugin" do + plugin_name = dummy_output_id.to_sym + expect(collected_metric[:stats][:pipelines][:main][:plugins][:outputs][plugin_name][:name].value).to eq(DummyOutput.config_name) + end + + it "populates the name of the filter plugin" do + [multiline_id, multiline_id_other].map(&:to_sym).each do |id| + plugin_name = "multiline_#{id}".to_sym + expect(collected_metric[:stats][:pipelines][:main][:plugins][:filters][plugin_name][:name].value).to eq(LogStash::Filters::Multiline.config_name) + end + end end end From b8cb201d13664a4f29c97fb3f73d704f818b53c3 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 23 Aug 2016 12:13:02 +0100 Subject: [PATCH 316/632] make sure sed replacements are posix compliant using \s will not work in some systems, use [[:space]] instead Fixes #5812 --- .../spec/shared_examples/cli/logstash-plugin/update.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb index c21ceeb6c33..c690c73d4cf 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb @@ -18,7 +18,7 @@ before do logstash.run_command_in_path("bin/logstash-plugin install --no-verify --version #{previous_version} #{plugin_name}") # Logstash wont update when we have a pinned versionin the gemfile so we remove them - logstash.replace_in_gemfile(',\s"0.1.0"', "") + logstash.replace_in_gemfile(',[[:space:]]"0.1.0"', "") expect(logstash).to have_installed?(plugin_name, previous_version) end From 31392e7fb0d4de3189e6bf64f9d319a72a734adc Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Tue, 23 Aug 2016 17:12:19 -0400 Subject: [PATCH 317/632] base SignalEvent class and cleanup LogStash namespace --- .../lib/logstash/event.rb | 22 ++++++++++--- logstash-core-event/lib/logstash/event.rb | 21 +++++++++--- .../spec/logstash/event_spec.rb | 17 +++++++++- logstash-core/lib/logstash/pipeline.rb | 32 +++++++++---------- .../util/wrapped_synchronous_queue.rb | 10 +++--- 5 files changed, 71 insertions(+), 31 deletions(-) diff --git a/logstash-core-event-java/lib/logstash/event.rb b/logstash-core-event-java/lib/logstash/event.rb index 8f6a1908901..8686cd72e88 100644 --- a/logstash-core-event-java/lib/logstash/event.rb +++ b/logstash-core-event-java/lib/logstash/event.rb @@ -10,14 +10,26 @@ # in the future it might be necessary to refactor using like a BaseEvent # class to have a common interface for all pileline events to support # eventual queueing persistence for example, TBD. -class LogStash::ShutdownEvent; end -class LogStash::FlushEvent; end - module LogStash - FLUSH = LogStash::FlushEvent.new + class SignalEvent + def flush?; raise "abstract method"; end; + def shutdown?; raise "abstract method"; end; + end + + class ShutdownEvent < SignalEvent + def flush?; false; end; + def shutdown?; true; end; + end + + class FlushEvent < SignalEvent + def flush?; true; end; + def shutdown?; false; end; + end + + FLUSH = FlushEvent.new # LogStash::SHUTDOWN is used by plugins - SHUTDOWN = LogStash::ShutdownEvent.new + SHUTDOWN = ShutdownEvent.new end # for backward compatibility, require "logstash/event" is used a lots of places so let's bootstrap the diff --git a/logstash-core-event/lib/logstash/event.rb b/logstash-core-event/lib/logstash/event.rb index 7a9b7d133c9..de0cf5fc00d 100644 --- a/logstash-core-event/lib/logstash/event.rb +++ b/logstash-core-event/lib/logstash/event.rb @@ -13,14 +13,27 @@ # in the future it might be necessary to refactor using like a BaseEvent # class to have a common interface for all pileline events to support # eventual queueing persistence for example, TBD. -class LogStash::ShutdownEvent; end -class LogStash::FlushEvent; end module LogStash - FLUSH = LogStash::FlushEvent.new + class SignalEvent + def flush?; raise "abstract method"; end; + def shutdown?; raise "abstract method"; end; + end + + class ShutdownEvent < SignalEvent + def flush?; false; end; + def shutdown?; true; end; + end + + class FlushEvent < SignalEvent + def flush?; true; end; + def shutdown?; false; end; + end + + FLUSH = FlushEvent.new # LogStash::SHUTDOWN is used by plugins - SHUTDOWN = LogStash::ShutdownEvent.new + SHUTDOWN = ShutdownEvent.new end # the logstash event object. diff --git a/logstash-core-event/spec/logstash/event_spec.rb b/logstash-core-event/spec/logstash/event_spec.rb index 8c6d60db291..1e86f55bc38 100644 --- a/logstash-core-event/spec/logstash/event_spec.rb +++ b/logstash-core-event/spec/logstash/event_spec.rb @@ -535,12 +535,27 @@ end context "signal events" do - it "should define the shutdown event" do + it "should define the shutdown and flush event constants" do # the SHUTDOWN and FLUSH constants are part of the plugin API contract # if they are changed, all plugins must be updated expect(LogStash::SHUTDOWN).to be_a(LogStash::ShutdownEvent) expect(LogStash::FLUSH).to be_a(LogStash::FlushEvent) end + + it "should define the shutdown event with SignalEvent as parent class" do + expect(LogStash::SHUTDOWN).to be_a(LogStash::SignalEvent) + expect(LogStash::FLUSH).to be_a(LogStash::SignalEvent) + end + + it "should define the flush? method" do + expect(LogStash::SHUTDOWN.flush?).to be_falsey + expect(LogStash::FLUSH.flush?).to be_truthy + end + + it "should define the shutdown? method" do + expect(LogStash::SHUTDOWN.shutdown?).to be_truthy + expect(LogStash::FLUSH.shutdown?).to be_falsey + end end end diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 56916be5385..5fde2d10d51 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -44,7 +44,7 @@ module LogStash; class Pipeline "LogStash::Inputs::Stdin" ] - def initialize(config_str, settings = LogStash::SETTINGS, namespaced_metric = nil) + def initialize(config_str, settings = SETTINGS, namespaced_metric = nil) @config_str = config_str @config_hash = Digest::SHA1.hexdigest(@config_str) # Every time #plugin is invoked this is incremented to give each plugin @@ -54,7 +54,7 @@ def initialize(config_str, settings = LogStash::SETTINGS, namespaced_metric = ni @logger = Cabin::Channel.get(LogStash) @settings = settings @pipeline_id = @settings.get_value("pipeline.id") || self.object_id - @reporter = LogStash::PipelineReporter.new(@logger, self) + @reporter = PipelineReporter.new(@logger, self) # A list of plugins indexed by id @plugins_by_id = {} @@ -66,12 +66,12 @@ def initialize(config_str, settings = LogStash::SETTINGS, namespaced_metric = ni # This needs to be configured before we evaluate the code to make # sure the metric instance is correctly send to the plugins to make the namespace scoping work - @metric = namespaced_metric.nil? ? LogStash::Instrument::NullMetric.new : namespaced_metric + @metric = namespaced_metric.nil? ? Instrument::NullMetric.new : namespaced_metric grammar = LogStashConfigParser.new @config = grammar.parse(config_str) if @config.nil? - raise LogStash::ConfigurationError, grammar.failure_reason + raise ConfigurationError, grammar.failure_reason end # This will compile the config to ruby and evaluate the resulting code. # The code will initialize all the plugins and define the @@ -92,7 +92,7 @@ def initialize(config_str, settings = LogStash::SETTINGS, namespaced_metric = ni raise end - queue = LogStash::Util::WrappedSynchronousQueue.new + queue = Util::WrappedSynchronousQueue.new @input_queue_client = queue.write_client @filter_queue_client = queue.read_client # Note that @inflight_batches as a central mechanism for tracking inflight @@ -148,7 +148,7 @@ def run @started_at = Time.now @thread = Thread.current - LogStash::Util.set_thread_name("[#{pipeline_id}]-pipeline-manager") + Util.set_thread_name("[#{pipeline_id}]-pipeline-manager") start_workers @@ -221,7 +221,7 @@ def start_workers pipeline_workers.times do |t| @worker_threads << Thread.new do - LogStash::Util.set_thread_name("[#{pipeline_id}]>worker#{t}") + Util.set_thread_name("[#{pipeline_id}]>worker#{t}") worker_loop(batch_size, batch_delay) end end @@ -256,7 +256,7 @@ def worker_loop(batch_size, batch_delay) def filter_batch(batch) batch.each do |event| - if event.is_a?(LogStash::Event) + if event.is_a?(Event) filtered = filter_func(event) filtered.each do |e| #these are both original and generated events @@ -331,7 +331,7 @@ def start_input(plugin) end def inputworker(plugin) - LogStash::Util::set_thread_name("[#{pipeline_id}]<#{plugin.class.config_name}") + Util::set_thread_name("[#{pipeline_id}]<#{plugin.class.config_name}") begin plugin.run(@input_queue_client) rescue => e @@ -387,7 +387,7 @@ def shutdown_workers # Each worker thread will receive this exactly once! @worker_threads.each do |t| @logger.debug("Pushing shutdown", :thread => t.inspect) - @input_queue_client.push(LogStash::SHUTDOWN) + @input_queue_client.push(SHUTDOWN) end @worker_threads.each do |t| @@ -411,20 +411,20 @@ def plugin(plugin_type, name, *args) args["id"] end - raise LogStash::ConfigurationError, "Two plugins have the id '#{id}', please fix this conflict" if @plugins_by_id[id] + raise ConfigurationError, "Two plugins have the id '#{id}', please fix this conflict" if @plugins_by_id[id] pipeline_scoped_metric = metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :plugins]) - klass = LogStash::Plugin.lookup(plugin_type, name) + klass = Plugin.lookup(plugin_type, name) # Scope plugins of type 'input' to 'inputs' type_scoped_metric = pipeline_scoped_metric.namespace("#{plugin_type}s".to_sym) plugin = if plugin_type == "output" OutputDelegator.new(@logger, klass, type_scoped_metric, - ::LogStash::OutputDelegatorStrategyRegistry.instance, + OutputDelegatorStrategyRegistry.instance, args) elsif plugin_type == "filter" - LogStash::FilterDelegator.new(@logger, klass, type_scoped_metric, args) + FilterDelegator.new(@logger, klass, type_scoped_metric, args) else # input input_plugin = klass.new(args) input_plugin.metric = type_scoped_metric.namespace(id) @@ -472,7 +472,7 @@ def shutdown_flusher def flush if @flushing.compare_and_set(false, true) @logger.debug? && @logger.debug("Pushing flush onto pipeline") - @input_queue_client.push(LogStash::FLUSH) + @input_queue_client.push(FLUSH) end end @@ -506,7 +506,7 @@ def flush_filters_to_batch(batch, options = {}) def plugin_threads_info input_threads = @input_threads.select {|t| t.alive? } worker_threads = @worker_threads.select {|t| t.alive? } - (input_threads + worker_threads).map {|t| LogStash::Util.thread_info(t) } + (input_threads + worker_threads).map {|t| Util.thread_info(t) } end def stalling_threads_info diff --git a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb index bb20aef5c6d..3c5c2d31d72 100644 --- a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb @@ -218,16 +218,16 @@ def take_originals_from_queue(queue, size, wait) if event.nil? # queue poll timed out next - elsif event == LogStash::SHUTDOWN + elsif event.is_a?(LogStash::SignalEvent) # We MUST break here. If a batch consumes two SHUTDOWN events # then another worker may have its SHUTDOWN 'stolen', thus blocking # the pipeline. - @shutdown_signal_received = true - break - elsif event == LogStash::FLUSH + @shutdown_signal_received = event.shutdown? + # See comment above # We should stop doing work after flush as well. - @flush_signal_received = true + @flush_signal_received = event.flush? + break else @originals[event] = true From 5be74fca2253756ccac77563c12f5c97c3af1517 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Wed, 24 Aug 2016 14:25:38 -0500 Subject: [PATCH 318/632] Properly set Output Metrics in Output Delegator Strategy. Fixes https://github.com/elastic/logstash/issues/5810 Fixes #5825 --- .../lib/logstash/output_delegator_strategies/legacy.rb | 3 ++- .../lib/logstash/output_delegator_strategies/shared.rb | 1 + .../lib/logstash/output_delegator_strategies/single.rb | 1 + logstash-core/spec/logstash/output_delegator_spec.rb | 4 ++++ logstash-core/spec/logstash/outputs/base_spec.rb | 1 - 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb b/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb index 52539c42b45..81f695afc9d 100644 --- a/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb +++ b/logstash-core/lib/logstash/output_delegator_strategies/legacy.rb @@ -4,7 +4,8 @@ module LogStash module OutputDelegatorStrategies class Legacy def initialize(logger, klass, metric, plugin_args) @worker_count = (plugin_args["workers"] || 1).to_i - @workers = @worker_count.times.map {|t| klass.new(plugin_args)} + @workers = @worker_count.times.map { klass.new(plugin_args) } + @workers.each {|w| w.metric = metric } @worker_queue = SizedQueue.new(@worker_count) @workers.each {|w| @worker_queue << w} end diff --git a/logstash-core/lib/logstash/output_delegator_strategies/shared.rb b/logstash-core/lib/logstash/output_delegator_strategies/shared.rb index 40a0ff8c86f..9650cf7ee22 100644 --- a/logstash-core/lib/logstash/output_delegator_strategies/shared.rb +++ b/logstash-core/lib/logstash/output_delegator_strategies/shared.rb @@ -1,6 +1,7 @@ module LogStash module OutputDelegatorStrategies class Shared def initialize(logger, klass, metric, plugin_args) @output = klass.new(plugin_args) + @output.metric = metric end def register diff --git a/logstash-core/lib/logstash/output_delegator_strategies/single.rb b/logstash-core/lib/logstash/output_delegator_strategies/single.rb index e476013ff8c..d576a22df6f 100644 --- a/logstash-core/lib/logstash/output_delegator_strategies/single.rb +++ b/logstash-core/lib/logstash/output_delegator_strategies/single.rb @@ -1,6 +1,7 @@ module LogStash module OutputDelegatorStrategies class Single def initialize(logger, klass, metric, plugin_args) @output = klass.new(plugin_args) + @output.metric = metric @mutex = Mutex.new end diff --git a/logstash-core/spec/logstash/output_delegator_spec.rb b/logstash-core/spec/logstash/output_delegator_spec.rb index 6f5ceab6876..9c3808a027c 100644 --- a/logstash-core/spec/logstash/output_delegator_spec.rb +++ b/logstash-core/spec/logstash/output_delegator_spec.rb @@ -97,6 +97,10 @@ expect(out_klass).to have_received(:new).with(plugin_args) end + it "should set the metric on the instance" do + expect(out_inst).to have_received(:metric=).with(metric) + end + [[:register], [:do_close], [:multi_receive, [[]] ] ].each do |method, args| context "strategy objects" do before do diff --git a/logstash-core/spec/logstash/outputs/base_spec.rb b/logstash-core/spec/logstash/outputs/base_spec.rb index 8dd89caa5bf..fe03883fae6 100644 --- a/logstash-core/spec/logstash/outputs/base_spec.rb +++ b/logstash-core/spec/logstash/outputs/base_spec.rb @@ -34,7 +34,6 @@ def multi_receive_encoded(events_and_encoded) end end - describe "LogStash::Outputs::Base#new" do let(:params) { {} } subject(:instance) { klass.new(params.dup) } From cf3557a851c49062a009e3b0321d2db1e267fb1c Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Wed, 24 Aug 2016 14:32:48 -0500 Subject: [PATCH 319/632] Add workers not supported error message for legacy plugins. Fixes https://github.com/elastic/logstash/issues/5823 Fixes #5826 --- logstash-core/lib/logstash/outputs/base.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/logstash-core/lib/logstash/outputs/base.rb b/logstash-core/lib/logstash/outputs/base.rb index f26ee960600..4e5e1f01b43 100644 --- a/logstash-core/lib/logstash/outputs/base.rb +++ b/logstash-core/lib/logstash/outputs/base.rb @@ -92,6 +92,10 @@ def multi_receive(events) end end + def workers_not_supported(message=nil) + raise "This plugin (#{self.class.name}) is using the obsolete '#workers_not_supported' method. If you installed this plugin specifically on this Logstash version, it is not compatible. If you are a plugin author, please see https://www.elastic.co/guide/en/logstash/current/_how_to_write_a_logstash_output_plugin.html for more info" + end + def codec params["codec"] end From 3696bcad4ae0374772b5544681c2204cfc1699f2 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Wed, 24 Aug 2016 14:49:32 -0500 Subject: [PATCH 320/632] Improve OutputDelegator public API This minimizes the OutputDelegator public API Fixes https://github.com/elastic/logstash/issues/5813 Fixes #5827 --- .../lib/logstash/output_delegator.rb | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/logstash-core/lib/logstash/output_delegator.rb b/logstash-core/lib/logstash/output_delegator.rb index e4912f08fc3..39a7fdb1f0a 100644 --- a/logstash-core/lib/logstash/output_delegator.rb +++ b/logstash-core/lib/logstash/output_delegator.rb @@ -5,19 +5,21 @@ require "logstash/output_delegator_strategies/legacy" module LogStash class OutputDelegator - attr_reader :metric, :metric_events, :strategy, :namespaced_metric, :metric_events , :plugin_args, :strategy_registry + attr_reader :metric, :metric_events, :strategy, :namespaced_metric, :metric_events, :id def initialize(logger, output_class, metric, strategy_registry, plugin_args) @logger = logger @output_class = output_class @metric = metric - @plugin_args = plugin_args - @strategy_registry = strategy_registry + @id = plugin_args["id"] + raise ArgumentError, "No strategy registry specified" unless strategy_registry raise ArgumentError, "No ID specified! Got args #{plugin_args}" unless id - - build_strategy! - + + @strategy = strategy_registry. + class_for(self.concurrency). + new(@logger, @output_class, @metric, plugin_args) + @namespaced_metric = metric.namespace(id.to_sym) @namespaced_metric.gauge(:name, config_name) @metric_events = @namespaced_metric.namespace(:events) @@ -31,16 +33,6 @@ def concurrency @output_class.concurrency end - def build_strategy! - @strategy = strategy_registry. - class_for(self.concurrency). - new(@logger, @output_class, @metric, @plugin_args) - end - - def id - @plugin_args["id"] - end - def register @strategy.register end From 6de1c83c4a008487cc7b7711da3e01c4578c0667 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Wed, 24 Aug 2016 19:01:47 -0500 Subject: [PATCH 321/632] Use the id, not plugin_args as plugin info in pipeline reporter for outputs. The plugin args are not really necessary for reporting. Now that we have unique IDs that's a better way to figure which output is which without potentially sharing sensitive data. This fixes hanging tests in the previous commit Fixes #5827 --- logstash-core/lib/logstash/pipeline_reporter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/pipeline_reporter.rb b/logstash-core/lib/logstash/pipeline_reporter.rb index 4fbaa843ed6..ed73144c86c 100644 --- a/logstash-core/lib/logstash/pipeline_reporter.rb +++ b/logstash-core/lib/logstash/pipeline_reporter.rb @@ -101,7 +101,7 @@ def output_info pipeline.outputs.map do |output_delegator| { :type => output_delegator.config_name, - :plugin_args => output_delegator.plugin_args, + :id => output_delegator.id, :concurrency => output_delegator.concurrency, } end From 1b2f7a766808957c30ac99c011f543aea39d1c24 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 25 Aug 2016 10:30:22 -0700 Subject: [PATCH 322/632] Migrate Logstash to Log4j2 Logging (#5651) Migrate to use Log4j2 for Logstash logging --- config/log4j2.properties | 38 ++++++ config/logstash.yml | 11 +- docs/static/command-line-flags.asciidoc | 14 +-- docs/static/include/pluginbody.asciidoc | 2 +- docs/static/plugin-manager.asciidoc | 2 +- .../wrapper/gradle-wrapper.jar | Bin 53636 -> 53556 bytes .../wrapper/gradle-wrapper.properties | 4 +- logstash-core-event-java/gradlew => gradlew | 46 +++---- .../gradlew.bat => gradlew.bat | 8 +- logstash-core-event-java/build.gradle | 1 + .../lib/logstash/event.rb | 1 - logstash-core-event-java/spec/event_spec.rb | 67 +++-------- .../src/main/java/com/logstash/Event.java | 18 +-- .../src/main/java/com/logstash/Logger.java | 13 -- .../main/java/com/logstash/StdioLogger.java | 10 -- .../logstash/ext/JrubyEventExtLibrary.java | 25 ---- .../spec/logstash/event_spec.rb | 13 -- logstash-core/build.gradle | 75 ++++++++++++ logstash-core/lib/jars.rb | 7 ++ logstash-core/lib/logstash/agent.rb | 4 +- logstash-core/lib/logstash/api/rack_app.rb | 29 +++-- .../lib/logstash/config/config_ast.rb | 4 +- logstash-core/lib/logstash/config/file.rb | 3 +- logstash-core/lib/logstash/config/mixin.rb | 20 ++-- logstash-core/lib/logstash/environment.rb | 3 +- logstash-core/lib/logstash/filters/base.rb | 1 + logstash-core/lib/logstash/inputs/base.rb | 1 + .../lib/logstash/java_integration.rb | 1 + logstash-core/lib/logstash/logging.rb | 90 +------------- logstash-core/lib/logstash/logging/json.rb | 2 +- logstash-core/lib/logstash/logging/logger.rb | 72 +++++++++++ logstash-core/lib/logstash/outputs/base.rb | 1 + logstash-core/lib/logstash/patches/clamp.rb | 4 +- logstash-core/lib/logstash/pipeline.rb | 16 +-- logstash-core/lib/logstash/plugin.rb | 13 +- .../lib/logstash/plugins/registry.rb | 4 +- logstash-core/lib/logstash/runner.rb | 112 ++++++------------ .../lib/logstash/shutdown_watcher.rb | 9 +- logstash-core/lib/logstash/util/decorators.rb | 7 +- .../lib/logstash/util/java_version.rb | 5 - logstash-core/lib/logstash/util/loggable.rb | 24 ++-- logstash-core/locales/en.yml | 18 +-- logstash-core/logstash-core.gemspec | 5 +- logstash-core/spec/api/lib/rack_app_spec.rb | 10 +- .../spec/logstash/config/loader_spec.rb | 4 +- .../spec/logstash/pipeline_reporter_spec.rb | 1 + logstash-core/spec/logstash/pipeline_spec.rb | 4 +- logstash-core/spec/logstash/plugin_spec.rb | 13 +- logstash-core/spec/logstash/runner_spec.rb | 76 ++++-------- .../spec/logstash/shutdown_watcher_spec.rb | 4 - .../java/org/logstash/log/CustomLogEvent.java | 37 ++++++ .../log/CustomLogEventSerializer.java | 48 ++++++++ .../logstash/log/LogstashLogEventFactory.java | 17 +++ .../logstash/log/LogstashMessageFactory.java | 33 ++++++ .../org/logstash/log/StructuredMessage.java | 76 ++++++++++++ .../resources/log4j2.component.properties | 2 + .../org/logstash/log/CustomLogEventTests.java | 112 ++++++++++++++++++ .../src/test/resources/log4j-list.properties | 11 ++ .../src/test/resources/log4j2-test1.xml | 31 +++++ rakelib/artifacts.rake | 1 + rakelib/compile.rake | 9 +- spec/spec_helper.rb | 16 --- 62 files changed, 792 insertions(+), 516 deletions(-) create mode 100644 config/log4j2.properties rename {logstash-core-event-java/gradle => gradle}/wrapper/gradle-wrapper.jar (74%) rename {logstash-core-event-java/gradle => gradle}/wrapper/gradle-wrapper.properties (80%) rename logstash-core-event-java/gradlew => gradlew (97%) rename logstash-core-event-java/gradlew.bat => gradlew.bat (93%) delete mode 100644 logstash-core-event-java/src/main/java/com/logstash/Logger.java delete mode 100644 logstash-core-event-java/src/main/java/com/logstash/StdioLogger.java create mode 100644 logstash-core/build.gradle create mode 100644 logstash-core/lib/jars.rb create mode 100644 logstash-core/lib/logstash/logging/logger.rb create mode 100644 logstash-core/src/main/java/org/logstash/log/CustomLogEvent.java create mode 100644 logstash-core/src/main/java/org/logstash/log/CustomLogEventSerializer.java create mode 100644 logstash-core/src/main/java/org/logstash/log/LogstashLogEventFactory.java create mode 100644 logstash-core/src/main/java/org/logstash/log/LogstashMessageFactory.java create mode 100644 logstash-core/src/main/java/org/logstash/log/StructuredMessage.java create mode 100644 logstash-core/src/main/resources/log4j2.component.properties create mode 100644 logstash-core/src/test/java/org/logstash/log/CustomLogEventTests.java create mode 100644 logstash-core/src/test/resources/log4j-list.properties create mode 100644 logstash-core/src/test/resources/log4j2-test1.xml diff --git a/config/log4j2.properties b/config/log4j2.properties new file mode 100644 index 00000000000..c54166c8dca --- /dev/null +++ b/config/log4j2.properties @@ -0,0 +1,38 @@ +status = error +name = LogstashPropertiesConfig + +appender.console.type = Console +appender.console.name = STDOUT + +# Pattern Logging +# +appender.console.layout.type = PatternLayout +appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n + +# JSON Logging +# +# appender.console.layout.type = JSONLayout +# appender.console.layout.compact = true +# appender.console.layout.eventEol = true + +# Rolling File Appender +# +#property.filename = /tmp/logstash/logstash.log +# +# appender.rolling.type = RollingFile +# appender.rolling.name = RollingFile +# appender.rolling.fileName = ${filename} +# appender.rolling.filePattern = /tmp/logstash/logstash-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz +# appender.rolling.policies.type = Policies +# appender.rolling.policies.time.type = TimeBasedTriggeringPolicy +# appender.rolling.policies.time.interval = 2 +# appender.rolling.policies.time.modulate = true +# appender.rolling.policies.size.type = SizeBasedTriggeringPolicy +# appender.rolling.policies.size.size=100MB +# appender.rolling.strategy.type = DefaultRolloverStrategy +# appender.rolling.strategy.max = 5 +# appender.rolling.layout.type = PatternLayout +# appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n + +rootLogger.level = error +rootLogger.appenderRef.stdout.ref = STDOUT diff --git a/config/logstash.yml b/config/logstash.yml index 8494203231f..bb65061c9bf 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -99,13 +99,14 @@ # ------------ Debugging Settings -------------- # # Options for log.level: -# * warn => warn (default) -# * quiet => error -# * verbose => info -# * debug => debug +# * fatal +# * error +# * warn (default) +# * info +# * debug +# * trace # # log.level: warn -# log.format: plain (or 'json') # path.log: # # ------------ Other Settings -------------- diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 916f40dcb4d..bdccdd23b45 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -45,17 +45,17 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name *`--log.level LEVEL`*:: Valid levels are: +* `fatal`: log very severe error messages that will usually be followed by the application aborting +* `error`: log errors * `warn`: log warnings -* `quiet`: log errors -* `verbose`: log verbose info (for users) +* `info`: log verbose info (for users) * `debug`: log debugging info (for developers) +* `trace`: finer-grained messages beyond debug -*`--log.format FORMAT`*:: - Set to "json" to log in JSON format, or "plain" (default) to use `Object#.inspect`. - *`--path.settings SETTINGS_DIR`*:: - Set the directory containing the `logstash.yml` <>. - + Set the directory containing the `logstash.yml` <> as well + as the log4j logging configuration. + *`--node.name NAME`*:: Set a descriptive name for the node. If no value is specified, defaults to the machine's hostname. diff --git a/docs/static/include/pluginbody.asciidoc b/docs/static/include/pluginbody.asciidoc index 9f61e541871..5d4c40f77fe 100644 --- a/docs/static/include/pluginbody.asciidoc +++ b/docs/static/include/pluginbody.asciidoc @@ -875,7 +875,7 @@ time. **Version messaging from Logstash** -If you start Logstash with the `--log.level verbose` flag, you will see messages like +If you start Logstash with the `--log.level info` flag, you will see messages like these to indicate the relative maturity indicated by the plugin version number: ** **0.1.x** diff --git a/docs/static/plugin-manager.asciidoc b/docs/static/plugin-manager.asciidoc index ae4dea46775..7c700b0e460 100644 --- a/docs/static/plugin-manager.asciidoc +++ b/docs/static/plugin-manager.asciidoc @@ -16,7 +16,7 @@ available in your deployment: [source,shell] ---------------------------------- bin/logstash-plugin list <1> -bin/logstash-plugin list --verbose <2> +bin/logstash-plugin list --info <2> bin/logstash-plugin list '*namefragment*' <3> bin/logstash-plugin list --group output <4> ---------------------------------- diff --git a/logstash-core-event-java/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar similarity index 74% rename from logstash-core-event-java/gradle/wrapper/gradle-wrapper.jar rename to gradle/wrapper/gradle-wrapper.jar index 13372aef5e24af05341d49695ee84e5f9b594659..ca78035ef0501d802d4fc55381ef2d5c3ce0ec6e 100644 GIT binary patch delta 3724 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 WlHeQU8?us>4jg)nMaXqL-G2b7HEzWK delta 3775 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 diff --git a/logstash-core-event-java/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties similarity index 80% rename from logstash-core-event-java/gradle/wrapper/gradle-wrapper.properties rename to gradle/wrapper/gradle-wrapper.properties index 5dd8b01df92..36078a84d4d 100644 --- a/logstash-core-event-java/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Jun 11 09:10:51 BST 2016 +#Wed Jun 29 13:06:17 PDT 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.13-bin.zip diff --git a/logstash-core-event-java/gradlew b/gradlew similarity index 97% rename from logstash-core-event-java/gradlew rename to gradlew index 9d82f789151..27309d92314 100755 --- a/logstash-core-event-java/gradlew +++ b/gradlew @@ -6,12 +6,30 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -30,6 +48,7 @@ die ( ) { cygwin=false msys=false darwin=false +nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -40,26 +59,11 @@ case "`uname`" in MINGW* ) msys=true ;; + NONSTOP* ) + nonstop=true + ;; esac -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -85,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then diff --git a/logstash-core-event-java/gradlew.bat b/gradlew.bat similarity index 93% rename from logstash-core-event-java/gradlew.bat rename to gradlew.bat index aec99730b4e..f6d5974e72f 100644 --- a/logstash-core-event-java/gradlew.bat +++ b/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,7 +46,7 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args if "%@eval[2+2]" == "4" goto 4NT_args diff --git a/logstash-core-event-java/build.gradle b/logstash-core-event-java/build.gradle index 8227db430c2..d99d30476b4 100644 --- a/logstash-core-event-java/build.gradle +++ b/logstash-core-event-java/build.gradle @@ -94,6 +94,7 @@ idea { dependencies { compile 'com.fasterxml.jackson.core:jackson-core:2.7.3' compile 'com.fasterxml.jackson.core:jackson-databind:2.7.3' + compile 'org.apache.logging.log4j:log4j-api:2.6.2' provided 'org.jruby:jruby-core:1.7.25' testCompile 'junit:junit:4.12' testCompile 'net.javacrumbs.json-unit:json-unit:1.9.0' diff --git a/logstash-core-event-java/lib/logstash/event.rb b/logstash-core-event-java/lib/logstash/event.rb index 8686cd72e88..d0c09fac8cf 100644 --- a/logstash-core-event-java/lib/logstash/event.rb +++ b/logstash-core-event-java/lib/logstash/event.rb @@ -3,7 +3,6 @@ require "logstash/namespace" require "logstash/json" require "logstash/string_interpolation" -require "cabin" # transcient pipeline events for normal in-flow signaling as opposed to # flow altering exceptions. for now having base classes is adequate and diff --git a/logstash-core-event-java/spec/event_spec.rb b/logstash-core-event-java/spec/event_spec.rb index 86b670a5706..541186aeb3c 100644 --- a/logstash-core-event-java/spec/event_spec.rb +++ b/logstash-core-event-java/spec/event_spec.rb @@ -194,62 +194,27 @@ end - # noop logger used to test the injectable logger in Event - # this implementation is not complete because only the warn - # method is used in Event. - module DummyLogger - def self.warn(message) - # do nothing - end - end + # TODO(talevy): migrate tests to Java. no reason to test logging logic in ruby when it is being + # done in java land. - context "logger" do + # context "logger" do - let(:logger) { double("Logger") } - after(:each) { LogStash::Event.logger = LogStash::Event::DEFAULT_LOGGER } + # let(:logger) { double("Logger") } - # the following 2 specs are using both a real module (DummyLogger) - # and a mock. both tests are needed to make sure the implementation - # supports both types of objects. + # before(:each) do + # allow(LogStash::Event).to receive(:logger).and_return(logger) + # end - it "should set logger using a module" do - LogStash::Event.logger = DummyLogger - expect(DummyLogger).to receive(:warn).once - LogStash::Event.new(TIMESTAMP => "invalid timestamp") - end + # it "should set logger using a module" do + # expect(logger).to receive(:warn).once + # LogStash::Event.new(TIMESTAMP => "invalid timestamp") + # end - it "should set logger using a mock" do - LogStash::Event.logger = logger - expect(logger).to receive(:warn).once - LogStash::Event.new(TIMESTAMP => "invalid timestamp") - end - - it "should unset logger" do - # first set - LogStash::Event.logger = logger - expect(logger).to receive(:warn).once - LogStash::Event.new(TIMESTAMP => "invalid timestamp") - - # then unset - LogStash::Event.logger = LogStash::Event::DEFAULT_LOGGER - expect(logger).to receive(:warn).never - # this will produce a log line in stdout by the Java Event - LogStash::Event.new(TIMESTAMP => "ignore this log") - end - - - it "should warn on parsing error" do - LogStash::Event.logger = logger - expect(logger).to receive(:warn).once.with(/^Error parsing/) - LogStash::Event.new(TIMESTAMP => "invalid timestamp") - end - - it "should warn on invalid timestamp object" do - LogStash::Event.logger = logger - expect(logger).to receive(:warn).once.with(/^Unrecognized/) - LogStash::Event.new(TIMESTAMP => Array.new) - end - end + # it "should warn on invalid timestamp object" do + # expect(logger).to receive(:warn).once.with(/^Unrecognized/) + # LogStash::Event.new(TIMESTAMP => Array.new) + # end + # end context "to_hash" do let (:source_hash) { {"a" => 1, "b" => [1, 2, 3, {"h" => 1, "i" => "baz"}], "c" => {"d" => "foo", "e" => "bar", "f" => [4, 5, "six"]}} } diff --git a/logstash-core-event-java/src/main/java/com/logstash/Event.java b/logstash-core-event-java/src/main/java/com/logstash/Event.java index a95fb08e472..f04d4d8fff7 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Event.java +++ b/logstash-core-event-java/src/main/java/com/logstash/Event.java @@ -6,6 +6,8 @@ import com.logstash.bivalues.TimeBiValue; import com.logstash.bivalues.TimestampBiValue; import com.logstash.ext.JrubyTimestampExtLibrary; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.joda.time.DateTime; import org.jruby.RubySymbol; @@ -35,13 +37,9 @@ public class Event implements Cloneable, Serializable { public static final String VERSION = "@version"; public static final String VERSION_ONE = "1"; - private static final Logger DEFAULT_LOGGER = new StdioLogger(); + private static final Logger logger = LogManager.getLogger(Event.class); private static final ObjectMapper mapper = new ObjectMapper(); - // logger is static since once set there is no point in changing it at runtime - // for other reasons than in tests/specs. - private transient static Logger logger = DEFAULT_LOGGER; - public Event() { this.metadata = new HashMap(); @@ -283,10 +281,10 @@ private Timestamp initTimestamp(Object o) { } else if (o instanceof RubySymbol) { return new Timestamp(((RubySymbol) o).asJavaString()); } else { - Event.logger.warn("Unrecognized " + TIMESTAMP + " value type=" + o.getClass().toString()); + logger.warn("Unrecognized " + TIMESTAMP + " value type=" + o.getClass().toString()); } } catch (IllegalArgumentException e) { - Event.logger.warn("Error parsing " + TIMESTAMP + " string value=" + o.toString()); + logger.warn("Error parsing " + TIMESTAMP + " string value=" + o.toString()); } tag(TIMESTAMP_FAILURE_TAG); @@ -306,10 +304,4 @@ public void tag(String tag) { tags.add(tag); } } - - // Event.logger is static since once set there is no point in changing it at runtime - // for other reasons than in tests/specs. - public static void setLogger(Logger logger) { - Event.logger = logger; - } } diff --git a/logstash-core-event-java/src/main/java/com/logstash/Logger.java b/logstash-core-event-java/src/main/java/com/logstash/Logger.java deleted file mode 100644 index fc425542715..00000000000 --- a/logstash-core-event-java/src/main/java/com/logstash/Logger.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.logstash; - -// minimalist Logger interface to wire a logger callback in the Event class -// for now only warn is defined because this is the only method that's required -// in the Event class. -// TODO: (colin) generalize this - -public interface Logger { - - // TODO: (colin) complete interface beyond warn when needed - - void warn(String message); -} diff --git a/logstash-core-event-java/src/main/java/com/logstash/StdioLogger.java b/logstash-core-event-java/src/main/java/com/logstash/StdioLogger.java deleted file mode 100644 index c12bb3e0573..00000000000 --- a/logstash-core-event-java/src/main/java/com/logstash/StdioLogger.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.logstash; - -public class StdioLogger implements Logger { - - // TODO: (colin) complete implementation beyond warn when needed - - public void warn(String message) { - System.out.println(message); - } -} diff --git a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java index 6c533f663e7..f7572a0d859 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java +++ b/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java @@ -38,7 +38,6 @@ public IRubyObject allocate(Ruby runtime, RubyClass rubyClass) { clazz.setConstant("TIMESTAMP", runtime.newString(Event.TIMESTAMP)); clazz.setConstant("TIMESTAMP_FAILURE_TAG", runtime.newString(Event.TIMESTAMP_FAILURE_TAG)); clazz.setConstant("TIMESTAMP_FAILURE_FIELD", runtime.newString(Event.TIMESTAMP_FAILURE_FIELD)); - clazz.setConstant("DEFAULT_LOGGER", runtime.getModule("Cabin").getClass("Channel").callMethod("get", runtime.getModule("LogStash"))); clazz.setConstant("VERSION", runtime.newString(Event.VERSION)); clazz.setConstant("VERSION_ONE", runtime.newString(Event.VERSION_ONE)); clazz.defineAnnotatedMethods(RubyEvent.class); @@ -58,24 +57,9 @@ public IRubyObject allocate(Ruby runtime, RubyClass rubyClass) { } } - public static class ProxyLogger implements Logger { - private RubyObject logger; - - public ProxyLogger(RubyObject logger) { - this.logger = logger; - } - - // TODO: (colin) complete implementation beyond warn when needed - - public void warn(String message) { - logger.callMethod("warn", RubyString.newString(logger.getRuntime(), message)); - } - } - @JRubyClass(name = "Event", parent = "Object") public static class RubyEvent extends RubyObject { private Event event; - private static RubyObject logger; public RubyEvent(Ruby runtime, RubyClass klass) { super(runtime, klass); @@ -314,14 +298,5 @@ public IRubyObject ruby_set_timestamp(ThreadContext context, IRubyObject value) this.event.setTimestamp(((JrubyTimestampExtLibrary.RubyTimestamp)value).getTimestamp()); return value; } - - // set a new logger for all Event instances - // there is no point in changing it at runtime for other reasons than in tests/specs. - @JRubyMethod(name = "logger=", required = 1, meta = true) - public static IRubyObject ruby_set_logger(ThreadContext context, IRubyObject recv, IRubyObject value) - { - Event.setLogger(new ProxyLogger((RubyObject)value)); - return value; - } } } diff --git a/logstash-core-event/spec/logstash/event_spec.rb b/logstash-core-event/spec/logstash/event_spec.rb index 1e86f55bc38..3cdd33d12d8 100644 --- a/logstash-core-event/spec/logstash/event_spec.rb +++ b/logstash-core-event/spec/logstash/event_spec.rb @@ -391,12 +391,6 @@ end context "timestamp initialization" do - let(:logger_mock) { double("logger") } - - after(:each) do - LogStash::Event.logger = LogStash::Event::DEFAULT_LOGGER - end - it "should coerce timestamp" do t = Time.iso8601("2014-06-12T00:12:17.114Z") expect(LogStash::Event.new("@timestamp" => t).timestamp.to_i).to eq(t.to_i) @@ -421,10 +415,6 @@ end it "should warn for invalid value" do - LogStash::Event.logger = logger_mock - - expect(logger_mock).to receive(:warn).twice - LogStash::Event.new("@timestamp" => :foo) LogStash::Event.new("@timestamp" => 666) end @@ -437,9 +427,6 @@ end it "should warn for invalid string format" do - LogStash::Event.logger = logger_mock - - expect(logger_mock).to receive(:warn) LogStash::Event.new("@timestamp" => "foo") end end diff --git a/logstash-core/build.gradle b/logstash-core/build.gradle new file mode 100644 index 00000000000..3f4fdf3e4b4 --- /dev/null +++ b/logstash-core/build.gradle @@ -0,0 +1,75 @@ +import java.nio.file.Files +import static java.nio.file.StandardCopyOption.REPLACE_EXISTING + +apply plugin: 'java' +apply plugin: 'idea' + +group = 'org.logstash' +version = '5.0.0-alpha6' + +description = """Logstash Core Java""" + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 + +configurations { + provided +} + +project.sourceSets { + main.compileClasspath += project.configurations.provided + main.runtimeClasspath += project.configurations.provided + test.compileClasspath += project.configurations.provided + test.runtimeClasspath += project.configurations.provided +} +project.javadoc.classpath += project.configurations.provided + +repositories { + mavenCentral() +} + +dependencies { + runtime 'org.apache.logging.log4j:log4j-1.2-api:2.6.2' + compile 'org.apache.logging.log4j:log4j-api:2.6.2' + compile 'org.apache.logging.log4j:log4j-core:2.6.2' + compile 'com.fasterxml.jackson.core:jackson-core:2.7.4' + compile 'com.fasterxml.jackson.core:jackson-databind:2.7.4' + testCompile 'org.apache.logging.log4j:log4j-core:2.6.2:tests' + testCompile 'org.apache.logging.log4j:log4j-api:2.6.2:tests' + testCompile 'junit:junit:4.12' + provided 'org.jruby:jruby-core:1.7.25' +} + +idea { + module { + scopes.PROVIDED.plus += [project.configurations.provided] + } +} + +task generateGemJarRequiresFile << { + File jars_file = file('lib/jars.rb') + jars_file.newWriter().withWriter { w -> + w << "require \'jar_dependencies\'\n" + configurations.runtime.allDependencies.each { + w << "require_jar(\'${it.group}\', \'${it.name}\', \'${it.version}\')\n" + } + w << "require_jar(\'${project.group}\', \'${project.name}\', \'${project.version}\')\n" + } +} + +task vendor << { + String vendorPathPrefix = "vendor/jars" + configurations.runtime.allDependencies.each { dep -> + File f = configurations.runtime.filter { it.absolutePath.contains("${dep.group}/${dep.name}/${dep.version}") }.singleFile + String groupPath = dep.group.replaceAll('\\.', '/') + File newJarFile = file("${vendorPathPrefix}/${groupPath}/${dep.name}/${dep.version}/${dep.name}-${dep.version}.jar") + newJarFile.mkdirs() + Files.copy(f.toPath(), newJarFile.toPath(), REPLACE_EXISTING) + } + String projectGroupPath = project.group.replaceAll('\\.', '/') + File projectJarFile = file("${vendorPathPrefix}/${projectGroupPath}/${project.name}/${project.version}/${project.name}-${project.version}.jar") + projectJarFile.mkdirs() + Files.copy(file("$buildDir/libs/${project.name}-${project.version}.jar").toPath(), projectJarFile.toPath(), REPLACE_EXISTING) +} + +vendor.dependsOn(jar, generateGemJarRequiresFile) diff --git a/logstash-core/lib/jars.rb b/logstash-core/lib/jars.rb new file mode 100644 index 00000000000..529079f74fb --- /dev/null +++ b/logstash-core/lib/jars.rb @@ -0,0 +1,7 @@ +require 'jar_dependencies' +require_jar('org.apache.logging.log4j', 'log4j-1.2-api', '2.6.2') +require_jar('org.apache.logging.log4j', 'log4j-api', '2.6.2') +require_jar('org.apache.logging.log4j', 'log4j-core', '2.6.2') +require_jar('com.fasterxml.jackson.core', 'jackson-core', '2.7.4') +require_jar('com.fasterxml.jackson.core', 'jackson-databind', '2.7.4') +require_jar('org.logstash', 'logstash-core', '5.0.0-alpha6') diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index f999b71fd4b..62b9f05b524 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -18,6 +18,7 @@ LogStash::Environment.load_locale! class LogStash::Agent + include LogStash::Util::Loggable STARTED_AT = Time.now.freeze attr_reader :metric, :node_name, :pipelines, :settings, :webserver @@ -28,10 +29,9 @@ class LogStash::Agent # :node_name [String] - identifier for the agent # :auto_reload [Boolean] - enable reloading of pipelines # :reload_interval [Integer] - reload pipelines every X seconds - # :logger [Cabin::Channel] - logger instance def initialize(settings = LogStash::SETTINGS) + @logger = self.class.logger @settings = settings - @logger = Cabin::Channel.get(LogStash) @auto_reload = setting("config.reload.automatic") @pipelines = {} diff --git a/logstash-core/lib/logstash/api/rack_app.rb b/logstash-core/lib/logstash/api/rack_app.rb index 6a5507d0a32..ff9a0c81c18 100644 --- a/logstash-core/lib/logstash/api/rack_app.rb +++ b/logstash-core/lib/logstash/api/rack_app.rb @@ -10,18 +10,17 @@ module LogStash module Api module RackApp - # Cabin is not compatible with CommonLogger, and this gives us more control anyway METADATA_FIELDS = [:request_method, :path_info, :query_string, :http_version, :http_accept].freeze def self.log_metadata(status, env) METADATA_FIELDS.reduce({:status => status}) do |acc, field| acc[field] = env[field.to_s.upcase] acc - end + end end - + class ApiLogger LOG_MESSAGE = "API HTTP Request".freeze - + def initialize(app, logger) @app = app @logger = logger @@ -30,24 +29,24 @@ def initialize(app, logger) def call(env) res = @app.call(env) status, headers, body = res - + if fatal_error?(status) - @logger.warn? && @logger.warn(LOG_MESSAGE, RackApp.log_metadata(status, env)) - else - @logger.info? && @logger.info(LOG_MESSAGE, RackApp.log_metadata(status, env)) + @logger.warn? && @logger.warn(LOG_MESSAGE, RackApp.log_metadata(status, env)) + else + @logger.info? && @logger.info(LOG_MESSAGE, RackApp.log_metadata(status, env)) end - res + res end def fatal_error?(status) status >= 500 && status < 600 end end - + class ApiErrorHandler LOG_MESSAGE = "Internal API server error".freeze - + def initialize(app, logger) @app = app @logger = logger @@ -65,21 +64,21 @@ def call(env) }) @logger.error(LOG_MESSAGE, body) - + [500, {'Content-Type' => 'application/json'}, [LogStash::Json.dump(body)] ] end end - + def self.app(logger, agent, environment) namespaces = rack_namespaces(agent) Rack::Builder.new do # Custom logger object. Rack CommonLogger does not work with cabin use ApiLogger, logger - + # In test env we want errors to propogate up the chain # so we get easy to understand test failures. # In production / dev we don't want a bad API endpoint @@ -87,7 +86,7 @@ def self.app(logger, agent, environment) if environment != "test" use ApiErrorHandler, logger end - + run LogStash::Api::Modules::Root.new(nil, agent) namespaces.each_pair do |namespace, app| map(namespace) do diff --git a/logstash-core/lib/logstash/config/config_ast.rb b/logstash-core/lib/logstash/config/config_ast.rb index 6963fc7d31e..ce6295a6933 100644 --- a/logstash-core/lib/logstash/config/config_ast.rb +++ b/logstash-core/lib/logstash/config/config_ast.rb @@ -123,7 +123,7 @@ def compile definitions << "define_singleton_method :#{type}_func do |event|" definitions << " targeted_outputs = []" if type == "output" definitions << " events = [event]" if type == "filter" - definitions << " @logger.debug? && @logger.debug(\"#{type} received\", :event => event.to_hash)" + definitions << " @logger.debug? && @logger.debug(\"#{type} received\", \"event\" => event.to_hash)" sections.select { |s| s.plugin_type.text_value == type }.each do |s| definitions << s.compile.split("\n", -1).map { |e| " #{e}" } @@ -174,7 +174,7 @@ def compile_initializer return if events.nil? || events.empty? - @logger.debug? && @logger.debug(\"Flushing\", :plugin => @generated_objects[:#{name}], :events => events) + @logger.debug? && @logger.debug(\"Flushing\", :plugin => @generated_objects[:#{name}], :events => events.map { |x| x.to_hash }) #{plugin.compile_starting_here.gsub(/^/, " ")} diff --git a/logstash-core/lib/logstash/config/file.rb b/logstash-core/lib/logstash/config/file.rb index fb0d939dfde..b0be8d0e81c 100644 --- a/logstash-core/lib/logstash/config/file.rb +++ b/logstash-core/lib/logstash/config/file.rb @@ -8,11 +8,10 @@ class LogStash::Config::File include Enumerable - attr_accessor :logger + include LogStash::Util::Loggable public def initialize(text) - @logger = Cabin::Channel.get(LogStash) @text = text @config = parse(text) end # def initialize diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index eb10f35cc8d..70ad888c74c 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -66,7 +66,7 @@ def config_init(params) if opts && opts[:deprecated] extra = opts[:deprecated].is_a?(String) ? opts[:deprecated] : "" extra.gsub!("%PLUGIN%", self.class.config_name) - @logger.warn("You are using a deprecated config setting " + + self.logger.warn("You are using a deprecated config setting " + "#{name.inspect} set in #{self.class.config_name}. " + "Deprecated settings will continue to work, " + "but are scheduled for removal from logstash " + @@ -141,7 +141,7 @@ def config_init(params) next if key[0, 1] == "@" # Set this key as an instance variable only if it doesn't start with an '@' - @logger.debug("config #{self.class.name}/@#{key} = #{value.inspect}") + self.logger.debug("config #{self.class.name}/@#{key} = #{value.inspect}") instance_variable_set("@#{key}", value) end @@ -198,8 +198,7 @@ def plugin_status(status = nil) # Deprecated: Declare the version of the plugin # inside the gemspec. def milestone(m = nil) - @logger = Cabin::Channel.get(LogStash) - @logger.debug(I18n.t('logstash.plugin.deprecated_milestone', :plugin => config_name)) + self.logger.debug(I18n.t('logstash.plugin.deprecated_milestone', :plugin => config_name)) end # Define a new configuration setting @@ -262,7 +261,6 @@ def inherited(subclass) def validate(params) @plugin_name = config_name @plugin_type = ancestors.find { |a| a.name =~ /::Base$/ }.config_name - @logger = Cabin::Channel.get(LogStash) is_valid = true print_version_notice @@ -282,12 +280,12 @@ def print_version_notice if plugin_version < PLUGIN_VERSION_1_0_0 if plugin_version < PLUGIN_VERSION_0_9_0 - @logger.info(I18n.t("logstash.plugin.version.0-1-x", + self.logger.info(I18n.t("logstash.plugin.version.0-1-x", :type => @plugin_type, :name => @config_name, :LOGSTASH_VERSION => LOGSTASH_VERSION)) else - @logger.info(I18n.t("logstash.plugin.version.0-9-x", + self.logger.info(I18n.t("logstash.plugin.version.0-9-x", :type => @plugin_type, :name => @config_name, :LOGSTASH_VERSION => LOGSTASH_VERSION)) @@ -297,7 +295,7 @@ def print_version_notice # If we cannot find a version in the currently installed gems we # will display this message. This could happen in the test, if you # create an anonymous class to test a plugin. - @logger.warn(I18n.t("logstash.plugin.no_version", + self.logger.warn(I18n.t("logstash.plugin.no_version", :type => @plugin_type, :name => @config_name, :LOGSTASH_VERSION => LOGSTASH_VERSION)) @@ -321,7 +319,7 @@ def validate_check_invalid_parameter_names(params) if invalid_params.size > 0 invalid_params.each do |name| - @logger.error("Unknown setting '#{name}' for #{@plugin_name}") + self.logger.error("Unknown setting '#{name}' for #{@plugin_name}") end return false end # if invalid_params.size > 0 @@ -348,7 +346,7 @@ def validate_check_required_parameter_names(params) value = params[config_key] if value.nil? || (config[:list] && Array(value).empty?) - @logger.error(I18n.t("logstash.runner.configuration.setting_missing", + self.logger.error(I18n.t("logstash.runner.configuration.setting_missing", :setting => config_key, :plugin => @plugin_name, :type => @plugin_type)) is_valid = false @@ -396,7 +394,7 @@ def validate_check_parameter_values(params) # Used for converting values in the config to proper objects. params[key] = processed_value else - @logger.error(I18n.t("logstash.runner.configuration.setting_invalid", + self.logger.error(I18n.t("logstash.runner.configuration.setting_invalid", :plugin => @plugin_name, :type => @plugin_type, :setting => key, :value => value.inspect, :value_type => config_settings[:validate], diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 75720e763ad..170964849ca 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -1,5 +1,6 @@ # encoding: utf-8 require "logstash/errors" +require "logstash/java_integration" require "logstash/config/cpu_core_strategy" require "logstash/settings" require "socket" @@ -32,7 +33,7 @@ module Environment Setting.new("path.plugins", Array, []), Setting::String.new("interactive", nil, false), Setting::Boolean.new("config.debug", false), - Setting::String.new("log.level", "warn", true, ["quiet", "verbose", "warn", "debug"]), + Setting::String.new("log.level", "warn", true, ["fatal", "error", "warn", "debug", "info", "trace"]), Setting::Boolean.new("version", false), Setting::Boolean.new("help", false), Setting::String.new("path.log", nil, false), diff --git a/logstash-core/lib/logstash/filters/base.rb b/logstash-core/lib/logstash/filters/base.rb index d97c2342d63..35bf49e46ab 100644 --- a/logstash-core/lib/logstash/filters/base.rb +++ b/logstash-core/lib/logstash/filters/base.rb @@ -7,6 +7,7 @@ require "logstash/util/decorators" class LogStash::Filters::Base < LogStash::Plugin + include LogStash::Util::Loggable include LogStash::Config::Mixin config_name "filter" diff --git a/logstash-core/lib/logstash/inputs/base.rb b/logstash-core/lib/logstash/inputs/base.rb index 6249c1b4e1c..ca769278893 100644 --- a/logstash-core/lib/logstash/inputs/base.rb +++ b/logstash-core/lib/logstash/inputs/base.rb @@ -9,6 +9,7 @@ # This is the base class for Logstash inputs. class LogStash::Inputs::Base < LogStash::Plugin + include LogStash::Util::Loggable include LogStash::Config::Mixin config_name "input" diff --git a/logstash-core/lib/logstash/java_integration.rb b/logstash-core/lib/logstash/java_integration.rb index 670ceaae650..26f9eb546e0 100644 --- a/logstash-core/lib/logstash/java_integration.rb +++ b/logstash-core/lib/logstash/java_integration.rb @@ -1,5 +1,6 @@ # encoding: utf-8 require "java" +require "jars" # this is mainly for usage with JrJackson json parsing in :raw mode which genenerates # Java::JavaUtil::ArrayList and Java::JavaUtil::LinkedHashMap native objects for speed. diff --git a/logstash-core/lib/logstash/logging.rb b/logstash-core/lib/logstash/logging.rb index 1dbaa0aa932..201d706bc75 100644 --- a/logstash-core/lib/logstash/logging.rb +++ b/logstash-core/lib/logstash/logging.rb @@ -1,91 +1,3 @@ # encoding: utf-8 +require "logstash/logging/logger" require "logstash/namespace" -require "cabin" -require "logger" - -class LogStash::Logger - attr_accessor :target - - public - def initialize(*args) - super() - - #self[:program] = File.basename($0) - #subscribe(::Logger.new(*args)) - @target = args[0] - @channel = Cabin::Channel.get(LogStash) - - # lame hack until cabin's smart enough not to doubley-subscribe something. - # without this subscription count check, running the test suite - # causes Cabin to subscribe to STDOUT maaaaaany times. - subscriptions = @channel.instance_eval { @subscribers.count } - @channel.subscribe(@target) unless subscriptions > 0 - - # Set default loglevel to WARN unless $DEBUG is set (run with 'ruby -d') - @level = $DEBUG ? :debug : :warn - if ENV["LOGSTASH_DEBUG"] - @level = :debug - end - - # Direct metrics elsewhere. - @channel.metrics.channel = Cabin::Channel.new - end # def initialize - - # Delegation - def level=(value) @channel.level = value; end - def debug(*args); @channel.debug(*args); end - def debug?(*args); @channel.debug?(*args); end - def info(*args); @channel.info(*args); end - def info?(*args); @channel.info?(*args); end - def warn(*args); @channel.warn(*args); end - def warn?(*args); @channel.warn?(*args); end - def error(*args); @channel.error(*args); end - def error?(*args); @channel.error?(*args); end - def fatal(*args); @channel.fatal(*args); end - def fatal?(*args); @channel.fatal?(*args); end - - def self.setup_log4j(logger) - require "java" - - properties = java.util.Properties.new - log4j_level = "WARN" - case logger.level - when :debug - log4j_level = "DEBUG" - when :info - log4j_level = "INFO" - when :warn - log4j_level = "WARN" - end # case level - properties.setProperty("log4j.rootLogger", "#{log4j_level},logstash") - - # TODO(sissel): This is a shitty hack to work around the fact that - # LogStash::Logger isn't used anymore. We should fix that. - target = logger.instance_eval { @subscribers }.values.first.instance_eval { @io } - case target - when STDOUT - properties.setProperty("log4j.appender.logstash", - "org.apache.log4j.ConsoleAppender") - properties.setProperty("log4j.appender.logstash.Target", "System.out") - when STDERR - properties.setProperty("log4j.appender.logstash", - "org.apache.log4j.ConsoleAppender") - properties.setProperty("log4j.appender.logstash.Target", "System.err") - when target.is_a?(File) - properties.setProperty("log4j.appender.logstash", - "org.apache.log4j.FileAppender") - properties.setProperty("log4j.appender.logstash.File", target.path) - else - properties.setProperty("log4j.appender.logstash", "org.apache.log4j.varia.NullAppender") - end # case target - - properties.setProperty("log4j.appender.logstash.layout", - "org.apache.log4j.PatternLayout") - properties.setProperty("log4j.appender.logstash.layout.conversionPattern", - "log4j, [%d{yyyy-MM-dd}T%d{HH:mm:ss.SSS}] %5p: %c: %m%n") - - org.apache.log4j.LogManager.resetConfiguration - org.apache.log4j.PropertyConfigurator.configure(properties) - logger.debug("log4j java properties setup", :log4j_level => log4j_level) - end -end # class LogStash::Logger diff --git a/logstash-core/lib/logstash/logging/json.rb b/logstash-core/lib/logstash/logging/json.rb index 1637fa11ce4..f51f8051d58 100644 --- a/logstash-core/lib/logstash/logging/json.rb +++ b/logstash-core/lib/logstash/logging/json.rb @@ -3,7 +3,7 @@ require "logstash/logging" require "logstash/json" -module LogStash; class Logging; class JSON +module LogStash; module Logging; class JSON def initialize(io) raise ArgumentError, "Expected IO, got #{io.class.name}" unless io.is_a?(IO) diff --git a/logstash-core/lib/logstash/logging/logger.rb b/logstash-core/lib/logstash/logging/logger.rb new file mode 100644 index 00000000000..d43d06a18fb --- /dev/null +++ b/logstash-core/lib/logstash/logging/logger.rb @@ -0,0 +1,72 @@ +require "logstash/java_integration" + +module LogStash + module Logging + class Logger + java_import org.apache.logging.log4j.Level + java_import org.apache.logging.log4j.LogManager + java_import org.apache.logging.log4j.core.config.Configurator + + def initialize(name) + @logger = LogManager.getLogger(name) + end + + def debug? + @logger.is_debug_enabled + end + + def info? + @logger.is_info_enabled + end + + def error? + @logger.is_error_enabled + end + + def warn? + @logger.is_warn_enabled + end + + def fatal? + @logger.is_fatal_enabled + end + + def trace? + @logger.is_trace_enabled + end + + def debug(message, data = {}) + @logger.debug(message, data) + end + + def warn(message, data = {}) + @logger.warn(message, data) + end + + def info(message, data = {}) + @logger.info(message, data) + end + + def error(message, data = {}) + @logger.error(message, data) + end + + def fatal(message, data = {}) + @logger.fatal(message, data) + end + + def trace(message, data = {}) + @logger.trace(message, data) + end + + # Point logging at a specific path. + def self.configure_logging(level, path = LogManager::ROOT_LOGGER_NAME) + Configurator.setLevel(path, Level.toLevel(level)) + end # def configure_logging + + def self.initialize(config_location) + Configurator.initialize(nil, config_location) + end + end + end +end diff --git a/logstash-core/lib/logstash/outputs/base.rb b/logstash-core/lib/logstash/outputs/base.rb index 4e5e1f01b43..453d0cbdf98 100644 --- a/logstash-core/lib/logstash/outputs/base.rb +++ b/logstash-core/lib/logstash/outputs/base.rb @@ -8,6 +8,7 @@ require "concurrent/atomic/atomic_fixnum" class LogStash::Outputs::Base < LogStash::Plugin + include LogStash::Util::Loggable include LogStash::Config::Mixin config_name "output" diff --git a/logstash-core/lib/logstash/patches/clamp.rb b/logstash-core/lib/logstash/patches/clamp.rb index e993797d80b..bdebfeb6f6e 100644 --- a/logstash-core/lib/logstash/patches/clamp.rb +++ b/logstash-core/lib/logstash/patches/clamp.rb @@ -29,6 +29,7 @@ def deprecated_option(switches, type, description, opts = {}) module StrictDeclaration include Clamp::Attribute::Declaration + include LogStash::Util::Loggable # Instead of letting Clamp set up accessors for the options # weŕe going to tightly controlling them through @@ -53,8 +54,7 @@ def define_deprecated_accessors_for(option, opts, &block) def define_deprecated_writer_for(option, opts, &block) define_method(option.write_method) do |value| - logger = Cabin::Channel.get(LogStash) - logger.warn "DEPRECATION WARNING: The flag #{option.switches} has been deprecated, please use \"--#{opts[:new_flag]}=#{opts[:new_value]}\" instead." + self.class.logger.warn "DEPRECATION WARNING: The flag #{option.switches} has been deprecated, please use \"--#{opts[:new_flag]}=#{opts[:new_value]}\" instead." LogStash::SETTINGS.set(opts[:new_flag], opts[:new_value]) end end diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 5fde2d10d51..bb10202a226 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -20,6 +20,8 @@ require "logstash/filter_delegator" module LogStash; class Pipeline + include LogStash::Util::Loggable + attr_reader :inputs, :filters, :outputs, @@ -28,7 +30,6 @@ module LogStash; class Pipeline :events_filtered, :reporter, :pipeline_id, - :logger, :started_at, :thread, :config_str, @@ -45,13 +46,12 @@ module LogStash; class Pipeline ] def initialize(config_str, settings = SETTINGS, namespaced_metric = nil) + @logger = self.logger @config_str = config_str @config_hash = Digest::SHA1.hexdigest(@config_str) # Every time #plugin is invoked this is incremented to give each plugin # a unique id when auto-generating plugin ids - @plugin_counter ||= 0 - - @logger = Cabin::Channel.get(LogStash) + @plugin_counter ||= 0 @settings = settings @pipeline_id = @settings.get_value("pipeline.id") || self.object_id @reporter = PipelineReporter.new(@logger, self) @@ -82,8 +82,8 @@ def initialize(config_str, settings = SETTINGS, namespaced_metric = nil) # The config code is hard to represent as a log message... # So just print it. - if @settings.get_value("config.debug") && logger.debug? - logger.debug("Compiled pipeline code", :code => code) + if @settings.get_value("config.debug") && @logger.debug? + @logger.debug("Compiled pipeline code", :code => code) end begin @@ -152,7 +152,7 @@ def run start_workers - @logger.log("Pipeline #{@pipeline_id} started") + @logger.info("Pipeline #{@pipeline_id} started") # Block until all inputs have stopped # Generally this happens if SIGINT is sent and `shutdown` is called from an external thread @@ -167,7 +167,7 @@ def run shutdown_flusher shutdown_workers - @logger.log("Pipeline #{@pipeline_id} has been shutdown") + @logger.info("Pipeline #{@pipeline_id} has been shutdown") # exit code return 0 diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index fc3532b429e..80f0bd04e62 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -3,14 +3,13 @@ require "logstash/logging" require "logstash/config/mixin" require "logstash/instrument/null_metric" -require "cabin" require "concurrent" require "securerandom" require "logstash/plugins/registry" class LogStash::Plugin + include LogStash::Util::Loggable attr_accessor :params - attr_accessor :logger NL = "\n" @@ -45,12 +44,12 @@ def eql?(other) self.class.name == other.class.name && @params == other.params end - def initialize(params=nil) + def initialize(params=nil) + @logger = self.logger @params = LogStash::Util.deep_clone(params) # The id should always be defined normally, but in tests that might not be the case # In the future we may make this more strict in the Plugin API @params["id"] ||= "#{self.class.config_name}_#{SecureRandom.uuid}" - @logger = Cabin::Channel.get(LogStash) end # Return a uniq ID for this plugin configuration, by default @@ -161,10 +160,4 @@ def self.namespace_lookup(type, name) def self.is_a_plugin?(klass, name) klass.ancestors.include?(LogStash::Plugin) && klass.respond_to?(:config_name) && klass.config_name == name end - - # @return [Cabin::Channel] logger channel for class methods - def self.logger - @logger ||= Cabin::Channel.get(LogStash) - end - end # class LogStash::Plugin diff --git a/logstash-core/lib/logstash/plugins/registry.rb b/logstash-core/lib/logstash/plugins/registry.rb index b69ba9e08af..3c44aef2442 100644 --- a/logstash-core/lib/logstash/plugins/registry.rb +++ b/logstash-core/lib/logstash/plugins/registry.rb @@ -1,9 +1,11 @@ # encoding: utf-8 require 'singleton' require "rubygems/package" +require "logstash/util/loggable" module LogStash class Registry + include LogStash::Util::Loggable ## # Placeholder class for registered plugins @@ -45,7 +47,7 @@ def logstash_plugin_spec?(spec) def initialize @registry = {} - @logger = Cabin::Channel.get(LogStash) + @logger = self.logger end def lookup(type, plugin_name, &block) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 67ec8a2a6a1..45241f1bcee 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -4,7 +4,6 @@ $DEBUGLIST = (ENV["DEBUG"] || "").split(",") require "clamp" -require "cabin" require "net/http" require "logstash/environment" @@ -19,9 +18,10 @@ require "logstash/version" class LogStash::Runner < Clamp::StrictCommand + include LogStash::Util::Loggable # The `path.settings` need to be defined in the runner instead of the `logstash-core/lib/logstash/environment.rb` # because the `Environment::LOGSTASH_HOME` doesn't exist in the context of the `logstash-core` gem. - # + # # See issue https://github.com/elastic/logstash/issues/5361 LogStash::SETTINGS.register(LogStash::Setting::String.new("path.settings", ::File.join(LogStash::Environment::LOGSTASH_HOME, "config"))) @@ -82,7 +82,8 @@ class LogStash::Runner < Clamp::StrictCommand :attribute_name => "path.log" option "--log.level", "LEVEL", I18n.t("logstash.runner.flag.log_level"), - :default => LogStash::SETTINGS.get_default("log.level") + :default => LogStash::SETTINGS.get_default("log.level"), + :attribute_name => "log.level" option "--config.debug", :flag, I18n.t("logstash.runner.flag.config_debug"), @@ -135,7 +136,7 @@ class LogStash::Runner < Clamp::StrictCommand ### DEPRECATED FLAGS ### deprecated_option ["--verbose"], :flag, I18n.t("logstash.runner.flag.verbose"), - :new_flag => "log.level", :new_value => "verbose" + :new_flag => "log.level", :new_value => "info" deprecated_option ["--debug"], :flag, I18n.t("logstash.runner.flag.debug"), @@ -143,12 +144,11 @@ class LogStash::Runner < Clamp::StrictCommand deprecated_option ["--quiet"], :flag, I18n.t("logstash.runner.flag.quiet"), - :new_flag => "log.level", :new_value => "quiet" + :new_flag => "log.level", :new_value => "error" attr_reader :agent def initialize(*args) - @logger = Cabin::Channel.get(LogStash) @settings = LogStash::SETTINGS super(*args) end @@ -163,13 +163,20 @@ def run(args) rescue => e # abort unless we're just looking for the help if (["--help", "-h"] & args).empty? - @logger.subscribe(STDOUT) - @logger.warn("Logstash has a new settings file which defines start up time settings. This file is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually please specify the location to this settings file by passing in \"--path.settings=/path/..\" in the command line options") - @logger.fatal("Failed to load settings file from \"path.settings\". Aborting...", "path.settings" => LogStash::SETTINGS.get("path.settings"), "exception" => e.class, "message" => e.message) + $stderr.puts "INFO: Logstash has a new settings file which defines start up time settings. This file is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually please specify the location to this settings file by passing in \"--path.settings=/path/..\" in the command line options" + $stderr.puts "ERROR: Failed to load settings file from \"path.settings\". Aborting... path.setting=#{LogStash::SETTINGS.get("path.settings")}, exception=#{e.class}, message=>#{e.message}" return 1 end end + # Configure Logstash logging facility, this need to be done before everything else to + # make sure the logger has the correct settings and the log level is correctly defined. + # TODO(talevy): cleanly support `path.logs` setting in log4j + unless java.lang.System.getProperty("log4j.configurationFile") + log4j_config_location = setting("path.settings") + "/log4j2.properties" + LogStash::Logging::Logger::initialize(log4j_config_location) + end + super(*[args]) end @@ -177,12 +184,12 @@ def execute require "logstash/util" require "logstash/util/java_version" require "stud/task" - require "cabin" # gem 'cabin' - require "logstash/logging/json" - # Configure Logstash logging facility, this need to be done before everything else to - # make sure the logger has the correct settings and the log level is correctly defined. - configure_logging(setting("path.log"), setting("log.level")) + LogStash::Logging::Logger::configure_logging(setting("log.level")) + + if setting("config.debug") && logger.debug? + logger.warn("--config.debug was specified, but log.level was not set to \'debug\'! No config info will be logged.") + end LogStash::Util::set_thread_name(self.class.name) @@ -199,7 +206,6 @@ def execute end LogStash::ShutdownWatcher.unsafe_shutdown = setting("pipeline.unsafe_shutdown") - LogStash::ShutdownWatcher.logger = @logger configure_plugin_paths(setting("path.plugins")) @@ -210,7 +216,7 @@ def execute return start_shell(setting("interactive"), binding) if setting("interactive") - @settings.format_settings.each {|line| @logger.info(line) } + @settings.format_settings.each {|line| logger.info(line) } if setting("config.string").nil? && setting("path.config").nil? fail(I18n.t("logstash.runner.missing-configuration")) @@ -222,14 +228,14 @@ def execute end if setting("config.test_and_exit") - config_loader = LogStash::Config::Loader.new(@logger) + config_loader = LogStash::Config::Loader.new(logger) config_str = config_loader.format_config(setting("path.config"), setting("config.string")) begin LogStash::Pipeline.new(config_str) - @logger.terminal "Configuration OK" + puts "Configuration OK" return 0 rescue => e - @logger.fatal I18n.t("logstash.runner.invalid-configuration", :error => e.message) + logger.fatal I18n.t("logstash.runner.invalid-configuration", :error => e.message) return 1 end end @@ -252,6 +258,9 @@ def execute @agent.shutdown + # flush any outstanding log messages during shutdown + org.apache.logging.log4j.LogManager.shutdown + agent_return rescue Clamp::UsageError => e @@ -259,7 +268,7 @@ def execute show_short_help return 1 rescue => e - @logger.fatal(I18n.t("oops"), :error => e, :backtrace => e.backtrace) + logger.fatal(I18n.t("oops"), :error => e, :backtrace => e.backtrace) return 1 ensure Stud::untrap("INT", sigint_id) unless sigint_id.nil? @@ -271,10 +280,10 @@ def execute def show_version show_version_logstash - if @logger.debug? || @logger.info? + if logger.is_info_enabled show_version_ruby show_version_java if LogStash::Environment.jruby? - show_gems if @logger.debug? + show_gems if logger.debug? end end # def show_version @@ -312,55 +321,6 @@ def create_agent(*args) LogStash::Agent.new(*args) end - # Point logging at a specific path. - def configure_logging(path, level) - @logger = Cabin::Channel.get(LogStash) - # Set with the -v (or -vv...) flag - case level - when "quiet" - @logger.level = :error - when "verbose" - @logger.level = :info - when "debug" - @logger.level = :debug - else - @logger.level = :warn - end - - if path - # TODO(sissel): Implement file output/rotation in Cabin. - # TODO(sissel): Catch exceptions, report sane errors. - begin - @log_fd.close if @log_fd - @log_fd = File.new(path, "a") - rescue => e - fail(I18n.t("logstash.runner.configuration.log_file_failed", - :path => path, :error => e)) - end - - if setting("log.format") == "json" - @logger.subscribe(LogStash::Logging::JSON.new(STDOUT), :level => :fatal) - @logger.subscribe(LogStash::Logging::JSON.new(@log_fd)) - else - @logger.subscribe(STDOUT, :level => :fatal) - @logger.subscribe(@log_fd) - end - @logger.terminal "Sending logstash logs to #{path}." - else - if setting("log.format") == "json" - @logger.subscribe(LogStash::Logging::JSON.new(STDOUT)) - else - @logger.subscribe(STDOUT) - end - end - - if setting("config.debug") && @logger.level != :debug - @logger.warn("--config.debug was specified, but log.level was not set to \'debug\'! No config info will be logged.") - end - - # TODO(sissel): redirect stdout/stderr to the log as well - # http://jira.codehaus.org/browse/JRUBY-7003 - end # def configure_logging # Emit a failure message and abort. def fail(message) @@ -389,14 +349,14 @@ def start_shell(shell, start_binding) def trap_sighup Stud::trap("HUP") do - @logger.warn(I18n.t("logstash.agent.sighup")) + logger.warn(I18n.t("logstash.agent.sighup")) @agent.reload_state! end end def trap_sigterm Stud::trap("TERM") do - @logger.warn(I18n.t("logstash.agent.sigterm")) + logger.warn(I18n.t("logstash.agent.sigterm")) @agent_task.stop! end end @@ -404,11 +364,11 @@ def trap_sigterm def trap_sigint Stud::trap("INT") do if @interrupted_once - @logger.fatal(I18n.t("logstash.agent.forced_sigint")) + logger.fatal(I18n.t("logstash.agent.forced_sigint")) exit else - @logger.warn(I18n.t("logstash.agent.sigint")) - Thread.new(@logger) {|logger| sleep 5; logger.warn(I18n.t("logstash.agent.slow_shutdown")) } + logger.warn(I18n.t("logstash.agent.sigint")) + Thread.new(logger) {|lg| sleep 5; lg.warn(I18n.t("logstash.agent.slow_shutdown")) } @interrupted_once = true @agent_task.stop! end diff --git a/logstash-core/lib/logstash/shutdown_watcher.rb b/logstash-core/lib/logstash/shutdown_watcher.rb index fa0d1f01fd4..6fffc270f27 100644 --- a/logstash-core/lib/logstash/shutdown_watcher.rb +++ b/logstash-core/lib/logstash/shutdown_watcher.rb @@ -2,6 +2,7 @@ module LogStash class ShutdownWatcher + include LogStash::Util::Loggable CHECK_EVERY = 1 # second REPORT_EVERY = 5 # checks @@ -25,14 +26,6 @@ def self.unsafe_shutdown? @unsafe_shutdown end - def self.logger=(logger) - @logger = logger - end - - def self.logger - @logger ||= Cabin::Channel.get(LogStash) - end - def self.start(pipeline, cycle_period=CHECK_EVERY, report_every=REPORT_EVERY, abort_threshold=ABORT_AFTER) controller = self.new(pipeline, cycle_period, report_every, abort_threshold) Thread.new(controller) { |controller| controller.start } diff --git a/logstash-core/lib/logstash/util/decorators.rb b/logstash-core/lib/logstash/util/decorators.rb index c7807e883b1..a04c2d4bded 100644 --- a/logstash-core/lib/logstash/util/decorators.rb +++ b/logstash-core/lib/logstash/util/decorators.rb @@ -6,10 +6,9 @@ module LogStash::Util # Decorators provides common manipulation on the event data. module Decorators + include LogStash::Util::Loggable extend self - @logger = Cabin::Channel.get(LogStash) - # fields is a hash of field => value # where both `field` and `value` can use sprintf syntax. def add_fields(fields,event, pluginname) @@ -28,7 +27,7 @@ def add_fields(fields,event, pluginname) else event.set(field, v) end - @logger.debug? and @logger.debug("#{pluginname}: adding value to field", :field => field, :value => value) + self.logger.debug? and self.logger.debug("#{pluginname}: adding value to field", "field" => field, "value" => value) end end end @@ -37,7 +36,7 @@ def add_fields(fields,event, pluginname) def add_tags(tags, event, pluginname) tags.each do |tag| tag = event.sprintf(tag) - @logger.debug? and @logger.debug("#{pluginname}: adding tag", :tag => tag) + self.logger.debug? and self.logger.debug("#{pluginname}: adding tag", "tag" => tag) # note below that the tags array field needs to be updated then reassigned to the event. # this is important because a construct like event["tags"] << tag will not work # in the current Java event implementation. see https://github.com/elastic/logstash/issues/4140 diff --git a/logstash-core/lib/logstash/util/java_version.rb b/logstash-core/lib/logstash/util/java_version.rb index cebc7927c92..f73d09de10d 100644 --- a/logstash-core/lib/logstash/util/java_version.rb +++ b/logstash-core/lib/logstash/util/java_version.rb @@ -1,11 +1,6 @@ # encoding: utf-8 -require 'cabin' module LogStash::Util::JavaVersion - def self.logger - @logger ||= Cabin::Channel.get(LogStash) - end - # Return the current java version string. Returns nil if this is a non-java platform (e.g. MRI). def self.version return nil unless LogStash::Environment.jruby? diff --git a/logstash-core/lib/logstash/util/loggable.rb b/logstash-core/lib/logstash/util/loggable.rb index 0add9f3e2b0..e7fc5cd73c5 100644 --- a/logstash-core/lib/logstash/util/loggable.rb +++ b/logstash-core/lib/logstash/util/loggable.rb @@ -1,29 +1,19 @@ # encoding: utf-8 +require "logstash/logging/logger" require "logstash/namespace" -require "cabin" module LogStash module Util module Loggable - class << self - def logger=(new_logger) - @logger = new_logger + def self.included(klass) + def klass.logger + ruby_name = self.name || self.class.name || self.class.to_s + log4j_name = ruby_name.gsub('::', '.').downcase + @logger ||= LogStash::Logging::Logger.new(log4j_name) end def logger - @logger ||= Cabin::Channel.get(LogStash) + self.class.logger end end - - def self.included(base) - class << base - def logger - Loggable.logger - end - end - end - - def logger - Loggable.logger - end end end; end diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 2485267fa37..d7533db661b 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -86,10 +86,10 @@ en: runner: short-help: |- usage: - bin/logstash -f CONFIG_PATH [-t] [-r] [--quiet|verbose|debug] [-w COUNT] [-l LOG] - bin/logstash -e CONFIG_STR [-t] [--quiet|verbose|debug] [-w COUNT] [-l LOG] - bin/logstash -i SHELL [--quiet|verbose|debug] - bin/logstash -V [--verbose|debug] + bin/logstash -f CONFIG_PATH [-t] [-r] [] [-w COUNT] [-l LOG] + bin/logstash -e CONFIG_STR [-t] [--log.level fatal|error|warn|info|debug|trace] [-w COUNT] [-l LOG] + bin/logstash -i SHELL [--log.level fatal|error|warn|info|debug|trace] + bin/logstash -V [--log.level fatal|error|warn|info|debug|trace] bin/logstash --help invalid-configuration: >- The given configuration is invalid. Reason: %{error} @@ -228,10 +228,12 @@ en: and NAME is the name of the plugin. log_level: |+ Set the log level for logstash. Possible values are: - - quiet => :error - - verbose => :info - - debug => :debug - - warn => :warn + - fatal + - error + - warn + - info + - debug + - trace unsafe_shutdown: |+ Force logstash to exit during shutdown even if there are still inflight events in memory. diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index 68c3ca99109..ee2c0b579dc 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -14,12 +14,11 @@ Gem::Specification.new do |gem| gem.files = Dir.glob(["logstash-core.gemspec", "lib/**/*.rb", "spec/**/*.rb", "locales/*", "lib/logstash/api/init.ru"]) gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) gem.name = "logstash-core" - gem.require_paths = ["lib"] + gem.require_paths = ["lib", "vendor/jars"] gem.version = LOGSTASH_CORE_VERSION gem.add_runtime_dependency "logstash-core-event-java", "5.0.0-alpha6" - gem.add_runtime_dependency "cabin", "~> 0.8.0" #(Apache 2.0 license) gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license) gem.add_runtime_dependency "stud", "~> 0.0.19" #(Apache 2.0 license) gem.add_runtime_dependency "clamp", "~> 0.6.5" #(MIT license) for command line args/flags @@ -59,4 +58,6 @@ Gem::Specification.new do |gem| # https://github.com/rubinius/rubinius/issues/2632#issuecomment-26954565 gem.add_runtime_dependency "racc" end + + gem.add_runtime_dependency 'jar-dependencies', '~> 0.3.4' end diff --git a/logstash-core/spec/api/lib/rack_app_spec.rb b/logstash-core/spec/api/lib/rack_app_spec.rb index 0546df9fbf6..cafdd651919 100644 --- a/logstash-core/spec/api/lib/rack_app_spec.rb +++ b/logstash-core/spec/api/lib/rack_app_spec.rb @@ -6,7 +6,7 @@ class DummyApp class RaisedError < StandardError; end - + def call(env) case env["PATH_INFO"] when "/good-page" @@ -21,7 +21,7 @@ def call(env) end end - let(:logger) { Cabin::Channel.get } + let(:logger) { double("logger") } describe LogStash::Api::RackApp::ApiErrorHandler do let(:app) do @@ -49,7 +49,7 @@ def call(env) allow(logger).to receive(:error).with(any_args) get "/raise-error" end - + it "should return a 500 error" do expect(last_response.status).to eql(500) end @@ -74,13 +74,15 @@ def call(env) run DummyApp.new end end - + it "should log good requests as info" do + expect(logger).to receive(:info?).and_return(true) expect(logger).to receive(:info).with(LogStash::Api::RackApp::ApiLogger::LOG_MESSAGE, anything).once get "/good-page" end it "should log 5xx requests as warnings" do + expect(logger).to receive(:warn?).and_return(true) expect(logger).to receive(:warn).with(LogStash::Api::RackApp::ApiLogger::LOG_MESSAGE, anything).once get "/service-unavailable" end diff --git a/logstash-core/spec/logstash/config/loader_spec.rb b/logstash-core/spec/logstash/config/loader_spec.rb index b51272ee13a..955feb2f615 100644 --- a/logstash-core/spec/logstash/config/loader_spec.rb +++ b/logstash-core/spec/logstash/config/loader_spec.rb @@ -3,7 +3,9 @@ require "logstash/config/loader" describe LogStash::Config::Loader do - subject { described_class.new(Cabin::Channel.get) } + let(:logger) { double("logger") } + subject { described_class.new(logger) } + context "when local" do before { expect(subject).to receive(:local_config).with(path) } diff --git a/logstash-core/spec/logstash/pipeline_reporter_spec.rb b/logstash-core/spec/logstash/pipeline_reporter_spec.rb index aa0ac8eb246..40e821d6941 100644 --- a/logstash-core/spec/logstash/pipeline_reporter_spec.rb +++ b/logstash-core/spec/logstash/pipeline_reporter_spec.rb @@ -4,6 +4,7 @@ require "logstash/pipeline_reporter" class DummyOutput < LogStash::Outputs::Base + config_name "dummyoutput" milestone 2 diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 094b994536c..0aa749beb15 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -80,7 +80,7 @@ def close() end end class TestPipeline < LogStash::Pipeline - attr_reader :outputs, :settings, :logger + attr_reader :outputs, :settings end describe LogStash::Pipeline do @@ -130,7 +130,7 @@ class TestPipeline < LogStash::Pipeline let(:logger) { double("pipeline logger").as_null_object } before do - expect(Cabin::Channel).to receive(:get).with(LogStash).and_return(logger).at_least(:once) + expect(TestPipeline).to receive(:logger).and_return(logger) allow(logger).to receive(:debug?).and_return(true) end diff --git a/logstash-core/spec/logstash/plugin_spec.rb b/logstash-core/spec/logstash/plugin_spec.rb index e89eb26a7e7..9747d463886 100644 --- a/logstash-core/spec/logstash/plugin_spec.rb +++ b/logstash-core/spec/logstash/plugin_spec.rb @@ -76,7 +76,7 @@ class LogStash::Filters::MyTestFilter < LogStash::Filters::Base .with(plugin_name) .and_return(double(:version => Gem::Version.new('1.0.0'))) - expect_any_instance_of(Cabin::Channel).not_to receive(:info) + expect_any_instance_of(LogStash::Logging::Logger).not_to receive(:info) subject.validate({}) end @@ -85,7 +85,7 @@ class LogStash::Filters::MyTestFilter < LogStash::Filters::Base .with(plugin_name) .and_return(double(:version => Gem::Version.new('0.9.1'))) - expect_any_instance_of(Cabin::Channel).to receive(:info) + expect_any_instance_of(LogStash::Logging::Logger).to receive(:info) .with(/Using version 0.9.x/) subject.validate({}) @@ -96,7 +96,7 @@ class LogStash::Filters::MyTestFilter < LogStash::Filters::Base .with(plugin_name) .and_return(double(:version => Gem::Version.new('0.1.1'))) - expect_any_instance_of(Cabin::Channel).to receive(:info) + expect_any_instance_of(LogStash::Logging::Logger).to receive(:info) .with(/Using version 0.1.x/) subject.validate({}) end @@ -110,7 +110,7 @@ class LogStash::Filters::MyTestFilter < LogStash::Filters::Base .with(plugin_name) .and_return(double(:version => Gem::Version.new('0.1.1'))) - expect_any_instance_of(Cabin::Channel).to receive(:info) + expect_any_instance_of(LogStash::Logging::Logger).to receive(:info) .once .with(/Using version 0.1.x/) @@ -119,7 +119,7 @@ class LogStash::Filters::MyTestFilter < LogStash::Filters::Base end it "warns the user if we can't find a defined version" do - expect_any_instance_of(Cabin::Channel).to receive(:warn) + expect_any_instance_of(LogStash::Logging::Logger).to receive(:warn) .once .with(/plugin doesn't have a version/) @@ -128,7 +128,7 @@ class LogStash::Filters::MyTestFilter < LogStash::Filters::Base it 'logs a warning if the plugin use the milestone option' do - expect_any_instance_of(Cabin::Channel).to receive(:debug) + expect_any_instance_of(LogStash::Logging::Logger).to receive(:debug) .with(/stromae plugin is using the 'milestone' method/) class LogStash::Filters::Stromae < LogStash::Filters::Base @@ -278,6 +278,7 @@ def register; end [LogStash::Inputs::Base, LogStash::Filters::Base, LogStash::Outputs::Base].each do |base| let(:plugin) do Class.new(base) do + #include LogStash::Util::Loggable config_name "testing" def register diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index 40b1958c292..96f3c4afb6f 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -15,13 +15,20 @@ def run(args); end describe LogStash::Runner do subject { LogStash::Runner } - let(:channel) { Cabin::Channel.new } + let(:logger) { double("logger") } before :each do - allow(Cabin::Channel).to receive(:get).with(LogStash).and_return(channel) - allow(channel).to receive(:subscribe).with(any_args) - allow(channel).to receive(:log) {} - allow(LogStash::ShutdownWatcher).to receive(:logger).and_return(channel) + allow(LogStash::Runner).to receive(:logger).and_return(logger) + allow(logger).to receive(:debug?).and_return(true) + allow(logger).to receive(:subscribe).with(any_args) + allow(logger).to receive(:log) {} + allow(logger).to receive(:info) {} + allow(logger).to receive(:fatal) {} + allow(logger).to receive(:warn) {} + allow(LogStash::ShutdownWatcher).to receive(:logger).and_return(logger) + allow(LogStash::Logging::Logger).to receive(:configure_logging) do |level, path| + allow(logger).to receive(:level).and_return(level.to_sym) + end end after :each do @@ -29,7 +36,6 @@ def run(args); end end after :all do - LogStash::ShutdownWatcher.logger = nil end describe "argument precedence" do @@ -56,16 +62,13 @@ def run(args); end describe "argument parsing" do subject { LogStash::Runner.new("") } - before :each do - allow(Cabin::Channel.get(LogStash)).to receive(:terminal) - end + context "when -e is given" do let(:args) { ["-e", "input {} output {}"] } let(:agent) { double("agent") } before do - allow(agent).to receive(:logger=).with(anything) allow(agent).to receive(:shutdown) allow(agent).to receive(:register_pipeline) end @@ -131,32 +134,6 @@ def run(args); end end end - describe "--log.format=json" do - subject { LogStash::Runner.new("") } - let(:logfile) { Stud::Temporary.file } - let(:args) { [ "--log.format", "json", "-l", logfile.path, "-e", "input {} output{}" ] } - - after do - logfile.close - File.unlink(logfile.path) - end - - before do - expect(channel).to receive(:subscribe).with(kind_of(LogStash::Logging::JSON)).and_call_original - subject.run(args) - - # Log file should have stuff in it. - expect(logfile.stat.size).to be > 0 - end - - it "should log in valid json. One object per line." do - logfile.each_line do |line| - expect(line).not_to be_empty - expect { JSON.parse(line) }.not_to raise_error - end - end - end - describe "--config.test_and_exit" do subject { LogStash::Runner.new("") } let(:args) { ["-t", "-e", pipeline_string] } @@ -164,7 +141,6 @@ def run(args); end context "with a good configuration" do let(:pipeline_string) { "input { } filter { } output { }" } it "should exit successfuly" do - expect(channel).to receive(:terminal) expect(subject.run(args)).to eq(0) end end @@ -172,7 +148,7 @@ def run(args); end context "with a bad configuration" do let(:pipeline_string) { "rlwekjhrewlqrkjh" } it "should fail by returning a bad exit code" do - expect(channel).to receive(:fatal) + expect(logger).to receive(:fatal) expect(subject.run(args)).to eq(1) end end @@ -303,35 +279,35 @@ def run(args); end it "should set log level to warn" do args = ["--version"] subject.run("bin/logstash", args) - expect(channel.level).to eq(:warn) + expect(logger.level).to eq(:warn) end end context "when setting to debug" do it "should set log level to debug" do args = ["--log.level", "debug", "--version"] subject.run("bin/logstash", args) - expect(channel.level).to eq(:debug) + expect(logger.level).to eq(:debug) end end context "when setting to verbose" do it "should set log level to info" do - args = ["--log.level", "verbose", "--version"] + args = ["--log.level", "info", "--version"] subject.run("bin/logstash", args) - expect(channel.level).to eq(:info) + expect(logger.level).to eq(:info) end end context "when setting to quiet" do it "should set log level to error" do - args = ["--log.level", "quiet", "--version"] + args = ["--log.level", "error", "--version"] subject.run("bin/logstash", args) - expect(channel.level).to eq(:error) + expect(logger.level).to eq(:error) end end context "deprecated flags" do context "when using --quiet" do it "should warn about the deprecated flag" do - expect(channel).to receive(:warn).with(/DEPRECATION WARNING/) + expect(logger).to receive(:warn).with(/DEPRECATION WARNING/) args = ["--quiet", "--version"] subject.run("bin/logstash", args) end @@ -339,12 +315,12 @@ def run(args); end it "should still set the log level accordingly" do args = ["--quiet", "--version"] subject.run("bin/logstash", args) - expect(channel.level).to eq(:error) + expect(logger.level).to eq(:error) end end context "when using --debug" do it "should warn about the deprecated flag" do - expect(channel).to receive(:warn).with(/DEPRECATION WARNING/) + expect(logger).to receive(:warn).with(/DEPRECATION WARNING/) args = ["--debug", "--version"] subject.run("bin/logstash", args) end @@ -352,12 +328,12 @@ def run(args); end it "should still set the log level accordingly" do args = ["--debug", "--version"] subject.run("bin/logstash", args) - expect(channel.level).to eq(:debug) + expect(logger.level).to eq(:debug) end end context "when using --verbose" do it "should warn about the deprecated flag" do - expect(channel).to receive(:warn).with(/DEPRECATION WARNING/) + expect(logger).to receive(:warn).with(/DEPRECATION WARNING/) args = ["--verbose", "--version"] subject.run("bin/logstash", args) end @@ -365,7 +341,7 @@ def run(args); end it "should still set the log level accordingly" do args = ["--verbose", "--version"] subject.run("bin/logstash", args) - expect(channel.level).to eq(:info) + expect(logger.level).to eq(:info) end end end diff --git a/logstash-core/spec/logstash/shutdown_watcher_spec.rb b/logstash-core/spec/logstash/shutdown_watcher_spec.rb index 118e126ea5d..2f934f59b77 100644 --- a/logstash-core/spec/logstash/shutdown_watcher_spec.rb +++ b/logstash-core/spec/logstash/shutdown_watcher_spec.rb @@ -3,8 +3,6 @@ require "logstash/shutdown_watcher" describe LogStash::ShutdownWatcher do - let(:channel) { Cabin::Channel.new } - let(:check_every) { 0.01 } let(:check_threshold) { 100 } subject { LogStash::ShutdownWatcher.new(pipeline, check_every) } @@ -14,8 +12,6 @@ report_count = 0 before :each do - LogStash::ShutdownWatcher.logger = channel - allow(pipeline).to receive(:reporter).and_return(reporter) allow(pipeline).to receive(:thread).and_return(Thread.current) allow(reporter).to receive(:snapshot).and_return(reporter_snapshot) diff --git a/logstash-core/src/main/java/org/logstash/log/CustomLogEvent.java b/logstash-core/src/main/java/org/logstash/log/CustomLogEvent.java new file mode 100644 index 00000000000..f382bce75a1 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/log/CustomLogEvent.java @@ -0,0 +1,37 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.logstash.log; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Marker; +import org.apache.logging.log4j.core.config.Property; +import org.apache.logging.log4j.core.impl.Log4jLogEvent; +import org.apache.logging.log4j.message.Message; + +import java.util.List; + +@JsonSerialize(using = CustomLogEventSerializer.class) +public class CustomLogEvent extends Log4jLogEvent { + public CustomLogEvent(final String loggerName, final Marker marker, final String loggerFQCN, final Level level, + final Message message, final List properties, final Throwable t) { + super(loggerName, marker, loggerFQCN, level, message, properties, t); + } +} diff --git a/logstash-core/src/main/java/org/logstash/log/CustomLogEventSerializer.java b/logstash-core/src/main/java/org/logstash/log/CustomLogEventSerializer.java new file mode 100644 index 00000000000..6432394d91f --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/log/CustomLogEventSerializer.java @@ -0,0 +1,48 @@ +package org.logstash.log; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.util.Map; + +public class CustomLogEventSerializer extends JsonSerializer { + @Override + public void serialize(CustomLogEvent event, JsonGenerator generator, SerializerProvider provider) throws IOException { + generator.writeStartObject(); + generator.writeObjectField("level", event.getLevel()); + generator.writeObjectField("loggerName", event.getLoggerName()); + generator.writeObjectField("timeMillis", event.getTimeMillis()); + generator.writeObjectField("thread", event.getThreadName()); + generator.writeFieldName("logEvent"); + generator.writeStartObject(); + if (event.getMessage() instanceof StructuredMessage) { + StructuredMessage message = (StructuredMessage) event.getMessage(); + generator.writeStringField("message", message.getMessage()); + if (message.getParams() != null) { + for (Map.Entry entry : message.getParams().entrySet()) { + Object value = entry.getValue(); + try { + generator.writeObjectField(entry.getKey().toString(), value); + } catch (JsonMappingException e) { + generator.writeObjectField(entry.getKey().toString(), value.toString()); + } + } + } + + } else { + generator.writeStringField("message", event.getMessage().getFormattedMessage()); + } + + generator.writeEndObject(); + generator.writeEndObject(); + } + + @Override + public Class handledType() { + + return CustomLogEvent.class; + } +} diff --git a/logstash-core/src/main/java/org/logstash/log/LogstashLogEventFactory.java b/logstash-core/src/main/java/org/logstash/log/LogstashLogEventFactory.java new file mode 100644 index 00000000000..f13c264dd21 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/log/LogstashLogEventFactory.java @@ -0,0 +1,17 @@ +package org.logstash.log; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Marker; +import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.config.Property; +import org.apache.logging.log4j.core.impl.LogEventFactory; +import org.apache.logging.log4j.message.Message; + +import java.util.List; + +public class LogstashLogEventFactory implements LogEventFactory { + @Override + public LogEvent createEvent(String loggerName, Marker marker, String fqcn, Level level, Message data, List properties, Throwable t) { + return new CustomLogEvent(loggerName, marker, fqcn, level, data, properties, t); + } +} diff --git a/logstash-core/src/main/java/org/logstash/log/LogstashMessageFactory.java b/logstash-core/src/main/java/org/logstash/log/LogstashMessageFactory.java new file mode 100644 index 00000000000..7cadbbf0385 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/log/LogstashMessageFactory.java @@ -0,0 +1,33 @@ +package org.logstash.log; + +import org.apache.logging.log4j.message.Message; +import org.apache.logging.log4j.message.MessageFactory; +import org.apache.logging.log4j.message.ObjectMessage; +import org.apache.logging.log4j.message.ParameterizedMessage; +import org.apache.logging.log4j.message.SimpleMessage; + +import java.util.Map; + +public final class LogstashMessageFactory implements MessageFactory { + + public static final LogstashMessageFactory INSTANCE = new LogstashMessageFactory(); + + @Override + public Message newMessage(Object message) { + return new ObjectMessage(message); + } + + @Override + public Message newMessage(String message) { + return new SimpleMessage(message); + } + + @Override + public Message newMessage(String message, Object... params) { + if (params.length == 1 && params[0] instanceof Map) { + return new StructuredMessage(message, params); + } else { + return new ParameterizedMessage(message, params); + } + } +} diff --git a/logstash-core/src/main/java/org/logstash/log/StructuredMessage.java b/logstash-core/src/main/java/org/logstash/log/StructuredMessage.java new file mode 100644 index 00000000000..2145acea746 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/log/StructuredMessage.java @@ -0,0 +1,76 @@ +package org.logstash.log; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import org.apache.logging.log4j.message.Message; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +@JsonSerialize(using = CustomLogEventSerializer.class) +public class StructuredMessage implements Message { + private final String message; + private final Map params; + + @SuppressWarnings("unchecked") + public StructuredMessage(String message) { + this(message, (Map) null); + } + + @SuppressWarnings("unchecked") + public StructuredMessage(String message, Object[] params) { + final Map paramsMap; + if (params.length == 1 && params[0] instanceof Map) { + paramsMap = (Map) params[0]; + } else { + paramsMap = new HashMap<>(); + try { + for (int i = 0; i < params.length; i += 2) { + paramsMap.put(params[i].toString(), params[i + 1]); + } + } catch (IndexOutOfBoundsException e) { + throw new IllegalArgumentException("must log key-value pairs"); + } + } + this.message = message; + this.params = paramsMap; + } + + public StructuredMessage(String message, Map params) { + this.message = message; + this.params = params; + } + + public String getMessage() { + return message; + } + + public Map getParams() { + return params; + } + + @Override + public Object[] getParameters() { + return params.values().toArray(); + } + + @Override + public String getFormattedMessage() { + String formatted = message; + if (params != null && !params.isEmpty()) { + formatted += " " + params; + } + return formatted; + } + + @Override + public String getFormat() { + return null; + } + + + @Override + public Throwable getThrowable() { + return null; + } +} diff --git a/logstash-core/src/main/resources/log4j2.component.properties b/logstash-core/src/main/resources/log4j2.component.properties new file mode 100644 index 00000000000..18b737986ae --- /dev/null +++ b/logstash-core/src/main/resources/log4j2.component.properties @@ -0,0 +1,2 @@ +Log4jLogEventFactory=org.logstash.log.LogstashLogEventFactory +log4j2.messageFactory=org.logstash.log.LogstashMessageFactory diff --git a/logstash-core/src/test/java/org/logstash/log/CustomLogEventTests.java b/logstash-core/src/test/java/org/logstash/log/CustomLogEventTests.java new file mode 100644 index 00000000000..d4bfca10d65 --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/log/CustomLogEventTests.java @@ -0,0 +1,112 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.logstash.log; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.junit.LoggerContextRule; +import org.apache.logging.log4j.test.appender.ListAppender; +import org.junit.ClassRule; +import org.junit.Test; + +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static junit.framework.TestCase.assertEquals; + +public class CustomLogEventTests { + private static final ObjectMapper mapper = new ObjectMapper(); + private static final String CONFIG = "log4j2-test1.xml"; + private ListAppender appender; + + @ClassRule + public static LoggerContextRule CTX = new LoggerContextRule(CONFIG); + + @Test + public void testPatternLayout() { + appender = CTX.getListAppender("EventLogger").clear(); + Logger logger = LogManager.getLogger("EventLogger"); + logger.info("simple message"); + logger.warn("complex message", Collections.singletonMap("foo", "bar")); + logger.error("my name is: {}", "foo"); + logger.error("here is a map: {}. ok?", Collections.singletonMap(2, 5)); + logger.warn("ignored params {}", 4, 6); + List messages = appender.getMessages(); + assertEquals(5, messages.size()); + assertEquals("[INFO][EventLogger] simple message", messages.get(0)); + assertEquals("[WARN][EventLogger] complex message {foo=bar}", messages.get(1)); + assertEquals("[ERROR][EventLogger] my name is: foo", messages.get(2)); + assertEquals("[ERROR][EventLogger] here is a map: {}. ok? {2=5}", messages.get(3)); + assertEquals("[WARN][EventLogger] ignored params 4", messages.get(4)); + } + + @Test + @SuppressWarnings("unchecked") + public void testJSONLayout() throws Exception { + appender = CTX.getListAppender("JSONEventLogger").clear(); + Logger logger = LogManager.getLogger("JSONEventLogger"); + logger.info("simple message"); + logger.warn("complex message", Collections.singletonMap("foo", "bar")); + logger.error("my name is: {}", "foo"); + logger.error("here is a map: {}", Collections.singletonMap(2, 5)); + logger.warn("ignored params {}", 4, 6, 8); + + List messages = appender.getMessages(); + + Map firstMessage = mapper.readValue(messages.get(0), Map.class); + + assertEquals(5, firstMessage.size()); + assertEquals("INFO", firstMessage.get("level")); + assertEquals("JSONEventLogger", firstMessage.get("loggerName")); + assertEquals("main", firstMessage.get("thread")); + assertEquals(Collections.singletonMap("message", "simple message"), firstMessage.get("logEvent")); + + Map secondMessage = mapper.readValue(messages.get(1), Map.class); + + assertEquals(5, secondMessage.size()); + assertEquals("WARN", secondMessage.get("level")); + assertEquals("JSONEventLogger", secondMessage.get("loggerName")); + assertEquals("main", secondMessage.get("thread")); + Map logEvent = new HashMap<>(); + logEvent.put("message", "complex message"); + logEvent.put("foo", "bar"); + assertEquals(logEvent, secondMessage.get("logEvent")); + + Map thirdMessage = mapper.readValue(messages.get(2), Map.class); + assertEquals(5, thirdMessage.size()); + logEvent = Collections.singletonMap("message", "my name is: foo"); + assertEquals(logEvent, thirdMessage.get("logEvent")); + + Map fourthMessage = mapper.readValue(messages.get(3), Map.class); + assertEquals(5, fourthMessage.size()); + logEvent = new HashMap<>(); + logEvent.put("message", "here is a map: {}"); + logEvent.put("2", 5); + assertEquals(logEvent, fourthMessage.get("logEvent")); + + Map fifthMessage = mapper.readValue(messages.get(4), Map.class); + assertEquals(5, fifthMessage.size()); + logEvent = Collections.singletonMap("message", "ignored params 4"); + assertEquals(logEvent, fifthMessage.get("logEvent")); + } +} diff --git a/logstash-core/src/test/resources/log4j-list.properties b/logstash-core/src/test/resources/log4j-list.properties new file mode 100644 index 00000000000..435d6042ea0 --- /dev/null +++ b/logstash-core/src/test/resources/log4j-list.properties @@ -0,0 +1,11 @@ +status = error +name = LogstashPropertiesConfig + +appender.list.type = List +appender.list.name = List +#appender.list.layout.type = JSONLayout +#appender.list.layout.compact = true +#appender.list.layout.eventEol = true + +rootLogger.level = info +rootLogger.appenderRef.stdout.ref = List diff --git a/logstash-core/src/test/resources/log4j2-test1.xml b/logstash-core/src/test/resources/log4j2-test1.xml new file mode 100644 index 00000000000..ad81ddde21e --- /dev/null +++ b/logstash-core/src/test/resources/log4j2-test1.xml @@ -0,0 +1,31 @@ + + + + target/test.log + + + + + + + + + + + + + + + + > + + + + > + + + + + + + \ No newline at end of file diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index c3ad0ab60fe..b503df7e76e 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -19,6 +19,7 @@ namespace "artifact" do "lib/systeminstall/**/*", "logstash-core/lib/**/*", "logstash-core/locales/**/*", + "logstash-core/vendor/**/*", "logstash-core/*.gemspec", "logstash-core-event-java/lib/**/*", "logstash-core-event-java/*.gemspec", diff --git a/rakelib/compile.rake b/rakelib/compile.rake index aa20eb7091b..e5730125885 100644 --- a/rakelib/compile.rake +++ b/rakelib/compile.rake @@ -11,11 +11,16 @@ namespace "compile" do task "grammar" => "logstash-core/lib/logstash/config/grammar.rb" + task "logstash-core-java" do + puts("Building logstash-core using gradle") + system("./gradlew", "vendor", "-p", "./logstash-core") + end + task "logstash-core-event-java" do puts("Building logstash-core-event-java using gradle") - system("logstash-core-event-java/gradlew", "jar", "-p", "./logstash-core-event-java") + system("./gradlew", "jar", "-p", "./logstash-core-event-java") end desc "Build everything" - task "all" => ["grammar", "logstash-core-event-java"] + task "all" => ["grammar", "logstash-core-java", "logstash-core-event-java"] end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2daa3e6937c..9bec90f640c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -5,7 +5,6 @@ CoverageHelper.eager_load if ENV['COVERAGE'] require "logstash/devutils/rspec/spec_helper" -require "logstash/logging/json" require "flores/rspec" require "flores/random" @@ -22,21 +21,6 @@ def puts(payload) RSpec.configure do |c| Flores::RSpec.configure(c) - c.before do - # Force Cabin to always have a JSON subscriber. The main purpose of this - # is to catch crashes in json serialization for our logs. JSONIOThingy - # exists to validate taht what LogStash::Logging::JSON emits is always - # valid JSON. - jsonvalidator = JSONIOThingy.new - allow(Cabin::Channel).to receive(:new).and_wrap_original do |m, *args| - logger = m.call(*args) - logger.level = :debug - logger.subscribe(LogStash::Logging::JSON.new(jsonvalidator)) - - logger - end - end - end def installed_plugins From ddfaa900f66af0d5836e48ed35250129cb2fe0b5 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 26 Aug 2016 12:56:25 -0400 Subject: [PATCH 323/632] Silence `require_jar` warning Fixes #5836 --- lib/bootstrap/environment.rb | 2 ++ lib/bootstrap/patches/jar_dependencies.rb | 15 +++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 lib/bootstrap/patches/jar_dependencies.rb diff --git a/lib/bootstrap/environment.rb b/lib/bootstrap/environment.rb index ab73f5e37e4..0411685f19a 100644 --- a/lib/bootstrap/environment.rb +++ b/lib/bootstrap/environment.rb @@ -62,6 +62,8 @@ def pattern_path(path) # currently lib/logstash/runner.rb and lib/pluginmanager/main.rb are called using this. if $0 == __FILE__ LogStash::Bundler.setup!({:without => [:build, :development]}) + require_relative "patches/jar_dependencies" + require ARGV.shift exit_status = LogStash::Runner.run("bin/logstash", ARGV) exit(exit_status || 0) diff --git a/lib/bootstrap/patches/jar_dependencies.rb b/lib/bootstrap/patches/jar_dependencies.rb new file mode 100644 index 00000000000..2908ab73a82 --- /dev/null +++ b/lib/bootstrap/patches/jar_dependencies.rb @@ -0,0 +1,15 @@ +# encoding: utf-8 +require "jar_dependencies" + +def require_jar( *args ) + return nil unless Jars.require? + result = Jars.require_jar( *args ) + if result.is_a? String + # JAR_DEBUG=1 will now show theses + Jars.debug { "--- jar coordinate #{args[0..-2].join( ':' )} already loaded with version #{result} - omit version #{args[-1]}" } + Jars.debug { " try to load from #{caller.join("\n\t")}" } + return false + end + Jars.debug { " register #{args.inspect} - #{result == true}" } + result +end From bc080ca7b5259b764a85ccf520143e195d0fe282 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Fri, 26 Aug 2016 11:58:56 -0700 Subject: [PATCH 324/632] fix. add vendor files to logstash-core gem Fixes #5838 --- logstash-core/logstash-core.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index ee2c0b579dc..94a89895445 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -11,7 +11,7 @@ Gem::Specification.new do |gem| gem.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html" gem.license = "Apache License (2.0)" - gem.files = Dir.glob(["logstash-core.gemspec", "lib/**/*.rb", "spec/**/*.rb", "locales/*", "lib/logstash/api/init.ru"]) + gem.files = Dir.glob(["logstash-core.gemspec", "lib/**/*.rb", "spec/**/*.rb", "locales/*", "lib/logstash/api/init.ru", "vendor/jars/**/*.jar"]) gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) gem.name = "logstash-core" gem.require_paths = ["lib", "vendor/jars"] From 9fd35ad4bb30cdae310413f43971e447353d0c18 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 24 Aug 2016 12:16:16 +0100 Subject: [PATCH 325/632] partially reset counters during pipeline reload Fixes #5819 --- logstash-core/lib/logstash/agent.rb | 11 ++---- .../lib/logstash/instrument/collector.rb | 4 ++ .../lib/logstash/instrument/metric_store.rb | 25 +++++++++++- logstash-core/spec/logstash/agent_spec.rb | 38 ++++++++++++++++--- .../logstash/instrument/metric_store_spec.rb | 31 +++++++++++++++ 5 files changed, 94 insertions(+), 15 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 62b9f05b524..1c0e18dbd87 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -162,9 +162,8 @@ def configure_metrics_collectors @periodic_pollers.start end - def reset_metrics_collectors - stop_collecting_metrics - configure_metrics_collectors + def reset_pipeline_metrics(id) + @collector.clear("stats/pipelines/#{id}") end def collect_metrics? @@ -208,11 +207,6 @@ def reload_pipeline!(id) return end - # Reset the current collected stats, - # starting a pipeline with a new configuration should be the same as restarting - # logstash. - reset_metrics_collectors - new_pipeline = create_pipeline(old_pipeline.settings, new_config) return if new_pipeline.nil? @@ -268,6 +262,7 @@ def running_pipeline?(pipeline_id) def upgrade_pipeline(pipeline_id, new_pipeline) stop_pipeline(pipeline_id) + reset_pipeline_metrics(pipeline_id) @pipelines[pipeline_id] = new_pipeline start_pipeline(pipeline_id) end diff --git a/logstash-core/lib/logstash/instrument/collector.rb b/logstash-core/lib/logstash/instrument/collector.rb index ff4c658bcff..c6946781fb5 100644 --- a/logstash-core/lib/logstash/instrument/collector.rb +++ b/logstash-core/lib/logstash/instrument/collector.rb @@ -104,5 +104,9 @@ def publish_snapshot logger.debug("Collector: Sending snapshot to observers", :created_at => created_at) if logger.debug? notify_observers(snapshot_metric) end + + def clear(keypath) + @metric_store.prune(keypath) + end end end; end diff --git a/logstash-core/lib/logstash/instrument/metric_store.rb b/logstash-core/lib/logstash/instrument/metric_store.rb index de3c8b3b8dd..8240d899d57 100644 --- a/logstash-core/lib/logstash/instrument/metric_store.rb +++ b/logstash-core/lib/logstash/instrument/metric_store.rb @@ -80,8 +80,7 @@ def fetch_or_store(namespaces, key, default_value = nil) # @param [Array] The path where values should be located # @return [Hash] def get_with_path(path) - key_paths = path.gsub(/^#{KEY_PATH_SEPARATOR}+/, "").split(KEY_PATH_SEPARATOR) - get(*key_paths) + get(*key_paths(path)) end # Similar to `get_with_path` but use symbols instead of string @@ -180,11 +179,24 @@ def each(path = nil, &block) end alias_method :all, :each + def prune(path) + key_paths = key_paths(path).map {|k| k.to_sym } + @structured_lookup_mutex.synchronize do + keys_to_delete = @fast_lookup.keys.select {|namespace, _| (key_paths - namespace).empty? } + keys_to_delete.each {|k| @fast_lookup.delete(k) } + delete_from_map(@store, key_paths) + end + end + private def get_all @fast_lookup.values end + def key_paths(path) + path.gsub(/^#{KEY_PATH_SEPARATOR}+/, "").split(KEY_PATH_SEPARATOR) + end + # This method take an array of keys and recursively search the metric store structure # and return a filtered hash of the structure. This method also take into consideration # getting two different branchs. @@ -294,5 +306,14 @@ def fetch_or_store_namespace_recursively(map, namespaces_path, idx = 0) new_map = map.fetch_or_store(current) { Concurrent::Map.new } return fetch_or_store_namespace_recursively(new_map, namespaces_path, idx + 1) end + + def delete_from_map(map, keys) + key = keys.first + if keys.size == 1 + map.delete(key) + else + delete_from_map(map[key], keys[1..-1]) unless map[key].nil? + end + end end end; end diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 149eaa611c1..212b6c62382 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -47,7 +47,7 @@ let(:pipeline_id) { "main" } let(:config_string) { "input { } filter { } output { }" } let(:agent_args) do - { + { "config.string" => config_string, "config.reload.automatic" => true, "config.reload.interval" => 0.01, @@ -351,7 +351,7 @@ super.merge({ "config.reload.automatic" => true, "config.reload.interval" => interval, "metric.collect" => true }) - end + end # We need to create theses dummy classes to know how many # events where actually generated by the pipeline and successfully send to the output. @@ -390,7 +390,35 @@ class DummyOutput2 < LogStash::Outputs::Base; end end end - it "resets the metric collector" do + it "resets the pipeline metric collector" do + # We know that the store has more events coming in. + i = 0 + while dummy_output.events.size <= new_config_generator_counter + i += 1 + raise "Waiting too long!" if i > 20 + sleep(0.1) + end + + snapshot = subject.metric.collector.snapshot_metric + expect(snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:events][:in].value).to be > new_config_generator_counter + + # update the configuration and give some time to logstash to pick it up and do the work + # Also force a flush to disk to make sure ruby reload it. + File.open(config_path, "w") do |f| + f.write(new_config) + f.fsync + end + + sleep(interval * 3) # Give time to reload the config + + # be eventually consistent. + sleep(0.01) while dummy_output2.events.size < new_config_generator_counter + + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:events][:in].value + expect(value).to eq(new_config_generator_counter) + end + it "does not reset the global event count" do # We know that the store has more events coming in. i = 0 while dummy_output.events.size <= new_config_generator_counter @@ -410,13 +438,13 @@ class DummyOutput2 < LogStash::Outputs::Base; end end sleep(interval * 3) # Give time to reload the config - + # be eventually consistent. sleep(0.01) while dummy_output2.events.size < new_config_generator_counter snapshot = subject.metric.collector.snapshot_metric value = snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value - expect(value).to eq(new_config_generator_counter) + expect(value).to be > new_config_generator_counter end end end diff --git a/logstash-core/spec/logstash/instrument/metric_store_spec.rb b/logstash-core/spec/logstash/instrument/metric_store_spec.rb index 7e579064129..3ad08f0fee1 100644 --- a/logstash-core/spec/logstash/instrument/metric_store_spec.rb +++ b/logstash-core/spec/logstash/instrument/metric_store_spec.rb @@ -221,4 +221,35 @@ end end end + + describe "#prune" do + let(:metric_events) { + [ + [[:node, :sashimi, :pipelines, :pipeline01, :plugins, :"logstash-output-elasticsearch"], :event_in, :increment], + [[:node, :sashimi, :pipelines, :pipeline01], :processed_events_in, :increment], + [[:node, :sashimi, :pipelines, :pipeline01], :processed_events_out, :increment], + [[:node, :sashimi, :pipelines, :pipeline02], :processed_events_out, :increment], + ] + } + + before :each do + # Lets add a few metrics in the store before trying to find them + metric_events.each do |namespaces, metric_key, action| + metric = subject.fetch_or_store(namespaces, metric_key, LogStash::Instrument::MetricType::Counter.new(namespaces, metric_key)) + metric.execute(action) + end + end + + it "should remove all keys with the same starting path as the argument" do + expect(subject.get(:node, :sashimi, :pipelines, :pipeline01)).to be_a(Hash) + subject.prune("/node/sashimi/pipelines/pipeline01") + expect { subject.get(:node, :sashimi, :pipelines, :pipeline01) }.to raise_error LogStash::Instrument::MetricStore::MetricNotFound + end + + it "should keep other metrics on different path branches" do + expect(subject.get(:node, :sashimi, :pipelines, :pipeline02)).to be_a(Hash) + subject.prune("/node/sashimi/pipelines/pipeline01") + expect { subject.get(:node, :sashimi, :pipelines, :pipeline02) }.to_not raise_error + end + end end From f3e092df67e729e777427ad82fe40b48c1f540e3 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 31 Aug 2016 12:19:23 +0100 Subject: [PATCH 326/632] add metrics regarding pipeline reloading Fixes #5848 --- logstash-core/lib/logstash/agent.rb | 37 ++++++++++++++++++- .../lib/logstash/api/commands/stats.rb | 3 +- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 1c0e18dbd87..8ba0b738a24 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -48,6 +48,8 @@ def initialize(settings = LogStash::SETTINGS) # Create the collectors and configured it with the library configure_metrics_collectors + + @reload_metric = metric.namespace([:stats, :pipelines]) end def execute @@ -99,6 +101,10 @@ def reload_state! begin reload_pipeline!(pipeline_id) rescue => e + reload_metric_namespace = @reload_metric.namespace([pipeline_id.to_sym, :reloads]) + reload_metric_namespace.increment(:failures) + reload_metric_namespace.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) + reload_metric_namespace.gauge(:last_failure_timestamp, LogStash::Timestamp.now) @logger.error(I18n.t("oops"), :message => e.message, :class => e.class.name, :backtrace => e.backtrace) end end @@ -163,7 +169,11 @@ def configure_metrics_collectors end def reset_pipeline_metrics(id) - @collector.clear("stats/pipelines/#{id}") + # selectively reset metrics we don't wish to keep after reloading + # these include metrics about the plugins and number of processed events + # we want to keep other metrics like reload counts and error messages + @collector.clear("stats/pipelines/#{id}/plugins") + @collector.clear("stats/pipelines/#{id}/events") end def collect_metrics? @@ -183,6 +193,10 @@ def create_pipeline(settings, config=nil) begin LogStash::Pipeline.new(config, settings, metric) rescue => e + reload_metric_namespace = @reload_metric.namespace([settings.get("pipeline.id").to_sym, :reloads]) + reload_metric_namespace.increment(:failures) + reload_metric_namespace.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) + reload_metric_namespace.gauge(:last_failure_timestamp, LogStash::Timestamp.now) if @logger.debug? @logger.error("fetched an invalid config", :config => config, :reason => e.message, :backtrace => e.backtrace) else @@ -233,6 +247,10 @@ def start_pipeline(id) begin pipeline.run rescue => e + reload_metric_namespace = @reload_metric.namespace([id.to_sym, :reloads]) + reload_metric_namespace.increment(:failures) + reload_metric_namespace.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) + reload_metric_namespace.gauge(:last_failure_timestamp, LogStash::Timestamp.now) @logger.error("Pipeline aborted due to error", :exception => e, :backtrace => e.backtrace) end end @@ -248,7 +266,11 @@ def stop_pipeline(id) end def start_pipelines - @pipelines.each { |id, _| start_pipeline(id) } + @pipelines.each do |id, _| + start_pipeline(id) + # no reloads yet, initalize all the reload metrics + init_pipeline_reload_metrics(id) + end end def shutdown_pipelines @@ -265,6 +287,8 @@ def upgrade_pipeline(pipeline_id, new_pipeline) reset_pipeline_metrics(pipeline_id) @pipelines[pipeline_id] = new_pipeline start_pipeline(pipeline_id) + @reload_metric.namespace([pipeline_id.to_sym, :reloads]).increment(:successes) + @reload_metric.namespace([pipeline_id.to_sym, :reloads]).gauge(:last_success_timestamp, LogStash::Timestamp.now) end def clean_state? @@ -274,4 +298,13 @@ def clean_state? def setting(key) @settings.get(key) end + + def init_pipeline_reload_metrics(id) + namespace = @reload_metric.namespace([id.to_sym, :reloads]) + namespace.increment(:successes, 0) + namespace.increment(:failures, 0) + namespace.gauge(:last_error, nil) + namespace.gauge(:last_success_timestamp, nil) + namespace.gauge(:last_failure_timestamp, nil) + end end # class LogStash::Agent diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index ae80eecd0da..502c57fac03 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -91,7 +91,8 @@ def report(stats) :inputs => plugin_stats(stats, :inputs), :filters => plugin_stats(stats, :filters), :outputs => plugin_stats(stats, :outputs) - } + }, + :reloads => stats[:reloads], } end end # module PluginsStats From 27dd7147dcfb4f41a9bc0926da018350d6ee77ba Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 1 Sep 2016 11:38:02 +0100 Subject: [PATCH 327/632] tests for pipeline reload metrics Fixes #5848 --- logstash-core/lib/logstash/agent.rb | 46 ++++--- logstash-core/spec/logstash/agent_spec.rb | 143 +++++++++++++++------- 2 files changed, 126 insertions(+), 63 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 8ba0b738a24..15588a12d16 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -101,10 +101,11 @@ def reload_state! begin reload_pipeline!(pipeline_id) rescue => e - reload_metric_namespace = @reload_metric.namespace([pipeline_id.to_sym, :reloads]) - reload_metric_namespace.increment(:failures) - reload_metric_namespace.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) - reload_metric_namespace.gauge(:last_failure_timestamp, LogStash::Timestamp.now) + @reload_metric.namespace([pipeline_id.to_sym, :reloads]).tap do |n| + n.increment(:failures) + n.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) + n.gauge(:last_failure_timestamp, LogStash::Timestamp.now) + end @logger.error(I18n.t("oops"), :message => e.message, :class => e.class.name, :backtrace => e.backtrace) end end @@ -193,10 +194,11 @@ def create_pipeline(settings, config=nil) begin LogStash::Pipeline.new(config, settings, metric) rescue => e - reload_metric_namespace = @reload_metric.namespace([settings.get("pipeline.id").to_sym, :reloads]) - reload_metric_namespace.increment(:failures) - reload_metric_namespace.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) - reload_metric_namespace.gauge(:last_failure_timestamp, LogStash::Timestamp.now) + @reload_metric.namespace([settings.get("pipeline.id").to_sym, :reloads]).tap do |n| + n.increment(:failures) + n.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) + n.gauge(:last_failure_timestamp, LogStash::Timestamp.now) + end if @logger.debug? @logger.error("fetched an invalid config", :config => config, :reason => e.message, :backtrace => e.backtrace) else @@ -247,10 +249,11 @@ def start_pipeline(id) begin pipeline.run rescue => e - reload_metric_namespace = @reload_metric.namespace([id.to_sym, :reloads]) - reload_metric_namespace.increment(:failures) - reload_metric_namespace.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) - reload_metric_namespace.gauge(:last_failure_timestamp, LogStash::Timestamp.now) + @reload_metric.namespace([id.to_sym, :reloads]) do |n| + n.increment(:failures) + n.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) + n.gauge(:last_failure_timestamp, LogStash::Timestamp.now) + end @logger.error("Pipeline aborted due to error", :exception => e, :backtrace => e.backtrace) end end @@ -287,8 +290,10 @@ def upgrade_pipeline(pipeline_id, new_pipeline) reset_pipeline_metrics(pipeline_id) @pipelines[pipeline_id] = new_pipeline start_pipeline(pipeline_id) - @reload_metric.namespace([pipeline_id.to_sym, :reloads]).increment(:successes) - @reload_metric.namespace([pipeline_id.to_sym, :reloads]).gauge(:last_success_timestamp, LogStash::Timestamp.now) + @reload_metric.namespace([pipeline_id.to_sym, :reloads]).tap do |n| + n.increment(:successes) + n.gauge(:last_success_timestamp, LogStash::Timestamp.now) + end end def clean_state? @@ -300,11 +305,12 @@ def setting(key) end def init_pipeline_reload_metrics(id) - namespace = @reload_metric.namespace([id.to_sym, :reloads]) - namespace.increment(:successes, 0) - namespace.increment(:failures, 0) - namespace.gauge(:last_error, nil) - namespace.gauge(:last_success_timestamp, nil) - namespace.gauge(:last_failure_timestamp, nil) + @reload_metric.namespace([id.to_sym, :reloads]).tap do |n| + n.increment(:successes, 0) + n.increment(:failures, 0) + n.gauge(:last_error, nil) + n.gauge(:last_success_timestamp, nil) + n.gauge(:last_failure_timestamp, nil) + end end end # class LogStash::Agent diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 212b6c62382..3138337e7d3 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -51,7 +51,7 @@ "config.string" => config_string, "config.reload.automatic" => true, "config.reload.interval" => 0.01, - "pipeline.workers" => 4, + "pipeline.workers" => 4, } end @@ -331,8 +331,6 @@ context "metrics after config reloading" do let(:config) { "input { generator { } } output { dummyoutput { } }" } - let(:new_config_generator_counter) { 500 } - let(:new_config) { "input { generator { count => #{new_config_generator_counter} } } output { dummyoutput2 {} }" } let(:config_path) do f = Stud::Temporary.file f.write(config) @@ -390,61 +388,120 @@ class DummyOutput2 < LogStash::Outputs::Base; end end end - it "resets the pipeline metric collector" do - # We know that the store has more events coming in. - i = 0 - while dummy_output.events.size <= new_config_generator_counter - i += 1 - raise "Waiting too long!" if i > 20 - sleep(0.1) + context "when reloading a good config" do + let(:new_config_generator_counter) { 500 } + let(:new_config) { "input { generator { count => #{new_config_generator_counter} } } output { dummyoutput2 {} }" } + before :each do + # We know that the store has more events coming in. + i = 0 + while dummy_output.events.size <= new_config_generator_counter + i += 1 + raise "Waiting too long!" if i > 20 + sleep(0.1) + end + + + # Also force a flush to disk to make sure ruby reload it. + File.open(config_path, "w") do |f| + f.write(new_config) + f.fsync + end + + sleep(interval * 3) # Give time to reload the config + + # be eventually consistent. + sleep(0.01) while dummy_output2.events.size < new_config_generator_counter + end + + it "resets the pipeline metric collector" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:events][:in].value + expect(value).to eq(new_config_generator_counter) end - snapshot = subject.metric.collector.snapshot_metric - expect(snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:events][:in].value).to be > new_config_generator_counter + it "does not reset the global event count" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value + expect(value).to be > new_config_generator_counter + end + + it "increases the successful reload count" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:successes].value + expect(value).to be(1) + end - # update the configuration and give some time to logstash to pick it up and do the work - # Also force a flush to disk to make sure ruby reload it. - File.open(config_path, "w") do |f| - f.write(new_config) - f.fsync + it "does not set the failure reload timestamp" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:last_failure_timestamp].value + expect(value).to be(nil) end - sleep(interval * 3) # Give time to reload the config + it "sets the success reload timestamp" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:last_success_timestamp].value + expect(value).to_not be(nil) + end - # be eventually consistent. - sleep(0.01) while dummy_output2.events.size < new_config_generator_counter + it "does not set the last reload error" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:last_error].value + expect(value).to be(nil) + end - snapshot = subject.metric.collector.snapshot_metric - value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:events][:in].value - expect(value).to eq(new_config_generator_counter) end - it "does not reset the global event count" do - # We know that the store has more events coming in. - i = 0 - while dummy_output.events.size <= new_config_generator_counter - i += 1 - raise "Waiting too long!" if i > 20 - sleep(0.1) + + context "when reloading a bad config" do + let(:new_config) { "input { generator { count => " } + let(:new_config_generator_counter) { 500 } + before :each do + # We know that the store has more events coming in. + i = 0 + while dummy_output.events.size <= new_config_generator_counter + i += 1 + raise "Waiting too long!" if i > 20 + sleep(0.1) + end + + + # Also force a flush to disk to make sure ruby reload it. + File.open(config_path, "w") do |f| + f.write(new_config) + f.fsync + end + + sleep(interval * 3) # Give time to reload the config end - snapshot = subject.metric.collector.snapshot_metric - expect(snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value).to be > new_config_generator_counter + it "does not increase the successful reload count" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:successes].value + expect(value).to be(0) + end - # update the configuration and give some time to logstash to pick it up and do the work - # Also force a flush to disk to make sure ruby reload it. - File.open(config_path, "w") do |f| - f.write(new_config) - f.fsync + it "does not set the successful reload timestamp" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:last_success_timestamp].value + expect(value).to be(nil) end - sleep(interval * 3) # Give time to reload the config + it "sets the failure reload timestamp" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:last_failure_timestamp].value + expect(value).to_not be(nil) + end - # be eventually consistent. - sleep(0.01) while dummy_output2.events.size < new_config_generator_counter + it "sets the last reload error" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:last_error].value + expect(value).to_not be(nil) + end - snapshot = subject.metric.collector.snapshot_metric - value = snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value - expect(value).to be > new_config_generator_counter + it "increases the failed reload count" do + snapshot = subject.metric.collector.snapshot_metric + value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:failures].value + expect(value).to be > 1 + end end end end From 00917ec758030d2bf6d75f77dbc3f81f7d148efa Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 5 Sep 2016 13:50:28 +0200 Subject: [PATCH 328/632] minor improvements in agent specs regarding pipeline metrics Fixes #5848 --- logstash-core/spec/logstash/agent_spec.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 3138337e7d3..20700ceccc2 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -440,7 +440,7 @@ class DummyOutput2 < LogStash::Outputs::Base; end it "sets the success reload timestamp" do snapshot = subject.metric.collector.snapshot_metric value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:last_success_timestamp].value - expect(value).to_not be(nil) + expect(value).to be_a(LogStash::Timestamp) end it "does not set the last reload error" do @@ -488,13 +488,14 @@ class DummyOutput2 < LogStash::Outputs::Base; end it "sets the failure reload timestamp" do snapshot = subject.metric.collector.snapshot_metric value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:last_failure_timestamp].value - expect(value).to_not be(nil) + expect(value).to be_a(LogStash::Timestamp) end it "sets the last reload error" do snapshot = subject.metric.collector.snapshot_metric value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:last_error].value - expect(value).to_not be(nil) + expect(value).to be_a(Hash) + expect(value).to include(:message, :backtrace) end it "increases the failed reload count" do From 087a09ee7180ade5a4087450fc6e17863a3139b1 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 1 Sep 2016 16:21:18 -0700 Subject: [PATCH 329/632] Update CLI topic with missing options Fixes #5856 --- docs/static/command-line-flags.asciidoc | 125 ++++++++++++++---------- 1 file changed, 72 insertions(+), 53 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index bdccdd23b45..b48648e1a16 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -13,91 +13,110 @@ Any flags that you set at the command line override the corresponding settings i added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their names] -*`-f, --path.config CONFIGFILE`*:: - Load the Logstash config from a specific file or directory. If - you specify a directory or wildcard, config files are read from the directory in - alphabetical order. - -*`-e, --config.string CONFIGSTRING`*:: - Use the given string as the configuration data. Use the same syntax as the config file. - If no input is specified, `stdin { type => stdin }` is used by default. If no output - is specified, `stdout { codec => rubydebug }}` is used by default. +*`--node.name NAME`*:: + Specify the name of this Logstash instance. If no value is given it will default to the current + hostname. + +*`-f, --path.config CONFIG_PATH`*:: + Load the Logstash config from a specific file or directory. If a directory is given, all + files in that directory will be concatenated in lexicographical order and then parsed as a + single config file. You can also specify wildcards (globs) and any matched files will + be loaded in the order described above. + +*`-e, --config.string CONFIG_STRING`*:: + Use the given string as the configuration data. Same syntax as the config file. If no + input is specified, then the following is used as the default input: + `input { stdin { type => stdin } }` and if no output is specified, then the + following is used as the default output: `output { stdout { codec => rubydebug } }`. + If you wish to use both defaults, please use the empty string for the `-e` flag. + The default is nil. *`-w, --pipeline.workers COUNT`*:: - Set the number of workers that will, in parallel, execute the filter and output stages of the pipeline. - This defaults to the number of the host's CPU cores. If you find that events are backing up, or that - the CPU is not saturated, consider increasing this number to better utilize machine processing power. + Sets the number of pipeline workers to run. This option sets the number of workers that will, + in parallel, execute the filter and output stages of the pipeline. If you find that events are + backing up, or that the CPU is not saturated, consider increasing this number to better utilize + machine processing power. The default is 8. *`-b, --pipeline.batch.size SIZE`*:: - Define the maximum number of events an individual worker thread will collect from inputs - before attempting to execute its filters and outputs. The default is 125 events. - Larger batch sizes are generally more efficient, but come at the cost of increased memory - overhead. You may have to increase the JVM heap size by setting the `LS_HEAP_SIZE` - variable to effectively use the option. + Size of batches the pipeline is to work in. This option defines the maximum number of events an + individual worker thread will collect from inputs before attempting to execute its filters and outputs. + The default is 125 events. Larger batch sizes are generally more efficient, but come at the cost of + increased memory overhead. You may have to increase the JVM heap size by setting the `LS_HEAP_SIZE` + variable to effectively use the option. *`-u, --pipeline.batch.delay DELAY_IN_MS`*:: - When creating pipeline event batches, how long in milliseconds to wait before dispatching an undersized - batch to filters and workers. - The default is 5ms. + When creating pipeline batches, how long to wait while polling for the next event. This option defines + how long in milliseconds to wait before dispatching an undersized batch to filters and workers. + The default is 5ms. + +*`--pipeline.unsafe_shutdown`*:: + Force Logstash to exit during shutdown even if there are still inflight events + in memory. By default, Logstash will refuse to quit until all received events + have been pushed to the outputs. Enabling this option can lead to data loss during shutdown. + +*`--path.data PATH`*:: + This should point to a writable directory. Logstash will use this directory whenever it needs to store + data. Plugins will also have access to this path. The default is the `data` directory under + Logstash home. + +*`-p, --path.plugins PATH`*:: + A path of where to find custom plugins. This flag can be given multiple times to include + multiple paths. Plugins are expected to be in a specific directory hierarchy: + `PATH/logstash/TYPE/NAME.rb` where `TYPE` is `inputs`, `filters`, `outputs`, or `codecs`, + and `NAME` is the name of the plugin. *`-l, --path.log FILE`*:: - Log to a given file. The default is to log to stdout + Write Logstash internal logs to the given file. Without this flag, Logstash will emit logs to standard output. *`--log.level LEVEL`*:: - Valid levels are: + Set the log level for Logstash. Possible values are: * `fatal`: log very severe error messages that will usually be followed by the application aborting * `error`: log errors -* `warn`: log warnings +* `warn`: log warnings (this is the default) * `info`: log verbose info (for users) * `debug`: log debugging info (for developers) -* `trace`: finer-grained messages beyond debug - -*`--path.settings SETTINGS_DIR`*:: - Set the directory containing the `logstash.yml` <> as well - as the log4j logging configuration. - -*`--node.name NAME`*:: - Set a descriptive name for the node. If no value is specified, defaults to the machine's hostname. +* `trace`: log finer-grained messages beyond debugging info *`--config.debug`*:: - Show the fully compiled configuration as a debug log message (you must also have `--log.level=debug` enabled). - WARNING: The log message will include any 'password' options passed to plugin configs as plaintext, and may result - in plaintext passwords appearing in your logs! + Show the fully compiled configuration as a debug log message (you must also have `--log.level=debug` enabled). + WARNING: The log message will include any 'password' options passed to plugin configs as plaintext, and may result + in plaintext passwords appearing in your logs! + +*`-i, --interactive SHELL`*:: + Drop to shell instead of running as normal. Valid shells are "irb" and "pry". *`-V, --version`*:: - Display the version of Logstash. - -*`-p, --path.plugins`*:: - Where to find custom plugins. This flag can be given multiple times to include - multiple paths. Plugins are expected to be in a specific directory hierarchy: - `PATH/logstash/TYPE/NAME.rb` where `TYPE` is `inputs`, `filters`, `outputs`, or `codecs`, - and `NAME` is the name of the plugin. + Emit the version of Logstash and its friends, then exit. *`-t, --config.test_and_exit`*:: - Check configuration and then exit. Note that grok patterns are not checked for - correctness with this flag. - Logstash can read multiple config files from a directory. If you combine this + Check configuration for valid syntax and then exit. Note that grok patterns are not checked for + correctness with this flag. Logstash can read multiple config files from a directory. If you combine this flag with `--log.level=debug`, Logstash will log the combined config file, annotating each config block with the source file it came from. *`-r, --config.reload.automatic`*:: - Periodically check if the configuration has changed and reload the configuration whenever it is changed. + Monitor configuration changes and reload whenever the configuration is changed. + NOTE: Use SIGHUP to manually reload the config. The default is false. *`--config.reload.interval RELOAD_INTERVAL`*:: - Set how often in seconds Logstash checks the config files for changes. The default is every 3 seconds. + How frequently to poll the configuration location for changes, in seconds. The default is every 3 seconds. *`--http.host HTTP_HOST`*:: - The bind address for the metrics REST endpoint. The default is "127.0.0.1". + Web API binding host. This option specifies the bind address for the metrics REST endpoint. The default is "127.0.0.1". *`--http.port HTTP_PORT`*:: - The bind port for the metrics REST endpoint. The default is 9600-9700. + Web API http port. This option specifies the bind port for the metrics REST endpoint. The default is 9600-9700. This setting accepts a range of the format 9600-9700. Logstash will pick up the first available port. + +*`--log.format FORMAT`*:: + Specify if Logstash should write its own logs in JSON form (one event per line) or in plain text + (using Ruby's Object#inspect). The default is "plain". -*`--pipeline.unsafe_shutdown`*:: - Force Logstash to exit during shutdown even if there are still inflight events - in memory. By default, Logstash will refuse to quit until all received events - have been pushed to the outputs. Enabling this option can lead to data loss during shutdown. - +*`--path.settings SETTINGS_DIR`*:: + Set the directory containing the `logstash.yml` <> as well + as the log4j logging configuration. This can also be set through the LS_SETTINGS_DIR environment variable. + The default is the `config` directory under Logstash home. + *`-h, --help`*:: Print help From 09a4d3568787e69a099b67d0641930d47c214bb3 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 7 Sep 2016 15:34:06 -0400 Subject: [PATCH 330/632] Silence PUMA errors when an exception occur in logstash core When Logstash encounter an exception Puma was getting really noisy about the file descriptor it used. Its because Puma has an infinite loop into his reactor and when logstash is dying from the exception the FD get removed under the puma threads. Puma is using the constants `STDERR` and `STDOUT` to give information about the errors, there is no easy way to provide Puma with a custom IO. This PR hacks the Puma name to redefine both constants and send the information to the logger using the `debug` level. Also when we start the server we can pass a custom Puma::Events instance to record some of the errors happening in the internal threads, this PR also make sure we send all theses message to the configured logger. Fixes: #5822 Fixes #5869 --- logstash-core/lib/logstash/webserver.rb | 30 +++++- logstash-core/spec/logstash/webserver_spec.rb | 94 +++++++++++++++---- logstash-core/spec/support/helpers.rb | 8 ++ 3 files changed, 113 insertions(+), 19 deletions(-) create mode 100644 logstash-core/spec/support/helpers.rb diff --git a/logstash-core/lib/logstash/webserver.rb b/logstash-core/lib/logstash/webserver.rb index cc2ef6f193c..510c1b9096b 100644 --- a/logstash-core/lib/logstash/webserver.rb +++ b/logstash-core/lib/logstash/webserver.rb @@ -70,10 +70,38 @@ def stop(options={}) @server.stop(true) if @server end + # Puma uses by default the STDERR an the STDOUT for all his error + # handling, the server class accept custom a events object that can accept custom io object, + # so I just wrap the logger into an IO like object. + class IOWrappedLogger + def initialize(logger) + @logger = logger + end + + def sync=(v) + end + + def puts(str) + # The logger only accept a str as the first argument + @logger.debug(str.to_s) + end + alias_method :write, :puts + alias_method :<<, :puts + end + def start_webserver(port) + # wrap any output that puma could generate into a wrapped logger + # use the puma namespace to override STDERR, STDOUT in that scope. + io_wrapped_logger = IOWrappedLogger.new(@logger) + + ::Puma.const_set("STDERR", io_wrapped_logger) unless ::Puma.const_defined?("STDERR") + ::Puma.const_set("STDOUT", io_wrapped_logger) unless ::Puma.const_defined?("STDOUT") + app = LogStash::Api::RackApp.app(logger, agent, http_environment) - @server = ::Puma::Server.new(app) + events = ::Puma::Events.new(io_wrapped_logger, io_wrapped_logger) + + @server = ::Puma::Server.new(app, events) @server.add_tcp_listener(http_host, port) logger.info("Succesfully started Logstash API", :port => @port) diff --git a/logstash-core/spec/logstash/webserver_spec.rb b/logstash-core/spec/logstash/webserver_spec.rb index f7e887b4757..09b8bc08a78 100644 --- a/logstash-core/spec/logstash/webserver_spec.rb +++ b/logstash-core/spec/logstash/webserver_spec.rb @@ -1,6 +1,7 @@ # encoding: utf-8 # require "logstash/json" require "logstash/webserver" +require_relative "../support/helpers" require "socket" require "spec_helper" require "open-uri" @@ -9,11 +10,15 @@ def block_ports(range) servers = [] range.each do |port| - server = TCPServer.new("localhost", port) - Thread.new do - client = server.accept rescue nil + begin + server = TCPServer.new("localhost", port) + Thread.new do + client = server.accept rescue nil + end + servers << server + rescue => e + # The port can already be taken end - servers << server end sleep(1) @@ -36,29 +41,56 @@ def free_ports(servers) Thread.abort_on_exception = @abort end - let(:logger) { double("logger") } + let(:logger) { LogStash::Logging::Logger.new("testing") } let(:agent) { double("agent") } let(:webserver) { double("webserver") } before :each do - [:info, :warn, :error, :fatal, :debug].each do |level| - allow(logger).to receive(level) - end - [:info?, :warn?, :error?, :fatal?, :debug?].each do |level| - allow(logger).to receive(level) - end - allow(webserver).to receive(:address).and_return("127.0.0.1") allow(agent).to receive(:webserver).and_return(webserver) end - context "when the port is already in use and a range is provided" do - subject { LogStash::WebServer.new(logger, - agent, - { :http_host => "localhost", :http_ports => port_range - })} + subject { LogStash::WebServer.new(logger, + agent, + { :http_host => "localhost", :http_ports => port_range })} + + let(:port_range) { 10000..10010 } + + context "when an exception occur in the server thread" do + let(:spy_output) { spy("stderr").as_null_object } + + it "should not log to STDERR" do + backup_stderr = STDERR + backup_stdout = STDOUT + + # We are redefining constants, so lets silence the warning + silence_warnings do + STDOUT = STDERR = spy_output + end + + expect(spy_output).not_to receive(:puts).with(any_args) + expect(spy_output).not_to receive(:write).with(any_args) + + # This trigger an infinite loop in the reactor + expect(IO).to receive(:select).and_raise(IOError).at_least(:once) + + t = Thread.new do + subject.run + end + + sleep(1) + + # We cannot use stop here, since the code is stuck in an infinite loop + t.kill rescue nil - let(:port_range) { 10000..10010 } + silence_warnings do + STDERR = backup_stderr + STDOUT = backup_stdout + end + end + end + + context "when the port is already in use and a range is provided" do after(:each) { free_ports(@servers) } context "when we have available ports" do @@ -93,3 +125,29 @@ def free_ports(servers) end end end + +describe LogStash::WebServer::IOWrappedLogger do + let(:logger) { spy("logger") } + let(:message) { "foobar" } + + subject { described_class.new(logger) } + + it "responds to puts" do + subject.puts(message) + expect(logger).to have_received(:debug).with(message) + end + + it "responds to write" do + subject.write(message) + expect(logger).to have_received(:debug).with(message) + end + + it "reponds to <<" do + subject << message + expect(logger).to have_received(:debug).with(message) + end + + it "responds to sync=(v)" do + expect{ subject.sync = true }.not_to raise_error + end +end diff --git a/logstash-core/spec/support/helpers.rb b/logstash-core/spec/support/helpers.rb new file mode 100644 index 00000000000..8051743b7ae --- /dev/null +++ b/logstash-core/spec/support/helpers.rb @@ -0,0 +1,8 @@ +# encoding: utf-8 +def silence_warnings + warn_level = $VERBOSE + $VERBOSE = nil + yield +ensure + $VERBOSE = warn_level +end From 65a8676a86265921684068397584971274b887ad Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 8 Sep 2016 08:33:27 -0700 Subject: [PATCH 331/632] Bump master to 6.0.0-alpha1 (#5880) * Bump master to 6.0.0-alpha1 --- .../lib/logstash-core-event-java/version.rb | 2 +- logstash-core-event/lib/logstash-core-event/version.rb | 2 +- logstash-core-plugin-api/logstash-core-plugin-api.gemspec | 2 +- logstash-core/build.gradle | 2 +- logstash-core/lib/jars.rb | 2 +- logstash-core/lib/logstash-core/version.rb | 2 +- logstash-core/lib/logstash/version.rb | 2 +- logstash-core/logstash-core.gemspec | 2 +- rakelib/artifacts.rake | 2 -- versions.yml | 8 ++++---- 10 files changed, 12 insertions(+), 14 deletions(-) diff --git a/logstash-core-event-java/lib/logstash-core-event-java/version.rb b/logstash-core-event-java/lib/logstash-core-event-java/version.rb index 5b8df770945..f3030c840dd 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java/version.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_EVENT_JAVA_VERSION = "5.0.0-alpha6" +LOGSTASH_CORE_EVENT_JAVA_VERSION = "6.0.0-alpha1" diff --git a/logstash-core-event/lib/logstash-core-event/version.rb b/logstash-core-event/lib/logstash-core-event/version.rb index a634f64fa5d..74914785722 100644 --- a/logstash-core-event/lib/logstash-core-event/version.rb +++ b/logstash-core-event/lib/logstash-core-event/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_EVENT_VERSION = "5.0.0-alpha6" +LOGSTASH_CORE_EVENT_VERSION = "6.0.0-alpha1" diff --git a/logstash-core-plugin-api/logstash-core-plugin-api.gemspec b/logstash-core-plugin-api/logstash-core-plugin-api.gemspec index fced9a2d140..820aa8de189 100644 --- a/logstash-core-plugin-api/logstash-core-plugin-api.gemspec +++ b/logstash-core-plugin-api/logstash-core-plugin-api.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = LOGSTASH_CORE_PLUGIN_API - gem.add_runtime_dependency "logstash-core", "5.0.0-alpha6" + gem.add_runtime_dependency "logstash-core", "6.0.0-alpha1" # Make sure we dont build this gem from a non jruby # environment. diff --git a/logstash-core/build.gradle b/logstash-core/build.gradle index 3f4fdf3e4b4..3076f09ba6b 100644 --- a/logstash-core/build.gradle +++ b/logstash-core/build.gradle @@ -5,7 +5,7 @@ apply plugin: 'java' apply plugin: 'idea' group = 'org.logstash' -version = '5.0.0-alpha6' +version = '6.0.0-alpha1' description = """Logstash Core Java""" diff --git a/logstash-core/lib/jars.rb b/logstash-core/lib/jars.rb index 529079f74fb..b55fbe05c49 100644 --- a/logstash-core/lib/jars.rb +++ b/logstash-core/lib/jars.rb @@ -4,4 +4,4 @@ require_jar('org.apache.logging.log4j', 'log4j-core', '2.6.2') require_jar('com.fasterxml.jackson.core', 'jackson-core', '2.7.4') require_jar('com.fasterxml.jackson.core', 'jackson-databind', '2.7.4') -require_jar('org.logstash', 'logstash-core', '5.0.0-alpha6') +require_jar('org.logstash', 'logstash-core', '6.0.0-alpha1') diff --git a/logstash-core/lib/logstash-core/version.rb b/logstash-core/lib/logstash-core/version.rb index 33fd1e31b69..9cd610ab455 100644 --- a/logstash-core/lib/logstash-core/version.rb +++ b/logstash-core/lib/logstash-core/version.rb @@ -5,4 +5,4 @@ # Note to authors: this should not include dashes because 'gem' barfs if # you include a dash in the version string. -LOGSTASH_CORE_VERSION = "5.0.0-alpha6" +LOGSTASH_CORE_VERSION = "6.0.0-alpha1" diff --git a/logstash-core/lib/logstash/version.rb b/logstash-core/lib/logstash/version.rb index 4cef54dc2be..83a9cb085d6 100644 --- a/logstash-core/lib/logstash/version.rb +++ b/logstash-core/lib/logstash/version.rb @@ -11,4 +11,4 @@ # eventually this file should be in the root logstash lib fir and dependencies in logstash-core should be # fixed. -LOGSTASH_VERSION = "5.0.0-alpha6" +LOGSTASH_VERSION = "6.0.0-alpha1" diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index 94a89895445..3b1ee5c62b3 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib", "vendor/jars"] gem.version = LOGSTASH_CORE_VERSION - gem.add_runtime_dependency "logstash-core-event-java", "5.0.0-alpha6" + gem.add_runtime_dependency "logstash-core-event-java", "6.0.0-alpha1" gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license) gem.add_runtime_dependency "stud", "~> 0.0.19" #(Apache 2.0 license) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index b503df7e76e..3a071a0da45 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -323,8 +323,6 @@ namespace "artifact" do dir.input("#{empty}/=/etc/logstash/conf.d") end - # produce: logstash-5.0.0-alpha1.deb" - # produce: logstash-5.0.0-alpha1.rpm package_filename = "logstash-#{LOGSTASH_VERSION}#{PACKAGE_SUFFIX}.TYPE" case platform diff --git a/versions.yml b/versions.yml index af8d112ab3f..d4c1fbb60e5 100644 --- a/versions.yml +++ b/versions.yml @@ -1,6 +1,6 @@ --- -logstash: 5.0.0-alpha6 -logstash-core: 5.0.0-alpha6 -logstash-core-event: 5.0.0-alpha6 -logstash-core-event-java: 5.0.0-alpha6 +logstash: 6.0.0-alpha1 +logstash-core: 6.0.0-alpha1 +logstash-core-event: 6.0.0-alpha1 +logstash-core-event-java: 6.0.0-alpha1 logstash-core-plugin-api: 2.1.12 From a5c91f7b93d7ad8e2874793ffd4a69d9a66c9f8e Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Mon, 5 Sep 2016 19:28:47 +0200 Subject: [PATCH 332/632] make the install command raise exception if some error happened Fixes #5862 --- qa/rspec/commands/base.rb | 2 ++ qa/rspec/commands/debian.rb | 7 ++++++- qa/rspec/commands/redhat.rb | 6 +++--- qa/rspec/commands/suse.rb | 6 +++--- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/qa/rspec/commands/base.rb b/qa/rspec/commands/base.rb index 1fe62499d8a..3f06c2a02b1 100644 --- a/qa/rspec/commands/base.rb +++ b/qa/rspec/commands/base.rb @@ -4,6 +4,8 @@ module ServiceTester + class InstallException < Exception; end + class Base LOCATION="/logstash-build".freeze LOGSTASH_PATH="/usr/share/logstash/".freeze diff --git a/qa/rspec/commands/debian.rb b/qa/rspec/commands/debian.rb index 6ddbd08244b..30fa8c8daf6 100644 --- a/qa/rspec/commands/debian.rb +++ b/qa/rspec/commands/debian.rb @@ -22,9 +22,14 @@ def package_for(filename, base=ServiceTester::Base::LOCATION) def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) + errors = [] at(hosts, {in: :serial}) do |_| - sudo_exec!("dpkg -i --force-confnew #{package}") + cmd = sudo_exec!("dpkg -i --force-confnew #{package}") + if cmd.exit_status != 0 + errors << cmd.stderr.to_s + end end + raise InstallException.new(errors.join("\n")) unless errors.empty? end def uninstall(package, host=nil) diff --git a/qa/rspec/commands/redhat.rb b/qa/rspec/commands/redhat.rb index 67ec8143a38..eebba934b46 100644 --- a/qa/rspec/commands/redhat.rb +++ b/qa/rspec/commands/redhat.rb @@ -22,12 +22,12 @@ def package_for(filename, base=ServiceTester::Base::LOCATION) def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) - errors = {} + errors = [] at(hosts, {in: :serial}) do |_host| cmd = sudo_exec!("yum install -y #{package}") - errors[_host] = cmd.stderr unless cmd.stderr.empty? + errors << cmd.stderr unless cmd.stderr.empty? end - errors + raise InstallException.new(errors.join("\n")) unless errors.empty? end def uninstall(package, host=nil) diff --git a/qa/rspec/commands/suse.rb b/qa/rspec/commands/suse.rb index 028d9a5cab1..5db5e47a3d3 100644 --- a/qa/rspec/commands/suse.rb +++ b/qa/rspec/commands/suse.rb @@ -19,12 +19,12 @@ def package_for(filename, base=ServiceTester::Base::LOCATION) def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) - errors = {} + errors = [] at(hosts, {in: :serial}) do |_host| cmd = sudo_exec!("zypper --no-gpg-checks --non-interactive install #{package}") - errors[_host] = cmd.stderr unless cmd.stderr.empty? + errors << cmd.stderr unless cmd.stderr.empty? end - errors + raise InstallException.new(errors.join("\n")) unless errors.empty? end def uninstall(package, host=nil) From 61ebeb0b4b2f8bb6cdbd5888e2a3e6ae03ebd74e Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Wed, 7 Sep 2016 23:27:01 -0700 Subject: [PATCH 333/632] update path.log to path.logs directory, and respect it in log4j2 Fixes #5876 --- config/log4j2.properties | 39 ++++++++--------------- config/logstash.yml | 2 +- docs/static/command-line-flags.asciidoc | 4 +-- logstash-core/lib/logstash/environment.rb | 1 - logstash-core/lib/logstash/runner.rb | 11 ++++--- logstash-core/locales/en.yml | 2 ++ pkg/centos/after-install.sh | 2 +- pkg/debian/after-install.sh | 2 +- pkg/ubuntu/after-install.sh | 2 +- 9 files changed, 29 insertions(+), 36 deletions(-) diff --git a/config/log4j2.properties b/config/log4j2.properties index c54166c8dca..6eb0b5bcf9a 100644 --- a/config/log4j2.properties +++ b/config/log4j2.properties @@ -2,37 +2,26 @@ status = error name = LogstashPropertiesConfig appender.console.type = Console -appender.console.name = STDOUT - -# Pattern Logging -# +appender.console.name = console appender.console.layout.type = PatternLayout appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n - # JSON Logging -# # appender.console.layout.type = JSONLayout # appender.console.layout.compact = true # appender.console.layout.eventEol = true -# Rolling File Appender -# -#property.filename = /tmp/logstash/logstash.log -# -# appender.rolling.type = RollingFile -# appender.rolling.name = RollingFile -# appender.rolling.fileName = ${filename} -# appender.rolling.filePattern = /tmp/logstash/logstash-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz -# appender.rolling.policies.type = Policies -# appender.rolling.policies.time.type = TimeBasedTriggeringPolicy -# appender.rolling.policies.time.interval = 2 -# appender.rolling.policies.time.modulate = true -# appender.rolling.policies.size.type = SizeBasedTriggeringPolicy -# appender.rolling.policies.size.size=100MB -# appender.rolling.strategy.type = DefaultRolloverStrategy -# appender.rolling.strategy.max = 5 -# appender.rolling.layout.type = PatternLayout -# appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n +appender.rolling.type = RollingFile +appender.rolling.name = rolling +appender.rolling.fileName = ${sys:ls.logs}/logstash.log +appender.rolling.layout.type = PatternLayout +appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n +appender.rolling.filePattern = ${sys:ls.logs}/logstash-%d{yyyy-MM-dd}.log +appender.rolling.policies.type = Policies +appender.rolling.policies.time.type = TimeBasedTriggeringPolicy +appender.rolling.policies.time.interval = 1 +appender.rolling.policies.time.modulate = true rootLogger.level = error -rootLogger.appenderRef.stdout.ref = STDOUT +rootLogger.appenderRef.console.ref = console +rootLogger.appenderRef.rolling.ref = rolling + diff --git a/config/logstash.yml b/config/logstash.yml index bb65061c9bf..590a333d30a 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -107,7 +107,7 @@ # * trace # # log.level: warn -# path.log: +# path.logs: LOGSTASH_HOME/logs # # ------------ Other Settings -------------- # diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index b48648e1a16..c84067623f3 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -65,8 +65,8 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name `PATH/logstash/TYPE/NAME.rb` where `TYPE` is `inputs`, `filters`, `outputs`, or `codecs`, and `NAME` is the name of the plugin. -*`-l, --path.log FILE`*:: - Write Logstash internal logs to the given file. Without this flag, Logstash will emit logs to standard output. +*`-l, --path.logs PATH`*:: + Directory to Write Logstash internal logs to. *`--log.level LEVEL`*:: Set the log level for Logstash. Possible values are: diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 170964849ca..7617a14f5aa 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -36,7 +36,6 @@ module Environment Setting::String.new("log.level", "warn", true, ["fatal", "error", "warn", "debug", "info", "trace"]), Setting::Boolean.new("version", false), Setting::Boolean.new("help", false), - Setting::String.new("path.log", nil, false), Setting::String.new("log.format", "plain", true, ["json", "plain"]), Setting::String.new("http.host", "127.0.0.1"), Setting::PortRange.new("http.port", 9600..9700), diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 45241f1bcee..f752a780a67 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -19,11 +19,12 @@ class LogStash::Runner < Clamp::StrictCommand include LogStash::Util::Loggable - # The `path.settings` need to be defined in the runner instead of the `logstash-core/lib/logstash/environment.rb` + # The `path.settings` and `path.logs` need to be defined in the runner instead of the `logstash-core/lib/logstash/environment.rb` # because the `Environment::LOGSTASH_HOME` doesn't exist in the context of the `logstash-core` gem. # # See issue https://github.com/elastic/logstash/issues/5361 LogStash::SETTINGS.register(LogStash::Setting::String.new("path.settings", ::File.join(LogStash::Environment::LOGSTASH_HOME, "config"))) + LogStash::SETTINGS.register(LogStash::Setting::String.new("path.logs", ::File.join(LogStash::Environment::LOGSTASH_HOME, "logs"))) # Node Settings option ["-n", "--node.name"], "NAME", @@ -77,9 +78,10 @@ class LogStash::Runner < Clamp::StrictCommand :default => LogStash::SETTINGS.get_default("path.plugins") # Logging Settings - option ["-l", "--path.log"], "FILE", + option ["-l", "--path.logs"], "PATH", I18n.t("logstash.runner.flag.log"), - :attribute_name => "path.log" + :attribute_name => "path.logs", + :default => LogStash::SETTINGS.get_default("path.logs") option "--log.level", "LEVEL", I18n.t("logstash.runner.flag.log_level"), :default => LogStash::SETTINGS.get_default("log.level"), @@ -172,8 +174,9 @@ def run(args) # Configure Logstash logging facility, this need to be done before everything else to # make sure the logger has the correct settings and the log level is correctly defined. # TODO(talevy): cleanly support `path.logs` setting in log4j + java.lang.System.setProperty("ls.logs", setting("path.logs")) unless java.lang.System.getProperty("log4j.configurationFile") - log4j_config_location = setting("path.settings") + "/log4j2.properties" + log4j_config_location = ::File.join(setting("path.settings"), "log4j2.properties") LogStash::Logging::Logger::initialize(log4j_config_location) end diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index d7533db661b..3e8343c3f2a 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -194,6 +194,8 @@ en: path_settings: |+ Directory containing logstash.yml file. This can also be set through the LS_SETTINGS_DIR environment variable. + path_logs: |+ + Directory to Write Logstash internal logs to. auto_reload: |+ Monitor configuration changes and reload whenever it is changed. diff --git a/pkg/centos/after-install.sh b/pkg/centos/after-install.sh index 7d5087ab87f..7fea3e32ae9 100644 --- a/pkg/centos/after-install.sh +++ b/pkg/centos/after-install.sh @@ -4,7 +4,7 @@ chown logstash:logstash /var/lib/logstash chmod 0644 /etc/logrotate.d/logstash sed -i \ -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ - -e 's|# path.log:|path.log: /var/log/logstash/logstash.log|' \ + -e 's|# path.logs:|path.logs: /var/log/logstash|' \ -e 's|# path.data:|path.data: /var/lib/logstash|' \ /etc/logstash/logstash.yml /usr/share/logstash/bin/system-install /etc/logstash/startup.options diff --git a/pkg/debian/after-install.sh b/pkg/debian/after-install.sh index 5f9c6008cd3..14e44a88e32 100644 --- a/pkg/debian/after-install.sh +++ b/pkg/debian/after-install.sh @@ -7,7 +7,7 @@ chmod 755 /etc/logstash chmod 0644 /etc/logrotate.d/logstash sed -i \ -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ - -e 's|# path.log:|path.log: /var/log/logstash/logstash.log|' \ + -e 's|# path.logs:|path.logs: /var/log/logstash|' \ -e 's|# path.data:|path.data: /var/lib/logstash|' \ /etc/logstash/logstash.yml /usr/share/logstash/bin/system-install /etc/logstash/startup.options diff --git a/pkg/ubuntu/after-install.sh b/pkg/ubuntu/after-install.sh index 505f0328cde..6c7b832681e 100644 --- a/pkg/ubuntu/after-install.sh +++ b/pkg/ubuntu/after-install.sh @@ -6,7 +6,7 @@ chown logstash:logstash /var/lib/logstash chmod 0644 /etc/logrotate.d/logstash sed -i \ -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ - -e 's|# path.log:|path.log: /var/log/logstash/logstash.log|' \ + -e 's|# path.logs:|path.logs: /var/log/logstash|' \ -e 's|# path.data:|path.data: /var/lib/logstash|' \ /etc/logstash/logstash.yml /usr/share/logstash/bin/system-install /etc/logstash/startup.options From 5eb583b49c3e1d7051a743bb8a5623d7839de032 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Thu, 8 Sep 2016 16:48:17 -0400 Subject: [PATCH 334/632] renamed namespace com.logstash to org.logstash few auto-rename glitches fixes few auto-rename glitches fixes few auto-rename glitches fixes few auto-rename glitches fixes few auto-rename glitches fixes --- .../lib/logstash/string_interpolation.rb | 4 ++-- logstash-core-event-java/spec/event_spec.rb | 11 +++++------ .../src/main/java/JrubyEventExtService.java | 2 +- .../src/main/java/JrubyTimestampExtService.java | 3 +-- .../main/java/{com => org}/logstash/Accessors.java | 2 +- .../main/java/{com => org}/logstash/Cloner.java | 2 +- .../java/{com => org}/logstash/ConvertedList.java | 4 ++-- .../java/{com => org}/logstash/ConvertedMap.java | 4 ++-- .../main/java/{com => org}/logstash/DateNode.java | 3 +-- .../main/java/{com => org}/logstash/EpochNode.java | 2 +- .../src/main/java/{com => org}/logstash/Event.java | 12 ++++++------ .../java/{com => org}/logstash/FieldReference.java | 2 +- .../main/java/{com => org}/logstash/Javafier.java | 6 +++--- .../main/java/{com => org}/logstash/KeyNode.java | 4 ++-- .../main/java/{com => org}/logstash/PathCache.java | 2 +- .../main/java/{com => org}/logstash/Rubyfier.java | 6 +++--- .../java/{com => org}/logstash/StaticNode.java | 2 +- .../{com => org}/logstash/StringInterpolation.java | 3 +-- .../main/java/{com => org}/logstash/Template.java | 2 +- .../java/{com => org}/logstash/TemplateNode.java | 2 +- .../main/java/{com => org}/logstash/Timestamp.java | 2 +- .../{com => org}/logstash/TimestampSerializer.java | 2 +- .../src/main/java/{com => org}/logstash/Util.java | 2 +- .../main/java/{com => org}/logstash/Valuefier.java | 8 ++++---- .../{com => org}/logstash/bivalues/BiValue.java | 2 +- .../logstash/bivalues/BiValueCommon.java | 2 +- .../{com => org}/logstash/bivalues/BiValues.java | 14 +++++++------- .../logstash/bivalues/BigDecimalBiValue.java | 2 +- .../logstash/bivalues/BigIntegerBiValue.java | 2 +- .../logstash/bivalues/BooleanBiValue.java | 2 +- .../logstash/bivalues/DoubleBiValue.java | 2 +- .../logstash/bivalues/FloatBiValue.java | 2 +- .../logstash/bivalues/IntegerBiValue.java | 2 +- .../logstash/bivalues/JavaProxyBiValue.java | 2 +- .../logstash/bivalues/LongBiValue.java | 2 +- .../logstash/bivalues/NullBiValue.java | 2 +- .../logstash/bivalues/StringBiValue.java | 2 +- .../logstash/bivalues/SymbolBiValue.java | 2 +- .../logstash/bivalues/TimeBiValue.java | 2 +- .../logstash/bivalues/TimestampBiValue.java | 6 +++--- .../logstash/ext/JrubyEventExtLibrary.java | 4 ++-- .../logstash/ext/JrubyTimestampExtLibrary.java | 4 ++-- .../java/{com => org}/logstash/AccessorsTest.java | 3 ++- .../test/java/{com => org}/logstash/EventTest.java | 2 +- .../{com => org}/logstash/FieldReferenceTest.java | 6 +----- .../java/{com => org}/logstash/JavafierTest.java | 2 +- .../java/{com => org}/logstash/KeyNodeTest.java | 2 +- .../java/{com => org}/logstash/RubyfierTest.java | 4 ++-- .../logstash/StringInterpolationTest.java | 2 +- .../test/java/{com => org}/logstash/TestBase.java | 4 ++-- .../java/{com => org}/logstash/TimestampTest.java | 3 ++- .../java/{com => org}/logstash/ValuefierTest.java | 8 ++++---- .../logstash/bivalues/BiValueTest.java | 4 ++-- .../logstash/bivalues/BiValuesTest.java | 8 ++++---- .../logstash/bivalues/SomeJavaObject.java | 2 +- 55 files changed, 96 insertions(+), 102 deletions(-) rename logstash-core-event-java/src/main/java/{com => org}/logstash/Accessors.java (99%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/Cloner.java (98%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/ConvertedList.java (98%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/ConvertedMap.java (98%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/DateNode.java (92%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/EpochNode.java (93%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/Event.java (97%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/FieldReference.java (97%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/Javafier.java (91%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/KeyNode.java (96%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/PathCache.java (98%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/Rubyfier.java (95%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/StaticNode.java (93%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/StringInterpolation.java (98%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/Template.java (97%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/TemplateNode.java (87%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/Timestamp.java (99%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/TimestampSerializer.java (95%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/Util.java (99%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/Valuefier.java (95%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/BiValue.java (89%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/BiValueCommon.java (98%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/BiValues.java (94%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/BigDecimalBiValue.java (97%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/BigIntegerBiValue.java (96%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/BooleanBiValue.java (96%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/DoubleBiValue.java (96%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/FloatBiValue.java (97%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/IntegerBiValue.java (97%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/JavaProxyBiValue.java (96%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/LongBiValue.java (96%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/NullBiValue.java (97%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/StringBiValue.java (96%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/SymbolBiValue.java (96%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/TimeBiValue.java (96%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/bivalues/TimestampBiValue.java (87%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/ext/JrubyEventExtLibrary.java (99%) rename logstash-core-event-java/src/main/java/{com => org}/logstash/ext/JrubyTimestampExtLibrary.java (99%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/AccessorsTest.java (99%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/EventTest.java (99%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/FieldReferenceTest.java (91%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/JavafierTest.java (95%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/KeyNodeTest.java (98%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/RubyfierTest.java (98%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/StringInterpolationTest.java (99%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/TestBase.java (90%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/TimestampTest.java (98%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/ValuefierTest.java (96%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/bivalues/BiValueTest.java (99%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/bivalues/BiValuesTest.java (98%) rename logstash-core-event-java/src/test/java/{com => org}/logstash/bivalues/SomeJavaObject.java (94%) diff --git a/logstash-core-event-java/lib/logstash/string_interpolation.rb b/logstash-core-event-java/lib/logstash/string_interpolation.rb index 7baf091f304..2eef6dfdff8 100644 --- a/logstash-core-event-java/lib/logstash/string_interpolation.rb +++ b/logstash-core-event-java/lib/logstash/string_interpolation.rb @@ -6,12 +6,12 @@ module StringInterpolation # clear the global compiled templates cache def clear_cache - Java::ComLogstash::StringInterpolation.get_instance.clear_cache; + Java::OrgLogstash::StringInterpolation.get_instance.clear_cache; end # @return [Fixnum] the compiled templates cache size def cache_size - Java::ComLogstash::StringInterpolation.get_instance.cache_size; + Java::OrgLogstash::StringInterpolation.get_instance.cache_size; end end end diff --git a/logstash-core-event-java/spec/event_spec.rb b/logstash-core-event-java/spec/event_spec.rb index 541186aeb3c..0367a27edec 100644 --- a/logstash-core-event-java/spec/event_spec.rb +++ b/logstash-core-event-java/spec/event_spec.rb @@ -5,7 +5,6 @@ require "logstash/event" require "json" require "java" -# java_import 'com.logstash.Util' TIMESTAMP = "@timestamp" @@ -123,7 +122,7 @@ end it "should set XXJavaProxy Jackson crafted" do - proxy = com.logstash.Util.getMapFixtureJackson() + proxy = org.logstash.Util.getMapFixtureJackson() # proxy is {"string": "foo", "int": 42, "float": 42.42, "array": ["bar","baz"], "hash": {"string":"quux"} } e = LogStash::Event.new() e.set("[proxy]", proxy) @@ -136,7 +135,7 @@ end it "should set XXJavaProxy hand crafted" do - proxy = com.logstash.Util.getMapFixtureHandcrafted() + proxy = org.logstash.Util.getMapFixtureHandcrafted() # proxy is {"string": "foo", "int": 42, "float": 42.42, "array": ["bar","baz"], "hash": {"string":"quux"} } e = LogStash::Event.new() e.set("[proxy]", proxy) @@ -159,12 +158,12 @@ it "to_hash should inject a Ruby LogStash::Timestamp" do e = LogStash::Event.new() - expect(e.to_java).to be_kind_of(Java::ComLogstash::Event) - expect(e.to_java.get_field(TIMESTAMP)).to be_kind_of(Java::ComLogstash::Timestamp) + expect(e.to_java).to be_kind_of(Java::OrgLogstash::Event) + expect(e.to_java.get_field(TIMESTAMP)).to be_kind_of(Java::OrgLogstash::Timestamp) expect(e.to_hash[TIMESTAMP]).to be_kind_of(LogStash::Timestamp) # now make sure the original map was not touched - expect(e.to_java.get_field(TIMESTAMP)).to be_kind_of(Java::ComLogstash::Timestamp) + expect(e.to_java.get_field(TIMESTAMP)).to be_kind_of(Java::OrgLogstash::Timestamp) end it "should set timestamp" do diff --git a/logstash-core-event-java/src/main/java/JrubyEventExtService.java b/logstash-core-event-java/src/main/java/JrubyEventExtService.java index 306a45f3971..46d54f13c8a 100644 --- a/logstash-core-event-java/src/main/java/JrubyEventExtService.java +++ b/logstash-core-event-java/src/main/java/JrubyEventExtService.java @@ -1,4 +1,4 @@ -import com.logstash.ext.JrubyEventExtLibrary; +import org.logstash.ext.JrubyEventExtLibrary; import org.jruby.Ruby; import org.jruby.runtime.load.BasicLibraryService; diff --git a/logstash-core-event-java/src/main/java/JrubyTimestampExtService.java b/logstash-core-event-java/src/main/java/JrubyTimestampExtService.java index 32d8eb2bf98..f11e38783e0 100644 --- a/logstash-core-event-java/src/main/java/JrubyTimestampExtService.java +++ b/logstash-core-event-java/src/main/java/JrubyTimestampExtService.java @@ -1,5 +1,4 @@ -import com.logstash.ext.JrubyEventExtLibrary; -import com.logstash.ext.JrubyTimestampExtLibrary; +import org.logstash.ext.JrubyTimestampExtLibrary; import org.jruby.Ruby; import org.jruby.runtime.load.BasicLibraryService; diff --git a/logstash-core-event-java/src/main/java/com/logstash/Accessors.java b/logstash-core-event-java/src/main/java/org/logstash/Accessors.java similarity index 99% rename from logstash-core-event-java/src/main/java/com/logstash/Accessors.java rename to logstash-core-event-java/src/main/java/org/logstash/Accessors.java index 9a9506f934a..bdf6c622b83 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Accessors.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Accessors.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import java.util.HashMap; import java.util.Map; diff --git a/logstash-core-event-java/src/main/java/com/logstash/Cloner.java b/logstash-core-event-java/src/main/java/org/logstash/Cloner.java similarity index 98% rename from logstash-core-event-java/src/main/java/com/logstash/Cloner.java rename to logstash-core-event-java/src/main/java/org/logstash/Cloner.java index cd78a7007d8..d2588064d5c 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Cloner.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Cloner.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import java.util.*; diff --git a/logstash-core-event-java/src/main/java/com/logstash/ConvertedList.java b/logstash-core-event-java/src/main/java/org/logstash/ConvertedList.java similarity index 98% rename from logstash-core-event-java/src/main/java/com/logstash/ConvertedList.java rename to logstash-core-event-java/src/main/java/org/logstash/ConvertedList.java index 319f1c300cf..d4cde257288 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/ConvertedList.java +++ b/logstash-core-event-java/src/main/java/org/logstash/ConvertedList.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import org.jruby.RubyArray; import org.jruby.runtime.builtin.IRubyObject; @@ -15,7 +15,7 @@ import java.util.function.UnaryOperator; import java.util.stream.Stream; -import static com.logstash.Valuefier.convert; +import static org.logstash.Valuefier.convert; public class ConvertedList implements List, Collection, Iterable { private final List delegate; diff --git a/logstash-core-event-java/src/main/java/com/logstash/ConvertedMap.java b/logstash-core-event-java/src/main/java/org/logstash/ConvertedMap.java similarity index 98% rename from logstash-core-event-java/src/main/java/com/logstash/ConvertedMap.java rename to logstash-core-event-java/src/main/java/org/logstash/ConvertedMap.java index 1efc2be8308..ea25ba6aba3 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/ConvertedMap.java +++ b/logstash-core-event-java/src/main/java/org/logstash/ConvertedMap.java @@ -1,6 +1,6 @@ -package com.logstash; +package org.logstash; -import com.logstash.bivalues.BiValues; +import org.logstash.bivalues.BiValues; import org.jruby.RubyHash; import org.jruby.runtime.builtin.IRubyObject; diff --git a/logstash-core-event-java/src/main/java/com/logstash/DateNode.java b/logstash-core-event-java/src/main/java/org/logstash/DateNode.java similarity index 92% rename from logstash-core-event-java/src/main/java/com/logstash/DateNode.java rename to logstash-core-event-java/src/main/java/org/logstash/DateNode.java index 560d9f53d3c..423cb8ecb70 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/DateNode.java +++ b/logstash-core-event-java/src/main/java/org/logstash/DateNode.java @@ -1,10 +1,9 @@ -package com.logstash; +package org.logstash; import org.joda.time.DateTimeZone; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; -import java.io.IOError; import java.io.IOException; /** diff --git a/logstash-core-event-java/src/main/java/com/logstash/EpochNode.java b/logstash-core-event-java/src/main/java/org/logstash/EpochNode.java similarity index 93% rename from logstash-core-event-java/src/main/java/com/logstash/EpochNode.java rename to logstash-core-event-java/src/main/java/org/logstash/EpochNode.java index 4451ffa73c4..cc228315d74 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/EpochNode.java +++ b/logstash-core-event-java/src/main/java/org/logstash/EpochNode.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import java.io.IOException; diff --git a/logstash-core-event-java/src/main/java/com/logstash/Event.java b/logstash-core-event-java/src/main/java/org/logstash/Event.java similarity index 97% rename from logstash-core-event-java/src/main/java/com/logstash/Event.java rename to logstash-core-event-java/src/main/java/org/logstash/Event.java index f04d4d8fff7..b54806db3dc 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Event.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Event.java @@ -1,11 +1,11 @@ -package com.logstash; +package org.logstash; import com.fasterxml.jackson.databind.ObjectMapper; -import com.logstash.bivalues.NullBiValue; -import com.logstash.bivalues.StringBiValue; -import com.logstash.bivalues.TimeBiValue; -import com.logstash.bivalues.TimestampBiValue; -import com.logstash.ext.JrubyTimestampExtLibrary; +import org.logstash.bivalues.NullBiValue; +import org.logstash.bivalues.StringBiValue; +import org.logstash.bivalues.TimeBiValue; +import org.logstash.bivalues.TimestampBiValue; +import org.logstash.ext.JrubyTimestampExtLibrary; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.joda.time.DateTime; diff --git a/logstash-core-event-java/src/main/java/com/logstash/FieldReference.java b/logstash-core-event-java/src/main/java/org/logstash/FieldReference.java similarity index 97% rename from logstash-core-event-java/src/main/java/com/logstash/FieldReference.java rename to logstash-core-event-java/src/main/java/org/logstash/FieldReference.java index e0d7e3ee969..5e468743e39 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/FieldReference.java +++ b/logstash-core-event-java/src/main/java/org/logstash/FieldReference.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import java.util.ArrayList; import java.util.Arrays; diff --git a/logstash-core-event-java/src/main/java/com/logstash/Javafier.java b/logstash-core-event-java/src/main/java/org/logstash/Javafier.java similarity index 91% rename from logstash-core-event-java/src/main/java/com/logstash/Javafier.java rename to logstash-core-event-java/src/main/java/org/logstash/Javafier.java index ab8ec0ebbff..b12e7ec6bac 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Javafier.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Javafier.java @@ -1,8 +1,8 @@ -package com.logstash; +package org.logstash; -import com.logstash.bivalues.BiValue; -import com.logstash.bivalues.BiValues; +import org.logstash.bivalues.BiValue; +import org.logstash.bivalues.BiValues; public class Javafier { private static final String ERR_TEMPLATE = "Missing Ruby class handling for full class name=%s, simple name=%s"; diff --git a/logstash-core-event-java/src/main/java/com/logstash/KeyNode.java b/logstash-core-event-java/src/main/java/org/logstash/KeyNode.java similarity index 96% rename from logstash-core-event-java/src/main/java/com/logstash/KeyNode.java rename to logstash-core-event-java/src/main/java/org/logstash/KeyNode.java index ed5ada11e7c..e6a5c0bea3d 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/KeyNode.java +++ b/logstash-core-event-java/src/main/java/org/logstash/KeyNode.java @@ -1,7 +1,7 @@ -package com.logstash; +package org.logstash; import com.fasterxml.jackson.databind.ObjectMapper; -import com.logstash.bivalues.BiValue; +import org.logstash.bivalues.BiValue; import java.io.IOException; import java.util.List; diff --git a/logstash-core-event-java/src/main/java/com/logstash/PathCache.java b/logstash-core-event-java/src/main/java/org/logstash/PathCache.java similarity index 98% rename from logstash-core-event-java/src/main/java/com/logstash/PathCache.java rename to logstash-core-event-java/src/main/java/org/logstash/PathCache.java index b7beff95b89..2e884470850 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/PathCache.java +++ b/logstash-core-event-java/src/main/java/org/logstash/PathCache.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import java.util.concurrent.ConcurrentHashMap; diff --git a/logstash-core-event-java/src/main/java/com/logstash/Rubyfier.java b/logstash-core-event-java/src/main/java/org/logstash/Rubyfier.java similarity index 95% rename from logstash-core-event-java/src/main/java/com/logstash/Rubyfier.java rename to logstash-core-event-java/src/main/java/org/logstash/Rubyfier.java index 7f32ab96027..a23b65c314b 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Rubyfier.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Rubyfier.java @@ -1,7 +1,7 @@ -package com.logstash; +package org.logstash; -import com.logstash.bivalues.BiValue; -import com.logstash.bivalues.BiValues; +import org.logstash.bivalues.BiValue; +import org.logstash.bivalues.BiValues; import org.jruby.Ruby; import org.jruby.RubyArray; import org.jruby.RubyHash; diff --git a/logstash-core-event-java/src/main/java/com/logstash/StaticNode.java b/logstash-core-event-java/src/main/java/org/logstash/StaticNode.java similarity index 93% rename from logstash-core-event-java/src/main/java/com/logstash/StaticNode.java rename to logstash-core-event-java/src/main/java/org/logstash/StaticNode.java index 73b5c160440..36c2ef11123 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/StaticNode.java +++ b/logstash-core-event-java/src/main/java/org/logstash/StaticNode.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import java.io.IOException; diff --git a/logstash-core-event-java/src/main/java/com/logstash/StringInterpolation.java b/logstash-core-event-java/src/main/java/org/logstash/StringInterpolation.java similarity index 98% rename from logstash-core-event-java/src/main/java/com/logstash/StringInterpolation.java rename to logstash-core-event-java/src/main/java/org/logstash/StringInterpolation.java index 5830cc89672..2bf93561095 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/StringInterpolation.java +++ b/logstash-core-event-java/src/main/java/org/logstash/StringInterpolation.java @@ -1,9 +1,8 @@ -package com.logstash; +package org.logstash; import java.io.IOException; import java.util.Map; -import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/logstash-core-event-java/src/main/java/com/logstash/Template.java b/logstash-core-event-java/src/main/java/org/logstash/Template.java similarity index 97% rename from logstash-core-event-java/src/main/java/com/logstash/Template.java rename to logstash-core-event-java/src/main/java/org/logstash/Template.java index a17e69b3946..418e1690824 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Template.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Template.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import java.io.IOException; import java.util.ArrayList; diff --git a/logstash-core-event-java/src/main/java/com/logstash/TemplateNode.java b/logstash-core-event-java/src/main/java/org/logstash/TemplateNode.java similarity index 87% rename from logstash-core-event-java/src/main/java/com/logstash/TemplateNode.java rename to logstash-core-event-java/src/main/java/org/logstash/TemplateNode.java index 942bbc1ee03..1f7d9fbcf56 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/TemplateNode.java +++ b/logstash-core-event-java/src/main/java/org/logstash/TemplateNode.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import java.io.IOException; diff --git a/logstash-core-event-java/src/main/java/com/logstash/Timestamp.java b/logstash-core-event-java/src/main/java/org/logstash/Timestamp.java similarity index 99% rename from logstash-core-event-java/src/main/java/com/logstash/Timestamp.java rename to logstash-core-event-java/src/main/java/org/logstash/Timestamp.java index 434dc93a13c..f3cea5b560b 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Timestamp.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Timestamp.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import org.joda.time.DateTime; diff --git a/logstash-core-event-java/src/main/java/com/logstash/TimestampSerializer.java b/logstash-core-event-java/src/main/java/org/logstash/TimestampSerializer.java similarity index 95% rename from logstash-core-event-java/src/main/java/com/logstash/TimestampSerializer.java rename to logstash-core-event-java/src/main/java/org/logstash/TimestampSerializer.java index c90afdd9227..3c854c3d8b5 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/TimestampSerializer.java +++ b/logstash-core-event-java/src/main/java/org/logstash/TimestampSerializer.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; diff --git a/logstash-core-event-java/src/main/java/com/logstash/Util.java b/logstash-core-event-java/src/main/java/org/logstash/Util.java similarity index 99% rename from logstash-core-event-java/src/main/java/com/logstash/Util.java rename to logstash-core-event-java/src/main/java/org/logstash/Util.java index c2050c47ad5..77a6565b7de 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Util.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Util.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/logstash-core-event-java/src/main/java/com/logstash/Valuefier.java b/logstash-core-event-java/src/main/java/org/logstash/Valuefier.java similarity index 95% rename from logstash-core-event-java/src/main/java/com/logstash/Valuefier.java rename to logstash-core-event-java/src/main/java/org/logstash/Valuefier.java index ea2b55b8a38..1739c11c312 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/Valuefier.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Valuefier.java @@ -1,8 +1,8 @@ -package com.logstash; +package org.logstash; -import com.logstash.bivalues.BiValue; -import com.logstash.bivalues.BiValues; -import com.logstash.ext.JrubyTimestampExtLibrary; +import org.logstash.bivalues.BiValue; +import org.logstash.bivalues.BiValues; +import org.logstash.ext.JrubyTimestampExtLibrary; import org.joda.time.DateTime; import org.jruby.RubyArray; import org.jruby.RubyHash; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BiValue.java similarity index 89% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/BiValue.java index 1eab0cd359e..7270f8e5e8e 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.runtime.builtin.IRubyObject; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValueCommon.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BiValueCommon.java similarity index 98% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValueCommon.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/BiValueCommon.java index b8759f27d5c..0e8748f0be4 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValueCommon.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BiValueCommon.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import com.fasterxml.jackson.annotation.JsonValue; import org.jruby.Ruby; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValues.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BiValues.java similarity index 94% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValues.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/BiValues.java index df1ffbfaebc..8529189fa06 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BiValues.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BiValues.java @@ -1,7 +1,7 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; -import com.logstash.Timestamp; -import com.logstash.ext.JrubyTimestampExtLibrary.RubyTimestamp; +import org.logstash.Timestamp; +import org.logstash.ext.JrubyTimestampExtLibrary.RubyTimestamp; import org.jruby.RubyBignum; import org.jruby.RubyBoolean; import org.jruby.RubyFloat; @@ -18,8 +18,8 @@ import java.util.HashMap; public enum BiValues { - COM_LOGSTASH_EXT_JRUBYTIMESTAMPEXTLIBRARY$RUBYTIMESTAMP(BiValueType.TIMESTAMP), - COM_LOGSTASH_TIMESTAMP(BiValueType.TIMESTAMP), + ORG_LOGSTASH_EXT_JRUBYTIMESTAMPEXTLIBRARY$RUBYTIMESTAMP(BiValueType.TIMESTAMP), + ORG_LOGSTASH_TIMESTAMP(BiValueType.TIMESTAMP), JAVA_LANG_BOOLEAN(BiValueType.BOOLEAN), JAVA_LANG_DOUBLE(BiValueType.DOUBLE), JAVA_LANG_FLOAT(BiValueType.FLOAT), @@ -44,8 +44,8 @@ public enum BiValues { private static HashMap initCache() { HashMap hm = new HashMap<>(); - hm.put("com.logstash.Timestamp", "COM_LOGSTASH_TIMESTAMP"); - hm.put("com.logstash.ext.JrubyTimestampExtLibrary$RubyTimestamp", "COM_LOGSTASH_EXT_JRUBYTIMESTAMPEXTLIBRARY$RUBYTIMESTAMP"); + hm.put("org.logstash.Timestamp", "ORG_LOGSTASH_TIMESTAMP"); + hm.put("org.logstash.ext.JrubyTimestampExtLibrary$RubyTimestamp", "ORG_LOGSTASH_EXT_JRUBYTIMESTAMPEXTLIBRARY$RUBYTIMESTAMP"); hm.put("java.lang.Boolean", "JAVA_LANG_BOOLEAN"); hm.put("java.lang.Double", "JAVA_LANG_DOUBLE"); hm.put("java.lang.Float", "JAVA_LANG_FLOAT"); diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BigDecimalBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BigDecimalBiValue.java similarity index 97% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/BigDecimalBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/BigDecimalBiValue.java index 77a41d3619c..a4226a9dcd4 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BigDecimalBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BigDecimalBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.ext.bigdecimal.RubyBigDecimal; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BigIntegerBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BigIntegerBiValue.java similarity index 96% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/BigIntegerBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/BigIntegerBiValue.java index e4760ac85bf..e2d04822448 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BigIntegerBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BigIntegerBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.RubyBignum; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BooleanBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BooleanBiValue.java similarity index 96% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/BooleanBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/BooleanBiValue.java index aab70dcef52..e50cee9cbd3 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/BooleanBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/BooleanBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.RubyBoolean; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/DoubleBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/DoubleBiValue.java similarity index 96% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/DoubleBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/DoubleBiValue.java index 7a39ea13523..9185875f691 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/DoubleBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/DoubleBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.RubyFloat; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/FloatBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/FloatBiValue.java similarity index 97% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/FloatBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/FloatBiValue.java index d33a38bcba1..95771b8b9ce 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/FloatBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/FloatBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.RubyFloat; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/IntegerBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/IntegerBiValue.java similarity index 97% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/IntegerBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/IntegerBiValue.java index 30ad9d43dec..92e6da9d28a 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/IntegerBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/IntegerBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.RubyInteger; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/JavaProxyBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/JavaProxyBiValue.java similarity index 96% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/JavaProxyBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/JavaProxyBiValue.java index e18c0a5540f..f8f3e8771ff 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/JavaProxyBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/JavaProxyBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.java.proxies.JavaProxy; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/LongBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/LongBiValue.java similarity index 96% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/LongBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/LongBiValue.java index 97f5285f3db..2b7c1cb8ef4 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/LongBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/LongBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.RubyInteger; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/NullBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/NullBiValue.java similarity index 97% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/NullBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/NullBiValue.java index 285d304e483..4a5f4e53b77 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/NullBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/NullBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import com.fasterxml.jackson.annotation.JsonValue; import org.jruby.Ruby; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/StringBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/StringBiValue.java similarity index 96% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/StringBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/StringBiValue.java index 664f51ddc27..5369e23e7bf 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/StringBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/StringBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.RubyString; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/SymbolBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/SymbolBiValue.java similarity index 96% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/SymbolBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/SymbolBiValue.java index db5da434106..3cbcde3871f 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/SymbolBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/SymbolBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.jruby.Ruby; import org.jruby.RubySymbol; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/TimeBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/TimeBiValue.java similarity index 96% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/TimeBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/TimeBiValue.java index 548ecd61d28..bcced16503a 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/TimeBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/TimeBiValue.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; import org.joda.time.DateTime; import org.jruby.Ruby; diff --git a/logstash-core-event-java/src/main/java/com/logstash/bivalues/TimestampBiValue.java b/logstash-core-event-java/src/main/java/org/logstash/bivalues/TimestampBiValue.java similarity index 87% rename from logstash-core-event-java/src/main/java/com/logstash/bivalues/TimestampBiValue.java rename to logstash-core-event-java/src/main/java/org/logstash/bivalues/TimestampBiValue.java index 59b844a20b2..b1d98ca9eee 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/bivalues/TimestampBiValue.java +++ b/logstash-core-event-java/src/main/java/org/logstash/bivalues/TimestampBiValue.java @@ -1,7 +1,7 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; -import com.logstash.Timestamp; -import com.logstash.ext.JrubyTimestampExtLibrary.RubyTimestamp; +import org.logstash.Timestamp; +import org.logstash.ext.JrubyTimestampExtLibrary.RubyTimestamp; import org.jruby.Ruby; import java.io.ObjectStreamException; diff --git a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java b/logstash-core-event-java/src/main/java/org/logstash/ext/JrubyEventExtLibrary.java similarity index 99% rename from logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java rename to logstash-core-event-java/src/main/java/org/logstash/ext/JrubyEventExtLibrary.java index f7572a0d859..2edd25e6645 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyEventExtLibrary.java +++ b/logstash-core-event-java/src/main/java/org/logstash/ext/JrubyEventExtLibrary.java @@ -1,6 +1,6 @@ -package com.logstash.ext; +package org.logstash.ext; -import com.logstash.*; +import org.logstash.*; import org.jruby.*; import org.jruby.anno.JRubyClass; import org.jruby.anno.JRubyMethod; diff --git a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyTimestampExtLibrary.java b/logstash-core-event-java/src/main/java/org/logstash/ext/JrubyTimestampExtLibrary.java similarity index 99% rename from logstash-core-event-java/src/main/java/com/logstash/ext/JrubyTimestampExtLibrary.java rename to logstash-core-event-java/src/main/java/org/logstash/ext/JrubyTimestampExtLibrary.java index 86e0d3ef3e8..76fe2b582c3 100644 --- a/logstash-core-event-java/src/main/java/com/logstash/ext/JrubyTimestampExtLibrary.java +++ b/logstash-core-event-java/src/main/java/org/logstash/ext/JrubyTimestampExtLibrary.java @@ -1,6 +1,5 @@ -package com.logstash.ext; +package org.logstash.ext; -import com.logstash.*; import org.jruby.*; import org.jruby.anno.JRubyClass; import org.jruby.anno.JRubyMethod; @@ -12,6 +11,7 @@ import org.jruby.runtime.ThreadContext; import org.jruby.runtime.builtin.IRubyObject; import org.jruby.runtime.load.Library; +import org.logstash.Timestamp; import java.io.IOException; diff --git a/logstash-core-event-java/src/test/java/com/logstash/AccessorsTest.java b/logstash-core-event-java/src/test/java/org/logstash/AccessorsTest.java similarity index 99% rename from logstash-core-event-java/src/test/java/com/logstash/AccessorsTest.java rename to logstash-core-event-java/src/test/java/org/logstash/AccessorsTest.java index 4e7192c70b4..df0a56c5f09 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/AccessorsTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/AccessorsTest.java @@ -1,6 +1,7 @@ -package com.logstash; +package org.logstash; import org.junit.Test; + import static org.junit.Assert.*; import java.util.ArrayList; diff --git a/logstash-core-event-java/src/test/java/com/logstash/EventTest.java b/logstash-core-event-java/src/test/java/org/logstash/EventTest.java similarity index 99% rename from logstash-core-event-java/src/test/java/com/logstash/EventTest.java rename to logstash-core-event-java/src/test/java/org/logstash/EventTest.java index 0177e66346d..a2714761623 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/EventTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/EventTest.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import org.junit.Test; diff --git a/logstash-core-event-java/src/test/java/com/logstash/FieldReferenceTest.java b/logstash-core-event-java/src/test/java/org/logstash/FieldReferenceTest.java similarity index 91% rename from logstash-core-event-java/src/test/java/com/logstash/FieldReferenceTest.java rename to logstash-core-event-java/src/test/java/org/logstash/FieldReferenceTest.java index 73f04e3a7c4..280975f3230 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/FieldReferenceTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/FieldReferenceTest.java @@ -1,11 +1,7 @@ -package com.logstash; +package org.logstash; import org.junit.Test; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - import static org.junit.Assert.*; public class FieldReferenceTest { diff --git a/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java b/logstash-core-event-java/src/test/java/org/logstash/JavafierTest.java similarity index 95% rename from logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java rename to logstash-core-event-java/src/test/java/org/logstash/JavafierTest.java index 5a6f730e4eb..e198bf507c5 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/JavafierTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/JavafierTest.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import org.jruby.RubyBignum; import org.junit.Test; diff --git a/logstash-core-event-java/src/test/java/com/logstash/KeyNodeTest.java b/logstash-core-event-java/src/test/java/org/logstash/KeyNodeTest.java similarity index 98% rename from logstash-core-event-java/src/test/java/com/logstash/KeyNodeTest.java rename to logstash-core-event-java/src/test/java/org/logstash/KeyNodeTest.java index 23cb27ac997..ea5b69c8920 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/KeyNodeTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/KeyNodeTest.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import org.junit.Test; diff --git a/logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java b/logstash-core-event-java/src/test/java/org/logstash/RubyfierTest.java similarity index 98% rename from logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java rename to logstash-core-event-java/src/test/java/org/logstash/RubyfierTest.java index d8d015c739b..e5bba62148c 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/RubyfierTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/RubyfierTest.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import org.jruby.RubyArray; import org.jruby.RubyBignum; @@ -36,7 +36,7 @@ public void testDeepMapWithString() { Map data = new HashMap(); data.put("foo", "bar"); - RubyHash rubyHash = ((RubyHash)Rubyfier.deep(ruby, data)); + RubyHash rubyHash = ((RubyHash) Rubyfier.deep(ruby, data)); // Hack to be able to retrieve the original, unconverted Ruby object from Map // it seems the only method providing this is internalGet but it is declared protected. diff --git a/logstash-core-event-java/src/test/java/com/logstash/StringInterpolationTest.java b/logstash-core-event-java/src/test/java/org/logstash/StringInterpolationTest.java similarity index 99% rename from logstash-core-event-java/src/test/java/com/logstash/StringInterpolationTest.java rename to logstash-core-event-java/src/test/java/org/logstash/StringInterpolationTest.java index 52d4563db4b..8a28ee64939 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/StringInterpolationTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/StringInterpolationTest.java @@ -1,4 +1,4 @@ -package com.logstash; +package org.logstash; import org.joda.time.DateTime; diff --git a/logstash-core-event-java/src/test/java/com/logstash/TestBase.java b/logstash-core-event-java/src/test/java/org/logstash/TestBase.java similarity index 90% rename from logstash-core-event-java/src/test/java/com/logstash/TestBase.java rename to logstash-core-event-java/src/test/java/org/logstash/TestBase.java index 47e2ef73c64..9bbc5ff08d0 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/TestBase.java +++ b/logstash-core-event-java/src/test/java/org/logstash/TestBase.java @@ -1,6 +1,6 @@ -package com.logstash; +package org.logstash; -import com.logstash.ext.JrubyTimestampExtLibrary; +import org.logstash.ext.JrubyTimestampExtLibrary; import org.jruby.CompatVersion; import org.jruby.Ruby; import org.jruby.RubyInstanceConfig; diff --git a/logstash-core-event-java/src/test/java/com/logstash/TimestampTest.java b/logstash-core-event-java/src/test/java/org/logstash/TimestampTest.java similarity index 98% rename from logstash-core-event-java/src/test/java/com/logstash/TimestampTest.java rename to logstash-core-event-java/src/test/java/org/logstash/TimestampTest.java index 539fbe227cb..db698d43cee 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/TimestampTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/TimestampTest.java @@ -1,8 +1,9 @@ -package com.logstash; +package org.logstash; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.junit.Test; + import static org.junit.Assert.*; public class TimestampTest { diff --git a/logstash-core-event-java/src/test/java/com/logstash/ValuefierTest.java b/logstash-core-event-java/src/test/java/org/logstash/ValuefierTest.java similarity index 96% rename from logstash-core-event-java/src/test/java/com/logstash/ValuefierTest.java rename to logstash-core-event-java/src/test/java/org/logstash/ValuefierTest.java index ff00cafb1c6..c80460cd454 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/ValuefierTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/ValuefierTest.java @@ -1,8 +1,8 @@ -package com.logstash; +package org.logstash; -import com.logstash.bivalues.BiValue; -import com.logstash.bivalues.BiValues; -import com.logstash.bivalues.TimestampBiValue; +import org.logstash.bivalues.BiValue; +import org.logstash.bivalues.BiValues; +import org.logstash.bivalues.TimestampBiValue; import org.joda.time.DateTime; import org.jruby.RubyClass; import org.jruby.RubyMatchData; diff --git a/logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValueTest.java b/logstash-core-event-java/src/test/java/org/logstash/bivalues/BiValueTest.java similarity index 99% rename from logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValueTest.java rename to logstash-core-event-java/src/test/java/org/logstash/bivalues/BiValueTest.java index 12ec50a128b..c4a96e2905d 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValueTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/bivalues/BiValueTest.java @@ -1,6 +1,6 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; -import com.logstash.TestBase; +import org.logstash.TestBase; import org.joda.time.DateTime; import org.jruby.RubyBignum; import org.jruby.RubyBoolean; diff --git a/logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValuesTest.java b/logstash-core-event-java/src/test/java/org/logstash/bivalues/BiValuesTest.java similarity index 98% rename from logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValuesTest.java rename to logstash-core-event-java/src/test/java/org/logstash/bivalues/BiValuesTest.java index d2cd3322a23..267da0567a9 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/bivalues/BiValuesTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/bivalues/BiValuesTest.java @@ -1,8 +1,8 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; -import com.logstash.TestBase; -import com.logstash.Timestamp; -import com.logstash.ext.JrubyTimestampExtLibrary.RubyTimestamp; +import org.logstash.TestBase; +import org.logstash.Timestamp; +import org.logstash.ext.JrubyTimestampExtLibrary.RubyTimestamp; import org.jruby.RubyBignum; import org.jruby.RubyBoolean; import org.jruby.RubyFixnum; diff --git a/logstash-core-event-java/src/test/java/com/logstash/bivalues/SomeJavaObject.java b/logstash-core-event-java/src/test/java/org/logstash/bivalues/SomeJavaObject.java similarity index 94% rename from logstash-core-event-java/src/test/java/com/logstash/bivalues/SomeJavaObject.java rename to logstash-core-event-java/src/test/java/org/logstash/bivalues/SomeJavaObject.java index 21a86a111c5..1ebe27c4818 100644 --- a/logstash-core-event-java/src/test/java/com/logstash/bivalues/SomeJavaObject.java +++ b/logstash-core-event-java/src/test/java/org/logstash/bivalues/SomeJavaObject.java @@ -1,4 +1,4 @@ -package com.logstash.bivalues; +package org.logstash.bivalues; public class SomeJavaObject { private T value; From 79e7daf746846b8aa64d9069d3a687e644ef84eb Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Wed, 7 Sep 2016 10:22:15 -0700 Subject: [PATCH 335/632] add logging api endpoint PUT /_nodes/logging -- sets log levels GET /_nodes/logging -- retrieves log levels of existing loggers Fixes #5871 --- .gitignore | 6 ++- .../lib/logstash/api/modules/logging.rb | 52 +++++++++++++++++++ logstash-core/lib/logstash/api/rack_app.rb | 4 +- logstash-core/lib/logstash/logging/logger.rb | 19 +++++-- logstash-core/locales/en.yml | 3 ++ .../spec/api/lib/api/logging_spec.rb | 41 +++++++++++++++ 6 files changed, 119 insertions(+), 6 deletions(-) create mode 100644 logstash-core/lib/logstash/api/modules/logging.rb create mode 100644 logstash-core/spec/api/lib/api/logging_spec.rb diff --git a/.gitignore b/.gitignore index a1952a06fc7..0bf92be54e3 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,8 @@ qa/.vm_ssh_config qa/.vagrant qa/acceptance/.vagrant qa/Gemfile.lock - +*.ipr +*.iws +*.iml +.gradle +.idea diff --git a/logstash-core/lib/logstash/api/modules/logging.rb b/logstash-core/lib/logstash/api/modules/logging.rb new file mode 100644 index 00000000000..d18edd4e8d5 --- /dev/null +++ b/logstash-core/lib/logstash/api/modules/logging.rb @@ -0,0 +1,52 @@ +# encoding: utf-8 +# +java_import org.apache.logging.log4j.core.LoggerContext + +module LogStash + module Api + module Modules + class Logging < ::LogStash::Api::Modules::Base + # retrieve logging specific parameters from the provided settings + # + # return any unused configurations + def handle_logging(settings) + Hash[settings.map do |key, level| + if key.start_with?("logger.") + _, path = key.split("logger.") + LogStash::Logging::Logger::configure_logging(level, path) + nil + else + [key, level] + end + end] + end + + put "/" do + begin + request.body.rewind + req_body = LogStash::Json.load(request.body.read) + remaining = handle_logging(req_body) + unless remaining.empty? + raise ArgumentError, I18n.t("logstash.web_api.logging.unrecognized_option", :option => remaining.keys.first) + end + respond_with({"acknowledged" => true}) + rescue ArgumentError => e + status 400 + respond_with({"error" => e.message}) + end + end + + get "/" do + context = LogStash::Logging::Logger::get_logging_context + if context.nil? + status 500 + respond_with({"error" => "Logstash loggers were not initialized properly"}) + else + loggers = context.getLoggers.map { |lgr| [lgr.getName, lgr.getLevel.name] }.sort + respond_with({"loggers" => Hash[loggers]}) + end + end + end + end + end +end diff --git a/logstash-core/lib/logstash/api/rack_app.rb b/logstash-core/lib/logstash/api/rack_app.rb index ff9a0c81c18..19e5bc2b932 100644 --- a/logstash-core/lib/logstash/api/rack_app.rb +++ b/logstash-core/lib/logstash/api/rack_app.rb @@ -5,6 +5,7 @@ require "logstash/api/modules/node_stats" require "logstash/api/modules/plugins" require "logstash/api/modules/root" +require "logstash/api/modules/logging" require "logstash/api/modules/stats" module LogStash @@ -103,7 +104,8 @@ def self.rack_namespaces(agent) "/_node" => LogStash::Api::Modules::Node, "/_stats" => LogStash::Api::Modules::Stats, "/_node/stats" => LogStash::Api::Modules::NodeStats, - "/_node/plugins" => LogStash::Api::Modules::Plugins + "/_node/plugins" => LogStash::Api::Modules::Plugins, + "/_node/logging" => LogStash::Api::Modules::Logging } end end diff --git a/logstash-core/lib/logstash/logging/logger.rb b/logstash-core/lib/logstash/logging/logger.rb index d43d06a18fb..8acac62ff1a 100644 --- a/logstash-core/lib/logstash/logging/logger.rb +++ b/logstash-core/lib/logstash/logging/logger.rb @@ -6,6 +6,8 @@ class Logger java_import org.apache.logging.log4j.Level java_import org.apache.logging.log4j.LogManager java_import org.apache.logging.log4j.core.config.Configurator + @@config_mutex = Mutex.new + @@logging_context = nil def initialize(name) @logger = LogManager.getLogger(name) @@ -59,13 +61,22 @@ def trace(message, data = {}) @logger.trace(message, data) end - # Point logging at a specific path. def self.configure_logging(level, path = LogManager::ROOT_LOGGER_NAME) - Configurator.setLevel(path, Level.toLevel(level)) - end # def configure_logging + @@config_mutex.synchronize { Configurator.setLevel(path, Level.valueOf(level)) } + rescue Exception => e + raise ArgumentError, "invalid level[#{level}] for logger[#{path}]" + end def self.initialize(config_location) - Configurator.initialize(nil, config_location) + @@config_mutex.synchronize do + if @@logging_context.nil? + @@logging_context = Configurator.initialize(nil, config_location) + end + end + end + + def self.get_logging_context + return @@logging_context end end end diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 3e8343c3f2a..8a2b9b47a15 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -83,6 +83,9 @@ en: Hot threads at %{time}, busiestThreads=%{top_count}: thread_title: |- %{percent_of_cpu_time} % of cpu usage, state: %{thread_state}, thread name: '%{thread_name}' + logging: + unrecognized_option: |- + unrecognized option [%{option}] runner: short-help: |- usage: diff --git a/logstash-core/spec/api/lib/api/logging_spec.rb b/logstash-core/spec/api/lib/api/logging_spec.rb new file mode 100644 index 00000000000..214a2ad69f2 --- /dev/null +++ b/logstash-core/spec/api/lib/api/logging_spec.rb @@ -0,0 +1,41 @@ +# encoding: utf-8 +require_relative "../../spec_helper" +require "sinatra" +require "logstash/api/modules/logging" +require "logstash/json" + +describe LogStash::Api::Modules::Logging do + include_context "api setup" + + describe "#logging" do + + context "when setting a logger's log level" do + before(:all) do + @runner = LogStashRunner.new + @runner.start + end + + after(:all) do + @runner.stop + end + + it "should return a positive acknowledgement on success" do + put '/', '{"logger.logstash": "ERROR"}' + payload = LogStash::Json.load(last_response.body) + expect(payload['acknowledged']).to eq(true) + end + + it "should throw error when level is invalid" do + put '/', '{"logger.logstash": "invalid"}' + payload = LogStash::Json.load(last_response.body) + expect(payload['error']).to eq("invalid level[invalid] for logger[logstash]") + end + + it "should throw error when key logger is invalid" do + put '/', '{"invalid" : "ERROR"}' + payload = LogStash::Json.load(last_response.body) + expect(payload['error']).to eq("unrecognized option [invalid]") + end + end + end +end From 311d7f4614cf7e15349c0933cb676e7c48feb241 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 13 Sep 2016 10:08:18 +0100 Subject: [PATCH 336/632] bump dependency of devutils to ~> 1.1 Fixes #5891 --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index d2be4f22d8a..2f1b53a2530 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ gem "simplecov", :group => :development gem "coveralls", :group => :development gem "tins", "1.6", :group => :development gem "rspec", "~> 3.1.0", :group => :development -gem "logstash-devutils", :group => :development +gem "logstash-devutils", "~> 1.1", :group => :development gem "benchmark-ips", :group => :development gem "octokit", "3.8.0", :group => :build gem "stud", "~> 0.0.22", :group => :build From 70646ad5b0ea621f2e46b9720f328a40754ccbb3 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 12 Sep 2016 13:45:50 -0400 Subject: [PATCH 337/632] Return 404 on non existant resources This PR introduce a changes to make sure the API endpoint correctly return 404 in every case. To make it work it uses an exception that get pickup up in the base class by the `error` handler. Using the exception template allow the code to be dry and make sure all other errors can be returned with the same format. Example or a 404. ```json { "error": { "message": "Not Found"}, "path": "/this-should-not-exist" "status": 404 } ``` The code will also set the content-type and the right error code in the header. Fixes: #5874, #5622 Fixes #5897 --- logstash-core/lib/logstash/api/app_helpers.rb | 50 ++++++++++++++++--- logstash-core/lib/logstash/api/errors.rb | 28 +++++++++++ .../lib/logstash/api/modules/base.rb | 16 +++--- .../lib/logstash/api/modules/node.rb | 22 ++++---- .../lib/logstash/api/modules/root.rb | 2 - .../lib/logstash/api/modules/stats.rb | 2 - .../spec/api/lib/api/node_plugins_spec.rb | 7 +-- logstash-core/spec/api/lib/api/node_spec.rb | 2 + .../spec/api/lib/api/node_stats_spec.rb | 2 + .../spec/api/lib/api/plugins_spec.rb | 4 +- logstash-core/spec/api/lib/api/root_spec.rb | 3 ++ logstash-core/spec/api/lib/errors_spec.rb | 27 ++++++++++ logstash-core/spec/support/shared_examples.rb | 10 ++++ 13 files changed, 144 insertions(+), 31 deletions(-) create mode 100644 logstash-core/lib/logstash/api/errors.rb create mode 100644 logstash-core/spec/api/lib/errors_spec.rb diff --git a/logstash-core/lib/logstash/api/app_helpers.rb b/logstash-core/lib/logstash/api/app_helpers.rb index 4eeb7b788c6..98e6c377576 100644 --- a/logstash-core/lib/logstash/api/app_helpers.rb +++ b/logstash-core/lib/logstash/api/app_helpers.rb @@ -1,27 +1,43 @@ # encoding: utf-8 require "logstash/json" +require "logstash/api/errors" module LogStash::Api::AppHelpers - + # This method handle both of the normal flow *happy path* + # and the display or errors, if more custom logic is added here + # it will make sense to separate them. + # + # See `#error` method in the `LogStash::Api::Module::Base` def respond_with(data, options={}) as = options.fetch(:as, :json) filter = options.fetch(:filter, "") - pretty = params.has_key?("pretty") + + status data.respond_to?(:status_code) ? data.status_code : 200 if as == :json - selected_fields = extract_fields(filter.to_s.strip) - data.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty? - unless options.include?(:exclude_default_metadata) - data = default_metadata.merge(data) + if api_error?(data) + data = generate_error_hash(data) + else + selected_fields = extract_fields(filter.to_s.strip) + data.select! { |k,v| selected_fields.include?(k) } unless selected_fields.empty? + unless options.include?(:exclude_default_metadata) + data = data.to_hash + if data.values.size == 0 && selected_fields.size > 0 + raise LogStash::Api::NotFoundError + end + data = default_metadata.merge(data) + end end + content_type "application/json" - LogStash::Json.dump(data, {:pretty => pretty}) + LogStash::Json.dump(data, {:pretty => pretty?}) else content_type "text/plain" data.to_s end end + protected def extract_fields(filter_string) (filter_string.empty? ? [] : filter_string.split(",").map { |s| s.strip.to_sym }) end @@ -35,4 +51,24 @@ def as_boolean(string) def default_metadata @factory.build(:default_metadata).all end + + def api_error?(error) + error.is_a?(LogStash::Api::ApiError) + end + + def pretty? + params.has_key?("pretty") + end + + def generate_error_hash(error) + { + :path => request.path, + :status => error.status_code, + :error => error.to_hash + } + end + + def human? + params.has_key?("human") && (params["human"].nil? || as_boolean(params["human"]) == true) + end end diff --git a/logstash-core/lib/logstash/api/errors.rb b/logstash-core/lib/logstash/api/errors.rb new file mode 100644 index 00000000000..e080305d9d1 --- /dev/null +++ b/logstash-core/lib/logstash/api/errors.rb @@ -0,0 +1,28 @@ +# encoding: utf-8 +module LogStash + module Api + class ApiError < StandardError; + def initialize(message = nil) + super(message || "Api Error") + end + + def status_code + 500 + end + + def to_hash + { :message => to_s } + end + end + + class NotFoundError < ApiError + def initialize + super("Not Found") + end + + def status_code + 404 + end + end + end +end diff --git a/logstash-core/lib/logstash/api/modules/base.rb b/logstash-core/lib/logstash/api/modules/base.rb index 2c1a56cb8b0..9e84dc91811 100644 --- a/logstash-core/lib/logstash/api/modules/base.rb +++ b/logstash-core/lib/logstash/api/modules/base.rb @@ -1,11 +1,13 @@ # encoding: utf-8 require "logstash/api/app_helpers" require "logstash/api/command_factory" +require "logstash/api/errors" module LogStash module Api module Modules class Base < ::Sinatra::Base + helpers AppHelpers # These options never change @@ -29,15 +31,15 @@ def initialize(app=nil, agent) end not_found do - status 404 - as = params.has_key?("human") ? :string : :json - text = as == :string ? "" : {} - respond_with(text, :as => as) + # We cannot raise here because it wont be catched by the `error` handler. + # So we manually create a new instance of NotFound and just pass it down. + respond_with(NotFoundError.new) end - protected - def human? - params.has_key?("human") && (params["human"].nil? || as_boolean(params["human"]) == true) + # This allow to have custom exception but keep a consistent + # format to report them. + error ApiError do |error| + respond_with(error) end end end diff --git a/logstash-core/lib/logstash/api/modules/node.rb b/logstash-core/lib/logstash/api/modules/node.rb index 85263a63805..32bf09149fa 100644 --- a/logstash-core/lib/logstash/api/modules/node.rb +++ b/logstash-core/lib/logstash/api/modules/node.rb @@ -1,5 +1,6 @@ # encoding: utf-8 require "logstash/api/modules/base" +require "logstash/api/errors" module LogStash module Api @@ -12,20 +13,23 @@ def node get "/hot_threads" do ignore_idle_threads = params["ignore_idle_threads"] || true - options = { - :ignore_idle_threads => as_boolean(ignore_idle_threads), - :human => human? - } + options = { :ignore_idle_threads => as_boolean(ignore_idle_threads) } options[:threads] = params["threads"].to_i if params.has_key?("threads") - as = options[:human] ? :string : :json + as = human? ? :string : :json respond_with(node.hot_threads(options), {:as => as}) end - get "/?:filter?" do - selected_fields = extract_fields(params["filter"].to_s.strip) - respond_with node.all(selected_fields) - end + get "/?:filter?" do + selected_fields = extract_fields(params["filter"].to_s.strip) + values = node.all(selected_fields) + + if values.size == 0 + raise NotFoundError + else + respond_with(values) + end + end end end end diff --git a/logstash-core/lib/logstash/api/modules/root.rb b/logstash-core/lib/logstash/api/modules/root.rb index 66dc4d8730b..10a414187ac 100644 --- a/logstash-core/lib/logstash/api/modules/root.rb +++ b/logstash-core/lib/logstash/api/modules/root.rb @@ -3,12 +3,10 @@ module LogStash module Api module Modules class Root < ::LogStash::Api::Modules::Base - get "/" do command = factory.build(:system_basic_info) respond_with command.run end - end end end diff --git a/logstash-core/lib/logstash/api/modules/stats.rb b/logstash-core/lib/logstash/api/modules/stats.rb index 377a3156d97..eee3d0b8b65 100644 --- a/logstash-core/lib/logstash/api/modules/stats.rb +++ b/logstash-core/lib/logstash/api/modules/stats.rb @@ -3,7 +3,6 @@ module LogStash module Api module Modules class Stats < ::LogStash::Api::Modules::Base - def stats_command factory.build(:stats) end @@ -36,7 +35,6 @@ def stats_command } respond_with(payload, {:filter => params["filter"]}) end - end end end diff --git a/logstash-core/spec/api/lib/api/node_plugins_spec.rb b/logstash-core/spec/api/lib/api/node_plugins_spec.rb index d78340effd3..5389e10c418 100644 --- a/logstash-core/spec/api/lib/api/node_plugins_spec.rb +++ b/logstash-core/spec/api/lib/api/node_plugins_spec.rb @@ -1,4 +1,5 @@ # encoding: utf-8 +require_relative "../../../support/shared_examples" require_relative "../../spec_helper" require "sinatra" require "logstash/api/modules/plugins" @@ -6,10 +7,11 @@ describe LogStash::Api::Modules::Plugins do include_context "api setup" + include_examples "not found" extend ResourceDSLMethods - before(:all) do + before(:each) do do_request { get "/" } end @@ -20,13 +22,12 @@ expect(last_response).to be_ok end - it "should return a list of plugins" do + it "should return a list of plugins" do expect(payload["plugins"]).to be_a(Array) end it "should return the total number of plugins" do expect(payload["total"]).to be_a(Numeric) end - end end diff --git a/logstash-core/spec/api/lib/api/node_spec.rb b/logstash-core/spec/api/lib/api/node_spec.rb index 17cf5620958..a8f8b009f5b 100644 --- a/logstash-core/spec/api/lib/api/node_spec.rb +++ b/logstash-core/spec/api/lib/api/node_spec.rb @@ -1,11 +1,13 @@ # encoding: utf-8 require_relative "../../spec_helper" +require_relative "../../../support/shared_examples" require "sinatra" require "logstash/api/modules/node" require "logstash/json" describe LogStash::Api::Modules::Node do include_context "api setup" + include_examples "not found" describe "#hot threads" do diff --git a/logstash-core/spec/api/lib/api/node_stats_spec.rb b/logstash-core/spec/api/lib/api/node_stats_spec.rb index 074f83c3158..448543d250b 100644 --- a/logstash-core/spec/api/lib/api/node_stats_spec.rb +++ b/logstash-core/spec/api/lib/api/node_stats_spec.rb @@ -1,11 +1,13 @@ # encoding: utf-8 require_relative "../../spec_helper" +require_relative "../../../support/shared_examples" require "sinatra" require "logstash/api/modules/node_stats" require "logstash/json" describe LogStash::Api::Modules::NodeStats do include_context "api setup" + include_examples "not found" extend ResourceDSLMethods diff --git a/logstash-core/spec/api/lib/api/plugins_spec.rb b/logstash-core/spec/api/lib/api/plugins_spec.rb index aecb6f46542..ee554dae22f 100644 --- a/logstash-core/spec/api/lib/api/plugins_spec.rb +++ b/logstash-core/spec/api/lib/api/plugins_spec.rb @@ -1,13 +1,15 @@ # encoding: utf-8 require_relative "../../spec_helper" +require_relative "../../../support/shared_examples" require "sinatra" require "logstash/api/modules/plugins" require "logstash/json" describe LogStash::Api::Modules::Plugins do include_context "api setup" + include_examples "not found" - before(:all) do + before(:each) do get "/" end diff --git a/logstash-core/spec/api/lib/api/root_spec.rb b/logstash-core/spec/api/lib/api/root_spec.rb index 8347580a639..ad9dc08381a 100644 --- a/logstash-core/spec/api/lib/api/root_spec.rb +++ b/logstash-core/spec/api/lib/api/root_spec.rb @@ -1,5 +1,6 @@ # encoding: utf-8 require_relative "../../spec_helper" +require_relative "../../../support/shared_examples" require "sinatra" require "logstash/api/modules/root" require "logstash/json" @@ -11,5 +12,7 @@ do_request { get "/" } expect(last_response).to be_ok end + + include_examples "not found" end diff --git a/logstash-core/spec/api/lib/errors_spec.rb b/logstash-core/spec/api/lib/errors_spec.rb new file mode 100644 index 00000000000..430671402d0 --- /dev/null +++ b/logstash-core/spec/api/lib/errors_spec.rb @@ -0,0 +1,27 @@ +# encoding: utf-8 +require_relative "../spec_helper" +require "logstash/api/errors" + +describe LogStash::Api::ApiError do + subject { described_class.new } + + it "#status_code returns 500" do + expect(subject.status_code).to eq(500) + end + + it "#to_hash return the message of the exception" do + expect(subject.to_hash).to include(:message => "Api Error") + end +end + +describe LogStash::Api::NotFoundError do + subject { described_class.new } + + it "#status_code returns 404" do + expect(subject.status_code).to eq(404) + end + + it "#to_hash return the message of the exception" do + expect(subject.to_hash).to include(:message => "Not Found") + end +end diff --git a/logstash-core/spec/support/shared_examples.rb b/logstash-core/spec/support/shared_examples.rb index b65f2acfaaf..0218bebb53c 100644 --- a/logstash-core/spec/support/shared_examples.rb +++ b/logstash-core/spec/support/shared_examples.rb @@ -95,4 +95,14 @@ end end +shared_examples "not found" do + it "should return a 404 to unknown request" do + do_request { get "/i_want_to_believe-#{Time.now.to_i}" } + expect(last_response.content_type).to eq("application/json") + expect(last_response).not_to be_ok + expect(last_response.status).to eq(404) + expect(LogStash::Json.load(last_response.body)).to include("status" => 404) + expect(LogStash::Json.load(last_response.body)["path"]).not_to be_nil + end +end From 2cf53cedf58ae6a3aa234a09c55d04f9557b83e2 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Tue, 13 Sep 2016 10:26:53 -0700 Subject: [PATCH 338/632] Set default log.level to INFO sets default to INFO and updates some verbose logging to more appropriate, less verbose log levels where it makes sense. Closes #5735. Closes #5893. Fixes #5898 --- config/logstash.yml | 6 +++--- docs/static/command-line-flags.asciidoc | 4 ++-- logstash-core/lib/logstash/agent.rb | 4 ++-- logstash-core/lib/logstash/api/rack_app.rb | 4 ++-- logstash-core/lib/logstash/environment.rb | 2 +- logstash-core/lib/logstash/pipeline.rb | 8 ++++---- logstash-core/lib/logstash/runner.rb | 2 +- logstash-core/lib/logstash/webserver.rb | 2 +- logstash-core/spec/api/lib/rack_app_spec.rb | 8 ++++---- logstash-core/spec/logstash/runner_spec.rb | 3 ++- 10 files changed, 22 insertions(+), 21 deletions(-) diff --git a/config/logstash.yml b/config/logstash.yml index 590a333d30a..ae1b7628c5a 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -101,12 +101,12 @@ # Options for log.level: # * fatal # * error -# * warn (default) -# * info +# * warn +# * info (default) # * debug # * trace # -# log.level: warn +# log.level: info # path.logs: LOGSTASH_HOME/logs # # ------------ Other Settings -------------- diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index c84067623f3..19d77f0a398 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -72,8 +72,8 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name Set the log level for Logstash. Possible values are: * `fatal`: log very severe error messages that will usually be followed by the application aborting * `error`: log errors -* `warn`: log warnings (this is the default) -* `info`: log verbose info (for users) +* `warn`: log warnings +* `info`: log verbose info (this is the default) * `debug`: log debugging info (for developers) * `trace`: log finer-grained messages beyond debugging info diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 15588a12d16..a69312f99bd 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -54,7 +54,7 @@ def initialize(settings = LogStash::SETTINGS) def execute @thread = Thread.current # this var is implicilty used by Stud.stop? - @logger.info("starting agent") + @logger.debug("starting agent") start_pipelines start_webserver @@ -243,7 +243,7 @@ def start_pipeline(id) pipeline = @pipelines[id] return unless pipeline.is_a?(LogStash::Pipeline) return if pipeline.ready? - @logger.info("starting pipeline", :id => id) + @logger.debug("starting pipeline", :id => id) Thread.new do LogStash::Util.set_thread_name("pipeline.#{id}") begin diff --git a/logstash-core/lib/logstash/api/rack_app.rb b/logstash-core/lib/logstash/api/rack_app.rb index 19e5bc2b932..79965e431ed 100644 --- a/logstash-core/lib/logstash/api/rack_app.rb +++ b/logstash-core/lib/logstash/api/rack_app.rb @@ -32,9 +32,9 @@ def call(env) status, headers, body = res if fatal_error?(status) - @logger.warn? && @logger.warn(LOG_MESSAGE, RackApp.log_metadata(status, env)) + @logger.error? && @logger.error(LOG_MESSAGE, RackApp.log_metadata(status, env)) else - @logger.info? && @logger.info(LOG_MESSAGE, RackApp.log_metadata(status, env)) + @logger.debug? && @logger.debug(LOG_MESSAGE, RackApp.log_metadata(status, env)) end res diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 7617a14f5aa..010989753df 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -33,7 +33,7 @@ module Environment Setting.new("path.plugins", Array, []), Setting::String.new("interactive", nil, false), Setting::Boolean.new("config.debug", false), - Setting::String.new("log.level", "warn", true, ["fatal", "error", "warn", "debug", "info", "trace"]), + Setting::String.new("log.level", "info", true, ["fatal", "error", "warn", "debug", "info", "trace"]), Setting::Boolean.new("version", false), Setting::Boolean.new("help", false), Setting::String.new("log.format", "plain", true, ["json", "plain"]), diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index bb10202a226..1c256885667 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -162,12 +162,12 @@ def run wait_inputs transition_to_stopped - @logger.info("Input plugins stopped! Will shutdown filter/output workers.") + @logger.debug("Input plugins stopped! Will shutdown filter/output workers.") shutdown_flusher shutdown_workers - @logger.info("Pipeline #{@pipeline_id} has been shutdown") + @logger.debug("Pipeline #{@pipeline_id} has been shutdown") # exit code return 0 @@ -375,9 +375,9 @@ def shutdown(&before_stop) before_stop.call if block_given? - @logger.info "Closing inputs" + @logger.debug "Closing inputs" @inputs.each(&:do_stop) - @logger.info "Closed inputs" + @logger.debug "Closed inputs" end # def shutdown # After `shutdown` is called from an external thread this is called from the main thread to diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index f752a780a67..66f6f15cfda 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -219,7 +219,7 @@ def execute return start_shell(setting("interactive"), binding) if setting("interactive") - @settings.format_settings.each {|line| logger.info(line) } + @settings.format_settings.each {|line| logger.debug(line) } if setting("config.string").nil? && setting("path.config").nil? fail(I18n.t("logstash.runner.missing-configuration")) diff --git a/logstash-core/lib/logstash/webserver.rb b/logstash-core/lib/logstash/webserver.rb index 510c1b9096b..a57233f19bd 100644 --- a/logstash-core/lib/logstash/webserver.rb +++ b/logstash-core/lib/logstash/webserver.rb @@ -104,7 +104,7 @@ def start_webserver(port) @server = ::Puma::Server.new(app, events) @server.add_tcp_listener(http_host, port) - logger.info("Succesfully started Logstash API", :port => @port) + logger.info("Successfully started Logstash API endpoint", :port => @port) @server.run.join end diff --git a/logstash-core/spec/api/lib/rack_app_spec.rb b/logstash-core/spec/api/lib/rack_app_spec.rb index cafdd651919..9c6af8679e9 100644 --- a/logstash-core/spec/api/lib/rack_app_spec.rb +++ b/logstash-core/spec/api/lib/rack_app_spec.rb @@ -76,14 +76,14 @@ def call(env) end it "should log good requests as info" do - expect(logger).to receive(:info?).and_return(true) - expect(logger).to receive(:info).with(LogStash::Api::RackApp::ApiLogger::LOG_MESSAGE, anything).once + expect(logger).to receive(:debug?).and_return(true) + expect(logger).to receive(:debug).with(LogStash::Api::RackApp::ApiLogger::LOG_MESSAGE, anything).once get "/good-page" end it "should log 5xx requests as warnings" do - expect(logger).to receive(:warn?).and_return(true) - expect(logger).to receive(:warn).with(LogStash::Api::RackApp::ApiLogger::LOG_MESSAGE, anything).once + expect(logger).to receive(:error?).and_return(true) + expect(logger).to receive(:error).with(LogStash::Api::RackApp::ApiLogger::LOG_MESSAGE, anything).once get "/service-unavailable" end end diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index 96f3c4afb6f..00ff679e6d8 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -21,6 +21,7 @@ def run(args); end allow(LogStash::Runner).to receive(:logger).and_return(logger) allow(logger).to receive(:debug?).and_return(true) allow(logger).to receive(:subscribe).with(any_args) + allow(logger).to receive(:debug) {} allow(logger).to receive(:log) {} allow(logger).to receive(:info) {} allow(logger).to receive(:fatal) {} @@ -279,7 +280,7 @@ def run(args); end it "should set log level to warn" do args = ["--version"] subject.run("bin/logstash", args) - expect(logger.level).to eq(:warn) + expect(logger.level).to eq(:info) end end context "when setting to debug" do From 63233b1cf12baf6e5b0dd473f70d3ad80214cdac Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Tue, 13 Sep 2016 12:51:16 -0700 Subject: [PATCH 339/632] respect log.format and path.logs from cli also change how `log.level` is configured at startup time to be set as a property directly in the log4j2.properties file Fixes #5900 --- config/log4j2.properties | 35 +++++++++++++++++++--------- logstash-core/lib/logstash/runner.rb | 19 +++++++-------- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/config/log4j2.properties b/config/log4j2.properties index 6eb0b5bcf9a..5d2ec61ebef 100644 --- a/config/log4j2.properties +++ b/config/log4j2.properties @@ -2,26 +2,39 @@ status = error name = LogstashPropertiesConfig appender.console.type = Console -appender.console.name = console +appender.console.name = plain_console appender.console.layout.type = PatternLayout appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n -# JSON Logging -# appender.console.layout.type = JSONLayout -# appender.console.layout.compact = true -# appender.console.layout.eventEol = true + +appender.json_console.type = Console +appender.json_console.name = json_console +appender.json_console.layout.type = JSONLayout +appender.json_console.layout.compact = true +appender.json_console.layout.eventEol = true appender.rolling.type = RollingFile -appender.rolling.name = rolling +appender.rolling.name = plain_rolling appender.rolling.fileName = ${sys:ls.logs}/logstash.log -appender.rolling.layout.type = PatternLayout -appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n appender.rolling.filePattern = ${sys:ls.logs}/logstash-%d{yyyy-MM-dd}.log appender.rolling.policies.type = Policies appender.rolling.policies.time.type = TimeBasedTriggeringPolicy appender.rolling.policies.time.interval = 1 appender.rolling.policies.time.modulate = true +appender.rolling.layout.type = PatternLayout +appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n -rootLogger.level = error -rootLogger.appenderRef.console.ref = console -rootLogger.appenderRef.rolling.ref = rolling +appender.json_rolling.type = RollingFile +appender.json_rolling.name = json_rolling +appender.json_rolling.fileName = ${sys:ls.logs}/logstash.log +appender.json_rolling.filePattern = ${sys:ls.logs}/logstash-%d{yyyy-MM-dd}.log +appender.json_rolling.policies.type = Policies +appender.json_rolling.policies.time.type = TimeBasedTriggeringPolicy +appender.json_rolling.policies.time.interval = 1 +appender.json_rolling.policies.time.modulate = true +appender.json_rolling.layout.type = JSONLayout +appender.json_rolling.layout.compact = true +appender.json_rolling.layout.eventEol = true +rootLogger.level = ${sys:ls.log.level} +rootLogger.appenderRef.console.ref = ${sys:ls.log.format}_console +rootLogger.appenderRef.rolling.ref = ${sys:ls.log.format}_rolling diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 66f6f15cfda..ef91f6c6e14 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -171,15 +171,6 @@ def run(args) end end - # Configure Logstash logging facility, this need to be done before everything else to - # make sure the logger has the correct settings and the log level is correctly defined. - # TODO(talevy): cleanly support `path.logs` setting in log4j - java.lang.System.setProperty("ls.logs", setting("path.logs")) - unless java.lang.System.getProperty("log4j.configurationFile") - log4j_config_location = ::File.join(setting("path.settings"), "log4j2.properties") - LogStash::Logging::Logger::initialize(log4j_config_location) - end - super(*[args]) end @@ -188,7 +179,15 @@ def execute require "logstash/util/java_version" require "stud/task" - LogStash::Logging::Logger::configure_logging(setting("log.level")) + # Configure Logstash logging facility, this need to be done before everything else to + # make sure the logger has the correct settings and the log level is correctly defined. + java.lang.System.setProperty("ls.logs", setting("path.logs")) + java.lang.System.setProperty("ls.log.format", setting("log.format")) + java.lang.System.setProperty("ls.log.level", setting("log.level")) + unless java.lang.System.getProperty("log4j.configurationFile") + log4j_config_location = ::File.join(setting("path.settings"), "log4j2.properties") + LogStash::Logging::Logger::initialize(log4j_config_location) + end if setting("config.debug") && logger.debug? logger.warn("--config.debug was specified, but log.level was not set to \'debug\'! No config info will be logged.") From b072d93c85cb783a5840fcdd90824524271a0775 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Tue, 13 Sep 2016 13:52:01 -0700 Subject: [PATCH 340/632] fix tests and bring back configure logging in runner Fixes #5901 --- logstash-core/lib/logstash/runner.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index ef91f6c6e14..23232224717 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -188,6 +188,8 @@ def execute log4j_config_location = ::File.join(setting("path.settings"), "log4j2.properties") LogStash::Logging::Logger::initialize(log4j_config_location) end + # override log level that may have been introduced from a custom log4j config file + LogStash::Logging::Logger::configure_logging(setting("log.level")) if setting("config.debug") && logger.debug? logger.warn("--config.debug was specified, but log.level was not set to \'debug\'! No config info will be logged.") From 16180aec8dfb10df481c5fb5e0576a469c29b507 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Tue, 13 Sep 2016 15:35:17 -0700 Subject: [PATCH 341/632] remove commented value for path.logs in default settings file the build scripts rely on the value not being present to update with appropriate value for the package Fixes #5904 --- config/logstash.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/logstash.yml b/config/logstash.yml index ae1b7628c5a..bce9f417e36 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -107,7 +107,7 @@ # * trace # # log.level: info -# path.logs: LOGSTASH_HOME/logs +# path.logs: # # ------------ Other Settings -------------- # From c01a3df23502b5065b40947f3ea0eb22b092393a Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 13 Sep 2016 13:59:45 -0700 Subject: [PATCH 342/632] add package specific log4j2 logging props Fixes #5894 Fixes #5903 --- pkg/log4j2.properties | 26 ++++++++++++++++++++++++++ rakelib/artifacts.rake | 4 ++-- 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 pkg/log4j2.properties diff --git a/pkg/log4j2.properties b/pkg/log4j2.properties new file mode 100644 index 00000000000..fa918832efa --- /dev/null +++ b/pkg/log4j2.properties @@ -0,0 +1,26 @@ +status = error +name = LogstashPropertiesConfig + +appender.console.type = Console +appender.console.name = console +appender.console.layout.type = PatternLayout +appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n +# JSON Logging +# appender.console.layout.type = JSONLayout +# appender.console.layout.compact = true +# appender.console.layout.eventEol = true + +appender.rolling.type = RollingFile +appender.rolling.name = rolling +appender.rolling.fileName = ${sys:ls.logs}/logstash.log +appender.rolling.layout.type = PatternLayout +appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n +appender.rolling.filePattern = ${sys:ls.logs}/logstash-%d{yyyy-MM-dd}.log +appender.rolling.policies.type = Policies +appender.rolling.policies.time.type = TimeBasedTriggeringPolicy +appender.rolling.policies.time.interval = 1 +appender.rolling.policies.time.modulate = true + +rootLogger.level = error +rootLogger.appenderRef.console.ref = console +rootLogger.appenderRef.rolling.ref = rolling diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index 3a071a0da45..24ed1463b7e 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -309,8 +309,8 @@ namespace "artifact" do basedir = File.join(File.dirname(__FILE__), "..") - File.join(basedir, "pkg", "logrotate.conf").tap do |path| - dir.input("#{path}=/etc/logrotate.d/logstash") + File.join(basedir, "pkg", "log4j2.conf").tap do |path| + dir.input("#{path}=/etc/logstash") end # Create an empty /var/log/logstash/ directory in the package From 0826c1eb3062e18a43e780c49d4be1316f2b3d52 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 13 Sep 2016 14:02:44 -0700 Subject: [PATCH 343/632] Remove console logging for services Fixes #5903 --- pkg/log4j2.properties | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/pkg/log4j2.properties b/pkg/log4j2.properties index fa918832efa..53f9a8bbe07 100644 --- a/pkg/log4j2.properties +++ b/pkg/log4j2.properties @@ -1,15 +1,6 @@ status = error name = LogstashPropertiesConfig -appender.console.type = Console -appender.console.name = console -appender.console.layout.type = PatternLayout -appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n -# JSON Logging -# appender.console.layout.type = JSONLayout -# appender.console.layout.compact = true -# appender.console.layout.eventEol = true - appender.rolling.type = RollingFile appender.rolling.name = rolling appender.rolling.fileName = ${sys:ls.logs}/logstash.log @@ -22,5 +13,5 @@ appender.rolling.policies.time.interval = 1 appender.rolling.policies.time.modulate = true rootLogger.level = error -rootLogger.appenderRef.console.ref = console rootLogger.appenderRef.rolling.ref = rolling + From 3f2123ae9f2405d673aecf2bec109768763de646 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 13 Sep 2016 14:03:25 -0700 Subject: [PATCH 344/632] use the right props file Fixes #5903 --- rakelib/artifacts.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index 24ed1463b7e..4062972d0ca 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -309,7 +309,7 @@ namespace "artifact" do basedir = File.join(File.dirname(__FILE__), "..") - File.join(basedir, "pkg", "log4j2.conf").tap do |path| + File.join(basedir, "pkg", "log4j2.properties").tap do |path| dir.input("#{path}=/etc/logstash") end From b81ea2ec24936d6c744445f44653d06abd60d677 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 13 Sep 2016 14:09:37 -0700 Subject: [PATCH 345/632] Use latest props from master Fixes #5903 --- pkg/log4j2.properties | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/pkg/log4j2.properties b/pkg/log4j2.properties index 53f9a8bbe07..f4cd1e49aa9 100644 --- a/pkg/log4j2.properties +++ b/pkg/log4j2.properties @@ -2,16 +2,27 @@ status = error name = LogstashPropertiesConfig appender.rolling.type = RollingFile -appender.rolling.name = rolling +appender.rolling.name = plain_rolling appender.rolling.fileName = ${sys:ls.logs}/logstash.log -appender.rolling.layout.type = PatternLayout -appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n appender.rolling.filePattern = ${sys:ls.logs}/logstash-%d{yyyy-MM-dd}.log appender.rolling.policies.type = Policies appender.rolling.policies.time.type = TimeBasedTriggeringPolicy appender.rolling.policies.time.interval = 1 appender.rolling.policies.time.modulate = true +appender.rolling.layout.type = PatternLayout +appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n -rootLogger.level = error -rootLogger.appenderRef.rolling.ref = rolling +appender.json_rolling.type = RollingFile +appender.json_rolling.name = json_rolling +appender.json_rolling.fileName = ${sys:ls.logs}/logstash.log +appender.json_rolling.filePattern = ${sys:ls.logs}/logstash-%d{yyyy-MM-dd}.log +appender.json_rolling.policies.type = Policies +appender.json_rolling.policies.time.type = TimeBasedTriggeringPolicy +appender.json_rolling.policies.time.interval = 1 +appender.json_rolling.policies.time.modulate = true +appender.json_rolling.layout.type = JSONLayout +appender.json_rolling.layout.compact = true +appender.json_rolling.layout.eventEol = true +rootLogger.level = ${sys:ls.log.level} +rootLogger.appenderRef.rolling.ref = ${sys:ls.log.format}_rolling From e7a393e6f8c7e6a0ab6882f612905fee74a057c2 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 13 Sep 2016 15:13:11 -0700 Subject: [PATCH 346/632] Remove logrotate completely Fixes #5903 --- rakelib/artifacts.rake | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index 4062972d0ca..c00202a4d1e 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -309,10 +309,6 @@ namespace "artifact" do basedir = File.join(File.dirname(__FILE__), "..") - File.join(basedir, "pkg", "log4j2.properties").tap do |path| - dir.input("#{path}=/etc/logstash") - end - # Create an empty /var/log/logstash/ directory in the package # This is a bit obtuse, I suppose, but it is necessary until # we find a better way to do this with fpm. @@ -323,13 +319,14 @@ namespace "artifact" do dir.input("#{empty}/=/etc/logstash/conf.d") end + File.join(basedir, "pkg", "log4j2.properties").tap do |path| + dir.input("#{path}=/etc/logstash") + end + package_filename = "logstash-#{LOGSTASH_VERSION}#{PACKAGE_SUFFIX}.TYPE" case platform when "redhat", "centos" - File.join(basedir, "pkg", "logrotate.conf").tap do |path| - dir.input("#{path}=/etc/logrotate.d/logstash") - end File.join(basedir, "pkg", "startup.options").tap do |path| dir.input("#{path}=/etc/logstash") end @@ -346,7 +343,6 @@ namespace "artifact" do out.attributes[:rpm_user] = "root" out.attributes[:rpm_group] = "root" out.attributes[:rpm_os] = "linux" - out.config_files << "etc/logrotate.d/logstash" out.config_files << "/etc/logstash/startup.options" out.config_files << "/etc/logstash/jvm.options" out.config_files << "/etc/logstash/logstash.yml" @@ -366,7 +362,6 @@ namespace "artifact" do out.attributes[:deb_user] = "root" out.attributes[:deb_group] = "root" out.attributes[:deb_suggests] = "java8-runtime-headless" - out.config_files << "/etc/logrotate.d/logstash" out.config_files << "/etc/logstash/startup.options" out.config_files << "/etc/logstash/jvm.options" out.config_files << "/etc/logstash/logstash.yml" @@ -394,7 +389,6 @@ namespace "artifact" do out.url = "http://www.elasticsearch.org/overview/logstash/" out.description = "An extensible logging pipeline" out.vendor = "Elasticsearch" - out.dependencies << "logrotate" # Because we made a mistake in naming the RC version numbers, both rpm and deb view # "1.5.0.rc1" higher than "1.5.0". Setting the epoch to 1 ensures that we get a kind From 0a59592fe87ac1dbc9f97e309174af06f11d4ea2 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 13 Sep 2016 16:23:31 -0700 Subject: [PATCH 347/632] Use format for log file Fixes #5903 --- config/log4j2.properties | 8 ++++---- pkg/log4j2.properties | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/config/log4j2.properties b/config/log4j2.properties index 5d2ec61ebef..52026f20d3c 100644 --- a/config/log4j2.properties +++ b/config/log4j2.properties @@ -14,8 +14,8 @@ appender.json_console.layout.eventEol = true appender.rolling.type = RollingFile appender.rolling.name = plain_rolling -appender.rolling.fileName = ${sys:ls.logs}/logstash.log -appender.rolling.filePattern = ${sys:ls.logs}/logstash-%d{yyyy-MM-dd}.log +appender.rolling.fileName = ${sys:ls.logs}/logstash-${sys:ls.log.format}.log +appender.rolling.filePattern = ${sys:ls.logs}/logstash-${sys:ls.log.format}-%d{yyyy-MM-dd}.log appender.rolling.policies.type = Policies appender.rolling.policies.time.type = TimeBasedTriggeringPolicy appender.rolling.policies.time.interval = 1 @@ -25,8 +25,8 @@ appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n appender.json_rolling.type = RollingFile appender.json_rolling.name = json_rolling -appender.json_rolling.fileName = ${sys:ls.logs}/logstash.log -appender.json_rolling.filePattern = ${sys:ls.logs}/logstash-%d{yyyy-MM-dd}.log +appender.json_rolling.fileName = ${sys:ls.logs}/logstash-${sys:ls.log.format}.log +appender.json_rolling.filePattern = ${sys:ls.logs}/logstash-${sys:ls.log.format}-%d{yyyy-MM-dd}.log appender.json_rolling.policies.type = Policies appender.json_rolling.policies.time.type = TimeBasedTriggeringPolicy appender.json_rolling.policies.time.interval = 1 diff --git a/pkg/log4j2.properties b/pkg/log4j2.properties index f4cd1e49aa9..4471045c6e7 100644 --- a/pkg/log4j2.properties +++ b/pkg/log4j2.properties @@ -3,8 +3,8 @@ name = LogstashPropertiesConfig appender.rolling.type = RollingFile appender.rolling.name = plain_rolling -appender.rolling.fileName = ${sys:ls.logs}/logstash.log -appender.rolling.filePattern = ${sys:ls.logs}/logstash-%d{yyyy-MM-dd}.log +appender.rolling.fileName = ${sys:ls.logs}/logstash-${sys:ls.log.format}.log +appender.rolling.filePattern = ${sys:ls.logs}/logstash-${sys:ls.log.format}-%d{yyyy-MM-dd}.log appender.rolling.policies.type = Policies appender.rolling.policies.time.type = TimeBasedTriggeringPolicy appender.rolling.policies.time.interval = 1 @@ -14,8 +14,8 @@ appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n appender.json_rolling.type = RollingFile appender.json_rolling.name = json_rolling -appender.json_rolling.fileName = ${sys:ls.logs}/logstash.log -appender.json_rolling.filePattern = ${sys:ls.logs}/logstash-%d{yyyy-MM-dd}.log +appender.json_rolling.fileName = ${sys:ls.logs}/logstash-${sys:ls.log.format}.log +appender.json_rolling.filePattern = ${sys:ls.logs}/logstash-${sys:ls.log.format}-%d{yyyy-MM-dd}.log appender.json_rolling.policies.type = Policies appender.json_rolling.policies.time.type = TimeBasedTriggeringPolicy appender.json_rolling.policies.time.interval = 1 From f51df789766ef5631357ce8686b418b9e2fc1ec4 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 13 Sep 2016 17:46:37 -0700 Subject: [PATCH 348/632] Logging API and configuration Fixes #5896 Fixes #5908 --- docs/static/logging.asciidoc | 69 ++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs/static/logging.asciidoc diff --git a/docs/static/logging.asciidoc b/docs/static/logging.asciidoc new file mode 100644 index 00000000000..b687469c1a7 --- /dev/null +++ b/docs/static/logging.asciidoc @@ -0,0 +1,69 @@ +[[logging]] +== Logstash's Internal Logging + +Logstash emits internal logs during it's operation, which are placed in `LS_HOME`/logs. The default logging level is `INFO`. +Logstash's logging framework is based on http://logging.apache.org/log4j/2.x/[Log4j2 framework], and many of it's functionality are exposed directly +to users. + +When debugging problems, particularly problems with plugins, it can be helpful to increase the logging level to `DEBUG` +to emit more verbose messages. Previously, you could only set a log level which applied to the entire Logstash product. +Starting with 5.0, you can configure logging for a particular subsystem in Logstash. For example, if you are +debugging issues with Elasticsearch Output, you can increase log levels just for that component. This way +you can reduce noise due to excessive logging and focus on the problem area effectively. + +=== Log file location + +You can specify log file location using `--path.logs` setting. + +=== Log4j2 Configuration + +Logstash ships with a `log4j2.properties` file with out of the box settings. Users can modify this file directly to change the +rotation policy, type and other https://logging.apache.org/log4j/2.x/manual/configuration.html#Loggers[log4j2 configuration]. +Any change made to this file is only effective after a process restart. + +=== Logging APIs + +You could modify the `log4j2.properties` file and restart your Logstash, but that is both tedious and leads to unnecessary +downtime. Instead, you can dynamically update logging levels through the a settings API. These settings are effective +immediately and does not need a restart. To do so, take the susbystem/module you are interested in and prepend +`logger.` to it. For example: + +[source,js] +-------------------------------------------------- +PUT /_node/settings +{ + "logger.logstash.outputs.elasticsearch" : "DEBUG" +} +-------------------------------------------------- + +While this setting is in effect, Logstash will begin to emit DEBUG-level logs for __all__ the Elasticsearch outputs +specified in your configuration. Please note this new setting is transient and will not survive a restart. + +To retrieve a list of logging subsystems available at runtime, you can do a `GET` request to `_node/logging` + +[source,js] +-------------------------------------------------- +GET /_node/logging?pretty +-------------------------------------------------- + +Example response: + +["source","js"] +-------------------------------------------------- +{ +... +"loggers" : { + "logstash.registry" : "WARN", + "logstash.instrument.periodicpoller.os" : "WARN", + "logstash.instrument.collector" : "WARN", + "logstash.runner" : "WARN", + "logstash.inputs.stdin" : "WARN", + "logstash.outputs.stdout" : "WARN", + "logstash.agent" : "WARN", + "logstash.api.service" : "WARN", + "logstash.instrument.periodicpoller.jvm" : "WARN", + "logstash.pipeline" : "WARN", + "logstash.codecs.line" : "WARN" + } +} +-------------------------------------------------- From ef6bf2d76e7cb6b699288f8687a8af4fbf205273 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 13 Sep 2016 18:11:26 -0700 Subject: [PATCH 349/632] Fix typos after review Fixes #5908 --- docs/static/logging.asciidoc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/static/logging.asciidoc b/docs/static/logging.asciidoc index b687469c1a7..7cc55b02e59 100644 --- a/docs/static/logging.asciidoc +++ b/docs/static/logging.asciidoc @@ -1,9 +1,9 @@ [[logging]] -== Logstash's Internal Logging +== Logging -Logstash emits internal logs during it's operation, which are placed in `LS_HOME`/logs. The default logging level is `INFO`. -Logstash's logging framework is based on http://logging.apache.org/log4j/2.x/[Log4j2 framework], and many of it's functionality are exposed directly -to users. +Logstash emits internal logs during its operation, which are placed in `LS_HOME/logs`. The default logging level is `INFO`. +Logstash's logging framework is based on http://logging.apache.org/log4j/2.x/[Log4j2 framework], and many of its functionality +are exposed directly to users. When debugging problems, particularly problems with plugins, it can be helpful to increase the logging level to `DEBUG` to emit more verbose messages. Previously, you could only set a log level which applied to the entire Logstash product. @@ -13,7 +13,7 @@ you can reduce noise due to excessive logging and focus on the problem area effe === Log file location -You can specify log file location using `--path.logs` setting. +You can specify the log file location using `--path.logs` setting. === Log4j2 Configuration @@ -24,8 +24,8 @@ Any change made to this file is only effective after a process restart. === Logging APIs You could modify the `log4j2.properties` file and restart your Logstash, but that is both tedious and leads to unnecessary -downtime. Instead, you can dynamically update logging levels through the a settings API. These settings are effective -immediately and does not need a restart. To do so, take the susbystem/module you are interested in and prepend +downtime. Instead, you can dynamically update logging levels through the settings API. These settings are effective +immediately and do not need a restart. To do so, take the subsystem/module you are interested in and prepend `logger.` to it. For example: [source,js] From f2eaa4463ad38f1b61373e5403999578154eeb84 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 13 Sep 2016 13:47:50 -0700 Subject: [PATCH 350/632] Fixed links and foramtting Fixes #5902 --- docs/static/breaking-changes.asciidoc | 35 ++++++++++++++------------- docs/static/deploying.asciidoc | 2 +- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 61b4aed17ec..16c9c8e05cb 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -3,41 +3,42 @@ **Breaking changes in 5.0** -Application Settings: Introduced a new way to configure application settings for Logstash through a `settings.yml` file. This file -is typically located in `LS_HOME/config`, or `/etc/logstash` when installed via packages. Logstash will not be able -to start without this file, so please make sure to pass in `--path.settings` if you are starting Logstash manually +Application Settings: Introduced a new way to configure application settings for Logstash through a `settings.yml` file. This file +is typically located in `LS_HOME/config`, or `/etc/logstash` when installed via packages. Logstash will not be able +to start without this file, so please make sure to pass in `--path.settings` if you are starting Logstash manually after installing it via a package (RPM or DEB). -Release Packages: When Logstash is installed via DEB or RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries and config files -respectively. Previously it used the `/opt` directory. This change was done to make the user experience -consistent with other Elastic products. The full directory layout is described https://www.elastic.co/guide/en/logstash/5.0/dir-layout.html[here]. +Release Packages: When Logstash is installed via DEB or RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries and config files +respectively. Previously it used the `/opt` directory. This change was done to make the user experience +consistent with other Elastic products. The full directory layout is described in <>. -Command Line Interface: Most of the long form https://www.elastic.co/guide/en/logstash/5.0/command-line-flags.html[options] have been renamed +Command Line Interface: Most of the long form <> have been renamed to adhere to the YAML dot notation used in the settings file. Short form options have not been changed. -Plugin Developers: The Event class has a https://github.com/elastic/logstash/issues/5141[new API] to access its data. You will no longer be able to directly use -the Event class through the Ruby hash paradigm. All the plugins packaged with Logstash has been updated +Plugin Developers: The Event class has a https://github.com/elastic/logstash/issues/5141[new API] to access its data. You will no longer be able to directly use +the Event class through the Ruby hash paradigm. All the plugins packaged with Logstash has been updated to use the new API, and their versions bumped to the next major. -The command `bin/plugin` has been renamed to `bin/logstash-plugin`. `bin/plugin `, which is the current -way of install packs/plugins, is problematic because it pollutes the global namespace if it is put in the path. -This command can now install both plugins and "Packs" - a single zip that contains 0 or 1 plugin for each system +The command `bin/plugin` has been renamed to `bin/logstash-plugin`. `bin/plugin `, which is the current +way of install packs/plugins, is problematic because it pollutes the global namespace if it is put in the path. +This command can now install both plugins and "Packs" - a single zip that contains 0 or 1 plugin for each system in the Elastic stack. **Environment Variables Support in Configuration** You can set environment variable references in the configuration for Logstash plugins by using either the `${var}` or `$var` syntax. -Previously if you used `${var}` or `$var` as a value in the configuration, 5.0 would try to resolve the value assuming +Previously if you used `${var}` or `$var` as a value in the configuration, 5.0 would try to resolve the value assuming it was an environment variable. [float] == Kafka Input and Output Plugins -Kafka version 0.9 brings in new security features (SSL, client based auth, access control), -an improved consumer and producer API, and much more. To bring in these features, Logstash +Kafka version 0.9 brings in new security features (SSL, client based auth, access control), +an improved consumer and producer API, and much more. To bring in these features, Logstash had to use the new 0.9 version of the consumer, which is not compatible with previous versions of the broker. -To use these new features, users have to first upgrade Kafka Brokers from 0.8.x to 0.9 and then use the +To use these new features, users have to first upgrade Kafka Brokers from 0.8.x to 0.9 and then use the input plugins. Please note that several configurations have changed in the Logstash configuration. Configuration Changes: + * <> -* <> \ No newline at end of file +* <> diff --git a/docs/static/deploying.asciidoc b/docs/static/deploying.asciidoc index e4d7cce4f79..1cf0b82da2b 100644 --- a/docs/static/deploying.asciidoc +++ b/docs/static/deploying.asciidoc @@ -63,7 +63,7 @@ nodes. By default, Logstash uses the HTTP protocol to move data into the cluster You can use the Elasticsearch HTTP REST APIs to index data into the Elasticsearch cluster. These APIs represent the indexed data in JSON. Using the REST APIs does not require the Java client classes or any additional JAR files and has no performance disadvantages compared to the transport or node protocols. You can secure communications -that use the HTTP REST APIs by using {shield}[{security}], which supports SSL and HTTP basic authentication. +that use the HTTP REST APIs by using {xpack}/xpack-security.html[{security}], which supports SSL and HTTP basic authentication. When you use the HTTP protocol, you can configure the Logstash Elasticsearch output plugin to automatically load-balance indexing requests across a From 7c771ada6e3f45abab360d2652d4d43df9fcd64e Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 13 Sep 2016 15:19:35 -0700 Subject: [PATCH 351/632] Add changes made in 5.0 Fixes #5902 --- docs/static/breaking-changes.asciidoc | 86 +++++++++++++++------------ 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 16c9c8e05cb..07920e78861 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -1,44 +1,56 @@ [[breaking-changes]] == Breaking changes -**Breaking changes in 5.0** +This section discusses the changes that you need to be aware of when migrating your application to Logstash {version}. -Application Settings: Introduced a new way to configure application settings for Logstash through a `settings.yml` file. This file +**Application Settings:** Introduced a new way to configure application settings for Logstash through a settings.yml file. This file is typically located in `LS_HOME/config`, or `/etc/logstash` when installed via packages. Logstash will not be able to start without this file, so please make sure to pass in `--path.settings` if you are starting Logstash manually -after installing it via a package (RPM or DEB). +after installing it via a package (RPM, DEB). + +**Release Packages:** When Logstash is installed via DEB, RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries and config files +respectively. Previously it used to install in `/opt` directory. This change was done to make the user experience +consistent with other Elastic products. Full directory layout is described in <>. + +**Command Line Interface:** Most of the long form <> have been renamed +to adhere to the yml dot notation to be used in the settings file. Short form options have not been changed. + +**Plugin Manager Renamed:** `bin/plugin` has been renamed to `bin/logstash-plugin`. This change was to mainly prevent `PATH` being polluted when +other components of the Elastic stack are installed on the same instance. Also, this provides a foundation +for future change which will allow Elastic Stack packs to be installed via this script. + +**Kafka Input/Output Configuration Changes:** This release added support for the new 0.9 consumer/producer API which supports security features introduced by Kafka. +A few Configuration options were renamed to make it consistent with Kafka consumer and producer settings. +Also, this plugin version will not work with Kafka 0.8 broker. + +Please see the following specific plugin documentation for new configuration options: + +* <> +* <> + +**Ruby Filter and Custom Plugin Developers:** With the migration to the Java Event (https://github.com/elastic/logstash/issues/4191[Issue 4191]), we have changed +how you can access internal data. The Event object no longer returns a reference to the data. Instead, it returns a +copy. This might change how you do manipulation of your data, especially when working with nested hashes. +When working with nested hashes, it’s recommended that you use the `fieldref` syntax instead of using multiple brackets. +Also note that we have introduced new Getter/Setter APIs for accessing information in the Event object. + +**Examples:** + +[source, js] +---------------------------------- +filter { + ruby { + codec => "event.set('uuid', event.get('uuid').gsub(/b/, ''))" # instead of using event['uuid'].gsub!(/b/, '') + } +} +---------------------------------- + +[source, js] +---------------------------------- +filter { + ruby { + codec => "event.set('[product][price]', 10)" # instead of using event['product']['price'] = 10 + } +} +---------------------------------- -Release Packages: When Logstash is installed via DEB or RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries and config files -respectively. Previously it used the `/opt` directory. This change was done to make the user experience -consistent with other Elastic products. The full directory layout is described in <>. - -Command Line Interface: Most of the long form <> have been renamed -to adhere to the YAML dot notation used in the settings file. Short form options have not been changed. - -Plugin Developers: The Event class has a https://github.com/elastic/logstash/issues/5141[new API] to access its data. You will no longer be able to directly use -the Event class through the Ruby hash paradigm. All the plugins packaged with Logstash has been updated -to use the new API, and their versions bumped to the next major. - -The command `bin/plugin` has been renamed to `bin/logstash-plugin`. `bin/plugin `, which is the current -way of install packs/plugins, is problematic because it pollutes the global namespace if it is put in the path. -This command can now install both plugins and "Packs" - a single zip that contains 0 or 1 plugin for each system -in the Elastic stack. - -**Environment Variables Support in Configuration** -You can set environment variable references in the configuration for Logstash plugins by using either the `${var}` or `$var` syntax. -Previously if you used `${var}` or `$var` as a value in the configuration, 5.0 would try to resolve the value assuming -it was an environment variable. - -[float] -== Kafka Input and Output Plugins - -Kafka version 0.9 brings in new security features (SSL, client based auth, access control), -an improved consumer and producer API, and much more. To bring in these features, Logstash -had to use the new 0.9 version of the consumer, which is not compatible with previous versions of the broker. -To use these new features, users have to first upgrade Kafka Brokers from 0.8.x to 0.9 and then use the -input plugins. Please note that several configurations have changed in the Logstash configuration. - -Configuration Changes: - -* <> -* <> From 0bca1a9a63fa5c1e5e312c5a0a6f48c464ea09c0 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 13 Sep 2016 18:54:04 -0700 Subject: [PATCH 352/632] Fix heading levels in logging topic Fixes #5910 --- docs/static/logging.asciidoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/static/logging.asciidoc b/docs/static/logging.asciidoc index 7cc55b02e59..c4ba77b4bfd 100644 --- a/docs/static/logging.asciidoc +++ b/docs/static/logging.asciidoc @@ -1,5 +1,5 @@ [[logging]] -== Logging +=== Logging Logstash emits internal logs during its operation, which are placed in `LS_HOME/logs`. The default logging level is `INFO`. Logstash's logging framework is based on http://logging.apache.org/log4j/2.x/[Log4j2 framework], and many of its functionality @@ -11,17 +11,17 @@ Starting with 5.0, you can configure logging for a particular subsystem in Logst debugging issues with Elasticsearch Output, you can increase log levels just for that component. This way you can reduce noise due to excessive logging and focus on the problem area effectively. -=== Log file location +==== Log file location You can specify the log file location using `--path.logs` setting. -=== Log4j2 Configuration +==== Log4j2 Configuration Logstash ships with a `log4j2.properties` file with out of the box settings. Users can modify this file directly to change the rotation policy, type and other https://logging.apache.org/log4j/2.x/manual/configuration.html#Loggers[log4j2 configuration]. Any change made to this file is only effective after a process restart. -=== Logging APIs +==== Logging APIs You could modify the `log4j2.properties` file and restart your Logstash, but that is both tedious and leads to unnecessary downtime. Instead, you can dynamically update logging levels through the settings API. These settings are effective From ceb5103e01564cba0fb26314f22cebd3ed393cb0 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 13 Sep 2016 19:03:13 -0700 Subject: [PATCH 353/632] bump plugin version to match RubyGems.org (#5909) --- .../lib/logstash-core-plugin-api/version.rb | 2 +- versions.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb b/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb index 7c3d3e44fb7..e0ebc222533 100644 --- a/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb +++ b/logstash-core-plugin-api/lib/logstash-core-plugin-api/version.rb @@ -1,2 +1,2 @@ # encoding: utf-8 -LOGSTASH_CORE_PLUGIN_API = "2.1.12" +LOGSTASH_CORE_PLUGIN_API = "2.1.16" diff --git a/versions.yml b/versions.yml index d4c1fbb60e5..87670bec259 100644 --- a/versions.yml +++ b/versions.yml @@ -3,4 +3,4 @@ logstash: 6.0.0-alpha1 logstash-core: 6.0.0-alpha1 logstash-core-event: 6.0.0-alpha1 logstash-core-event-java: 6.0.0-alpha1 -logstash-core-plugin-api: 2.1.12 +logstash-core-plugin-api: 2.1.16 From e4e6473f4502ef58d95b1accf5c42c9ecc4d1fd9 Mon Sep 17 00:00:00 2001 From: Michael Gerbig Date: Wed, 14 Sep 2016 15:53:57 +0200 Subject: [PATCH 354/632] Update advanced-pipeline.asciidoc add missing curly brace Fixes #5913 --- docs/static/advanced-pipeline.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index f7a89598f9b..f131c10ffdf 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -162,6 +162,7 @@ like this: geoip { source => "clientip" } + } -------------------------------------------------------------------------------- From c1e3fcc1bf5f304cf2236068bb1b65be1e857e7b Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 15 Sep 2016 12:33:51 +0100 Subject: [PATCH 355/632] when a reload fails there should be at least one failure count Fixes #5923 --- logstash-core/spec/logstash/agent_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 20700ceccc2..37652cf915c 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -501,7 +501,7 @@ class DummyOutput2 < LogStash::Outputs::Base; end it "increases the failed reload count" do snapshot = subject.metric.collector.snapshot_metric value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:failures].value - expect(value).to be > 1 + expect(value).to be > 0 end end end From 0daeec7e04b2b09578dc7a2a684caa83fe6d9059 Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Thu, 15 Sep 2016 15:25:36 +0200 Subject: [PATCH 356/632] fix logstash-core show version method to use proper logger info checks Fixes #5927 --- logstash-core/lib/logstash/runner.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 23232224717..5a6b21c281d 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -284,7 +284,7 @@ def execute def show_version show_version_logstash - if logger.is_info_enabled + if logger.info? show_version_ruby show_version_java if LogStash::Environment.jruby? show_gems if logger.debug? From f0ae34e25ad5025ce82b4ed1b69f942bf9d3d9b9 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 14 Sep 2016 12:59:01 -0400 Subject: [PATCH 357/632] Fix a concurrency issue with the Webserver when overrideing Puma STDERR and STDOUT. This PR changes how we modify the STDOUT/STDERR in puma, instande of using `const_set`, we override the constants using a module. This operation should be thread safe and will make sure the STDERR are correctly visible. After when we receive the logger we can swap the null logger with the real thing in a thread safe way. Fixes: #5912 Fixes #5918 --- logstash-core/lib/logstash/patches/puma.rb | 44 +++++++++++++++++++ logstash-core/lib/logstash/webserver.rb | 27 +++--------- logstash-core/spec/logstash/webserver_spec.rb | 2 +- 3 files changed, 50 insertions(+), 23 deletions(-) create mode 100644 logstash-core/lib/logstash/patches/puma.rb diff --git a/logstash-core/lib/logstash/patches/puma.rb b/logstash-core/lib/logstash/patches/puma.rb new file mode 100644 index 00000000000..b8507db1875 --- /dev/null +++ b/logstash-core/lib/logstash/patches/puma.rb @@ -0,0 +1,44 @@ +# encoding: utf-8 +# +# Patch to replace the usage of STDERR and STDOUT +# see: https://github.com/elastic/logstash/issues/5912 +module LogStash + class NullLogger + def self.debug(message) + end + end + + # Puma uses by default the STDERR an the STDOUT for all his error + # handling, the server class accept custom a events object that can accept custom io object, + # so I just wrap the logger into an IO like object. + class IOWrappedLogger + def initialize(new_logger) + @logger_lock = Mutex.new + @logger = new_logger + end + + def sync=(v) + # noop + end + + def logger=(logger) + @logger_lock.synchronize { @logger = logger } + end + + def puts(str) + # The logger only accept a str as the first argument + @logger_lock.synchronize { @logger.debug(str.to_s) } + end + alias_method :write, :puts + alias_method :<<, :puts + end + +end + +# Reopen the puma class to create a scoped STDERR and STDOUT +# This operation is thread safe since its done at the class level +# and force JRUBY to flush his classes cache. +module Puma + STDERR = LogStash::IOWrappedLogger.new(LogStash::NullLogger) + STDOUT = LogStash::IOWrappedLogger.new(LogStash::NullLogger) +end diff --git a/logstash-core/lib/logstash/webserver.rb b/logstash-core/lib/logstash/webserver.rb index a57233f19bd..b7b99b602a0 100644 --- a/logstash-core/lib/logstash/webserver.rb +++ b/logstash-core/lib/logstash/webserver.rb @@ -2,7 +2,9 @@ require "logstash/api/rack_app" require "puma" require "puma/server" +require "logstash/patches/puma" require "concurrent" +require "thread" module LogStash class WebServer @@ -70,32 +72,13 @@ def stop(options={}) @server.stop(true) if @server end - # Puma uses by default the STDERR an the STDOUT for all his error - # handling, the server class accept custom a events object that can accept custom io object, - # so I just wrap the logger into an IO like object. - class IOWrappedLogger - def initialize(logger) - @logger = logger - end - - def sync=(v) - end - - def puts(str) - # The logger only accept a str as the first argument - @logger.debug(str.to_s) - end - alias_method :write, :puts - alias_method :<<, :puts - end - def start_webserver(port) # wrap any output that puma could generate into a wrapped logger # use the puma namespace to override STDERR, STDOUT in that scope. - io_wrapped_logger = IOWrappedLogger.new(@logger) + Puma::STDERR.logger = logger + Puma::STDOUT.logger = logger - ::Puma.const_set("STDERR", io_wrapped_logger) unless ::Puma.const_defined?("STDERR") - ::Puma.const_set("STDOUT", io_wrapped_logger) unless ::Puma.const_defined?("STDOUT") + io_wrapped_logger = LogStash::IOWrappedLogger.new(logger) app = LogStash::Api::RackApp.app(logger, agent, http_environment) diff --git a/logstash-core/spec/logstash/webserver_spec.rb b/logstash-core/spec/logstash/webserver_spec.rb index 09b8bc08a78..c5dba3fbe57 100644 --- a/logstash-core/spec/logstash/webserver_spec.rb +++ b/logstash-core/spec/logstash/webserver_spec.rb @@ -126,7 +126,7 @@ def free_ports(servers) end end -describe LogStash::WebServer::IOWrappedLogger do +describe LogStash::IOWrappedLogger do let(:logger) { spy("logger") } let(:message) { "foobar" } From d087b78d0dafdef45e22d6b9f6ad0bbff2f0140e Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Fri, 16 Sep 2016 16:13:20 +0200 Subject: [PATCH 358/632] make redhat test uninstall a packege after test are done also making sure install errors are raised only when an error code is != 0 Fixes #5936 --- qa/acceptance/spec/shared_examples/installed.rb | 1 + qa/rspec/commands/redhat.rb | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/qa/acceptance/spec/shared_examples/installed.rb b/qa/acceptance/spec/shared_examples/installed.rb index 8773dfa4de9..3d058134fc3 100644 --- a/qa/acceptance/spec/shared_examples/installed.rb +++ b/qa/acceptance/spec/shared_examples/installed.rb @@ -5,6 +5,7 @@ RSpec.shared_examples "installable" do |logstash| before(:each) do + logstash.uninstall logstash.install({:version => LOGSTASH_VERSION}) end diff --git a/qa/rspec/commands/redhat.rb b/qa/rspec/commands/redhat.rb index eebba934b46..d44aa2d4820 100644 --- a/qa/rspec/commands/redhat.rb +++ b/qa/rspec/commands/redhat.rb @@ -23,17 +23,22 @@ def package_for(filename, base=ServiceTester::Base::LOCATION) def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) errors = [] + exit_status = 0 at(hosts, {in: :serial}) do |_host| cmd = sudo_exec!("yum install -y #{package}") + exit_status += cmd.exit_status errors << cmd.stderr unless cmd.stderr.empty? end - raise InstallException.new(errors.join("\n")) unless errors.empty? + if exit_status > 0 + raise InstallException.new(errors.join("\n")) + end end def uninstall(package, host=nil) hosts = (host.nil? ? servers : Array(host)) at(hosts, {in: :serial}) do |_| sudo_exec!("yum remove -y #{package}") + sudo_exec!("rm -rf /etc/logstash") end end From 9bc982d7958b059ea393be3a3bf001e2bcc1ee9c Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Fri, 16 Sep 2016 16:25:23 +0200 Subject: [PATCH 359/632] ammend leftover Fixes #5936 --- qa/rspec/commands/redhat.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/qa/rspec/commands/redhat.rb b/qa/rspec/commands/redhat.rb index d44aa2d4820..b7dce804869 100644 --- a/qa/rspec/commands/redhat.rb +++ b/qa/rspec/commands/redhat.rb @@ -38,7 +38,6 @@ def uninstall(package, host=nil) hosts = (host.nil? ? servers : Array(host)) at(hosts, {in: :serial}) do |_| sudo_exec!("yum remove -y #{package}") - sudo_exec!("rm -rf /etc/logstash") end end From 2c57f92fd3b90125ce864c637fd879da89deb68c Mon Sep 17 00:00:00 2001 From: Radu Gheorghe Date: Sat, 17 Sep 2016 19:25:34 +0300 Subject: [PATCH 360/632] Fix typo in bind error `--http-port` should be `--http.port` Fixes #5940 --- logstash-core/locales/en.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 8a2b9b47a15..144f579d3b5 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -74,9 +74,9 @@ en: Logstash is not able to start since configuration auto reloading was enabled but the configuration contains plugins that don't support it. Quitting... web_api: cant_bind_to_port: |- - Logstash tried to bind to port %{port}, but the port is already in use. You can specify a new port by launching logtash with the --http-port option." + Logstash tried to bind to port %{port}, but the port is already in use. You can specify a new port by launching logtash with the --http.port option." cant_bind_to_port_in_range: |- - Logstash tried to bind to port range %{http_ports}, but all the ports are already in use. You can specify a new port by launching logtash with the --http-port option." + Logstash tried to bind to port range %{http_ports}, but all the ports are already in use. You can specify a new port by launching logtash with the --http.port option." hot_threads: title: |- ::: {%{hostname}} From 603ecacdef10f3a5543e8919fbf5ba946d1b7525 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 19 Sep 2016 11:48:53 -0700 Subject: [PATCH 361/632] Add changes and edits for Logstash APIs Remove alpha annotations for added features Fixes #5947 --- docs/static/command-line-flags.asciidoc | 26 +++--- docs/static/logging.asciidoc | 18 ++-- docs/static/monitoring-apis.asciidoc | 105 +++++++++++++---------- docs/static/setting-up-logstash.asciidoc | 24 ++---- docs/static/settings-file.asciidoc | 34 ++++---- 5 files changed, 107 insertions(+), 100 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 19d77f0a398..2e304247d3a 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -6,17 +6,15 @@ Logstash has the following flags. You can use the `--help` flag to display this Instead of specifying options at the command line, we recommend that you control Logstash execution by specifying options in the Logstash <>. Using a settings file makes it easier for you to specify mutliple options, and it provides you with a single, versionable -file that you can use to start up Logstash consistently for each run. +file that you can use to start up Logstash consistently for each run. Any flags that you set at the command line override the corresponding settings in the Logstash -<>. - -added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their names] +<>. *`--node.name NAME`*:: Specify the name of this Logstash instance. If no value is given it will default to the current hostname. - + *`-f, --path.config CONFIG_PATH`*:: Load the Logstash config from a specific file or directory. If a directory is given, all files in that directory will be concatenated in lexicographical order and then parsed as a @@ -36,7 +34,7 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name in parallel, execute the filter and output stages of the pipeline. If you find that events are backing up, or that the CPU is not saturated, consider increasing this number to better utilize machine processing power. The default is 8. - + *`-b, --pipeline.batch.size SIZE`*:: Size of batches the pipeline is to work in. This option defines the maximum number of events an individual worker thread will collect from inputs before attempting to execute its filters and outputs. @@ -48,7 +46,7 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name When creating pipeline batches, how long to wait while polling for the next event. This option defines how long in milliseconds to wait before dispatching an undersized batch to filters and workers. The default is 5ms. - + *`--pipeline.unsafe_shutdown`*:: Force Logstash to exit during shutdown even if there are still inflight events in memory. By default, Logstash will refuse to quit until all received events @@ -57,8 +55,8 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name *`--path.data PATH`*:: This should point to a writable directory. Logstash will use this directory whenever it needs to store data. Plugins will also have access to this path. The default is the `data` directory under - Logstash home. - + Logstash home. + *`-p, --path.plugins PATH`*:: A path of where to find custom plugins. This flag can be given multiple times to include multiple paths. Plugins are expected to be in a specific directory hierarchy: @@ -81,7 +79,7 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name Show the fully compiled configuration as a debug log message (you must also have `--log.level=debug` enabled). WARNING: The log message will include any 'password' options passed to plugin configs as plaintext, and may result in plaintext passwords appearing in your logs! - + *`-i, --interactive SHELL`*:: Drop to shell instead of running as normal. Valid shells are "irb" and "pry". @@ -93,7 +91,7 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name correctness with this flag. Logstash can read multiple config files from a directory. If you combine this flag with `--log.level=debug`, Logstash will log the combined config file, annotating each config block with the source file it came from. - + *`-r, --config.reload.automatic`*:: Monitor configuration changes and reload whenever the configuration is changed. NOTE: Use SIGHUP to manually reload the config. The default is false. @@ -107,7 +105,7 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name *`--http.port HTTP_PORT`*:: Web API http port. This option specifies the bind port for the metrics REST endpoint. The default is 9600-9700. This setting accepts a range of the format 9600-9700. Logstash will pick up the first available port. - + *`--log.format FORMAT`*:: Specify if Logstash should write its own logs in JSON form (one event per line) or in plain text (using Ruby's Object#inspect). The default is "plain". @@ -115,8 +113,8 @@ added[5.0.0-alpha3, Command-line flags have dots instead of dashes in their name *`--path.settings SETTINGS_DIR`*:: Set the directory containing the `logstash.yml` <> as well as the log4j logging configuration. This can also be set through the LS_SETTINGS_DIR environment variable. - The default is the `config` directory under Logstash home. - + The default is the `config` directory under Logstash home. + *`-h, --help`*:: Print help diff --git a/docs/static/logging.asciidoc b/docs/static/logging.asciidoc index c4ba77b4bfd..bc37bd3219c 100644 --- a/docs/static/logging.asciidoc +++ b/docs/static/logging.asciidoc @@ -2,11 +2,11 @@ === Logging Logstash emits internal logs during its operation, which are placed in `LS_HOME/logs`. The default logging level is `INFO`. -Logstash's logging framework is based on http://logging.apache.org/log4j/2.x/[Log4j2 framework], and many of its functionality -are exposed directly to users. +Logstash's logging framework is based on http://logging.apache.org/log4j/2.x/[Log4j2 framework], and much of its functionality +is exposed directly to users. When debugging problems, particularly problems with plugins, it can be helpful to increase the logging level to `DEBUG` -to emit more verbose messages. Previously, you could only set a log level which applied to the entire Logstash product. +to emit more verbose messages. Previously, you could only set a log level that applied to the entire Logstash product. Starting with 5.0, you can configure logging for a particular subsystem in Logstash. For example, if you are debugging issues with Elasticsearch Output, you can increase log levels just for that component. This way you can reduce noise due to excessive logging and focus on the problem area effectively. @@ -17,20 +17,20 @@ You can specify the log file location using `--path.logs` setting. ==== Log4j2 Configuration -Logstash ships with a `log4j2.properties` file with out of the box settings. Users can modify this file directly to change the -rotation policy, type and other https://logging.apache.org/log4j/2.x/manual/configuration.html#Loggers[log4j2 configuration]. -Any change made to this file is only effective after a process restart. +Logstash ships with a `log4j2.properties` file with out-of-the-box settings. You can modify this file directly to change the +rotation policy, type, and other https://logging.apache.org/log4j/2.x/manual/configuration.html#Loggers[log4j2 configuration]. +You must restart Lostash to apply any changes that you make to this file. ==== Logging APIs You could modify the `log4j2.properties` file and restart your Logstash, but that is both tedious and leads to unnecessary -downtime. Instead, you can dynamically update logging levels through the settings API. These settings are effective -immediately and do not need a restart. To do so, take the subsystem/module you are interested in and prepend +downtime. Instead, you can dynamically update logging levels through the logging API. These settings are effective +immediately and do not need a restart. To update logging levels, take the subsystem/module you are interested in and prepend `logger.` to it. For example: [source,js] -------------------------------------------------- -PUT /_node/settings +PUT /_node/logging { "logger.logstash.outputs.elasticsearch" : "DEBUG" } diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 4ee5a54effb..413b225a882 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -32,7 +32,7 @@ Example response: -------------------------------------------------- NOTE: By default, the monitoring API attempts to bind to `tcp:9600`. If this port is already in use by another Logstash -instance, you need to launch Logstash with the `--http.port` flag specified to bind to a different port. See +instance, you need to launch Logstash with the `--http.port` flag specified to bind to a different port. See <> for more information. [float] @@ -66,8 +66,6 @@ consumption. The default for the `human` flag is [[node-info-api]] === Node Info API -added[5.0.0-alpha4] - experimental[] The node info API retrieves information about the node. @@ -79,7 +77,7 @@ GET /_node/ Where `` is optional and specifies the types of node info you want to return. -You can limit the info that's returned by combining any of the following types in a comma-separated list: added[5.0.0-alpha5,Support for specifying a comma-separated list of types] +You can limit the info that's returned by combining any of the following types in a comma-separated list: [horizontal] `pipeline`:: @@ -143,7 +141,7 @@ Example response: ==== JVM Info The following request returns a JSON document that shows node-level JVM stats, such as the JVM process id, version, -VM info, and memory usage: +VM info, memory usage, and info about garbage collectors: [source,js] -------------------------------------------------- @@ -156,18 +154,22 @@ Example response: -------------------------------------------------- { "jvm": { - "pid": 31580, + "pid": 8187, "version": "1.8.0_65", "vm_name": "Java HotSpot(TM) 64-Bit Server VM", "vm_version": "1.8.0_65", "vm_vendor": "Oracle Corporation", - "start_time_in_millis": 1466799661753, + "start_time_in_millis": 1474305161631, "mem": { "heap_init_in_bytes": 268435456, "heap_max_in_bytes": 1037959168, "non_heap_init_in_bytes": 2555904, "non_heap_max_in_bytes": 0 - } + }, + "gc_collectors": [ + "ParNew", + "ConcurrentMarkSweep" + ] } -------------------------------------------------- @@ -214,11 +216,9 @@ Example response: [[node-stats-api]] === Node Stats API -added[5.0.0-beta3,Replaces the Stats Info API] - experimental[] -The node stats API retrieves runtime stats about Logstash. +The node stats API retrieves runtime stats about Logstash. [source,js] -------------------------------------------------- @@ -227,74 +227,86 @@ GET /_node/stats/ Where `` is optional and specifies the types of stats you want to return. -By default, all stats are returned. You can limit the info that's returned by combining any of the following types in a comma-separated list: added[5.0.0-alpha5,Support for specifying a comma-separated list of types] +By default, all stats are returned. You can limit the info that's returned by combining any of the following types in a comma-separated list: [horizontal] `jvm`:: -Gets JVM stats, including stats about threads. added[5.0.0-alpha3,Adds thread count] +Gets JVM stats, including stats about threads, memory usage, and garage collectors. `process`:: -Gets process stats, including stats about file descriptors, memory consumption, and CPU usage. added[5.0.0-alpha3] +Gets process stats, including stats about file descriptors, memory consumption, and CPU usage. `mem`:: -Gets memory usage stats. added[5.0.0-alpha4] +Gets memory usage stats. `pipeline`:: Gets runtime stats about the Logstash pipeline. ==== JVM Stats -The following request returns a JSON document containing JVM stats: +The following request returns a JSON document containing JVM stats: [source,js] -------------------------------------------------- GET /_node/stats/jvm -------------------------------------------------- -Example response: added[5.0.0-alpha5,JVM stats now include memory stats that were previously returned by `/_node/stats/mem`] +Example response: [source,js] -------------------------------------------------- { "jvm": { "threads": { - "count": 32, - "peak_count": 33 + "count": 33, + "peak_count": 34 }, "mem": { - "heap_used_in_bytes": 290715552, - "heap_used_percent": 14, + "heap_used_in_bytes": 276974824, + "heap_used_percent": 13, "heap_committed_in_bytes": 519045120, "heap_max_in_bytes": 2075918336, - "non_heap_used_in_bytes": 181911616, - "non_heap_committed_in_bytes": 193249280, + "non_heap_used_in_bytes": 182122272, + "non_heap_committed_in_bytes": 193372160, "pools": { "survivor": { "peak_used_in_bytes": 8912896, - "used_in_bytes": 9358024, + "used_in_bytes": 11182152, "peak_max_in_bytes": 35782656, "max_in_bytes": 71565312, "committed_in_bytes": 17825792 }, "old": { - "peak_used_in_bytes": 106400040, - "used_in_bytes": 164247880, + "peak_used_in_bytes": 111736080, + "used_in_bytes": 171282544, "peak_max_in_bytes": 715849728, "max_in_bytes": 1431699456, "committed_in_bytes": 357957632 }, "young": { "peak_used_in_bytes": 71630848, - "used_in_bytes": 117109648, + "used_in_bytes": 94510128, "peak_max_in_bytes": 286326784, "max_in_bytes": 572653568, "committed_in_bytes": 143261696 } } + }, + "gc": { + "collectors": { + "old": { + "collection_time_in_millis": 48, + "collection_count": 2 + }, + "young": { + "collection_time_in_millis": 316, + "collection_count": 23 + } + } } } -------------------------------------------------- ==== Process Stats -The following request returns a JSON document containing process stats: +The following request returns a JSON document containing process stats: [source,js] -------------------------------------------------- @@ -321,13 +333,11 @@ Example response: -------------------------------------------------- [[pipeline-stats]] -==== Pipeline Stats - -added[5.0.0-alpha4,Stats for input stages are not yet available] +==== Pipeline Stats The following request returns a JSON document containing pipeline stats, including the number of events that were input, filtered, or output by the pipeline. The request also returns stats for each configured input, filter, or -output stage. +output stage, and info about whether config reload (if configured) failed or succeeded. [source,js] -------------------------------------------------- @@ -341,6 +351,7 @@ Example response: { "pipeline": { "events": { + "duration_in_millis": 7863504, "in": 100, "filtered": 100, "out": 100 @@ -349,9 +360,9 @@ Example response: "inputs": [], "filters": [ { - "id": "grok_c4900bd0-29ef-44a5-b44c-f6ffef3ddf8c", + "id": "grok_20e5cb7f7c9e712ef9750edf94aefb465e3e361b-2", "events": { - "duration_in_millis": 43, + "duration_in_millis": 48, "in": 100, "out": 100 }, @@ -362,9 +373,9 @@ Example response: "name": "grok" }, { - "id": "geoip_130740d3-cad0-4ae5-96dd-7ef8f0eb1adb", + "id": "geoip_20e5cb7f7c9e712ef9750edf94aefb465e3e361b-3", "events": { - "duration_in_millis": 116, + "duration_in_millis": 141, "in": 100, "out": 100 }, @@ -373,15 +384,21 @@ Example response: ], "outputs": [ { - "id": "elasticsearch_2f22c8b5-3d63-426e-a4cf-08e48af29538", + "id": "20e5cb7f7c9e712ef9750edf94aefb465e3e361b-4", "events": { - "duration_in_millis": 533, "in": 100, "out": 100 }, "name": "elasticsearch" } ] + }, + "reloads": { + "last_error": null, + "successes": 0, + "last_success_timestamp": null, + "last_failure_timestamp": null, + "failures": 0 } } -------------------------------------------------- @@ -405,7 +422,7 @@ GET /_node/hot_threads -------------------------------------------------- The output is a JSON document that contains a breakdown of the top hot threads for -Logstash. +Logstash. Example response: @@ -413,7 +430,7 @@ Example response: -------------------------------------------------- { "hot_threads": { - "time": "2016-07-26T18:39:08-07:00", + "time": "2016-09-19T10:44:13-07:00", "busiest_threads": 3, "threads": [ { @@ -476,8 +493,8 @@ Example response: The parameters allowed are: [horizontal] -`threads`:: The number of hot threads to return. The default is 3. -`human`:: If true, returns plain text instead of JSON format. The default is false. +`threads`:: The number of hot threads to return. The default is 3. +`human`:: If true, returns plain text instead of JSON format. The default is false. `ignore_idle_threads`:: If true, does not return idle threads. The default is true. You can use the `?human` parameter to return the document in a human-readable format. @@ -487,12 +504,12 @@ You can use the `?human` parameter to return the document in a human-readable fo GET /_node/hot_threads?human=true -------------------------------------------------- -Example of a human-readable response: +Example of a human-readable response: [source,js] -------------------------------------------------- ::: {} -Hot threads at 2016-07-26T18:46:18-07:00, busiestThreads=3: +Hot threads at 2016-07-26T18:46:18-07:00, busiestThreads=3: ================================================================================ 0.15 % of cpu usage by timed_waiting thread named 'LogStash::Runner' java.lang.Object.wait(Native Method) diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index fefe15c839e..8eaee917902 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -1,7 +1,7 @@ [[setup-logstash]] == Setting Up and Running Logstash -Before reading this section, see <> for basic installation instructions to get you started. +Before reading this section, see <> for basic installation instructions to get you started. This section includes additional information on how to set up and run Logstash, including: @@ -16,8 +16,6 @@ This section includes additional information on how to set up and run Logstash, This section describes the default directory structure that is created when you unpack the Logstash installation packages. -added[5.0.0-alpha3, Includes breaking changes to the Logstash directory structure] - [[zip-targz-layout]] ==== Directory Layout of `.zip` and `.tar.gz` Archives @@ -35,7 +33,7 @@ config and the logs directories so that you do not delete important data later o | home | Home directory of the Logstash installation. | `{extract.path}`- Directory created by unpacking the archive - d| + d| | bin | Binary scripts, including `logstash` to start Logstash @@ -67,7 +65,7 @@ locations for the system: | home | Home directory of the Logstash installation. | `/usr/share/logstash` - d| + d| | bin | Binary scripts including `logstash` to start Logstash @@ -101,26 +99,24 @@ locations for the system: === Logstash Configuration Files Logstash has two types of configuration files: _pipeline configuration files_, which define the Logstash processing -pipeline, and _settings files_, which specify options that control Logstash startup and execution. +pipeline, and _settings files_, which specify options that control Logstash startup and execution. ==== Pipeline Configuration Files You create pipeline configuration files when you define the stages of your Logstash processing pipeline. On deb and rpm, you place the pipeline configuration files in the `/etc/logstash/conf.d` directory. Logstash tries to load all -files in the `/etc/logstash/conf.d directory`, so don't store any non-config files or backup files in this directory. +files in the `/etc/logstash/conf.d directory`, so don't store any non-config files or backup files in this directory. See <> for more info. ==== Settings Files -added[5.0.0-alpha3] - The settings files are already defined in the Logstash installation. Logstash includes the following settings files: -*`logstash.yml`*:: +*`logstash.yml`*:: Contains Logstash configuration flags. You can set flags in this file instead of passing the flags at the command line. Any flags that you set at the command line override the corresponding settings in the `logstash.yml` file. See <> for more info. -*`jvm.options`*:: +*`jvm.options`*:: Contains JVM configuration flags. Specify each flag on a separate line. You can also use this file to set the locale for Logstash. *`startup.options` (Linux)*:: @@ -135,10 +131,8 @@ The settings files are already defined in the Logstash installation. Logstash in [[running-logstash]] === Running Logstash as a Service on Debian or RPM -added[5.0.0-alpha3] - Logstash is not started automatically after installation. How to start and stop Logstash depends on whether your system -uses systemd, upstart, or SysV. +uses systemd, upstart, or SysV. [[running-logstash-systemd]] ==== Running Logstash by Using Systemd @@ -173,7 +167,7 @@ For systems that use SysV, you can start Logstash with: sudo /etc/init.d/logstash start ------------------------------------------- -The auto-generated configuration file for SysV systems is `/etc/init.d/logstash`. +The auto-generated configuration file for SysV systems is `/etc/init.d/logstash`. diff --git a/docs/static/settings-file.asciidoc b/docs/static/settings-file.asciidoc index 13e3f7ac300..25e4f3d642f 100644 --- a/docs/static/settings-file.asciidoc +++ b/docs/static/settings-file.asciidoc @@ -1,13 +1,11 @@ [[logstash-settings-file]] === Settings File -added[5.0.0-alpha3] - You can set options in the Logstash settings file, `logstash.yml`, to control Logstash execution. For example, you can specify pipeline settings, the location of configuration files, logging options, and other settings. Most of the settings in the `logstash.yml` file are also available as <> when you run Logstash. Any flags that you set at the command line override the corresponding settings in the -`logstash.yml` file. +`logstash.yml` file. The `logstash.yml` file, which is written in http://http://yaml.org/[YAML], is located in `LOGSTASH_HOME/config`. You can specify settings in hierarchical form or use flat keys. For example, to use hierarchical form to set the pipeline batch @@ -44,7 +42,7 @@ The `logstash.yml` file includes the following settings: |`LOGSTASH_HOME/data` | `pipeline.workers` -| The number of workers that will, in parallel, execute the filter and output stages of the pipeline. +| The number of workers that will, in parallel, execute the filter and output stages of the pipeline. If you find that events are backing up, or that the CPU is not saturated, consider increasing this number to better utilize machine processing power. | Number of the host's CPU cores @@ -55,23 +53,23 @@ The `logstash.yml` file includes the following settings: | `pipeline.batch.size` | The maximum number of events an individual worker thread will collect from inputs - before attempting to execute its filters and outputs. + before attempting to execute its filters and outputs. Larger batch sizes are generally more efficient, but come at the cost of increased memory overhead. You may have to increase the JVM heap size by setting the `LS_HEAP_SIZE` variable to effectively use the option. | `125` - + | `pipeline.batch.delay` | When creating pipeline event batches, how long in milliseconds to wait before dispatching an undersized batch to filters and workers. | `5` - + | `pipeline.unsafe_shutdown` | When set to `true`, forces Logstash to exit during shutdown even if there are still inflight events in memory. By default, Logstash will refuse to quit until all received events have been pushed to the outputs. Enabling this option can lead to data loss during shutdown. | `false` - + | `path.config` | The path to the Logstash config for the main pipeline. If you specify a directory or wildcard, config files are read from the directory in alphabetical order. @@ -81,19 +79,19 @@ The `logstash.yml` file includes the following settings: | A string that contains the pipeline configuration to use for the main pipeline. Use the same syntax as the config file. | None - + | `config.test_and_exit` | When set to `true`, checks that the configuration is valid and then exits. Note that grok patterns are not checked for correctness with this setting. Logstash can read multiple config files from a directory. If you combine this setting with `log.level: debug`, Logstash will log the combined config file, annotating each config block with the source file it came from. | `false` - + | `config.reload.automatic` -| When set to `true`, periodically checks if the configuration has changed and reloads the configuration whenever it is changed. +| When set to `true`, periodically checks if the configuration has changed and reloads the configuration whenever it is changed. This can also be triggered manually through the SIGHUP signal. | `false` - + | `config.reload.interval` | How often in seconds Logstash checks the config files for changes. | `3` @@ -103,15 +101,15 @@ The `logstash.yml` file includes the following settings: WARNING: The log message will include any 'password' options passed to plugin configs as plaintext, and may result in plaintext passwords appearing in your logs! | `false` - + | `http.host` | The bind address for the metrics REST endpoint. | `"127.0.0.1"` | `http.port` -| The bind port for the metrics REST endpoint. +| The bind port for the metrics REST endpoint. | `9600` - + | `log.level` a| The log level. Valid options are: @@ -122,7 +120,7 @@ The log level. Valid options are: * `debug`: log debugging info (for developers) | `warn` - + | `log.format` | The log format. Set to `json` to log in JSON format, or `plain` to use `Object#.inspect`. | `plain` @@ -130,13 +128,13 @@ The log level. Valid options are: | `path.log` | The file to log to. | Logs to stdout - + | `path.plugins` | Where to find custom plugins. You can specify this setting multiple times to include multiple paths. Plugins are expected to be in a specific directory hierarchy: `PATH/logstash/TYPE/NAME.rb` where `TYPE` is `inputs`, `filters`, `outputs`, or `codecs`, and `NAME` is the name of the plugin. | Platform-specific. See <>. - + |======================================================================= From 5fddbce449a18eb9219f24847f04e99367677f51 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 19 Sep 2016 14:34:02 -0700 Subject: [PATCH 362/632] Fix typo Fixes #5947 --- docs/static/monitoring-apis.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/monitoring-apis.asciidoc b/docs/static/monitoring-apis.asciidoc index 413b225a882..406736be8fd 100644 --- a/docs/static/monitoring-apis.asciidoc +++ b/docs/static/monitoring-apis.asciidoc @@ -231,7 +231,7 @@ By default, all stats are returned. You can limit the info that's returned by co [horizontal] `jvm`:: -Gets JVM stats, including stats about threads, memory usage, and garage collectors. +Gets JVM stats, including stats about threads, memory usage, and garbage collectors. `process`:: Gets process stats, including stats about file descriptors, memory consumption, and CPU usage. `mem`:: From cfd39c377ecd3c8cb25a6d109299313a7d4f3c04 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 20 Sep 2016 15:11:40 -0400 Subject: [PATCH 363/632] Correctly calculate the time spend in the filter + output block This PR fix an issue where the time was calculated but no work was done on the event. This code make sure we have at least one event to start recording the time spend. This was causing the `events/duratin_in_millis` to not be in sync with the time spend on the filtera, since `take_batch` was called in a tight loop and could return an empty array this made the duration was way off. Fixes: #5952 Fixes #5953 --- .../lib/logstash/instrument/metric_store.rb | 4 ++ .../util/wrapped_synchronous_queue.rb | 15 +++++-- .../logstash/instrument/metric_store_spec.rb | 6 +++ .../util/wrapped_synchronous_queue_spec.rb | 45 +++++++++++++++++-- 4 files changed, 62 insertions(+), 8 deletions(-) diff --git a/logstash-core/lib/logstash/instrument/metric_store.rb b/logstash-core/lib/logstash/instrument/metric_store.rb index 8240d899d57..c440e2524d2 100644 --- a/logstash-core/lib/logstash/instrument/metric_store.rb +++ b/logstash-core/lib/logstash/instrument/metric_store.rb @@ -188,6 +188,10 @@ def prune(path) end end + def size + @fast_lookup.size + end + private def get_all @fast_lookup.values diff --git a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb index 3c5c2d31d72..f3a60f2c0f8 100644 --- a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb @@ -90,9 +90,14 @@ def current_inflight_batch def take_batch @mutex.synchronize do batch = ReadBatch.new(@queue, @batch_size, @wait_for) - add_starting_metrics(batch) set_current_thread_inflight_batch(batch) - start_clock + + # We dont actually have any events to work on so lets + # not bother with recording metrics for them + if batch.size > 0 + add_starting_metrics(batch) + start_clock + end batch end end @@ -116,8 +121,10 @@ def start_clock end def stop_clock - @inflight_clocks[Thread.current].each(&:stop) - @inflight_clocks.delete(Thread.current) + unless @inflight_clocks[Thread.current].nil? + @inflight_clocks[Thread.current].each(&:stop) + @inflight_clocks.delete(Thread.current) + end end def add_starting_metrics(batch) diff --git a/logstash-core/spec/logstash/instrument/metric_store_spec.rb b/logstash-core/spec/logstash/instrument/metric_store_spec.rb index 3ad08f0fee1..993be7fd4f3 100644 --- a/logstash-core/spec/logstash/instrument/metric_store_spec.rb +++ b/logstash-core/spec/logstash/instrument/metric_store_spec.rb @@ -203,6 +203,12 @@ end end + describe "#size" do + it "returns the number of unique metrics" do + expect(subject.size).to eq(metric_events.size) + end + end + describe "#each" do it "retrieves all the metric" do expect(subject.each.size).to eq(metric_events.size) diff --git a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb index e0c5ce26d0c..ca7cb956479 100644 --- a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb +++ b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb @@ -1,6 +1,7 @@ # encoding: utf-8 require "spec_helper" require "logstash/util/wrapped_synchronous_queue" +require "logstash/instrument/collector" describe LogStash::Util::WrappedSynchronousQueue do context "#offer" do @@ -45,11 +46,47 @@ def poll(*) shift(); end end describe "WriteClient | ReadClient" do - context "when writing to the queue" do - let(:queue) { DummyQueue.new } - let(:write_client) { LogStash::Util::WrappedSynchronousQueue::WriteClient.new(queue)} - let(:read_client) { LogStash::Util::WrappedSynchronousQueue::ReadClient.new(queue)} + let(:queue) { DummyQueue.new } + let(:write_client) { LogStash::Util::WrappedSynchronousQueue::WriteClient.new(queue)} + let(:read_client) { LogStash::Util::WrappedSynchronousQueue::ReadClient.new(queue)} + + context "when reading from the queue" do + let(:collector) { LogStash::Instrument::Collector.new } + + before do + read_client.set_events_metric(LogStash::Instrument::Metric.new(collector).namespace(:events)) + read_client.set_pipeline_metric(LogStash::Instrument::Metric.new(collector).namespace(:pipeline)) + end + + context "when the queue is empty" do + it "doesnt record the `duration_in_millis`" do + batch = read_client.take_batch + read_client.close_batch(batch) + store = collector.snapshot_metric.metric_store + expect(store.size).to eq(0) + end + end + context "when we have item in the queue" do + it "records the `duration_in_millis`" do + batch = write_client.get_new_batch + 5.times {|i| batch.push("value-#{i}")} + write_client.push_batch(batch) + read_batch = read_client.take_batch + sleep(0.1) # simulate some work? + read_client.close_batch(batch) + store = collector.snapshot_metric.metric_store + + expect(store.size).to eq(4) + expect(store.get_shallow(:events, :in).value).to eq(5) + expect(store.get_shallow(:events, :duration_in_millis).value).to be > 0 + expect(store.get_shallow(:pipeline, :in).value).to eq(5) + expect(store.get_shallow(:pipeline, :duration_in_millis).value).to be > 0 + end + end + end + + context "when writing to the queue" do before :each do read_client.set_events_metric(LogStash::Instrument::NullMetric.new) read_client.set_pipeline_metric(LogStash::Instrument::NullMetric.new) From 962a6296918aee645b88f2d0d65269ad346bb56b Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 21 Sep 2016 17:51:42 -0700 Subject: [PATCH 364/632] Update repo for prerelease --- .../getting-started-with-logstash.asciidoc | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index 95479e260f1..e5ddfd17c3b 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -67,14 +67,21 @@ Download and install the Public Signing Key: [source,sh] -------------------------------------------------- -wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - +wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - -------------------------------------------------- -Add the repository definition to your `/etc/apt/sources.list` file: +You may need to install the `apt-transport-https` package on Debian before proceeding: + +[source,sh] +-------------------------------------------------- +sudo apt-get install apt-transport-https +-------------------------------------------------- + +Save the repository definition to +/etc/apt/sources.list.d/elastic-{major-version}.list+: ["source","sh",subs="attributes,callouts"] -------------------------------------------------- -echo "deb https://packages.elastic.co/logstash/{branch}/debian stable main" | sudo tee -a /etc/apt/sources.list +echo "deb https://artifacts.elastic.co/packages/{major-version}-prerelease/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-{major-version}.list -------------------------------------------------- [WARNING] @@ -105,7 +112,7 @@ Download and install the public signing key: [source,sh] -------------------------------------------------- -rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch +rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch -------------------------------------------------- Add the following in your `/etc/yum.repos.d/` directory @@ -113,19 +120,21 @@ in a file with a `.repo` suffix, for example `logstash.repo` ["source","sh",subs="attributes,callouts"] -------------------------------------------------- -[logstash-{branch}] -name=Logstash repository for {branch}.x packages -baseurl=https://packages.elastic.co/logstash/{branch}/centos +[logstash-{major-version}] +name=Elastic repository for {major-version} packages +baseurl=https://artifacts.elastic.co/packages/{major-version}-prerelease/yum gpgcheck=1 -gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch +gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 +autorefresh=1 +type=rpm-md -------------------------------------------------- And your repository is ready for use. You can install it with: [source,sh] -------------------------------------------------- -yum install logstash +sudo yum install logstash -------------------------------------------------- [[first-event]] From bb4189cdc8c5a40536bb95330a9e3e9c8371ead8 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 24 Aug 2016 15:36:59 +0000 Subject: [PATCH 365/632] Add initial round of integration tests Fixes #5917 --- qa/integration/Gemfile | 2 + qa/integration/README.md | 14 ++ qa/integration/fixtures/download_input.sh | 10 ++ .../fixtures/es_output_how_spec.yml | 35 +++++ qa/integration/fixtures/kafka_input.input | 37 +++++ qa/integration/fixtures/kafka_input_spec.yml | 24 ++++ .../fixtures/monitoring_api_spec.yml | 4 + qa/integration/framework/fixture.rb | 58 ++++++++ qa/integration/framework/settings.rb | 36 +++++ qa/integration/integration_tests.gemspec | 18 +++ qa/integration/services/elasticsearch.rb | 12 ++ .../services/elasticsearch_setup.sh | 14 ++ .../services/elasticsearch_teardown.sh | 6 + qa/integration/services/helpers.sh | 62 ++++++++ qa/integration/services/kafka.rb | 7 + qa/integration/services/kafka_setup.sh | 19 +++ qa/integration/services/kafka_teardown.sh | 9 ++ qa/integration/services/logstash.rb | 135 ++++++++++++++++++ qa/integration/services/monitoring_api.rb | 25 ++++ qa/integration/services/service.rb | 30 ++++ qa/integration/services/service_locator.rb | 19 +++ qa/integration/specs/es_output_how_spec.rb | 29 ++++ qa/integration/specs/kafka_input_spec.rb | 26 ++++ qa/integration/specs/monitoring_api_spec.rb | 25 ++++ qa/integration/suite.yml | 4 + 25 files changed, 660 insertions(+) create mode 100644 qa/integration/Gemfile create mode 100644 qa/integration/README.md create mode 100755 qa/integration/fixtures/download_input.sh create mode 100644 qa/integration/fixtures/es_output_how_spec.yml create mode 100644 qa/integration/fixtures/kafka_input.input create mode 100644 qa/integration/fixtures/kafka_input_spec.yml create mode 100644 qa/integration/fixtures/monitoring_api_spec.yml create mode 100644 qa/integration/framework/fixture.rb create mode 100644 qa/integration/framework/settings.rb create mode 100644 qa/integration/integration_tests.gemspec create mode 100644 qa/integration/services/elasticsearch.rb create mode 100755 qa/integration/services/elasticsearch_setup.sh create mode 100755 qa/integration/services/elasticsearch_teardown.sh create mode 100755 qa/integration/services/helpers.sh create mode 100644 qa/integration/services/kafka.rb create mode 100755 qa/integration/services/kafka_setup.sh create mode 100755 qa/integration/services/kafka_teardown.sh create mode 100644 qa/integration/services/logstash.rb create mode 100644 qa/integration/services/monitoring_api.rb create mode 100644 qa/integration/services/service.rb create mode 100644 qa/integration/services/service_locator.rb create mode 100644 qa/integration/specs/es_output_how_spec.rb create mode 100644 qa/integration/specs/kafka_input_spec.rb create mode 100644 qa/integration/specs/monitoring_api_spec.rb create mode 100644 qa/integration/suite.yml diff --git a/qa/integration/Gemfile b/qa/integration/Gemfile new file mode 100644 index 00000000000..3be9c3cd812 --- /dev/null +++ b/qa/integration/Gemfile @@ -0,0 +1,2 @@ +source "https://rubygems.org" +gemspec diff --git a/qa/integration/README.md b/qa/integration/README.md new file mode 100644 index 00000000000..26a78e0e368 --- /dev/null +++ b/qa/integration/README.md @@ -0,0 +1,14 @@ +## Logstash Integration Tests + +These set of tests are full integration tests as in they start LS from a binary, run config using `-e` and can use any external services + +## Setting up + +* From LS_HOME source directory, run `rake artifact:tar` +* `cd build` +* Unzip the recently built file: `tar xvf logstash-.tar.gz` + +* `bundle install` +This will install test specific dependency gems. +* You are ready to run any tests +* `rspec specs/es_output_how_spec.rb` diff --git a/qa/integration/fixtures/download_input.sh b/qa/integration/fixtures/download_input.sh new file mode 100755 index 00000000000..280cfe5ad5c --- /dev/null +++ b/qa/integration/fixtures/download_input.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -ex +current_dir="$(dirname "$0")" +HOW_DATA_SET_URL=https://s3.amazonaws.com/data.elasticsearch.org/logstash/logs.gz + +if [ ! -f ${current_dir}/how.input ]; then + curl -sL $HOW_DATA_SET_URL > ${current_dir}/logs.gz + gunzip ${current_dir}/logs.gz + mv ${current_dir}/logs ${current_dir}/how.input +fi \ No newline at end of file diff --git a/qa/integration/fixtures/es_output_how_spec.yml b/qa/integration/fixtures/es_output_how_spec.yml new file mode 100644 index 00000000000..566e781d0bd --- /dev/null +++ b/qa/integration/fixtures/es_output_how_spec.yml @@ -0,0 +1,35 @@ +--- +services: + - logstash + - elasticsearch +config: |- + input { + stdin { } + } + + filter { + grok { + match => { + "message" => "%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}\" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}" + } + } + + date { + match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ] + locale => en + } + geoip { + source => "clientip" + } + useragent { + source => "agent" + target => "useragent" + } + } + output { + elasticsearch {} + } + +input: how.input +setup_script: download_input.sh +teardown_script: diff --git a/qa/integration/fixtures/kafka_input.input b/qa/integration/fixtures/kafka_input.input new file mode 100644 index 00000000000..bef7ff54b4e --- /dev/null +++ b/qa/integration/fixtures/kafka_input.input @@ -0,0 +1,37 @@ +74.125.176.147 - - [11/Sep/2014:21:50:37 +0000] "GET /?flav=rss20 HTTP/1.1" 200 29941 "-" "FeedBurner/1.0 (http://www.FeedBurner.com)" +66.249.84.55 - - [11/Sep/2014:21:50:54 +0000] "GET / HTTP/1.1" 200 37932 "-" "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 Google favicon" +66.249.84.55 - - [11/Sep/2014:21:50:54 +0000] "GET /favicon.ico HTTP/1.1" 200 3638 "-" "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 Google favicon" +46.105.14.53 - - [11/Sep/2014:21:51:35 +0000] "GET /blog/tags/puppet?flav=rss20 HTTP/1.1" 200 14872 "-" "UniversalFeedParser/4.2-pre-314-svn +http://feedparser.org/" +194.153.217.248 - - [11/Sep/2014:21:51:56 +0000] "GET /blog/geekery/debugging-java-performance.html HTTP/1.1" 200 15796 "http://logstash.net/docs/1.3.3/life-of-an-event" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0" +194.153.217.248 - - [11/Sep/2014:21:51:57 +0000] "GET /style2.css HTTP/1.1" 200 4877 "http://www.semicomplete.com/blog/geekery/debugging-java-performance.html" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0" +194.153.217.248 - - [11/Sep/2014:21:51:57 +0000] "GET /reset.css HTTP/1.1" 200 1015 "http://www.semicomplete.com/blog/geekery/debugging-java-performance.html" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0" +194.153.217.248 - - [11/Sep/2014:21:51:58 +0000] "GET /favicon.ico HTTP/1.1" 200 3638 "-" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0" +194.153.217.248 - - [11/Sep/2014:21:51:58 +0000] "GET /images/jordan-80.png HTTP/1.1" 200 6146 "http://www.semicomplete.com/blog/geekery/debugging-java-performance.html" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0" +194.153.217.248 - - [11/Sep/2014:21:51:58 +0000] "GET /images/web/2009/banner.png HTTP/1.1" 200 52315 "http://www.semicomplete.com/style2.css" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0" +159.253.145.222 - - [11/Sep/2014:21:51:53 +0000] "GET /files/logstash/logstash-1.1.0-monolithic.jar HTTP/1.1" 200 40923996 "-" "Chef Client/10.18.2 (ruby-1.8.7-p302; ohai-6.14.0; x86_64-linux; +http://opscode.com)" +213.113.233.227 - - [11/Sep/2014:21:53:14 +0000] "GET /articles/dynamic-dns-with-dhcp/ HTTP/1.1" 200 18848 "https://www.google.se/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36" +173.192.221.211 - - [11/Sep/2014:21:53:31 +0000] "GET /files/logstash/logstash-1.1.0-monolithic.jar HTTP/1.1" 200 40923996 "-" "Chef Client/10.18.2 (ruby-1.8.7-p302; ohai-6.14.0; x86_64-linux; +http://opscode.com)" +5.10.83.95 - - [11/Sep/2014:21:54:16 +0000] "GET /files/xdotool/docs/man/?C=N;O=D HTTP/1.1" 200 955 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" +194.103.63.154 - - [11/Sep/2014:21:54:26 +0000] "GET /favicon.ico HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible;)" +95.30.144.170 - - [11/Sep/2014:21:56:20 +0000] "GET /presentations/vim/ HTTP/1.0" 200 20572 "http://semicomplete.com/presentations/vim/" "Opera/9.80 (Windows NT 6.1; WOW64; U; MRA 8.0 (build 5880); ru) Presto/2.10.289 Version/12.02" +159.253.145.222 - - [11/Sep/2014:21:56:27 +0000] "GET /files/logstash/logstash-1.1.0-monolithic.jar HTTP/1.1" 200 40923996 "-" "Chef Client/10.18.2 (ruby-1.8.7-p302; ohai-6.14.0; x86_64-linux; +http://opscode.com)" +46.105.14.53 - - [11/Sep/2014:21:56:36 +0000] "GET /blog/tags/puppet?flav=rss20 HTTP/1.1" 200 14872 "-" "UniversalFeedParser/4.2-pre-314-svn +http://feedparser.org/" +202.69.11.26 - - [11/Sep/2014:21:56:40 +0000] "GET /blog/tags/X11 HTTP/1.1" 200 32742 "-" "HUAQIN60A_6464_11B_HW|0816 (MRE/3.1.00(1536);MAUI/PA_089A_V8_0_9;BDATE/2013/08/16 14:02;LCD/240320;CHIP/MT6260;KEY/Normal;TOUCH/0;CAMERA/1;SENSOR/0;DEV/HUAQIN60A_6464_11B_HW|0816;WAP Browser/MAUI (HTTP PGDL;HTTPS);GMOBI/001;MBOUNCE/002;MOMAGIC/003;INDEX/004;SPICEI2I/005;GAMELOFT/006;) ZS628PA_089A_V8_0_9 Release/2013.08.16 WAP Browser/MAUI (HTTP PGDL; HTTPS) Profile/ Q03C1-2.40 en-US" +5.10.83.96 - - [11/Sep/2014:21:56:47 +0000] "GET /blog/geekery/insist-on-better-asserts.html HTTP/1.1" 200 9514 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" +202.69.11.26 - - [11/Sep/2014:21:56:48 +0000] "GET /reset.css HTTP/1.1" 200 1015 "-" "-" +202.69.11.26 - - [11/Sep/2014:21:56:54 +0000] "GET /style2.css HTTP/1.1" 200 4877 "-" "-" +202.69.11.26 - - [11/Sep/2014:21:56:57 +0000] "GET /images/jordan-80.png HTTP/1.1" 200 6146 "-" "HUAQIN60A_6464_11B_HW|0816 (MRE/3.1.00(1536);MAUI/PA_089A_V8_0_9;BDATE/2013/08/16 14:02;LCD/240320;CHIP/MT6260;KEY/Normal;TOUCH/0;CAMERA/1;SENSOR/0;DEV/HUAQIN60A_6464_11B_HW|0816;WAP Browser/MAUI (HTTP PGDL;HTTPS);GMOBI/001;MBOUNCE/002;MOMAGIC/003;INDEX/004;SPICEI2I/005;GAMELOFT/006;) ZS628PA_089A_V8_0_9 Release/2013.08.16 WAP Browser/MAUI (HTTP PGDL; HTTPS) Profile/ Q03C1-2.40 en-US" +202.69.11.26 - - [11/Sep/2014:21:57:06 +0000] "GET /images/web/2009/banner.png HTTP/1.1" 200 52315 "-" "HUAQIN60A_6464_11B_HW|0816 (MRE/3.1.00(1536);MAUI/PA_089A_V8_0_9;BDATE/2013/08/16 14:02;LCD/240320;CHIP/MT6260;KEY/Normal;TOUCH/0;CAMERA/1;SENSOR/0;DEV/HUAQIN60A_6464_11B_HW|0816;WAP Browser/MAUI (HTTP PGDL;HTTPS);GMOBI/001;MBOUNCE/002;MOMAGIC/003;INDEX/004;SPICEI2I/005;GAMELOFT/006;) ZS628PA_089A_V8_0_9 Release/2013.08.16 WAP Browser/MAUI (HTTP PGDL; HTTPS) Profile/ Q03C1-2.40 en-US" +174.36.228.156 - - [11/Sep/2014:21:57:28 +0000] "GET /blog HTTP/1.1" 200 37936 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.19; aggregator:Spinn3r (Spinn3r 3.1); http://spinn3r.com/robot) Gecko/2010040121 Firefox/3.0.19" +108.174.55.234 - - [11/Sep/2014:21:57:42 +0000] "GET /?flav=rss20 HTTP/1.1" 200 29941 "-" "-" +173.192.221.212 - - [11/Sep/2014:21:58:16 +0000] "GET /files/logstash/logstash-1.1.0-monolithic.jar HTTP/1.1" 200 40923996 "-" "Chef Client/10.18.2 (ruby-1.8.7-p302; ohai-6.14.0; x86_64-linux; +http://opscode.com)" +217.69.133.237 - - [11/Sep/2014:21:58:29 +0000] "GET /scripts/netcat-webserver HTTP/1.1" 304 - "-" "Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/help/robots)" +202.69.11.26 - - [11/Sep/2014:21:58:52 +0000] "GET /images/googledotcom.png HTTP/1.1" 200 65748 "-" "HUAQIN60A_6464_11B_HW|0816 (MRE/3.1.00(1536);MAUI/PA_089A_V8_0_9;BDATE/2013/08/16 14:02;LCD/240320;CHIP/MT6260;KEY/Normal;TOUCH/0;CAMERA/1;SENSOR/0;DEV/HUAQIN60A_6464_11B_HW|0816;WAP Browser/MAUI (HTTP PGDL;HTTPS);GMOBI/001;MBOUNCE/002;MOMAGIC/003;INDEX/004;SPICEI2I/005;GAMELOFT/006;) ZS628PA_089A_V8_0_9 Release/2013.08.16 WAP Browser/MAUI (HTTP PGDL; HTTPS) Profile/ Q03C1-2.40 en-US" +202.69.11.26 - - [11/Sep/2014:21:59:10 +0000] "GET /blog/tags/X11 HTTP/1.1" 200 32742 "-" "HUAQIN60A_6464_11B_HW|0816 (MRE/3.1.00(1536);MAUI/PA_089A_V8_0_9;BDATE/2013/08/16 14:02;LCD/240320;CHIP/MT6260;KEY/Normal;TOUCH/0;CAMERA/1;SENSOR/0;DEV/HUAQIN60A_6464_11B_HW|0816;WAP Browser/MAUI (HTTP PGDL;HTTPS);GMOBI/001;MBOUNCE/002;MOMAGIC/003;INDEX/004;SPICEI2I/005;GAMELOFT/006;) ZS628PA_089A_V8_0_9 Release/2013.08.16 WAP Browser/MAUI (HTTP PGDL; HTTPS) Profile/ Q03C1-2.40 en-US" +202.69.11.26 - - [11/Sep/2014:21:59:15 +0000] "GET /reset.css HTTP/1.1" 200 1015 "-" "-" +202.69.11.26 - - [11/Sep/2014:21:59:17 +0000] "GET /images/jordan-80.png HTTP/1.1" 200 6146 "-" "HUAQIN60A_6464_11B_HW|0816 (MRE/3.1.00(1536);MAUI/PA_089A_V8_0_9;BDATE/2013/08/16 14:02;LCD/240320;CHIP/MT6260;KEY/Normal;TOUCH/0;CAMERA/1;SENSOR/0;DEV/HUAQIN60A_6464_11B_HW|0816;WAP Browser/MAUI (HTTP PGDL;HTTPS);GMOBI/001;MBOUNCE/002;MOMAGIC/003;INDEX/004;SPICEI2I/005;GAMELOFT/006;) ZS628PA_089A_V8_0_9 Release/2013.08.16 WAP Browser/MAUI (HTTP PGDL; HTTPS) Profile/ Q03C1-2.40 en-US" +202.69.11.26 - - [11/Sep/2014:21:59:19 +0000] "GET /style2.css HTTP/1.1" 200 4877 "-" "-" +5.153.24.131 - - [11/Sep/2014:21:59:18 +0000] "GET /files/logstash/logstash-1.1.0-monolithic.jar HTTP/1.1" 200 40923996 "-" "Chef Client/10.18.2 (ruby-1.8.7-p302; ohai-6.14.0; x86_64-linux; +http://opscode.com)" +198.46.149.143 - - [11/Sep/2014:21:59:29 +0000] "GET /blog/geekery/disabling-battery-in-ubuntu-vms.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+semicomplete%2Fmain+%28semicomplete.com+-+Jordan+Sissel%29 HTTP/1.1" 200 9316 "-" "Tiny Tiny RSS/1.11 (http://tt-rss.org/)" +198.46.149.143 - - [11/Sep/2014:21:59:29 +0000] "GET /blog/geekery/solving-good-or-bad-problems.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+semicomplete%2Fmain+%28semicomplete.com+-+Jordan+Sissel%29 HTTP/1.1" 200 10756 "-" "Tiny Tiny RSS/1.11 (http://tt-rss.org/)" +183.60.215.50 - - [11/Sep/2014:22:00:00 +0000] "GET /scripts/netcat-webserver HTTP/1.1" 200 182 "-" "Mozilla/5.0 (compatible; EasouSpider; +http://www.easou.com/search/spider.html)" diff --git a/qa/integration/fixtures/kafka_input_spec.yml b/qa/integration/fixtures/kafka_input_spec.yml new file mode 100644 index 00000000000..7e522454961 --- /dev/null +++ b/qa/integration/fixtures/kafka_input_spec.yml @@ -0,0 +1,24 @@ +--- +services: + - logstash + - kafka +config: |- + input { + kafka { + topics => "logstash_topic_plain" + auto_offset_reset => "earliest" + codec => "plain" + group_id => "ls10" + } + } + output { + #file { + # path => "kafka_input.output" + # flush_interval => 0 + # codec => line { format => "%{message}" } + #} + } + +input: kafka_input.input +setup_script: download_input.sh +teardown_script: diff --git a/qa/integration/fixtures/monitoring_api_spec.yml b/qa/integration/fixtures/monitoring_api_spec.yml new file mode 100644 index 00000000000..52bff4e9e95 --- /dev/null +++ b/qa/integration/fixtures/monitoring_api_spec.yml @@ -0,0 +1,4 @@ +--- +name: Metrics test +services: + - logstash diff --git a/qa/integration/framework/fixture.rb b/qa/integration/framework/fixture.rb new file mode 100644 index 00000000000..c22a1c0291b --- /dev/null +++ b/qa/integration/framework/fixture.rb @@ -0,0 +1,58 @@ +require_relative "../services/service_locator" + +# A class that holds all fixtures for a given test file. This deals with +# bootstrapping services, dealing with config files, inputs etc +class Fixture + attr_reader :input + attr_reader :config + attr_reader :actual_output + attr_reader :test_dir + + def initialize(test_file_location) + @test_file_location = test_file_location + @fixtures_dir = File.expand_path(File.join("..", "..", "fixtures"), __FILE__) + @settings = TestSettings.new(@test_file_location) + @service_locator = ServiceLocator.new(@settings) + setup_services + @config = @settings.get("config") + @input = File.join(@fixtures_dir, @settings.get("input")) if @settings.is_set?("input") + # this assumes current PWD. + # TODO: Remove this when we have an erb template for LS config so you can inject such stuff + @actual_output = @settings.get("actual_output") + end + + def get_service(name) + @service_locator.get_service(name) + end + + def output_equals_expected? + FileUtils.identical?(@actual_output, @input) + end + + def output_exists? + File.exists?(@actual_output) + end + + def teardown + File.delete(@actual_output) if @settings.is_set?(@actual_output) && output_exists? + puts "Tearing down services" + services = @settings.get("services") + services.each do |name| + @service_locator.get_service(name).teardown + end + end + + def setup_services + puts "Setting up services" + services = @settings.get("services") + services.each do |name| + @service_locator.get_service(name).setup + end + if @settings.is_set?("setup_script") + puts "Setting up test specific fixtures" + script = File.join(@fixtures_dir, @settings.get("setup_script")) + `#{script}` + end + end + +end diff --git a/qa/integration/framework/settings.rb b/qa/integration/framework/settings.rb new file mode 100644 index 00000000000..4b791294327 --- /dev/null +++ b/qa/integration/framework/settings.rb @@ -0,0 +1,36 @@ +require 'yaml' + +# All settings for a test, global and per test +class TestSettings + + def initialize(test_file_path) + # Setting for the entire test suite + integ_tests_dir = File.expand_path(File.join("..", ".."), __FILE__) + @suite_settings_file = File.join(integ_tests_dir, "suite.yml") + # Test specific settings + fixtures_dir = File.join(integ_tests_dir, "fixtures") + test_name = File.basename(test_file_path, ".*" ) + @tests_settings_file = File.join(fixtures_dir, "#{test_name}.yml") + # Global suite settings + @suite_settings = YAML.load_file(@suite_settings_file) + # Per test settings, where one can override stuff and define test specific config + @test_settings = YAML.load_file(@tests_settings_file) + if is_set?("config") + config_string = get("config").gsub('\n','').split.join(" ") + @test_settings["config"] = config_string + end + print "#{@test_settings}" + end + + def get(key) + if @test_settings.key?(key) + @test_settings[key] + else + @suite_settings[key] + end + end + + def is_set?(key) + @suite_settings.key?(key) || @test_settings.key?(key) + end +end diff --git a/qa/integration/integration_tests.gemspec b/qa/integration/integration_tests.gemspec new file mode 100644 index 00000000000..15261e61b16 --- /dev/null +++ b/qa/integration/integration_tests.gemspec @@ -0,0 +1,18 @@ +Gem::Specification.new do |s| + s.name = 'logstash-integration-tests' + s.version = '0.1.0' + s.licenses = ['Apache License (2.0)'] + s.summary = "Tests LS binary" + s.description = "This is a Logstash integration test helper gem" + s.authors = [ "Elastic"] + s.email = 'info@elastic.co' + s.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html" + + # Files + s.test_files = s.files.grep(%r{^(test|spec|features)/}) + # Gem dependencies + s.add_development_dependency 'elasticsearch' + s.add_development_dependency 'childprocess' + s.add_development_dependency 'rspec-wait' + s.add_development_dependency 'manticore' +end \ No newline at end of file diff --git a/qa/integration/services/elasticsearch.rb b/qa/integration/services/elasticsearch.rb new file mode 100644 index 00000000000..66963aca5de --- /dev/null +++ b/qa/integration/services/elasticsearch.rb @@ -0,0 +1,12 @@ +require 'elasticsearch' + +class ElasticsearchService < Service + def initialize(settings) + super("elasticsearch", settings) + end + + def get_client + Elasticsearch::Client.new(:hosts => "localhost:9200") + end + +end \ No newline at end of file diff --git a/qa/integration/services/elasticsearch_setup.sh b/qa/integration/services/elasticsearch_setup.sh new file mode 100755 index 00000000000..d1d0d44843c --- /dev/null +++ b/qa/integration/services/elasticsearch_setup.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -ex +current_dir="$(dirname "$0")" +source "${current_dir}/helpers.sh" + +if [ -n "${ES_VERSION+1}" ]; then + echo "Elasticsearch version is $ES_VERSION" + version=$ES_VERSION +else + version=5.0.0-alpha5 +fi + +setup_es $version +start_es diff --git a/qa/integration/services/elasticsearch_teardown.sh b/qa/integration/services/elasticsearch_teardown.sh new file mode 100755 index 00000000000..d5e2e108ea1 --- /dev/null +++ b/qa/integration/services/elasticsearch_teardown.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +my_dir="$(dirname "$0")" +source "$my_dir/helpers.sh" + +stop_es \ No newline at end of file diff --git a/qa/integration/services/helpers.sh b/qa/integration/services/helpers.sh new file mode 100755 index 00000000000..7a67e10d17f --- /dev/null +++ b/qa/integration/services/helpers.sh @@ -0,0 +1,62 @@ +#! /bin/bash + +current_dir="$(dirname "$0")" + +setup_es() { + if [ ! -d $current_dir/elasticsearch ]; then + local version=$1 + download_url=https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/$version/elasticsearch-$version.tar.gz + curl -sL $download_url > $current_dir/elasticsearch.tar.gz + mkdir $current_dir/elasticsearch + tar -xzf $current_dir/elasticsearch.tar.gz --strip-components=1 -C $current_dir/elasticsearch/. + rm $current_dir/elasticsearch.tar.gz + fi +} + +start_es() { + es_args=$@ + $current_dir/elasticsearch/bin/elasticsearch $es_args -p $current_dir/elasticsearch.pid > /tmp/elasticsearch.log 2>/dev/null & + count=120 + echo "Waiting for elasticsearch to respond..." + while ! curl --silent localhost:9200 && [[ $count -ne 0 ]]; do + count=$(( $count - 1 )) + [[ $count -eq 0 ]] && return 1 + sleep 1 + done + echo "Elasticsearch is Up !" + return 0 +} + +stop_es() { + pid=$(cat $current_dir/elasticsearch.pid) + [ "x$pid" != "x" ] && [ "$pid" -gt 0 ] + kill -SIGTERM $pid +} + +setup_kafka() { + local version=$1 + if [ ! -d $current_dir/kafka ]; then + echo "Downloading Kafka version $version" + curl -s -o $current_dir/kafka.tgz "http://ftp.wayne.edu/apache/kafka/$version/kafka_2.11-$version.tgz" + mkdir $current_dir/kafka && tar xzf $current_dir/kafka.tgz -C $current_dir/kafka --strip-components 1 + rm $current_dir/kafka.tgz + fi +} + +start_kafka() { + echo "Starting ZooKeeper" + $current_dir/kafka/bin/zookeeper-server-start.sh -daemon $current_dir/kafka/config/zookeeper.properties + sleep 3 + echo "Starting Kafka broker" + $current_dir/kafka/bin/kafka-server-start.sh -daemon $current_dir/kafka/config/server.properties --override delete.topic.enable=true + sleep 3 +} + +stop_kafka() { + echo "Stopping Kafka broker" + $current_dir/kafka/bin/kafka-server-stop.sh + sleep 2 + echo "Stopping zookeeper" + $current_dir/kafka/bin/zookeeper-server-stop.sh + sleep 2 +} \ No newline at end of file diff --git a/qa/integration/services/kafka.rb b/qa/integration/services/kafka.rb new file mode 100644 index 00000000000..9bddb25df0a --- /dev/null +++ b/qa/integration/services/kafka.rb @@ -0,0 +1,7 @@ +require_relative "service" + +class Kafka < Service + def initialize(settings) + super("kafka", settings) + end +end \ No newline at end of file diff --git a/qa/integration/services/kafka_setup.sh b/qa/integration/services/kafka_setup.sh new file mode 100755 index 00000000000..e793136fd0b --- /dev/null +++ b/qa/integration/services/kafka_setup.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -ex +current_dir="$(dirname "$0")" +source "${current_dir}/helpers.sh" + +if [ -n "${KAFKA_VERSION+1}" ]; then + echo "KAFKA_VERSION is $KAFKA_VERSION" + version=$KAFKA_VERSION +else + version=0.10.0.0 +fi + +setup_kafka $version +start_kafka + +# Set up topics +$current_dir/kafka/bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic logstash_topic_plain --zookeeper localhost:2181 +cat $current_dir/kafka_input.input | $current_dir/kafka/bin/kafka-console-producer.sh --topic logstash_topic_plain --broker-list localhost:9092 +echo "Kafka Setup complete" diff --git a/qa/integration/services/kafka_teardown.sh b/qa/integration/services/kafka_teardown.sh new file mode 100755 index 00000000000..4cbb694e2d5 --- /dev/null +++ b/qa/integration/services/kafka_teardown.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -ex +current_dir="$(dirname "$0")" +source "${current_dir}/helpers.sh" + +# delete test topic +echo "Deleting test topic in Kafka" +$current_dir/kafka/bin/kafka-topics.sh --delete --topic logstash_topic_plain --zookeeper localhost:2181 --if-exists +stop_kafka diff --git a/qa/integration/services/logstash.rb b/qa/integration/services/logstash.rb new file mode 100644 index 00000000000..59f40c001e0 --- /dev/null +++ b/qa/integration/services/logstash.rb @@ -0,0 +1,135 @@ +require_relative "monitoring_api" + +require "childprocess" +require "bundler" +require "tempfile" + +# A locally started Logstash service +class Logstash < Service + + STDIN_CONFIG = "input {stdin {}} output { }" + RETRY_ATTEMPTS = 10 + + @process = nil + + def initialize(settings) + super("logstash", settings) + + # if you need to point to a LS in different path + if @settings.is_set?("ls_home_abs_path") + @logstash_home = @settings.get("ls_home_abs_path") + else + # use the LS which was just built in source repo + ls_file = "logstash-" + @settings.get("ls_version") + ls_file += "-SNAPSHOT" if @settings.get("snapshot") + @logstash_home = File.expand_path(File.join("../../../../build",ls_file), __FILE__) + + puts "Using #{@logstash_home} as LS_HOME" + @logstash_bin = File.join("#{@logstash_home}", "bin/logstash") + raise "Logstash binary not found in path #{@logstash_home}" unless File.file? @logstash_bin + end + + @monitoring_api = MonitoringAPI.new + end + + def alive? + if @process.nil? || @process.exited? + raise "Logstash process is not up because of an errot, or it stopped" + else + @process.alive? + end + end + + # Starts a LS process in background with a given config file + # and shuts it down after input is completely processed + def start_background(config_file) + spawn_logstash("-e", config_file) + end + + # Given an input this pipes it to LS. Expects a stdin input in LS + def start_with_input(config, input) + puts "`cat #{input} | #{@logstash_bin} -e \'#{config}\'`" + Bundler.with_clean_env do + `cat #{input} | #{@logstash_bin} -e \'#{config}\'` + end + end + + def start_with_config_string(config) + spawn_logstash("-e", "#{config} ") + end + + # Can start LS in stdin and can send messages to stdin + # Useful to test metrics and such + def start_with_stdin + puts "Starting Logstash #{@logstash_bin} -e #{STDIN_CONFIG}" + Bundler.with_clean_env do + out = Tempfile.new("duplex") + puts out.path + out.sync = true + @process = ChildProcess.build(@logstash_bin, "-e", STDIN_CONFIG) + # pipe STDOUT and STDERR to a file + @process.io.stdout = @process.io.stderr = out + @process.duplex = true + @process.start + wait_for_logstash + puts "Logstash started with PID #{@process.pid}" if alive? + end + end + + def write_to_stdin(input) + if alive? + @process.io.stdin.puts(input) + end + end + + # Spawn LS as a child process + def spawn_logstash(cli_arg, value) + puts "Starting Logstash #{@logstash_bin} #{cli_arg} #{value}" + Bundler.with_clean_env do + @process = ChildProcess.build(@logstash_bin, cli_arg, value) + @process.io.inherit! + @process.start + wait_for_logstash + puts "Logstash started with PID #{@process.pid}" if @process.alive? + end + end + + def teardown + if !@process.nil? + # todo: put this in a sleep-wait loop to kill it force kill + @process.io.stdin.close + @process.stop + @process = nil + end + end + + # check if LS HTTP port is open + def is_port_open? + begin + s = TCPSocket.open("localhost", 9600) + s.close + return true + rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH + return false + end + end + + def monitoring_api + raise "Logstash is not up, but you asked for monitoring API" unless alive? + @monitoring_api + end + + # Wait until LS is started by repeatedly doing a socket connection to HTTP port + def wait_for_logstash + tries = RETRY_ATTEMPTS + while tries > 0 + if is_port_open? + break + else + sleep 1 + end + tries -= 1 + end + end + +end diff --git a/qa/integration/services/monitoring_api.rb b/qa/integration/services/monitoring_api.rb new file mode 100644 index 00000000000..291980f1bb4 --- /dev/null +++ b/qa/integration/services/monitoring_api.rb @@ -0,0 +1,25 @@ +require "manticore" +require "json" + +# Convenience class to interact with the HTTP monitoring APIs +class MonitoringAPI + + def pipeline_stats + resp = Manticore.get("http://localhost:9600/_node/stats/pipeline").body + stats_response = JSON.parse(resp) + stats_response["pipeline"] + end + + def event_stats + stats = pipeline_stats + stats["events"] + end + + def version + request = @agent.get("http://localhost:9600/") + response = request.execute + r = JSON.parse(response.body.read) + r["version"] + end + +end diff --git a/qa/integration/services/service.rb b/qa/integration/services/service.rb new file mode 100644 index 00000000000..f2c3525d2f6 --- /dev/null +++ b/qa/integration/services/service.rb @@ -0,0 +1,30 @@ +# Base class for a service like Kafka, ES, Logstash +class Service + + def initialize(name, settings) + @name = name + @settings = settings + @setup_script = File.expand_path("../#{name}_setup.sh", __FILE__) + @teardown_script = File.expand_path("../#{name}_teardown.sh", __FILE__) + end + + def setup + puts "Setting up #{@name} service" + if File.exists?(@setup_script) + `#{@setup_script}` + else + puts "Setup script not found for #{@name}" + end + puts "#{@name} service setup complete" + end + + def teardown + puts "Tearing down #{@name} service" + if File.exists?(@setup_script) + `#{@teardown_script}` + else + puts "Teardown script not found for #{@name}" + end + puts "#{@name} service teardown complete" + end +end diff --git a/qa/integration/services/service_locator.rb b/qa/integration/services/service_locator.rb new file mode 100644 index 00000000000..59d5b0dc2c7 --- /dev/null +++ b/qa/integration/services/service_locator.rb @@ -0,0 +1,19 @@ +require_relative "kafka" +require_relative "elasticsearch" + +# This is a registry used in Fixtures so a test can get back any service class +# at runtime +# All new services should register here +class ServiceLocator + + def initialize(settings) + @services = {} + @services["logstash"] = Logstash.new(settings) + @services["kafka"] = Kafka.new(settings) + @services["elasticsearch"] = ElasticsearchService.new(settings) + end + + def get_service(name) + @services[name] + end +end diff --git a/qa/integration/specs/es_output_how_spec.rb b/qa/integration/specs/es_output_how_spec.rb new file mode 100644 index 00000000000..f43b397910f --- /dev/null +++ b/qa/integration/specs/es_output_how_spec.rb @@ -0,0 +1,29 @@ +require_relative '../framework/fixture' +require_relative '../framework/settings' +require_relative '../services/logstash' + +describe "a config which indexes data into Elasticsearch", :integration => true do + + before(:all) { + @fixture = Fixture.new(__FILE__) + } + + after(:all) { + es_client = @fixture.get_service("elasticsearch").get_client + es_client.indices.delete(index: 'logstash-*') + @fixture.teardown + } + + it "can ingest 300K log lines" do + logstash_service = @fixture.get_service("logstash") + es_service = @fixture.get_service("elasticsearch") + puts "Ingesting 300K lines of apache logs to ES. This may make your CPU sing.." + logstash_service.start_with_input(@fixture.config, @fixture.input) + es_client = es_service.get_client + # now we test if all data was indexed by ES, but first refresh manually + es_client.indices.refresh + result = es_client.search(index: 'logstash-*', size: 0, q: '*') + expect(result["hits"]["total"]).to eq(300000) + end + +end diff --git a/qa/integration/specs/kafka_input_spec.rb b/qa/integration/specs/kafka_input_spec.rb new file mode 100644 index 00000000000..3a6332f0a6c --- /dev/null +++ b/qa/integration/specs/kafka_input_spec.rb @@ -0,0 +1,26 @@ +require_relative '../framework/fixture' +require_relative '../framework/settings' +require_relative '../services/logstash' +require "rspec/wait" + +describe "Kafka Input", :integration => true do + let(:timeout_seconds) { 5 } + before(:all) { + @fixture = Fixture.new(__FILE__) + } + + after(:all) { + @fixture.teardown + } + + it "can ingest 37 apache log lines from Kafka broker" do + logstash_service = @fixture.get_service("logstash") + logstash_service.start_background(@fixture.config) + + # TODO: File Output is busted so this test fails + #wait(timeout_seconds).for { @fixture.output_exists? }.to be true + #expect(@fixture.output_equals_expected?).to be true, + # lambda { "Expected File output to match what was ingested into Kafka." } + end + +end diff --git a/qa/integration/specs/monitoring_api_spec.rb b/qa/integration/specs/monitoring_api_spec.rb new file mode 100644 index 00000000000..e8901b22d4f --- /dev/null +++ b/qa/integration/specs/monitoring_api_spec.rb @@ -0,0 +1,25 @@ +require_relative '../framework/fixture' +require_relative '../framework/settings' +require_relative '../services/logstash' + +describe "Monitoring API", :integration => true do + before(:all) { + @fixture = Fixture.new(__FILE__) + } + + after(:all) { + @fixture.teardown + } + + it "can retrieve event stats" do + logstash_service = @fixture.get_service("logstash") + logstash_service.start_with_stdin + # TODO: get rid of this sleep, or loop + 5.times { logstash_service.write_to_stdin("Hello world") } + sleep 3 + # check metrics + result = logstash_service.monitoring_api.event_stats + expect(result["in"]).to eq(5) + end + +end diff --git a/qa/integration/suite.yml b/qa/integration/suite.yml new file mode 100644 index 00000000000..d9e45737638 --- /dev/null +++ b/qa/integration/suite.yml @@ -0,0 +1,4 @@ +--- +ls_version: 5.0.0-alpha6 +snapshot: true +#ls_home_abs_path: /tmp/logstash-5.0.0-alpha6 \ No newline at end of file From aa957b35947dff726c9248d55988e7843a0dc1ad Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 24 Aug 2016 15:39:31 +0000 Subject: [PATCH 366/632] Update README.md Fixes #5917 --- qa/integration/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/integration/README.md b/qa/integration/README.md index 26a78e0e368..b7a1fe03dbb 100644 --- a/qa/integration/README.md +++ b/qa/integration/README.md @@ -7,7 +7,7 @@ These set of tests are full integration tests as in they start LS from a binary, * From LS_HOME source directory, run `rake artifact:tar` * `cd build` * Unzip the recently built file: `tar xvf logstash-.tar.gz` - +* `cd LS_HOME/qa/integration` * `bundle install` This will install test specific dependency gems. * You are ready to run any tests From d71112da0e448d0aa64375cc01380d7e0c473352 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 24 Aug 2016 15:54:01 +0000 Subject: [PATCH 367/632] Cleanup of print messages Fixes #5917 --- qa/integration/framework/settings.rb | 1 - qa/integration/services/logstash.rb | 2 -- qa/integration/specs/monitoring_api_spec.rb | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/qa/integration/framework/settings.rb b/qa/integration/framework/settings.rb index 4b791294327..8d50a60ac8a 100644 --- a/qa/integration/framework/settings.rb +++ b/qa/integration/framework/settings.rb @@ -19,7 +19,6 @@ def initialize(test_file_path) config_string = get("config").gsub('\n','').split.join(" ") @test_settings["config"] = config_string end - print "#{@test_settings}" end def get(key) diff --git a/qa/integration/services/logstash.rb b/qa/integration/services/logstash.rb index 59f40c001e0..5bdb0a2fe81 100644 --- a/qa/integration/services/logstash.rb +++ b/qa/integration/services/logstash.rb @@ -48,7 +48,6 @@ def start_background(config_file) # Given an input this pipes it to LS. Expects a stdin input in LS def start_with_input(config, input) - puts "`cat #{input} | #{@logstash_bin} -e \'#{config}\'`" Bundler.with_clean_env do `cat #{input} | #{@logstash_bin} -e \'#{config}\'` end @@ -64,7 +63,6 @@ def start_with_stdin puts "Starting Logstash #{@logstash_bin} -e #{STDIN_CONFIG}" Bundler.with_clean_env do out = Tempfile.new("duplex") - puts out.path out.sync = true @process = ChildProcess.build(@logstash_bin, "-e", STDIN_CONFIG) # pipe STDOUT and STDERR to a file diff --git a/qa/integration/specs/monitoring_api_spec.rb b/qa/integration/specs/monitoring_api_spec.rb index e8901b22d4f..7394b77da0d 100644 --- a/qa/integration/specs/monitoring_api_spec.rb +++ b/qa/integration/specs/monitoring_api_spec.rb @@ -14,8 +14,8 @@ it "can retrieve event stats" do logstash_service = @fixture.get_service("logstash") logstash_service.start_with_stdin - # TODO: get rid of this sleep, or loop 5.times { logstash_service.write_to_stdin("Hello world") } + # TODO: get rid of this sleep, or loop sleep 3 # check metrics result = logstash_service.monitoring_api.event_stats From 735f684aa5dab1034a17d9436dc5b40161495ef4 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 24 Aug 2016 17:56:44 +0000 Subject: [PATCH 368/632] Add more setup info Fixes #5917 --- qa/integration/README.md | 47 ++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/qa/integration/README.md b/qa/integration/README.md index b7a1fe03dbb..9018a208c95 100644 --- a/qa/integration/README.md +++ b/qa/integration/README.md @@ -1,14 +1,39 @@ -## Logstash Integration Tests +## Logstash Integration Tests aka RATS -These set of tests are full integration tests as in they start LS from a binary, run config using `-e` and can use any external services +These set of tests are full integration tests as in: they can start LS from a binary, run configs using `-e` and can use any external services like Kafka, ES and S3. This framework is hybrid -- a combination of bash scripts (to mainly setup services), Ruby service files, and RSpec. All test assertions are done in RSpec. -## Setting up +## Dependencies +* An existing Logstash binary, defaults to `LS_HOME/build/logstash-` +* `rspec` +* Not a VM in sight -* From LS_HOME source directory, run `rake artifact:tar` -* `cd build` -* Unzip the recently built file: `tar xvf logstash-.tar.gz` -* `cd LS_HOME/qa/integration` -* `bundle install` -This will install test specific dependency gems. -* You are ready to run any tests -* `rspec specs/es_output_how_spec.rb` +## Preparing a test run + +1. If you already have a LS binary in `LS_HOME/build/logstash-`, skip to step 5 +2. From Logstash git source directory or `LS_HOME` run `rake artifact:tar` to build a package +2. Untar the newly built package +3. `cd build` +4. `tar xvf logstash-.tar.gz` +5. `cd LS_HOME/qa/integration` +6. `bundle install`: This will install test dependency gems. + +You are now ready to run any tests from `qa/integration`. +* Run all tests: `rspec specs/*` +* Run single test: `rspec specs/es_output_how_spec.rb` + +### Directory Layout + +* `fixtures`: In this dir you will test settings in form of `test_name.yml`. Here you specify services to run, LS config, test specific scripts ala `.travis.yml` +* `services`: This dir has bash scripts that download and bootstrap binaries for services. This is where services like ES will be downloaded and run from. Service can have 3 files: `_setup.sh`, `_teardown.sh` and ``.rb. The bash scripts deal with downloading and bootstrapping, but the ruby source will trigger them from the test as a shell out (using backticks). The tests are blocked until the setup/teardown completes. For example, Elasticsearch service has `elasticsearch_setup.sh`, `elasticsearch_teardown.sh` and `elasticsearch.rb`. The service name in yml is "elasticsearch". +* `framework`: Test framework source code. +* `specs`: Rspec tests that use services and validates stuff + +### Adding a new test + +1. Creating a new test -- lets call it "test_file_input". This brings up LS to read from a file and assert if file contents were as expected. +2. You'll have to create a yml file in `fixtures` called `test_file_input_spec.yml`. Here you define any external services you need and any LS config. +3. Create a corresponding `test_file_input_spec.rb` in `specs` folder and use the `fixtures` object to get all services, config etc. You can start LS, and assume all external services have already been started. Write rspec code to validate. + +## Future Improvements + +1. Perform setup and teardown from Ruby and get rid of bash files altogether. From b082beea64b6d5c14878cc338156ae477c1fcaaa Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 24 Aug 2016 17:57:37 +0000 Subject: [PATCH 369/632] Update README.md Fixes #5917 --- qa/integration/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qa/integration/README.md b/qa/integration/README.md index 9018a208c95..eb674a2771f 100644 --- a/qa/integration/README.md +++ b/qa/integration/README.md @@ -2,10 +2,11 @@ These set of tests are full integration tests as in: they can start LS from a binary, run configs using `-e` and can use any external services like Kafka, ES and S3. This framework is hybrid -- a combination of bash scripts (to mainly setup services), Ruby service files, and RSpec. All test assertions are done in RSpec. +No VMs, all tests run locally. + ## Dependencies * An existing Logstash binary, defaults to `LS_HOME/build/logstash-` * `rspec` -* Not a VM in sight ## Preparing a test run From 761ce30966422ae523a3a2acdcd1aabcbad17303 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 24 Aug 2016 18:37:39 +0000 Subject: [PATCH 370/632] Update README.md Fixes #5917 --- qa/integration/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qa/integration/README.md b/qa/integration/README.md index eb674a2771f..2b411cf5156 100644 --- a/qa/integration/README.md +++ b/qa/integration/README.md @@ -31,9 +31,10 @@ You are now ready to run any tests from `qa/integration`. ### Adding a new test -1. Creating a new test -- lets call it "test_file_input". This brings up LS to read from a file and assert if file contents were as expected. +1. Creating a new test -- lets use as example. Call it "test_file_input" which brings up LS to read from a file and assert file contents (file output) were as expected. 2. You'll have to create a yml file in `fixtures` called `test_file_input_spec.yml`. Here you define any external services you need and any LS config. -3. Create a corresponding `test_file_input_spec.rb` in `specs` folder and use the `fixtures` object to get all services, config etc. You can start LS, and assume all external services have already been started. Write rspec code to validate. +3. Create a corresponding `test_file_input_spec.rb` in `specs` folder and use the `fixtures` object to get all services, config etc. The `.yml` and rspec file has to be the same name for the settings to be picked up. You can start LS inside the tests and assume all external services have already been started. +4. Write rspec code to validate. ## Future Improvements From 3b5ac6008ba17bd6c46cc612f2a483fb28b9215d Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 8 Sep 2016 14:03:46 -0400 Subject: [PATCH 371/632] Adding integration testing for filebeat and make the test a bit more flexible The test includes theses scenario - No TLS - TLS Server Auth - TLS Mutual Auth Theses theses test relies on a certicate include in the fixtures to correctly run, there is also a script to generate them. Make the ServiceLocator class is now more flexible and use the pattern matching to create the registry on the fly Fixes #5887 Fixes #5917 --- qa/integration/.gitignore | 4 + qa/integration/fixtures/beats_input_spec.yml | 33 +++++ .../fixtures/certificates/certificate.crt | 19 +++ .../fixtures/certificates/certificate.key | 28 ++++ .../certificates/generate_certificate.sh | 2 + .../{kafka_input.input => how_sample.input} | 0 qa/integration/fixtures/kafka_input_spec.yml | 2 +- qa/integration/framework/fixture.rb | 29 +++- qa/integration/framework/settings.rb | 13 +- qa/integration/integration_tests.gemspec | 5 +- qa/integration/services/filebeat_service.rb | 51 +++++++ qa/integration/services/filebeat_setup.sh | 25 ++++ .../services/{kafka.rb => kafka_service.rb} | 4 +- .../{logstash.rb => logstash_service.rb} | 4 +- qa/integration/services/service_locator.rb | 23 ++- qa/integration/specs/beats_input_spec.rb | 136 ++++++++++++++++++ 16 files changed, 361 insertions(+), 17 deletions(-) create mode 100644 qa/integration/.gitignore create mode 100644 qa/integration/fixtures/beats_input_spec.yml create mode 100644 qa/integration/fixtures/certificates/certificate.crt create mode 100644 qa/integration/fixtures/certificates/certificate.key create mode 100755 qa/integration/fixtures/certificates/generate_certificate.sh rename qa/integration/fixtures/{kafka_input.input => how_sample.input} (100%) create mode 100644 qa/integration/services/filebeat_service.rb create mode 100755 qa/integration/services/filebeat_setup.sh rename qa/integration/services/{kafka.rb => kafka_service.rb} (73%) rename qa/integration/services/{logstash.rb => logstash_service.rb} (97%) create mode 100644 qa/integration/specs/beats_input_spec.rb diff --git a/qa/integration/.gitignore b/qa/integration/.gitignore new file mode 100644 index 00000000000..77f3f93327e --- /dev/null +++ b/qa/integration/.gitignore @@ -0,0 +1,4 @@ +/services/filebeat +/fixtures/how.input +/services/elasticsearch +/services/kafka diff --git a/qa/integration/fixtures/beats_input_spec.yml b/qa/integration/fixtures/beats_input_spec.yml new file mode 100644 index 00000000000..da8811e4986 --- /dev/null +++ b/qa/integration/fixtures/beats_input_spec.yml @@ -0,0 +1,33 @@ +--- +services: + - filebeat + - logstash +config: + without_tls: |- + input { + beats { + port => 5044 + } + } + tls_server_auth: |- + input { + beats { + ssl => true + port => 5044 + ssl_certificate => '<%=options[:ssl_certificate]%>' + ssl_key => '<%=options[:ssl_key]%>' + } + } + tls_mutual_auth: |- + input { + beats { + ssl => true + port => 5044 + ssl_certificate => '<%=options[:ssl_certificate]%>' + ssl_key => '<%=options[:ssl_key]%>' + ssl_verify_mode => "peer" + } + } +input: how_sample.input +setup_script: download_input.sh +teardown_script: diff --git a/qa/integration/fixtures/certificates/certificate.crt b/qa/integration/fixtures/certificates/certificate.crt new file mode 100644 index 00000000000..3bdf1b6f8db --- /dev/null +++ b/qa/integration/fixtures/certificates/certificate.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIC/TCCAeWgAwIBAgIJANC15+/gKMqlMA0GCSqGSIb3DQEBCwUAMBQxEjAQBgNV +BAMMCWxvY2FsaG9zdDAgFw0xNjA5MTIxMzU5MzBaGA8yMTE2MDgxOTEzNTkzMFow +FDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAza/8Zl6B7bYTQ+cMkHdX0Nu7yJxSx9Ymt9UKEM7YWoyg0EAqSjelzzLU +jeZnIWSMTdE+rbqBeG2GUA6eoT0N57KpGVPIiYGtq9r+mmmke/D3jG3q3OeKt3WE +ClvM1msjcgSQ+buF2Ew24yNbtTFPuSnbjTgTcJBGxVnQRD6PKH3654q+ydp2scp/ +USZTAZL7p5JQbz6fNXwD67Uw5AZmHnu5djSHL6fdw2iw6UIXnaBLmxT8j/kX3WMj +1FxsTs38vJIYX3IDR/XJduk8+/9ru0t8fe6nckpVMzXFhokFk2dVNJVkii+lZqGf +AOsi7fePuFhj3PP+ms601q2CaCioDwIDAQABo1AwTjAdBgNVHQ4EFgQUnqDfyu95 +7s73TyM0lwCIkGG80MkwHwYDVR0jBBgwFoAUnqDfyu957s73TyM0lwCIkGG80Mkw +DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEACmrmIePvYzB9lEM7laFt +XDvOrH8mUCqGIF2S653GFIJULSmG5HdxiHyCzT8KL8XC0AJsUEQsMjV1wgW0Ttg/ +OsT+69Tf1TCuPpYyz8C+fBEVZnjgKtfbVlc8cB1M/5y08v/eyn+Od30D44dYdgVC +IgIX8xNtcEb0QcRiO3dLBE8aoRMvdOK8AnQDSrHjbyLx/wFyTsgeF2P/duf7qfOc +ouYW6nQudZvb/UxiImJmYraZ8xSZUf0FuG53Z4HZHFeYJeMtgO0Myws2VeeGwmo3 +/8P40pyaaGrde+cXb1M22XdI6ehcvyJ7pvft3wvNt269URKZSnW5GN6+pSP3vnhl +XA== +-----END CERTIFICATE----- diff --git a/qa/integration/fixtures/certificates/certificate.key b/qa/integration/fixtures/certificates/certificate.key new file mode 100644 index 00000000000..c571d024b86 --- /dev/null +++ b/qa/integration/fixtures/certificates/certificate.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDNr/xmXoHtthND +5wyQd1fQ27vInFLH1ia31QoQzthajKDQQCpKN6XPMtSN5mchZIxN0T6tuoF4bYZQ +Dp6hPQ3nsqkZU8iJga2r2v6aaaR78PeMberc54q3dYQKW8zWayNyBJD5u4XYTDbj +I1u1MU+5KduNOBNwkEbFWdBEPo8offrnir7J2naxyn9RJlMBkvunklBvPp81fAPr +tTDkBmYee7l2NIcvp93DaLDpQhedoEubFPyP+RfdYyPUXGxOzfy8khhfcgNH9cl2 +6Tz7/2u7S3x97qdySlUzNcWGiQWTZ1U0lWSKL6VmoZ8A6yLt94+4WGPc8/6azrTW +rYJoKKgPAgMBAAECggEBAJDiqlQhtjwPyTpHgl4w8ra4UWpaUyVZACT1+AUm7te5 +v31x9VgaIr30/CyIY5TuErat8gzGF3UREU9LPQouy6CuBNdGYTgbFI690CJM0ARO +FNHii1HX96qLKNtzFrLi/TDPbp+7K+jUpsUQnwTfG10+0tyC546e0nspbL7loknO +TsDF8JRtJAoP3Q018xeAVbqnzwMCRT8DR3Qj4Q91xPayK8QCZ/IpO9+79YNCkwez +AFxZPrhu0pgushgXW2aHFNaGWH3aw15ITcxjiZKfzjAvhHadNm4k5EznC0I3fvjf +CNb0YTOx5WiOpeaa2WTmM7cPqqKYR30ZKwlhSaoZFYECgYEA/9p8mSMS/6PzxgML +kIBRpBW9ba6NQDQTIZNBT9rcGSWHE26XUs+LGEhzhPOAFloRoxyxt35Z/WyuPzpW +wleHDCBDxzGKm2DX4dMnETMK1hrbApKoHIw2VGKTCt+4N9wGD/JB/5BeJIFWETO5 +J7hgknUsRRQbobn8bnEnpPU6Ox8CgYEAzc4k1N/dk+URtcte4N0c+rM6lHrQKHQQ +f40SUR/Atoh0Vd/2k0QXGpBz6Vo3+icymnp5kVINEFS0v0xxwjM+Ln0lIYgfE0uw +29XLDhgA72sr4vXNd/WFOkctw37DIgyoZeZPFx4L1eH3sXDTfKQ2bbeQSKa2oosm +1ModklKY5RECgYAGiwPctrTprLuzOKi3DVEJLTUm9OvP1IUYurdU33f5fKgzqwRb +rcsU1+V8ZO3FpJAG59jzpFuQy5K5Mzi8x5hAiyKwmWe+CX/72naJThDc4Nrw+ecq +s7s/9TVldcs0QoA1MDDX5E1ECbq1vejiRyjRFgYHzjfWrvbxrBsjcNIIaQKBgQCG +/RF3dya03OkS3sPqpd1eKrTfsvZZslcn8nXzM+qJT1NPCEmJKn4k9F6yznQs5gzw ++ihGwxTCg2zSlOeAw2+jun3iUpBfbaQhbUd0hRYH87mjcipE5otuQEWqFrkS2k6S +F9AEj7afoUl/30s4U9VHfcFrhb4BO1hK9g8TbI3QoQKBgQD5rMVNynisRRVaM8Uh +dp0pf4NlDvAnL2xZAAFhZgNMCkR6luZzl9f4NPpLQYYg48ftbzDkYf/CGSA2ROCo +l34MFl51A2tX9dpNDGgEq0kunEFgfiOL0nC+oWoiKqexQpEmyep4i48Bt507MOld +abV3TDYKy6RlLfMTi14qZyYQvQ== +-----END PRIVATE KEY----- diff --git a/qa/integration/fixtures/certificates/generate_certificate.sh b/qa/integration/fixtures/certificates/generate_certificate.sh new file mode 100755 index 00000000000..7de301b26cc --- /dev/null +++ b/qa/integration/fixtures/certificates/generate_certificate.sh @@ -0,0 +1,2 @@ +#!/bin/sh +openssl req -subj '/CN=localhost/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout certificate.key -out certificate.crt diff --git a/qa/integration/fixtures/kafka_input.input b/qa/integration/fixtures/how_sample.input similarity index 100% rename from qa/integration/fixtures/kafka_input.input rename to qa/integration/fixtures/how_sample.input diff --git a/qa/integration/fixtures/kafka_input_spec.yml b/qa/integration/fixtures/kafka_input_spec.yml index 7e522454961..533014e971b 100644 --- a/qa/integration/fixtures/kafka_input_spec.yml +++ b/qa/integration/fixtures/kafka_input_spec.yml @@ -19,6 +19,6 @@ config: |- #} } -input: kafka_input.input +input: how_sample.input setup_script: download_input.sh teardown_script: diff --git a/qa/integration/framework/fixture.rb b/qa/integration/framework/fixture.rb index c22a1c0291b..b057b149ef9 100644 --- a/qa/integration/framework/fixture.rb +++ b/qa/integration/framework/fixture.rb @@ -4,23 +4,47 @@ # bootstrapping services, dealing with config files, inputs etc class Fixture attr_reader :input - attr_reader :config attr_reader :actual_output attr_reader :test_dir + class TemplateContext + attr_reader :options + + def initialize(options) + @options = options + end + + def get_binding + binding + end + end + def initialize(test_file_location) @test_file_location = test_file_location @fixtures_dir = File.expand_path(File.join("..", "..", "fixtures"), __FILE__) @settings = TestSettings.new(@test_file_location) @service_locator = ServiceLocator.new(@settings) setup_services - @config = @settings.get("config") @input = File.join(@fixtures_dir, @settings.get("input")) if @settings.is_set?("input") # this assumes current PWD. # TODO: Remove this when we have an erb template for LS config so you can inject such stuff @actual_output = @settings.get("actual_output") end + def config(node = "root", options = nil) + if node == "root" + config = @settings.get("config") + else + config = @settings.get("config")[node] + end + + if options != nil + ERB.new(config, nil, "-").result(TemplateContext.new(options).get_binding) + else + config + end + end + def get_service(name) @service_locator.get_service(name) end @@ -54,5 +78,4 @@ def setup_services `#{script}` end end - end diff --git a/qa/integration/framework/settings.rb b/qa/integration/framework/settings.rb index 8d50a60ac8a..fe8dc0ced20 100644 --- a/qa/integration/framework/settings.rb +++ b/qa/integration/framework/settings.rb @@ -15,9 +15,18 @@ def initialize(test_file_path) @suite_settings = YAML.load_file(@suite_settings_file) # Per test settings, where one can override stuff and define test specific config @test_settings = YAML.load_file(@tests_settings_file) + if is_set?("config") - config_string = get("config").gsub('\n','').split.join(" ") - @test_settings["config"] = config_string + if get("config").is_a?(Hash) + tmp = {} + get("config").each do |k, v| + tmp[k] = get("config")[k].gsub('\n','').split.join(" ") + end + @test_settings["config"] = tmp + else + config_string = get("config").gsub('\n','').split.join(" ") + @test_settings["config"] = config_string + end end end diff --git a/qa/integration/integration_tests.gemspec b/qa/integration/integration_tests.gemspec index 15261e61b16..fcd8a4e18cb 100644 --- a/qa/integration/integration_tests.gemspec +++ b/qa/integration/integration_tests.gemspec @@ -10,9 +10,12 @@ Gem::Specification.new do |s| # Files s.test_files = s.files.grep(%r{^(test|spec|features)/}) + # Gem dependencies s.add_development_dependency 'elasticsearch' s.add_development_dependency 'childprocess' s.add_development_dependency 'rspec-wait' s.add_development_dependency 'manticore' -end \ No newline at end of file + s.add_development_dependency 'stud' + s.add_development_dependency 'pry' +end diff --git a/qa/integration/services/filebeat_service.rb b/qa/integration/services/filebeat_service.rb new file mode 100644 index 00000000000..a913f311845 --- /dev/null +++ b/qa/integration/services/filebeat_service.rb @@ -0,0 +1,51 @@ +# encoding: utf-8 +class FilebeatService < Service + FILEBEAT_CMD = [File.join(File.dirname(__FILE__), "filebeat", "filebeat"), "-c"] + + class BackgroundProcess + def initialize(cmd) + @client_out = Stud::Temporary.file + @client_out.sync + + @process = ChildProcess.build(*cmd) + @process.duplex = true + @process.io.stdout = @process.io.stderr = @client_out + ChildProcess.posix_spawn = true + end + + def start + @process.start + sleep(0.1) + self + end + + def execution_output + @client_out.rewind + + # can be used to helper debugging when a test fails + @execution_output = @client_out.read + end + + def stop + begin + @process.poll_for_exit(5) + rescue ChildProcess::TimeoutError + Process.kill("KILL", @process.pid) + end + end + end + + def initialize(settings) + super("filebeat", settings) + end + + def run(config_path) + cmd = FILEBEAT_CMD.dup << config_path + puts "Starting Filebeat with #{cmd.join(" ")}" + @process = BackgroundProcess.new(cmd).start + end + + def stop + @process.stop + end +end diff --git a/qa/integration/services/filebeat_setup.sh b/qa/integration/services/filebeat_setup.sh new file mode 100755 index 00000000000..63649ae2d8f --- /dev/null +++ b/qa/integration/services/filebeat_setup.sh @@ -0,0 +1,25 @@ +#!/bin/bash +set -ex +current_dir="$(dirname "$0")" + +if [ -n "${FILEBEAT_VERSION}" ]; then + echo "Filebeat version is $FILEBEAT_VERSION" + version=$FILEBEAT_VERSION +else + version=5.0.0-alpha5 +fi + +setup_fb() { + local version=$1 + platform=`uname -s | tr '[:upper:]' '[:lower:]'` + architecture=`uname -m | tr '[:upper:]' '[:lower:]'` + download_url=https://download.elastic.co/beats/filebeat/filebeat-$version-$platform-$architecture.tar.gz + curl -sL $download_url > $current_dir/filebeat.tar.gz + mkdir $current_dir/filebeat + tar -xzf $current_dir/filebeat.tar.gz --strip-components=1 -C $current_dir/filebeat/. + rm $current_dir/filebeat.tar.gz +} + +if [ ! -d $current_dir/filebeat ]; then + setup_fb $version +fi diff --git a/qa/integration/services/kafka.rb b/qa/integration/services/kafka_service.rb similarity index 73% rename from qa/integration/services/kafka.rb rename to qa/integration/services/kafka_service.rb index 9bddb25df0a..71908f9acbb 100644 --- a/qa/integration/services/kafka.rb +++ b/qa/integration/services/kafka_service.rb @@ -1,7 +1,7 @@ require_relative "service" -class Kafka < Service +class KafkaService < Service def initialize(settings) super("kafka", settings) end -end \ No newline at end of file +end diff --git a/qa/integration/services/logstash.rb b/qa/integration/services/logstash_service.rb similarity index 97% rename from qa/integration/services/logstash.rb rename to qa/integration/services/logstash_service.rb index 5bdb0a2fe81..0c1892d4f91 100644 --- a/qa/integration/services/logstash.rb +++ b/qa/integration/services/logstash_service.rb @@ -5,7 +5,7 @@ require "tempfile" # A locally started Logstash service -class Logstash < Service +class LogstashService < Service STDIN_CONFIG = "input {stdin {}} output { }" RETRY_ATTEMPTS = 10 @@ -95,7 +95,7 @@ def spawn_logstash(cli_arg, value) def teardown if !@process.nil? # todo: put this in a sleep-wait loop to kill it force kill - @process.io.stdin.close + @process.io.stdin.close rescue nil @process.stop @process = nil end diff --git a/qa/integration/services/service_locator.rb b/qa/integration/services/service_locator.rb index 59d5b0dc2c7..ff537ebcd2a 100644 --- a/qa/integration/services/service_locator.rb +++ b/qa/integration/services/service_locator.rb @@ -1,19 +1,30 @@ -require_relative "kafka" -require_relative "elasticsearch" +# encoding: utf-8 +require_relative "service" # This is a registry used in Fixtures so a test can get back any service class # at runtime # All new services should register here class ServiceLocator + FILE_PATTERN = "_service.rb" def initialize(settings) @services = {} - @services["logstash"] = Logstash.new(settings) - @services["kafka"] = Kafka.new(settings) - @services["elasticsearch"] = ElasticsearchService.new(settings) + available_services do |name, klass| + @services[name] = klass.new(settings) + end end def get_service(name) - @services[name] + @services.fetch(name) + end + + def available_services + Dir.glob(File.join(File.dirname(__FILE__), "*#{FILE_PATTERN}")).each do |f| + require f + basename = File.basename(f).gsub(/#{FILE_PATTERN}$/, "") + service_name = basename.downcase + klass = Object.const_get("#{service_name.capitalize}Service") + yield service_name, klass + end end end diff --git a/qa/integration/specs/beats_input_spec.rb b/qa/integration/specs/beats_input_spec.rb new file mode 100644 index 00000000000..fa61d82017c --- /dev/null +++ b/qa/integration/specs/beats_input_spec.rb @@ -0,0 +1,136 @@ +require_relative '../framework/fixture' +require_relative '../framework/settings' +require "stud/temporary" +require "stud/try" +require "rspec/wait" +require "yaml" +require "fileutils" + +describe "Beat Input", :integration => true do + before(:all) do + @fixture = Fixture.new(__FILE__) + end + + after :each do + logstash_service.teardown + filebeat_service.stop + end + + let(:max_retry) { 120 } + let(:registry_file) { Stud::Temporary.file.path } + let(:logstash_service) { @fixture.get_service("logstash") } + let(:filebeat_service) { @fixture.get_service("filebeat") } + let(:log_path) do + tmp_path = Stud::Temporary.file.path #get around ignore older completely + source = File.expand_path(@fixture.input) + FileUtils.cp(source, tmp_path) + tmp_path + end + let(:number_of_events) do + File.open(log_path, "r").readlines.size + end + + shared_examples "send events" do + let(:filebeat_config_path) do + file = Stud::Temporary.file + file.write(YAML.dump(filebeat_config)) + file.close + file.path + end + + + it "sucessfully send events" do + logstash_service.start_background(logstash_config) + process = filebeat_service.run(filebeat_config_path) + + # It can take some delay for filebeat to connect to logstash and start sending data. + # Its possible that logstash isn't completely initialized here, we can get "Connection Refused" + begin + sleep(1) while (result = logstash_service.monitoring_api.event_stats).nil? + rescue + retry + end + + Stud.try(max_retry.times, RSpec::Expectations::ExpectationNotMetError) do + result = logstash_service.monitoring_api.event_stats + expect(result["in"]).to eq(number_of_events) + end + end + end + + context "Without TLS" do + let(:logstash_config) { @fixture.config("without_tls") } + let(:filebeat_config) do + { + "filebeat" => { + "prospectors" => [{ "paths" => [log_path], "input_type" => "log" }], + "registry_file" => registry_file, + "scan_frequency" => "1s" + }, + "output" => { + "logstash" => { "hosts" => ["localhost:5044"] }, + "logging" => { "level" => "debug" } + } + } + end + + include_examples "send events" + end + + context "With TLS" do + let(:certificate_directory) { File.expand_path(File.join(File.dirname(__FILE__), "..", "fixtures", "certificates")) } + let(:certificate) { File.join(certificate_directory, "certificate.crt") } + let(:ssl_key) { File.join(certificate_directory, "certificate.key") } + let(:certificate_authorities) { [certificate] } + + context "Server auth" do + let(:logstash_config) { @fixture.config("tls_server_auth", { :ssl_certificate => certificate, :ssl_key => ssl_key}) } + let(:filebeat_config) do + { + "filebeat" => { + "prospectors" => [{ "paths" => [log_path], "input_type" => "log" }], + "registry_file" => registry_file, + "scan_frequency" => "1s" + }, + "output" => { + "logstash" => { + "hosts" => ["localhost:5044"], + "tls" => { + "certificate_authorities" => certificate_authorities + } + }, + "logging" => { "level" => "debug" } + } + } + end + + include_examples "send events" + end + + context "Mutual auth" do + let(:logstash_config) { @fixture.config("tls_mutual_auth", { :ssl_certificate => certificate, :ssl_key => ssl_key}) } + let(:filebeat_config) do + { + "filebeat" => { + "prospectors" => [{ "paths" => [log_path], "input_type" => "log" }], + "registry_file" => registry_file, + "scan_frequency" => "1s" + }, + "output" => { + "logstash" => { + "hosts" => ["localhost:5044"], + "tls" => { + "certificate_authorities" => certificate_authorities, + "certificate" => certificate, + "certificate_key" => ssl_key + } + }, + "logging" => { "level" => "debug" } + } + } + end + + include_examples "send events" + end + end +end From 54f8cc1bb0ba4a49b8921f1097466b160c4aa89e Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 15 Sep 2016 18:42:46 -0400 Subject: [PATCH 372/632] QA Integration dont ship with certificates (#5928) We are removing the pre generated certificate from the repository, the certificates needed for the test will be generated before downloading filebeat. Fixes #5917 --- qa/integration/.gitignore | 1 + .../fixtures/certificates/certificate.crt | 19 ------------- .../fixtures/certificates/certificate.key | 28 ------------------- .../certificates/generate_certificate.sh | 2 -- qa/integration/services/filebeat_setup.sh | 7 +++++ 5 files changed, 8 insertions(+), 49 deletions(-) delete mode 100644 qa/integration/fixtures/certificates/certificate.crt delete mode 100644 qa/integration/fixtures/certificates/certificate.key delete mode 100755 qa/integration/fixtures/certificates/generate_certificate.sh diff --git a/qa/integration/.gitignore b/qa/integration/.gitignore index 77f3f93327e..9c614afcc31 100644 --- a/qa/integration/.gitignore +++ b/qa/integration/.gitignore @@ -2,3 +2,4 @@ /fixtures/how.input /services/elasticsearch /services/kafka +/fixtures/certificates diff --git a/qa/integration/fixtures/certificates/certificate.crt b/qa/integration/fixtures/certificates/certificate.crt deleted file mode 100644 index 3bdf1b6f8db..00000000000 --- a/qa/integration/fixtures/certificates/certificate.crt +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC/TCCAeWgAwIBAgIJANC15+/gKMqlMA0GCSqGSIb3DQEBCwUAMBQxEjAQBgNV -BAMMCWxvY2FsaG9zdDAgFw0xNjA5MTIxMzU5MzBaGA8yMTE2MDgxOTEzNTkzMFow -FDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAza/8Zl6B7bYTQ+cMkHdX0Nu7yJxSx9Ymt9UKEM7YWoyg0EAqSjelzzLU -jeZnIWSMTdE+rbqBeG2GUA6eoT0N57KpGVPIiYGtq9r+mmmke/D3jG3q3OeKt3WE -ClvM1msjcgSQ+buF2Ew24yNbtTFPuSnbjTgTcJBGxVnQRD6PKH3654q+ydp2scp/ -USZTAZL7p5JQbz6fNXwD67Uw5AZmHnu5djSHL6fdw2iw6UIXnaBLmxT8j/kX3WMj -1FxsTs38vJIYX3IDR/XJduk8+/9ru0t8fe6nckpVMzXFhokFk2dVNJVkii+lZqGf -AOsi7fePuFhj3PP+ms601q2CaCioDwIDAQABo1AwTjAdBgNVHQ4EFgQUnqDfyu95 -7s73TyM0lwCIkGG80MkwHwYDVR0jBBgwFoAUnqDfyu957s73TyM0lwCIkGG80Mkw -DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEACmrmIePvYzB9lEM7laFt -XDvOrH8mUCqGIF2S653GFIJULSmG5HdxiHyCzT8KL8XC0AJsUEQsMjV1wgW0Ttg/ -OsT+69Tf1TCuPpYyz8C+fBEVZnjgKtfbVlc8cB1M/5y08v/eyn+Od30D44dYdgVC -IgIX8xNtcEb0QcRiO3dLBE8aoRMvdOK8AnQDSrHjbyLx/wFyTsgeF2P/duf7qfOc -ouYW6nQudZvb/UxiImJmYraZ8xSZUf0FuG53Z4HZHFeYJeMtgO0Myws2VeeGwmo3 -/8P40pyaaGrde+cXb1M22XdI6ehcvyJ7pvft3wvNt269URKZSnW5GN6+pSP3vnhl -XA== ------END CERTIFICATE----- diff --git a/qa/integration/fixtures/certificates/certificate.key b/qa/integration/fixtures/certificates/certificate.key deleted file mode 100644 index c571d024b86..00000000000 --- a/qa/integration/fixtures/certificates/certificate.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDNr/xmXoHtthND -5wyQd1fQ27vInFLH1ia31QoQzthajKDQQCpKN6XPMtSN5mchZIxN0T6tuoF4bYZQ -Dp6hPQ3nsqkZU8iJga2r2v6aaaR78PeMberc54q3dYQKW8zWayNyBJD5u4XYTDbj -I1u1MU+5KduNOBNwkEbFWdBEPo8offrnir7J2naxyn9RJlMBkvunklBvPp81fAPr -tTDkBmYee7l2NIcvp93DaLDpQhedoEubFPyP+RfdYyPUXGxOzfy8khhfcgNH9cl2 -6Tz7/2u7S3x97qdySlUzNcWGiQWTZ1U0lWSKL6VmoZ8A6yLt94+4WGPc8/6azrTW -rYJoKKgPAgMBAAECggEBAJDiqlQhtjwPyTpHgl4w8ra4UWpaUyVZACT1+AUm7te5 -v31x9VgaIr30/CyIY5TuErat8gzGF3UREU9LPQouy6CuBNdGYTgbFI690CJM0ARO -FNHii1HX96qLKNtzFrLi/TDPbp+7K+jUpsUQnwTfG10+0tyC546e0nspbL7loknO -TsDF8JRtJAoP3Q018xeAVbqnzwMCRT8DR3Qj4Q91xPayK8QCZ/IpO9+79YNCkwez -AFxZPrhu0pgushgXW2aHFNaGWH3aw15ITcxjiZKfzjAvhHadNm4k5EznC0I3fvjf -CNb0YTOx5WiOpeaa2WTmM7cPqqKYR30ZKwlhSaoZFYECgYEA/9p8mSMS/6PzxgML -kIBRpBW9ba6NQDQTIZNBT9rcGSWHE26XUs+LGEhzhPOAFloRoxyxt35Z/WyuPzpW -wleHDCBDxzGKm2DX4dMnETMK1hrbApKoHIw2VGKTCt+4N9wGD/JB/5BeJIFWETO5 -J7hgknUsRRQbobn8bnEnpPU6Ox8CgYEAzc4k1N/dk+URtcte4N0c+rM6lHrQKHQQ -f40SUR/Atoh0Vd/2k0QXGpBz6Vo3+icymnp5kVINEFS0v0xxwjM+Ln0lIYgfE0uw -29XLDhgA72sr4vXNd/WFOkctw37DIgyoZeZPFx4L1eH3sXDTfKQ2bbeQSKa2oosm -1ModklKY5RECgYAGiwPctrTprLuzOKi3DVEJLTUm9OvP1IUYurdU33f5fKgzqwRb -rcsU1+V8ZO3FpJAG59jzpFuQy5K5Mzi8x5hAiyKwmWe+CX/72naJThDc4Nrw+ecq -s7s/9TVldcs0QoA1MDDX5E1ECbq1vejiRyjRFgYHzjfWrvbxrBsjcNIIaQKBgQCG -/RF3dya03OkS3sPqpd1eKrTfsvZZslcn8nXzM+qJT1NPCEmJKn4k9F6yznQs5gzw -+ihGwxTCg2zSlOeAw2+jun3iUpBfbaQhbUd0hRYH87mjcipE5otuQEWqFrkS2k6S -F9AEj7afoUl/30s4U9VHfcFrhb4BO1hK9g8TbI3QoQKBgQD5rMVNynisRRVaM8Uh -dp0pf4NlDvAnL2xZAAFhZgNMCkR6luZzl9f4NPpLQYYg48ftbzDkYf/CGSA2ROCo -l34MFl51A2tX9dpNDGgEq0kunEFgfiOL0nC+oWoiKqexQpEmyep4i48Bt507MOld -abV3TDYKy6RlLfMTi14qZyYQvQ== ------END PRIVATE KEY----- diff --git a/qa/integration/fixtures/certificates/generate_certificate.sh b/qa/integration/fixtures/certificates/generate_certificate.sh deleted file mode 100755 index 7de301b26cc..00000000000 --- a/qa/integration/fixtures/certificates/generate_certificate.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -openssl req -subj '/CN=localhost/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout certificate.key -out certificate.crt diff --git a/qa/integration/services/filebeat_setup.sh b/qa/integration/services/filebeat_setup.sh index 63649ae2d8f..f59defc191c 100755 --- a/qa/integration/services/filebeat_setup.sh +++ b/qa/integration/services/filebeat_setup.sh @@ -20,6 +20,13 @@ setup_fb() { rm $current_dir/filebeat.tar.gz } +generate_certificate() { + target_directory=$current_dir/../fixtures/certificates + mkdir -p $target_directory + openssl req -subj '/CN=localhost/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout $target_directory/certificate.key -out $target_directory/certificate.crt +} + if [ ! -d $current_dir/filebeat ]; then + generate_certificate setup_fb $version fi From f6b623fe922be833fac444dc2427a84f4d66e1a0 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 19 Sep 2016 14:02:33 -0400 Subject: [PATCH 373/632] Update the configuration to make it work with the latest libbeat (#5944) changes. In beta1, some options changes occurred in filebeat with the name of the ssl options. Like theses: tls=>ssl certificate_key => key Fixes #5917 --- qa/integration/services/filebeat_setup.sh | 2 +- qa/integration/specs/beats_input_spec.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/qa/integration/services/filebeat_setup.sh b/qa/integration/services/filebeat_setup.sh index f59defc191c..c6519a82b95 100755 --- a/qa/integration/services/filebeat_setup.sh +++ b/qa/integration/services/filebeat_setup.sh @@ -6,7 +6,7 @@ if [ -n "${FILEBEAT_VERSION}" ]; then echo "Filebeat version is $FILEBEAT_VERSION" version=$FILEBEAT_VERSION else - version=5.0.0-alpha5 + version=5.0.0-alpha6 fi setup_fb() { diff --git a/qa/integration/specs/beats_input_spec.rb b/qa/integration/specs/beats_input_spec.rb index fa61d82017c..7f2c78e62b3 100644 --- a/qa/integration/specs/beats_input_spec.rb +++ b/qa/integration/specs/beats_input_spec.rb @@ -97,6 +97,9 @@ "hosts" => ["localhost:5044"], "tls" => { "certificate_authorities" => certificate_authorities + }, + "ssl" => { + "certificate_authorities" => certificate_authorities } }, "logging" => { "level" => "debug" } @@ -123,6 +126,11 @@ "certificate_authorities" => certificate_authorities, "certificate" => certificate, "certificate_key" => ssl_key + }, + "ssl" => { + "certificate_authorities" => certificate_authorities, + "certificate" => certificate, + "key" => ssl_key } }, "logging" => { "level" => "debug" } From 4008a7ad7e1efaede72d4fe34f56128aaaaffa76 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 20 Sep 2016 11:19:16 -0700 Subject: [PATCH 374/632] Fixes after @ph review Fixes #5917 --- qa/integration/framework/fixture.rb | 9 ++- qa/integration/framework/settings.rb | 14 ++--- qa/integration/integration_tests.gemspec | 1 + ...sticsearch.rb => elasticsearch_service.rb} | 0 .../services/elasticsearch_setup.sh | 26 +++++++- .../services/elasticsearch_teardown.sh | 7 ++- qa/integration/services/helpers.sh | 62 ------------------- qa/integration/services/kafka_setup.sh | 20 +++++- qa/integration/services/kafka_teardown.sh | 10 ++- qa/integration/services/logstash_service.rb | 14 +++-- qa/integration/specs/es_output_how_spec.rb | 2 +- qa/integration/specs/kafka_input_spec.rb | 2 +- qa/integration/specs/monitoring_api_spec.rb | 6 +- 13 files changed, 86 insertions(+), 87 deletions(-) rename qa/integration/services/{elasticsearch.rb => elasticsearch_service.rb} (100%) delete mode 100755 qa/integration/services/helpers.sh diff --git a/qa/integration/framework/fixture.rb b/qa/integration/framework/fixture.rb index b057b149ef9..7fdbe837cae 100644 --- a/qa/integration/framework/fixture.rb +++ b/qa/integration/framework/fixture.rb @@ -3,6 +3,8 @@ # A class that holds all fixtures for a given test file. This deals with # bootstrapping services, dealing with config files, inputs etc class Fixture + FIXTURES_DIR = File.expand_path(File.join("..", "..", "fixtures"), __FILE__) + attr_reader :input attr_reader :actual_output attr_reader :test_dir @@ -21,13 +23,10 @@ def get_binding def initialize(test_file_location) @test_file_location = test_file_location - @fixtures_dir = File.expand_path(File.join("..", "..", "fixtures"), __FILE__) @settings = TestSettings.new(@test_file_location) @service_locator = ServiceLocator.new(@settings) setup_services - @input = File.join(@fixtures_dir, @settings.get("input")) if @settings.is_set?("input") - # this assumes current PWD. - # TODO: Remove this when we have an erb template for LS config so you can inject such stuff + @input = File.join(FIXTURES_DIR, @settings.get("input")) if @settings.is_set?("input") @actual_output = @settings.get("actual_output") end @@ -74,7 +73,7 @@ def setup_services end if @settings.is_set?("setup_script") puts "Setting up test specific fixtures" - script = File.join(@fixtures_dir, @settings.get("setup_script")) + script = File.join(FIXTURES_DIR, @settings.get("setup_script")) `#{script}` end end diff --git a/qa/integration/framework/settings.rb b/qa/integration/framework/settings.rb index fe8dc0ced20..cef3bd6d7b5 100644 --- a/qa/integration/framework/settings.rb +++ b/qa/integration/framework/settings.rb @@ -2,17 +2,17 @@ # All settings for a test, global and per test class TestSettings + # Setting for the entire test suite + INTEG_TESTS_DIR = File.expand_path(File.join("..", ".."), __FILE__) + # Test specific settings + SUITE_SETTINGS_FILE = File.join(INTEG_TESTS_DIR, "suite.yml") + FIXTURES_DIR = File.join(INTEG_TESTS_DIR, "fixtures") def initialize(test_file_path) - # Setting for the entire test suite - integ_tests_dir = File.expand_path(File.join("..", ".."), __FILE__) - @suite_settings_file = File.join(integ_tests_dir, "suite.yml") - # Test specific settings - fixtures_dir = File.join(integ_tests_dir, "fixtures") test_name = File.basename(test_file_path, ".*" ) - @tests_settings_file = File.join(fixtures_dir, "#{test_name}.yml") + @tests_settings_file = File.join(FIXTURES_DIR, "#{test_name}.yml") # Global suite settings - @suite_settings = YAML.load_file(@suite_settings_file) + @suite_settings = YAML.load_file(SUITE_SETTINGS_FILE) # Per test settings, where one can override stuff and define test specific config @test_settings = YAML.load_file(@tests_settings_file) diff --git a/qa/integration/integration_tests.gemspec b/qa/integration/integration_tests.gemspec index fcd8a4e18cb..9fdefb18348 100644 --- a/qa/integration/integration_tests.gemspec +++ b/qa/integration/integration_tests.gemspec @@ -18,4 +18,5 @@ Gem::Specification.new do |s| s.add_development_dependency 'manticore' s.add_development_dependency 'stud' s.add_development_dependency 'pry' + s.add_development_dependency 'logstash-devutils' end diff --git a/qa/integration/services/elasticsearch.rb b/qa/integration/services/elasticsearch_service.rb similarity index 100% rename from qa/integration/services/elasticsearch.rb rename to qa/integration/services/elasticsearch_service.rb diff --git a/qa/integration/services/elasticsearch_setup.sh b/qa/integration/services/elasticsearch_setup.sh index d1d0d44843c..4934e96087b 100755 --- a/qa/integration/services/elasticsearch_setup.sh +++ b/qa/integration/services/elasticsearch_setup.sh @@ -1,7 +1,6 @@ #!/bin/bash set -ex current_dir="$(dirname "$0")" -source "${current_dir}/helpers.sh" if [ -n "${ES_VERSION+1}" ]; then echo "Elasticsearch version is $ES_VERSION" @@ -10,5 +9,30 @@ else version=5.0.0-alpha5 fi +setup_es() { + if [ ! -d $current_dir/elasticsearch ]; then + local version=$1 + download_url=https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/$version/elasticsearch-$version.tar.gz + curl -sL $download_url > $current_dir/elasticsearch.tar.gz + mkdir $current_dir/elasticsearch + tar -xzf $current_dir/elasticsearch.tar.gz --strip-components=1 -C $current_dir/elasticsearch/. + rm $current_dir/elasticsearch.tar.gz + fi +} + +start_es() { + es_args=$@ + $current_dir/elasticsearch/bin/elasticsearch $es_args -p $current_dir/elasticsearch.pid > /tmp/elasticsearch.log 2>/dev/null & + count=120 + echo "Waiting for elasticsearch to respond..." + while ! curl --silent localhost:9200 && [[ $count -ne 0 ]]; do + count=$(( $count - 1 )) + [[ $count -eq 0 ]] && return 1 + sleep 1 + done + echo "Elasticsearch is Up !" + return 0 +} + setup_es $version start_es diff --git a/qa/integration/services/elasticsearch_teardown.sh b/qa/integration/services/elasticsearch_teardown.sh index d5e2e108ea1..a70df5e5283 100755 --- a/qa/integration/services/elasticsearch_teardown.sh +++ b/qa/integration/services/elasticsearch_teardown.sh @@ -1,6 +1,11 @@ #!/bin/bash my_dir="$(dirname "$0")" -source "$my_dir/helpers.sh" + +stop_es() { + pid=$(cat $current_dir/elasticsearch.pid) + [ "x$pid" != "x" ] && [ "$pid" -gt 0 ] + kill -SIGTERM $pid +} stop_es \ No newline at end of file diff --git a/qa/integration/services/helpers.sh b/qa/integration/services/helpers.sh deleted file mode 100755 index 7a67e10d17f..00000000000 --- a/qa/integration/services/helpers.sh +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/bash - -current_dir="$(dirname "$0")" - -setup_es() { - if [ ! -d $current_dir/elasticsearch ]; then - local version=$1 - download_url=https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/$version/elasticsearch-$version.tar.gz - curl -sL $download_url > $current_dir/elasticsearch.tar.gz - mkdir $current_dir/elasticsearch - tar -xzf $current_dir/elasticsearch.tar.gz --strip-components=1 -C $current_dir/elasticsearch/. - rm $current_dir/elasticsearch.tar.gz - fi -} - -start_es() { - es_args=$@ - $current_dir/elasticsearch/bin/elasticsearch $es_args -p $current_dir/elasticsearch.pid > /tmp/elasticsearch.log 2>/dev/null & - count=120 - echo "Waiting for elasticsearch to respond..." - while ! curl --silent localhost:9200 && [[ $count -ne 0 ]]; do - count=$(( $count - 1 )) - [[ $count -eq 0 ]] && return 1 - sleep 1 - done - echo "Elasticsearch is Up !" - return 0 -} - -stop_es() { - pid=$(cat $current_dir/elasticsearch.pid) - [ "x$pid" != "x" ] && [ "$pid" -gt 0 ] - kill -SIGTERM $pid -} - -setup_kafka() { - local version=$1 - if [ ! -d $current_dir/kafka ]; then - echo "Downloading Kafka version $version" - curl -s -o $current_dir/kafka.tgz "http://ftp.wayne.edu/apache/kafka/$version/kafka_2.11-$version.tgz" - mkdir $current_dir/kafka && tar xzf $current_dir/kafka.tgz -C $current_dir/kafka --strip-components 1 - rm $current_dir/kafka.tgz - fi -} - -start_kafka() { - echo "Starting ZooKeeper" - $current_dir/kafka/bin/zookeeper-server-start.sh -daemon $current_dir/kafka/config/zookeeper.properties - sleep 3 - echo "Starting Kafka broker" - $current_dir/kafka/bin/kafka-server-start.sh -daemon $current_dir/kafka/config/server.properties --override delete.topic.enable=true - sleep 3 -} - -stop_kafka() { - echo "Stopping Kafka broker" - $current_dir/kafka/bin/kafka-server-stop.sh - sleep 2 - echo "Stopping zookeeper" - $current_dir/kafka/bin/zookeeper-server-stop.sh - sleep 2 -} \ No newline at end of file diff --git a/qa/integration/services/kafka_setup.sh b/qa/integration/services/kafka_setup.sh index e793136fd0b..3591ead89d5 100755 --- a/qa/integration/services/kafka_setup.sh +++ b/qa/integration/services/kafka_setup.sh @@ -1,7 +1,6 @@ #!/bin/bash set -ex current_dir="$(dirname "$0")" -source "${current_dir}/helpers.sh" if [ -n "${KAFKA_VERSION+1}" ]; then echo "KAFKA_VERSION is $KAFKA_VERSION" @@ -10,6 +9,25 @@ else version=0.10.0.0 fi +setup_kafka() { + local version=$1 + if [ ! -d $current_dir/kafka ]; then + echo "Downloading Kafka version $version" + curl -s -o $current_dir/kafka.tgz "http://ftp.wayne.edu/apache/kafka/$version/kafka_2.11-$version.tgz" + mkdir $current_dir/kafka && tar xzf $current_dir/kafka.tgz -C $current_dir/kafka --strip-components 1 + rm $current_dir/kafka.tgz + fi +} + +start_kafka() { + echo "Starting ZooKeeper" + $current_dir/kafka/bin/zookeeper-server-start.sh -daemon $current_dir/kafka/config/zookeeper.properties + sleep 3 + echo "Starting Kafka broker" + $current_dir/kafka/bin/kafka-server-start.sh -daemon $current_dir/kafka/config/server.properties --override delete.topic.enable=true + sleep 3 +} + setup_kafka $version start_kafka diff --git a/qa/integration/services/kafka_teardown.sh b/qa/integration/services/kafka_teardown.sh index 4cbb694e2d5..57c0ce76d0a 100755 --- a/qa/integration/services/kafka_teardown.sh +++ b/qa/integration/services/kafka_teardown.sh @@ -1,7 +1,15 @@ #!/bin/bash set -ex current_dir="$(dirname "$0")" -source "${current_dir}/helpers.sh" + +stop_kafka() { + echo "Stopping Kafka broker" + $current_dir/kafka/bin/kafka-server-stop.sh + sleep 2 + echo "Stopping zookeeper" + $current_dir/kafka/bin/zookeeper-server-stop.sh + sleep 2 +} # delete test topic echo "Deleting test topic in Kafka" diff --git a/qa/integration/services/logstash_service.rb b/qa/integration/services/logstash_service.rb index 0c1892d4f91..ecae635ec0f 100644 --- a/qa/integration/services/logstash_service.rb +++ b/qa/integration/services/logstash_service.rb @@ -3,10 +3,14 @@ require "childprocess" require "bundler" require "tempfile" +require 'yaml' # A locally started Logstash service class LogstashService < Service + LS_VERSION_FILE = File.expand_path(File.join("../../../",versions.yml), __FILE__) + LS_BIN = "bin/logstash" + STDIN_CONFIG = "input {stdin {}} output { }" RETRY_ATTEMPTS = 10 @@ -20,12 +24,14 @@ def initialize(settings) @logstash_home = @settings.get("ls_home_abs_path") else # use the LS which was just built in source repo - ls_file = "logstash-" + @settings.get("ls_version") - ls_file += "-SNAPSHOT" if @settings.get("snapshot") - @logstash_home = File.expand_path(File.join("../../../../build",ls_file), __FILE__) + ls_version_file = YAML.load_file(LS_VERSION_FILE) + ls_file = "logstash-" + ls_version_file["logstash"] + # First try without the snapshot if it's there + @logstash_home = File.expand_path(File.join("../../../../build", ls_file), __FILE__) + @logstash_home += "-SNAPSHOT" unless Dir.exists?(@logstash_home) puts "Using #{@logstash_home} as LS_HOME" - @logstash_bin = File.join("#{@logstash_home}", "bin/logstash") + @logstash_bin = File.join("#{@logstash_home}", LS_BIN) raise "Logstash binary not found in path #{@logstash_home}" unless File.file? @logstash_bin end diff --git a/qa/integration/specs/es_output_how_spec.rb b/qa/integration/specs/es_output_how_spec.rb index f43b397910f..e464363bce6 100644 --- a/qa/integration/specs/es_output_how_spec.rb +++ b/qa/integration/specs/es_output_how_spec.rb @@ -1,6 +1,6 @@ require_relative '../framework/fixture' require_relative '../framework/settings' -require_relative '../services/logstash' +require_relative '../services/logstash_service' describe "a config which indexes data into Elasticsearch", :integration => true do diff --git a/qa/integration/specs/kafka_input_spec.rb b/qa/integration/specs/kafka_input_spec.rb index 3a6332f0a6c..e78b9f3897c 100644 --- a/qa/integration/specs/kafka_input_spec.rb +++ b/qa/integration/specs/kafka_input_spec.rb @@ -1,6 +1,6 @@ require_relative '../framework/fixture' require_relative '../framework/settings' -require_relative '../services/logstash' +require_relative '../services/logstash_service' require "rspec/wait" describe "Kafka Input", :integration => true do diff --git a/qa/integration/specs/monitoring_api_spec.rb b/qa/integration/specs/monitoring_api_spec.rb index 7394b77da0d..9a9be51e281 100644 --- a/qa/integration/specs/monitoring_api_spec.rb +++ b/qa/integration/specs/monitoring_api_spec.rb @@ -1,6 +1,7 @@ require_relative '../framework/fixture' require_relative '../framework/settings' -require_relative '../services/logstash' +require_relative '../services/logstash_service' +require "logstash/devutils/rspec/spec_helper" describe "Monitoring API", :integration => true do before(:all) { @@ -15,10 +16,9 @@ logstash_service = @fixture.get_service("logstash") logstash_service.start_with_stdin 5.times { logstash_service.write_to_stdin("Hello world") } - # TODO: get rid of this sleep, or loop - sleep 3 # check metrics result = logstash_service.monitoring_api.event_stats + try { expect(result["in"]).to eq(5) } expect(result["in"]).to eq(5) end From dfd6164edde3afe414539c19fda022a221c6687a Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 20 Sep 2016 15:37:59 -0700 Subject: [PATCH 375/632] changes after review Fixes #5917 --- ci/ci_integration.sh | 8 +++++-- qa/integration/.rspec | 1 + qa/integration/fixtures/kafka_input_spec.yml | 12 +++++----- qa/integration/framework/fixture.rb | 2 +- qa/integration/framework/settings.rb | 9 ++++++++ .../services/elasticsearch_setup.sh | 2 +- .../services/elasticsearch_teardown.sh | 6 ++--- qa/integration/services/kafka_setup.sh | 2 +- qa/integration/services/logstash_service.rb | 2 +- qa/integration/specs/beats_input_spec.rb | 2 +- qa/integration/specs/es_output_how_spec.rb | 2 +- qa/integration/specs/kafka_input_spec.rb | 9 ++++---- qa/integration/specs/monitoring_api_spec.rb | 22 ++++++++++++++----- qa/integration/suite.yml | 6 +++-- 14 files changed, 55 insertions(+), 30 deletions(-) create mode 100644 qa/integration/.rspec diff --git a/ci/ci_integration.sh b/ci/ci_integration.sh index 5aaeca0006f..088a1884b5b 100755 --- a/ci/ci_integration.sh +++ b/ci/ci_integration.sh @@ -6,5 +6,9 @@ set -e # installing gems. See https://github.com/elastic/logstash/issues/5179 export JRUBY_OPTS="-J-Xmx1g" -rake test:install-default -rake test:integration +rm -rf build/* +rake artifact:tar +cd build +tar xvf *.tar.gz +cd ../qa/integration +rspec diff --git a/qa/integration/.rspec b/qa/integration/.rspec new file mode 100644 index 00000000000..12f9968c306 --- /dev/null +++ b/qa/integration/.rspec @@ -0,0 +1 @@ +--default-path specs/ \ No newline at end of file diff --git a/qa/integration/fixtures/kafka_input_spec.yml b/qa/integration/fixtures/kafka_input_spec.yml index 533014e971b..a7df6098eab 100644 --- a/qa/integration/fixtures/kafka_input_spec.yml +++ b/qa/integration/fixtures/kafka_input_spec.yml @@ -12,13 +12,13 @@ config: |- } } output { - #file { - # path => "kafka_input.output" - # flush_interval => 0 - # codec => line { format => "%{message}" } - #} + file { + path => "kafka_input.output" + flush_interval => 0 + codec => line { format => "%{message}" } + } } input: how_sample.input -setup_script: download_input.sh +actual_output: kafka_input.output teardown_script: diff --git a/qa/integration/framework/fixture.rb b/qa/integration/framework/fixture.rb index 7fdbe837cae..7c3d7d21bd5 100644 --- a/qa/integration/framework/fixture.rb +++ b/qa/integration/framework/fixture.rb @@ -57,7 +57,7 @@ def output_exists? end def teardown - File.delete(@actual_output) if @settings.is_set?(@actual_output) && output_exists? + File.delete(@actual_output) if @settings.is_set?("actual_output") && output_exists? puts "Tearing down services" services = @settings.get("services") services.each do |name| diff --git a/qa/integration/framework/settings.rb b/qa/integration/framework/settings.rb index cef3bd6d7b5..d0a25ad3a6a 100644 --- a/qa/integration/framework/settings.rb +++ b/qa/integration/framework/settings.rb @@ -15,6 +15,11 @@ def initialize(test_file_path) @suite_settings = YAML.load_file(SUITE_SETTINGS_FILE) # Per test settings, where one can override stuff and define test specific config @test_settings = YAML.load_file(@tests_settings_file) + + if verbose_mode? + puts "Test settings file: #{@tests_settings_file}" + puts "Suite settings file: #{SUITE_SETTINGS_FILE}" + end if is_set?("config") if get("config").is_a?(Hash) @@ -37,6 +42,10 @@ def get(key) @suite_settings[key] end end + + def verbose_mode? + @suite_settings["verbose_mode"] + end def is_set?(key) @suite_settings.key?(key) || @test_settings.key?(key) diff --git a/qa/integration/services/elasticsearch_setup.sh b/qa/integration/services/elasticsearch_setup.sh index 4934e96087b..65078ab0d9b 100755 --- a/qa/integration/services/elasticsearch_setup.sh +++ b/qa/integration/services/elasticsearch_setup.sh @@ -22,7 +22,7 @@ setup_es() { start_es() { es_args=$@ - $current_dir/elasticsearch/bin/elasticsearch $es_args -p $current_dir/elasticsearch.pid > /tmp/elasticsearch.log 2>/dev/null & + $current_dir/elasticsearch/bin/elasticsearch $es_args -p $current_dir/elasticsearch/elasticsearch.pid > /tmp/elasticsearch.log 2>/dev/null & count=120 echo "Waiting for elasticsearch to respond..." while ! curl --silent localhost:9200 && [[ $count -ne 0 ]]; do diff --git a/qa/integration/services/elasticsearch_teardown.sh b/qa/integration/services/elasticsearch_teardown.sh index a70df5e5283..5d59f30facf 100755 --- a/qa/integration/services/elasticsearch_teardown.sh +++ b/qa/integration/services/elasticsearch_teardown.sh @@ -1,9 +1,9 @@ #!/bin/bash - -my_dir="$(dirname "$0")" +set -ex +current_dir="$(dirname "$0")" stop_es() { - pid=$(cat $current_dir/elasticsearch.pid) + pid=$(cat $current_dir/elasticsearch/elasticsearch.pid) [ "x$pid" != "x" ] && [ "$pid" -gt 0 ] kill -SIGTERM $pid } diff --git a/qa/integration/services/kafka_setup.sh b/qa/integration/services/kafka_setup.sh index 3591ead89d5..26740d693e5 100755 --- a/qa/integration/services/kafka_setup.sh +++ b/qa/integration/services/kafka_setup.sh @@ -33,5 +33,5 @@ start_kafka # Set up topics $current_dir/kafka/bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic logstash_topic_plain --zookeeper localhost:2181 -cat $current_dir/kafka_input.input | $current_dir/kafka/bin/kafka-console-producer.sh --topic logstash_topic_plain --broker-list localhost:9092 +cat $current_dir/../fixtures/how_sample.input | $current_dir/kafka/bin/kafka-console-producer.sh --topic logstash_topic_plain --broker-list localhost:9092 echo "Kafka Setup complete" diff --git a/qa/integration/services/logstash_service.rb b/qa/integration/services/logstash_service.rb index ecae635ec0f..09e3ea8068b 100644 --- a/qa/integration/services/logstash_service.rb +++ b/qa/integration/services/logstash_service.rb @@ -8,7 +8,7 @@ # A locally started Logstash service class LogstashService < Service - LS_VERSION_FILE = File.expand_path(File.join("../../../",versions.yml), __FILE__) + LS_VERSION_FILE = File.expand_path(File.join("../../../../", "versions.yml"), __FILE__) LS_BIN = "bin/logstash" STDIN_CONFIG = "input {stdin {}} output { }" diff --git a/qa/integration/specs/beats_input_spec.rb b/qa/integration/specs/beats_input_spec.rb index 7f2c78e62b3..1dc31b5e10a 100644 --- a/qa/integration/specs/beats_input_spec.rb +++ b/qa/integration/specs/beats_input_spec.rb @@ -6,7 +6,7 @@ require "yaml" require "fileutils" -describe "Beat Input", :integration => true do +describe "Beat Input" do before(:all) do @fixture = Fixture.new(__FILE__) end diff --git a/qa/integration/specs/es_output_how_spec.rb b/qa/integration/specs/es_output_how_spec.rb index e464363bce6..27f2ef2d4b3 100644 --- a/qa/integration/specs/es_output_how_spec.rb +++ b/qa/integration/specs/es_output_how_spec.rb @@ -2,7 +2,7 @@ require_relative '../framework/settings' require_relative '../services/logstash_service' -describe "a config which indexes data into Elasticsearch", :integration => true do +describe "a config which indexes data into Elasticsearch" do before(:all) { @fixture = Fixture.new(__FILE__) diff --git a/qa/integration/specs/kafka_input_spec.rb b/qa/integration/specs/kafka_input_spec.rb index e78b9f3897c..2cd52e9e4dd 100644 --- a/qa/integration/specs/kafka_input_spec.rb +++ b/qa/integration/specs/kafka_input_spec.rb @@ -3,7 +3,7 @@ require_relative '../services/logstash_service' require "rspec/wait" -describe "Kafka Input", :integration => true do +describe "Kafka Input" do let(:timeout_seconds) { 5 } before(:all) { @fixture = Fixture.new(__FILE__) @@ -17,10 +17,9 @@ logstash_service = @fixture.get_service("logstash") logstash_service.start_background(@fixture.config) - # TODO: File Output is busted so this test fails - #wait(timeout_seconds).for { @fixture.output_exists? }.to be true - #expect(@fixture.output_equals_expected?).to be true, - # lambda { "Expected File output to match what was ingested into Kafka." } + wait(timeout_seconds).for { @fixture.output_exists? }.to be true + expect(@fixture.output_equals_expected?).to be true + lambda { "Expected File output to match what was ingested into Kafka." } end end diff --git a/qa/integration/specs/monitoring_api_spec.rb b/qa/integration/specs/monitoring_api_spec.rb index 9a9be51e281..66028bb983c 100644 --- a/qa/integration/specs/monitoring_api_spec.rb +++ b/qa/integration/specs/monitoring_api_spec.rb @@ -3,7 +3,7 @@ require_relative '../services/logstash_service' require "logstash/devutils/rspec/spec_helper" -describe "Monitoring API", :integration => true do +describe "Monitoring API" do before(:all) { @fixture = Fixture.new(__FILE__) } @@ -11,15 +11,25 @@ after(:all) { @fixture.teardown } + + let(:number_of_events) { 5 } + let(:max_retry) { 120 } it "can retrieve event stats" do logstash_service = @fixture.get_service("logstash") logstash_service.start_with_stdin - 5.times { logstash_service.write_to_stdin("Hello world") } - # check metrics - result = logstash_service.monitoring_api.event_stats - try { expect(result["in"]).to eq(5) } - expect(result["in"]).to eq(5) + number_of_events.times { logstash_service.write_to_stdin("Hello world") } + + begin + sleep(1) while (result = logstash_service.monitoring_api.event_stats).nil? + rescue + retry + end + + Stud.try(max_retry.times, RSpec::Expectations::ExpectationNotMetError) do + result = logstash_service.monitoring_api.event_stats + expect(result["in"]).to eq(number_of_events) + end end end diff --git a/qa/integration/suite.yml b/qa/integration/suite.yml index d9e45737638..8ccdff47bbc 100644 --- a/qa/integration/suite.yml +++ b/qa/integration/suite.yml @@ -1,4 +1,6 @@ --- -ls_version: 5.0.0-alpha6 -snapshot: true +# Use this to output more debug-level information +verbose_mode: false +# Typically we use the binaries in LS_HOME/build. If you want to QA a LS in different location, +# use the absolute path below #ls_home_abs_path: /tmp/logstash-5.0.0-alpha6 \ No newline at end of file From 19fe5de8cb6691c126179e235f306ccb98aadf4a Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 22 Sep 2016 11:32:32 -0400 Subject: [PATCH 376/632] fix beats integration test Fixes #5917 --- qa/integration/services/filebeat_setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/integration/services/filebeat_setup.sh b/qa/integration/services/filebeat_setup.sh index c6519a82b95..f59defc191c 100755 --- a/qa/integration/services/filebeat_setup.sh +++ b/qa/integration/services/filebeat_setup.sh @@ -6,7 +6,7 @@ if [ -n "${FILEBEAT_VERSION}" ]; then echo "Filebeat version is $FILEBEAT_VERSION" version=$FILEBEAT_VERSION else - version=5.0.0-alpha6 + version=5.0.0-alpha5 fi setup_fb() { From 65435ba41c94d1f59e7f1d9bda8f6ff7863302a6 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 22 Sep 2016 13:36:11 -0700 Subject: [PATCH 377/632] Enable RATS integration tests on travis Fixes #5963 --- .travis.yml | 11 +++++++- ci/ci_integration.sh | 13 ++++++++-- ci/travis_integration_install.sh | 25 +++++++++++++++++++ ci/travis_integration_run.sh | 10 ++++++++ qa/integration/fixtures/beats_input_spec.yml | 1 - qa/integration/fixtures/download_input.sh | 10 -------- .../fixtures/es_output_how_spec.yml | 3 +-- .../services/elasticsearch_setup.sh | 6 ++--- .../services/elasticsearch_teardown.sh | 2 +- qa/integration/services/filebeat_setup.sh | 6 ++--- qa/integration/services/kafka_setup.sh | 8 +++--- qa/integration/services/kafka_teardown.sh | 2 +- qa/integration/specs/es_output_how_spec.rb | 4 +-- qa/integration/specs/kafka_input_spec.rb | 2 +- 14 files changed, 73 insertions(+), 30 deletions(-) create mode 100755 ci/travis_integration_install.sh create mode 100755 ci/travis_integration_run.sh delete mode 100755 qa/integration/fixtures/download_input.sh diff --git a/.travis.yml b/.travis.yml index 5457ec7613d..702460c6d15 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,9 +8,18 @@ rvm: - jruby-1.7.25 jdk: - oraclejdk8 +env: + - INTEGRATION=true +before_install: + # Force bundler 1.12.5 because version 1.13 has issues, see https://github.com/fastlane/fastlane/issues/6065#issuecomment-246044617 + - gem uninstall -i /home/travis/.rvm/gems/jruby-1.7.25@global bundler + - gem install bundler -v 1.12.5 --no-rdoc --no-ri --no-document --quiet install: - rake test:install-core + - ci/travis_integration_install.sh before_script: - echo "--order rand" > .rspec - echo "--format documentation" >> .rspec -script: rake test:core +script: + - rake test:core + - ci/travis_integration_run.sh diff --git a/ci/ci_integration.sh b/ci/ci_integration.sh index 088a1884b5b..ff343cf8438 100755 --- a/ci/ci_integration.sh +++ b/ci/ci_integration.sh @@ -6,9 +6,18 @@ set -e # installing gems. See https://github.com/elastic/logstash/issues/5179 export JRUBY_OPTS="-J-Xmx1g" -rm -rf build/* +echo "Running integration tests from qa/integration" +if [[ ! -d "build" ]]; then + mkdir build +fi +rm -rf build/* +echo "Building logstash tar file in build/" rake artifact:tar cd build -tar xvf *.tar.gz +echo "Extracting logstash tar file in build/" +tar xf *.tar.gz cd ../qa/integration +# to install test dependencies +bundle install +# runs all tests rspec diff --git a/ci/travis_integration_install.sh b/ci/travis_integration_install.sh new file mode 100755 index 00000000000..2b8a63ac419 --- /dev/null +++ b/ci/travis_integration_install.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -e + +# This file sets up the environment for travis integration tests + + +if [[ "$INTEGRATION" != "true" ]]; then + exit +fi + +echo "Setting up integration tests" +if [[ ! -d "build" ]]; then + mkdir build +fi +rm -rf build/* +echo "Building logstash tar file in build/" +rake artifact:tar +cd build +echo "Extracting logstash tar file in build/" +tar xf *.tar.gz +cd ../qa/integration +pwd +echo $BUNDLE_GEMFILE +# to install test dependencies +bundle install --gemfile="Gemfile" \ No newline at end of file diff --git a/ci/travis_integration_run.sh b/ci/travis_integration_run.sh new file mode 100755 index 00000000000..f65c712b1f4 --- /dev/null +++ b/ci/travis_integration_run.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -e + +if [[ "$INTEGRATION" != "true" ]]; then + exit +fi + +echo "Running integration tests from qa/integration directory" +cd qa/integration +rspec diff --git a/qa/integration/fixtures/beats_input_spec.yml b/qa/integration/fixtures/beats_input_spec.yml index da8811e4986..0b1a4161e5e 100644 --- a/qa/integration/fixtures/beats_input_spec.yml +++ b/qa/integration/fixtures/beats_input_spec.yml @@ -29,5 +29,4 @@ config: } } input: how_sample.input -setup_script: download_input.sh teardown_script: diff --git a/qa/integration/fixtures/download_input.sh b/qa/integration/fixtures/download_input.sh deleted file mode 100755 index 280cfe5ad5c..00000000000 --- a/qa/integration/fixtures/download_input.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -ex -current_dir="$(dirname "$0")" -HOW_DATA_SET_URL=https://s3.amazonaws.com/data.elasticsearch.org/logstash/logs.gz - -if [ ! -f ${current_dir}/how.input ]; then - curl -sL $HOW_DATA_SET_URL > ${current_dir}/logs.gz - gunzip ${current_dir}/logs.gz - mv ${current_dir}/logs ${current_dir}/how.input -fi \ No newline at end of file diff --git a/qa/integration/fixtures/es_output_how_spec.yml b/qa/integration/fixtures/es_output_how_spec.yml index 566e781d0bd..cf2c436b6be 100644 --- a/qa/integration/fixtures/es_output_how_spec.yml +++ b/qa/integration/fixtures/es_output_how_spec.yml @@ -30,6 +30,5 @@ config: |- elasticsearch {} } -input: how.input -setup_script: download_input.sh +input: how_sample.input teardown_script: diff --git a/qa/integration/services/elasticsearch_setup.sh b/qa/integration/services/elasticsearch_setup.sh index 65078ab0d9b..1172e45b02f 100755 --- a/qa/integration/services/elasticsearch_setup.sh +++ b/qa/integration/services/elasticsearch_setup.sh @@ -1,18 +1,18 @@ #!/bin/bash -set -ex +set -e current_dir="$(dirname "$0")" if [ -n "${ES_VERSION+1}" ]; then echo "Elasticsearch version is $ES_VERSION" version=$ES_VERSION else - version=5.0.0-alpha5 + version=5.0.0-beta1 fi setup_es() { if [ ! -d $current_dir/elasticsearch ]; then local version=$1 - download_url=https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/$version/elasticsearch-$version.tar.gz + download_url=https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-$version.tar.gz curl -sL $download_url > $current_dir/elasticsearch.tar.gz mkdir $current_dir/elasticsearch tar -xzf $current_dir/elasticsearch.tar.gz --strip-components=1 -C $current_dir/elasticsearch/. diff --git a/qa/integration/services/elasticsearch_teardown.sh b/qa/integration/services/elasticsearch_teardown.sh index 5d59f30facf..9792f0ea0f5 100755 --- a/qa/integration/services/elasticsearch_teardown.sh +++ b/qa/integration/services/elasticsearch_teardown.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -ex +set -e current_dir="$(dirname "$0")" stop_es() { diff --git a/qa/integration/services/filebeat_setup.sh b/qa/integration/services/filebeat_setup.sh index f59defc191c..ba113ecb474 100755 --- a/qa/integration/services/filebeat_setup.sh +++ b/qa/integration/services/filebeat_setup.sh @@ -1,19 +1,19 @@ #!/bin/bash -set -ex +set -e current_dir="$(dirname "$0")" if [ -n "${FILEBEAT_VERSION}" ]; then echo "Filebeat version is $FILEBEAT_VERSION" version=$FILEBEAT_VERSION else - version=5.0.0-alpha5 + version=5.0.0-beta1 fi setup_fb() { local version=$1 platform=`uname -s | tr '[:upper:]' '[:lower:]'` architecture=`uname -m | tr '[:upper:]' '[:lower:]'` - download_url=https://download.elastic.co/beats/filebeat/filebeat-$version-$platform-$architecture.tar.gz + download_url=https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-$version-$platform-$architecture.tar.gz curl -sL $download_url > $current_dir/filebeat.tar.gz mkdir $current_dir/filebeat tar -xzf $current_dir/filebeat.tar.gz --strip-components=1 -C $current_dir/filebeat/. diff --git a/qa/integration/services/kafka_setup.sh b/qa/integration/services/kafka_setup.sh index 26740d693e5..ec687bb2a2a 100755 --- a/qa/integration/services/kafka_setup.sh +++ b/qa/integration/services/kafka_setup.sh @@ -1,12 +1,12 @@ #!/bin/bash -set -ex +set -e current_dir="$(dirname "$0")" if [ -n "${KAFKA_VERSION+1}" ]; then echo "KAFKA_VERSION is $KAFKA_VERSION" version=$KAFKA_VERSION else - version=0.10.0.0 + version=0.10.0.1 fi setup_kafka() { @@ -30,8 +30,10 @@ start_kafka() { setup_kafka $version start_kafka - +sleep 3 # Set up topics $current_dir/kafka/bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic logstash_topic_plain --zookeeper localhost:2181 +sleep 1 cat $current_dir/../fixtures/how_sample.input | $current_dir/kafka/bin/kafka-console-producer.sh --topic logstash_topic_plain --broker-list localhost:9092 +sleep 1 echo "Kafka Setup complete" diff --git a/qa/integration/services/kafka_teardown.sh b/qa/integration/services/kafka_teardown.sh index 57c0ce76d0a..1120b340ca7 100755 --- a/qa/integration/services/kafka_teardown.sh +++ b/qa/integration/services/kafka_teardown.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -ex +set -e current_dir="$(dirname "$0")" stop_kafka() { diff --git a/qa/integration/specs/es_output_how_spec.rb b/qa/integration/specs/es_output_how_spec.rb index 27f2ef2d4b3..db0a723320e 100644 --- a/qa/integration/specs/es_output_how_spec.rb +++ b/qa/integration/specs/es_output_how_spec.rb @@ -17,13 +17,13 @@ it "can ingest 300K log lines" do logstash_service = @fixture.get_service("logstash") es_service = @fixture.get_service("elasticsearch") - puts "Ingesting 300K lines of apache logs to ES. This may make your CPU sing.." + puts "Ingesting 37 apache log lines to ES." logstash_service.start_with_input(@fixture.config, @fixture.input) es_client = es_service.get_client # now we test if all data was indexed by ES, but first refresh manually es_client.indices.refresh result = es_client.search(index: 'logstash-*', size: 0, q: '*') - expect(result["hits"]["total"]).to eq(300000) + expect(result["hits"]["total"]).to eq(37) end end diff --git a/qa/integration/specs/kafka_input_spec.rb b/qa/integration/specs/kafka_input_spec.rb index 2cd52e9e4dd..e0ce8dbd2ef 100644 --- a/qa/integration/specs/kafka_input_spec.rb +++ b/qa/integration/specs/kafka_input_spec.rb @@ -4,7 +4,7 @@ require "rspec/wait" describe "Kafka Input" do - let(:timeout_seconds) { 5 } + let(:timeout_seconds) { 30 } before(:all) { @fixture = Fixture.new(__FILE__) } From fbaf82ac0e3be59776e169795f525b0b65468d81 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Wed, 28 Sep 2016 22:02:30 +0200 Subject: [PATCH 378/632] Fix generated jar dependencies for ls-event-java (#5967) This file was incorrectly checked-in with a jackson-annotations dependency of `2.7.3`. jackson-databind depends on `2.7.0` of the annotations library. --- logstash-core-event-java/lib/logstash-core-event-java_jars.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb index 8b75882166a..eda40d431f0 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb @@ -3,12 +3,12 @@ require 'jar_dependencies' rescue LoadError require 'com/fasterxml/jackson/core/jackson-databind/2.7.3/jackson-databind-2.7.3.jar' - require 'com/fasterxml/jackson/core/jackson-annotations/2.7.3/jackson-annotations-2.7.3.jar' + require 'com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar' require 'com/fasterxml/jackson/core/jackson-core/2.7.3/jackson-core-2.7.3.jar' end if defined? Jars require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.3' ) - require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.3' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.3' ) end From b119e113c1cb50844bd3cdd9276512d8547bc00f Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 29 Sep 2016 11:37:01 +0200 Subject: [PATCH 379/632] Pin term-ansicolor to version that doesn't require ruby >= 2.0 Fixes #5980 --- logstash-core/logstash-core.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index 3b1ee5c62b3..44555477323 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -22,6 +22,7 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license) gem.add_runtime_dependency "stud", "~> 0.0.19" #(Apache 2.0 license) gem.add_runtime_dependency "clamp", "~> 0.6.5" #(MIT license) for command line args/flags + gem.add_runtime_dependency "term-ansicolor", "~> 1.3.2" # 1.4.0 uses ruby 2.0 gem.add_runtime_dependency "filesize", "0.0.4" #(MIT license) for :bytes config validator gem.add_runtime_dependency "gems", "~> 0.8.3" #(MIT license) gem.add_runtime_dependency "concurrent-ruby", "1.0.0" From b8cba250822a11a97513051fd97f8ac07075d949 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Mon, 3 Oct 2016 23:32:20 +0200 Subject: [PATCH 380/632] Pin terms-ansicolor the right way Fixes #5992 --- Gemfile | 1 + logstash-core/logstash-core.gemspec | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 2f1b53a2530..07b485f0bde 100644 --- a/Gemfile +++ b/Gemfile @@ -20,6 +20,7 @@ gem "rubyzip", "~> 1.1.7", :group => :build gem "gems", "~> 0.8.3", :group => :build gem "rack-test", :require => "rack/test", :group => :development gem "flores", "~> 0.0.6", :group => :development +gem "term-ansicolor", "~> 1.3.2", :group => :development gem "pleaserun" gem "logstash-input-heartbeat" gem "logstash-codec-collectd" diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index 44555477323..3b1ee5c62b3 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -22,7 +22,6 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license) gem.add_runtime_dependency "stud", "~> 0.0.19" #(Apache 2.0 license) gem.add_runtime_dependency "clamp", "~> 0.6.5" #(MIT license) for command line args/flags - gem.add_runtime_dependency "term-ansicolor", "~> 1.3.2" # 1.4.0 uses ruby 2.0 gem.add_runtime_dependency "filesize", "0.0.4" #(MIT license) for :bytes config validator gem.add_runtime_dependency "gems", "~> 0.8.3" #(MIT license) gem.add_runtime_dependency "concurrent-ruby", "1.0.0" From 6b0a5580d8dfa719618c99f75a459c0f31dff59e Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 4 Oct 2016 00:11:03 +0200 Subject: [PATCH 381/632] Add back docker-api to fix test failure --- Gemfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Gemfile b/Gemfile index 07b485f0bde..9e2c0c8d835 100644 --- a/Gemfile +++ b/Gemfile @@ -21,6 +21,7 @@ gem "gems", "~> 0.8.3", :group => :build gem "rack-test", :require => "rack/test", :group => :development gem "flores", "~> 0.0.6", :group => :development gem "term-ansicolor", "~> 1.3.2", :group => :development +gem "docker-api", "1.31.0", :group => :development gem "pleaserun" gem "logstash-input-heartbeat" gem "logstash-codec-collectd" From 490da48c2220f71fb02e346e2797d9868266ee16 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 23 Sep 2016 14:25:28 -0700 Subject: [PATCH 382/632] Improvements to RATS test suite * Reduce sleeps and output messages * Cache installed services directory Fixes #5968 --- .travis.yml | 1 - qa/integration/.gitignore | 5 +-- qa/integration/fixtures/beats_input_spec.yml | 3 ++ .../services/elasticsearch_setup.sh | 17 ++++--- .../services/elasticsearch_teardown.sh | 6 ++- qa/integration/services/filebeat_service.rb | 2 +- qa/integration/services/filebeat_setup.sh | 16 ++++--- qa/integration/services/helpers.sh | 28 ++++++++++++ qa/integration/services/kafka_setup.sh | 44 +++++++++++++------ qa/integration/services/kafka_teardown.sh | 15 ++++--- 10 files changed, 101 insertions(+), 36 deletions(-) create mode 100644 qa/integration/services/helpers.sh diff --git a/.travis.yml b/.travis.yml index 702460c6d15..f2dfb53f000 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,6 @@ install: - ci/travis_integration_install.sh before_script: - echo "--order rand" > .rspec - - echo "--format documentation" >> .rspec script: - rake test:core - ci/travis_integration_run.sh diff --git a/qa/integration/.gitignore b/qa/integration/.gitignore index 9c614afcc31..e7775797e47 100644 --- a/qa/integration/.gitignore +++ b/qa/integration/.gitignore @@ -1,5 +1,2 @@ -/services/filebeat -/fixtures/how.input -/services/elasticsearch -/services/kafka +/services/installed /fixtures/certificates diff --git a/qa/integration/fixtures/beats_input_spec.yml b/qa/integration/fixtures/beats_input_spec.yml index 0b1a4161e5e..4c452f30647 100644 --- a/qa/integration/fixtures/beats_input_spec.yml +++ b/qa/integration/fixtures/beats_input_spec.yml @@ -9,6 +9,7 @@ config: port => 5044 } } + output {} tls_server_auth: |- input { beats { @@ -18,6 +19,7 @@ config: ssl_key => '<%=options[:ssl_key]%>' } } + output {} tls_mutual_auth: |- input { beats { @@ -28,5 +30,6 @@ config: ssl_verify_mode => "peer" } } + output {} input: how_sample.input teardown_script: diff --git a/qa/integration/services/elasticsearch_setup.sh b/qa/integration/services/elasticsearch_setup.sh index 1172e45b02f..72942af985b 100755 --- a/qa/integration/services/elasticsearch_setup.sh +++ b/qa/integration/services/elasticsearch_setup.sh @@ -2,6 +2,8 @@ set -e current_dir="$(dirname "$0")" +source "$current_dir/helpers.sh" + if [ -n "${ES_VERSION+1}" ]; then echo "Elasticsearch version is $ES_VERSION" version=$ES_VERSION @@ -9,20 +11,22 @@ else version=5.0.0-beta1 fi +ES_HOME=$INSTALL_DIR/elasticsearch + setup_es() { - if [ ! -d $current_dir/elasticsearch ]; then + if [ ! -d $ES_HOME ]; then local version=$1 download_url=https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-$version.tar.gz - curl -sL $download_url > $current_dir/elasticsearch.tar.gz - mkdir $current_dir/elasticsearch - tar -xzf $current_dir/elasticsearch.tar.gz --strip-components=1 -C $current_dir/elasticsearch/. - rm $current_dir/elasticsearch.tar.gz + curl -sL $download_url > $INSTALL_DIR/elasticsearch.tar.gz + mkdir $ES_HOME + tar -xzf $INSTALL_DIR/elasticsearch.tar.gz --strip-components=1 -C $ES_HOME/. + rm $INSTALL_DIR/elasticsearch.tar.gz fi } start_es() { es_args=$@ - $current_dir/elasticsearch/bin/elasticsearch $es_args -p $current_dir/elasticsearch/elasticsearch.pid > /tmp/elasticsearch.log 2>/dev/null & + $ES_HOME/bin/elasticsearch $es_args -p $ES_HOME/elasticsearch.pid > /tmp/elasticsearch.log 2>/dev/null & count=120 echo "Waiting for elasticsearch to respond..." while ! curl --silent localhost:9200 && [[ $count -ne 0 ]]; do @@ -34,5 +38,6 @@ start_es() { return 0 } +setup_install_dir setup_es $version start_es diff --git a/qa/integration/services/elasticsearch_teardown.sh b/qa/integration/services/elasticsearch_teardown.sh index 9792f0ea0f5..f8e4dd51139 100755 --- a/qa/integration/services/elasticsearch_teardown.sh +++ b/qa/integration/services/elasticsearch_teardown.sh @@ -2,8 +2,12 @@ set -e current_dir="$(dirname "$0")" +source "$current_dir/helpers.sh" + +ES_HOME=$INSTALL_DIR/elasticsearch + stop_es() { - pid=$(cat $current_dir/elasticsearch/elasticsearch.pid) + pid=$(cat $ES_HOME/elasticsearch.pid) [ "x$pid" != "x" ] && [ "$pid" -gt 0 ] kill -SIGTERM $pid } diff --git a/qa/integration/services/filebeat_service.rb b/qa/integration/services/filebeat_service.rb index a913f311845..9904499dd16 100644 --- a/qa/integration/services/filebeat_service.rb +++ b/qa/integration/services/filebeat_service.rb @@ -1,6 +1,6 @@ # encoding: utf-8 class FilebeatService < Service - FILEBEAT_CMD = [File.join(File.dirname(__FILE__), "filebeat", "filebeat"), "-c"] + FILEBEAT_CMD = [File.join(File.dirname(__FILE__), "installed", "filebeat", "filebeat"), "-c"] class BackgroundProcess def initialize(cmd) diff --git a/qa/integration/services/filebeat_setup.sh b/qa/integration/services/filebeat_setup.sh index ba113ecb474..a1061667007 100755 --- a/qa/integration/services/filebeat_setup.sh +++ b/qa/integration/services/filebeat_setup.sh @@ -2,6 +2,8 @@ set -e current_dir="$(dirname "$0")" +source "$current_dir/helpers.sh" + if [ -n "${FILEBEAT_VERSION}" ]; then echo "Filebeat version is $FILEBEAT_VERSION" version=$FILEBEAT_VERSION @@ -9,15 +11,17 @@ else version=5.0.0-beta1 fi +FB_HOME=$INSTALL_DIR/filebeat + setup_fb() { local version=$1 platform=`uname -s | tr '[:upper:]' '[:lower:]'` architecture=`uname -m | tr '[:upper:]' '[:lower:]'` download_url=https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-$version-$platform-$architecture.tar.gz - curl -sL $download_url > $current_dir/filebeat.tar.gz - mkdir $current_dir/filebeat - tar -xzf $current_dir/filebeat.tar.gz --strip-components=1 -C $current_dir/filebeat/. - rm $current_dir/filebeat.tar.gz + curl -sL $download_url > $INSTALL_DIR/filebeat.tar.gz + mkdir $FB_HOME + tar -xzf $INSTALL_DIR/filebeat.tar.gz --strip-components=1 -C $FB_HOME/. + rm $INSTALL_DIR/filebeat.tar.gz } generate_certificate() { @@ -26,7 +30,9 @@ generate_certificate() { openssl req -subj '/CN=localhost/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout $target_directory/certificate.key -out $target_directory/certificate.crt } -if [ ! -d $current_dir/filebeat ]; then +setup_install_dir + +if [ ! -d $FB_HOME ]; then generate_certificate setup_fb $version fi diff --git a/qa/integration/services/helpers.sh b/qa/integration/services/helpers.sh new file mode 100644 index 00000000000..872389497db --- /dev/null +++ b/qa/integration/services/helpers.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -e +current_dir="$(dirname "$0")" + +INSTALL_DIR=$current_dir/installed +PORT_WAIT_COUNT=20 + +setup_install_dir() { + if [[ ! -d "$INSTALL_DIR" ]]; then + mkdir $INSTALL_DIR + fi +} + +wait_for_port() { + count=$PORT_WAIT_COUNT + port=$1 + while ! nc -z localhost $port && [[ $count -ne 0 ]]; do + count=$(( $count - 1 )) + [[ $count -eq 0 ]] && return 1 + sleep 0.5 + done +} + +clean_install_dir() { + if [[ -d "$INSTALL_DIR" ]]; then + rm -rf $INSTALL_DIR + fi +} diff --git a/qa/integration/services/kafka_setup.sh b/qa/integration/services/kafka_setup.sh index ec687bb2a2a..43a60355e6f 100755 --- a/qa/integration/services/kafka_setup.sh +++ b/qa/integration/services/kafka_setup.sh @@ -2,6 +2,8 @@ set -e current_dir="$(dirname "$0")" +source "$current_dir/helpers.sh" + if [ -n "${KAFKA_VERSION+1}" ]; then echo "KAFKA_VERSION is $KAFKA_VERSION" version=$KAFKA_VERSION @@ -9,31 +11,47 @@ else version=0.10.0.1 fi +KAFKA_HOME=$INSTALL_DIR/kafka +KAFKA_TOPIC=logstash_topic_plain +KAFKA_MESSAGES=37 + setup_kafka() { local version=$1 - if [ ! -d $current_dir/kafka ]; then + if [ ! -d $KAFKA_HOME ]; then echo "Downloading Kafka version $version" - curl -s -o $current_dir/kafka.tgz "http://ftp.wayne.edu/apache/kafka/$version/kafka_2.11-$version.tgz" - mkdir $current_dir/kafka && tar xzf $current_dir/kafka.tgz -C $current_dir/kafka --strip-components 1 - rm $current_dir/kafka.tgz + curl -s -o $INSTALL_DIR/kafka.tgz "http://ftp.wayne.edu/apache/kafka/$version/kafka_2.11-$version.tgz" + mkdir $KAFKA_HOME && tar xzf $INSTALL_DIR/kafka.tgz -C $KAFKA_HOME --strip-components 1 + rm $INSTALL_DIR/kafka.tgz fi } start_kafka() { echo "Starting ZooKeeper" - $current_dir/kafka/bin/zookeeper-server-start.sh -daemon $current_dir/kafka/config/zookeeper.properties - sleep 3 + $KAFKA_HOME/bin/zookeeper-server-start.sh -daemon $KAFKA_HOME/config/zookeeper.properties + wait_for_port 2181 echo "Starting Kafka broker" - $current_dir/kafka/bin/kafka-server-start.sh -daemon $current_dir/kafka/config/server.properties --override delete.topic.enable=true - sleep 3 + $KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties --override delete.topic.enable=true --override log.dirs=/tmp/ls_integration/kafka-logs + wait_for_port 9092 +} + +wait_for_messages() { + local count=10 + local read_lines=0 + while [[ $read_lines -ne $KAFKA_MESSAGES ]] && [[ $count -ne 0 ]]; do + read_lines=`$KAFKA_HOME/bin/kafka-console-consumer.sh --topic $KAFKA_TOPIC --new-consumer --bootstrap-server localhost:9092 --from-beginning --max-messages $KAFKA_MESSAGES | wc -l` + count=$(( $count - 1 )) + [[ $count -eq 0 ]] && return 1 + sleep 0.5 + done } +setup_install_dir setup_kafka $version start_kafka -sleep 3 # Set up topics -$current_dir/kafka/bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic logstash_topic_plain --zookeeper localhost:2181 -sleep 1 -cat $current_dir/../fixtures/how_sample.input | $current_dir/kafka/bin/kafka-console-producer.sh --topic logstash_topic_plain --broker-list localhost:9092 -sleep 1 +$KAFKA_HOME/bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic logstash_topic_plain --zookeeper localhost:2181 +# Add test messages to the newly created topic +cat $current_dir/../fixtures/how_sample.input | $KAFKA_HOME/bin/kafka-console-producer.sh --topic $KAFKA_TOPIC --broker-list localhost:9092 +# Wait until broker has all messages +wait_for_messages echo "Kafka Setup complete" diff --git a/qa/integration/services/kafka_teardown.sh b/qa/integration/services/kafka_teardown.sh index 1120b340ca7..e61c0f1c12e 100755 --- a/qa/integration/services/kafka_teardown.sh +++ b/qa/integration/services/kafka_teardown.sh @@ -2,16 +2,21 @@ set -e current_dir="$(dirname "$0")" +source "$current_dir/helpers.sh" + +KAFKA_HOME=$INSTALL_DIR/kafka + stop_kafka() { echo "Stopping Kafka broker" - $current_dir/kafka/bin/kafka-server-stop.sh - sleep 2 + $KAFKA_HOME/bin/kafka-server-stop.sh echo "Stopping zookeeper" - $current_dir/kafka/bin/zookeeper-server-stop.sh - sleep 2 + $KAFKA_HOME/bin/zookeeper-server-stop.sh } # delete test topic echo "Deleting test topic in Kafka" -$current_dir/kafka/bin/kafka-topics.sh --delete --topic logstash_topic_plain --zookeeper localhost:2181 --if-exists +$KAFKA_HOME/bin/kafka-topics.sh --delete --topic logstash_topic_plain --zookeeper localhost:2181 --if-exists stop_kafka +rm -rf /tmp/ls_integration/kafka-logs +rm -rf /tmp/zookeeper + From 7da292a3b015049061a5ce9ac08f95e024700646 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 5 Oct 2016 18:31:25 +0200 Subject: [PATCH 383/632] Make sure we log stuff using logger Partially addresses #5975 Fixes #5999 --- logstash-core/lib/logstash/runner.rb | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 5a6b21c281d..e1bcaea99cd 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -165,7 +165,10 @@ def run(args) rescue => e # abort unless we're just looking for the help if (["--help", "-h"] & args).empty? - $stderr.puts "INFO: Logstash has a new settings file which defines start up time settings. This file is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually please specify the location to this settings file by passing in \"--path.settings=/path/..\" in the command line options" + $stderr.puts "INFO: Logstash requires a settings file, typically located in $LS_HOME/config or /etc/logstash. "\ + "If you installed Logstash through a package and are starting it manually please specify the location to this settings "\ + "file by passing in \"--path.settings=/path/..\"" + $stderr.puts "ERROR: Failed to load settings file from \"path.settings\". Aborting... path.setting=#{LogStash::SETTINGS.get("path.settings")}, exception=#{e.class}, message=>#{e.message}" return 1 end @@ -191,6 +194,12 @@ def execute # override log level that may have been introduced from a custom log4j config file LogStash::Logging::Logger::configure_logging(setting("log.level")) + # Adding this here because a ton of LS users install LS via packages and try to manually + # start Logstash using bin/logstash. See #5986. I think not logging to console is good for + # services, but until LS users re-learn that logs end up in path.logs, we should keep this + # message. Otherwise we'll be answering the same question again and again. + puts "Sending Logstash logs to #{setting("path.logs")} which is now configured via log4j2.properties." + if setting("config.debug") && logger.debug? logger.warn("--config.debug was specified, but log.level was not set to \'debug\'! No config info will be logged.") end @@ -198,14 +207,14 @@ def execute LogStash::Util::set_thread_name(self.class.name) if RUBY_VERSION < "1.9.2" - $stderr.puts "Ruby 1.9.2 or later is required. (You are running: " + RUBY_VERSION + ")" + logger.fatal "Ruby 1.9.2 or later is required. (You are running: " + RUBY_VERSION + ")" return 1 end # Exit on bad java versions java_version = LogStash::Util::JavaVersion.version if LogStash::Util::JavaVersion.bad_java_version?(java_version) - $stderr.puts "Java version 1.8.0 or later is required. (You are running: #{java_version})" + logger.fatal "Java version 1.8.0 or later is required. (You are running: #{java_version})" return 1 end @@ -237,6 +246,7 @@ def execute begin LogStash::Pipeline.new(config_str) puts "Configuration OK" + logger.info "Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash" return 0 rescue => e logger.fatal I18n.t("logstash.runner.invalid-configuration", :error => e.message) From 6f9ce48adbead457a31bf152e80aaf0abce0496d Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 5 Oct 2016 21:12:15 +0200 Subject: [PATCH 384/632] Fix issue with long message Fixes #5999 --- logstash-core/lib/logstash/runner.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index e1bcaea99cd..3adc4592280 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -165,10 +165,7 @@ def run(args) rescue => e # abort unless we're just looking for the help if (["--help", "-h"] & args).empty? - $stderr.puts "INFO: Logstash requires a settings file, typically located in $LS_HOME/config or /etc/logstash. "\ - "If you installed Logstash through a package and are starting it manually please specify the location to this settings "\ - "file by passing in \"--path.settings=/path/..\"" - + $stderr.puts "INFO: Logstash requires a setting file which is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually please specify the location to this settings file by passing in \"--path.settings=/path/..\"" $stderr.puts "ERROR: Failed to load settings file from \"path.settings\". Aborting... path.setting=#{LogStash::SETTINGS.get("path.settings")}, exception=#{e.class}, message=>#{e.message}" return 1 end @@ -193,7 +190,7 @@ def execute end # override log level that may have been introduced from a custom log4j config file LogStash::Logging::Logger::configure_logging(setting("log.level")) - + # Adding this here because a ton of LS users install LS via packages and try to manually # start Logstash using bin/logstash. See #5986. I think not logging to console is good for # services, but until LS users re-learn that logs end up in path.logs, we should keep this From ce0c5e2bf286e066ecd967964df9eda9af44a782 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 6 Oct 2016 18:22:30 +0100 Subject: [PATCH 385/632] skip sighup handling on windows Fixes #6005 --- logstash-core/lib/logstash/runner.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 3adc4592280..7664c86a5fb 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -263,7 +263,8 @@ def execute @agent_task = Stud::Task.new { @agent.execute } # no point in enabling config reloading before the agent starts - sighup_id = trap_sighup() + # also windows doesn't have SIGHUP. we can skip it + sighup_id = LogStash::Environment.windows? ? nil : trap_sighup() agent_return = @agent_task.wait From f78da5ffe0c5888a6f706c71f692116b8ee2e014 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Fri, 7 Oct 2016 12:00:25 -0700 Subject: [PATCH 386/632] check versions.yml for correct project version (#5882) - and fix a test --- logstash-core/build.gradle | 17 +++++++++++++++-- .../org/logstash/log/CustomLogEventTests.java | 5 +++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/logstash-core/build.gradle b/logstash-core/build.gradle index 3076f09ba6b..c45ad34920c 100644 --- a/logstash-core/build.gradle +++ b/logstash-core/build.gradle @@ -1,17 +1,30 @@ import java.nio.file.Files +import org.yaml.snakeyaml.Yaml import static java.nio.file.StandardCopyOption.REPLACE_EXISTING apply plugin: 'java' apply plugin: 'idea' group = 'org.logstash' -version = '6.0.0-alpha1' - description = """Logstash Core Java""" sourceCompatibility = 1.8 targetCompatibility = 1.8 +// fetch version from Logstash's master versions.yml file +def versionMap = (Map) (new Yaml()).load(new File("$projectDir/../versions.yml").text) +version = versionMap['logstash-core'] + +buildscript { + repositories { + mavenCentral() + } + + dependencies { + classpath 'org.yaml:snakeyaml:1.17' + } +} + configurations { provided } diff --git a/logstash-core/src/test/java/org/logstash/log/CustomLogEventTests.java b/logstash-core/src/test/java/org/logstash/log/CustomLogEventTests.java index d4bfca10d65..9604c457894 100644 --- a/logstash-core/src/test/java/org/logstash/log/CustomLogEventTests.java +++ b/logstash-core/src/test/java/org/logstash/log/CustomLogEventTests.java @@ -33,6 +33,7 @@ import java.util.Map; import static junit.framework.TestCase.assertEquals; +import static junit.framework.TestCase.assertNotNull; public class CustomLogEventTests { private static final ObjectMapper mapper = new ObjectMapper(); @@ -78,7 +79,7 @@ public void testJSONLayout() throws Exception { assertEquals(5, firstMessage.size()); assertEquals("INFO", firstMessage.get("level")); assertEquals("JSONEventLogger", firstMessage.get("loggerName")); - assertEquals("main", firstMessage.get("thread")); + assertNotNull(firstMessage.get("thread")); assertEquals(Collections.singletonMap("message", "simple message"), firstMessage.get("logEvent")); Map secondMessage = mapper.readValue(messages.get(1), Map.class); @@ -86,7 +87,7 @@ public void testJSONLayout() throws Exception { assertEquals(5, secondMessage.size()); assertEquals("WARN", secondMessage.get("level")); assertEquals("JSONEventLogger", secondMessage.get("loggerName")); - assertEquals("main", secondMessage.get("thread")); + assertNotNull(secondMessage.get("thread")); Map logEvent = new HashMap<>(); logEvent.put("message", "complex message"); logEvent.put("foo", "bar"); From b013163f36b382682da82a462b134b2af02bee8b Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Fri, 7 Oct 2016 11:23:59 -0700 Subject: [PATCH 387/632] add file:// protocol prefix to log4j configuration filepath fixes #5971 Fixes #6012 --- logstash-core/lib/logstash/runner.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 7664c86a5fb..eed3768f086 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -186,7 +186,7 @@ def execute java.lang.System.setProperty("ls.log.level", setting("log.level")) unless java.lang.System.getProperty("log4j.configurationFile") log4j_config_location = ::File.join(setting("path.settings"), "log4j2.properties") - LogStash::Logging::Logger::initialize(log4j_config_location) + LogStash::Logging::Logger::initialize("file://" + log4j_config_location) end # override log level that may have been introduced from a custom log4j config file LogStash::Logging::Logger::configure_logging(setting("log.level")) From 2c17c3e7e095b0dae663ac8cd1f0d7951f3dfc1d Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Mon, 10 Oct 2016 16:42:06 -0500 Subject: [PATCH 388/632] If a plugin lookup fails the error message is too vague to debug. This problem is seen here: https://github.com/elastic/logstash/issues/6019 This change will log extra information that will be helpful to the debugging process. Testing this out with jdbc-input 4.1.1 (cited in #6019 above) we now see as output: ``` ~/p/l/logstash-alt (better_plugin_error_messages) $ bin/logstash -e "input { jdbc {} } output { stdout {} }" Sending Logstash logs to /Users/andrewvc/projects/lsp/logstash-alt/logs which is now configured via log4j2.properties. [2016-10-10T16:38:50,723][WARN ][logstash.registry ] Problems loading a plugin with {:type=>"input", :name=>#, :path=>"logstash/inputs/jdbc", :error_message=>"uninitialized constant LogStash::PluginMixins::Jdbc::Cabin", :error_class=>NameError, :error_backtrace=>["org/jruby/RubyModule.java:2719:in `const_missing'", "/Users/andrewvc/projects/lsp/logstash-alt/vendor/bundle/jruby/1.9/gems/logstash-input-jdbc-4.1.1/lib/logstash/plugin_mixins/jdbc.rb:11:in `Jdbc'", "/Users/andrewvc/projects/lsp/logstash-alt/vendor/bundle/jruby/1.9/gems/logstash-input-jdbc-4.1.1/lib/logstash/plugin_mixins/jdbc.rb:9:in `(root)'", "org/jruby/RubyKernel.java:1040:in `require'", "/Users/andrewvc/projects/lsp/logstash-alt/vendor/bundle/jruby/1.9/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'", "/Users/andrewvc/projects/lsp/logstash-alt/vendor/bundle/jruby/1.9/gems/logstash-input-jdbc-4.1.1/lib/logstash/inputs/jdbc.rb:1:in `(root)'", "org/jruby/RubyKernel.java:1040:in `require'", "/Users/andrewvc/projects/lsp/logstash-alt/vendor/bundle/jruby/1.9/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'", "/Users/andrewvc/projects/lsp/logstash-alt/vendor/bundle/jruby/1.9/gems/logstash-input-jdbc-4.1.1/lib/logstash/inputs/jdbc.rb:4:in `(root)'", "/Users/andrewvc/projects/lsp/logstash-alt/logstash-core/lib/logstash/plugins/registry.rb:1:in `(root)'", "/Users/andrewvc/projects/lsp/logstash-alt/logstash-core/lib/logstash/plugins/registry.rb:59:in `lookup'", "/Users/andrewvc/projects/lsp/logstash-alt/logstash-core/lib/logstash/plugin.rb:121:in `lookup'", "org/jruby/RubyKernel.java:1079:in `eval'", "/Users/andrewvc/projects/lsp/logstash-alt/logstash-core/lib/logstash/pipeline.rb:418:in `plugin'", "(eval):8:in `initialize'", "/Users/andrewvc/projects/lsp/logstash-alt/logstash-core/lib/logstash/pipeline.rb:90:in `initialize'", "/Users/andrewvc/projects/lsp/logstash-alt/logstash-core/lib/logstash/agent.rb:195:in `create_pipeline'", "/Users/andrewvc/projects/lsp/logstash-alt/logstash-core/lib/logstash/agent.rb:87:in `register_pipeline'", "/Users/andrewvc/projects/lsp/logstash-alt/logstash-core/lib/logstash/runner.rb:256:in `execute'", "/Users/andrewvc/projects/lsp/logstash-alt/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:67:in `run'", "/Users/andrewvc/projects/lsp/logstash-alt/lib/bootstrap/environment.rb:68:in `(root)'"]} [2016-10-10T16:38:50,735][ERROR][logstash.agent ] fetched an invalid config {:config=>"input { jdbc {} } output { stdout {} }", :reason=>"Couldn't find any input plugin named 'jdbc'. Are you sure this is correct? Trying to load the jdbc input plugin resulted in this error: Problems loading the requested plugin named jdbc of type input. Error: NameError uninitialized constant LogStash::PluginMixins::Jdbc::Cabin"} ``` Fixes #6020 --- logstash-core/lib/logstash/plugins/registry.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/plugins/registry.rb b/logstash-core/lib/logstash/plugins/registry.rb index 3c44aef2442..cab0181f764 100644 --- a/logstash-core/lib/logstash/plugins/registry.rb +++ b/logstash-core/lib/logstash/plugins/registry.rb @@ -69,8 +69,9 @@ def lookup(type, plugin_name, &block) raise LoadError end rescue => e - @logger.debug("Problems loading a plugin with", :type => type, :name => plugin, :path => plugin.path, :error => e) if @logger.debug? - raise LoadError, "Problems loading the requested plugin named #{plugin_name} of type #{type}." + @logger.warn("Problems loading a plugin with", :type => type, :name => plugin, :path => plugin.path, + :error_message => e.message, :error_class => e.class, :error_backtrace => e.backtrace) + raise LoadError, "Problems loading the requested plugin named #{plugin_name} of type #{type}. Error: #{e.class} #{e.message}" end def register(path, klass) From 4eab71f1669a83e29ba17979bf0d5ee2eb9e2f97 Mon Sep 17 00:00:00 2001 From: yangwei71 Date: Sun, 2 Oct 2016 13:16:27 -0700 Subject: [PATCH 389/632] fix a wrong word MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the wrong word in this sentence "Run the example desfined at line 11" . “desfined” change to "defined". Fixes #5987 --- qa/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/README.md b/qa/README.md index ceb72746ded..1f8ab1ead02 100644 --- a/qa/README.md +++ b/qa/README.md @@ -196,6 +196,6 @@ Check https://relishapp.com/rspec/rspec-core/v/3-4/docs/command-line for more de * bundle exec rspec acceptance/spec -e "is installed" -# Run the example desfined at line 11 +# Run the example defined at line 11 * bundle exec rspec acceptance/spec/lib/artifact_operation_spec.rb:11 From 58f4e0805bdcf6b0397e2f60c03bc9e170d45543 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 11 Oct 2016 11:52:11 -0700 Subject: [PATCH 390/632] [Doc] Rearrange breaking changes docs (#6026) Added new Event API doc to support breaking changes --- docs/static/breaking-changes.asciidoc | 60 ++++++++++--- docs/static/event-api.asciidoc | 120 ++++++++++++++++++++++++++ 2 files changed, 166 insertions(+), 14 deletions(-) create mode 100644 docs/static/event-api.asciidoc diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 07920e78861..756eb1fb0ac 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -3,36 +3,64 @@ This section discusses the changes that you need to be aware of when migrating your application to Logstash {version}. -**Application Settings:** Introduced a new way to configure application settings for Logstash through a settings.yml file. This file +[float] +=== Changes in Logstash Core + +* **Application Settings:** Introduced a new way to configure application settings for Logstash through a settings.yml file. This file is typically located in `LS_HOME/config`, or `/etc/logstash` when installed via packages. Logstash will not be able to start without this file, so please make sure to pass in `--path.settings` if you are starting Logstash manually after installing it via a package (RPM, DEB). -**Release Packages:** When Logstash is installed via DEB, RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries and config files -respectively. Previously it used to install in `/opt` directory. This change was done to make the user experience +* **Release Packages:** When Logstash is installed via DEB, RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries. +Previously it used to install in `/opt/logstash` directory. This change was done to make the user experience consistent with other Elastic products. Full directory layout is described in <>. -**Command Line Interface:** Most of the long form <> have been renamed +* **Default Logging Level:** Changed the default log severity level to INFO instead of WARN to match Elasticsearch. Existing logs +(in core and plugins) were too noisy at INFO level, so we had to audit log messages and switch some of them to DEBUG +level. + +* **Command Line Interface:** Most of the long form <> have been renamed to adhere to the yml dot notation to be used in the settings file. Short form options have not been changed. -**Plugin Manager Renamed:** `bin/plugin` has been renamed to `bin/logstash-plugin`. This change was to mainly prevent `PATH` being polluted when +* **Plugin Manager Renamed:** `bin/plugin` has been renamed to `bin/logstash-plugin`. This change was to mainly prevent `PATH` being polluted when other components of the Elastic stack are installed on the same instance. Also, this provides a foundation for future change which will allow Elastic Stack packs to be installed via this script. -**Kafka Input/Output Configuration Changes:** This release added support for the new 0.9 consumer/producer API which supports security features introduced by Kafka. +[float] +=== Breaking Changes in Plugins + +* **Elasticsearch Output Index Template:** The index template for 5.0 has been changed to reflect {ref}breaking_50_mapping_changes.html[Elasticsearch's mapping changes]. Most +importantly, the subfield for string multi-fields has changed from `.raw` to `.keyword` to match Elasticsearch's default +behavior. The impact of this change to various user groups is detailed below: + +** New Logstash 5.0 and Elasticsearch 5.0 users - subfields use `.keyword` from the outset. In Kibana, you can use +`field.keyword` to perform aggregations. +** Existing users with custom templates - most of you won't be impacted because you use a custom template. +** Existing users with default template - Logstash does not force you to upgrade templates if one already exists. If you +intend to move to the new template and want to use `.keyword`, you'll have to reindex existing data. Elasticsearch's + {ref}docs-reindex.html[reindexing API] can help move your data from using `.raw` subfields to `.keyword`. + +* **Kafka Input/Output Configuration Changes:** This release added support for the new 0.10 consumer/producer API which supports security features introduced by Kafka. A few Configuration options were renamed to make it consistent with Kafka consumer and producer settings. Also, this plugin version will not work with Kafka 0.8 broker. Please see the following specific plugin documentation for new configuration options: -* <> +* <> * <> -**Ruby Filter and Custom Plugin Developers:** With the migration to the Java Event (https://github.com/elastic/logstash/issues/4191[Issue 4191]), we have changed -how you can access internal data. The Event object no longer returns a reference to the data. Instead, it returns a -copy. This might change how you do manipulation of your data, especially when working with nested hashes. -When working with nested hashes, it’s recommended that you use the `fieldref` syntax instead of using multiple brackets. -Also note that we have introduced new Getter/Setter APIs for accessing information in the Event object. +* **File Input:** SinceDB file is now saved in `/plugins/inputs/file` location, not user's home. If you have manually specified `sincedb_path` +configuration, this change will not affect you. If you are moving from 2.x to 5.x, and would like to use the existing SinceDB file, it +has to be copied over to `path.data` manually to use the save state. + +[float] +=== Ruby Filter and Custom Plugin Developers + +With the migration to the new <>, we have changed how you can access internal data compared to previous release. +The Event object no longer returns a reference to the data. Instead, it returns a copy. This might change how you do manipulation of +your data, especially when working with nested hashes. When working with nested hashes, it’s recommended that you +use the `fieldref` syntax instead of using multiple brackets. Also note that we have introduced new Getter/Setter APIs +for accessing information in the Event object. Refer <> for details. **Examples:** @@ -40,17 +68,21 @@ Also note that we have introduced new Getter/Setter APIs for accessing informati ---------------------------------- filter { ruby { - codec => "event.set('uuid', event.get('uuid').gsub(/b/, ''))" # instead of using event['uuid'].gsub!(/b/, '') + codec => "event.set('[product][price]', 10)" } } ---------------------------------- +Instead of: + [source, js] ---------------------------------- filter { ruby { - codec => "event.set('[product][price]', 10)" # instead of using event['product']['price'] = 10 + codec => "event['product']['price'] = 10" } } ---------------------------------- +The above syntax is not supported, and will produce an error at run-time. + diff --git a/docs/static/event-api.asciidoc b/docs/static/event-api.asciidoc new file mode 100644 index 00000000000..f55841a1c8f --- /dev/null +++ b/docs/static/event-api.asciidoc @@ -0,0 +1,120 @@ +[[event-api]] +== Event API + +This section is targeted for plugin developers and users of Logstash's Ruby filter. Below we document recent +changes (starting with version 5.0) in the way users have been accessing Logstash's event based data in +custom plugins and in the Ruby filter. Note that <> +data flow in Logstash's config files -- using <> -- is +not affected by this change, and will continue to use existing syntax. + +[float] +=== Event Object + +Event is the main object that encapsulates data flow internally in Logstash and provides an API for the plugin +developers to interact with the event's content. Typically, this API is used in plugins and in a Ruby filter to +retrieve data and use it for transformations. Event object contains the original data sent to Logstash and any additional +fields created during Logstash's filter stages. + +In 5.0, we've re-implemented the Event class and its supporting classes in pure Java. Since Event is a critical component +in data processing, a rewrite in Java improves performance and provides efficient serialization when storing data on disk. For the most part, this change aims at keeping backward compatibility and is transparent to the users. To this extent we've updated and published most of the plugins in Logstash's ecosystem to adhere to the new API changes. However, if you are maintaining a custom plugin, or have a Ruby filter, this change will affect you. The aim of this guide is to describe the new API and provide examples to migrate to the new changes. + +[float] +==== Event API + +Prior to version 5.0, developers could access and manipulate event data by directly using Ruby hash syntax. For +example, `event[field] = foo`. While this is powerful, our goal is to abstract the internal implementation details +and provide well-defined getter and setter APIs. + +**Get API** + +The getter is a read-only access of field-based data in an Event. + +**Syntax:** `event.get(field)` + +**Returns:** Value for this field or nil if the field does not exist. Returned values could be a string, +numeric or timestamp scalar value. + +`field` is a structured field sent to Logstash or created after the transformation process. `field` can also +be a nested field reference such as `[field][bar]`. + +Examples: + +[source,ruby] +-------------------------------------------------- +event.get("foo" ) # => "baz" +event.get("[foo]") # => "zab" +event.get("[foo][bar]") # => 1 +event.get("[foo][bar]") # => 1.0 +event.get("[foo][bar]") # => [1, 2, 3] +event.get("[foo][bar]") # => {"a" => 1, "b" => 2} +event.get("[foo][bar]") # => {"a" => 1, "b" => 2, "c" => [1, 2]} +-------------------------------------------------- + +Accessing @metdata + +[source,ruby] +-------------------------------------------------- +event.get("[@metadata][foo]") # => "baz" +-------------------------------------------------- + +**Set API** + +This API can be used to mutate data in an Event. + +**Syntax:** `event.set(field, value)` + +**Returns:** The current Event after the mutation, which can be used for chainable calls. + +Examples: + +[source,ruby] +-------------------------------------------------- +event.set("foo", "baz") +event.set("[foo]", "zab") +event.set("[foo][bar]", 1) +event.set("[foo][bar]", 1.0) +event.set("[foo][bar]", [1, 2, 3]) +event.set("[foo][bar]", {"a" => 1, "b" => 2}) +event.set("[foo][bar]", {"a" => 1, "b" => 2, "c" => [1, 2]}) +event.set("[@metadata][foo]", "baz") +-------------------------------------------------- + +Mutating a collection after setting it in the Event has an undefined behaviour and is not allowed. + +[source,ruby] +-------------------------------------------------- +h = {"a" => 1, "b" => 2, "c" => [1, 2]} +event.set("[foo][bar]", h) + +h["c"] = [3, 4] +event.get("[foo][bar][c]") # => undefined + +Suggested way of mutating collections: + +h = {"a" => 1, "b" => 2, "c" => [1, 2]} +event.set("[foo][bar]", h) + +h["c"] = [3, 4] +event.set("[foo][bar]", h) + +# Alternatively, +event.set("[foo][bar][c]", [3, 4]) +-------------------------------------------------- + +[float] +=== Ruby Filter + +The <> can be used to execute any ruby code and manipulate event data using the +API described above. For example, using the new API: + +[source,ruby] +-------------------------------------------------- +filter { + ruby { + code => 'event.set("lowercase_field", event.get("message").downcase)' + } +} +-------------------------------------------------- + +This filter will lowercase the `message` field, and set it to a new field called `lowercase_field` + From f3f3e14432103f52e0746e61775da9f37745105d Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 11 Oct 2016 12:57:14 -0700 Subject: [PATCH 391/632] Remove logrotate references since it's not used Fixes #6028 Fixes #6029 --- pkg/centos/after-install.sh | 1 - pkg/debian/after-install.sh | 1 - pkg/ubuntu/after-install.sh | 1 - 3 files changed, 3 deletions(-) diff --git a/pkg/centos/after-install.sh b/pkg/centos/after-install.sh index 7fea3e32ae9..ac226fd84b2 100644 --- a/pkg/centos/after-install.sh +++ b/pkg/centos/after-install.sh @@ -1,7 +1,6 @@ chown -R logstash:logstash /usr/share/logstash chown -R logstash /var/log/logstash chown logstash:logstash /var/lib/logstash -chmod 0644 /etc/logrotate.d/logstash sed -i \ -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ -e 's|# path.logs:|path.logs: /var/log/logstash|' \ diff --git a/pkg/debian/after-install.sh b/pkg/debian/after-install.sh index 14e44a88e32..8a2f0767997 100644 --- a/pkg/debian/after-install.sh +++ b/pkg/debian/after-install.sh @@ -4,7 +4,6 @@ chown -R logstash:logstash /usr/share/logstash chown -R logstash /var/log/logstash chown logstash:logstash /var/lib/logstash chmod 755 /etc/logstash -chmod 0644 /etc/logrotate.d/logstash sed -i \ -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ -e 's|# path.logs:|path.logs: /var/log/logstash|' \ diff --git a/pkg/ubuntu/after-install.sh b/pkg/ubuntu/after-install.sh index 6c7b832681e..8c521d50a59 100644 --- a/pkg/ubuntu/after-install.sh +++ b/pkg/ubuntu/after-install.sh @@ -3,7 +3,6 @@ chown -R logstash:logstash /usr/share/logstash chown -R logstash /var/log/logstash chown logstash:logstash /var/lib/logstash -chmod 0644 /etc/logrotate.d/logstash sed -i \ -e 's|# path.config:|path.config: /etc/logstash/conf.d|' \ -e 's|# path.logs:|path.logs: /var/log/logstash|' \ From e98b1c6e147a179583075cd6b35c4a78a7a1a284 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Thu, 6 Oct 2016 15:17:07 -0700 Subject: [PATCH 392/632] Add Settings#validate_all and NullableString setting This allows us to validate all settings after all the settings sources have been processed (logstash.yml, flags, environment variables, etc) NullableString is required for validation to pass on what were previously String settings with nil defaults. WritableDirectory's strict now defaults false to help with a problem where the default path.data might not be writable *and* the user could be specifying --path.data on the command line to compensate. Prior to this, the default value would be validated and cause Logstash to terminate on startup because of the default data directory was validated before the flag override was applied. To make this validate_all feature more useful, Setting#set will only call validate if `strict` is true. Fixes #6004 Fixes #6008 --- logstash-core/lib/logstash/environment.rb | 6 +-- logstash-core/lib/logstash/runner.rb | 2 + logstash-core/lib/logstash/settings.rb | 43 +++++++++++++++---- logstash-core/spec/logstash/setting_spec.rb | 24 ++++++++++- .../spec/logstash/settings/string_spec.rb | 2 +- logstash-core/spec/logstash/settings_spec.rb | 27 ++++++++++++ 6 files changed, 90 insertions(+), 14 deletions(-) diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 010989753df..ddef42918cd 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -17,9 +17,9 @@ module Environment [ Setting::String.new("node.name", Socket.gethostname), - Setting::String.new("path.config", nil, false), + Setting::NullableString.new("path.config", nil, false), Setting::WritableDirectory.new("path.data", ::File.join(LogStash::Environment::LOGSTASH_HOME, "data")), - Setting::String.new("config.string", nil, false), + Setting::NullableString.new("config.string", nil, false), Setting::Boolean.new("config.test_and_exit", false), Setting::Boolean.new("config.reload.automatic", false), Setting::Numeric.new("config.reload.interval", 3), # in seconds @@ -31,7 +31,7 @@ module Environment Setting::Numeric.new("pipeline.batch.delay", 5), # in milliseconds Setting::Boolean.new("pipeline.unsafe_shutdown", false), Setting.new("path.plugins", Array, []), - Setting::String.new("interactive", nil, false), + Setting::NullableString.new("interactive", nil, false), Setting::Boolean.new("config.debug", false), Setting::String.new("log.level", "info", true, ["fatal", "error", "warn", "debug", "info", "trace"]), Setting::Boolean.new("version", false), diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index eed3768f086..1ea15138c81 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -226,6 +226,8 @@ def execute return start_shell(setting("interactive"), binding) if setting("interactive") + @settings.validate_all + @settings.format_settings.each {|line| logger.debug(line) } if setting("config.string").nil? && setting("path.config").nil? diff --git a/logstash-core/lib/logstash/settings.rb b/logstash-core/lib/logstash/settings.rb index a39f5d29e68..66bbb2ec7c0 100644 --- a/logstash-core/lib/logstash/settings.rb +++ b/logstash-core/lib/logstash/settings.rb @@ -95,6 +95,12 @@ def from_yaml(yaml_path) self.merge(flatten_hash(settings)) end + def validate_all + @settings.each do |name, setting| + setting.validate_value + end + end + private def read_yaml(path) YAML.safe_load(IO.read(path)) || {} @@ -123,8 +129,9 @@ def initialize(name, klass, default=nil, strict=true, &validator_proc) @validator_proc = validator_proc @value = nil @value_is_set = false + @strict = strict - validate(default) if strict + validate(default) if @strict @default = default end @@ -136,8 +143,12 @@ def set? @value_is_set end + def strict? + @strict + end + def set(value) - validate(value) + validate(value) if @strict @value = value @value_is_set = true @value @@ -167,12 +178,18 @@ def ==(other) self.to_hash == other.to_hash end - private - def validate(value) - if !value.is_a?(@klass) - raise ArgumentError.new("Setting \"#{@name}\" must be a #{@klass}. Received: #{value} (#{value.class})") - elsif @validator_proc && !@validator_proc.call(value) - raise ArgumentError.new("Failed to validate setting \"#{@name}\" with value: #{value}") + def validate_value + validate(value) + end + + protected + def validate(input) + if !input.is_a?(@klass) + raise ArgumentError.new("Setting \"#{@name}\" must be a #{@klass}. Received: #{input} (#{input.class})") + end + + if @validator_proc && !@validator_proc.call(input) + raise ArgumentError.new("Failed to validate setting \"#{@name}\" with value: #{input}") end end @@ -351,6 +368,13 @@ def validate(value) end end + class NullableString < String + def validate(value) + return if value.nil? + super(value) + end + end + class ExistingFilePath < Setting def initialize(name, default=nil, strict=true) super(name, ::String, default, strict) do |file_path| @@ -364,7 +388,7 @@ def initialize(name, default=nil, strict=true) end class WritableDirectory < Setting - def initialize(name, default=nil, strict=true) + def initialize(name, default=nil, strict=false) super(name, ::String, default, strict) do |path| if ::File.directory?(path) && ::File.writable?(path) true @@ -378,3 +402,4 @@ def initialize(name, default=nil, strict=true) SETTINGS = Settings.new end + diff --git a/logstash-core/spec/logstash/setting_spec.rb b/logstash-core/spec/logstash/setting_spec.rb index 33d1572b256..e16c1ed1353 100644 --- a/logstash-core/spec/logstash/setting_spec.rb +++ b/logstash-core/spec/logstash/setting_spec.rb @@ -63,6 +63,7 @@ end end end + describe "#set" do subject { described_class.new("number", Numeric, 1) } it "should change the value of a setting" do @@ -77,12 +78,33 @@ expect(subject.set?).to eq(true) end end - context "when the argument's class does not match @klass" do it "should throw an exception" do expect { subject.set("not a number") }.to raise_error end end + context "when strict=false" do + let(:strict) { false } + subject { described_class.new("number", Numeric, 1, strict) } + before do + expect(subject).not_to receive(:validate) + end + + it "should not call #validate" do + subject.set(123) + end + end + context "when strict=true" do + let(:strict) { true } + subject { described_class.new("number", Numeric, 1, strict) } + before do + expect(subject).to receive(:validate) + end + + it "should call #validate" do + subject.set(123) + end + end end describe "#reset" do diff --git a/logstash-core/spec/logstash/settings/string_spec.rb b/logstash-core/spec/logstash/settings/string_spec.rb index edd4dc4057c..69d835649ee 100644 --- a/logstash-core/spec/logstash/settings/string_spec.rb +++ b/logstash-core/spec/logstash/settings/string_spec.rb @@ -4,7 +4,7 @@ describe LogStash::Setting::String do let(:possible_values) { ["a", "b", "c"] } - subject { described_class.new("mytext", nil, false, possible_values) } + subject { described_class.new("mytext", possible_values.first, true, possible_values) } describe "#set" do context "when a value is given outside of possible_values" do it "should raise an ArgumentError" do diff --git a/logstash-core/spec/logstash/settings_spec.rb b/logstash-core/spec/logstash/settings_spec.rb index 050da87f4ac..138040fa62f 100644 --- a/logstash-core/spec/logstash/settings_spec.rb +++ b/logstash-core/spec/logstash/settings_spec.rb @@ -59,4 +59,31 @@ expect(subset.get("num.2")).to eq(1000) end end + + describe "#validate_all" do + subject { described_class.new } + let(:numeric_setting_name) { "example" } + let(:numeric_setting) { LogStash::Setting.new(numeric_setting_name, Numeric, 1, false) } + + before do + subject.register(numeric_setting) + subject.set_value(numeric_setting_name, value) + end + + context "when any setting is invalid" do + let(:value) { "some string" } + + it "should fail" do + expect { subject.validate_all }.to raise_error + end + end + + context "when all settings are valid" do + let(:value) { 123 } + + it "should succeed" do + expect { subject.validate_all }.not_to raise_error + end + end + end end From 1db69d518a37ced38c3867b82e1300e605c5acf4 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 11 Oct 2016 13:30:12 -0700 Subject: [PATCH 393/632] Fix build Fixes #6030 --- docs/static/breaking-changes.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 756eb1fb0ac..f2d035191a5 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -29,7 +29,7 @@ for future change which will allow Elastic Stack packs to be installed via this [float] === Breaking Changes in Plugins -* **Elasticsearch Output Index Template:** The index template for 5.0 has been changed to reflect {ref}breaking_50_mapping_changes.html[Elasticsearch's mapping changes]. Most +* **Elasticsearch Output Index Template:** The index template for 5.0 has been changed to reflect https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_mapping_changes.html[Elasticsearch's mapping changes]. Most importantly, the subfield for string multi-fields has changed from `.raw` to `.keyword` to match Elasticsearch's default behavior. The impact of this change to various user groups is detailed below: From 3dd1e85cf49873eda9292940275e64f7a69e1e9b Mon Sep 17 00:00:00 2001 From: fanfan Date: Wed, 12 Oct 2016 14:17:10 +0800 Subject: [PATCH 394/632] typo fix for qa/README Fixes #6033 --- qa/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qa/README.md b/qa/README.md index 1f8ab1ead02..27b37721f8e 100644 --- a/qa/README.md +++ b/qa/README.md @@ -67,7 +67,7 @@ you might only want to this once. In the feature we might add new rake tasks to do all at once, but for now you can use the script under `ci/ci_acceptance.sh` to do all at once. -For local testing puroposes, is recommended to not run all together, pick your target and run with the single machine command, If you're willing to run on single one, you should use: +For local testing purposes, is recommended to not run all together, pick your target and run with the single machine command, If you're willing to run on single one, you should use: ``` rake qa:acceptance:single[machine] # Run one single machine acceptance test @@ -93,7 +93,7 @@ Now is time to run your test and to do that we have different options: * rake qa:acceptance:single[machine] # Run one single machine acceptance test Generally speaking this are complex tests so they take a long time to -finish completly, if you look for faster feedback see at the end of this +finish completely, if you look for faster feedback see at the end of this README how to run fewer tests. ## Architecture of the Framework @@ -126,7 +126,7 @@ in the platform definition). This file is the one that you will use to know about differnt OS's testes, add new ones, etc.. -### I want to add a test, whad should I do? +### I want to add a test, what should I do? To add a test you basically should start by the acceptance directory, here you will find an already created tests, most important locations From 3b1a0fd4b0dbdf3ae545ae97dd8e71bfdd0cbd04 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 12 Oct 2016 17:06:26 +0100 Subject: [PATCH 395/632] refactor agent specs to make them more predictable * avoid the use of sleeps * remove unused mocking of logger * ensure pipelines are shut down after each test Fixes #6039 --- logstash-core/spec/logstash/agent_spec.rb | 69 ++++++++++++----------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 37652cf915c..90e8cb615a7 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -6,7 +6,6 @@ describe LogStash::Agent do - let(:logger) { double("logger") } let(:agent_settings) { LogStash::SETTINGS } let(:agent_args) { {} } let(:pipeline_settings) { agent_settings.clone } @@ -17,12 +16,6 @@ subject { LogStash::Agent.new(agent_settings) } before :each do - [:info, :warn, :error, :fatal, :debug].each do |level| - allow(logger).to receive(level) - end - [:info?, :warn?, :error?, :fatal?, :debug?].each do |level| - allow(logger).to receive(level) - end File.open(config_file, "w") { |f| f.puts config_file_txt } agent_args.each do |key, value| agent_settings.set(key, value) @@ -31,7 +24,6 @@ pipeline_args.each do |key, value| pipeline_settings.set(key, value) end - #subject.logger = logger end after :each do @@ -58,7 +50,7 @@ it "should delegate settings to new pipeline" do expect(LogStash::Pipeline).to receive(:new) do |arg1, arg2| expect(arg1).to eq(config_string) - expect(arg2.to_hash).to include(agent_args) + expect(arg2.to_hash).to include(agent_args) end subject.register_pipeline(pipeline_id, agent_settings) end @@ -111,7 +103,7 @@ sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? expect(subject).to_not receive(:upgrade_pipeline) File.open(config_file, "w") { |f| f.puts second_pipeline_config } - subject.send(:reload_state!) + subject.reload_state! sleep 0.1 Stud.stop!(t) t.join @@ -127,7 +119,7 @@ sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? expect(subject).to receive(:upgrade_pipeline).once.and_call_original File.open(config_file, "w") { |f| f.puts second_pipeline_config } - subject.send(:reload_state!) + subject.reload_state! sleep 0.1 Stud.stop!(t) t.join @@ -155,9 +147,9 @@ context "if state is clean" do it "should periodically reload_state" do allow(subject).to receive(:clean_state?).and_return(false) - expect(subject).to receive(:reload_state!).at_least(3).times t = Thread.new { subject.execute } sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? + expect(subject).to receive(:reload_state!).at_least(2).times sleep 0.1 Stud.stop!(t) t.join @@ -216,14 +208,14 @@ it "upgrades the state" do expect(subject).to receive(:fetch_config).and_return(second_pipeline_config) expect(subject).to receive(:upgrade_pipeline).with(pipeline_id, kind_of(LogStash::Pipeline)) - subject.send(:reload_state!) + subject.reload_state! end end context "when fetching the same state" do it "doesn't upgrade the state" do expect(subject).to receive(:fetch_config).and_return(first_pipeline_config) expect(subject).to_not receive(:upgrade_pipeline) - subject.send(:reload_state!) + subject.reload_state! end end end @@ -268,6 +260,10 @@ subject.register_pipeline(pipeline_id, pipeline_settings) end + after(:each) do + subject.shutdown + end + context "when the upgrade fails" do before :each do allow(subject).to receive(:fetch_config).and_return(new_pipeline_config) @@ -276,14 +272,14 @@ end it "leaves the state untouched" do - subject.send(:reload_state!) + subject.reload_state! expect(subject.pipelines[pipeline_id].config_str).to eq(pipeline_config) end context "and current state is empty" do it "should not start a pipeline" do expect(subject).to_not receive(:start_pipeline) - subject.send(:reload_state!) + subject.reload_state! end end end @@ -293,15 +289,16 @@ before :each do allow(subject).to receive(:fetch_config).and_return(new_config) allow(subject).to receive(:stop_pipeline) + allow(subject).to receive(:start_pipeline) end it "updates the state" do - subject.send(:reload_state!) + subject.reload_state! expect(subject.pipelines[pipeline_id].config_str).to eq(new_config) end it "starts the pipeline" do expect(subject).to receive(:stop_pipeline) expect(subject).to receive(:start_pipeline) - subject.send(:reload_state!) + subject.reload_state! end end end @@ -330,33 +327,36 @@ context "metrics after config reloading" do - let(:config) { "input { generator { } } output { dummyoutput { } }" } - let(:config_path) do + let!(:config) { "input { generator { } } output { dummyoutput { } }" } + let!(:config_path) do f = Stud::Temporary.file f.write(config) + f.fsync f.close f.path end - let(:interval) { 0.2 } let(:pipeline_args) do { - "pipeline.workers" => 4, + "pipeline.workers" => 2, "path.config" => config_path } end let(:agent_args) do - super.merge({ "config.reload.automatic" => true, - "config.reload.interval" => interval, - "metric.collect" => true }) + { + "config.reload.automatic" => false, + "pipeline.batch.size" => 1, + "metric.collect" => true + } end # We need to create theses dummy classes to know how many # events where actually generated by the pipeline and successfully send to the output. # Theses values are compared with what we store in the metric store. + class DummyOutput2 < DummyOutput; end + let!(:dummy_output) { DummyOutput.new } - let!(:dummy_output2) { DummyOutput.new } - class DummyOutput2 < LogStash::Outputs::Base; end + let!(:dummy_output2) { DummyOutput2.new } before :each do allow(DummyOutput).to receive(:new).at_least(:once).with(anything).and_return(dummy_output) @@ -375,7 +375,7 @@ class DummyOutput2 < LogStash::Outputs::Base; end subject.execute end - sleep(2) + sleep(0.01) until dummy_output.events.size > 1 end after :each do @@ -400,14 +400,16 @@ class DummyOutput2 < LogStash::Outputs::Base; end sleep(0.1) end - # Also force a flush to disk to make sure ruby reload it. File.open(config_path, "w") do |f| f.write(new_config) f.fsync end - sleep(interval * 3) # Give time to reload the config + subject.reload_state! + + # wait until pipeline restarts + sleep(0.01) until dummy_output2.events.size > 0 # be eventually consistent. sleep(0.01) while dummy_output2.events.size < new_config_generator_counter @@ -428,7 +430,7 @@ class DummyOutput2 < LogStash::Outputs::Base; end it "increases the successful reload count" do snapshot = subject.metric.collector.snapshot_metric value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:successes].value - expect(value).to be(1) + expect(value).to eq(1) end it "does not set the failure reload timestamp" do @@ -463,20 +465,19 @@ class DummyOutput2 < LogStash::Outputs::Base; end sleep(0.1) end - # Also force a flush to disk to make sure ruby reload it. File.open(config_path, "w") do |f| f.write(new_config) f.fsync end - sleep(interval * 3) # Give time to reload the config + subject.reload_state! end it "does not increase the successful reload count" do snapshot = subject.metric.collector.snapshot_metric value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:successes].value - expect(value).to be(0) + expect(value).to eq(0) end it "does not set the successful reload timestamp" do From 44a52ff18e5c654fe6e963a05cc97739a2b0fb0f Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 12 Oct 2016 18:12:34 -0700 Subject: [PATCH 396/632] Deprecate uninstall for Plugin Manager Adds remove and deprecates uninstall Fixes #6041 Fixes #6042 --- docs/static/glossary.asciidoc | 2 +- docs/static/plugin-manager.asciidoc | 4 +- lib/pluginmanager/main.rb | 7 +++- lib/pluginmanager/remove.rb | 41 +++++++++++++++++++ lib/pluginmanager/uninstall.rb | 5 ++- qa/acceptance/spec/lib/cli_operation_spec.rb | 2 + .../cli/logstash-plugin/remove.rb | 35 ++++++++++++++++ 7 files changed, 90 insertions(+), 6 deletions(-) create mode 100644 lib/pluginmanager/remove.rb create mode 100644 qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb diff --git a/docs/static/glossary.asciidoc b/docs/static/glossary.asciidoc index f65088dcaf8..0fbea1cfa36 100644 --- a/docs/static/glossary.asciidoc +++ b/docs/static/glossary.asciidoc @@ -68,7 +68,7 @@ [[glossary-plugin-manager]]plugin manager:: Accessed via the `bin/logstash-plugin` script, the plugin manager enables you to manage the lifecycle of - <> in your Logstash deployment. You can install, uninstall, and upgrade plugins by using the + <> in your Logstash deployment. You can install, remove, and upgrade plugins by using the plugin manager Command Line Interface (CLI). [[shipper]]shipper:: diff --git a/docs/static/plugin-manager.asciidoc b/docs/static/plugin-manager.asciidoc index 7c700b0e460..1d8c81b264b 100644 --- a/docs/static/plugin-manager.asciidoc +++ b/docs/static/plugin-manager.asciidoc @@ -3,7 +3,7 @@ Logstash has a rich collection of input, filter, codec and output plugins. Plugins are available as self-contained packages called gems and hosted on RubyGems.org. The plugin manager accessed via `bin/logstash-plugin` script is used to manage the -lifecycle of plugins in your Logstash deployment. You can install, uninstall and upgrade plugins using the Command Line +lifecycle of plugins in your Logstash deployment. You can install, remove and upgrade plugins using the Command Line Interface (CLI) invocations described below. [float] @@ -94,7 +94,7 @@ If you need to remove plugins from your Logstash installation: [source,shell] ---------------------------------- -bin/logstash-plugin uninstall logstash-output-kafka +bin/logstash-plugin remove logstash-output-kafka ---------------------------------- [[proxy-plugins]] diff --git a/lib/pluginmanager/main.rb b/lib/pluginmanager/main.rb index 0ac63b29329..a7f1e50a129 100644 --- a/lib/pluginmanager/main.rb +++ b/lib/pluginmanager/main.rb @@ -16,6 +16,7 @@ module PluginManager require "pluginmanager/gemfile" require "pluginmanager/install" require "pluginmanager/uninstall" +require "pluginmanager/remove" require "pluginmanager/list" require "pluginmanager/update" require "pluginmanager/pack" @@ -27,13 +28,15 @@ module PluginManager class Error < StandardError; end class Main < Clamp::Command - subcommand "install", "Install a plugin", LogStash::PluginManager::Install - subcommand "uninstall", "Uninstall a plugin", LogStash::PluginManager::Uninstall + subcommand "list", "List all installed Logstash plugins", LogStash::PluginManager::List + subcommand "install", "Install a Logstash plugin", LogStash::PluginManager::Install + subcommand "remove", "Remove a Logstash plugin", LogStash::PluginManager::Remove subcommand "update", "Update a plugin", LogStash::PluginManager::Update subcommand "pack", "Package currently installed plugins", LogStash::PluginManager::Pack subcommand "unpack", "Unpack packaged plugins", LogStash::PluginManager::Unpack subcommand "list", "List all installed plugins", LogStash::PluginManager::List subcommand "generate", "Create the foundation for a new plugin", LogStash::PluginManager::Generate + subcommand "uninstall", "Uninstall a plugin. Deprecated: Please use remove instead", LogStash::PluginManager::Uninstall end end end diff --git a/lib/pluginmanager/remove.rb b/lib/pluginmanager/remove.rb new file mode 100644 index 00000000000..530463f64b1 --- /dev/null +++ b/lib/pluginmanager/remove.rb @@ -0,0 +1,41 @@ +# encoding: utf-8 +require "pluginmanager/command" + +class LogStash::PluginManager::Remove < LogStash::PluginManager::Command + + parameter "PLUGIN", "plugin name" + + def execute + signal_error("File #{LogStash::Environment::GEMFILE_PATH} does not exist or is not writable, aborting") unless File.writable?(LogStash::Environment::GEMFILE_PATH) + + ## + # Need to setup the bundler status to enable uninstall of plugins + # installed as local_gems, otherwise gem:specification is not + # finding the plugins + ## + LogStash::Bundler.setup!({:without => [:build, :development]}) + + # make sure this is an installed plugin and present in Gemfile. + # it is not possible to uninstall a dependency not listed in the Gemfile, for example a dependent codec + signal_error("This plugin has not been previously installed, aborting") unless LogStash::PluginManager.installed_plugin?(plugin, gemfile) + + # since we previously did a gemfile.find(plugin) there is no reason why + # remove would not work (return nil) here + if gemfile.remove(plugin) + gemfile.save + + puts("Removing #{plugin}") + + # any errors will be logged to $stderr by invoke! + # output, exception = LogStash::Bundler.invoke!(:install => true, :clean => true) + output = LogStash::Bundler.invoke!(:install => true, :clean => true) + + remove_unused_locally_installed_gems! + end + rescue => exception + gemfile.restore! + report_exception("Remove Aborted", exception) + ensure + display_bundler_output(output) + end +end diff --git a/lib/pluginmanager/uninstall.rb b/lib/pluginmanager/uninstall.rb index e7598a4ebc9..2a954e4ea6f 100644 --- a/lib/pluginmanager/uninstall.rb +++ b/lib/pluginmanager/uninstall.rb @@ -1,13 +1,16 @@ # encoding: utf-8 require "pluginmanager/command" +# TODO: SR: Delete this file in 6.0, as we deprecated uninstall in favar of remove to be consistent with the stack + class LogStash::PluginManager::Uninstall < LogStash::PluginManager::Command parameter "PLUGIN", "plugin name" def execute - signal_error("File #{LogStash::Environment::GEMFILE_PATH} does not exist or is not writable, aborting") unless File.writable?(LogStash::Environment::GEMFILE_PATH) + puts "uninstall subcommand is deprecated and will be removed in the next major version. Please use logstash-plugin remove instead." + signal_error("File #{LogStash::Environment::GEMFILE_PATH} does not exist or is not writable, aborting") unless File.writable?(LogStash::Environment::GEMFILE_PATH) ## # Need to setup the bundler status to enable uninstall of plugins # installed as local_gems, otherwise gem:specification is not diff --git a/qa/acceptance/spec/lib/cli_operation_spec.rb b/qa/acceptance/spec/lib/cli_operation_spec.rb index 2a0fbaa2176..43718dc488c 100644 --- a/qa/acceptance/spec/lib/cli_operation_spec.rb +++ b/qa/acceptance/spec/lib/cli_operation_spec.rb @@ -4,6 +4,7 @@ require_relative "../shared_examples/cli/logstash-plugin/install" require_relative "../shared_examples/cli/logstash-plugin/list" require_relative "../shared_examples/cli/logstash-plugin/uninstall" +require_relative "../shared_examples/cli/logstash-plugin/remove" require_relative "../shared_examples/cli/logstash-plugin/update" # This is the collection of test for the CLI interface, this include the plugin manager behaviour, @@ -16,6 +17,7 @@ it_behaves_like "logstash install", logstash it_behaves_like "logstash list", logstash it_behaves_like "logstash uninstall", logstash + it_behaves_like "logstash remove", logstash it_behaves_like "logstash update", logstash end end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb new file mode 100644 index 00000000000..fa79bff36e4 --- /dev/null +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb @@ -0,0 +1,35 @@ +# encoding: utf-8 +require_relative "../../../spec_helper" +require "logstash/version" +require "fileutils" + +shared_examples "logstash uninstall" do |logstash| + describe "logstash uninstall on #{logstash.hostname}" do + before :each do + logstash.install({:version => LOGSTASH_VERSION}) + end + + after :each do + logstash.uninstall + end + + context "when the plugin isn't installed" do + it "fails to remove it" do + result = logstash.run_command_in_path("bin/logstash-plugin remove logstash-filter-qatest") + expect(result.stderr).to match(/ERROR: Remove Aborted, message: This plugin has not been previously installed, aborting/) + end + end + + # Disabled because of this bug https://github.com/elastic/logstash/issues/5286 + xcontext "when the plugin is installed" do + it "succesfully removes it" do + result = logstash.run_command_in_path("bin/logstash-plugin install logstash-filter-qatest") + expect(logstash).to have_installed?("logstash-filter-qatest") + + result = logstash.run_command_in_path("bin/logstash-plugin remove logstash-filter-qatest") + expect(result.stdout).to match(/^Removing logstash-filter-qatest/) + expect(logstash).not_to have_installed?("logstash-filter-qatest") + end + end + end +end From d46aa3a1088e9af8799f222d67d8eee93bbc66c7 Mon Sep 17 00:00:00 2001 From: j-un Date: Thu, 13 Oct 2016 21:08:30 +0900 Subject: [PATCH 397/632] Fix a range of italic format to match a setting name Fixes #6049 --- docs/static/advanced-pipeline.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index f131c10ffdf..87da828002d 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -382,7 +382,7 @@ sends the information to an Elasticsearch cluster as well as writing the informa To add a Twitter feed, you use the {logstash}plugins-inputs-twitter.html[`twitter`] input plugin. To configure the plugin, you need several pieces of information: -* A _consumer_ key, which uniquely identifies your Twitter app. +* A _consumer key_, which uniquely identifies your Twitter app. * A _consumer secret_, which serves as the password for your Twitter app. * One or more _keywords_ to search in the incoming feed. The example shows using "cloud" as a keyword, but you can use whatever you want. * An _oauth token_, which identifies the Twitter account using this app. From 054dee96f1d6a3317c20a109a6d4c95c122e52f4 Mon Sep 17 00:00:00 2001 From: Guy Boertje Date: Thu, 13 Oct 2016 09:34:14 +0100 Subject: [PATCH 398/632] add Event method_missing to give better error messages for #[] and #[]= Change strings and regexs to CONSTANTS. move method missing code to event.rb doh - put Event class in already defined Logstash module Fixes #6045 --- .../logstash-core-event-java.rb | 2 +- .../lib/logstash/event.rb | 19 +++++++++++++++++- logstash-core-event-java/spec/event_spec.rb | 20 +++++++++++++++++-- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.rb b/logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.rb index cf86fec4d16..caf90a828ac 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.rb @@ -25,4 +25,4 @@ module LogStash require "jruby_event_ext" require "jruby_timestamp_ext" require "logstash/event" -require "logstash/timestamp" \ No newline at end of file +require "logstash/timestamp" diff --git a/logstash-core-event-java/lib/logstash/event.rb b/logstash-core-event-java/lib/logstash/event.rb index d0c09fac8cf..38c5d206938 100644 --- a/logstash-core-event-java/lib/logstash/event.rb +++ b/logstash-core-event-java/lib/logstash/event.rb @@ -29,9 +29,26 @@ def shutdown?; false; end; # LogStash::SHUTDOWN is used by plugins SHUTDOWN = ShutdownEvent.new + + class Event + MSG_BRACKETS_METHOD_MISSING = "Direct event field references (i.e. event['field']) have been disabled in favor of using event get and set methods (e.g. event.get('field')). Please consult the Logstash 5.0 breaking changes documentation for more details.".freeze + MSG_BRACKETS_EQUALS_METHOD_MISSING = "Direct event field references (i.e. event['field'] = 'value') have been disabled in favor of using event get and set methods (e.g. event.set('field', 'value')). Please consult the Logstash 5.0 breaking changes documentation for more details.".freeze + RE_BRACKETS_METHOD = /^\[\]$/.freeze + RE_BRACKETS_EQUALS_METHOD = /^\[\]=$/.freeze + + def method_missing(method_name, *arguments, &block) + if RE_BRACKETS_METHOD.match(method_name.to_s) + raise NoMethodError.new(MSG_BRACKETS_METHOD_MISSING) + end + if RE_BRACKETS_EQUALS_METHOD.match(method_name.to_s) + raise NoMethodError.new(MSG_BRACKETS_EQUALS_METHOD_MISSING) + end + super + end + end end # for backward compatibility, require "logstash/event" is used a lots of places so let's bootstrap the # Java code loading from here. # TODO: (colin) I think we should mass replace require "logstash/event" with require "logstash-core-event" -require "logstash-core-event" \ No newline at end of file +require "logstash-core-event" diff --git a/logstash-core-event-java/spec/event_spec.rb b/logstash-core-event-java/spec/event_spec.rb index 0367a27edec..0b7d174e782 100644 --- a/logstash-core-event-java/spec/event_spec.rb +++ b/logstash-core-event-java/spec/event_spec.rb @@ -35,7 +35,7 @@ end end - context "[]" do + context "#get" do it "should get simple values" do e = LogStash::Event.new({"foo" => "bar", "bar" => 1, "baz" => 1.0, TIMESTAMP => "2015-05-28T23:02:05.350Z"}) expect(e.get("foo")).to eq("bar") @@ -63,7 +63,7 @@ end end - context "[]=" do + context "#set" do it "should set simple values" do e = LogStash::Event.new() expect(e.set("foo", "bar")).to eq("bar") @@ -306,4 +306,20 @@ end end + + context "method missing exception messages" do + subject { LogStash::Event.new({"foo" => "bar"}) } + + it "#[] method raises a better exception message" do + expect { subject["foo"] }.to raise_error(NoMethodError, /Direct event field references \(i\.e\. event\['field'\]\)/) + end + + it "#[]= method raises a better exception message" do + expect { subject["foo"] = "baz" }.to raise_error(NoMethodError, /Direct event field references \(i\.e\. event\['field'\] = 'value'\)/) + end + + it "other missing method raises normal exception message" do + expect { subject.baz() }.to raise_error(NoMethodError, /undefined method `baz' for/) + end + end end From 28f77818a3a850ffb46b98b004e9ecefdfe51465 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 13 Oct 2016 08:26:38 -0700 Subject: [PATCH 399/632] Fix acceptance tests Fixes #6051 --- .../spec/shared_examples/cli/logstash-plugin/remove.rb | 4 ++-- .../spec/shared_examples/cli/logstash-plugin/uninstall.rb | 2 +- .../spec/shared_examples/cli/logstash-plugin/update.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb index fa79bff36e4..08b6aad4cbe 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb @@ -3,8 +3,8 @@ require "logstash/version" require "fileutils" -shared_examples "logstash uninstall" do |logstash| - describe "logstash uninstall on #{logstash.hostname}" do +shared_examples "logstash remove" do |logstash| + describe "logstash-plugin remove on #{logstash.hostname}" do before :each do logstash.install({:version => LOGSTASH_VERSION}) end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb index 2fe6f94971b..2b14b7f09c1 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb @@ -4,7 +4,7 @@ require "fileutils" shared_examples "logstash uninstall" do |logstash| - describe "logstash uninstall on #{logstash.hostname}" do + describe "logstash-plugin uninstall on #{logstash.hostname}" do before :each do logstash.install({:version => LOGSTASH_VERSION}) end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb index c690c73d4cf..12d317db325 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/update.rb @@ -3,7 +3,7 @@ require "logstash/version" shared_examples "logstash update" do |logstash| - describe "logstash update on #{logstash.hostname}" do + describe "logstash-plugin update on #{logstash.hostname}" do before :each do logstash.install({:version => LOGSTASH_VERSION}) end From c0c40c04d1a1f1dfcf4844ad7796dda41c9b3e2b Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 13 Oct 2016 11:28:12 -0700 Subject: [PATCH 400/632] Add debug to Kafka scripts Fixes #6054 --- qa/integration/services/kafka_setup.sh | 2 +- qa/integration/services/kafka_teardown.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/qa/integration/services/kafka_setup.sh b/qa/integration/services/kafka_setup.sh index 43a60355e6f..0a836814b84 100755 --- a/qa/integration/services/kafka_setup.sh +++ b/qa/integration/services/kafka_setup.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -e +set -ex current_dir="$(dirname "$0")" source "$current_dir/helpers.sh" diff --git a/qa/integration/services/kafka_teardown.sh b/qa/integration/services/kafka_teardown.sh index e61c0f1c12e..0d10cffe844 100755 --- a/qa/integration/services/kafka_teardown.sh +++ b/qa/integration/services/kafka_teardown.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -e +set -ex current_dir="$(dirname "$0")" source "$current_dir/helpers.sh" From 9a5b3436e25768ecee88629191a93b8f73254700 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Thu, 6 Oct 2016 15:15:14 -0700 Subject: [PATCH 401/632] WritableDirectory#value now creates the directory if needed. This also makes the failure reports from WritableDirectory's validation more specific (parent directory doesn't exist, or does exist and is isn't writable, or the path itself isn't writable, etc). Fixes #6023 --- logstash-core/lib/logstash/settings.rb | 46 ++++++- .../settings/writable_directory_spec.rb | 122 ++++++++++++++++++ 2 files changed, 163 insertions(+), 5 deletions(-) create mode 100644 logstash-core/spec/logstash/settings/writable_directory_spec.rb diff --git a/logstash-core/lib/logstash/settings.rb b/logstash-core/lib/logstash/settings.rb index 66bbb2ec7c0..10ec1f5f7d3 100644 --- a/logstash-core/lib/logstash/settings.rb +++ b/logstash-core/lib/logstash/settings.rb @@ -1,4 +1,5 @@ # encoding: utf-8 +require "logstash/util/loggable" module LogStash class Settings @@ -118,6 +119,8 @@ def flatten_hash(h,f="",g={}) end class Setting + include LogStash::Util::Loggable + attr_reader :name, :default def initialize(name, klass, default=nil, strict=true, &validator_proc) @@ -389,11 +392,44 @@ def initialize(name, default=nil, strict=true) class WritableDirectory < Setting def initialize(name, default=nil, strict=false) - super(name, ::String, default, strict) do |path| - if ::File.directory?(path) && ::File.writable?(path) - true - else - raise ::ArgumentError.new("Path \"#{path}\" is not a directory or not writable.") + super(name, ::String, default, strict) + end + + def validate(path) + super(path) + + if ::File.directory?(path) + if !::File.writable?(path) + raise ::ArgumentError.new("Path \"#{path}\" must be a writable directory. It is not writable.") + end + elsif ::File.symlink?(path) + # TODO(sissel): I'm OK if we relax this restriction. My experience + # is that it's usually easier and safer to just reject symlinks. + raise ::ArgumentError.new("Path \"#{path}\" must be a writable directory. It cannot be a symlink.") + elsif ::File.exist?(path) + raise ::ArgumentError.new("Path \"#{path}\" must be a writable directory. It is not a directory.") + else + parent = ::File.dirname(path) + if !::File.writable?(parent) + raise ::ArgumentError.new("Path \"#{path}\" does not exist and I cannot create it because the parent path \"#{parent}\" is not writable.") + end + end + + # If we get here, the directory exists and is writable. + true + end + + def value + super.tap do |path| + if !::File.directory?(path) + # Create the directory if it doesn't exist. + begin + logger.info("Creating directory", setting: name, path: path) + ::FileUtils.mkdir_p(path) + rescue => e + # TODO(sissel): Catch only specific exceptions? + raise ::ArgumentError.new("Path \"#{path}\" does not exist, and I failed trying to create it: #{e.class.name} - #{e}") + end end end end diff --git a/logstash-core/spec/logstash/settings/writable_directory_spec.rb b/logstash-core/spec/logstash/settings/writable_directory_spec.rb new file mode 100644 index 00000000000..d6f1e6dbc69 --- /dev/null +++ b/logstash-core/spec/logstash/settings/writable_directory_spec.rb @@ -0,0 +1,122 @@ +# encoding: utf-8 +require "spec_helper" +require "logstash/settings" +require "stud/temporary" +require "socket" # for UNIXSocket + +describe LogStash::Setting::WritableDirectory do + let(:mode_rx) { 0555 } + let(:parent) { Stud::Temporary.pathname } + let(:path) { File.join(parent, "fancy") } + + before { Dir.mkdir(parent) } + after { Dir.exist?(path) && Dir.unlink(path) rescue nil } + after { Dir.unlink(parent) } + + shared_examples "failure" do + before { subject.set(path) } + it "should fail" do + expect { subject.validate_value }.to raise_error + end + end + + subject do + # Create a new WritableDirectory setting with no default value strict + # disabled. + described_class.new("fancy.path", "", false) + end + + describe "#value" do + before { subject.set(path) } + + context "when the directory is missing" do + + context "and the parent is writable" do + after { + Dir.unlink(path) + } + it "creates the directory" do + subject.value # need to invoke `#value` to make it do the work. + expect(::File.directory?(path)).to be_truthy + end + end + + context "and the directory cannot be created" do + before { File.chmod(mode_rx, parent) } + it "should fail" do + expect { subject.value }.to raise_error + end + end + end + end + + describe "#set and #validate_value" do + context "when the directory exists" do + before { Dir.mkdir(path) } + after { Dir.unlink(path) } + + context "and is writable" do + before { subject.set(path) } + # assume this spec already created a directory that's writable... fair? :) + it "should return true" do + expect(subject.validate_value).to be_truthy + end + end + + context "but is not writable" do + before { File.chmod(0, path) } + it_behaves_like "failure" + end + end + + context "when the path exists" do + after { File.unlink(path) } + + context "but is a file" do + before { File.new(path, "w").close } + it_behaves_like "failure" + end + + context "but is a socket" do + let(:socket) { UNIXServer.new(path) } + before { socket } # realize `socket` value + after { socket.close } + it_behaves_like "failure" + end + context "but is a symlink" do + before { File::symlink("whatever", path) } + it_behaves_like "failure" + end + end + + context "when the directory is missing" do + # Create a path with at least one subdirectory we can try to fiddle with permissions + + context "but can be created" do + before do + # If the path doesn't exist, we want to try creating it, so let's be + # extra careful and make sure the path doesn't exist yet. + expect(File.directory?(path)).to be_falsey + subject.set(path) + end + + after do + Dir.unlink(path) + end + + it "should return true" do + expect(subject.validate_value).to be_truthy + end + end + + context "and cannot be created" do + before do + # Remove write permission on the parent + File.chmod(mode_rx, parent) + end + + it_behaves_like "failure" + end + end + end +end From 2b2972f7b8857012a89bb6135742441cf9f4064c Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Fri, 14 Oct 2016 16:46:01 +0200 Subject: [PATCH 402/632] fix for cancelled events issue #6055 update comments preserve abort_on_exception state --- logstash-core/lib/logstash/pipeline.rb | 15 ++---- .../util/wrapped_synchronous_queue.rb | 20 +++++-- logstash-core/spec/logstash/pipeline_spec.rb | 54 +++++++++++++++++++ .../util/wrapped_synchronous_queue_spec.rb | 15 +++--- logstash-core/spec/support/mocks_classes.rb | 22 ++++++++ 5 files changed, 103 insertions(+), 23 deletions(-) diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 1c256885667..ad1297cba1f 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -257,14 +257,9 @@ def worker_loop(batch_size, batch_delay) def filter_batch(batch) batch.each do |event| if event.is_a?(Event) - filtered = filter_func(event) - filtered.each do |e| - #these are both original and generated events - if e.cancelled? - batch.cancel(e) - else - batch.merge(e) - end + filter_func(event).each do |e| + # these are both original and generated events + batch.merge(e) unless e.cancelled? end end end @@ -492,9 +487,7 @@ def uptime def flush_filters_to_batch(batch, options = {}) options[:final] = batch.shutdown_signal_received? flush_filters(options) do |event| - if event.cancelled? - batch.cancel(event) - else + unless event.cancelled? @logger.debug? and @logger.debug("Pushing flushed events", :event => event) batch.merge(event) end diff --git a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb index f3a60f2c0f8..55bc66c237e 100644 --- a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb @@ -148,7 +148,10 @@ def initialize(queue, size, wait) @shutdown_signal_received = false @flush_signal_received = false @originals = Hash.new - @cancelled = Hash.new + + # TODO: disabled for https://github.com/elastic/logstash/issues/6055 - will have to properly refactor + # @cancelled = Hash.new + @generated = Hash.new @iterating_temp = Hash.new @iterating = false # Atomic Boolean maybe? Although batches are not shared across threads @@ -168,17 +171,22 @@ def merge(event) end def cancel(event) - @cancelled[event] = true + # TODO: disabled for https://github.com/elastic/logstash/issues/6055 - will have to properly refactor + raise("cancel is unsupported") + # @cancelled[event] = true end def each(&blk) # take care not to cause @originals or @generated to change during iteration @iterating = true + + # below the checks for @cancelled.include?(e) have been replaced by e.cancelled? + # TODO: for https://github.com/elastic/logstash/issues/6055 = will have to properly refactor @originals.each do |e, _| - blk.call(e) unless @cancelled.include?(e) + blk.call(e) unless e.cancelled? end @generated.each do |e, _| - blk.call(e) unless @cancelled.include?(e) + blk.call(e) unless e.cancelled? end @iterating = false update_generated @@ -197,7 +205,9 @@ def filtered_size end def cancelled_size - @cancelled.size + # TODO: disabled for https://github.com/elastic/logstash/issues/6055 = will have to properly refactor + raise("cancelled_size is unsupported ") + # @cancelled.size end def shutdown_signal_received? diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 0aa749beb15..197f0631bd8 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -100,6 +100,60 @@ class TestPipeline < LogStash::Pipeline pipeline_settings_obj.reset end + + describe "event cancellation" do + # test harness for https://github.com/elastic/logstash/issues/6055 + + let(:output) { DummyOutputWithEventsArray.new } + + before do + allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutputwitheventsarray").and_return(DummyOutputWithEventsArray) + allow(LogStash::Plugin).to receive(:lookup).with("filter", "drop").and_call_original + allow(LogStash::Plugin).to receive(:lookup).with("filter", "mutate").and_call_original + allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_call_original + allow(DummyOutputWithEventsArray).to receive(:new).with(any_args).and_return(output) + end + + let(:config) do + <<-CONFIG + input { + generator { + lines => ["1", "2", "END"] + count => 1 + } + } + filter { + if [message] == "1" { + drop {} + } + mutate { add_tag => ["notdropped"] } + } + output { dummyoutputwitheventsarray {} } + CONFIG + end + + it "should not propage cancelled events from filter to output" do + abort_on_exception_state = Thread.abort_on_exception + Thread.abort_on_exception = true + + pipeline = LogStash::Pipeline.new(config, pipeline_settings_obj) + Thread.new { pipeline.run } + sleep 0.1 while !pipeline.ready? + wait(3).for do + # give us a bit of time to flush the events + # puts("*****" + output.events.map{|e| e.message}.to_s) + output.events.map{|e| e.get("message")}.include?("END") + end.to be_truthy + expect(output.events.size).to eq(2) + expect(output.events[0].get("tags")).to eq(["notdropped"]) + expect(output.events[1].get("tags")).to eq(["notdropped"]) + pipeline.shutdown + + Thread.abort_on_exception = abort_on_exception_state + end + end + describe "defaulting the pipeline workers based on thread safety" do before(:each) do allow(LogStash::Plugin).to receive(:lookup).with("input", "dummyinput").and_return(DummyInput) diff --git a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb index ca7cb956479..4290a6228ae 100644 --- a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb +++ b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb @@ -94,22 +94,23 @@ def poll(*) shift(); end it "appends batches to the queue" do batch = write_client.get_new_batch - 5.times {|i| batch.push("value-#{i}")} + 5.times {|i| batch.push(LogStash::Event.new({"message" => "value-#{i}"}))} write_client.push_batch(batch) read_batch = read_client.take_batch expect(read_batch.size).to eq(5) i = 0 read_batch.each do |data| - expect(data).to eq("value-#{i}") - read_batch.cancel("value-#{i}") if i > 2 - read_batch.merge("generated-#{i}") if i > 2 + expect(data.get("message")).to eq("value-#{i}") + # read_batch.cancel("value-#{i}") if i > 2 # TODO: disabled for https://github.com/elastic/logstash/issues/6055 - will have to properly refactor + data.cancel if i > 2 + read_batch.merge(LogStash::Event.new({"message" => "generated-#{i}"})) if i > 2 i += 1 end - expect(read_batch.cancelled_size).to eq(2) + # expect(read_batch.cancelled_size).to eq(2) # disabled for https://github.com/elastic/logstash/issues/6055 i = 0 read_batch.each do |data| - expect(data).to eq("value-#{i}") if i < 3 - expect(data).to eq("generated-#{i}") if i > 2 + expect(data.get("message")).to eq("value-#{i}") if i < 3 + expect(data.get("message")).to eq("generated-#{i}") if i > 2 i += 1 end end diff --git a/logstash-core/spec/support/mocks_classes.rb b/logstash-core/spec/support/mocks_classes.rb index 3d4ed28f42e..d90318d5330 100644 --- a/logstash-core/spec/support/mocks_classes.rb +++ b/logstash-core/spec/support/mocks_classes.rb @@ -25,3 +25,25 @@ def close @num_closes = 1 end end + +class DummyOutputWithEventsArray < LogStash::Outputs::Base + config_name "dummyoutput2" + milestone 2 + + attr_reader :events + + def initialize(params={}) + super + @events = [] + end + + def register + end + + def receive(event) + @events << event + end + + def close + end +end From 07a4b82613e680058668f57c47b9dfaff57c7d81 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 29 Sep 2016 09:18:23 +0200 Subject: [PATCH 403/632] Require 'forwardable' in SafeURI SafeURI requires forwardable, which is included elsewhere in logstash. Plugin tests using this validation don't load logstash in the right order for this to work, so we need an explicit require here. Fixes #5978 --- logstash-core/lib/logstash/util/safe_uri.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/logstash-core/lib/logstash/util/safe_uri.rb b/logstash-core/lib/logstash/util/safe_uri.rb index de5f720de80..add29b6ee67 100644 --- a/logstash-core/lib/logstash/util/safe_uri.rb +++ b/logstash-core/lib/logstash/util/safe_uri.rb @@ -1,6 +1,7 @@ # encoding: utf-8 require "logstash/namespace" require "logstash/util" +require "forwardable" # This class exists to quietly wrap a password string so that, when printed or # logged, you don't accidentally print the password itself. From a4ad69b33f1dbd3c88c7a175945d9af42e4b84e3 Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Fri, 14 Oct 2016 15:50:33 +0200 Subject: [PATCH 404/632] Add autostart instructions to apt & yum setups Fixes #6058 --- .../getting-started-with-logstash.asciidoc | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index e5ddfd17c3b..7efcb9d72e7 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -105,6 +105,22 @@ it with: sudo apt-get update && sudo apt-get install logstash -------------------------------------------------- +Configure Logstash to automatically start during bootup. If your +distribution is using SysV init, then you will need to run: + +[source,sh] +-------------------------------------------------- +sudo update-rc.d logstash defaults 95 10 +-------------------------------------------------- + +Otherwise if your distribution is using systemd: + +[source,sh] +-------------------------------------------------- +sudo /bin/systemctl daemon-reload +sudo /bin/systemctl enable logstash.service +-------------------------------------------------- + [float] ==== YUM @@ -137,6 +153,25 @@ And your repository is ready for use. You can install it with: sudo yum install logstash -------------------------------------------------- +Configure Logstash to automatically start during bootup. If your +distribution is using SysV `init` (check with `ps -p 1`), then you will need to run: + +WARNING: The repositories do not work with older rpm based distributions + that still use RPM v3, like CentOS5. + +[source,sh] +-------------------------------------------------- +chkconfig --add logstash +-------------------------------------------------- + +Otherwise if your distribution is using `systemd`: + +[source,sh] +-------------------------------------------------- +sudo /bin/systemctl daemon-reload +sudo /bin/systemctl enable logstash.service +-------------------------------------------------- + [[first-event]] === Stashing Your First Event From 1f1bbb1f89c02ec0128e5fe8b68029093fcbb932 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E5=95=B8?= Date: Wed, 12 Oct 2016 15:06:30 +0800 Subject: [PATCH 405/632] fix wrong logic when no JAVA_OPTS set Fixes #6034 --- bin/logstash.lib.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/logstash.lib.sh b/bin/logstash.lib.sh index 4e06913f35f..3777514a31a 100755 --- a/bin/logstash.lib.sh +++ b/bin/logstash.lib.sh @@ -107,7 +107,11 @@ setup_drip() { if [ "$USE_RUBY" = "1" ] ; then export JRUBY_OPTS="$JRUBY_OPTS -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify" else - JAVA_OPTS="$JAVA_OPTS -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -noverify" + if [ -z "$JAVA_OPTS" ] ; then + LS_JAVA_OPTS="$LS_JAVA_OPTS -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -noverify" + else + JAVA_OPTS="$JAVA_OPTS -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -noverify" + fi fi export JAVACMD export DRIP_INIT_CLASS="org.jruby.main.DripMain" From be43b4a013249c87d218d3bfdc3c11aab0b116cc Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 4 Oct 2016 20:15:15 +0200 Subject: [PATCH 406/632] Add new integration tests Fixes #6031 --- .../fixtures/01_reload_config_spec.yml | 38 +++++++++ .../fixtures/02_logstash_bin_smoke_spec.yml | 10 +++ qa/integration/framework/helpers.rb | 31 +++++++ qa/integration/specs/01_reload_config_spec.rb | 85 +++++++++++++++++++ .../specs/02_logstash_bin_smoke_spec.rb | 52 ++++++++++++ 5 files changed, 216 insertions(+) create mode 100644 qa/integration/fixtures/01_reload_config_spec.yml create mode 100644 qa/integration/fixtures/02_logstash_bin_smoke_spec.yml create mode 100644 qa/integration/framework/helpers.rb create mode 100644 qa/integration/specs/01_reload_config_spec.rb create mode 100644 qa/integration/specs/02_logstash_bin_smoke_spec.rb diff --git a/qa/integration/fixtures/01_reload_config_spec.yml b/qa/integration/fixtures/01_reload_config_spec.yml new file mode 100644 index 00000000000..50e9a5d53d2 --- /dev/null +++ b/qa/integration/fixtures/01_reload_config_spec.yml @@ -0,0 +1,38 @@ +--- +name: Metrics test +services: + - logstash +config: + initial: |- + input { + tcp { + port => '<%=options[:port]%>' + } + } + output { + file { + path => '<%=options[:file]%>' + flush_interval => 0 + codec => line { format => "%{message}" } + } + } + reload: |- + input { + tcp { + port => '<%=options[:port]%>' + } + } + filter { + grok { + match => { + "message" => "%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}\" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}" + } + } + } + output { + file { + path => '<%=options[:file]%>' + flush_interval => 0 + codec => json + } + } \ No newline at end of file diff --git a/qa/integration/fixtures/02_logstash_bin_smoke_spec.yml b/qa/integration/fixtures/02_logstash_bin_smoke_spec.yml new file mode 100644 index 00000000000..ca397cb75b0 --- /dev/null +++ b/qa/integration/fixtures/02_logstash_bin_smoke_spec.yml @@ -0,0 +1,10 @@ +--- +name: Metrics test +services: + - logstash +config: |- + input { + tcp { + port => '<%=options[:port]%>' + } + } \ No newline at end of file diff --git a/qa/integration/framework/helpers.rb b/qa/integration/framework/helpers.rb new file mode 100644 index 00000000000..f5d6e29d7cd --- /dev/null +++ b/qa/integration/framework/helpers.rb @@ -0,0 +1,31 @@ +# encoding: utf-8 +# Helper module for all tests + +def wait_for_port(port, retry_attempts) + tries = retry_attempts + while tries > 0 + if is_port_open?(port) + break + else + sleep 1 + end + tries -= 1 + end +end + +def is_port_open?(port) + begin + s = TCPSocket.open("localhost", port) + s.close + return true + rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH + return false + end +end + +def config_to_temp_file(config) + f = Stud::Temporary.file + f.write(config) + f.close + f.path +end \ No newline at end of file diff --git a/qa/integration/specs/01_reload_config_spec.rb b/qa/integration/specs/01_reload_config_spec.rb new file mode 100644 index 00000000000..204f2374931 --- /dev/null +++ b/qa/integration/specs/01_reload_config_spec.rb @@ -0,0 +1,85 @@ +require_relative '../framework/fixture' +require_relative '../framework/settings' +require_relative '../services/logstash_service' +require_relative '../framework/helpers' +require "logstash/devutils/rspec/spec_helper" +require "socket" +require "json" + +describe "Config reload" do + before(:all) { + @fixture = Fixture.new(__FILE__) + } + + after(:all) { + @fixture.teardown + } + + let(:timeout_seconds) { 5 } + let(:initial_port) { 9198 } + let(:reload_port) { 9199 } + let(:retry_attempts) { 10 } + let(:output_file1) { Stud::Temporary.file.path } + let(:output_file2) { Stud::Temporary.file.path } + let(:sample_data) { '74.125.176.147 - - [11/Sep/2014:21:50:37 +0000] "GET /?flav=rss20 HTTP/1.1" 200 29941 "-" "FeedBurner/1.0 (http://www.FeedBurner.com)"' } + + let(:initial_config_file) { config_to_temp_file(@fixture.config("initial", { :port => initial_port, :file => output_file1 })) } + let(:reload_config_file) { config_to_temp_file(@fixture.config("reload", { :port => reload_port, :file => output_file2 })) } + + + def send_data(port, data) + socket = TCPSocket.new("127.0.0.1", port) + socket.puts(data) + socket.flush + socket.close + end + + it "can reload config with new TCP port and grok pattern" do + logstash_service = @fixture.get_service("logstash") + logstash_service.spawn_logstash("-f", "#{initial_config_file}", "--config.reload.automatic", "true") + logstash_service.wait_for_logstash + wait_for_port(initial_port, retry_attempts) + + # try sending events with this + send_data(initial_port, sample_data) + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(IO.read(output_file1).gsub("\n", "")).to eq(sample_data) + end + + # check metrics + result = logstash_service.monitoring_api.event_stats + expect(result["in"]).to eq(1) + expect(result["out"]).to eq(1) + + # do a reload + logstash_service.reload_config(initial_config_file, reload_config_file) + + logstash_service.wait_for_logstash + wait_for_port(reload_port, retry_attempts) + + # make sure old socket is closed + expect(is_port_open?(initial_port)).to be false + + send_data(reload_port, sample_data) + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(IO.read(output_file2).blank?).to be false + end + + # check metrics. It should be reset + result = logstash_service.monitoring_api.event_stats + expect(result["in"]).to eq(1) + expect(result["out"]).to eq(1) + + # check reload stats + reload_stats = logstash_service.monitoring_api.pipeline_stats["reloads"] + expect(reload_stats["successes"]).to eq(1) + expect(reload_stats["failures"]).to eq(0) + expect(reload_stats["last_success_timestamp"].blank?).to be false + expect(reload_stats["last_error"]).to eq(nil) + + # parse the results and validate + re = JSON.load(File.new(output_file2)) + expect(re["clientip"]).to eq("74.125.176.147") + expect(re["response"]).to eq(200) + end +end \ No newline at end of file diff --git a/qa/integration/specs/02_logstash_bin_smoke_spec.rb b/qa/integration/specs/02_logstash_bin_smoke_spec.rb new file mode 100644 index 00000000000..0558de9d063 --- /dev/null +++ b/qa/integration/specs/02_logstash_bin_smoke_spec.rb @@ -0,0 +1,52 @@ +require_relative '../framework/fixture' +require_relative '../framework/settings' +require_relative '../services/logstash_service' +require_relative '../framework/helpers' +require "logstash/devutils/rspec/spec_helper" +require "yaml" + +describe "Monitoring API" do + before(:all) { + @fixture = Fixture.new(__FILE__) + } + + after(:all) { + @fixture.teardown + } + + let(:retry_attempts) { 10 } + let(:config1) { config_to_temp_file(@fixture.config("root", { :port => '9980' })) } + let(:config2) { config_to_temp_file(@fixture.config("root", { :port => '9981' })) } + + it "a single instance can start with http server and port 9600" do + logstash_service = @fixture.get_service("logstash") + logstash_service.start_with_stdin + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(is_port_open?(9600)).to be true + end + logstash_service.teardown + end + + it "multiple instances can be started on the same box" do + ls1 = @fixture.get_service("logstash") + ls1.spawn_logstash("-f", config1) + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(is_port_open?(9600)).to be true + end + + # bring up new LS instance + ls2 = LogstashService.new(@fixture.settings) + ls2.spawn_logstash("-f", config2) + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(is_port_open?(9601)).to be true + end + + expect(ls1.process_id).not_to eq(ls2.process_id) + end + + it "gets the right version" do + ls = @fixture.get_service("logstash") + expected = YAML.load_file(LogstashService::LS_VERSION_FILE) + expect(ls.get_version.strip).to eq("logstash #{expected['logstash']}") + end +end \ No newline at end of file From b670c943626067cc5cbd423df2a3326881cab0eb Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 4 Oct 2016 20:15:27 +0200 Subject: [PATCH 407/632] Make changes to test framework for new tests Fixes #6031 --- qa/integration/framework/fixture.rb | 1 + qa/integration/services/logstash_service.rb | 25 ++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/qa/integration/framework/fixture.rb b/qa/integration/framework/fixture.rb index 7c3d7d21bd5..ba5120e3ac1 100644 --- a/qa/integration/framework/fixture.rb +++ b/qa/integration/framework/fixture.rb @@ -8,6 +8,7 @@ class Fixture attr_reader :input attr_reader :actual_output attr_reader :test_dir + attr_reader :settings class TemplateContext attr_reader :options diff --git a/qa/integration/services/logstash_service.rb b/qa/integration/services/logstash_service.rb index 09e3ea8068b..1f3c8480d26 100644 --- a/qa/integration/services/logstash_service.rb +++ b/qa/integration/services/logstash_service.rb @@ -87,10 +87,10 @@ def write_to_stdin(input) end # Spawn LS as a child process - def spawn_logstash(cli_arg, value) - puts "Starting Logstash #{@logstash_bin} #{cli_arg} #{value}" + def spawn_logstash(*args) + puts "Starting Logstash #{@logstash_bin} #{args}" Bundler.with_clean_env do - @process = ChildProcess.build(@logstash_bin, cli_arg, value) + @process = ChildProcess.build(@logstash_bin, *args) @process.io.inherit! @process.start wait_for_logstash @@ -135,5 +135,24 @@ def wait_for_logstash tries -= 1 end end + + # this method only overwrites existing config with new config + # it does not assume that LS pipeline is fully reloaded after a + # config change. It is up to the caller to validate that. + def reload_config(initial_config_file, reload_config_file) + FileUtils.cp(reload_config_file, initial_config_file) + end + + def get_version + `#{@logstash_bin} --version` + end + + def get_version_yml + LS_VERSION_FILE + end + + def process_id + @process.pid + end end From 75d70c6a200a91c6d059c7e1d7909b3e567e8261 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Mon, 10 Oct 2016 08:17:57 -0700 Subject: [PATCH 408/632] Add new tests and some helpers Fixes #6031 --- qa/integration/.rspec | 3 +- ...pec.yml => 01_logstash_bin_smoke_spec.yml} | 1 - .../fixtures/env_variables_config_spec.yml | 21 +++ ...config_spec.yml => reload_config_spec.yml} | 1 - qa/integration/fixtures/settings_spec.yml | 9 ++ qa/integration/framework/helpers.rb | 15 +- qa/integration/services/logstash_service.rb | 28 +++- qa/integration/services/monitoring_api.rb | 5 + ..._spec.rb => 01_logstash_bin_smoke_spec.rb} | 11 +- .../specs/env_variables_config_spec.rb | 48 ++++++ qa/integration/specs/es_output_how_spec.rb | 17 ++- qa/integration/specs/kafka_input_spec.rb | 2 +- qa/integration/specs/monitoring_api_spec.rb | 2 +- ...d_config_spec.rb => reload_config_spec.rb} | 12 +- qa/integration/specs/settings_spec.rb | 139 ++++++++++++++++++ 15 files changed, 285 insertions(+), 29 deletions(-) rename qa/integration/fixtures/{02_logstash_bin_smoke_spec.yml => 01_logstash_bin_smoke_spec.yml} (84%) create mode 100644 qa/integration/fixtures/env_variables_config_spec.yml rename qa/integration/fixtures/{01_reload_config_spec.yml => reload_config_spec.yml} (97%) create mode 100644 qa/integration/fixtures/settings_spec.yml rename qa/integration/specs/{02_logstash_bin_smoke_spec.rb => 01_logstash_bin_smoke_spec.rb} (85%) create mode 100644 qa/integration/specs/env_variables_config_spec.rb rename qa/integration/specs/{01_reload_config_spec.rb => reload_config_spec.rb} (92%) create mode 100644 qa/integration/specs/settings_spec.rb diff --git a/qa/integration/.rspec b/qa/integration/.rspec index 12f9968c306..83a4f920292 100644 --- a/qa/integration/.rspec +++ b/qa/integration/.rspec @@ -1 +1,2 @@ ---default-path specs/ \ No newline at end of file +--default-path specs/ +--format documentation \ No newline at end of file diff --git a/qa/integration/fixtures/02_logstash_bin_smoke_spec.yml b/qa/integration/fixtures/01_logstash_bin_smoke_spec.yml similarity index 84% rename from qa/integration/fixtures/02_logstash_bin_smoke_spec.yml rename to qa/integration/fixtures/01_logstash_bin_smoke_spec.yml index ca397cb75b0..2ea4dc401a5 100644 --- a/qa/integration/fixtures/02_logstash_bin_smoke_spec.yml +++ b/qa/integration/fixtures/01_logstash_bin_smoke_spec.yml @@ -1,5 +1,4 @@ --- -name: Metrics test services: - logstash config: |- diff --git a/qa/integration/fixtures/env_variables_config_spec.yml b/qa/integration/fixtures/env_variables_config_spec.yml new file mode 100644 index 00000000000..008e2c95f2f --- /dev/null +++ b/qa/integration/fixtures/env_variables_config_spec.yml @@ -0,0 +1,21 @@ +--- +services: + - logstash +config: |- + input { + tcp { + port => "${TEST_ENV_TCP_PORT}" + } + } + filter { + mutate { + add_tag => [ "blah", "${TEST_ENV_TAG}" ] + } + } + output { + file { + path => "${TEST_ENV_PATH}/logstash_env_test.log" + flush_interval => 0 + codec => line { format => "%{message} %{tags}" } + } + } \ No newline at end of file diff --git a/qa/integration/fixtures/01_reload_config_spec.yml b/qa/integration/fixtures/reload_config_spec.yml similarity index 97% rename from qa/integration/fixtures/01_reload_config_spec.yml rename to qa/integration/fixtures/reload_config_spec.yml index 50e9a5d53d2..bc01103f544 100644 --- a/qa/integration/fixtures/01_reload_config_spec.yml +++ b/qa/integration/fixtures/reload_config_spec.yml @@ -1,5 +1,4 @@ --- -name: Metrics test services: - logstash config: diff --git a/qa/integration/fixtures/settings_spec.yml b/qa/integration/fixtures/settings_spec.yml new file mode 100644 index 00000000000..53be4a7f335 --- /dev/null +++ b/qa/integration/fixtures/settings_spec.yml @@ -0,0 +1,9 @@ +--- +services: + - logstash +config: |- + input { + tcp { + port => '<%=options[:port]%>' + } + } \ No newline at end of file diff --git a/qa/integration/framework/helpers.rb b/qa/integration/framework/helpers.rb index f5d6e29d7cd..e650bd5176b 100644 --- a/qa/integration/framework/helpers.rb +++ b/qa/integration/framework/helpers.rb @@ -1,6 +1,8 @@ # encoding: utf-8 # Helper module for all tests +#require "flores/random" + def wait_for_port(port, retry_attempts) tries = retry_attempts while tries > 0 @@ -23,9 +25,20 @@ def is_port_open?(port) end end +def send_data(port, data) + socket = TCPSocket.new("127.0.0.1", port) + socket.puts(data) + socket.flush + socket.close +end + def config_to_temp_file(config) f = Stud::Temporary.file f.write(config) f.close f.path -end \ No newline at end of file +end + +def random_port + Flores::Random.number(9701..15000) +end \ No newline at end of file diff --git a/qa/integration/services/logstash_service.rb b/qa/integration/services/logstash_service.rb index 1f3c8480d26..6b5468ca762 100644 --- a/qa/integration/services/logstash_service.rb +++ b/qa/integration/services/logstash_service.rb @@ -8,13 +8,20 @@ # A locally started Logstash service class LogstashService < Service - LS_VERSION_FILE = File.expand_path(File.join("../../../../", "versions.yml"), __FILE__) - LS_BIN = "bin/logstash" + LS_ROOT_DIR = File.join("..", "..", "..", "..") + LS_VERSION_FILE = File.expand_path(File.join(LS_ROOT_DIR, "versions.yml"), __FILE__) + LS_BUILD_DIR = File.join(LS_ROOT_DIR, "build") + LS_BIN = File.join("bin", "logstash") + LS_CONFIG_FILE = File.join("config", "logstash.yml") STDIN_CONFIG = "input {stdin {}} output { }" RETRY_ATTEMPTS = 10 @process = nil + + attr_reader :logstash_home + attr_reader :application_settings_file + attr_writer :env_variables def initialize(settings) super("logstash", settings) @@ -27,14 +34,15 @@ def initialize(settings) ls_version_file = YAML.load_file(LS_VERSION_FILE) ls_file = "logstash-" + ls_version_file["logstash"] # First try without the snapshot if it's there - @logstash_home = File.expand_path(File.join("../../../../build", ls_file), __FILE__) + @logstash_home = File.expand_path(File.join(LS_BUILD_DIR, ls_file), __FILE__) @logstash_home += "-SNAPSHOT" unless Dir.exists?(@logstash_home) puts "Using #{@logstash_home} as LS_HOME" @logstash_bin = File.join("#{@logstash_home}", LS_BIN) raise "Logstash binary not found in path #{@logstash_home}" unless File.file? @logstash_bin end - + + @application_settings_file = File.join("#{@logstash_home}", LS_CONFIG_FILE) @monitoring_api = MonitoringAPI.new end @@ -45,6 +53,14 @@ def alive? @process.alive? end end + + def exited? + @process.exited? + end + + def exit_code + @process.exit_code + end # Starts a LS process in background with a given config file # and shuts it down after input is completely processed @@ -88,9 +104,10 @@ def write_to_stdin(input) # Spawn LS as a child process def spawn_logstash(*args) - puts "Starting Logstash #{@logstash_bin} #{args}" + puts "Starting Logstash #{@logstash_bin} #{args}" Bundler.with_clean_env do @process = ChildProcess.build(@logstash_bin, *args) + @env_variables.map { |k, v| @process.environment[k] = v} unless @env_variables.nil? @process.io.inherit! @process.start wait_for_logstash @@ -154,5 +171,4 @@ def get_version_yml def process_id @process.pid end - end diff --git a/qa/integration/services/monitoring_api.rb b/qa/integration/services/monitoring_api.rb index 291980f1bb4..27ef78b1611 100644 --- a/qa/integration/services/monitoring_api.rb +++ b/qa/integration/services/monitoring_api.rb @@ -21,5 +21,10 @@ def version r = JSON.parse(response.body.read) r["version"] end + + def node_info + resp = Manticore.get("http://localhost:9600/_node").body + JSON.parse(resp) + end end diff --git a/qa/integration/specs/02_logstash_bin_smoke_spec.rb b/qa/integration/specs/01_logstash_bin_smoke_spec.rb similarity index 85% rename from qa/integration/specs/02_logstash_bin_smoke_spec.rb rename to qa/integration/specs/01_logstash_bin_smoke_spec.rb index 0558de9d063..f222697c08b 100644 --- a/qa/integration/specs/02_logstash_bin_smoke_spec.rb +++ b/qa/integration/specs/01_logstash_bin_smoke_spec.rb @@ -5,7 +5,7 @@ require "logstash/devutils/rspec/spec_helper" require "yaml" -describe "Monitoring API" do +describe "Test Logstash instance" do before(:all) { @fixture = Fixture.new(__FILE__) } @@ -18,7 +18,7 @@ let(:config1) { config_to_temp_file(@fixture.config("root", { :port => '9980' })) } let(:config2) { config_to_temp_file(@fixture.config("root", { :port => '9981' })) } - it "a single instance can start with http server and port 9600" do + it "can start the embedded http server on default port 9600" do logstash_service = @fixture.get_service("logstash") logstash_service.start_with_stdin Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do @@ -27,7 +27,7 @@ logstash_service.teardown end - it "multiple instances can be started on the same box" do + it "multiple of them can be started on the same box with automatically trying different ports for HTTP server" do ls1 = @fixture.get_service("logstash") ls1.spawn_logstash("-f", config1) Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do @@ -44,9 +44,12 @@ expect(ls1.process_id).not_to eq(ls2.process_id) end - it "gets the right version" do + it "gets the right version when asked" do ls = @fixture.get_service("logstash") expected = YAML.load_file(LogstashService::LS_VERSION_FILE) expect(ls.get_version.strip).to eq("logstash #{expected['logstash']}") end + + + end \ No newline at end of file diff --git a/qa/integration/specs/env_variables_config_spec.rb b/qa/integration/specs/env_variables_config_spec.rb new file mode 100644 index 00000000000..872303d872b --- /dev/null +++ b/qa/integration/specs/env_variables_config_spec.rb @@ -0,0 +1,48 @@ +require_relative '../framework/fixture' +require_relative '../framework/settings' +require_relative '../services/logstash_service' +require_relative '../framework/helpers' +require "logstash/devutils/rspec/spec_helper" + +describe "Test Logstash configuration" do + before(:all) { + @fixture = Fixture.new(__FILE__) + } + + after(:all) { + @fixture.teardown + } + + let(:retry_attempts) { 10 } + let(:test_tcp_port) { "9999" } + let(:test_tag) { "environment_variables_are_evil" } + let(:test_path) { Stud::Temporary.directory } + let(:sample_data) { '74.125.176.147 - - [11/Sep/2014:21:50:37 +0000] "GET /?flav=rss20 HTTP/1.1" 200 29941 "-" "FeedBurner/1.0 (http://www.FeedBurner.com)"' } + + it "expands environment variables in all plugin blocks" do + # set ENV variables before starting the service + test_env = {} + test_env["TEST_ENV_TCP_PORT"] = test_tcp_port + test_env["TEST_ENV_TAG"] = test_tag + test_env["TEST_ENV_PATH"] = test_path + + logstash_service = @fixture.get_service("logstash") + logstash_service.env_variables = test_env + logstash_service.start_background(@fixture.config) + # check if TCP port env variable was resolved + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(is_port_open?(test_tcp_port)).to be true + end + + #send data and make sure all env variables are expanded by checking each stage + send_data(test_tcp_port, sample_data) + output_file = File.join(test_path, "logstash_env_test.log") + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(File.exists?(output_file)).to be true + end + # should have created the file using env variable with filters adding a tag based on env variable + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(IO.read(output_file).gsub("\n", "")).to eq("#{sample_data} blah,environment_variables_are_evil") + end + end +end \ No newline at end of file diff --git a/qa/integration/specs/es_output_how_spec.rb b/qa/integration/specs/es_output_how_spec.rb index db0a723320e..007ae1a622f 100644 --- a/qa/integration/specs/es_output_how_spec.rb +++ b/qa/integration/specs/es_output_how_spec.rb @@ -2,7 +2,7 @@ require_relative '../framework/settings' require_relative '../services/logstash_service' -describe "a config which indexes data into Elasticsearch" do +describe "Test Elasticsearch output" do before(:all) { @fixture = Fixture.new(__FILE__) @@ -14,16 +14,27 @@ @fixture.teardown } - it "can ingest 300K log lines" do + it "can ingest 37K log lines of sample apache logs" do logstash_service = @fixture.get_service("logstash") es_service = @fixture.get_service("elasticsearch") - puts "Ingesting 37 apache log lines to ES." logstash_service.start_with_input(@fixture.config, @fixture.input) es_client = es_service.get_client # now we test if all data was indexed by ES, but first refresh manually es_client.indices.refresh result = es_client.search(index: 'logstash-*', size: 0, q: '*') expect(result["hits"]["total"]).to eq(37) + + # random;y checked for results and structured fields + result = es_client.search(index: 'logstash-*', size: 1, q: 'dynamic') + expect(result["hits"]["total"]).to eq(1) + s = result["hits"]["hits"][0]["_source"] + expect(s["bytes"]).to eq(18848) + expect(s["response"]).to eq(200) + expect(s["clientip"]).to eq("213.113.233.227") + expect(s["geoip"]["longitude"]).to eq(12.9443) + expect(s["geoip"]["latitude"]).to eq(56.1357) + expect(s["verb"]).to eq("GET") + expect(s["useragent"]["os"]).to eq("Windows 7") end end diff --git a/qa/integration/specs/kafka_input_spec.rb b/qa/integration/specs/kafka_input_spec.rb index e0ce8dbd2ef..dc2d371ae8d 100644 --- a/qa/integration/specs/kafka_input_spec.rb +++ b/qa/integration/specs/kafka_input_spec.rb @@ -3,7 +3,7 @@ require_relative '../services/logstash_service' require "rspec/wait" -describe "Kafka Input" do +describe "Test Kafka Input" do let(:timeout_seconds) { 30 } before(:all) { @fixture = Fixture.new(__FILE__) diff --git a/qa/integration/specs/monitoring_api_spec.rb b/qa/integration/specs/monitoring_api_spec.rb index 66028bb983c..90d16cbfeaf 100644 --- a/qa/integration/specs/monitoring_api_spec.rb +++ b/qa/integration/specs/monitoring_api_spec.rb @@ -3,7 +3,7 @@ require_relative '../services/logstash_service' require "logstash/devutils/rspec/spec_helper" -describe "Monitoring API" do +describe "Test Monitoring API" do before(:all) { @fixture = Fixture.new(__FILE__) } diff --git a/qa/integration/specs/01_reload_config_spec.rb b/qa/integration/specs/reload_config_spec.rb similarity index 92% rename from qa/integration/specs/01_reload_config_spec.rb rename to qa/integration/specs/reload_config_spec.rb index 204f2374931..81c2a958dc1 100644 --- a/qa/integration/specs/01_reload_config_spec.rb +++ b/qa/integration/specs/reload_config_spec.rb @@ -6,7 +6,7 @@ require "socket" require "json" -describe "Config reload" do +describe "Test Logstash service when config reload is enabled" do before(:all) { @fixture = Fixture.new(__FILE__) } @@ -25,16 +25,8 @@ let(:initial_config_file) { config_to_temp_file(@fixture.config("initial", { :port => initial_port, :file => output_file1 })) } let(:reload_config_file) { config_to_temp_file(@fixture.config("reload", { :port => reload_port, :file => output_file2 })) } - - - def send_data(port, data) - socket = TCPSocket.new("127.0.0.1", port) - socket.puts(data) - socket.flush - socket.close - end - it "can reload config with new TCP port and grok pattern" do + it "can reload when changes are made to TCP port and grok pattern" do logstash_service = @fixture.get_service("logstash") logstash_service.spawn_logstash("-f", "#{initial_config_file}", "--config.reload.automatic", "true") logstash_service.wait_for_logstash diff --git a/qa/integration/specs/settings_spec.rb b/qa/integration/specs/settings_spec.rb new file mode 100644 index 00000000000..239e9926a75 --- /dev/null +++ b/qa/integration/specs/settings_spec.rb @@ -0,0 +1,139 @@ +require_relative '../framework/fixture' +require_relative '../framework/settings' +require_relative '../services/logstash_service' +require_relative '../framework/helpers' +require "logstash/devutils/rspec/spec_helper" +require "yaml" + +describe "Test Logstash instance whose default settings are overridden" do + before(:all) { + @fixture = Fixture.new(__FILE__) + @logstash_service = @fixture.get_service("logstash") + } + + after(:all) { + @fixture.teardown + } + + before(:each) { + # backup the application settings file -- logstash.yml + FileUtils.cp(@logstash_service.application_settings_file, "#{@logstash_service.application_settings_file}.original") + } + + after(:each) { + @logstash_service.teardown + # restore the application settings file -- logstash.yml + FileUtils.mv("#{@logstash_service.application_settings_file}.original", @logstash_service.application_settings_file) + } + + let(:retry_attempts) { 10 } + let(:test_port) { 9999 } + let(:temp_dir) { Stud::Temporary.directory("logstash-settings-test") } + let(:tcp_config) { @fixture.config("root", { :port => test_port }) } + + def change_setting(name, value) + settings = {} + settings[name] = value + overwrite_settings(settings) + end + + def overwrite_settings(settings) + IO.write(@logstash_service.application_settings_file, settings.to_yaml) + end + + it "should start with a new data dir" do + change_setting("path.data", temp_dir) + @logstash_service.spawn_logstash("-e", tcp_config) + # check LS is up and running with new data path + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(is_port_open?(test_port)).to be true + end + end + + it "should write logs to a new dir" do + change_setting("path.logs", temp_dir) + @logstash_service.spawn_logstash("-e", tcp_config) + # check LS is up and running with new data path + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(is_port_open?(test_port)).to be true + end + expect(File.exists?("#{temp_dir}/logstash-plain.log")).to be true + end + + it "should read config from the specified dir in logstash.yml" do + change_setting("path.config", temp_dir) + test_config_path = File.join(temp_dir, "test.config") + IO.write(test_config_path, tcp_config) + expect(File.exists?(test_config_path)).to be true + @logstash_service.spawn_logstash + # check LS is up and running with new data path + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(is_port_open?(test_port)).to be true + end + end + + it "should exit when config test_and_exit is set" do + s = {} + s["path.config"] = temp_dir + s["config.test_and_exit"] = true + s["path.logs"] = temp_dir + overwrite_settings(s) + test_config_path = File.join(temp_dir, "test.config") + IO.write(test_config_path, "#{tcp_config}") + expect(File.exists?(test_config_path)).to be true + @logstash_service.spawn_logstash + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(@logstash_service.exited?).to be true + end + expect(@logstash_service.exit_code).to eq(0) + + # now with bad config + IO.write(test_config_path, "#{tcp_config} filters {} ") + expect(File.exists?(test_config_path)).to be true + @logstash_service.spawn_logstash + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(@logstash_service.exited?).to be true + end + expect(@logstash_service.exit_code).to eq(1) + end + + it "change pipeline settings" do + s = {} + workers = 31 + batch_size = 1250 + s["pipeline.workers"] = workers + s["pipeline.batch.size"] = batch_size + overwrite_settings(s) + @logstash_service.spawn_logstash("-e", tcp_config) + @logstash_service.wait_for_logstash + # check LS is up and running with new data path + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(is_port_open?(test_port)).to be true + end + + # now check monitoring API to validate + node_info = @logstash_service.monitoring_api.node_info + expect(node_info["pipeline"]["workers"]).to eq(workers) + expect(node_info["pipeline"]["batch_size"]).to eq(batch_size) + end + + it "start on a different HTTP port" do + # default in 9600 + http_port = 9610 + change_setting("http.port", http_port) + @logstash_service.spawn_logstash("-e", tcp_config) + + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(is_port_open?(http_port)).to be true + end + # check LS is up and running with new data path + Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + expect(is_port_open?(test_port)).to be true + end + + resp = Manticore.get("http://localhost:#{http_port}/_node").body + node_info = JSON.parse(resp) + # should be default + expect(node_info["http_address"]).to eq("127.0.0.1:#{http_port}") + end +end \ No newline at end of file From 37800fc65339f4b2a050c6cef770c04471da3a20 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 11 Oct 2016 14:16:56 -0700 Subject: [PATCH 409/632] Use randomized ports Fixes #6031 --- .gitignore | 2 ++ qa/integration/framework/helpers.rb | 5 +++-- qa/integration/integration_tests.gemspec | 1 + qa/integration/specs/01_logstash_bin_smoke_spec.rb | 7 ++----- qa/integration/specs/env_variables_config_spec.rb | 2 +- qa/integration/specs/reload_config_spec.rb | 4 ++-- qa/integration/specs/settings_spec.rb | 4 ++-- 7 files changed, 13 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 0bf92be54e3..2715c52735f 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,5 @@ qa/Gemfile.lock *.iml .gradle .idea +logs +qa/integration/services/installed/ diff --git a/qa/integration/framework/helpers.rb b/qa/integration/framework/helpers.rb index e650bd5176b..23a911e091e 100644 --- a/qa/integration/framework/helpers.rb +++ b/qa/integration/framework/helpers.rb @@ -1,7 +1,7 @@ # encoding: utf-8 # Helper module for all tests -#require "flores/random" +require "flores/random" def wait_for_port(port, retry_attempts) tries = retry_attempts @@ -40,5 +40,6 @@ def config_to_temp_file(config) end def random_port - Flores::Random.number(9701..15000) + # 9600-9700 is reserved in Logstash HTTP server, so we don't want that + Flores::Random.integer(9701..15000) end \ No newline at end of file diff --git a/qa/integration/integration_tests.gemspec b/qa/integration/integration_tests.gemspec index 9fdefb18348..5a44f769538 100644 --- a/qa/integration/integration_tests.gemspec +++ b/qa/integration/integration_tests.gemspec @@ -19,4 +19,5 @@ Gem::Specification.new do |s| s.add_development_dependency 'stud' s.add_development_dependency 'pry' s.add_development_dependency 'logstash-devutils' + s.add_development_dependency 'flores' end diff --git a/qa/integration/specs/01_logstash_bin_smoke_spec.rb b/qa/integration/specs/01_logstash_bin_smoke_spec.rb index f222697c08b..daa7475ee65 100644 --- a/qa/integration/specs/01_logstash_bin_smoke_spec.rb +++ b/qa/integration/specs/01_logstash_bin_smoke_spec.rb @@ -15,8 +15,8 @@ } let(:retry_attempts) { 10 } - let(:config1) { config_to_temp_file(@fixture.config("root", { :port => '9980' })) } - let(:config2) { config_to_temp_file(@fixture.config("root", { :port => '9981' })) } + let(:config1) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } + let(:config2) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } it "can start the embedded http server on default port 9600" do logstash_service = @fixture.get_service("logstash") @@ -49,7 +49,4 @@ expected = YAML.load_file(LogstashService::LS_VERSION_FILE) expect(ls.get_version.strip).to eq("logstash #{expected['logstash']}") end - - - end \ No newline at end of file diff --git a/qa/integration/specs/env_variables_config_spec.rb b/qa/integration/specs/env_variables_config_spec.rb index 872303d872b..c4900fa331d 100644 --- a/qa/integration/specs/env_variables_config_spec.rb +++ b/qa/integration/specs/env_variables_config_spec.rb @@ -14,7 +14,7 @@ } let(:retry_attempts) { 10 } - let(:test_tcp_port) { "9999" } + let(:test_tcp_port) { random_port } let(:test_tag) { "environment_variables_are_evil" } let(:test_path) { Stud::Temporary.directory } let(:sample_data) { '74.125.176.147 - - [11/Sep/2014:21:50:37 +0000] "GET /?flav=rss20 HTTP/1.1" 200 29941 "-" "FeedBurner/1.0 (http://www.FeedBurner.com)"' } diff --git a/qa/integration/specs/reload_config_spec.rb b/qa/integration/specs/reload_config_spec.rb index 81c2a958dc1..530e75a2a7f 100644 --- a/qa/integration/specs/reload_config_spec.rb +++ b/qa/integration/specs/reload_config_spec.rb @@ -16,8 +16,8 @@ } let(:timeout_seconds) { 5 } - let(:initial_port) { 9198 } - let(:reload_port) { 9199 } + let(:initial_port) { random_port } + let(:reload_port) { random_port } let(:retry_attempts) { 10 } let(:output_file1) { Stud::Temporary.file.path } let(:output_file2) { Stud::Temporary.file.path } diff --git a/qa/integration/specs/settings_spec.rb b/qa/integration/specs/settings_spec.rb index 239e9926a75..c2ebf66f452 100644 --- a/qa/integration/specs/settings_spec.rb +++ b/qa/integration/specs/settings_spec.rb @@ -27,7 +27,7 @@ } let(:retry_attempts) { 10 } - let(:test_port) { 9999 } + let(:test_port) { random_port } let(:temp_dir) { Stud::Temporary.directory("logstash-settings-test") } let(:tcp_config) { @fixture.config("root", { :port => test_port }) } @@ -119,7 +119,7 @@ def overwrite_settings(settings) it "start on a different HTTP port" do # default in 9600 - http_port = 9610 + http_port = random_port change_setting("http.port", http_port) @logstash_service.spawn_logstash("-e", tcp_config) From 4533bbbe97340fe89a98b9eb431181920345fc3c Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 12 Oct 2016 22:23:55 -0700 Subject: [PATCH 410/632] Use try instead of stud::try Fixes #6031 --- qa/integration/services/logstash_service.rb | 2 +- .../specs/01_logstash_bin_smoke_spec.rb | 15 +++++++++++---- qa/integration/specs/es_output_how_spec.rb | 2 +- qa/integration/specs/settings_spec.rb | 19 +++++++++---------- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/qa/integration/services/logstash_service.rb b/qa/integration/services/logstash_service.rb index 6b5468ca762..4ae85afdbcb 100644 --- a/qa/integration/services/logstash_service.rb +++ b/qa/integration/services/logstash_service.rb @@ -42,7 +42,7 @@ def initialize(settings) raise "Logstash binary not found in path #{@logstash_home}" unless File.file? @logstash_bin end - @application_settings_file = File.join("#{@logstash_home}", LS_CONFIG_FILE) + @application_settings_file = File.join(@logstash_home, LS_CONFIG_FILE) @monitoring_api = MonitoringAPI.new end diff --git a/qa/integration/specs/01_logstash_bin_smoke_spec.rb b/qa/integration/specs/01_logstash_bin_smoke_spec.rb index daa7475ee65..708fe846935 100644 --- a/qa/integration/specs/01_logstash_bin_smoke_spec.rb +++ b/qa/integration/specs/01_logstash_bin_smoke_spec.rb @@ -14,14 +14,18 @@ @fixture.teardown } - let(:retry_attempts) { 10 } + after(:each) { + ls = @fixture.get_service("logstash") + ls.teardown + } + let(:config1) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } let(:config2) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } it "can start the embedded http server on default port 9600" do logstash_service = @fixture.get_service("logstash") logstash_service.start_with_stdin - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(is_port_open?(9600)).to be true end logstash_service.teardown @@ -30,23 +34,26 @@ it "multiple of them can be started on the same box with automatically trying different ports for HTTP server" do ls1 = @fixture.get_service("logstash") ls1.spawn_logstash("-f", config1) - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(is_port_open?(9600)).to be true end # bring up new LS instance ls2 = LogstashService.new(@fixture.settings) ls2.spawn_logstash("-f", config2) - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(is_port_open?(9601)).to be true end expect(ls1.process_id).not_to eq(ls2.process_id) + ls1.teardown + ls2.teardown end it "gets the right version when asked" do ls = @fixture.get_service("logstash") expected = YAML.load_file(LogstashService::LS_VERSION_FILE) expect(ls.get_version.strip).to eq("logstash #{expected['logstash']}") + ls.teardown end end \ No newline at end of file diff --git a/qa/integration/specs/es_output_how_spec.rb b/qa/integration/specs/es_output_how_spec.rb index 007ae1a622f..da1916f52bb 100644 --- a/qa/integration/specs/es_output_how_spec.rb +++ b/qa/integration/specs/es_output_how_spec.rb @@ -24,7 +24,7 @@ result = es_client.search(index: 'logstash-*', size: 0, q: '*') expect(result["hits"]["total"]).to eq(37) - # random;y checked for results and structured fields + # randomly checked for results and structured fields result = es_client.search(index: 'logstash-*', size: 1, q: 'dynamic') expect(result["hits"]["total"]).to eq(1) s = result["hits"]["hits"][0]["_source"] diff --git a/qa/integration/specs/settings_spec.rb b/qa/integration/specs/settings_spec.rb index c2ebf66f452..aab27f73732 100644 --- a/qa/integration/specs/settings_spec.rb +++ b/qa/integration/specs/settings_spec.rb @@ -25,8 +25,7 @@ # restore the application settings file -- logstash.yml FileUtils.mv("#{@logstash_service.application_settings_file}.original", @logstash_service.application_settings_file) } - - let(:retry_attempts) { 10 } + let(:test_port) { random_port } let(:temp_dir) { Stud::Temporary.directory("logstash-settings-test") } let(:tcp_config) { @fixture.config("root", { :port => test_port }) } @@ -45,7 +44,7 @@ def overwrite_settings(settings) change_setting("path.data", temp_dir) @logstash_service.spawn_logstash("-e", tcp_config) # check LS is up and running with new data path - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(is_port_open?(test_port)).to be true end end @@ -54,7 +53,7 @@ def overwrite_settings(settings) change_setting("path.logs", temp_dir) @logstash_service.spawn_logstash("-e", tcp_config) # check LS is up and running with new data path - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(is_port_open?(test_port)).to be true end expect(File.exists?("#{temp_dir}/logstash-plain.log")).to be true @@ -67,7 +66,7 @@ def overwrite_settings(settings) expect(File.exists?(test_config_path)).to be true @logstash_service.spawn_logstash # check LS is up and running with new data path - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(is_port_open?(test_port)).to be true end end @@ -82,7 +81,7 @@ def overwrite_settings(settings) IO.write(test_config_path, "#{tcp_config}") expect(File.exists?(test_config_path)).to be true @logstash_service.spawn_logstash - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(@logstash_service.exited?).to be true end expect(@logstash_service.exit_code).to eq(0) @@ -91,7 +90,7 @@ def overwrite_settings(settings) IO.write(test_config_path, "#{tcp_config} filters {} ") expect(File.exists?(test_config_path)).to be true @logstash_service.spawn_logstash - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(@logstash_service.exited?).to be true end expect(@logstash_service.exit_code).to eq(1) @@ -107,7 +106,7 @@ def overwrite_settings(settings) @logstash_service.spawn_logstash("-e", tcp_config) @logstash_service.wait_for_logstash # check LS is up and running with new data path - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(is_port_open?(test_port)).to be true end @@ -123,11 +122,11 @@ def overwrite_settings(settings) change_setting("http.port", http_port) @logstash_service.spawn_logstash("-e", tcp_config) - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(is_port_open?(http_port)).to be true end # check LS is up and running with new data path - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try do expect(is_port_open?(test_port)).to be true end From d3357232b8df57b48f28ca9ef267f31d20c6987d Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 14 Oct 2016 12:23:00 -0700 Subject: [PATCH 411/632] Increase the tries Fixes #6031 --- .../specs/01_logstash_bin_smoke_spec.rb | 7 ++++--- qa/integration/specs/settings_spec.rb | 15 ++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/qa/integration/specs/01_logstash_bin_smoke_spec.rb b/qa/integration/specs/01_logstash_bin_smoke_spec.rb index 708fe846935..ae6fd4fb873 100644 --- a/qa/integration/specs/01_logstash_bin_smoke_spec.rb +++ b/qa/integration/specs/01_logstash_bin_smoke_spec.rb @@ -18,14 +18,15 @@ ls = @fixture.get_service("logstash") ls.teardown } - + + let(:num_retries) { 10 } let(:config1) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } let(:config2) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } it "can start the embedded http server on default port 9600" do logstash_service = @fixture.get_service("logstash") logstash_service.start_with_stdin - try do + try(num_retries) do expect(is_port_open?(9600)).to be true end logstash_service.teardown @@ -34,7 +35,7 @@ it "multiple of them can be started on the same box with automatically trying different ports for HTTP server" do ls1 = @fixture.get_service("logstash") ls1.spawn_logstash("-f", config1) - try do + try(num_retries) do expect(is_port_open?(9600)).to be true end diff --git a/qa/integration/specs/settings_spec.rb b/qa/integration/specs/settings_spec.rb index aab27f73732..e817c1a5d03 100644 --- a/qa/integration/specs/settings_spec.rb +++ b/qa/integration/specs/settings_spec.rb @@ -26,6 +26,7 @@ FileUtils.mv("#{@logstash_service.application_settings_file}.original", @logstash_service.application_settings_file) } + let(:num_retries) { 15 } let(:test_port) { random_port } let(:temp_dir) { Stud::Temporary.directory("logstash-settings-test") } let(:tcp_config) { @fixture.config("root", { :port => test_port }) } @@ -44,7 +45,7 @@ def overwrite_settings(settings) change_setting("path.data", temp_dir) @logstash_service.spawn_logstash("-e", tcp_config) # check LS is up and running with new data path - try do + try(num_retries) do expect(is_port_open?(test_port)).to be true end end @@ -53,7 +54,7 @@ def overwrite_settings(settings) change_setting("path.logs", temp_dir) @logstash_service.spawn_logstash("-e", tcp_config) # check LS is up and running with new data path - try do + try(num_retries) do expect(is_port_open?(test_port)).to be true end expect(File.exists?("#{temp_dir}/logstash-plain.log")).to be true @@ -66,7 +67,7 @@ def overwrite_settings(settings) expect(File.exists?(test_config_path)).to be true @logstash_service.spawn_logstash # check LS is up and running with new data path - try do + try(num_retries) do expect(is_port_open?(test_port)).to be true end end @@ -81,7 +82,7 @@ def overwrite_settings(settings) IO.write(test_config_path, "#{tcp_config}") expect(File.exists?(test_config_path)).to be true @logstash_service.spawn_logstash - try do + try(num_retries) do expect(@logstash_service.exited?).to be true end expect(@logstash_service.exit_code).to eq(0) @@ -90,7 +91,7 @@ def overwrite_settings(settings) IO.write(test_config_path, "#{tcp_config} filters {} ") expect(File.exists?(test_config_path)).to be true @logstash_service.spawn_logstash - try do + try(num_retries) do expect(@logstash_service.exited?).to be true end expect(@logstash_service.exit_code).to eq(1) @@ -122,11 +123,11 @@ def overwrite_settings(settings) change_setting("http.port", http_port) @logstash_service.spawn_logstash("-e", tcp_config) - try do + try(num_retries) do expect(is_port_open?(http_port)).to be true end # check LS is up and running with new data path - try do + try(num_retries) do expect(is_port_open?(test_port)).to be true end From 86502c0bb742b4d2ddf328f55bc2d7b2af5658b5 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 14 Oct 2016 12:55:38 -0700 Subject: [PATCH 412/632] Make tests more robust Fixes #6031 --- .../specs/01_logstash_bin_smoke_spec.rb | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/qa/integration/specs/01_logstash_bin_smoke_spec.rb b/qa/integration/specs/01_logstash_bin_smoke_spec.rb index ae6fd4fb873..1fed6c3d8d9 100644 --- a/qa/integration/specs/01_logstash_bin_smoke_spec.rb +++ b/qa/integration/specs/01_logstash_bin_smoke_spec.rb @@ -8,6 +8,9 @@ describe "Test Logstash instance" do before(:all) { @fixture = Fixture.new(__FILE__) + # used in multiple LS tests + @ls1 = @fixture.get_service("logstash") + @ls2 = LogstashService.new(@fixture.settings) } after(:all) { @@ -15,8 +18,8 @@ } after(:each) { - ls = @fixture.get_service("logstash") - ls.teardown + @ls1.teardown + @ls2.teardown } let(:num_retries) { 10 } @@ -24,37 +27,31 @@ let(:config2) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } it "can start the embedded http server on default port 9600" do - logstash_service = @fixture.get_service("logstash") - logstash_service.start_with_stdin + @ls1.start_with_stdin try(num_retries) do expect(is_port_open?(9600)).to be true end - logstash_service.teardown end it "multiple of them can be started on the same box with automatically trying different ports for HTTP server" do - ls1 = @fixture.get_service("logstash") - ls1.spawn_logstash("-f", config1) + @ls1.spawn_logstash("-f", config1) try(num_retries) do expect(is_port_open?(9600)).to be true end + puts "will try to start the second LS instance on 9601" + # bring up new LS instance - ls2 = LogstashService.new(@fixture.settings) - ls2.spawn_logstash("-f", config2) - try do + @ls2.spawn_logstash("-f", config2) + try(num_retries) do expect(is_port_open?(9601)).to be true end - expect(ls1.process_id).not_to eq(ls2.process_id) - ls1.teardown - ls2.teardown + expect(@ls1.process_id).not_to eq(@ls2.process_id) end it "gets the right version when asked" do - ls = @fixture.get_service("logstash") expected = YAML.load_file(LogstashService::LS_VERSION_FILE) - expect(ls.get_version.strip).to eq("logstash #{expected['logstash']}") - ls.teardown + expect(@ls1.get_version.strip).to eq("logstash #{expected['logstash']}") end end \ No newline at end of file From 599065ef9e4d8b39056e4d972c64bc1159c66ee7 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 14 Oct 2016 14:32:38 -0700 Subject: [PATCH 413/632] refine tests Fixes #6031 --- qa/integration/specs/01_logstash_bin_smoke_spec.rb | 2 +- qa/integration/specs/env_variables_config_spec.rb | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/qa/integration/specs/01_logstash_bin_smoke_spec.rb b/qa/integration/specs/01_logstash_bin_smoke_spec.rb index 1fed6c3d8d9..3fa9e3faf02 100644 --- a/qa/integration/specs/01_logstash_bin_smoke_spec.rb +++ b/qa/integration/specs/01_logstash_bin_smoke_spec.rb @@ -43,7 +43,7 @@ # bring up new LS instance @ls2.spawn_logstash("-f", config2) - try(num_retries) do + try(20) do expect(is_port_open?(9601)).to be true end diff --git a/qa/integration/specs/env_variables_config_spec.rb b/qa/integration/specs/env_variables_config_spec.rb index c4900fa331d..801ad5179b6 100644 --- a/qa/integration/specs/env_variables_config_spec.rb +++ b/qa/integration/specs/env_variables_config_spec.rb @@ -13,7 +13,7 @@ @fixture.teardown } - let(:retry_attempts) { 10 } + let(:num_retries) { 10 } let(:test_tcp_port) { random_port } let(:test_tag) { "environment_variables_are_evil" } let(:test_path) { Stud::Temporary.directory } @@ -22,7 +22,7 @@ it "expands environment variables in all plugin blocks" do # set ENV variables before starting the service test_env = {} - test_env["TEST_ENV_TCP_PORT"] = test_tcp_port + test_env["TEST_ENV_TCP_PORT"] = "#{test_tcp_port}" test_env["TEST_ENV_TAG"] = test_tag test_env["TEST_ENV_PATH"] = test_path @@ -30,18 +30,18 @@ logstash_service.env_variables = test_env logstash_service.start_background(@fixture.config) # check if TCP port env variable was resolved - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try(num_retries) do expect(is_port_open?(test_tcp_port)).to be true end #send data and make sure all env variables are expanded by checking each stage send_data(test_tcp_port, sample_data) output_file = File.join(test_path, "logstash_env_test.log") - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try(num_retries) do expect(File.exists?(output_file)).to be true end # should have created the file using env variable with filters adding a tag based on env variable - Stud.try(retry_attempts.times, RSpec::Expectations::ExpectationNotMetError) do + try(num_retries) do expect(IO.read(output_file).gsub("\n", "")).to eq("#{sample_data} blah,environment_variables_are_evil") end end From 0eb40fa2d92600e97e68c762d1b82f5900bf9ec2 Mon Sep 17 00:00:00 2001 From: Aaron Mildenstein Date: Mon, 17 Oct 2016 14:07:45 -0600 Subject: [PATCH 414/632] Add IMPORTANT block for path.settings As this breaking change will catch the unsuspecting off guard, make it very visible in the breaking changes documentation Fixes #6068 --- docs/static/breaking-changes.asciidoc | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index f2d035191a5..d1a0a220a43 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -7,11 +7,13 @@ This section discusses the changes that you need to be aware of when migrating y === Changes in Logstash Core * **Application Settings:** Introduced a new way to configure application settings for Logstash through a settings.yml file. This file -is typically located in `LS_HOME/config`, or `/etc/logstash` when installed via packages. Logstash will not be able -to start without this file, so please make sure to pass in `--path.settings` if you are starting Logstash manually +is typically located in `LS_HOME/config`, or `/etc/logstash` when installed via packages. + +[IMPORTANT] +Logstash will not be able to start without this file, so please make sure to +pass in `--path.settings /etc/logstash` if you are starting Logstash manually after installing it via a package (RPM, DEB). -* **Release Packages:** When Logstash is installed via DEB, RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries. +* **Release Packages:** When Logstash is installed via DEB, RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries. Previously it used to install in `/opt/logstash` directory. This change was done to make the user experience consistent with other Elastic products. Full directory layout is described in <>. @@ -49,16 +51,16 @@ Please see the following specific plugin documentation for new configuration opt * <> * <> -* **File Input:** SinceDB file is now saved in `/plugins/inputs/file` location, not user's home. If you have manually specified `sincedb_path` -configuration, this change will not affect you. If you are moving from 2.x to 5.x, and would like to use the existing SinceDB file, it +* **File Input:** SinceDB file is now saved in `/plugins/inputs/file` location, not user's home. If you have manually specified `sincedb_path` +configuration, this change will not affect you. If you are moving from 2.x to 5.x, and would like to use the existing SinceDB file, it has to be copied over to `path.data` manually to use the save state. [float] === Ruby Filter and Custom Plugin Developers -With the migration to the new <>, we have changed how you can access internal data compared to previous release. -The Event object no longer returns a reference to the data. Instead, it returns a copy. This might change how you do manipulation of -your data, especially when working with nested hashes. When working with nested hashes, it’s recommended that you +With the migration to the new <>, we have changed how you can access internal data compared to previous release. +The Event object no longer returns a reference to the data. Instead, it returns a copy. This might change how you do manipulation of +your data, especially when working with nested hashes. When working with nested hashes, it’s recommended that you use the `fieldref` syntax instead of using multiple brackets. Also note that we have introduced new Getter/Setter APIs for accessing information in the Event object. Refer <> for details. @@ -85,4 +87,3 @@ filter { ---------------------------------- The above syntax is not supported, and will produce an error at run-time. - From 6a27f2e4270435cce7da6ebfb5f43c7071ca2f5b Mon Sep 17 00:00:00 2001 From: Pere Urbon-Bayes Date: Mon, 5 Sep 2016 18:28:57 +0200 Subject: [PATCH 415/632] fix suse installed? command and the suse-12 openjdk8 install procedure Fixes #5861 --- qa/rspec/commands/suse.rb | 2 +- qa/sys/suse/sles-12/bootstrap.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/qa/rspec/commands/suse.rb b/qa/rspec/commands/suse.rb index 5db5e47a3d3..9b1e6eee902 100644 --- a/qa/rspec/commands/suse.rb +++ b/qa/rspec/commands/suse.rb @@ -49,7 +49,7 @@ def running?(hosts, package) cmd = sudo_exec!("service #{package} status") stdout = cmd.stdout end - stdout.match(/#{package} started.$/) + stdout.match(/Active: active \(running\)/) end def service_manager(service, action, host=nil) diff --git a/qa/sys/suse/sles-12/bootstrap.sh b/qa/sys/suse/sles-12/bootstrap.sh index 3ed7a04ed15..56b4d0fd7d6 100644 --- a/qa/sys/suse/sles-12/bootstrap.sh +++ b/qa/sys/suse/sles-12/bootstrap.sh @@ -6,4 +6,6 @@ zypper addrepo -t yast2 http://demeter.uni-regensburg.de/SLES12-x64/DVD2/ dvd2 | zypper addrepo http://download.opensuse.org/repositories/Java:Factory/SLE_12/Java:Factory.repo || true zypper --no-gpg-checks --non-interactive refresh zypper --non-interactive list-updates -zypper --non-interactive --no-gpg-checks --quiet install --no-recommends java-1_8_0-openjdk-devel +ln -s /usr/sbin/update-alternatives /usr/sbin/alternatives +curl -L 'https://edelivery.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.rpm' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en-US,en;q=0.8' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0' -H 'Cookie: oraclelicense=accept-securebackup-cookie;' -H 'Connection: keep-alive' --compressed -o oracle_jdk_1.8.rpm +zypper -q -n --non-interactive install oracle_jdk_1.8.rpm From 72d14d870f301fda33dcf9d323fae8b468551f7e Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Mon, 17 Oct 2016 20:14:39 -0700 Subject: [PATCH 416/632] Update path.log to path.logs --- docs/static/setting-up-logstash.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index 8eaee917902..e5167aafe74 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -86,7 +86,7 @@ locations for the system: | logs | Log files | `/var/log/logstash` - | `path.log` + | `path.logs` | plugins | Local, non Ruby-Gem plugin files. Each plugin is contained in a subdirectory. Recommended for development only. From 82eb70ff05058bb9d7601026aae85237f5d8683e Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 18 Oct 2016 14:38:56 -0700 Subject: [PATCH 417/632] Add more info to 5.0 breaking changes Fixes #6088 --- docs/static/breaking-changes.asciidoc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index d1a0a220a43..683a67efe65 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -6,6 +6,8 @@ This section discusses the changes that you need to be aware of when migrating y [float] === Changes in Logstash Core +* Logstash 5.0.0 requires Java 8 + * **Application Settings:** Introduced a new way to configure application settings for Logstash through a settings.yml file. This file is typically located in `LS_HOME/config`, or `/etc/logstash` when installed via packages. + [IMPORTANT] @@ -15,7 +17,9 @@ after installing it via a package (RPM, DEB). * **Release Packages:** When Logstash is installed via DEB, RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries. Previously it used to install in `/opt/logstash` directory. This change was done to make the user experience -consistent with other Elastic products. Full directory layout is described in <>. +consistent with other Elastic products. Full directory layout is described in <>. The source of release packages +has changed from `packages.elastic.co` to `artifacts.elastic.co`. For example, 5.x and all the patch releases in this series +will available at `https://artifacts.elastic.co/packages/5.x/apt` * **Default Logging Level:** Changed the default log severity level to INFO instead of WARN to match Elasticsearch. Existing logs (in core and plugins) were too noisy at INFO level, so we had to audit log messages and switch some of them to DEBUG From 8cdd24707097188ca368929c5ed73b7b4d2bb140 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Mon, 17 Oct 2016 19:44:16 -0700 Subject: [PATCH 418/632] add more debuggability for kafka tests Fixes #6072 --- qa/integration/services/helpers.sh | 2 ++ qa/integration/services/kafka_setup.sh | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/qa/integration/services/helpers.sh b/qa/integration/services/helpers.sh index 872389497db..dbf970a3eba 100644 --- a/qa/integration/services/helpers.sh +++ b/qa/integration/services/helpers.sh @@ -19,6 +19,8 @@ wait_for_port() { [[ $count -eq 0 ]] && return 1 sleep 0.5 done + # just in case, one more time + nc -z localhost $port } clean_install_dir() { diff --git a/qa/integration/services/kafka_setup.sh b/qa/integration/services/kafka_setup.sh index 0a836814b84..3a3b283300d 100755 --- a/qa/integration/services/kafka_setup.sh +++ b/qa/integration/services/kafka_setup.sh @@ -14,6 +14,7 @@ fi KAFKA_HOME=$INSTALL_DIR/kafka KAFKA_TOPIC=logstash_topic_plain KAFKA_MESSAGES=37 +KAFKA_LOGS_DIR=/tmp/ls_integration/kafka-logs setup_kafka() { local version=$1 @@ -30,28 +31,38 @@ start_kafka() { $KAFKA_HOME/bin/zookeeper-server-start.sh -daemon $KAFKA_HOME/config/zookeeper.properties wait_for_port 2181 echo "Starting Kafka broker" - $KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties --override delete.topic.enable=true --override log.dirs=/tmp/ls_integration/kafka-logs + $KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties --override delete.topic.enable=true --override log.dirs=$KAFKA_LOGS_DIR --override log.flush.interval.ms=200 wait_for_port 9092 } wait_for_messages() { local count=10 local read_lines=0 + + echo "Checking if Kafka topic has been populated with data" while [[ $read_lines -ne $KAFKA_MESSAGES ]] && [[ $count -ne 0 ]]; do - read_lines=`$KAFKA_HOME/bin/kafka-console-consumer.sh --topic $KAFKA_TOPIC --new-consumer --bootstrap-server localhost:9092 --from-beginning --max-messages $KAFKA_MESSAGES | wc -l` + read_lines=`$KAFKA_HOME/bin/kafka-console-consumer.sh --topic $KAFKA_TOPIC --new-consumer --bootstrap-server localhost:9092 --from-beginning --max-messages $KAFKA_MESSAGES --timeout-ms 10000 | wc -l` count=$(( $count - 1 )) [[ $count -eq 0 ]] && return 1 sleep 0.5 + ls -lrt $KAFKA_LOGS_DIR/$KAFKA_TOPIC-0/ done + echo "Kafka topic has been populated with test data" } setup_install_dir setup_kafka $version start_kafka # Set up topics -$KAFKA_HOME/bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic logstash_topic_plain --zookeeper localhost:2181 +$KAFKA_HOME/bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic $KAFKA_TOPIC --zookeeper localhost:2181 +# check topic got created +num_topic=`$KAFKA_HOME/bin/kafka-topics.sh --list --zookeeper localhost:2181 | grep $KAFKA_TOPIC | wc -l` +[[ $num_topic -eq 1 ]] # Add test messages to the newly created topic -cat $current_dir/../fixtures/how_sample.input | $KAFKA_HOME/bin/kafka-console-producer.sh --topic $KAFKA_TOPIC --broker-list localhost:9092 +cp $current_dir/../fixtures/how_sample.input $KAFKA_HOME +[[ ! -s how_sample.input ]] +$KAFKA_HOME/bin/kafka-console-producer.sh --topic $KAFKA_TOPIC --broker-list localhost:9092 < $KAFKA_HOME/how_sample.input +echo "Kafka load status code $?" # Wait until broker has all messages wait_for_messages echo "Kafka Setup complete" From 44fa63eef8d7c920e92f4b608e20b3d06aac79ae Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 21 Oct 2016 18:29:16 -0700 Subject: [PATCH 419/632] Reorder event API docs and fix event-api link Fixes #6103 --- docs/static/event-api.asciidoc | 6 +++--- docs/static/plugin-manager.asciidoc | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/static/event-api.asciidoc b/docs/static/event-api.asciidoc index f55841a1c8f..39ac6d77767 100644 --- a/docs/static/event-api.asciidoc +++ b/docs/static/event-api.asciidoc @@ -1,5 +1,5 @@ [[event-api]] -== Event API +=== Event API This section is targeted for plugin developers and users of Logstash's Ruby filter. Below we document recent changes (starting with version 5.0) in the way users have been accessing Logstash's event based data in @@ -8,7 +8,7 @@ data flow in Logstash's config files -- using <> can be used to execute any ruby code and manipulate event data using the API described above. For example, using the new API: diff --git a/docs/static/plugin-manager.asciidoc b/docs/static/plugin-manager.asciidoc index 1d8c81b264b..f59626ccfb3 100644 --- a/docs/static/plugin-manager.asciidoc +++ b/docs/static/plugin-manager.asciidoc @@ -119,3 +119,5 @@ include::plugin-generator.asciidoc[] include::offline-plugins.asciidoc[] include::private-gem-repo.asciidoc[] + +include::event-api.asciidoc[] From 9622f9b5b149a635a50ad80fdfd333984e6f94cc Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 20 Oct 2016 12:50:29 +0100 Subject: [PATCH 420/632] skip reloading a pipeline if it has reloading turned off Fixes #6093 --- logstash-core/lib/logstash/agent.rb | 3 +- logstash-core/spec/logstash/agent_spec.rb | 57 +++++++++++++++++++---- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index a69312f99bd..86f60576382 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -97,7 +97,8 @@ def register_pipeline(pipeline_id, settings = @settings) def reload_state! @upgrade_mutex.synchronize do - @pipelines.each do |pipeline_id, _| + @pipelines.each do |pipeline_id, pipeline| + next if pipeline.settings.get("config.reload.automatic") == false begin reload_pipeline!(pipeline_id) rescue => e diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 90e8cb615a7..a9ec4cde430 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -94,7 +94,7 @@ end end - context "when calling reload_state!" do + context "when calling reload_pipeline!" do context "with a config that contains reload incompatible plugins" do let(:second_pipeline_config) { "input { stdin {} } filter { } output { }" } @@ -103,7 +103,7 @@ sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? expect(subject).to_not receive(:upgrade_pipeline) File.open(config_file, "w") { |f| f.puts second_pipeline_config } - subject.reload_state! + subject.send(:"reload_pipeline!", "main") sleep 0.1 Stud.stop!(t) t.join @@ -119,6 +119,44 @@ sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? expect(subject).to receive(:upgrade_pipeline).once.and_call_original File.open(config_file, "w") { |f| f.puts second_pipeline_config } + subject.send(:"reload_pipeline!", "main") + sleep 0.1 + Stud.stop!(t) + t.join + + subject.shutdown + end + end + + end + context "when calling reload_state!" do + context "with a pipeline with auto reloading turned off" do + let(:second_pipeline_config) { "input { generator { } } filter { } output { }" } + let(:pipeline_args) { { "config.reload.automatic" => false } } + + it "does not try to reload the pipeline" do + t = Thread.new { subject.execute } + sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? + expect(subject).to_not receive(:reload_pipeline!) + File.open(config_file, "w") { |f| f.puts second_pipeline_config } + subject.reload_state! + sleep 0.1 + Stud.stop!(t) + t.join + + subject.shutdown + end + end + + context "with a pipeline with auto reloading turned on" do + let(:second_pipeline_config) { "input { generator { } } filter { } output { }" } + let(:pipeline_args) { { "config.reload.automatic" => true } } + + it "tries to reload the pipeline" do + t = Thread.new { subject.execute } + sleep 0.01 until subject.running_pipelines? && subject.pipelines.values.first.ready? + expect(subject).to receive(:reload_pipeline!).once.and_call_original + File.open(config_file, "w") { |f| f.puts second_pipeline_config } subject.reload_state! sleep 0.1 Stud.stop!(t) @@ -197,7 +235,8 @@ let(:second_pipeline_config) { "input { generator {} } filter { } output { }" } let(:pipeline_args) { { "config.string" => first_pipeline_config, - "pipeline.workers" => 4 + "pipeline.workers" => 4, + "config.reload.automatic" => true } } before(:each) do @@ -272,14 +311,14 @@ end it "leaves the state untouched" do - subject.reload_state! + subject.send(:"reload_pipeline!", pipeline_id) expect(subject.pipelines[pipeline_id].config_str).to eq(pipeline_config) end context "and current state is empty" do it "should not start a pipeline" do expect(subject).to_not receive(:start_pipeline) - subject.reload_state! + subject.send(:"reload_pipeline!", pipeline_id) end end end @@ -292,13 +331,13 @@ allow(subject).to receive(:start_pipeline) end it "updates the state" do - subject.reload_state! + subject.send(:"reload_pipeline!", pipeline_id) expect(subject.pipelines[pipeline_id].config_str).to eq(new_config) end it "starts the pipeline" do expect(subject).to receive(:stop_pipeline) expect(subject).to receive(:start_pipeline) - subject.reload_state! + subject.send(:"reload_pipeline!", pipeline_id) end end end @@ -406,7 +445,7 @@ class DummyOutput2 < DummyOutput; end f.fsync end - subject.reload_state! + subject.send(:"reload_pipeline!", "main") # wait until pipeline restarts sleep(0.01) until dummy_output2.events.size > 0 @@ -471,7 +510,7 @@ class DummyOutput2 < DummyOutput; end f.fsync end - subject.reload_state! + subject.send(:"reload_pipeline!", "main") end it "does not increase the successful reload count" do From 7132c68cf4dd698c2f55243ef0504dc58bfa5bd9 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 20 Oct 2016 18:21:57 +0100 Subject: [PATCH 421/632] allow the disabling of metric collection if `metric.collect` is set to false then no metrics are collected before this setting was necessarily set to true. Fixes #6097 --- logstash-core/lib/logstash/agent.rb | 2 +- logstash-core/lib/logstash/environment.rb | 2 +- .../instrument/namespaced_null_metric.rb | 54 ++++++++++ .../lib/logstash/instrument/null_metric.rb | 101 ++++++++++-------- logstash-core/lib/logstash/pipeline.rb | 1 + logstash-core/lib/logstash/plugin.rb | 4 +- .../spec/logstash/filter_delegator_spec.rb | 3 +- .../instrument/namespaced_null_metric_spec.rb | 33 ++++++ .../logstash/instrument/null_metric_spec.rb | 14 ++- .../spec/logstash/output_delegator_spec.rb | 3 +- logstash-core/spec/logstash/plugin_spec.rb | 6 +- .../util/wrapped_synchronous_queue_spec.rb | 4 +- 12 files changed, 165 insertions(+), 62 deletions(-) create mode 100644 logstash-core/lib/logstash/instrument/namespaced_null_metric.rb create mode 100644 logstash-core/spec/logstash/instrument/namespaced_null_metric_spec.rb diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 86f60576382..e6114cf1d5d 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -162,7 +162,7 @@ def configure_metrics_collectors @logger.debug("Agent: Configuring metric collection") LogStash::Instrument::Metric.new(@collector) else - LogStash::Instrument::NullMetric.new + LogStash::Instrument::NullMetric.new(@collector) end diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index ddef42918cd..a918a40414b 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -23,7 +23,7 @@ module Environment Setting::Boolean.new("config.test_and_exit", false), Setting::Boolean.new("config.reload.automatic", false), Setting::Numeric.new("config.reload.interval", 3), # in seconds - Setting::Boolean.new("metric.collect", true) {|v| v == true }, # metric collection cannot be disabled + Setting::Boolean.new("metric.collect", true), Setting::String.new("pipeline.id", "main"), Setting::PositiveInteger.new("pipeline.workers", LogStash::Config::CpuCoreStrategy.maximum), Setting::PositiveInteger.new("pipeline.output.workers", 1), diff --git a/logstash-core/lib/logstash/instrument/namespaced_null_metric.rb b/logstash-core/lib/logstash/instrument/namespaced_null_metric.rb new file mode 100644 index 00000000000..c4e8e762c23 --- /dev/null +++ b/logstash-core/lib/logstash/instrument/namespaced_null_metric.rb @@ -0,0 +1,54 @@ +# encoding: utf-8 +require "logstash/instrument/null_metric" + +module LogStash module Instrument + # This class acts a a proxy between the metric library and the user calls. + # + # This is the class that plugins authors will use to interact with the `MetricStore` + # It has the same public interface as `Metric` class but doesnt require to send + # the namespace on every call. + # + # @see Logstash::Instrument::Metric + class NamespacedNullMetric + attr_reader :namespace_name + # Create metric with a specific namespace + # + # @param metric [LogStash::Instrument::Metric] The metric instance to proxy + # @param namespace [Array] The namespace to use + def initialize(metric = nil, namespace_name = :null) + @metric = metric + @namespace_name = Array(namespace_name) + end + + def increment(key, value = 1) + end + + def decrement(key, value = 1) + end + + def gauge(key, value) + end + + def report_time(key, duration) + end + + def time(key, &block) + if block_given? + yield + else + ::LogStash::Instrument::NullMetric::NullTimedExecution + end + end + + def collector + @metric.collector + end + + def namespace(name) + NamespacedNullMetric.new(metric, namespace_name + Array(name)) + end + + private + attr_reader :metric + end +end; end diff --git a/logstash-core/lib/logstash/instrument/null_metric.rb b/logstash-core/lib/logstash/instrument/null_metric.rb index aec7d811633..afdb345ef79 100644 --- a/logstash-core/lib/logstash/instrument/null_metric.rb +++ b/logstash-core/lib/logstash/instrument/null_metric.rb @@ -2,50 +2,59 @@ require "logstash/instrument/metric" module LogStash module Instrument - # This class is used in the context when we disable the metric collection - # for specific plugin to replace the `NamespacedMetric` class with this one - # which doesn't produce any metric to the collector. - class NullMetric - attr_reader :namespace_name, :collector - - def increment(key, value = 1) - Metric.validate_key!(key) - end - - def decrement(key, value = 1) - Metric.validate_key!(key) - end - - def gauge(key, value) - Metric.validate_key!(key) - end - - def report_time(key, duration) - Metric.validate_key!(key) - end - - # We have to manually redefine this method since it can return an - # object this object also has to be implemented as a NullObject - def time(key) - Metric.validate_key!(key) - if block_given? - yield - else - NullTimedExecution - end - end - - def namespace(key) - self.class.new - end - - private - # Null implementation of the internal timer class - # - # @see LogStash::Instrument::TimedExecution` - class NullTimedExecution - def self.stop - end - end - end + # This class is used in the context when we disable the metric collection + # for specific plugin to replace the `NamespacedMetric` class with this one + # which doesn't produce any metric to the collector. + class NullMetric + attr_reader :namespace_name, :collector + + def initialize(collector = nil) + @collector = collector + end + + def increment(namespace, key, value = 1) + Metric.validate_key!(key) + end + + def decrement(namespace, key, value = 1) + Metric.validate_key!(key) + end + + def gauge(namespace, key, value) + Metric.validate_key!(key) + end + + def report_time(namespace, key, duration) + Metric.validate_key!(key) + end + + # We have to manually redefine this method since it can return an + # object this object also has to be implemented as a NullObject + def time(namespace, key) + Metric.validate_key!(key) + if block_given? + yield + else + NullTimedExecution + end + end + + def namespace(name) + raise MetricNoNamespaceProvided if name.nil? || name.empty? + NamespacedNullMetric.new(self, name) + end + + def self.validate_key!(key) + raise MetricNoKeyProvided if key.nil? || key.empty? + end + + private + # Null implementation of the internal timer class + # + # @see LogStash::Instrument::TimedExecution` + class NullTimedExecution + def self.stop + end + end + end end; end diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index ad1297cba1f..6b4c3b96622 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -15,6 +15,7 @@ require "logstash/instrument/metric" require "logstash/instrument/namespaced_metric" require "logstash/instrument/null_metric" +require "logstash/instrument/namespaced_null_metric" require "logstash/instrument/collector" require "logstash/output_delegator" require "logstash/filter_delegator" diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index 80f0bd04e62..c3ebd1c9abe 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -103,9 +103,9 @@ def metric # we will use the NullMetric in this case. @metric_plugin ||= if @enable_metric # Fallback when testing plugin and no metric collector are correctly configured. - @metric.nil? ? LogStash::Instrument::NullMetric.new : @metric + @metric.nil? ? LogStash::Instrument::NamespacedNullMetric.new : @metric else - LogStash::Instrument::NullMetric.new + LogStash::Instrument::NamespacedNullMetric.new(@metric, :null) end end # return the configured name of this plugin diff --git a/logstash-core/spec/logstash/filter_delegator_spec.rb b/logstash-core/spec/logstash/filter_delegator_spec.rb index 98586a1736d..951c72f69d3 100644 --- a/logstash-core/spec/logstash/filter_delegator_spec.rb +++ b/logstash-core/spec/logstash/filter_delegator_spec.rb @@ -10,7 +10,8 @@ let(:config) do { "host" => "127.0.0.1", "id" => filter_id } end - let(:metric) { LogStash::Instrument::NullMetric.new } + let(:collector) { [] } + let(:metric) { LogStash::Instrument::NamespacedNullMetric.new(collector, :null) } let(:events) { [LogStash::Event.new, LogStash::Event.new] } before :each do diff --git a/logstash-core/spec/logstash/instrument/namespaced_null_metric_spec.rb b/logstash-core/spec/logstash/instrument/namespaced_null_metric_spec.rb new file mode 100644 index 00000000000..fdd831dfbfc --- /dev/null +++ b/logstash-core/spec/logstash/instrument/namespaced_null_metric_spec.rb @@ -0,0 +1,33 @@ +# encoding: utf-8 +require "logstash/instrument/namespaced_null_metric" +require "logstash/instrument/null_metric" +require_relative "../../support/matchers" +require "spec_helper" + +describe LogStash::Instrument::NamespacedNullMetric do + let(:namespace) { :root } + let(:collector) { [] } + let(:metric) { LogStash::Instrument::NullMetric.new(collector) } + + subject { described_class.new(metric, namespace) } + + it "defines the same interface as `Metric`" do + expect(described_class).to implement_interface_of(LogStash::Instrument::NamespacedMetric) + end + + it "returns a TimedException when we call without a block" do + expect(subject.time(:duration_ms)).to be(LogStash::Instrument::NullMetric::NullTimedExecution) + end + + it "returns the value of the block" do + expect(subject.time(:duration_ms) { "hello" }).to eq("hello") + end + + it "its doesnt change the original `namespace` when creating a subnamespace" do + new_namespace = subject.namespace(:wally) + + expect(subject.namespace_name).to eq([namespace]) + expect(new_namespace.namespace_name).to eq([:root, :wally]) + end + +end diff --git a/logstash-core/spec/logstash/instrument/null_metric_spec.rb b/logstash-core/spec/logstash/instrument/null_metric_spec.rb index 8f4aa4b1f3a..27a861eae69 100644 --- a/logstash-core/spec/logstash/instrument/null_metric_spec.rb +++ b/logstash-core/spec/logstash/instrument/null_metric_spec.rb @@ -2,18 +2,22 @@ require "logstash/instrument/null_metric" require "logstash/instrument/namespaced_metric" require_relative "../../support/shared_examples" +require_relative "../../support/matchers" +require "spec_helper" describe LogStash::Instrument::NullMetric do - # This is defined in the `namespaced_metric_spec` - include_examples "metrics commons operations" + + let(:key) { "test" } + let(:collector) { [] } + subject { LogStash::Instrument::NullMetric.new(collector) } it "defines the same interface as `Metric`" do - expect(described_class).to implement_interface_of(LogStash::Instrument::NamespacedMetric) + expect(described_class).to implement_interface_of(LogStash::Instrument::Metric) end describe "#namespace" do - it "return a NullMetric" do - expect(subject.namespace(key)).to be_kind_of LogStash::Instrument::NullMetric + it "return a NamespacedNullMetric" do + expect(subject.namespace(key)).to be_kind_of LogStash::Instrument::NamespacedNullMetric end end end diff --git a/logstash-core/spec/logstash/output_delegator_spec.rb b/logstash-core/spec/logstash/output_delegator_spec.rb index 9c3808a027c..56dbd5168f7 100644 --- a/logstash-core/spec/logstash/output_delegator_spec.rb +++ b/logstash-core/spec/logstash/output_delegator_spec.rb @@ -6,7 +6,8 @@ let(:logger) { double("logger") } let(:events) { 7.times.map { LogStash::Event.new }} let(:plugin_args) { {"id" => "foo", "arg1" => "val1"} } - let(:metric) { LogStash::Instrument::NullMetric.new } + let(:collector) { [] } + let(:metric) { LogStash::Instrument::NamespacedNullMetric.new(collector, :null) } subject { described_class.new(logger, out_klass, metric, ::LogStash::OutputDelegatorStrategyRegistry.instance, plugin_args) } diff --git a/logstash-core/spec/logstash/plugin_spec.rb b/logstash-core/spec/logstash/plugin_spec.rb index 9747d463886..6ef3398b879 100644 --- a/logstash-core/spec/logstash/plugin_spec.rb +++ b/logstash-core/spec/logstash/plugin_spec.rb @@ -296,7 +296,7 @@ def register end it "should use a `NullMetric`" do - expect(subject.metric).to be_kind_of(LogStash::Instrument::NullMetric) + expect(subject.metric).to be_kind_of(LogStash::Instrument::NamespacedNullMetric) end end @@ -308,7 +308,7 @@ def register end it "should use a `NullMetric`" do - expect(subject.metric).to be_kind_of(LogStash::Instrument::NullMetric) + expect(subject.metric).to be_kind_of(LogStash::Instrument::NamespacedNullMetric) end end end @@ -338,7 +338,7 @@ def register end it "should use a `NullMetric`" do - expect(subject.metric).to be_kind_of(LogStash::Instrument::NullMetric) + expect(subject.metric).to be_kind_of(LogStash::Instrument::NamespacedNullMetric) end end end diff --git a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb index 4290a6228ae..d7b403ed0b0 100644 --- a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb +++ b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb @@ -88,8 +88,8 @@ def poll(*) shift(); end context "when writing to the queue" do before :each do - read_client.set_events_metric(LogStash::Instrument::NullMetric.new) - read_client.set_pipeline_metric(LogStash::Instrument::NullMetric.new) + read_client.set_events_metric(LogStash::Instrument::NamespacedNullMetric.new([], :null)) + read_client.set_pipeline_metric(LogStash::Instrument::NamespacedNullMetric.new([], :null)) end it "appends batches to the queue" do From 683bbd72edb19570e5e8a2197a81e76cb5e2446e Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 11 Oct 2016 13:22:13 -0700 Subject: [PATCH 422/632] Update parsing logs with logstash Fixes #6032 --- docs/static/advanced-pipeline.asciidoc | 532 ++++++++++++++++++------- 1 file changed, 390 insertions(+), 142 deletions(-) diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index 87da828002d..9d973f72d8f 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -4,14 +4,72 @@ In <>, you created a basic Logstash pipeline to test your Logstash setup. In the real world, a Logstash pipeline is a bit more complex: it typically has one or more input, filter, and output plugins. -In this section, you create a Logstash pipeline that takes Apache web logs as input, parses those +In this section, you create a Logstash pipeline that uses Filebeat to take Apache web logs as input, parses those logs to create specific, named fields from the logs, and writes the parsed data to an Elasticsearch cluster. Rather than defining the pipeline configuration at the command line, you'll define the pipeline in a config file. -The following text represents the skeleton of a configuration pipeline: +To get started, go https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz[here] to +download the sample data set used in this example. Unpack the file. + + +[[configuring-filebeat]] +==== Configuring Filebeat to Send Log Lines to Logstash + +Before you create the Logstash pipeline, you'll configure Filebeat to send log lines to Logstash. https://github.com/elastic/beats/tree/master/filebeat[Filebeat] is a lightweight, resource-friendly tool that +collects logs from files on the server and forwards these logs to your Logstash instance for processing. Filebeat is +designed for reliability and low latency. Filebeat uses the computing resources of the machine hosting the source data, +and the {logstash}plugins-inputs-beats.html[`Beats input`] plugin minimizes the +resource demands on the Logstash instance. + +NOTE: In a typical use case, Filebeat runs on a separate machine from the machine running your +Logstash instance. For the purposes of this tutorial, Logstash and Filebeat are running on the +same machine. + +The default Logstash installation includes the {logstash}plugins-inputs-beats.html[`Beats input`] plugin. To install +Filebeat on your data source machine, download the appropriate package from the Filebeat https://www.elastic.co/downloads/beats/filebeat[product page]. You can also refer to +{filebeat}filebeat-getting-started.html[Getting Started with Filebeat] in the Beats documentation for additional +installation instructions. + +After installing Filebeat, you need to configure it. Open the `filebeat.yml` file located in your Filebeat installation +directory, and replace the contents with the following lines. Make sure `paths` points to the example Apache log file, +`logstash-tutorial.log`, that you downloaded earlier: + +[source,yaml] +-------------------------------------------------------------------------------- +filebeat.prospectors: +- input_type: log + paths: + - /path/to/file/logstash-tutorial.log <1> +output.logstash: + hosts: ["localhost:5043"] +-------------------------------------------------------------------------------- + +<1> Absolute path to the file or files that Filebeat processes. + +Save your changes. + +To keep the configuration simple, you won't specify TLS/SSL settings as you would in a real world +scenario. + +At the data source machine, run Filebeat with the following command: [source,shell] -------------------------------------------------------------------------------- +sudo ./filebeat -e -c filebeat.yml -d "publish" +-------------------------------------------------------------------------------- + +Filebeat will attempt to connect on port 5403. Until Logstash starts with an active Beats plugin, there +won’t be any answer on that port, so any messages you see regarding failure to connect on that port are normal for now. + +==== Configuring Logstash for Filebeat Input + +Next, you create a Logstash configuration pipeline that uses the Beats input plugin to receive +events from Beats. + +The following text represents the skeleton of a configuration pipeline: + +[source,json] +-------------------------------------------------------------------------------- # The # character at the beginning of a line indicates a comment. Use # comments to describe your configuration. input { @@ -28,44 +86,98 @@ output { This skeleton is non-functional, because the input and output sections don’t have any valid options defined. To get started, copy and paste the skeleton configuration pipeline into a file named `first-pipeline.conf` in your home -Logstash directory. Then go https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz[here] to -download the sample data set used in this example. Unpack the file. +Logstash directory. -[float] -[[configuring-file-input]] -==== Configuring Logstash for File Input +Next, configure your Logstash instance to use the Beats input plugin by adding the following lines to the `input` section +of the `first-pipeline.conf` file: -NOTE: This example uses the file input plugin for convenience. To tail files in the real world, you'll use -Filebeat to ship log events to Logstash. You learn how to <> later -when you build a more sophisticated pipeline. +[source,json] +-------------------------------------------------------------------------------- + beats { + port => "5043" + } +-------------------------------------------------------------------------------- + +You'll configure Logstash to write to Elasticsearch later. For now, you can add the following line +to the `output` section so that the output is printed to stdout when you run Logstash: -To begin your Logstash pipeline, configure the Logstash instance to read from a file by using the -{logstash}plugins-inputs-file.html[`file`] input plugin. +[source,json] +-------------------------------------------------------------------------------- + stdout { codec => rubydebug } +-------------------------------------------------------------------------------- -Edit the `first-pipeline.conf` file and replace the entire `input` section with the following text: +When you're done, the contents of `first-pipeline.conf` should look like this: [source,json] -------------------------------------------------------------------------------- input { - file { - path => "/path/to/file/*.log" - start_position => beginning <1> - ignore_older => 0 <2> + beats { + port => "5043" } } +# The filter part of this file is commented out to indicate that it is +# optional. +# filter { +# +# } +output { + stdout { codec => rubydebug } +} -------------------------------------------------------------------------------- -<1> The default behavior of the file input plugin is to monitor a file for new information, in a manner similar to the -UNIX `tail -f` command. To change this default behavior and process the entire file, we need to specify the position -where Logstash starts processing the file. -<2> The default behavior of the file input plugin is to ignore files whose last modification is greater than 86400s. To change this default behavior and process the tutorial file (which is probably much older than a day), we need to configure Logstash so that it does not ignore old files. +To verify your configuration, run the following command: + +[source,shell] +-------------------------------------------------------------------------------- +bin/logstash -f first-pipeline.conf --config.test_and_exit +-------------------------------------------------------------------------------- + +The `--config.test_and_exit` option parses your configuration file and reports any errors. + +If the configuration file passes the configuration test, start Logstash with the following command: + +[source,shell] +-------------------------------------------------------------------------------- +bin/logstash -f first-pipeline.conf --config.reload.automatic +-------------------------------------------------------------------------------- + +The `--config.reload.automatic` option enables automatic config reloading so that you don't have to stop and restart Logstash +every time you modify the configuration file. + +If your pipeline is working correctly, you should see a series of events like the following written to the console: + +[source,json] +-------------------------------------------------------------------------------- +{ + "@timestamp" => 2016-10-11T20:54:06.733Z, + "offset" => 325, + "@version" => "1", + "beat" => { + "hostname" => "My-MacBook-Pro.local", + "name" => "My-MacBook-Pro.local" + }, + "input_type" => "log", + "host" => "My-MacBook-Pro.local", + "source" => "/path/to/file/logstash-tutorial.log", + "message" => "83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] \"GET /presentations/logstash-monitorama-2013/images/kibana-search.png HTTP/1.1\" 200 203023 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", + "type" => "log", + "tags" => [ + [0] "beats_input_codec_plain_applied" + ] +} +... + +-------------------------------------------------------------------------------- -Replace `/path/to/file` with the absolute path to the location of `logstash-tutorial.log` in your file system. [float] [[configuring-grok-filter]] ==== Parsing Web Logs with the Grok Filter Plugin +Now you have a working pipeline that reads log lines from Filebeat. However you'll notice that the format of the log messages +is not ideal. You want to parse the log messages to create specific, named fields from the logs. +To do this, you'll use the `grok` filter plugin. + The {logstash}plugins-filters-grok.html[`grok`] filter plugin is one of several plugins that are available by default in Logstash. For details on how to manage Logstash plugins, see the <> for the plugin manager. @@ -110,25 +222,82 @@ filter { } -------------------------------------------------------------------------------- -After processing the log file with the grok pattern, the sample line will have the following JSON representation: +When you're done, the contents of `first-pipeline.conf` should look like this: + +[source,json] +-------------------------------------------------------------------------------- +input { + beats { + port => "5043" + } +} +filter { + grok { + match => { "message" => "%{COMBINEDAPACHELOG}"} + } +} +output { + stdout { codec => rubydebug } +} +-------------------------------------------------------------------------------- + +Save your changes. Because you've enabled automatic config reloading, you don't have to restart Logstash to +pick up your changes. However, you do need to force Filebeat to read the log file from scratch. To do this, +go to the terminal window where Filebeat is running and press Ctrl+C to shut down Filebeat. Then delete the +Filebeat registry file. For example, run: + +[source,shell] +-------------------------------------------------------------------------------- +sudo rm data/registry +-------------------------------------------------------------------------------- + +Since Filebeat stores the state of each file it harvests in the registry, deleting the registry file forces +Filebeat to read all the files it's harvesting from scratch. + +Next, restart Filebeat with the following command: + +[source,shell] +-------------------------------------------------------------------------------- +sudo ./filebeat -e -c filebeat.yml -d "publish" +-------------------------------------------------------------------------------- + +After processing the log file with the grok pattern, the events will have the following JSON representation: [source,json] -------------------------------------------------------------------------------- { -"clientip" : "83.149.9.216", -"ident" : , -"auth" : , -"timestamp" : "04/Jan/2015:05:13:42 +0000", -"verb" : "GET", -"request" : "/presentations/logstash-monitorama-2013/images/kibana-search.png", -"httpversion" : "HTTP/1.1", -"response" : "200", -"bytes" : "203023", -"referrer" : "http://semicomplete.com/presentations/logstash-monitorama-2013/", -"agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" + "request" => "/presentations/logstash-monitorama-2013/images/kibana-search.png", + "agent" => "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", + "offset" => 325, + "auth" => "-", + "ident" => "-", + "input_type" => "log", + "verb" => "GET", + "source" => "/path/to/file/logstash-tutorial.log", + "message" => "83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] \"GET /presentations/logstash-monitorama-2013/images/kibana-search.png HTTP/1.1\" 200 203023 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", + "type" => "log", + "tags" => [ + [0] "beats_input_codec_plain_applied" + ], + "referrer" => "\"http://semicomplete.com/presentations/logstash-monitorama-2013/\"", + "@timestamp" => 2016-10-11T21:04:36.167Z, + "response" => "200", + "bytes" => "203023", + "clientip" => "83.149.9.216", + "@version" => "1", + "beat" => { + "hostname" => "My-MacBook-Pro.local", + "name" => "My-MacBook-Pro.local" + }, + "host" => "My-MacBook-Pro.local", + "httpversion" => "1.1", + "timestamp" => "04/Jan/2015:05:13:42 +0000" } -------------------------------------------------------------------------------- +Notice that the event includes the original message, but the log message is also broken down into specific fields. + + [float] [[configuring-geoip-plugin]] ==== Enhancing Your Data with the Geoip Filter Plugin @@ -150,11 +319,17 @@ of the `first-pipeline.conf` file: The `geoip` plugin configuration requires you to specify the name of the source field that contains the IP address to look up. In this example, the `clientip` field contains the IP address. Since filters are evaluated in sequence, make sure that the `geoip` section is after the `grok` section of -the configuration file and that both the `grok` and `geoip` sections are nested within the `filter` section -like this: +the configuration file and that both the `grok` and `geoip` sections are nested within the `filter` section. + +When you're done, the contents of `first-pipeline.conf` should look like this: [source,json] -------------------------------------------------------------------------------- +input { + beats { + port => "5043" + } +} filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}"} @@ -162,7 +337,47 @@ like this: geoip { source => "clientip" } - } +} +output { + stdout { codec => rubydebug } +} +-------------------------------------------------------------------------------- + +Save your changes. To force Filebeat to read the log file from scratch, as you did earlier, shut down Filebeat (press Ctrl+C), +delete the registry file, and then restart Filebeat with the following command: + +[source,shell] +-------------------------------------------------------------------------------- +sudo ./filebeat -e -c filebeat.yml -d "publish" +-------------------------------------------------------------------------------- + +Notice that the event now contains geographic location information: + +[source,json] +-------------------------------------------------------------------------------- +{ + "request" => "/presentations/logstash-monitorama-2013/images/kibana-search.png", + "agent" => "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", + "geoip" => { + "timezone" => "Europe/Moscow", + "ip" => "83.149.9.216", + "latitude" => 55.7522, + "continent_code" => "EU", + "city_name" => "Moscow", + "country_code2" => "RU", + "country_name" => "Russia", + "dma_code" => nil, + "country_code3" => "RU", + "region_name" => "Moscow", + "location" => [ + [0] 37.6156, + [1] 55.7522 + ], + "postal_code" => "101194", + "longitude" => 37.6156, + "region_code" => "MOW" + }, + ... -------------------------------------------------------------------------------- @@ -187,23 +402,17 @@ With this configuration, Logstash uses http protocol to connect to Elasticsearch Logstash and Elasticsearch are running on the same instance. You can specify a remote Elasticsearch instance by using the `hosts` configuration to specify something like `hosts => [ "es-machine:9092" ]`. -[float] -[[testing-initial-pipeline]] -===== Testing Your Initial Pipeline - At this point, your `first-pipeline.conf` file has input, filter, and output sections properly configured, and looks something like this: [source,json] -------------------------------------------------------------------------------- input { - file { - path => "/Users/myusername/tutorialdata/*.log" - start_position => beginning - ignore_older => 0 + beats { + port => "5043" } } -filter { + filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}"} } @@ -218,36 +427,39 @@ output { } -------------------------------------------------------------------------------- -To verify your configuration, run the following command: +Save your changes. To force Filebeat to read the log file from scratch, as you did earlier, shut down Filebeat (press Ctrl+C), +delete the registry file, and then restart Filebeat with the following command: [source,shell] -------------------------------------------------------------------------------- -bin/logstash -f first-pipeline.conf --config.test_and_exit +sudo ./filebeat -e -c filebeat.yml -d "publish" -------------------------------------------------------------------------------- -The `--config.test_and_exit` option parses your configuration file and reports any errors. When the configuration file -passes the configuration test, start Logstash with the following command: +[float] +[[testing-initial-pipeline]] +===== Testing Your Pipeline -[source,shell] --------------------------------------------------------------------------------- -bin/logstash -f first-pipeline.conf --------------------------------------------------------------------------------- +Now that the Logstash pipeline is configured to index the data into an +Elasticsearch cluster, you can query Elasticsearch. -Try a test query to Elasticsearch based on the fields created by the `grok` filter plugin: +Try a test query to Elasticsearch based on the fields created by the `grok` filter plugin. +Replace $DATE with the current date, in YYYY.MM.DD format: [source,shell] -------------------------------------------------------------------------------- curl -XGET 'localhost:9200/logstash-$DATE/_search?pretty&q=response=200' -------------------------------------------------------------------------------- -Replace $DATE with the current date, in YYYY.MM.DD format. +NOTE: The date used in the index name is based on UTC, not the timezone where Logstash is running. +If the query returns `index_not_found_exception`, make sure that `logstash-$DATE` reflects the actual +name of the index. To see a list of available indexes, use this query: `curl 'localhost:9200/_cat/indices?v'`. -We get multiple hits back. For example: +You should get multiple hits back. For example: [source,json] -------------------------------------------------------------------------------- { - "took" : 4, + "took" : 21, "timed_out" : false, "_shards" : { "total" : 5, @@ -256,64 +468,80 @@ We get multiple hits back. For example: }, "hits" : { "total" : 98, - "max_score" : 4.833623, - "hits" : [ { - "_index" : "logstash-2016.05.27", - "_type" : "logs", - "_id" : "AVT0nBiGe_tzyi1erg7-", - "_score" : 4.833623, - "_source" : { - "request" : "/presentations/logstash-monitorama-2013/images/frontend-response-codes.png", - "agent" : "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", - "geoip" : { - "timezone" : "Europe/Moscow", - "ip" : "83.149.9.216", - "latitude" : 55.7522, - "continent_code" : "EU", - "city_name" : "Moscow", - "country_code2" : "RU", - "country_name" : "Russia", - "dma_code" : null, - "country_code3" : "RU", - "region_name" : "Moscow", - "location" : [ 37.6156, 55.7522 ], - "postal_code" : "101194", - "longitude" : 37.6156, - "region_code" : "MOW" - }, - "auth" : "-", - "ident" : "-", - "verb" : "GET", - "message" : "83.149.9.216 - - [04/Jan/2015:05:13:45 +0000] \"GET /presentations/logstash-monitorama-2013/images/frontend-response-codes.png HTTP/1.1\" 200 52878 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", - "referrer" : "\"http://semicomplete.com/presentations/logstash-monitorama-2013/\"", - "@timestamp" : "2016-05-27T23:45:50.828Z", - "response" : "200", - "bytes" : "52878", - "clientip" : "83.149.9.216", - "@version" : "1", - "host" : "myexamplehost", - "httpversion" : "1.1", - "timestamp" : "04/Jan/2015:05:13:45 +0000" + "max_score" : 3.745223, + "hits" : [ + { + "_index" : "logstash-2016.10.11", + "_type" : "log", + "_id" : "AVe14gMiYMkU36o_eVsA", + "_score" : 3.745223, + "_source" : { + "request" : "/presentations/logstash-monitorama-2013/images/frontend-response-codes.png", + "agent" : "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", + "geoip" : { + "timezone" : "Europe/Moscow", + "ip" : "83.149.9.216", + "latitude" : 55.7522, + "continent_code" : "EU", + "city_name" : "Moscow", + "country_code2" : "RU", + "country_name" : "Russia", + "dma_code" : null, + "country_code3" : "RU", + "region_name" : "Moscow", + "location" : [ + 37.6156, + 55.7522 + ], + "postal_code" : "101194", + "longitude" : 37.6156, + "region_code" : "MOW" + }, + "offset" : 2932, + "auth" : "-", + "ident" : "-", + "input_type" : "log", + "verb" : "GET", + "source" : "/path/to/file/logstash-tutorial.log", + "message" : "83.149.9.216 - - [04/Jan/2015:05:13:45 +0000] \"GET /presentations/logstash-monitorama-2013/images/frontend-response-codes.png HTTP/1.1\" 200 52878 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", + "type" : "log", + "tags" : [ + "beats_input_codec_plain_applied" + ], + "referrer" : "\"http://semicomplete.com/presentations/logstash-monitorama-2013/\"", + "@timestamp" : "2016-10-11T22:34:25.317Z", + "response" : "200", + "bytes" : "52878", + "clientip" : "83.149.9.216", + "@version" : "1", + "beat" : { + "hostname" : "My-MacBook-Pro.local", + "name" : "My-MacBook-Pro.local" + }, + "host" : "My-MacBook-Pro.local", + "httpversion" : "1.1", + "timestamp" : "04/Jan/2015:05:13:45 +0000" + } } }, ... + -------------------------------------------------------------------------------- -Try another search for the geographic information derived from the IP address: +Try another search for the geographic information derived from the IP address. +Replace $DATE with the current date, in YYYY.MM.DD format: [source,shell] -------------------------------------------------------------------------------- curl -XGET 'localhost:9200/logstash-$DATE/_search?pretty&q=geoip.city_name=Buffalo' -------------------------------------------------------------------------------- -Replace $DATE with the current date, in YYYY.MM.DD format. - A few log entries come from Buffalo, so the query produces the following response: [source,json] -------------------------------------------------------------------------------- { - "took" : 2, + "took" : 3, "timed_out" : false, "_shards" : { "total" : 5, @@ -322,48 +550,68 @@ A few log entries come from Buffalo, so the query produces the following respons }, "hits" : { "total" : 3, - "max_score" : 1.0520113, - "hits" : [ { - "_index" : "logstash-2016.05.27", - "_type" : "logs", - "_id" : "AVT0nBiHe_tzyi1erg9T", - "_score" : 1.0520113, - "_source" : { - "request" : "/blog/geekery/solving-good-or-bad-problems.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+semicomplete%2Fmain+%28semicomplete.com+-+Jordan+Sissel%29", - "agent" : "\"Tiny Tiny RSS/1.11 (http://tt-rss.org/)\"", - "geoip" : { - "timezone" : "America/New_York", - "ip" : "198.46.149.143", - "latitude" : 42.9864, - "continent_code" : "NA", - "city_name" : "Buffalo", - "country_code2" : "US", - "country_name" : "United States", - "dma_code" : 514, - "country_code3" : "US", - "region_name" : "New York", - "location" : [ -78.7279, 42.9864 ], - "postal_code" : "14221", - "longitude" : -78.7279, - "region_code" : "NY" - }, - "auth" : "-", - "ident" : "-", - "verb" : "GET", - "message" : "198.46.149.143 - - [04/Jan/2015:05:29:13 +0000] \"GET /blog/geekery/solving-good-or-bad-problems.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+semicomplete%2Fmain+%28semicomplete.com+-+Jordan+Sissel%29 HTTP/1.1\" 200 10756 \"-\" \"Tiny Tiny RSS/1.11 (http://tt-rss.org/)\"", - "referrer" : "\"-\"", - "@timestamp" : "2016-05-27T23:45:50.836Z", - "response" : "200", - "bytes" : "10756", - "clientip" : "198.46.149.143", - "@version" : "1", - "host" : "myexamplehost", - "httpversion" : "1.1", - "timestamp" : "04/Jan/2015:05:29:13 +0000" - } - }, - ... --------------------------------------------------------------------------------- + "max_score" : 2.6390574, + "hits" : [ + { + "_index" : "logstash-2016.10.11", + "_type" : "log", + "_id" : "AVe14gMjYMkU36o_eVtO", + "_score" : 2.6390574, + "_source" : { + "request" : "/?flav=rss20", + "agent" : "\"-\"", + "geoip" : { + "timezone" : "America/New_York", + "ip" : "108.174.55.234", + "latitude" : 42.9864, + "continent_code" : "NA", + "city_name" : "Buffalo", + "country_code2" : "US", + "country_name" : "United States", + "dma_code" : 514, + "country_code3" : "US", + "region_name" : "New York", + "location" : [ + -78.7279, + 42.9864 + ], + "postal_code" : "14221", + "longitude" : -78.7279, + "region_code" : "NY" + }, + "offset" : 21471, + "auth" : "-", + "ident" : "-", + "input_type" : "log", + "verb" : "GET", + "source" : "/path/to/file/logstash-tutorial.log", + "message" : "108.174.55.234 - - [04/Jan/2015:05:27:45 +0000] \"GET /?flav=rss20 HTTP/1.1\" 200 29941 \"-\" \"-\"", + "type" : "log", + "tags" : [ + "beats_input_codec_plain_applied" + ], + "referrer" : "\"-\"", + "@timestamp" : "2016-10-11T22:34:25.318Z", + "response" : "200", + "bytes" : "29941", + "clientip" : "108.174.55.234", + "@version" : "1", + "beat" : { + "hostname" : "My-MacBook-Pro.local", + "name" : "My-MacBook-Pro.local" + }, + "host" : "My-MacBook-Pro.local", + "httpversion" : "1.1", + "timestamp" : "04/Jan/2015:05:27:45 +0000" + } + }, + ... + +-------------------------------------------------------------------------------- + +You've successfully created a pipeline that uses Filebeat to take Apache web logs as input, parses those logs to +create specific, named fields from the logs, and writes the parsed data to an Elasticsearch cluster. Next, you +learn how to create a pipeline that uses multiple input and output plugins. [[multiple-input-output-plugins]] === Stitching Together Multiple Input and Output Plugins From fb10c764efe1361e1cc06261ecce95bb26f732b2 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 24 Oct 2016 09:09:38 -0700 Subject: [PATCH 423/632] Fix issues from review Fixes #6032 --- docs/static/advanced-pipeline.asciidoc | 42 ++++++++++---------- docs/static/images/kibana-filebeat-data.png | Bin 0 -> 183578 bytes 2 files changed, 22 insertions(+), 20 deletions(-) create mode 100644 docs/static/images/kibana-filebeat-data.png diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index 9d973f72d8f..5f43c702fff 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -15,18 +15,22 @@ download the sample data set used in this example. Unpack the file. [[configuring-filebeat]] ==== Configuring Filebeat to Send Log Lines to Logstash -Before you create the Logstash pipeline, you'll configure Filebeat to send log lines to Logstash. https://github.com/elastic/beats/tree/master/filebeat[Filebeat] is a lightweight, resource-friendly tool that -collects logs from files on the server and forwards these logs to your Logstash instance for processing. Filebeat is -designed for reliability and low latency. Filebeat uses the computing resources of the machine hosting the source data, -and the {logstash}plugins-inputs-beats.html[`Beats input`] plugin minimizes the -resource demands on the Logstash instance. +Before you create the Logstash pipeline, you'll configure Filebeat to send log lines to Logstash. +The https://github.com/elastic/beats/tree/master/filebeat[Filebeat] client is a lightweight, resource-friendly tool +that collects logs from files on the server and forwards these logs to your Logstash instance for processing. +Filebeat is designed for reliability and low latency. Filebeat has a light resource footprint on the host machine, +and the {logstash}plugins-inputs-beats.html[`Beats input`] plugin minimizes the resource demands on the Logstash +instance. NOTE: In a typical use case, Filebeat runs on a separate machine from the machine running your Logstash instance. For the purposes of this tutorial, Logstash and Filebeat are running on the same machine. -The default Logstash installation includes the {logstash}plugins-inputs-beats.html[`Beats input`] plugin. To install -Filebeat on your data source machine, download the appropriate package from the Filebeat https://www.elastic.co/downloads/beats/filebeat[product page]. You can also refer to +The default Logstash installation includes the {logstash}plugins-inputs-beats.html[`Beats input`] plugin. The Beats +input plugin enables Logstash to receive events from the Elastic Beats framework, which means that any Beat written +to work with the Beats framework, such as Packetbeat and Metricbeat, can also send event data to Logstash. + +To install Filebeat on your data source machine, download the appropriate package from the Filebeat https://www.elastic.co/downloads/beats/filebeat[product page]. You can also refer to {filebeat}filebeat-getting-started.html[Getting Started with Filebeat] in the Beats documentation for additional installation instructions. @@ -609,6 +613,13 @@ A few log entries come from Buffalo, so the query produces the following respons -------------------------------------------------------------------------------- +If you are using Kibana to visualize your data, you can also explore the Filebeat data in Kibana: + +image::static/images/kibana-filebeat-data.png[Discovering Filebeat data in Kibana] + +See the {filebeat}filebeat-getting-started.html[Filebeat getting started docs] for info about loading the Kibana +index pattern for Filebeat. + You've successfully created a pipeline that uses Filebeat to take Apache web logs as input, parses those logs to create specific, named fields from the logs, and writes the parsed data to an Elasticsearch cluster. Next, you learn how to create a pipeline that uses multiple input and output plugins. @@ -659,20 +670,11 @@ placeholder values shown here: [float] [[configuring-lsf]] -==== The Filebeat Client - -The https://github.com/elastic/beats/tree/master/filebeat[Filebeat] client is a lightweight, resource-friendly tool that -collects logs from files on the server and forwards these logs to your Logstash instance for processing. Filebeat is -designed for reliability and low latency. Filebeat uses the computing resources of the machine hosting the source data, -and the {logstash}plugins-inputs-beats.html[`Beats input`] plugin minimizes the -resource demands on the Logstash instance. - -NOTE: In a typical use case, Filebeat runs on a separate machine from the machine running your -Logstash instance. For the purposes of this tutorial, Logstash and Filebeat are running on the -same machine. +==== Configuring Filebeat to Send Log Lines to Logstash -The default Logstash installation includes the {logstash}plugins-inputs-beats.html[`Beats input`] plugin. To install -Filebeat on your data source machine, download the appropriate package from the Filebeat https://www.elastic.co/downloads/beats/filebeat[product page]. +As you learned earlier in <>, the https://github.com/elastic/beats/tree/master/filebeat[Filebeat] +client is a lightweight, resource-friendly tool that collects logs from files on the server and forwards these logs to your +Logstash instance for processing. After installing Filebeat, you need to configure it. Open the `filebeat.yml` file located in your Filebeat installation directory, and replace the contents with the following lines. Make sure `paths` points to your syslog: diff --git a/docs/static/images/kibana-filebeat-data.png b/docs/static/images/kibana-filebeat-data.png new file mode 100644 index 0000000000000000000000000000000000000000..b3c2d62a068522b857563dd9395cb2a5ce634d6b GIT binary patch literal 183578 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 nD&fYN?P6F$K)q#6fX{ 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 YZ$-Ib7sYcEPk Date: Tue, 25 Oct 2016 12:41:37 -0400 Subject: [PATCH 424/632] Remove reference to all-plugins Fixes #6116 --- docs/static/offline-plugins.asciidoc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/static/offline-plugins.asciidoc b/docs/static/offline-plugins.asciidoc index e099faec8a8..38d1364a1bc 100644 --- a/docs/static/offline-plugins.asciidoc +++ b/docs/static/offline-plugins.asciidoc @@ -10,10 +10,6 @@ server. This staging machine downloads and packages the files used for offline i See the <> section for information on setting up your own private Rubygems server. -Users who can work with a larger Logstash artifact size can use the *Logstash (All Plugins)* download link from the -https://www.elastic.co/downloads/logstash[Logstash product page] to download Logstash bundled with the latest version of -all available plugins. You can distribute this bundle to all nodes without further plugin staging. - [float] === Building the Offline Package From 3722b8c0611859261fefde2a957667b57153c2cd Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 25 Oct 2016 18:39:56 -0400 Subject: [PATCH 425/632] Add removed plugins to breaking changes Fixes #6098 Fixes #6118 --- docs/static/breaking-changes.asciidoc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 683a67efe65..b3c48c6bfe8 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -32,6 +32,30 @@ to adhere to the yml dot notation to be used in the settings file. Short form op other components of the Elastic stack are installed on the same instance. Also, this provides a foundation for future change which will allow Elastic Stack packs to be installed via this script. +* The Logstash All Plugins download option has been removed. For users previously using this option as a convenience for +offline plugin management purposes (air-gapped environments), please see the <> documentation page. + +* There are 18 plugins removed from 5.0 default bundle. These plugins can still be installed manually for use. +** logstash-codec-oldlogstashjson +** logstash-filter-anonymize +** logstash-filter-checksum +** logstash-filter-multiline +** logstash-input-elasticsearch +** logstash-input-eventlog +** logstash-input-log4j +** logstash-input-zeromq +** logstash-output-email +** logstash-output-exec +** logstash-output-ganglia +** logstash-output-gelf +** logstash-output-hipchat +** logstash-output-juggernaut +** logstash-output-lumberjack +** logstash-output-nagios_nsca +** logstash-output-opentsdb +** logstash-output-zeromq + + [float] === Breaking Changes in Plugins From 9bc68f9b8f0c8205da41b89d04755aa61fe589d8 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Fri, 21 Oct 2016 21:00:49 -0700 Subject: [PATCH 426/632] Update old references to verbose or debug modes and replace with --log-level=verbose and --log-level=debug Fixes #6095 Fixes #6104 --- logstash-core/locales/en.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 144f579d3b5..8ade56fff1e 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -215,7 +215,7 @@ en: Specifying once will show 'informational' logs. Specifying twice will show 'debug' logs. This flag is deprecated. You should use - --verbose or --debug instead. + --log-level=info or --log-level=debug instead. version: |+ Emit the version of logstash and its friends, then exit. @@ -253,7 +253,7 @@ en: agent: |+ Specify an alternate agent plugin name. config_debug: |+ - Print the compiled config ruby code out as a debug log (you must also have --debug enabled). + Print the compiled config ruby code out as a debug log (you must also have --log.level=debug enabled). WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result in plaintext passwords appearing in your logs! log_format: |+ @@ -264,7 +264,7 @@ en: DEPRECATED: use --log.level=debug instead. verbose: |+ Set the log level to info. - DEPRECATED: use --log.level=verbose instead. + DEPRECATED: use --log.level=info instead. quiet: |+ Set the log level to info. DEPRECATED: use --log.level=quiet instead. From 74f73fe3025c53b4277e89673f8a037ada027ff9 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 25 Oct 2016 22:30:44 -0400 Subject: [PATCH 427/632] ES input was not removed I accidentally added logstash-input-elasticsearch in this list because in my RC testing I had manually removed it using bin/logstash-plugin remove Fixes #6119 --- docs/static/breaking-changes.asciidoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index b3c48c6bfe8..acccc312215 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -35,12 +35,11 @@ for future change which will allow Elastic Stack packs to be installed via this * The Logstash All Plugins download option has been removed. For users previously using this option as a convenience for offline plugin management purposes (air-gapped environments), please see the <> documentation page. -* There are 18 plugins removed from 5.0 default bundle. These plugins can still be installed manually for use. +* There are 17 plugins removed from 5.0 default bundle. These plugins can still be installed manually for use. ** logstash-codec-oldlogstashjson ** logstash-filter-anonymize ** logstash-filter-checksum ** logstash-filter-multiline -** logstash-input-elasticsearch ** logstash-input-eventlog ** logstash-input-log4j ** logstash-input-zeromq From 5442d06c1be4ff7c150fef9a66409656062a84ad Mon Sep 17 00:00:00 2001 From: Chris Earle Date: Wed, 26 Oct 2016 08:58:43 -0400 Subject: [PATCH 428/632] Update Breaking Changes to provide extra details (#6100) * Update Breaking Changes to provide extra details This adds extra details to the Breaking Changes document so that users can hopefully better understand what is necessary to change in order to get around breaking changes. --- docs/static/breaking-changes.asciidoc | 258 +++++++++++++++++++------- docs/static/upgrading.asciidoc | 35 ++++ 2 files changed, 231 insertions(+), 62 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index acccc312215..85afb2a2259 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -1,116 +1,250 @@ [[breaking-changes]] == Breaking changes -This section discusses the changes that you need to be aware of when migrating your application to Logstash {version}. +This section discusses the changes that you need to be aware of when migrating your application to Logstash 5.0 from the previous major release of Logstash (2.x). [float] === Changes in Logstash Core -* Logstash 5.0.0 requires Java 8 +These changes can impact any instance of Logstash and are plugin agnostic, but only if you are using the features that are impacted. + +Application Settings:: -* **Application Settings:** Introduced a new way to configure application settings for Logstash through a settings.yml file. This file -is typically located in `LS_HOME/config`, or `/etc/logstash` when installed via packages. + [IMPORTANT] -Logstash will not be able to start without this file, so please make sure to -pass in `--path.settings /etc/logstash` if you are starting Logstash manually +Logstash 5.0 introduces a new way to <> for Logstash through a +`settings.yml` file. + +This file is typically located in `${LS_HOME}/config`, or `/etc/logstash` when installed via packages. Logstash will not be +able to start without this file, so please make sure to pass in `--path.settings` if you are starting Logstash manually after installing it via a package (RPM, DEB). -* **Release Packages:** When Logstash is installed via DEB, RPM packages, it uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries. -Previously it used to install in `/opt/logstash` directory. This change was done to make the user experience -consistent with other Elastic products. Full directory layout is described in <>. The source of release packages -has changed from `packages.elastic.co` to `artifacts.elastic.co`. For example, 5.x and all the patch releases in this series -will available at `https://artifacts.elastic.co/packages/5.x/apt` +[source,bash] +---------------------------------- +bin/logstash --path.settings /path/to/settings.yml +---------------------------------- + +Release Packages:: -* **Default Logging Level:** Changed the default log severity level to INFO instead of WARN to match Elasticsearch. Existing logs -(in core and plugins) were too noisy at INFO level, so we had to audit log messages and switch some of them to DEBUG -level. +When Logstash 5.0 is installed via DEB or RPM packages, it now uses `/usr/share/logstash` and `/var/lib/logstash` to +install binaries. Previously it used to install in `/opt/logstash` directory. This change was done to make the user experience consistent with other products in the Elastic Stack. -* **Command Line Interface:** Most of the long form <> have been renamed -to adhere to the yml dot notation to be used in the settings file. Short form options have not been changed. +[cols="3", options="header"] +|=== +| |DEB |RPM +|Logstash 2.x +|`/opt/logstash` +|`/opt/logstash` +|Logstash 5.0 +|`/user/share/logstash` +|`/var/lib/logstash` +|=== -* **Plugin Manager Renamed:** `bin/plugin` has been renamed to `bin/logstash-plugin`. This change was to mainly prevent `PATH` being polluted when -other components of the Elastic stack are installed on the same instance. Also, this provides a foundation +A complete directory layout is described in <>. This will likely impact any scripts that you may have written +to support installing or manipulating Logstash, such as via Puppet. + +Default Logging Level:: + +The default log severity level changed to `INFO` instead of `WARN` to match Elasticsearch. Existing logs +(in core and plugins) were too noisy at the `INFO` level, so we auditted our log messages and switched some of them to +`DEBUG` level. + +You can use the new `settings.yml` file to configure the `log.level` setting or continue to pass the new +`--log.level` command line flag. + +[source,bash] +---------------------------------- +bin/logstash --log.level warn +---------------------------------- + +Plugin Manager Renamed:: + +`bin/plugin` has been renamed to `bin/logstash-plugin`. This occurred in Logstash 2.3 and it was mainly prevent `PATH` being +polluted when other components of the Elastic Stack are installed on the same machine. Also, this provides a foundation for future change which will allow Elastic Stack packs to be installed via this script. -* The Logstash All Plugins download option has been removed. For users previously using this option as a convenience for +Logstash 5.0 also adds a `remove` option, which is an alias for the now-deprecated `uninstall` option. + +As with earlier releases, the updated script allows both online and offline plugin installation. For example, to install a +plugin named “my-plugin”, it’s as simple as running: + +[source,bash] +---------------------------------- +bin/logstash-plugin install my-plugin +---------------------------------- + +Similar to the package changes, this is likely to impact and scripts that have been written to follow Logstash +installations. + +Like earlier releases of Logstash, most plugins are bundled directly with Logstash, so no additional action is required +while upgrading from earlier Logstash releases. However, if you are attempting to install a non-bundled plugin, then make +sure that it supports Logstash 5.0 before upgrading! + +Logstash with All Plugins Download:: + +The Logstash All Plugins download option has been removed. For users previously using this option as a convenience for offline plugin management purposes (air-gapped environments), please see the <> documentation page. -* There are 17 plugins removed from 5.0 default bundle. These plugins can still be installed manually for use. -** logstash-codec-oldlogstashjson -** logstash-filter-anonymize -** logstash-filter-checksum -** logstash-filter-multiline -** logstash-input-eventlog -** logstash-input-log4j -** logstash-input-zeromq -** logstash-output-email -** logstash-output-exec -** logstash-output-ganglia -** logstash-output-gelf -** logstash-output-hipchat -** logstash-output-juggernaut -** logstash-output-lumberjack -** logstash-output-nagios_nsca -** logstash-output-opentsdb -** logstash-output-zeromq +There were 17 plugins removed from 5.0 default bundle. These plugins can still be installed manually for use: + +* logstash-codec-oldlogstashjson +* logstash-input-eventlog +* logstash-input-log4j +* logstash-input-zeromq +* logstash-filter-anonymize +* logstash-filter-checksum +* logstash-filter-multiline +* logstash-output-email +* logstash-output-exec +* logstash-output-ganglia +* logstash-output-gelf +* logstash-output-hipchat +* logstash-output-juggernaut +* logstash-output-lumberjack +* logstash-output-nagios_nsca +* logstash-output-opentsdb +* logstash-output-zeromq + +Command Line Interface:: + +Some CLI Options changed in Logstash 5.0. If you were using the “long form” of the <>, +then this will impact the way that you launch Logstash. They were changed to match the `settings.yml` format used to +simplify future setup, as well as behave in the same way as other products in the Elastic Stack. For example, here’s two +before-and-after examples. In Logstash 2.x, you may have run something: + +[source,bash] +---------------------------------- +bin/logstash --config my.conf --pipeline-workers 8 <1> +bin/logstash -f my.conf -w 8 <2> +---------------------------------- +1. Long form options `config` and `pipeline-workers` are used here. +2. Short form options `f` and `w` (aliases for the former` are used here. + +But, in Logstash 5.0, this becomes: +[source,bash] +---------------------------------- +bin/logstash --path.config my.conf --pipeline.workers 8 <1> +bin/logstash -f my.conf -w 8 <2> +---------------------------------- +1. Long form options are changed to reflect the new options. +2. Short form options are unchanged. + +NOTE: None of the short form options have changed! [float] === Breaking Changes in Plugins -* **Elasticsearch Output Index Template:** The index template for 5.0 has been changed to reflect https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_mapping_changes.html[Elasticsearch's mapping changes]. Most +Elasticsearch Output Index Template:: + +The index template for Elasticsearch 5.0 has been changed to reflect +https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_mapping_changes.html[Elasticsearch's mapping changes]. Most importantly, the subfield for string multi-fields has changed from `.raw` to `.keyword` to match Elasticsearch's default behavior. The impact of this change to various user groups is detailed below: -** New Logstash 5.0 and Elasticsearch 5.0 users - subfields use `.keyword` from the outset. In Kibana, you can use -`field.keyword` to perform aggregations. -** Existing users with custom templates - most of you won't be impacted because you use a custom template. -** Existing users with default template - Logstash does not force you to upgrade templates if one already exists. If you -intend to move to the new template and want to use `.keyword`, you'll have to reindex existing data. Elasticsearch's - {ref}docs-reindex.html[reindexing API] can help move your data from using `.raw` subfields to `.keyword`. +** New Logstash 5.0 and Elasticsearch 5.0 users: Multi-fields (often called sub-fields) use `.keyword` from the +outset. In Kibana, you can use `my_field.keyword` to perform aggregations against text-based fields, in the same way that it +used to be `my_field.raw`. +** Existing users with custom templates: Using a custom template means that you control the template completely, and our +template changes do not impact you. +** Existing users with default template: Logstash does not force you to upgrade templates if one already exists. If you +intend to move to the new template and want to use `.keyword`, you will most likely want to reindex existing data so that it +also uses the `.keyword` field, unless you are able to transition from `.raw` to `.keyword`. Elasticsearch's +{ref}docs-reindex.html[reindexing API] can help move your data from using `.raw` subfields to `.keyword`, thereby avoiding any +transition time. You _can_ use a custom template to get both `.raw` and `.keyword` so that you can wait until all `.raw` data +has stopped existing before transitioning to only using `.keyword`; this will waste some storage space and memory, but it does +help users to avoid having to relearn operations. + +Plugin Versions:: + +Logstash is unique amongst the Elastic Stack with respect to its plugins. Unlike Elasticsearch and Kibana, which both +require plugins to be targeted to a specific release, Logstash’s plugin ecosystem provides more flexibility so that it can +support outside ecosystems _within the same release_. Unfortunately, +that flexibility can cause issues when handling upgrades. + +Non-standard plugins must always be checked for compatibility, but some bundled plugins are upgraded in order to remain +compatible with the tools or frameworks that they use for communication. For example, the +<> and <> plugins serve as a primary example of +such compatibilty changes. The latest version of the Kafka plugins is only compatible with Kafka 0.10, but as the +compatibility matrices show: earlier plugin versions are required for earlier versions of Kafka (e.g., Kafka 0.9). + +Automatic upgrades generally lead to improved features and support, but network layer changes like those above may make part +of your architecture incompatible. You should always test your Logstash configurations in a test environment before +deploying to production, which would catch these kinds of issues. If you do face such an issue, then you should also check +the specific plugin’s page to see how to get a compatible, older plugin version if necessary. + +For example, if you upgrade to Logstash 5.0, but you want to run against Kafka 0.9, then you need to remove the +bundled plugin(s) that only work with Kafka 0.10 and replace them: + +[source,bash] +---------------------------------- +bin/logstash-plugin remove logstash-input-kafka +bin/logstash-plugin remove logstash-output-kafka +bin/logstash-plugin install --version 4.0.0 logstash-input-kafka +bin/logstash-plugin install --version 4.0.1 logstash-output-kafka +---------------------------------- + +The version numbers were found by checking the compatibility matrix for the individual plugins. -* **Kafka Input/Output Configuration Changes:** This release added support for the new 0.10 consumer/producer API which supports security features introduced by Kafka. -A few Configuration options were renamed to make it consistent with Kafka consumer and producer settings. -Also, this plugin version will not work with Kafka 0.8 broker. +File Input:: -Please see the following specific plugin documentation for new configuration options: +The <> `SinceDB` file is now saved at `/plugins/inputs/file` location, +where `path.data` is the path defined in the new `settings.yml` file. -* <> -* <> +[cols="2", options="header"] +|=== +| |Default `sincedb_path` +|Logstash 2.x +|`$HOME/.sincedb*` +|Logstash 5.0 +|`/plugins/inputs/file` +|=== -* **File Input:** SinceDB file is now saved in `/plugins/inputs/file` location, not user's home. If you have manually specified `sincedb_path` -configuration, this change will not affect you. If you are moving from 2.x to 5.x, and would like to use the existing SinceDB file, it -has to be copied over to `path.data` manually to use the save state. +If you have manually specified `sincedb_path` as part of the configuration, this change will not affect you. +If you are moving from Logstash 2.x to Logstash 5.0, and you would like to use the existing SinceDB file, +then it must be copied over to `path.data` manually to use the save state (or the path needs to be changed to point to it). [float] === Ruby Filter and Custom Plugin Developers -With the migration to the new <>, we have changed how you can access internal data compared to previous release. -The Event object no longer returns a reference to the data. Instead, it returns a copy. This might change how you do manipulation of -your data, especially when working with nested hashes. When working with nested hashes, it’s recommended that you -use the `fieldref` syntax instead of using multiple brackets. Also note that we have introduced new Getter/Setter APIs -for accessing information in the Event object. Refer <> for details. +With the migration to the new <>, we have changed how you can access internal data compared to previous release. +The `event` object no longer returns a reference to the data. Instead, it returns a copy. This might change how you perform +manipulation of your data, especially when working with nested hashes. When working with nested hashes, it’s recommended that +you use the <> instead of using multiple square brackets. + +As part of this change, Logstash has introduced new Getter/Setter APIs for accessing information in the `event` object. **Examples:** +Prior to Logstash 5.0, you may have used Ruby filters like so: + [source, js] ---------------------------------- filter { ruby { - codec => "event.set('[product][price]', 10)" + codec => "event['name'] = 'Logstash'" + } + ruby { + codec => "event['product']['version'] = event['major'] + '.' + event['minor']" } } ---------------------------------- -Instead of: +The above syntax, which uses the `event` object as a reference, is no longer supported in +Logstash 5.0. Fortunately, the change to make it work is very simple: [source, js] ---------------------------------- filter { ruby { - codec => "event['product']['price'] = 10" + codec => "event.set('name', 'Logstash')" + } + ruby { + codec => "event.set('[product][version]', event.get('major') + '.' + event.get('minor'))" } } ---------------------------------- -The above syntax is not supported, and will produce an error at run-time. +NOTE: Moving from the old syntax to the new syntax, it can be easy to miss that `['product']['version']` became +`'[product][version]'`. The quotes moved from inside of the square brackets to outside of the square brackets! + +The <> documentation describes the available syntax in great detail. diff --git a/docs/static/upgrading.asciidoc b/docs/static/upgrading.asciidoc index 42f4b7997da..61c992fe8fb 100644 --- a/docs/static/upgrading.asciidoc +++ b/docs/static/upgrading.asciidoc @@ -9,6 +9,41 @@ Before upgrading Logstash: * Test upgrades in a development environment before upgrading your production cluster. =========================================== +[float] +=== When to Upgrade + +Fresh installations can and should start with the same version across the Elastic Stack. + +Elasticsearch 5.0 does not require Logstash 5.0. An Elasticsearch 5.0 cluster will happily receive data from a +Logstash 2.x instance via the default HTTP communication layer. This provides some flexibility to decide when to upgrade +Logstash relative to an Elasticsearch upgrade. It may or may not be convenient for you to upgrade them together, and it +is +not required to be done at the same time as long as Elasticsearch is upgraded first. + +You should upgrade in a timely manner to get the performance improvements that come with Logstash 5.0, but do so in +the way that makes the most sense for your environment. + +[float] +=== When Not to Upgrade + +If any Logstash plugin that you require is not compatible with Logstash 5.0, then you should wait until it is ready +before upgrading. + +//// +BEFORE 5.0 is released, we need to add the link to the Elastic Stack upgrade page. +//// + +Although we make great efforts to ensure compatibility, Logstash 5.0 is not completely backwards compatible. As noted +in the Elastic Stack upgrade guide, Logstash 5.0 should not be upgraded before Elasticsearch 5.0. This is both +practical and because some Logstash 5.0 plugins may attempt to use features of Elasticsearch 5.0 that did not exist +in earlier versions. For example, if you attempt to send the 5.x template to a cluster before Elasticsearch 5.0, then it +will not be able to use it and all indexing will fail likely fail. If you use your own, custom template with Logstash, t +hen +this issue can be ignored. + +Note the Elasticsearch Output Index Template change in the <> documentation for further insight into +this change and how it impacts operations. + === Upgrading Using Package Managers This procedure uses <> to upgrade Logstash. From 269688b564a3d822e43d4e9ef6539f19c39c72d2 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 26 Oct 2016 10:09:43 -0700 Subject: [PATCH 429/632] Fix renotes for 5.0 Fix typo Fixes #6131 --- docs/static/breaking-changes.asciidoc | 29 ++++--- docs/static/upgrading.asciidoc | 120 ++++++++------------------ 2 files changed, 57 insertions(+), 92 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 85afb2a2259..6603c5002d3 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -8,7 +8,8 @@ This section discusses the changes that you need to be aware of when migrating y These changes can impact any instance of Logstash and are plugin agnostic, but only if you are using the features that are impacted. -Application Settings:: +[float] +==== Application Settings [IMPORTANT] Logstash 5.0 introduces a new way to <> for Logstash through a @@ -23,7 +24,8 @@ after installing it via a package (RPM, DEB). bin/logstash --path.settings /path/to/settings.yml ---------------------------------- -Release Packages:: +[float] +==== Release Packages When Logstash 5.0 is installed via DEB or RPM packages, it now uses `/usr/share/logstash` and `/var/lib/logstash` to install binaries. Previously it used to install in `/opt/logstash` directory. This change was done to make the user experience consistent with other products in the Elastic Stack. @@ -42,7 +44,8 @@ install binaries. Previously it used to install in `/opt/logstash` directory. Th A complete directory layout is described in <>. This will likely impact any scripts that you may have written to support installing or manipulating Logstash, such as via Puppet. -Default Logging Level:: +[float] +==== Default Logging Level The default log severity level changed to `INFO` instead of `WARN` to match Elasticsearch. Existing logs (in core and plugins) were too noisy at the `INFO` level, so we auditted our log messages and switched some of them to @@ -56,7 +59,8 @@ You can use the new `settings.yml` file to configure the `log.level` setting or bin/logstash --log.level warn ---------------------------------- -Plugin Manager Renamed:: +[float] +==== Plugin Manager Renamed `bin/plugin` has been renamed to `bin/logstash-plugin`. This occurred in Logstash 2.3 and it was mainly prevent `PATH` being polluted when other components of the Elastic Stack are installed on the same machine. Also, this provides a foundation @@ -79,7 +83,8 @@ Like earlier releases of Logstash, most plugins are bundled directly with Logsta while upgrading from earlier Logstash releases. However, if you are attempting to install a non-bundled plugin, then make sure that it supports Logstash 5.0 before upgrading! -Logstash with All Plugins Download:: +[float] +==== Logstash with All Plugins Download The Logstash All Plugins download option has been removed. For users previously using this option as a convenience for offline plugin management purposes (air-gapped environments), please see the <> documentation page. @@ -104,7 +109,8 @@ There were 17 plugins removed from 5.0 default bundle. These plugins can still b * logstash-output-opentsdb * logstash-output-zeromq -Command Line Interface:: +[float] +==== Command Line Interface Some CLI Options changed in Logstash 5.0. If you were using the “long form” of the <>, then this will impact the way that you launch Logstash. They were changed to match the `settings.yml` format used to @@ -134,7 +140,8 @@ NOTE: None of the short form options have changed! [float] === Breaking Changes in Plugins -Elasticsearch Output Index Template:: +[float] +==== Elasticsearch Output Index Template The index template for Elasticsearch 5.0 has been changed to reflect https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_mapping_changes.html[Elasticsearch's mapping changes]. Most @@ -153,8 +160,9 @@ also uses the `.keyword` field, unless you are able to transition from `.raw` to transition time. You _can_ use a custom template to get both `.raw` and `.keyword` so that you can wait until all `.raw` data has stopped existing before transitioning to only using `.keyword`; this will waste some storage space and memory, but it does help users to avoid having to relearn operations. - -Plugin Versions:: + +[float] +==== Plugin Versions Logstash is unique amongst the Elastic Stack with respect to its plugins. Unlike Elasticsearch and Kibana, which both require plugins to be targeted to a specific release, Logstash’s plugin ecosystem provides more flexibility so that it can @@ -185,7 +193,8 @@ bin/logstash-plugin install --version 4.0.1 logstash-output-kafka The version numbers were found by checking the compatibility matrix for the individual plugins. -File Input:: +[float] +==== File Input The <> `SinceDB` file is now saved at `/plugins/inputs/file` location, where `path.data` is the path defined in the new `settings.yml` file. diff --git a/docs/static/upgrading.asciidoc b/docs/static/upgrading.asciidoc index 61c992fe8fb..bfabf8b6c51 100644 --- a/docs/static/upgrading.asciidoc +++ b/docs/static/upgrading.asciidoc @@ -9,41 +9,6 @@ Before upgrading Logstash: * Test upgrades in a development environment before upgrading your production cluster. =========================================== -[float] -=== When to Upgrade - -Fresh installations can and should start with the same version across the Elastic Stack. - -Elasticsearch 5.0 does not require Logstash 5.0. An Elasticsearch 5.0 cluster will happily receive data from a -Logstash 2.x instance via the default HTTP communication layer. This provides some flexibility to decide when to upgrade -Logstash relative to an Elasticsearch upgrade. It may or may not be convenient for you to upgrade them together, and it -is -not required to be done at the same time as long as Elasticsearch is upgraded first. - -You should upgrade in a timely manner to get the performance improvements that come with Logstash 5.0, but do so in -the way that makes the most sense for your environment. - -[float] -=== When Not to Upgrade - -If any Logstash plugin that you require is not compatible with Logstash 5.0, then you should wait until it is ready -before upgrading. - -//// -BEFORE 5.0 is released, we need to add the link to the Elastic Stack upgrade page. -//// - -Although we make great efforts to ensure compatibility, Logstash 5.0 is not completely backwards compatible. As noted -in the Elastic Stack upgrade guide, Logstash 5.0 should not be upgraded before Elasticsearch 5.0. This is both -practical and because some Logstash 5.0 plugins may attempt to use features of Elasticsearch 5.0 that did not exist -in earlier versions. For example, if you attempt to send the 5.x template to a cluster before Elasticsearch 5.0, then it -will not be able to use it and all indexing will fail likely fail. If you use your own, custom template with Logstash, t -hen -this issue can be ignored. - -Note the Elasticsearch Output Index Template change in the <> documentation for further insight into -this change and how it impacts operations. - === Upgrading Using Package Managers This procedure uses <> to upgrade Logstash. @@ -67,52 +32,6 @@ This procedure downloads the relevant Logstash binaries directly from Elastic. some Logstash plugins have changed in the 2.0 release. 5. Restart your Logstash pipeline after updating your configuration file. -=== Upgrading Logstash and Elasticsearch to 2.0 - -If you are using Elasticsearch as an output, and wish to upgrade to Elasticsearch 2.0, please be -aware of https://www.elastic.co/guide/en/elasticsearch/reference/2.0/breaking-changes-2.0.html[breaking changes] -before you upgrade. In addition, the following steps needs to be performed after upgrading to Elasticsearch 2.0: - -**Mapping changes:** Users may have custom template changes, so by default a Logstash upgrade will -leave the template as is. Even if you don't have a custom template, Logstash will not overwrite an existing -template by default. - -There is one known issue (removal of https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-object-type.html#_path_3[path]) with using GeoIP filter that needs a manual update to the template. - -Note: If you have custom template changes, please make sure to save it and merge any changes. You can -get the existing template by running: - -[source,shell] -curl -XGET localhost:9200/_template/logstash - - -Add the following option to your Logstash config: - -[source,json] -output { - elasticsearch { - template_overwrite => true - } -} - -Restart Logstash. - -**Dots in fields:** Elasticsearch 2.0 does not allow field names to contain the `.` character. -Further details about this change https://www.elastic.co/guide/en/elasticsearch/reference/2.0/breaking_20_mapping_changes.html#_field_names_may_not_contain_dots[here]. Some plugins already have been updated to compensate -for this breaking change, including logstash-filter-metrics and logstash-filter-elapsed. -These plugin updates are available for Logstash 2.0. To upgrade to the latest version of these -plugins, the command is: - -[source,shell] -bin/logstash-plugin update - -**Multiline Filter:** If you are using the Multiline Filter in your configuration and upgrade to Logstash 2.0, -you will get an error. Make sure to explicitly set the number of filter workers (`-w`) to `1`. You can set the number -of workers by passing a command line flag such as: - -[source,shell] -bin/logstash -w 1 - [[upgrading-logstash-2.2]] === Upgrading Logstash to 2.2 @@ -141,5 +60,42 @@ Thus, in 2.2, you can safely set `-w` to a number which is a multiple of the num A common way to tune performance is keep increasing the `-w` beyond the # of cores until performance no longer improves. A note of caution - make sure you also keep heapsize in mind, because the number of in-flight events are `#workers * batch_size * average_event size`. More in-flight events could add to memory pressure, eventually -leading to Out of Memory errors. You can change the heapsize in Logstash by setting `LS_HEAP_SIZE` +leading to Out of Memory errors. You can change the heapsize in Logstash by setting `LS_HEAP_SIZE`. + +[[upgrading-logstash-5.0]] +=== Upgrading Logstash to 5.0 + +Before upgrading Logstash, remember to read the <>. + +If you are installing Logstash with other components in the Elastic Stack, also see the +{stack}index.html[Elastic Stack installation and upgrade documentation]. + +==== When to Upgrade + +Fresh installations can and should start with the same version across the Elastic Stack. + +Elasticsearch 5.0 does not require Logstash 5.0. An Elasticsearch 5.0 cluster will happily receive data from a +Logstash 2.x instance via the default HTTP communication layer. This provides some flexibility to decide when to upgrade +Logstash relative to an Elasticsearch upgrade. It may or may not be convenient for you to upgrade them together, and it +is +not required to be done at the same time as long as Elasticsearch is upgraded first. + +You should upgrade in a timely manner to get the performance improvements that come with Logstash 5.0, but do so in +the way that makes the most sense for your environment. + +==== When Not to Upgrade + +If any Logstash plugin that you require is not compatible with Logstash 5.0, then you should wait until it is ready +before upgrading. + +Although we make great efforts to ensure compatibility, Logstash 5.0 is not completely backwards compatible. As noted +in the Elastic Stack upgrade guide, Logstash 5.0 should not be upgraded before Elasticsearch 5.0. This is both +practical and because some Logstash 5.0 plugins may attempt to use features of Elasticsearch 5.0 that did not exist +in earlier versions. For example, if you attempt to send the 5.x template to a cluster before Elasticsearch 5.0, then it +will not be able to use it and all indexing will fail likely fail. If you use your own, custom template with Logstash, +then this issue can be ignored. + +Note the Elasticsearch Output Index Template change in the <> documentation for further insight into +this change and how it impacts operations. + From 8aefd7a50e7820caab423905bc8a6e4c38d0f92f Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 26 Oct 2016 15:48:44 -0700 Subject: [PATCH 430/632] Remove 2.x info from upgrade docs Fixes #6131 --- docs/static/upgrading.asciidoc | 47 ++++++++++------------------------ 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/docs/static/upgrading.asciidoc b/docs/static/upgrading.asciidoc index bfabf8b6c51..b4e8ca968ab 100644 --- a/docs/static/upgrading.asciidoc +++ b/docs/static/upgrading.asciidoc @@ -9,18 +9,29 @@ Before upgrading Logstash: * Test upgrades in a development environment before upgrading your production cluster. =========================================== +If you are installing Logstash with other components in the Elastic Stack, also see the +{stack}index.html[Elastic Stack installation and upgrade documentation]. + +See the following topics for information about upgrading Logstash: + +* <> +* <> +* <> + +[[upgrading-using-package-managers]] === Upgrading Using Package Managers This procedure uses <> to upgrade Logstash. 1. Shut down your Logstash pipeline, including any inputs that send events to Logstash. -2. Using the directions in the _Package Repositories_ section, update your repository links to point to the 2.0 repositories +2. Using the directions in the _Package Repositories_ section, update your repository links to point to the 5.x repositories instead of the previous version. 3. Run the `apt-get upgrade logstash` or `yum update logstash` command as appropriate for your operating system. 4. Test your configuration file with the `logstash --config.test_and_exit -f ` command. Configuration options for -some Logstash plugins have changed in the 2.0 release. +some Logstash plugins have changed in the 5.x release. 5. Restart your Logstash pipeline after updating your configuration file. +[[upgrading-using-direct-download]] === Upgrading Using a Direct Download This procedure downloads the relevant Logstash binaries directly from Elastic. @@ -29,39 +40,9 @@ This procedure downloads the relevant Logstash binaries directly from Elastic. 2. Download the https://www.elastic.co/downloads/logstash[Logstash installation file] that matches your host environment. 3. Unpack the installation file into your Logstash directory. 4. Test your configuration file with the `logstash --config.test_and_exit -f ` command. Configuration options for -some Logstash plugins have changed in the 2.0 release. +some Logstash plugins have changed in the 5.x release. 5. Restart your Logstash pipeline after updating your configuration file. -[[upgrading-logstash-2.2]] -=== Upgrading Logstash to 2.2 - -Logstash 2.2 re-architected the pipeline stages to provide more performance and help future enhancements in resiliency. -The new pipeline introduced micro-batches, processing groups of events at a time. The default batch size is -125 per worker. Also, the filter and output stages are executed in the same thread, but still, as different stages. -The CLI flag `--pipeline-workers` or `-w` control the number of execution threads, which is set by default to number of cores. - -**Considerations for Elasticsearch Output** -The default batch size of the pipeline is 125 events per worker. This will by default also be the bulk size -used for the elasticsearch output. The Elasticsearch output's `flush_size` now acts only as a maximum bulk -size (still defaulting to 500). For example, if your pipeline batch size is 3000 events, Elasticsearch -Output will send 500 events at a time, in 6 separate bulk requests. In other words, for Elasticsearch output, -bulk request size is chunked based on `flush_size` and `--pipeline.batch.size`. If `flush_size` is set greater -than `--pipeline.batch.size`, it is ignored and `--pipeline.batch.size` will be used. - -The default number of output workers in Logstash 2.2 is now equal to the number of pipeline workers (`-w`) -unless overridden in the Logstash config file. This can be problematic for some users as the -extra workers may consume extra resources like file handles, especially in the case of the Elasticsearch -output. Users with more than one Elasticsearch host may want to override the `workers` setting -for the Elasticsearch output in their Logstash config to constrain that number to a low value, between 1 to 4. - -**Performance Tuning in 2.2** -Since both filters and output workers are on the same thread, this could lead to threads being idle in I/O wait state. -Thus, in 2.2, you can safely set `-w` to a number which is a multiple of the number of cores on your machine. -A common way to tune performance is keep increasing the `-w` beyond the # of cores until performance no longer -improves. A note of caution - make sure you also keep heapsize in mind, because the number of in-flight events -are `#workers * batch_size * average_event size`. More in-flight events could add to memory pressure, eventually -leading to Out of Memory errors. You can change the heapsize in Logstash by setting `LS_HEAP_SIZE`. - [[upgrading-logstash-5.0]] === Upgrading Logstash to 5.0 From 7b811a91e96562969c2116a2f07ea590d55b1e7d Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 26 Oct 2016 18:57:25 -0400 Subject: [PATCH 431/632] Update deb source to use major versions Fixes #6130 --- docs/static/getting-started-with-logstash.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index 7efcb9d72e7..15ac7369b5e 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -49,8 +49,8 @@ that we only provide binary packages, but no source packages, as the packages are created as part of the Logstash build. We have split the Logstash package repositories by version into separate urls -to avoid accidental upgrades across major or minor versions. For all 2.3.x -releases use 2.3 as version number, for 2.2.x use 2.2, etc. +to avoid accidental upgrades across major versions. For all {major-version}.y +releases use {major-version} as version number. We use the PGP key https://pgp.mit.edu/pks/lookup?op=vindex&search=0xD27D666CD88E42B4[D88E42B4], From cbc91f705065e9bb46f78b9ae9041cc114753f6a Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 24 Oct 2016 10:10:03 -0400 Subject: [PATCH 432/632] Fix test for LogStash::Setting::WritableDirectory#set path for unix domain socket have a hard limit of 104 on macos and 108 on linux, using `Stud::Temporary.pathname` to generate the path will exceed that limit. So we will use a custom generation of using the tmpdir + Time.now.to_f which should be good enough for this test. Fixes: #6108 Fixes #6110 --- .../spec/logstash/settings/writable_directory_spec.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/logstash-core/spec/logstash/settings/writable_directory_spec.rb b/logstash-core/spec/logstash/settings/writable_directory_spec.rb index d6f1e6dbc69..ae30e8a9fe1 100644 --- a/logstash-core/spec/logstash/settings/writable_directory_spec.rb +++ b/logstash-core/spec/logstash/settings/writable_directory_spec.rb @@ -1,12 +1,17 @@ # encoding: utf-8 require "spec_helper" require "logstash/settings" -require "stud/temporary" +require "tmpdir" require "socket" # for UNIXSocket + + + describe LogStash::Setting::WritableDirectory do let(:mode_rx) { 0555 } - let(:parent) { Stud::Temporary.pathname } + # linux is 108, Macos is 104, so use a safe value + # Stud::Temporary.pathname, will exceed that size without adding anything + let(:parent) { File.join(Dir.tmpdir, Time.now.to_f.to_s) } let(:path) { File.join(parent, "fancy") } before { Dir.mkdir(parent) } From d1dc80c64fb23c0e433c94b6f84f8a7c6b53dcaa Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 24 Oct 2016 10:24:44 -0400 Subject: [PATCH 433/632] oops whitespace Fixes #6110 --- .../spec/logstash/settings/writable_directory_spec.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/logstash-core/spec/logstash/settings/writable_directory_spec.rb b/logstash-core/spec/logstash/settings/writable_directory_spec.rb index ae30e8a9fe1..be46b28a05e 100644 --- a/logstash-core/spec/logstash/settings/writable_directory_spec.rb +++ b/logstash-core/spec/logstash/settings/writable_directory_spec.rb @@ -4,9 +4,6 @@ require "tmpdir" require "socket" # for UNIXSocket - - - describe LogStash::Setting::WritableDirectory do let(:mode_rx) { 0555 } # linux is 108, Macos is 104, so use a safe value From d02d31e818c43b1d4094b4b127195b1ea8623632 Mon Sep 17 00:00:00 2001 From: vjestin Date: Thu, 27 Oct 2016 14:46:48 +0200 Subject: [PATCH 434/632] Fixed documentation inconsistencies fixed wrong binaries directory for RPM package in doc When installed with the RPM package, logstash binaries are actually installed in /usr/share/logstash and it seems to be consistent with other Elastic products (tested with elasticsearch 5.0). Futhermore, 'Logstash Directory Layout' page is only talking about /usr/share/logstash. fixed settings file name Documentation refers to both 'settings.yml' and 'logstash.yml' files for new settings file. I set 'logstash.yml' everywhere because it's the file name which is used in RPM, APT and zip/tar.gz archives. Fixes #6138 --- docs/static/breaking-changes.asciidoc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 6603c5002d3..8e10849403b 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -13,7 +13,7 @@ These changes can impact any instance of Logstash and are plugin agnostic, but o [IMPORTANT] Logstash 5.0 introduces a new way to <> for Logstash through a -`settings.yml` file. +`logstash.yml` file. This file is typically located in `${LS_HOME}/config`, or `/etc/logstash` when installed via packages. Logstash will not be able to start without this file, so please make sure to pass in `--path.settings` if you are starting Logstash manually @@ -21,13 +21,13 @@ after installing it via a package (RPM, DEB). [source,bash] ---------------------------------- -bin/logstash --path.settings /path/to/settings.yml +bin/logstash --path.settings /path/to/logstash.yml ---------------------------------- [float] ==== Release Packages -When Logstash 5.0 is installed via DEB or RPM packages, it now uses `/usr/share/logstash` and `/var/lib/logstash` to +When Logstash 5.0 is installed via DEB or RPM packages, it now uses `/usr/share/logstash` to install binaries. Previously it used to install in `/opt/logstash` directory. This change was done to make the user experience consistent with other products in the Elastic Stack. [cols="3", options="header"] @@ -38,7 +38,7 @@ install binaries. Previously it used to install in `/opt/logstash` directory. Th |`/opt/logstash` |Logstash 5.0 |`/user/share/logstash` -|`/var/lib/logstash` +|`/user/share/logstash` |=== A complete directory layout is described in <>. This will likely impact any scripts that you may have written @@ -51,7 +51,7 @@ The default log severity level changed to `INFO` instead of `WARN` to match Elas (in core and plugins) were too noisy at the `INFO` level, so we auditted our log messages and switched some of them to `DEBUG` level. -You can use the new `settings.yml` file to configure the `log.level` setting or continue to pass the new +You can use the new `logstash.yml` file to configure the `log.level` setting or continue to pass the new `--log.level` command line flag. [source,bash] @@ -113,7 +113,7 @@ There were 17 plugins removed from 5.0 default bundle. These plugins can still b ==== Command Line Interface Some CLI Options changed in Logstash 5.0. If you were using the “long form” of the <>, -then this will impact the way that you launch Logstash. They were changed to match the `settings.yml` format used to +then this will impact the way that you launch Logstash. They were changed to match the `logstash.yml` format used to simplify future setup, as well as behave in the same way as other products in the Elastic Stack. For example, here’s two before-and-after examples. In Logstash 2.x, you may have run something: @@ -197,7 +197,7 @@ The version numbers were found by checking the compatibility matrix for the indi ==== File Input The <> `SinceDB` file is now saved at `/plugins/inputs/file` location, -where `path.data` is the path defined in the new `settings.yml` file. +where `path.data` is the path defined in the new `logstash.yml` file. [cols="2", options="header"] |=== From b43a9cf11da53f7589eef87fc4e438556c4f4cc8 Mon Sep 17 00:00:00 2001 From: vjestin Date: Thu, 27 Oct 2016 20:04:28 +0200 Subject: [PATCH 435/632] fixed wrong directory name Fixes #6140 --- docs/static/breaking-changes.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 8e10849403b..3b1c6b8c809 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -37,8 +37,8 @@ install binaries. Previously it used to install in `/opt/logstash` directory. Th |`/opt/logstash` |`/opt/logstash` |Logstash 5.0 -|`/user/share/logstash` -|`/user/share/logstash` +|`/usr/share/logstash` +|`/usr/share/logstash` |=== A complete directory layout is described in <>. This will likely impact any scripts that you may have written From df713c068c5cc295a4f5b3bb93827beebfe5f55b Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 28 Oct 2016 09:48:29 -0400 Subject: [PATCH 436/632] Update logs with recent changes Fixes #6144 Fixes #6145 --- docs/static/settings-file.asciidoc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/static/settings-file.asciidoc b/docs/static/settings-file.asciidoc index 25e4f3d642f..a646b5852ab 100644 --- a/docs/static/settings-file.asciidoc +++ b/docs/static/settings-file.asciidoc @@ -114,20 +114,22 @@ The `logstash.yml` file includes the following settings: a| The log level. Valid options are: -* `warn`: log warnings -* `quiet`: log errors -* `verbose`: log verbose info (for users) -* `debug`: log debugging info (for developers) +* `fatal` +* `error` +* `warn` +* `info` +* `debug` +* `trace` -| `warn` +| `info` | `log.format` | The log format. Set to `json` to log in JSON format, or `plain` to use `Object#.inspect`. | `plain` -| `path.log` -| The file to log to. -| Logs to stdout +| `path.logs` +| The directory where Logstash will write its log to. +| `LOGSTASH_HOME/logs | `path.plugins` | Where to find custom plugins. You can specify this setting multiple times to include From 8bf84c74c492a19b7f524d89a42b03d85885c2da Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 14 Oct 2016 17:46:39 -0700 Subject: [PATCH 437/632] Fix user feedback message for package install We were showing both INFO and ERROR for all cases which is confusing Fixes #6061 --- logstash-core/lib/logstash/runner.rb | 14 ++++++++++++-- logstash-core/locales/en.yml | 3 +-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 1ea15138c81..4d9ca67dbcd 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -162,10 +162,14 @@ def run(args) begin LogStash::SETTINGS.from_yaml(LogStash::SETTINGS.get("path.settings")) + rescue Errno::ENOENT + unless cli_help?(args) + $stderr.puts "ERROR: Logstash requires a setting file which is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually, please specify the location to this settings file by passing --path.settings /etc/logstash" + return 1 + end rescue => e # abort unless we're just looking for the help - if (["--help", "-h"] & args).empty? - $stderr.puts "INFO: Logstash requires a setting file which is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually please specify the location to this settings file by passing in \"--path.settings=/path/..\"" + unless cli_help?(args) $stderr.puts "ERROR: Failed to load settings file from \"path.settings\". Aborting... path.setting=#{LogStash::SETTINGS.get("path.settings")}, exception=#{e.class}, message=>#{e.message}" return 1 end @@ -410,5 +414,11 @@ def fetch_settings_path(cli_args) nil end end + + # is the user asking for CLI help subcommand? + def cli_help?(args) + # I know, double negative + !(["--help", "-h"] & args).empty? + end end diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 8ade56fff1e..29f307bfdf4 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -112,8 +112,7 @@ en: longer available. %{extra} If you have any questions about this, you are invited to visit https://discuss.elastic.co/c/logstash and ask. file-not-found: |- - No config files found: %{path} - Can you make sure this path is a logstash config file? + No config files found: %{path}. Can you make sure this path is a logstash config file? scheme-not-supported: |- URI scheme not supported: %{path} Either pass a local file path or "file|http://" URI From 46d449dfd184251ecf7b34f05a71757a5e8a084f Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Mon, 31 Oct 2016 11:29:27 -0700 Subject: [PATCH 438/632] Improve docs for linux service managers * Add a table of Linux distributions and corresponding service systems. * Replace redundant service docs with links to the running-logstash. Hopefully fixes #6148 Fixes #6151 --- .../getting-started-with-logstash.asciidoc | 32 ++----------------- docs/static/setting-up-logstash.asciidoc | 18 ++++++++--- 2 files changed, 15 insertions(+), 35 deletions(-) diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index 15ac7369b5e..d20e40e577d 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -105,21 +105,7 @@ it with: sudo apt-get update && sudo apt-get install logstash -------------------------------------------------- -Configure Logstash to automatically start during bootup. If your -distribution is using SysV init, then you will need to run: - -[source,sh] --------------------------------------------------- -sudo update-rc.d logstash defaults 95 10 --------------------------------------------------- - -Otherwise if your distribution is using systemd: - -[source,sh] --------------------------------------------------- -sudo /bin/systemctl daemon-reload -sudo /bin/systemctl enable logstash.service --------------------------------------------------- +See the <> document for managing Logstash as a system service. [float] ==== YUM @@ -153,24 +139,10 @@ And your repository is ready for use. You can install it with: sudo yum install logstash -------------------------------------------------- -Configure Logstash to automatically start during bootup. If your -distribution is using SysV `init` (check with `ps -p 1`), then you will need to run: - WARNING: The repositories do not work with older rpm based distributions that still use RPM v3, like CentOS5. -[source,sh] --------------------------------------------------- -chkconfig --add logstash --------------------------------------------------- - -Otherwise if your distribution is using `systemd`: - -[source,sh] --------------------------------------------------- -sudo /bin/systemctl daemon-reload -sudo /bin/systemctl enable logstash.service --------------------------------------------------- +See the <> document for managing Logstash as a system service. [[first-event]] === Stashing Your First Event diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index e5167aafe74..c251171b849 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -134,6 +134,19 @@ The settings files are already defined in the Logstash installation. Logstash in Logstash is not started automatically after installation. How to start and stop Logstash depends on whether your system uses systemd, upstart, or SysV. +Here are some common operating systems and versions, and the corresponding +startup styles they use. This list is intended to be informative, not exhaustive. + +|======================================================================= +| Distribution | Service System | +| Ubuntu 16.04 and newer | <> | +| Ubuntu 12.04 through 15.10 | <> | +| Debian 8 "jessie" and newer | <> | +| Debian 7 "wheezy" and older | <> | +| CentOS (and RHEL) 7 and newer | <> | +| CentOS (and RHEL) 6 | <> | +|======================================================================= + [[running-logstash-systemd]] ==== Running Logstash by Using Systemd @@ -168,8 +181,3 @@ sudo /etc/init.d/logstash start ------------------------------------------- The auto-generated configuration file for SysV systems is `/etc/init.d/logstash`. - - - - - From aad62dd1411381abfd82c46424a63c17779ca2a7 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 27 Oct 2016 13:44:28 -0700 Subject: [PATCH 439/632] Document removal of workers in the bc doc Fixes #6141 --- docs/static/breaking-changes.asciidoc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 3b1c6b8c809..cea5b769557 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -140,6 +140,15 @@ NOTE: None of the short form options have changed! [float] === Breaking Changes in Plugins +[float] +==== Elasticsearch Output `workers` Setting Removed + +Starting with Logstash 5.0, the `workers` setting in the Elasticsearch output +plugin is no longer supported. Pipelines that specify this setting will no +longer start up. You need to specify the `pipeline.workers` setting at the +pipeline level instead. For more information about setting +`pipeline.workers`, see <>. + [float] ==== Elasticsearch Output Index Template From 761f9f1bc90b80f3dfc6c08294585b7f2991c7a7 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Tue, 1 Nov 2016 17:13:23 -0400 Subject: [PATCH 440/632] merge feature/java_persistence into master --- Gemfile | 2 + config/logstash.yml | 22 + dripmain.rb | 1 + lib/bootstrap/rspec.rb | 1 + logstash-core-event-java/build.gradle | 45 +- logstash-core-event-java/gemspec_jars.rb | 9 + .../lib/logstash-core-event-java_jars.rb | 6 + .../lib/logstash/event.rb | 8 +- .../logstash-core-event-java.gemspec | 5 +- logstash-core-event-java/spec/event_spec.rb | 11 + .../src/main/java/org/logstash/Event.java | 74 ++- .../main/java/org/logstash/ObjectMappers.java | 19 + .../src/main/java/org/logstash/Timestamp.java | 4 +- .../logstash/json/TimestampSerializer.java | 18 + .../src/test/java/org/logstash/EventTest.java | 63 +++ logstash-core-queue-jruby/build.gradle | 123 +++++ logstash-core-queue-jruby/gemspec_jars.rb | 4 + .../logstash-core-queue-jruby.rb | 24 + .../lib/logstash-core-queue-jruby/version.rb | 3 + .../logstash-core-queue-jruby.gemspec | 23 + logstash-core-queue-jruby/settings.gradle | 1 + .../main/java/JrubyAckedBatchExtService.java | 14 + .../main/java/JrubyAckedQueueExtService.java | 16 + .../ext/JrubyAckedBatchExtLibrary.java | 88 +++ .../ext/JrubyAckedQueueExtLibrary.java | 140 +++++ .../ext/JrubyAckedQueueMemoryExtLibrary.java | 141 +++++ logstash-core/build.gradle | 139 +++-- logstash-core/gemspec_jars.rb | 9 + logstash-core/lib/jars.rb | 7 - .../lib/logstash-core/logstash-core.rb | 20 + logstash-core/lib/logstash-core_jars.rb | 20 + logstash-core/lib/logstash/environment.rb | 7 + .../lib/logstash/instrument/metric_store.rb | 1 - .../logstash/instrument/metric_type/base.rb | 1 - .../lib/logstash/instrument/snapshot.rb | 1 - .../lib/logstash/java_integration.rb | 1 - logstash-core/lib/logstash/outputs/base.rb | 2 +- logstash-core/lib/logstash/pipeline.rb | 57 +- logstash-core/lib/logstash/runner.rb | 4 +- logstash-core/lib/logstash/settings.rb | 29 + logstash-core/lib/logstash/util/byte_value.rb | 61 ++ .../lib/logstash/util/wrapped_acked_queue.rb | 347 ++++++++++++ .../util/wrapped_synchronous_queue.rb | 46 +- logstash-core/logstash-core.gemspec | 31 +- logstash-core/settings.gradle | 1 + logstash-core/spec/logstash/agent_spec.rb | 27 +- .../spec/logstash/pipeline_pq_file_spec.rb | 128 +++++ logstash-core/spec/logstash/pipeline_spec.rb | 24 +- .../spec/logstash/settings/bytes_spec.rb | 53 ++ .../settings/writable_directory_spec.rb | 5 +- .../spec/logstash/util/byte_value_spec.rb | 33 ++ .../java/org/logstash/ackedqueue/Batch.java | 44 ++ .../org/logstash/ackedqueue/Checkpoint.java | 47 ++ .../org/logstash/ackedqueue/FileSettings.java | 79 +++ .../org/logstash/ackedqueue/HeadPage.java | 106 ++++ .../logstash/ackedqueue/MemorySettings.java | 81 +++ .../java/org/logstash/ackedqueue/Page.java | 151 +++++ .../java/org/logstash/ackedqueue/Queue.java | 519 ++++++++++++++++++ .../ackedqueue/QueueRuntimeException.java | 29 + .../org/logstash/ackedqueue/Queueable.java | 10 + .../logstash/ackedqueue/SequencedList.java | 21 + .../org/logstash/ackedqueue/Settings.java | 28 + .../org/logstash/ackedqueue/TailPage.java | 48 ++ .../logstash/common/io/BufferedChecksum.java | 67 +++ .../io/BufferedChecksumStreamInput.java | 104 ++++ .../io/BufferedChecksumStreamOutput.java | 57 ++ .../common/io/ByteArrayStreamOutput.java | 65 +++ .../logstash/common/io/ByteBufferPageIO.java | 248 +++++++++ .../common/io/ByteBufferStreamInput.java | 93 ++++ .../org/logstash/common/io/CheckpointIO.java | 22 + .../common/io/CheckpointIOFactory.java | 6 + .../logstash/common/io/FileCheckpointIO.java | 108 ++++ .../common/io/InputStreamStreamInput.java | 77 +++ .../common/io/MemoryCheckpointIO.java | 60 ++ .../org/logstash/common/io/MmapPageIO.java | 254 +++++++++ .../java/org/logstash/common/io/PageIO.java | 47 ++ .../org/logstash/common/io/PageIOFactory.java | 8 + .../org/logstash/common/io/StreamInput.java | 86 +++ .../org/logstash/common/io/StreamOutput.java | 74 +++ .../java/org/logstash/common/io/Streams.java | 60 ++ .../common/io/wip/MemoryPageIOStream.java | 279 ++++++++++ .../logstash/ackedqueue/CheckpointTest.java | 21 + .../org/logstash/ackedqueue/HeadPageTest.java | 116 ++++ .../org/logstash/ackedqueue/QueueTest.java | 392 +++++++++++++ .../logstash/ackedqueue/StringElement.java | 58 ++ .../org/logstash/ackedqueue/TestQueue.java | 17 + .../org/logstash/ackedqueue/TestSettings.java | 33 ++ .../common/io/ByteBufferPageIOTest.java | 157 ++++++ .../common/io/FileCheckpointIOTest.java | 53 ++ .../logstash/common/io/FileMmapIOTest.java | 55 ++ .../common/io/MemoryCheckpointTest.java | 45 ++ .../common/io/wip/MemoryPageIOStreamTest.java | 188 +++++++ .../java/org/logstash/stress/Concurent.java | 183 ++++++ .../org/logstash/common/io/checkpoint.head | Bin 0 -> 34 bytes rakelib/artifacts.rake | 11 + rakelib/compile.rake | 9 +- rakelib/test.rake | 7 + spec/spec_helper.rb | 21 + spec/unit/license_spec.rb | 3 +- versions.yml | 1 + 100 files changed, 5973 insertions(+), 194 deletions(-) create mode 100644 logstash-core-event-java/gemspec_jars.rb create mode 100644 logstash-core-event-java/src/main/java/org/logstash/ObjectMappers.java create mode 100644 logstash-core-event-java/src/main/java/org/logstash/json/TimestampSerializer.java create mode 100644 logstash-core-queue-jruby/build.gradle create mode 100644 logstash-core-queue-jruby/gemspec_jars.rb create mode 100644 logstash-core-queue-jruby/lib/logstash-core-queue-jruby/logstash-core-queue-jruby.rb create mode 100644 logstash-core-queue-jruby/lib/logstash-core-queue-jruby/version.rb create mode 100644 logstash-core-queue-jruby/logstash-core-queue-jruby.gemspec create mode 100644 logstash-core-queue-jruby/settings.gradle create mode 100644 logstash-core-queue-jruby/src/main/java/JrubyAckedBatchExtService.java create mode 100644 logstash-core-queue-jruby/src/main/java/JrubyAckedQueueExtService.java create mode 100644 logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedBatchExtLibrary.java create mode 100644 logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java create mode 100644 logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java create mode 100644 logstash-core/gemspec_jars.rb delete mode 100644 logstash-core/lib/jars.rb create mode 100644 logstash-core/lib/logstash-core_jars.rb create mode 100644 logstash-core/lib/logstash/util/byte_value.rb create mode 100644 logstash-core/lib/logstash/util/wrapped_acked_queue.rb create mode 100644 logstash-core/settings.gradle create mode 100644 logstash-core/spec/logstash/pipeline_pq_file_spec.rb create mode 100644 logstash-core/spec/logstash/settings/bytes_spec.rb create mode 100644 logstash-core/spec/logstash/util/byte_value_spec.rb create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/Batch.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/HeadPage.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/Page.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/QueueRuntimeException.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/Queueable.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/SequencedList.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java create mode 100644 logstash-core/src/main/java/org/logstash/ackedqueue/TailPage.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/BufferedChecksum.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/BufferedChecksumStreamInput.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/BufferedChecksumStreamOutput.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/ByteArrayStreamOutput.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/ByteBufferPageIO.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/ByteBufferStreamInput.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/CheckpointIO.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/CheckpointIOFactory.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/InputStreamStreamInput.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/MemoryCheckpointIO.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/MmapPageIO.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/PageIO.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/PageIOFactory.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/StreamInput.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/StreamOutput.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/Streams.java create mode 100644 logstash-core/src/main/java/org/logstash/common/io/wip/MemoryPageIOStream.java create mode 100644 logstash-core/src/test/java/org/logstash/ackedqueue/CheckpointTest.java create mode 100644 logstash-core/src/test/java/org/logstash/ackedqueue/HeadPageTest.java create mode 100644 logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java create mode 100644 logstash-core/src/test/java/org/logstash/ackedqueue/StringElement.java create mode 100644 logstash-core/src/test/java/org/logstash/ackedqueue/TestQueue.java create mode 100644 logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java create mode 100644 logstash-core/src/test/java/org/logstash/common/io/ByteBufferPageIOTest.java create mode 100644 logstash-core/src/test/java/org/logstash/common/io/FileCheckpointIOTest.java create mode 100644 logstash-core/src/test/java/org/logstash/common/io/FileMmapIOTest.java create mode 100644 logstash-core/src/test/java/org/logstash/common/io/MemoryCheckpointTest.java create mode 100644 logstash-core/src/test/java/org/logstash/common/io/wip/MemoryPageIOStreamTest.java create mode 100644 logstash-core/src/test/java/org/logstash/stress/Concurent.java create mode 100644 logstash-core/src/test/resources/org/logstash/common/io/checkpoint.head diff --git a/Gemfile b/Gemfile index 9e2c0c8d835..3dd811e8bc6 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,7 @@ source "https://rubygems.org" gem "logstash-core", :path => "./logstash-core" +gem "logstash-core-queue-jruby", :path => "./logstash-core-queue-jruby" gem "logstash-core-event-java", :path => "./logstash-core-event-java" gem "logstash-core-plugin-api", :path => "./logstash-core-plugin-api" gem "file-dependencies", "0.1.6" @@ -113,3 +114,4 @@ gem "logstash-output-stdout" gem "logstash-output-tcp" gem "logstash-output-udp" gem "logstash-output-webhdfs" +gem "logstash-filter-multiline" diff --git a/config/logstash.yml b/config/logstash.yml index bce9f417e36..0910bac807c 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -85,6 +85,28 @@ # # config.debug: false # +# ------------ Queuing Settings -------------- +# +# Internal queuing model, "memory" for legacy in-memory based queuing and +# "persisted" for disk-based acked queueing. Defaults is memory +# +# queue.type: memory +# +# If using queue.type: persisted, the directory path where the data files will be stored. +# Default is path.data/queue +# +# path.queue: +# +# If using queue.type: persisted, the page data files size. The queue data consists of +# append-only data files separated into pages. Default is 250mb +# +# queue.page_capacity: 250mb +# +# If using queue.type: persisted, the maximum number of unread events in the queue. +# Default is 0 (unlimited) +# +# queue.max_events: 0 +# # ------------ Metrics Settings -------------- # # Bind address for the metrics REST endpoint diff --git a/dripmain.rb b/dripmain.rb index 0324150871a..60bfc0435b5 100644 --- a/dripmain.rb +++ b/dripmain.rb @@ -3,6 +3,7 @@ require_relative "lib/bootstrap/environment" LogStash::Bundler.setup!({:without => [:build]}) +require "logstash-core" # typical required gems and libs require "logstash/environment" diff --git a/lib/bootstrap/rspec.rb b/lib/bootstrap/rspec.rb index 4c95f3bfc76..d24c9559553 100755 --- a/lib/bootstrap/rspec.rb +++ b/lib/bootstrap/rspec.rb @@ -1,6 +1,7 @@ # encoding: utf-8 require_relative "environment" LogStash::Bundler.setup!({:without => [:build]}) +require "logstash-core" require "logstash/environment" $LOAD_PATH.unshift(File.join(LogStash::Environment::LOGSTASH_CORE, "spec")) diff --git a/logstash-core-event-java/build.gradle b/logstash-core-event-java/build.gradle index d99d30476b4..1ff40a0938a 100644 --- a/logstash-core-event-java/build.gradle +++ b/logstash-core-event-java/build.gradle @@ -1,18 +1,13 @@ -buildscript { - repositories { - mavenLocal() - mavenCentral() - jcenter() - } - dependencies { - classpath 'net.saliman:gradle-cobertura-plugin:2.2.8' - } -} +group = 'org.logstash' +version = '6.0.0-alpha1' + +description = "Logstash Core Event Java" + +apply plugin: 'java' +apply plugin: 'idea' repositories { - mavenLocal() mavenCentral() - jcenter() } gradle.projectsEvaluated { @@ -22,12 +17,8 @@ gradle.projectsEvaluated { } } -apply plugin: 'java' -apply plugin: 'idea' - -group = 'org.logstash' - project.sourceCompatibility = 1.8 +project.targetCompatibility = 1.8 task sourcesJar(type: Jar, dependsOn: classes) { from sourceSets.main.allSource @@ -41,9 +32,11 @@ task javadocJar(type: Jar, dependsOn: javadoc) { extension 'jar' } +// copy jar file into the gem lib dir but without the version number in filename task copyGemjar(type: Copy, dependsOn: sourcesJar) { from project.jar into project.file('lib/logstash-core-event-java/') + rename(/(.+)-${project.version}.jar/, '$1.jar') } task cleanGemjar { @@ -55,6 +48,19 @@ task cleanGemjar { clean.dependsOn(cleanGemjar) jar.finalizedBy(copyGemjar) +task gemspec_jars << { + File gemspec_jars = file("./gemspec_jars.rb") + gemspec_jars.newWriter().withWriter { w -> + w << "# This file is generated by Gradle as part of the build process. It extracts the build.gradle\n" + w << "# runtime dependencies to generate this gemspec dependencies file to be eval'ed by the gemspec\n" + w << "# for the jar-dependencies requirements.\n\n" + configurations.runtime.allDependencies.each { dependency -> + w << "gem.requirements << \"jar ${dependency.group}:${dependency.name}, ${dependency.version}\"\n" + } + } +} +build.finalizedBy(gemspec_jars) + configurations.create('sources') configurations.create('javadoc') configurations.archives { @@ -94,10 +100,13 @@ idea { dependencies { compile 'com.fasterxml.jackson.core:jackson-core:2.7.3' compile 'com.fasterxml.jackson.core:jackson-databind:2.7.3' + compile 'com.fasterxml.jackson.module:jackson-module-afterburner:2.7.3' + compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.7.3' compile 'org.apache.logging.log4j:log4j-api:2.6.2' - provided 'org.jruby:jruby-core:1.7.25' testCompile 'junit:junit:4.12' testCompile 'net.javacrumbs.json-unit:json-unit:1.9.0' + provided 'org.jruby:jruby-core:1.7.25' + provided files('../logstash-core/lib/logstash-core/logstash-core.jar') } // See http://www.gradle.org/docs/current/userguide/gradle_wrapper.html diff --git a/logstash-core-event-java/gemspec_jars.rb b/logstash-core-event-java/gemspec_jars.rb new file mode 100644 index 00000000000..9c3acd02195 --- /dev/null +++ b/logstash-core-event-java/gemspec_jars.rb @@ -0,0 +1,9 @@ +# This file is generated by Gradle as part of the build process. It extracts the build.gradle +# runtime dependencies to generate this gemspec dependencies file to be eval'ed by the gemspec +# for the jar-dependencies requirements. + +gem.requirements << "jar com.fasterxml.jackson.core:jackson-core, 2.7.3" +gem.requirements << "jar com.fasterxml.jackson.core:jackson-databind, 2.7.3" +gem.requirements << "jar com.fasterxml.jackson.module:jackson-module-afterburner, 2.7.3" +gem.requirements << "jar com.fasterxml.jackson.dataformat:jackson-dataformat-cbor, 2.7.3" +gem.requirements << "jar org.apache.logging.log4j:log4j-api, 2.6.2" diff --git a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb index eda40d431f0..068f1826201 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb @@ -3,12 +3,18 @@ require 'jar_dependencies' rescue LoadError require 'com/fasterxml/jackson/core/jackson-databind/2.7.3/jackson-databind-2.7.3.jar' + require 'org/apache/logging/log4j/log4j-api/2.6.2/log4j-api-2.6.2.jar' require 'com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar' + require 'com/fasterxml/jackson/module/jackson-module-afterburner/2.7.3/jackson-module-afterburner-2.7.3.jar' + require 'com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.7.3/jackson-dataformat-cbor-2.7.3.jar' require 'com/fasterxml/jackson/core/jackson-core/2.7.3/jackson-core-2.7.3.jar' end if defined? Jars require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.3' ) + require_jar( 'org.apache.logging.log4j', 'log4j-api', '2.6.2' ) require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) + require_jar( 'com.fasterxml.jackson.module', 'jackson-module-afterburner', '2.7.3' ) + require_jar( 'com.fasterxml.jackson.dataformat', 'jackson-dataformat-cbor', '2.7.3' ) require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.3' ) end diff --git a/logstash-core-event-java/lib/logstash/event.rb b/logstash-core-event-java/lib/logstash/event.rb index 38c5d206938..27766aca97f 100644 --- a/logstash-core-event-java/lib/logstash/event.rb +++ b/logstash-core-event-java/lib/logstash/event.rb @@ -25,10 +25,14 @@ def flush?; true; end; def shutdown?; false; end; end - FLUSH = FlushEvent.new + class NoSignal < SignalEvent + def flush?; false; end; + def shutdown?; false; end; + end - # LogStash::SHUTDOWN is used by plugins + FLUSH = FlushEvent.new SHUTDOWN = ShutdownEvent.new + NO_SIGNAL = NoSignal.new class Event MSG_BRACKETS_METHOD_MISSING = "Direct event field references (i.e. event['field']) have been disabled in favor of using event get and set methods (e.g. event.get('field')). Please consult the Logstash 5.0 breaking changes documentation for more details.".freeze diff --git a/logstash-core-event-java/logstash-core-event-java.gemspec b/logstash-core-event-java/logstash-core-event-java.gemspec index 42c190b5f28..89d0bf10577 100644 --- a/logstash-core-event-java/logstash-core-event-java.gemspec +++ b/logstash-core-event-java/logstash-core-event-java.gemspec @@ -11,7 +11,7 @@ Gem::Specification.new do |gem| gem.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html" gem.license = "Apache License (2.0)" - gem.files = Dir.glob(["logstash-core-event-java.gemspec", "lib/**/*.jar", "lib/**/*.rb", "spec/**/*.rb"]) + gem.files = Dir.glob(["logstash-core-event-java.gemspec", "gemspec_jars.rb", "lib/**/*.jar", "lib/**/*.rb", "spec/**/*.rb"]) gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) gem.name = "logstash-core-event-java" gem.require_paths = ["lib"] @@ -26,6 +26,5 @@ Gem::Specification.new do |gem| # which does not have this problem. gem.add_runtime_dependency "ruby-maven", "~> 3.3.9" - gem.requirements << "jar com.fasterxml.jackson.core:jackson-core, 2.7.3" - gem.requirements << "jar com.fasterxml.jackson.core:jackson-databind, 2.7.3" + eval(File.read(File.expand_path("../gemspec_jars.rb", __FILE__))) end diff --git a/logstash-core-event-java/spec/event_spec.rb b/logstash-core-event-java/spec/event_spec.rb index 0b7d174e782..3402270c92b 100644 --- a/logstash-core-event-java/spec/event_spec.rb +++ b/logstash-core-event-java/spec/event_spec.rb @@ -146,6 +146,17 @@ expect(e.get("[proxy][array][1]")).to eql("baz") expect(e.get("[proxy][hash][string]")).to eql("quux") end + + it "should fail on non UTF-8 encoding" do + # e = LogStash::Event.new + # s1 = "\xE0 Montr\xE9al".force_encoding("ISO-8859-1") + # expect(s1.encoding.name).to eq("ISO-8859-1") + # expect(s1.valid_encoding?).to eq(true) + # e.set("test", s1) + # s2 = e.get("test") + # expect(s2.encoding.name).to eq("UTF-8") + # expect(s2.valid_encoding?).to eq(true) + end end context "timestamp" do diff --git a/logstash-core-event-java/src/main/java/org/logstash/Event.java b/logstash-core-event-java/src/main/java/org/logstash/Event.java index b54806db3dc..a0ad214daf5 100644 --- a/logstash-core-event-java/src/main/java/org/logstash/Event.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Event.java @@ -10,6 +10,7 @@ import org.apache.logging.log4j.Logger; import org.joda.time.DateTime; import org.jruby.RubySymbol; +import org.logstash.ackedqueue.Queueable; import java.io.IOException; import java.io.Serializable; @@ -19,8 +20,11 @@ import java.util.List; import java.util.Map; +import static org.logstash.ObjectMappers.CBOR_MAPPER; +import static org.logstash.ObjectMappers.JSON_MAPPER; -public class Event implements Cloneable, Serializable { + +public class Event implements Cloneable, Serializable, Queueable { private boolean cancelled; private Map data; @@ -36,6 +40,10 @@ public class Event implements Cloneable, Serializable { public static final String TIMESTAMP_FAILURE_FIELD = "_@timestamp"; public static final String VERSION = "@version"; public static final String VERSION_ONE = "1"; + private static final String DATA_MAP_KEY = "DATA"; + private static final String META_MAP_KEY = "META"; + private static final String SEQNUM_MAP_KEY = "SEQUENCE_NUMBER"; + private static final Logger logger = LogManager.getLogger(Event.class); private static final ObjectMapper mapper = new ObjectMapper(); @@ -165,10 +173,53 @@ public boolean includes(String reference) { } } + public byte[] toBinary() throws IOException { + return toBinaryFromMap(toSerializableMap()); + } + + private Map> toSerializableMap() { + HashMap> hashMap = new HashMap<>(); + hashMap.put(DATA_MAP_KEY, this.data); + hashMap.put(META_MAP_KEY, this.metadata); + return hashMap; + } + + private byte[] toBinaryFromMap(Map> representation) throws IOException { + return CBOR_MAPPER.writeValueAsBytes(representation); + } + + private static Event fromSerializableMap(Map> representation) throws IOException{ + if (!representation.containsKey(DATA_MAP_KEY)) { + throw new IOException("The deserialized Map must contain the \"DATA\" key"); + } + if (!representation.containsKey(META_MAP_KEY)) { + throw new IOException("The deserialized Map must contain the \"META\" key"); + } + Map dataMap = representation.get(DATA_MAP_KEY); + dataMap.put(METADATA, representation.get(META_MAP_KEY)); + return new Event(dataMap); + } + + public static Event fromBinary(byte[] source) throws IOException { + if (source == null || source.length == 0) { + return new Event(); + } + return fromSerializableMap(fromBinaryToMap(source)); + } + + private static Map> fromBinaryToMap(byte[] source) throws IOException { + Object o = CBOR_MAPPER.readValue(source, HashMap.class); + if (o instanceof Map) { + return (HashMap>) o; + } else { + throw new IOException("incompatible from binary object type=" + o.getClass().getName() + " , only HashMap is supported"); + } + } + public String toJson() throws IOException { - return mapper.writeValueAsString(this.data); + return JSON_MAPPER.writeValueAsString(this.data); } public static Event[] fromJson(String json) @@ -180,7 +231,7 @@ public static Event[] fromJson(String json) } Event[] result; - Object o = mapper.readValue(json, Object.class); + Object o = JSON_MAPPER.readValue(json, Object.class); // we currently only support Map or Array json objects if (o instanceof Map) { result = new Event[]{ new Event((Map)o) }; @@ -304,4 +355,21 @@ public void tag(String tag) { tags.add(tag); } } + + public byte[] serialize() throws IOException { + Map> dataMap = toSerializableMap(); + return toBinaryFromMap(dataMap); + } + + public byte[] serializeWithoutSeqNum() throws IOException { + return toBinary(); + } + + public static Event deserialize(byte[] data) throws IOException { + if (data == null || data.length == 0) { + return new Event(); + } + Map> dataMap = fromBinaryToMap(data); + return fromSerializableMap(dataMap); + } } diff --git a/logstash-core-event-java/src/main/java/org/logstash/ObjectMappers.java b/logstash-core-event-java/src/main/java/org/logstash/ObjectMappers.java new file mode 100644 index 00000000000..55cc633b685 --- /dev/null +++ b/logstash-core-event-java/src/main/java/org/logstash/ObjectMappers.java @@ -0,0 +1,19 @@ +package org.logstash; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.cbor.CBORFactory; +import com.fasterxml.jackson.dataformat.cbor.CBORGenerator; +import com.fasterxml.jackson.module.afterburner.AfterburnerModule; + +public class ObjectMappers { + public static final ObjectMapper JSON_MAPPER = new ObjectMapper(); + public static final ObjectMapper CBOR_MAPPER = new ObjectMapper(new CBORFactory()); + + static { + JSON_MAPPER.registerModule(new AfterburnerModule()); + + CBORFactory cborf = (CBORFactory) CBOR_MAPPER.getFactory(); + cborf.configure(CBORGenerator.Feature.WRITE_MINIMAL_INTS, false); + CBOR_MAPPER.registerModule(new AfterburnerModule()); + } +} diff --git a/logstash-core-event-java/src/main/java/org/logstash/Timestamp.java b/logstash-core-event-java/src/main/java/org/logstash/Timestamp.java index f3cea5b560b..15a86d1c240 100644 --- a/logstash-core-event-java/src/main/java/org/logstash/Timestamp.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Timestamp.java @@ -3,14 +3,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; -import org.joda.time.LocalDateTime; import org.joda.time.Duration; +import org.joda.time.LocalDateTime; import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.ISODateTimeFormat; import java.util.Date; -@JsonSerialize(using = TimestampSerializer.class) +@JsonSerialize(using = org.logstash.json.TimestampSerializer.class) public class Timestamp implements Cloneable { // all methods setting the time object must set it in the UTC timezone diff --git a/logstash-core-event-java/src/main/java/org/logstash/json/TimestampSerializer.java b/logstash-core-event-java/src/main/java/org/logstash/json/TimestampSerializer.java new file mode 100644 index 00000000000..cc61e45c6e1 --- /dev/null +++ b/logstash-core-event-java/src/main/java/org/logstash/json/TimestampSerializer.java @@ -0,0 +1,18 @@ +package org.logstash.json; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import org.logstash.Timestamp; + +import java.io.IOException; + +public class TimestampSerializer extends JsonSerializer { + + @Override + public void serialize(Timestamp value, JsonGenerator jgen, SerializerProvider provider) + throws IOException + { + jgen.writeString(value.toIso8601()); + } +} diff --git a/logstash-core-event-java/src/test/java/org/logstash/EventTest.java b/logstash-core-event-java/src/test/java/org/logstash/EventTest.java index a2714761623..08a330e2b00 100644 --- a/logstash-core-event-java/src/test/java/org/logstash/EventTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/EventTest.java @@ -14,6 +14,69 @@ import static org.junit.Assert.assertFalse; public class EventTest { + @Test + public void queueableInterfaceWithoutSeqNumRoundTrip() throws Exception { + Event e = new Event(); + e.setField("foo", 42L); + e.setField("bar", 42); + HashMap inner = new HashMap(2); + inner.put("innerFoo", 42L); + inner.put("innerQuux", 42.42); + e.setField("baz", inner); + e.setField("[@metadata][foo]", 42L); + byte[] binary = e.serializeWithoutSeqNum(); + Event er = Event.deserialize(binary); + assertEquals(42L, er.getField("foo")); + assertEquals(42, er.getField("bar")); + assertEquals(42L, er.getField("[baz][innerFoo]")); + assertEquals(42.42, er.getField("[baz][innerQuux]")); + assertEquals(42L, er.getField("[@metadata][foo]")); + + assertEquals(e.getTimestamp().toIso8601(), er.getTimestamp().toIso8601()); + } + + @Test + public void queueableInterfaceRoundTrip() throws Exception { + Event e = new Event(); + e.setField("foo", 42L); + e.setField("bar", 42); + HashMap inner = new HashMap(2); + inner.put("innerFoo", 42L); + inner.put("innerQuux", 42.42); + e.setField("baz", inner); + e.setField("[@metadata][foo]", 42L); + byte[] binary = e.serialize(); + Event er = Event.deserialize(binary); + assertEquals(42L, er.getField("foo")); + assertEquals(42, er.getField("bar")); + assertEquals(42L, er.getField("[baz][innerFoo]")); + assertEquals(42.42, er.getField("[baz][innerQuux]")); + assertEquals(42L, er.getField("[@metadata][foo]")); + + assertEquals(e.getTimestamp().toIso8601(), er.getTimestamp().toIso8601()); + } + + @Test + public void toBinaryRoundtrip() throws Exception { + Event e = new Event(); + e.setField("foo", 42L); + e.setField("bar", 42); + HashMap inner = new HashMap(2); + inner.put("innerFoo", 42L); + inner.put("innerQuux", 42.42); + e.setField("baz", inner); + e.setField("[@metadata][foo]", 42L); + byte[] binary = e.toBinary(); + Event er = Event.fromBinary(binary); + assertEquals(42L, er.getField("foo")); + assertEquals(42, er.getField("bar")); + assertEquals(42L, er.getField("[baz][innerFoo]")); + assertEquals(42.42, er.getField("[baz][innerQuux]")); + assertEquals(42L, er.getField("[@metadata][foo]")); + + assertEquals(e.getTimestamp().toIso8601(), er.getTimestamp().toIso8601()); + } + @Test public void testBareToJson() throws Exception { Event e = new Event(); diff --git a/logstash-core-queue-jruby/build.gradle b/logstash-core-queue-jruby/build.gradle new file mode 100644 index 00000000000..4f0ed72692e --- /dev/null +++ b/logstash-core-queue-jruby/build.gradle @@ -0,0 +1,123 @@ +import org.yaml.snakeyaml.Yaml + +apply plugin: 'java' +apply plugin: 'idea' + +// fetch version from Logstash's master versions.yml file +def versionMap = (Map) (new Yaml()).load(new File("$projectDir/../versions.yml").text) + +description = "Logstash Core Queue JRuby" +group 'org.logstash' +version = versionMap['logstash-core-queue-jruby'] + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'org.yaml:snakeyaml:1.17' + } +} + +repositories { + mavenCentral() +} + +gradle.projectsEvaluated { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" + } +} + +project.sourceCompatibility = 1.8 +project.targetCompatibility = 1.8 + +task sourcesJar(type: org.gradle.api.tasks.bundling.Jar, dependsOn: classes) { + from sourceSets.main.allSource + classifier 'sources' + extension 'jar' +} + +task javadocJar(type: org.gradle.api.tasks.bundling.Jar, dependsOn: javadoc) { + from javadoc.destinationDir + classifier 'javadoc' + extension 'jar' +} + +// copy jar file into the gem lib dir but without the version number in filename +task copyGemjar(type: org.gradle.api.tasks.Copy, dependsOn: sourcesJar) { + from project.jar + into project.file('lib/logstash-core-queue-jruby/') + rename(/(.+)-${project.version}.jar/, '$1.jar') +} + +task cleanGemjar { + delete fileTree(project.file('lib/logstash-core-queue-jruby/')) { + include '*.jar' + } +} + +clean.dependsOn(cleanGemjar) +jar.finalizedBy(copyGemjar) + +task gemspec_jars << { + File gemspec_jars = file("./gemspec_jars.rb") + gemspec_jars.newWriter().withWriter { w -> + w << "# This file is generated by Gradle as part of the build process. It extracts the build.gradle\n" + w << "# runtime dependencies to generate this gemspec dependencies file to be eval'ed by the gemspec\n" + w << "# for the jar-dependencies requirements.\n\n" + configurations.runtime.allDependencies.each { dependency -> + w << "gem.requirements << \"jar ${dependency.group}:${dependency.name}, ${dependency.version}\"\n" + } + } +} +build.finalizedBy(gemspec_jars) + +configurations.create('sources') +configurations.create('javadoc') +configurations.archives { + extendsFrom configurations.sources + extendsFrom configurations.javadoc +} + +artifacts { + sources(sourcesJar) { + // Weird Gradle quirk where type will be used for the extension, but only for sources + type 'jar' + } + + javadoc(javadocJar) { + type 'javadoc' + } +} + +configurations { + provided +} + +project.sourceSets { + main.compileClasspath += project.configurations.provided + main.runtimeClasspath += project.configurations.provided + test.compileClasspath += project.configurations.provided + test.runtimeClasspath += project.configurations.provided +} +project.javadoc.classpath += project.configurations.provided + +idea { + module { + scopes.PROVIDED.plus += [project.configurations.provided] + } +} + +dependencies { + testCompile group: 'junit', name: 'junit', version: '4.12' + provided group: 'org.jruby', name: 'jruby-core', version: '1.7.25' + provided files('../logstash-core-event-java/lib/logstash-core-event-java/logstash-core-event-java.jar') + provided files('../logstash-core/lib/logstash-core/logstash-core.jar') +} + +// See http://www.gradle.org/docs/current/userguide/gradle_wrapper.html +task wrapper(type: Wrapper) { + description = 'Install Gradle wrapper' + gradleVersion = '2.8' +} diff --git a/logstash-core-queue-jruby/gemspec_jars.rb b/logstash-core-queue-jruby/gemspec_jars.rb new file mode 100644 index 00000000000..80046e4e63a --- /dev/null +++ b/logstash-core-queue-jruby/gemspec_jars.rb @@ -0,0 +1,4 @@ +# This file is generated by Gradle as part of the build process. It extracts the build.gradle +# runtime dependencies to generate this gemspec dependencies file to be eval'ed by the gemspec +# for the jar-dependencies requirements. + diff --git a/logstash-core-queue-jruby/lib/logstash-core-queue-jruby/logstash-core-queue-jruby.rb b/logstash-core-queue-jruby/lib/logstash-core-queue-jruby/logstash-core-queue-jruby.rb new file mode 100644 index 00000000000..25c471f6842 --- /dev/null +++ b/logstash-core-queue-jruby/lib/logstash-core-queue-jruby/logstash-core-queue-jruby.rb @@ -0,0 +1,24 @@ +# encoding: utf-8 + +require "java" + +module LogStash +end + +# local dev setup +classes_dir = File.expand_path("../../../build/classes/main", __FILE__) + +if File.directory?(classes_dir) + # if in local dev setup, add target to classpath + $CLASSPATH << classes_dir unless $CLASSPATH.include?(classes_dir) +else + # otherwise use included jar + begin + require "logstash-core-queue-jruby/logstash-core-queue-jruby.jar" + rescue Exception => e + raise("Error loading logstash-core-queue-jruby/logstash-core-queue-jruby.jar file, cause: #{e.message}") + end +end + +require "jruby_acked_queue_ext" +require "jruby_acked_batch_ext" diff --git a/logstash-core-queue-jruby/lib/logstash-core-queue-jruby/version.rb b/logstash-core-queue-jruby/lib/logstash-core-queue-jruby/version.rb new file mode 100644 index 00000000000..62f138e2ba6 --- /dev/null +++ b/logstash-core-queue-jruby/lib/logstash-core-queue-jruby/version.rb @@ -0,0 +1,3 @@ +# encoding: utf-8 + +LOGSTASH_CORE_QUEUE_JRUBY_VERSION = "0.0.1" diff --git a/logstash-core-queue-jruby/logstash-core-queue-jruby.gemspec b/logstash-core-queue-jruby/logstash-core-queue-jruby.gemspec new file mode 100644 index 00000000000..463d1dc3454 --- /dev/null +++ b/logstash-core-queue-jruby/logstash-core-queue-jruby.gemspec @@ -0,0 +1,23 @@ +# -*- encoding: utf-8 -*- +lib = File.expand_path('../lib', __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require 'logstash-core-queue-jruby/version' + +Gem::Specification.new do |gem| + gem.authors = ["Elastic"] + gem.email = ["info@elastic.co"] + gem.description = %q{The core event component of logstash, the scalable log and event management tool} + gem.summary = %q{logstash-core-event-java - The core event component of logstash} + gem.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html" + gem.license = "Apache License (2.0)" + + gem.files = Dir.glob(["logstash-core-queue-jruby.gemspec", "gemspec_jars.rb", "lib/**/*.jar", "lib/**/*.rb", "spec/**/*.rb"]) + gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) + gem.name = "logstash-core-queue-jruby" + gem.require_paths = ["lib"] + gem.version = LOGSTASH_CORE_QUEUE_JRUBY_VERSION + + gem.platform = "java" + + eval(File.read(File.expand_path("../gemspec_jars.rb", __FILE__))) +end diff --git a/logstash-core-queue-jruby/settings.gradle b/logstash-core-queue-jruby/settings.gradle new file mode 100644 index 00000000000..31c56eb1ad0 --- /dev/null +++ b/logstash-core-queue-jruby/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'logstash-core-queue-jruby' diff --git a/logstash-core-queue-jruby/src/main/java/JrubyAckedBatchExtService.java b/logstash-core-queue-jruby/src/main/java/JrubyAckedBatchExtService.java new file mode 100644 index 00000000000..f31aa6089c1 --- /dev/null +++ b/logstash-core-queue-jruby/src/main/java/JrubyAckedBatchExtService.java @@ -0,0 +1,14 @@ +import org.jruby.Ruby; +import org.jruby.runtime.load.BasicLibraryService; +import org.logstash.ackedqueue.ext.JrubyAckedBatchExtLibrary; + +import java.io.IOException; + +public class JrubyAckedBatchExtService implements BasicLibraryService { + public boolean basicLoad(final Ruby runtime) + throws IOException + { + new JrubyAckedBatchExtLibrary().load(runtime, false); + return true; + } +} diff --git a/logstash-core-queue-jruby/src/main/java/JrubyAckedQueueExtService.java b/logstash-core-queue-jruby/src/main/java/JrubyAckedQueueExtService.java new file mode 100644 index 00000000000..8b349646e2d --- /dev/null +++ b/logstash-core-queue-jruby/src/main/java/JrubyAckedQueueExtService.java @@ -0,0 +1,16 @@ +import org.jruby.Ruby; +import org.jruby.runtime.load.BasicLibraryService; +import org.logstash.ackedqueue.ext.JrubyAckedQueueExtLibrary; +import org.logstash.ackedqueue.ext.JrubyAckedQueueMemoryExtLibrary; + +import java.io.IOException; + +public class JrubyAckedQueueExtService implements BasicLibraryService { + public boolean basicLoad(final Ruby runtime) + throws IOException + { + new JrubyAckedQueueExtLibrary().load(runtime, false); + new JrubyAckedQueueMemoryExtLibrary().load(runtime, false); + return true; + } +} diff --git a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedBatchExtLibrary.java b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedBatchExtLibrary.java new file mode 100644 index 00000000000..cd858b5faa5 --- /dev/null +++ b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedBatchExtLibrary.java @@ -0,0 +1,88 @@ +package org.logstash.ackedqueue.ext; + +import org.jruby.Ruby; +import org.jruby.RubyClass; +import org.jruby.RubyModule; +import org.jruby.RubyObject; +import org.jruby.RubyArray; +import org.jruby.anno.JRubyClass; +import org.jruby.anno.JRubyMethod; +import org.jruby.runtime.ObjectAllocator; +import org.jruby.runtime.ThreadContext; +import org.jruby.runtime.builtin.IRubyObject; +import org.jruby.runtime.load.Library; +import org.logstash.ackedqueue.Batch; +import org.logstash.Event; +import org.logstash.ext.JrubyEventExtLibrary; + +import java.io.IOException; + +public class JrubyAckedBatchExtLibrary implements Library { + + public void load(Ruby runtime, boolean wrap) throws IOException { + RubyModule module = runtime.defineModule("LogStash"); + + RubyClass clazz = runtime.defineClassUnder("AckedBatch", runtime.getObject(), new ObjectAllocator() { + public IRubyObject allocate(Ruby runtime, RubyClass rubyClass) { + return new RubyAckedBatch(runtime, rubyClass); + } + }, module); + + clazz.defineAnnotatedMethods(RubyAckedBatch.class); + } + + @JRubyClass(name = "AckedBatch", parent = "Object") + public static class RubyAckedBatch extends RubyObject { + private Batch batch; + + public RubyAckedBatch(Ruby runtime, RubyClass klass) { + super(runtime, klass); + this.batch = null; + } + + public RubyAckedBatch(Ruby runtime, Batch batch) { + super(runtime, runtime.getModule("LogStash").getClass("AckedBatch")); + this.batch = batch; + } + + @SuppressWarnings("unchecked") // for the getList() calls + @JRubyMethod(name = "initialize", required = 3) + public IRubyObject ruby_initialize(ThreadContext context, IRubyObject events, IRubyObject seqNums, IRubyObject queue) + { + if (! (events instanceof RubyArray)) { + context.runtime.newArgumentError("expected events array"); + } + if (! (seqNums instanceof RubyArray)) { + context.runtime.newArgumentError("expected seqNums array"); + } + if (! (queue instanceof JrubyAckedQueueExtLibrary.RubyAckedQueue)) { + context.runtime.newArgumentError("expected queue AckedQueue"); + } + + this.batch = new Batch(((RubyArray)events).getList(), ((RubyArray)seqNums).getList(), ((JrubyAckedQueueExtLibrary.RubyAckedQueue)queue).getQueue()); + + return context.nil; + } + + @JRubyMethod(name = "get_elements") + public IRubyObject ruby_get_elements(ThreadContext context) + { + RubyArray result = context.runtime.newArray(); + this.batch.getElements().forEach(e -> result.add(new JrubyEventExtLibrary.RubyEvent(context.runtime, (Event)e))); + + return result; + } + + @JRubyMethod(name = "close") + public IRubyObject ruby_close(ThreadContext context) + { + try { + this.batch.close(); + } catch (IOException e) { + throw context.runtime.newIOErrorFromException(e); + } + + return context.nil; + } + } +} diff --git a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java new file mode 100644 index 00000000000..8b73d837c59 --- /dev/null +++ b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java @@ -0,0 +1,140 @@ +package org.logstash.ackedqueue.ext; + +import org.logstash.Event; +import org.logstash.ext.JrubyEventExtLibrary; +import org.jruby.Ruby; +import org.jruby.RubyClass; +import org.jruby.RubyFixnum; +import org.jruby.RubyModule; +import org.jruby.RubyObject; +import org.jruby.anno.JRubyClass; +import org.jruby.anno.JRubyMethod; +import org.jruby.runtime.Arity; +import org.jruby.runtime.ObjectAllocator; +import org.jruby.runtime.ThreadContext; +import org.jruby.runtime.builtin.IRubyObject; +import org.jruby.runtime.load.Library; +import org.logstash.ackedqueue.Batch; +import org.logstash.ackedqueue.FileSettings; +import org.logstash.ackedqueue.Queue; +import org.logstash.ackedqueue.Settings; +import org.logstash.common.io.CheckpointIOFactory; +import org.logstash.common.io.FileCheckpointIO; +import org.logstash.common.io.MmapPageIO; +import org.logstash.common.io.PageIOFactory; + +import java.io.IOException; + +public class JrubyAckedQueueExtLibrary implements Library { + + public void load(Ruby runtime, boolean wrap) throws IOException { + RubyModule module = runtime.defineModule("LogStash"); + + RubyClass clazz = runtime.defineClassUnder("AckedQueue", runtime.getObject(), new ObjectAllocator() { + public IRubyObject allocate(Ruby runtime, RubyClass rubyClass) { + return new RubyAckedQueue(runtime, rubyClass); + } + }, module); + + clazz.defineAnnotatedMethods(RubyAckedQueue.class); + } + + // TODO: + // as a simplified first prototyping implementation, the Settings class is not exposed and the queue elements + // are assumed to be logstash Event. + + + @JRubyClass(name = "AckedQueue", parent = "Object") + public static class RubyAckedQueue extends RubyObject { + private Queue queue; + + public RubyAckedQueue(Ruby runtime, RubyClass klass) { + super(runtime, klass); + } + + public Queue getQueue() { + return this.queue; + } + + // def initialize + @JRubyMethod(name = "initialize", optional = 3) + public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) + { + args = Arity.scanArgs(context.runtime, args, 3, 0); + + int capacity = RubyFixnum.num2int(args[1]); + int maxUnread = RubyFixnum.num2int(args[2]); + + Settings s = new FileSettings(args[0].asJavaString()); + PageIOFactory pageIOFactory = (pageNum, size, path) -> new MmapPageIO(pageNum, size, path); + CheckpointIOFactory checkpointIOFactory = (source) -> new FileCheckpointIO(source); + s.setCapacity(capacity); + s.setMaxUnread(maxUnread); + s.setElementIOFactory(pageIOFactory); + s.setCheckpointIOFactory(checkpointIOFactory); + s.setElementClass(Event.class); + + this.queue = new Queue(s); + + return context.nil; + } + + @JRubyMethod(name = "open") + public IRubyObject ruby_open(ThreadContext context) + { + try { + this.queue.open(); + } catch (IOException e) { + throw context.runtime.newIOErrorFromException(e); + } + + return context.nil; + } + + @JRubyMethod(name = {"write", "<<"}, required = 1) + public IRubyObject ruby_write(ThreadContext context, IRubyObject event) + { + if (!(event instanceof JrubyEventExtLibrary.RubyEvent)) { + throw context.runtime.newTypeError("wrong argument type " + event.getMetaClass() + " (expected LogStash::Event)"); + } + + long seqNum; + try { + seqNum = this.queue.write(((JrubyEventExtLibrary.RubyEvent) event).getEvent()); + } catch (IOException e) { + throw context.runtime.newIOErrorFromException(e); + } + + return context.runtime.newFixnum(seqNum); + } + + @JRubyMethod(name = "read_batch", required = 2) + public IRubyObject ruby_read_batch(ThreadContext context, IRubyObject limit, IRubyObject timeout) + { + Batch b; + + try { + b = this.queue.readBatch(RubyFixnum.num2int(limit), RubyFixnum.num2int(timeout)); + } catch (IOException e) { + throw context.runtime.newIOErrorFromException(e); + } + + // TODO: return proper Batch object + return (b == null) ? context.nil : new JrubyAckedBatchExtLibrary.RubyAckedBatch(context.runtime, b); + } + + + @JRubyMethod(name = "close") + public IRubyObject ruby_close(ThreadContext context) + { + try { + this.queue.close(); + } catch (IOException e) { + throw context.runtime.newIOErrorFromException(e); + } + + return context.nil; + } + + } +} diff --git a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java new file mode 100644 index 00000000000..3ba29210867 --- /dev/null +++ b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java @@ -0,0 +1,141 @@ +package org.logstash.ackedqueue.ext; + +import org.logstash.Event; +import org.logstash.ext.JrubyEventExtLibrary; +import org.jruby.Ruby; +import org.jruby.RubyClass; +import org.jruby.RubyFixnum; +import org.jruby.RubyModule; +import org.jruby.RubyObject; +import org.jruby.anno.JRubyClass; +import org.jruby.anno.JRubyMethod; +import org.jruby.runtime.Arity; +import org.jruby.runtime.ObjectAllocator; +import org.jruby.runtime.ThreadContext; +import org.jruby.runtime.builtin.IRubyObject; +import org.jruby.runtime.load.Library; +import org.logstash.ackedqueue.Batch; +import org.logstash.ackedqueue.MemorySettings; +import org.logstash.ackedqueue.Queue; +import org.logstash.ackedqueue.Settings; +import org.logstash.common.io.ByteBufferPageIO; +import org.logstash.common.io.CheckpointIOFactory; +import org.logstash.common.io.MemoryCheckpointIO; +import org.logstash.common.io.PageIOFactory; + +import java.io.IOException; + +public class JrubyAckedQueueMemoryExtLibrary implements Library { + + public void load(Ruby runtime, boolean wrap) throws IOException { + RubyModule module = runtime.defineModule("LogStash"); + + RubyClass clazz = runtime.defineClassUnder("AckedMemoryQueue", runtime.getObject(), new ObjectAllocator() { + public IRubyObject allocate(Ruby runtime, RubyClass rubyClass) { + return new RubyAckedMemoryQueue(runtime, rubyClass); + } + }, module); + + clazz.defineAnnotatedMethods(RubyAckedMemoryQueue.class); + } + + // TODO: + // as a simplified first prototyping implementation, the Settings class is not exposed and the queue elements + // are assumed to be logstash Event. + + + @JRubyClass(name = "AckedMemoryQueue", parent = "Object") + public static class RubyAckedMemoryQueue extends RubyObject { + private Queue queue; + + public RubyAckedMemoryQueue(Ruby runtime, RubyClass klass) { + super(runtime, klass); + } + + public Queue getQueue() { + return this.queue; + } + + // def initialize + @JRubyMethod(name = "initialize", optional = 3) + public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) + { + args = Arity.scanArgs(context.runtime, args, 3, 0); + + int capacity = RubyFixnum.num2int(args[1]); + int maxUnread = RubyFixnum.num2int(args[2]); + + Settings s = new MemorySettings(args[0].asJavaString()); + PageIOFactory pageIOFactory = (pageNum, size, path) -> new ByteBufferPageIO(pageNum, size, path); + CheckpointIOFactory checkpointIOFactory = (source) -> new MemoryCheckpointIO(source); + s.setCapacity(capacity); + s.setMaxUnread(maxUnread); + s.setElementIOFactory(pageIOFactory); + s.setCheckpointIOFactory(checkpointIOFactory); + s.setElementClass(Event.class); + + this.queue = new Queue(s); + + return context.nil; + } + + @JRubyMethod(name = "open") + public IRubyObject ruby_open(ThreadContext context) + { + try { + this.queue.getCheckpointIO().purge(); + this.queue.open(); + } catch (IOException e) { + throw context.runtime.newIOErrorFromException(e); + } + + return context.nil; + } + + @JRubyMethod(name = {"write", "<<"}, required = 1) + public IRubyObject ruby_write(ThreadContext context, IRubyObject event) + { + if (!(event instanceof JrubyEventExtLibrary.RubyEvent)) { + throw context.runtime.newTypeError("wrong argument type " + event.getMetaClass() + " (expected LogStash::Event)"); + } + + long seqNum; + try { + seqNum = this.queue.write(((JrubyEventExtLibrary.RubyEvent) event).getEvent()); + } catch (IOException e) { + throw context.runtime.newIOErrorFromException(e); + } + + return context.runtime.newFixnum(seqNum); + } + + @JRubyMethod(name = "read_batch", required = 2) + public IRubyObject ruby_read_batch(ThreadContext context, IRubyObject limit, IRubyObject timeout) + { + Batch b; + + try { + b = this.queue.readBatch(RubyFixnum.num2int(limit), RubyFixnum.num2int(timeout)); + } catch (IOException e) { + throw context.runtime.newIOErrorFromException(e); + } + + // TODO: return proper Batch object + return (b == null) ? context.nil : new JrubyAckedBatchExtLibrary.RubyAckedBatch(context.runtime, b); + } + + + @JRubyMethod(name = "close") + public IRubyObject ruby_close(ThreadContext context) + { + try { + this.queue.close(); + } catch (IOException e) { + throw context.runtime.newIOErrorFromException(e); + } + + return context.nil; + } + + } +} diff --git a/logstash-core/build.gradle b/logstash-core/build.gradle index c45ad34920c..625b73933a9 100644 --- a/logstash-core/build.gradle +++ b/logstash-core/build.gradle @@ -1,32 +1,98 @@ -import java.nio.file.Files import org.yaml.snakeyaml.Yaml -import static java.nio.file.StandardCopyOption.REPLACE_EXISTING apply plugin: 'java' apply plugin: 'idea' -group = 'org.logstash' -description = """Logstash Core Java""" - -sourceCompatibility = 1.8 -targetCompatibility = 1.8 - // fetch version from Logstash's master versions.yml file def versionMap = (Map) (new Yaml()).load(new File("$projectDir/../versions.yml").text) + +group = 'org.logstash' +description = """Logstash Core Java""" version = versionMap['logstash-core'] +repositories { + mavenCentral() +} + buildscript { repositories { mavenCentral() } - dependencies { classpath 'org.yaml:snakeyaml:1.17' } } +gradle.projectsEvaluated { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:deprecation" +// options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" + } +} + +project.sourceCompatibility = 1.8 +project.targetCompatibility = 1.8 + +task sourcesJar(type: org.gradle.api.tasks.bundling.Jar, dependsOn: classes) { + from sourceSets.main.allSource + classifier 'sources' + extension 'jar' +} + +task javadocJar(type: org.gradle.api.tasks.bundling.Jar, dependsOn: javadoc) { + from javadoc.destinationDir + classifier 'javadoc' + extension 'jar' +} + +// copy jar file into the gem lib dir but without the version number in filename +task copyGemjar(type: org.gradle.api.tasks.Copy, dependsOn: sourcesJar) { + from project.jar + into project.file('lib/logstash-core/') + rename(/(.+)-${project.version}.jar/, '$1.jar') +} + +task cleanGemjar { + delete fileTree(project.file('lib/logstash-core/')) { + include '*.jar' + } +} + +clean.dependsOn(cleanGemjar) +jar.finalizedBy(copyGemjar) + +task gemspec_jars << { + File gemspec_jars = file("./gemspec_jars.rb") + gemspec_jars.newWriter().withWriter { w -> + w << "# This file is generated by Gradle as part of the build process. It extracts the build.gradle\n" + w << "# runtime dependencies to generate this gemspec dependencies file to be eval'ed by the gemspec\n" + w << "# for the jar-dependencies requirements.\n\n" + configurations.runtime.allDependencies.each { dependency -> + w << "gem.requirements << \"jar ${dependency.group}:${dependency.name}, ${dependency.version}\"\n" + } + } +} +build.finalizedBy(gemspec_jars) + +configurations.create('sources') +configurations.create('javadoc') +configurations.archives { + extendsFrom configurations.sources + extendsFrom configurations.javadoc +} + +artifacts { + sources(sourcesJar) { + // Weird Gradle quirk where type will be used for the extension, but only for sources + type 'jar' + } + javadoc(javadocJar) { + type 'javadoc' + } +} + configurations { - provided + provided } project.sourceSets { @@ -37,52 +103,27 @@ project.sourceSets { } project.javadoc.classpath += project.configurations.provided -repositories { - mavenCentral() -} - -dependencies { - runtime 'org.apache.logging.log4j:log4j-1.2-api:2.6.2' - compile 'org.apache.logging.log4j:log4j-api:2.6.2' - compile 'org.apache.logging.log4j:log4j-core:2.6.2' - compile 'com.fasterxml.jackson.core:jackson-core:2.7.4' - compile 'com.fasterxml.jackson.core:jackson-databind:2.7.4' - testCompile 'org.apache.logging.log4j:log4j-core:2.6.2:tests' - testCompile 'org.apache.logging.log4j:log4j-api:2.6.2:tests' - testCompile 'junit:junit:4.12' - provided 'org.jruby:jruby-core:1.7.25' -} - idea { module { scopes.PROVIDED.plus += [project.configurations.provided] } } -task generateGemJarRequiresFile << { - File jars_file = file('lib/jars.rb') - jars_file.newWriter().withWriter { w -> - w << "require \'jar_dependencies\'\n" - configurations.runtime.allDependencies.each { - w << "require_jar(\'${it.group}\', \'${it.name}\', \'${it.version}\')\n" - } - w << "require_jar(\'${project.group}\', \'${project.name}\', \'${project.version}\')\n" - } +dependencies { + runtime 'org.apache.logging.log4j:log4j-1.2-api:2.6.2' + compile 'org.apache.logging.log4j:log4j-api:2.6.2' + compile 'org.apache.logging.log4j:log4j-core:2.6.2' + compile 'com.fasterxml.jackson.core:jackson-core:2.7.4' + compile 'com.fasterxml.jackson.core:jackson-databind:2.7.4' + testCompile 'org.apache.logging.log4j:log4j-core:2.6.2:tests' + testCompile 'org.apache.logging.log4j:log4j-api:2.6.2:tests' + testCompile 'junit:junit:4.12' + provided 'org.jruby:jruby-core:1.7.25' } -task vendor << { - String vendorPathPrefix = "vendor/jars" - configurations.runtime.allDependencies.each { dep -> - File f = configurations.runtime.filter { it.absolutePath.contains("${dep.group}/${dep.name}/${dep.version}") }.singleFile - String groupPath = dep.group.replaceAll('\\.', '/') - File newJarFile = file("${vendorPathPrefix}/${groupPath}/${dep.name}/${dep.version}/${dep.name}-${dep.version}.jar") - newJarFile.mkdirs() - Files.copy(f.toPath(), newJarFile.toPath(), REPLACE_EXISTING) - } - String projectGroupPath = project.group.replaceAll('\\.', '/') - File projectJarFile = file("${vendorPathPrefix}/${projectGroupPath}/${project.name}/${project.version}/${project.name}-${project.version}.jar") - projectJarFile.mkdirs() - Files.copy(file("$buildDir/libs/${project.name}-${project.version}.jar").toPath(), projectJarFile.toPath(), REPLACE_EXISTING) +// See http://www.gradle.org/docs/current/userguide/gradle_wrapper.html +task wrapper(type: Wrapper) { + description = 'Install Gradle wrapper' + gradleVersion = '2.8' } -vendor.dependsOn(jar, generateGemJarRequiresFile) diff --git a/logstash-core/gemspec_jars.rb b/logstash-core/gemspec_jars.rb new file mode 100644 index 00000000000..15f2967a4b6 --- /dev/null +++ b/logstash-core/gemspec_jars.rb @@ -0,0 +1,9 @@ +# This file is generated by Gradle as part of the build process. It extracts the build.gradle +# runtime dependencies to generate this gemspec dependencies file to be eval'ed by the gemspec +# for the jar-dependencies requirements. + +gem.requirements << "jar org.apache.logging.log4j:log4j-1.2-api, 2.6.2" +gem.requirements << "jar org.apache.logging.log4j:log4j-api, 2.6.2" +gem.requirements << "jar org.apache.logging.log4j:log4j-core, 2.6.2" +gem.requirements << "jar com.fasterxml.jackson.core:jackson-core, 2.7.4" +gem.requirements << "jar com.fasterxml.jackson.core:jackson-databind, 2.7.4" diff --git a/logstash-core/lib/jars.rb b/logstash-core/lib/jars.rb deleted file mode 100644 index b55fbe05c49..00000000000 --- a/logstash-core/lib/jars.rb +++ /dev/null @@ -1,7 +0,0 @@ -require 'jar_dependencies' -require_jar('org.apache.logging.log4j', 'log4j-1.2-api', '2.6.2') -require_jar('org.apache.logging.log4j', 'log4j-api', '2.6.2') -require_jar('org.apache.logging.log4j', 'log4j-core', '2.6.2') -require_jar('com.fasterxml.jackson.core', 'jackson-core', '2.7.4') -require_jar('com.fasterxml.jackson.core', 'jackson-databind', '2.7.4') -require_jar('org.logstash', 'logstash-core', '6.0.0-alpha1') diff --git a/logstash-core/lib/logstash-core/logstash-core.rb b/logstash-core/lib/logstash-core/logstash-core.rb index 74f073326eb..1d39ad9e80f 100644 --- a/logstash-core/lib/logstash-core/logstash-core.rb +++ b/logstash-core/lib/logstash-core/logstash-core.rb @@ -1,3 +1,23 @@ # encoding: utf-8 + +require "java" + module LogStash end + +require "logstash-core_jars" + +# local dev setup +classes_dir = File.expand_path("../../../build/classes/main", __FILE__) + +if File.directory?(classes_dir) + # if in local dev setup, add target to classpath + $CLASSPATH << classes_dir unless $CLASSPATH.include?(classes_dir) +else + # otherwise use included jar + begin + require "logstash-core/logstash-core.jar" + rescue Exception => e + raise("Error loading logstash-core/logstash-core.jar file, cause: #{e.message}") + end +end diff --git a/logstash-core/lib/logstash-core_jars.rb b/logstash-core/lib/logstash-core_jars.rb new file mode 100644 index 00000000000..f548c9fd35c --- /dev/null +++ b/logstash-core/lib/logstash-core_jars.rb @@ -0,0 +1,20 @@ +# this is a generated file, to avoid over-writing it just delete this comment +begin + require 'jar_dependencies' +rescue LoadError + require 'org/apache/logging/log4j/log4j-core/2.6.2/log4j-core-2.6.2.jar' + require 'org/apache/logging/log4j/log4j-api/2.6.2/log4j-api-2.6.2.jar' + require 'com/fasterxml/jackson/core/jackson-core/2.7.4/jackson-core-2.7.4.jar' + require 'org/apache/logging/log4j/log4j-1.2-api/2.6.2/log4j-1.2-api-2.6.2.jar' + require 'com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar' + require 'com/fasterxml/jackson/core/jackson-databind/2.7.4/jackson-databind-2.7.4.jar' +end + +if defined? Jars + require_jar( 'org.apache.logging.log4j', 'log4j-core', '2.6.2' ) + require_jar( 'org.apache.logging.log4j', 'log4j-api', '2.6.2' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.4' ) + require_jar( 'org.apache.logging.log4j', 'log4j-1.2-api', '2.6.2' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.4' ) +end diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index a918a40414b..6b052c2dcd1 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -40,8 +40,15 @@ module Environment Setting::String.new("http.host", "127.0.0.1"), Setting::PortRange.new("http.port", 9600..9700), Setting::String.new("http.environment", "production"), + Setting::String.new("queue.type", "memory", true, ["persisted", "memory", "memory_acked"]), + Setting::Bytes.new("queue.page_capacity", "250mb"), + Setting::Numeric.new("queue.max_events", 0), # 0 is unlimited ].each {|setting| SETTINGS.register(setting) } + # Compute the default queue path based on `path.data` + default_queue_file_path = ::File.join(SETTINGS.get("path.data"), "queue") + SETTINGS.register Setting::WritableDirectory.new("path.queue", default_queue_file_path) + module Environment extend self diff --git a/logstash-core/lib/logstash/instrument/metric_store.rb b/logstash-core/lib/logstash/instrument/metric_store.rb index c440e2524d2..3967cefbfb7 100644 --- a/logstash-core/lib/logstash/instrument/metric_store.rb +++ b/logstash-core/lib/logstash/instrument/metric_store.rb @@ -1,6 +1,5 @@ # encoding: utf-8 require "concurrent" -require "logstash/event" require "logstash/instrument/metric_type" require "thread" diff --git a/logstash-core/lib/logstash/instrument/metric_type/base.rb b/logstash-core/lib/logstash/instrument/metric_type/base.rb index 206f175c753..b473871b56e 100644 --- a/logstash-core/lib/logstash/instrument/metric_type/base.rb +++ b/logstash-core/lib/logstash/instrument/metric_type/base.rb @@ -1,5 +1,4 @@ # encoding: utf-8 -require "logstash/event" require "logstash/util" module LogStash module Instrument module MetricType diff --git a/logstash-core/lib/logstash/instrument/snapshot.rb b/logstash-core/lib/logstash/instrument/snapshot.rb index f46068439ad..62a12677fdb 100644 --- a/logstash-core/lib/logstash/instrument/snapshot.rb +++ b/logstash-core/lib/logstash/instrument/snapshot.rb @@ -1,6 +1,5 @@ # encoding: utf-8 require "logstash/util/loggable" -require "logstash/event" module LogStash module Instrument class Snapshot diff --git a/logstash-core/lib/logstash/java_integration.rb b/logstash-core/lib/logstash/java_integration.rb index 26f9eb546e0..670ceaae650 100644 --- a/logstash-core/lib/logstash/java_integration.rb +++ b/logstash-core/lib/logstash/java_integration.rb @@ -1,6 +1,5 @@ # encoding: utf-8 require "java" -require "jars" # this is mainly for usage with JrJackson json parsing in :raw mode which genenerates # Java::JavaUtil::ArrayList and Java::JavaUtil::LinkedHashMap native objects for speed. diff --git a/logstash-core/lib/logstash/outputs/base.rb b/logstash-core/lib/logstash/outputs/base.rb index 453d0cbdf98..5e3ce1ad1a3 100644 --- a/logstash-core/lib/logstash/outputs/base.rb +++ b/logstash-core/lib/logstash/outputs/base.rb @@ -84,7 +84,7 @@ def receive(event) end # def receive public - # To be overriden in implementations + # To be overridden in implementations def multi_receive(events) if @receives_encoded self.multi_receive_encoded(codec.multi_encode(events)) diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 6b4c3b96622..efb03d838b0 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -4,13 +4,15 @@ require "concurrent" require "logstash/namespace" require "logstash/errors" +require "logstash-core/logstash-core" +require "logstash/util/wrapped_acked_queue" +require "logstash/util/wrapped_synchronous_queue" require "logstash/event" require "logstash/config/file" require "logstash/filters/base" require "logstash/inputs/base" require "logstash/outputs/base" require "logstash/shutdown_watcher" -require "logstash/util/wrapped_synchronous_queue" require "logstash/pipeline_reporter" require "logstash/instrument/metric" require "logstash/instrument/namespaced_metric" @@ -92,16 +94,17 @@ def initialize(config_str, settings = SETTINGS, namespaced_metric = nil) rescue => e raise end - - queue = Util::WrappedSynchronousQueue.new + queue = build_queue_from_settings @input_queue_client = queue.write_client @filter_queue_client = queue.read_client - # Note that @inflight_batches as a central mechanism for tracking inflight + @signal_queue = Queue.new + # Note that @infilght_batches as a central mechanism for tracking inflight # batches will fail if we have multiple read clients here. @filter_queue_client.set_events_metric(metric.namespace([:stats, :events])) @filter_queue_client.set_pipeline_metric( metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :events]) ) + @events_filtered = Concurrent::AtomicFixnum.new(0) @events_consumed = Concurrent::AtomicFixnum.new(0) @@ -112,6 +115,28 @@ def initialize(config_str, settings = SETTINGS, namespaced_metric = nil) @flushing = Concurrent::AtomicReference.new(false) end # def initialize + def build_queue_from_settings + queue_type = settings.get("queue.type") + queue_page_capacity = settings.get("queue.page_capacity") + max_events = settings.get("queue.max_events") + + if queue_type == "memory_acked" + # memory_acked is used in tests/specs + LogStash::Util::WrappedAckedQueue.create_memory_based("", queue_page_capacity, max_events) + elsif queue_type == "memory" + # memory is the legacy and default setting + LogStash::Util::WrappedSynchronousQueue.new() + elsif queue_type == "persisted" + # persisted is the disk based acked queue + queue_path = settings.get("path.queue") + LogStash::Util::WrappedAckedQueue.create_file_based(queue_path, queue_page_capacity, max_events) + else + raise(ConfigurationError, "invalid queue.type setting") + end + end + + private :build_queue_from_settings + def ready? @ready.value end @@ -168,6 +193,8 @@ def run shutdown_flusher shutdown_workers + @filter_queue_client.close + @logger.debug("Pipeline #{@pipeline_id} has been shutdown") # exit code @@ -242,12 +269,15 @@ def worker_loop(batch_size, batch_delay) while running batch = @filter_queue_client.take_batch + signal = @signal_queue.empty? ? NO_SIGNAL : @signal_queue.pop + running = !signal.shutdown? + @events_consumed.increment(batch.size) - running = false if batch.shutdown_signal_received? + filter_batch(batch) - if batch.shutdown_signal_received? || batch.flush_signal_received? - flush_filters_to_batch(batch) + if signal.flush? || signal.shutdown? + flush_filters_to_batch(batch, :final => signal.shutdown?) end output_batch(batch) @@ -257,11 +287,9 @@ def worker_loop(batch_size, batch_delay) def filter_batch(batch) batch.each do |event| - if event.is_a?(Event) - filter_func(event).each do |e| - # these are both original and generated events - batch.merge(e) unless e.cancelled? - end + filter_func(event).each do |e| + #these are both original and generated events + batch.merge(e) unless e.cancelled? end end @filter_queue_client.add_filtered_metrics(batch) @@ -383,7 +411,7 @@ def shutdown_workers # Each worker thread will receive this exactly once! @worker_threads.each do |t| @logger.debug("Pushing shutdown", :thread => t.inspect) - @input_queue_client.push(SHUTDOWN) + @signal_queue.push(SHUTDOWN) end @worker_threads.each do |t| @@ -468,7 +496,7 @@ def shutdown_flusher def flush if @flushing.compare_and_set(false, true) @logger.debug? && @logger.debug("Pushing flush onto pipeline") - @input_queue_client.push(FLUSH) + @signal_queue.push(FLUSH) end end @@ -486,7 +514,6 @@ def uptime # @param batch [ReadClient::ReadBatch] # @param options [Hash] def flush_filters_to_batch(batch, options = {}) - options[:final] = batch.shutdown_signal_received? flush_filters(options) do |event| unless event.cancelled? @logger.debug? and @logger.debug("Pushing flushed events", :event => event) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 4d9ca67dbcd..531a94a36ca 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -5,11 +5,13 @@ require "clamp" require "net/http" + +require "logstash/namespace" +require "logstash-core/logstash-core" require "logstash/environment" LogStash::Environment.load_locale! -require "logstash/namespace" require "logstash/agent" require "logstash/config/defaults" require "logstash/shutdown_watcher" diff --git a/logstash-core/lib/logstash/settings.rb b/logstash-core/lib/logstash/settings.rb index 10ec1f5f7d3..2039303ad8a 100644 --- a/logstash-core/lib/logstash/settings.rb +++ b/logstash-core/lib/logstash/settings.rb @@ -1,5 +1,7 @@ # encoding: utf-8 require "logstash/util/loggable" +require "fileutils" +require "logstash/util/byte_value" module LogStash class Settings @@ -434,6 +436,33 @@ def value end end end + + class Bytes < Coercible + def initialize(name, default=nil, strict=true) + super(name, ::Fixnum, default, strict=true) { |value| valid?(value) } + end + + def valid?(value) + value.is_a?(Fixnum) && value >= 0 + end + + def coerce(value) + case value + when ::Numeric + value + when ::String + LogStash::Util::ByteValue.parse(value) + else + raise ArgumentError.new("Could not coerce '#{value}' into a bytes value") + end + end + + def validate(value) + unless valid?(value) + raise ArgumentError.new("Invalid byte value \"#{value}\".") + end + end + end end SETTINGS = Settings.new diff --git a/logstash-core/lib/logstash/util/byte_value.rb b/logstash-core/lib/logstash/util/byte_value.rb new file mode 100644 index 00000000000..bc189a438a1 --- /dev/null +++ b/logstash-core/lib/logstash/util/byte_value.rb @@ -0,0 +1,61 @@ +# encoding: utf-8 +require "logstash/namespace" +require "logstash/util" + +module LogStash; module Util; module ByteValue + module_function + + B = 1 + KB = B << 10 + MB = B << 20 + GB = B << 30 + TB = B << 40 + PB = B << 50 + + def parse(text) + if !text.is_a?(String) + raise ArgumentError, "ByteValue::parse takes a String, got a `#{text.class.name}`" + end + number = text.to_f + factor = multiplier(text) + + (number * factor).to_i + end + + def multiplier(text) + case text + when /(?:k|kb)$/ + KB + when /(?:m|mb)$/ + MB + when /(?:g|gb)$/ + GB + when /(?:t|tb)$/ + TB + when /(?:p|pb)$/ + PB + when /(?:b)$/ + B + else + raise ArgumentError, "Unknown bytes value '#{text}'" + end + end + + def human_readable(number) + value, unit = if number > PB + [number / PB, "pb"] + elsif number > TB + [number / TB, "tb"] + elsif number > GB + [number / GB, "gb"] + elsif number > MB + [number / MB, "mb"] + elsif number > KB + [number / KB, "kb"] + else + [number, "b"] + end + + format("%.2d%s", value, unit) + end +end end end diff --git a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb new file mode 100644 index 00000000000..07d1978ac3a --- /dev/null +++ b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb @@ -0,0 +1,347 @@ +# encoding: utf-8 + +require "logstash-core-queue-jruby/logstash-core-queue-jruby" +require "concurrent" +# This is an adapted copy of the wrapped_synchronous_queue file +# ideally this should be moved to Java/JRuby + +module LogStash; module Util + # Some specialized constructors. The calling code *does* need to know what kind it creates but + # not the internal implementation e.g. LogStash::AckedMemoryQueue etc. + # Note the use of allocate - this is what new does before it calls initialize. + # Note that the new method has been made private this is because there is no + # default queue implementation. + # It would be expensive to create a persistent queue in the new method + # to then throw it away in favor of a memory based one directly after. + # Especially in terms of (mmap) memory allocation and proper close sequencing. + + class WrappedAckedQueue + class QueueClosedError < ::StandardError; end + class NotImplementedError < ::StandardError; end + + def self.create_memory_based(path, capacity, size) + self.allocate.with_queue( + LogStash::AckedMemoryQueue.new(path, capacity, size) + ) + end + + def self.create_file_based(path, capacity, size) + self.allocate.with_queue( + LogStash::AckedQueue.new(path, capacity, size) + ) + end + + private_class_method :new + + def with_queue(queue) + @queue = queue + @queue.open + @closed = Concurrent::AtomicBoolean.new(false) + self + end + + def closed? + @closed.true? + end + + # Push an object to the queue if the queue is full + # it will block until the object can be added to the queue. + # + # @param [Object] Object to add to the queue + def push(obj) + check_closed("write") + @queue.write(obj) + end + alias_method(:<<, :push) + + # TODO - fix doc for this noop method + # Offer an object to the queue, wait for the specified amount of time. + # If adding to the queue was successful it will return true, false otherwise. + # + # @param [Object] Object to add to the queue + # @param [Integer] Time in milliseconds to wait before giving up + # @return [Boolean] True if adding was successfull if not it return false + def offer(obj, timeout_ms) + raise NotImplementedError.new("The offer method is not implemented. There is no non blocking write operation yet.") + end + + # Blocking + def take + check_closed("read a batch") + # TODO - determine better arbitrary timeout millis + @queue.read_batch(1, 200).get_elements.first + end + + # Block for X millis + def poll(millis) + check_closed("read") + @queue.read_batch(1, millis).get_elements.first + end + + def read_batch(size, wait) + check_closed("read a batch") + @queue.read_batch(size, wait) + end + + def write_client + WriteClient.new(self) + end + + def read_client() + ReadClient.new(self) + end + + def check_closed(action) + if closed? + raise QueueClosedError.new("Attempted to #{action} on a closed AckedQueue") + end + end + + def close + @queue.close + @closed.make_true + end + + class ReadClient + # We generally only want one thread at a time able to access pop/take/poll operations + # from this queue. We also depend on this to be able to block consumers while we snapshot + # in-flight buffers + + def initialize(queue, batch_size = 125, wait_for = 250) + @queue = queue + @mutex = Mutex.new + # Note that @inflight_batches as a central mechanism for tracking inflight + # batches will fail if we have multiple read clients in the pipeline. + @inflight_batches = {} + # allow the worker thread to report the execution time of the filter + output + @inflight_clocks = {} + @batch_size = batch_size + @wait_for = wait_for + end + + def close + @queue.close + end + + def set_batch_dimensions(batch_size, wait_for) + @batch_size = batch_size + @wait_for = wait_for + end + + def set_events_metric(metric) + @event_metric = metric + end + + def set_pipeline_metric(metric) + @pipeline_metric = metric + end + + def inflight_batches + @mutex.synchronize do + yield(@inflight_batches) + end + end + + def current_inflight_batch + @inflight_batches.fetch(Thread.current, []) + end + + def take_batch + if @queue.closed? + raise QueueClosedError.new("Attempt to take a batch from a closed AckedQueue") + end + @mutex.synchronize do + batch = ReadBatch.new(@queue, @batch_size, @wait_for) + add_starting_metrics(batch) + set_current_thread_inflight_batch(batch) + start_clock + batch + end + end + + def set_current_thread_inflight_batch(batch) + @inflight_batches[Thread.current] = batch + end + + def close_batch(batch) + @mutex.synchronize do + batch.close + @inflight_batches.delete(Thread.current) + stop_clock + end + end + + def start_clock + @inflight_clocks[Thread.current] = [ + @event_metric.time(:duration_in_millis), + @pipeline_metric.time(:duration_in_millis) + ] + end + + def stop_clock + @inflight_clocks[Thread.current].each(&:stop) + @inflight_clocks.delete(Thread.current) + end + + def add_starting_metrics(batch) + return if @event_metric.nil? || @pipeline_metric.nil? + @event_metric.increment(:in, batch.starting_size) + @pipeline_metric.increment(:in, batch.starting_size) + end + + def add_filtered_metrics(batch) + @event_metric.increment(:filtered, batch.filtered_size) + @pipeline_metric.increment(:filtered, batch.filtered_size) + end + + def add_output_metrics(batch) + @event_metric.increment(:out, batch.filtered_size) + @pipeline_metric.increment(:out, batch.filtered_size) + end + end + + class ReadBatch + def initialize(queue, size, wait) + @originals = Hash.new + + # TODO: disabled for https://github.com/elastic/logstash/issues/6055 - will have to properly refactor + # @cancelled = Hash.new + + @generated = Hash.new + @iterating_temp = Hash.new + @iterating = false # Atomic Boolean maybe? Although batches are not shared across threads + take_originals_from_queue(queue, size, wait) # this sets a reference to @acked_batch + end + + def close + # this will ack the whole batch, regardless of whether some + # events were cancelled or failed + return if @acked_batch.nil? + @acked_batch.close + end + + def merge(event) + return if event.nil? || @originals.key?(event) + # take care not to cause @generated to change during iteration + # @iterating_temp is merged after the iteration + if iterating? + @iterating_temp[event] = true + else + # the periodic flush could generate events outside of an each iteration + @generated[event] = true + end + end + + def cancel(event) + # TODO: disabled for https://github.com/elastic/logstash/issues/6055 - will have to properly refactor + raise("cancel is unsupported") + # @cancelled[event] = true + end + + def each(&blk) + # take care not to cause @originals or @generated to change during iteration + + # below the checks for @cancelled.include?(e) have been replaced by e.cancelled? + # TODO: for https://github.com/elastic/logstash/issues/6055 = will have to properly refactor + @iterating = true + @originals.each do |e, _| + blk.call(e) unless e.cancelled? + end + @generated.each do |e, _| + blk.call(e) unless e.cancelled? + end + @iterating = false + update_generated + end + + def size + filtered_size + end + + def starting_size + @originals.size + end + + def filtered_size + @originals.size + @generated.size + end + + def cancelled_size + # TODO: disabled for https://github.com/elastic/logstash/issues/6055 = will have to properly refactor + raise("cancelled_size is unsupported ") + # @cancelled.size + end + + def shutdown_signal_received? + false + end + + def flush_signal_received? + false + end + + private + + def iterating? + @iterating + end + + def update_generated + @generated.update(@iterating_temp) + @iterating_temp.clear + end + + def take_originals_from_queue(queue, size, wait) + @acked_batch = queue.read_batch(size, wait) + return if @acked_batch.nil? + @acked_batch.get_elements.each do |e| + @originals[e] = true + end + end + end + + class WriteClient + def initialize(queue) + @queue = queue + end + + def get_new_batch + WriteBatch.new + end + + def push(event) + if @queue.closed? + raise QueueClosedError.new("Attempted to write an event to a closed AckedQueue") + end + @queue.push(event) + end + alias_method(:<<, :push) + + def push_batch(batch) + if @queue.closed? + raise QueueClosedError.new("Attempted to write a batch to a closed AckedQueue") + end + batch.each do |event| + push(event) + end + end + end + + class WriteBatch + def initialize + @events = [] + end + + def push(event) + @events.push(event) + end + alias_method(:<<, :push) + + def each(&blk) + @events.each do |e| + blk.call(e) + end + end + end + end +end end diff --git a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb index 55bc66c237e..6e401527696 100644 --- a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb @@ -5,8 +5,8 @@ class WrappedSynchronousQueue java_import java.util.concurrent.SynchronousQueue java_import java.util.concurrent.TimeUnit - def initialize() - @queue = java.util.concurrent.SynchronousQueue.new() + def initialize + @queue = java.util.concurrent.SynchronousQueue.new end # Push an object to the queue if the queue is full @@ -30,7 +30,7 @@ def offer(obj, timeout_ms) # Blocking def take - @queue.take() + @queue.take end # Block for X millis @@ -42,7 +42,7 @@ def write_client WriteClient.new(self) end - def read_client() + def read_client ReadClient.new(self) end @@ -51,7 +51,7 @@ class ReadClient # from this queue. We also depend on this to be able to block consumers while we snapshot # in-flight buffers - def initialize(queue, batch_size = 125, wait_for = 5) + def initialize(queue, batch_size = 125, wait_for = 250) @queue = queue @mutex = Mutex.new # Note that @infilght_batches as a central mechanism for tracking inflight @@ -64,6 +64,10 @@ def initialize(queue, batch_size = 125, wait_for = 5) @wait_for = wait_for end + def close + # noop, compat with acked queue read client + end + def set_batch_dimensions(batch_size, wait_for) @batch_size = batch_size @wait_for = wait_for @@ -145,8 +149,6 @@ def add_output_metrics(batch) class ReadBatch def initialize(queue, size, wait) - @shutdown_signal_received = false - @flush_signal_received = false @originals = Hash.new # TODO: disabled for https://github.com/elastic/logstash/issues/6055 - will have to properly refactor @@ -210,14 +212,6 @@ def cancelled_size # @cancelled.size end - def shutdown_signal_received? - @shutdown_signal_received - end - - def flush_signal_received? - @flush_signal_received - end - private def iterating? @@ -231,24 +225,10 @@ def update_generated def take_originals_from_queue(queue, size, wait) size.times do |t| - event = (t == 0) ? queue.take : queue.poll(wait) - if event.nil? - # queue poll timed out - next - elsif event.is_a?(LogStash::SignalEvent) - # We MUST break here. If a batch consumes two SHUTDOWN events - # then another worker may have its SHUTDOWN 'stolen', thus blocking - # the pipeline. - @shutdown_signal_received = event.shutdown? - - # See comment above - # We should stop doing work after flush as well. - @flush_signal_received = event.flush? - - break - else - @originals[event] = true - end + event = queue.poll(wait) + return if event.nil? # queue poll timed out + + @originals[event] = true end end end diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index 3b1ee5c62b3..f59d397b75e 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -11,13 +11,16 @@ Gem::Specification.new do |gem| gem.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html" gem.license = "Apache License (2.0)" - gem.files = Dir.glob(["logstash-core.gemspec", "lib/**/*.rb", "spec/**/*.rb", "locales/*", "lib/logstash/api/init.ru", "vendor/jars/**/*.jar"]) + gem.files = Dir.glob(["logstash-core.gemspec", "gemspec_jars.rb", "lib/**/*.rb", "spec/**/*.rb", "locales/*", "lib/logstash/api/init.ru"]) gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) gem.name = "logstash-core" - gem.require_paths = ["lib", "vendor/jars"] + gem.require_paths = ["lib"] gem.version = LOGSTASH_CORE_VERSION - gem.add_runtime_dependency "logstash-core-event-java", "6.0.0-alpha1" + gem.platform = "java" + + gem.add_runtime_dependency "logstash-core-event-java" + gem.add_runtime_dependency "logstash-core-queue-jruby" gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license) gem.add_runtime_dependency "stud", "~> 0.0.19" #(Apache 2.0 license) @@ -43,21 +46,13 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency "rubyzip", "~> 1.1.7" gem.add_runtime_dependency "thread_safe", "~> 0.3.5" #(Apache 2.0 license) - if RUBY_PLATFORM == 'java' - gem.platform = RUBY_PLATFORM - gem.add_runtime_dependency "jrjackson", "~> 0.4.0" #(Apache 2.0 license) - else - gem.add_runtime_dependency "oj" #(MIT-style license) - end - - if RUBY_ENGINE == "rbx" - # rubinius puts the ruby stdlib into gems. - gem.add_runtime_dependency "rubysl" + gem.add_runtime_dependency "jrjackson", "~> 0.4.0" #(Apache 2.0 license) - # Include racc to make the xml tests pass. - # https://github.com/rubinius/rubinius/issues/2632#issuecomment-26954565 - gem.add_runtime_dependency "racc" - end + gem.add_runtime_dependency "jar-dependencies" + # as of Feb 3rd 2016, the ruby-maven gem is resolved to version 3.3.3 and that version + # has an rdoc problem that causes a bundler exception. 3.3.9 is the current latest version + # which does not have this problem. + gem.add_runtime_dependency "ruby-maven", "~> 3.3.9" - gem.add_runtime_dependency 'jar-dependencies', '~> 0.3.4' + eval(File.read(File.expand_path("../gemspec_jars.rb", __FILE__))) end diff --git a/logstash-core/settings.gradle b/logstash-core/settings.gradle new file mode 100644 index 00000000000..4da77f25813 --- /dev/null +++ b/logstash-core/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'logstash-core' diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index a9ec4cde430..b46144dda97 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -396,6 +396,7 @@ class DummyOutput2 < DummyOutput; end let!(:dummy_output) { DummyOutput.new } let!(:dummy_output2) { DummyOutput2.new } + let(:initial_generator_threshold) { 1000 } before :each do allow(DummyOutput).to receive(:new).at_least(:once).with(anything).and_return(dummy_output) @@ -414,7 +415,8 @@ class DummyOutput2 < DummyOutput; end subject.execute end - sleep(0.01) until dummy_output.events.size > 1 + # wait for some events to reach the dummy_output + sleep(0.01) until dummy_output.events.size > initial_generator_threshold end after :each do @@ -431,15 +433,7 @@ class DummyOutput2 < DummyOutput; end let(:new_config_generator_counter) { 500 } let(:new_config) { "input { generator { count => #{new_config_generator_counter} } } output { dummyoutput2 {} }" } before :each do - # We know that the store has more events coming in. - i = 0 - while dummy_output.events.size <= new_config_generator_counter - i += 1 - raise "Waiting too long!" if i > 20 - sleep(0.1) - end - # Also force a flush to disk to make sure ruby reload it. File.open(config_path, "w") do |f| f.write(new_config) f.fsync @@ -449,21 +443,18 @@ class DummyOutput2 < DummyOutput; end # wait until pipeline restarts sleep(0.01) until dummy_output2.events.size > 0 - - # be eventually consistent. - sleep(0.01) while dummy_output2.events.size < new_config_generator_counter end it "resets the pipeline metric collector" do snapshot = subject.metric.collector.snapshot_metric value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:events][:in].value - expect(value).to eq(new_config_generator_counter) + expect(value).to be <= new_config_generator_counter end it "does not reset the global event count" do snapshot = subject.metric.collector.snapshot_metric value = snapshot.metric_store.get_with_path("/stats/events")[:stats][:events][:in].value - expect(value).to be > new_config_generator_counter + expect(value).to be > initial_generator_threshold end it "increases the successful reload count" do @@ -496,15 +487,7 @@ class DummyOutput2 < DummyOutput; end let(:new_config) { "input { generator { count => " } let(:new_config_generator_counter) { 500 } before :each do - # We know that the store has more events coming in. - i = 0 - while dummy_output.events.size <= new_config_generator_counter - i += 1 - raise "Waiting too long!" if i > 20 - sleep(0.1) - end - # Also force a flush to disk to make sure ruby reload it. File.open(config_path, "w") do |f| f.write(new_config) f.fsync diff --git a/logstash-core/spec/logstash/pipeline_pq_file_spec.rb b/logstash-core/spec/logstash/pipeline_pq_file_spec.rb new file mode 100644 index 00000000000..9349868eac6 --- /dev/null +++ b/logstash-core/spec/logstash/pipeline_pq_file_spec.rb @@ -0,0 +1,128 @@ +# encoding: utf-8 +require "spec_helper" +require "logstash/inputs/generator" +require "logstash/filters/multiline" + +class PipelinePqFileOutput < LogStash::Outputs::Base + config_name "pipelinepqfileoutput" + milestone 2 + + attr_reader :num_closes, :event_count + + def self.make_shared + @concurrency = :shared + end + + def initialize(params={}) + super + @num_closes = 0 + @event_count = 0 + @mutex = Mutex.new + end + + def register + self.class.make_shared + end + + def receive(event) + @mutex.synchronize do + @event_count = @event_count.succ + end + end + + def close + @num_closes = 1 + end +end + +describe LogStash::Pipeline do + let(:pipeline_settings_obj) { LogStash::SETTINGS } + let(:pipeline_id) { "main" } + + let(:multiline_id) { "my-multiline" } + let(:output_id) { "my-pipelinepqfileoutput" } + let(:generator_id) { "my-generator" } + let(:config) do + <<-EOS + input { + generator { + count => #{number_of_events} + id => "#{generator_id}" + } + } + filter { + multiline { + id => "#{multiline_id}" + pattern => "hello" + what => next + } + } + output { + pipelinepqfileoutput { + id => "#{output_id}" + } + } + EOS + end + + let(:pipeline_settings) { { "queue.type" => queue_type, "pipeline.workers" => worker_thread_count, "pipeline.id" => pipeline_id} } + + subject { described_class.new(config, pipeline_settings_obj, metric) } + + let(:counting_output) { PipelinePqFileOutput.new({ "id" => output_id }) } + let(:metric_store) { subject.metric.collector.snapshot_metric.metric_store } + let(:metric) { LogStash::Instrument::Metric.new(LogStash::Instrument::Collector.new) } + let(:base_queue_path) { pipeline_settings_obj.get("path.queue") } + let(:this_queue_folder) { File.join(base_queue_path, SecureRandom.hex(8)) } + + let(:worker_thread_count) { 8 } # 1 4 8 + let(:number_of_events) { 100_000 } + let(:page_capacity) { 1 * 1024 * 512 } # 1 128 + let(:queue_type) { "persisted" } # "memory" "memory_acked" + let(:times) { [] } + + before :each do + FileUtils.mkdir_p(this_queue_folder) + + pipeline_settings_obj.set("path.queue", this_queue_folder) + allow(PipelinePqFileOutput).to receive(:new).with(any_args).and_return(counting_output) + allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) + allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(LogStash::Codecs::Plain) + allow(LogStash::Plugin).to receive(:lookup).with("filter", "multiline").and_return(LogStash::Filters::Multiline) + allow(LogStash::Plugin).to receive(:lookup).with("output", "pipelinepqfileoutput").and_return(PipelinePqFileOutput) + + pipeline_workers_setting = LogStash::SETTINGS.get_setting("pipeline.workers") + allow(pipeline_workers_setting).to receive(:default).and_return(worker_thread_count) + pipeline_settings.each {|k, v| pipeline_settings_obj.set(k, v) } + pipeline_settings_obj.set("queue.page_capacity", page_capacity) + Thread.new do + # make sure we have received all the generated events + while counting_output.event_count < number_of_events do + sleep 1 + end + subject.shutdown + end + times.push(Time.now.to_f) + subject.run + times.unshift(Time.now.to_f - times.first) + end + + after :each do + # Dir.rm_rf(this_queue_folder) + end + + let(:collected_metric) { metric_store.get_with_path("stats/pipelines/") } + + it "populates the pipelines core metrics" do + _metric = collected_metric[:stats][:pipelines][:main][:events] + expect(_metric[:duration_in_millis].value).not_to be_nil + expect(_metric[:in].value).to eq(number_of_events) + expect(_metric[:filtered].value).to eq(number_of_events) + expect(_metric[:out].value).to eq(number_of_events) + STDOUT.puts " queue.type: #{pipeline_settings_obj.get("queue.type")}" + STDOUT.puts " queue.page_capacity: #{pipeline_settings_obj.get("queue.page_capacity") / 1024}KB" + STDOUT.puts " workers: #{worker_thread_count}" + STDOUT.puts " events: #{number_of_events}" + STDOUT.puts " took: #{times.first}s" + end +end diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 197f0631bd8..06007ecb1de 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -447,6 +447,9 @@ class TestPipeline < LogStash::Pipeline allow(settings).to receive(:get_value).with("pipeline.id").and_return("main") allow(settings).to receive(:get_value).with("metric.collect").and_return(false) allow(settings).to receive(:get_value).with("config.debug").and_return(false) + allow(settings).to receive(:get).with("queue.type").and_return("memory") + allow(settings).to receive(:get).with("queue.page_capacity").and_return(1024 * 1024) + allow(settings).to receive(:get).with("queue.max_events").and_return(250) pipeline = LogStash::Pipeline.new(config, settings) expect(pipeline.metric).to be_kind_of(LogStash::Instrument::NullMetric) @@ -509,7 +512,7 @@ class TestPipeline < LogStash::Pipeline pipeline = LogStash::Pipeline.new(config, pipeline_settings_obj) Thread.new { pipeline.run } sleep 0.1 while !pipeline.ready? - wait(5).for do + wait(3).for do # give us a bit of time to flush the events output.events.empty? end.to be_falsey @@ -549,10 +552,11 @@ class TestPipeline < LogStash::Pipeline end context "#started_at" do + # use a run limiting count to shutdown the pipeline automatically let(:config) do <<-EOS input { - generator {} + generator { count => 10 } } EOS end @@ -564,8 +568,7 @@ class TestPipeline < LogStash::Pipeline end it "return when the pipeline started working" do - t = Thread.new { subject.run } - sleep(0.1) + subject.run expect(subject.started_at).to be < Time.now subject.shutdown end @@ -604,7 +607,7 @@ class TestPipeline < LogStash::Pipeline let(:pipeline_settings) { { "pipeline.id" => pipeline_id } } let(:pipeline_id) { "main" } - let(:number_of_events) { 1000 } + let(:number_of_events) { 420 } let(:multiline_id) { "my-multiline" } let(:multiline_id_other) { "my-multiline_other" } let(:dummy_output_id) { "my-dummyoutput" } @@ -648,13 +651,10 @@ class TestPipeline < LogStash::Pipeline Thread.new { subject.run } # make sure we have received all the generated events - - times = 0 - while dummyoutput.events.size < number_of_events - times += 1 - sleep 0.25 - raise "Waited too long" if times > 4 - end + wait(3).for do + # give us a bit of time to flush the events + dummyoutput.events.size < number_of_events + end.to be_falsey end after :each do diff --git a/logstash-core/spec/logstash/settings/bytes_spec.rb b/logstash-core/spec/logstash/settings/bytes_spec.rb new file mode 100644 index 00000000000..b4fe0aab765 --- /dev/null +++ b/logstash-core/spec/logstash/settings/bytes_spec.rb @@ -0,0 +1,53 @@ +# encoding: utf-8 +require "spec_helper" +require "logstash/settings" + +describe LogStash::Setting::Bytes do + let(:multipliers) do + { + "b" => 1, + "kb" => 1 << 10, + "mb" => 1 << 20, + "gb" => 1 << 30, + "tb" => 1 << 40, + "pb" => 1 << 50, + } + end + + let(:number) { Flores::Random.number(0..1000) } + let(:unit) { Flores::Random.item(multipliers.keys) } + let(:default) { "0b" } + + subject { described_class.new("a byte value", default, false) } + + describe "#set" do + + # Hard-coded test just to make sure at least one known case is working + context "when given '10mb'" do + it "returns 10485760" do + expect(subject.set("10mb")).to be == 10485760 + end + end + + context "when given a string" do + context "which is a valid byte unit" do + let(:text) { "#{number}#{unit}" } + + before { subject.set(text) } + + it "should coerce it to a Fixnum" do + expect(subject.value).to be_a(Fixnum) + end + end + + context "which is not a valid byte unit" do + values = [ "hello world", "1234", "", "-__-" ] + values.each do |value| + it "should fail" do + expect { subject.set(value) }.to raise_error + end + end + end + end + end +end diff --git a/logstash-core/spec/logstash/settings/writable_directory_spec.rb b/logstash-core/spec/logstash/settings/writable_directory_spec.rb index be46b28a05e..2e322107391 100644 --- a/logstash-core/spec/logstash/settings/writable_directory_spec.rb +++ b/logstash-core/spec/logstash/settings/writable_directory_spec.rb @@ -79,12 +79,15 @@ it_behaves_like "failure" end - context "but is a socket" do + # Skip this test due to a testing bug on OSX. + # `path` is rejected on OSX because it is too long (but passes on Linux) + xcontext "but is a socket" do let(:socket) { UNIXServer.new(path) } before { socket } # realize `socket` value after { socket.close } it_behaves_like "failure" end + context "but is a symlink" do before { File::symlink("whatever", path) } it_behaves_like "failure" diff --git a/logstash-core/spec/logstash/util/byte_value_spec.rb b/logstash-core/spec/logstash/util/byte_value_spec.rb new file mode 100644 index 00000000000..a18e4ff11b9 --- /dev/null +++ b/logstash-core/spec/logstash/util/byte_value_spec.rb @@ -0,0 +1,33 @@ +require "logstash/util/byte_value" +require "flores/random" + +describe LogStash::Util::ByteValue do + let(:multipliers) do + { + "b" => 1, + "kb" => 1 << 10, + "mb" => 1 << 20, + "gb" => 1 << 30, + "tb" => 1 << 40, + "pb" => 1 << 50, + } + end + + let(:number) { Flores::Random.number(0..100000000000) } + let(:unit) { Flores::Random.item(multipliers.keys) } + let(:text) { "#{number}#{unit}" } + + describe "#parse" do + # Expect a whole-unit byte value. Fractions of a byte don't make sense here. :) + let(:expected) { (number * multipliers[unit]).to_i } + subject { described_class.parse(text) } + + it "should return a Numeric" do + expect(subject).to be_a(Numeric) + end + + it "should have an expected byte value" do + expect(subject).to be == expected + end + end +end diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Batch.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Batch.java new file mode 100644 index 00000000000..7ff83a1c75d --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Batch.java @@ -0,0 +1,44 @@ +package org.logstash.ackedqueue; + +import java.io.Closeable; +import java.io.IOException; +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; + +public class Batch implements Closeable { + + private final List elements; + + private final List seqNums; + private final Queue queue; + private final AtomicBoolean closed; + + public Batch(List elements, List seqNums, Queue q) { + this.elements = elements; + this.seqNums = seqNums; + this.queue = q; + this.closed = new AtomicBoolean(false); + } + + // close acks the batch ackable events + public void close() throws IOException { + if (closed.getAndSet(true) == false) { + this.queue.ack(this.seqNums); + } else { + // TODO: how should we handle double-closing? + throw new IOException("double closing batch"); + } + } + + public int size() { + return elements.size(); + } + + public List getElements() { + return elements; + } + + public Queue getQueue() { + return queue; + } +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java new file mode 100644 index 00000000000..4cee0611d83 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java @@ -0,0 +1,47 @@ +package org.logstash.ackedqueue; + +public class Checkpoint { +// Checkpoint file structure see FileCheckpointIO + + public static final int VERSION = 1; + + private final int pageNum; // local per-page page number + private final int firstUnackedPageNum; // queue-wide global pointer, only valid in the head checkpoint + private final long firstUnackedSeqNum; // local per-page unacknowledged tracking + private final long minSeqNum; // local per-page minimum seqNum + private final int elementCount; // local per-page element count + + + public Checkpoint(int pageNum, int firstUnackedPageNum, long firstUnackedSeqNum, long minSeqNum, int elementCount) { + this.pageNum = pageNum; + this.firstUnackedPageNum = firstUnackedPageNum; + this.firstUnackedSeqNum = firstUnackedSeqNum; + this.minSeqNum = minSeqNum; + this.elementCount = elementCount; + } + + public int getPageNum() { + return this.pageNum; + } + + public int getFirstUnackedPageNum() { + return this.firstUnackedPageNum; + } + + public long getFirstUnackedSeqNum() { + return this.firstUnackedSeqNum; + } + + public long getMinSeqNum() { + return this.minSeqNum; + } + + public int getElementCount() { + return this.elementCount; + } + + public String toString() { + return "pageNum=" + this.pageNum + ", firstUnackedPageNum=" + this.firstUnackedPageNum + ", firstUnackedSeqNum=" + this.firstUnackedSeqNum + ", minSeqNum=" + this.minSeqNum + ", elementCount=" + this.elementCount; + } + +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java new file mode 100644 index 00000000000..cb0024e28e6 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java @@ -0,0 +1,79 @@ +package org.logstash.ackedqueue; + +import org.logstash.common.io.CheckpointIOFactory; +import org.logstash.common.io.PageIOFactory; + +public class FileSettings implements Settings { + private String dirForFiles; + private CheckpointIOFactory checkpointIOFactory; + private PageIOFactory pageIOFactory; + private Class elementClass; + private int capacity; + private int maxUnread; + + private FileSettings() { this(""); } + + public FileSettings(String dirPath) { + this.dirForFiles = dirPath; + this.maxUnread = 0; + } + + @Override + public Settings setCheckpointIOFactory(CheckpointIOFactory factory) { + this.checkpointIOFactory = factory; + return this; + } + + @Override + public Settings setElementIOFactory(PageIOFactory factory) { + this.pageIOFactory = factory; + return this; + } + + @Override + public Settings setElementClass(Class elementClass) { + this.elementClass = elementClass; + return this; + } + + @Override + public Settings setCapacity(int capacity) { + this.capacity = capacity; + return this; + } + + @Override + public Settings setMaxUnread(int maxUnread) { + this.maxUnread = maxUnread; + return this; + } + + @Override + public CheckpointIOFactory getCheckpointIOFactory() { + return checkpointIOFactory; + } + + public PageIOFactory getPageIOFactory() { + return pageIOFactory; + } + + @Override + public Class getElementClass() { + return this.elementClass; + } + + @Override + public String getDirPath() { + return dirForFiles; + } + + @Override + public int getCapacity() { + return capacity; + } + + @Override + public int getMaxUnread() { + return this.maxUnread; + } +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/HeadPage.java b/logstash-core/src/main/java/org/logstash/ackedqueue/HeadPage.java new file mode 100644 index 00000000000..301f083b5a3 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/HeadPage.java @@ -0,0 +1,106 @@ +package org.logstash.ackedqueue; + +import org.logstash.common.io.CheckpointIO; +import org.logstash.common.io.PageIO; + +import java.io.IOException; +import java.util.BitSet; + +public class HeadPage extends Page { + + // create a new HeadPage object and new page.{pageNum} empty valid data file + public HeadPage(int pageNum, Queue queue, PageIO pageIO) throws IOException { + super(pageNum, queue, 0, 0, 0, new BitSet(), pageIO); + pageIO.create(); + } + + // create a new HeadPage object from an existing checkpoint and open page.{pageNum} empty valid data file + public HeadPage(Checkpoint checkpoint, Queue queue, PageIO pageIO) throws IOException { + super(checkpoint.getPageNum(), queue, checkpoint.getMinSeqNum(), checkpoint.getElementCount(), checkpoint.getFirstUnackedSeqNum(), new BitSet(), pageIO); + + // open the data file and reconstruct the IO object internal state + pageIO.open(checkpoint.getMinSeqNum(), checkpoint.getElementCount()); + + // this page ackedSeqNums bitset is a new empty bitset, if we have some acked elements, set them in the bitset + if (checkpoint.getFirstUnackedSeqNum() > checkpoint.getMinSeqNum()) { + this.ackedSeqNums.flip(0, (int) (checkpoint.getFirstUnackedSeqNum() - checkpoint.getMinSeqNum())); + } + } + + // verify if data size plus overhead is not greater than the page capacity + public boolean hasCapacity(int byteSize) { + return this.pageIO.persistedByteCount(byteSize) <= this.pageIO.getCapacity(); + } + + public boolean hasSpace(int byteSize) { + return this.pageIO.hasSpace((byteSize)); + } + + // NOTE: + // we have a page concern inconsistency where readBatch() takes care of the + // deserialization and returns a Batch object which contains the deserialized + // elements objects of the proper elementClass but HeadPage.write() deals with + // a serialized element byte[] and serialization is done at the Queue level to + // be able to use the Page.hasSpace() method with the serialized element byte size. + // + public void write(byte[] bytes, long seqNum) throws IOException { + this.pageIO.write(bytes, seqNum); + + if (this.minSeqNum <= 0) { + this.minSeqNum = seqNum; + this.firstUnreadSeqNum = seqNum; + } + this.elementCount++; + } + + public void ensurePersistedUpto(long seqNum) throws IOException { + long lastCheckpointUptoSeqNum = this.lastCheckpoint.getMinSeqNum() + this.lastCheckpoint.getElementCount(); + + // if the last checkpoint for this headpage already included the given seqNum, no need to fsync/checkpoint + if (seqNum > lastCheckpointUptoSeqNum) { + // head page checkpoint does a data file fsync + checkpoint(); + } + } + + + public TailPage behead() throws IOException { + // first do we need to checkpoint+fsync the headpage a last time? + if (this.elementCount > this.lastCheckpoint.getElementCount()) { + checkpoint(); + } + + TailPage tailPage = new TailPage(this); + + // first thing that must be done after beheading is to create a new checkpoint for that new tail page + // tail page checkpoint does NOT includes a fsync + tailPage.checkpoint(); + + // TODO: should we have a better deactivation strategy to avoid too rapid reactivation scenario? + Page firstUnreadPage = queue.firstUnreadPage(); + if (firstUnreadPage == null || (tailPage.getPageNum() > firstUnreadPage.getPageNum())) { + // deactivate if this new tailPage is not where the read is occuring + tailPage.getPageIO().deactivate(); + } + + return tailPage; + } + + public void checkpoint() throws IOException { + // TODO: not concurrent for first iteration: + + // first fsync data file + this.pageIO.ensurePersisted(); + + // then write new checkpoint + + CheckpointIO io = queue.getCheckpointIO(); + this.lastCheckpoint = io.write(io.headFileName(), this.pageNum, this.queue.firstUnackedPageNum(), firstUnackedSeqNum(), this.minSeqNum, this.elementCount); + } + + public void close() throws IOException { + checkpoint(); + this.pageIO.close(); + } + +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java new file mode 100644 index 00000000000..c7e3dd8c4b0 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java @@ -0,0 +1,81 @@ +package org.logstash.ackedqueue; + +import org.logstash.common.io.CheckpointIOFactory; +import org.logstash.common.io.PageIOFactory; + +public class MemorySettings implements Settings { + private CheckpointIOFactory checkpointIOFactory; + private PageIOFactory pageIOFactory; + private Class elementClass; + private int capacity; + private final String dirPath; + private int maxUnread; + + public MemorySettings() { + this(""); + } + + public MemorySettings(String dirPath) { + this.dirPath = dirPath; + this.maxUnread = 0; + } + + @Override + public Settings setCheckpointIOFactory(CheckpointIOFactory factory) { + this.checkpointIOFactory = factory; + return this; + } + + @Override + public Settings setElementIOFactory(PageIOFactory factory) { + this.pageIOFactory = factory; + return this; + } + + @Override + public Settings setElementClass(Class elementClass) { + this.elementClass = elementClass; + return this; + } + + @Override + public Settings setCapacity(int capacity) { + this.capacity = capacity; + return this; + } + + @Override + public Settings setMaxUnread(int maxUnread) { + this.maxUnread = maxUnread; + return this; + } + + @Override + public CheckpointIOFactory getCheckpointIOFactory() { + return checkpointIOFactory; + } + + public PageIOFactory getPageIOFactory() { + return pageIOFactory; + } + + @Override + public Class getElementClass() { + return this.elementClass; + } + + @Override + public String getDirPath() { + return this.dirPath; + } + + @Override + public int getCapacity() { + return this.capacity; + } + + @Override + public int getMaxUnread() { + return this.maxUnread; + } +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java new file mode 100644 index 00000000000..ab3f0611b88 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java @@ -0,0 +1,151 @@ +package org.logstash.ackedqueue; + +import org.logstash.common.io.PageIO; + +import java.io.Closeable; +import java.io.IOException; +import java.util.BitSet; +import java.util.List; +import java.util.stream.Collectors; + +public abstract class Page implements Closeable { + protected final int pageNum; + protected long minSeqNum; // TODO: see if we can meke it final? + protected int elementCount; + protected long firstUnreadSeqNum; + protected final Queue queue; + protected PageIO pageIO; + + // bit 0 is minSeqNum + // TODO: go steal LocalCheckpointService in feature/seq_no from ES + // TODO: https://github.com/elastic/elasticsearch/blob/feature/seq_no/core/src/main/java/org/elasticsearch/index/seqno/LocalCheckpointService.java + protected BitSet ackedSeqNums; + protected Checkpoint lastCheckpoint; + + public Page(int pageNum, Queue queue, long minSeqNum, int elementCount, long firstUnreadSeqNum, BitSet ackedSeqNums, PageIO pageIO) { + this.pageNum = pageNum; + this.queue = queue; + + this.minSeqNum = minSeqNum; + this.elementCount = elementCount; + this.firstUnreadSeqNum = firstUnreadSeqNum; + this.ackedSeqNums = ackedSeqNums; + this.lastCheckpoint = new Checkpoint(0, 0, 0, 0, 0); + this.pageIO = pageIO; + } + + public String toString() { + return "pageNum=" + this.pageNum + ", minSeqNum=" + this.minSeqNum + ", elementCount=" + this.elementCount + ", firstUnreadSeqNum=" + this.firstUnreadSeqNum; + } + + // NOTE: + // we have a page concern inconsistency where readBatch() takes care of the + // deserialization and returns a Batch object which contains the deserialized + // elements objects of the proper elementClass but HeadPage.write() deals with + // a serialized element byte[] and serialization is done at the Queue level to + // be able to use the Page.hasSpace() method with the serialized element byte size. + // + // @param limit the batch size limit + // @param elementClass the concrete element class for deserialization + // @return Batch batch of elements read when the number of elements can be <= limit + public Batch readBatch(int limit) throws IOException { + + // first make sure this page is activated, activating previously activated is harmless + this.pageIO.activate(); + + SequencedList serialized = this.pageIO.read(this.firstUnreadSeqNum, limit); + List deserialized = serialized.getElements().stream().map(e -> this.queue.deserialize(e)).collect(Collectors.toList()); + + assert serialized.getSeqNums().get(0) == this.firstUnreadSeqNum : + String.format("firstUnreadSeqNum=%d != first result seqNum=%d", this.firstUnreadSeqNum, serialized.getSeqNums().get(0)); + + Batch batch = new Batch(deserialized, serialized.getSeqNums(), this.queue); + + this.firstUnreadSeqNum += deserialized.size(); + + return batch; + } + + public boolean isFullyRead() { + return unreadCount() <= 0; +// return this.elementCount <= 0 || this.firstUnreadSeqNum > maxSeqNum(); + } + + public boolean isFullyAcked() { + // TODO: it should be something similar to this when we use a proper bitset class like ES + // this.ackedSeqNum.firstUnackedBit >= this.elementCount; + // TODO: for now use a naive & inneficient mechanism with a simple Bitset + return this.elementCount > 0 && this.ackedSeqNums.cardinality() >= this.elementCount; + } + + public long unreadCount() { + return this.elementCount <= 0 ? 0 : Math.max(0, (maxSeqNum() - this.firstUnreadSeqNum) + 1); + } + + public void ack(List seqNums) throws IOException { + for (long seqNum : seqNums) { + // TODO: eventually refactor to use new bit handling class + + assert seqNum >= this.minSeqNum : + String.format("seqNum=%d is smaller than minSeqnum=%d", seqNum, this.minSeqNum); + + assert seqNum < this.minSeqNum + this.elementCount: + String.format("seqNum=%d is greater than minSeqnum=%d + elementCount=%d = %d", seqNum, this.minSeqNum, this.elementCount, this.minSeqNum + this.elementCount); + int index = (int)(seqNum - this.minSeqNum); + + this.ackedSeqNums.set(index); + } + + // checkpoint if totally acked or we acked more than 1024 elements in this page since last checkpoint + long firstUnackedSeqNum = firstUnackedSeqNum(); + + if (isFullyAcked()) { + // TODO: here if consumer is faster than producer, the head page may be always fully acked and we may end up fsync'ing too ofter? + checkpoint(); + + assert firstUnackedSeqNum >= this.minSeqNum + this.elementCount - 1: + String.format("invalid firstUnackedSeqNum=%d for minSeqNum=%d and elementCount=%d and cardinality=%d", firstUnackedSeqNum, this.minSeqNum, this.elementCount, this.ackedSeqNums.cardinality()); + + } else if (firstUnackedSeqNum > this.lastCheckpoint.getFirstUnackedSeqNum() + 1024) { + // did we acked more that 1024 elements? if so we should checkpoint now + checkpoint(); + } + } + + public abstract void checkpoint() throws IOException; + + public abstract void close() throws IOException; + + public int getPageNum() { + return pageNum; + } + + public long getMinSeqNum() { + return this.minSeqNum; + } + + public int getElementCount() { + return elementCount; + } + + public Queue getQueue() { + return queue; + } + + public PageIO getPageIO() { + return pageIO; + } + + protected long maxSeqNum() { + return this.minSeqNum + this.elementCount - 1; + } + + protected long firstUnackedSeqNum() { + // TODO: eventually refactor to use new bithandling class + return this.ackedSeqNums.nextClearBit(0) + this.minSeqNum; + } + + protected int firstUnackedPageNumFromQueue() { + return queue.firstUnackedPageNum(); + } +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java new file mode 100644 index 00000000000..57c138bfaa3 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java @@ -0,0 +1,519 @@ +package org.logstash.ackedqueue; + +import org.logstash.common.io.CheckpointIO; +import org.logstash.common.io.PageIO; +import org.logstash.common.io.PageIOFactory; + +import java.io.Closeable; +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.nio.file.NoSuchFileException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + + +// TODO: Notes +// +// - time-based fsync +// +// - tragic errors handling +// - what errors cause whole queue to be broken +// - where to put try/catch for these errors + + +public class Queue implements Closeable { + protected long seqNum; + protected HeadPage headPage; + + // complete list of all non fully acked pages. note that exact sequenciality by pageNum cannot be assumed + // because any fully acked page will be removed from this list potentially creating pageNum gaps in the list. + protected final List tailPages; + + // this list serves the only purpose of quickly retrieving the first unread page, operation necessary on every read + // reads will simply remove the first page from the list when fully read and writes will append new pages upon beheading + protected final List unreadTailPages; + + protected volatile long unreadCount; + + private final CheckpointIO checkpointIO; + private final PageIOFactory pageIOFactory; + private final int pageCapacity; + private final String dirPath; + private final int maxUnread; + + private final AtomicBoolean closed; + + // deserialization + private final Class elementClass; + private final Method deserializeMethod; + + // thread safety + final Lock lock = new ReentrantLock(); + final Condition notFull = lock.newCondition(); + final Condition notEmpty = lock.newCondition(); + + public Queue(Settings settings) { + this(settings.getDirPath(), settings.getCapacity(), settings.getCheckpointIOFactory().build(settings.getDirPath()), settings.getPageIOFactory(), settings.getElementClass(), settings.getMaxUnread()); + } + + public Queue(String dirPath, int pageCapacity, CheckpointIO checkpointIO, PageIOFactory pageIOFactory, Class elementClass, int maxUnread) { + this.dirPath = dirPath; + this.pageCapacity = pageCapacity; + this.checkpointIO = checkpointIO; + this.pageIOFactory = pageIOFactory; + this.elementClass = elementClass; + this.tailPages = new ArrayList<>(); + this.unreadTailPages = new ArrayList<>(); + this.closed = new AtomicBoolean(true); // not yet opened + this.maxUnread = maxUnread; + this.unreadCount = 0; + + // retrieve the deserialize method + try { + Class[] cArg = new Class[1]; + cArg[0] = byte[].class; + this.deserializeMethod = this.elementClass.getDeclaredMethod("deserialize", cArg); + } catch (NoSuchMethodException e) { + throw new QueueRuntimeException("cannot find deserialize method on class " + this.elementClass.getName(), e); + } + } + + // moved queue opening logic in open() method until we have something in place to used in-memory checkpoints for testing + // because for now we need to pass a Queue instance to the Page and we don't want to trigger a Queue recovery when + // testing Page + public void open() throws IOException { + final int headPageNum; + + if (!this.closed.get()) { throw new IOException("queue already opened"); } + + Checkpoint headCheckpoint; + try { + headCheckpoint = checkpointIO.read(checkpointIO.headFileName()); + } catch (NoSuchFileException e) { + headCheckpoint = null; + } + + // if there is no head checkpoint, create a new headpage and checkpoint it and exit method + if (headCheckpoint == null) { + this.seqNum = 0; + headPageNum = 0; + + newCheckpointedHeadpage(headPageNum); + this.closed.set(false); + + return; + } + + // at this point we have a head checkpoint to figure queue recovery + + // reconstruct all tail pages state upto but excluding the head page + for (int pageNum = headCheckpoint.getFirstUnackedPageNum(); pageNum < headCheckpoint.getPageNum(); pageNum++) { + Checkpoint tailCheckpoint = checkpointIO.read(checkpointIO.tailFileName(pageNum)); + + if (tailCheckpoint == null) { throw new IOException(checkpointIO.tailFileName(pageNum) + " not found"); } + + PageIO pageIO = this.pageIOFactory.build(pageNum, this.pageCapacity, this.dirPath); + TailPage tailPage = new TailPage(tailCheckpoint, this, pageIO); + + // if this page is not the first tail page, deactivate it + // we keep the first tail page activated since we know the next read operation will be in that one + if (pageNum > headCheckpoint.getFirstUnackedPageNum()) { pageIO.deactivate(); } + + // track the seqNum as we rebuild tail pages, prevent empty pages with a minSeqNum of 0 to reset seqNum + if (tailPage.maxSeqNum() > this.seqNum) { this.seqNum = tailPage.maxSeqNum(); } + + insertTailPage(tailPage); + } + + // transform the head page into a tail page only if the headpage is non-empty + + if (headCheckpoint.getMinSeqNum() <= 0 && headCheckpoint.getElementCount() <= 0) { + PageIO headPageIO = this.pageIOFactory.build(headCheckpoint.getPageNum(), this.pageCapacity, this.dirPath); + this.headPage = new HeadPage(headCheckpoint, this, headPageIO); + } else { + PageIO tailPageIO = this.pageIOFactory.build(headCheckpoint.getPageNum(), this.pageCapacity, this.dirPath); + TailPage tailPage = new TailPage(headCheckpoint, this, tailPageIO); + + // track the seqNum as we add this new tail page, prevent empty tailPage with a minSeqNum of 0 to reset seqNum + if (tailPage.maxSeqNum() > this.seqNum) { this.seqNum = tailPage.maxSeqNum(); } + + insertTailPage(tailPage); + + headPageNum = headCheckpoint.getPageNum() + 1; + newCheckpointedHeadpage(headPageNum); + } + + // TODO: here do directory traversal and cleanup lingering pages? could be a background operations to not delay queue start? + + this.closed.set(false); + } + + // insert a recovered tail page into the tail pages state tracking + // and purge it if it is found to be fully acked + private void insertTailPage(TailPage p) throws IOException { + if (!p.isFullyAcked()) { + this.tailPages.add(p); + if (!p.isFullyRead()) { + this.unreadTailPages.add(p); + this.unreadCount += p.unreadCount(); + } + } else { + // for some reason we found a fully acked page, let's purge it. + p.purge(); + } + } + + // create a new empty headpage for the given pageNum and imidiately checkpoint it + // @param pageNum the page number of the new head page + private void newCheckpointedHeadpage(int pageNum) throws IOException { + PageIO headPageIO = this.pageIOFactory.build(pageNum, this.pageCapacity, this.dirPath); + this.headPage = new HeadPage(pageNum, this, headPageIO); + this.headPage.checkpoint(); + + } + + // @param element the Queueable object to write to the queue + // @return long written sequence number + public long write(Queueable element) throws IOException { + long seqNum = nextSeqNum(); + byte[] data = element.serialize(); + + if (! this.headPage.hasCapacity(data.length)) { + throw new IOException("data to be written is bigger than page capacity"); + } + + // the write strategy with regard to the isFull() state is to assume there is space for this element + // and write it, then after write verify if we just filled the queue and wait on the notFull condition + // *after* the write which is both safer for a crash condition, and the queue closing sequence. In the former case + // holding an element in memory while wainting for the notFull condition would mean always having the current write + // element at risk in the always-full queue state. In the later, when closing a full queue, it would be impossible + // to write the current element. + + lock.lock(); + try { + boolean wasEmpty = (firstUnreadPage() == null); + + // create a new head page if the current does not have suffient space left for data to be written + if (! this.headPage.hasSpace(data.length)) { + // beheading includes checkpoint+fsync if required + TailPage tailPage = this.headPage.behead(); + + this.tailPages.add(tailPage); + if (! tailPage.isFullyRead()) { + this.unreadTailPages.add(tailPage); + } + + // create new head page + int headPageNum = tailPage.pageNum + 1; + PageIO pageIO = this.pageIOFactory.build(headPageNum, this.pageCapacity, this.dirPath); + this.headPage = new HeadPage(headPageNum, this, pageIO); + this.headPage.checkpoint(); + } + + this.headPage.write(data, seqNum); + this.unreadCount++; + + // if the queue was empty before write, signal non emptiness + if (wasEmpty) { notEmpty.signal(); } + + // now check if we reached a queue full state and block here until it is not full + // for the next write or the queue was closed. + while (isFull() && !isClosed()) { + try { + notFull.await(); + } catch (InterruptedException e) { + // the thread interrupt() has been called while in the await() blocking call. + // at this point the interrupted flag is reset and Thread.interrupted() will return false + // to any upstream calls on it. for now our choice is to return normally and set back + // the Thread.interrupted() flag so it can be checked upstream. + + // this is a bit tricky in the case of the queue full condition blocking state. + // TODO: we will want to avoid initiating a new write operation if Thread.interrupted() was called. + + // set back the interrupted flag + Thread.currentThread().interrupt(); + + return seqNum; + } + } + + return seqNum; + } finally { + lock.unlock(); + } + } + + // @return true if the queue is deemed at full capacity + public boolean isFull() { + // TODO: I am not sure if having unreadCount as volatile is sufficient here. all unreadCount updates are done inside syncronized + // TODO: sections, I believe that to only read the value here, having it as volatile is sufficient? + return (this.maxUnread > 0) ? this.unreadCount >= this.maxUnread : false; + } + + // @param seqNum the element sequence number upper bound for which persistence should be garanteed (by fsync'ing) + public void ensurePersistedUpto(long seqNum) throws IOException{ + lock.lock(); + try { + this.headPage.ensurePersistedUpto(seqNum); + } finally { + lock.unlock(); + } + } + + // non-blockin queue read + // @param limit read the next bach of size up to this limit. the returned batch size can be smaller than than the requested limit if fewer elements are available + // @return Batch the batch containing 1 or more element up to the required limit or null of no elements were available + public Batch nonBlockReadBatch(int limit) throws IOException { + lock.lock(); + try { + Page p = firstUnreadPage(); + if (p == null) { + return null; + } + + return _readPageBatch(p, limit); + } finally { + lock.unlock(); + } + } + + // blocking readBatch notes: + // the queue close() notifies all pending blocking read so that they unblock if the queue is being closed. + // this means that all blocking read methods need to verify for the queue close condition. + // + // blocking queue read until elements are available for read + // @param limit read the next bach of size up to this limit. the returned batch size can be smaller than than the requested limit if fewer elements are available + // @return Batch the batch containing 1 or more element up to the required limit or null if no elements were available or the blocking call was interrupted + public Batch readBatch(int limit) throws IOException { + Page p; + + lock.lock(); + try { + while ((p = firstUnreadPage()) == null && !isClosed()) { + try { + notEmpty.await(); + } catch (InterruptedException e) { + // the thread interrupt() has been called while in the await() blocking call. + // at this point the interrupted flag is reset and Thread.interrupted() will return false + // to any upstream calls on it. for now our choice is to simply return null and set back + // the Thread.interrupted() flag so it can be checked upstream. + + // set back the interrupted flag + Thread.currentThread().interrupt(); + + return null; + } + } + + // need to check for close since it is a condition for exiting the while loop + if (isClosed()) { return null; } + + return _readPageBatch(p, limit); + } finally { + lock.unlock(); + } + } + + // blocking queue read until elements are available for read or the given timeout is reached. + // @param limit read the next batch of size up to this limit. the returned batch size can be smaller than than the requested limit if fewer elements are available + // @param timeout the maximum time to wait in milliseconds + // @return Batch the batch containing 1 or more element up to the required limit or null if no elements were available or the blocking call was interrupted + public Batch readBatch(int limit, long timeout) throws IOException { + Page p; + + lock.lock(); + try { + // wait only if queue is empty + if ((p = firstUnreadPage()) == null) { + try { + notEmpty.await(timeout, TimeUnit.MILLISECONDS); + } catch (InterruptedException e) { + // the thread interrupt() has been called while in the await() blocking call. + // at this point the interrupted flag is reset and Thread.interrupted() will return false + // to any upstream calls on it. for now our choice is to simply return null and set back + // the Thread.interrupted() flag so it can be checked upstream. + + // set back the interrupted flag + Thread.currentThread().interrupt(); + + return null; + } + + // if after returnining from wait queue is still empty, or the queue was closed return null + if ((p = firstUnreadPage()) == null || isClosed()) { return null; } + } + + return _readPageBatch(p, limit); + } finally { + lock.unlock(); + } + } + + private Batch _readPageBatch(Page p, int limit) throws IOException { + boolean wasFull = isFull(); + + Batch b = p.readBatch(limit); + this.unreadCount -= b.size(); + + if (p.isFullyRead()) { + removeUnreadPage(p); + } + + if (wasFull) { notFull.signal(); } + + return b; + } + + private static class TailPageResult { + public TailPage page; + public int index; + + public TailPageResult(TailPage page, int index) { + this.page = page; + this.index = index; + } + } + + // perform a binary search through tail pages to find in which page this seqNum falls into + private TailPageResult binaryFindPageForSeqnum(long seqNum) { + int lo = 0; + int hi = this.tailPages.size() - 1; + while (lo <= hi) { + int mid = lo + (hi - lo) / 2; + TailPage p = this.tailPages.get(mid); + + if (seqNum < p.getMinSeqNum()) { + hi = mid - 1; + } else if (seqNum >= (p.getMinSeqNum() + p.getElementCount())) { + lo = mid + 1; + } else { + return new TailPageResult(p, mid); + } + } + return null; + } + + // perform a linear search through tail pages to find in which page this seqNum falls into + private TailPageResult linearFindPageForSeqnum(long seqNum) { + for (int i = 0; i < this.tailPages.size(); i++) { + TailPage p = this.tailPages.get(i); + if (p.getMinSeqNum() > 0 && seqNum >= p.getMinSeqNum() && seqNum < p.getMinSeqNum() + p.getElementCount()) { + return new TailPageResult(p, i); + } + } + return null; + } + + public void ack(List seqNums) throws IOException { + // as a first implementation we assume that all batches are created from the same page + // so we will avoid multi pages acking here for now + + // find the page to ack by travesing from oldest tail page + long firstAckSeqNum = seqNums.get(0); + + lock.lock(); + try { + // dual search strategy: if few tail pages search linearily otherwise perform binary search + TailPageResult result = (this.tailPages.size() > 3) ? binaryFindPageForSeqnum(firstAckSeqNum) : linearFindPageForSeqnum(firstAckSeqNum); + + if (result == null) { + // if not found then it is in head page + assert this.headPage.getMinSeqNum() > 0 && firstAckSeqNum >= this.headPage.getMinSeqNum() && firstAckSeqNum < this.headPage.getMinSeqNum() + this.headPage.getElementCount(): + String.format("seqNum=%d is not in head page with minSeqNum=%d", firstAckSeqNum, this.headPage.getMinSeqNum()); + this.headPage.ack(seqNums); + } else { + result.page.ack(seqNums); + + // cleanup fully acked tail page + if (result.page.isFullyAcked()) { + this.tailPages.remove(result.index); + this.headPage.checkpoint(); + result.page.purge(); + } + } + } finally { + lock.unlock(); + } + } + + public CheckpointIO getCheckpointIO() { + return this.checkpointIO; + } + + // deserialize a byte array into the required element class. + // @param bytes the byte array to deserialize + // @return Queueable the deserialized byte array into the required Queuable interface implementation concrete class + public Queueable deserialize(byte[] bytes) { + try { + return (Queueable)this.deserializeMethod.invoke(this.elementClass, bytes); + } catch (IllegalAccessException|InvocationTargetException e) { + throw new QueueRuntimeException("deserialize invocation error", e); + } + } + + public void close() throws IOException { + // TODO: review close strategy and exception handling and resiliency of first closing tail pages if crash in the middle + + if (closed.getAndSet(true) == false) { + lock.lock(); + try { + // TODO: not sure if we need to do this here since the headpage close will also call ensurePersited + ensurePersistedUpto(this.seqNum); + + for (TailPage p : this.tailPages) { p.close(); } + this.headPage.close(); + + // release all referenced objects + this.tailPages.clear(); + this.unreadTailPages.clear(); + this.headPage = null; + + // unblock blocked reads which will return null by checking of isClosed() + // no data will be lost because the actual read has not been performed + notEmpty.signalAll(); + + + // unblock blocked writes. a write is blocked *after* the write has been performed so + // unblocking is safe and will return from the write call + notFull.signalAll(); + } finally { + lock.unlock(); + } + } + } + + protected Page firstUnreadPage() throws IOException { + // look at head page if no unreadTailPages + return (this.unreadTailPages.isEmpty()) ? (this.headPage.isFullyRead() ? null : this.headPage) : this.unreadTailPages.get(0); + } + + private void removeUnreadPage(Page p) { + // HeadPage is not part of the unreadTailPages, just ignore + if (p instanceof TailPage){ + // the page to remove should always be the first one + assert this.unreadTailPages.get(0) == p : String.format("unread page is not first in unreadTailPages list"); + this.unreadTailPages.remove(0); + } + } + + protected int firstUnackedPageNum() { + if (this.tailPages.isEmpty()) { + return this.headPage.getPageNum(); + } + return this.tailPages.get(0).getPageNum(); + } + + protected long nextSeqNum() { + return this.seqNum += 1; + } + + protected boolean isClosed() { + return this.closed.get(); + } +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/QueueRuntimeException.java b/logstash-core/src/main/java/org/logstash/ackedqueue/QueueRuntimeException.java new file mode 100644 index 00000000000..06b8639d5b0 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/QueueRuntimeException.java @@ -0,0 +1,29 @@ +package org.logstash.ackedqueue; + +public class QueueRuntimeException extends RuntimeException { + + public static QueueRuntimeException newFormatMessage(String fmt, Object... args) { + return new QueueRuntimeException( + String.format(fmt, args) + ); + } + + public QueueRuntimeException() { + } + + public QueueRuntimeException(String message) { + super(message); + } + + public QueueRuntimeException(String message, Throwable cause) { + super(message, cause); + } + + public QueueRuntimeException(Throwable cause) { + super(cause); + } + + public QueueRuntimeException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queueable.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queueable.java new file mode 100644 index 00000000000..2becec11d3b --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queueable.java @@ -0,0 +1,10 @@ +package org.logstash.ackedqueue; + +import java.io.IOException; + +public interface Queueable { + + byte[] serialize() throws IOException; + + static Object deserialize(byte[] bytes) { throw new RuntimeException("please implement deserialize"); }; +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/SequencedList.java b/logstash-core/src/main/java/org/logstash/ackedqueue/SequencedList.java new file mode 100644 index 00000000000..8bb580fe053 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/SequencedList.java @@ -0,0 +1,21 @@ +package org.logstash.ackedqueue; + +import java.util.List; + +public class SequencedList { + private final List elements; + private final List seqNums; + + public SequencedList(List elements, List seqNums) { + this.elements = elements; + this.seqNums = seqNums; + } + + public List getElements() { + return elements; + } + + public List getSeqNums() { + return seqNums; + } +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java new file mode 100644 index 00000000000..1b847e0fc2c --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java @@ -0,0 +1,28 @@ +package org.logstash.ackedqueue; + +import org.logstash.common.io.CheckpointIOFactory; +import org.logstash.common.io.PageIOFactory; + +public interface Settings { + Settings setCheckpointIOFactory(CheckpointIOFactory factory); + + Settings setElementIOFactory(PageIOFactory factory); + + Settings setElementClass(Class elementClass); + + Settings setCapacity(int capacity); + + Settings setMaxUnread(int maxUnread); + + CheckpointIOFactory getCheckpointIOFactory(); + + PageIOFactory getPageIOFactory(); + + Class getElementClass(); + + String getDirPath(); + + int getCapacity(); + + int getMaxUnread(); +} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/TailPage.java b/logstash-core/src/main/java/org/logstash/ackedqueue/TailPage.java new file mode 100644 index 00000000000..8a8b2b721a5 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/TailPage.java @@ -0,0 +1,48 @@ +package org.logstash.ackedqueue; + +import org.logstash.common.io.CheckpointIO; +import org.logstash.common.io.PageIO; + +import java.io.IOException; +import java.util.BitSet; + +public class TailPage extends Page { + + // create a new TailPage object from a HeadPage object + public TailPage(HeadPage page) { + super(page.pageNum, page.queue, page.minSeqNum, page.elementCount, page.firstUnreadSeqNum, page.ackedSeqNums, page.pageIO); + } + + // create a new TailPage object for an exiting Checkpoint and data file + public TailPage(Checkpoint checkpoint, Queue queue, PageIO pageIO) throws IOException { + super(checkpoint.getPageNum(), queue, checkpoint.getMinSeqNum(), checkpoint.getElementCount(), checkpoint.getFirstUnackedSeqNum(), new BitSet(), pageIO); + + // open the data file and reconstruct the IO object internal state + pageIO.open(checkpoint.getMinSeqNum(), checkpoint.getElementCount()); + + // this page ackedSeqNums bitset is a new empty bitset, if we have some acked elements, set them in the bitset + if (checkpoint.getFirstUnackedSeqNum() > checkpoint.getMinSeqNum()) { + this.ackedSeqNums.flip(0, (int) (checkpoint.getFirstUnackedSeqNum() - checkpoint.getMinSeqNum())); + } + } + + public void checkpoint() throws IOException { + // TODO: not concurrent for first iteration: + + // since this is a tail page and no write can happen in this page, there is no point in performing a fsync on this page, just stamp checkpoint + CheckpointIO io = queue.getCheckpointIO(); + this.lastCheckpoint = io.write(io.tailFileName(this.pageNum), this.pageNum, this.queue.firstUnackedPageNum(), firstUnackedSeqNum(), this.minSeqNum, this.elementCount); + } + + // delete all IO files associated with this page + public void purge() throws IOException { + this.pageIO.purge(); + CheckpointIO io = queue.getCheckpointIO(); + io.purge(io.tailFileName(this.pageNum)); + } + + public void close() throws IOException { + checkpoint(); + this.pageIO.close(); + } +} \ No newline at end of file diff --git a/logstash-core/src/main/java/org/logstash/common/io/BufferedChecksum.java b/logstash-core/src/main/java/org/logstash/common/io/BufferedChecksum.java new file mode 100644 index 00000000000..79bbd7af306 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/BufferedChecksum.java @@ -0,0 +1,67 @@ +package org.logstash.common.io; + +import java.util.zip.Checksum; + +/** + * Wraps another {@link Checksum} with an internal buffer + * to speed up checksum calculations. + */ +public class BufferedChecksum implements Checksum { + private final Checksum in; + private final byte buffer[]; + private int upto; + /** Default buffer size: 256 */ + public static final int DEFAULT_BUFFERSIZE = 256; + + /** Create a new BufferedChecksum with {@link #DEFAULT_BUFFERSIZE} */ + public BufferedChecksum(Checksum in) { + this(in, DEFAULT_BUFFERSIZE); + } + + /** Create a new BufferedChecksum with the specified bufferSize */ + public BufferedChecksum(Checksum in, int bufferSize) { + this.in = in; + this.buffer = new byte[bufferSize]; + } + + @Override + public void update(int b) { + if (upto == buffer.length) { + flush(); + } + buffer[upto++] = (byte) b; + } + + @Override + public void update(byte[] b, int off, int len) { + if (len >= buffer.length) { + flush(); + in.update(b, off, len); + } else { + if (upto + len > buffer.length) { + flush(); + } + System.arraycopy(b, off, buffer, upto, len); + upto += len; + } + } + + @Override + public long getValue() { + flush(); + return in.getValue(); + } + + @Override + public void reset() { + upto = 0; + in.reset(); + } + + private void flush() { + if (upto > 0) { + in.update(buffer, 0, upto); + } + upto = 0; + } +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/BufferedChecksumStreamInput.java b/logstash-core/src/main/java/org/logstash/common/io/BufferedChecksumStreamInput.java new file mode 100644 index 00000000000..beed5238738 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/BufferedChecksumStreamInput.java @@ -0,0 +1,104 @@ +package org.logstash.common.io; + +import java.io.IOException; +import java.util.zip.CRC32; +import java.util.zip.Checksum; + +/** + * Similar to Lucene's BufferedChecksumIndexInput, however this wraps a + * {@link StreamInput} so anything read will update the checksum + */ +public final class BufferedChecksumStreamInput extends StreamInput { + private static final int SKIP_BUFFER_SIZE = 1024; + private byte[] skipBuffer; + private final StreamInput in; + private final Checksum digest; + + public BufferedChecksumStreamInput(StreamInput in) { + this.in = in; + this.digest = new BufferedChecksum(new CRC32()); + } + + public BufferedChecksumStreamInput(StreamInput in, BufferedChecksumStreamInput reuse) { + this.in = in; + if (reuse == null ) { + this.digest = new BufferedChecksum(new CRC32()); + } else { + this.digest = reuse.digest; + digest.reset(); + this.skipBuffer = reuse.skipBuffer; + } + } + + public long getChecksum() { + return this.digest.getValue(); + } + + @Override + public byte readByte() throws IOException { + final byte b = in.readByte(); + digest.update(b); + return b; + } + + @Override + public void readBytes(byte[] b, int offset, int len) throws IOException { + in.readBytes(b, offset, len); + digest.update(b, offset, len); + } + + @Override + public void reset() throws IOException { + in.reset(); + digest.reset(); + } + + @Override + public int read() throws IOException { + return readByte() & 0xFF; + } + + @Override + public void close() throws IOException { + in.close(); + } + + @Override + public boolean markSupported() { + return in.markSupported(); + } + + + @Override + public long skip(long numBytes) throws IOException { + if (numBytes < 0) { + throw new IllegalArgumentException("numBytes must be >= 0, got " + numBytes); + } + if (skipBuffer == null) { + skipBuffer = new byte[SKIP_BUFFER_SIZE]; + } + assert skipBuffer.length == SKIP_BUFFER_SIZE; + long skipped = 0; + for (; skipped < numBytes; ) { + final int step = (int) Math.min(SKIP_BUFFER_SIZE, numBytes - skipped); + readBytes(skipBuffer, 0, step); + skipped += step; + } + return skipped; + } + + @Override + public int available() throws IOException { + return in.available(); + } + + @Override + public synchronized void mark(int readlimit) { + in.mark(readlimit); + } + + public void resetDigest() { + digest.reset(); + } +} + diff --git a/logstash-core/src/main/java/org/logstash/common/io/BufferedChecksumStreamOutput.java b/logstash-core/src/main/java/org/logstash/common/io/BufferedChecksumStreamOutput.java new file mode 100644 index 00000000000..f37b71f92bf --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/BufferedChecksumStreamOutput.java @@ -0,0 +1,57 @@ +package org.logstash.common.io; + + +import java.io.IOException; +import java.util.zip.CRC32; +import java.util.zip.Checksum; + +/** + * Similar to Lucene's BufferedChecksumIndexOutput, however this wraps a + * {@link StreamOutput} so anything written will update the checksum + */ +public final class BufferedChecksumStreamOutput extends StreamOutput { + private final StreamOutput out; + private final Checksum digest; + + public BufferedChecksumStreamOutput(StreamOutput out) { + this.out = out; + this.digest = new BufferedChecksum(new CRC32()); + } + + public long getChecksum() { + return this.digest.getValue(); + } + + @Override + public void writeByte(byte b) throws IOException { + out.writeByte(b); + digest.update(b); + } + + @Override + public void writeBytes(byte[] b, int offset, int length) throws IOException { + out.writeBytes(b, offset, length); + digest.update(b, offset, length); + } + + @Override + public void flush() throws IOException { + out.flush(); + } + + @Override + public void close() throws IOException { + out.close(); + } + + @Override + public void reset() throws IOException { + out.reset(); + digest.reset(); + } + + public void resetDigest() { + digest.reset(); + } +} + diff --git a/logstash-core/src/main/java/org/logstash/common/io/ByteArrayStreamOutput.java b/logstash-core/src/main/java/org/logstash/common/io/ByteArrayStreamOutput.java new file mode 100644 index 00000000000..6f49581e9cc --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/ByteArrayStreamOutput.java @@ -0,0 +1,65 @@ +package org.logstash.common.io; + +import java.nio.ByteBuffer; + +public class ByteArrayStreamOutput extends StreamOutput { + private byte[] bytes; + + private int pos; + private int limit; + + public ByteArrayStreamOutput(byte[] bytes) { + reset(bytes); + } + + public ByteArrayStreamOutput(ByteBuffer bytebuffer) { + reset(bytebuffer.array()); + } + + public ByteArrayStreamOutput(ByteBuffer bytebuffer, int offset, int len) { + reset(bytebuffer.array(), offset, len); + } + + public ByteArrayStreamOutput(byte[] bytes, int offset, int len) { + reset(bytes, offset, len); + } + + public void reset(byte[] bytes) { + reset(bytes, 0, bytes.length); + } + + public void reset(byte[] bytes, int offset, int len) { + this.bytes = bytes; + pos = offset; + limit = offset + len; + } + + public void setWriteWindow(int offset, int len) { + pos = offset; + limit = offset + len; + } + + public void reset() { + } + + public void reset(int offset) { + pos = offset; + } + + public int getPosition() { + return pos; + } + + @Override + public void writeByte(byte b) { + assert pos < limit : String.format("ByteArrayStreamOutput#writeByte pos=%d !< limit=%d", pos, limit); + bytes[pos++] = b; + } + + @Override + public void writeBytes(byte[] b, int offset, int length) { + assert pos + length <= limit; + System.arraycopy(b, offset, bytes, pos, length); + pos += length; + } +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/ByteBufferPageIO.java b/logstash-core/src/main/java/org/logstash/common/io/ByteBufferPageIO.java new file mode 100644 index 00000000000..e2619a5b3e5 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/ByteBufferPageIO.java @@ -0,0 +1,248 @@ +package org.logstash.common.io; + +import org.logstash.ackedqueue.Queueable; +import org.logstash.ackedqueue.SequencedList; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.List; +import java.util.zip.CRC32; +import java.util.zip.Checksum; + +// TODO: currently assuming continuous seqNum is the byte buffer where we can deduct the maxSeqNum from the min + count. +// TODO: we could change this and support non-continuous seqNums but I am not sure we should. +// TODO: checksum is not currently computed. + +public class ByteBufferPageIO implements PageIO { + public static final byte VERSION = 1; + public static final int CHECKSUM_SIZE = Integer.BYTES; + public static final int LENGTH_SIZE = Integer.BYTES; + public static final int SEQNUM_SIZE = Long.BYTES; + public static final int MIN_RECORD_SIZE = SEQNUM_SIZE + LENGTH_SIZE + CHECKSUM_SIZE; + public static final int HEADER_SIZE = 1; // version byte + static final List EMPTY_READ = new ArrayList<>(0); + + private final int capacity; + private final List offsetMap; // has to be extendable + private final ByteBuffer buffer; + private long minSeqNum; // TODO: to make minSeqNum final we have to pass in the minSeqNum in the constructor and not set it on first write + private int elementCount; + private int head; + private byte version; + private Checksum checkSummer; + + public ByteBufferPageIO(int pageNum, int capacity, String path) throws IOException { + this(capacity, new byte[0]); + } + + public ByteBufferPageIO(int capacity) throws IOException { + this(capacity, new byte[0]); + } + + public ByteBufferPageIO(int capacity, byte[] initialBytes) throws IOException { + this.capacity = capacity; + if (initialBytes.length > capacity) { + throw new IOException("initial bytes greater than capacity"); + } + + this.buffer = ByteBuffer.allocate(capacity); + this.buffer.put(initialBytes); + + this.offsetMap = new ArrayList<>(); + this.checkSummer = new CRC32(); + } + + @Override + public void open(long minSeqNum, int elementCount) throws IOException { + this.minSeqNum = minSeqNum; + this.elementCount = elementCount; + + this.buffer.position(0); + this.version = this.buffer.get(); + this.head = 1; + + if (this.elementCount > 0) { + + // TODO: refactor the read logic below to DRY with the read() method. + + // set head by skipping over all elements + for (int i = 0; i < this.elementCount; i++) { + if (this.head + SEQNUM_SIZE + LENGTH_SIZE > capacity) { + throw new IOException(String.format("cannot read seqNum and length bytes past buffer capacity")); + } + + long seqNum = this.buffer.getLong(); + + if (i == 0 && seqNum != this.minSeqNum) { + throw new IOException(String.format("first seqNum=%d is different than minSeqNum=%d", seqNum, this.minSeqNum)); + } + + this.offsetMap.add(head); + this.head += SEQNUM_SIZE; + + + int length = this.buffer.getInt(); + this.head += LENGTH_SIZE; + + if (this.head + length + CHECKSUM_SIZE > capacity) { + throw new IOException(String.format("cannot read element payload and checksum past buffer capacity")); + } + + // skip over data + this.head += length; + this.head += CHECKSUM_SIZE; + + this.buffer.position(head); + } + } + } + + @Override + public void create() throws IOException { + this.buffer.position(0); + this.buffer.put(VERSION); + this.head = 1; + this.minSeqNum = 0L; + this.elementCount = 0; + } + + @Override + public int getCapacity() { + return this.capacity; + } + + public long getMinSeqNum() { + return this.minSeqNum; + } + + @Override + public boolean hasSpace(int bytes) { + int bytesLeft = this.capacity - this.head; + return persistedByteCount(bytes) <= bytesLeft; + } + + @Override + public void write(byte[] bytes, long seqNum) throws IOException { + // since writes always happen at head, we can just append head to the offsetMap + assert this.offsetMap.size() == this.elementCount : + String.format("offsetMap size=%d != elementCount=%d", this.offsetMap.size(), this.elementCount); + + int initialHead = this.head; + + this.buffer.position(this.head); + this.buffer.putLong(seqNum); + this.buffer.putInt(bytes.length); + this.buffer.put(bytes); + this.buffer.putInt(checksum(bytes)); + this.head += persistedByteCount(bytes.length); + assert this.head == this.buffer.position() : + String.format("head=%d != buffer position=%d", this.head, this.buffer.position()); + + if (this.elementCount <= 0) { + this.minSeqNum = seqNum; + } + this.offsetMap.add(initialHead); + this.elementCount++; + } + + @Override + public SequencedList read(long seqNum, int limit) throws IOException { + assert seqNum >= this.minSeqNum : + String.format("seqNum=%d < minSeqNum=%d", seqNum, this.minSeqNum); + assert seqNum <= maxSeqNum() : + String.format("seqNum=%d is > maxSeqNum=%d", seqNum, maxSeqNum()); + + List elements = new ArrayList<>(); + List seqNums = new ArrayList<>(); + + int offset = this.offsetMap.get((int)(seqNum - this.minSeqNum)); + + this.buffer.position(offset); + + for (int i = 0; i < limit; i++) { + long readSeqNum = this.buffer.getLong(); + + assert readSeqNum == (seqNum + i) : + String.format("unmatched seqNum=%d to readSeqNum=%d", seqNum + i, readSeqNum); + + int readLength = this.buffer.getInt(); + byte[] readBytes = new byte[readLength]; + this.buffer.get(readBytes); + int checksum = this.buffer.getInt(); + int computedChecksum = checksum(readBytes); + if (computedChecksum != checksum) { + throw new IOException(String.format("computed checksum=%d != checksum for file=%d", computedChecksum, checksum)); + } + + elements.add(readBytes); + seqNums.add(readSeqNum); + + if (seqNum + i >= maxSeqNum()) { + break; + } + } + + return new SequencedList<>(elements, seqNums); + } + + @Override + public void deactivate() { + // nothing to do + } + + @Override + public void activate() { + // nothing to do + } + + @Override + public void ensurePersisted() { + // nothing to do + } + + @Override + public void purge() throws IOException { + // do nothing + } + + @Override + public void close() throws IOException { + // TODO: not sure if we need to do something here since in-memory pages are ephemeral + } + + private int checksum(byte[] bytes) { + checkSummer.reset(); + checkSummer.update(bytes, 0, bytes.length); + return (int) checkSummer.getValue(); + } + + // TODO: static method for tests - should refactor + public static int _persistedByteCount(int byteCount) { + return SEQNUM_SIZE + LENGTH_SIZE + byteCount + CHECKSUM_SIZE; + } + + @Override + public int persistedByteCount(int byteCount) { + return ByteBufferPageIO._persistedByteCount(byteCount); + } + + private long maxSeqNum() { + return this.minSeqNum + this.elementCount - 1; + } + + + // below public methods only used by tests + + public int getWritePosition() { + return this.head; + } + + public int getElementCount() { + return this.elementCount; + } + + public byte[] dump() { + return this.buffer.array(); + } +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/ByteBufferStreamInput.java b/logstash-core/src/main/java/org/logstash/common/io/ByteBufferStreamInput.java new file mode 100644 index 00000000000..8afeb4eef2c --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/ByteBufferStreamInput.java @@ -0,0 +1,93 @@ +package org.logstash.common.io; + +import java.io.EOFException; +import java.io.IOException; +import java.nio.ByteBuffer; + +public class ByteBufferStreamInput extends StreamInput { + + private final ByteBuffer buffer; + + public ByteBufferStreamInput(ByteBuffer buffer) { + this.buffer = buffer; + } + + @Override + public int read() throws IOException { + if (!buffer.hasRemaining()) { + return -1; + } + return buffer.get() & 0xFF; + } + + @Override + public byte readByte() throws IOException { + if (!buffer.hasRemaining()) { + throw new EOFException(); + } + return buffer.get(); + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + if (!buffer.hasRemaining()) { + return -1; + } + + len = Math.min(len, buffer.remaining()); + buffer.get(b, off, len); + return len; + } + + @Override + public long skip(long n) throws IOException { + if (n > buffer.remaining()) { + int ret = buffer.position(); + buffer.position(buffer.limit()); + return ret; + } + buffer.position((int) (buffer.position() + n)); + return n; + } + + @Override + public void readBytes(byte[] b, int offset, int len) throws IOException { + if (buffer.remaining() < len) { + throw new EOFException(); + } + buffer.get(b, offset, len); + } + + @Override + public void reset() throws IOException { + buffer.reset(); + } + + public void movePosition(int position) { + buffer.position(position); + } + + public void rewind() throws IOException { + buffer.rewind(); + } + + @Override + public int available() throws IOException { + return buffer.remaining(); + } + + @Override + public void mark(int readlimit) { + buffer.mark(); + } + + @Override + public boolean markSupported() { + return true; + } + + @Override + public void close() throws IOException { + } +} + diff --git a/logstash-core/src/main/java/org/logstash/common/io/CheckpointIO.java b/logstash-core/src/main/java/org/logstash/common/io/CheckpointIO.java new file mode 100644 index 00000000000..cd28cf66e3b --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/CheckpointIO.java @@ -0,0 +1,22 @@ +package org.logstash.common.io; + +import org.logstash.ackedqueue.Checkpoint; +import java.io.IOException; + +public interface CheckpointIO { + + // @return Checkpoint the written checkpoint object + Checkpoint write(String fileName, int pageNum, int firstUnackedPageNum, long firstUnackedSeqNum, long minSeqNum, int elementCount) throws IOException; + + Checkpoint read(String fileName) throws IOException; + + void purge(String fileName) throws IOException; + + void purge() throws IOException; + + // @return the head page checkpoint file name + String headFileName(); + + // @return the tail page checkpoint file name for given page number + String tailFileName(int pageNum); +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/CheckpointIOFactory.java b/logstash-core/src/main/java/org/logstash/common/io/CheckpointIOFactory.java new file mode 100644 index 00000000000..574ca42d328 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/CheckpointIOFactory.java @@ -0,0 +1,6 @@ +package org.logstash.common.io; + +@FunctionalInterface +public interface CheckpointIOFactory { + CheckpointIO build(String dirPath); +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java b/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java new file mode 100644 index 00000000000..12e8e197772 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java @@ -0,0 +1,108 @@ +package org.logstash.common.io; + +import org.logstash.ackedqueue.Checkpoint; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class FileCheckpointIO implements CheckpointIO { +// Checkpoint file structure +// +// byte version; +// int pageNum; +// int firstUnackedPageNum; +// long firstUnackedSeqNum; +// long minSeqNum; +// int elementCount; + + public static final int BUFFER_SIZE = Short.BYTES // version + + Integer.BYTES // pageNum + + Integer.BYTES // firstUnackedPageNum + + Long.BYTES // firstUnackedSeqNum + + Long.BYTES // minSeqNum + + Integer.BYTES // eventCount + + Integer.BYTES; // checksum + + private final String dirPath; + private final String HEAD_CHECKPOINT = "checkpoint.head"; + private final String TAIL_CHECKPOINT = "checkpoint."; + + public FileCheckpointIO(String dirPath) { + this.dirPath = dirPath; + } + + @Override + public Checkpoint read(String fileName) throws IOException { + Path path = Paths.get(dirPath, fileName); + InputStream is = Files.newInputStream(path); + return read(new BufferedChecksumStreamInput(new InputStreamStreamInput(is))); + } + + @Override + public Checkpoint write(String fileName, int pageNum, int firstUnackedPageNum, long firstUnackedSeqNum, long minSeqNum, int elementCount) throws IOException { + Path path = Paths.get(dirPath, fileName); + Checkpoint checkpoint = new Checkpoint(pageNum, firstUnackedPageNum, firstUnackedSeqNum, minSeqNum, elementCount); + final byte[] buffer = new byte[BUFFER_SIZE]; + write(checkpoint, buffer); + Files.write(path, buffer); + return checkpoint; + } + + @Override + public void purge(String fileName) throws IOException { + Path path = Paths.get(dirPath, fileName); + Files.delete(path); + } + + @Override + public void purge() throws IOException { + // TODO: dir traversal and delete all checkpoints? + } + + // @return the head page checkpoint file name + @Override + public String headFileName() { + return HEAD_CHECKPOINT; + } + + // @return the tail page checkpoint file name for given page number + @Override + public String tailFileName(int pageNum) { + return TAIL_CHECKPOINT + pageNum; + } + + private Checkpoint read(BufferedChecksumStreamInput crcsi) throws IOException { + int version = (int) crcsi.readShort(); + // TODO - build reader for this version + int pageNum = crcsi.readInt(); + int firstUnackedPageNum = crcsi.readInt(); + long firstUnackedSeqNum = crcsi.readLong(); + long minSeqNum = crcsi.readLong(); + int elementCount = crcsi.readInt(); + + int calcCrc32 = (int)crcsi.getChecksum(); + int readCrc32 = crcsi.readInt(); + if (readCrc32 != calcCrc32) { + throw new IOException(String.format("Checkpoint checksum mismatch, expected: %d, actual: %d", calcCrc32, readCrc32)); + } + if (version != Checkpoint.VERSION) { + throw new IOException("Unknown file format version: " + version); + } + + return new Checkpoint(pageNum, firstUnackedPageNum, firstUnackedSeqNum, minSeqNum, elementCount); + } + + private void write(Checkpoint checkpoint, byte[] buf) throws IOException { + BufferedChecksumStreamOutput output = new BufferedChecksumStreamOutput(new ByteArrayStreamOutput(buf)); + output.writeShort((short)Checkpoint.VERSION); + output.writeInt(checkpoint.getPageNum()); + output.writeInt(checkpoint.getFirstUnackedPageNum()); + output.writeLong(checkpoint.getFirstUnackedSeqNum()); + output.writeLong(checkpoint.getMinSeqNum()); + output.writeInt(checkpoint.getElementCount()); + output.writeInt((int)output.getChecksum()); + } +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/InputStreamStreamInput.java b/logstash-core/src/main/java/org/logstash/common/io/InputStreamStreamInput.java new file mode 100644 index 00000000000..712e42b87b1 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/InputStreamStreamInput.java @@ -0,0 +1,77 @@ +package org.logstash.common.io; + +import java.io.EOFException; +import java.io.IOException; +import java.io.InputStream; + +public class InputStreamStreamInput extends StreamInput { + + private final InputStream is; + + public InputStreamStreamInput(InputStream is) { + this.is = is; + } + + @Override + public byte readByte() throws IOException { + int ch = is.read(); + if (ch < 0) + throw new EOFException(); + return (byte) (ch); + } + + @Override + public void readBytes(byte[] b, int offset, int len) throws IOException { + if (len < 0) + throw new IndexOutOfBoundsException(); + final int read = Streams.readFully(is, b, offset, len); + if (read != len) { + throw new EOFException(); + } + } + + @Override + public void reset() throws IOException { + is.reset(); + } + + @Override + public boolean markSupported() { + return is.markSupported(); + } + + @Override + public void mark(int readlimit) { + is.mark(readlimit); + } + + @Override + public void close() throws IOException { + is.close(); + } + + @Override + public int available() throws IOException { + return is.available(); + } + + @Override + public int read() throws IOException { + return is.read(); + } + + @Override + public int read(byte[] b) throws IOException { + return is.read(b); + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + return is.read(b, off, len); + } + + @Override + public long skip(long n) throws IOException { + return is.skip(n); + } +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/MemoryCheckpointIO.java b/logstash-core/src/main/java/org/logstash/common/io/MemoryCheckpointIO.java new file mode 100644 index 00000000000..0dc5b8b6310 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/MemoryCheckpointIO.java @@ -0,0 +1,60 @@ +package org.logstash.common.io; + +import org.logstash.ackedqueue.Checkpoint; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +public class MemoryCheckpointIO implements CheckpointIO { + + private final String HEAD_CHECKPOINT = "checkpoint.head"; + private final String TAIL_CHECKPOINT = "checkpoint."; + + private static final Map sources = new HashMap<>(); + + private final String dirPath; + + public static void clearSources() { + sources.clear(); + } + + public MemoryCheckpointIO(String dirPath) { + this.dirPath = dirPath; + } + + @Override + public Checkpoint read(String fileName) throws IOException { + return this.sources.get(fileName); + } + + @Override + public Checkpoint write(String fileName, int pageNum, int firstUnackedPageNum, long firstUnackedSeqNum, long minSeqNum, int elementCount) throws IOException { + Checkpoint checkpoint = new Checkpoint(pageNum, firstUnackedPageNum, firstUnackedSeqNum, minSeqNum, elementCount); + this.sources.put(fileName, checkpoint); + return checkpoint; + } + + @Override + public void purge(String fileName) { + this.sources.remove(fileName); + } + + @Override + public void purge() { + this.sources.clear(); + } + + // @return the head page checkpoint file name + @Override + public String headFileName() { + return HEAD_CHECKPOINT; + } + + // @return the tail page checkpoint file name for given page number + @Override + public String tailFileName(int pageNum) { + return TAIL_CHECKPOINT + pageNum; + } + +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/MmapPageIO.java b/logstash-core/src/main/java/org/logstash/common/io/MmapPageIO.java new file mode 100644 index 00000000000..0b86477f80b --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/MmapPageIO.java @@ -0,0 +1,254 @@ +package org.logstash.common.io; + +import org.logstash.ackedqueue.Queueable; +import org.logstash.ackedqueue.SequencedList; + +import java.io.File; +import java.io.IOException; +import java.io.RandomAccessFile; +import java.nio.MappedByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; +import java.util.zip.CRC32; +import java.util.zip.Checksum; + +// TODO: this essentially a copy of ByteBufferPageIO and should be DRY'ed - temp impl to test file based stress test + +public class MmapPageIO implements PageIO { + public static final byte VERSION = 1; + public static final int CHECKSUM_SIZE = Integer.BYTES; + public static final int LENGTH_SIZE = Integer.BYTES; + public static final int SEQNUM_SIZE = Long.BYTES; + public static final int MIN_RECORD_SIZE = SEQNUM_SIZE + CHECKSUM_SIZE; + public static final int HEADER_SIZE = 1; // version byte + static final List EMPTY_READ = new ArrayList<>(0); + + private final int capacity; + private final String dirPath; + private final int pageNum; + private final List offsetMap; // has to be extendable + + private MappedByteBuffer buffer; + private File file; + private FileChannel channel; + + private long minSeqNum; // TODO: to make minSeqNum final we have to pass in the minSeqNum in the constructor and not set it on first write + private int elementCount; + private int head; + private byte version; + private Checksum checkSummer; + + public MmapPageIO(int pageNum, int capacity, String dirPath) throws IOException { + this.pageNum = pageNum; + this.capacity = capacity; + this.dirPath = dirPath; + this.offsetMap = new ArrayList<>(); + this.checkSummer = new CRC32(); + } + + @Override + public void open(long minSeqNum, int elementCount) throws IOException { + this.minSeqNum = minSeqNum; + this.elementCount = elementCount; + + this.file = buildPath().toFile(); + RandomAccessFile raf = new RandomAccessFile(this.file, "rw"); + this.channel = raf.getChannel(); + this.buffer = this.channel.map(FileChannel.MapMode.READ_WRITE, 0, this.capacity); + raf.close(); + this.buffer.load(); + + this.buffer.position(0); + this.version = this.buffer.get(); + this.head = 1; + + if (this.elementCount > 0) { + + // TODO: refactor the read logic below to DRY with the read() method. + + // set head by skipping over all elements + for (int i = 0; i < this.elementCount; i++) { + if (this.head + SEQNUM_SIZE + LENGTH_SIZE > capacity) { + throw new IOException(String.format("cannot read seqNum and length bytes past buffer capacity")); + } + + long seqNum = this.buffer.getLong(); + + if (i == 0 && seqNum != this.minSeqNum) { + throw new IOException(String.format("first seqNum=%d is different than minSeqNum=%d", seqNum, this.minSeqNum)); + } + + this.offsetMap.add(head); + this.head += SEQNUM_SIZE; + + + int length = this.buffer.getInt(); + this.head += LENGTH_SIZE; + + if (this.head + length + CHECKSUM_SIZE > capacity) { + throw new IOException(String.format("cannot read element payload and checksum past buffer capacity")); + } + + // skip over data + this.head += length; + this.head += CHECKSUM_SIZE; + + this.buffer.position(head); + } + } + } + + @Override + public void create() throws IOException { + this.file = buildPath().toFile(); + RandomAccessFile raf = new RandomAccessFile(this.file, "rw"); + this.channel = raf.getChannel(); + this.buffer = this.channel.map(FileChannel.MapMode.READ_WRITE, 0, this.capacity); + raf.close(); + + this.buffer.position(0); + this.buffer.put(VERSION); + this.head = 1; + this.minSeqNum = 0; + this.elementCount = 0; + } + + @Override + public int getCapacity() { + return this.capacity; + } + + public long getMinSeqNum() { + return this.minSeqNum; + } + + @Override + public boolean hasSpace(int bytes) { + int bytesLeft = this.capacity - this.head; + return persistedByteCount(bytes) <= bytesLeft; + } + + @Override + public void write(byte[] bytes, long seqNum) throws IOException { + // since writes always happen at head, we can just append head to the offsetMap + assert this.offsetMap.size() == this.elementCount : + String.format("offsetMap size=%d != elementCount=%d", this.offsetMap.size(), this.elementCount); + + int initialHead = this.head; + + this.buffer.position(this.head); + this.buffer.putLong(seqNum); + this.buffer.putInt(bytes.length); + this.buffer.put(bytes); + this.buffer.putInt(checksum(bytes)); + this.head += persistedByteCount(bytes.length); + assert this.head == this.buffer.position() : + String.format("head=%d != buffer position=%d", this.head, this.buffer.position()); + + if (this.elementCount <= 0) { + this.minSeqNum = seqNum; + } + this.offsetMap.add(initialHead); + this.elementCount++; + } + + @Override + public SequencedList read(long seqNum, int limit) throws IOException { + assert seqNum >= this.minSeqNum : + String.format("seqNum=%d < minSeqNum=%d", seqNum, this.minSeqNum); + assert seqNum <= maxSeqNum() : + String.format("seqNum=%d is > maxSeqNum=%d", seqNum, maxSeqNum()); + + List elements = new ArrayList<>(); + List seqNums = new ArrayList<>(); + + int offset = this.offsetMap.get((int)(seqNum - this.minSeqNum)); + + this.buffer.position(offset); + + for (int i = 0; i < limit; i++) { + long readSeqNum = this.buffer.getLong(); + + assert readSeqNum == (seqNum + i) : + String.format("unmatched seqNum=%d to readSeqNum=%d", seqNum + i, readSeqNum); + + int readLength = this.buffer.getInt(); + byte[] readBytes = new byte[readLength]; + this.buffer.get(readBytes); + int checksum = this.buffer.getInt(); + int computedChecksum = checksum(readBytes); + if (computedChecksum != checksum) { + throw new IOException(String.format("computed checksum=%d != checksum for file=%d", computedChecksum, checksum)); + } + + elements.add(readBytes); + seqNums.add(readSeqNum); + + if (seqNum + i >= maxSeqNum()) { + break; + } + } + + return new SequencedList(elements, seqNums); + } + + @Override + public void deactivate() throws IOException { + close(); // close can be called multiple times + } + + @Override + public void activate() throws IOException { + if (this.channel == null) { + RandomAccessFile raf = new RandomAccessFile(this.file, "rw"); + this.channel = raf.getChannel(); + this.buffer = this.channel.map(FileChannel.MapMode.READ_WRITE, 0, this.capacity); + raf.close(); + this.buffer.load(); + } + // TODO: do we need to check is the channel is still open? not sure how it could be closed + } + + @Override + public void ensurePersisted() { + this.buffer.force(); + } + + @Override + public void purge() throws IOException { + close(); + Files.delete(buildPath()); + } + + @Override + public void close() throws IOException { + if (this.channel != null && this.channel.isOpen()) { + this.channel.close(); + } + this.channel = null; + this.buffer = null; + } + + private int checksum(byte[] bytes) { + checkSummer.reset(); + checkSummer.update(bytes, 0, bytes.length); + return (int) checkSummer.getValue(); + } + + @Override + public int persistedByteCount(int byteCount) { + return SEQNUM_SIZE + LENGTH_SIZE + byteCount + CHECKSUM_SIZE; + } + + private long maxSeqNum() { + return this.minSeqNum + this.elementCount - 1; + } + + private Path buildPath() { + return Paths.get(this.dirPath, "page." + this.pageNum); + } +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/PageIO.java b/logstash-core/src/main/java/org/logstash/common/io/PageIO.java new file mode 100644 index 00000000000..0fa3ede204b --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/PageIO.java @@ -0,0 +1,47 @@ +package org.logstash.common.io; + +import org.logstash.ackedqueue.Queueable; +import org.logstash.ackedqueue.SequencedList; + +import java.io.Closeable; +import java.io.IOException; +import java.util.List; + +public interface PageIO extends Closeable { + + // the concrete class should be constructed with the pageNum, capacity and dirPath attributes + + // open an existing data container and reconstruct internal state if required + void open(long minSeqNum, int elementCount) throws IOException; + + // create a new empty data file + void create() throws IOException; + + // verify if the data container has space for the given number of bytes + boolean hasSpace(int bytes); + + // write the given bytes to the data container + void write(byte[] bytes, long seqNum) throws IOException; + + // read up to limit number of items starting at give seqNum + SequencedList read(long seqNum, int limit) throws IOException; + + // @return the data container total capacity in bytes + int getCapacity(); + + // @return the actual persisted byte count (with overhead) for the given data bytes + int persistedByteCount(int bytes); + + // signal that this data page is not active and resources can be released + void deactivate() throws IOException; + + // signal that this data page is active will be read or written to + // should do nothing if page is aready active + void activate() throws IOException; + + // issue the proper data container "fsync" sematic + void ensurePersisted(); + + // delete/unlink/remove data file + void purge() throws IOException; +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/PageIOFactory.java b/logstash-core/src/main/java/org/logstash/common/io/PageIOFactory.java new file mode 100644 index 00000000000..ca9d7fa2067 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/PageIOFactory.java @@ -0,0 +1,8 @@ +package org.logstash.common.io; + +import java.io.IOException; + +@FunctionalInterface +public interface PageIOFactory { + PageIO build(int pageNum, int capacity, String dirPath) throws IOException; +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/StreamInput.java b/logstash-core/src/main/java/org/logstash/common/io/StreamInput.java new file mode 100644 index 00000000000..c387657a309 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/StreamInput.java @@ -0,0 +1,86 @@ +package org.logstash.common.io; + +import java.io.IOException; +import java.io.InputStream; + +public abstract class StreamInput extends InputStream { + /** + * Reads and returns a single byte. + */ + public abstract byte readByte() throws IOException; + + /** + * Reads a specified number of bytes into an array at the specified offset. + * + * @param b the array to read bytes into + * @param offset the offset in the array to start storing bytes + * @param len the number of bytes to read + */ + public abstract void readBytes(byte[] b, int offset, int len) throws IOException; + + /** + * Reads four bytes and returns an int. + */ + public int readInt() throws IOException { + return ((readByte() & 0xFF) << 24) | ((readByte() & 0xFF) << 16) + | ((readByte() & 0xFF) << 8) | (readByte() & 0xFF); + } + + /** + * Reads an int stored in variable-length format. Reads between one and + * five bytes. Smaller values take fewer bytes. Negative numbers + * will always use all 5 bytes and are therefore better serialized + * using {@link #readInt} + */ + public int readVInt() throws IOException { + byte b = readByte(); + int i = b & 0x7F; + if ((b & 0x80) == 0) { + return i; + } + b = readByte(); + i |= (b & 0x7F) << 7; + if ((b & 0x80) == 0) { + return i; + } + b = readByte(); + i |= (b & 0x7F) << 14; + if ((b & 0x80) == 0) { + return i; + } + b = readByte(); + i |= (b & 0x7F) << 21; + if ((b & 0x80) == 0) { + return i; + } + b = readByte(); + assert (b & 0x80) == 0; + return i | ((b & 0x7F) << 28); + } + + /** + * Reads two bytes and returns a short. + */ + public short readShort() throws IOException { + int i = ((readByte() & 0xFF) << 8); + int j = (readByte() & 0xFF); + return (short) (i | j); + } + + /** + * Reads eight bytes and returns a long. + */ + public long readLong() throws IOException { + return (((long) readInt()) << 32) | (readInt() & 0xFFFFFFFFL); + } + + public byte[] readByteArray() throws IOException { + int length = readInt(); + byte[] values = new byte[length]; + for (int i = 0; i < length; i++) { + values[i] = readByte(); + } + return values; + } + +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/StreamOutput.java b/logstash-core/src/main/java/org/logstash/common/io/StreamOutput.java new file mode 100644 index 00000000000..76c4271e4bf --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/StreamOutput.java @@ -0,0 +1,74 @@ +package org.logstash.common.io; + +import java.io.IOException; +import java.io.OutputStream; + +public abstract class StreamOutput extends OutputStream { + @Override + public void write(int b) throws IOException { + writeByte((byte) b); + } + + public abstract void writeByte(byte b) throws IOException; + + public abstract void writeBytes(byte[] b, int offset, int length) throws IOException; + + public abstract void reset() throws IOException; + + /** + * Writes an int in a variable-length format. Writes between one and + * five bytes. Smaller values take fewer bytes. Negative numbers + * will always use all 5 bytes and are therefore better serialized + * using {@link #writeInt} + */ + public void writeVInt(int i) throws IOException { + while ((i & ~0x7F) != 0) { + writeByte((byte) ((i & 0x7f) | 0x80)); + i >>>= 7; + } + writeByte((byte) i); + } + + /** + * Writes a short as two bytes. + */ + public void writeShort(short i) throws IOException { + writeByte((byte)(i >> 8)); + writeByte((byte) i); + } + + /** + * Writes an int as four bytes. + */ + public void writeInt(int i) throws IOException { + writeByte((byte) (i >> 24)); + writeByte((byte) (i >> 16)); + writeByte((byte) (i >> 8)); + writeByte((byte) i); + } + + public void writeIntArray(int[] values) throws IOException { + writeVInt(values.length); + for (int value : values) { + writeInt(value); + } + } + + /** + * Writes a long as eight bytes. + */ + public void writeLong(long i) throws IOException { + writeInt((int) (i >> 32)); + writeInt((int) i); + } + + /** + * Writes an array of bytes. + * + * @param b the bytes to write + */ + public void writeByteArray(byte[] b) throws IOException { + writeInt(b.length); + writeBytes(b, 0, b.length); + } +} diff --git a/logstash-core/src/main/java/org/logstash/common/io/Streams.java b/logstash-core/src/main/java/org/logstash/common/io/Streams.java new file mode 100644 index 00000000000..a156640ab3e --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/Streams.java @@ -0,0 +1,60 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.logstash.common.io; + +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; + +public abstract class Streams { + + public static int readFully(Reader reader, char[] dest) throws IOException { + return readFully(reader, dest, 0, dest.length); + } + + public static int readFully(Reader reader, char[] dest, int offset, int len) throws IOException { + int read = 0; + while (read < len) { + final int r = reader.read(dest, offset + read, len - read); + if (r == -1) { + break; + } + read += r; + } + return read; + } + + public static int readFully(InputStream reader, byte[] dest) throws IOException { + return readFully(reader, dest, 0, dest.length); + } + + public static int readFully(InputStream reader, byte[] dest, int offset, int len) throws IOException { + int read = 0; + while (read < len) { + final int r = reader.read(dest, offset + read, len - read); + if (r == -1) { + break; + } + read += r; + } + return read; + } +} + diff --git a/logstash-core/src/main/java/org/logstash/common/io/wip/MemoryPageIOStream.java b/logstash-core/src/main/java/org/logstash/common/io/wip/MemoryPageIOStream.java new file mode 100644 index 00000000000..5c8ec153727 --- /dev/null +++ b/logstash-core/src/main/java/org/logstash/common/io/wip/MemoryPageIOStream.java @@ -0,0 +1,279 @@ +package org.logstash.common.io.wip; + +import org.logstash.ackedqueue.Checkpoint; +import org.logstash.ackedqueue.Queueable; +import org.logstash.ackedqueue.SequencedList; +import org.logstash.common.io.BufferedChecksumStreamInput; +import org.logstash.common.io.BufferedChecksumStreamOutput; +import org.logstash.common.io.ByteArrayStreamOutput; +import org.logstash.common.io.ByteBufferStreamInput; +import org.logstash.common.io.PageIO; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.List; + +public class MemoryPageIOStream implements PageIO { + static final int CHECKSUM_SIZE = Integer.BYTES; + static final int LENGTH_SIZE = Integer.BYTES; + static final int SEQNUM_SIZE = Long.BYTES; + static final int MIN_RECORD_SIZE = SEQNUM_SIZE + LENGTH_SIZE + CHECKSUM_SIZE; + static final int VERSION_SIZE = Integer.BYTES; + + private final byte[] buffer; + private final int capacity; + private int writePosition; + private int readPosition; + private int elementCount; + private long minSeqNum; + private ByteBufferStreamInput streamedInput; + private ByteArrayStreamOutput streamedOutput; + private BufferedChecksumStreamOutput crcWrappedOutput; + private final List offsetMap; + private String dirPath = ""; + private String headerDetails = ""; + + public int persistedByteCount(byte[] data) { + return persistedByteCount(data.length); + } + + @Override + public int persistedByteCount(int length) { + return MIN_RECORD_SIZE + length; + } + + public MemoryPageIOStream(int pageNum, int capacity, String dirPath) throws IOException { + this(capacity, new byte[capacity]); + this.dirPath = dirPath; + } + + public MemoryPageIOStream(int capacity, String dirPath) throws IOException { + this(capacity, new byte[capacity]); + this.dirPath = dirPath; + } + + public MemoryPageIOStream(int capacity) throws IOException { + this(capacity, new byte[capacity]); + } + + public MemoryPageIOStream(int capacity, byte[] initialBytes) throws IOException { + this.capacity = capacity; + if (initialBytes.length > capacity) { + throw new IOException("initial bytes greater than capacity"); + } + buffer = initialBytes; + offsetMap = new ArrayList<>(); + streamedInput = new ByteBufferStreamInput(ByteBuffer.wrap(buffer)); + streamedOutput = new ByteArrayStreamOutput(buffer); + crcWrappedOutput = new BufferedChecksumStreamOutput(streamedOutput); + } + + @Override + public void open(long minSeqNum, int elementCount) throws IOException { + this.minSeqNum = minSeqNum; + this.elementCount = elementCount; + writePosition = verifyHeader(); + readPosition = writePosition; + if (elementCount > 0) { + long seqNumRead; + BufferedChecksumStreamInput in = new BufferedChecksumStreamInput(streamedInput); + for (int i = 0; i < this.elementCount; i++) { + if (writePosition + SEQNUM_SIZE + LENGTH_SIZE > capacity) { + throw new IOException(String.format("cannot read seqNum and length bytes past buffer capacity")); + } + + seqNumRead = in.readLong(); + + //verify that the buffer starts with the min sequence number + if (i == 0 && seqNumRead != this.minSeqNum) { + String msg = String.format("Page minSeqNum mismatch, expected: %d, actual: %d", this.minSeqNum, seqNumRead); + throw new IOException(msg); + } + + in.resetDigest(); + byte[] bytes = in.readByteArray(); + int actualChecksum = (int) in.getChecksum(); + int expectedChecksum = in.readInt(); + + if (actualChecksum != expectedChecksum) { + // explode with tragic error + } + + offsetMap.add(writePosition); + writePosition += persistedByteCount(bytes); + } + setReadPoint(this.minSeqNum); + } + } + + @Override + public void create() throws IOException { + writePosition = addHeader(); + readPosition = writePosition; + this.minSeqNum = 1L; + this.elementCount = 0; + } + + @Override + public boolean hasSpace(int byteSize) { + return this.capacity >= writePosition + persistedByteCount(byteSize); + } + + @Override + public void write(byte[] bytes, long seqNum) throws IOException { + int pos = this.writePosition; + int writeLength = persistedByteCount(bytes); + writeToBuffer(seqNum, bytes, writeLength); + writePosition += writeLength; + assert writePosition == streamedOutput.getPosition() : + String.format("writePosition=%d != streamedOutput position=%d", writePosition, streamedOutput.getPosition()); + if (elementCount <= 0) { + this.minSeqNum = seqNum; + } + this.offsetMap.add(pos); + elementCount++; + } + + @Override + public SequencedList read(long seqNum, int limit) throws IOException { + if (elementCount == 0) { + return new SequencedList<>(new ArrayList<>(), new ArrayList<>()); + } + setReadPoint(seqNum); + return read(limit); + } + + @Override + public int getCapacity() { + return capacity; + } + + @Override + public void deactivate() { + // do nothing + } + + @Override + public void activate() { + // do nothing + } + + @Override + public void ensurePersisted() { + // do nothing + } + + @Override + public void purge() throws IOException { + // do nothing + } + + @Override + public void close() throws IOException { + // TBD + } + + //@Override + public void setPageHeaderDetails(String details) { + headerDetails = details; + } + + public int getWritePosition() { + return writePosition; + } + + public int getElementCount() { + return elementCount; + } + + public long getMinSeqNum() { + return minSeqNum; + } + + // used in tests + public byte[] getBuffer() { + return buffer; + } + + // used in tests + public String readHeaderDetails() throws IOException { + int tempPosition = readPosition; + streamedInput.movePosition(0); + int ver = streamedInput.readInt(); + String details = new String(streamedInput.readByteArray()); + streamedInput.movePosition(tempPosition); + return details; + } + + private void setReadPoint(long seqNum) throws IOException { + int readPosition = offsetMap.get(calcRelativeSeqNum(seqNum)); + streamedInput.movePosition(readPosition); + } + + private int calcRelativeSeqNum(long seqNum) { + return (int) (seqNum - minSeqNum); + } + + private int addHeader() throws IOException { + streamedOutput.writeInt(Checkpoint.VERSION); + byte[] details = headerDetails.getBytes(); + streamedOutput.writeByteArray(details); + return VERSION_SIZE + LENGTH_SIZE + details.length; + } + + private int verifyHeader() throws IOException { + int ver = streamedInput.readInt(); + if (ver != Checkpoint.VERSION) { + String msg = String.format("Page version mismatch, expecting: %d, this version: %d", Checkpoint.VERSION, ver); + throw new IOException(msg); + } + int len = streamedInput.readInt(); + streamedInput.skip(len); + return VERSION_SIZE + LENGTH_SIZE + len; + } + + private void writeToBuffer(long seqNum, byte[] data, int len) throws IOException { + streamedOutput.setWriteWindow(writePosition, len); + crcWrappedOutput.writeLong(seqNum); + crcWrappedOutput.resetDigest(); + crcWrappedOutput.writeByteArray(data); + long checksum = crcWrappedOutput.getChecksum(); + crcWrappedOutput.writeInt((int) checksum); + crcWrappedOutput.flush(); + crcWrappedOutput.close(); + } + + private SequencedList read(int limit) throws IOException { + List elements = new ArrayList<>(); + List seqNums = new ArrayList<>(); + + int upto = available(limit); + for (int i = 0; i < upto; i++) { + long seqNum = readSeqNum(); + byte[] data = readData(); + skipChecksum(); + elements.add(data); + seqNums.add(seqNum); + } + return new SequencedList<>(elements, seqNums); + } + + private long readSeqNum() throws IOException { + return streamedInput.readLong(); + } + + private byte[] readData() throws IOException { + return streamedInput.readByteArray(); + } + + private void skipChecksum() throws IOException { + streamedInput.skip(CHECKSUM_SIZE); + } + + private int available(int sought) { + if (elementCount < 1) return 0; + if (elementCount < sought) return elementCount; + return sought; + } +} diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/CheckpointTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/CheckpointTest.java new file mode 100644 index 00000000000..83d1ac5aa49 --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/CheckpointTest.java @@ -0,0 +1,21 @@ +package org.logstash.ackedqueue; + +import org.junit.Test; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +public class CheckpointTest { + + @Test + public void newInstance() { + Checkpoint checkpoint = new Checkpoint(1, 2, 3, 4, 5); + + assertThat(checkpoint.getPageNum(), is(equalTo(1))); + assertThat(checkpoint.getFirstUnackedPageNum(), is(equalTo(2))); + assertThat(checkpoint.getFirstUnackedSeqNum(), is(equalTo(3L))); + assertThat(checkpoint.getMinSeqNum(), is(equalTo(4L))); + assertThat(checkpoint.getElementCount(), is(equalTo(5))); + } +} \ No newline at end of file diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/HeadPageTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/HeadPageTest.java new file mode 100644 index 00000000000..0477b1b209c --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/HeadPageTest.java @@ -0,0 +1,116 @@ +package org.logstash.ackedqueue; + +import org.junit.Test; +import org.logstash.common.io.ByteBufferPageIO; +import org.logstash.common.io.FileCheckpointIOTest; +import org.logstash.common.io.PageIO; + +import java.io.IOException; +import java.net.URL; +import java.nio.file.NoSuchFileException; +import java.nio.file.Paths; + +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +public class HeadPageTest { + + @Test + public void newHeadPage() throws IOException { + Settings s = TestSettings.getSettings(100); + Queue q = new Queue(s); + PageIO pageIO = s.getPageIOFactory().build(0, 100, "dummy"); + HeadPage p = new HeadPage(0, q, pageIO); + + assertThat(p.getPageNum(), is(equalTo(0))); + assertThat(p.isFullyRead(), is(true)); + assertThat(p.isFullyAcked(), is(false)); + assertThat(p.hasSpace(10), is(true)); + assertThat(p.hasSpace(100), is(false)); + } + + @Test + public void pageWrite() throws IOException { + Queueable element = new StringElement("foobarbaz"); + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); + + Settings s = TestSettings.getSettings(singleElementCapacity); + Queue q = new Queue(s); + PageIO pageIO = s.getPageIOFactory().build(0, singleElementCapacity, "dummy"); + HeadPage p = new HeadPage(0, q, pageIO); + + assertThat(p.hasSpace(element.serialize().length), is(true)); + p.write(element.serialize(), 0); + + assertThat(p.hasSpace(element.serialize().length), is(false)); + assertThat(p.isFullyRead(), is(false)); + assertThat(p.isFullyAcked(), is(false)); + } + + @Test + public void pageWriteAndReadSingle() throws IOException { + long seqNum = 1L; + Queueable element = new StringElement("foobarbaz"); + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); + + Settings s = TestSettings.getSettings(singleElementCapacity); + Queue q = new Queue(s); + PageIO pageIO = s.getPageIOFactory().build(0, singleElementCapacity, "dummy"); + HeadPage p = new HeadPage(0, q, pageIO); + + assertThat(p.hasSpace(element.serialize().length), is(true)); + p.write(element.serialize(), seqNum); + + Batch b = p.readBatch(1); + + assertThat(b.getElements().size(), is(equalTo(1))); + assertThat(b.getElements().get(0).toString(), is(equalTo(element.toString()))); + + assertThat(p.hasSpace(element.serialize().length), is(false)); + assertThat(p.isFullyRead(), is(true)); + assertThat(p.isFullyAcked(), is(false)); + } + + @Test + public void pageWriteAndReadMulti() throws IOException { + long seqNum = 1L; + Queueable element = new StringElement("foobarbaz"); + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); + + Settings s = TestSettings.getSettings(singleElementCapacity); + Queue q = new Queue(s); + PageIO pageIO = s.getPageIOFactory().build(0, singleElementCapacity, "dummy"); + HeadPage p = new HeadPage(0, q, pageIO); + + assertThat(p.hasSpace(element.serialize().length), is(true)); + p.write(element.serialize(), seqNum); + + Batch b = p.readBatch(10); + + assertThat(b.getElements().size(), is(equalTo(1))); + assertThat(b.getElements().get(0).toString(), is(equalTo(element.toString()))); + + assertThat(p.hasSpace(element.serialize().length), is(false)); + assertThat(p.isFullyRead(), is(true)); + assertThat(p.isFullyAcked(), is(false)); + } + + @Test + public void pageViaQueueOpenForHeadCheckpointWithoutSupportingPageFiles() throws Exception { + URL url = FileCheckpointIOTest.class.getResource("checkpoint.head"); + String dirPath = Paths.get(url.toURI()).getParent().toString(); + Queueable element = new StringElement("foobarbaz"); + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); + Settings s = TestSettings.getSettingsCheckpointFilePageMemory(singleElementCapacity, dirPath); + TestQueue q = new TestQueue(s); + try { + q.open(); + } catch (NoSuchFileException e) { + assertThat(e.getMessage(), containsString("checkpoint.2")); + } + HeadPage p = q.getHeadPage(); + assertThat(p, is(equalTo(null))); + } +} diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java new file mode 100644 index 00000000000..31024220dcd --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java @@ -0,0 +1,392 @@ +package org.logstash.ackedqueue; + +import org.junit.Test; +import org.logstash.common.io.ByteBufferPageIO; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Random; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.nullValue; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.MatcherAssert.assertThat; + +public class QueueTest { + + @Test + public void newQueue() throws IOException { + Queue q = new TestQueue(TestSettings.getSettings(10)); + q.open(); + + assertThat(q.nonBlockReadBatch(1), is(equalTo(null))); + } + + @Test + public void singleWriteRead() throws IOException { + Queue q = new TestQueue(TestSettings.getSettings(100)); + q.open(); + + Queueable element = new StringElement("foobarbaz"); + q.write(element); + + Batch b = q.nonBlockReadBatch(1); + + assertThat(b.getElements().size(), is(equalTo(1))); + assertThat(b.getElements().get(0).toString(), is(equalTo(element.toString()))); + assertThat(q.nonBlockReadBatch(1), is(equalTo(null))); + } + + @Test + public void singleWriteMultiRead() throws IOException { + Queue q = new TestQueue(TestSettings.getSettings(100)); + q.open(); + + Queueable element = new StringElement("foobarbaz"); + q.write(element); + + Batch b = q.nonBlockReadBatch(2); + + assertThat(b.getElements().size(), is(equalTo(1))); + assertThat(b.getElements().get(0).toString(), is(equalTo(element.toString()))); + assertThat(q.nonBlockReadBatch(2), is(equalTo(null))); + } + + @Test + public void multiWriteSamePage() throws IOException { + Queue q = new TestQueue(TestSettings.getSettings(100)); + q.open(); + + List elements = Arrays.asList(new StringElement("foobarbaz1"), new StringElement("foobarbaz2"), new StringElement("foobarbaz3")); + + for (Queueable e : elements) { + q.write(e); + } + + Batch b = q.nonBlockReadBatch(2); + + assertThat(b.getElements().size(), is(equalTo(2))); + assertThat(b.getElements().get(0).toString(), is(equalTo(elements.get(0).toString()))); + assertThat(b.getElements().get(1).toString(), is(equalTo(elements.get(1).toString()))); + + b = q.nonBlockReadBatch(2); + + assertThat(b.getElements().size(), is(equalTo(1))); + assertThat(b.getElements().get(0).toString(), is(equalTo(elements.get(2).toString()))); + } + + @Test + public void writeMultiPage() throws IOException { + List elements = Arrays.asList(new StringElement("foobarbaz1"), new StringElement("foobarbaz2"), new StringElement("foobarbaz3"), new StringElement("foobarbaz4")); + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(elements.get(0).serialize().length); + + TestQueue q = new TestQueue(TestSettings.getSettings(2 * singleElementCapacity)); + q.open(); + + for (Queueable e : elements) { + q.write(e); + } + + // total of 2 pages: 1 head and 1 tail + assertThat(q.getTailPages().size(), is(equalTo(1))); + + assertThat(q.getTailPages().get(0).isFullyRead(), is(equalTo(false))); + assertThat(q.getTailPages().get(0).isFullyAcked(), is(equalTo(false))); + assertThat(q.getHeadPage().isFullyRead(), is(equalTo(false))); + assertThat(q.getHeadPage().isFullyAcked(), is(equalTo(false))); + + Batch b = q.nonBlockReadBatch(10); + assertThat(b.getElements().size(), is(equalTo(2))); + + assertThat(q.getTailPages().size(), is(equalTo(1))); + + assertThat(q.getTailPages().get(0).isFullyRead(), is(equalTo(true))); + assertThat(q.getTailPages().get(0).isFullyAcked(), is(equalTo(false))); + assertThat(q.getHeadPage().isFullyRead(), is(equalTo(false))); + assertThat(q.getHeadPage().isFullyAcked(), is(equalTo(false))); + + b = q.nonBlockReadBatch(10); + assertThat(b.getElements().size(), is(equalTo(2))); + + assertThat(q.getTailPages().get(0).isFullyRead(), is(equalTo(true))); + assertThat(q.getTailPages().get(0).isFullyAcked(), is(equalTo(false))); + assertThat(q.getHeadPage().isFullyRead(), is(equalTo(true))); + assertThat(q.getHeadPage().isFullyAcked(), is(equalTo(false))); + + b = q.nonBlockReadBatch(10); + assertThat(b, is(equalTo(null))); + } + + + @Test + public void writeMultiPageWithInOrderAcking() throws IOException { + List elements = Arrays.asList(new StringElement("foobarbaz1"), new StringElement("foobarbaz2"), new StringElement("foobarbaz3"), new StringElement("foobarbaz4")); + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(elements.get(0).serialize().length); + + TestQueue q = new TestQueue(TestSettings.getSettings(2 * singleElementCapacity)); + q.open(); + + for (Queueable e : elements) { + q.write(e); + } + + Batch b = q.nonBlockReadBatch(10); + + assertThat(b.getElements().size(), is(equalTo(2))); + assertThat(q.getTailPages().size(), is(equalTo(1))); + + // lets keep a ref to that tail page before acking + TailPage tailPage = q.getTailPages().get(0); + + assertThat(tailPage.isFullyRead(), is(equalTo(true))); + + // ack first batch which includes all elements from tailPages + b.close(); + + assertThat(q.getTailPages().size(), is(equalTo(0))); + assertThat(tailPage.isFullyRead(), is(equalTo(true))); + assertThat(tailPage.isFullyAcked(), is(equalTo(true))); + + b = q.nonBlockReadBatch(10); + + assertThat(b.getElements().size(), is(equalTo(2))); + assertThat(q.getHeadPage().isFullyRead(), is(equalTo(true))); + assertThat(q.getHeadPage().isFullyAcked(), is(equalTo(false))); + + b.close(); + + assertThat(q.getHeadPage().isFullyAcked(), is(equalTo(true))); + } + + @Test + public void writeMultiPageWithInOrderAckingCheckpoints() throws IOException { + List elements1 = Arrays.asList(new StringElement("foobarbaz1"), new StringElement("foobarbaz2")); + List elements2 = Arrays.asList(new StringElement("foobarbaz3"), new StringElement("foobarbaz4")); + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(elements1.get(0).serialize().length); + + Settings settings = TestSettings.getSettings(2 * singleElementCapacity); + TestQueue q = new TestQueue(settings); + q.open(); + + assertThat(q.getHeadPage().getPageNum(), is(equalTo(0))); + Checkpoint c = q.getCheckpointIO().read("checkpoint.head"); + assertThat(c.getPageNum(), is(equalTo(0))); + assertThat(c.getElementCount(), is(equalTo(0))); + assertThat(c.getMinSeqNum(), is(equalTo(0L))); + assertThat(c.getFirstUnackedSeqNum(), is(equalTo(0L))); + assertThat(c.getFirstUnackedPageNum(), is(equalTo(0))); + + for (Queueable e : elements1) { + q.write(e); + } + + c = q.getCheckpointIO().read("checkpoint.head"); + assertThat(c.getPageNum(), is(equalTo(0))); + assertThat(c.getElementCount(), is(equalTo(0))); + assertThat(c.getMinSeqNum(), is(equalTo(0L))); + assertThat(c.getFirstUnackedSeqNum(), is(equalTo(0L))); + assertThat(c.getFirstUnackedPageNum(), is(equalTo(0))); + +// assertThat(elements1.get(1).getSeqNum(), is(equalTo(2L))); + q.ensurePersistedUpto(2); + + c = q.getCheckpointIO().read("checkpoint.head"); + assertThat(c.getPageNum(), is(equalTo(0))); + assertThat(c.getElementCount(), is(equalTo(2))); + assertThat(c.getMinSeqNum(), is(equalTo(1L))); + assertThat(c.getFirstUnackedSeqNum(), is(equalTo(1L))); + assertThat(c.getFirstUnackedPageNum(), is(equalTo(0))); + + for (Queueable e : elements2) { + q.write(e); + } + + c = q.getCheckpointIO().read("checkpoint.head"); + assertThat(c.getPageNum(), is(equalTo(1))); + assertThat(c.getElementCount(), is(equalTo(0))); + assertThat(c.getMinSeqNum(), is(equalTo(0L))); + assertThat(c.getFirstUnackedSeqNum(), is(equalTo(0L))); + assertThat(c.getFirstUnackedPageNum(), is(equalTo(0))); + + c = q.getCheckpointIO().read("checkpoint.0"); + assertThat(c.getPageNum(), is(equalTo(0))); + assertThat(c.getElementCount(), is(equalTo(2))); + assertThat(c.getMinSeqNum(), is(equalTo(1L))); + assertThat(c.getFirstUnackedSeqNum(), is(equalTo(1L))); + + Batch b = q.nonBlockReadBatch(10); + b.close(); + + assertThat(q.getCheckpointIO().read("checkpoint.0"), is(nullValue())); + + c = q.getCheckpointIO().read("checkpoint.head"); + assertThat(c.getPageNum(), is(equalTo(1))); + assertThat(c.getElementCount(), is(equalTo(2))); + assertThat(c.getMinSeqNum(), is(equalTo(3L))); + assertThat(c.getFirstUnackedSeqNum(), is(equalTo(3L))); + assertThat(c.getFirstUnackedPageNum(), is(equalTo(1))); + + b = q.nonBlockReadBatch(10); + b.close(); + + c = q.getCheckpointIO().read("checkpoint.head"); + assertThat(c.getPageNum(), is(equalTo(1))); + assertThat(c.getElementCount(), is(equalTo(2))); + assertThat(c.getMinSeqNum(), is(equalTo(3L))); + assertThat(c.getFirstUnackedSeqNum(), is(equalTo(5L))); + assertThat(c.getFirstUnackedPageNum(), is(equalTo(1))); + } + + @Test + public void randomAcking() throws IOException { + Random random = new Random(); + + // 10 tests of random queue sizes + for (int loop = 0; loop < 10; loop++) { + int page_count = random.nextInt(10000) + 1; + int digits = new Double(Math.ceil(Math.log10(page_count))).intValue(); + + // create a queue with a single element per page + List elements = new ArrayList<>(); + for (int i = 0; i < page_count; i++) { + elements.add(new StringElement(String.format("%0" + digits + "d", i))); + } + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(elements.get(0).serialize().length); + + TestQueue q = new TestQueue(TestSettings.getSettings(singleElementCapacity)); + q.open(); + + for (Queueable e : elements) { + q.write(e); + } + + assertThat(q.getTailPages().size(), is(equalTo(page_count - 1))); + + // first read all elements + List batches = new ArrayList<>(); + for (Batch b = q.nonBlockReadBatch(1); b != null; b = q.nonBlockReadBatch(1)) { + batches.add(b); + } + assertThat(batches.size(), is(equalTo(page_count))); + + // then ack randomly + Collections.shuffle(batches); + for (Batch b : batches) { + b.close(); + } + + assertThat(q.getTailPages().size(), is(equalTo(0))); + } + } + + @Test(timeout = 5000) + public void reachMaxUnread() throws IOException, InterruptedException, ExecutionException { + Queueable element = new StringElement("foobarbaz"); + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); + + Settings settings = TestSettings.getSettings(singleElementCapacity); + settings.setMaxUnread(2); // 2 so we know the first write should not block and the second should + TestQueue q = new TestQueue(settings); + q.open(); + + + long seqNum = q.write(element); + assertThat(seqNum, is(equalTo(1L))); + assertThat(q.isFull(), is(false)); + + int ELEMENT_COUNT = 1000; + for (int i = 0; i < ELEMENT_COUNT; i++) { + + // we expect the next write call to block so let's wrap it in a Future + Callable write = () -> { + return q.write(element); + }; + + ExecutorService executor = Executors.newFixedThreadPool(1); + Future future = executor.submit(write); + + while (!q.isFull()) { + // spin wait until data is written and write blocks + Thread.sleep(1); + } + assertThat(q.unreadCount, is(equalTo(2L))); + assertThat(future.isDone(), is(false)); + + // read one element, which will unblock the last write + Batch b = q.nonBlockReadBatch(1); + assertThat(b.getElements().size(), is(equalTo(1))); + + // future result is the blocked write seqNum for the second element + assertThat(future.get(), is(equalTo(2L + i))); + assertThat(q.isFull(), is(false)); + + executor.shutdown(); + } + + // since we did not ack and pages hold a single item + assertThat(q.getTailPages().size(), is(equalTo(ELEMENT_COUNT))); + } + + @Test + public void reachMaxUnreadWithAcking() throws IOException, InterruptedException, ExecutionException { + Queueable element = new StringElement("foobarbaz"); + + // TODO: add randomized testing on the page size (but must be > single element size) + Settings settings = TestSettings.getSettings(256); // 256 is arbitrary, large enough to hold a few elements + + settings.setMaxUnread(2); // 2 so we know the first write should not block and the second should + TestQueue q = new TestQueue(settings); + q.open(); + + // perform first non-blocking write + long seqNum = q.write(element); + + assertThat(seqNum, is(equalTo(1L))); + assertThat(q.isFull(), is(false)); + + int ELEMENT_COUNT = 1000; + for (int i = 0; i < ELEMENT_COUNT; i++) { + + // we expect this next write call to block so let's wrap it in a Future + Callable write = () -> { + return q.write(element); + }; + + ExecutorService executor = Executors.newFixedThreadPool(1); + Future future = executor.submit(write); + + // spin wait until data is written and write blocks + while (!q.isFull()) { Thread.sleep(1); } + + // read one element, which will unblock the last write + Batch b = q.nonBlockReadBatch(1); + assertThat(b, is(notNullValue())); + assertThat(b.getElements().size(), is(equalTo(1))); + b.close(); + + // future result is the blocked write seqNum for the second element + assertThat(future.get(), is(equalTo(2L + i))); + assertThat(q.isFull(), is(false)); + + executor.shutdown(); + } + + // all batches are acked, no tail pages should exist + assertThat(q.getTailPages().size(), is(equalTo(0))); + + // the last read unblocked the last write so some elements (1 unread and maybe some acked) should be in the head page + assertThat(q.getHeadPage().getElementCount() > 0L, is(true)); + assertThat(q.getHeadPage().unreadCount(), is(equalTo(1L))); + assertThat(q.unreadCount, is(equalTo(1L))); + } + +} \ No newline at end of file diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/StringElement.java b/logstash-core/src/test/java/org/logstash/ackedqueue/StringElement.java new file mode 100644 index 00000000000..99092a90884 --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/StringElement.java @@ -0,0 +1,58 @@ +package org.logstash.ackedqueue; + +import java.nio.ByteBuffer; + +public class StringElement implements Queueable { + private final String content; + + public StringElement(String content) { + this.content = content; + } + + @Override + public byte[] serialize() { + byte[] contentBytes = this.content.getBytes(); + ByteBuffer buffer = ByteBuffer.allocate(contentBytes.length); + buffer.put(contentBytes); + return buffer.array(); + } + + public static StringElement deserialize(byte[] bytes) { + ByteBuffer buffer = ByteBuffer.allocate(bytes.length); + buffer.put(bytes); + + buffer.position(0); + byte[] content = new byte[bytes.length]; + buffer.get(content); + return new StringElement(new String(content)); + } + + @Override + public String toString() { + return content; + } + + + @Override + public boolean equals(Object other) { + if (other == null) { + return false; + } + if (!StringElement.class.isAssignableFrom(other.getClass())) { + return false; + } + + final StringElement element = (StringElement)other; + if ((this.content == null) ? (element.content != null) : !this.content.equals(element.content)) { + return false; + } + return true; + } + + @Override + public int hashCode() { + int hash = 13; + hash = 53 * hash + (this.content != null ? this.content.hashCode() : 0); + return hash; + } +} diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/TestQueue.java b/logstash-core/src/test/java/org/logstash/ackedqueue/TestQueue.java new file mode 100644 index 00000000000..16d53ef7b00 --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/TestQueue.java @@ -0,0 +1,17 @@ +package org.logstash.ackedqueue; + +import java.util.List; + +public class TestQueue extends Queue { + public TestQueue(Settings settings) { + super(settings); + } + + public HeadPage getHeadPage() { + return this.headPage; + } + + public List getTailPages() { + return this.tailPages; + } +} diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java b/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java new file mode 100644 index 00000000000..7478c2ec70f --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java @@ -0,0 +1,33 @@ +package org.logstash.ackedqueue; + +import org.logstash.common.io.ByteBufferPageIO; +import org.logstash.common.io.CheckpointIOFactory; +import org.logstash.common.io.FileCheckpointIO; +import org.logstash.common.io.MemoryCheckpointIO; +import org.logstash.common.io.PageIOFactory; + +public class TestSettings { + + public static Settings getSettings(int capacity) { + MemoryCheckpointIO.clearSources(); + Settings s = new MemorySettings(); + PageIOFactory pageIOFactory = (pageNum, size, path) -> new ByteBufferPageIO(pageNum, size, path); + CheckpointIOFactory checkpointIOFactory = (source) -> new MemoryCheckpointIO(source); + s.setCapacity(capacity); + s.setElementIOFactory(pageIOFactory); + s.setCheckpointIOFactory(checkpointIOFactory); + s.setElementClass(StringElement.class); + return s; + } + + public static Settings getSettingsCheckpointFilePageMemory(int capacity, String folder) { + Settings s = new FileSettings(folder); + PageIOFactory pageIOFactory = (pageNum, size, path) -> new ByteBufferPageIO(pageNum, size, path); + CheckpointIOFactory checkpointIOFactory = (source) -> new FileCheckpointIO(source); + s.setCapacity(capacity); + s.setElementIOFactory(pageIOFactory); + s.setCheckpointIOFactory(checkpointIOFactory); + s.setElementClass(StringElement.class); + return s; + } +} diff --git a/logstash-core/src/test/java/org/logstash/common/io/ByteBufferPageIOTest.java b/logstash-core/src/test/java/org/logstash/common/io/ByteBufferPageIOTest.java new file mode 100644 index 00000000000..9edd134bbe2 --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/common/io/ByteBufferPageIOTest.java @@ -0,0 +1,157 @@ +package org.logstash.common.io; + +import org.junit.Test; +import org.logstash.ackedqueue.Queueable; +import org.logstash.ackedqueue.SequencedList; +import org.logstash.ackedqueue.StringElement; + +import java.io.IOException; +import java.util.List; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + + +public class ByteBufferPageIOTest { + + private final int CAPACITY = 1024; + private int MIN_CAPACITY = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(0); + + private ByteBufferPageIO subject() throws IOException { + return subject(CAPACITY); + } + + private ByteBufferPageIO subject(int capacity) throws IOException { + ByteBufferPageIO io = new ByteBufferPageIO(capacity); + io.create(); + return io; + } + + private ByteBufferPageIO subject(int capacity, byte[] bytes) throws IOException { + return new ByteBufferPageIO(capacity, bytes); + } + + private Queueable buildStringElement(String str) { + return new StringElement(str); + } + + @Test + public void getWritePosition() throws IOException { + assertThat(subject().getWritePosition(), is(equalTo(1))); + } + + @Test + public void getElementCount() throws IOException { + assertThat(subject().getElementCount(), is(equalTo(0))); + } + + @Test + public void getStartSeqNum() throws IOException { + assertThat(subject().getMinSeqNum(), is(equalTo(0L))); + } + + @Test + public void hasSpace() throws IOException { + assertThat(subject(MIN_CAPACITY).hasSpace(0), is(true)); + assertThat(subject(MIN_CAPACITY).hasSpace(1), is(false)); + } + + @Test + public void hasSpaceAfterWrite() throws IOException { + Queueable element = new StringElement("foobarbaz"); + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); + long seqNum = 1L; + + ByteBufferPageIO subject = subject(singleElementCapacity); + + assertThat(subject.hasSpace(element.serialize().length), is(true)); + subject.write(element.serialize(), seqNum); + assertThat(subject.hasSpace(element.serialize().length), is(false)); + assertThat(subject.hasSpace(1), is(false)); + } + + @Test + public void write() throws IOException { + Queueable element = new StringElement("foobarbaz"); + long seqNum = 42L; + ByteBufferPageIO subj = subject(); + subj.create(); + subj.write(element.serialize(), seqNum); + assertThat(subj.getWritePosition(), is(equalTo(ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length)))); + assertThat(subj.getElementCount(), is(equalTo(1))); + assertThat(subj.getMinSeqNum(), is(equalTo(seqNum))); + } + + @Test + public void recoversValidState() throws IOException { + Queueable element = new StringElement("foobarbaz"); + long seqNum = 42L; + ByteBufferPageIO subject = subject(); + subject.create(); + subject.write(element.serialize(), seqNum); + + byte[] inititalState = subject.dump(); + subject = subject(inititalState.length, inititalState); + subject.open(seqNum, 1); + assertThat(subject.getElementCount(), is(equalTo(1))); + assertThat(subject.getMinSeqNum(), is(equalTo(seqNum))); + } + + @Test(expected = IOException.class) + public void recoversInvalidState() throws IOException { + Queueable element = new StringElement("foobarbaz"); + long seqNum = 42L; + ByteBufferPageIO subject = subject(); + subject.create(); + subject.write(element.serialize(), seqNum); + + byte[] inititalState = subject.dump(); + subject(inititalState.length, inititalState); + subject.open(1L, 1); + } + + // TODO: add other invalid initial states + + @Test + public void writeRead() throws IOException { + long seqNum = 42L; + Queueable element = buildStringElement("foobarbaz"); + ByteBufferPageIO subj = subject(); + subj.create(); + subj.write(element.serialize(), seqNum); + SequencedList result = subj.read(seqNum, 1); + assertThat(result.getElements().size(), is(equalTo(1))); + Queueable readElement = StringElement.deserialize(result.getElements().get(0)); + assertThat(result.getSeqNums().get(0), is(equalTo(seqNum))); + assertThat(readElement.toString(), is(equalTo(element.toString()))); + } + + @Test + public void writeReadMulti() throws IOException { + Queueable element1 = buildStringElement("foo"); + Queueable element2 = buildStringElement("bar"); + Queueable element3 = buildStringElement("baz"); + Queueable element4 = buildStringElement("quux"); + ByteBufferPageIO subj = subject(); + subj.create(); + subj.write(element1.serialize(), 40L); + subj.write(element2.serialize(), 41L); + subj.write(element3.serialize(), 42L); + subj.write(element4.serialize(), 43L); + int batchSize = 11; + SequencedList result = subj.read(40L, batchSize); + assertThat(result.getElements().size(), is(equalTo(4))); + + assertThat(result.getSeqNums().get(0), is(equalTo(40L))); + assertThat(result.getSeqNums().get(1), is(equalTo(41L))); + assertThat(result.getSeqNums().get(2), is(equalTo(42L))); + assertThat(result.getSeqNums().get(3), is(equalTo(43L))); + + assertThat(StringElement.deserialize(result.getElements().get(0)).toString(), is(equalTo(element1.toString()))); + assertThat(StringElement.deserialize(result.getElements().get(1)).toString(), is(equalTo(element2.toString()))); + assertThat(StringElement.deserialize(result.getElements().get(2)).toString(), is(equalTo(element3.toString()))); + assertThat(StringElement.deserialize(result.getElements().get(3)).toString(), is(equalTo(element4.toString()))); + } + +} \ No newline at end of file diff --git a/logstash-core/src/test/java/org/logstash/common/io/FileCheckpointIOTest.java b/logstash-core/src/test/java/org/logstash/common/io/FileCheckpointIOTest.java new file mode 100644 index 00000000000..86e860aad59 --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/common/io/FileCheckpointIOTest.java @@ -0,0 +1,53 @@ +package org.logstash.common.io; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.logstash.ackedqueue.Checkpoint; + +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +public class FileCheckpointIOTest { + private String checkpointFolder; + private CheckpointIO io; + + @Rule + public TemporaryFolder temporaryFolder = new TemporaryFolder(); + + @Before + public void setUp() throws Exception { + checkpointFolder = temporaryFolder + .newFolder("checkpoints") + .getPath(); + io = new FileCheckpointIO(checkpointFolder); + } + + @Test + public void read() throws Exception { + URL url = this.getClass().getResource("checkpoint.head"); + String dirPath = Paths.get(url.toURI()).getParent().toString(); + io = new FileCheckpointIO(dirPath); + Checkpoint chk = io.read("checkpoint.head"); + assertThat(chk.getMinSeqNum(), is(8L)); + } + + @Test + public void write() throws Exception { + io.write("checkpoint.head", 6, 2, 10L, 8L, 200); + io.write("checkpoint.head", 6, 2, 10L, 8L, 200); + Path fullFileName = Paths.get(checkpointFolder, "checkpoint.head"); + byte[] contents = Files.readAllBytes(fullFileName); + URL url = this.getClass().getResource("checkpoint.head"); + Path path = Paths.get(url.getPath()); + byte[] compare = Files.readAllBytes(path); + assertThat(contents, is(equalTo(compare))); + } +} \ No newline at end of file diff --git a/logstash-core/src/test/java/org/logstash/common/io/FileMmapIOTest.java b/logstash-core/src/test/java/org/logstash/common/io/FileMmapIOTest.java new file mode 100644 index 00000000000..01bcfe6a46a --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/common/io/FileMmapIOTest.java @@ -0,0 +1,55 @@ +package org.logstash.common.io; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.logstash.ackedqueue.SequencedList; +import org.logstash.ackedqueue.StringElement; + +import java.util.ArrayList; +import java.util.List; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +public class FileMmapIOTest { + private String folder; + private MmapPageIO writeIo; + private MmapPageIO readIo; + private int pageNum; + + @Rule + public TemporaryFolder temporaryFolder = new TemporaryFolder(); + + @Before + public void setUp() throws Exception { + pageNum = 0; + folder = temporaryFolder + .newFolder("pages") + .getPath(); + writeIo = new MmapPageIO(pageNum, 1024, folder); + readIo = new MmapPageIO(pageNum, 1024, folder); + } + + @Test + public void roundTrip() throws Exception { + List list = new ArrayList<>(); + List readList = new ArrayList<>(); + writeIo.create(); + for (int i = 1; i < 17; i++) { + StringElement input = new StringElement("element-" + i); + list.add(input); + writeIo.write(input.serialize(), i); + } + writeIo.close(); + readIo.open(1, 16); + SequencedList result = readIo.read(1, 16); + for (byte[] bytes : result.getElements()) { + StringElement element = StringElement.deserialize(bytes); + readList.add(element); + } + assertThat(readList, is(equalTo(list))); + } +} \ No newline at end of file diff --git a/logstash-core/src/test/java/org/logstash/common/io/MemoryCheckpointTest.java b/logstash-core/src/test/java/org/logstash/common/io/MemoryCheckpointTest.java new file mode 100644 index 00000000000..d2629bd4ba1 --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/common/io/MemoryCheckpointTest.java @@ -0,0 +1,45 @@ +package org.logstash.common.io; + +import org.junit.Before; +import org.junit.Test; +import org.logstash.ackedqueue.Checkpoint; +import org.logstash.ackedqueue.MemorySettings; +import org.logstash.ackedqueue.Settings; + +import java.io.IOException; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +public class MemoryCheckpointTest { + + private CheckpointIO io; + + @Before + public void setUp() { + Settings settings = new MemorySettings(); + CheckpointIOFactory factory = (dirPath) -> new MemoryCheckpointIO(dirPath); + settings.setCheckpointIOFactory(factory); + this.io = settings.getCheckpointIOFactory().build(settings.getDirPath()); + } + + @Test + public void writeNewReadExisting() throws IOException { + io.write("checkpoint.head", 1, 2, 3, 4, 5); + + Checkpoint checkpoint = io.read("checkpoint.head"); + + assertThat(checkpoint.getPageNum(), is(equalTo(1))); + assertThat(checkpoint.getFirstUnackedPageNum(), is(equalTo(2))); + assertThat(checkpoint.getFirstUnackedSeqNum(), is(equalTo(3L))); + assertThat(checkpoint.getMinSeqNum(), is(equalTo(4L))); + assertThat(checkpoint.getElementCount(), is(equalTo(5))); + } + + @Test + public void readInnexisting() throws IOException { + Checkpoint checkpoint = io.read("checkpoint.invalid"); + assertThat(checkpoint, is(equalTo(null))); + } +} diff --git a/logstash-core/src/test/java/org/logstash/common/io/wip/MemoryPageIOStreamTest.java b/logstash-core/src/test/java/org/logstash/common/io/wip/MemoryPageIOStreamTest.java new file mode 100644 index 00000000000..363de4149a5 --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/common/io/wip/MemoryPageIOStreamTest.java @@ -0,0 +1,188 @@ +package org.logstash.common.io.wip; + +import org.junit.Test; +import org.logstash.ackedqueue.Queueable; +import org.logstash.ackedqueue.SequencedList; +import org.logstash.ackedqueue.StringElement; +import org.logstash.common.io.wip.MemoryPageIOStream; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +public class MemoryPageIOStreamTest { + + private final int CAPACITY = 1024; + private final int EMPTY_HEADER_SIZE = Integer.BYTES + Integer.BYTES; + + private byte[] empty_page_with_header() { + byte[] result = new byte[CAPACITY]; + // version = 1, details = ABC + ByteBuffer.wrap(result).put(new byte[]{0, 0, 0, 1, 0, 0, 0, 3, 65, 66, 67}); + return result; + } + + private MemoryPageIOStream subject() throws IOException { + return subject(CAPACITY); + } + + private MemoryPageIOStream subject(int size) throws IOException { + MemoryPageIOStream io = new MemoryPageIOStream(size); + io.create(); + return io; + } + + private MemoryPageIOStream subject(byte[] bytes, long seqNum, int count) throws IOException { + MemoryPageIOStream io = new MemoryPageIOStream(bytes.length, bytes); + io.open(seqNum, count); + return io; + } + + private Queueable buildStringElement(String str) { + return new StringElement(str); + } + + @Test + public void getWritePosition() throws Exception { + assertThat(subject().getWritePosition(), is(equalTo(EMPTY_HEADER_SIZE))); + assertThat(subject(empty_page_with_header(), 1L, 0).getWritePosition(), is(equalTo(EMPTY_HEADER_SIZE + 3))); + } + + @Test + public void getElementCount() throws Exception { + assertThat(subject().getElementCount(), is(equalTo(0))); + assertThat(subject(empty_page_with_header(), 1L, 0).getElementCount(), is(equalTo(0))); + } + + @Test + public void getStartSeqNum() throws Exception { + assertThat(subject().getMinSeqNum(), is(equalTo(1L))); + assertThat(subject(empty_page_with_header(), 1L, 0).getMinSeqNum(), is(equalTo(1L))); + } + + @Test + public void readHeaderDetails() throws Exception { + MemoryPageIOStream io = new MemoryPageIOStream(CAPACITY); + io.setPageHeaderDetails("ABC"); + io.create(); + assertThat(io.readHeaderDetails(), is(equalTo("ABC"))); + assertThat(io.getWritePosition(), is(equalTo(EMPTY_HEADER_SIZE + 3))); + } + + @Test + public void hasSpace() throws Exception { + assertThat(subject().hasSpace(10), is(true)); + } + + @Test + public void write() throws Exception { + long seqNum = 42L; + Queueable element = new StringElement("foobarbaz"); + MemoryPageIOStream subj = subject(); + subj.write(element.serialize(), seqNum); + assertThat(subj.getElementCount(), is(equalTo(1))); + assertThat(subj.getMinSeqNum(), is(equalTo(seqNum))); + } + + @Test + public void writeUntilFull() throws Exception { + long seqNum = 42L; + Queueable element = new StringElement("foobarbaz"); + byte[] data = element.serialize(); + int bufferSize = 120; + MemoryPageIOStream subj = subject(bufferSize); + while (subj.hasSpace(data.length)) { + subj.write(data, seqNum); + seqNum++; + } + int recordSize = subj.persistedByteCount(data.length); + int remains = bufferSize - subj.getWritePosition(); + assertThat(recordSize, is(equalTo(25))); // element=9 + seqnum=8 + length=4 + crc=4 + assertThat(subj.getElementCount(), is(equalTo(4))); + boolean noSpaceLeft = remains < recordSize; + assertThat(noSpaceLeft, is(true)); + } + + @Test + public void read() throws Exception { + MemoryPageIOStream subj = subject(); + SequencedList result = subj.read(1L, 1); + assertThat(result.getElements().isEmpty(), is(true)); + } + + @Test + public void writeRead() throws Exception { + long seqNum = 42L; + Queueable element = buildStringElement("foobarbaz"); + MemoryPageIOStream subj = subject(); + subj.write(element.serialize(), seqNum); + SequencedList result = subj.read(seqNum, 1); + assertThat(result.getElements().size(), is(equalTo(1))); + Queueable readElement = StringElement.deserialize(result.getElements().get(0)); + assertThat(result.getSeqNums().get(0), is(equalTo(seqNum))); + assertThat(readElement.toString(), is(equalTo(element.toString()))); + } + + @Test + public void writeReadEmptyElement() throws Exception { + long seqNum = 1L; + Queueable element = buildStringElement(""); + MemoryPageIOStream subj = subject(); + subj.write(element.serialize(), seqNum); + SequencedList result = subj.read(seqNum, 1); + assertThat(result.getElements().size(), is(equalTo(1))); + Queueable readElement = StringElement.deserialize(result.getElements().get(0)); + assertThat(result.getSeqNums().get(0), is(equalTo(seqNum))); + assertThat(readElement.toString(), is(equalTo(element.toString()))); + } + + @Test + public void writeReadMulti() throws Exception { + Queueable element1 = buildStringElement("foo"); + Queueable element2 = buildStringElement("bar"); + Queueable element3 = buildStringElement("baz"); + Queueable element4 = buildStringElement("quux"); + MemoryPageIOStream subj = subject(); + subj.write(element1.serialize(), 40L); + subj.write(element2.serialize(), 42L); + subj.write(element3.serialize(), 44L); + subj.write(element4.serialize(), 46L); + int batchSize = 11; + SequencedList result = subj.read(40L, batchSize); + assertThat(result.getElements().size(), is(equalTo(4))); + + assertThat(result.getSeqNums().get(0), is(equalTo(40L))); + assertThat(result.getSeqNums().get(1), is(equalTo(42L))); + assertThat(result.getSeqNums().get(2), is(equalTo(44L))); + assertThat(result.getSeqNums().get(3), is(equalTo(46L))); + + assertThat(StringElement.deserialize(result.getElements().get(0)).toString(), is(equalTo(element1.toString()))); + assertThat(StringElement.deserialize(result.getElements().get(1)).toString(), is(equalTo(element2.toString()))); + assertThat(StringElement.deserialize(result.getElements().get(2)).toString(), is(equalTo(element3.toString()))); + assertThat(StringElement.deserialize(result.getElements().get(3)).toString(), is(equalTo(element4.toString()))); + } + + @Test + public void readFromFirstUnackedSeqNum() throws Exception { + long seqNum = 10L; + String[] values = new String[]{"aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj"}; + MemoryPageIOStream stream = subject(300); + for (String val : values) { + Queueable element = buildStringElement(val); + stream.write(element.serialize(), seqNum); + seqNum++; + } + MemoryPageIOStream subj = subject(stream.getBuffer(), 10L, 10); + int batchSize = 3; + seqNum = 13L; + SequencedList result = subj.read(seqNum, batchSize); + for (int i = 0; i < 3; i++) { + Queueable ele = StringElement.deserialize(result.getElements().get(i)); + assertThat(result.getSeqNums().get(i), is(equalTo(seqNum + i))); + assertThat(ele.toString(), is(equalTo(values[i + 3]))); + } + } +} \ No newline at end of file diff --git a/logstash-core/src/test/java/org/logstash/stress/Concurent.java b/logstash-core/src/test/java/org/logstash/stress/Concurent.java new file mode 100644 index 00000000000..48a4a5385a6 --- /dev/null +++ b/logstash-core/src/test/java/org/logstash/stress/Concurent.java @@ -0,0 +1,183 @@ +package org.logstash.stress; + +import org.logstash.ackedqueue.*; +import org.logstash.common.io.*; + +import java.io.IOException; +import java.time.Duration; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.stream.Collectors; + +public class Concurent { + final static int ELEMENT_COUNT = 2000000; + final static int BATCH_SIZE = 1000; + static Settings settings; + + public static Settings memorySettings(int capacity) { + Settings s = new MemorySettings(); + PageIOFactory pageIOFactory = (pageNum, size, path) -> new ByteBufferPageIO(pageNum, size, path); + CheckpointIOFactory checkpointIOFactory = (source) -> new MemoryCheckpointIO(source); + s.setCapacity(capacity); + s.setElementIOFactory(pageIOFactory); + s.setCheckpointIOFactory(checkpointIOFactory); + s.setElementClass(StringElement.class); + return s; + } + + public static Settings fileSettings(int capacity) { + Settings s = new MemorySettings("/tmp/queue"); + PageIOFactory pageIOFactory = (pageNum, size, path) -> new MmapPageIO(pageNum, size, path); + CheckpointIOFactory checkpointIOFactory = (source) -> new FileCheckpointIO(source); + s.setCapacity(capacity); + s.setElementIOFactory(pageIOFactory); + s.setCheckpointIOFactory(checkpointIOFactory); + s.setElementClass(StringElement.class); + return s; + } + + public static Thread producer(Queue q, List input) { + return new Thread(() -> { + try { + for (StringElement element : input) { + q.write(element); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + + } + + public static void oneProducersOneConsumer() throws IOException, InterruptedException { + List input = new ArrayList<>(); + List output = new ArrayList<>(); + + Instant start = Instant.now(); + + Queue q = new Queue(settings); + q.getCheckpointIO().purge(); + q.open(); + + System.out.print("stating single producers and single consumers stress test... "); + + for (int i = 0; i < ELEMENT_COUNT; i++) { + input.add(new StringElement(new Integer(i).toString())); + } + + Thread consumer = new Thread(() -> { + int consumedCount = 0; + + try { + while (consumedCount < ELEMENT_COUNT) { + Batch b = q.readBatch(BATCH_SIZE); +// if (b.getElements().size() < BATCH_SIZE) { +// System.out.println("read small batch=" + b.getElements().size()); +// } else { +// System.out.println("read batch size=" + b.getElements().size()); +// } + output.addAll((List) b.getElements()); + b.close(); + consumedCount += b.getElements().size(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + consumer.start(); + + Thread producer = producer(q, input); + producer.start(); + + consumer.join(); + q.close(); + + Instant end = Instant.now(); + + if (! input.equals(output)) { + System.out.println("ERROR: input and output are not equal"); + } else { + System.out.println("SUCCESS, result size=" + output.size() + ", elapsed=" + Duration.between(start, end) + ", rate=" + (new Float(ELEMENT_COUNT) / Duration.between(start, end).toMillis()) * 1000); + } + } + + public static void oneProducersOneMultipleConsumer() throws IOException, InterruptedException { + final List input = new ArrayList<>(); + final Collection output = new ConcurrentLinkedQueue(); + final int CONSUMERS = 5; + List consumers = new ArrayList<>(); + + Instant start = Instant.now(); + + Queue q = new Queue(settings); + q.getCheckpointIO().purge(); + q.open(); + + System.out.print("stating single producers and multiple consumers stress test... "); + + for (int i = 0; i < ELEMENT_COUNT; i++) { + input.add(new StringElement(new Integer(i).toString())); + } + + for (int i = 0; i < CONSUMERS; i++) { + consumers.add(new Thread(() -> { + try { + while (output.size() < ELEMENT_COUNT) { + Batch b = q.readBatch(BATCH_SIZE); +// if (b.getElements().size() < BATCH_SIZE) { +// System.out.println("read small batch=" + b.getElements().size()); +// } else { +// System.out.println("read batch size=" + b.getElements().size()); +// } + output.addAll((List) b.getElements()); + b.close(); + } + // everything is read, close queue here since other consumers might be blocked trying to get next batch + q.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + })); + } + + consumers.forEach(c -> c.start()); + + Thread producer = producer(q, input); + producer.start(); + + // gotta hate exception handling in lambdas + consumers.forEach(c -> {try{c.join();} catch(InterruptedException e) {throw new RuntimeException(e);}}); + + Instant end = Instant.now(); + + List result = output.stream().collect(Collectors.toList()); + Collections.sort(result, (p1, p2) -> Integer.valueOf(p1.toString()).compareTo(Integer.valueOf(p2.toString()))); + + if (! input.equals(result)) { + System.out.println("ERROR: input and output are not equal"); + } else { + System.out.println("SUCCESS, result size=" + output.size() + ", elapsed=" + Duration.between(start, end) + ", rate=" + (new Float(ELEMENT_COUNT) / Duration.between(start, end).toMillis()) * 1000); + } + } + + + public static void main(String[] args) throws IOException, InterruptedException { + System.out.println(">>> starting in-memory stress test"); + + settings = memorySettings(1024 * 1024); // 1MB + oneProducersOneConsumer(); + oneProducersOneMultipleConsumer(); + + System.out.println("\n>>> starting file-based stress test in /tmp/queue"); + + settings = fileSettings(1024 * 1024); // 1MB + + oneProducersOneConsumer(); + oneProducersOneMultipleConsumer(); + } + +} diff --git a/logstash-core/src/test/resources/org/logstash/common/io/checkpoint.head b/logstash-core/src/test/resources/org/logstash/common/io/checkpoint.head new file mode 100644 index 0000000000000000000000000000000000000000..d189f0a7fde360bf96392965072d6302892edc5f GIT binary patch literal 34 ecmZQzWME)m17ap11_3Sz#lQiiPZamO)dv6zb^`wZ literal 0 HcmV?d00001 diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index c00202a4d1e..8c33df07552 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -14,17 +14,28 @@ namespace "artifact" do "bin/**/*", "config/**/*", "data", + "lib/bootstrap/**/*", "lib/pluginmanager/**/*", "lib/systeminstall/**/*", + "logstash-core/lib/**/*", "logstash-core/locales/**/*", "logstash-core/vendor/**/*", "logstash-core/*.gemspec", + "logstash-core/gemspec_jars.rb", + "logstash-core-event-java/lib/**/*", "logstash-core-event-java/*.gemspec", + "logstash-core-event-java/gemspec_jars.rb", + + "logstash-core-queue-jruby/lib/**/*", + "logstash-core-queue-jruby/*.gemspec", + "logstash-core-queue-jruby/gemspec_jars.rb", + "logstash-core-plugin-api/lib/**/*", "logstash-core-plugin-api/*.gemspec", + "patterns/**/*", "vendor/??*/**/*", # To include ruby-maven's hidden ".mvn" directory, we need to diff --git a/rakelib/compile.rake b/rakelib/compile.rake index e5730125885..b2df88ec222 100644 --- a/rakelib/compile.rake +++ b/rakelib/compile.rake @@ -13,7 +13,7 @@ namespace "compile" do task "logstash-core-java" do puts("Building logstash-core using gradle") - system("./gradlew", "vendor", "-p", "./logstash-core") + system("./gradlew", "jar", "-p", "./logstash-core") end task "logstash-core-event-java" do @@ -21,6 +21,11 @@ namespace "compile" do system("./gradlew", "jar", "-p", "./logstash-core-event-java") end + task "logstash-core-queue-jruby" do + puts("Building logstash-core-queue-jruby using gradle") + system("./gradlew", "jar", "-p", "./logstash-core-queue-jruby") + end + desc "Build everything" - task "all" => ["grammar", "logstash-core-java", "logstash-core-event-java"] + task "all" => ["grammar", "logstash-core-java", "logstash-core-event-java", "logstash-core-queue-jruby"] end diff --git a/rakelib/test.rake b/rakelib/test.rake index a02a5c5d65a..503bec6c618 100644 --- a/rakelib/test.rake +++ b/rakelib/test.rake @@ -6,6 +6,12 @@ require "pluginmanager/util" namespace "test" do task "setup" do + + # make sure we have a ./data/queue dir here + # temporary wiring until we figure proper queue initialization sequence and in test context etc. + mkdir "data" unless File.directory?("data") + mkdir "data/queue" unless File.directory?("data/queue") + # Need to be run here as because if run aftewarse (after the bundler.setup task) then the report got wrong # numbers and misses files. There is an issue with our setup! method as this does not happen with the regular # bundler.setup used in regular bundler flows. @@ -13,6 +19,7 @@ namespace "test" do require "bootstrap/environment" LogStash::Bundler.setup!({:without => [:build]}) + require "logstash-core" require "rspec/core/runner" require "rspec" diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 9bec90f640c..4e49758160e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -21,6 +21,27 @@ def puts(payload) RSpec.configure do |c| Flores::RSpec.configure(c) + c.before do + # TODO: commented out on post-merged in master - the logger has moved to log4j + # + # + # Force Cabin to always have a JSON subscriber. The main purpose of this + # is to catch crashes in json serialization for our logs. JSONIOThingy + # exists to validate taht what LogStash::Logging::JSON emits is always + # valid JSON. + # jsonvalidator = JSONIOThingy.new + # allow(Cabin::Channel).to receive(:new).and_wrap_original do |m, *args| + # logger = m.call(*args) + # logger.level = :debug + # logger.subscribe(LogStash::Logging::JSON.new(jsonvalidator)) + # + # logger + # end + + LogStash::SETTINGS.set("queue.type", "memory_acked") + LogStash::SETTINGS.set("queue.page_capacity", 1024 * 1024) + LogStash::SETTINGS.set("queue.max_events", 250) + end end def installed_plugins diff --git a/spec/unit/license_spec.rb b/spec/unit/license_spec.rb index 9425cfc9111..88fe74d4ba3 100644 --- a/spec/unit/license_spec.rb +++ b/spec/unit/license_spec.rb @@ -14,7 +14,8 @@ /bsd/, /artistic 2.*/, /ruby/, - /lgpl/]) + /lgpl/, + /epl/]) } ## diff --git a/versions.yml b/versions.yml index 87670bec259..1c44f7e4c39 100644 --- a/versions.yml +++ b/versions.yml @@ -3,4 +3,5 @@ logstash: 6.0.0-alpha1 logstash-core: 6.0.0-alpha1 logstash-core-event: 6.0.0-alpha1 logstash-core-event-java: 6.0.0-alpha1 +logstash-core-queue-jruby: 6.0.0-alpha1 logstash-core-plugin-api: 2.1.16 From ae60c7dfd44d32892f526c853dab1bde5705e370 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 1 Nov 2016 16:49:01 -0700 Subject: [PATCH 441/632] -e and -f should merge even without valid conf file Previously if both -e and -f was specified, LS required that -f still have valid config file(s) before merging. This fixes it to either have one of -f or -e provided Fixes #6164 --- logstash-core/lib/logstash/config/loader.rb | 18 ++++++++-- .../specs/01_logstash_bin_smoke_spec.rb | 35 ++++++++++++++++++- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/logstash-core/lib/logstash/config/loader.rb b/logstash-core/lib/logstash/config/loader.rb index b260830d741..d894bd71bee 100644 --- a/logstash-core/lib/logstash/config/loader.rb +++ b/logstash-core/lib/logstash/config/loader.rb @@ -12,7 +12,18 @@ def format_config(config_path, config_string) # Append the config string. # This allows users to provide both -f and -e flags. The combination # is rare, but useful for debugging. - config_string = config_string + load_config(config_path) + loaded_config = load_config(config_path) + if loaded_config.empty? && config_string.empty? + # If loaded config from `-f` is empty *and* if config string is empty we raise an error + fail(I18n.t("logstash.runner.configuration.file-not-found", :path => config_path)) + end + + # tell the user we are merging, otherwise it is very confusing + if !loaded_config.empty? && !config_string.empty? + @logger.info("Created final config by merging config string and config path", :path => config_path) + end + + config_string = config_string + loaded_config else # include a default stdin input if no inputs given if config_string !~ /input *{/ @@ -52,11 +63,12 @@ def local_config(path) path = ::File.expand_path(path) path = ::File.join(path, "*") if ::File.directory?(path) + config = "" if Dir.glob(path).length == 0 - fail(I18n.t("logstash.runner.configuration.file-not-found", :path => path)) + @logger.info("No config files found in path", :path => path) + return config end - config = "" encoding_issue_files = [] Dir.glob(path).sort.each do |file| next unless ::File.file?(file) diff --git a/qa/integration/specs/01_logstash_bin_smoke_spec.rb b/qa/integration/specs/01_logstash_bin_smoke_spec.rb index 3fa9e3faf02..579a2618433 100644 --- a/qa/integration/specs/01_logstash_bin_smoke_spec.rb +++ b/qa/integration/specs/01_logstash_bin_smoke_spec.rb @@ -25,6 +25,9 @@ let(:num_retries) { 10 } let(:config1) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } let(:config2) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } + let(:port1) { random_port } + let(:port2) { random_port } + let(:config3) { config_to_temp_file(@fixture.config("root", { :port => port2 })) } it "can start the embedded http server on default port 9600" do @ls1.start_with_stdin @@ -54,4 +57,34 @@ expected = YAML.load_file(LogstashService::LS_VERSION_FILE) expect(@ls1.get_version.strip).to eq("logstash #{expected['logstash']}") end -end \ No newline at end of file + + it "should still merge when -e is specified and -f has no valid config files" do + config_string = "input { tcp { port => #{port1} } }" + @ls1.spawn_logstash("-e", config_string, "-f" "/tmp/foobartest") + @ls1.wait_for_logstash + + try(20) do + expect(is_port_open?(port1)).to be true + end + end + + it "should not start when -e is not specified and -f has no valid config files" do + @ls1.spawn_logstash("-e", "", "-f" "/tmp/foobartest") + expect(is_port_open?(9600)).to be false + end + + it "should merge config_string when both -f and -e is specified" do + config_string = "input { tcp { port => #{port1} } }" + @ls1.spawn_logstash("-e", config_string, "-f", config3) + @ls1.wait_for_logstash + + # Both ports should be reachable + try(20) do + expect(is_port_open?(port1)).to be true + end + + try(20) do + expect(is_port_open?(port2)).to be true + end + end +end From 1d21530c56d0bd333eaad320430461ea3de0025e Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 2 Nov 2016 10:36:33 -0400 Subject: [PATCH 442/632] Change how PeriodicPollers log their exception In a busy logstash install and the way we interact with core stats from the jvm or the os, the poller can timeout. This exception is logged as an error. but this shouldn't impact normal operation. This PR changes the following: - Change the interval for 5s instead of 1s - Make the timeout bigger 160s instead of 60 - Concurrent::TimeoutError will be logged using debug instead of error - Any other exception will use the error level. - add tests Fixes: #6160 Fixes: #6158 Fixes #6169 --- .../instrument/periodic_poller/base.rb | 30 ++++++++++++----- .../instrument/periodic_poller/base_spec.rb | 32 +++++++++++++++++++ 2 files changed, 54 insertions(+), 8 deletions(-) create mode 100644 logstash-core/spec/logstash/instrument/periodic_poller/base_spec.rb diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/base.rb b/logstash-core/lib/logstash/instrument/periodic_poller/base.rb index 313f52b2504..916f0c88df0 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/base.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/base.rb @@ -8,8 +8,8 @@ class Base include LogStash::Util::Loggable DEFAULT_OPTIONS = { - :polling_interval => 1, - :polling_timeout => 60 + :polling_interval => 5, + :polling_timeout => 120 } public @@ -22,11 +22,25 @@ def initialize(metric, options = {}) def update(time, result, exception) return unless exception - logger.error("PeriodicPoller: exception", - :poller => self, - :result => result, - :exception => exception, - :executed_at => time) + if exception.is_a?(Concurrent::TimeoutError) + # On a busy system this can happen, we just log it as a debug + # event instead of an error, Some of the JVM calls can take a long time or block. + logger.debug("PeriodicPoller: Timeout exception", + :poller => self, + :result => result, + :polling_timeout => @options[:polling_timeout], + :polling_interval => @options[:polling_interval], + :exception => exception.class, + :executed_at => time) + else + logger.error("PeriodicPoller: exception", + :poller => self, + :result => result, + :exception => exception.class, + :polling_timeout => @options[:polling_timeout], + :polling_interval => @options[:polling_interval], + :executed_at => time) + end end def collect @@ -37,7 +51,7 @@ def start logger.debug("PeriodicPoller: Starting", :polling_interval => @options[:polling_interval], :polling_timeout => @options[:polling_timeout]) if logger.debug? - + collect # Collect data right away if possible @task.execute end diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/base_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/base_spec.rb new file mode 100644 index 00000000000..d0a869aa767 --- /dev/null +++ b/logstash-core/spec/logstash/instrument/periodic_poller/base_spec.rb @@ -0,0 +1,32 @@ +# encoding: utf-8 +require "logstash/instrument/periodic_poller/base" +require "logstash/instrument/metric" +require "logstash/instrument/collector" + +describe LogStash::Instrument::PeriodicPoller::Base do + let(:metric) { LogStash::Instrument::Metric.new(LogStash::Instrument::Collector.new) } + let(:options) { {} } + + subject { described_class.new(metric, options) } + + describe "#update" do + it "logs an timeout exception to debug level" do + exception = Concurrent::TimeoutError.new + expect(subject.logger).to receive(:debug).with(anything, hash_including(:exception => exception.class)) + subject.update(Time.now, "hola", exception) + end + + it "logs any other exception to error level" do + exception = Class.new + expect(subject.logger).to receive(:error).with(anything, hash_including(:exception => exception.class)) + subject.update(Time.now, "hola", exception) + end + + it "doesnt log anything when no exception is received" do + exception = Concurrent::TimeoutError.new + expect(subject.logger).not_to receive(:debug).with(anything) + expect(subject.logger).not_to receive(:error).with(anything) + subject.update(Time.now, "hola", exception) + end + end +end From d063c44293b67ddace68a62b8df0f5ab12f38478 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 2 Nov 2016 10:36:53 -0400 Subject: [PATCH 443/632] This file isn't used all the observer logic is already handled in the periodic poller base class. Fixes #6169 --- .../periodic_poller_observer.rb | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 logstash-core/lib/logstash/instrument/periodic_poller/periodic_poller_observer.rb diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/periodic_poller_observer.rb b/logstash-core/lib/logstash/instrument/periodic_poller/periodic_poller_observer.rb deleted file mode 100644 index 382b350968d..00000000000 --- a/logstash-core/lib/logstash/instrument/periodic_poller/periodic_poller_observer.rb +++ /dev/null @@ -1,19 +0,0 @@ -# encoding: utf-8 -module LogStash module Instrument module PeriodicPoller - class PeriodicPollerObserver - include LogStash::Util::Loggable - - def initialize(poller) - @poller = poller - end - - def update(time, result, exception) - if exception - logger.error("PeriodicPoller exception", :poller => @poller, - :result => result, - :exception => exception, - :executed_at => time) - end - end - end -end; end; end From 32363fb5610d30c6564aec1c6eac09226bfe8c72 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 2 Nov 2016 09:26:31 -0700 Subject: [PATCH 444/632] Make logstash.yml optional 5.0.0 required Logstash to have a valid logstash.yml before it could start successfully. This was mostly fine for users who installed Logstash via tar.gz, but many many folks who install it via packages still start Logstash manually. Also, our documentation uses -e flag for getting started on Logstash and sending their first event.logstash.yml has only defaults defined, and there is no required parameter to start Logstash. We should be able to use the defaults if no logstash.yml. Obviously, this is not ideal from a user point of view, so we should log a warning but continue to bootstrap. Fixes #6170 Fixes #6172 --- logstash-core/lib/logstash/logging/logger.rb | 13 +++++++- logstash-core/lib/logstash/runner.rb | 22 ++++++------- qa/integration/specs/settings_spec.rb | 33 +++++++++++++++++--- 3 files changed, 49 insertions(+), 19 deletions(-) diff --git a/logstash-core/lib/logstash/logging/logger.rb b/logstash-core/lib/logstash/logging/logger.rb index 8acac62ff1a..3ac46014210 100644 --- a/logstash-core/lib/logstash/logging/logger.rb +++ b/logstash-core/lib/logstash/logging/logger.rb @@ -1,4 +1,5 @@ require "logstash/java_integration" +require "uri" module LogStash module Logging @@ -6,6 +7,7 @@ class Logger java_import org.apache.logging.log4j.Level java_import org.apache.logging.log4j.LogManager java_import org.apache.logging.log4j.core.config.Configurator + java_import org.apache.logging.log4j.core.config.DefaultConfiguration @@config_mutex = Mutex.new @@logging_context = nil @@ -70,7 +72,16 @@ def self.configure_logging(level, path = LogManager::ROOT_LOGGER_NAME) def self.initialize(config_location) @@config_mutex.synchronize do if @@logging_context.nil? - @@logging_context = Configurator.initialize(nil, config_location) + file_path = URI(config_location).path + if ::File.exists?(file_path) + logs_location = java.lang.System.getProperty("ls.logs") + puts "Sending Logstash's logs to #{logs_location} which is now configured via log4j2.properties" + @@logging_context = Configurator.initialize(nil, config_location) + else + # fall back to default config + puts "Could not find log4j2 configuration at path #{file_path}. Using default config which logs to console" + @@logging_context = Configurator.initialize(DefaultConfiguration.new) + end end end end diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 531a94a36ca..9bed9478af2 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -164,11 +164,8 @@ def run(args) begin LogStash::SETTINGS.from_yaml(LogStash::SETTINGS.get("path.settings")) - rescue Errno::ENOENT - unless cli_help?(args) - $stderr.puts "ERROR: Logstash requires a setting file which is typically located in $LS_HOME/config or /etc/logstash. If you installed Logstash through a package and are starting it manually, please specify the location to this settings file by passing --path.settings /etc/logstash" - return 1 - end + rescue Errno::ENOENT + $stderr.puts "WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults" rescue => e # abort unless we're just looking for the help unless cli_help?(args) @@ -196,12 +193,6 @@ def execute end # override log level that may have been introduced from a custom log4j config file LogStash::Logging::Logger::configure_logging(setting("log.level")) - - # Adding this here because a ton of LS users install LS via packages and try to manually - # start Logstash using bin/logstash. See #5986. I think not logging to console is good for - # services, but until LS users re-learn that logs end up in path.logs, we should keep this - # message. Otherwise we'll be answering the same question again and again. - puts "Sending Logstash logs to #{setting("path.logs")} which is now configured via log4j2.properties." if setting("config.debug") && logger.debug? logger.warn("--config.debug was specified, but log.level was not set to \'debug\'! No config info will be logged.") @@ -288,7 +279,12 @@ def execute show_short_help return 1 rescue => e - logger.fatal(I18n.t("oops"), :error => e, :backtrace => e.backtrace) + # if logger itself is not initialized + if LogStash::Logging::Logger.get_logging_context.nil? + puts e + else + logger.fatal(I18n.t("oops"), :error => e, :backtrace => e.backtrace) + end return 1 ensure Stud::untrap("INT", sigint_id) unless sigint_id.nil? @@ -421,6 +417,6 @@ def fetch_settings_path(cli_args) def cli_help?(args) # I know, double negative !(["--help", "-h"] & args).empty? - end + end end diff --git a/qa/integration/specs/settings_spec.rb b/qa/integration/specs/settings_spec.rb index e817c1a5d03..d6ff9b5c357 100644 --- a/qa/integration/specs/settings_spec.rb +++ b/qa/integration/specs/settings_spec.rb @@ -9,6 +9,7 @@ before(:all) { @fixture = Fixture.new(__FILE__) @logstash_service = @fixture.get_service("logstash") + @logstash_default_logs = File.join(@logstash_service.logstash_home, "logs", "logstash-plain.log") } after(:all) { @@ -22,6 +23,7 @@ after(:each) { @logstash_service.teardown + FileUtils.rm(@logstash_default_logs) if File.exists?(@logstash_default_logs) # restore the application settings file -- logstash.yml FileUtils.mv("#{@logstash_service.application_settings_file}.original", @logstash_service.application_settings_file) } @@ -39,7 +41,7 @@ def change_setting(name, value) def overwrite_settings(settings) IO.write(@logstash_service.application_settings_file, settings.to_yaml) - end + end it "should start with a new data dir" do change_setting("path.data", temp_dir) @@ -96,7 +98,7 @@ def overwrite_settings(settings) end expect(@logstash_service.exit_code).to eq(1) end - + it "change pipeline settings" do s = {} workers = 31 @@ -110,13 +112,13 @@ def overwrite_settings(settings) try do expect(is_port_open?(test_port)).to be true end - + # now check monitoring API to validate node_info = @logstash_service.monitoring_api.node_info expect(node_info["pipeline"]["workers"]).to eq(workers) expect(node_info["pipeline"]["batch_size"]).to eq(batch_size) end - + it "start on a different HTTP port" do # default in 9600 http_port = random_port @@ -131,9 +133,30 @@ def overwrite_settings(settings) expect(is_port_open?(test_port)).to be true end + expect(File.exists?(@logstash_default_logs)).to be true + resp = Manticore.get("http://localhost:#{http_port}/_node").body node_info = JSON.parse(resp) # should be default expect(node_info["http_address"]).to eq("127.0.0.1:#{http_port}") end -end \ No newline at end of file + + it "start even without a settings file specified" do + @logstash_service.spawn_logstash("-e", tcp_config, "--path.settings", "/tmp/fooooobbaaar") + http_port = 9600 + try(num_retries) do + expect(is_port_open?(http_port)).to be true + end + + try(num_retries) do + expect(is_port_open?(test_port)).to be true + end + + resp = Manticore.get("http://localhost:#{http_port}/_node").body + node_info = JSON.parse(resp) + expect(node_info["http_address"]).to eq("127.0.0.1:#{http_port}") + + # make sure we log to console and not to any file + expect(File.exists?(@logstash_default_logs)).to be false + end +end From 0b457996d07318336d2a1d14283782e4a8297ddf Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 2 Nov 2016 10:10:28 -0700 Subject: [PATCH 445/632] Fix unit tests Fixes #6172 --- logstash-core/spec/logstash/runner_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core/spec/logstash/runner_spec.rb b/logstash-core/spec/logstash/runner_spec.rb index 00ff679e6d8..cab9dae268e 100644 --- a/logstash-core/spec/logstash/runner_spec.rb +++ b/logstash-core/spec/logstash/runner_spec.rb @@ -353,8 +353,8 @@ def run(args); end context "if does not exist" do let(:args) { ["--path.settings", "/tmp/a/a/a/a", "-e", "input {} output {}"] } - it "should terminate logstash" do - expect(subject.run(args)).to eq(1) + it "should not terminate logstash" do + expect(subject.run(args)).to eq(nil) end context "but if --help is passed" do From 5624b177357a7d3091bcb9255ce951bc7fdb06de Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 2 Nov 2016 12:41:51 -0700 Subject: [PATCH 446/632] Use stderr instead of puts Fixes #6172 --- logstash-core/lib/logstash/runner.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 9bed9478af2..ebbd8bfdcdc 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -281,7 +281,7 @@ def execute rescue => e # if logger itself is not initialized if LogStash::Logging::Logger.get_logging_context.nil? - puts e + $stderr.puts "#{I18n.t("oops")} :error => #{e}, :backtrace => #{e.backtrace}" else logger.fatal(I18n.t("oops"), :error => e, :backtrace => e.backtrace) end From e8f32f23fb77bcb0b89d3e6cbb2e68112f5903fb Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 2 Nov 2016 14:27:06 -0700 Subject: [PATCH 447/632] Fix failing travis test Fixes #6176 --- qa/integration/specs/settings_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/integration/specs/settings_spec.rb b/qa/integration/specs/settings_spec.rb index d6ff9b5c357..b552a593eba 100644 --- a/qa/integration/specs/settings_spec.rb +++ b/qa/integration/specs/settings_spec.rb @@ -17,13 +17,13 @@ } before(:each) { + FileUtils.rm(@logstash_default_logs) if File.exists?(@logstash_default_logs) # backup the application settings file -- logstash.yml FileUtils.cp(@logstash_service.application_settings_file, "#{@logstash_service.application_settings_file}.original") } after(:each) { @logstash_service.teardown - FileUtils.rm(@logstash_default_logs) if File.exists?(@logstash_default_logs) # restore the application settings file -- logstash.yml FileUtils.mv("#{@logstash_service.application_settings_file}.original", @logstash_service.application_settings_file) } From 19d3232873fd25582397ceb3903fd35c26394e9b Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Tue, 25 Oct 2016 23:57:36 -0700 Subject: [PATCH 448/632] slowlog Fixes #6128 --- config/log4j2.properties | 43 ++++++++++++ docs/static/logging.asciidoc | 32 +++++++++ logstash-core/lib/logstash/environment.rb | 4 ++ logstash-core/lib/logstash/filters/base.rb | 12 +++- logstash-core/lib/logstash/logging/logger.rb | 41 +++++++++-- logstash-core/lib/logstash/plugin.rb | 6 ++ logstash-core/lib/logstash/settings.rb | 13 ++++ logstash-core/lib/logstash/util/loggable.rb | 16 ++++- logstash-core/lib/logstash/util/time_value.rb | 70 +++++++++++++++++++ .../spec/logstash/settings/time_value_spec.rb | 31 ++++++++ .../spec/logstash/util/time_value_spec.rb | 59 ++++++++++++++++ qa/integration/fixtures/slowlog_spec.yml | 15 ++++ qa/integration/specs/slowlog_spec.rb | 46 ++++++++++++ 13 files changed, 380 insertions(+), 8 deletions(-) create mode 100644 logstash-core/lib/logstash/util/time_value.rb create mode 100644 logstash-core/spec/logstash/settings/time_value_spec.rb create mode 100644 logstash-core/spec/logstash/util/time_value_spec.rb create mode 100644 qa/integration/fixtures/slowlog_spec.yml create mode 100644 qa/integration/specs/slowlog_spec.rb diff --git a/config/log4j2.properties b/config/log4j2.properties index 52026f20d3c..aab2e62f360 100644 --- a/config/log4j2.properties +++ b/config/log4j2.properties @@ -35,6 +35,49 @@ appender.json_rolling.layout.type = JSONLayout appender.json_rolling.layout.compact = true appender.json_rolling.layout.eventEol = true + rootLogger.level = ${sys:ls.log.level} rootLogger.appenderRef.console.ref = ${sys:ls.log.format}_console rootLogger.appenderRef.rolling.ref = ${sys:ls.log.format}_rolling + +# Slowlog + +appender.console_slowlog.type = Console +appender.console_slowlog.name = plain_console_slowlog +appender.console_slowlog.layout.type = PatternLayout +appender.console_slowlog.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n + +appender.json_console_slowlog.type = Console +appender.json_console_slowlog.name = json_console_slowlog +appender.json_console_slowlog.layout.type = JSONLayout +appender.json_console_slowlog.layout.compact = true +appender.json_console_slowlog.layout.eventEol = true + +appender.rolling_slowlog.type = RollingFile +appender.rolling_slowlog.name = plain_rolling_slowlog +appender.rolling_slowlog.fileName = ${sys:ls.logs}/logstash-slowlog-${sys:ls.log.format}.log +appender.rolling_slowlog.filePattern = ${sys:ls.logs}/logstash-slowlog-${sys:ls.log.format}-%d{yyyy-MM-dd}.log +appender.rolling_slowlog.policies.type = Policies +appender.rolling_slowlog.policies.time.type = TimeBasedTriggeringPolicy +appender.rolling_slowlog.policies.time.interval = 1 +appender.rolling_slowlog.policies.time.modulate = true +appender.rolling_slowlog.layout.type = PatternLayout +appender.rolling_slowlog.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n + +appender.json_rolling_slowlog.type = RollingFile +appender.json_rolling_slowlog.name = json_rolling_slowlog +appender.json_rolling_slowlog.fileName = ${sys:ls.logs}/logstash-slowlog-${sys:ls.log.format}.log +appender.json_rolling_slowlog.filePattern = ${sys:ls.logs}/logstash-slowlog-${sys:ls.log.format}-%d{yyyy-MM-dd}.log +appender.json_rolling_slowlog.policies.type = Policies +appender.json_rolling_slowlog.policies.time.type = TimeBasedTriggeringPolicy +appender.json_rolling_slowlog.policies.time.interval = 1 +appender.json_rolling_slowlog.policies.time.modulate = true +appender.json_rolling_slowlog.layout.type = JSONLayout +appender.json_rolling_slowlog.layout.compact = true +appender.json_rolling_slowlog.layout.eventEol = true + +logger.slowlog.name = slowlog +logger.slowlog.level = trace +logger.slowlog.appenderRef.console_slowlog.ref = ${sys:ls.log.format}_console_slowlog +logger.slowlog.appenderRef.rolling_slowlog.ref = ${sys:ls.log.format}_rolling_slowlog +logger.slowlog.additivity = false diff --git a/docs/static/logging.asciidoc b/docs/static/logging.asciidoc index bc37bd3219c..6b0b668f2ae 100644 --- a/docs/static/logging.asciidoc +++ b/docs/static/logging.asciidoc @@ -21,6 +21,38 @@ Logstash ships with a `log4j2.properties` file with out-of-the-box settings. You rotation policy, type, and other https://logging.apache.org/log4j/2.x/manual/configuration.html#Loggers[log4j2 configuration]. You must restart Lostash to apply any changes that you make to this file. +==== Slowlog + +Slow-log for Logstash adds the ability to log when a specific event takes an abnormal amount of time to make its way +through the pipeline. Just like the normal application log, you can find slow-logs in your `--path.logs` directory. +Slowlog is configured in the `logstash.yml` settings file with the following options: + +------------------------------ +[source] +slowlog.threshold.warn (default: -1) +slowlog.threshold.info (default: -1) +slowlog.threshold.debug (default: -1) +slowlog.threshold.trace (default: -1) +------------------------------ + +By default, these values are set to `-1nanos` to represent an infinite threshold where no slowlog will be invoked. These `slowlog.threshold` +fields are configured using a time-value format which enables a wide range of trigger intervals. The positive numeric ranges +can be specified using the following time units: `nanos` (nanoseconds), `micros` (microseconds), `ms` (milliseconds), `s` (second), `m` (minute), +`h` (hour), `d` (day). + +Here is an example: + +------------------------------ +[source] +slowlog.threshold.warn: 2s +slowlog.threshold.info 1s +slowlog.threshold.debug 500ms +slowlog.threshold.trace 100ms +------------------------------ + +In the above configuration, events that take longer than two seconds to be processed within a filter will be logged. +The logs will include the full event and filter configuration that are responsible for the slowness. + ==== Logging APIs You could modify the `log4j2.properties` file and restart your Logstash, but that is both tedious and leads to unnecessary diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 6b052c2dcd1..20b67bd4bb2 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -43,6 +43,10 @@ module Environment Setting::String.new("queue.type", "memory", true, ["persisted", "memory", "memory_acked"]), Setting::Bytes.new("queue.page_capacity", "250mb"), Setting::Numeric.new("queue.max_events", 0), # 0 is unlimited + Setting::TimeValue.new("slowlog.threshold.warn", "-1"), + Setting::TimeValue.new("slowlog.threshold.info", "-1"), + Setting::TimeValue.new("slowlog.threshold.debug", "-1"), + Setting::TimeValue.new("slowlog.threshold.trace", "-1") ].each {|setting| SETTINGS.register(setting) } # Compute the default queue path based on `path.data` diff --git a/logstash-core/lib/logstash/filters/base.rb b/logstash-core/lib/logstash/filters/base.rb index 35bf49e46ab..127f7c2630b 100644 --- a/logstash-core/lib/logstash/filters/base.rb +++ b/logstash-core/lib/logstash/filters/base.rb @@ -139,6 +139,14 @@ def filter(event) raise "#{self.class}#filter must be overidden" end # def filter + public + def do_filter(event, &block) + time = java.lang.System.nanoTime + filter(event, &block) + @slow_logger.on_event("event processing time", @original_params, event, java.lang.System.nanoTime - time) + end + + # in 1.5.0 multi_filter is meant to be used in the generated filter function in LogStash::Config::AST::Plugin only # and is temporary until we refactor the filter method interface to accept events list and return events list, # just list in multi_filter see https://github.com/elastic/logstash/issues/2872. @@ -153,7 +161,7 @@ def multi_filter(events) events.each do |event| unless event.cancelled? result << event - filter(event){|new_event| result << new_event} + do_filter(event){|new_event| result << new_event} end end result @@ -161,7 +169,7 @@ def multi_filter(events) public def execute(event, &block) - filter(event, &block) + do_filter(event, &block) end # def execute public diff --git a/logstash-core/lib/logstash/logging/logger.rb b/logstash-core/lib/logstash/logging/logger.rb index 3ac46014210..74b51cfeec9 100644 --- a/logstash-core/lib/logstash/logging/logger.rb +++ b/logstash-core/lib/logstash/logging/logger.rb @@ -3,11 +3,12 @@ module LogStash module Logging + java_import org.apache.logging.log4j.Level + java_import org.apache.logging.log4j.LogManager + java_import org.apache.logging.log4j.core.config.Configurator + java_import org.apache.logging.log4j.core.config.DefaultConfiguration + class Logger - java_import org.apache.logging.log4j.Level - java_import org.apache.logging.log4j.LogManager - java_import org.apache.logging.log4j.core.config.Configurator - java_import org.apache.logging.log4j.core.config.DefaultConfiguration @@config_mutex = Mutex.new @@logging_context = nil @@ -90,5 +91,37 @@ def self.get_logging_context return @@logging_context end end + + class SlowLogger + def initialize(name, warn_threshold, info_threshold, debug_threshold, trace_threshold) + slowlog_name = ["slowlog", name].join('.') + @slowlogger = LogManager.getLogger(slowlog_name) + @warn_threshold = warn_threshold + @info_threshold = info_threshold + @debug_threshold = debug_threshold + @trace_threshold = trace_threshold + end + + def as_data(plugin_params, event, took_in_nanos) + { + :plugin_params => plugin_params, + :took_in_nanos => took_in_nanos, + :took_in_millis => took_in_nanos / 1000, + :event => event.to_json + } + end + + def on_event(message, plugin_params, event, took_in_nanos) + if @warn_threshold >= 0 and took_in_nanos > @warn_threshold + @slowlogger.warn(message, as_data(plugin_params, event, took_in_nanos)) + elsif @info_threshold >= 0 and took_in_nanos > @info_threshold + @slowlogger.info(message, as_data(plugin_params, event, took_in_nanos)) + elsif @debug_threshold >= 0 and took_in_nanos > @debug_threshold + @slowlogger.debug(message, as_data(plugin_params, event, took_in_nanos)) + elsif @trace_threshold >= 0 and took_in_nanos > @trace_threshold + @slowlogger.trace(message, as_data(plugin_params, event, took_in_nanos)) + end + end + end end end diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index c3ebd1c9abe..9d43f02c9e9 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -46,6 +46,12 @@ def eql?(other) def initialize(params=nil) @logger = self.logger + # need to access settings statically because plugins are initialized in config_ast with no context. + settings = LogStash::SETTINGS + @slow_logger = self.slow_logger(settings.get("slowlog.threshold.warn"), + settings.get("slowlog.threshold.info"), + settings.get("slowlog.threshold.debug"), + settings.get("slowlog.threshold.trace")) @params = LogStash::Util.deep_clone(params) # The id should always be defined normally, but in tests that might not be the case # In the future we may make this more strict in the Plugin API diff --git a/logstash-core/lib/logstash/settings.rb b/logstash-core/lib/logstash/settings.rb index 2039303ad8a..5bb1e649b56 100644 --- a/logstash-core/lib/logstash/settings.rb +++ b/logstash-core/lib/logstash/settings.rb @@ -2,6 +2,7 @@ require "logstash/util/loggable" require "fileutils" require "logstash/util/byte_value" +require "logstash/util/time_value" module LogStash class Settings @@ -463,8 +464,20 @@ def validate(value) end end end + + class TimeValue < Coercible + def initialize(name, default, strict=true, &validator_proc) + super(name, ::Fixnum, default, strict, &validator_proc) + end + + def coerce(value) + return value if value.is_a?(::Fixnum) + Util::TimeValue.from_value(value).to_nanos + end + end end + SETTINGS = Settings.new end diff --git a/logstash-core/lib/logstash/util/loggable.rb b/logstash-core/lib/logstash/util/loggable.rb index e7fc5cd73c5..25e24cfcb69 100644 --- a/logstash-core/lib/logstash/util/loggable.rb +++ b/logstash-core/lib/logstash/util/loggable.rb @@ -5,15 +5,27 @@ module LogStash module Util module Loggable def self.included(klass) - def klass.logger + + def klass.log4j_name ruby_name = self.name || self.class.name || self.class.to_s - log4j_name = ruby_name.gsub('::', '.').downcase + ruby_name.gsub('::', '.').downcase + end + + def klass.logger @logger ||= LogStash::Logging::Logger.new(log4j_name) end + def klass.slow_logger(warn_threshold, info_threshold, debug_threshold, trace_threshold) + @slow_logger ||= LogStash::Logging::SlowLogger.new(log4j_name, warn_threshold, info_threshold, debug_threshold, trace_threshold) + end + def logger self.class.logger end + + def slow_logger(warn_threshold, info_threshold, debug_threshold, trace_threshold) + self.class.slow_logger(warn_threshold, info_threshold, debug_threshold, trace_threshold) + end end end end; end diff --git a/logstash-core/lib/logstash/util/time_value.rb b/logstash-core/lib/logstash/util/time_value.rb new file mode 100644 index 00000000000..63e19ce0264 --- /dev/null +++ b/logstash-core/lib/logstash/util/time_value.rb @@ -0,0 +1,70 @@ +module LogStash + module Util + class TimeValue + def initialize(duration, time_unit) + @duration = duration + @time_unit = time_unit + end + + def self.from_value(value) + if value.is_a?(TimeValue) + TimeValue.new(value.duration, value.time_unit) + elsif value.is_a?(::String) + normalized = value.downcase.strip + if normalized.end_with?("nanos") + TimeValue.new(parse(normalized, 5), :nanosecond) + elsif normalized.end_with?("micros") + TimeValue.new(parse(normalized, 6), :microsecond) + elsif normalized.end_with?("ms") + TimeValue.new(parse(normalized, 2), :millisecond) + elsif normalized.end_with?("s") + TimeValue.new(parse(normalized, 1), :second) + elsif normalized.end_with?("m") + TimeValue.new(parse(normalized, 1), :minute) + elsif normalized.end_with?("h") + TimeValue.new(parse(normalized, 1), :hour) + elsif normalized.end_with?("d") + TimeValue.new(parse(normalized, 1), :day) + elsif normalized =~ /^-0*1/ + TimeValue.new(-1, :nanosecond) + else + raise ArgumentError.new("invalid time unit: \"#{value}\"") + end + else + raise ArgumentError.new("value is not a string: #{value} [#{value.class}]") + end + end + + def to_nanos + case @time_unit + when :day + 86400000000000 * @duration + when :hour + 3600000000000 * @duration + when :minute + 60000000000 * @duration + when :second + 1000000000 * @duration + when :millisecond + 1000000 * @duration + when :microsecond + 1000 * @duration + when :nanosecond + @duration + end + end + + def ==(other) + self.duration == other.duration and self.time_unit == other.time_unit + end + + def self.parse(value, suffix) + Integer(value[0..(value.size - suffix - 1)].strip) + end + + private_class_method :parse + attr_reader :duration + attr_reader :time_unit + end + end +end diff --git a/logstash-core/spec/logstash/settings/time_value_spec.rb b/logstash-core/spec/logstash/settings/time_value_spec.rb new file mode 100644 index 00000000000..e1e4940d36a --- /dev/null +++ b/logstash-core/spec/logstash/settings/time_value_spec.rb @@ -0,0 +1,31 @@ +# encoding: utf-8 +require "spec_helper" +require "logstash/settings" + +describe LogStash::Setting::TimeValue do + subject { described_class.new("option", "-1") } + describe "#set" do + it "should coerce the default correctly" do + expect(subject.value).to eq(LogStash::Util::TimeValue.new(-1, :nanosecond).to_nanos) + end + + context "when a value is given outside of possible_values" do + it "should raise an ArgumentError" do + expect { subject.set("invalid") }.to raise_error(ArgumentError) + end + end + context "when a value is given as a time value" do + it "should set the value" do + subject.set("18m") + expect(subject.value).to eq(LogStash::Util::TimeValue.new(18, :minute).to_nanos) + end + end + + context "when a value is given as a nanosecond" do + it "should set the value" do + subject.set(5) + expect(subject.value).to eq(LogStash::Util::TimeValue.new(5, :nanosecond).to_nanos) + end + end + end +end diff --git a/logstash-core/spec/logstash/util/time_value_spec.rb b/logstash-core/spec/logstash/util/time_value_spec.rb new file mode 100644 index 00000000000..bbd8d3efdd7 --- /dev/null +++ b/logstash-core/spec/logstash/util/time_value_spec.rb @@ -0,0 +1,59 @@ +# encoding: utf-8 +require "logstash/util/time_value" +require "spec_helper" + +RSpec.shared_examples "coercion example" do |value, expected| + let(:value) { value } + let(:expected) { expected } + it 'coerces correctly' do + expect(LogStash::Util::TimeValue.from_value(value)).to eq(expected) + end +end + + +module LogStash module Util +describe TimeValue do + it_behaves_like "coercion example", TimeValue.new(100, :hour), TimeValue.new(100, :hour) + it_behaves_like "coercion example", "18nanos", TimeValue.new(18, :nanosecond) + it_behaves_like "coercion example", "18micros", TimeValue.new(18, :microsecond) + it_behaves_like "coercion example", "18ms", TimeValue.new(18, :millisecond) + it_behaves_like "coercion example", "18s", TimeValue.new(18, :second) + it_behaves_like "coercion example", "18m", TimeValue.new(18, :minute) + it_behaves_like "coercion example", "18h", TimeValue.new(18, :hour) + it_behaves_like "coercion example", "18d", TimeValue.new(18, :day) + + it "coerces with a space between the duration and the unit" do + expected = TimeValue.new(18, :hour) + actual = TimeValue.from_value("18 h") + expect(actual).to eq(expected) + end + + it "fails to coerce non-ints" do + begin + a = TimeValue.from_value("f18 nanos") + fail "should not parse" + rescue ArgumentError => e + expect(e.message).to eq("invalid value for Integer(): \"f18\"") + end + end + + it "fails to coerce invalid units" do + begin + a = TimeValue.from_value("18xyz") + fail "should not parse" + rescue ArgumentError => e + expect(e.message).to eq("invalid time unit: \"18xyz\"") + end + end + + it "fails to coerce invalid value types" do + begin + a = TimeValue.from_value(32) + fail "should not parse" + rescue ArgumentError => e + expect(e.message).to eq("value is not a string: 32 [Fixnum]") + end + end +end +end +end diff --git a/qa/integration/fixtures/slowlog_spec.yml b/qa/integration/fixtures/slowlog_spec.yml new file mode 100644 index 00000000000..0d962f7d0e4 --- /dev/null +++ b/qa/integration/fixtures/slowlog_spec.yml @@ -0,0 +1,15 @@ +--- +services: + - logstash +config: |- + input { + generator { + count => 4 + } + } + filter { + sleep { time => 1 every => 2 } + } + output { + null {} + } diff --git a/qa/integration/specs/slowlog_spec.rb b/qa/integration/specs/slowlog_spec.rb new file mode 100644 index 00000000000..c27f09adfae --- /dev/null +++ b/qa/integration/specs/slowlog_spec.rb @@ -0,0 +1,46 @@ +require_relative '../framework/fixture' +require_relative '../framework/settings' +require_relative '../services/logstash_service' +require_relative '../framework/helpers' +require "logstash/devutils/rspec/spec_helper" +require "yaml" + +describe "Test Logstash Slowlog" do + before(:all) { + @fixture = Fixture.new(__FILE__) + # used in multiple LS tests + @ls = @fixture.get_service("logstash") + } + + after(:all) { + @fixture.teardown + } + + before(:each) { + # backup the application settings file -- logstash.yml + FileUtils.cp(@ls.application_settings_file, "#{@ls.application_settings_file}.original") + } + + after(:each) { + @ls.teardown + # restore the application settings file -- logstash.yml + FileUtils.mv("#{@ls.application_settings_file}.original", @ls.application_settings_file) + } + + let(:temp_dir) { Stud::Temporary.directory("logstash-slowlog-test") } + let(:config) { @fixture.config("root") } + + it "should write logs to a new dir" do + settings = { + "path.logs" => temp_dir, + "slowlog.threshold.warn" => "500ms" + } + IO.write(@ls.application_settings_file, settings.to_yaml) + @ls.spawn_logstash("-e", config) + @ls.wait_for_logstash + sleep 1 until @ls.exited? + slowlog_file = "#{temp_dir}/logstash-slowlog-plain.log" + expect(File.exists?(slowlog_file)).to be true + expect(IO.read(slowlog_file).split("\n").size).to eq(2) + end +end From dcbfca0477d19e7381cf0ea6e05c0e18f4d0a264 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 2 Nov 2016 13:15:00 -0700 Subject: [PATCH 449/632] Update image of logstash pipeline for the GS Fixes #6175 --- .../static/images/basic_logstash_pipeline.png | Bin 57126 -> 40340 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/static/images/basic_logstash_pipeline.png b/docs/static/images/basic_logstash_pipeline.png index 61341fc68ac1e0817ad2c5a2834c537d6213128e..6d04890dfe32f8b58d7534b7a7b0d39f45e954bc 100644 GIT binary patch literal 40340 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 literal 57126 zcmeFZNWK$(*2(U5Gkazvh z2bm*wK9)gPuEhV<_Mav;+ z_rHf83-`eK?;cRYC1T;IpK8>~|IfSs=lO$vZRr2iLnq2dnn46g#ll%^7O#ELHSOERCzY@Ru@At2zhW_{CI3x(MYsDqr@rA$q@AqGfanH^r7_{I@&Ke&d z4eVj)mbk^UHo>`3hVTHE1NKY9Rm8*YH>;cq!}^E^#0 zEji{SuXJzS|20^Fbmu-1d>S&8U^y5|yQ(K4@!eMlz%^^Hx|L%_fL&|Msm1BRy@k8i zezW!tUmR9FJ3l{Ctd=J!$>m`j_SW+s8@vodfxjezjivLC1V4QNp+q$6%r~1cKZ|M9@p1qtg zj}g^Y7KeY+`}H|)G>v<}DwiBPyAFyTD9kvy`UMj!$exdwus`bC#`(T=VQC zwS*4;wHj2dkjp#e|G(pZS6YC?|L3;C5x}TjEO)fzN(*Pz_d}dtgnQFQ4Wt0sEhq?e z{xe^lU33H%j~g`+u}IhD2qo|zEmUV}o!%d|6B;t-0wPwXrc8r~S1zznz86bx_1(4; zI7z?y*UNonvYoxlJ5pH9{#k^JC$3sHm_4*h+6BR1vVn>tNokZ588M9+mGJDq%oK~qEEM-Pb+IS*|+?S9_=OvhG* z;I6c^v{4R9jzTZznRC7q5A(eEGn5x2MiCE}M5R3Y$HJ;K$mK?gJsA2I7BKnH*l-crmH=>v*IJ(blXka(%K(OKWNdB#V;d)OPiLnpSroDfW zB?twTae_cU6#RHnvUifKS+tmLIF0YLIZ<$0NwjV1Enmhc+#M%#@|=XFy6Y)o1#d_^ zILkxSUge#5N9M{Z9yk*?8yq_S1}-Ol=j4^@^KknwrmK4V9VyjJDCggia-zjrF}77I zqc^*@`s7AX<3N_5HYGTBOZ*H=h}eal!raV`H=hoC6tS0~$P9sitS7k7el<33*Drf` zWirA%ygXh%-k#NZNx(dGCt6!Q?-9Z$|4vVzRCbGpn#|}wUvb1RG6sbL{@ldBQGi78 zuf-z4>N(NrPy*wK93zN6PbTJsVR+$%)!q3{t;d{Sd<2Om z$NV2!YHFr_<8EX*N`>GhnMVuuv-vePGz`B`5ursQ7S9b9wa;WI>}avBprPUS`PpxM zhoQ2n4qKb|qcYL2n7FM*W8K@f0n&Rz!gsI56HS*J?2^ZO!(QwJzfg`<%adM2LCc+> z3HYYw@(BrGEQT$!elg_S(rXu)H@YirxDZf))c=I(X&M3xFpq!?GxGH~WCg zGyPzuu@K6Ed^hn1}sOTTQ+``G=aum#<|%vUCT zsci1=mW<~FBd)5(5YLTo17CR`)mX{2h~H1eKpK|qx%UzIatSQ<*zj7*5eW6;8FiEi zH-|~5({>d9u+sp5G3##BIx_gh(>r*~<1PNk1%JmG?!~~yc01I!%ICI+IvE)u=uX+e zu-YBeZgK1JS0j}6qkN9O56kNfA_1tqSx?4BH6tnc$B%-JC~?jh|GHE_JPmHa7hmg^BS4Rz=^R zO^2rb!+XehumzYxU>)bf?+R05>{}^UIE#mxAXL+l(Zcl9VQmjx)V;Tn+~XXpUNH09 zC_GVaRM~A6(JM_2tkS9~ej8sd5h5VIjP9WDeum4q;I*Py+$D6Wenitdwv*aw`1Wdc)sI zjXsx(>_O`GQfHhW_p=Z~ztIR7>(GaISe)S7ZZHPw_m_aQ|ID!}1%{;c{|y{rd=?-( z#<&$aCinBBeCjJo*z25u=);;c2h z6g9{Fn9xK*xA6($YuG^6zicWV$&$hOjxuIQFqYn~9^RzdJP5j~F0>_476^qJ4!tX4? zc<}z}kk$7nuG~B{0u?3Yg9|KI}xedvl#K=vjy{*w3CiyPV>&MUC-IuOip@L z1YqV(3DhT$7)SeR_wDQGwB-TOf1Fn$`xZNxLgkDznix6XCjPW2PFBJrz}pbuLY{?k zJnh;#><_=v()gxcahnMIa)zN#hN8n}hJkKi{r-2OViZ>H7)vJ-XIpNntYc9YrI%t# zaqrKSe=h#K2oZa6bdAUEKf_w2xRuj$Ds2BmM@Of-zf?wyUNFd?< zHg!BSC=k+Vj(@r(^Dj?T`wO?kx^&Zj;r26j6AvX3V%)uBM)Ol_BxBSILu?_$ZB%b& z1)mxyAhOQny1Z_@_G3frw@@*R)Y}R1M<0#dfUi<(w9`jRJ*)6Is!|@~yJ4Lp$FjLH zo#nObJ%o!8oA6b2I^J2FSnG+zpQ#x}W7$7<@Wlx~?M%-<{j9a<1-+%{bqQ+YCkDGUQ7vYfQ z?fF%MpIKRKCwDfx544$o`={H03f);8>URi_Cl3O_@7iC*fxEtU+7}G_8QF_<`bZT8 zZ=Out`FY)s$)rSlbZ(Zc?-mlc5k{}X9Le?de-1O5Boz^10X2>I+Z)ViYI)r zr@1wxr=3w;?(yu^Kk<}CRR9BX)S&dmQKk@~5P7KAbQ7?V(V&*@n>+rDM%%)jCNIMK z*}8^64EKK+lK|RLVNlES`?I6;iOo;NvySI1$D@`hhJTE<|Fg$J4*8NI09EQ5^tly- zDsbZahb-X}IWv4o0;iSpsDY$kA*0Z!CUdC0pURJ@-G5yB`n!K4d)C9su0>bilk=r7 zRf{C4vM_R#>W>Uw52pX(CRzacN0ZK2-%t^H&^x&%&}geN3#imM_%GX2%x50ue8_ov)zqCk#m3?(b03%CGsTz{jGJTXQAPV_|glR*Z;!+v4T4N zX&(seaV$UpI)VE0ipI5CYZ73s(kpudGHL>PSH)F4w5(SINIti4*V&1Mnm-b#-cWA7 z1fP_`uV3X^utfKsAax4xkE1W02T5QNZyfJy z$18n|^@R??P5>Z<(4M{`P{1~2pU)--PGC2bek z9oiiNA2vV6r($lgF33T>dnSC|^V@ZlC>E1+zeWiV^c0i)NXvKK_eM{3ngRdFd`x1a zx(BZgUcGod9#sSdH+wg)vgz43MtJ{SQ!E(qfdTYW(2^)J-8V7Q|JfXPU}QiZ!p9)d zJfi0w_#1k1h!akK?{b(oa=3%6016P`1I08*#iM4|pIkXULmb!v+QaVpQSGuKEHj?v zJj^6rNP9_OC(A_-s$Me{a=MP@wSgj5$KdKwkf+<|7%M9vfu_CeA^vNK-NW_q`JZ%$ zB@@WqZWh1rmj7jz@AV>=@BKH*U=H+HW1}tEKVugkZvQiV|BMeg>`xdpTgsgY`66c- z2WB_Q=c}#ZnlGwL$_DC}gY@2rxH2aFI#ii>`Tm-=A$AcaEa6Nr_Lp==kh1ehihSEs z6`ndXr+!F{1PK2g6zQdsRPkUOiamzVplxM*a|f=h-nt+F?u=_IaB^>$v#E@i0U60} zr&C-;trpl$7{5016%BHPn3BU6)w=vR%gD|2C-K7j*(!9L)!yh8v zZT2yMek|4|?&tpA)8gm}+tI?~Z0Gy>hwl*%V7ObtCAXB*l1PnB0b^cLIt zUw1`Xw=-MH1Rrhv<0US}++KC7t-i$k%eyhm6Cb}c@q^v?I=KPMdz_EPwOn?EkAm$_EgK{v4SXj^1IhqQg0=(Cl`66?JprgJE-TxKDW=acH zj`n`tx?md0e-~+}f~ZlUzz;Iya*z`r+RXC$O%B(E?OG5>2NFCO%Klc|0M-TmqQvk;JbgRqC27Iiw6b)Au#uF zjJnNE@cqPK2WjTn`=oo-xDItTjfa|3ij*_vD<#d*ryFZ_&dICd58F~|Lt-0(aaY!w zI;sw)n+H(fqj$m{_@*726v5UqsHuG#L(N#rHV2K_xaOPK=o%NZ?+g!^K)M$DZl-r7 za*L=*<#%h^jNAl4(5Y|zaWOmlqRi99LmhAahtvP#VjLUPsP^-v~gF?N4 zZHq+f{7WF>B1=i>`}dMqpA)(LcBn17XW!a3Elh%ELn@8wo#pj8_d}P&MsZ$rJY9^4 zdhDh6?MBe~{bAL}n-qiB35+Uy0@yL@lZVuy4l;>M|6x~u4S6jgG3T6}>gX=eK|VL3 zqR^UOD}P#7F?>cjS0M-IDJ#;hmkGpY*V@XQjy0qg)8f@^PO%Tmq+-z8&!PBnJmoa% zw4jKo^h_aV9l=Dg=nn8sIjVb(>%D30GR7-?A`ahINnd(~L7IDjxphEfyCo3_LV^SO zu`+r4O5#`+KqeH1ocgbT9w~fL`o}Bd$2Zm)PCpEM&iWcc$$|eTT>Yg?x7cs>LYfXA zU$N>qvoC-AG%wrWTPHi>C3ozhwd7WrZ0P0stCANtleqO_4_q$)SjV!aG^a2&ImGo1 zvZ>B}ARA}OO>Zc!v`tY)h_7{HnoIE>zDE50s5Sp*tHKWOGLL!@ZFYnmyn>e+*e0n; zTQ7&Cnzvp}T@sf}z-fUll_f#ErW%>YH0w+z{uRfdYTzTI_??{ohJr}+o7+wPe7GF3 z!VS)~5vdUtV%enzynf<9vkG6nhNjn=4)k@3Q6~hbx(z2f#P3YFA5MVV5!YH)2TR|{ z;RWSJnJ}-OOr+oKnm9sB)>g(JD5?hs_DrV3IpFvK<<)1{JYMXhx^K=p9&lN6AJqFB ztxa1=rripiDbuP~NZz-HuV|4P^O7xy7{58zOB!`|D=k${DwW^|=h)JXd}t73Rr+Ea z`}>a)^O%D=Zzh9Mk;Z}Qwp>{FP3sjpJ}p7Nh>GZ zJIN^6-V(m9XAGOAW&+LC%ikZ;&s0*7aah0ef0lPO^&MfvkXy;4!BGpP7Nzz+Pn)r< zYCRD;9Q-SUrE6yOqliCn2h~r>CNF0t0G=(pkF0DtV4m3txy<|B;|99j?G~q>IWz<6 zhIpG2ItD^()Ts^Z+oGEu8aLcdtZCMm=u#*Lde64_duf{)`rz7IAecH3l4Z@tZj2C3 z1Hy2Lw|9<8MCAAnTxsIX*k>e4XWHj1&*A+s^XxZ1jhS26tpO4KaXz6fd{EJPd!C0@ zeZ;E3=ZF&VCTEq_p1Kh{5jFPwQ~68J2_f!d`P(m-%^yp-DGSUGC2iJkn|?vP3~O7H z50uk|3xq1rQKGo)q;a`^1>_A!oCgv-3ZGSC3#LZR*>j z3LiP2d;OAjHm0)1G9%@sEyU#-6>{kgQ1LxBns1&sQGdmLdpvg7aqj1aUR%`uIK1kc z?Oz*}zA`TKVWK=+9#*&fW*Js!!6(YJoU+cS#p+Pn*`f7gcJKP|Aakr31FX?=Bl*ZM z_i>39PA>daK|`rg&dxTXuuf@-zdWAxFf(~dV?41`O8jj}T+v$~pupah4{x93@Jp)+ z%F%d(HTd<(6S@aBP(I;@z@BKK^@p{auQ9jJ*_t|qL@2QEhPtDE#PxUeXkk#i%zVoD z-Q=jrNgTPQ*oiQP<&I_h>`76_>(yDgzKD9pKJ7oAIZtRYIfS~7@}qV6j1}UZf&P+g z3A4j{cpS8TXVDB!64i5`72I(WUiU2rC+$m|A6gb1A(U^3*M>F_uq)z*6*r@P3v!SC zwe=n6-I|4c@5PH6npNL9@0yF3XF8Z@(ykYG_LZ$OcLvpM??z9zaYZ}3D+VO(Kc0Rl{&*p7hn2QiXRTkPEEOP1M4%jJStfVXhRQ^T31_gW z4wMxL!*F3#KyE3IhCuFXOc`8}@+!b1%?BmRBgQ-v6<@ohUqipOSd2Rie*V-9QPnR9 zd%-v?ynd%lF7DU1;=bL7}`l4DJUkWzSYW)wnuGhRmV^#ez1og|*t z=Pc6=2@&Sh-)Exj5_E!EE~T!)4)@7# zzwr+DjWCqSZwPhyc=d#d4> zC*)S+8wL!{NGsHx^iJoe?Hp2HIUdCjlIlPeQW#g#tu_hR3G;#wTc%)YfDsiE;rqJn zei25YMD!AZOfNh*Z}r-}>Q}oCFK1L5U(}J~?BM%kyz*M!w3Dl;J=(t_7Wbs_Js%y{ z&G1qJIP+m1QisX&!k9&DB!+TSC6?lZ@s(fpP%Dyt4l7?m~fD5=f z3ENiZ*kSTId{vc%?I1?jwav5#^C8;U@6J+iGx!B0QA0VdM5E{@^)R&+0nNr&J!spG z-Wt$XdbpB0u%zu&xT2I-*K{_*m-<=?zTlo~bXHlF{FB)R`Z?vN?aLp$?excoRPhb2 z?q$o`NzHlVd3C)dw5912$|5Z{9bDe#vc>1sPpsKx1*W}~=a02_rxt?@+HiPy4By-x zt>m#bjFS{sf8yI03K%FTacYk&0hFX)WiaeBV*?wn#mK7!kb!OjONlX56UhZnIO~b% zNBwkXB|bx#E3dr<30f~Dc&I!fgqyRg9DVQoZ_-967?rxioZRD)nZu{vZvv2re$J z^SI!y?kmXRc7bC4whc+1NI`T0mzu*y7x%R9QUS6OLHiF<JY zSIhqPt~rNZ9iAmHT*-j1kf16V3!(dv6YU#&aP^_NSPFVU)0V)XR9j~*A_k-mjnTui z^1H7)Ye5Zyc#lYgI9MDn)t^r*u&2p0>E>$7X9c%z|G7a#NEj>OslLi z`$CrsvK=+vfQy2qU&b?rt{J3x>J#4alCW`pheu75Ts#~?4d(iJI+>4dZ1IK)K!&vA zh zzt^wR4b>Ck36 zbN=CAYUZtaiD`HQ3K>5i-zS-?V+Wu&zKxlahFJ9iyq$(P>ajnH@)+lbgYTifG>&7{ zr7~*y{wW6}#W2puWAjOZDqVq_`|#$@&IyR#J+!aI^$>E>3T@b(@I7&HV=PZu@A)JN zhv8f17z~{YiZz)|_&*g<#ZTq7j&|&BFyD8NDN1yV=m zys6DOaCwB^ETe25lvOpjXWTm8oUUMn=NK3m8OPdkbeYHi*1e(a*M=M@xtZ zC+8aU$)aa)4BaF;Yp}6Xy5snfZvNjDZfR#zoZtxJ2UZ%HcHzI@z5Mc~5^Dn6rwn4ipCrOHF? znB{!K74hGEwSOD-QQg|y~e_Ozvk+EnnZ+1#KXkKlXKtq z(LQb^T|Oz|nyjz-T_%+fa%BCr9VJjOW%i4Bg>PqUGwtk}#LC7Wnd;Wo9hD(+AtY2bP2_K|5?D=QK%3 z8}JFad6pZS%qsu3GDOV`xY(U&*uDJB^9+2Msm^VRuja2QdrhV2taV#Byh)k0Z z;cFk#jtHWV@tg zrZ!e4J~kt9NCXeH#|Em#SU^*D?p`kyP#I;2`|foX*~Gg8!07qWLX8v^5ayIXk_T4S zz4?NQIY>QxY*`d(q$6TZ)6JOWQ(MBXHc))ak!)fXSi|Y`-n$>VVtZ4kS zM&{pi2D@Op?d%)*=#gpT?y2I*t_t01wK9wjdBcXkeRf?WymRW1?Ch~hKLVM!m2$~(=_yr06Hz4q6npI2T#k4x>Qo6Qn<*!A8m8yPapMFF@h_BiC`=4yKiH^U;ulU7Tx zELfA1wMz5ASEfmYP!1+lnb!l^XrN8<o;KY@_G zwpr*(LuLDr6)>EnV`Kx!;J=@JGC@Y&dAdA=dP0D4qIf2SNuJNiE!{2{py($|Iy9dYIKv;dRD&Z`Jj#<&5k`W3Bd7cOv-RuQMMtV0qW=RTYr6PE)rJ6D!tBM}@X3lN9KlU^?ONgaS@W4_kc^cBkVKF#(30hjSM?<*mEE zs&T%%6QWNmOgn`&Hy%cb^gIuHrq3ai@kX`pZTTDJ$Hw_=9BkFP4f1;R9=fgU9^HS* zd1>T*D_>*~PN_`pFZgnav78f6#V`L9>~}%_=Cs6ax)vsFW5lm>Fs)BNlM_~KuVj}b zKdbetvd2DYPwJlb@P3}n&P59}P>a3aNPKfaQvE!J$TMN^(0EJAGem#}77H&wIH)66 z)xPMHpv&`|1q-2+Xt=NX*1ER-;876q%R!Rllq@`) zeR^gb<77 z**Sk_Ge5)aX29|_5B+c9lN_li)e21n!cY$lev0oQ;Fjrov~rr!8*<)pXb9yB69{6K z?Y-Qe8H-5>v+#&1Qgz?zIBr;0e6st__)fm@q^9T?gDnkefvCBGHH!ubVTKipNCsv| zG<)Zq8=ZLEDzDHxIhMa=_oJCB*LjcTGo!?xCMHhg?AXQb_ev_Jirsx+@uC;7If(Cf zir)N5tK5epC97dKr|6W5^zQX~FQ@&Az+DeD!sNNOUY+Wm^W~GEpr;DtOy0GyJ8&33 zH9t&spzTKXo?JC&d15rW_0Ihp#~rf_8ITkceX)qYj%0~C)~BpPq3B>nUms6pZG}O> zPgJKt{I+ejz2l>Fb-xzBp+XL+6lL)Nn=KvaUbrF{1dKhj^{uqkgx?-Vy*3Y#TXmYz z}mqXmNxLV)I`SvkDYVYz80r#PO@k%zo)?GozMBzUwr&z+9RnW-TI;| z=7G1FLt8ouH-S=e@1e4H4U>=rEX1)le_n*O`{xhZ$pjeC zZ_lHiUSY2t{pzU{+Ji7WeR?&O(qc08+G2NC{IR({Ma<*vH$i4WF^+t2b~Gn}56SWC z9qTw@Ti)5AMjIbWU(VjXKH=?&6}?yEfnWG|B!TU{+ zseI-O_0B5j;sf<2}s-c<%!F5y>5&0Jx zbA~pN3DCXRh9^~W38m1;&+7I3JGJ-Z3(>-20t4d0%c-&ART2w2T3^5=I>*0;C??U$ zcKPR;bU?!wFf*NADh|cy3a$DTmS5|2Y(qy&3NlD#@P{EeX6fSN?jr_H}{3KX?5^4c$0g?=*LDpE9}n%*`HSm62$+hjUF&gWOd0(DOGAwh?cL-*#Qx_0dO{y z?cDdQm37%7u!b7$1Ded2u0VU`8bqtvyJf{>B8}gR;`fqw4#0ZsDF?eSx}C-u+g88i z6KU^yMoZ;)cs8J@;%OiEw`VG@l_{5%qy@gmB3H}#KSe&_B|w6Llhvw39W~R{(?ng? zLNxC_>!k)KzA$v6&^)?rf;Zz&$xKoaIBvbi+6FMLb%H96i}4){ys@dY+duf@35RVv z03Y;cXdfYr;)|?FXuvfW*c7FD8*1i=l3` zX3aJzek*Y+eio*(U}mLR^6I8T;{B`qu+4F4bQN*s#vmb0-b;0hl`TQF6cp4)9>J;h? zEH0zENd5dr@w75iNNCnsqwdJ--qps-=KJjQH|8$u#?i#mhU|&TgNv3RB{peIy@ifx zuu(2OTO^g{J1K@pzJYJ`q1ogXqlj)-Q8X&!#bb*J*E;bQY=^NtMBYwHB?}CA9+cq@SjXJ*{^@x_a^g zoiAK7+P61O;!WJdJ4F@O2~P2zeVrPSk#}ElYB}hL@VISvD1k`MJQbSC3(DaAk_;H_ z-4t68W@7&E3C@I9eS;pR8_``p{E^hq0!uqb{R!LbSQo{?B>2si|K5XJmhwvcRfdmP zD$i4uw9s^1+}p8x6r8&a(Y-GeSP50?A^RnfiGUvX`3QR>z<|uhlqTAjQ(34BASc|q z!;#>B1}$Sh^VS{i+xd_JN?G{+ql;-@^`@CgqiCF`OiWpsUsNW@<$$lX;I4@6giGlwZTnz~@8Rkyl!%R0Yzf^+QM#e1px5V_z6; zBO=FK(l^9V3O32YvAfEi=+v&gWpVcUYLL%g_J+1D_GM+4l}8nb#}Ny?fzgsQB?|^& z{JnNd65`wSqe&1ogO{CUxWKO+aH!CBX9@?Md37MG;3Bc(J6`0#ID$6$J)~kw93maY z!Z4`h+VC;(NS-@zlZ!~S36l2AZH2Z@t|x=V+tOn{;aTLpB3o&~%-a+l@NX<*5xd{Z z>!-zh$MEuj3Q}szFEy`2GL{&vGcW6Ap7%SabltTiIX7rx=Z8$n-tJMoXuXcny06CW zRH$vz5w+NqKn-3TFWPFF^#H{jbg=~djV9-87xTI7#Qwu)%4hStUPcdoIxkh84UK*n z@LFuP%CyoTJ@~o5l$Ev1<$I14n|<1N@_B3(^$>sf!HZJBb@3B}u5AZef^0Pm7a^HU z+BZj9xJ*7bt?Q!2!U>Wa3a>T}FkYbz`W?2dFI*@GHREGGODY7un|=2ILvjRUx0aDg z%v^yW!p}z;ZT7%)IoSD|EhOwj<{KY;*}{vu%;ZUA&8xQ$-VKdTWPrJ2eYdO%(WZO0 z%nwp|u=39Qf@_0tNuQ^c>;mEQKvpug@;eh&OuIKWCbw(PY&>*I^iT4o^rLKdkQMk= ztp%pgbuZePV|=H8h_1I}PpO3X?g?)moEl}*rL-(2{%_To{D6BrZvJ9-dT@nVEK(zO_EjCuf*(G z`Vqv7XwPNq<6dqS+P}OhiCs^gXSKPzQCyCspsB0O|GsR(V??^Kh5p*gNw=tX^cV0& z5MjFfJ8q1Oku^=AYCL;|7f14^+@h?)i7jN5f-JXa;-=7nTNNzPQLn6p9)@pcyqxV{ zTC7J3$>#C!R?a#UDlN+#n;%1#R{YyWG{_yihh*j(GMEfqP(FZ4hiB4O3-2F z)NSOh)OAD>yNDx?yv^mvZ)3%;Yhu!bCXgpXzVw~7Q8p$)= z?7RQUSj%TTLlH0XB=e0+oIH@}S>@g#_P{5a_6wp#HEKov_}%{8)AQ?(h#Q8F*IqY5 zVxezu$b+37Jz4hUgXqO4kkk=DR4zubJ?jYLPMP&WEt0{gr0oD%}iqDMX zzsyAdnQ-`4vugh~qkRL3Wq@EH`lv~zHG3;?c_aAKOYYPSsmGUv>ID7}hR~A+2Dy4? z)x>FCL$jHjmi?yJ6^#m6PG#zH{6xq0NdUOzMAP9jBeP=RZy6^8r8&o%pQ707q(1Sn zC)xT^Pq$n#MEERDG4@Cripoa74-`5mW8yrQAQr6|Az}AtLoq_4JB_8jtrl*qI>ego zSYI!>X5bqn1bsw)B*NYsCy0nC&nvNc_&TF*px_5;xThwoyq&>0FH%ohu0rO?+R%;W3&u4H^06>y z@oiCxWmlX>Sg-9)*Mi0Z+8$-~yRMPdPpk@OZ%6d3L2rILx>=?|c^^;Am1;GrW9fRkW@hHLf zTFaq!Ne6tEOMEtWNky(ZT&)kTY=#}J>S$fLWP=RBkELamwfLzo2p8jDFyUg}++}hf;<2#{zItm#j>9ZKmmahz*)M1^x;AA>Un*ML|p>!V2x?ldB>0**_#! zn_d`HlNop{kg)FPaL}xJMSKRKH3?oXZi?r3Evq7Qo8p`!*2>lqY>4y9zcPruC)Syl zpdBGeaw8<$7lVBO%K-q9wyF8?zM(v7hhLQst*&ycM~ZFTc+^&-!}d#he%N@kz8}tZ(;pbaIdCKr9@Y4N9WB3s;<3 z2cD3*(U|xD^czRkH(Z3XbV^JRe=uMlESH;?nOB$_^m_R%?|X+e<;d1z28JL1Tat0V zgUGUj7MhL&O+#2R@}!)~l<0NYT)%SOTwgOQWkF$!7JN^8IM#PHRNRvAPq0y|c|}_h z9%$dhBw_k}WX^Q6!brVgmY#lzo1$;x5OLJeMS$~E_BpBx3ZX57Y>r@JXv~86k;Njs z=h}PPE?dl755A@$m=Hz#JPTN2D=Zr-5a4n!TOy4Cg82(t5ZG9&klhdi7mfj_YkDLg zsmdD}mTM}7bpzRyalG7G`&FTl2%!G#nMsB9qt#pS2^Rlgg7c^*eTP^uwBte17psJG zbND;sl@GG=f4MQ89Y-+s{IYNq-iNUq0Q{!Ras%X=ly5bSc2q|1gw>tzwm2ev`Kit$OwV6E>( zuDkL{2heFg)j5w@=86MRKB?0NkmGQ0pIH1D^P-B4-^{0EW>%okGV^r5cB|h(OHfmc zY&b;oS5*l9ytoksXDDOYG5CJ2Y8WYI9T$6xS>W{s{PK{JAaDBzQ$KI?Wnj>yg?@Re8Azcp5N2(hap?Ak6LIt+fL_}qG>6-2LDaFd-v zL;`I}qQEXbGZ}LMEhNX`^X;uELdHAFF%Aod3m05S&=!7*C`d6nxbh$G>2G($mRML+ z!*X?Ti=dsy*DYs4GdxNNGu`A>v+&SDU zFT-o???Tho^qXDGzX}->k*Cwbs#hwwqiP(gw0n06S&4kca@FW}Q%anF{j{XxV9YwS z7){AlsojdaD)+04SoVx+tD~Q2C>mdM z2{&I^JD?#dRkmF{?s2oen>J06g^KkLC^HhE(tfvQ2nPI&@7)28IJ!R8H0LkYo$)-~*tYcl96g;q>`ufA zD390CR2BLKRY)&3T35?I9#Bg9xu5W+to1zqihi{e*K2RpO-p~Vyi{j|UtzcZc)G(V zEB$8yV2)(W?^Br9yt>iQ+aYQ(&-i?rE3%|;g$F#jdb^n@PoGx#S1n6sBm<@2z?Y&N zo_htR*Ig}US#}oLxjSY4C(ZfDsvJEbHn$0rF1l%4<#L~m0IaV8f6s6+hEV%?xECFP zDiy4;Bj|&Fcx98#gA2Kfa*85ZdOzHx0wj@3(n^5VvlsLn96ct{m9w(rNQ7N!MEVur z{U^6LsBOG0y7>b1 z{$9XjA6d>-?fbRF`4uG+ify z;OFdRGlRhnBAu3WZ2-nB&Rj!D$EQ-6=#)*FgD30`Uz4I)h2PZGt9{}x#Y0f6#z{jf zDBWePlJL;n_7O1VJ_j`re5r@=vxR)9D~D<8(J%XH!><%qMe=>TA9H7NzOU`C&t}OD zva{B9V;}SSLm~qPjgT5t;h&z@ zf^NN^?d|z&n1$IVpU!+X|BOOw8VtY&Wu^oO@0ckF2))4;v$SZ~M&>~IBHQS)^Kuj3 zlG4_MlXU{y*gSU09BUea(-<9#@Y?d&crh~h?#zFLwC~K9>zRl6Bnh!6Wn=<1e1!Lo zwI}(+|L3;=*bSN{Ly0{LmAj^}hGRct^R6#5ik&@umkhL~Qehf7IDTalFM}-}L7b+y zMH#}(Ql&V}cTi;g$wNovW1d6I z{j*SZ$o2HA#Yt=eVEH)V`axAH}1yQRj$7*H-@7j)KK{<}@9 zcFCpj&8ZHPn40Bui!gqeTY}}+x#D%WT~OME?g6;jRPKawzKwY?#dgka8dXVp&Wntz zp!!`96Vu}EwrlPRq=bT`la-y?6rZ0R3E3D*A>bN*iB1Py3X@HGzQ)o{_40HjuqwJ@_14-1F-i;TRcgJqMNu&7SG;N~}pJo=l+TOyn z8gs{P4#Vw*rSR7#pCk0wQ6{8~T!~VT)1+xDWYV?C3%`!9UkGWLM2!xj(1{ zis$coLddnKWSJv+hQ#llCrJ6b#rg%=QIJoXww=K7ei&Q|j>huv@O+zR@^DUCI<=qb zP@RCd{4UpPFnt0ZVk~@h$IOe@E;q66dGBkruX`i29)sHIJZI`~zUBav=+RaDGVA4D z*{Zdrb-z}!d|2J1m=}L7ljWtvi)W(;wSPOs|%*nX`uWa8@`I=vNomUVQp?c7T!Ob!htONQr$>dVir=GR!Yx zsNZfQTW!JQb%F4O#axxw*civc_6bhPMwp$ro_MSV{T6&i{U96TshFpQb1rvY_d=rm z`DDquXMMvWZ{9DTQK17IY^quJn;bI;d6~$OoyB+Gfb^pHc(?^!L!))L^1z5q{5NOW z2AUpO_*7P5%?I20$w`xVb_(B1K)dM;W}rvg`@XTPnt{`0B|oFjvK+w|x2I5>ruN6{ zrnAE+!OfZhJRlEbRJVE|q0e7&)qc5Q3|q99Dv2TbnM{0KWKeY~Or)h6cL&`UX;;<0VL>$S{TWojEDNVj@X-LH%BPBud0pi++fT8EbBfOV-2FLt&Q}! zsm^KxO|&}$Cc9S|G2UE0OqnI-R*Yn^lhVP9Q7Bi6>CYCeB?eeX(P%qxAN|_d$bZcg zaYPu{Z`04MtLd=js%((EyT5Zc8Uc08Q(uK|M64z*)Dml)IMl5y5Wn+H#m^xAjjHDW z9h8m8{M2e?R|h*=^E`*Z_$_;WyDiS;uIt&Bwbg!0$EliU&2fDetF222sU#a~bKh zCKJA)ze-Oa${WYi^YiPc8?U&hLx{-9%$4o4va*w>q!|uA>9ZbJ$luQJwuI_FY2ekU z_wPAMSFT|!iSozJ+D^UWT!g-US)OkJ9thmgo8EtYxAFe~Ef?cYxo{fHC!*lYF<>KWkyEmwweu7$IEFa zA0so5oFYfem?XpNkc4YWx;QtZq}`5KRoX?9o6=c?jMgg(JSGHZdch>;vgMNRdcd4 z2{h|gHoRlNT5sJyz3VB$>s@hVpO=ge8KR!-be-6(%S_#SXTWoq(jt)TKzN_1Z|aRZZq%2*8>P+J zo~e00A%m+{t+EBXymMi4TPpIsQ&$Y|*)kRBxPNP4=lJp6g5Sj#Uu@s26D_}&yRNBI z+B;56cCznzAMAAv4%8EECo{clVM*Ien~ody)H!W3rz&50<&_lynb)7ck4;TYwhI&o zPU7Z$j{B>KOqVGW^s#ObXz)F3+O)~~aqI&lN2gGCZ5x$#BJ<4Zx3zIcR<8TipXHAG z7b*6tLX*-3<$BOnI;BF>4%AVgsH%RZ1URcCcZf=}+f_4XtMdM=YDZ>tN1Y`r*T_Q) zR;w^Sqr59ECmnI9&dwYuGme-d$IP56<8_PuA>G7wgp8bUx@_OMOoj-0`zrXgqG^UQ zsv^`~O!_(qzmxxNhoU{8rlWHi#?(`)a-_YBoe+%P5~l#O#b}LYHk}zMEvYdwWc+(& z=*+8CmFGyc%&DG{IUu7Pxxqm$yJ#`FAssh~N4M(Jz2e9|AFy|_G>91PNy)quW*U14 z4;KV!O@=D|Bn zzCDj61FJ$4;(MYF9S_ztV9?oSu$?rt1q}SDTf%vmO2LzSphm`kgfj6v%x(l+NJ3kS z(1z_b8yXs{9>I%xWk82N{8WM=Pi}bUs8dw5Tu|hFoBJ8ecd()!sXzK!aN?U~0PM!U zS^pjP14kgoHFI2x&=BlJFRhi^?pYuY&wEW(d1_7KZc=}xxon-;p3y#0seknlmGJAr zQ>buOCH-mi`&Cs1GFzS2Era1?EuGS#l6+Kuo?Ns}UU+qj4j3|0J2WF7zw|8m^hZvU zAu8gpPK}bP@n=hR)icu3vQ}zzM;_gWQ^}XM(Hb9XfK7j&OqRi*N|aWjpZkJU1xbm% z4$t*sn^4^}MRoPttER~zQ!bY3DHrM}=1^^eYHbZei+<;+OpET!qX(Yqpb5HJ7=b+#g{v5N_g!{3A)A zVex?l4U7|eBt}U?oXL1`%a7aryS?ABCoE;cV4sXD>CZgGpOPTp9SilsjE(C_C+nsp z8QD)FydUI|1*q&qf~mAT?xzSva|Vax_XEL46_CLj=X)d#y4=)pGK`0<1UzY%*tFoW z#~!nGDVg`d{_OR`or@i_Sg7mUHv6{>*>|Gvbz4sC^7BC6>8t2>Ft~f!%9+nfNE;mJ ziy4sfEwBcM^%kJ_gZ3UF4P>_WprQfYu2~Qoe#Vy_dWEAE;v;IiIQCPVLp*$ zx2vBNO89DcZEO(a64zYJ>Z)#8WwvSc*QT=o?aew9puakIw##jIJt-HT ze~JuI5{#BkDm7k4ANDTU^78M@5%%gI+j5hbl?rPdyMO1BEB0R&=hh&Whlyvj zJX*dE{aLMp7@fdS;$A0BsY7Mlv`|Awj5@3wLf+<#7V4m2l8Rzjau61{C#yWD!$({k6J zo|EQwRf$tF3(=>AM2d}cJEJ@7bn3<36wsCV+5%Nw$eSB7@cltomDKBwHCbh_uAYLP zeoi*dJVCtIbhng9166J7r>h&v-3m|l2L;(zIQL4%lZ`8l z3ylgF&$v0U=XdfVP7HQo1`Yz$J@t;-2dZI}X#Bl|%s>W%2=2X>_&zz4fWaFVm^tA` z{};)*lf%8oQXUtRn(4dP(9mFOk}5TyUf;4ja}<}IqOqY`t~eNp!*stWUd&BH`(t2G{tJ2!Z+ED&3lDK&j%Xr${& zHJ{8l=rRR8SWLIpJmhQ{bM)s$M!s9itcwtImZC$|eU_^v|9dyzAm97duVjnv(9^E7 zA#ZKpEWf<(4*8eg{6wB#u|zgCHQKPqOO(3cW9q#U4S8eG>2)0Syt|gbf_h^> z#GN*o84&+w1FPLw9n4dT#kMMeMipn%wkEm#?gg@bOSAPY9GsO^MfsGHeio5dvE`** z`W>mH+sHnjluF!Hv~MIHR!=Ksq~FBV8VTQ>#e;;OOWjpEueGW=|JCxwlJzqGg{5k5 zk?Gc);U+sLNQHo15H}rGIH|JcSriV^{rDEsp3j2(+<*?64?7gIe!v$O%n`DVO zd7m>MX-Az$PrgmJsZCC< z52@uJelU>NET`jg>TPwqD&(NY&o<~9zYgYhw58N3A+zL=)4nB{`ZJXHk5;TQ zqRS9u;i?t#t^fTm`Sk;TlIH3*Y1cCahSU$0HeJ-*p+cvuO8(nA+T|&g?EmCXx63V0 zKca^WYiTG@u23Z^Q5UEK;g%%i`znuj1l(z8xsrB-P5yRwkJB3-{~h=Ki2!v>U2={C zTW=?u|d8N_zceosRs^m1$_vKI?2m@y6(xpcB`CZBNoFp?nk$viW zuo>zrzs`8~8KAR%g&njoZ|Omd?2_i+My2A!ckE?CA3eWpm74Ej=ga$C(g7ptm<8C> zFQ?BB#&^Hqm@6OeRMNeAeWN@y?-gllL6WXpUg|fdEJ(M^RNZ*vp{TIE|-TAf)R`Yd-8^V4!wyySjqxzU_`H7oG03L%EdH zvzw6SR+A^MLzJiw(>xs~)e|p~5%2i2W?+WdGaPBx>5sc!n6D~2KbQHhYgy8)S76)C ztnOaas*8DbPD1;ebUSMvl=SPu^JO}?zxLig%Ds!8m2K_5)vOM#iqNim?d&dhJOu)S z7y$?sl5%uIE4edq5{T+Ta`5S-p_21n>emZ=m;pg`#}_lBss(o7RmoWKJ|fkmzI~vQ z#4m{9ZZw#w0V`K)qpsOt0RvI2R72jVNAkXX`}RuBW<}%+jF{SqLb0?-ude zjD+TiY-QMSM~yE^uF>z3__I2Dp_>Tly5Jd7JLwXsIs8&pH=3b>Hn!aq*`=yF55Dr8 zTzAWj^77I*q*e3ANx_U|EK}-34uTB`bBKh`Sz}D~newvy!lmf;GT}HodIP zLMI#X1p<|a039ym3Ta?+JG{!vX)Z_Pmwd9*2t+n1A*|FqmpWfg zhe|h2=21mqje-BJ^n8~(f7B_4H5jO9VNi+jI__zpWS%PE4{Z+bDRs2_ex)sTA&!i<1k`rM)` zU0YS+|NP=NW##H!y6{zPGrBe9ka03%+GnJC+Lh8d>U?Rho~FEch)T$HKYyjgIh7s= zzQ&lX*V%)5snS^jr233k7)+=r{_R&@mc4ZB_+xwK>kdM?ltA;Kl6k$g>E9OJ>%VHm ziBdE56H+(zV|u#q5sHM z=E3+o%@of%z^~F#kJ;-<#dDv1N^W`Nep$V9n{K^H1cj&Og^w{0$oLru^d|%$1$4ZS zLnn%rn19b3`Gnvw8v#jh!e5DbE@z%NLj#qk6)RTQfX;tcGF~hy#*jzqnAr$SkU@jt zZGXTCsV`)oXUIP4czi3Bj2W{w2^YFCC@^<4fGOQfE9JhPFfgm2TPod0h1ix z$*x@;s;|FRCG5FbFeKd=h;E@xRz>+J#^hpWYfd()td(DI*##k+CQKKQjF2zn39Xu9o!3_v`np>Z`g)7D+rO`I1-SGNWq)Q0d7@{JZS- zd4mS)EQ6B$w5c2E6X$u^pmd94d>7BT9==_%|KI+m>!lr%)6IPVHC*$vFPj36O1HWcf6<@y* z^)Z!R>-La2&NfyNbH)v|UY`eRhV`XJpPf$IDfp{(wxMdWcl1u6xFa zwo2t~AgucPD%G!=@Byi9xI%_ZSHeH-^O8~0-=?ZG?MUxc8lP5z&*{AyS}8PaUGL}& z@l8_5lZJ%GY zOs@Ik@8s4;=IYj(ZJJ_Nd#w;!oazsioTOprQ7#PiNq#Ze&aAB4wpE^f^(9%ad-J1C zRcKTA7z>@lh%XQ*Ap%WJO*Z02s@j)Ev=mvUq2@wW0TS!KD?Q((z{b-63rI6k6v!0y zOCwADqW_!3if6~r$su;`hj^S+Vz;->*V8W4ojfrs;riVC_I&XiM*C?c%U}Z8XPZXq zir)q=J5+MVO#Jr$x2 zAdXHwENbJX?WV-i+1W)-X;zX~fr>$Tt-2Epy6WuJKdh!hE}Cz<)LFPX9jH>w%M*pZu>mVSd#NF;B)|DXnM>~nTN%rxqMzdt? zObuYGj{oz^UYFN5uInBUp}x2{XpRA$OM$@=_vGE{7z{DgCzx`_FYiPt3~6FmM9wn< zQhzr~k$!(lgZlGtm+yf^_JhUnPP*Ye@pshUUw1o@J4Co$7nyPh6l&req?OeNC$Bk` z9{Q02^(DGjeT}xgDb4?wVQKm7$Ip}VK5&do8l!qV`WdJwMz(8GPwQgU=QgdEsUt_p z%%P*?s7VuKw3eTLEMC>tT(xN?>2-$Gj(wkWZl5pNrq`u${X$&?uuf7n%=)NGt`hI8 z>CWW(%M2%f8Rg!MQdT205}s|-_Ec4a^j~N7Oc^@mGO3+BTNm3NF10%AfjZ7M#p|B= zkIBss+$Ya1U#dd{1O|$m0+vzSh#l1(H~#3-eDly{>2CN<>+U?Asynn%7w9is@`jvs z#Bp*+jpF1H72qCZzW^Xc6axbRI(c;8QH${oxDEgeri z^;8RsJ?{AB{lF9xXVUQa$vd-jE^vst-4g+?4-O$iFvEdqrT7N-%tdK`v8&WifBI9I zIdi6*bIv)Yn&voAcG|9k#z4CfxG>vqcB9vDWY=|8%iXWNC=ab(AzPJ1*Y4aXBRi^P`pV&Q%J@U&=n0eL z$l=38hX$(YPd;@wx)G;JdiYF9wQrW;V-`zx$J5fh=|ySYwN&b|x~YMZcm^?P-3BwG zQhbFh&maU)OY+xQE9nusPGH98qq>Y}mO&!zj5| zwI>}aY1~SsZ5N~6ktfM~_W(dGb3RZtBL5mUvkq!W7Eq&l^{qE$qsBjC%s7@F7t93N zFBp^&(Lg`|vd;prWCvV{^T>uvwi5Hhiv9{;lhQwJ>~*CSPTIKZCD{rd9SXnk=lAy zBtfmksBKr-l>8eD?V_g#RN_41+a)?z@?9fGO&cyBzvP{A&gs)+C`4aPr+#8lFuP6F12xt*z6sTqE zGUfwHzQ<_H?9bC7Tl7TSTOWH^?tbcF*`PZ0?6#9-YavATI*@4BfdDfOoHCp=I79Sv zrPRCSH%IKTW43@96|8aV?9ek0)~=Ce73_3*O-9$J=OFuif-eFOBn0S0Ap0D^#4|+8 z^|~Pl*g0`1HqqM`uB1&~+(2ABzfK&;FZs_m`QeBQ6$t!OHtrbW!LJh@;vyaVy0p}Z zDE>W9KG@*5+YuM`_~-KQkSN?R+|k7)e$p)z!J<6G)zZ>p@uSmC9s9yf(#GA($Gy3^ zSvY+aJiPpbf9k2H8O0J@1i|Pd?fFkY6q@3*{zGe^(B+EXn#HpJ2#gLZ~B= z-rfvuj=iVNoy*HfSmMX8*I6UC@&p#xJ^l34hRJECohI*k*Soswmbkr)9uIe~ zXWS3QczuyS)KXA0gUq@581|$~{GJB}1bj!#WDuS_V0gx_=Zp8(zbV3cc|D)_!``vs z?!Wyz_21kv{+qDGO&V@+^Y;TgkB?{kC(DZ6fg0k&pz`$k>#y&T7mv%+@Za1$A6|x@ z>^$H2N&546h&LHGaT12|W1lRahvAMJCK)GT@xL#FAL{klXP>pY#xHftz?6d@!T#u@ zkCuxszS!_c#^q^ZN4ox-XX3@A^;v(I^my!;QM$%eH+eu6rAGS=%`*o{L3WL)c9p>b z?)47~PTf(JVbEW%QAxQH>2yZh5j_;^T_;YK|NF}q%Z!GRGNev*<4sq-T2^XVe!b`! zd3M`I*`=(MU3Su@UZdD)KH2%^t>#^_O3D7B&1>Y(E34%A5u@bfNmJ#daT8^%m4b3< zT@0NeRYRxBu(7(Jw(UY`-8fHDTc4HoZ7;}>EQ&&n8fUI=qy8==6<+^b8JHPz7%v=1d%|4{6bRn}M)2ZdNnpH-hPH7o6^?aCIqTk(G z=RP3^$)F{YjH*$kv~DTu8>)i1y>VB!pF%wZ*)J555l_EIfQArBE>r0=j>%4pM%Nq6 zN-ZcIkDI;al`=YELFe_izx}OTam5uTAxd@x#N)s5Pki1%fdzK_cA^MY{B~03e({HK zGJ+I!<;s;NoiYdgLpogU$H}6*_vH>I-XU{GvQM5|>Pxw}NFR5eDa(21oo5{?q#x3Q z@iI|H_W6GN@yG35Iq}331*t!sua}p&c&0-q+`$;~_}q{G_B-|%!q1yG z&kiB-@Yp%V7hQCbsVZH2?X~hZfAcqHf5Qzon7RPcQ|bhA!NA7xNs<%>LHs5?^2Qw; zh#$jm;s8VL_~nj$G9L5Xhd<1i;VLcSP`;_mefruZda zJahMa94u}O)~UCi;&D6j%7r06ZhErAjdHnhKgqao^WQuZr}{~|5?Y& z|MkTWNyB8_Qd6U5n1Pt!`R$wJjyGSGg-Y}@b*gHk?_Ia)T0FplUUJl?`QD&gQ*LU@ z$ePw>d2-VlnNd4j&O7orIcCgw8Lta+t5u~YtuqvoKPACc6Qi*>AUlqQ|aU$Z_v`O0GX&d;xvH@9!pEjStc znf}IJj@25LJyoUe$fG7_>F%$X6*1w zI65DXn>aj8?ijEl4E`|5_^^YpJo)64M)sWy;D@-ldpHYRfIp50X)$wvngnHLP)9ku zEM8ucbTR^ohq%1<+H1B;3VC$n*q~PP$Rm%~I)LMkKi*VG&?ClB7Sb(5nMe<8S-k0a z#m>v;`SQEFfhiYc`?AX}v-+YOgrl6kdkr%cUOxPL8pOxI2Esu(h?hHIF<{CwVF>T; zUT*y22H8u7_h*ZwK!3c<4A#j%yB9IA^!GiPHQwtC@aOS*7z=m+f0DR^r|+yqe58+|-fzGCc6+}rxZnaCtddvCH+Sw_ zDzCh2O#Hne9^&^hD!>g~sBett#pCAg&&jmh&hwEU4!=o1$=@CiW%BZ1=XJ<4_<4B0 zWAAw=(*>fvzZ^SXWU&F!Qh8ADD+=Q{833`c8k1u zK0F+0aIh2Mhby<8K23!n=~i2)YaCX|y0*spkN1zd+JAkeG%h>DN{K2u?0i9bT8&Ee zx64N_I$d|&IaLmulq1q`<5un*A}7KBPhF zYo|$F(^6^M`n>F1@ua4emP00=sYL%$-O*=;`qTVrk(;&rcg=r7Zo2<&CHfnb=xfn( zpQ4p(kIeP)N4IK^#)IxYNTb?QXcJ_=(1=ES{T2a8APpmp33nv7EYv*n%rmX=q$9@O zJFjvUl*XG5!W(aX)4_5l|6KVd83uQL(@}UB{PWDk7JzhSbflyKS@Sr-0MhOYUXx@B zVni4x|HSE?AK@KC&o}Pa6OR0&^1<(P{DpYbvgR(j?p0bBXVM^U{DJ|`#7iAGIl(`6g)kl$ z>9`aWoqXz>y!bncKle-8_~*Chm%O^W-|>e#c}J2;n?RYVV+MA-@BR)QOj(HE^TPWD zuH=g}xxoMKyYIF%Kl;&+T3Otlfd{i?44@(J)DLdly`ADW`SUR3(aT18y*|kU&k$(b ziNi1Q1BQH`#7j8t_`?l@yT?IVet{eI{+^iUKK>y-(x&X>k>7q{?}oflCU@i6^NU^5 z&EI|8{c`_&*IqvS@f$av6}sb&J1h)#?vFda@lSkSujGxilj-3v-;OYD=YGMR^5TY} ztl*44?tELc-Lyrh9MTreo;}-CQwfJ3H}P<$JfizM@^CEUfV7;wb}=&o;)i? z`8u79dbqvaIWQ|_3g`$$n7z<}NL8C$a^ZXB(;s`cOc__Fr{5ZvMv+Ed*3)8derb^` zZflfGtuCb3wxmi)dMB(J1^7H;vTn$`mX+y;PEC(IHtE3P6;*qAZP!kDY1bxMykWH* zuTuUKCr^=v`jNVrSFusAY|U9c9WQmGPgcuTRogjAb?~PvnDjkL^p)-3 z_~4)9hPi)|Wt-MYv*xE(-7>0*lr)Zc(ylkpNbWI)t=@OPt-I~ICN#`nq5d3vPgJNJ zL_C2&g&^RKF%2rxHHZQoIZ`l)KlVsVxGK%i=+hy%*;_;8oium+&>_)r(0Tp%$3M2R zu@H=DatQsg#~v%^o_nr!5;xs+lTFjp!67|@6cF|cU-&}ze&(oyTz&P`=8hZW;F@c$ zkvVhbbgRXX*B|`g2ZDqW0{Xk({mwctI-kbIMmge$Bh1aqQiwYw3O!d&p(P!Dd#6k% zNN0;326ryUko@BA{;+qvx$~Q{a^c6Nu*AVaOC;(CV+c>27}9|B@s48LjeEW!ubwaN z81DG>ddCkJ1~Nw7fBoxUH-Dswzx(dH&t^5K!~gx?|FuPt=m%52JMX;Hh!%Mw{Ml!p zZBlYnIUvN4&<7rP!0eAX<{0_;&wp-Y5C0G}h$%aZ6w**WW^CSk^Udz^QXkZ_6LQLo zKk$SYk$3Xsm?d#>%*bOBXY7g7CF;zMP{;oM9B7%mjtNH`GoP_<7<=A_FMs*VmN#(XJ-GSio8|J$FPB?%mlE<#+W^tL^2#f%O~IW!L-Z*F zGa{E9 z`+&3TsO|(@lQlszBaPB1b}OMA03npnAo3DL6as-jU|}%uTYCwM@tS2><7L+Y+Y780 z3@iprG)ZJIIcEey7@-_dLRk~{eD(VD+F~PyP0u~u_tm|1E1Wu&{#A9VF4M_C z+_;pDEN5xgj61{1xYG@jKh(5SPSrv0#Fy>7G`T!;@17eM9{IDn^|6nAtmf0ez(7^m z)OL&82{lmjg87TeUb`G@A7 zPk7itWoazF%nig%&;5?rB>Rcq{<3`G@=MAUF=M|Wz8tn?^RBTF|wsT!o9UtUhweRX;Gfrpm87CJmL z%7-+^fMnjH!KiF;)zn5F)-{ZE<@Pv+^o{R%SNYg?z7@0k_tpW$#`yL?{W#YUOY(a% zM329!>I5suKHn;4 zgYNOA;bf;#wRz8sq2@rr+hANC^=`+VOl z7wn|d2GDZ@yjv!>EdROBeXfEs9ltn%Da*=KAApc=eB&Ecz2Ka4&KWLi8NT?*Ot}2g zgTE})CB711K3>DM`C9L$t! zlYeeg)_I@l%DN`q!t$KQbpl-zr3{OIaRRP*cc1(wPt7>IPd`}>fD=cKCa>H85I}jl zVMfG6i0Z@jSrdZ3Ol%W#t|<<0TiwEgqT3J$W$sPuXy9R)1h% zpg0CH+luOGoIk=!-sCYNkIaAX0Bc~JUD|VpFBgDrAe;Q9JvW&)_eULdRLyfhU!ICD zXQ|aad2X<+epvki*41s4JZ4@AH|zIVXPs3~tujeqe}}qjfZ=2$?FGL!)KYny49OSq zN*`*bt(j+e-*m%I+B5Sx@43xzo9@y+-I2e0al0~4_$7aoW`;LXT*`6f@hM+EBgLAMv1+36-E2HiYx2%dz2gmz8tNSx-EpJo4lN%E~3dTfkY@ zodLE#dD+F~b5~wcuH6`QGeG=$r{ly-{``%>+rlW%!tDfKA7c{6$#^ zbbZ}jcb2z*`s3xZKlwqqeN#+=1@sODsF>9kvUVi=M7Yx23lfUK3d%6&McAvBuP8gs zj}`aMtDgO~V83Ug?2mv{LKQhHV}EdUUoN`&%SMAs4O%uv_w_k-HX28S7hu+@81#6P z*lS45P?^1SmbVVrOg~U()29YEiF?o4_;#l`-SxuE#$H(Ci6{)9ny8(0#?5l0+R zJ8-jnX5f)`^g)3E9SLyo<~P5&f;;K&re?kZ_3~AmzyMR6zy@%}KRKR%{`te;$@}r7 zr#t@it4skzPk6!;%KP5;zB&ut%q#bJOH=v)A^e-w%&*sGc=+-zJ73RaGdMU{_1g_9 z5@>ewG@j=yLrho3FO2Tzt%ZwEgVZdK!tupcD>uR!t-eVIGWbK}LKaS`Nq_YD0l7;r zy|nTNm_F@kPpk6C_^A8vs|)~y276?dbsazBNl#^_@gp4JDN|2>`qS$G#bDeXjeM7J z;7MGFAJ59TS?Q)7_xawv@<2|)J@wR6Yh20mWb#_rO=`v~eDUH@+}=rJrXl^3D;axE zcl;)QOleVPncNB2Gx-S5th;?D29)Y2fM_*Le)2EeCLbBM@WgMxgSRX*!d6zSu;(UuPj}u+8*<-mrkyyG-1EcqUYKMGfO}3q+MXpBn;YdX^M^n0PCxzhy1Jtd@HRZyQ37e&4+pm6x3R@N(+$gJsv9WAGa9 zHU!AOA!f}#`J0Q%SFX9D#8%w0DNgFy5TH633*a4&h7f*mn$e7E0_eavBB|;>h8u$D z%!)_e1d_fj+}#oN;;MC5mv6^l_JMIu|B3sqE{CsJT~@^u`XXtIv4-O}|K&5EEuZ@K zH_Nqm+*#F)=2M{WtRF;7fej+;UJ=eWBL(6eYHMQfaa62C?7D2l7^E;hZd$NEK6z~y zu5*T01E2$7_8Vnmkqr=@HIz0y=8SGOn$yL*j!EMM%mX)0Hqe1tBDXXRtl%5Zc;i+_ z=Hp8mSAHy=4-O7?8pvRrJ$L+O1Kx}Dq}=d>5&$HB-siim#fLv`bt1}&JV?s0lppVr z6^&+jVy`12vu?1@zxT}S5b^2W<(=7GaXJ;qGr-IaFc1&^Q1VhA#_=OsZ5;M`m)B zLvqFw{)Fc~uyvwlJD>Fd6JQr?;!!P#< z?%DH~{E&m^GtWG;syeCL?Bsy4{WS8Bg6Lo%$eZR94NTi+odt?(wGm zw)X}vR#ciaQn=p7WOYn#$K+b5)~sB%u$*$jVAP3S%Z0zbF?8EwqkGJr^Vw~fqWmP|90~=<&HRpCVGVMBkXV# zPaEe(8l-&_<(%%=Y7|@iP<2@l>Nrld*;oe&LJaSrDip1F-1&{a*d(xNZS1Lv<%>Hb z`@Ve3_2o;~TweBxHvQ!fKB*kFa79@ZDnQsg?ZFQ!U-*zcVz`ywO_Kz3ppfxrCA zzpM>IUoh8T0-xCcxz~tm#Qx@Q{-)aJyM~u(xz&gzkimmz#B^zR@tX}lH}1VNVDSMa z=`f270Gd7ZKHX1MB7`r$5uWfk7Q(AE@vmbCZIi__;^?0z3eOPPCg+PWTd5 zcGMZ4a*D_a_%>j0x(EP9e)%Qiv8JUv{(P1mac8Hpx=rakVOAKKOQ9>VT~m%$z#(LU&hJAbMh@r`Iu=I zk2KRWSLQq;{<3WHV+D&kmca=*A?Zo?!uLE;o@;wDwJMmwA_0?ryV4%jC zaWn0$p~7QwqR9(?o|z_5)FkJ5i&VBb1uKWG3dyO9*zslWSYfaq_^5pjD5o8Le7P)E^Kac4t633Th_LhBEHnE;hWIB*La5`DMo{yk z{P^y{(uF&fgZ7J$`Yl;J1__LhkrwQaPhQ)FYcp&)W0#e^9~sXENe7|f&~RzYn)cb~ zO$YzA@lv~kk_VkyHsaY4;y3xq29;m$b%ZW@$#k2|w%MEt)J$bwBtK)3QZtI> zo|zqW%0QU;&didyJWH>RjyoNAx))~h1B3up-eoxay5zN05#SII)KLLfbcMxZc51wx zXpN-tBVKukAABVr%9=b&Vz15sh4_+RbeP%m>jL`dJey4f^0`Oc2#e`TJATrCwVcFH z@{r+YP#H%)r`c^!j!p8M>E|}7nFe<9DcyMo;LCSFkE)w@^4Dfu>TFqdGJfyv%g7ZF za#JS^ij^JV3sc@qmNI|kU#1tYc*yXj!M#C?!J7R9`A+H3SU2BpNc-TJ-M{+AQ_BZG@r`oB@7Tt>aMy`B+Pe6w zFgwDZ8?*FtH?Auu9(`!}gL58L4%si%#NvZh8^goB!NcVN^xyscZ-Q)zp+qIUf!SP2MzYo;6s~;lBC4D~L%yHXB2Mc@}qe3L>v9X;Hpt3T=^coCkS=x8 zvpOiBxO1^nt_{!(Zlqg22=CqRes@{3W=-9zWJ5OrYWA+Ah^`y?_>L$u^>RvvMM5EbPBs=5*goi{|?mV|V{qe__ z1NPay{OwymQLeuB&d{xo0l^Xvui(2G%xxsAL}aNq4%@R3tx zVI5Rx|00jVk)m=->>>Et<-aY<54vADHa<2$HR#xV2g;czonHR#b001DhC|$J3Kg3= zt3SkA$G~i5ILr=p#sXD}otgWvt~2;v5Baq)uqg&e^K5_)5A)W>$xT)$f}x!vzEh4o zrW_V02t}qwlpTq6LZAF^3-%{3!@dgvpmGG86J?(Al&1`L8vVqmhASIQrVhec#WvUJ zj9eP@UN)ND=@&1`IIh3``uc@Rr$>0F^90m^lia8VKzWy)PMUc2&XTf**lbLuL1V0= zH&)j_yZzscs8@>nQl3`bDw3vedbeln#TGpjBd(s z$xnwUKKTaR+n)doiI*KW?xov+MV=}nQ$^xRo|)v|P5HiQFCBO_`Z06+jqL_t)uo*0BGzshOW<6iNT@r}hy-nq>@ zX4g$Xx!G~5QWsrxQ3ZQe4Gpm6XO>ZV+rT|=Egz{%Sw)dXm$03%qrJQ#QPt!B@AktS0Z1Dzm_61{7v3c7c$WES^_RI&r_UcHLvjJKz81a>aFb zlsoT@GilaF{Rw6KIMAl-w(G+3{3o4K);##oC<`WoBCH7S#ux~E@v7gJFI^s+_Tvow zwb6#m3A>F3LVa2te+ime~$Wg$6 zjUh{Q&t8d5v4mjI^S}W5YmU8t*=5n4g2a*f|+`Gsj!6U!{GysG7o^0GF zurPxU^s^JL4$MkGGY#&6(+n4ny`s!R;o-rvG>X%GriU64{nq^ek zHONYmFT&=Jsec%Zfjc6HEXz65pY|Ch{`i&W@)da}4EBg=;O>3OH0yTSahGAapA6wU zd6`T&+k;=5+*8id-MpWS46+91G=f@e=04WL;`qn8<)NpB%Hr|`Z362jT#h z=fshmb2fF#&UDE<(*-%h{h&DT9*KxA=58vt#JKaDS6^C=-Dlr&zZk*9IHs&xw6r|) z5sxiz`tbY8-Rt6r<`@|8IgdV1kO587oUpSZ0o-@&J0RVFraDUjdmo|IG_z5pb%S!U0&lV(bT0gHQnvZL;0J_xrNUdEsNb-z!0CVujL z%G|R&Nc(2z%&yr%XI`aT43aXfX1vYHCvW7C`tke;ms{_d{A}@z0b}w)0AO&_Kx4C4EUQ05|6m^5=Zi#JTbe88}d^|@kz!_*{A!IE7N;n zWm#>O-%PXjKq0^>pV^ZMx9LB_Oy2VuKkPCrya_AQlRQn-%rrN{!*9xmeWoq#@a|%t z@5J8>W1{?w$DjC`JS7k8@*Okf&EAFQOapnk=gz%4muA|f+h(}JP(CtWxbZ&opI>>) zoqP6~Z^;jSGk@J@S>Q)l+eq@ zs5Qck7|W8F>VEM3_bW#qwof_y;62J0|Lw=+w$Q^r;kbj#<4-@jEM5}jgK~QS<;(BA zyZqqh8_K6*M*rFX(;Mfu9IWN-l_!Cbp{~G&>F8tk9@kL#{$HY^d-=CDN?xqN5cosii zn)y$1+g;oN{kl>R0-qCVI%e>9-)UKS#%T{L4>|1UvaISj;j|G@1~^G`_Sck23TS)t zt`TT9!r3VFTRQNCnvH+6(V7XqHJEsCty#0Cyz`y!90pvS^;gsH|NkjLqy$tte9?`> z=n@r?ltvmHlg@2)h>D_gjz&tl8#X#dN_USOHM&3Z{mb{9?;o&pp6A+iUFY$5T=)C! zu72TWoB(P30(%!OjI2K7lACD&&W^&R_m8vyXR9Me99r40JN)y$rmV~D!RTziJ$Fo# zl`|E2=bCr`-p5wlRJ7moW#;$E`B6gr=i49?J7m3zNY{^?=c- z1|aV)^ZmvKJVEjs$Mxz}6VH(!*q{8YABOGHYssceo6~2^d7(QZ`MEM&KQ-(Qfq`8^ zKanwC-)~yy1(@NCtKn}2UMvam(=2-VH*ne(O%X<=(I^6bC9O>6bvr_WPzAvi+4=Q& zw^>tZqvR(l7Ictf>xQ-;O6Q$-MhD7$oE{-~guK&El}#7Ly=nL0Q-0y% z&Fe(N8t~Zj=yp{FwicVZlJo6InXB_&#i3;@Suq{i1;}OUhF7~wBT8ZJle>tbT>%l* z!(YaB4{dggEr+DsD#@9^7LbYTVj}^5G;#`Ew1x@azcu}jh)85n5O zz=f80@I9SHcN#D<6iy9I{pv!1Yc$om>ekp>k*es!VYkaYPc&cWPWdbkh5yHb`dS_C zvG)|%wS$jj&gvJHFyLgq4WeG#MX2?6O?46L)Ge3_A~p)$Pr*}({bdLMp$P5?*=M$9 zvkoIBkR7zH=nWY?}5tGUxmqhu^7};FavVMcVB;!(c`7mW^|+wAO2R) zi2>Sy_57kuB*6FWTG52uuX?h=ctwONEBFk|-I__}24EZAb^2^~5Ja@xNGzNuBPT6G z7ETgKOdtov|JH|@Bptg|&+~1zv%@6wz8;t-K;M2;>h6*y?KRZ2?^A}$T9(SXLQOar8HDhVM9mBeJoWEuGiwt6R!#4 zT7eIeq*QbGb8=0DpPKKf3rn$CsJ0x|rXUe!-o}?lgLQFD${e;4e2iC$Pwt~%Pq>IC zm%{+`H)YiEObjFW4}4Wk89oaQ^mj?0umFjyTTBbB^qJ)_ZK>U zBwovWv{kS+V(~xytnKihT&6GU*_iBUTxh&#M4+~m<;1=|Ff7O+E%KbF%=}T|gX@+! zTZT!9K(LgU*AB(l$r!;r4vYEWa3{z~?Ayie12vd|mH2@# z<(b~Mzk@~8Hocts?|lUF>~mWP~3+98Cm8x+FG(YO9U$*2f91HKd#&6AIA24CxX- z&Y;0c*ri-Nqr*~XqSL%yxA;tXl^j4)hvh?Z62XbN-iJcoFjjl$GbgoqNTyt?i(1j9 zc0X}WW5EtA)W>xCmJ?ocwDR*Mc(ZgVan1&iA?U-^tj+M#W6#NPfp(eY0b#_ZW}vY^ z-gdq{&+BR&$@ugK(S(YocsWll&Z>B9kA<3U6Wk}v>JpXl&_chS65Ch^CcI%KDxEH2 ze3E%{(h*sJsh5fDPZT-S8hFo&?ba;s#mN?@|h{oOeAAN1a3G%@wF>+w2{K zZlv5gH=2DX;};C~bu=Y0TbLYb79CBgt@26-$2bcbwYf;PRLv7d*!f*)^R|y8lY0#v@lDeVQ-4ez~LG z4v=}|^mWf;EBpSu=`W1Bc3{_XlRuGrwPTB@?{a5?4CHc+^9=S<5=5;CIn9HH?TDpB z2bY$Dn^laOHODg2ePY5ejtp8R0FuX4pteHDd58{LT{ulS#L(E1 ztH;oY-k^g+&2^B!6RkACMqY%E+$Yv1Ob5=}B#m-*ydJ zmr&i}*K7Hqgb?dWHHnr8-^!If(B4my3~$Fu*Vy~M?h1kXTiz6Bc;ENtaT|A}ev~tG z@3@vjv5j5R=K$NE=#vkM_)?#l>n|HOQGXI6%(C*fN!9kCc-&&1-r3)qqA8s9f!8QS zU*_3MERS+8(mr$UqL0Gm@~T9H{FMvsJ9k$-r9k~A;>Cn+x1^@fyF2S!TXqj+^xOLN zE0)lV6l7&rQ9m;6j8}~YO$By;Ps+%R*JW??)>i2vjfI8Gq_Q9BMef~6<2vOeS)S@Q zvVxkV#hItX|E=-72;Y#Ro2Wmbn{YYGFvP`5@1612K28<}O)l`9Zn*-F=7-@D0$U?I zX(|SfV1i7Gp1HCwQ|L@w`R3$PU?j#2fl)B?i&n$q6p5}Qd^t$1g1PlP5}Wioi~ubY zMy6Av`!{XrXdRNOCYX$)D7_b+?L5FtKQcq|pr#^E@gh|@>HR`}=a#6oCMNp_mF4!S z;w-a}I6-oYyLDODeOJ|QYj%G}{*s=u`?=2$^W!)m>#vs;h3P?qAJACZ#p>n3+chUt z-Bdu)y!*jdVBhbjz@zr3z)fHimeY^cg_u9?@f4gbEB-!n`@q8*%+p@}W9G4v(Xn-Q z>mpx5_r&GKLpp-)vQcIoW^1qoJ=KY=_tI3~D<|wDFHh+3-FXTY}TZRq5#X^Mq#^y;GdvjfNE`dlSwqdOG`zx>UgP@WCa?TAcv7kxu zR4xIUqo4jv1R$Kt#JDv3r7TgH=_HxzLP}m)sAD61-u)biI@2(Wli4TTOPf}0+6L2#A62%aj=d{g2h@qH`?JFX0? zBV|h($MRlVACTN}d ziuoEVrH12LKICT^h@i{@)g2AmAVFxhsMxeoYX&$YkA3?-i-g_BugGQArnON5fcaJv zY1{o3K997AvB1j0?*fCx1XK^J)4DE>+eQzu=;(!=3JcWKU?R-Fu}Ber;e^wR7C~T} z5$PEF2V5T^x%wSb;^JR~r-ajJl79Oi?&WudJ>JKk6hX??dHEKX>BN`OUzO67qOX?c zz0L{Sv005poDw`uuw}Pu$)otoVn0C(xSv?QOmmCun<;Z&Cv0RVSY|n`fQr&dcX^4s zF3a5LxrH1@Kwdq}v)S|N{1?PpbqlRFl{X#dJC|11c}`#*0}S}nQ!4SA1t_$`TMx$; z5e`@6ZL{I$U&4koP!Ya>_!Mit=^G6-wqNmXzlRImN7A_x+0HF=69i0|th%NK*!)yH z0pK&P!5doqt?dDL?op~0qs>i86;BL~oHI^VZiSj+{%*&6#Lp@ZYFgpzaGV5!lZ&R6 zZwxz*nc zhaV>&xILYePqOI%?km1GeT~sGmw{B3;Gf6;t)70B@`NRM zkI{yX)=Sy%eXS^IO2V`+{f`RdDmL8odWG&Y4&H<#)~(y9xvrUY=;WxL);nAxTei{?b0S+x0&O`+m}m$k&-JtQ|V4&>2y1G zckAd^c+oJ`(Fi67K!9|MY?xb5LhrP$7DW03Y6@+skZ6O`mV4ZEwNq3#J)UUkiss2^ z5$t;@kLTyvfa_nxf~i~5T5ppukA|tUKppHniF+LwBuv}Ray)TE1ekSzQBA# zBtqU-UER*_52SvPei2Jnu4Rs?ciPR9S5cgO{;Nr`$XeIwj1g((jSE&ON(6HOV8i*bG1~EM}waCF*29CCpf79mhMD+McmP> z6VYw-fcoyudJVN~viHJpt8F9do#01c7ojC51DIeMx)e9(d0bm^amX22_Ukx#kIT;P zBXLx0b2T2Ga8VE8{tn?Ku!VW%d|=jA4t{sFYf`T8t+?D;0Fk0X9@%EHn`21z@C!-V zex;Y4F?vogng*`Z)H2$<99RZyihup0$b#qO{J=QS!BIYf&2Mvon$>L8x}6oSBn-7l zourP`9Iqgrs%e7~zTE3+xPgCoY(YhGKC~VgKSKtMZ`y}HPYUo404z0Gufdt0!iYBpI*|3}g)FE^SaQ?S>jYVDuitpwk|4d;_$hO{0+hy0ab z!+MM~t$v^hy)ho)Hehq{AmF^{^gp0P9FS)24oq~ z^<45t&yK~bdLGL=fjTq8NvCExz*;HUL~4@jk#$n*#+M;>O2Z(3XFz9bYrtZ7MG;il z57atu#T{*s;j#Ms<)bpuv1c4T@vy!-M)%(5Px)bAN0l11j{_>*s_*IqaVsZ}Z~;9` z(0Ny8#|6V{07q2S>xkB|iW4>t+TIzvpvOzb!&J;<_Ob~OHTPb?pT8cw{jy*#6+@rep0;f@94o|TRimSF#aP1lW`Z;|&4Rl&3u##D zpNRwS*}?0xD^pzFjg{F)?%SJXeAoP@ItksJ`ifBV>Iw!cia{RmGyF;6G}9`1G~U^p zZ#!D~buA@mOPPl*g38-uSw8EosZtCtnE(S5d=LQ=Yb5;T>D%E!=pEqXl+9_kT|?3o z(f2O!X;9|3KSzvLR~~B^4y*mm?)R@rc9yM_P6mH=+&)ft=zWnwyo22X&ta59hW_MtE5E^7qo7QWV@(jq0US;FH3cHiSgKC`Gj+`dT$9EB_@3ibU;P(( zT|?1slAr|C`|ts;a-W3s)JdJIQJi($|KXuaH{^ zP$rT+IT7oGw%MZ_DXvh*aM2=TfP#TX&1uN=pNT!^9%+@zav+-lbSV7p+cX1Jt;b6Z z&`P^{a2yJ3A-^Fc{Krk_J*Wfo`|D4e(~i)ZO3j~AHi)wOg6h5}C;Sok6td-j#&Hro zgFL!|THIaO_d5E=uzNH}p=jrkr@>seYtbtG5$dRi#Uk!eMK=lsVr?1i(EK<@8&puRE7k?<{26RAo zOjRg34+RGp;M;Y>Bohfzr8sR&a{?i0rCiN=)&>Jk+Lc-8Mo(2gLcXi7<>?GyH=BW> zCBGhUR!r5TYp%0=gk569lGDvl!REHg+vtFl1ZXni5C4+)@Iz7btH;k{7Sy$etu@N6 zvNJux1Fz?n$TQfpsz#$~#7?PPuR6~W_qYG@lE=w4RYpgr*`q3bmhoAP?y#Eo7QD8K z%hUivsiFtvg&qRo{J7qQPIv^tx9mHzdcJ>}PWiBTT`dn39ZB$1hIwvDPRT1M;o^1-#j3|opQF{HBtF*9cKhTgz&X`A|wn+z;qD6 zh5wX+YEG6(E)emC(&_8be5sWP%5O=U(^s z4$}M2-h4=NzKEZ}o%<^jNTT}ipRla-V1F_`oy)VO!28DcQ={HPJDa0B1MD7nj^5Ry9m@XJcK@Y1j*@d-d5>Fh+%UM>B4cn$|Zq<%YEvCJlshV-zAL33_T zQ>uDHqu+1PD7vtGi%nPunYSXIrg~1fU}DIFHn0IHyhKc%+5#!J-D~QH*^WiA#)e1B z<4h?g{!b`SGNQKzuqyJYME^6J;~MwxQvn+uja>;~$zz6u%qlI5470g94QPbe>d*bx z6jl6~m7rWcBxZK0vpOKP&5pC>Ox~^P#~nP>{_mjzb)6J_f$r@EDJu)m{=i7XM5J@L z`$BR$yw2QU(y3mCkmnF*Q8`lK7H|O&`}1UlC-PJZa3lDu?9uR#_#o8Ja~|IkX@0Z} zujc#^-PL2mp0$&^Gg36y92MDghW7>xC9`y?c^l?{faLWZpE<@jLHz#ZUG1tqvHkvm z9zhUi)=5Ar)N(TVh(PXKm+Kb`>&Q`|;(eihQFq3)@lJ@TDMn3(VA^EQXPu3u;dNL` zT{QLE^*k0;X>^}!saHx*ipSfbQ}`E3HMgQ!D^y?fIuURnAt%#E?P?(*`vu>q|kP z+qeqXp<@o8C|Z&bm{lvXR3Je);OT%NkTKC-PzxH){Mxo2CPjkWcPkvx^xUgpDx#=c z@X(ltoT-vINtMn@m=HXn_(lR&l>X@aYa+P8t$1UetU?RCCWwk^Vg8UXBz`%m!log^U3tbe8q2;+J+@SDk#kaq8JQF8WMTQ*MitR!ba-)-BVyFqN z=0P!`nMj^{u?NXq1JQpT432&89+->I>N(z z>u8`X_D(J&#YXew*;>R$IRl2BZ!0+4O+v;75SSqXpK;C|U#pA8!v(Pm%`#Y$GW(P5 zL+w@QJI;D}_igsSjhoBA2c1MU2?GlV*{!H5=|J%DhhPd%pgS0hX_UE}7^8nYtuWmdVr-suhTGm4xQQP-=l2|0W5cS8hs{Qs=U$)5Rn)Au&QOap!hF2Po zd2cTVg_ARQRAd$r)aIRl7XcTuUe*fjSDVah9G@L6S~(LW`;z5 z{aJ_)Iw<}r6tq|Q@jxVS0Yh6&s_}c`Z&>h4P`S38$`g1&C} z*dFxy<*6FG>O>i<2GusoyNv_aDyhEiOGT&Qa<@<+7lXyk$ z)z0gr+iyuSf25qHcVdq5ru##@v!Vh|Fi%m@_(bve8v?aj5)pNzX1A^li-wSp9U2F| z_6%x^39_d)2lh#du9o!pr-QwziB39ShgKr{T!^Be&4b~gr@^(a6%;hbV7g!*>xUv4 z_J6zGXYYs-#taTj&P-@oh8_tWEB_4K%eg1 z&V}FgkgzpLo5wybIW7w^l|8?&i`k_JUpkClfqrA~o1Y`&NR^ zW^CgiAYF+aWjV?OO?Ck|v>8gae#H*_F?Vfy@RXgqh#S|c5hkd62lCgca}1~}YyDeG z`25nj@nU<*D>GbTIO>LkTD_dhx06`gRTysp)3wev>Cne=4xx5Uz8cl=C?fMEwY5(s#bZ%GXcNO9dF>j=gak zvrS4Y6>y}=ixR=?pfvLzGf;uOMlYks34n`;ToiVnlU=k7r8BS}>fxhF|C$|F&Geh%Z9M5=QV|4@5dODw}6-Q^23arEMMp z&HJ1`MRhM(=sP#wA}axhJHHRBtY`LtU90-QIuua?2g$i$|Hc7j)eYZ&PUP(2k`E?9 zVn9p8OqBgVDz*Q9!)5}sd5sC^>RJx5CN{rT=k)K3XkYu!Q1KoMws4iR-9H)ADm$AA zKH)f?qthj(-Fk;_{E>t)CJ^uIwmMb7dQ*Kgu85iErUsjzTZf}vmF&PTmVk>DeTcDw zj^?E!nBWla;&|?fV)nVHDkkMo%#{G*=zAsU0K1DQ6LeAwJh~IEk%A%Zt0TBIW~rB0 zS?4z65(Y92`G}@%_thV*FNWbS%7Pl#Pt_9<+i`uL+@eE$mWvwT-%`D0ldmTOY&mco zgnkL`)SE$tDCW*HF*QYkLWxe_!;eVt4$FSt*#)p3X{7a;v6Q(VQ42tB!(EK@6`4C$ zoIc-5hYVYMq4Yqn1aSX)-U9OuUjACiLr71l>zGOwpF+zxK(UOl2s$M?sDaM--hCb^ zDtiwld_?)h0OE{urvnk>qv7Z2f7YpDy@@?gA0W_%wR9P4OG@6~l-<7{{Os5CNQ_T= z)^)ZnB||3g_Lb>Tz!2^5I!l=M?5`}hk@3zcM|H4~ZNcKcOL=R2TRCQbyOl^JVnPRzJF$?ssL97+Ds_~pE~ zUo$DIEMv2Kt-zR2x?tf&peTjEF2ORi*nXCS^(57M>rRQnM_d0q`rzZdp8~Z`T%y;D zUcEOciS%ineC!m*vMfW6>|Y47NwgyoRe2vca%3s6yGiu^=F^Svky&1wkg(wyPkY7wT=kg(j|Mm;b=;m|8URLfPWfM z{K3-*JIi+iS|+ab2k=Gw(Dfr1=!ed784xEVUamNs4{WLQQ-Qs{(^4&(=`4@4VIBPZRWpIDR~soVr7P=-tP2{6JVI5eI(!(%37N6476(uzoo|ui1pYkg@{J`+%o3s0Vio?#)P(UhmGs5?x1WRm$Y6CK5k0NvHG>%l zXB$V>bd!CSB|NXQ=$-_klKB>X3T7JX1*}nX~8MI;%y^IHd0c%4u zPgKCpzwfB|aHeTXOFJZ(&i&71O6GwfdDOo99vLQDtQRAp@_JxQrHH7$d-#jtho`+)Sy;~DEhc5#({Z-O1Nx*taL-vrD-;-r=6k32j=FpJw3_+z(y!Pi@JgSgc$gAxN^B z9yk_YI;E0B?y8#(`%9K%Bp6}yw(&UmKA6VU9^ zar(L5?M+)-8>Y~(#r}eSo2NG&&`ZgVLx30V=@73`#6PBC{49>5kc5yig1%D=p5mN- z^&DQzHR$((^{$-;uAP240E+ne`m{e0LJ1q{w3ODD+R9=m@3m>J&v8@XaLT^vg@?%g z`TU`wFFrE*qq41(;_CgyS|p3X)T;b7Ec!+>J}rPkYcx}Ejo5oJTJ_4z_+UN|+q3fI zr@Fsm$^pvn_loS?R}-Zc2gyl>)459%6}_~$uQr473CUb$p?(mt=tCMDoM1G(4k;Tc ze^Cu~f0Sm@^VbgYbtYaUQ$sWiBUe*9KHGh!^@It^03 zB=>WLjV|zRGtfN!77a?o@~`$zx%(W-S|C5)ExEkh6<5GvZ}_xTiH~_+8F&#I_(!_w z-^*R-1jL64%CK0=fg>qRY0W9~5vWXe^i(y4GIof4EAo<X8c3NVtv=e8H$RC#9{PL#|ER#I?g~>!U#mAo$(o$Hq z2-{vTg-A_Vn~*-941E-?3#ol=`sznP<7EYPQ7yj5OMj5kuV>H7EKDFxAb;pAeV7w zDzNjaa$0l{7Cju3YPU>gbB36HDZ`zT!mr7|F1|zP-gmL^OZjWG=-|9Ypr`Dg!;9_j;>p`y-B^N4sUKG7Ub>0Fr&*UzW0!Zr5ie1ZU8U>@ zk!pVX^8|bGjKS{yuEy9ZK5mtu%??vGRM^u6EZnuYe16p>Oq=dkn$jcXY*s$N-j)~)qt5Tx!# z7H*qf?8QI3%y?T_W2P(*_3GmL{%?M+xK}}+jc-HcPqOrHUk7|#4Cip^Jsj875(vCM z53~S(J$|c+GbXdb5T(VzqZL#@CKSO2U8*Ae(m3LF z6kY63)5#YK542&lW{moX3w2{X|k{H)F9e zer8VnwupQ}rZ z>LBjddg?C~)Cy3qBl1kpX6IwkOIwG*Wtn%>Q4R%x>`^$8`&<9&qsD6f$aR;E3R$Ow z5Oa?V)Mg^$1}L>#T=i{j4=g)p;-%3b^LsctXDC+-c?C#lj!rZf!x80LVf5L`>Nu@6 z28p5zglk9)PW=>=QU^~oUi;0dC1Jktua`}v7-FMx)TOcU%RU@Z%7mwyHp^q=3;`(rJ1=NkhT+A*tL zso}fGcI|NrZu7Ql%AXM4P-ci%1DBXgX_$V~&oV@wsmFB*>Z-|ENTLg>Gx;@ac(!nu zg%AG)*n-Q<`mo&4vNHtxV01eA6jd&FE>QHJx^jT)0%=REeD>$ANQjlkTsf?+oH-iM z#B_98j;d9rhs<(G_!FJ=amawG9OS_VjXQ-!ypjP}G?q!^Ue1Ox(HJqwJgBF1W$F*7 zooV#>;%Qh+59x4~TJ}T^fjzx{l~jaAv)G%;6G}4kAuQ8N`X?yi$GtgbdOf=(BZ*)= zw9*E0gvA5}$UXhRqu}wTw25DxKku(UoomvbdssXlQB?Nzbj2bqfj^4Rf~U-T(4iK` z5C*l0euKnLDg5oc`%M;gf)TPbZ#1dYf$}6K(sAM{FMb#Na^V-*rjfw3k~UEHncu9^ z&|Ej`0M^BsN98lH{u`8ri;pfHEp5_h-%~%X3_I!9y_A`n*~kAI31-U%Of@a)Gha{l zke3bBU|>Kh+VPM~3rFjA}VcB!Yf1;ZG^xe-!)yUfHA2fnaqVf=Fv(*r2}p{lspt8)3O=4I$QNw@6=6@e!Idc}3)UhUkD zBdeT^AGgVceL=Rg$^*?gOV(Ea<4_$AjB}E~=tw-iVfr;qu2UP0rU6tZQw=x3P;;s>nzK47|sqvkPcnaYC1{$P#<0 zp|XN7UD(Xu9|Hv!B_C=EQ~%*j@NM0X1dna`-R&op8rx^%s5K?C@I-)?g}b?9##psj zsR-6=Iu^XSe+J~=P6~HstST_`?_gNej?GV-7|JfrIJF{Gn0E-wxaj0csB77CvN?Pq z#bs>RDAiNzK*s2-8?k>w11*FeE(W9qp7|05wAkfiBKVzFvDEVnyr02|E)?6OvE8N;$2Hqds>w`%!go4zmZlcER8E5S{I=s>*DN@)bSr-@ktkw<+gkC!*|&MUw2Gu;Gt39hJmSe6BvOGQrf@T|m-iPB$ir zibPwXDctwOox5D+(q?l}OgYSRZY$T%m(7(+oaseR+aJnw+{q?qP)|-+fQSDpO}Nqu z2mSW`9X+C*aw!qA|592fC@4M0_$liGDT$1zU8@YM^JGQ=+bO#%Ob^xEE1hCb*PFui?6kU% zhHxJvrrex`RydZAtzHxY{^8Mf+255R0}?2AGBjNq(UtwY7lunds&tXAB}1x-N^cTs z_=j75dH6n3LnPyyZEmxG$KQ9LWA)XlwDIJ>=ohqO>PecP-V;yCc-)v>$hMGPs%K*j z5lKT`6wBft<88;fBD@tG?DZf~Gp!p{905!`*VQ(^(bIA%!F}hplgXlQ?UqPW?roFO zMNPx&%SHVTJ|xRgxsvA3yy@wHZ@m^OL}eN(vV)$*Gg<6CxEm0|Cq*(`Gf}eV_)Wan z9Fgfm4mcJ9fD5Ugc>1N&?+Wn#QGxhaE?SA~nV|?RD7Cmp4bDil@lqY`sOEK5b}iFr zNwLY`Z@6+U(%!BN*<3#H;?mB#+deEDVc?@N{ZTIE6C7~+qvOHIm9*%@b2qlLzW$H> z&Z0wm+lz%43irnfQ)BslhSnu(*)%a(%{ z+muked-JY3xvw@88%zgYDpF_DHoJA;h>q0AvfX~;0PxhdW zm1IxEPfP{sFxf2!rtM7RGVNs+y}(*A{$OK1GO{-knJk*80O#(}Y1ddoYVI7fbCGqU z_IW~+ynbCN2Ax5H4e56 z$~ml6X^JyL2G96o3-4q`r7P^Hps-NcGaqbHxerVtGDT1yzy>?JJNo)&=4q9rJZXLE?yi+#VmsJdeWyQ}r5tk;oFv z-=(_uv++kCE|rO$>!BR2cD70h#NK3RSJ3k6OwWnPQc8gBnw(TlYVUhVZ%YfOtC+N>0!*!tgt4eMA(QyeSF@5fe>dOI&} zUhmDsF}p_v-nY^`hq(fO)aMKC zQ&ZfGXI+Rc)RP++P4_>W>Da8s2N2uVLx)RM(bQr%k(yw4#^t{%EM{BfVQjcMV@r-r zM1Qsp-tl?om?kwKSL$Ep??+L)P7oOA3Q%nBU5`vSSX|E*y1On16OrT7%l;>e@|RFp zR815K3fv*le2^X1IrPBw-I!w@K>!Q^3spS3Ub@GE5HB$pn!qEPj?*0D&^)X>QYf(V z_G$_N4@gT4BW5jBcNVZX8XxeuDXhXwn^Ulih)51f=JArSL6#`e3ywe-^7C$X31G`)9T21l}Hwx^HKjBh5bW`hl2a6sMnYu zZ*f}oJYbyme5bNBv)|quA+ok}CX{MdLV)2@raveG*~`GHilVPk=W?n$h7 zqUA7;>HVd`{U)Xko3eZ=!wmNekJd;eL)pQyn7Y$!1mh$F%o?c`=<_k?Yy@cPCo+)y;hH)vJ9d!uKM?#26r2 zb`*>CFnd9ytYaUgKYfleknW1!&l3^2eO!Bz*Bs~2qx(;LReCzJ^Mk_ny@q-NEu-6% z4qvbVo-SXocNt0YEcfh)39+LYp0sLD=FUYy*T=PCI13N%ONfz|=T7YI(%s(D4wTuC zX@;_dc(SU)B~RsQ>s0!UPN*bpA<5`)33;r=c$xdBJfO%qj}{Xm+pWOk!g^Zll+Vsd)_h3baV|;R-beI6(1khdeC~+&3*#Ve`YPimT^CA zB!q@nk}yRR&pNRgc#>Y_3~EI0VXHm)_q(@iEcX{yf$jPU+M;k$2LKFa;Hy);i7}$f zuf^YDDEC;KO%D#(V5?z2=VZ%k)JWDqe7zX5_MDngIG1Mm=mj0qZw{yY>ya@RBrx^A z1;JDhJO|9nHiKBAkIk>8!lV!AJYo!Bo|kf9P4+4m72=b3}y2SljZ&`anS{ z%=qDFP)W0IO$0w~qteZfSp&_aENS4lC2h^JwV%KK(@SBng2E z?4#KFQ6E=^DQ=oyJe={D2cHJv>w;F7~R;sV%^SD$fjW&^q5HjSSlr;BvaIk(Al~ z!Sxkw5NsuyR+d)Y;nfQY3Q28AKO0EueweG9pA>hl7;`{8eQ$YIHe;7(IyS7H-1k#9 zF5yO}j%-%Xe?3c#uG$rUd=$5iHwsIAQ$JVF1M;qNvb+N9h)c0vZinbNOcocQ(vsDX zmC{?;EZ!j&oFn!&XV|iI+kH@cigZ{#KRNBHnArjg?$-zBOZE2QDzR`l=@fqq=rgQ5 za-2YVY}ClsKA(AHbj)6%`g$Ieu1h{`-xiPo)a)PnL-i>h_2#L@_3!xB3--(oHN2ZY z4w76q*hZp=VH}4Q$FeKz>DOe6b3KFUECM>ZZbva{_O~XV30irz_*LmVQ*K#F(qyfX zqI?vD+y*W|{`dyV6n!=p5FhQgpS`Y;6mOf}I9v^sPabgX_8x63!?U?Atm89-ig$rs#C?}Z+FWig+BUkU@ZuDFWyD_B)M_zl;0T` zW|zSL7A~}sd8B&2SGQyytM=M8=SrN;Sp6aTr!Wa}k`|-MnK$>t;O-Y&N3#0oOOA0) z@eVCt=SrKQ^UG3k6XI&BPaGrvHpRc&{FXPk)9fMyw0L(`XV{vNvYF!7Aw91xaBFeD z8>l}f@tRTi@Mcp1vF)jI{-elJDv>(%@o9Z$C>DmT>%GRXWTasENoXqKr9s#Kx)a(aRRw~^l(p^7m)|opu=D0PtenqQwyn#J~xBeQ{ER+<(7?9Kigu)a|bc^k@rUm5blZX0ivqw zKU0bpNz{1P#t#QR_p@d{rnBwql6mke4VA=K)?9hBuykwY-O0x6mJzE`-~aMEEc&g| zb)Qy%jy(2^Pv$a-?%!}w+~i~?L)gB?L$()twEbpHrTvg|mM{GxMvkN7u*w(z)7X99 zp4#>e3UCtxPq~^UgVD0TS{gFYys9Ca!+brDv|NZY+yWkH3ssrKRUV^J1M2#AK z8_ytpP&8HlNYLTl$>Nh_j#Z5CdswoF=r~> z1EQ9`3(`b3KE|$n<~@1RB9PANG@byjOmR#&6R_N4IRLaDcg;}kHsl=PD!o+1_JjM~ zFp=p{ZPD?{lADX&4;9IDr4nof^pR$yXQ{`TMxC~~00*E8-7E{>9^WqW`Ev3y-yL7X zHoXI0FRgBa?qz4aNq47CD15KGUl4OtaA3WwI8p$~#sPg9*80RdY4fQKU?wC*mYunM zom;njwHNKCXWP~^cB=izi>#z)(X?W}C<+N8?WOv*jVhS_;e8!%D{`WXhw(!su2C?4poo*q2 zdZXDD&AHlys~qoP-s6)g=QztkC5I%TOAL-@6#!YZn5Jk$=cls}>uCz?F+d}T zjiuDuB% z7T>^*a$wc^dx5?;2|$6IZy12%IGa1fKwA$4rL1-{bm$H$rBIMhO8&0L6?Yn-5qiB(s^Adm3(f2a{ z9^;qW)j|xLfFRR5gi`eT(ExYdTZw6r_Trt*Li%&lfXd_{lN=q!I8fFdX+t4Lg$NxG8!DkuP3H9U@Y1h-VO3x&E ztGRVxvw<|v$N*CI>dYC6N72D+OJxEhd_(1PnnUZpce?)rXu2M+?@4rdqdyf@}rnkJH-mX|INN#|zp%B&YRJ(!w=49Uyg6 z*1|msM&9GCB2|1NrD9Rqjf4WihRs-!I-aw508x1EbbsucP1GDuMgK^pcc2LC!pfsI z7t&tAD)6p=AJxMM^?Pf;e3NERC|vI=v7tTE&XzV$Ts3KUXceZZLr=XV+(4-fOjosHTeEWf5wVd#mf^M5jUNtskKEd9Ll3`sPgR@~1&ZEt1bI5y z+wke-nkP%FQ>!dRUCdOVG4GNfTV`)Ds?=gfy1~FK^ZDXo+*XM^62ZpHX8&Hqe`ng- zSW%7Y$8K+{c+nbk?Q#&DI)w2>E0cM|cl1vll^oVc$DehZ*Qw}xz={RI410NDP} zn-?K+TI#(uFP8-L(Q|g$#T`CYKp4RA2(aJv)odRH`S(xu3j3gy?_*V=A140qLETd0 zh|O^(e4ny~(kO|2jXO1(=5m4|nB)UZ)MplMottD*nx)aVcpfJ^1mp)KWa6$jGRTh@ zT1c39bxp0jHFRw>nucT=3PMk*FLbI>l*y!e{lPzhNe0C#0SLT zkjbHne6qy0PjV%*6dvd*(3t^Lk}2+1p3DZQ2x9nz*jWv0BRrAaj2qGSaaV>6^=xfo_D zM$c$4qQ-kEl|{=WfWTyle|#zfS$YH zAMeIg2vG4bC2sUOs`A}w&c9z=sVl^TE$EPL=iS6g73!p+O0%F#>GZVqDQ=C!YD%TQ z2L)FnmiW)6awaPj8en>na!k3jl2jxLs(;%Fa~cPPoSSjd4?e#Eb%cz2-ptqNqL=aE z77$F@Vaj~GCNY`x@ zjW07Q*TziR*xA^KaT&WkCszbA5E41fULN0k7k%(r8lK;tIQA#X|JN6*T{ZxHqEbWw zq=hHz$g2oLkl7Nr!jTv9wNXYTbKEaha`6-G+HBWF^GFP*^kQXR$3<6D&+p|@I4r}> zhmyoK4b5)~)$n`t`_C#JQ6LxxYdS=|%W5LHkxO-$xf$Pu`09@N+R?kEF%X*6Ij;oG zqqROGTv)N@@)UF#ms*6w7KB2V`KKi%qp>;LMSOP6xYGR8HHnHAthm#UP@jQEWtNcS z$A%AF=?z3hp-Q8AG8e=U;)@Y7vAJdKN5$>cOQ#C_(??HhqiV9x&td4{;L{!TmQUkN zD*BRG3%DKtspM5@La`8Zxjj)BHa=`enEk&mnjuYwbzE^2 zOy+~~n>=2Igl1b6X@`W|e<&h<4^p_$>;bITs5v(SNs)e0|a7yQvmG=vg{FD_`c-2WtRz z=RjFtBJXS;%ZKh8W`U=JkNfN@MbJM4NZ;y>qhD9y`$PA`q=qlh5DG_->~D$yNo_xS zx)IO#Z-EG1S4S_-RLk>Z2e#& z3zor{j?MUyE(J8Rnvj|1%M_QU;pQt|nkudlqPwPMDpt}T#mx*Y-ti$o(`jB%;RboYuFdLTp{b9)txyiB*?qIiSU!(0ui5H8j{wN;A_T<-pZ!ThXlY(vnMfPdBs7Po$n(MP#FA znd0zOMxX~=Lug#nbf?Ee(6s0Edlg9Go3DIMe5u@53~oZs6=ZtkCQ=V8KFlO+I^&v~ zCv+B7?53km-gs;H+NaJ|STrNV<$r31i9H^x9Oe$TM~s~?a8mVVMxSBmSa$5JTUnWh zn1x=xGRVZuqRFOSG-%4L8!XBWliM!#a5ztVc#$fic?qDjgti*1Ck>F20Fgh$lkNUI zpLQKvlC*wvVKt%tAhUsgPBaz}Fvroxsnf?+Dv7oJks?+3KH0m9o$su5tTgCePq-R368 zd&NF4ltpTg{#dpb;F8^lU~^*MGhL{e(`lCZZ283gc}*+aN{4KFKflrr^P|MskvZ`QNo}Eeu+Maoj#1Fc9pk?MFlP0Y!j(0OlE}e1vVK70+ zK0kS{1!XL@~rr*>?C$7MPZ-jMR)tPPhC^clDBl9X_Fn+KQblGCoV11rd{Fw`~HNSwFRc zUP$rwi4F~ZpXtwzgDi~uD)KKjyaEvz`gCiEg)7>>zQp$4?)qmuu_IcdvcE7!@4%y{XZ# zwKw3&Q}rD*ke~7hXQ-%O$e2(I27`arvsYFKyLp^teDBS7foY?wKHdur2`T->EWdZ~ z)UR9>{qzu{e4UG1u*9fbJM2eqQ$3@RUvNOBOl#DjO=hZgS1vtc`|p{LawGr!SN`oH zRVbCix0H-PZRI*$BjLGDi2Rv5ROzDAJ#__{SLkauUeUZflpG&c;F)gLC<~LH3 zlR4SrF!1R8Vy+Mi>q=u*{6qfUFd&|HLJg$MFbO`EBv3KQW05SbDs|F+YV8pOy@%feZHEhnHHykgen~q%LP%Szo>ItfPD6~pA zmhUaQ%s#qqy*LA*O64F-RYrbxF?1s_DV}{c^ zQo0PT>0e>eJ*`bQB-4tHL5k4a-LjxUE`<&+0N_m?teMyqO#71gJSKedwX@CDCj2@I zox^h&&?jJr_RLAcr$ee`FCZJ{!+mXF0~gCH(mn3qSLrKuYAJ1Lc-)2IpV^ z<3-YjsJQV6OgFh(xstpfBabP%aGP8G#GcDig2~{Cw1!fT3qSlXVzZtf+a^u0;MFZ- zJY_-~8Z7=o0{dpzP-PC{l zY3N8zTn(nesHp9GzPx<&-%bu($U&x}>IFGLGU7+;@mFbU;pEr|=44Bc<9FFTS?2%n zhdnedOm&iR=-(Rhht4G4^w;IiM-=LPo0X1q81)ra!i#1Yj!(uDbM<^b{R`i<8$J65 z!zoRpG;PV>SHj)|3Z#`GIZYRf8Vy=%{Nk55(n49=Q>BOfV5XXirP*6Z^oN~H)iNcf z$mSFnr_SBsnBzhJ@w0~DdF8q8RLoTj?*+}nxt%=+dqjUd_)2n_VO-RbJM|Z2E|YHI zo=kvGpTK}_vm{7V%2n|EFmt({rk+W@@q3Uw7snE4!9f^Lf4fyRoOZg2>RD6W>7=Y7 zwq1!j<7mZ^vzP2G+46CGcE_BWqZ#@*OixU+d!LYXXqQ)@_dn|bMcJkUl4VKRP|rw{ zouuUwd2Gs;%ge*wiv8Ia8!o3-3m&h~FBszCozX^!zxbt#_~_O>0^gSE>eNb;5A1u? z%|fK9PvA}omZR$aGOOQ{;8M#RdYpkhw#XZ2(0Ec6Q7OH=EOB&iL2Mh#XxD_oHu)sO z9+N*9=a40qsxQ!oPTU4zRM4~cyXW&-yr+l#(XAm}v0V3DJ6zgOYI{w5z4qIZ>OL>t^^>#B)^zo{hoBS<9BN7vfh2|+#)ZUgrQ7E@_d@yRZ!bz!y zY49G4l$GE71uZ^XbXJJ$$A2wPIePW_)c)Fs2Sdm+I%>W%@zHc@uC03KsesZ^K#72;&v%dXlL6lT22I=6A8X@#3l%Y3 zTOoT{;9q)ccbn_7j?3R1m|A~jUW;z&t&3O)L;JOux841L>u>lKIX|&_`zW;bf>7TU z@BZFOUo&cN|5J%NF;E!>$2k)=o$k&wlbE<*B`sY{FWu#nk(1Zlz>&&5X(hH2)S* zALscdtnJs6=m`nW{atGnXZNVS+uwtiXWi#Q$(A$u!|2Q@(s09#!D938DsTDGK+pQ^ zK8;~QMv!~^Z-LET!bDVXD>-|q-u5R0Fn=tFigF|Sl33T6AbqdSKR5mJWiTh(*3OS| zu0Ow1E{vOGfE?O|cyOEi?;zmmRH-^ierDI%|9?#sRj1|5t)%%`s_%3|CtC1otJPn(zUq~y#CG6tyq2b}-PqueiNT{l~xOn5|&!58x7ppKYfs?F0XKKhHZqNQx`^zvu zAD+Co7uej^R_X_bS0NCh3)^sVUk3}YzO_X*UWTlv|Z!>2Q*`{2LJ#7 From 31ef62c55e34dfdeed99f63d4480c49357f54fb5 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Wed, 2 Nov 2016 22:52:34 -0700 Subject: [PATCH 450/632] Update breaking changes and java requirements Fixes #6178 --- docs/static/breaking-changes.asciidoc | 7 +++++++ docs/static/getting-started-with-logstash.asciidoc | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index cea5b769557..4f7341e3b97 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -221,6 +221,13 @@ If you have manually specified `sincedb_path` as part of the configuration, this If you are moving from Logstash 2.x to Logstash 5.0, and you would like to use the existing SinceDB file, then it must be copied over to `path.data` manually to use the save state (or the path needs to be changed to point to it). +[float] +==== GeoIP Filter + +The GeoIP filter has been updated to use MaxMind's GeoIP2 database. Previous GeoIP version is now considered legacy +by MaxMind. As a result of this, `.dat` version files are no longer supported, and only `.mmdb` format is supported. +The new database will not include ASN data in the basic free database file. + [float] === Ruby Filter and Custom Plugin Developers diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index d20e40e577d..b2a0e3758cc 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -15,7 +15,7 @@ This section includes the following topics: [[installing-logstash]] === Installing Logstash -NOTE: Logstash requires Java 8 or later. Use the +NOTE: Logstash requires Java 8. Java 9 is not supported. Use the http://www.oracle.com/technetwork/java/javase/downloads/index.html[official Oracle distribution] or an open-source distribution such as http://openjdk.java.net/[OpenJDK]. From ad91ed970693205dc0b3fc328d0b1b46dbe2ca1d Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 3 Nov 2016 07:20:41 -0700 Subject: [PATCH 451/632] Add Kafka docs Fixes #6178 --- docs/static/breaking-changes.asciidoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 4f7341e3b97..761d79c4b67 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -202,6 +202,11 @@ bin/logstash-plugin install --version 4.0.1 logstash-output-kafka The version numbers were found by checking the compatibility matrix for the individual plugins. +Specifically, for the Kafka input plugin, configs have changed a lot. Configuration `topic_id` +is replaced by `topics`. `zk_connect` is replaced by `bootstrap_servers` which are Kafka brokers. `consumer_id` is +replaced by `client_id`. Also, offsets are now stored in Kafka topics instead of Zookeeper. See <> +for more information. + [float] ==== File Input From b566b0db55977c13cb52a316f5fec33c8ecb4b41 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 3 Nov 2016 22:33:39 -0400 Subject: [PATCH 452/632] Make sure we have we configure the `ssl_certificate_authorities` and set the verify mode to force_peer to make sure the input uses it. Fixes #6185 Fixes #6192 --- qa/integration/fixtures/beats_input_spec.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qa/integration/fixtures/beats_input_spec.yml b/qa/integration/fixtures/beats_input_spec.yml index 4c452f30647..9fc49dd3d5f 100644 --- a/qa/integration/fixtures/beats_input_spec.yml +++ b/qa/integration/fixtures/beats_input_spec.yml @@ -27,7 +27,8 @@ config: port => 5044 ssl_certificate => '<%=options[:ssl_certificate]%>' ssl_key => '<%=options[:ssl_key]%>' - ssl_verify_mode => "peer" + ssl_verify_mode => "force_peer" + ssl_certificate_authorities => '<%=options[:ssl_certificate]%>' } } output {} From cb8d80a46f7a845037f1095b0c973c593c11ba0a Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Wed, 2 Nov 2016 18:52:36 -0400 Subject: [PATCH 453/632] fix tagging edge cases add comment and use Arrays.asList() brain fart between camelCase and snake_case --- .../src/main/java/org/logstash/Event.java | 42 +++++++++++++---- .../src/test/java/org/logstash/EventTest.java | 25 +++++++++++ logstash-core/lib/logstash/filters/base.rb | 12 +++-- logstash-core/lib/logstash/util/decorators.rb | 17 ++++--- .../spec/logstash/filters/base_spec.rb | 45 +++++++++++++++++++ 5 files changed, 123 insertions(+), 18 deletions(-) diff --git a/logstash-core-event-java/src/main/java/org/logstash/Event.java b/logstash-core-event-java/src/main/java/org/logstash/Event.java index a0ad214daf5..fc6369f5033 100644 --- a/logstash-core-event-java/src/main/java/org/logstash/Event.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Event.java @@ -15,6 +15,7 @@ import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -76,9 +77,20 @@ public Event(Map data) this.metadata_accessors = new Accessors(this.metadata); this.cancelled = false; - this.timestamp = initTimestamp(data.get(TIMESTAMP)); + + Object providedTimestamp = data.get(TIMESTAMP); + // keep reference to the parsedTimestamp for tagging below + Timestamp parsedTimestamp = initTimestamp(providedTimestamp); + this.timestamp = (parsedTimestamp == null) ? Timestamp.now() : parsedTimestamp; + this.data.put(TIMESTAMP, this.timestamp); this.accessors = new Accessors(this.data); + + // the tag() method has to be called after the Accessors initialization + if (parsedTimestamp == null) { + tag(TIMESTAMP_FAILURE_TAG); + this.setField(TIMESTAMP_FAILURE_FIELD, providedTimestamp); + } } public Map getData() { @@ -338,22 +350,36 @@ private Timestamp initTimestamp(Object o) { logger.warn("Error parsing " + TIMESTAMP + " string value=" + o.toString()); } - tag(TIMESTAMP_FAILURE_TAG); - this.data.put(TIMESTAMP_FAILURE_FIELD, o); - - return Timestamp.now(); + return null; } public void tag(String tag) { - List tags = (List) this.data.get("tags"); - if (tags == null) { + List tags; + Object _tags = this.getField("tags"); + + // short circuit the null case where we know we won't need deduplication step below at the end + if (_tags == null) { + setField("tags", Arrays.asList(tag)); + return; + } + + // assign to tags var the proper List of either the existing _tags List or a new List containing whatever non-List item was in the tags field + if (_tags instanceof List) { + tags = (List) _tags; + } else { + // tags field has a value but not in a List, convert in into a List tags = new ArrayList<>(); - this.data.put("tags", tags); + tags.add(_tags); } + // now make sure the tags list does not already contain the tag + // TODO: we should eventually look into using alternate data structures to do more efficient dedup but that will require properly defining the tagging API too if (!tags.contains(tag)) { tags.add(tag); } + + // set that back as a proper BiValue + this.setField("tags", tags); } public byte[] serialize() throws IOException { diff --git a/logstash-core-event-java/src/test/java/org/logstash/EventTest.java b/logstash-core-event-java/src/test/java/org/logstash/EventTest.java index 08a330e2b00..93ae7267992 100644 --- a/logstash-core-event-java/src/test/java/org/logstash/EventTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/EventTest.java @@ -1,5 +1,6 @@ package org.logstash; +import org.junit.Assert; import org.junit.Test; import java.io.IOException; @@ -266,4 +267,28 @@ public void testFromJsonWithInvalidJsonArray2() throws Exception { public void testFromJsonWithPartialInvalidJsonArray() throws Exception { Event.fromJson("[{\"foo\":\"bar\"}, 1]"); } + + @Test + public void testTagOnEmptyTagsField() throws Exception { + Event e = new Event(); + e.tag("foo"); + + List tags = (List)e.getField("tags"); + assertEquals(tags.size(), 1); + assertEquals(tags.get(0), "foo"); + } + + @Test + public void testTagOnExistingTagsField() throws Exception { + Map data = new HashMap(); + data.put("tags", "foo"); + Event e = new Event(data); + e.tag("bar"); + + List tags = (List)e.getField("tags"); + assertEquals(tags.size(), 2); + assertEquals(tags.get(0), "foo"); + assertEquals(tags.get(1), "bar"); + } + } diff --git a/logstash-core/lib/logstash/filters/base.rb b/logstash-core/lib/logstash/filters/base.rb index 127f7c2630b..8b1ab5e07b4 100644 --- a/logstash-core/lib/logstash/filters/base.rb +++ b/logstash-core/lib/logstash/filters/base.rb @@ -195,14 +195,20 @@ def filter_matched(event) # note below that the tags array field needs to be updated then reassigned to the event. # this is important because a construct like event["tags"].delete(tag) will not work # in the current Java event implementation. see https://github.com/elastic/logstash/issues/4140 + + tags = event.get("tags") + return unless tags + + tags = Array(tags) @remove_tag.each do |tag| - tags = event.get("tags") - break if tags.nil? || tags.empty? + break if tags.empty? + tag = event.sprintf(tag) @logger.debug? and @logger.debug("filters/#{self.class.name}: removing tag", :tag => tag) tags.delete(tag) - event.set("tags", tags) end + + event.set("tags", tags) end # def filter_matched protected diff --git a/logstash-core/lib/logstash/util/decorators.rb b/logstash-core/lib/logstash/util/decorators.rb index a04c2d4bded..4f5c2910c7e 100644 --- a/logstash-core/lib/logstash/util/decorators.rb +++ b/logstash-core/lib/logstash/util/decorators.rb @@ -33,17 +33,20 @@ def add_fields(fields,event, pluginname) end # tags is an array of string. sprintf syntax can be used. - def add_tags(tags, event, pluginname) - tags.each do |tag| - tag = event.sprintf(tag) - self.logger.debug? and self.logger.debug("#{pluginname}: adding tag", "tag" => tag) + def add_tags(new_tags, event, pluginname) + tags = event.get("tags") + tags = tags.nil? ? [] : Array(tags) + + new_tags.each do |new_tag| + new_tag = event.sprintf(new_tag) + self.logger.debug? and self.logger.debug("#{pluginname}: adding tag", "tag" => new_tag) # note below that the tags array field needs to be updated then reassigned to the event. # this is important because a construct like event["tags"] << tag will not work # in the current Java event implementation. see https://github.com/elastic/logstash/issues/4140 - tags = event.get("tags") || [] - tags << tag - event.set("tags", tags) + tags << new_tag #unless tags.include?(new_tag) end + + event.set("tags", tags) end end # module LogStash::Util::Decorators diff --git a/logstash-core/spec/logstash/filters/base_spec.rb b/logstash-core/spec/logstash/filters/base_spec.rb index 26c5d6c5438..246c11a286e 100644 --- a/logstash-core/spec/logstash/filters/base_spec.rb +++ b/logstash-core/spec/logstash/filters/base_spec.rb @@ -98,6 +98,39 @@ def filter(event) end end + describe "tags parsing with one tag as string value" do + config <<-CONFIG + filter { + noop { + add_tag => ["bar"] + } + } + CONFIG + + sample("type" => "noop") do + insist { subject.get("tags") } == ["bar"] + end + + sample("type" => "noop", "tags" => "foo") do + insist { subject.get("tags") } == ["foo", "bar"] + end + end + + describe "tags parsing with duplicate tags" do + config <<-CONFIG + filter { + noop { + add_tag => ["foo"] + } + } + CONFIG + + sample("type" => "noop", "tags" => "foo") do + # this is completely weird but seems to be already expected in other specs + insist { subject.get("tags") } == ["foo", "foo"] + end + end + describe "tags parsing with multiple tags" do config <<-CONFIG filter { @@ -133,6 +166,18 @@ def filter(event) } CONFIG + sample("type" => "noop", "tags" => "foo") do + insist { subject.get("tags") } == ["foo"] + end + + sample("type" => "noop", "tags" => "t2") do + insist { subject.get("tags") } == [] + end + + sample("type" => "noop", "tags" => ["t2"]) do + insist { subject.get("tags") } == [] + end + sample("type" => "noop", "tags" => ["t4"]) do insist { subject.get("tags") } == ["t4"] end From f53583c4d8a7430d7f7b70c29891f2fa05a84e5f Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 3 Nov 2016 17:38:11 -0700 Subject: [PATCH 454/632] Update version info shown in doc for building LS plugins Fixes #6191 --- docs/static/contributing-to-logstash.asciidoc | 6 +++--- docs/static/include/pluginbody.asciidoc | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/static/contributing-to-logstash.asciidoc b/docs/static/contributing-to-logstash.asciidoc index 063be8244dc..5c72062018e 100644 --- a/docs/static/contributing-to-logstash.asciidoc +++ b/docs/static/contributing-to-logstash.asciidoc @@ -24,9 +24,9 @@ deploying your own plugins: * <> [float] -==== Plugin API Changes +==== Plugin Shutdown APIs -The 2.0 release of Logstash changes how input plugins shut down to increase shutdown reliability. There are three methods +Starting in Logstash 2.0, we changed how input plugins shut down to increase shutdown reliability. There are three methods for plugin shutdown: `stop`, `stop?`, and `close`. * Call the `stop` method from outside the plugin thread. This method signals the plugin to stop. @@ -37,7 +37,7 @@ exit. The `close` method is a a new name for the method known as `teardown` in p The `shutdown`, `finished`, `finished?`, `running?`, and `terminating?` methods are redundant and no longer present in the Plugin Base class. -Sample code for the new plugin shutdown APIs is https://github.com/logstash-plugins/logstash-input-example/blob/master/lib/logstash/inputs/example.rb[available]. +Sample code for the plugin shutdown APIs is https://github.com/logstash-plugins/logstash-input-example/blob/master/lib/logstash/inputs/example.rb[available]. [float] === Extending Logstash core diff --git a/docs/static/include/pluginbody.asciidoc b/docs/static/include/pluginbody.asciidoc index 5d4c40f77fe..4d9bfa9918e 100644 --- a/docs/static/include/pluginbody.asciidoc +++ b/docs/static/include/pluginbody.asciidoc @@ -852,7 +852,7 @@ Gem::Specification.new do |s| s.metadata = { "logstash_plugin" => "true", "logstash_group" => "{plugintype}" } # Gem dependencies - s.add_runtime_dependency 'logstash-core', '>= 1.4.0', '< 2.0.0' + s.add_runtime_dependency 'logstash-core', '>= 5.0.0', '< 6.0.0' s.add_development_dependency 'logstash-devutils' end ---------------------------------- @@ -910,12 +910,12 @@ Logstash plugins: [subs="attributes"] ---------------------------------- # Gem dependencies - s.add_runtime_dependency 'logstash-core', '>= 1.4.0', '< 2.0.0' + s.add_runtime_dependency 'logstash-core', '>= 5.0.0', '< 6.0.0' s.add_development_dependency 'logstash-devutils' ---------------------------------- This gemspec has a runtime dependency on the core Logstash gem and requires that -it have a version number greater than or equal to version 1.4.0 `'>= 1.4.0'`, -and less than version 2.0 `'< 2.0.0'`. +it have a version number greater than or equal to version 5.0.0 `'>= 5.0.0'`, +and less than version 6.0 `'< 6.0.0'`. ========================= @@ -933,7 +933,7 @@ added in the gemspec file in this manner: [subs="attributes"] ---------------------------------- # Jar dependencies - s.requirements << "jar 'org.elasticsearch:elasticsearch', '1.4.0'" + s.requirements << "jar 'org.elasticsearch:elasticsearch', '5.0.0'" s.add_runtime_dependency 'jar-dependencies' ---------------------------------- From f7658d9ba64c9b4822ec49a381ec8d895ec3ad08 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 4 Nov 2016 17:44:53 -0700 Subject: [PATCH 455/632] Fix issues from review Fixes #6191 --- docs/static/include/pluginbody.asciidoc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/static/include/pluginbody.asciidoc b/docs/static/include/pluginbody.asciidoc index 4d9bfa9918e..9fb0e5a4945 100644 --- a/docs/static/include/pluginbody.asciidoc +++ b/docs/static/include/pluginbody.asciidoc @@ -852,7 +852,7 @@ Gem::Specification.new do |s| s.metadata = { "logstash_plugin" => "true", "logstash_group" => "{plugintype}" } # Gem dependencies - s.add_runtime_dependency 'logstash-core', '>= 5.0.0', '< 6.0.0' + s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99" s.add_development_dependency 'logstash-devutils' end ---------------------------------- @@ -910,16 +910,15 @@ Logstash plugins: [subs="attributes"] ---------------------------------- # Gem dependencies - s.add_runtime_dependency 'logstash-core', '>= 5.0.0', '< 6.0.0' + s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99" s.add_development_dependency 'logstash-devutils' ---------------------------------- -This gemspec has a runtime dependency on the core Logstash gem and requires that -it have a version number greater than or equal to version 5.0.0 `'>= 5.0.0'`, -and less than version 6.0 `'< 6.0.0'`. +This gemspec has a runtime dependency on the logstash-core-plugin-api and requires that +it have a version number greater than or equal to version 1.60 and less than or equal to version 2.99. ========================= -IMPORTANT: All plugins have a runtime dependency on the `logstash` core gem, and +IMPORTANT: All plugins have a runtime dependency on the `logstash-core-plugin-api` gem, and a development dependency on `logstash-devutils`. ==== Jar dependencies From f249331a94e789164d22d5b533b9fed066bbac1e Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 3 Nov 2016 16:27:34 -0700 Subject: [PATCH 456/632] Update branding in LS overvie image Fixes #6190 --- docs/static/images/logstash.png | Bin 69409 -> 52106 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/static/images/logstash.png b/docs/static/images/logstash.png index fc0caca56fefd45984430f1bb55d78dd0b1dcf89..802f8426fb00db05df641179ad2d151afcd8aa8f 100644 GIT binary patch literal 52106 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 LC{Zb96!`xE7;UYG literal 69409 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

      R}$QVWIza==Wa^$&? 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

      {YAeJBW8gN zIGp~WRvwrCTYq*w*4sh^Tk>j|6TKDzI7Sc`7gu;7ji}Fcjc9n*K0$0JPd;bAzrcS^KBq4O%;7sGRX|W6PEmC-_$ofL_XXOJ z=4mv0&D@D|^!n}c`wx~g3GEV37ML)cENy13EKhTKMcP;RO%%`odV%Lr4m5yGdY!ne zLtC0oi+hCjsgpoEh!HeejbgXP2202Cz?~11_#KmX(bu{Z6CFMKTT7R^fzYx%(v9u^ ze^Q)NdE)Y}u8n_#ZqLto#y`*s<<}{>_cbp7C7>^Y8!5`ex)csRoJ0t-rE|>|N!p9# zOWoe{hD0cTgzLRnzESp&9y>aLaMInhse5&SH%L8L*q|v#Q4x9jt?Vbs)~MBTz{&aSHrD2kl2%cz6L>5cM*P*OR^Ij3P|k`GVL!Z=!sghpAJK?UG$rO9U%Vud4txZ2{)S6-Co!ldQQYhQ>V~&_Q`~^xHE$It&Rkqvn5%{2JJ42u zE5`8G_8cTSey^ls@hxA&tXAEVRjh|?n{1aIJ@#buvV}b^V@rZNH#OE!IPcf5FL|w} zXiwWZw#5{w%WKLT3rw`aGm$OZSF6UIH83h=M`t#VtdeV$lVf2(+u4O8%6&@>eJ5)o zBlwE88L7WHwMsS^T#%3{%)&}gsHhVI6uROk=4D;=b)_lbtC-O2a<=6elavnphK&AK z${vlVE&1_$6MkOq3(?=7f^es+cQ5j^k_>dY zr@2-F&crA!iEXltN{XM2hj?Doa=q*Pl!8ej)4cgkX_Oru(MbHQkHgwmFPz)64U*&9 z>!*^j^od&E`*B+pvK5@ToSo0Zz?dWhfvduk3il`Pbx%uTRHav$+t2}8Q1lorsLqEX z>i1IHUAlrcJv?+~>Xg`t(o15WWo>hMK3=3EZC|G9FxYA=v>Y$; z*Y(&x__Y5N#HGps#uY$I`<$AYj|Hz1yIYJ+C`W+=OyH%NtZZfaiqt5)R<+B}pI$3+ zN4NI72QC2IRIDX!Fh6;-FavhdE0~FO;_&jNTYt5kKzn>#k|qVBvDI`amnrab7g<>o zV20tj=TQ_GPc*GSIS0%Tj;iC!KDqcc3=HrJU((P{ z33+~M74Q=J8Q<`_`E$Vpn?pTI6*LXD=RF?ulGk+w7hkyg{PME?@YR(-GJ!ZL;ge1= zh7z8v%ptu3LAwsn*-Be*yY4Gr9EmI|*+opKgR3b6&#I(Zte8#=RiJZzzVi3lnE3sB zJnen*@9-=C+$)tv5fPEEB0saIe4&x5QLyqQl7n_vH5Rqp;$Oq+(|N;jGc)4xthDD5 zk;If@uAe}{ky4bpw1|t9#N?(dslUkkz8_zON4oV=h9E0WmQbsnTCkOR3alw$!h`8O zODPDlpA`4@`;~f%o-`3>IuwHruq<=F6I${oLQ8pU;iag8HGo!XcqBM@?E-j^G+|J$ z{cNl2lh45WI(XD~B0e72$dYk|SnYMRQzfPi`dA<=kT=+&yUr&JgSNq97^I}AxK))a z%PPn{ll80e{e-Ya_7Ad3-D+p47U^}L7PJEObrUt~$=ssZsH>aB!&&#sIaXvwwI~I6 z+HIWOGi2Og@FxY!*Cb-fk-fx!uzaRz=|Q8fVtUP1(qai$8Y&}0#=Q!QU`lT6x{#|X zIUyRC-e2!m^opH?u1JeN{)khL+Y^J6IS;t?7E)*<6|G9Re^sTX0u9m^V5~xslA*(b zb|4VKfq05JYz;dmBclu5SZ=+MA-%Q>RrX-C$>t(3;;D6mJ_iaa3ToSrgSgU(Xd8s)Ww#uWGTO%_cXe1z#+T ziS}QwqeoCremkHnhFn*@%h*Z)dSNG4Cy7rCsXWXO2=i&ZZ5DCMZc>|Qn{8FV#ow>E z-j=;GXmRD2M53p|r#$bl!>riHsgPW(%e{&^)^!SylyolFtn1Z8A&wr}Oi*H_Ks*kgH6?h+{1t=;@-e&qb<8qK zkc?*`9zNr_dYoPlMqI$(k0IEQ-itvyh;CWS^mLm;3Ici{X2LiBhgQ<}UPi%@J3Aba zOD*;!{2x|FFi4AuxDB#>WaU?aLYq(PJd3{YmI}?M+8&+XY-dj!{h-Dj3I5UZH6jS1(4^VhArT0N@Bi*fOAr?(g(<9y=jys|4x zs1NjP2}aKK$dQ+wVRPkfq$NR!%iV?D@KZH83QsHQG(OiYQD+nBf*zJ*5u|SPkNq`@=C&n)N>cuOQweY5sXNw=qE|GYj*k0)s3R>-h)iW18`M!QoUf zn<`^zm60gz+c7-?4Z*+NmjXgjuL+C$JpMC_lg;z|pP^{@5ELBN z%Xj`fUkivJBd3xC51)=g21sbQnta|sy)Yu%ef0<-BwU3!*gPBbvgK>+4mCk^E}Ifj zr&Ow2iHQOaPJa&=UcH63ddyFT|2>MvCR}WYf^ZjYTh4ThWIOJt5Ym=y(xOfXam56v zV7<%2rIMR9Cki?+{316rS421C0ThXM5^hwG|FI*Ja&ZV9q{PPBbF)MVYfWXR#&HfZ zQ);dbP6(T;i!E33;?)wpB$u6tzWIvGn!e8LM?&tO{(r_mSpEYBhhBYuSb_<$_#5## zFb)epmjUv0Hd*eJ>K4x>^_R^19BOm$lRmQhX`5=zqClflvB@fY8jgMESbA!~KgxXD zoK-+9&gc5KA~pqoac}SI!j&Y?m#u*aeJg3op%0NoftlfBW&(p-1I+^h|Ts@l=| zLmdLH)5C0WZ?xiwvE4bD6g(C1Hxo7~AtPH(adxZ;xqOvn2>hQXY)>l5uK$$2%;2oF zO~;+7-kbfIBVgNk8tZv@v&`s^Z(ov2W7S$*g@o%pv2}+FQel z|07X0Q*031|dfP=D3Xk{}%VXk8OtgAT5RVLFfByiOgFYsTklo5_BktwI)JtG+O8iMe z`r!@tq=Q5RZK!bAWm*SDG-?O2OYZ|+pV>OxejhyY-c2w3G!JV5sK(cg>*;cg8x-B! zvvI@3nZ^65&;(RMJ#hgIl@(;vV>VUiX-f?&SeF#RH2+m8=C02FV^zEOe>MT&X!8bA zN>|!BzBePf2}877VVllZY+bw;if>n7;8*k7Skfj^7(qv8n)@udG# zJAo&=sa}Wc_nz{wkCv1XrP{2}yV7c{=a#^sXy@IXMk+Hn@ zM6h`{GRle&Idz#@hty~qxt)w)=?u}~V}lX3hXcL;u;DTJZ&@-pf=B=F|IS&TLqrNf z9S0Zs$@=hU=-2haUprk8Ge+dr=8e52CP*RmXM=2yrF98g>KX`iMZ!@(9$v3f-tFA? zy5N4Z?yIfL#yxYnEfIKfrCjuAaJ`^#qMCg(NKFQ|_1#p^npqW5;~J$C9x8WJ!D&a* zh>6WZ7~%AE@22F_()w{t!H9fiHo$If_1OUKQ@_p0Q#(o$_sj09MJ6%(u1*xEzqw5$ zmgnEOH2(K+6HL*KI?l_s`NSM&!>k+NA*QLmS1-DI=#amE?_uj*zK46US%v4qchJ{H zU9N8-sjgCgg1f|LHmTJqLJ*DPIWXif64?hfnm0F9eBYvjW-SIj*kQ@tVikGmP8L5s z+*)IjPRkxGHCWKco&ghguYaJjmpgq06HK?DY2@;**85la;h6GzbV_&eHZYg0bsXX? zGDhY8IU+yr@NGQz|Ng(WXYP%suz3Likx&YkMF*ag2@bzqsKJ~@MGai8w<2Hb@#0?W zD^OdrKG>@<)Fr5Nf}>4J=G2Td30RjyE}L8SC7#_luAg$d5>dZXDn>kAKhJ4qE#_EGVlq8r~`&3VV#s)E! z$O10D&w=znKpq(s>56qksC3r-YM3unia$aM2mc1_d@+&6dHqMwWOhpYg~RdT*MTOx zO%RpneVOZvddgBq=57<&9P1!66=oB7hZ1v6`d~izgF*TM-Xa4=UQ6IGIN?U;|Mq}| zj|B=Pa<-|#0qF~=E4Q2!^tkT2UUF(Jac%~AG)=|>D4HC56nX8QDOCD(H+%Xm z`W0UFKGS;-f=m(GH!GWPq#q}co%JC+{rC=~v3wN;Co(Kx$na7w-&Bc&@=x)2sxlhS z-}!pN&26^U4+(WRU31&AnS9=_pW5BZkjZ(5;p*X?|K4PA+ej>ur`^)ksv1;5YNBmR<+k$azkGO|ij$8`(vs4Sr`{jX?gS?e$)NZBU7B zd8AWXA1@-ACC6C(I1wjD_?zq^yqpi_9zALB!2WUiq3{h&Kzp##{hg(_Y{h#;XoD-V zhCj?ov zpFZ8nN**UN$bVvpNp(HQRWoZS3r5sE{blkh4l+)?_T{vA$#YARZ6>8c`$wAsUU~t% zc5y>v?%~e$wy1c3;tY3sQ+D$Dj?EuCk?@WV3{WElo*mM)mfwenud0cOVz`Cb1 zZxUMlpI)uKUbM>ZeSo?G&dgI)VsPo=7xqS-_3=ExG_Awws)768b4lUCcgYbT8i9Eg z$~Owf8<`e=?yycMKYTf%J*J2$mkw$B8s^NF>y7>V7H4o_Ff>uC7MrG>Z^^D_9X?#(i@zs3 z;$L=yNwDvEJq=RML5b=DIEJvR{lf+f&CWB-BiZFH*a8OSa{S{>iITA5u;& z+;pWgCm#ILv`@&ZIwN+yB1XPY);<3a%*Q_WQNdXv_!c7v{^LU{$3z>S@Cln(z-`KR zWI)pKE_}`XP15#jmG)8Vi+sffx#4}mr2Fk}zkmUNq~XwY6hhY*<;%Q38o9qcwYf=*GMnO&)i#&yqb zgm1gwysgoVHFlhjVpgS;|LS>yUv*x4u->KO^U!jkyANv$d!Dm7{5#-noGb0Dzh!#V zOe#P^Va3nylR(y8`%bv(0XiKp=XkG+XM%x_T|zG#tzY8a)nFBCOS;Z9%Xgy95h^d zJa_R0h#LTVO=Ag`0Y;+_34G5kWNbr6NAJJCIZ*~4#JY^6Jbk!5o57)pZ*vJ~c#Y#s z`eY|GQ!tE1nees8PZy!2WZmWb&8_UoKrDrzO!V8G+al*TUt6f;Y12Bk1`Im*~cr@&9K9HX5ZGkc;D?|a=3(yc9qj09J;&;ngxX8lXm z1s_Krd=6obV56rwAA9Fq{tpnA`ZoeCaZlln@A_?a~T(-IAUQUFTy(g!3*}djM z?`S(3qG5p*$rh&d@R2zMDc-hJJ$(Q%MLb3zAr%sO?`3{41Wy(#2(ey z1|M~e{U9AyWi$7{93f&0w&}HNoo7Tn037!=ndp1BmM43Uo%H6nJlI;_#ajI{J#RV) z?!hj|8lhv-PJ#ykz3Txl_Tx#*;-E9PIy|brN*1jqH(VJ7`@#$-;_n6Fm;*zTIm(^Z z*F^GnS2$@)Z^U60drZrvtnh@45L2J#A{~a|P18UV_dO$9u_Yx{{^OJNdDbM5<2PIqFwO;;;!w^#^h*9X*1=|QCY=$L=^cO! z9p)zEN=geOuOLTIbB@BU@u&_LVpp?};r2f+-sWk4cu*3UqA7#ySIHgXSWsA_pkj#` zenE7e&I-(LK~}^o6-Kza+RUD&C*J>izZx8lJR<(w9vU(l2Ehg~DW^A*C8Xz;1`WiJ zX6ZEc<%FD++Bq1{$`@CQmP-*P0?d{=?h(!<2I+@FoWsB?)ZYKr`WU_Oo0R^HlJ;W3 z&}rs;YXBQw%9p~mOB9}Rk3|kPHgz{!&qYUn8Kfq86IEQonM=$b-njey!3WI)d(G}( z&fxDXBQnM{16(3K!Y0T$V+#o~9)n48mM(0`_T$|z9=ZmhweBy~J^dM96fK5hnKt^n z)qQ_dGu%TH;5&4~qv-@Y>sI%+#i7O8$;(Rz&gMm9N%w&3w8ilfJ%-Iw0PPuXtGUawZ z6|o#cj-rSuwo$5cZicUm^BM34&}XUrFSBJD0B?CBh1jWiI6w5R!#xgPSg*}H9*zqV z=uyUE>l9a|l0HT4x7oWjt1iy}_#ho^32dS9kH60@@fzg|x{)nUMC~^oLw(ouRChO+ zwLACE=XYT-;@g+laT`|b0Wm$LBV-V`mZr<2v8ee!7V@6^&gDz~N?mSQ&$p*KSdM;8yBqGRf);b_~b{N_k#zC;LVXt4h3yfVZNo{ajpUgS~_elfm|K|dm z9aaR!Bp|)PF+3w=px2|c4ilOD*DFpv9dD2(s6wOzKfG9n+X^>0gp|){m)K@{)AOQK z4>fZg^SzI^ucU+c=M^`)+0Z9C}yV$tk7oL)FBT)JivK76t? zk_TP5Dyn#Oa}3)29q&Q_IjC8x!lsJG&6!>YMRYx3mNv6NE+g~bTdjK>?|(cwVj@qT z*4cl;DK5bHUBCl%vb!l2EX4H7gzb){V;h3qQi4+n*1UhA0?@QncW?K_n;4Q2`;WM6 zxKywkmXV{F!;27H|0rEe@3j8y%R-%rI`FE^olm!1a#6|b<2G-=T!}%x<=5-2JdB}YZn2ZTKd#l}ZQYs#O3c*se^@U&Aci+*M%606 zhR!&?*ysd58|vVs&ytsZ`?m`tBU@o{!|8nFh-(u=A4bTks8Fu>`+qrA>WXmS^Bc~0 z?HV#f+rNH=g(5)on{5(p9x^gAY!rn$_UXE=PJ$6Tk%rp%WvT94xY#K@AR9I=nN%M~ zD$M4o6Hy3dxM_%Yrw{c)2UJ2Uew-qpQkrnH1@Ff=k*L)1jrdUU%6sM;3a-s|-YiVK zCx5i#^w;+l(olIpnLg;cK@?f%N(hVqzN6jB(~T(sKAS!|2YK6gq=>nb`1Aeo{|;M9 z#Ot&f0tWhhh?uopv{YxkXP8EkchD#|KNe0Fxa7e2O0CP`P*r5&9JB?d3JN^@#qF-7 z$krsSd;~=3#t}d^tjBD8<$Y#9a3AtR;*{j}`MbSHTeK!c?F-$|YK+92f_*%SVil4&@h><>=yU1E6nwzQpxkL*Kv;A z$hQh1p;ni2Q{l@}kt1s~SwGsOxKdyQHzbJ`8VYHC%34W8d2@y}bZ2tXkA-p@66$hW zI&bA%k4oZih&(g)=ds!z*H|}BG>`=cXmSFTNV~ zn#pWPr36@$$%Ebez2I9fKw)7GGqSTb{I)R8<==ac%N^pRYB2{3qeQCZdoQN)}B7 zmECsxcT|3Lj9_=tQc{WnyY7Jz+3Qlg@1d;)TXx4o3xQKVHoOHOv`5ZKP(QDoLhh~hz@D`bAKyf ze9iWeW1t>l%DwCO5n>2j=J`k8>5xnu_pC<2FZX}8H0jr>RQ<&heM(Sq8SWR#xW%Dr zs5c*qdZzM7f!Y$0@_zHzqHJO6PP=HiME1RfPQ1ofP)A}xB*o-6 zq=>uEi9dmm*|22}3K4bgJ#VvBYxYI{#HT5tV03JXh>HVg>AMts{%(D+(c81q{AUi6= z-4P!Q9o^GaMO)r0bf&8FemAAD)_=ec!11uz9`CglJMK{)mu(qg|9id{$tKsgx7xgo z*r3}p%M!ZvuMK1D`N04H18D4qYWF|eEJgllOs0f9X{J}uq` zKnIQ5t8BeyT3LSytq4;yY2k=S#W^_iV!9UJ0<5mbY#RQWq9Cant+{+%+p(DNLzk_e zQLlGUAhc`fbpzCpULkp<1m0n3J@7X*U(JZ$(2aD&p}V*fTb~Jn!av7c3o#W6tb%nP zC-|el13;6#M=<;ipyFQAyk?);iMzul>$x>^HvMOK9B0~>B?O>8_@E$n%Hy{;;3@?q zI0Vp3uNqxp5L623h!76#gyLR1i{$Ze_rCN&<2**ExD`XfUC$K$Q0*$2-VF=u6a}>y zC};lxhyyB7g+IBPKT|C;>3ExrYP`#8bgV+}s~42`fpBHbtUZ1`={wQR=KhlFH7B@~ zH3sPDx&f>w$I|Zhr+V%sk~h6{9xLKxl>c&U;;{$!{XI(`>+NLVj*ODi>`?Lx6nv6$ zej?kL2&;ShnMatCPm4u0Keh?E{%bDQjzmpe#A3jh@Mtk1b*G>-h7hG%!;1`F%M2E}s&g5vQlgPY1*bi;^W7;r1hbVK^UDh$Bsq4g9*sjH&4}tBp3w;voe6p)21d zon=V5Z^00JCRtmUT8 zpm%E_djdGEf6nPGobLE*-orK9DN^A<82Y^Mv$GBm7IOzUZu@?bkV6`P*@|4Mh~@ly z0&m`C9*Jv49qDjMwy+Vmy;@yt_hhwWii$zBRVXtZ>WFU+K?_23eRKnwpZ3^L54As@ zh9Md`-9~{GSa$i_{JXKRb&U}xy@D>qAWA0vPfIv6VMLXVdJ0!ksNlOy6N*al1jm=w z#jd^k$KOp;9MeI02Gx(#^E)EfTJdcame(j9+%4rFu z<^Q*v`Ij_zXEcz{p)eRtPNr`?>RUFlnQLv4%!Kr8nbPd+Tcvhn((B)0EXtY@D9`4! zYYIbmD3GPBqwKs*+GBh`)5F(pgvX0C9l0gc2rm!emHh?gLgg`yL)`mtAiCFeIHfhJ zN*(vzTnN??Em&>ZmngdKjy_@35$d?A)Pw_C3_Qm$Re0!lv)1Dl!j1I5!M$|8i!vnC zSP8!nt(-vvCt`L5RXb+Js>N&~sRISm=SF82pFRh@K51n$pOe~)iO5d(Tg5JW)b}Do zlo{ozw1NP7S9~*M%cWZ&EQJqC-jqNqq zTYyXaT#DNjqu-6V2fTfu^wn3eWFF>*oL-D9Bbluhj(B3MBi3? z%#{iS23a(8#-|hV6Luulep-w?mHjE&>i5RVY(yBDFtF$t#*Y0|p`8pzzFLt@Dg(Sw zSiaSvp%CZJQOvp3T^v^`(0)+QSLrK+w>IP3&8_#Rczpb;-%OJ}%JSn{o=(RMeH&1D zVYRl==o8m$L?kLAdiX5bjr-r1rfeea_eOK^$EQ%XJ~O#&hcO*E#8bo4rscS6@||6A zy)Kz=A?yO#!oO7fFKX?1B)b!@JJ{W`+rRJS! zEl--pBZiN&Q+!xY-k8iT?Dsb=&~nK+JfryGmso!ZqMXbXRUS*{E(4UgSpxMpk~pH* zxKBMVw=Y;HTM;y+WqARa06ssgX(yO~<88qJw33xDzef|c|OWIp{(}av#9alu^ zmH3@Z9<@j<_EEO4kwqeOIf09RO;Xa!v$xNtJ)+H#GTD*zA#F zBU2c%TXMs97Plzfn+6<+yTp9GK3LBqM;)iu>la{~_B@}_y{C^45j6EOyIc>UWN=*6X@38pqkPwCkKon4&$Py&Mb=jY!dT!R|5Imd`eQ`qr zjr1*2G=|TS89-v=6h~&Av^S<03M8RLnI(fCKF>Rn^P!fHo(|gIQFFQCqD$Jru1U4+ z4Z9W^Ba4A0n!b0>b{h`Z#>^dp&BSKe0*XMrNno32yJ#t{j|peit;HzI*@{GHb1(eb zU5Hr+2_-HSDZd?|=;a85PzW*uyLKrSu&Q|YkRjJlN0XidTuL4qiK#DPvm7jh3~Qy9 zM&j|vC?_0|ivF%*4L&6q8aceq8MsuXS*InpZveUyq-Q`?A7ib%+TkC|{gGI?D64I@ z+$ws}m5P#0;GNB%Z)C&aJ0g6mqGG^l*}U=!q2p6vFC>jlwQz3tz2#E<@|tNeND_xu z7tq`CD5FymOIE)z-aj1Av&Lv+6Y?tM!M`yz9=K9ZyTq_b2)~l`msIP6?=5!BixMKr zXv2L`!u7B@;Eo!|^Z!;1hNbD&`JmesNDv=!bqZkO&K7ABcJ zjYnJYx)2mw=k;{oTcc ztbXlS-19$IKRDv!Q>YU3CN+`30@d0-Ki+vp=V)$B=Sw28*Gn|hGBJe-I4tiFe+27R zllnhi3_r3q>eq%yE4{ACdajmso<5!nz5epOMai3qPr?2wyGP;cCc?$XM%x`@6#&|Xe9+v$*i$OZ_4Jr1{%KbVmGG+S&eROKx=5+on zMd!Zr*=U(JZ;_b^RcGL0rw9zt$&FA@T8zF;vL;}G)G%H?0X4u_Id_52S9v@}264U@GZ%A*eENa$V#~oOzrKg~%NOgSA>Nb{b91 z3by?+HbJ4Dj^F!>(Y{^@6rZeg>Ojyqh?P%s9*hxsCa`ude|HgOvlkP`H|3GPCNzW?!iLW-q+vEv=*lAQ-qm{&f*{KS(%8 zU`+k;MbT|<9Pjq*XA_J3Ohj=p<1?QDM_J#NfJ4S@p%~;EvjtLui7KaGGJI`Iwlfd7 zNfNshd|SOq2}F9hx^7aimGsW8kXQ|z(gVrp(wybECXpP)M8!w950;(hi(=hN1{|?m zMqN29(+Q9*Orz&_Y zVnBL@`M?%l)QIcx7c*va`ErMTG*%G`IGs}Po28jwIs0Nzdb&g}(3QGBW^;Q2et}__ zYhRd;!{qDAp7*Uuj}qQSfRw|HpS;PtX6+*H7wVD|UoPuESZy~els8o-fi9Rl3L>tj zd?qSbp#MkII|b$yZEd5m?W8dp+qP}neq)!wXRM_yCwSCMO_59kz&L>U1lyGM6f{{F4b#C_m!*K+1pEwsLSmX z!T7A!Af>ioaHyD%YIzx8p91ne=j1M?G!n=rv3STAPUf+8f-qm}TeV|Fh>HaD% zE^Z6>Gw*<_OAR3Uj*UN_Gvv3gf<7LDS_57@-z{_*_`8BWhyy<6@C>8W^I*chj3A~I z_q2y4voAmM3g-|&sE1QUpJ?4H==lD*PF^$uhx-}Ek{#U}sATRmGBLqvX<;#Yyijor z2vFSj$I$1pH*-=y&0Y-!Z8b*FkJzq2!qiF9wV$q8?p>bwRk=UDy1v{aQIGCTZl1WT zIBmJ|v&i_h8cR>?|3O4T(aYoWh>5|XHQOs(sZht=Nq~OF5npa50^=Y!qi{DT^3}7Mjr7QvjI`Q{57MQU zk_3f7*ML6nWhAHk+!Yg9*SSu=FMT?*t5!W+Qsf@B(tOwB7ViDmfag1O#87IbT<^lc zon6aQALQdlHrs*0O{I`9j#5_3wJ*Q$Jk8e1FQ)~0xmZ^Qz&(YY=srYQcq+B2E@RWH z^+pBQ*piuy`*P2z0n21v(Za`1_8Fa!VZbp>%fzJA3fgS5&sbiw zGlt8>BIBb2Cw%T9)Yv{DxT{q!0h^>evSr;d;{1hDfEqc?s3O#{R6XM|T9NWZZry2k z^Km;kEDgnigvTP{Q0BPtElEvXy(MkvtZqAz#fhS;iGZj6P2_w0-pEFd50}9xf?>vph_JN z80D?L9n6ct?|HVZoH@caOX4TQk*SU*yXPAj^ZM?)gdoH*06-c!tO#?6R(e}qPP$)C zrkt8uC86i%z8$vCL26DU?5mgwf_AJvIX%6;Ptual7*-+-Bu+6xXCHx_#`_E%;^Mx( zT`U$9GCH$E!-b+@M>)=Y=#ira{ehc%Mw7|hL7s>l3<0Os>ylZYR$QTw^-cq}sa?zL zEPh6IxDnx%8p{0f0Tlen7VK;iy&=nF1)TQj`pRH4x4-=^zi8F-1RhT39Z%=+dls1k zW7IXeJsqR2f^FbqN9I@N1W8UqA-nEK*Jiu=g8KMwIXQ(_+^@NO_;XLQvl(k6*I2dN z-}KV3(Q!Hx+bw1tC3_%6xA z`*qpLUcabs9IPi-tlLzlILC~o{x;&ieCioI% z)NhnmE8-l&5zuk#S-5Rn)*F;oZv|XvfzW6by8BDwaEbb(Y-5zuv}aWW$|+DYEkI-Q zG1&C(dDlhaQGet{!-u0#V`)Nsr^5ty1VX%6lmM_H1Hw4(NYieaJN{ScbSJ%T|$T1kcm8 zjWU8>uVEPtyB6&ZvZq>*ZZr0^vY)-~h1N!=@&)z%f8-aZ_bzuKA>%UH#ui?xCdW$7 zUa+{Eshy6NMBQQ$Dj9T*eaPSwDy+3T=7>kV_J6!N=X)@%b$QUo5%H&=EZ5P;ROE2l z|8e)z3PzdF(P2n$o6dig^oke%co-y?tmvX!`tjq5yJA{{ee3cog@Iy7$qdz|) zmtxzEcX(_LcQxnVV!DgX(K6BZ`P%F2pDfqK1u(tv9He1W8}J>^gFdyV{d^n` zpv!X3c#JL3Oh|g!{gpPP(67zme9eC`e0lRLZA$-s=37ItkFkK%?}YVMt#SWapckyJ zaN2A}Loy&r0A{wDNCO^}vvODNmxXWSV`zuyxGI2(aVANS>r+b|0(rL_8K5LO{Hs&n zf%s);y5Sa?z~Zs&lULox@+}0xD`wY?uqq5}N+OI#m%DA$wD;Td{q3EEx|&+0_w_E& ze67g$jS;rhia)4RSBp!1eRRo@9nZ^w(#dt+$+e%iYSnL}aMBgku4~tKENdZB-T2|N zB2=C{;ggZjmbn_zz>o*Jcbu2a=#Zs0+)LHgau(;*?{wB#o^jnmDALtGp53#)_On?& z*IJ*g4QMS7_}UVA*VxYdcVX<}z{b}AM+EHk9|z97Re!a1>I&4UNT^0QwjlR{XKVj< z>*?I+xoEKrFHIAS`*ON^SmbjQXflt z(AN5jRMux^nDu8#7t)+IyG9DQ=+|!^Xsfy!Xy4+oc}VZew8}7+>Cfn34fq~3HEIrU z4h_uBMmEnH^|h9!*6HXDfB#14j)Saksl&7TV1?ea)A)`QB|@-5|C8<+w0)@jl#rfg zKQCshrj|_eRVs?g0UQo^t(dEbcA0-4)|~~PJ>Fbio0)k0-`-er0)#t3YZQf|*?QLX zMt?Y{w0?&SPo&Z3x&D~rBx7C#tV|A&VQcNqhs)u$XVL^c0dm!Ir)pkmcGq7EK)XAM z)g7Rrnha(o#R57;y?`Gb$mQAusXnBHZq{c_t})|vC)OL?{Aku-2jl84oOQ%<8&@aw!548$dl!S z=J}d{QZ^BDYui$6Sj5w7Fq4qX2eptqm_!~#Y?zTB)a-u2x0hW<{~}cGIbFt1Y`3Nb z*Y0G+Xo1wom8bP6iDsdYlMJUv3s_Bz3Ftv;^!UdUNe01;3lr ztZBdD?X>1-1EBestX%W%#!8y#B@)*1t==ePlxyRxQoe#Po`aY~i)(WK5}hDQa03ZU z>&2%1w@q3}Xr*;Rz57u|0EB}sgI6H)goff1(XalXAaEoWd=D7~1uQKUcPha+z03FM zlEIyA#nV+r*mu62WhQx&*Pm`pI(*yPKUFww*{yz#rKQ-dHkauafk&DHIJUY_L6#FD z3iYs`2Ejo!2$25JGEWs;mjL_>`4E^*;zKqB-a_g+dR8OPsioq2WAk$VFCw`#!-A9b1QtcnMUrr&A`&b;z*gdpM}go0RmZ7W^=SkPsIsbhCsr0 z5fPp&)r=N!O&+ARg>q0WJ=|}W%otrt#o1@zOb6WGP)WQE*$)>hc%YUPOOygtO*v-2 z#>$qx)@Fn_vC7XMq8Za2^c~PSdDkXs>ckkNisu`roB1C4i60bJ^mYeF>uVHRFKfS@ zo_ig#q#ckR_1~QO7#Y4{2^v4T5C~gAIRce`;K!SnoMx`CPo8~u#KE02Y*NR!Od;qW zJ{GG8QyPiIP@n-X(msk!A0nTa9%urSEn}Cd!I^J<84tNUa(U@f&ES#AO?gK{_xAop zEoWh22?+`EC_W}8qyhI!+D`mM1wrpw#6J7z9bu4vl=dUMPiU28@Aqk|^gx-yee8mo zWmq0|7&4Pn119(|6?o*R7=(OWH@Hb*DkDkLY@IPi3WpD7T`%eCb-BX|O5gHt9cRco zJiEd?a_#F%NJ{r!?VT|@PI>mE66V}CZr35+Vt6)Sp2r>0s~@~2eY=zxfqOr8ov=^6 zLP>42qI$ObvTyRk60s3L4+=m7vV$QTYtgjkHx!CY)kJ-~p@8z`YhzkI9(%Bre_uWm z8%JXL+4}n){`fgb;;E7>YM8$#qZcXl>z`1myTG>G$d}J%&KrYK=zNYR$EE9M`qN z9#o4vHF{jL4y6`AVpRwhwyu7kiHM-MOsI4152_m4W&O3w`fal{$g~BUb<2vaKN&Tr zoywoF|7Ehy^($K$F-~N`L4ajy0lftD+-oQMccg;clYG~&%0lmn`PG_=yn*O^?}w`I z%=!ZnT8Ch8(Su|`bu%G(T8F)Fi%5E}w|g;~C0;>}(*4H2$8Z@Y-?mknEyf*q{~Ya| z$$_)Ek_tZ`QOu>mj8u$;OZSHnb+2xk={BF!hZLxF4z zx;5(g4lZ;oqo6ajmv%Hxou*!@rjA%YNA*UJlX3F{N-R(fn?Sij6+?w#Z<>~#%hhCM zUIQ`gnhj9kw>>J0&yr6nK!P{k`vm{A_#M zM6bh%sP}$ZzY_-KXg(Epx2i&bYDvGmbeCi@#F73i6mqRWsspK60_Ci{Uq@^4Ud>$L zm=!c}aKh^}jPT7D@ldb6G{+OA!#YO3`JJp`&K7BU;eeWH)S~ITv z;Bb6(4+D$L<$3geEtAi%Ia!p&!Y7uYig{A2+7;Tr)K2{!^kE1S1uFyn)bfA>;_;)d zK^JvBvF)BMY^UnZFTGTrDo#bppBb2d;aRNJWnZ6uN+c8iKG3e1!*wi#?>GY?T7JLe_DYq!r8?94ahJ1f? z<9iyG=(;_ZHm{c-Lp*NIb*py!G}K%c}2Qr9?CwaXq}u zZQ0I;H)(X5L1ELMh>yg`&`WUUSITia|K4Xt#R(G^nsWJjeFsr7C~D7;F26ksESZq^ zD4HgfPE)SK>szmr?8oy;ziSzC4aXvJqt2?KCZ{9f@6^RfYt(tbx?? zfH2KxBFEa?VYwlWjx<+L&NC|u&+dP$jQ>zv-PgWtasLhukvy`N0b=;9Br;<3ew)vQfo_i_B`&9m+t-M zezc_2JHpCr(YVC(IK;}G<(?ahJGItdd2%hO`GW6wuIou`{^m`BaK|iqUr-}X5s6yv z^*b=-;e3^%7?QTbIaZIIqjTUA_Tjwbaiv#2g<82dU$9HPOfG4{T%OlIKBh?0c04mO z)irj3_}}uNQC1^hel78jK8aiNqN3m(?J`*h{OY$KDJi?o?wae8DF3{i8XQlU9-RUq$ ztsJ0t{PAr>*Lk5lZmDUB6REN+SbZ75;s#NXv$HDirMkRYqPfYw>`xHA{P(u>Hr@f= zK7c3d~Qm!r>H6k>}v&0FoQK-{- zuAg`ey4_-g-P3Qk!P@MWCKyp(gg>5?v$-6zHG3iXm4Uh~>ROnzXO`kSdmT-QMh%=0 zbBL~n=%hEK&F!c+o9|h9x99J2-^Bi`?=()1KK~`Sygc&05qjF-ssA?R@BeBf^V^u_ zl+{(3Wa$<*l~xSUcEi~Wye71{tpTbCgm9+v&1-LvOn(Mv)WO}oAuj|V6So9;U-mw3 zoP5h*)Yod&lcY|dkdD`h`P27z7cr?G3k@x?X1mer(&+zQcXqmOicsc#C^X@ZdxWy) zK-9xugUq#Z9w8<5-M&UTZOW$R(nOEA(?96C=T5p3R(F_6TauY_Ew*aw5+-yzT-pO# z9ykT!8}6(9$yXn#v~_m#kIjO?zw2H?Xo@L~EH z3#i4)Lb<5!oumlr3LcY#BeSk|G+28o<8B?t-I#OR^q92!12}7rg!q*F$fn*SG!j(# zFC*M@ecRNX_A+a7U!pi@*-^2Z6|3g-bu*@0H=b<>1J2L2M&|@B$nM|z+EJdwVTA4T zdLaTapXuhQmI$%cD3Q;+5Ebu|*sTG|4ygu7_(GmY@ z+F}3;3&)P{%8mdQ75MjRr?{775%6{y_z?R+9s@qGxj&o%HY3qD8ZBz@!zeg)O9 zkeHYd+L8LF28o=kvkv;6ELIg`ssmcT7LT*WMizN#LY&DwI+@P(oE4PvKQn(p7I5Y?lU^1cuKTt=-p5*z;d4bIm&5ZAK6{axG~8_$QFhe6nbV|4p!?>ORh zr`Z(+1#cS%3oDiSN(GRvKmW;bt~BiS1f1T2y)PHtDBY}rZ+8mQg01)iYVue(vyqbmwlUIISQS>)KLewh5z5 zelB?gQ9>P&hJrC-S;5ii3!B0@u9CT5O4UJ$H+Hbd(PnWxT553DOcEo=IB^e$sYSpQ>u-hiP_R=Gx{3ZwVsx1Uzh#yWSy zY_sZ&4mmPdRMO_;9M-{GxMHlI!r5NT?1>JFPIw$1YpBrMo%+Ar7-6Gy>7&b5{=2h; zoLeFSzW1Bn&0C2((}em7K*l33KqG?3z-x5verBv0rWTF%)Qgb~Sb(b~+>h}cjgc+@7xuu6sFAyg;uR)~!IPaK7e z`t8x=HoeeUB;1T0rBs7xmUzX%!+(!dz>$F->-@##a;JM8`IN>dkJ&ZAzHAFHgs)Lk z6WZt906S1vG&tRG>`y1XtwW50G7DrHjbI%Ca_sQZxbVeNAYW}BAaF@GN409S6ul(B zj+oheV-D^X8$l?(6oL%nHSU)%m9rtKjbY1ly}f3S2>?eo%!bypQWTKEQDch!kw8LU zJoRw*=S(SG2C~q!8K00P#9yp++%vFu`M~}GfK_)u(S;z=2#W^x)#G$oHy;5JyEpkI2mR$Vsz_SFP^!!H4n8{6xIBLAnG$OQY1Z%sC<6J|{g zz}cz1SU7l#g@qv|8H3H5`>tQ?ZJM#x?Au**PgjhDK`5crw+mG=``BiBFal*!y4@O3 zgoI7Idn?ka6VT(!sn=xIX%lr$bHGk@5DB4uP*(_k#raL0CGHqsZm(n*O62VCa~`2# zf3ygx-a+jYaE&;5G7U z(M}3kY?4SWEsvS`f_^uN+&Gi*+hFD8ztMv_WO%=y)UGMz^GLZ#^(YK?rSqe5sR8o+zo}U{l zCw&9w>8~P#kjU((>Svx)s`%xkS5^UEGJ8@ z5ClK&Xb!nRDv0;UHmfHzabIGqbf1d))ttJ^K)yR)wvP2+RveoV;CN(+g#2}ooF^xB zQGp%Ns*q;Yq{9mx^>R1oH;H9)m9Hevvyx0@AiSkEVGiRC*B$}`4{I~oWw&n*L1;oR zosN5t;)=n>$C7qGY&oXp^3yy7avEvd;#%ItWQXzO94M7 zI;J>7zpYr;?awTrAz|#YH@&9rCOUH3>XN#R5_AlOfySE+)s(>VjhG*Z{|o}-FvctJ}JHd`#K}^qELF)q~lYi@5O$UajI=QH@;=N zT_lM0vObdv0^usY-*W2(p3o3=`s8g|gBiz`Du#Z#MgTQOBW>cAo%MIvTB< zp0|zwPqLNmgY(vG!9-dBWfY?_qH2Z}IE2pKw5&bo`zQ?va3@MV=Na@nv9VvypXh#I z16~giNKXk-cT`Lo(qhO&yt%sE#+0BlVCoM6^gKq|%UVkw(0}xEqbOTS=D)#O5c1E}Ya00~^+xhG6AqLzX&5?h&1I!Zn zW4iblgVqInz|&U1r62;6_H+$GHacsxEhc4dVChh+U(wg$CxqZgYI>ZCq|Fu)K+l}0 zRO0bX6)jE%a=>&1P9KywG7re9J%}DC4|35$ydS=(X)s-(-`wB3u-lsv;B&S28b z8=2P1OEDXgyy$&ymxL@~IF@Zm+frR9ghi1`g2kIgrN3C1f?ftyy5t{yUu=yh z=>=p(^_&2^_cP^agEDw`9cFG!Tl`##@cTrdPzWR+ZNTF(1|kO_n{Gn_;|+#Dg1p}~ zhQ~PMm1yc5&QaCNKCIm@;C1^^m4z1kHQ?ppIs+DX`~P(6s4xrzDjZ#bZ!a1jPrgRb zNDyHD0hL+@7+TXDCz$zu&8a#?E0^v2fI8UxpfA@HycJ$dq2~EErMR|>X6h4~5+Vi# z@}TIz@YoH4z^_n9HMiU<^+d2Rx1|0V?R-p59Gang%PTw)c)h$ezxZTJxhzZM+s?~u5H6R;f*OwZVw6;v|Vs2DLL6ej&U zaMWALqIcI|R6~In4~&ddj+tn{Nz!Q#+^uIQc%|N zPQ~C4hm-zdTldQV_=>jPiR1IdEfoiEd9rt$_oYS7 z5~Z79*jGL<0+Y9O*jT-|Ql*2V8=p)3zR0!6$E~0(Q`UQ+q?2Uj{NK;1Rsc8m;~Mj` zN)}jkO0}c8KwGKf}xg-rWq`26YZ$3<*qqo%~lok=75?xsZ7QQZvrL) z(ojI2-8QrPZ=O=qjRuW?VT%=28jayZ?$)KePy}LZ7gQa#+QsnOZxnDiJ(I*xG0SS!)+l39(-xwUl-L`$9UFCygk?!fUXcqbQD)H$kUpOiV zBv-L;OSbXopXTwSAcckt`RP}4r0L_pkje4&AgDb1rTmzv}J z&mQ|{*hr%mI~jJnKaCv|6NQfaS1!>OS*MUJk|MED&+?RU?~p$?D|=ns{4IYZ-MkiDGrk&rBVo0Bndt+Tpne-6IKb) zHV9E~qG%8p7sv^Wu-BbRf)fncyI1O1q5r~ry~-ZRQ9q?2w?y2JYc7f&W;SLn9NxyX1g#M9#!j?dEUWEQNPYyCj%;D6Nq6P)8* z)wh3UDuSCspi%IK!eZ4{tU`+0s@ped=EDhrI21ijj)7SZnQ}POSUAXBkl-N+Iyja{ z0|!koV8CIDKbFgb%tt(ozXd(8E|?85913rVBI+>m*qF+!Jr*bwfBnhB`4I(4$e^Mypns*)oE(<0+#g1-QxR!FgBE(2SoMqCcNz`!A-o+D|mF#ov6 zVDbr%uYe`GKoh1T&B4ZTQ!f^CmvIPBn1nY(@QybZ(sW$_PCkdzp4?bl;7n) zhZ^8O*6IBG)8|*SC8DO!t4jlYj8sKwVz6}OxO!QhoOtsJvaBZ|gh1sWI2S$HMwyw_ zK!~clNV{O(iG}_$10E~yA$^`d(tO(fQ-XG`w*=$avT9~*$+;v=;-By_WIGxY^_PfP zH!(Y$U~pA*urR8L!hgLPwLvu9F}h$B3{_b5$t4DzXw@>B@j+*Gn0^_2{A1L!t!ny_ zMFGsv|6by?2IyL#rshtw5d`02Ddahq@sw`BKz|~yN+wwaF!1SBDJ}3QmHIktlr@U9 zC*VNR*x77515b4EF{^1;l|rTVz{LAsqxv?>JZxvVHdiPxJG8_@)Wd-5LYb(S1nw}% z{7H14F`6(kj>`FD6^nSYLrTrj>cNT2%(-C3nEWO5$Ud`A79lXDba7v*#50(3_l33C z%2>&|wrS$vRS_iUzh!3se~)@X!sUO5zEr6>IedbPpb8qG0Ni-AC-WR4r5%*jNHy#A zK-2-^V3IcfXe{ii6rn^+BI3x;Xi8E?>4x)T1h-y@_)|H3tuy{<=wAb;Vx^*ekv?B` zP)=#~-=!LGBYqvhS*B!LfWxT!Eun9UOIV0{dL}19i$FL@&v6wafx$ZpiuW&rRJuwk1T>ANzn1cefjURGIYo*#Q`o6?l?lu7&^^5IxB&FP6jM` ztxR&U7zCYx>bvhk<=9TgiPes!K4vW~sxYNDM`Z{_T&94*5$H-$)yWX#o>=lJ3B`x) z?R?Ye^y;EIRZ%a6s8Ui|lKd*-RZ+XbNxMHMCI=Ya_u9yZO>?1)_i1_9L~9soKg?5;;d zr#YMtaPiuUI*NBk@^I?vqS)y>T3dxGtR}(08q6fMTgx2J#nRMjd1wtG^tX&cgTM%L z8LMI76tuB@_xuSZ6)A1Dds>t5d{Dr+-SZ&eOk#P_Swz0m*jCreHkw-5;5k%THbzA1 zAae{vy4OhX_xThQ4MGDqYYTC17Cc}_P%=0B-@|K1EKU96?Qxil6dGEcm1nrULxw0Q zswAq^l%z3cp=qlPRI814RMAzB7I{P#=@mT8WY#OS#T^I0m8yEdom;R?LI-U1*w@)sf5JR}UhrA%WCM{1erT-))6alf0d8cMkB0szFUK12QA zwKFMyz&MRDjcJ(0#>Pg&$*Eau^t&%0$MbSkJcrA%xw)b5Sq?mYp%vuHEO&w@Mq$i( zFrs{sfvp-0$yZjeM{dnCs|ON!jy19_Tg@Jyo^BP=toS?dqf=*$!Hx=RbbU-W!&bT( zZFTh-J{T_k_>6bk!x~#A1M?pH;W42x+pwr(#sE6{uIux$B)&zsC^D3tjR4W+sk%sF3!~QD=cTl}&pn>^ z_8_cHFv9U?l#*4{;3OA5%)%wr$dEruvKUaUZuq-DM`rMj$|Ga`dJeXlc?!$Pc8(h( zbW#R`gAD?W36Xz|iT~Uj2Sq~@f(XgVxjbZnqX_SFCDL^dgA;w+_8-%zl6>fVHwv-H zE6@;Fn|u(kBCv#-j69?(fu5mu%`J%WeX0}j9NK)OmP?S~F{xC&FP0&#@N&hu4!3p? zu-1sBrYF;K@$gDXH35LluVjRBv2G`^(D7fsBHynP%qFAk# zXak90y^^+E6|d$`Sa$J?IT3~3!Lgc{to z1w4VI1k*B+R@RO*I-}6UX}lU1`TAVk=HUp%{b66Uqx7?__QJow0An`K@K#DJS$=he zxJ&Z?+k9F=CoMC=xSKI|@4Bc29Ak6=BJVvxAAtb#ksht$9jipLDZa2vpH*07{7puC zK9&-26_-zggF*;>TOYp%v(^R<7kRWruiBJ{oHIm$G7`ez=VeZHd4~$m?Hg)aNv%y_ zUlfi%ov0Z?o#0pqM$r85WPwu>bRig7@>R`Y6%=;_U=$yWcNi5sB6@mdXe5-P-F%{U zL1`QbgI2xyqvZS@p-Cj{Vfa{RNfugjCIK=AP$vB+)kS=>$0r4aSjY?<5*`-F(n=4S z2gWlDwSM%#q7o|rliNxGF2QHS-ta?DSaq01H&`4`@#}H|-Pn-+=Cllad66R`mNi}* z`Wgjwc^*J)_Fw+?C9cgs zjb?-t?ZR4Ix_SCtDbV)*v_nC{#PHb-IJ3BC9i4BWLMf zBE=typ+X_1+?O<_X;+aotZ7tqh~5|L>H*j!@QN-@WVT)_U_V?NRmS$_`J7>CzC{>8 z!Cp?WEQxSu((aldBLk;^1isXLow#t&BkShm&!26lQ#4*5cgG8_5qqJD=};`7)E`g- zV2!-`3IP|dK6(|wUlisf0&pRr{<|*1f1%h8L}f5wXePcLdj;(kr?1Cb*fwyu)7-@< zY=-bA!Kp-TMVM&YX5-s5)Z~!Ml0RJ2HkM2spNYN>IqEetxiqyT=VCazE6GP$EUAH! z=SHAQK;<%4rb{lJtn5}wK}2l38ux~{eN%)OHeu(`srZ}~Oa^=avyzwPa*}>SWv{6f zerv^bioWF+ukc`S2DC!tbf*~BZ(@P?s*ggxl z;2E^5z#|GW$m=Y$J|Tc|*>G^z65EHEgTW#=^$;7f&#;y7b~ZR(-j@sEAg4-sw&=x? zz&dLS9$B=>s)oK&mG-e%6i4x7ms7;J#b1M6_?5|bcg@dE%X#3L&mVz=dVyPvP>-cv zQCb>3D$A2Nr|Cg}MIbij8#HiJz#vSzTKYSGW`~Wz^_`EK1NBgBpX?r;< zV)1YypP_jsqWKEp_+(w!?*9-DTt}6hDuA=(?p|m6LTTsP`OP7nLmjWK%7hJde#MUX zfgWjM%FH-+#9EJKzn6PhsrNIR94E=Mz`UBb*VdnTT^B1;HDuSu4|-O-TeH|%$WW5o z*=TCzRN2`Id^pT68~`^Xi-1cH7t9L?Z=nZ?=#>)?&&tOCH_eiPe-?}^0WT$usBXK; zaj9B!l}YZWeOX1te2?k91SJ??j;7Lo@(Jz?sK`%2tswGw0w5&cfsFkj6CN_N+me-C zOoPjYW{E+p6$3k}=J4qN)v8K-hjbO*Vy%8BggB@%tyONIHW7kG79$0{*P zU9>EgY&pl7MalW-@?U-lpe-o3@6a=4y(C0MlpK_v4AOghr}P6?TxA=5J1#yaNT@y( z456fgvd-w=kGd7#h@vJj$aIKmJbQcl=v$ z21YkBs>c{lw5YX&k5T8VT|9E6p=$`oe^ROiXI;5cQ44={d3>76YBTHA^^4pH(K$(Vu zD4)gmnsmxm!YCIya}XLc_*OgNIT687w5QF>Iwwz>X`==ubGWWk*0^j7_RG++s*xP#H3TKA3vP!~ElKuDqFu;n*}~jZiH^lLKbM42jQz5+q}Bs#a9Q;6_3c z#S}?bpn_kXo#w4r^i$>rxE5a4= zpe0j4;44<*Qu_F@FSbkr`nn@J&E&W_Xw&hWibB(cnDL_yDJ74S~>n-IS!GM<4NFP6J) zi4J3uPfqAcnACpyOcuT?B2zSA)PKs{P1*~8^A?hvnHdcfy*29zMEp3wpiw%Ngg66B z!i7`8HW~#W`IBRelGrvTJrAW4Zk-)jdmDf>HlO1Fm?sX!q)O&XNd6WfW$^<3bTP#A3PI%G(}or^Odxrw z6*?6`lnWVkj)R?R3VaPlxCbMcH{Ro&W^S48#{x7l8kBG>8&`_%?SyWxOEVy!05FKc z)*JQeZ4;L)E@HV?8Ef2gj{RM-isayEc+(PN9*6`3?`c66AN%A z-IJE&c-HlJa?OFyBk47;jcKb}HLB;hN0;jM#Y814gyl>3FtcV)*|A4#y-V<(pcyki zq0_!uxMHL-?vfs6;#?>RjLOkQ@WiAC9<_wMa=xVuR_GTy$_?-8DJjW;-x=oq!})r~ z@K$y_B0XP`Yt_jSi#f9sR5qU5?~$ZmT9q1ITvBH}5j~739@}ewz`Ywz4l|pX;g#E2 zIEC{Nf!~lC7(7Qesqu`HCm9;$xpAT|kRq{R4>u@(Vx##;#qkuiip5x>%kIgCr8z{Z zp1yB?5&PpzdrXoA2KpPLZZirW4a(g~Z@;;B&Ci?+YAbb_eIbkJs6!!`ywyYn1=1{x zCw#RNssjn5k)q8S;u()*mruPe>svztPl9t=RZGEES!I8|{~m#U-{Jz6NS39}2!2sg zcJD->yc!8iZLNxB;tiZ~`zYwIgOUu5*=ymYzAot}Iq;8mn_MeWNOZ{|7o}l; z*57v&VuXH?N)=T}GSP_TO?vX;PjLx+i@=5G`!`~CZOllzk;JPsQ)6e7NGASG9L z*I8*Ke=w<>XAIo{`i;x@79EV=#d^!8=aX4LKN(8eXTtH@;8mAP2$VCS@JUoQeWmB) zEN|{#JPo^oO$YV2U-A*juwcbD5*uX$|LhNmJ7ItJ^zhMKNoEnVS&m+QOn;dMY?cdyX?kIZ6FvG?&-f zy98mn2dzvW=vuki>hb#*a`UVH;9Cs1sf z$bo>5ffW3qqrKVdsQwW2vSQGYkq@t&e3!;)NIM&Vj`8~PVsvbMm99F=hBY=MkXOV) z&8jQhAnlSX*wsEO;6;m?a47aQU?9xzX>N~p(0yCs>;;ZB^t{m3L$$-K5hHY4uD9vh z&WZ?Bo;y-pK9Xtyl~(&j4?8rC$D47^rJUkGR1QpyY|qARuaD;%WE~_C%@h7OQ0}Kx zu$7a414f%LB@_)l$X)|E#Sn-zm$t zrxNF+Wphoxp!8c;s@0FeN8Yiwt5zyKZZmljiNXM^`IjAev(nC0{f1HRng+4JihiV+ z+yn*FlVh$gv`#}&5hqXd-8wX=2?;&NORn2Pp~|T|P%HTn;-iPVx4TwSWX*#}g!1jv zgHK@8R*T}_=&Y;519SRDihmTz5mqaEV8V_H<{EJlFxFsmv*VMY(-^ja7n?2b?Vq>) z%=+5u_P5K!C$*9jqdR5ZlBh*UP=5*M&JQUB3OM!aiHi z=_`Cu{t;Z3&SNpb!*jX4K7Nm8%N)>5G>FY-wweXYd;r-1J zWQnw9TcDE~**hFl(-7gMI6(9i`v0hU%do1xuM1S^kVd*WbazODQqtYsARI!ZC8XnU z=oBOb>28qj?(Pohj=TB&-}~I>em}AIin+#|YmPBCVeoj62AvnPpg!f(2_8-xBXw~q zY!ep^?~zNtM-PsyiTCtVwmKy5{^KDF5v;I^d^ld$pTO8GLJ>cxC|t@ywv|G#Xz@|z z@UA_5r&{$WJOOqY{Wir!wzYkudsB2tPa?C~Mi>rDc^7nKiN7^K-7nIA^CjD=N|Xr< zd4})j?{m!?N#qBhQppO2c ziirCdeJ3!y`vy)5TK7vAt~3oXROtSe+_^83K?7QvA3@!E4HJ7`Ej^}g-w=&nHOK~c zJm2Ajp`tEXx(rB~^!N`BrY3JF^C0wgze&e%vOTfdnf9Xo>mcNT^{JWo7tGAqjhT~r z532yH$-Y%Szj}uA5;h_=`>HTpLg4V6U!K>b&w55{$LoQ`36o9-TzR`a+7<48eRw>OEx4fsVmfvnn6-ZKW1a`Sf)k1MqmCRGzI{Q# zX}0wPGsuoL79xWR)S1R6K5=w#SN{X)JMi8tH})YOddG2*6}y#~N0|;{;Xa1z)SnZ# z(`m8v7Uw)uTb&H_=O_3h9WMeZEQ@7LxUR`etu8hg^*f(1(auWiQYM#5dC&`OI9;XT$&mywDs`!32+Fht5Bo6bS#Zu^>Ef%! z=*+`NlC*v?4VO&l*L11gq{8Dv(eQUJyk-J3Ouh%xoseY)c*(iFmxm&t&feTBaf;NcwVXci`EjrMNEbGS293uD(bwDa~nksmJM zW1Q?Fc;Dm`|GdPV|CP)=uR8et0VE~)*o+JLP(#>e5kZ|R>0=#QOgf40w(u5h=J zExZG3X%|U>DYlR)+S{7<bTKFD^FcE+&%rxx9l-E|4k>hyVi6w{ z5ed5m9Ut*!l$3r@3!~Xt`K-IdRq0=yEY7_UsQA>h7{whWyuTBa(mwh?TB(M>Grtg2 z;`on6o7_G$8gAGB#04UPZsdc0EKMucy z1s=I-lT2dS6z;sYWAJEj{#rL$^jxa@@MgdRq@6S*_QgJS#^NmhWjKQ(ywVT&WR+>fAi~y*;yts zYNSM(rPLKtZg^tLJk|5~#eiNICaJ8SfQ;7jB}SHq?!^99 z)dDVD>atgHb63Ez0V{v7x5v~gRpr@cj1_nxz|YEnF-$!*claKwm{0h)4JtFSnE6Y=?O;7^}A$nk-? zvS~;$sQ0PDNT@mZ%)Qyj`seJ*mVZvl#czJ|eXvtZRMc$pC9~GB!-la1$;36fu<9>9>CHuMLa}PHjLxC&zI%pB8%|geM8O50+r7Ay^wc7t6?sX7#nP9nHbLuz zH`@#0iNKj~ixP5tL*qamoW#vVmoc+^U7ypDQavJ+l*PxfAS6)y&)!l$9BujVBZ*MD z{5`l!ou_-fDlbVWRFdfW-H5L3_N@s6QHbuwm zVOua#zslvA_;@3WR` z`=u0@bSK+~tmBEoo@`R!yO=dNecfl#`VM&ZZ%uSu0JdHQy*;NAIJBu%sQ&C$iunSrmDZz<}fK_LoV#sx^Gfm5+iA0-Uqg?!wY@;uF)kDHn z6GS24bO|ZA%4^yHFMEH@Xy9w5%R@WxSu8lmypR4zTIFok7kv4e1Ch>>)u2g=m?p1J zQmMJ5`#&C{jB2~p$j;mNz1s@>8+zAUQus5_!0cS;wcz6Y-HNq1Os3Q0=!D%kE?S~I z1L=*R`<-M>>OIox!&Yq6-4=yCld#V324se-6BwpPX_hgPhqs3Stb@CZmBi+|>F?U%Y z`mRJS)d+(zf@4*c1SrXD!9Wcld`DtcsQOdaTYKZp&De-uGwrPCwvA9q3@Y>wyhGRb zE~;qR+9KUN^?wp>#5UHC~ra6*Scj;y@9A#6+hf`=cfr|t$O zix2z>_%85xkNArs#X$?tylpgZz!jTt5~gg!s8#k3!MrEzu9?Ax%~Ew^T!#Bs6Q?}m zS+d|t@~>iT;^TW0<MUP&oilTi26W?o_Vzz9GYl7=*5J=Tm#cd)*vS9DM=H`}Ndc<369qn1F z^!x8KXco$PG`KYUAEeF3bE|i^ZN)A0j7P@3YR?KpP4&o&&ICL|dMzzt0H7ppzl`~B z1LBJt$B0-+7P>Q7*66bwwuOT_c0X+V6Ll>-XiEGDNE?7d+Ma42rk@C|vOu8{bBJ|| z4Ln!nKsdun7@4QGXgVG=%Hcjlm&|owMuTZ|RTxe7v$eF#WF!dv5Ap&&14bN&yD|LF zxAkO>f^(zOUt=Se7APFpFq~Oj2X}%G)=Q{4d9=OK{^ItvqC7pRUT-;K#|c?N-IC8k zV}6jaJR~d<%-#huu01c?DRp0DoI@Oq!cNz=V5$psa2)V6F1i1Vnj_M<8mWzI=*JNt{vtbiIAY``D zz{<0W>0;F~lMrO>@e6a8n-#mvw<9avTW#M*o5WgvG>AuM3SKb7j*T~g{r1fR0}stH zaKWMzi^P!V-;{&DFNd8I_hJ9~`NBzo?jIu0(i?8l{=o)qwj4nE+gXvaOR{SH6;NJQ;b^1D|9G#j#j z9_7+CJ{p?sLSHC*(jN#FD%_GJCJ3=NuY|8DUCymyOC^7NID zwyko`9H$;HRHTF6+_H;x0)x5aMlI;r%DdOMnk{M) ze6om*{yIF|#QyF|hqama@YVWoo~^3Exg*(~cF*|ZHIaYo^%Lo};#^}k`0L#ou|*%m zJt($pTtmG0Ijh1LkTOlP*PN|IE+|gQ<-#@~Mv79U*7BO`tIx-)=RcUgeaQ5=*73ew z5Bb5XoG6S^X~P3K3TQ^YKufZYKGM$(Q27}(pjlPXCZ<;k-TjmjEvy|=8)Zqlv@vb3 zKnHzB@X=G+r7^RritC1)Qxe`B{PW5y9@Hngxi^aq@d$hlKNKaA)YVOewoP4LO0Z#P zA_ypxA^9(S^6^+zjXY5&*9b?M;2Sm+p4zHf;oBVI!Ccjfk4KcRwta{K`o* zfuGHVM@12nibl9{pixF`SalS~4r2N+cv$IWA8{B3IMn@luJF1!DHJI~#2}{v`olQ!+HZ!OYo`$MEsE3f?ys`sNzC_?%yHp8=h8uJ6e?#Wh-zRBwh}X1BacWOjkl}W zoX)$z-tPC@Bbfq$fX`FmEOKnvAQg^Q*`I7gfK%85(Eno7A9IL^C<&3hcmvMGkSK9O z^ra1pQRBGx%m8JHyK4-Vd3Zvz!~LjZ?c=e&F{H|6iq4|j?){n3Fy+W#zJ;; z;3kuNZ^bP@K&w~uV%-;pFy(oqqGE>S8ERm!1Yw3tmSU2T8Pa#JXSlEQyZaeu0FX_> z68~K5yMwgcjUthM>LXgdV#dMQKbkxrBk!}1t!+kD7-gM9hHW=KSFOuMrEk0=WA2{{ zHD}gU6&?_HY@?7Ptn1id4yisfFR^aahCjPA%=^ARGE#L^YT+hiRCPq4bZ)tL0 z`}_RFe|ucV@4bf^O(qh#8C;wx1cv#I7RGoSkE9C(zGu=j9!ll_ z^p#trb;@7-1`}B>o}T1=zF|a2&zvti8mE6;&`?P# zEa_U3XN8({%d$68TCv>q+!GG)tQxoBTYX&hqaFH@%GZUmLLb0vt zZ;rpQu`zWMM;91R(%sYZ3ot1xZHurMPl^HLpq-xT9w=9hF!>?u9BV~4&N9kJj*HG; zc;#a3iT9z2M+nP;YZ%;mYsZjG_yjkOXt8|S{n*MA9mM^`TgIe&@|}0jA8NlS{v9Fx zP;NKN3ev@{@LLt}_F8*`PAZff`(rHcv(+f0e_y=6jGQW}P#(swtavsRG9=&<_*5OZ zVZ#?1rgaz1RctMfjA7}M>6dnObxr&n;BCLs+`u$xJj%QGg166vwAAzjyK~95TQ_24 zba%s-svclzBjX#-^mx+NG-_2=(En-Pp*7QVP_R#XKHXBnHL&{R3Q5ZNQ*~Hh<%_s) zn-?wBuKc=hh{a?R;dwdoV$^H`>0+JP>`2C3l~)}Drq@j)+(sx3rXXy#e6l&`B*1ZY zdYExosu@UMQ|=e%Uwj1z z*A$4hv|Bvg{Oe=Tr3HDJ_cr*H6TrERR$`SX&$Xf$Bi#t=v7a!>ruPy^EI5zivbUOD zCJrflP^sQ|cG*!pp;lrl=30d7Nj5BnEFHk6%-<*!>u`|k@jCX@mgpsj?Y#?%=a`pI zmLhZIy0Xdesdp0RQ88-rd|&rvSv60dQ?@KCp5=eTt8DE_vK7SyoI2hy=2SAzo2TPu zrEPKC9}bxV`E14{uyAm4N>}i3OMU#_P3Fkmvb60xI=EiXa$!y$^YA3P+OxvIER-&|4Mha56H^cw^gNTH8*bqQuQ8V%-Edt!FMX4#lfo#D z3=xP7qN+0{FN-xclRb7uf!?h;RhEBZTPU&)=gEoQ&TOc>>{gxW%-$as-8_Ga9?|GbID`Dqr zFsIC*5zmxpZe(qXTahnqw`Y1l_T@P}_M6WhTdm<%lS=aUKgh~5t|bQV2f(~O=Xn^v zQ;g(@$=B>P>Wh;aA(_BSz!gU$CeW)^Tt4u`53>Q1Klw=DZKDH`EM*)NkaMbWnbv;4 zCMR~JfV6edXf7SFSN6#KBTiN(W+MKG;SdtHZR_mT*5R|~iy`z6vOS~*<*ZKC~#r6}H&R7ng#k=3k@No-Y3&Enk)`*tZe#AI}DZ_uU3*-?x zT0qi7@m@Mw|ME;0W)s}+2ssVt>v-kl@u+_*%sQhBnn5Ou1AXMwvJ@t$2r}{J(CqI1 ztU4@Z@=A|}v&PU=AyD~#B+)F>wFm{S5A>Swh-V^%?3FjlJtk?j=AoBDN4#B>{TpK+o$WPkv3-`tho@c>f!02^oKUMDfy3y!LbDe^EO}eXqFyCT-4N zdpVjry17JBbU}&=DJ#C0aUhxAp_cKl=kE>F2d4c?6}OgmoW-|0#5Cw$GQ}byd z0D}kLfkU~vOguEfr?Fs&D$PE4EJp`}aAWNN%$^B5u}LxN;*xWTw$$L#TQizXQMHUo zI{^E-*J2<=>VRyume$2jkDU~6O4L!|8NgO;xhPDZX5rKZet~sKv zZ6r|KFFvIrj@nvZjA>X?qy%9c4&eigWS#dthfa+(8uOUna-*vXv3s7Ft=^Y`)SbScUA=KYg7b(lkk_J=zBj5%pfHr zqnrix^M&ZkMTLCFYqH%8m{1e|W)ukT2)+YSdhq&sBO-`UH5*7K`NM@(4pzawGtC|U z*P}T)TC~P9osl!e2~wUDEzl>Bk({b|c(grcqU!sGbLI|;96<|{WVjS;`!90ZF&xXQ z908k1)MI`c$X&|v6uCc5swpwe7TfXzOz!k!g3Gd+cuHi}SP;4lw=u#u4CJZt zf#8Y>#9vkD*tZXdtB^7~9jyIwKZQ!3^LoX98Yor4enB3SA*TCKnw<*Qur%)50bct) zZjFACXt$p$R1PwMBfK&_vbo}NGr6em7?Y*_{>{J)r_rvuUObFWw45>me>Sr$IUkf?M_<3aX3IO}IY;`sAo7DaCn` zQB-N;@!OL|I146nr_?omvWjP=hj2H`ITcjC(n9e!-<>RfBM*DP23vUJJ%td$5-C-J@zzXyp0rK; zjDNGa1R#iA+Rs#KFHiA-a0~1bRpGY$!pEL}@slHK*oedGz?fN|9bX=g?Q0k?P|SR} z>uKAA8nx{$b?xZ|TWwPNSw8QI;_3UJfqg%iWDpmRGBLBa1POT*e2N4TuVVf^8!1kX zPb>B)oL*6UV}fo61rNAbSnXE0XY^=PNdC;wN<=NH3hW?RvqG}fRIThCq%Q`rT(r9@E)6j)b zdrJxs1)dG2$DZzLdSxyxherbno7U3yZnw}ngFN(ZZ+`Fn^lwO9ao~t9oM5U3S)8G! zQf)ckiTerpD~ng^15mAzP*BdlJ>w!` zhjPpGtNO+xu%J8V?tShoiToT07jj)FtGf6Fh=)!#NeIXy7F02CIoR=XPL1~cLYLO& z3A6P6^at3X)_Mr0WAQQIX$xv%COD$#Xx zyB(C+)H;aM)#-uA@+oxk4OXNpf2%Y7x~g0Kx`$$an$2waC%@++$q9DtjZEgyX7`K6 z4(<+SXFk(T-C9A)@R(0C4>^h&V;n5E)7tSt3&AML#EV6E2)5q$X^4x@&0K86y0_VX zfZj0wFXZ=btYwDXPX2t(4JZbTL(G1j(s4E+%In@j{`JPqpV%ye@Z$zLVE#RC+O1r=WBRs~tkLM{fbuxLZeSbIv^ z@CJznnz0DRN?zeLFb2dG1toJcM^U8X=i;lQ*f03KDJ5Fv@3 z*&<%6c~HiLHA>4e2hviT8w^^#340^| zS}oQ(^bp&o7xmu*p!DPRK!QrOwaT<|M%+aXKO}$=?JHRM1JTKn$_JvY)rj;eeH{^p zQC@8yG*03Em01e$-zg3<%JT??Nwf0^$eP=X?)F2Qzw^Z|E0BY{ zOP{3KiX^{K(}-0T{RM{Ut9YpL9@Ev^ggc>~vtsN=`5hDBnq2mVK6?H5IjEqAW~^%7 z&+OZ142Rvqx1p#ElfDjpNxU5f9Vh(YJYJJfmn)8X)WDlc5X-v{4i>WKd?H6PgH9_m zgA}7!3|4WwkzbblQhyJ=CSSNAy<&!u8a~(|pKYn)g9GT%0`wX1<`ol#(Sp4PdyKSd z*MSZ;`_A>wKjt4}3=&lFun>`j@;>*Itfpv?ND*ylmHs`qkRPv8cuxZZ{dfw(oY1!) z6_Y7cUBoc_)D$!1ix`W@GcZky3H`D6;GuG{%Z;Q}=La2J57v=i|8%=_cpB_+N$+p- z^c+k`O=P-r`z2Yh6$8Qhj^kdMr!#2WM)0N6)lemAEDK#2s z>-vQX285Hy`6*BFPy=Byr^vVmg28U)DnI?3-D`%M1`(*Nsf3unuV!Y}hNwh?Qs6TT zlq-!%RKsz1Q=wZcm(2q_4E?Qd7g|6JfVK{WB8Pm7La?mBtce;4=?|=#=QulfV zl@^!Z%fl)@qYVV!4c>wgH=FyL1dOE-sQDO5az0Q>(h8Recpw-Yoiijo99P7IY!1pXr z$Zm-?KDhUX@Fq|V0fgR(a@YtqoMtrtxT^C?9g-o|{cybAv2JK|P}CS$*ahe`mdak$ zx4VPZDs=BySp2QcWW^DI=nZpLX@`{_&(XhIWADn{%Bq@0$59wH#i9@fai(Jkgf0$p z)O$!J%6@KOK$*0dP;sRhBDjB>A7dY`vngmY6aSnn>_dWZ^~E16u+j7+eLjT~Wyd6u zY`=4Q&7QOoP8J;t{)Q8P_HI>GnbFn0E%QxT^07yi6pPKr09|9oYTrb_j!7EI0NfbK zmilruuuG_9{V#gO12t1BX69ls6iMJN2-C6IChm6{AkK#$z9x3XPtcwX7p~gI>UNaG zX26-2W3ivcqtRc(urMG9(nXu_Bq?I^fUM2LhkT=^H;m+cxu;Hj+^oCZXj%Q`;UGzI zFbB6082K*fBoHFm`ei^e849x>7+OnIc*Pp(KRir|Nm^p_*~s_25*tN$KtstC>Vx@Q zg-A1W{!3(=UHIN%h(H~OE7&KJ&`j5CCWyXEkvveK$}G~X(bkxkj?BUw%T-gHkK4-D z_A8U9>hQ4q@Q!6wyTFKMz-1H-3R8vW6{A*MmEqiu%}an?`k&9zQ1BnsaP!q`?}K=# z1dr-fi2R?jkGW?nEe{8#p#Y09&;PaL{PDa~wogNm&_}n?b>Eu}l@q-0==YH3nX^mG z!0=hzKl2ahZO+R2+JGQ|f1Z9+Et}uudHE_dWZ8F1JjU|9$Jl&Gb_)>$7?M*6=DuLS zw4|;v2W=hh+yoWcO961i5>MiuYU`_WsF+NTsjHsNuS5e>M`P2ZjpV5sxO~?a*!*ky zuzg{96VKH))BEoSmM`snw8_G)sFq3x5p#u-99BI9Lm52XnEu*H@6657IR_$_s*rTj zQm#zoIyf1G@9*uHaxix_ea-E@7&`FsA7-Eu7iYq^xVQUsy8I%`JD^4V&8*|Z;?U%* zkwCTF;)35lgN~44ux7WEqo&OX4Z?&vcC|<6j^zCM6)&~r%53|EoD<<1069zu7-Yqz z&Dg4Qx$OpIxrqj;#*WL)+Y8%S@`+Mp=80`1LL}9k7!QErQ>G`G{yZWU5)*6%`&X)k z$HN;|4KR>^clz30K+{+K7A;7-`u;I+m zZ!yYsk_#kxh{`IVp!Uy+&zGUN6B`6b6Om#U(2z=+=?mjyH|4m*;$R!E)xZ_n3?A5u z6{JWlllJsN;5cG4Z6yjy2Kxw+sVzq{n0fwsNxH&ZzJt9yR>#kIsOwrH+~n}P#$^u8 zuqWZr=6B@HS0W3eY)Li#wz@+wUPjYOMCt(dfI5VoeMC~LFq9cxmc*)}1B(Ug)5XH| zfHh>+z!Z`7n@pCr-QLnLqwq*3MqWXtk6ySkMxiE&+(rd56vJIoWFw=AJVD4*l=YRh z4{4g1Z%S2k-iF%0*xd6tE|wnc^)Tp9+MsB^d-&H@*7Ib6k8C(Y{I++iKTgAV6%fu- zFVaM_7);a{TnFv>J>Tt~MHoFwSfGIH&W5-~*BW*+JIj2pn1X_XH=_7f#2TEpm2*C! zU3DziIU3buct&6?$qb0lQGvGQ_21mM%1fFM)fB)>3?zcanls{aQ!VmrG?jEKt;jEZ z5vREw@R5qVWl@7zO(x_wK8MXg1aK-WqcldU@W0H|!r-@p&7>Hlrv6hp}P8%%^l=r$8AJ8?AuS5#cZ+~vb zL^5av<*{GC3t}|k1hTVW`EonQtVE`rla$a%=X|sScH%z@u};SUkl51Niqd;XmQa=U zH^EkL0zACu-qH7`zFT3Yl9j;7i!s%#Zt0&*=9;b-l{&WOmRLs$LvonKpF7BkL`}*P z6fk8W*dt~=n~X94WH-UJNo4yhBYcr<5syBucd;uqe~TsBAt7vSkE%XV|COY>+I?jb z#VRqYtVT60usromPLanVx&XHkoZt_6MnpDt zLyr5BHS>WymqSazxDq6h#3>6YuEO$+FM^x6uB2`GtY~f;sIdYHk@26Nt%4(Q~a$Hmozmu z^TAzT7_%{QKY#{H)r?KNjMYMQcuG?sPXA-wjZ|N(bzE3R?K!PiSlojNKI%jEpdZnDof%}|%*riDljMt9Xh>;wD8(Y9qn-3?th83o3VQj)jNTovmTb_(!{($fSMEWf>O~Y?j zGU6U_2^7*IY>pkA(aNRQB>*dLSO;Ig8j!Jk23%%0M*W_v4u16Y->Hz$qbUUn%~fGK zTZch(Ju|`}epZ#R5)oY<@*r2)ICD_^X9EAK0Xgl-6e(IzJzlo5Dy4 zi2xS{kBJZk&ZA1Ky>(wbH|-P%>CC^0JgIAEDv#w@m-vd`4=fyzhpfQ}bK)wbNe(@> zfB_1Em>+!!cyRl&klxP&e*wYLlAzB6lzB@soWl1NwW81QKLTQqvM>37t9yW)MGglK z|2{lw{G^xsoWu8eX0~~S1ZJV&pxFdMf)%1 zU4u=rR43@p1{62FKfR{{#eKBtYmn)Swe1hm7f31&g6oIgsY#f?jY27#J-5RfH(32^ z^nH?i!%%gZBme4IFurSm80!Z(^Yr%*=QvPyMOZ;zji>+K<*wRTF zk^)p+4SyI0l28(5B4;I#{FF~IUo zd-UIhJ@(!GvG=Exf?BAU8e5&{ObCy|S5r=xmi^&E!H(AS2(8L8v@t>?VmBD;N z-l`%A4lU^HoZb3*aD5XuJsRgsDcqxOg?O}^Jvz*QXz_h3Tj(9Bpt^8xHMb0}qR48s z4wsa)bkPwZpC66{N)12Kx#e=98eL6s2?a_gAoAK~1}NYkz^CDUu}K#76CqEhqsIkw zO?HFIsOdzLOvTOvg#hxQITWFVUs0r|r{~WuA7v1(EqF|ZK@8~5fF<%sB}boEW{FGQ zVx(huoB&v4!2JbiYaQ_GcJYayrHX~Sdtqz6?YI&K3|v)P!~&4G|MvrZsF_EK5PYe9 z!ak+S(}&d;!>I2G9Hl`M0OpLrnLl3N=dt z*#|!VOJvde6JypBsq!QcgsHmM_1X<44#X4vC_{fLw;t8i2HR=INODoKeQm*>@&PT=Jtem)&p$-!;qT&f7YJYL+Ez1*__5?SwFfRcCMe~ng` zlS<=NR!W~Ug$Rjx?UmK^DkDB?$Kt!)J^k+;!%r5$eo@dHA{H!#RBo_OJgNa_1<+`K zlEJ^n^Z>Yp+#VE_O~J(lghockhv8L@r>5mFpaF1{cnn;RQrP414#!)w$U(6x5oB|<#1{P(J$ftz^50jQvH5J2&QU%*ZS*KQ8XQytc%Ml zLIULWr9OTv%-;dJc1(e;iUYX_ZobuK4>gCNgwOsfwG1Edzbw`Jll$Jj4Z$GS)N;XN zGmJ#WpN}%HHYV=H4Uo6LN!=H#rE}5u%Nr$ zfZ*~)zBUt>fdqb;?*^EBA0Iya(JC9UQhys4EaG#&)=TcU1uKQr&j$j5%nuC8$vJ&B zl2{rB14-l)nb%=ukQnqg*iE}af$gpTSMqhxrMH2hAo%dL*mD`GFbY~=SGjq4g)2WgKxma3smeq^(p@(;D4n;Znb^c))T*DrChKAG`Sa(*S)N!V zkCxZqL4&SKX5O`wbNOK_L=tZ>ibMc93X*$;>L}OS1ypF)$bpqk>X@;RY|4ooI#dle z*cxV88sLj`=&699^Q(S4yeiR(&y4|zsBiix)$3O=fg%TG86+y{<+fM!6u_!mb~?A) zY<^(?7;tumf89s_^=N=%^UHyJI0u-!S4+H$AIz_-zd-Fb`fJ}MK!`urd3|x<)7ku6 zbfB@g3RhqcsYT2gdY^UovLcJ#^(!gA*7ur)?dRB!mKxNK11avvJz7I4Uf&(~VkRf} zG>AJ`)~E~E;bQ)<~J_#^C4Ik0m`6yB2&fOi&0rXQvx^#D1(IXNM_3`HNN%yg_s(Y zpX5&#@q6Q`fj9eqA7%>; zA3sN>z-Pjko`|ghX;g9TZ_3;a7S+b-nRogqHP}f%T2f7*cg>ysj-Uz!DBk}!C^BSm z(UVmN^jP$&#aO9);p*p@`gV+pxt@3-RW72O-PtE3=~p215!@vaKe#5olAiDcyK;|J z8-01-YGcu-M{jRz;2&5m)6p-jwpFX@xJWVnt#-E{+T?#0Py_GYvj{nz&P%>F?0+y< zXMJ5)&g51DCZ7w4jt(5^Gx^_b2S&aTE)WW)q3zrkCm9(n``txZKVolQN+c&e5tcx( zQZFR2{FMei!JE7VkK}LEXP;Rc{-$CU#-zd@zJu;27fadJMrDixQb82C-$)}Dd=_t? z3i+$5c?Oy|sl<`cP$l~t&0-6Pvq|~N-JDqBeSdRpu<6ppe?>Q{V~xSC`DE&@DtKZv z7u^u3o2_^!6C|ZB)uPy0!G6Z5+8q7^*1c^pR0lRS+p}L8u5gt!V8X4@M19pW6bYrf ziKEwhDHAgsmQo4sf79sjwe?WED%FFz_p_ zMFRD13_s2+e1e2GTQr(OD~VQ$8wD<+#5u-fzQP4P;O?ux7AOfEzguX0<@q@}skrC; z-swtw@M{y5`IhD6GjK*m&gNJl5%NTZkrGZ(HvBeWftv@qu8IAh7@NijHhI(kD!2)V zklwVehSa~U!77D0VV?qQGt(ot>Z5OGc)>`8p*z&3Sap`d*tMiR8g?^97wsA(dJCi$ z@oQ63t3M7ap7v@YRmyF`2(V4UC2yi`jGyB5&mPC0ufvfF$Yfd`bW{PEnz({6~qE-Y&_T zO2clYHh%-^6)yQ?31X9qA#g&ZB(Xe+gq`u}jNNIiIMve_e>@Ht$u25kcG;ZPf)4@U zcGTRpCV)ewiCNIsdB*ML!Jzqo$9OX}WwkAedPZ8(nx~mduFxm;u4V&e8}77L#3bLL zTOS*~uV$AII|7IaL_c6{yveY_VLfy+;Xa1n3ZKVu_q_%)$PxvqmFZ!s!gxE+7}GVe zHx7OXQ1$5PxKkT1$@j1jF4&McdKgcUC1LI50Z3gL49c+46G{~MsdrD5|6;@*uSo&z zk`J|xt6#k1Usl30K17)bvg*0D)@8$53N7*$Xl zYdRzupg1?YZhTdA>*I6ncV)oT02fA@B+as&wGNB7(!klKe-^Bkd}dhwa^s(cy;sq{ zg1Gi~dV5#_T)?RVguQ1=sUP^rd%_>dV`0B;WN+fle68*>*?N21`0Zz{ADrBu%4~G) z&6#iO-sPk|oeJQ+rYC;}^tzc}IoKhp1ltTOYy2^HR}$)M9|4}BfoW`|7X?)bSwzfE z#sxo=*J0H7!mGo}cv3hV7KozZoj5p%|7~O62}MOo7K2`L+(^h6dyur$uW$Vm^m?sS zf7DC-oza%YKcQ42>% z4=U05V59Of+#zGrOWLFy)_kfyVV&b)15dZ@{EpgMy}-Z-Lh;>8CiFqqnf#Ll6mmy&dM zC#8ur945l?2jeB4j~0@ zNHgAlt6(dIckTJ4edZ)sH~H&?mcKG%bng^57fzn1*&r#;-V_AR&gD|t#UL#wqhFf+ zY7=R8Z*qcM+N7iT{an4BD7tSG#^Q#R+3D_kOwC^+mZV${m}|{3|Hss-5?HvSz>*wH zu2gGyGG|_OCP+H@pucgNr>6tGc*eV|?xOVE?PONVJo3S6%wC{Dq_fP*Y_X!Q1~JYS zgxMy@Q3~~mzDbeEuNmf8YPT{b+OhoW{Fj zPIGAWL;YuHXRrhRKL;uIo5;?X#j#%Oz&%oo%J9w-o;^&n8OnK=O$3$42#UO|7@ z1ESffYzp7mU2~jH72F77y)*yYi{49#!+V}nOY=}hHxwofc=B4J&^eY}r_~v29}fq2 zbruaY;aMZ(HGNeli&gB%lSgF6kHNq6)A-Zzm1NpNZ`oGG_ld^ma^*uvk}7JwG~)lv z;2f5HyX`NuD$mvU7+)%k-SoxlEPzdqkb~8;$bh74fG`Kq?fRP#b z&_n9qM8B@$^|Oe;zPGPH2IYeyKS_h1#>&3a-!pC2>km$5v*zCO`AoE5+EU&AKsWJt zKP5;&%w+}3IvoI{*6puMLRQBAAMV{!BB^iwMH3F3t4v+?b0Il&(VM5O$J%w=2v4GA z=82|1rvA>s-iSN?Z(~PpP^3u-%XR`1rMHLxY6h4D`34dau5LWeGm{Ud%3Do)Z6{Q! z)@c95*cc@s#s+fB-~br@F8C6ZE|=`@JN*Cbp7YHO3L>0(ZCvlo-S5wsYEkf0(HN>B zSmxXN`~INza?po@Wy*IQL&5f*FfM#?c{x9Br0x+YBQ!NA07sPJZU?pJK`sW@Nl?~Dx2am8HEh>Dl>*zE zkj|FPTmBF^wx?L#^9ZZsf$0w(Dk4B%K@9@=3L0M@SWdo_YhM+*`q!ShHFxI%FXq1e zJom}#ot1r-du5@@A&vu`h6iOq!wJ-%04o8VG6iON?0fW|nWaltKDuP@CI%qzbOr8_ Ia!P0d0C2YHt^fc4 From b2ce6532cc45f2e43d5b16f21c8aeafe8ac2a30e Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Mon, 7 Nov 2016 13:56:36 -0800 Subject: [PATCH 457/632] Use to pleaserun 0.0.27 or newer Fixes #6208 --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 3dd811e8bc6..bb455ea9a15 100644 --- a/Gemfile +++ b/Gemfile @@ -23,7 +23,7 @@ gem "rack-test", :require => "rack/test", :group => :development gem "flores", "~> 0.0.6", :group => :development gem "term-ansicolor", "~> 1.3.2", :group => :development gem "docker-api", "1.31.0", :group => :development -gem "pleaserun" +gem "pleaserun", "~>0.0.27" gem "logstash-input-heartbeat" gem "logstash-codec-collectd" gem "logstash-output-xmpp" From ab8a5f3cf9002d6aa9a903d271e4fb96b663cf9a Mon Sep 17 00:00:00 2001 From: Guillaume Le Floch Date: Mon, 7 Nov 2016 17:03:18 +0100 Subject: [PATCH 458/632] remove duplicate list subcommand When running `./logstash-plugin --help`, there was twice time the list sub command Fixes #6205 --- lib/pluginmanager/main.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/pluginmanager/main.rb b/lib/pluginmanager/main.rb index a7f1e50a129..4ccd437a80b 100644 --- a/lib/pluginmanager/main.rb +++ b/lib/pluginmanager/main.rb @@ -34,7 +34,6 @@ class Main < Clamp::Command subcommand "update", "Update a plugin", LogStash::PluginManager::Update subcommand "pack", "Package currently installed plugins", LogStash::PluginManager::Pack subcommand "unpack", "Unpack packaged plugins", LogStash::PluginManager::Unpack - subcommand "list", "List all installed plugins", LogStash::PluginManager::List subcommand "generate", "Create the foundation for a new plugin", LogStash::PluginManager::Generate subcommand "uninstall", "Uninstall a plugin. Deprecated: Please use remove instead", LogStash::PluginManager::Uninstall end From 80d21712c67e4b623b1ec622216c307293872c1e Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 8 Nov 2016 10:29:15 -0600 Subject: [PATCH 459/632] Add Persistent UUID for Agent This adds two new fields 'id', and 'name' to the base metadata for API requests. These fields are now returned at all API endpoints by default. The `id` field is the persisted UUID, the name field is the custom name the user has passed in (defaulted to the hostname). I renamed `node_uuid` and `node_name` to just `id` and `name` to be inline with Elasticsearch. This also fixed a broken test double in `webserver_spec.rb` that was using doubles across threads which created hidden errors. Fixes #6224 --- logstash-core/lib/logstash/agent.rb | 46 +++++++++++++++++-- .../logstash/api/commands/default_metadata.rb | 3 +- logstash-core/lib/logstash/runner.rb | 2 +- logstash-core/locales/en.yml | 2 +- .../lib/api/support/resource_dsl_methods.rb | 20 +++++--- logstash-core/spec/logstash/agent_spec.rb | 25 ++++++++-- logstash-core/spec/logstash/webserver_spec.rb | 9 +--- logstash-core/spec/support/helpers.rb | 8 ++++ qa/integration/.ruby-version | 1 + .../specs/01_logstash_bin_smoke_spec.rb | 29 ++++++++++-- 10 files changed, 117 insertions(+), 28 deletions(-) create mode 100644 qa/integration/.ruby-version diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index e6114cf1d5d..4f2537b3fbd 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -21,12 +21,12 @@ class LogStash::Agent include LogStash::Util::Loggable STARTED_AT = Time.now.freeze - attr_reader :metric, :node_name, :pipelines, :settings, :webserver + attr_reader :metric, :name, :pipelines, :settings, :webserver attr_accessor :logger # initialize method for LogStash::Agent # @param params [Hash] potential parameters are: - # :node_name [String] - identifier for the agent + # :name [String] - identifier for the agent # :auto_reload [Boolean] - enable reloading of pipelines # :reload_interval [Integer] - reload pipelines every X seconds def initialize(settings = LogStash::SETTINGS) @@ -35,10 +35,12 @@ def initialize(settings = LogStash::SETTINGS) @auto_reload = setting("config.reload.automatic") @pipelines = {} - @node_name = setting("node.name") + @name = setting("node.name") @http_host = setting("http.host") @http_port = setting("http.port") @http_environment = setting("http.environment") + # Generate / load the persistent uuid + id @config_loader = LogStash::Config::Loader.new(@logger) @reload_interval = setting("config.reload.interval") @@ -131,8 +133,42 @@ def shutdown shutdown_pipelines end - def node_uuid - @node_uuid ||= SecureRandom.uuid + def id + return @id if @id + + uuid = nil + if ::File.exists?(id_path) + begin + uuid = ::File.open(id_path) {|f| f.each_line.first.chomp } + rescue => e + logger.warn("Could not open persistent UUID file!", + :path => id_path, + :error => e.message, + :class => e.class.name) + end + end + + if !uuid + uuid = SecureRandom.uuid + logger.info("No persistent UUID file found. Generating new UUID", + :uuid => uuid, + :path => id_path) + begin + ::File.open(id_path, 'w') {|f| f.write(uuid) } + rescue => e + logger.warn("Could not write persistent UUID file! Will use ephemeral UUID", + :uuid => uuid, + :path => id_path, + :error => e.message, + :class => e.class.name) + end + end + + @id = uuid + end + + def id_path + @id_path ||= ::File.join(settings.get("path.data"), "uuid") end def running_pipelines? diff --git a/logstash-core/lib/logstash/api/commands/default_metadata.rb b/logstash-core/lib/logstash/api/commands/default_metadata.rb index a4703072990..119c0c66727 100644 --- a/logstash-core/lib/logstash/api/commands/default_metadata.rb +++ b/logstash-core/lib/logstash/api/commands/default_metadata.rb @@ -7,7 +7,8 @@ module Api module Commands class DefaultMetadata < Commands::Base def all - {:host => host, :version => version, :http_address => http_address} + {:host => host, :version => version, :http_address => http_address, + :id => service.agent.id, :name => service.agent.name} end def host diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index ebbd8bfdcdc..fb30d59e90a 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -30,7 +30,7 @@ class LogStash::Runner < Clamp::StrictCommand # Node Settings option ["-n", "--node.name"], "NAME", - I18n.t("logstash.runner.flag.node_name"), + I18n.t("logstash.runner.flag.name"), :attribute_name => "node.name", :default => LogStash::SETTINGS.get_default("node.name") diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index 29f307bfdf4..d1c31e51006 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -246,7 +246,7 @@ en: rubyshell: |+ Drop to shell instead of running as normal. Valid shells are "irb" and "pry" - node_name: |+ + name: |+ Specify the name of this logstash instance, if no value is given it will default to the current hostname. agent: |+ diff --git a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb index f014f974059..0800e731e97 100644 --- a/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb +++ b/logstash-core/spec/api/lib/api/support/resource_dsl_methods.rb @@ -25,16 +25,16 @@ def hash_to_mapping(h, path=[], mapping={}) def test_api(expected, path) context "GET #{path}" do let(:payload) { LogStash::Json.load(last_response.body) } - + before(:all) do do_request { get path } - end - + end + it "should respond OK" do expect(last_response).to be_ok end - + describe "the default metadata" do it "should include the host" do expect(payload["host"]).to eql(Socket.gethostname) @@ -47,11 +47,19 @@ def test_api(expected, path) it "should include the http address" do expect(payload["http_address"]).to eql("#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORTS.first}") end + + it "should include the node name" do + expect(payload["name"]).to eql(@runner.agent.name) + end + + it "should include the node id" do + expect(payload["id"]).to eql(@runner.agent.id) + end end - + hash_to_mapping(expected).each do |resource_path,klass| dotted = resource_path.join(".") - + it "should set '#{dotted}' at '#{path}' to be a '#{klass}'" do expect(last_response).to be_ok # fail early if need be resource_path_value = resource_path.reduce(payload) do |acc,v| diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index b46144dda97..21b925c395d 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -3,6 +3,8 @@ require "stud/temporary" require "logstash/inputs/generator" require_relative "../support/mocks_classes" +require "fileutils" +require_relative "../support/helpers" describe LogStash::Agent do @@ -13,9 +15,12 @@ let(:config_file) { Stud::Temporary.pathname } let(:config_file_txt) { "input { generator { count => 100000 } } output { }" } - subject { LogStash::Agent.new(agent_settings) } + subject { LogStash::Agent.new(agent_settings) } before :each do + # This MUST run first, before `subject` is invoked to ensure clean state + clear_data_dir + File.open(config_file, "w") { |f| f.puts config_file_txt } agent_args.each do |key, value| agent_settings.set(key, value) @@ -32,7 +37,7 @@ end it "fallback to hostname when no name is provided" do - expect(LogStash::Agent.new.node_name).to eq(Socket.gethostname) + expect(LogStash::Agent.new.name).to eq(Socket.gethostname) end describe "register_pipeline" do @@ -56,7 +61,21 @@ end end - describe "#execute" do + describe "#id" do + let(:config_file_txt) { "" } + let(:id_file_data) { File.open(subject.id_path) {|f| f.read } } + + it "should return a UUID" do + expect(subject.id).to be_a(String) + expect(subject.id.size).to be > 0 + end + + it "should write out the persistent UUID" do + expect(id_file_data).to eql(subject.id) + end + end + + describe "#execute" do let(:config_file_txt) { "input { generator { count => 100000 } } output { }" } before :each do diff --git a/logstash-core/spec/logstash/webserver_spec.rb b/logstash-core/spec/logstash/webserver_spec.rb index c5dba3fbe57..898a3b8d4d1 100644 --- a/logstash-core/spec/logstash/webserver_spec.rb +++ b/logstash-core/spec/logstash/webserver_spec.rb @@ -42,13 +42,8 @@ def free_ports(servers) end let(:logger) { LogStash::Logging::Logger.new("testing") } - let(:agent) { double("agent") } - let(:webserver) { double("webserver") } - - before :each do - allow(webserver).to receive(:address).and_return("127.0.0.1") - allow(agent).to receive(:webserver).and_return(webserver) - end + let(:agent) { OpenStruct.new({:webserver => webserver, :http_address => "127.0.0.1", :id => "myid", :name => "myname"}) } + let(:webserver) { OpenStruct.new({}) } subject { LogStash::WebServer.new(logger, agent, diff --git a/logstash-core/spec/support/helpers.rb b/logstash-core/spec/support/helpers.rb index 8051743b7ae..6d55ab80339 100644 --- a/logstash-core/spec/support/helpers.rb +++ b/logstash-core/spec/support/helpers.rb @@ -6,3 +6,11 @@ def silence_warnings ensure $VERBOSE = warn_level end + +def clear_data_dir + data_path = agent_settings.get("path.data") + Dir.foreach(data_path) do |f| + next if f == "." || f == ".." || f == ".gitkeep" + FileUtils.rm_rf(File.join(data_path, f)) + end +end diff --git a/qa/integration/.ruby-version b/qa/integration/.ruby-version new file mode 100644 index 00000000000..cd53e881769 --- /dev/null +++ b/qa/integration/.ruby-version @@ -0,0 +1 @@ +jruby-9.1.5.0 diff --git a/qa/integration/specs/01_logstash_bin_smoke_spec.rb b/qa/integration/specs/01_logstash_bin_smoke_spec.rb index 579a2618433..1e3d7f35c92 100644 --- a/qa/integration/specs/01_logstash_bin_smoke_spec.rb +++ b/qa/integration/specs/01_logstash_bin_smoke_spec.rb @@ -4,6 +4,8 @@ require_relative '../framework/helpers' require "logstash/devutils/rspec/spec_helper" require "yaml" +require 'json' +require 'open-uri' describe "Test Logstash instance" do before(:all) { @@ -16,12 +18,12 @@ after(:all) { @fixture.teardown } - + after(:each) { @ls1.teardown @ls2.teardown } - + let(:num_retries) { 10 } let(:config1) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } let(:config2) { config_to_temp_file(@fixture.config("root", { :port => random_port })) } @@ -35,7 +37,7 @@ expect(is_port_open?(9600)).to be true end end - + it "multiple of them can be started on the same box with automatically trying different ports for HTTP server" do @ls1.spawn_logstash("-f", config1) try(num_retries) do @@ -52,7 +54,7 @@ expect(@ls1.process_id).not_to eq(@ls2.process_id) end - + it "gets the right version when asked" do expected = YAML.load_file(LogstashService::LS_VERSION_FILE) expect(@ls1.get_version.strip).to eq("logstash #{expected['logstash']}") @@ -87,4 +89,23 @@ expect(is_port_open?(port2)).to be true end end + + def get_id + JSON.parse(open("http://localhost:9600/").read)["id"] + end + + it "should keep the same id between restarts" do + config_string = "input { tcp { port => #{port1} } }" + + start_ls = lambda { + @ls1.spawn_logstash("-e", config_string, "-f", config3) + @ls1.wait_for_logstash + } + start_ls.call() + first_id = get_id + @ls1.teardown + start_ls.call() + second_id = get_id + expect(first_id).to eq(second_id) + end end From c8bf755f7b7ee84576fef3fad3c2355ab72bb901 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 8 Nov 2016 09:39:11 -0500 Subject: [PATCH 460/632] Enable back the WritableDirectory spec A few days ago I've created this PR[1] to to enable the writable directory spec to pass on macos X. When the PQ got merged in the master branch the test was disabled again[2]. [1] https://github.com/elastic/logstash/pull/6110 [2] https://github.com/elastic/logstash/commit/761f9f1bc90b80f3dfc6c08294585b7f2991c7a7 Fixes #6218 --- .../spec/logstash/settings/writable_directory_spec.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/logstash-core/spec/logstash/settings/writable_directory_spec.rb b/logstash-core/spec/logstash/settings/writable_directory_spec.rb index 2e322107391..4463ca82db1 100644 --- a/logstash-core/spec/logstash/settings/writable_directory_spec.rb +++ b/logstash-core/spec/logstash/settings/writable_directory_spec.rb @@ -79,9 +79,7 @@ it_behaves_like "failure" end - # Skip this test due to a testing bug on OSX. - # `path` is rejected on OSX because it is too long (but passes on Linux) - xcontext "but is a socket" do + context "but is a socket" do let(:socket) { UNIXServer.new(path) } before { socket } # realize `socket` value after { socket.close } From 5ea249a3b0a7f5de68d06b58f19a08d026193c2d Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 8 Nov 2016 16:29:51 -0800 Subject: [PATCH 461/632] Add deb/rpm url change to breaking changes doc Fixes #6227 --- docs/static/breaking-changes.asciidoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index 761d79c4b67..adee13a3e48 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -24,6 +24,13 @@ after installing it via a package (RPM, DEB). bin/logstash --path.settings /path/to/logstash.yml ---------------------------------- +[float] +==== URL Changes for DEB/RPM Packages + +The previous `packages.elastic.co` URL has been altered to `artifacts.elastic.co`. +Ensure you update your repository files before running the upgrade process, or +your operating system may not see the new packages. + [float] ==== Release Packages From 814707e10ddca1a9eab38fb6908cd8039f9395ec Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 8 Nov 2016 17:13:44 -0800 Subject: [PATCH 462/632] Mention default log location for rpm/deb packages Fixes #6228 --- docs/static/logging.asciidoc | 6 +++--- docs/static/setting-up-logstash.asciidoc | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/static/logging.asciidoc b/docs/static/logging.asciidoc index 6b0b668f2ae..8cdbb82fb7f 100644 --- a/docs/static/logging.asciidoc +++ b/docs/static/logging.asciidoc @@ -1,9 +1,9 @@ [[logging]] === Logging -Logstash emits internal logs during its operation, which are placed in `LS_HOME/logs`. The default logging level is `INFO`. -Logstash's logging framework is based on http://logging.apache.org/log4j/2.x/[Log4j2 framework], and much of its functionality -is exposed directly to users. +Logstash emits internal logs during its operation, which are placed in `LS_HOME/logs` (or `/var/log/logstash` for +DEB/RPM). The default logging level is `INFO`. Logstash's logging framework is based on +http://logging.apache.org/log4j/2.x/[Log4j2 framework], and much of its functionality is exposed directly to users. When debugging problems, particularly problems with plugins, it can be helpful to increase the logging level to `DEBUG` to emit more verbose messages. Previously, you could only set a log level that applied to the entire Logstash product. diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index c251171b849..f2c0b383060 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -45,6 +45,11 @@ config and the logs directories so that you do not delete important data later o | Configuration files, including `logstash.yml` and `jvm.options` | `{extract.path}/config` | `path.settings` + +| logs + | Log files + | `{extract.path}/logs` + | `path.logs` | plugins | Local, non Ruby-Gem plugin files. Each plugin is contained in a subdirectory. Recommended for development only. From 370f4039550fdce04afa05cb26361ab43f5cd45b Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Wed, 9 Nov 2016 16:38:09 -0800 Subject: [PATCH 463/632] bump kafka setup for integration tests to 0.10.1.0 (#6230) --- qa/integration/services/kafka_setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/integration/services/kafka_setup.sh b/qa/integration/services/kafka_setup.sh index 3a3b283300d..def69cf6bfb 100755 --- a/qa/integration/services/kafka_setup.sh +++ b/qa/integration/services/kafka_setup.sh @@ -8,7 +8,7 @@ if [ -n "${KAFKA_VERSION+1}" ]; then echo "KAFKA_VERSION is $KAFKA_VERSION" version=$KAFKA_VERSION else - version=0.10.0.1 + version=0.10.1.0 fi KAFKA_HOME=$INSTALL_DIR/kafka From a0f70777bcf033858301ae945d6ce133e1644d4a Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 4 Nov 2016 14:21:18 +0000 Subject: [PATCH 464/632] mark reload as failure if pipeline.run aborts currently a reload is only marked as a failured if it fails the classic config test check, where we check for parameter names, existing plugins, etc. This change waits for the pipeline to transition to running before marking the reload as success, otherwise it is a failure. fixes #6195 Fixes #6196 --- logstash-core/lib/logstash/agent.rb | 23 +++++++++----- logstash-core/spec/logstash/agent_spec.rb | 38 +++++++++++++++++++++++ 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 4f2537b3fbd..4e23dc8a75a 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -281,12 +281,12 @@ def start_pipeline(id) return unless pipeline.is_a?(LogStash::Pipeline) return if pipeline.ready? @logger.debug("starting pipeline", :id => id) - Thread.new do + t = Thread.new do LogStash::Util.set_thread_name("pipeline.#{id}") begin pipeline.run rescue => e - @reload_metric.namespace([id.to_sym, :reloads]) do |n| + @reload_metric.namespace([id.to_sym, :reloads]).tap do |n| n.increment(:failures) n.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) n.gauge(:last_failure_timestamp, LogStash::Timestamp.now) @@ -294,7 +294,15 @@ def start_pipeline(id) @logger.error("Pipeline aborted due to error", :exception => e, :backtrace => e.backtrace) end end - sleep 0.01 until pipeline.ready? + while true do + if !t.alive? + return false + elsif pipeline.ready? + return true + else + sleep 0.01 + end + end end def stop_pipeline(id) @@ -326,10 +334,11 @@ def upgrade_pipeline(pipeline_id, new_pipeline) stop_pipeline(pipeline_id) reset_pipeline_metrics(pipeline_id) @pipelines[pipeline_id] = new_pipeline - start_pipeline(pipeline_id) - @reload_metric.namespace([pipeline_id.to_sym, :reloads]).tap do |n| - n.increment(:successes) - n.gauge(:last_success_timestamp, LogStash::Timestamp.now) + if start_pipeline(pipeline_id) # pipeline started successfuly + @reload_metric.namespace([pipeline_id.to_sym, :reloads]).tap do |n| + n.increment(:successes) + n.gauge(:last_success_timestamp, LogStash::Timestamp.now) + end end end diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 21b925c395d..bafce331e41 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -546,5 +546,43 @@ class DummyOutput2 < DummyOutput; end expect(value).to be > 0 end end + + context "when reloading a config that raises exception on pipeline.run" do + let(:new_config) { "input { generator { count => 10000 } }" } + let(:new_config_generator_counter) { 500 } + + class BrokenGenerator < LogStash::Inputs::Generator + def register + raise ArgumentError + end + end + + before :each do + + allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(BrokenGenerator) + + File.open(config_path, "w") do |f| + f.write(new_config) + f.fsync + end + + end + + it "does not increase the successful reload count" do + expect { subject.send(:"reload_pipeline!", "main") }.to_not change { + snapshot = subject.metric.collector.snapshot_metric + reload_metrics = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads] + reload_metrics[:successes].value + } + end + + it "increases the failured reload count" do + expect { subject.send(:"reload_pipeline!", "main") }.to change { + snapshot = subject.metric.collector.snapshot_metric + reload_metrics = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads] + reload_metrics[:failures].value + }.by(1) + end + end end end From 0bebf5a276a3d75b8e79f23e810b992f5eeff37f Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 10 Nov 2016 11:00:12 -0800 Subject: [PATCH 465/632] Add space in Log4j2 Fixes #6232 --- docs/static/logging.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/static/logging.asciidoc b/docs/static/logging.asciidoc index 8cdbb82fb7f..c601bd3f2da 100644 --- a/docs/static/logging.asciidoc +++ b/docs/static/logging.asciidoc @@ -3,7 +3,7 @@ Logstash emits internal logs during its operation, which are placed in `LS_HOME/logs` (or `/var/log/logstash` for DEB/RPM). The default logging level is `INFO`. Logstash's logging framework is based on -http://logging.apache.org/log4j/2.x/[Log4j2 framework], and much of its functionality is exposed directly to users. +http://logging.apache.org/log4j/2.x/[Log4j 2 framework], and much of its functionality is exposed directly to users. When debugging problems, particularly problems with plugins, it can be helpful to increase the logging level to `DEBUG` to emit more verbose messages. Previously, you could only set a log level that applied to the entire Logstash product. @@ -15,7 +15,7 @@ you can reduce noise due to excessive logging and focus on the problem area effe You can specify the log file location using `--path.logs` setting. -==== Log4j2 Configuration +==== Log4j 2 Configuration Logstash ships with a `log4j2.properties` file with out-of-the-box settings. You can modify this file directly to change the rotation policy, type, and other https://logging.apache.org/log4j/2.x/manual/configuration.html#Loggers[log4j2 configuration]. From 6626fa897cc821bb09bca07c163e99d1a06447bb Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 13 Oct 2016 09:53:59 -0400 Subject: [PATCH 466/632] This PR changes two things: - Allow plugins author to decide how their plugins are structured - Allow a new kind of plugin that allow plugins author to add hooks into logstash core. Fixes #6109 --- lib/pluginmanager/list.rb | 2 +- logstash-core/lib/logstash/agent.rb | 5 + logstash-core/lib/logstash/config/file.rb | 1 - logstash-core/lib/logstash/config/mixin.rb | 8 +- logstash-core/lib/logstash/config/registry.rb | 13 - .../lib/logstash/event_dispatcher.rb | 44 ++++ logstash-core/lib/logstash/plugin.rb | 54 +--- .../lib/logstash/plugins/hooks_registry.rb | 57 ++++ .../lib/logstash/plugins/registry.rb | 247 ++++++++++++++---- logstash-core/lib/logstash/runner.rb | 10 +- .../lib/logstash/universal_plugin.rb | 13 + logstash-core/spec/conditionals_spec.rb | 5 +- .../spec/logstash/event_dispatcher_spec.rb | 76 ++++++ logstash-core/spec/logstash/plugin_spec.rb | 5 +- .../logstash/plugins/hooks_registry_spec.rb | 60 +++++ .../spec/logstash/plugins/registry_spec.rb | 9 +- 16 files changed, 479 insertions(+), 130 deletions(-) delete mode 100644 logstash-core/lib/logstash/config/registry.rb create mode 100644 logstash-core/lib/logstash/event_dispatcher.rb create mode 100644 logstash-core/lib/logstash/plugins/hooks_registry.rb create mode 100644 logstash-core/lib/logstash/universal_plugin.rb create mode 100644 logstash-core/spec/logstash/event_dispatcher_spec.rb create mode 100644 logstash-core/spec/logstash/plugins/hooks_registry_spec.rb diff --git a/lib/pluginmanager/list.rb b/lib/pluginmanager/list.rb index 65f28c31cc0..90c900d9d76 100644 --- a/lib/pluginmanager/list.rb +++ b/lib/pluginmanager/list.rb @@ -9,7 +9,7 @@ class LogStash::PluginManager::List < LogStash::PluginManager::Command option "--installed", :flag, "List only explicitly installed plugins using bin/logstash-plugin install ...", :default => false option "--verbose", :flag, "Also show plugin version number", :default => false option "--group", "NAME", "Filter plugins per group: input, output, filter or codec" do |arg| - raise(ArgumentError, "should be one of: input, output, filter or codec") unless ['input', 'output', 'filter', 'codec'].include?(arg) + raise(ArgumentError, "should be one of: input, output, filter or codec") unless ['input', 'output', 'filter', 'codec', 'pack'].include?(arg) arg end diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 4e23dc8a75a..7fd368f1cbb 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -9,6 +9,7 @@ require "logstash/instrument/metric" require "logstash/pipeline" require "logstash/webserver" +require "logstash/event_dispatcher" require "stud/trap" require "logstash/config/loader" require "uri" @@ -52,6 +53,10 @@ def initialize(settings = LogStash::SETTINGS) configure_metrics_collectors @reload_metric = metric.namespace([:stats, :pipelines]) + + @dispatcher = LogStash::EventDispatcher.new(self) + LogStash::PluginRegistry.hooks.register_emitter(self.class, dispatcher) + dispatcher.fire(:after_initialize) end def execute diff --git a/logstash-core/lib/logstash/config/file.rb b/logstash-core/lib/logstash/config/file.rb index b0be8d0e81c..6b5ae954675 100644 --- a/logstash-core/lib/logstash/config/file.rb +++ b/logstash-core/lib/logstash/config/file.rb @@ -2,7 +2,6 @@ require "logstash/namespace" require "logstash/config/grammar" require "logstash/config/config_ast" -require "logstash/config/registry" require "logstash/errors" require "logger" diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 70ad888c74c..09cbd7a019f 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -1,6 +1,5 @@ # encoding: utf-8 require "logstash/namespace" -require "logstash/config/registry" require "logstash/plugins/registry" require "logstash/logging" require "logstash/util/password" @@ -73,6 +72,7 @@ def config_init(params) "in the future. #{extra} If you have any questions " + "about this, please visit the #logstash channel " + "on freenode irc.", :name => name, :plugin => self) + end if opts && opts[:obsolete] extra = opts[:obsolete].is_a?(String) ? opts[:obsolete] : "" @@ -181,11 +181,7 @@ module DSL # If no name given (nil), return the current name. def config_name(name = nil) @config_name = name if !name.nil? - LogStash::Config::Registry.registry[@config_name] = self - if self.respond_to?("plugin_type") - declare_plugin(self.plugin_type, @config_name) - end - return @config_name + @config_name end alias_method :config_plugin, :config_name diff --git a/logstash-core/lib/logstash/config/registry.rb b/logstash-core/lib/logstash/config/registry.rb deleted file mode 100644 index 8463716cf06..00000000000 --- a/logstash-core/lib/logstash/config/registry.rb +++ /dev/null @@ -1,13 +0,0 @@ -# encoding: utf-8 -require "logstash/namespace" - -# Global config registry. -module LogStash::Config::Registry - @registry = Hash.new - class << self - attr_accessor :registry - - # TODO(sissel): Add some helper methods here. - end -end # module LogStash::Config::Registry - diff --git a/logstash-core/lib/logstash/event_dispatcher.rb b/logstash-core/lib/logstash/event_dispatcher.rb new file mode 100644 index 00000000000..09038b8a421 --- /dev/null +++ b/logstash-core/lib/logstash/event_dispatcher.rb @@ -0,0 +1,44 @@ +# encoding: utf-8 +module LogStash + class EventDispatcher + java_import "java.util.concurrent.CopyOnWriteArrayList" + + attr_reader :emitter + + def initialize(emitter) + @emitter = emitter + @listeners = CopyOnWriteArrayList.new + end + + # This operation is slow because we use a CopyOnWriteArrayList + # But the majority of the addition will be done at bootstrap time + # So add_listener shouldn't be called often at runtime. + # + # On the other hand the notification could be called really often. + def add_listener(listener) + @listeners.add(listener) + end + + # This operation is slow because we use a `CopyOnWriteArrayList` as the backend, instead of a + # ConcurrentHashMap, but since we are mostly adding stuff and iterating the `CopyOnWriteArrayList` + # should provide a better performance. + # + # See note on add_listener, this method shouldn't be called really often. + def remove_listener(listener) + @listeners.remove(listener) + end + + def fire(method_name, *arguments) + @listeners.each do |listener| + if listener.respond_to?(method_name) + if arguments.size > 0 + listener.send(method_name, emitter, *arguments) + else + listener.send(method_name, emitter) + end + end + end + end + alias_method :execute, :fire + end +end diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index 9d43f02c9e9..a1856eef530 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -5,7 +5,6 @@ require "logstash/instrument/null_metric" require "concurrent" require "securerandom" -require "logstash/plugins/registry" class LogStash::Plugin include LogStash::Util::Loggable @@ -39,7 +38,6 @@ def hash self.class.name.hash end - def eql?(other) self.class.name == other.class.name && @params == other.params end @@ -120,50 +118,14 @@ def config_name self.class.config_name end - - # Look up a plugin by type and name. + # This is keep for backward compatibility, the logic was moved into the registry class + # but some plugins use this method to return a specific instance on lookup + # + # + # + # Should I remove this now and make sure the pipeline invoke the Registry or I should wait for 6.0 + # Its not really part of the public api but its used by the tests. def self.lookup(type, name) - path = "logstash/#{type}s/#{name}" - LogStash::Registry.instance.lookup(type ,name) do |plugin_klass, plugin_name| - is_a_plugin?(plugin_klass, plugin_name) - end - - rescue LoadError, NameError => e - logger.debug("Problems loading the plugin with", :type => type, :name => name, :path => path) - raise(LogStash::PluginLoadingError, I18n.t("logstash.pipeline.plugin-loading-error", :type => type, :name => name, :path => path, :error => e.to_s)) - end - - public - def self.declare_plugin(type, name) - path = "logstash/#{type}s/#{name}" - registry = LogStash::Registry.instance - registry.register(path, self) - end - - private - # lookup a plugin by type and name in the existing LogStash module namespace - # ex.: namespace_lookup("filter", "grok") looks for LogStash::Filters::Grok - # @param type [String] plugin type, "input", "ouput", "filter" - # @param name [String] plugin name, ex.: "grok" - # @return [Class] the plugin class or raises NameError - # @raise NameError if plugin class does not exist or is invalid - def self.namespace_lookup(type, name) - type_const = "#{type.capitalize}s" - namespace = LogStash.const_get(type_const) - # the namespace can contain constants which are not for plugins classes (do not respond to :config_name) - # namespace.constants is the shallow collection of all constants symbols in namespace - # note that below namespace.const_get(c) should never result in a NameError since c is from the constants collection - klass_sym = namespace.constants.find { |c| is_a_plugin?(namespace.const_get(c), name) } - klass = klass_sym && namespace.const_get(klass_sym) - raise(NameError) unless klass - klass - end - - # check if klass is a valid plugin for name - # @param klass [Class] plugin class - # @param name [String] plugin name - # @return [Boolean] true if klass is a valid plugin for name - def self.is_a_plugin?(klass, name) - klass.ancestors.include?(LogStash::Plugin) && klass.respond_to?(:config_name) && klass.config_name == name + LogStash::PluginRegistry.lookup_pipeline_plugin(type, name) end end # class LogStash::Plugin diff --git a/logstash-core/lib/logstash/plugins/hooks_registry.rb b/logstash-core/lib/logstash/plugins/hooks_registry.rb new file mode 100644 index 00000000000..1d917225669 --- /dev/null +++ b/logstash-core/lib/logstash/plugins/hooks_registry.rb @@ -0,0 +1,57 @@ +# encoding: utf-8 +module LogStash module Plugins + # This calls allow logstash to expose the endpoints for listeners + class HooksRegistry + java_import "java.util.concurrent.ConcurrentHashMap" + java_import "java.util.concurrent.CopyOnWriteArrayList" + + def initialize + @registered_emmitters = ConcurrentHashMap.new + @registered_hooks = ConcurrentHashMap.new + end + + def register_emitter(emitter_scope, dispatcher) + @registered_emmitters.put(emitter_scope, dispatcher) + sync_hooks + end + + def remove_emitter(emitter_scope) + @registered_emmitters.remove(emitter_scope) + end + + def register_hooks(emitter_scope, callback) + callbacks = @registered_hooks.computeIfAbsent(emitter_scope) do + CopyOnWriteArrayList.new + end + + callbacks.add(callback) + sync_hooks + end + + def emmitters_count + @registered_emmitters.size + end + + def hooks_count(emitter_scope = nil) + if emitter_scope.nil? + @registered_hooks.elements().collect(&:size).reduce(0, :+) + else + callbacks = @registered_hooks.get(emitter_scope) + callbacks.nil? ? 0 : @registered_hooks.get(emitter_scope).size + end + end + + private + def sync_hooks + @registered_emmitters.each do |emitter, dispatcher| + listeners = @registered_hooks.get(emitter) + + unless listeners.nil? + listeners.each do |listener| + dispatcher.add_listener(listener) + end + end + end + end + end +end end diff --git a/logstash-core/lib/logstash/plugins/registry.rb b/logstash-core/lib/logstash/plugins/registry.rb index cab0181f764..422c494e93a 100644 --- a/logstash-core/lib/logstash/plugins/registry.rb +++ b/logstash-core/lib/logstash/plugins/registry.rb @@ -1,86 +1,237 @@ # encoding: utf-8 -require 'singleton' require "rubygems/package" require "logstash/util/loggable" +require "logstash/plugin" +require "logstash/plugins/hooks_registry" -module LogStash +module LogStash module Plugins class Registry include LogStash::Util::Loggable - ## - # Placeholder class for registered plugins - ## - class Plugin - attr_reader :type, :name + # Add a bit more sanity with when interacting with the rubygems' + # specifications database, most of out code interact directly with really low level + # components of bundler/rubygems we need to encapsulate that and this is a start. + class GemRegistry + LOGSTASH_METADATA_KEY = "logstash_plugin" - def initialize(type, name) - @type = type - @name = name + class << self + def available_libraries + ::Gem::Specification + end + + def logstash_plugins + available_libraries + .select { |spec| spec.metadata && spec.metadata[LOGSTASH_METADATA_KEY] } + .collect { |spec| PluginRawContext.new(spec) } + end end + end + + class PluginRawContext + HOOK_FILE = "logstash_registry.rb" + NAME_DELIMITER = "-" + + attr_reader :spec - def path - "logstash/#{type}s/#{name}" + def initialize(spec) + @spec = spec + @destructured_name = spec.name.split(NAME_DELIMITER) end - def cannonic_gem_name - "logstash-#{type}-#{name}" + def name + @destructured_name[2..-1].join(NAME_DELIMITER) end - def installed? - find_plugin_spec(cannonic_gem_name).any? + def type + @destructured_name[1] end - private + # In the context of the plugin, the hook file available need to exist in any top level + # required paths. + # + # Example for the logstash-output-elasticsearch we have this line in the gemspec. + # + # s.require_paths = ["lib"], so the we will expect to have a `logstash_registry.rb` file in the `lib` + # directory. + def hooks_file + @hook_file ||= spec.full_require_paths.collect do |path| + f = ::File.join(path, HOOK_FILE) + ::File.exist?(f) ? f : nil + end.compact.first + end - def find_plugin_spec(name) - specs = ::Gem::Specification.find_all_by_name(name) - specs.select{|spec| logstash_plugin_spec?(spec)} + def has_hooks? + !hooks_file.nil? end - def logstash_plugin_spec?(spec) - spec.metadata && spec.metadata["logstash_plugin"] == "true" + def execute_hooks! + if has_hooks? + require hooks_file + else + raise ArgumentError, "#execute_hooks! called but no hooks file where found for #{name} of type #{type}" + end end + end + class PluginSpecification + attr_reader :type, :name, :klass + + def initialize(type, name, klass) + @type = type.to_sym + @name = name + @klass = klass + end end - include Singleton + class UniversalPluginSpecification < PluginSpecification + def initialize(type, name, klass) + super(type, name, klass) + @instance = klass.new + end + + def register(hooks, settings) + @instance.register_hooks(hooks) + @instance.additionals_settings(settings) + end + end + + attr_reader :hooks def initialize - @registry = {} - @logger = self.logger + @registry = {} + @hooks = HooksRegistry.new end - def lookup(type, plugin_name, &block) + def setup! + load_available_plugins + execute_universal_plugins + end - plugin = Plugin.new(type, plugin_name) + def execute_universal_plugins + @registry.values + .select { |specification| specification.is_a?(UniversalPluginSpecification) } + .each { |specification| specification.register(hooks, LogStash::SETTINGS) } + end - if plugin.installed? - return @registry[plugin.path] if registered?(plugin.path) - require plugin.path - klass = @registry[plugin.path] - if block_given? # if provided pass a block to do validation - raise LoadError unless block.call(klass, plugin_name) + def load_available_plugins + GemRegistry.logstash_plugins.each do |plugin_context| + # When a plugin has a HOOK_FILE defined, its the responsability of the plugin + # to register itself to the registry of available plugins. + # + # Legacy plugin will lazy register themselves + if plugin_context.has_hooks? + begin + logger.debug("Executing hooks", :name => plugin_context.name, :type => plugin_context.type, :hooks_file => plugin_context.hooks_file) + plugin_context.execute_hooks! + rescue => e + logger.error("error occured when loading plugins hooks file", :name => plugin_context.name, :type => plugin_context.type, :exception => e.message, :stacktrace => e.backtrace ) + end end - return klass - else - # The plugin was defined directly in the code, so there is no need to use the - # require way of loading classes - return @registry[plugin.path] if registered?(plugin.path) - raise LoadError end - rescue => e - @logger.warn("Problems loading a plugin with", :type => type, :name => plugin, :path => plugin.path, - :error_message => e.message, :error_class => e.class, :error_backtrace => e.backtrace) - raise LoadError, "Problems loading the requested plugin named #{plugin_name} of type #{type}. Error: #{e.class} #{e.message}" end - def register(path, klass) - @registry[path] = klass + def lookup(type, plugin_name, &block) + plugin = get(type, plugin_name) + + # Assume that we have a legacy plugin + if plugin.nil? + begin + path = "logstash/#{type}s/#{plugin_name}" + require path + klass = namespace_lookup(type, plugin_name) + plugin = lazy_add(type, plugin_name, klass) + rescue => e + logger.warn("Problems loading a plugin with", + :type => type, + :name => plugin_name, + :path => path, + :error_message => e.message, + :error_class => e.class, + :error_backtrace => e.backtrace) + + raise LoadError, "Problems loading the requested plugin named #{plugin_name} of type #{type}. Error: #{e.class} #{e.message}" + end + end + + if block_given? # if provided pass a block to do validation + raise LoadError unless block.call(plugin.klass, plugin_name) + end + + return plugin.klass + end + + def lookup_pipeline_plugin(type, name) + LogStash::PluginRegistry.lookup(type, name) do |plugin_klass, plugin_name| + is_a_plugin?(plugin_klass, plugin_name) + end + rescue LoadError, NameError => e + logger.debug("Problems loading the plugin with", :type => type, :name => name) + raise(LogStash::PluginLoadingError, I18n.t("logstash.pipeline.plugin-loading-error", :type => type, :name => name, :error => e.to_s)) + end + + def lazy_add(type, name, klass) + logger.error("Lazy Adding plugin to the registry", :name => name, :type => type, :class => klass) + add_plugin(type, name, klass) + end + + def add(type, name, klass) + logger.error("Adding plugin to the registry", :name => name, :type => type, :class => klass) + add_plugin(type, name, klass) + end + + def get(type, plugin_name) + @registry[key_for(type, plugin_name)] + end + + def exists?(type, name) + @registry.include?(key_for(type, name)) + end + + def size + @registry.size + end + + private + # lookup a plugin by type and name in the existing LogStash module namespace + # ex.: namespace_lookup("filter", "grok") looks for LogStash::Filters::Grok + # @param type [String] plugin type, "input", "ouput", "filter" + # @param name [String] plugin name, ex.: "grok" + # @return [Class] the plugin class or raises NameError + # @raise NameError if plugin class does not exist or is invalid + def namespace_lookup(type, name) + type_const = "#{type.capitalize}s" + namespace = LogStash.const_get(type_const) + # the namespace can contain constants which are not for plugins classes (do not respond to :config_name) + # namespace.constants is the shallow collection of all constants symbols in namespace + # note that below namespace.const_get(c) should never result in a NameError since c is from the constants collection + klass_sym = namespace.constants.find { |c| is_a_plugin?(namespace.const_get(c), name) } + klass = klass_sym && namespace.const_get(klass_sym) + + raise(NameError) unless klass + klass + end + + # check if klass is a valid plugin for name + # @param klass [Class] plugin class + # @param name [String] plugin name + # @return [Boolean] true if klass is a valid plugin for name + def is_a_plugin?(klass, name) + klass.ancestors.include?(LogStash::Plugin) && klass.respond_to?(:config_name) && klass.config_name == name + end + + def add_plugin(type, name, klass) + if !exists?(type, name) + specification_klass = type == :universal ? UniversalPluginSpecification : PluginSpecification + @registry[key_for(type, name)] = specification_klass.new(type, name, klass) + else + logger.info("Ignoring, plugin already added to the registry", :name => name, :type => type, :klass => klass) + end end - def registered?(path) - @registry.has_key?(path) + def key_for(type, plugin_name) + "#{type}-#{plugin_name}" end + end end - end + PluginRegistry = Plugins::Registry.new end diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index fb30d59e90a..5a80df14ffe 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -18,6 +18,7 @@ require "logstash/patches/clamp" require "logstash/settings" require "logstash/version" +require "logstash/plugins/registry" class LogStash::Runner < Clamp::StrictCommand include LogStash::Util::Loggable @@ -198,6 +199,9 @@ def execute logger.warn("--config.debug was specified, but log.level was not set to \'debug\'! No config info will be logged.") end + LogStash::PluginRegistry.setup! + @settings.validate_all + LogStash::Util::set_thread_name(self.class.name) if RUBY_VERSION < "1.9.2" @@ -223,7 +227,7 @@ def execute return start_shell(setting("interactive"), binding) if setting("interactive") - @settings.validate_all + @settings.format_settings.each {|line| logger.debug(line) } @@ -334,10 +338,10 @@ def configure_plugin_paths(paths) end def create_agent(*args) - LogStash::Agent.new(*args) + agent = LogStash::Agent.new(*args) + agent end - # Emit a failure message and abort. def fail(message) signal_usage_error(message) diff --git a/logstash-core/lib/logstash/universal_plugin.rb b/logstash-core/lib/logstash/universal_plugin.rb new file mode 100644 index 00000000000..3891bdc14d5 --- /dev/null +++ b/logstash-core/lib/logstash/universal_plugin.rb @@ -0,0 +1,13 @@ +# encoding: utf-8 +module LogStash + class UniversalPlugin + def initialize + end + + def register_hooks(hookManager) + end + + def additionals_settings(settings) + end + end +end diff --git a/logstash-core/spec/conditionals_spec.rb b/logstash-core/spec/conditionals_spec.rb index d831513fbfb..2433baf60df 100644 --- a/logstash-core/spec/conditionals_spec.rb +++ b/logstash-core/spec/conditionals_spec.rb @@ -26,6 +26,8 @@ def conditional(expression, &block) extend ConditionalFanciness class DummyNullOutput < LogStash::Outputs::Base + config_name "dummynull" + def register end def multi_receive(events) @@ -33,7 +35,7 @@ def multi_receive(events) end before do - LogStash::Registry.instance.register("logstash/outputs/dummynull", DummyNullOutput) + LogStash::PluginRegistry.add(:output, "dummynull", DummyNullOutput) end describe "simple" do @@ -436,5 +438,4 @@ def multi_receive(events) expect(subject[2].get("cond2")).to eq("true") end end - end diff --git a/logstash-core/spec/logstash/event_dispatcher_spec.rb b/logstash-core/spec/logstash/event_dispatcher_spec.rb new file mode 100644 index 00000000000..263b3b23a5f --- /dev/null +++ b/logstash-core/spec/logstash/event_dispatcher_spec.rb @@ -0,0 +1,76 @@ +# encoding: utf-8 +# +require "logstash/event_dispatcher" + +describe LogStash::EventDispatcher do + class DummyEmitter + attr_reader :dispatcher + + def initialize + @dispatcher = LogStash::EventDispatcher.new(self) + end + + def method_exists + dispatcher.fire(:method_exists) + end + + def method_exists_with_arguments(argument1, argument2, argument3) + dispatcher.fire(:method_exists_with_arguments, argument1, argument2, argument3) + end + + def method_do_not_exist + dispatcher.fire(:method_do_not_exist) + end + end + + class CustomSpy + def method_exists + end + + def method_exists_with_arguments(argument1, argument2, argument3) + end + end + + let(:listener) { CustomSpy } + subject(:emitter) { DummyEmitter.new } + + describe "Emits events" do + before do + emitter.dispatcher.add_listener(listener) + end + + context "when the method exist" do + it "calls the method without arguments" do + expect(listener).to receive(:method_exists).with(emitter) + emitter.method_exists + end + + it "calls the method with arguments" do + expect(listener).to receive(:method_exists_with_arguments).with(emitter, 1, 2, 3) + emitter.method_exists_with_arguments(1, 2, 3) + end + end + + context "when the method doesn't exist on the listener" do + it "should not raise an exception" do + expect { emitter.method_do_not_exist }.not_to raise_error + end + end + end + + describe "Configuring listeners" do + it "adds a listener to an emitter" do + expect(listener).to receive(:method_exists).with(emitter) + emitter.dispatcher.add_listener(listener) + emitter.method_exists + end + + it "allows to remove a listner to an emitter" do + expect(listener).to receive(:method_exists).with(emitter).once + emitter.dispatcher.add_listener(listener) + emitter.method_exists + emitter.dispatcher.remove_listener(listener) + emitter.method_exists + end + end +end diff --git a/logstash-core/spec/logstash/plugin_spec.rb b/logstash-core/spec/logstash/plugin_spec.rb index 6ef3398b879..651c6be8f49 100644 --- a/logstash-core/spec/logstash/plugin_spec.rb +++ b/logstash-core/spec/logstash/plugin_spec.rb @@ -36,14 +36,13 @@ class LogStash::Filters::LadyGaga < LogStash::Filters::Base describe "plugin signup in the registry" do - let(:registry) { LogStash::Registry.instance } + let(:registry) { LogStash::PluginRegistry } it "should be present in the registry" do class LogStash::Filters::MyPlugin < LogStash::Filters::Base config_name "my_plugin" end - path = "logstash/filters/my_plugin" - expect(registry.registered?(path)).to eq(true) + expect(registry.exists?(:filter, "my_plugin")).to eq(true) end end diff --git a/logstash-core/spec/logstash/plugins/hooks_registry_spec.rb b/logstash-core/spec/logstash/plugins/hooks_registry_spec.rb new file mode 100644 index 00000000000..c45a219dbee --- /dev/null +++ b/logstash-core/spec/logstash/plugins/hooks_registry_spec.rb @@ -0,0 +1,60 @@ +# encoding: utf-8 +require "logstash/event_dispatcher" +require "logstash/plugins/hooks_registry" + +describe LogStash::Plugins::HooksRegistry do + class DummyEmitter + attr_reader :dispatcher + + def initialize + @dispatcher = LogStash::EventDispatcher.new(self) + end + + def do_work + dispatcher.fire(:do_work) + end + end + + class DummyListener + def initialize + @work = false + end + + def do_work(emitter = nil) + @work = true + end + + def work? + @work + end + end + + subject { described_class.new } + + let(:emitter) { DummyEmitter.new } + let(:listener) { DummyListener.new } + + it "allow to register an emitter" do + expect { subject.register_emitter(emitter.class, emitter.dispatcher) }.to change { subject.emmitters_count }.by(1) + end + + it "allow to remove an emitter" do + subject.register_emitter(emitter.class, emitter.dispatcher) + expect { subject.remove_emitter(emitter.class)}.to change { subject.emmitters_count }.by(-1) + end + + it "allow to register hooks to emitters" do + expect { subject.register_hooks(emitter.class, listener) }.to change { subject.hooks_count }.by(1) + expect { subject.register_hooks(emitter.class, listener) }.to change { subject.hooks_count(emitter.class) }.by(1) + end + + it "link the emitter class to the listener" do + subject.register_emitter(emitter.class, emitter.dispatcher) + subject.register_hooks(emitter.class, listener) + + expect(listener.work?).to be_falsey + emitter.do_work + + expect(listener.work?).to be_truthy + end +end diff --git a/logstash-core/spec/logstash/plugins/registry_spec.rb b/logstash-core/spec/logstash/plugins/registry_spec.rb index f109f68653a..bb703560673 100644 --- a/logstash-core/spec/logstash/plugins/registry_spec.rb +++ b/logstash-core/spec/logstash/plugins/registry_spec.rb @@ -8,15 +8,12 @@ class LogStash::Inputs::Dummy < LogStash::Inputs::Base config_name "dummy" def register; end - end -describe LogStash::Registry do - - let(:registry) { described_class.instance } +describe LogStash::Plugins::Registry do + let(:registry) { described_class.new } context "when loading installed plugins" do - let(:plugin) { double("plugin") } it "should return the expected class" do @@ -52,6 +49,4 @@ def register; end expect { registry.lookup("input", "elastic") }.to raise_error(LoadError) end end - end - From 58ccca702843254ea9fd8d9ee527577303e20522 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 21 Oct 2016 09:41:13 -0400 Subject: [PATCH 467/632] fixing the tests Fixes #6109 --- logstash-core/lib/logstash/plugin.rb | 4 +--- logstash-core/lib/logstash/plugins/registry.rb | 4 ++-- logstash-core/spec/api/spec_helper.rb | 1 + logstash-core/spec/support/mocks_classes.rb | 2 ++ 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index a1856eef530..715b285873c 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -121,10 +121,8 @@ def config_name # This is keep for backward compatibility, the logic was moved into the registry class # but some plugins use this method to return a specific instance on lookup # - # - # # Should I remove this now and make sure the pipeline invoke the Registry or I should wait for 6.0 - # Its not really part of the public api but its used by the tests. + # Its not really part of the public api but its used by the tests a lot to mock the plugins. def self.lookup(type, name) LogStash::PluginRegistry.lookup_pipeline_plugin(type, name) end diff --git a/logstash-core/lib/logstash/plugins/registry.rb b/logstash-core/lib/logstash/plugins/registry.rb index 422c494e93a..a8ec46a5e23 100644 --- a/logstash-core/lib/logstash/plugins/registry.rb +++ b/logstash-core/lib/logstash/plugins/registry.rb @@ -137,7 +137,7 @@ def lookup(type, plugin_name, &block) if plugin.nil? begin path = "logstash/#{type}s/#{plugin_name}" - require path + require path rescue LoadError # Plugin might be already defined in the current scope klass = namespace_lookup(type, plugin_name) plugin = lazy_add(type, plugin_name, klass) rescue => e @@ -170,7 +170,7 @@ def lookup_pipeline_plugin(type, name) end def lazy_add(type, name, klass) - logger.error("Lazy Adding plugin to the registry", :name => name, :type => type, :class => klass) + logger.error("On demand adding plugin to the registry", :name => name, :type => type, :class => klass) add_plugin(type, name, klass) end diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index 8e4912ddf84..31ec6f27113 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -5,6 +5,7 @@ require "logstash/devutils/rspec/spec_helper" $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) require "lib/api/support/resource_dsl_methods" +require_relative "../support/mocks_classes" require 'rspec/expectations' require "logstash/settings" require 'rack/test' diff --git a/logstash-core/spec/support/mocks_classes.rb b/logstash-core/spec/support/mocks_classes.rb index d90318d5330..f16d747371d 100644 --- a/logstash-core/spec/support/mocks_classes.rb +++ b/logstash-core/spec/support/mocks_classes.rb @@ -2,6 +2,7 @@ require "logstash/outputs/base" require "thread" +module LogStash module Outputs class DummyOutput < LogStash::Outputs::Base config_name "dummyoutput" milestone 2 @@ -47,3 +48,4 @@ def receive(event) def close end end +end end From 3a652a3076f33809bae0e2bdea61e6406394db5b Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 21 Oct 2016 14:12:56 -0400 Subject: [PATCH 468/632] adjust the specs Fixes #6109 --- .../lib/logstash/plugins/registry.rb | 10 ++++-- logstash-core/spec/logstash/agent_spec.rb | 2 +- logstash-core/spec/logstash/plugin_spec.rb | 13 +------- .../spec/logstash/plugins/registry_spec.rb | 31 +++++++++++++------ 4 files changed, 32 insertions(+), 24 deletions(-) diff --git a/logstash-core/lib/logstash/plugins/registry.rb b/logstash-core/lib/logstash/plugins/registry.rb index a8ec46a5e23..5e48871af5f 100644 --- a/logstash-core/lib/logstash/plugins/registry.rb +++ b/logstash-core/lib/logstash/plugins/registry.rb @@ -132,12 +132,18 @@ def load_available_plugins def lookup(type, plugin_name, &block) plugin = get(type, plugin_name) - # Assume that we have a legacy plugin if plugin.nil? begin path = "logstash/#{type}s/#{plugin_name}" - require path rescue LoadError # Plugin might be already defined in the current scope + + begin + require path + rescue LoadError + # Plugin might be already defined in the current scope + # This scenario often happen in test when we write an adhoc class + end + klass = namespace_lookup(type, plugin_name) plugin = lazy_add(type, plugin_name, klass) rescue => e diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index bafce331e41..2c4aa6d7929 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -411,7 +411,7 @@ # We need to create theses dummy classes to know how many # events where actually generated by the pipeline and successfully send to the output. # Theses values are compared with what we store in the metric store. - class DummyOutput2 < DummyOutput; end + class DummyOutput2 < LogStash::Outputs::DummyOutput; end let!(:dummy_output) { DummyOutput.new } let!(:dummy_output2) { DummyOutput2.new } diff --git a/logstash-core/spec/logstash/plugin_spec.rb b/logstash-core/spec/logstash/plugin_spec.rb index 651c6be8f49..2313ca27d95 100644 --- a/logstash-core/spec/logstash/plugin_spec.rb +++ b/logstash-core/spec/logstash/plugin_spec.rb @@ -31,19 +31,8 @@ class LogStash::Filters::LadyGaga < LogStash::Filters::Base config_name "lady_gaga" end - expect(LogStash::Plugin.lookup("filter", "lady_gaga")).to eq(LogStash::Filters::LadyGaga) - end - - describe "plugin signup in the registry" do - - let(:registry) { LogStash::PluginRegistry } - it "should be present in the registry" do - class LogStash::Filters::MyPlugin < LogStash::Filters::Base - config_name "my_plugin" - end - expect(registry.exists?(:filter, "my_plugin")).to eq(true) - end + expect(LogStash::Plugin.lookup("filter", "lady_gaga")).to eq(LogStash::Filters::LadyGaga) end describe "#inspect" do diff --git a/logstash-core/spec/logstash/plugins/registry_spec.rb b/logstash-core/spec/logstash/plugins/registry_spec.rb index bb703560673..f26068ea5ab 100644 --- a/logstash-core/spec/logstash/plugins/registry_spec.rb +++ b/logstash-core/spec/logstash/plugins/registry_spec.rb @@ -10,6 +10,13 @@ class LogStash::Inputs::Dummy < LogStash::Inputs::Base def register; end end + +class LogStash::Inputs::NewPlugin < LogStash::Inputs::Base + config_name "new_plugin" + + def register; end +end + describe LogStash::Plugins::Registry do let(:registry) { described_class.new } @@ -22,18 +29,13 @@ def register; end end it "should raise an error if can not find the plugin class" do - expect(LogStash::Registry::Plugin).to receive(:new).with("input", "elastic").and_return(plugin) - expect(plugin).to receive(:path).and_return("logstash/input/elastic").twice - expect(plugin).to receive(:installed?).and_return(true) - expect { registry.lookup("input", "elastic") }.to raise_error(LoadError) + expect { registry.lookup("input", "do-not-exist-elastic") }.to raise_error(LoadError) end it "should load from registry is already load" do - registry.lookup("input", "stdin") - expect(registry).to receive(:registered?).and_return(true).once - registry.lookup("input", "stdin") - internal_registry = registry.instance_variable_get("@registry") - expect(internal_registry).to include("logstash/inputs/stdin" => LogStash::Inputs::Stdin) + expect(registry.exists?(:input, "stdin")).to be_falsey + expect { registry.lookup("input", "new_plugin") }.to change { registry.size }.by(1) + expect { registry.lookup("input", "new_plugin") }.not_to change { registry.size } end end @@ -49,4 +51,15 @@ def register; end expect { registry.lookup("input", "elastic") }.to raise_error(LoadError) end end + + context "when loading plugin manually configured" do + it "should return the plugin" do + class SimplePlugin + end + + expect { registry.lookup("filter", "simple_plugin") }.to raise_error(LoadError) + registry.add(:filter, "simple_plugin", SimplePlugin) + expect(registry.lookup("filter", "simple_plugin")).to eq(SimplePlugin) + end + end end From 02f15c8b417d0147d72d6679010c9b28aee9a555 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 24 Oct 2016 09:52:32 -0400 Subject: [PATCH 469/632] rescope the mock classes Fixes #6109 --- logstash-core/spec/logstash/pipeline_spec.rb | 6 +- logstash-core/spec/support/mocks_classes.rb | 64 ++++++++++---------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 06007ecb1de..927eafeacb2 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -104,15 +104,15 @@ class TestPipeline < LogStash::Pipeline describe "event cancellation" do # test harness for https://github.com/elastic/logstash/issues/6055 - let(:output) { DummyOutputWithEventsArray.new } + let(:output) { LogStash::Outputs::DummyOutputWithEventsArray.new } before do allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutputwitheventsarray").and_return(DummyOutputWithEventsArray) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutputwitheventsarray").and_return(LogStash::Outputs::DummyOutputWithEventsArray) allow(LogStash::Plugin).to receive(:lookup).with("filter", "drop").and_call_original allow(LogStash::Plugin).to receive(:lookup).with("filter", "mutate").and_call_original allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_call_original - allow(DummyOutputWithEventsArray).to receive(:new).with(any_args).and_return(output) + allow(LogStash::Outputs::DummyOutputWithEventsArray).to receive(:new).with(any_args).and_return(output) end let(:config) do diff --git a/logstash-core/spec/support/mocks_classes.rb b/logstash-core/spec/support/mocks_classes.rb index f16d747371d..3cdf0a6dc01 100644 --- a/logstash-core/spec/support/mocks_classes.rb +++ b/logstash-core/spec/support/mocks_classes.rb @@ -3,49 +3,49 @@ require "thread" module LogStash module Outputs -class DummyOutput < LogStash::Outputs::Base - config_name "dummyoutput" - milestone 2 + class DummyOutput < LogStash::Outputs::Base + config_name "dummyoutput" + milestone 2 - attr_reader :num_closes, :events + attr_reader :num_closes, :events - def initialize(params={}) - super - @num_closes = 0 - @events = Queue.new - end + def initialize(params={}) + super + @num_closes = 0 + @events = Queue.new + end - def register - end + def register + end - def receive(event) - @events << event - end + def receive(event) + @events << event + end - def close - @num_closes = 1 + def close + @num_closes = 1 + end end -end -class DummyOutputWithEventsArray < LogStash::Outputs::Base - config_name "dummyoutput2" - milestone 2 + class DummyOutputWithEventsArray < LogStash::Outputs::Base + config_name "dummyoutput2" + milestone 2 - attr_reader :events + attr_reader :events - def initialize(params={}) - super - @events = [] - end + def initialize(params={}) + super + @events = [] + end - def register - end + def register + end - def receive(event) - @events << event - end + def receive(event) + @events << event + end - def close + def close + end end -end end end From 2dd8cf51fc35c9b35a6376ff7e911abc505e03e7 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 2 Nov 2016 09:50:08 -0400 Subject: [PATCH 470/632] fixes from reviews from @joao Fixes #6109 --- .../lib/logstash/event_dispatcher.rb | 6 +- .../lib/logstash/plugins/registry.rb | 77 ++++++++++--------- logstash-core/lib/logstash/runner.rb | 7 +- 3 files changed, 45 insertions(+), 45 deletions(-) diff --git a/logstash-core/lib/logstash/event_dispatcher.rb b/logstash-core/lib/logstash/event_dispatcher.rb index 09038b8a421..34b92311ca5 100644 --- a/logstash-core/lib/logstash/event_dispatcher.rb +++ b/logstash-core/lib/logstash/event_dispatcher.rb @@ -31,11 +31,7 @@ def remove_listener(listener) def fire(method_name, *arguments) @listeners.each do |listener| if listener.respond_to?(method_name) - if arguments.size > 0 - listener.send(method_name, emitter, *arguments) - else - listener.send(method_name, emitter) - end + listener.send(method_name, emitter, *arguments) end end end diff --git a/logstash-core/lib/logstash/plugins/registry.rb b/logstash-core/lib/logstash/plugins/registry.rb index 5e48871af5f..13bf2be1b4a 100644 --- a/logstash-core/lib/logstash/plugins/registry.rb +++ b/logstash-core/lib/logstash/plugins/registry.rb @@ -15,12 +15,12 @@ class GemRegistry LOGSTASH_METADATA_KEY = "logstash_plugin" class << self - def available_libraries + def installed_gems ::Gem::Specification end def logstash_plugins - available_libraries + installed_gems .select { |spec| spec.metadata && spec.metadata[LOGSTASH_METADATA_KEY] } .collect { |spec| PluginRawContext.new(spec) } end @@ -65,11 +65,7 @@ def has_hooks? end def execute_hooks! - if has_hooks? - require hooks_file - else - raise ArgumentError, "#execute_hooks! called but no hooks file where found for #{name} of type #{type}" - end + require hooks_file end end @@ -98,8 +94,8 @@ def register(hooks, settings) attr_reader :hooks def initialize - @registry = {} - @hooks = HooksRegistry.new + @registry = {} + @hooks = HooksRegistry.new end def setup! @@ -134,38 +130,47 @@ def lookup(type, plugin_name, &block) plugin = get(type, plugin_name) # Assume that we have a legacy plugin if plugin.nil? - begin - path = "logstash/#{type}s/#{plugin_name}" - - begin - require path - rescue LoadError - # Plugin might be already defined in the current scope - # This scenario often happen in test when we write an adhoc class - end - - klass = namespace_lookup(type, plugin_name) - plugin = lazy_add(type, plugin_name, klass) - rescue => e - logger.warn("Problems loading a plugin with", - :type => type, - :name => plugin_name, - :path => path, - :error_message => e.message, - :error_class => e.class, - :error_backtrace => e.backtrace) - - raise LoadError, "Problems loading the requested plugin named #{plugin_name} of type #{type}. Error: #{e.class} #{e.message}" - end + plugin = legacy_lookup(type, plugin_name) end if block_given? # if provided pass a block to do validation - raise LoadError unless block.call(plugin.klass, plugin_name) + raise LoadError, "Block validation fails for plugin named #{plugin_name} of type #{type}," unless block.call(plugin.klass, plugin_name) end return plugin.klass end + # The legacy_lookup method uses the 1.5->5.0 file structure to find and match + # a plugin and will do a lookup on the namespace of the required class to find a matching + # plugin with the appropriate type. + def legacy_lookup(type, plugin_name) + begin + path = "logstash/#{type}s/#{plugin_name}" + + begin + require path + rescue LoadError + # Plugin might be already defined in the current scope + # This scenario often happen in test when we write an adhoc class + end + + klass = namespace_lookup(type, plugin_name) + plugin = lazy_add(type, plugin_name, klass) + rescue => e + logger.error("Problems loading a plugin with", + :type => type, + :name => plugin_name, + :path => path, + :error_message => e.message, + :error_class => e.class, + :error_backtrace => e.backtrace) + + raise LoadError, "Problems loading the requested plugin named #{plugin_name} of type #{type}. Error: #{e.class} #{e.message}" + end + + plugin + end + def lookup_pipeline_plugin(type, name) LogStash::PluginRegistry.lookup(type, name) do |plugin_klass, plugin_name| is_a_plugin?(plugin_klass, plugin_name) @@ -176,12 +181,12 @@ def lookup_pipeline_plugin(type, name) end def lazy_add(type, name, klass) - logger.error("On demand adding plugin to the registry", :name => name, :type => type, :class => klass) + logger.debug("On demand adding plugin to the registry", :name => name, :type => type, :class => klass) add_plugin(type, name, klass) end def add(type, name, klass) - logger.error("Adding plugin to the registry", :name => name, :type => type, :class => klass) + logger.debug("Adding plugin to the registry", :name => name, :type => type, :class => klass) add_plugin(type, name, klass) end @@ -230,7 +235,7 @@ def add_plugin(type, name, klass) specification_klass = type == :universal ? UniversalPluginSpecification : PluginSpecification @registry[key_for(type, name)] = specification_klass.new(type, name, klass) else - logger.info("Ignoring, plugin already added to the registry", :name => name, :type => type, :klass => klass) + logger.debug("Ignoring, plugin already added to the registry", :name => name, :type => type, :klass => klass) end end diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index 5a80df14ffe..fb3db38a37c 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -199,6 +199,8 @@ def execute logger.warn("--config.debug was specified, but log.level was not set to \'debug\'! No config info will be logged.") end + # We configure the registry and load any plugin that can register hooks + # with logstash, this need to be done before any operation. LogStash::PluginRegistry.setup! @settings.validate_all @@ -227,8 +229,6 @@ def execute return start_shell(setting("interactive"), binding) if setting("interactive") - - @settings.format_settings.each {|line| logger.debug(line) } if setting("config.string").nil? && setting("path.config").nil? @@ -338,8 +338,7 @@ def configure_plugin_paths(paths) end def create_agent(*args) - agent = LogStash::Agent.new(*args) - agent + LogStash::Agent.new(*args) end # Emit a failure message and abort. From 413dc350d2d9028f30a331368b2cfa799e248508 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 7 Nov 2016 11:14:25 -0500 Subject: [PATCH 471/632] Chagne PluginRegistry -> PLUGIN_REGISTRY Fixes #6109 --- .../lib/logstash-core-event-java_jars.rb | 25 ++++++------------- logstash-core/lib/logstash/agent.rb | 2 +- logstash-core/lib/logstash/plugin.rb | 2 +- .../lib/logstash/plugins/registry.rb | 4 +-- logstash-core/lib/logstash/runner.rb | 2 +- logstash-core/spec/conditionals_spec.rb | 2 +- 6 files changed, 13 insertions(+), 24 deletions(-) diff --git a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb index 068f1826201..b7a36ce2937 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb @@ -1,20 +1,9 @@ # this is a generated file, to avoid over-writing it just delete this comment -begin - require 'jar_dependencies' -rescue LoadError - require 'com/fasterxml/jackson/core/jackson-databind/2.7.3/jackson-databind-2.7.3.jar' - require 'org/apache/logging/log4j/log4j-api/2.6.2/log4j-api-2.6.2.jar' - require 'com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar' - require 'com/fasterxml/jackson/module/jackson-module-afterburner/2.7.3/jackson-module-afterburner-2.7.3.jar' - require 'com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.7.3/jackson-dataformat-cbor-2.7.3.jar' - require 'com/fasterxml/jackson/core/jackson-core/2.7.3/jackson-core-2.7.3.jar' -end +require 'jar_dependencies' -if defined? Jars - require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.3' ) - require_jar( 'org.apache.logging.log4j', 'log4j-api', '2.6.2' ) - require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) - require_jar( 'com.fasterxml.jackson.module', 'jackson-module-afterburner', '2.7.3' ) - require_jar( 'com.fasterxml.jackson.dataformat', 'jackson-dataformat-cbor', '2.7.3' ) - require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.3' ) -end +require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) +require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.3' ) +require_jar( 'org.apache.logging.log4j', 'log4j-api', '2.6.2' ) +require_jar( 'com.fasterxml.jackson.module', 'jackson-module-afterburner', '2.7.3' ) +require_jar( 'com.fasterxml.jackson.dataformat', 'jackson-dataformat-cbor', '2.7.3' ) +require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.3' ) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 7fd368f1cbb..050467a6396 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -55,7 +55,7 @@ def initialize(settings = LogStash::SETTINGS) @reload_metric = metric.namespace([:stats, :pipelines]) @dispatcher = LogStash::EventDispatcher.new(self) - LogStash::PluginRegistry.hooks.register_emitter(self.class, dispatcher) + LogStash::PLUGIN_REGISTRY.hooks.register_emitter(self.class, dispatcher) dispatcher.fire(:after_initialize) end diff --git a/logstash-core/lib/logstash/plugin.rb b/logstash-core/lib/logstash/plugin.rb index 715b285873c..83dd76a2a79 100644 --- a/logstash-core/lib/logstash/plugin.rb +++ b/logstash-core/lib/logstash/plugin.rb @@ -124,6 +124,6 @@ def config_name # Should I remove this now and make sure the pipeline invoke the Registry or I should wait for 6.0 # Its not really part of the public api but its used by the tests a lot to mock the plugins. def self.lookup(type, name) - LogStash::PluginRegistry.lookup_pipeline_plugin(type, name) + LogStash::PLUGIN_REGISTRY.lookup_pipeline_plugin(type, name) end end # class LogStash::Plugin diff --git a/logstash-core/lib/logstash/plugins/registry.rb b/logstash-core/lib/logstash/plugins/registry.rb index 13bf2be1b4a..4b98068098c 100644 --- a/logstash-core/lib/logstash/plugins/registry.rb +++ b/logstash-core/lib/logstash/plugins/registry.rb @@ -172,7 +172,7 @@ def legacy_lookup(type, plugin_name) end def lookup_pipeline_plugin(type, name) - LogStash::PluginRegistry.lookup(type, name) do |plugin_klass, plugin_name| + LogStash::PLUGIN_REGISTRY.lookup(type, name) do |plugin_klass, plugin_name| is_a_plugin?(plugin_klass, plugin_name) end rescue LoadError, NameError => e @@ -244,5 +244,5 @@ def key_for(type, plugin_name) end end end - PluginRegistry = Plugins::Registry.new + PLUGIN_REGISTRY = Plugins::Registry.new end diff --git a/logstash-core/lib/logstash/runner.rb b/logstash-core/lib/logstash/runner.rb index fb3db38a37c..eeed1eb6bcd 100644 --- a/logstash-core/lib/logstash/runner.rb +++ b/logstash-core/lib/logstash/runner.rb @@ -201,7 +201,7 @@ def execute # We configure the registry and load any plugin that can register hooks # with logstash, this need to be done before any operation. - LogStash::PluginRegistry.setup! + LogStash::PLUGIN_REGISTRY.setup! @settings.validate_all LogStash::Util::set_thread_name(self.class.name) diff --git a/logstash-core/spec/conditionals_spec.rb b/logstash-core/spec/conditionals_spec.rb index 2433baf60df..52b2b4db53d 100644 --- a/logstash-core/spec/conditionals_spec.rb +++ b/logstash-core/spec/conditionals_spec.rb @@ -35,7 +35,7 @@ def multi_receive(events) end before do - LogStash::PluginRegistry.add(:output, "dummynull", DummyNullOutput) + LogStash::PLUGIN_REGISTRY.add(:output, "dummynull", DummyNullOutput) end describe "simple" do From a732d0cdea44ecc2d37b179b960f5409340f9f32 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 9 Nov 2016 16:23:26 -0500 Subject: [PATCH 472/632] Add a `transient_settings` concept to the settings handling When we load a yml file in logstash if a key isn't not found in the settings, we move that key and the corresponding value to a `transient_settings` hash. This give the time to the plugin to register new settings. When we call #validate_all we merge the `transient_settings` hash and do the validation, if a key is not found at that stage an excepton will be throw. Fixes #6109 --- logstash-core/lib/logstash/settings.rb | 22 +++++++++-- logstash-core/spec/logstash/settings_spec.rb | 39 ++++++++++++++++++++ 2 files changed, 57 insertions(+), 4 deletions(-) diff --git a/logstash-core/lib/logstash/settings.rb b/logstash-core/lib/logstash/settings.rb index 5bb1e649b56..20cf6bff9ed 100644 --- a/logstash-core/lib/logstash/settings.rb +++ b/logstash-core/lib/logstash/settings.rb @@ -9,6 +9,11 @@ class Settings def initialize @settings = {} + # Theses settings were loaded from the yaml file + # but we didn't find any settings to validate them, + # lets keep them around until we do `validate_all` at that + # time universal plugins could have added new settings. + @transient_settings = {} end def register(setting) @@ -52,8 +57,14 @@ def get_value(setting_name) end alias_method :get, :get_value - def set_value(setting_name, value) + def set_value(setting_name, value, graceful = false) get_setting(setting_name).set(value) + rescue ArgumentError => e + if graceful + @transient_settings[setting_name] = value + else + raise e + end end alias_method :set, :set_value @@ -65,8 +76,8 @@ def to_hash hash end - def merge(hash) - hash.each {|key, value| set_value(key, value) } + def merge(hash, graceful = false) + hash.each {|key, value| set_value(key, value, graceful) } self end @@ -96,10 +107,13 @@ def reset def from_yaml(yaml_path) settings = read_yaml(::File.join(yaml_path, "logstash.yml")) - self.merge(flatten_hash(settings)) + self.merge(flatten_hash(settings), true) end def validate_all + # lets merge the transient_settings again to see if new setting were added. + self.merge(@transient_settings) + @settings.each do |name, setting| setting.validate_value end diff --git a/logstash-core/spec/logstash/settings_spec.rb b/logstash-core/spec/logstash/settings_spec.rb index 138040fa62f..adfe3819f37 100644 --- a/logstash-core/spec/logstash/settings_spec.rb +++ b/logstash-core/spec/logstash/settings_spec.rb @@ -1,6 +1,7 @@ # encoding: utf-8 require "spec_helper" require "logstash/settings" +require "fileutils" describe LogStash::Settings do let(:numeric_setting_name) { "number" } @@ -86,4 +87,42 @@ end end end + + context "transient settings" do + subject do + settings = described_class.new + settings.register(LogStash::Setting::String.new("exist", "bonsoir")) + settings + end + + let(:values) { { "do.not.exist.on.boot" => true, "exist" => "bonjour" } } + let(:yaml_path) do + p = Stud::Temporary.pathname + FileUtils.mkdir_p(p) + + ::File.open(::File.join(p, "logstash.yml"), "w+") do |f| + f.write(YAML.dump(values)) + end + p + end + + it "allow to read yml file that contains unknown settings" do + expect { subject.from_yaml(yaml_path) }.not_to raise_error + end + + context "when running #validate_all" do + it "merge and validate all the registered setting" do + subject.from_yaml(yaml_path) + subject.register(LogStash::Setting::Boolean.new("do.not.exist.on.boot", false)) + + expect { subject.validate_all }.not_to raise_error + expect(subject.get("do.not.exist.on.boot")).to be_truthy + end + + it "raise an error when the settings doesn't exist" do + subject.from_yaml(yaml_path) + expect { subject.validate_all }.to raise_error(ArgumentError) + end + end + end end From 132dd7af890c0191286ebc1e287ffdacf940cd42 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 10 Nov 2016 09:31:38 -0500 Subject: [PATCH 473/632] bad merge Fixes #6109 --- logstash-core/lib/logstash/agent.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 050467a6396..ebdefefffb2 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -22,7 +22,7 @@ class LogStash::Agent include LogStash::Util::Loggable STARTED_AT = Time.now.freeze - attr_reader :metric, :name, :pipelines, :settings, :webserver + attr_reader :metric, :name, :pipelines, :settings, :webserver, :dispatcher attr_accessor :logger # initialize method for LogStash::Agent From 77294b9f5a05aa879c9b5c46da7faa5a84fd0bd7 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 10 Nov 2016 10:13:16 -0800 Subject: [PATCH 474/632] Add uptime millis stats Fixes #6236 --- logstash-core/lib/logstash/api/commands/stats.rb | 5 ++++- .../logstash/instrument/periodic_poller/jvm.rb | 15 +++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index 502c57fac03..60893b32a8e 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -8,6 +8,8 @@ module Api module Commands class Stats < Commands::Base def jvm + require "pry" + binding.pry { :threads => extract_metrics( [:jvm, :threads], @@ -15,7 +17,8 @@ def jvm :peak_count ), :mem => memory, - :gc => gc + :gc => gc, + :uptime_in_millis => service.get_shallow(:jvm, :uptime_in_millis) } end diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb index 744bfda8cc3..9c225c40035 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb @@ -7,6 +7,7 @@ java_import 'java.lang.management.ManagementFactory' java_import 'java.lang.management.OperatingSystemMXBean' java_import 'java.lang.management.GarbageCollectorMXBean' +java_import 'java.lang.management.RuntimeMXBean' java_import 'com.sun.management.UnixOperatingSystemMXBean' java_import 'javax.management.MBeanServer' java_import 'javax.management.ObjectName' @@ -41,12 +42,11 @@ def initialize(metric, options = {}) def collect raw = JRMonitor.memory.generate - collect_heap_metrics(raw) - collect_non_heap_metrics(raw) + collect_jvm_metrics(raw) collect_pools_metrics(raw) collect_threads_metrics collect_process_metrics - collect_gc_stats + collect_gc_stats end private @@ -98,9 +98,16 @@ def collect_process_metrics metric.gauge(path + [:mem], :total_virtual_in_bytes, process_metrics["mem"]["total_virtual_in_bytes"]) end + + def collect_jvm_metrics(data) + runtime_mx_bean = ManagementFactory.getRuntimeMXBean() + metric.gauge(:jvm, :uptime_in_millis, runtime_mx_bean.getUptime()) + collect_heap_metrics(data) + collect_non_heap_metrics(data) + end def collect_heap_metrics(data) - heap = aggregate_information_for(data["heap"].values) + heap = aggregate_information_for(data["heap"].values) heap[:used_percent] = (heap[:used_in_bytes] / heap[:max_in_bytes].to_f)*100.0 heap.each_pair do |key, value| From e78fce609baeec61bcfb5a73188d7fd2eb69475b Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 10 Nov 2016 12:24:44 -0800 Subject: [PATCH 475/632] Add JVM uptime stats Fixes #6236 --- logstash-core/lib/logstash/api/commands/stats.rb | 2 -- .../lib/logstash/instrument/periodic_poller/jvm.rb | 2 +- logstash-core/spec/api/lib/api/node_stats_spec.rb | 1 + qa/integration/services/monitoring_api.rb | 9 ++++++--- qa/integration/specs/monitoring_api_spec.rb | 11 +++++++++++ 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index 60893b32a8e..c82038be660 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -8,8 +8,6 @@ module Api module Commands class Stats < Commands::Base def jvm - require "pry" - binding.pry { :threads => extract_metrics( [:jvm, :threads], diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb index 9c225c40035..22142ba3cba 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb @@ -101,7 +101,7 @@ def collect_process_metrics def collect_jvm_metrics(data) runtime_mx_bean = ManagementFactory.getRuntimeMXBean() - metric.gauge(:jvm, :uptime_in_millis, runtime_mx_bean.getUptime()) + metric.gauge([:jvm], :uptime_in_millis, runtime_mx_bean.getUptime()) collect_heap_metrics(data) collect_non_heap_metrics(data) end diff --git a/logstash-core/spec/api/lib/api/node_stats_spec.rb b/logstash-core/spec/api/lib/api/node_stats_spec.rb index 448543d250b..a77a01c3e23 100644 --- a/logstash-core/spec/api/lib/api/node_stats_spec.rb +++ b/logstash-core/spec/api/lib/api/node_stats_spec.rb @@ -14,6 +14,7 @@ # DSL describing response structure root_structure = { "jvm"=>{ + "uptime_in_millis" => Numeric, "threads"=>{ "count"=>Numeric, "peak_count"=>Numeric diff --git a/qa/integration/services/monitoring_api.rb b/qa/integration/services/monitoring_api.rb index 27ef78b1611..7869133df77 100644 --- a/qa/integration/services/monitoring_api.rb +++ b/qa/integration/services/monitoring_api.rb @@ -5,9 +5,7 @@ class MonitoringAPI def pipeline_stats - resp = Manticore.get("http://localhost:9600/_node/stats/pipeline").body - stats_response = JSON.parse(resp) - stats_response["pipeline"] + node_stats["pipeline"] end def event_stats @@ -27,4 +25,9 @@ def node_info JSON.parse(resp) end + def node_stats + resp = Manticore.get("http://localhost:9600/_node/stats").body + JSON.parse(resp) + end + end diff --git a/qa/integration/specs/monitoring_api_spec.rb b/qa/integration/specs/monitoring_api_spec.rb index 90d16cbfeaf..1b9dcbf0f94 100644 --- a/qa/integration/specs/monitoring_api_spec.rb +++ b/qa/integration/specs/monitoring_api_spec.rb @@ -32,4 +32,15 @@ end end + it "can retrieve JVM stats" do + logstash_service = @fixture.get_service("logstash") + logstash_service.start_with_stdin + logstash_service.wait_for_logstash + + Stud.try(max_retry.times, RSpec::Expectations::ExpectationNotMetError) do + result = logstash_service.monitoring_api.node_stats + expect(result["jvm"]["uptime_in_millis"]).to be > 100 + end + end + end From b41407c99bed0ad8e14ff32b5b83a655c6b5856f Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 10 Nov 2016 17:22:20 -0800 Subject: [PATCH 476/632] Fix node stats test Fixes #6236 --- qa/integration/services/monitoring_api.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/qa/integration/services/monitoring_api.rb b/qa/integration/services/monitoring_api.rb index 7869133df77..e14f56e3db9 100644 --- a/qa/integration/services/monitoring_api.rb +++ b/qa/integration/services/monitoring_api.rb @@ -5,7 +5,9 @@ class MonitoringAPI def pipeline_stats - node_stats["pipeline"] + resp = Manticore.get("http://localhost:9600/_node/stats/pipeline").body + stats_response = JSON.parse(resp) + stats_response["pipeline"] end def event_stats From 183ab07ec01729e95b7e52f6f3d6541d0519256d Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 10 Nov 2016 18:18:31 -0800 Subject: [PATCH 477/632] shutdown after spec Fixes #6236 --- .../lib/logstash/instrument/periodic_poller/jvm.rb | 6 +++--- qa/integration/specs/monitoring_api_spec.rb | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb index 22142ba3cba..f51b38bb2b3 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb @@ -46,7 +46,7 @@ def collect collect_pools_metrics(raw) collect_threads_metrics collect_process_metrics - collect_gc_stats + collect_gc_stats end private @@ -104,10 +104,10 @@ def collect_jvm_metrics(data) metric.gauge([:jvm], :uptime_in_millis, runtime_mx_bean.getUptime()) collect_heap_metrics(data) collect_non_heap_metrics(data) - end + end def collect_heap_metrics(data) - heap = aggregate_information_for(data["heap"].values) + heap = aggregate_information_for(data["heap"].values) heap[:used_percent] = (heap[:used_in_bytes] / heap[:max_in_bytes].to_f)*100.0 heap.each_pair do |key, value| diff --git a/qa/integration/specs/monitoring_api_spec.rb b/qa/integration/specs/monitoring_api_spec.rb index 1b9dcbf0f94..f9045c49d2c 100644 --- a/qa/integration/specs/monitoring_api_spec.rb +++ b/qa/integration/specs/monitoring_api_spec.rb @@ -12,6 +12,10 @@ @fixture.teardown } + after(:each) { + @fixture.get_service("logstash").teardown + } + let(:number_of_events) { 5 } let(:max_retry) { 120 } @@ -19,7 +23,7 @@ logstash_service = @fixture.get_service("logstash") logstash_service.start_with_stdin number_of_events.times { logstash_service.write_to_stdin("Hello world") } - + begin sleep(1) while (result = logstash_service.monitoring_api.event_stats).nil? rescue From 135271b37e02dd0101989d5d818635ca8d3c448e Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 11 Nov 2016 16:58:41 -0800 Subject: [PATCH 478/632] Fix/how to plugins (#6242) * Update how to write plugin docs * Add note about sprintf --- docs/static/include/pluginbody.asciidoc | 67 ++++++++++++------------- 1 file changed, 31 insertions(+), 36 deletions(-) diff --git a/docs/static/include/pluginbody.asciidoc b/docs/static/include/pluginbody.asciidoc index 9fb0e5a4945..0815bdac33c 100644 --- a/docs/static/include/pluginbody.asciidoc +++ b/docs/static/include/pluginbody.asciidoc @@ -9,10 +9,6 @@ implementation as a starting point. (If you're unfamiliar with Ruby, you can find an excellent quickstart guide at https://www.ruby-lang.org/en/documentation/quickstart/[].) -NOTE: As of Logstash 1.5, all plugins are self-contained Ruby gems. This change -makes it possible to develop and release plugins separately. In previous -versions, plugins were part of the core Logstash distribution. - ==== Get started {getstarted} @@ -29,9 +25,17 @@ Each Logstash plugin lives in its own GitHub repository. To create a new reposit ** **Initialize this repository with a README** -- enables you to immediately clone the repository to your computer. . Click **Create Repository**. +==== Use the plugin generator tool + +You can now create your own Logstash plugin in seconds! The `generate` subcommand of `bin/logstash-plugin` creates the foundation +for a new Logstash plugin with templatized files. It creates the correct directory structure, gemspec files, and dependencies so you +can start adding custom code to process data with Logstash. + +For more information, see <> + ==== Copy the {plugintype} code -Build your local repository: +Alternatively, you can use the examples repo we host on github.com . **Clone your plugin.** Replace `GITUSERNAME` with your github username, and `MYPLUGINNAME` with your plugin name. @@ -195,7 +199,7 @@ class LogStash::{pluginclass}::{pluginnamecap} < LogStash::{pluginclass}::Base public def encode(event) - @on_event.call(event, event["message"].to_s + @append + NL) + @on_event.call(event, event.get("message").to_s + @append + NL) end # def encode end # class LogStash::{pluginclass}::{pluginnamecap} @@ -246,7 +250,7 @@ class LogStash::{pluginclass}::{pluginnamecap} < LogStash::{pluginclass}::Base if @message # Replace the event message with our message as configured in the # config file. - event["message"] = @message + event.set("message", @message) end # filter_matched should go in the last line of our successful code @@ -466,7 +470,7 @@ There are several configuration attributes: * `:validate` - allows you to enforce passing a particular data type to Logstash for this configuration option, such as `:string`, `:password`, `:boolean`, `:number`, `:array`, `:hash`, `:path` (a file-system path), `uri`, `:codec` (since -1.2.0), `:bytes` (starting in 1.5.0). Note that this also works as a coercion +1.2.0), `:bytes`. Note that this also works as a coercion in that if I specify "true" for boolean (even though technically a string), it will become a valid boolean in the config. This coercion works for the `:number` type as well where "1.2" becomes a float and "22" is an integer. @@ -526,7 +530,7 @@ ifndef::blockfilter[] if @message # Replace the event message with our message as configured in the # config file. - event["message"] = @message + event.set("message", @message) end # filter_matched should go in the last line of our successful code @@ -534,15 +538,27 @@ ifndef::blockfilter[] end # def filter ---------------------------------- The plugin's `filter` method is where the actual filtering work takes place! -Inside the `filter` method you can refer to the event data using the `event` -hash. Configuration variables are now in scope as instance variables, like +Inside the `filter` method you can refer to the event data using the `Event` +object. Event is the main object that encapsulates data flow internally in Logstash +and provides an <> for the plugin developers to interact with the +event's content. + +The `filter` method should also handle any <> by +explicitly calling the `sprintf` method available in Event class. For example: + +[source,ruby] +---------------------------------- +field_foo = event.sprintf(field) +---------------------------------- + +Note that configuration variables are now in scope as instance variables, like `@message` [source,ruby] ---------------------------------- filter_matched(event) ---------------------------------- -Calling the `filter_matched` method upon succesful execution of the plugin will +Calling the `filter_matched` method upon successful execution of the plugin will ensure that any fields or tags added through the Logstash configuration for this filter will be handled correctly. For example, any `add_field`, `remove_field`, `add_tag` and/or `remove_tag` actions will be performed at this time. @@ -595,7 +611,7 @@ ifndef::blockcodec[] ---------------------------------- public def encode(event) - @on_event.call(event, event["message"].to_s + @append + NL) + @on_event.call(event, event.get("message").to_s + @append + NL) end # def encode ---------------------------------- The `encode` method takes an event and serializes it (_encodes_) into another @@ -650,7 +666,7 @@ Here's another example `run` method: data = $stdin.sysread(16384) @codec.decode(data) do |event| decorate(event) - event["host"] = @host if !event.include?("host") + event.set("host", @host) if !event.include?("host") queue << event end rescue IOError, EOFError, LogStash::ShutdownSignal @@ -871,28 +887,7 @@ please make sure to have this line in your gemspec: * `s.licenses = ['Apache License (2.0)']` The gem version, designated by `s.version`, helps track changes to plugins over -time. - -**Version messaging from Logstash** - -If you start Logstash with the `--log.level info` flag, you will see messages like -these to indicate the relative maturity indicated by the plugin version number: - -** **0.1.x** -+ ------ -This plugin isn't well supported by the community and likely has no maintainer. ------ - -** **0.9.x** -+ ------ -This plugin should work but would benefit from use by folks like you. Please let us know if you find bugs or have suggestions on how to improve this plugin. ------ - -** **1.x.x** -You will no longer see a message indicating potential code immaturity when a -plugin reaches version 1.0.0 +time. You should use http://semver.org/[semver versioning] strategy for version numbers. ==== Runtime & Development Dependencies From 80c2019dcfc1bf05c50fde60011d05de3256765c Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 11 Nov 2016 15:37:56 -0500 Subject: [PATCH 479/632] Monitor the load average of the machine and display it in the api This PR add new information in the /_node/stats api and will return the load average of the machine in the following formats depending of the platforms that logstash is running on: **Linux** ```json { "cpu" : { "percent" : 26, "load_average" : { "1m" : 2.826171875, "5m": 1.8261718, "15m": 1.56566 } } } ``` **MacOS and other platform that the OperatingMXBean understand** ```json { "cpu" : { "percent" : 26, "load_average" : { "1m" : 2.826171875, } } } ``` Load average is not available on Windows Fixes: #6214 Fixes #6240 --- .../lib/logstash/api/commands/stats.rb | 2 +- logstash-core/lib/logstash/environment.rb | 10 +- .../instrument/periodic_poller/jvm.rb | 61 +++++++- .../spec/api/lib/api/node_stats_spec.rb | 3 +- .../spec/logstash/environment_spec.rb | 38 +++++ .../instrument/periodic_poller/jvm_spec.rb | 130 ++++++++++++++++++ 6 files changed, 240 insertions(+), 4 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index c82038be660..f5ef39043bc 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -27,7 +27,7 @@ def process :peak_open_file_descriptors, :max_file_descriptors, [:mem, [:total_virtual_in_bytes]], - [:cpu, [:total_in_millis, :percent]] + [:cpu, [:total_in_millis, :percent, :load_average]] ) end diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 20b67bd4bb2..04b4e3447bf 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -59,6 +59,10 @@ module Environment LOGSTASH_CORE = ::File.expand_path(::File.join(::File.dirname(__FILE__), "..", "..")) LOGSTASH_ENV = (ENV["LS_ENV"] || 'production').to_s.freeze + LINUX_OS_RE = /linux/ + WINDOW_OS_RE = /mswin|msys|mingw|cygwin|bccwin|wince|emc/ + MACOS_OS_RE = /darwin/ + def env LOGSTASH_ENV end @@ -121,7 +125,11 @@ def jruby? end def windows? - ::Gem.win_platform? + RbConfig::CONFIG['host_os'] =~ WINDOW_OS_RE + end + + def linux? + RbConfig::CONFIG['host_os'] =~ LINUX_OS_RE end def locales_path(path) diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb index f51b38bb2b3..33ba3c1b74a 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb @@ -1,6 +1,6 @@ - # encoding: utf-8 require "logstash/instrument/periodic_poller/base" +require "logstash/environment" require "jrmonitor" require "set" @@ -33,11 +33,57 @@ def self.get(gc_name) end end + class LoadAverage + class Windows + def self.get + nil + end + end + + class Linux + LOAD_AVG_FILE = "/proc/loadavg" + TOKEN_SEPARATOR = " " + + def self.get + load_average = ::File.read(LOAD_AVG_FILE).chomp.split(TOKEN_SEPARATOR) + + { + :"1m" => load_average[0].to_f, + :"5m" => load_average[1].to_f, + :"15m" => load_average[2].to_f + } + end + end + + class Other + def self.get() + load_average_1m = ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage() + + return nil if load_average_1m.nil? + + { + :"1m" => load_average_1m + } + end + end + + def self.create + if LogStash::Environment.windows? + Windows + elsif LogStash::Environment.linux? + Linux + else + Other + end + end + end + attr_reader :metric def initialize(metric, options = {}) super(metric, options) @metric = metric + @load_average = LoadAverage.create end def collect @@ -47,6 +93,7 @@ def collect collect_threads_metrics collect_process_metrics collect_gc_stats + collect_load_average end private @@ -97,6 +144,18 @@ def collect_process_metrics metric.gauge(cpu_path, :total_in_millis, cpu_metrics["total_in_millis"]) metric.gauge(path + [:mem], :total_virtual_in_bytes, process_metrics["mem"]["total_virtual_in_bytes"]) + + end + + def collect_load_average + begin + load_average = @load_average.get + rescue => e + logger.debug("Can't retrieve load average", :exception => e.class.name, :message => e.message) + load_average = nil + end + + metric.gauge([:jvm, :process, :cpu], :load_average, load_average) unless load_average.nil? end def collect_jvm_metrics(data) diff --git a/logstash-core/spec/api/lib/api/node_stats_spec.rb b/logstash-core/spec/api/lib/api/node_stats_spec.rb index a77a01c3e23..1602599e1ce 100644 --- a/logstash-core/spec/api/lib/api/node_stats_spec.rb +++ b/logstash-core/spec/api/lib/api/node_stats_spec.rb @@ -69,7 +69,8 @@ }, "cpu"=>{ "total_in_millis"=>Numeric, - "percent"=>Numeric + "percent"=>Numeric, + "load_average" => { "1m" => Numeric } } }, "pipeline" => { diff --git a/logstash-core/spec/logstash/environment_spec.rb b/logstash-core/spec/logstash/environment_spec.rb index 581ef6ae8be..28637ea2323 100644 --- a/logstash-core/spec/logstash/environment_spec.rb +++ b/logstash-core/spec/logstash/environment_spec.rb @@ -53,4 +53,42 @@ expect($LOAD_PATH).to include(path) end end + + + describe "OS detection" do + windows_host_os = %w(bccwin cygwin mingw mswin wince) + linux_host_os = %w(linux) + + context "windows" do + windows_host_os.each do |host| + it "#{host} returns true" do + expect(RbConfig::CONFIG).to receive(:[]).with("host_os").and_return(host) + expect(LogStash::Environment.windows?).to be_truthy + end + end + + linux_host_os.each do |host| + it "#{host} returns false" do + expect(RbConfig::CONFIG).to receive(:[]).with("host_os").and_return(host) + expect(LogStash::Environment.windows?).to be_falsey + end + end + end + + context "Linux" do + windows_host_os.each do |host| + it "#{host} returns true" do + expect(RbConfig::CONFIG).to receive(:[]).with("host_os").and_return(host) + expect(LogStash::Environment.linux?).to be_falsey + end + end + + linux_host_os.each do |host| + it "#{host} returns false" do + expect(RbConfig::CONFIG).to receive(:[]).with("host_os").and_return(host) + expect(LogStash::Environment.linux?).to be_truthy + end + end + end + end end diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb index e3e113ca117..8492993ff0d 100644 --- a/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb +++ b/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb @@ -2,6 +2,7 @@ require "spec_helper" require "logstash/instrument/periodic_poller/jvm" require "logstash/instrument/collector" +require "logstash/environment" describe LogStash::Instrument::PeriodicPoller::JVM::GarbageCollectorName do subject { LogStash::Instrument::PeriodicPoller::JVM::GarbageCollectorName } @@ -27,6 +28,97 @@ end end +describe LogStash::Instrument::PeriodicPoller::JVM::LoadAverage do + subject { described_class.create } + + context "on mocked system" do + context "on Linux" do + before do + expect(LogStash::Environment).to receive(:windows?).and_return(false) + expect(LogStash::Environment).to receive(:linux?).and_return(true) + end + + context "when it can read the file" do + let(:proc_loadavg) { "0.00 0.01 0.05 3/180 29727" } + + before do + expect(::File).to receive(:read).with("/proc/loadavg").and_return(proc_loadavg) + end + + it "return the 3 load average from `/proc/loadavg`" do + avg_1m, avg_5m, avg_15m = proc_loadavg.chomp.split(" ") + + expect(subject.get).to include(:"1m" => avg_1m.to_f, :"5m" => avg_5m.to_f, :"15m" => avg_15m.to_f) + end + end + end + + context "on windows" do + before do + expect(LogStash::Environment).to receive(:windows?).and_return(true) + end + + it "Xreturns nil" do + expect(subject.get).to be_nil + end + end + + context "on other" do + before do + expect(LogStash::Environment).to receive(:windows?).and_return(false) + expect(LogStash::Environment).to receive(:linux?).and_return(false) + end + + context "when 'OperatingSystemMXBean.getSystemLoadAverage' return something" do + let(:load_avg) { 5 } + + before do + expect(ManagementFactory).to receive(:getOperatingSystemMXBean).and_return(double("OperatingSystemMXBean", :getSystemLoadAverage => load_avg)) + end + + it "returns the value" do + expect(subject.get).to include(:"1m" => 5) + end + end + + context "when 'OperatingSystemMXBean.getSystemLoadAverage' doesn't return anything" do + before do + expect(ManagementFactory).to receive(:getOperatingSystemMXBean).and_return(double("OperatingSystemMXBean", :getSystemLoadAverage => nil)) + end + + it "returns nothing" do + expect(subject.get).to be_nil + end + end + end + end + + # Since we are running this on macos and linux I think it make sense to have real test + # insteadof only mock + context "real system" do + if LogStash::Environment.linux? + context "Linux" do + it "returns the load avg" do + expect(subject.get).to include(:"1m" => a_kind_of(Numeric), :"5m" => a_kind_of(Numeric), :"15m" => a_kind_of(Numeric)) + end + end + elsif LogStash::Environment.windows? + context "window" do + it "returns nothing" do + expect(subject.get).to be_nil + end + end + else + context "Other" do + it "returns 1m only" do + expect(subject.get).to include(:"1m" => a_kind_of(Numeric)) + end + end + end + end +end + + describe LogStash::Instrument::PeriodicPoller::JVM do let(:metric) { LogStash::Instrument::Metric.new(LogStash::Instrument::Collector.new) } let(:options) { {} } @@ -36,6 +128,22 @@ expect { jvm }.not_to raise_error end + describe "load average" do + context "on linux" do + context "when an exception occur reading the file" do + before do + expect(LogStash::Environment).to receive(:windows?).and_return(false) + expect(LogStash::Environment).to receive(:linux?).and_return(true) + expect(::File).to receive(:read).with("/proc/loadavg").and_raise("Didnt work out so well") + end + + it "doesn't raise an exception" do + expect { subject.collect }.not_to raise_error + end + end + end + end + describe "collections" do subject(:collection) { jvm.collect } it "should run cleanly" do @@ -70,6 +178,28 @@ def mval(*metric_path) expect(mval(*path)).to be_a(Numeric) end end + + context "real system" do + if LogStash::Environment.linux? + context "Linux" do + it "returns the load avg" do + expect(subject[:process][:cpu][:load_average].value).to include(:"1m" => a_kind_of(Numeric), :"5m" => a_kind_of(Numeric), :"15m" => a_kind_of(Numeric)) + end + end + elsif LogStash::Environment.windows? + context "Window" do + it "returns nothing" do + expect(subject[:process][:cpu].has_key?(:load_average)).to be_falsey + end + end + else + context "Other" do + it "returns 1m only" do + expect(subject[:process][:cpu][:load_average].value).to include(:"1m" => a_kind_of(Numeric)) + end + end + end + end end end end From 169ba4636ac2c08be631cecd9516a3b0a31d298f Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 11 Nov 2016 16:15:37 -0500 Subject: [PATCH 480/632] move the loadAverage class into his own file and do the same for the specs Fixes #6240 --- .../instrument/periodic_poller/jvm.rb | 45 +-------- .../periodic_poller/load_average.rb | 47 ++++++++++ .../instrument/periodic_poller/jvm_spec.rb | 90 ------------------ .../periodic_poller/load_average_spec.rb | 91 +++++++++++++++++++ 4 files changed, 139 insertions(+), 134 deletions(-) create mode 100644 logstash-core/lib/logstash/instrument/periodic_poller/load_average.rb create mode 100644 logstash-core/spec/logstash/instrument/periodic_poller/load_average_spec.rb diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb index 33ba3c1b74a..c1186cf9e9e 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb @@ -1,5 +1,6 @@ # encoding: utf-8 require "logstash/instrument/periodic_poller/base" +require "logstash/instrument/periodic_poller/load_average" require "logstash/environment" require "jrmonitor" require "set" @@ -33,50 +34,6 @@ def self.get(gc_name) end end - class LoadAverage - class Windows - def self.get - nil - end - end - - class Linux - LOAD_AVG_FILE = "/proc/loadavg" - TOKEN_SEPARATOR = " " - - def self.get - load_average = ::File.read(LOAD_AVG_FILE).chomp.split(TOKEN_SEPARATOR) - - { - :"1m" => load_average[0].to_f, - :"5m" => load_average[1].to_f, - :"15m" => load_average[2].to_f - } - end - end - - class Other - def self.get() - load_average_1m = ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage() - - return nil if load_average_1m.nil? - - { - :"1m" => load_average_1m - } - end - end - - def self.create - if LogStash::Environment.windows? - Windows - elsif LogStash::Environment.linux? - Linux - else - Other - end - end - end attr_reader :metric diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/load_average.rb b/logstash-core/lib/logstash/instrument/periodic_poller/load_average.rb new file mode 100644 index 00000000000..4660401f24e --- /dev/null +++ b/logstash-core/lib/logstash/instrument/periodic_poller/load_average.rb @@ -0,0 +1,47 @@ +# encoding: utf-8 +module LogStash module Instrument module PeriodicPoller + class LoadAverage + class Windows + def self.get + nil + end + end + + class Linux + LOAD_AVG_FILE = "/proc/loadavg" + TOKEN_SEPARATOR = " " + + def self.get + load_average = ::File.read(LOAD_AVG_FILE).chomp.split(TOKEN_SEPARATOR) + + { + :"1m" => load_average[0].to_f, + :"5m" => load_average[1].to_f, + :"15m" => load_average[2].to_f + } + end + end + + class Other + def self.get() + load_average_1m = ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage() + + return nil if load_average_1m.nil? + + { + :"1m" => load_average_1m + } + end + end + + def self.create + if LogStash::Environment.windows? + Windows + elsif LogStash::Environment.linux? + Linux + else + Other + end + end + end +end end end diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb index 8492993ff0d..db51647a38d 100644 --- a/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb +++ b/logstash-core/spec/logstash/instrument/periodic_poller/jvm_spec.rb @@ -28,96 +28,6 @@ end end -describe LogStash::Instrument::PeriodicPoller::JVM::LoadAverage do - subject { described_class.create } - - context "on mocked system" do - context "on Linux" do - before do - expect(LogStash::Environment).to receive(:windows?).and_return(false) - expect(LogStash::Environment).to receive(:linux?).and_return(true) - end - - context "when it can read the file" do - let(:proc_loadavg) { "0.00 0.01 0.05 3/180 29727" } - - before do - expect(::File).to receive(:read).with("/proc/loadavg").and_return(proc_loadavg) - end - - it "return the 3 load average from `/proc/loadavg`" do - avg_1m, avg_5m, avg_15m = proc_loadavg.chomp.split(" ") - - expect(subject.get).to include(:"1m" => avg_1m.to_f, :"5m" => avg_5m.to_f, :"15m" => avg_15m.to_f) - end - end - end - - context "on windows" do - before do - expect(LogStash::Environment).to receive(:windows?).and_return(true) - end - - it "Xreturns nil" do - expect(subject.get).to be_nil - end - end - - context "on other" do - before do - expect(LogStash::Environment).to receive(:windows?).and_return(false) - expect(LogStash::Environment).to receive(:linux?).and_return(false) - end - - context "when 'OperatingSystemMXBean.getSystemLoadAverage' return something" do - let(:load_avg) { 5 } - - before do - expect(ManagementFactory).to receive(:getOperatingSystemMXBean).and_return(double("OperatingSystemMXBean", :getSystemLoadAverage => load_avg)) - end - - it "returns the value" do - expect(subject.get).to include(:"1m" => 5) - end - end - - context "when 'OperatingSystemMXBean.getSystemLoadAverage' doesn't return anything" do - before do - expect(ManagementFactory).to receive(:getOperatingSystemMXBean).and_return(double("OperatingSystemMXBean", :getSystemLoadAverage => nil)) - end - - it "returns nothing" do - expect(subject.get).to be_nil - end - end - end - end - - # Since we are running this on macos and linux I think it make sense to have real test - # insteadof only mock - context "real system" do - if LogStash::Environment.linux? - context "Linux" do - it "returns the load avg" do - expect(subject.get).to include(:"1m" => a_kind_of(Numeric), :"5m" => a_kind_of(Numeric), :"15m" => a_kind_of(Numeric)) - end - end - elsif LogStash::Environment.windows? - context "window" do - it "returns nothing" do - expect(subject.get).to be_nil - end - end - else - context "Other" do - it "returns 1m only" do - expect(subject.get).to include(:"1m" => a_kind_of(Numeric)) - end - end - end - end -end - describe LogStash::Instrument::PeriodicPoller::JVM do let(:metric) { LogStash::Instrument::Metric.new(LogStash::Instrument::Collector.new) } diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/load_average_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/load_average_spec.rb new file mode 100644 index 00000000000..626ba52dc22 --- /dev/null +++ b/logstash-core/spec/logstash/instrument/periodic_poller/load_average_spec.rb @@ -0,0 +1,91 @@ +# encoding: utf-8 +require "logstash/instrument/periodic_poller/load_average" +describe LogStash::Instrument::PeriodicPoller::LoadAverage do + subject { described_class.create } + + context "on mocked system" do + context "on Linux" do + before do + expect(LogStash::Environment).to receive(:windows?).and_return(false) + expect(LogStash::Environment).to receive(:linux?).and_return(true) + end + + context "when it can read the file" do + let(:proc_loadavg) { "0.00 0.01 0.05 3/180 29727" } + + before do + expect(::File).to receive(:read).with("/proc/loadavg").and_return(proc_loadavg) + end + + it "return the 3 load average from `/proc/loadavg`" do + avg_1m, avg_5m, avg_15m = proc_loadavg.chomp.split(" ") + + expect(subject.get).to include(:"1m" => avg_1m.to_f, :"5m" => avg_5m.to_f, :"15m" => avg_15m.to_f) + end + end + end + + context "on windows" do + before do + expect(LogStash::Environment).to receive(:windows?).and_return(true) + end + + it "Xreturns nil" do + expect(subject.get).to be_nil + end + end + + context "on other" do + before do + expect(LogStash::Environment).to receive(:windows?).and_return(false) + expect(LogStash::Environment).to receive(:linux?).and_return(false) + end + + context "when 'OperatingSystemMXBean.getSystemLoadAverage' return something" do + let(:load_avg) { 5 } + + before do + expect(ManagementFactory).to receive(:getOperatingSystemMXBean).and_return(double("OperatingSystemMXBean", :getSystemLoadAverage => load_avg)) + end + + it "returns the value" do + expect(subject.get).to include(:"1m" => 5) + end + end + + context "when 'OperatingSystemMXBean.getSystemLoadAverage' doesn't return anything" do + before do + expect(ManagementFactory).to receive(:getOperatingSystemMXBean).and_return(double("OperatingSystemMXBean", :getSystemLoadAverage => nil)) + end + + it "returns nothing" do + expect(subject.get).to be_nil + end + end + end + end + + # Since we are running this on macos and linux I think it make sense to have real test + # insteadof only mock + context "real system" do + if LogStash::Environment.linux? + context "Linux" do + it "returns the load avg" do + expect(subject.get).to include(:"1m" => a_kind_of(Numeric), :"5m" => a_kind_of(Numeric), :"15m" => a_kind_of(Numeric)) + end + end + elsif LogStash::Environment.windows? + context "window" do + it "returns nothing" do + expect(subject.get).to be_nil + end + end + else + context "Other" do + it "returns 1m only" do + expect(subject.get).to include(:"1m" => a_kind_of(Numeric)) + end + end + end + end +end From 60598a022220345017e8a8ebf8702a622a92ddfb Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Mon, 14 Nov 2016 00:23:18 -0800 Subject: [PATCH 481/632] Truncate from the end of the message instead of the front. PatternLayout calls this 'left justify' I think. Fixes #6255 Fixes #6257 --- config/log4j2.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/log4j2.properties b/config/log4j2.properties index aab2e62f360..ac9273b64a1 100644 --- a/config/log4j2.properties +++ b/config/log4j2.properties @@ -21,7 +21,7 @@ appender.rolling.policies.time.type = TimeBasedTriggeringPolicy appender.rolling.policies.time.interval = 1 appender.rolling.policies.time.modulate = true appender.rolling.layout.type = PatternLayout -appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n +appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %-.10000m%n appender.json_rolling.type = RollingFile appender.json_rolling.name = json_rolling From 441eb84d4ddb383e8e5d2ea42f4396e003668d6b Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Mon, 14 Nov 2016 00:30:56 -0800 Subject: [PATCH 482/632] Truncate from the end of the message instead of the front. PatternLayout calls this 'left justify' I think. Fixes #6255 Fixes #6258 --- pkg/log4j2.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/log4j2.properties b/pkg/log4j2.properties index 4471045c6e7..2c3c75a9e75 100644 --- a/pkg/log4j2.properties +++ b/pkg/log4j2.properties @@ -10,7 +10,7 @@ appender.rolling.policies.time.type = TimeBasedTriggeringPolicy appender.rolling.policies.time.interval = 1 appender.rolling.policies.time.modulate = true appender.rolling.layout.type = PatternLayout -appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n +appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %-.10000m%n appender.json_rolling.type = RollingFile appender.json_rolling.name = json_rolling From 6e01395dde7cb59551829de85f3d90daa35626a3 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 10 Nov 2016 13:47:08 -0800 Subject: [PATCH 483/632] add logstash-core resources to classpath during development Fixes #6235. Fixes #6237 --- logstash-core/lib/logstash-core/logstash-core.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash-core/logstash-core.rb b/logstash-core/lib/logstash-core/logstash-core.rb index 1d39ad9e80f..8c452b0d24a 100644 --- a/logstash-core/lib/logstash-core/logstash-core.rb +++ b/logstash-core/lib/logstash-core/logstash-core.rb @@ -9,10 +9,12 @@ module LogStash # local dev setup classes_dir = File.expand_path("../../../build/classes/main", __FILE__) +resources_dir = File.expand_path("../../../build/resources/main", __FILE__) -if File.directory?(classes_dir) +if File.directory?(classes_dir) && File.directory?(resources_dir) # if in local dev setup, add target to classpath $CLASSPATH << classes_dir unless $CLASSPATH.include?(classes_dir) + $CLASSPATH << resources_dir unless $CLASSPATH.include?(resources_dir) else # otherwise use included jar begin From aeccc37e2db6254f898a28cd7c4a553b7450d16d Mon Sep 17 00:00:00 2001 From: Toby McLaughlin Date: Mon, 14 Nov 2016 17:42:04 +1100 Subject: [PATCH 484/632] Add docs for Docker image Fixes #6250 --- docs/static/docker.asciidoc | 108 ++++++++++++++++++ .../getting-started-with-logstash.asciidoc | 6 + 2 files changed, 114 insertions(+) create mode 100644 docs/static/docker.asciidoc diff --git a/docs/static/docker.asciidoc b/docs/static/docker.asciidoc new file mode 100644 index 00000000000..2b5d9de8b48 --- /dev/null +++ b/docs/static/docker.asciidoc @@ -0,0 +1,108 @@ +[[docker]] +== Running Logstash on Docker +Docker images for Logstash are available from the Elastic Docker registry. + +Obtaining Logstash for Docker is as simple as issuing a +docker pull+ command +against the Elastic Docker registry. + +ifeval::["{release-state}"=="unreleased"] + +However, version {logstash_version} of Logstash has not yet been released, so no Docker +image is currently available for this version. + +endif::[] + +ifeval::["{release-state}"!="unreleased"] + +The Docker image for Logstash v{logstash_version} can be retrieved with the following +command: + +["source","sh",subs="attributes"] +-------------------------------------------- +docker pull {docker-image} +-------------------------------------------- + +endif::[] + +=== Configuring Logstash for Docker + +Logstash differentiates between two types of configuration: +<>. + +==== Pipeline Configuration + +It is essential to place your pipeline configuration where it can be found by +Logstash. By default, the container will look in ++/usr/share/logstash/pipeline/+ for pipeline configuration files. + +In this example we use a bind-mounted volume to provide the configuration via +the +docker run+ command: + +["source","sh",subs="attributes"] +-------------------------------------------- +docker run --rm -it -v ~/pipeline/:/usr/share/logstash/pipeline/ {docker-image} +-------------------------------------------- + +Every file in the host directory +~/pipeline/+ will then be parsed +by Logstash as pipeline configuration. + +If you don't provide configuration to Logstash, it will run with a minimal +config that listens for messages from the +<> and echoes any that are received +to `stdout`. In this case, the startup logs will be similar to the following: + +["source","text"] +-------------------------------------------- +Sending Logstash logs to /usr/share/logstash/logs which is now configured via log4j2.properties. +[2016-10-26T05:11:34,992][INFO ][logstash.inputs.beats ] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"} +[2016-10-26T05:11:35,068][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>500} +[2016-10-26T05:11:35,078][INFO ][org.logstash.beats.Server] Starting server on port: 5044 +[2016-10-26T05:11:35,078][INFO ][logstash.pipeline ] Pipeline main started +[2016-10-26T05:11:35,105][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600} +-------------------------------------------- + +This configuration is baked into the image at +/usr/share/logstash/pipeline/logstash.conf+. +If this is the behaviour that you are observing, ensure that your pipeline +configuration is being picked up correctly, and that you are replacing either ++logstash.conf+ or the entire +pipeline+ directory. + +==== Settings Files + +Settings files can also be provided through bind-mounts. Logstash expects to +find them at +/usr/share/logstash/config/+. + +It's possible to provide an entire directory containing all needed files: + +["source","sh",subs="attributes"] +-------------------------------------------- +docker run --rm -it -v ~/settings/:/usr/share/logstash/config/ {docker-image} +-------------------------------------------- + +Alternatively, a single file can be mounted: + +["source","sh",subs="attributes"] +-------------------------------------------- +docker run --rm -it -v ~/settings/logstash.yml:/usr/share/logstash/config/logstash.yml {docker-image} +-------------------------------------------- + +==== Custom Images + +Bind-mounted configuration is not the only option, naturally. If you prefer the +_Immutable Infrastructure_ approach, you can prepare a custom image containing +your configuration by using a +Dockerfile+ like this one: + +["source","dockerfile",subs="attributes"] +-------------------------------------------- +FROM {docker-image} +RUN rm -f /usr/share/logstash/pipeline/logstash.conf +ADD pipeline/ /usr/share/logstash/pipeline/ +ADD config/ /usr/share/logstash/config/ +-------------------------------------------- + +Be sure to replace or delete `logstash.conf` in your custom image, so that you +don't retain the example config from the base image. + +=== Logging Configuration + +Under Docker, Logstash logs go to standard output by default. To change this behaviour, use +any of techniques above to replace the file at +/usr/share/logstash/config/log4j2.properties+. diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index b2a0e3758cc..0f0b55f0314 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -144,6 +144,12 @@ WARNING: The repositories do not work with older rpm based distributions See the <> document for managing Logstash as a system service. +=== Docker + +An image is available for running Logstash as a Docker container. It is +available from the Elastic Docker registry. See the <> section for +details on how to configure and run Logstash Docker containers. + [[first-event]] === Stashing Your First Event From 645e517f613e0524534ddbac70eb038c18ab256a Mon Sep 17 00:00:00 2001 From: Toby McLaughlin Date: Tue, 15 Nov 2016 13:26:42 +1100 Subject: [PATCH 485/632] Docs: Review comments from #6250 Fixes #6250 --- docs/static/docker.asciidoc | 64 ++++++++++--------- .../getting-started-with-logstash.asciidoc | 4 +- docs/static/setting-up-logstash.asciidoc | 40 ++++++++++++ 3 files changed, 77 insertions(+), 31 deletions(-) diff --git a/docs/static/docker.asciidoc b/docs/static/docker.asciidoc index 2b5d9de8b48..5afc1f522af 100644 --- a/docs/static/docker.asciidoc +++ b/docs/static/docker.asciidoc @@ -1,21 +1,22 @@ [[docker]] == Running Logstash on Docker -Docker images for Logstash are available from the Elastic Docker registry. +Docker images for Logstash are available from the Elastic Docker +registry. -Obtaining Logstash for Docker is as simple as issuing a +docker pull+ command -against the Elastic Docker registry. +Obtaining Logstash for Docker is as simple as issuing a +docker pull+ +command against the Elastic Docker registry. ifeval::["{release-state}"=="unreleased"] -However, version {logstash_version} of Logstash has not yet been released, so no Docker -image is currently available for this version. +However, version {logstash_version} of Logstash has not yet been +released, so no Docker image is currently available for this version. endif::[] ifeval::["{release-state}"!="unreleased"] -The Docker image for Logstash v{logstash_version} can be retrieved with the following -command: +The Docker image for Logstash {logstash_version} can be retrieved with +the following command: ["source","sh",subs="attributes"] -------------------------------------------- @@ -31,12 +32,12 @@ Logstash differentiates between two types of configuration: ==== Pipeline Configuration -It is essential to place your pipeline configuration where it can be found by -Logstash. By default, the container will look in +It is essential to place your pipeline configuration where it can be +found by Logstash. By default, the container will look in +/usr/share/logstash/pipeline/+ for pipeline configuration files. -In this example we use a bind-mounted volume to provide the configuration via -the +docker run+ command: +In this example we use a bind-mounted volume to provide the +configuration via the +docker run+ command: ["source","sh",subs="attributes"] -------------------------------------------- @@ -46,10 +47,11 @@ docker run --rm -it -v ~/pipeline/:/usr/share/logstash/pipeline/ {docker-image} Every file in the host directory +~/pipeline/+ will then be parsed by Logstash as pipeline configuration. -If you don't provide configuration to Logstash, it will run with a minimal -config that listens for messages from the -<> and echoes any that are received -to `stdout`. In this case, the startup logs will be similar to the following: +If you don't provide configuration to Logstash, it will run with a +minimal config that listens for messages from the +<> and echoes any that are +received to `stdout`. In this case, the startup logs will be similar +to the following: ["source","text"] -------------------------------------------- @@ -61,17 +63,19 @@ Sending Logstash logs to /usr/share/logstash/logs which is now configured via lo [2016-10-26T05:11:35,105][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600} -------------------------------------------- -This configuration is baked into the image at +/usr/share/logstash/pipeline/logstash.conf+. -If this is the behaviour that you are observing, ensure that your pipeline -configuration is being picked up correctly, and that you are replacing either -+logstash.conf+ or the entire +pipeline+ directory. +This is the default configuration for the image, defined in ++/usr/share/logstash/pipeline/logstash.conf+. If this is the +behaviour that you are observing, ensure that your pipeline +configuration is being picked up correctly, and that you are replacing +either +logstash.conf+ or the entire +pipeline+ directory. ==== Settings Files -Settings files can also be provided through bind-mounts. Logstash expects to -find them at +/usr/share/logstash/config/+. +Settings files can also be provided through bind-mounts. Logstash +expects to find them at +/usr/share/logstash/config/+. -It's possible to provide an entire directory containing all needed files: +It's possible to provide an entire directory containing all needed +files: ["source","sh",subs="attributes"] -------------------------------------------- @@ -87,9 +91,10 @@ docker run --rm -it -v ~/settings/logstash.yml:/usr/share/logstash/config/logsta ==== Custom Images -Bind-mounted configuration is not the only option, naturally. If you prefer the -_Immutable Infrastructure_ approach, you can prepare a custom image containing -your configuration by using a +Dockerfile+ like this one: +Bind-mounted configuration is not the only option, naturally. If you +prefer the _Immutable Infrastructure_ approach, you can prepare a +custom image containing your configuration by using a +Dockerfile+ +like this one: ["source","dockerfile",subs="attributes"] -------------------------------------------- @@ -99,10 +104,11 @@ ADD pipeline/ /usr/share/logstash/pipeline/ ADD config/ /usr/share/logstash/config/ -------------------------------------------- -Be sure to replace or delete `logstash.conf` in your custom image, so that you -don't retain the example config from the base image. +Be sure to replace or delete `logstash.conf` in your custom image, so +that you don't retain the example config from the base image. === Logging Configuration -Under Docker, Logstash logs go to standard output by default. To change this behaviour, use -any of techniques above to replace the file at +/usr/share/logstash/config/log4j2.properties+. +Under Docker, Logstash logs go to standard output by default. To +change this behaviour, use any of the techniques above to replace the +file at +/usr/share/logstash/config/log4j2.properties+. diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index 0f0b55f0314..51307ce87f1 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -105,7 +105,7 @@ it with: sudo apt-get update && sudo apt-get install logstash -------------------------------------------------- -See the <> document for managing Logstash as a system service. +See <> for details about managing Logstash as a system service. [float] ==== YUM @@ -147,7 +147,7 @@ See the <> document for managing Logstash as === Docker An image is available for running Logstash as a Docker container. It is -available from the Elastic Docker registry. See the <> section for +available from the Elastic Docker registry. See <> for details on how to configure and run Logstash Docker containers. [[first-event]] diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index f2c0b383060..6aeef927d06 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -100,6 +100,46 @@ locations for the system: |======================================================================= +[[docker-layout]] +==== Directory Layout of Docker Images + +The Docker images are created from the `.tar.gz` packages, and follow a +similar directory layout. + +[cols=" Date: Wed, 16 Nov 2016 15:53:54 +1100 Subject: [PATCH 486/632] Docs: Add permissions note for Docker bind-mounts Fixes #6250 --- docs/static/docker.asciidoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/static/docker.asciidoc b/docs/static/docker.asciidoc index 5afc1f522af..95966e241b9 100644 --- a/docs/static/docker.asciidoc +++ b/docs/static/docker.asciidoc @@ -89,6 +89,11 @@ Alternatively, a single file can be mounted: docker run --rm -it -v ~/settings/logstash.yml:/usr/share/logstash/config/logstash.yml {docker-image} -------------------------------------------- +NOTE: Bind-mounted configuration files will retain the same permissions and +ownership within the container that they have on the host system. Be sure +to set persmissions such that the files will be readable and, ideally, not +writeable by the container's +logstash+ user (UID 1000). + ==== Custom Images Bind-mounted configuration is not the only option, naturally. If you From 2758a8afd53e745a85360de65fb68f4be9a96acd Mon Sep 17 00:00:00 2001 From: Toby McLaughlin Date: Wed, 16 Nov 2016 16:02:18 +1100 Subject: [PATCH 487/632] Docs: Typo in Docker docs. Fixes #6250 --- docs/static/docker.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/docker.asciidoc b/docs/static/docker.asciidoc index 95966e241b9..aba40f9bedd 100644 --- a/docs/static/docker.asciidoc +++ b/docs/static/docker.asciidoc @@ -91,7 +91,7 @@ docker run --rm -it -v ~/settings/logstash.yml:/usr/share/logstash/config/logsta NOTE: Bind-mounted configuration files will retain the same permissions and ownership within the container that they have on the host system. Be sure -to set persmissions such that the files will be readable and, ideally, not +to set permissions such that the files will be readable and, ideally, not writeable by the container's +logstash+ user (UID 1000). ==== Custom Images From ccdb0a9f0114507e8cc8d80463bd933735949722 Mon Sep 17 00:00:00 2001 From: Vincent Reuter Date: Thu, 3 Nov 2016 13:24:50 -0700 Subject: [PATCH 488/632] fixed typo regarding port number for filebeat connection Fixes #6187 --- docs/static/advanced-pipeline.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/static/advanced-pipeline.asciidoc b/docs/static/advanced-pipeline.asciidoc index 5f43c702fff..5f6c69c4116 100644 --- a/docs/static/advanced-pipeline.asciidoc +++ b/docs/static/advanced-pipeline.asciidoc @@ -62,7 +62,7 @@ At the data source machine, run Filebeat with the following command: sudo ./filebeat -e -c filebeat.yml -d "publish" -------------------------------------------------------------------------------- -Filebeat will attempt to connect on port 5403. Until Logstash starts with an active Beats plugin, there +Filebeat will attempt to connect on port 5043. Until Logstash starts with an active Beats plugin, there won’t be any answer on that port, so any messages you see regarding failure to connect on that port are normal for now. ==== Configuring Logstash for Filebeat Input @@ -788,7 +788,7 @@ At the data source machine, run Filebeat with the following command: sudo ./filebeat -e -c filebeat.yml -d "publish" -------------------------------------------------------------------------------- -Filebeat will attempt to connect on port 5403. Until Logstash starts with an active Beats plugin, there +Filebeat will attempt to connect on port 5043. Until Logstash starts with an active Beats plugin, there won’t be any answer on that port, so any messages you see regarding failure to connect on that port are normal for now. To verify your configuration, run the following command: From 26ab1f5474b7938e14a7d4d417221594cefeefda Mon Sep 17 00:00:00 2001 From: Toby McLaughlin Date: Thu, 17 Nov 2016 13:27:00 +1100 Subject: [PATCH 489/632] Docs: Fix chunking of Docker install --- docs/static/getting-started-with-logstash.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/getting-started-with-logstash.asciidoc b/docs/static/getting-started-with-logstash.asciidoc index 51307ce87f1..cb29f66261c 100644 --- a/docs/static/getting-started-with-logstash.asciidoc +++ b/docs/static/getting-started-with-logstash.asciidoc @@ -144,7 +144,7 @@ WARNING: The repositories do not work with older rpm based distributions See the <> document for managing Logstash as a system service. -=== Docker +==== Docker An image is available for running Logstash as a Docker container. It is available from the Elastic Docker registry. See <> for From cd84576584c8829a2b63f4683cd70f9a5695bd60 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 17 Nov 2016 09:39:36 -0500 Subject: [PATCH 490/632] Theses core input are not currently used inside logstash so it make sense to remove them Fixes #6268 --- logstash-core/lib/logstash/inputs/metrics.rb | 47 ----------------- .../spec/logstash/inputs/metrics_spec.rb | 51 ------------------- 2 files changed, 98 deletions(-) delete mode 100644 logstash-core/lib/logstash/inputs/metrics.rb delete mode 100644 logstash-core/spec/logstash/inputs/metrics_spec.rb diff --git a/logstash-core/lib/logstash/inputs/metrics.rb b/logstash-core/lib/logstash/inputs/metrics.rb deleted file mode 100644 index d85bcc4e53c..00000000000 --- a/logstash-core/lib/logstash/inputs/metrics.rb +++ /dev/null @@ -1,47 +0,0 @@ -# encoding: utf-8 -require "logstash/event" -require "logstash/inputs/base" -require "logstash/instrument/collector" - -module LogStash module Inputs - # The Metrics inputs is responable of registring itself to the collector. - # The collector class will periodically emits new snapshot of the system, - # The metrics need to take that information and transform it into - # a `Logstash::Event`, which can be consumed by the shipper and send to - # Elasticsearch - class Metrics < LogStash::Inputs::Base - config_name "metrics" - milestone 3 - - def register - end - - def run(queue) - @logger.debug("Metric: input started") - @queue = queue - - # we register to the collector after receiving the pipeline queue - metric.collector.add_observer(self) - - # Keep this plugin thread alive, - # until we shutdown the metric pipeline - sleep(1) while !stop? - end - - def stop - @logger.debug("Metrics input: stopped") - metric.collector.delete_observer(self) - end - - def update(snapshot) - @logger.debug("Metrics input: received a new snapshot", :created_at => snapshot.created_at, :snapshot => snapshot, :event => snapshot.metric_store.to_event) if @logger.debug? - - # The back pressure is handled in the collector's - # scheduled task (running into his own thread) if something append to one of the listener it will - # will timeout. In a sane pipeline, with a low traffic of events it shouldn't be a problems. - snapshot.metric_store.each do |metric| - @queue << LogStash::Event.new({ "@timestamp" => snapshot.created_at }.merge(metric.to_hash)) - end - end - end -end;end diff --git a/logstash-core/spec/logstash/inputs/metrics_spec.rb b/logstash-core/spec/logstash/inputs/metrics_spec.rb deleted file mode 100644 index 842e8b48bfe..00000000000 --- a/logstash-core/spec/logstash/inputs/metrics_spec.rb +++ /dev/null @@ -1,51 +0,0 @@ -# encoding: utf-8 -require "logstash/inputs/metrics" -require "spec_helper" - -describe LogStash::Inputs::Metrics do - let(:collector) { LogStash::Instrument::Collector.new } - let(:metric) { LogStash::Instrument::Metric.new(collector) } - let(:queue) { [] } - - before :each do - subject.metric = metric - end - - describe "#run" do - it "should register itself to the collector observer" do - expect(collector).to receive(:add_observer).with(subject) - t = Thread.new { subject.run(queue) } - sleep(0.1) # give a bit of time to the thread to start - subject.stop - end - end - - describe "#update" do - it "should fill up the queue with received events" do - Thread.new { subject.run(queue) } - sleep(0.1) - subject.stop - - metric.increment([:root, :test], :plugin) - - subject.update(collector.snapshot_metric) - expect(queue.count).to eq(1) - end - end - - describe "#stop" do - it "should remove itself from the the collector observer" do - expect(collector).to receive(:delete_observer).with(subject) - t = Thread.new { subject.run(queue) } - sleep(0.1) # give a bit of time to the thread to start - subject.stop - end - - it "should unblock the input" do - t = Thread.new { subject.run(queue) } - sleep(0.1) # give a bit of time to the thread to start - subject.do_stop - wait_for { t.status }.to be_falsey - end - end -end From 270c90f8c6c4a4929f408454a26550eedd26cbfc Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 17 Nov 2016 10:24:54 -0800 Subject: [PATCH 491/632] Add cef codec to default plugins Fixes #6270 --- Gemfile | 1 + rakelib/default_plugins.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/Gemfile b/Gemfile index bb455ea9a15..21628e82560 100644 --- a/Gemfile +++ b/Gemfile @@ -27,6 +27,7 @@ gem "pleaserun", "~>0.0.27" gem "logstash-input-heartbeat" gem "logstash-codec-collectd" gem "logstash-output-xmpp" +gem "logstash-codec-cef" gem "logstash-codec-dots" gem "logstash-codec-edn" gem "logstash-codec-edn_lines" diff --git a/rakelib/default_plugins.rb b/rakelib/default_plugins.rb index 73c1062fb74..aef65395fe7 100644 --- a/rakelib/default_plugins.rb +++ b/rakelib/default_plugins.rb @@ -6,6 +6,7 @@ module RakeLib logstash-input-heartbeat logstash-codec-collectd logstash-output-xmpp + logstash-codec-cef logstash-codec-dots logstash-codec-edn logstash-codec-edn_lines From 12cfa69215e186bcdf39006e8964f6fcbe769942 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 20 Oct 2016 14:50:15 -0400 Subject: [PATCH 492/632] Feature: A way to install/remove a plugin pack A pack in this context is a *bundle* of plugins that can be distributed outside of rubygems; it is similar to what ES and kibana are doing, and the user interface is modeled after them. See https://www.elastic.co/downloads/x-pack **Do not mix it with the `bin/logstash-plugin pack/unpack` command.** - it contains one or more plugins that need to be installed - it is self-contains with the gems and the needed jars - it is distributed as a zip file - the file structure needs to follow some rules. - As a reserved name name on elastic.co download http server - `bin/plugin install logstash-mypack` will check on the download server if a pack for the current specific logstash version exist and it will be downloaded, if it doesn't exist we fallback on rubygems. - The file on the server will follow this convention `logstash-mypack-{LOGSTASH_VERSION}.zip` - As a fully qualified url - `bin/plugin install http://test.abc/logstash-mypack.zip`, if it exists it will be downloaded and installed if it does not we raise an error. - As a local file - `bin/plugin install file:///tmp/logstash-mypack.zip`, if it exists it will be installed Fixes #6168 --- .gitignore | 3 +- Gemfile | 4 +- lib/bootstrap/bundler.rb | 1 + lib/bootstrap/environment.rb | 5 +- lib/bootstrap/util/compress.rb | 4 +- .../bundler/logstash_injector.rb | 50 ++++++++ .../bundler/logstash_uninstall.rb | 89 ++++++++++++++ lib/pluginmanager/command.rb | 1 - lib/pluginmanager/errors.rb | 13 ++ lib/pluginmanager/gem_installer.rb | 78 ++++++++++++ lib/pluginmanager/gemfile.rb | 11 +- lib/pluginmanager/install.rb | 31 +++++ lib/pluginmanager/install_strategy_factory.rb | 22 ++++ lib/pluginmanager/main.rb | 3 +- .../pack_fetch_strategy/repository.rb | 43 +++++++ lib/pluginmanager/pack_fetch_strategy/uri.rb | 44 +++++++ lib/pluginmanager/pack_installer/local.rb | 111 ++++++++++++++++++ lib/pluginmanager/pack_installer/pack.rb | 82 +++++++++++++ lib/pluginmanager/pack_installer/remote.rb | 25 ++++ lib/pluginmanager/remove.rb | 21 +--- lib/pluginmanager/ui.rb | 24 ++++ lib/pluginmanager/uninstall.rb | 44 ------- lib/pluginmanager/utils/downloader.rb | 91 ++++++++++++++ lib/pluginmanager/utils/http_client.rb | 40 +++++++ logstash-core/spec/logstash/webserver_spec.rb | 2 + qa/integration/fixtures/remove_spec.yml | 3 + qa/integration/services/logstash_service.rb | 44 +++++++ qa/integration/specs/cli/remove_spec.rb | 44 +++++++ spec/spec_helper.rb | 3 + spec/support/pack/empty-pack.zip | Bin 0 -> 152 bytes spec/support/pack/valid-pack.zip | Bin 0 -> 4799 bytes .../logstash-input-packtestdep-0.0.1.gem | Bin 0 -> 4096 bytes .../logstash-input-packtestdep.gemspec | 11 ++ .../logstash-input-packtest-0.0.1.gem | Bin 0 -> 4096 bytes .../logstash-input-packtest.gemspec | 13 ++ .../unit/plugin_manager/gem_installer_spec.rb | 61 ++++++++++ spec/unit/plugin_manager/install_spec.rb | 38 +++++- .../install_strategy_factory_spec.rb | 27 +++++ .../pack_fetch_strategy/repository_spec.rb | 42 +++++++ .../pack_fetch_strategy/uri_spec.rb | 52 ++++++++ .../pack_installer/local_spec.rb | 68 +++++++++++ .../pack_installer/pack_spec.rb | 100 ++++++++++++++++ .../pack_installer/remote_spec.rb | 40 +++++++ spec/unit/plugin_manager/ui_spec.rb | 59 ++++++++++ .../plugin_manager/utils/downloader_spec.rb | 81 +++++++++++++ .../plugin_manager/utils/http_client_spec.rb | 101 ++++++++++++++++ spec/unit/util/compress_spec.rb | 80 ++++++++++++- 47 files changed, 1629 insertions(+), 80 deletions(-) create mode 100644 lib/pluginmanager/bundler/logstash_injector.rb create mode 100644 lib/pluginmanager/bundler/logstash_uninstall.rb create mode 100644 lib/pluginmanager/errors.rb create mode 100644 lib/pluginmanager/gem_installer.rb create mode 100644 lib/pluginmanager/install_strategy_factory.rb create mode 100644 lib/pluginmanager/pack_fetch_strategy/repository.rb create mode 100644 lib/pluginmanager/pack_fetch_strategy/uri.rb create mode 100644 lib/pluginmanager/pack_installer/local.rb create mode 100644 lib/pluginmanager/pack_installer/pack.rb create mode 100644 lib/pluginmanager/pack_installer/remote.rb create mode 100644 lib/pluginmanager/ui.rb delete mode 100644 lib/pluginmanager/uninstall.rb create mode 100644 lib/pluginmanager/utils/downloader.rb create mode 100644 lib/pluginmanager/utils/http_client.rb create mode 100644 qa/integration/fixtures/remove_spec.yml create mode 100644 qa/integration/specs/cli/remove_spec.rb create mode 100644 spec/support/pack/empty-pack.zip create mode 100644 spec/support/pack/valid-pack.zip create mode 100644 spec/support/pack/valid-pack/logstash/valid-pack/dependencies/logstash-input-packtestdep-0.0.1.gem create mode 100644 spec/support/pack/valid-pack/logstash/valid-pack/dependencies/logstash-input-packtestdep.gemspec create mode 100644 spec/support/pack/valid-pack/logstash/valid-pack/logstash-input-packtest-0.0.1.gem create mode 100644 spec/support/pack/valid-pack/logstash/valid-pack/logstash-input-packtest.gemspec create mode 100644 spec/unit/plugin_manager/gem_installer_spec.rb create mode 100644 spec/unit/plugin_manager/install_strategy_factory_spec.rb create mode 100644 spec/unit/plugin_manager/pack_fetch_strategy/repository_spec.rb create mode 100644 spec/unit/plugin_manager/pack_fetch_strategy/uri_spec.rb create mode 100644 spec/unit/plugin_manager/pack_installer/local_spec.rb create mode 100644 spec/unit/plugin_manager/pack_installer/pack_spec.rb create mode 100644 spec/unit/plugin_manager/pack_installer/remote_spec.rb create mode 100644 spec/unit/plugin_manager/ui_spec.rb create mode 100644 spec/unit/plugin_manager/utils/downloader_spec.rb create mode 100644 spec/unit/plugin_manager/utils/http_client_spec.rb diff --git a/.gitignore b/.gitignore index 2715c52735f..6ffc2014992 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .*.swp -*.gem +/*.gem +logstash*/*.gem pkg/*.deb pkg/*.rpm *.class diff --git a/Gemfile b/Gemfile index 21628e82560..0dfd3fe26f2 100644 --- a/Gemfile +++ b/Gemfile @@ -6,10 +6,11 @@ gem "logstash-core", :path => "./logstash-core" gem "logstash-core-queue-jruby", :path => "./logstash-core-queue-jruby" gem "logstash-core-event-java", :path => "./logstash-core-event-java" gem "logstash-core-plugin-api", :path => "./logstash-core-plugin-api" +gem "ruby-progressbar", "~> 1.8.1" +gem "builder", "~> 3.2.2" gem "file-dependencies", "0.1.6" gem "ci_reporter_rspec", "1.0.0", :group => :development gem "simplecov", :group => :development -gem "coveralls", :group => :development gem "tins", "1.6", :group => :development gem "rspec", "~> 3.1.0", :group => :development gem "logstash-devutils", "~> 1.1", :group => :development @@ -115,4 +116,3 @@ gem "logstash-output-stdout" gem "logstash-output-tcp" gem "logstash-output-udp" gem "logstash-output-webhdfs" -gem "logstash-filter-multiline" diff --git a/lib/bootstrap/bundler.rb b/lib/bootstrap/bundler.rb index 13c04b58ab9..c90cd67488a 100644 --- a/lib/bootstrap/bundler.rb +++ b/lib/bootstrap/bundler.rb @@ -103,6 +103,7 @@ def invoke!(options = {}) ::Bundler.settings[:path] = LogStash::Environment::BUNDLE_DIR ::Bundler.settings[:gemfile] = LogStash::Environment::GEMFILE_PATH ::Bundler.settings[:without] = options[:without].join(":") + ::Bundler.settings[:force] = options[:force] if !debug? # Will deal with transient network errors diff --git a/lib/bootstrap/environment.rb b/lib/bootstrap/environment.rb index 0411685f19a..79ff4c024df 100644 --- a/lib/bootstrap/environment.rb +++ b/lib/bootstrap/environment.rb @@ -5,6 +5,7 @@ require_relative "bundler" require_relative "rubygems" +require "pathname" module LogStash module Environment @@ -16,7 +17,9 @@ module Environment BUNDLE_DIR = ::File.join(LOGSTASH_HOME, "vendor", "bundle") GEMFILE_PATH = ::File.join(LOGSTASH_HOME, "Gemfile") LOCAL_GEM_PATH = ::File.join(LOGSTASH_HOME, 'vendor', 'local_gems') - CACHE_PATH = File.join(LOGSTASH_HOME, "vendor", "cache") + CACHE_PATH = ::File.join(LOGSTASH_HOME, "vendor", "cache") + LOCKFILE = Pathname.new(::File.join(LOGSTASH_HOME, "Gemfile.jruby-1.9.lock")) + GEMFILE = Pathname.new(::File.join(LOGSTASH_HOME, "Gemfile")) # @return [String] the ruby version string bundler uses to craft its gem path def gem_ruby_version diff --git a/lib/bootstrap/util/compress.rb b/lib/bootstrap/util/compress.rb index 79bd38461b4..1d9f04b2248 100644 --- a/lib/bootstrap/util/compress.rb +++ b/lib/bootstrap/util/compress.rb @@ -18,13 +18,13 @@ module Zip # @param source [String] The location of the file to extract # @param target [String] Where you do want the file to be extracted # @raise [IOError] If the target directory already exist - def extract(source, target) + def extract(source, target, pattern = nil) raise CompressError.new("Directory #{target} exist") if ::File.exist?(target) ::Zip::File.open(source) do |zip_file| zip_file.each do |file| path = ::File.join(target, file.name) FileUtils.mkdir_p(::File.dirname(path)) - zip_file.extract(file, path) + zip_file.extract(file, path) if pattern.nil? || pattern =~ file.name end end end diff --git a/lib/pluginmanager/bundler/logstash_injector.rb b/lib/pluginmanager/bundler/logstash_injector.rb new file mode 100644 index 00000000000..1ac2e0ebe68 --- /dev/null +++ b/lib/pluginmanager/bundler/logstash_injector.rb @@ -0,0 +1,50 @@ +# encoding: utf-8 +require "bootstrap/environment" +require "bundler" +require "bundler/definition" +require "bundler/dependency" +require "bundler/dsl" +require "bundler/injector" + +# This class cannot be in the logstash namespace, because of the way the DSL +# class interact with the other libraries +module Bundler + class LogstashInjector < ::Bundler::Injector + def self.inject!(new_deps, options = { :gemfile => LogStash::Environment::GEMFILE, :lockfile => LogStash::Environment::LOCKFILE }) + gemfile = options.delete(:gemfile) + lockfile = options.delete(:lockfile) + + bundler_format = Array(new_deps).collect { |plugin| ::Bundler::Dependency.new(plugin.name, "=#{plugin.version}")} + + injector = new(bundler_format) + injector.inject(gemfile, lockfile) + end + + + # This class is pretty similar to what bundler's injector class is doing + # but we only accept a local resolution of the dependencies instead of calling rubygems. + # so we removed `definition.resolve_remotely!` + def inject(gemfile_path, lockfile_path) + if Bundler.settings[:frozen] + # ensure the lock and Gemfile are synced + Bundler.definition.ensure_equivalent_gemfile_and_lockfile(true) + # temporarily remove frozen while we inject + frozen = Bundler.settings.delete(:frozen) + end + + builder = Dsl.new + builder.eval_gemfile(gemfile_path) + + @new_deps -= builder.dependencies + + builder.eval_gemfile("injected gems", new_gem_lines) if @new_deps.any? + definition = builder.to_definition(lockfile_path, {}) + append_to(gemfile_path) if @new_deps.any? + definition.lock(lockfile_path) + + return @new_deps + ensure + Bundler.settings[:frozen] = "1" if frozen + end + end +end diff --git a/lib/pluginmanager/bundler/logstash_uninstall.rb b/lib/pluginmanager/bundler/logstash_uninstall.rb new file mode 100644 index 00000000000..bdaef0dbac6 --- /dev/null +++ b/lib/pluginmanager/bundler/logstash_uninstall.rb @@ -0,0 +1,89 @@ +# encoding: utf-8 +require "bootstrap/environment" +require "bundler" +require "bundler/definition" +require "bundler/dependency" +require "bundler/dsl" +require "bundler/injector" +require "pluginmanager/gemfile" + +# This class cannot be in the logstash namespace, because of the way the DSL +# class interact with the other libraries +module Bundler + class LogstashUninstall + attr_reader :gemfile_path, :lockfile_path + + def initialize(gemfile_path, lockfile_path) + @gemfile_path = gemfile_path + @lockfile_path = lockfile_path + end + + # To be uninstalled the candidate gems need to be standalone. + def dependants_gems(gem_name) + builder = Dsl.new + builder.eval_gemfile("original gemfile", File.read(gemfile_path)) + definition = builder.to_definition(lockfile_path, {}) + + definition.specs + .select { |spec| spec.dependencies.collect(&:name).include?(gem_name) } + .collect(&:name).sort.uniq + end + + def uninstall!(gem_name) + unfreeze_gemfile do + + dependencies_from = dependants_gems(gem_name) + + if dependencies_from.size > 0 + display_cant_remove_message(gem_name, dependencies_from) + false + else + remove_gem(gem_name) + true + end + end + end + + def remove_gem(gem_name) + builder = Dsl.new + file = File.new(gemfile_path, "r+") + + gemfile = LogStash::Gemfile.new(file).load + gemfile.remove(gem_name) + builder.eval_gemfile("gemfile to changes", gemfile.generate) + + definition = builder.to_definition(lockfile_path, {}) + definition.lock(lockfile_path) + gemfile.save + + LogStash::PluginManager.ui.info("Successfully removed #{gem_name}") + ensure + file.close if file + end + + def display_cant_remove_message(gem_name, dependencies_from) + message =<<-eos +Failed to remove \"#{gem_name}\" because the following plugins or libraries depend on it: + +* #{dependencies_from.join("\n* ")} + eos + LogStash::PluginManager.ui.info(message) + end + + def unfreeze_gemfile + if Bundler.settings[:frozen] + Bundler.definition.ensure_equivalent_gemfile_and_lockfile(true) + frozen = Bundler.settings.delete(:frozen) + end + yield + ensure + Bundler.settings[:frozen] = "1" if frozen + end + + def self.uninstall!(gem_name, options = { :gemfile => LogStash::Environment::GEMFILE, :lockfile => LogStash::Environment::LOCKFILE }) + gemfile_path = options[:gemfile] + lockfile_path = options[:lockfile] + LogstashUninstall.new(gemfile_path, lockfile_path).uninstall!(gem_name) + end + end +end diff --git a/lib/pluginmanager/command.rb b/lib/pluginmanager/command.rb index 4adc46544c1..1a7c88bedc9 100644 --- a/lib/pluginmanager/command.rb +++ b/lib/pluginmanager/command.rb @@ -21,7 +21,6 @@ def display_bundler_output(output) end end - # Each plugin install for a gemfile create a path with a unique id. # we must clear what is not currently used in the def remove_unused_locally_installed_gems! diff --git a/lib/pluginmanager/errors.rb b/lib/pluginmanager/errors.rb new file mode 100644 index 00000000000..260c5815cbc --- /dev/null +++ b/lib/pluginmanager/errors.rb @@ -0,0 +1,13 @@ +# encoding: utf-8 +module LogStash module PluginManager + class PluginManagerError < StandardError; end + class FileNotFoundError < PluginManagerError; end + class InvalidPackError < PluginManagerError; end + class InstallError < PluginManagerError + attr_reader :original_exception + + def initialize(original_exception) + @original_exception = original_exception + end + end +end end diff --git a/lib/pluginmanager/gem_installer.rb b/lib/pluginmanager/gem_installer.rb new file mode 100644 index 00000000000..4a1cf020983 --- /dev/null +++ b/lib/pluginmanager/gem_installer.rb @@ -0,0 +1,78 @@ +# encoding: utf-8 +require "pluginmanager/ui" +require "pathname" +require "rubygems/package" + +module LogStash module PluginManager + # Install a physical gem package to the appropriate location inside logstash + # - Extract the gem + # - Generate the specifications + # - Copy the data in the right folders + class GemInstaller + GEM_HOME = Pathname.new(::File.join(LogStash::Environment::BUNDLE_DIR, "jruby", "1.9")) + SPECIFICATIONS_DIR = "specifications" + GEMS_DIR = "gems" + + attr_reader :gem_home + + def initialize(gem_file, display_post_install_message = false, gem_home = GEM_HOME) + @gem = ::Gem::Package.new(gem_file) + @gem_home = Pathname.new(gem_home) + @display_post_install_message = display_post_install_message + end + + def install + create_destination_folders + extract_files + write_specification + display_post_install_message + end + + def self.install(gem_file, display_post_install_message = false, gem_home = GEM_HOME) + self.new(gem_file, display_post_install_message, gem_home).install + end + + private + def spec + @gem.spec + end + + def spec_dir + gem_home.join(SPECIFICATIONS_DIR) + end + + def spec_file + spec_dir.join("#{spec.full_name}.gemspec") + end + + def gem_dir + gem_home.join(GEMS_DIR, spec.full_name) + end + + def extract_files + @gem.extract_files gem_dir + end + + def write_specification + ::File.open(spec_file, 'w') do |file| + spec.installed_by_version = ::Gem.rubygems_version + file.puts spec.to_ruby_for_cache + file.fsync rescue nil # Force writing to disk + end + end + + def display_post_install_message + PluginManager.ui.info(spec.post_install_message) if display_post_install_message? + end + + def display_post_install_message? + @display_post_install_message && !spec.post_install_message.nil? + end + + def create_destination_folders + FileUtils.mkdir_p(gem_home) + FileUtils.mkdir_p(gem_dir) + FileUtils.mkdir_p(spec_dir) + end + end +end end diff --git a/lib/pluginmanager/gemfile.rb b/lib/pluginmanager/gemfile.rb index 68bf88334f1..c0b996dffd7 100644 --- a/lib/pluginmanager/gemfile.rb +++ b/lib/pluginmanager/gemfile.rb @@ -15,9 +15,9 @@ def initialize(io) @gemset = nil end - def load + def load(with_backup = true) @gemset ||= DSL.parse(@io.read) - backup + backup if with_backup self end @@ -25,11 +25,14 @@ def save raise(GemfileError, "a Gemfile must first be loaded") unless @gemset @io.truncate(0) @io.rewind - @io.write(HEADER) - @io.write(@gemset.to_s) + @io.write(generate) @io.flush end + def generate + "#{HEADER}#{gemset.to_s}" + end + def find(name) @gemset.find_gem(name) end diff --git a/lib/pluginmanager/install.rb b/lib/pluginmanager/install.rb index 0e6383d725b..e7ba94158ce 100644 --- a/lib/pluginmanager/install.rb +++ b/lib/pluginmanager/install.rb @@ -1,5 +1,8 @@ # encoding: utf-8 require "pluginmanager/command" +require "pluginmanager/install_strategy_factory" +require "pluginmanager/ui" +require "pluginmanager/errors" require "jar-dependencies" require "jar_install_post_install_hook" require "file-dependencies/gem" @@ -17,6 +20,30 @@ class LogStash::PluginManager::Install < LogStash::PluginManager::Command # but the argument parsing does not support it for now so currently if specifying --version only # one plugin name can be also specified. def execute + # This is a special flow for PACK related plugins, + # if we dont detect an pack we will just use the normal `Bundle install` Strategy` + # this could be refactored into his own strategy + begin + if strategy = LogStash::PluginManager::InstallStrategyFactory.create(plugins_arg) + LogStash::PluginManager.ui.debug("Installing with strategy: #{strategy.class}") + strategy.execute + return + end + rescue LogStash::PluginManager::InstallError => e + report_exception("An error occured when installing the: #{plugins_args_human}, to have more information about the error add a DEBUG=1 before running the command.", e.original_exception) + return + rescue LogStash::PluginManager::FileNotFoundError => e + report_exception("File not found for: #{plugins_args_human}", e) + return + rescue LogStash::PluginManager::InvalidPackError => e + report_exception("Invalid pack for: #{plugins_args_human}, reason: #{e.message}", e) + return + rescue => e + report_exception("Something went wrong when installing #{plugins_args_human}", e) + return + end + + # TODO(ph): refactor this into his own strategy validate_cli_options! if local_gems? @@ -152,4 +179,8 @@ def local_gems? signal_usage_error("Mixed source of plugins, you can't mix local `.gem` and remote gems") end end + + def plugins_args_human + plugins_arg.join(", ") + end end # class Logstash::PluginManager diff --git a/lib/pluginmanager/install_strategy_factory.rb b/lib/pluginmanager/install_strategy_factory.rb new file mode 100644 index 00000000000..ac5f9116154 --- /dev/null +++ b/lib/pluginmanager/install_strategy_factory.rb @@ -0,0 +1,22 @@ +# encoding: utf-8 +require "pluginmanager/ui" +require "pluginmanager/pack_fetch_strategy/repository" +require "pluginmanager/pack_fetch_strategy/uri" + +module LogStash module PluginManager + class InstallStrategyFactory + AVAILABLES_STRATEGIES = [ + LogStash::PluginManager::PackFetchStrategy::Uri, + LogStash::PluginManager::PackFetchStrategy::Repository + ] + + def self.create(plugins_arg) + AVAILABLES_STRATEGIES.each do |strategy| + if installer = strategy.get_installer_for(plugins_arg.first) + return installer + end + end + return false + end + end +end end diff --git a/lib/pluginmanager/main.rb b/lib/pluginmanager/main.rb index 4ccd437a80b..5323f4370a7 100644 --- a/lib/pluginmanager/main.rb +++ b/lib/pluginmanager/main.rb @@ -15,7 +15,6 @@ module PluginManager require "pluginmanager/util" require "pluginmanager/gemfile" require "pluginmanager/install" -require "pluginmanager/uninstall" require "pluginmanager/remove" require "pluginmanager/list" require "pluginmanager/update" @@ -35,7 +34,7 @@ class Main < Clamp::Command subcommand "pack", "Package currently installed plugins", LogStash::PluginManager::Pack subcommand "unpack", "Unpack packaged plugins", LogStash::PluginManager::Unpack subcommand "generate", "Create the foundation for a new plugin", LogStash::PluginManager::Generate - subcommand "uninstall", "Uninstall a plugin. Deprecated: Please use remove instead", LogStash::PluginManager::Uninstall + subcommand "uninstall", "Uninstall a plugin. Deprecated: Please use remove instead", LogStash::PluginManager::Remove end end end diff --git a/lib/pluginmanager/pack_fetch_strategy/repository.rb b/lib/pluginmanager/pack_fetch_strategy/repository.rb new file mode 100644 index 00000000000..777bd59843a --- /dev/null +++ b/lib/pluginmanager/pack_fetch_strategy/repository.rb @@ -0,0 +1,43 @@ +# encoding: utf-8 +# In the context of the plugin manager no dependencies are currently loaded. +# So we have to manually require the version file +require_relative "../../../logstash-core/lib/logstash/version" +require "pluginmanager/pack_installer/remote" +require "pluginmanager/utils/http_client" +require "pluginmanager/ui" +require "net/http" +require "uri" + +module LogStash module PluginManager module PackFetchStrategy + class Repository + ELASTIC_PACK_BASE_URI = ENV["LOGSTASH_PACK_URL"] || "https://artifacts.elastic.co/downloads/logstash-plugins" + PACK_EXTENSION = "zip" + + class << self + def pack_uri(plugin_name) + url = "#{ELASTIC_PACK_BASE_URI}/#{plugin_name}/#{plugin_name}-#{LOGSTASH_VERSION}.#{PACK_EXTENSION}" + URI.parse(url) + end + + def get_installer_for(plugin_name) + uri = pack_uri(plugin_name) + + PluginManager.ui.debug("Looking if package named: #{plugin_name} exists at #{uri}") + + if Utils::HttpClient.remote_file_exist?(uri) + PluginManager.ui.debug("Found package at: #{uri}") + return LogStash::PluginManager::PackInstaller::Remote.new(uri) + else + PluginManager.ui.debug("Package not found at: #{uri}") + return nil + end + rescue SocketError => e + # This probably means there is a firewall in place of the proxy is not correctly configured. + # So lets skip this strategy but log a meaningful errors. + PluginManager.ui.debug("SocketError, skipping Elastic pack, exception: #{e}") + + return nil + end + end + end +end end end diff --git a/lib/pluginmanager/pack_fetch_strategy/uri.rb b/lib/pluginmanager/pack_fetch_strategy/uri.rb new file mode 100644 index 00000000000..9dfc19828b9 --- /dev/null +++ b/lib/pluginmanager/pack_fetch_strategy/uri.rb @@ -0,0 +1,44 @@ +# encoding: utf-8 +require "pluginmanager/utils/http_client" +require "pluginmanager/pack_installer/local" +require "pluginmanager/pack_installer/remote" +require "pluginmanager/ui" +require "net/http" +require "uri" + +module LogStash module PluginManager module PackFetchStrategy + class Uri + class << self + def get_installer_for(plugin_name) + begin + uri = URI.parse(plugin_name) + + if local?(uri) + PluginManager.ui.debug("Local file: #{uri.path}") + return LogStash::PluginManager::PackInstaller::Local.new(uri.path) + elsif http?(uri) + PluginManager.ui.debug("Remote file: #{uri}") + return LogStash::PluginManager::PackInstaller::Remote.new(uri) + else + return nil + end + rescue URI::InvalidURIError, + URI::InvalidComponentError, + URI::BadURIError => e + + PluginManager.ui.debug("Invalid URI for pack, uri: #{uri}") + return nil + end + end + + private + def http?(uri) + !uri.scheme.nil? && uri.scheme.match(/^http/) + end + + def local?(uri) + !uri.scheme.nil? && uri.scheme == "file" + end + end + end +end end end diff --git a/lib/pluginmanager/pack_installer/local.rb b/lib/pluginmanager/pack_installer/local.rb new file mode 100644 index 00000000000..702eb408754 --- /dev/null +++ b/lib/pluginmanager/pack_installer/local.rb @@ -0,0 +1,111 @@ +# encoding: utf-8 +require "pluginmanager/ui" +require "pluginmanager/bundler/logstash_injector" +require "pluginmanager/gem_installer" +require "pluginmanager/errors" +require "pluginmanager/pack_installer/pack" +require "bootstrap/util/compress" +require "rubygems/indexer" + +module LogStash module PluginManager module PackInstaller + class Local + PACK_EXTENSION = ".zip" + GEMS_DIR = "gems" + LOGSTASH_PATTERN_RE = /logstash\/?/ + + attr_reader :local_file + + def initialize(local_file) + @local_file = local_file + end + + def execute + raise PluginManager::FileNotFoundError, "Can't file local file #{local_file}" unless ::File.exist?(local_file) + raise PluginManager::InvalidPackError, "Invalid format, the pack must be in zip format" unless valid_format?(local_file) + + PluginManager.ui.info("Installing file: #{local_file}") + uncompressed_path = uncompress(local_file) + PluginManager.ui.debug("Pack uncompressed to #{uncompressed_path}") + pack = LogStash::PluginManager::PackInstaller::Pack.new(uncompressed_path) + raise PluginManager::InvalidPackError, "The pack must contains at least one plugin" unless pack.valid? + + local_source = move_to_local_source(uncompressed_path) + update_in_memory_index(local_source) + + # Try to add the gems to the current gemfile and lock file, if successful + # both of them will be updated. This injector is similar to Bundler's own injector class + # minus the support for additionals source and doing local resolution only. + added = ::Bundler::LogstashInjector.inject!(pack.plugins) + + # When successfull its safe to install the gem and their specifications in the bundle directory + pack.gems.each do |packed_gem| + PluginManager.ui.debug("Installing, #{packed_gem.name}, version: #{packed_gem.version} file: #{packed_gem.file}") + LogStash::PluginManager::GemInstaller::install(packed_gem.file, packed_gem.plugin?) + end + PluginManager.ui.info("Install successful") + rescue ::Bundler::BundlerError => e + raise PluginManager::InstallError.new(e), "An error occurent went installing plugins" + ensure + FileUtils.rm_rf(uncompressed_path) if uncompressed_path && Dir.exist?(uncompressed_path) + FileUtils.rm_rf(local_source) if local_source && Dir.exist?(local_source) + end + + private + def uncompress(source) + temporary_directory = Stud::Temporary.pathname + LogStash::Util::Zip.extract(source, temporary_directory, LOGSTASH_PATTERN_RE) + temporary_directory + rescue Zip::Error => e + # OK Zip's handling of file is bit weird, if the file exist but is not a valid zip, it will raise + # a `Zip::Error` exception with a file not found message... + raise InvalidPackError, "Cannot uncompress the zip: #{source}" + end + + def valid_format?(local_file) + ::File.extname(local_file).downcase == PACK_EXTENSION + end + + # Copy the file to a specific format that `Gem::Indexer` can understand + # See `#update_in_memory_index` + def move_to_local_source(temporary_directory) + local_source = Stud::Temporary.pathname + local_source_gems = ::File.join(local_source, GEMS_DIR) + + FileUtils.mkdir_p(local_source_gems) + PluginManager.ui.debug("Creating the index structure format from #{temporary_directory} to #{local_source}") + + Dir.glob(::File.join(temporary_directory, "**", "*.gem")).each do |file| + destination = ::File.join(local_source_gems, ::File.basename(file)) + FileUtils.cp(file, destination) + end + + local_source + end + + # This takes a folder with a special structure, will generate an index + # similar to what rubygems do and make them available in the local program, + # we use this **side effect** to validate theses gems with the current gemfile/lock. + # Bundler will assume they are system gems and will use them when doing resolution checks. + # + #. + # ├── gems + # │   ├── addressable-2.4.0.gem + # │   ├── cabin-0.9.0.gem + # │   ├── ffi-1.9.14-java.gem + # │   ├── gemoji-1.5.0.gem + # │   ├── launchy-2.4.3-java.gem + # │   ├── logstash-output-elasticsearch-5.2.0-java.gem + # │   ├── logstash-output-secret-0.1.0.gem + # │   ├── manticore-0.6.0-java.gem + # │   ├── spoon-0.0.6.gem + # │   └── stud-0.0.22.gem + # + # Right now this work fine, but I think we could also use Bundler's SourceList classes to handle the same thing + def update_in_memory_index(local_source) + PluginManager.ui.debug("Generating indexes in #{local_source}") + indexer = ::Gem::Indexer.new(local_source, { :build_modern => true}) + indexer.ui = ::Gem::SilentUI.new unless ENV["DEBUG"] + indexer.generate_index + end + end +end end end diff --git a/lib/pluginmanager/pack_installer/pack.rb b/lib/pluginmanager/pack_installer/pack.rb new file mode 100644 index 00000000000..7c9b5bbe8e7 --- /dev/null +++ b/lib/pluginmanager/pack_installer/pack.rb @@ -0,0 +1,82 @@ +# encoding: utf-8 +require "pluginmanager/errors" + +module LogStash module PluginManager module PackInstaller + # A object that represent the directory structure + # related to the actual gems in the extracted package. + # + # Example of a valid structure, where `logstash-output-secret` is the actual + # plugin to be installed. + #. + # ├── dependencies + # │   ├── addressable-2.4.0.gem + # │   ├── cabin-0.9.0.gem + # │   ├── ffi-1.9.14-java.gem + # │   ├── gemoji-1.5.0.gem + # │   ├── launchy-2.4.3-java.gem + # │   ├── logstash-output-elasticsearch-5.2.0-java.gem + # │   ├── manticore-0.6.0-java.gem + # │   ├── spoon-0.0.6.gem + # │   └── stud-0.0.22.gem + # └── logstash-output-secret-0.1.0.gem + class Pack + class GemInformation + EXTENSION = ".gem" + SPLIT_CHAR = "-" + JAVA_PLATFORM_RE = /-java/ + DEPENDENCIES_DIR_RE = /dependencies/ + + attr_reader :file, :name, :version, :platform + + def initialize(gem) + @file = gem + extracts_information + end + + def dependency? + @dependency + end + + def plugin? + !dependency? + end + + private + def extracts_information + basename = ::File.basename(file, EXTENSION) + parts = basename.split(SPLIT_CHAR) + + @dependency = ::File.dirname(file) =~ DEPENDENCIES_DIR_RE + + if basename.match(JAVA_PLATFORM_RE) + @platform = parts.pop + @version = parts.pop + @name = parts.join(SPLIT_CHAR) + else + @platform = nil + @version = parts.pop + @name = parts.join(SPLIT_CHAR) + end + end + end + + attr_reader :gems + + def initialize(source) + @gems = Dir.glob(::File.join(source, "**", "*.gem")).collect { |gem| GemInformation.new(gem) } + end + + def plugins + require "pry" + gems.select { |gem| !gem.dependency? } + end + + def dependencies + gems.select { |gem| gem.dependency? } + end + + def valid? + plugins.size > 0 + end + end +end end end diff --git a/lib/pluginmanager/pack_installer/remote.rb b/lib/pluginmanager/pack_installer/remote.rb new file mode 100644 index 00000000000..37cb52973b5 --- /dev/null +++ b/lib/pluginmanager/pack_installer/remote.rb @@ -0,0 +1,25 @@ +# encoding: utf-8 +require "pluginmanager/pack_installer/local" +require "pluginmanager/utils/downloader" +require "fileutils" + +module LogStash module PluginManager module PackInstaller + class Remote + attr_reader :remote_url, :feedback + + def initialize(remote_url, feedback = Utils::Downloader::ProgressbarFeedback) + @remote_url = remote_url + @feedback = feedback + end + + def execute + PluginManager.ui.info("Downloading file: #{remote_url}") + downloaded_file = Utils::Downloader.fetch(remote_url, feedback) + PluginManager.ui.debug("Downloaded package to: #{downloaded_file}") + + PackInstaller::Local.new(downloaded_file).execute + ensure + FileUtils.rm_rf(downloaded_file) if downloaded_file + end + end +end end end diff --git a/lib/pluginmanager/remove.rb b/lib/pluginmanager/remove.rb index 530463f64b1..eddd604e1cc 100644 --- a/lib/pluginmanager/remove.rb +++ b/lib/pluginmanager/remove.rb @@ -1,8 +1,8 @@ # encoding: utf-8 +require "pluginmanager/bundler/logstash_uninstall" require "pluginmanager/command" class LogStash::PluginManager::Remove < LogStash::PluginManager::Command - parameter "PLUGIN", "plugin name" def execute @@ -19,23 +19,10 @@ def execute # it is not possible to uninstall a dependency not listed in the Gemfile, for example a dependent codec signal_error("This plugin has not been previously installed, aborting") unless LogStash::PluginManager.installed_plugin?(plugin, gemfile) - # since we previously did a gemfile.find(plugin) there is no reason why - # remove would not work (return nil) here - if gemfile.remove(plugin) - gemfile.save - - puts("Removing #{plugin}") - - # any errors will be logged to $stderr by invoke! - # output, exception = LogStash::Bundler.invoke!(:install => true, :clean => true) - output = LogStash::Bundler.invoke!(:install => true, :clean => true) + exit(1) unless ::Bundler::LogstashUninstall.uninstall!(plugin) - remove_unused_locally_installed_gems! - end + remove_unused_locally_installed_gems! rescue => exception - gemfile.restore! - report_exception("Remove Aborted", exception) - ensure - display_bundler_output(output) + report_exception("Operation aborted, cannot remove plugin.", exception) end end diff --git a/lib/pluginmanager/ui.rb b/lib/pluginmanager/ui.rb new file mode 100644 index 00000000000..1f40265cf3c --- /dev/null +++ b/lib/pluginmanager/ui.rb @@ -0,0 +1,24 @@ +# encoding: utf-8 +module LogStash module PluginManager + # The command line commands should be able to report but they shouldn't + # require an explicit logger like log4j. + class Shell + def info(message) + puts message + end + alias_method :error, :info + alias_method :warn, :info + + def debug(message) + puts message if ENV["DEBUG"] + end + end + + def self.ui + @ui ||= Shell.new + end + + def self.ui=(new_ui) + @ui = new_ui + end +end end diff --git a/lib/pluginmanager/uninstall.rb b/lib/pluginmanager/uninstall.rb deleted file mode 100644 index 2a954e4ea6f..00000000000 --- a/lib/pluginmanager/uninstall.rb +++ /dev/null @@ -1,44 +0,0 @@ -# encoding: utf-8 -require "pluginmanager/command" - -# TODO: SR: Delete this file in 6.0, as we deprecated uninstall in favar of remove to be consistent with the stack - -class LogStash::PluginManager::Uninstall < LogStash::PluginManager::Command - - parameter "PLUGIN", "plugin name" - - def execute - puts "uninstall subcommand is deprecated and will be removed in the next major version. Please use logstash-plugin remove instead." - - signal_error("File #{LogStash::Environment::GEMFILE_PATH} does not exist or is not writable, aborting") unless File.writable?(LogStash::Environment::GEMFILE_PATH) - ## - # Need to setup the bundler status to enable uninstall of plugins - # installed as local_gems, otherwise gem:specification is not - # finding the plugins - ## - LogStash::Bundler.setup!({:without => [:build, :development]}) - - # make sure this is an installed plugin and present in Gemfile. - # it is not possible to uninstall a dependency not listed in the Gemfile, for example a dependent codec - signal_error("This plugin has not been previously installed, aborting") unless LogStash::PluginManager.installed_plugin?(plugin, gemfile) - - # since we previously did a gemfile.find(plugin) there is no reason why - # remove would not work (return nil) here - if gemfile.remove(plugin) - gemfile.save - - puts("Uninstalling #{plugin}") - - # any errors will be logged to $stderr by invoke! - # output, exception = LogStash::Bundler.invoke!(:install => true, :clean => true) - output = LogStash::Bundler.invoke!(:install => true, :clean => true) - - remove_unused_locally_installed_gems! - end - rescue => exception - gemfile.restore! - report_exception("Uninstall Aborted", exception) - ensure - display_bundler_output(output) - end -end diff --git a/lib/pluginmanager/utils/downloader.rb b/lib/pluginmanager/utils/downloader.rb new file mode 100644 index 00000000000..7c04dfb1fcf --- /dev/null +++ b/lib/pluginmanager/utils/downloader.rb @@ -0,0 +1,91 @@ +# encoding: utf-8 +require "ruby-progressbar" +require "pluginmanager/utils/http_client" +require "pluginmanager/errors" +require "fileutils" + +module LogStash module PluginManager module Utils + class Downloader + class ProgressbarFeedback + FORMAT = "%t [%B] %p%%" + TITLE = "Downloading" + + attr_reader :progress_bar + + def initialize(max) + @progress_bar = ProgressBar.create(:title => TITLE, + :starting_at => 0, + :total => max, + :format => FORMAT) + end + + def update(status) + progress_bar.progress += status + end + end + + class SilentFeedback + def initialize(max) + end + + def update(status) + end + end + + attr_reader :download_to, :remote_file_uri, :feedback_strategy + + def initialize(remote_file_uri, feedback = SilentFeedback) + @remote_file_uri = URI(remote_file_uri) + @download_to = Stud::Temporary.pathname + @feedback_strategy = feedback + end + + def fetch(redirect_count = 0) + # This is defensive programming, but in the real world we do create redirects all the time + raise HttpClient::RedirectionLimit, "Too many redirection, tried #{REDIRECTION_LIMIT} times" if redirect_count >= HttpClient::REDIRECTION_LIMIT + + begin + FileUtils.mkdir_p(download_to) + downloaded_file = ::File.open(::File.join(download_to, ::File.basename(remote_file_uri.path)), "w") + + HttpClient.start(remote_file_uri) do |http| + request = Net::HTTP::Get.new(remote_file_uri.path) + + http.request(request) do |response| + if response.code == "200" + download_chunks(response, downloaded_file) + elsif response.code == "302" + new_uri = response.headers["location"] + + redirect_count += 1 + downloader = self.new(new_uri, feedback_strategy) + downloader.fetch(redirect_count) + else + raise LogStash::PluginManager::FileNotFoundError, "Can't download #{remote_file_uri}" if response.code != "200" + end + end + downloaded_file.close + downloaded_file.path + end + rescue => e + downloaded_file.close rescue nil + FileUtils.rm_rf(download_to) + raise e + end + end + + def self.fetch(remote_file, feedback = SilentFeedback) + new(remote_file, feedback).fetch + end + + private + def download_chunks(response, downloaded_file) + feedback = feedback_strategy.new(response.content_length) + + response.read_body do |chunk| + feedback.update(chunk.bytesize) + downloaded_file.write(chunk) + end + end + end +end end end diff --git a/lib/pluginmanager/utils/http_client.rb b/lib/pluginmanager/utils/http_client.rb new file mode 100644 index 00000000000..7bf48fef3ee --- /dev/null +++ b/lib/pluginmanager/utils/http_client.rb @@ -0,0 +1,40 @@ +# encoding: utf-8 +module LogStash module PluginManager module Utils + class HttpClient + class RedirectionLimit < RuntimeError; end + + HTTPS_SCHEME = "https" + REDIRECTION_LIMIT = 5 + + # Proxies should be handled by the library + # https://ruby-doc.org/stdlib-2.3.1/libdoc/net/http/rdoc/Net/HTTP.html#class-Net::HTTP-label-Proxies + def self.start(uri) + uri = URI(uri) + Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == HTTPS_SCHEME) { |http| yield http } + end + + # Do a HEAD request on the file to see if it exist before downloading it + def self.remote_file_exist?(uri, redirect_count = 0) + uri = URI(uri) + + # This is defensive programming, but in the real world we do create redirects all the time + raise RedirectionLimit, "Too many redirection, tried #{REDIRECTION_LIMIT} times" if redirect_count >= REDIRECTION_LIMIT + + start(uri) do |http| + return false if uri.path.empty? + + request = Net::HTTP::Head.new(uri.path) + response = http.request(request) + + if response.code == "302" + new_uri = response.headers["location"] + remote_file_exist?(new_uri, redirect_count + 1) + elsif response.code == "200" + true + else + false + end + end + end + end +end end end diff --git a/logstash-core/spec/logstash/webserver_spec.rb b/logstash-core/spec/logstash/webserver_spec.rb index 898a3b8d4d1..a5bd42f0b8c 100644 --- a/logstash-core/spec/logstash/webserver_spec.rb +++ b/logstash-core/spec/logstash/webserver_spec.rb @@ -5,6 +5,7 @@ require "socket" require "spec_helper" require "open-uri" +require "webmock/rspec" def block_ports(range) servers = [] @@ -35,6 +36,7 @@ def free_ports(servers) before :all do @abort = Thread.abort_on_exception Thread.abort_on_exception = true + WebMock.allow_net_connect! end after :all do diff --git a/qa/integration/fixtures/remove_spec.yml b/qa/integration/fixtures/remove_spec.yml new file mode 100644 index 00000000000..cbfc784af81 --- /dev/null +++ b/qa/integration/fixtures/remove_spec.yml @@ -0,0 +1,3 @@ +--- +services: + - logstash diff --git a/qa/integration/services/logstash_service.rb b/qa/integration/services/logstash_service.rb index 4ae85afdbcb..fbf92fa7e73 100644 --- a/qa/integration/services/logstash_service.rb +++ b/qa/integration/services/logstash_service.rb @@ -171,4 +171,48 @@ def get_version_yml def process_id @process.pid end + + def plugin_cli + PluginCli.new(@logstash_home) + end + + class PluginCli + class ProcessStatus < Struct.new(:exit_code, :stderr_and_stdout); end + + TIMEOUT_MAXIMUM = 60 * 10 # 10mins. + LOGSTASH_PLUGIN = File.join("bin", "logstash-plugin") + + attr_reader :logstash_plugin + + def initialize(logstash_home) + @logstash_plugin = File.join(logstash_home, LOGSTASH_PLUGIN) + end + + def remove(plugin_name) + run("remove #{plugin_name}") + end + + def list(plugin_name, verbose = false) + run("list #{plugin_name} #{verbose ? "--verbose" : ""}") + end + + def install(plugin_name) + run("install #{plugin_name}") + end + + def run(command) + out = Tempfile.new("content") + out.sync = true + process = ChildProcess.build(logstash_plugin,*command.split(" ")) + process.io.stdout = process.io.stderr = out + + Bundler.with_clean_env do + process.start + end + + process.poll_for_exit(TIMEOUT_MAXIMUM) + out.rewind + ProcessStatus.new(process.exit_code, out.read) + end + end end diff --git a/qa/integration/specs/cli/remove_spec.rb b/qa/integration/specs/cli/remove_spec.rb new file mode 100644 index 00000000000..f390b61d00d --- /dev/null +++ b/qa/integration/specs/cli/remove_spec.rb @@ -0,0 +1,44 @@ +# encoding: utf-8 +require_relative '../../framework/fixture' +require_relative '../../framework/settings' +require_relative '../../services/logstash_service' +require_relative '../../framework/helpers' +require "logstash/devutils/rspec/spec_helper" + +describe "Test removal of plugin" do + before(:all) do + @fixture = Fixture.new(__FILE__) + @logstash_plugin = @fixture.get_service("logstash").plugin_cli + end + + context "when no other plugins depends on this plugin" do + it "successfully remove the plugin" do + execute = @logstash_plugin.remove("logstash-input-twitter") + + expect(execute.exit_code).to eq(0) + expect(execute.stderr_and_stdout).to match(/Successfully removed logstash-input-twitter/) + + presence_check = @logstash_plugin.list("logstash-input-twitter") + expect(presence_check.exit_code).to eq(1) + expect(presence_check.stderr_and_stdout).to match(/ERROR: No plugins found/) + + @logstash_plugin.install("logstash-input-twitter") + end + end + + context "when other plugins depends on this plugin" do + it "refuses to remove the plugin and display the plugin that depends on it." do + execute = @logstash_plugin.remove("logstash-codec-json") + + expect(execute.exit_code).to eq(1) + expect(execute.stderr_and_stdout).to match(/Failed to remove "logstash-codec-json"/) + expect(execute.stderr_and_stdout).to match(/logstash-input-beats/) # one of the dependency + expect(execute.stderr_and_stdout).to match(/logstash-output-udp/) # one of the dependency + + presence_check = @logstash_plugin.list("logstash-codec-json") + + expect(presence_check.exit_code).to eq(0) + expect(presence_check.stderr_and_stdout).to match(/logstash-codec-json/) + end + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 4e49758160e..44919e332c7 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -8,6 +8,9 @@ require "flores/rspec" require "flores/random" +require "pathname" + +SUPPORT_DIR = Pathname.new(::File.join(::File.dirname(__FILE__), "support")) class JSONIOThingy < IO def initialize; end diff --git a/spec/support/pack/empty-pack.zip b/spec/support/pack/empty-pack.zip new file mode 100644 index 0000000000000000000000000000000000000000..f11de003e3f40eb7ba97da78fd7c83f7bb6023e5 GIT binary patch literal 152 zcmWIWW@h1H0D(E#$(~>al;C9$V93lXOU%hk(Je?!&eji&;92zt2i&LtZ&o&t0!AQo2h!Fc4g&xkdK$+7 literal 0 HcmV?d00001 diff --git a/spec/support/pack/valid-pack.zip b/spec/support/pack/valid-pack.zip new file mode 100644 index 0000000000000000000000000000000000000000..538bf0d19362587e4d39fbcdcb35d561ac4c66ca GIT binary patch literal 4799 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 Xe|yIC3>2SXBk!?v002Kb<=?*nye&6g literal 0 HcmV?d00001 diff --git a/spec/support/pack/valid-pack/logstash/valid-pack/dependencies/logstash-input-packtestdep-0.0.1.gem b/spec/support/pack/valid-pack/logstash/valid-pack/dependencies/logstash-input-packtestdep-0.0.1.gem new file mode 100644 index 0000000000000000000000000000000000000000..fc51fbf46e65caab665683935950da668f3c3450 GIT binary patch literal 4096 zcmc~zElEsCEJ@T$uVSDTFaQD*6B7my4Fu@4ftj%>gQ2m3fti`PiJ_ShgMp#3iHSLb zf&r}@glukUaY8f@({lvJcp)zuyWYzyItWGZyL6TOmMpi3s*O!Aff8_%nvkM<|4{|;@eI@&o!^7+}%pFc-< zY2I71^M1b5e`em*`Y)#J>d(k!-H)ANcB?ovg*)JH z^UK7)tWI+raxa@jcZ7Y`Q(5k^meKaJNKlx<(e%~ElUD{SK0H5DNbAK({wY&5;tgi( zFrK{3>Dyato>|>{W|#f;%iF%GR{K_%ZvJJt_8(lX>c1HGDxS%fOq;CnX_04lx5$Oe zO`%*rV}G=)o_CDpK)Q+X>w9t*A7);>9y|BalHDdOm*2kVuyhYDkoX#L#P5vZ>a)+9 zZcWk*VPE2WEj2o-Gk(8f+ZoxPN&B|WJv>L7RcCdJ>-(tU4Xe6mEkEk+{kO2_#j2Bc zwV#)4XOgYbOP_i!a-opZwCArLx33nu_GD}Fy2o42l~(@^I@F=}KU`A#`lE17Jzfj3 z<3SM`5As{h&*pxXGwPl9=Z5X0ILCc^q|=}1KDlW*_uJN)e2Q1Ni!O52Gc09$>y^t) zmm~wu`@kG9kon)h#27vQ8=IPq=6`x507U*zN|0b(oFLK@0_-E)-HLn*Xn8_g%gB`Rgn8$E=_K_rxjpeKj@r z*M}KSTV;@aWJ#lTC;QIXBGV7@-H$fn|9;x$)9dNN@ho=kZ|-?qzSXq7Rj1?)>yAXd zW5<@SR{Hxn_T=haK}iD3&P{eWe)-FvtwIw;tDC+S+;N!@Tx;Rk^2uTT4fb11yqwAF zTUQ&c*ygs)A#;PaMA?)r(|D%M>N%8Vq;copx0y+gI5IB=7*4l7`s9O+y7R8@cB>Pf z%sd(rWl$nIHzRGymNU+>#kpO?HCP#(GVC7fk6`j0O-1&1^@s6 literal 0 HcmV?d00001 diff --git a/spec/support/pack/valid-pack/logstash/valid-pack/dependencies/logstash-input-packtestdep.gemspec b/spec/support/pack/valid-pack/logstash/valid-pack/dependencies/logstash-input-packtestdep.gemspec new file mode 100644 index 00000000000..c0d175e51e1 --- /dev/null +++ b/spec/support/pack/valid-pack/logstash/valid-pack/dependencies/logstash-input-packtestdep.gemspec @@ -0,0 +1,11 @@ +# coding: utf-8 +Gem::Specification.new do |spec| + spec.name = "logstash-input-packtestdep" + spec.version = "0.0.1" + spec.authors = ["Elastic"] + spec.email = ["info@elastic.co"] + + spec.summary = "a summary" + spec.description = "a description" + spec.homepage = "https://elastic.co" +end diff --git a/spec/support/pack/valid-pack/logstash/valid-pack/logstash-input-packtest-0.0.1.gem b/spec/support/pack/valid-pack/logstash/valid-pack/logstash-input-packtest-0.0.1.gem new file mode 100644 index 0000000000000000000000000000000000000000..1a7f86416610ba1e4066ac0162ce345c0472107c GIT binary patch literal 4096 zcmc~zElEsCEJ@T$uVSDTFaQD*6B7my4Fu@4fw{3UgQ2m3fti`PiGjH}gMp#3iK#Jz zf&r}@glukUaY8f@({lvJcp)zuyW3@L0#xFGV zPw1>$ch$ChUl3Tsq<&;N$E`1J+9n5$*UNC^9i9;Qbfb}-Uxe#Yc>$wM@e_;|9x*nF z|L)xLS$W0E*;S_(h2Cg?!lGY1V^#r=CU@A!{;*V&T}zyr=1=xih{&!Tigz*?EU{stDk=TKR52@o=FA`r}edx zHFrD`_g!XfKOtH3jL4gnhi3oUR(E=n++`s$!GZHWFb51|{x>ke$p6M>qxql67^F-YBL62PNU$zW5a|g48TkJ{ zGlSmxt?wC#O-GcuVpR7)g+OvfYI1gQX>PGzWnyj)ZAt-9)rhbDH!(CptN%^R3{6Mt ze|n?|ME*~mU>(Hlz|r=5j*@uC;o@@7^z`?f35?p(>Qk4O`>vE_{`{9eZ~N`1f8UC} zpZ@ymX1RI)K1}a_|GQM=?UjiaMP>?1T@-&EH!tCgCXeH`-v$299>)8xYg{wcC!?(W zi=LK*>=DD<5J%2by3C8?T-%JbzTJ z>)fIzR!hy=4s-b4Uh1`4VPeaamU3^mtiV%u7OXzka?obOZkM9ff;tJSt%SNasEeKq k@MigF^ZxU`KMbu)ik2*5q(^9v+A$geqaiRF0)r<60DQ>0PXGV_ literal 0 HcmV?d00001 diff --git a/spec/support/pack/valid-pack/logstash/valid-pack/logstash-input-packtest.gemspec b/spec/support/pack/valid-pack/logstash/valid-pack/logstash-input-packtest.gemspec new file mode 100644 index 00000000000..78a7a1d48b5 --- /dev/null +++ b/spec/support/pack/valid-pack/logstash/valid-pack/logstash-input-packtest.gemspec @@ -0,0 +1,13 @@ +# coding: utf-8 +Gem::Specification.new do |spec| + spec.name = "logstash-input-packtest" + spec.version = "0.0.1" + spec.authors = ["Elastic"] + spec.email = ["info@elastic.co"] + + spec.summary = "a summary" + spec.description = "a description" + spec.homepage = "https://elastic.co" + + spec.add_runtime_dependency "logstash-input-packtestdep" +end diff --git a/spec/unit/plugin_manager/gem_installer_spec.rb b/spec/unit/plugin_manager/gem_installer_spec.rb new file mode 100644 index 00000000000..616f60b7926 --- /dev/null +++ b/spec/unit/plugin_manager/gem_installer_spec.rb @@ -0,0 +1,61 @@ +# encoding: utf-8 +require "pluginmanager/gem_installer" +require "pluginmanager/ui" +require "stud/temporary" +require "rubygems/specification" +require "fileutils" +require "ostruct" + +describe LogStash::PluginManager::GemInstaller do + let(:plugin_name) { "logstash-input-packtest-0.0.1" } + let(:simple_gem) { ::File.join(::File.dirname(__FILE__), "..", "..", "support", "pack", "valid-pack", "logstash", "valid-pack", "#{plugin_name}.gem") } + + subject { described_class } + let(:temporary_gem_home) { p = Stud::Temporary.pathname; FileUtils.mkdir_p(p); p } + + it "install the specifications in the spec dir" do + subject.install(simple_gem, false, temporary_gem_home) + spec_file = ::File.join(temporary_gem_home, "specifications", "#{plugin_name}.gemspec") + expect(::File.exist?(spec_file)).to be_truthy + expect(::File.size(spec_file)).to be > 0 + end + + it "install the gem in the gems dir" do + subject.install(simple_gem, false, temporary_gem_home) + gem_dir = ::File.join(temporary_gem_home, "gems", plugin_name) + expect(Dir.exist?(gem_dir)).to be_truthy + end + + context "post_install_message" do + let(:message) { "Hello from the friendly pack" } + + context "when present" do + before do + allow_any_instance_of(::Gem::Specification).to receive(:post_install_message).and_return(message) + end + + context "when we want the message" do + it "display the message" do + expect(LogStash::PluginManager.ui).to receive(:info).with(message) + subject.install(simple_gem, true, temporary_gem_home) + end + end + + context "when we dont want the message" do + it "doesn't display the message" do + expect(LogStash::PluginManager.ui).not_to receive(:info).with(message) + subject.install(simple_gem, false, temporary_gem_home) + end + end + end + + context "when not present" do + context "when we want the message" do + it "doesn't display the message" do + expect(LogStash::PluginManager.ui).not_to receive(:info).with(message) + subject.install(simple_gem, true, temporary_gem_home) + end + end + end + end +end diff --git a/spec/unit/plugin_manager/install_spec.rb b/spec/unit/plugin_manager/install_spec.rb index 40eb3dfe408..b754811a446 100644 --- a/spec/unit/plugin_manager/install_spec.rb +++ b/spec/unit/plugin_manager/install_spec.rb @@ -1,15 +1,20 @@ # encoding: utf-8 require 'spec_helper' require 'pluginmanager/main' +require "pluginmanager/pack_fetch_strategy/repository" describe LogStash::PluginManager::Install do let(:cmd) { LogStash::PluginManager::Install.new("install") } - before(:each) do - expect(cmd).to receive(:validate_cli_options!).and_return(nil) - end - context "when validating plugins" do + before(:each) do + expect(cmd).to receive(:validate_cli_options!).and_return(nil) + end + + before do + expect(LogStash::PluginManager::PackFetchStrategy::Repository).to receive(:get_installer_for).with(anything).and_return(nil) + end + let(:sources) { ["https://rubygems.org", "http://localhost:9292"] } before(:each) do @@ -25,4 +30,29 @@ cmd.execute end end + + context "pack" do + let(:cmd) { LogStash::PluginManager::Install.new("install my-super-pack") } + before do + expect(cmd).to receive(:plugins_arg).and_return(["my-super-pack"]).at_least(:once) + end + + it "reports `FileNotFoundError` exception" do + expect(LogStash::PluginManager::InstallStrategyFactory).to receive(:create).with(["my-super-pack"]).and_raise(LogStash::PluginManager::FileNotFoundError) + expect(cmd).to receive(:report_exception).with(/File not found/, be_kind_of(LogStash::PluginManager::PluginManagerError)) + cmd.execute + end + + it "reports `InvalidPackError` exception" do + expect(LogStash::PluginManager::InstallStrategyFactory).to receive(:create).with(["my-super-pack"]).and_raise(LogStash::PluginManager::InvalidPackError) + expect(cmd).to receive(:report_exception).with(/Invalid pack for/, be_kind_of(LogStash::PluginManager::PluginManagerError)) + cmd.execute + end + + it "reports any other exceptions" do + expect(LogStash::PluginManager::InstallStrategyFactory).to receive(:create).with(["my-super-pack"]).and_raise(StandardError) + expect(cmd).to receive(:report_exception).with(/Something went wrong when installing/, be_kind_of(StandardError)) + cmd.execute + end + end end diff --git a/spec/unit/plugin_manager/install_strategy_factory_spec.rb b/spec/unit/plugin_manager/install_strategy_factory_spec.rb new file mode 100644 index 00000000000..6a29ff45e0b --- /dev/null +++ b/spec/unit/plugin_manager/install_strategy_factory_spec.rb @@ -0,0 +1,27 @@ +# encoding: utf-8 +require "pluginmanager/install_strategy_factory" + +describe LogStash::PluginManager::InstallStrategyFactory do + subject { described_class } + let(:plugins_args) { [ "logstash-pack-mega" ] } + + it "returns the first matched strategy" do + success = double("urifetch success") + + expect(LogStash::PluginManager::PackFetchStrategy::Uri).to receive(:get_installer_for).with(plugins_args.first).and_return(success) + expect(subject.create(plugins_args)).to eq(success) + end + + it "returns the matched strategy" do + success = double("elastic xpack success") + + expect(LogStash::PluginManager::PackFetchStrategy::Repository).to receive(:get_installer_for).with(plugins_args.first).and_return(success) + expect(subject.create(plugins_args)).to eq(success) + end + + it "return nil when no strategy matches" do + expect(LogStash::PluginManager::PackFetchStrategy::Uri).to receive(:get_installer_for).with(plugins_args.first).and_return(nil) + expect(LogStash::PluginManager::PackFetchStrategy::Repository).to receive(:get_installer_for).with(plugins_args.first).and_return(nil) + expect(subject.create(plugins_args)).to be_falsey + end +end diff --git a/spec/unit/plugin_manager/pack_fetch_strategy/repository_spec.rb b/spec/unit/plugin_manager/pack_fetch_strategy/repository_spec.rb new file mode 100644 index 00000000000..395f1c0b816 --- /dev/null +++ b/spec/unit/plugin_manager/pack_fetch_strategy/repository_spec.rb @@ -0,0 +1,42 @@ +# encoding: utf-8 +require "pluginmanager/pack_fetch_strategy/repository" +require "uri" +require "webmock/rspec" +require "spec_helper" + +describe LogStash::PluginManager::PackFetchStrategy::Repository do + subject { described_class } + + let(:plugin_name) { "hola-pack" } + + context "#plugin_uri" do + it "generate an url from a name" do + matched = URI.parse("#{subject::ELASTIC_PACK_BASE_URI}/#{plugin_name}/#{plugin_name}-#{LOGSTASH_VERSION}.#{subject::PACK_EXTENSION}") + expect(subject.pack_uri(plugin_name)).to eq(matched) + end + end + + context "when the remote file exist" do + it "is return a `RemoteInstaller`" do + allow(LogStash::PluginManager::Utils::HttpClient).to receive(:remote_file_exist?).with(subject.pack_uri(plugin_name)).and_return(true) + expect(subject.get_installer_for(plugin_name)).to be_kind_of(LogStash::PluginManager::PackInstaller::Remote) + end + end + + context "when the remote file doesnt exist" do + it "returns false" do + allow(LogStash::PluginManager::Utils::HttpClient).to receive(:remote_file_exist?).with(subject.pack_uri(plugin_name)).and_return(false) + expect(subject.get_installer_for(plugin_name)).to be_falsey + end + end + + context "when the remote host is unreachable" do + it "returns false and yield a debug message" do + # To make sure we really try to connect to a failling host we have to let it through webmock + host ="#{Time.now.to_i.to_s}-do-not-exist.com" + WebMock.disable_net_connect!(:allow => host) + stub_const("LogStash::PluginManager::PackFetchStrategy::Repository::ELASTIC_PACK_BASE_URI", "http://#{host}") + expect(subject.get_installer_for(plugin_name)).to be_falsey + end + end +end diff --git a/spec/unit/plugin_manager/pack_fetch_strategy/uri_spec.rb b/spec/unit/plugin_manager/pack_fetch_strategy/uri_spec.rb new file mode 100644 index 00000000000..09effdb909c --- /dev/null +++ b/spec/unit/plugin_manager/pack_fetch_strategy/uri_spec.rb @@ -0,0 +1,52 @@ +# encoding: utf-8 +require "pluginmanager/pack_fetch_strategy/uri" +require "stud/temporary" + +describe LogStash::PluginManager::PackFetchStrategy::Uri do + subject { described_class } + context "when we dont have URI path" do + let(:plugin_path) { "logstash-input-elasticsearch" } + + it "doesnt return an installer" do + expect(subject.get_installer_for(plugin_path)).to be_falsey + end + end + + context "we have another URI scheme than file or http" do + let(:plugin_path) { "ftp://localhost:8888/my-pack.zip" } + + it "doesnt return an installer" do + expect(subject.get_installer_for(plugin_path)).to be_falsey + end + end + + context "we have an invalid URI scheme" do + let(:plugin_path) { "inv://localhost:8888/my-pack.zip" } + + it "doesnt return an installer" do + expect(subject.get_installer_for(plugin_path)).to be_falsey + end + end + + context "when we have a local path" do + let(:temporary_file) do + f = Stud::Temporary.file + f.write("hola") + f.path + end + + let(:plugin_path) { "file://#{temporary_file}" } + + it "returns a `LocalInstaller`" do + expect(subject.get_installer_for(plugin_path)).to be_kind_of(LogStash::PluginManager::PackInstaller::Local) + end + end + + context "when we have a remote path" do + let(:plugin_path) { "http://localhost:8888/my-pack.zip" } + + it "returns a remote installer" do + expect(subject.get_installer_for(plugin_path)).to be_kind_of(LogStash::PluginManager::PackInstaller::Remote) + end + end +end diff --git a/spec/unit/plugin_manager/pack_installer/local_spec.rb b/spec/unit/plugin_manager/pack_installer/local_spec.rb new file mode 100644 index 00000000000..9fb799cf956 --- /dev/null +++ b/spec/unit/plugin_manager/pack_installer/local_spec.rb @@ -0,0 +1,68 @@ +# encoding: utf-8 +require "pluginmanager/pack_installer/local" +require "stud/temporary" +require "fileutils" + +describe LogStash::PluginManager::PackInstaller::Local do + subject { described_class.new(local_file) } + + context "when the local file doesn't exist" do + let(:local_file) { ::File.join(Stud::Temporary.pathname, Time.now.to_s.to_s) } + + it "raises an exception" do + expect { subject.execute }.to raise_error(LogStash::PluginManager::FileNotFoundError) + end + end + + context "when the local file exist" do + context "when the file has the wrong extension" do + let(:local_file) { Stud::Temporary.file.path } + + it "raises a InvalidPackError" do + expect { subject.execute }.to raise_error(LogStash::PluginManager::InvalidPackError, /Invalid format/) + end + end + + context "when there is an error when the zip get uncompressed" do + let(:local_file) do + directory = Stud::Temporary.pathname + FileUtils.mkdir_p(directory) + p = ::File.join(directory, "#{Time.now.to_i.to_s}.zip") + FileUtils.touch(p) + p + end + + it "raises a InvalidPackError" do + expect { subject.execute }.to raise_error(LogStash::PluginManager::InvalidPackError, /Cannot uncompress the zip/) + end + end + + context "when the file doesnt have plugins in it" do + let(:local_file) { ::File.join(::File.dirname(__FILE__), "..", "..", "..", "support", "pack", "empty-pack.zip") } + + it "raise an Invalid pack" do + expect { subject.execute }.to raise_error(LogStash::PluginManager::InvalidPackError, /The pack must contains at least one plugin/) + end + end + + context "when the pack is valid" do + let(:local_file) { ::File.join(::File.dirname(__FILE__), "..", "..", "..", "support", "pack", "valid-pack.zip") } + + it "install the gems" do + expect(::Bundler::LogstashInjector).to receive(:inject!).with(be_kind_of(Array)).and_return([]) + + expect(::LogStash::PluginManager::GemInstaller).to receive(:install).with(/logstash-input-packtest/, anything) + expect(::LogStash::PluginManager::GemInstaller).to receive(:install).with(/logstash-input-packtestdep/, anything) + + # Since the Gem::Indexer have side effect and we have more things loaded + # I have to disable it in the tests + mock_indexer = double("Gem::Indexer") + allow(mock_indexer).to receive(:ui=).with(anything) + expect(mock_indexer).to receive(:generate_index) + expect(::Gem::Indexer).to receive(:new).with(be_kind_of(String), hash_including(:build_modern => true)).and_return(mock_indexer) + + expect { subject.execute }.not_to raise_error + end + end + end +end diff --git a/spec/unit/plugin_manager/pack_installer/pack_spec.rb b/spec/unit/plugin_manager/pack_installer/pack_spec.rb new file mode 100644 index 00000000000..845f4278f61 --- /dev/null +++ b/spec/unit/plugin_manager/pack_installer/pack_spec.rb @@ -0,0 +1,100 @@ +# encoding: utf-8 +require "pluginmanager/pack_installer/pack" +require "stud/temporary" + +describe LogStash::PluginManager::PackInstaller::Pack do + let(:extracted_plugin) { ::File.join(::File.dirname(__FILE__), "..", "..", "..", "support", "pack", "valid-pack") } + + subject { described_class.new(extracted_plugin) } + + context "when there is a plugin in the root of the pack" do + it "a valid pack" do + expect(subject.valid?).to be_truthy + end + + it "returns the plugins" do + expect(subject.plugins.size).to eq(1) + expect(subject.plugins.collect(&:name)).to include("logstash-input-packtest") + end + + it "returns the dependencies" do + expect(subject.dependencies.size).to eq(1) + expect(subject.dependencies.collect(&:name)).to include("logstash-input-packtestdep") + end + + it "returns all the gems" do + expect(subject.gems.size).to eq(2) + expect(subject.gems.collect(&:name)).to include("logstash-input-packtest", "logstash-input-packtestdep") + end + end + + context "when there is no plugin in the root of the pack " do + let(:extracted_plugin) { Stud::Temporary.pathname } + + it "a invalid pack" do + expect(subject.valid?).to be_falsey + end + end +end + +describe LogStash::PluginManager::PackInstaller::Pack::GemInformation do + subject { described_class.new(gem) } + + shared_examples "gem information" do + it "returns the version" do + expect(subject.version).to eq("3.1.8") + end + + it "returns the name" do + expect(subject.name).to eq("logstash-input-foobar") + end + + it "returns the path of the gem" do + expect(subject.file).to eq(gem) + end + end + + context "with a universal gem" do + let(:gem) { "/tmp/logstash-input-foobar-3.1.8.gem" } + + include_examples "gem information" + + it "returns nil for the platform" do + expect(subject.platform).to be_nil + end + end + + context "with a java gem" do + let(:gem) { "/tmp/logstash-input-foobar-3.1.8-java.gem" } + + include_examples "gem information" + + it "returns nil for the platform" do + expect(subject.platform).to eq("java") + end + end + + context "when its a plugin to be added to the gemfile" do + let(:gem) { "/tmp/logstash-input-foobar-3.1.8-java.gem" } + + it "#dependency? return false" do + expect(subject.dependency?).to be_falsey + end + + it "#plugin? return true" do + expect(subject.plugin?).to be_truthy + end + end + + context "when its a dependency of a plugin" do + let(:gem) { "/tmp/dependencies/logstash-input-foobar-3.1.8-java.gem" } + + it "#dependency? return true" do + expect(subject.dependency?).to be_truthy + end + + it "#plugin? return false" do + expect(subject.plugin?).to be_falsey + end + end +end diff --git a/spec/unit/plugin_manager/pack_installer/remote_spec.rb b/spec/unit/plugin_manager/pack_installer/remote_spec.rb new file mode 100644 index 00000000000..c6daf9ba11e --- /dev/null +++ b/spec/unit/plugin_manager/pack_installer/remote_spec.rb @@ -0,0 +1,40 @@ +# encoding: utf-8 +require "pluginmanager/pack_installer/remote" +require "webmock/rspec" + +describe LogStash::PluginManager::PackInstaller::Remote do + let(:url) { "http://localhost:8888/mypackage.zip" } + + subject { described_class.new(url, LogStash::PluginManager::Utils::Downloader::SilentFeedback) } + + context "when the file exist remotely" do + let(:content) { "around the world" } + + before do + stub_request(:get, url).to_return( + { :status => 200, + :body => content, + :headers => {}} + ) + end + + it "download the file and do a local install" do + local_installer = double("LocalInstaller") + + expect(local_installer).to receive(:execute) + expect(LogStash::PluginManager::PackInstaller::Local).to receive(:new).with(be_kind_of(String)).and_return(local_installer) + + subject.execute + end + end + + context "when the file doesn't exist remotely" do + before do + stub_request(:get, url).to_return({ :status => 404 }) + end + + it "raises and exception" do + expect { subject.execute }.to raise_error(LogStash::PluginManager::FileNotFoundError, /#{url}/) + end + end +end diff --git a/spec/unit/plugin_manager/ui_spec.rb b/spec/unit/plugin_manager/ui_spec.rb new file mode 100644 index 00000000000..faca7b3a628 --- /dev/null +++ b/spec/unit/plugin_manager/ui_spec.rb @@ -0,0 +1,59 @@ +# encoding: utf-8 +require "pluginmanager/ui" +describe LogStash::PluginManager do + it "set the a default ui" do + expect(LogStash::PluginManager.ui).to be_kind_of(LogStash::PluginManager::Shell) + end + + it "you can override the ui" do + klass = Class.new + LogStash::PluginManager.ui = klass + expect(LogStash::PluginManager.ui).to be(klass) + LogStash::PluginManager.ui = LogStash::PluginManager::Shell.new + end +end + +describe LogStash::PluginManager::Shell do + let(:message) { "hello world" } + + [:info, :error, :warn].each do |level| + context "Level: #{level}" do + it "display the message to the user" do + expect(subject).to receive(:puts).with(message) + subject.send(level, message) + end + end + end + + context "Debug" do + context "when ENV['DEBUG'] is set" do + before do + @previous_value = ENV["DEBUG"] + ENV["DEBUG"] = "1" + end + + it "outputs the message" do + expect(subject).to receive(:puts).with(message) + subject.debug(message) + end + + after do + ENV["DEBUG"] = @previous_value + end + end + + context "when ENV['DEBUG'] is not set" do + @previous_value = ENV["DEBUG"] + ENV.delete("DEBUG") + end + + it "doesn't outputs the message" do + expect(subject).not_to receive(:puts).with(message) + subject.debug(message) + end + + after do + ENV["DEBUG"] = @previous_value + end + end +end diff --git a/spec/unit/plugin_manager/utils/downloader_spec.rb b/spec/unit/plugin_manager/utils/downloader_spec.rb new file mode 100644 index 00000000000..e08e731af01 --- /dev/null +++ b/spec/unit/plugin_manager/utils/downloader_spec.rb @@ -0,0 +1,81 @@ +# encoding: utf-8 +require "pluginmanager/utils/downloader" +require "spec_helper" +require "webmock/rspec" + +describe LogStash::PluginManager::Utils::Downloader::SilentFeedback do + let(:max) { 500 } + let(:status) { max * 0.5 } + + it "can create an instance" do + expect { described_class.new(max) }.not_to raise_error + end + + it "can receive `#update` calls" do + expect { described_class.new(max).update(status) }.not_to raise_error + end +end + +describe LogStash::PluginManager::Utils::Downloader::ProgressbarFeedback do + let(:max) { 500 } + let(:status) { max * 0.5 } + + it "can create an instance" do + expect(ProgressBar).to receive(:create).with(hash_including(:total => max)) + described_class.new(max) + end + + it "can receive multiples `#update` calls" do + feedback = described_class.new(max) + expect(feedback.progress_bar).to receive(:progress=).with(status).twice + feedback.update(status) + feedback.update(status) + end +end + +describe LogStash::PluginManager::Utils::Downloader do + subject { described_class } + let(:port) { rand(2000..5000) } + let(:url) { "https://localhost:#{port}/my-file.txt"} + let(:content) { "its halloween, halloween!" } + + context "when the file exist" do + before do + stub_request(:get, url).to_return( + { :status => 200, + :body => content, + :headers => {}} + ) + end + + it "download the file to local temporary file" do + expect(File.read(subject.fetch(url))).to match(content) + end + + context "when an exception occur" do + let(:temporary_path) { Stud::Temporary.pathname } + + before do + expect_any_instance_of(::File).to receive(:close).at_least(:twice).and_raise("Didn't work") + expect(Stud::Temporary).to receive(:pathname).and_return(temporary_path) + end + + it "deletes in progress file" do + expect { subject.fetch(url) }.to raise_error(RuntimeError, /Didn't work/) + expect(Dir.glob(::File.join(temporary_path, "**")).size).to eq(0) + end + end + end + + context "when the file doesn't exist" do + before do + stub_request(:get, url).to_return( + { :status => 404 } + ) + end + + it "raises an exception" do + expect { File.read(subject.fetch(url)) }.to raise_error(LogStash::PluginManager::FileNotFoundError) + end + end +end diff --git a/spec/unit/plugin_manager/utils/http_client_spec.rb b/spec/unit/plugin_manager/utils/http_client_spec.rb new file mode 100644 index 00000000000..7c922486c97 --- /dev/null +++ b/spec/unit/plugin_manager/utils/http_client_spec.rb @@ -0,0 +1,101 @@ +# encoding: utf-8 +require "pluginmanager/utils/http_client" +require "uri" + +describe LogStash::PluginManager::Utils::HttpClient do + subject { described_class } + + describe ".start" do + context "with ssl" do + let(:uri) { URI.parse("https://localhost:8888") } + + it "requires ssl" do + expect(Net::HTTP).to receive(:start).with(uri.host, uri.port, hash_including(:use_ssl => true)) + described_class.start(uri) + end + end + + context "without ssl" do + let(:uri) { URI.parse("http://localhost:8888") } + + it "doesn't requires ssl" do + expect(Net::HTTP).to receive(:start).with(uri.host, uri.port, hash_including(:use_ssl => false)) + described_class.start(uri) + end + end + end + + describe ".remove_file_exist?" do + let(:mock_http) { double("Net::HTTP") } + + before do + allow(subject).to receive(:start).with(anything).and_yield(mock_http).at_least(:once) + end + + context "With URI with a path" do + let(:uri) { URI.parse("https://localhost:8080/hola") } + + context "without redirect" do + before do + expect(mock_http).to receive(:request).with(kind_of(Net::HTTP::Head)).and_return(response) + end + + context "file exist" do + let(:response) { instance_double("Net::HTTP::Response", :code => "200") } + + it "returns true if the file exist" do + expect(subject.remote_file_exist?(uri)).to be_truthy + end + end + + [404, 400, 401, 500].each do |code| + context "when the server return a #{code}" do + let(:response) { instance_double("Net::HTTP::Response", :code => code) } + + it "returns false" do + expect(subject.remote_file_exist?(uri)).to be_falsey + end + end + end + end + + context "with redirects" do + let(:redirect_response) { instance_double("Net::HTTP::Response", :code => "302", :headers => { "location" => "https://localhost:8888/new_path" }) } + let(:response_ok) { instance_double("Net::HTTP::Response", :code => "200") } + + it "follow 1 level redirect" do + expect(mock_http).to receive(:request).with(kind_of(Net::HTTP::Head)).and_return(redirect_response) + expect(mock_http).to receive(:request).with(kind_of(Net::HTTP::Head)).and_return(response_ok) + + expect(subject.remote_file_exist?(uri)).to be_truthy + end + + it "follow up to the limit of redirect: #{described_class::REDIRECTION_LIMIT - 1}" do + (described_class::REDIRECTION_LIMIT - 1).times do + expect(mock_http).to receive(:request).with(kind_of(Net::HTTP::Head)).and_return(redirect_response) + end + + expect(mock_http).to receive(:request).with(kind_of(Net::HTTP::Head)).and_return(response_ok) + + expect(subject.remote_file_exist?(uri)).to be_truthy + end + + it "raises a `RedirectionLimit` when too many redirection occur" do + described_class::REDIRECTION_LIMIT.times do + expect(mock_http).to receive(:request).with(kind_of(Net::HTTP::Head)).and_return(redirect_response) + end + + expect { subject.remote_file_exist?(uri) }.to raise_error(LogStash::PluginManager::Utils::HttpClient::RedirectionLimit) + end + end + + context "With URI without a path" do + let(:uri) { URI.parse("https://localhost:8080") } + + it "return false" do + expect(subject.remote_file_exist?(uri)).to be_falsey + end + end + end + end +end diff --git a/spec/unit/util/compress_spec.rb b/spec/unit/util/compress_spec.rb index 47bab9e995a..33133c09384 100644 --- a/spec/unit/util/compress_spec.rb +++ b/spec/unit/util/compress_spec.rb @@ -2,6 +2,40 @@ require "spec_helper" require 'ostruct' require "bootstrap/util/compress" +require "stud/temporary" +require "fileutils" + +def build_zip_file(structure) + source = Stud::Temporary.pathname + FileUtils.mkdir_p(source) + + structure.each do |p| + file = ::File.basename(p) + path = ::File.join(source, ::File.dirname(p)) + full_path = ::File.join(path, file) + + FileUtils.mkdir_p(path) + ::File.open(full_path, "a") do |f| + f.write("Hello - #{Time.now.to_i.to_s}") + end + end + + target = Stud::Temporary.pathname + FileUtils.mkdir_p(target) + target_file = ::File.join(target, "mystructure.zip") + + LogStash::Util::Zip.compress(source, target_file) + target_file +rescue => e + FileUtils.rm_rf(target) if target + raise e +ensure + FileUtils.rm_rf(source) +end + +def list_files(target) + Dir.glob(::File.join(target, "**", "*")).select { |f| ::File.file?(f) }.size +end describe LogStash::Util::Zip do @@ -30,10 +64,53 @@ expect(zip_file).to receive(:extract).exactly(3).times subject.extract(source, target) end + + context "patterns" do + # Theses tests sound duplicated but they are actually better than the other one + # since they do not involve any mocks. + subject { described_class } + + let(:zip_structure) { + [ + "logstash/logstash-output-secret/logstash-output-monitoring.gem", + "logstash/logs/more/log.log", + "kibana/package.json", + "elasticsearch/jars.jar", + "elasticsearch/README.md" + ] + } + + let(:zip_file) { build_zip_file(zip_structure) } + let(:target) { Stud::Temporary.pathname } + + context "when no matching pattern is supplied" do + it "extracts all the file" do + subject.extract(zip_file, target) + + expect(list_files(target)).to eq(zip_structure.size) + + zip_structure.each do |full_path| + expect(::File.exist?(::File.join(target, full_path))).to be_truthy + end + end + end + + context "when a matching pattern is supplied" do + it "extracts only the relevant files" do + subject.extract(zip_file, target, /logstash\/?/) + + expect(list_files(target)).to eq(2) + + ["logstash/logstash-output-secret/logstash-output-monitoring.gem", + "logstash/logs/more/log.log"].each do |full_path| + expect(::File.exist?(::File.join(target, full_path))).to be_truthy + end + end + end + end end context "#compression" do - let(:target) { File.join(File.expand_path("."), "target_file.zip") } let(:source) { File.expand_path("source_dir") } @@ -62,7 +139,6 @@ subject { Class.new { extend LogStash::Util::Tar } } context "#extraction" do - let(:source) { File.join(File.expand_path("."), "source_file.tar.gz") } let(:target) { File.expand_path("target_dir") } From c4d03e38e6fcb23fb0477dcc19b2b2b54ae87b38 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 17 Nov 2016 11:17:20 -0800 Subject: [PATCH 493/632] Add more debuggability to travis Fixes #6272 --- qa/integration/services/elasticsearch_setup.sh | 4 ++-- qa/integration/services/filebeat_setup.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/qa/integration/services/elasticsearch_setup.sh b/qa/integration/services/elasticsearch_setup.sh index 72942af985b..0f916c9cce0 100755 --- a/qa/integration/services/elasticsearch_setup.sh +++ b/qa/integration/services/elasticsearch_setup.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -e +set -ex current_dir="$(dirname "$0")" source "$current_dir/helpers.sh" @@ -8,7 +8,7 @@ if [ -n "${ES_VERSION+1}" ]; then echo "Elasticsearch version is $ES_VERSION" version=$ES_VERSION else - version=5.0.0-beta1 + version=5.0.1 fi ES_HOME=$INSTALL_DIR/elasticsearch diff --git a/qa/integration/services/filebeat_setup.sh b/qa/integration/services/filebeat_setup.sh index a1061667007..e9ce2ae821a 100755 --- a/qa/integration/services/filebeat_setup.sh +++ b/qa/integration/services/filebeat_setup.sh @@ -8,7 +8,7 @@ if [ -n "${FILEBEAT_VERSION}" ]; then echo "Filebeat version is $FILEBEAT_VERSION" version=$FILEBEAT_VERSION else - version=5.0.0-beta1 + version=5.0.1 fi FB_HOME=$INSTALL_DIR/filebeat From b24906fcd9fd02924769aa2ea3507f31f7c1a789 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 15 Nov 2016 18:56:01 -0800 Subject: [PATCH 494/632] Clarify when grok pattern files are reloaded during auto reload Fixes #6261 --- docs/static/reloading-config.asciidoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/static/reloading-config.asciidoc b/docs/static/reloading-config.asciidoc index 22cc383d7dd..bba5c2b645a 100644 --- a/docs/static/reloading-config.asciidoc +++ b/docs/static/reloading-config.asciidoc @@ -41,3 +41,6 @@ fail, the old pipeline continues to function, and the errors are propagated to t During automatic config reloading, the JVM is not restarted. The creating and swapping of pipelines all happens within the same process. + +Changes to <> pattern files are also reloaded, but only when +a change in the config file triggers a reload (or the pipeline is restarted). From e7f791fb697231d231cfd3a09f9c0186ad23937e Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 17 Nov 2016 15:55:18 -0800 Subject: [PATCH 495/632] Change wording so it doesn't sound like we are recommending message queues Fixes #6277 --- docs/static/deploying.asciidoc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/static/deploying.asciidoc b/docs/static/deploying.asciidoc index 1cf0b82da2b..822fdd82b64 100644 --- a/docs/static/deploying.asciidoc +++ b/docs/static/deploying.asciidoc @@ -93,18 +93,18 @@ image::static/images/deploy_4.png[] ==== Managing Throughput Spikes with Message Queueing When the data coming into a Logstash pipeline exceeds the Elasticsearch cluster's ability to ingest the data, you can -use a message queue as a buffer. By default, Logstash throttles incoming events when +use a message broker as a buffer. By default, Logstash throttles incoming events when indexer consumption rates fall below incoming data rates. Since this throttling can lead to events being buffered at -the data source, preventing backpressure with message queues becomes an important part of managing your deployment. +the data source, preventing backpressure with message brokers becomes an important part of managing your deployment. -Adding a message queue to your Logstash deployment also provides a level of protection from data loss. When a Logstash -instance that has consumed data from the message queue fails, the data can be replayed from the message queue to an +Adding a message broker to your Logstash deployment also provides a level of protection from data loss. When a Logstash +instance that has consumed data from the message broker fails, the data can be replayed from the message broker to an active Logstash instance. -Several third-party message queues exist, such as Redis, Kafka, or RabbitMQ. Logstash provides input and output plugins -to integrate with several of these third-party message queues. When your Logstash deployment has a message queue +Several third-party message brokers exist, such as Redis, Kafka, or RabbitMQ. Logstash provides input and output plugins +to integrate with several of these third-party message brokers. When your Logstash deployment has a message broker configured, Logstash functionally exists in two phases: shipping instances, which handles data ingestion and storage in -the message queue, and indexing instances, which retrieve the data from the message queue, apply any configured +the message broker, and indexing instances, which retrieve the data from the message broker, apply any configured filtering, and write the filtered data to an Elasticsearch index. image::static/images/deploy_5.png[] @@ -136,11 +136,11 @@ by eliminating single points of failure. A mature Logstash deployment typically has the following pipeline: * The _input_ tier consumes data from the source, and consists of Logstash instances with the proper input plugins. -* The _message queue_ serves as a buffer to hold ingested data and serve as failover protection. -* The _filter_ tier applies parsing and other processing to the data consumed from the message queue. +* The _message broker_ serves as a buffer to hold ingested data and serve as failover protection. +* The _filter_ tier applies parsing and other processing to the data consumed from the message broker. * The _indexing_ tier moves the processed data into Elasticsearch. Any of these layers can be scaled by adding computing resources. Examine the performance of these components regularly as your use case evolves and add resources as needed. When Logstash routinely throttles incoming events, consider -adding storage for your message queue. Alternately, increase the Elasticsearch cluster's rate of data consumption by +adding storage for your message broker. Alternately, increase the Elasticsearch cluster's rate of data consumption by adding more Logstash indexing instances. From de43b9ce363652e0d673a454f2ab8d766de8fde9 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 18 Nov 2016 17:11:22 -0800 Subject: [PATCH 496/632] Update links and remove old blog links Fixes #6282 --- docs/static/introduction.asciidoc | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/docs/static/introduction.asciidoc b/docs/static/introduction.asciidoc index 597e5b41c58..c442349a4f8 100644 --- a/docs/static/introduction.asciidoc +++ b/docs/static/introduction.asciidoc @@ -31,7 +31,7 @@ Where it all started. logs like <> for Java ** Capture many other log formats like <>, <>, networking and firewall logs, and more -* Enjoy complementary secure log forwarding capabilities with https://github.com/elastic/beats/tree/master/filebeat[Filebeat] +* Enjoy complementary secure log forwarding capabilities with https://www.elastic.co/products/beats/filebeat[Filebeat] * Collect metrics from <>, <>, <>, <>, and many other infrastructure and application platforms over <> and <> @@ -42,12 +42,10 @@ and application platforms over <> and <> into events -(https://www.elastic.co/blog/introducing-logstash-input-http-plugin[blog]) ** Consume from web service firehoses like <> for social sentiment analysis ** Webhook support for GitHub, HipChat, JIRA, and countless other applications -** Enables many https://www.elastic.co/guide/en/watcher/current/logstash-integration.html[Watcher] alerting use cases +** Enables many https://www.elastic.co/products/x-pack/alerting[Watcher] alerting use cases * Create events by polling <> on demand -(https://www.elastic.co/blog/introducing-logstash-http-poller[blog]) ** Universally capture health, performance, metrics, and other types of data from web application interfaces ** Perfect for scenarios where the control of polling is preferred over receiving @@ -57,10 +55,9 @@ Unlock the World Wide Web. Discover more value from the data you already own. * Better understand your data from any relational database or NoSQL store with a -<> interface (https://www.elastic.co/blog/logstash-jdbc-input-plugin[blog]) -* Unify diverse data streams from messaging queues like Apache <> -(https://www.elastic.co/blog/logstash-kafka-intro[blog]), <>, -<>, and <> +<> interface +* Unify diverse data streams from messaging queues like Apache <>, +<>, <>, and <> [float] === Sensors and IoT @@ -71,9 +68,6 @@ Explore an expansive breadth of other data. harnessing data from connected sensors. * Logstash is the common event collection backbone for ingestion of data shipped from mobile devices to intelligent homes, connected vehicles, healthcare sensors, and many other industry specific applications. -* https://www.elastic.co/elasticon/2015/sf/if-it-moves-measure-it-logging-iot-with-elk[Watch] as Logstash, in -conjunction with the broader ELK stack, centralizes and enriches sensor data to gain deeper knowledge regarding a -residential home. [float] == Easily Enrich Everything From 860ea5c52248b9b9fdfb0630b482bb7999e21e92 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 21 Nov 2016 16:42:52 -0800 Subject: [PATCH 497/632] Fix heading levels for docker topics Fixes #6287 --- docs/static/docker.asciidoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/static/docker.asciidoc b/docs/static/docker.asciidoc index aba40f9bedd..82d575283d3 100644 --- a/docs/static/docker.asciidoc +++ b/docs/static/docker.asciidoc @@ -1,5 +1,5 @@ [[docker]] -== Running Logstash on Docker +=== Running Logstash on Docker Docker images for Logstash are available from the Elastic Docker registry. @@ -25,12 +25,12 @@ docker pull {docker-image} endif::[] -=== Configuring Logstash for Docker +==== Configuring Logstash for Docker Logstash differentiates between two types of configuration: <>. -==== Pipeline Configuration +===== Pipeline Configuration It is essential to place your pipeline configuration where it can be found by Logstash. By default, the container will look in @@ -69,7 +69,7 @@ behaviour that you are observing, ensure that your pipeline configuration is being picked up correctly, and that you are replacing either +logstash.conf+ or the entire +pipeline+ directory. -==== Settings Files +===== Settings Files Settings files can also be provided through bind-mounts. Logstash expects to find them at +/usr/share/logstash/config/+. @@ -94,7 +94,7 @@ ownership within the container that they have on the host system. Be sure to set permissions such that the files will be readable and, ideally, not writeable by the container's +logstash+ user (UID 1000). -==== Custom Images +===== Custom Images Bind-mounted configuration is not the only option, naturally. If you prefer the _Immutable Infrastructure_ approach, you can prepare a @@ -112,7 +112,7 @@ ADD config/ /usr/share/logstash/config/ Be sure to replace or delete `logstash.conf` in your custom image, so that you don't retain the example config from the base image. -=== Logging Configuration +==== Logging Configuration Under Docker, Logstash logs go to standard output by default. To change this behaviour, use any of the techniques above to replace the From 81e8bda0b94dbb7f9a7f33e75cd5946c813da3af Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 21 Nov 2016 14:34:42 -0500 Subject: [PATCH 498/632] use a temporary path instead of a temporary file Using an empty file for the regitry make FB quits with a EOF error Fixes: #6285 Fixes #6286 --- qa/integration/specs/beats_input_spec.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/qa/integration/specs/beats_input_spec.rb b/qa/integration/specs/beats_input_spec.rb index 1dc31b5e10a..0e3736de485 100644 --- a/qa/integration/specs/beats_input_spec.rb +++ b/qa/integration/specs/beats_input_spec.rb @@ -16,8 +16,12 @@ filebeat_service.stop end + before :each do + FileUtils.mkdir_p(File.dirname(registry_file)) + end + let(:max_retry) { 120 } - let(:registry_file) { Stud::Temporary.file.path } + let(:registry_file) { File.join(Stud::Temporary.pathname, "registry") } let(:logstash_service) { @fixture.get_service("logstash") } let(:filebeat_service) { @fixture.get_service("filebeat") } let(:log_path) do From c03f30fedb3eb440fc8e307aaade57b3f2314fcb Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 15 Nov 2016 17:06:16 -0600 Subject: [PATCH 499/632] Fix filter 'id' naming to be consistent with inputs / outputs The filters were the only category prefixing IDs with their plugin names Fixes #6259 --- logstash-core/lib/logstash/filter_delegator.rb | 2 +- logstash-core/spec/logstash/pipeline_spec.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/logstash-core/lib/logstash/filter_delegator.rb b/logstash-core/lib/logstash/filter_delegator.rb index 02a4f3599ea..f54fc0179a9 100644 --- a/logstash-core/lib/logstash/filter_delegator.rb +++ b/logstash-core/lib/logstash/filter_delegator.rb @@ -20,7 +20,7 @@ def initialize(logger, klass, metric, plugin_args) @filter = klass.new(plugin_args) # Scope the metrics to the plugin - namespaced_metric = metric.namespace("#{@klass.config_name}_#{@id}".to_sym) + namespaced_metric = metric.namespace(@id.to_sym) @filter.metric = namespaced_metric @metric_events = namespaced_metric.namespace(:events) diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 927eafeacb2..20b2e19b599 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -685,7 +685,7 @@ class TestPipeline < LogStash::Pipeline it "populates the filter metrics" do [multiline_id, multiline_id_other].map(&:to_sym).each do |id| [:in, :out].each do |metric_key| - plugin_name = "multiline_#{id}".to_sym + plugin_name = id.to_sym expect(collected_metric[:stats][:pipelines][:main][:plugins][:filters][plugin_name][:events][metric_key].value).to eq(number_of_events) end end @@ -703,7 +703,7 @@ class TestPipeline < LogStash::Pipeline it "populates the name of the filter plugin" do [multiline_id, multiline_id_other].map(&:to_sym).each do |id| - plugin_name = "multiline_#{id}".to_sym + plugin_name = id.to_sym expect(collected_metric[:stats][:pipelines][:main][:plugins][:filters][plugin_name][:name].value).to eq(LogStash::Filters::Multiline.config_name) end end From f636a751f8d538c2b27338cf751772e2513b4c82 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Tue, 8 Nov 2016 18:04:33 -0500 Subject: [PATCH 500/632] add support for queue.checkpoint.{acks|writes} settings add queue.max_acked_checkpoint and queue.checkpoint_rate settings now using checkpoint.max_acks, checkpoint.max_writes and checkpoint.max_interval rename options wip rework checkpointing refactored full acked pages handling on acking and recovery correclty close queue proper queue open/recovery checkpoint dump utility checkpoint on writes removed debug code and added missing newline added better comment on contiguous checkpoints fix spec for new pipeline setting --- bin/cpdump | 11 ++ config/logstash.yml | 15 ++ .../ext/JrubyAckedQueueExtLibrary.java | 10 +- logstash-core/lib/logstash/environment.rb | 3 + logstash-core/lib/logstash/pipeline.rb | 12 +- .../lib/logstash/util/wrapped_acked_queue.rb | 4 +- .../util/wrapped_synchronous_queue.rb | 4 + logstash-core/spec/logstash/pipeline_spec.rb | 3 + .../org/logstash/ackedqueue/Checkpoint.java | 17 +- .../org/logstash/ackedqueue/FileSettings.java | 39 ++++ .../org/logstash/ackedqueue/HeadPage.java | 49 +++-- .../logstash/ackedqueue/MemorySettings.java | 39 ++++ .../java/org/logstash/ackedqueue/Page.java | 18 +- .../java/org/logstash/ackedqueue/Queue.java | 169 ++++++++++++------ .../org/logstash/ackedqueue/Settings.java | 12 ++ .../org/logstash/ackedqueue/TailPage.java | 21 ++- .../org/logstash/common/io/CheckpointIO.java | 2 + .../logstash/common/io/FileCheckpointIO.java | 9 +- .../common/io/MemoryCheckpointIO.java | 7 +- .../org/logstash/ackedqueue/HeadPageTest.java | 51 +++--- .../org/logstash/ackedqueue/QueueTest.java | 1 + 21 files changed, 378 insertions(+), 118 deletions(-) create mode 100755 bin/cpdump diff --git a/bin/cpdump b/bin/cpdump new file mode 100755 index 00000000000..a49fde72c1d --- /dev/null +++ b/bin/cpdump @@ -0,0 +1,11 @@ +#!/usr/bin/env vendor/jruby/bin/jruby + +require_relative "../lib/bootstrap/environment" +LogStash::Bundler.setup!({:without => [:build]}) +require "logstash-core" +require "logstash/environment" +require "logstash/settings" + +io = Java::OrgLogstashCommonIo::FileCheckpointIO.new(LogStash::SETTINGS.get_value("path.queue")) +cp = io.read(ARGV[0]) +puts("checkpoint #{cp.toString}") diff --git a/config/logstash.yml b/config/logstash.yml index 0910bac807c..6fa26d9dcca 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -107,6 +107,21 @@ # # queue.max_events: 0 # +# If using queue.type: persisted, the maximum number of acked events before forcing a checkpoint +# Default is 1024, 0 for unlimited +# +# queue.checkpoint.acks: 1024 +# +# If using queue.type: persisted, the maximum number of written events before forcing a checkpoint +# Default is 1024, 0 for unlimited +# +# queue.checkpoint.writes: 1024 +# +# If using queue.type: persisted, the interval in milliseconds when a checkpoint is forced on the head page +# Default is 1000, 0 for no periodic checkpoint. +# +# queue.checkpoint.interval: 1000 +# # ------------ Metrics Settings -------------- # # Bind address for the metrics REST endpoint diff --git a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java index 8b73d837c59..30e12b94af9 100644 --- a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java +++ b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java @@ -57,19 +57,25 @@ public Queue getQueue() { } // def initialize - @JRubyMethod(name = "initialize", optional = 3) + @JRubyMethod(name = "initialize", optional = 6) public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) { - args = Arity.scanArgs(context.runtime, args, 3, 0); + args = Arity.scanArgs(context.runtime, args, 6, 0); int capacity = RubyFixnum.num2int(args[1]); int maxUnread = RubyFixnum.num2int(args[2]); + int checkpointMaxAcks = RubyFixnum.num2int(args[3]); + int checkpointMaxWrites = RubyFixnum.num2int(args[4]); + int checkpointMaxInterval = RubyFixnum.num2int(args[5]); Settings s = new FileSettings(args[0].asJavaString()); PageIOFactory pageIOFactory = (pageNum, size, path) -> new MmapPageIO(pageNum, size, path); CheckpointIOFactory checkpointIOFactory = (source) -> new FileCheckpointIO(source); s.setCapacity(capacity); s.setMaxUnread(maxUnread); + s.setCheckpointMaxAcks(checkpointMaxAcks); + s.setCheckpointMaxWrites(checkpointMaxWrites); + s.setCheckpointMaxInterval(checkpointMaxInterval); s.setElementIOFactory(pageIOFactory); s.setCheckpointIOFactory(checkpointIOFactory); s.setElementClass(Event.class); diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 04b4e3447bf..a8badea05df 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -43,6 +43,9 @@ module Environment Setting::String.new("queue.type", "memory", true, ["persisted", "memory", "memory_acked"]), Setting::Bytes.new("queue.page_capacity", "250mb"), Setting::Numeric.new("queue.max_events", 0), # 0 is unlimited + Setting::Numeric.new("queue.checkpoint.acks", 1024), # 0 is unlimited + Setting::Numeric.new("queue.checkpoint.writes", 1024), # 0 is unlimited + Setting::Numeric.new("queue.checkpoint.interval", 1000), # 0 is no time-based checkpointing Setting::TimeValue.new("slowlog.threshold.warn", "-1"), Setting::TimeValue.new("slowlog.threshold.info", "-1"), Setting::TimeValue.new("slowlog.threshold.debug", "-1"), diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index efb03d838b0..039868d179e 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -94,9 +94,9 @@ def initialize(config_str, settings = SETTINGS, namespaced_metric = nil) rescue => e raise end - queue = build_queue_from_settings - @input_queue_client = queue.write_client - @filter_queue_client = queue.read_client + @queue = build_queue_from_settings + @input_queue_client = @queue.write_client + @filter_queue_client = @queue.read_client @signal_queue = Queue.new # Note that @infilght_batches as a central mechanism for tracking inflight # batches will fail if we have multiple read clients here. @@ -119,6 +119,9 @@ def build_queue_from_settings queue_type = settings.get("queue.type") queue_page_capacity = settings.get("queue.page_capacity") max_events = settings.get("queue.max_events") + checkpoint_max_acks = settings.get("queue.checkpoint.acks") + checkpoint_max_writes = settings.get("queue.checkpoint.writes") + checkpoint_max_interval = settings.get("queue.checkpoint.interval") if queue_type == "memory_acked" # memory_acked is used in tests/specs @@ -129,7 +132,7 @@ def build_queue_from_settings elsif queue_type == "persisted" # persisted is the disk based acked queue queue_path = settings.get("path.queue") - LogStash::Util::WrappedAckedQueue.create_file_based(queue_path, queue_page_capacity, max_events) + LogStash::Util::WrappedAckedQueue.create_file_based(queue_path, queue_page_capacity, max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval) else raise(ConfigurationError, "invalid queue.type setting") end @@ -194,6 +197,7 @@ def run shutdown_workers @filter_queue_client.close + @queue.close @logger.debug("Pipeline #{@pipeline_id} has been shutdown") diff --git a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb index 07d1978ac3a..da9b3a6d753 100644 --- a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb @@ -25,9 +25,9 @@ def self.create_memory_based(path, capacity, size) ) end - def self.create_file_based(path, capacity, size) + def self.create_file_based(path, capacity, size, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval) self.allocate.with_queue( - LogStash::AckedQueue.new(path, capacity, size) + LogStash::AckedQueue.new(path, capacity, size, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval) ) end diff --git a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb index 6e401527696..98503d960f1 100644 --- a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb @@ -46,6 +46,10 @@ def read_client ReadClient.new(self) end + def close + # ignore + end + class ReadClient # We generally only want one thread at a time able to access pop/take/poll operations # from this queue. We also depend on this to be able to block consumers while we snapshot diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 20b2e19b599..49cbb651e9c 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -450,6 +450,9 @@ class TestPipeline < LogStash::Pipeline allow(settings).to receive(:get).with("queue.type").and_return("memory") allow(settings).to receive(:get).with("queue.page_capacity").and_return(1024 * 1024) allow(settings).to receive(:get).with("queue.max_events").and_return(250) + allow(settings).to receive(:get).with("queue.checkpoint.acks").and_return(1024) + allow(settings).to receive(:get).with("queue.checkpoint.writes").and_return(1024) + allow(settings).to receive(:get).with("queue.checkpoint.interval").and_return(1000) pipeline = LogStash::Pipeline.new(config, settings) expect(pipeline.metric).to be_kind_of(LogStash::Instrument::NullMetric) diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java index 4cee0611d83..6fc26dcc1bd 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java @@ -40,8 +40,23 @@ public int getElementCount() { return this.elementCount; } + // @return true if this checkpoint indicates a fulle acked page + public boolean isFullyAcked() { + return this.elementCount > 0 && this.firstUnackedSeqNum >= this.minSeqNum + this.elementCount; + } + + // @return the highest seqNum in this page or -1 for an initial checkpoint + public long maxSeqNum() { + return this.minSeqNum + this.elementCount - 1; + } + public String toString() { - return "pageNum=" + this.pageNum + ", firstUnackedPageNum=" + this.firstUnackedPageNum + ", firstUnackedSeqNum=" + this.firstUnackedSeqNum + ", minSeqNum=" + this.minSeqNum + ", elementCount=" + this.elementCount; + return "pageNum=" + this.pageNum + ", firstUnackedPageNum=" + this.firstUnackedPageNum + ", firstUnackedSeqNum=" + this.firstUnackedSeqNum + ", minSeqNum=" + this.minSeqNum + ", elementCount=" + this.elementCount + ", isFullyAcked=" + (this.isFullyAcked() ? "yes" : "no"); + } + + public boolean equals(Checkpoint other) { + if (this == other ) { return true; } + return (this.pageNum == other.pageNum && this.firstUnackedPageNum == other.firstUnackedPageNum && this.firstUnackedSeqNum == other.firstUnackedSeqNum && this.minSeqNum == other.minSeqNum && this.elementCount == other.elementCount); } } diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java index cb0024e28e6..8267cfa5c99 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java @@ -10,12 +10,18 @@ public class FileSettings implements Settings { private Class elementClass; private int capacity; private int maxUnread; + private int checkpointMaxAcks; + private int checkpointMaxWrites; + private int checkpointMaxInterval; private FileSettings() { this(""); } public FileSettings(String dirPath) { this.dirForFiles = dirPath; this.maxUnread = 0; + this.checkpointMaxAcks = 1024; + this.checkpointMaxWrites = 1024; + this.checkpointMaxInterval = 1000; // millisec } @Override @@ -48,6 +54,39 @@ public Settings setMaxUnread(int maxUnread) { return this; } + @Override + public Settings setCheckpointMaxAcks(int checkpointMaxAcks) { + this.checkpointMaxAcks = checkpointMaxAcks; + return this; + } + + @Override + public Settings setCheckpointMaxWrites(int checkpointMaxWrites) { + this.checkpointMaxWrites = checkpointMaxWrites; + return this; + } + + @Override + public Settings setCheckpointMaxInterval(int checkpointMaxInterval) { + this.checkpointMaxInterval = checkpointMaxInterval; + return this; + } + + @Override + public int getCheckpointMaxAcks() { + return checkpointMaxAcks; + } + + @Override + public int getCheckpointMaxWrites() { + return checkpointMaxWrites; + } + + @Override + public int getCheckpointMaxInterval() { + return checkpointMaxInterval; + } + @Override public CheckpointIOFactory getCheckpointIOFactory() { return checkpointIOFactory; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/HeadPage.java b/logstash-core/src/main/java/org/logstash/ackedqueue/HeadPage.java index 301f083b5a3..f87d57c3e7d 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/HeadPage.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/HeadPage.java @@ -43,7 +43,7 @@ public boolean hasSpace(int byteSize) { // a serialized element byte[] and serialization is done at the Queue level to // be able to use the Page.hasSpace() method with the serialized element byte size. // - public void write(byte[] bytes, long seqNum) throws IOException { + public void write(byte[] bytes, long seqNum, int checkpointMaxWrites) throws IOException { this.pageIO.write(bytes, seqNum); if (this.minSeqNum <= 0) { @@ -51,6 +51,13 @@ public void write(byte[] bytes, long seqNum) throws IOException { this.firstUnreadSeqNum = seqNum; } this.elementCount++; + + // force a checkpoint if we wrote checkpointMaxWrites elements since last checkpoint + // the initial condition of an "empty" checkpoint, maxSeqNum() will return -1 + if (checkpointMaxWrites > 0 && (seqNum >= this.lastCheckpoint.maxSeqNum() + checkpointMaxWrites)) { + // did we write more than checkpointMaxWrites elements? if so checkpoint now + checkpoint(); + } } public void ensurePersistedUpto(long seqNum) throws IOException { @@ -63,12 +70,8 @@ public void ensurePersistedUpto(long seqNum) throws IOException { } } - public TailPage behead() throws IOException { - // first do we need to checkpoint+fsync the headpage a last time? - if (this.elementCount > this.lastCheckpoint.getElementCount()) { - checkpoint(); - } + checkpoint(); TailPage tailPage = new TailPage(this); @@ -86,17 +89,35 @@ public TailPage behead() throws IOException { return tailPage; } + // head page checkpoint, fsync data page if writes occured since last checkpoint + // update checkpoint only if it changed since lastCheckpoint public void checkpoint() throws IOException { - // TODO: not concurrent for first iteration: - - // first fsync data file - this.pageIO.ensurePersisted(); - - // then write new checkpoint + if (this.elementCount > this.lastCheckpoint.getElementCount()) { + // fsync & checkpoint if data written since last checkpoint + + this.pageIO.ensurePersisted(); + forceCheckpoint(); + } else { + Checkpoint checkpoint = new Checkpoint(this.pageNum, this.queue.firstUnackedPageNum(), firstUnackedSeqNum(), this.minSeqNum, this.elementCount); + if (! checkpoint.equals(this.lastCheckpoint)) { + // checkpoint only if it changed since last checkpoint + + // non-dry code with forceCheckpoint() to avoid unnecessary extra new Checkpoint object creation + CheckpointIO io = queue.getCheckpointIO(); + io.write(io.headFileName(), checkpoint); + this.lastCheckpoint = checkpoint; + } + } + } + + // unconditionally update head checkpoint + public void forceCheckpoint() throws IOException { + Checkpoint checkpoint = new Checkpoint(this.pageNum, this.queue.firstUnackedPageNum(), firstUnackedSeqNum(), this.minSeqNum, this.elementCount); CheckpointIO io = queue.getCheckpointIO(); - this.lastCheckpoint = io.write(io.headFileName(), this.pageNum, this.queue.firstUnackedPageNum(), firstUnackedSeqNum(), this.minSeqNum, this.elementCount); - } + io.write(io.headFileName(), checkpoint); + this.lastCheckpoint = checkpoint; + } public void close() throws IOException { checkpoint(); diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java index c7e3dd8c4b0..f83f6e42171 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java @@ -10,6 +10,9 @@ public class MemorySettings implements Settings { private int capacity; private final String dirPath; private int maxUnread; + private int checkpointMaxAcks; + private int checkpointMaxWrites; + private int checkpointMaxInterval; public MemorySettings() { this(""); @@ -18,6 +21,9 @@ public MemorySettings() { public MemorySettings(String dirPath) { this.dirPath = dirPath; this.maxUnread = 0; + this.checkpointMaxAcks = 1; + this.checkpointMaxWrites = 1; + this.checkpointMaxInterval = 0; } @Override @@ -50,6 +56,39 @@ public Settings setMaxUnread(int maxUnread) { return this; } + @Override + public Settings setCheckpointMaxAcks(int checkpointMaxAcks) { + this.checkpointMaxAcks = checkpointMaxAcks; + return this; + } + + @Override + public Settings setCheckpointMaxWrites(int checkpointMaxWrites) { + this.checkpointMaxWrites = checkpointMaxWrites; + return this; + } + + @Override + public Settings setCheckpointMaxInterval(int checkpointMaxInterval) { + this.checkpointMaxInterval = checkpointMaxInterval; + return this; + } + + @Override + public int getCheckpointMaxAcks() { + return checkpointMaxAcks; + } + + @Override + public int getCheckpointMaxWrites() { + return checkpointMaxWrites; + } + + @Override + public int getCheckpointMaxInterval() { + return checkpointMaxInterval; + } + @Override public CheckpointIOFactory getCheckpointIOFactory() { return checkpointIOFactory; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java index ab3f0611b88..7db89ebdb45 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java @@ -82,7 +82,15 @@ public long unreadCount() { return this.elementCount <= 0 ? 0 : Math.max(0, (maxSeqNum() - this.firstUnreadSeqNum) + 1); } - public void ack(List seqNums) throws IOException { + // update the page acking bitset. trigger checkpoint on the page if it is fully acked or if we acked more than the + // configured threshold checkpointMaxAcks. + // note that if the fully acked tail page is the first unacked page, it is not really necessary to also checkpoint + // the head page to update firstUnackedPageNum because it will be updated in the next upcoming head page checkpoint + // and in a crash condition, the Queue open recovery will detect and purge fully acked pages + // + // @param seqNums the list of same-page seqNums to ack + // @param checkpointMaxAcks the number of acks that will trigger a page checkpoint + public void ack(List seqNums, int checkpointMaxAcks) throws IOException { for (long seqNum : seqNums) { // TODO: eventually refactor to use new bit handling class @@ -96,18 +104,18 @@ public void ack(List seqNums) throws IOException { this.ackedSeqNums.set(index); } - // checkpoint if totally acked or we acked more than 1024 elements in this page since last checkpoint + // checkpoint if totally acked or we acked more than checkpointMaxAcks elements in this page since last checkpoint + // note that fully acked pages cleanup is done at queue level in Queue.ack() long firstUnackedSeqNum = firstUnackedSeqNum(); if (isFullyAcked()) { - // TODO: here if consumer is faster than producer, the head page may be always fully acked and we may end up fsync'ing too ofter? checkpoint(); assert firstUnackedSeqNum >= this.minSeqNum + this.elementCount - 1: String.format("invalid firstUnackedSeqNum=%d for minSeqNum=%d and elementCount=%d and cardinality=%d", firstUnackedSeqNum, this.minSeqNum, this.elementCount, this.ackedSeqNums.cardinality()); - } else if (firstUnackedSeqNum > this.lastCheckpoint.getFirstUnackedSeqNum() + 1024) { - // did we acked more that 1024 elements? if so we should checkpoint now + } else if (checkpointMaxAcks > 0 && (firstUnackedSeqNum >= this.lastCheckpoint.getFirstUnackedSeqNum() + checkpointMaxAcks)) { + // did we acked more than checkpointMaxAcks elements? if so checkpoint now checkpoint(); } } diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java index 57c138bfaa3..bd561d80a83 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java @@ -46,6 +46,9 @@ public class Queue implements Closeable { private final int pageCapacity; private final String dirPath; private final int maxUnread; + private final int checkpointMaxAcks; + private final int checkpointMaxWrites; + private final int checkpointMaxInterval; private final AtomicBoolean closed; @@ -59,10 +62,20 @@ public class Queue implements Closeable { final Condition notEmpty = lock.newCondition(); public Queue(Settings settings) { - this(settings.getDirPath(), settings.getCapacity(), settings.getCheckpointIOFactory().build(settings.getDirPath()), settings.getPageIOFactory(), settings.getElementClass(), settings.getMaxUnread()); + this( + settings.getDirPath(), + settings.getCapacity(), + settings.getCheckpointIOFactory().build(settings.getDirPath()), + settings.getPageIOFactory(), + settings.getElementClass(), + settings.getMaxUnread(), + settings.getCheckpointMaxWrites(), + settings.getCheckpointMaxAcks(), + settings.getCheckpointMaxInterval() + ); } - public Queue(String dirPath, int pageCapacity, CheckpointIO checkpointIO, PageIOFactory pageIOFactory, Class elementClass, int maxUnread) { + public Queue(String dirPath, int pageCapacity, CheckpointIO checkpointIO, PageIOFactory pageIOFactory, Class elementClass, int maxUnread, int checkpointMaxWrites, int checkpointMaxAcks, int checkpointMaxInterval) { this.dirPath = dirPath; this.pageCapacity = pageCapacity; this.checkpointIO = checkpointIO; @@ -72,6 +85,9 @@ public Queue(String dirPath, int pageCapacity, CheckpointIO checkpointIO, PageIO this.unreadTailPages = new ArrayList<>(); this.closed = new AtomicBoolean(true); // not yet opened this.maxUnread = maxUnread; + this.checkpointMaxAcks = checkpointMaxAcks; + this.checkpointMaxWrites = checkpointMaxWrites; + this.checkpointMaxInterval = checkpointMaxInterval; this.unreadCount = 0; // retrieve the deserialize method @@ -94,7 +110,7 @@ public void open() throws IOException { Checkpoint headCheckpoint; try { - headCheckpoint = checkpointIO.read(checkpointIO.headFileName()); + headCheckpoint = this.checkpointIO.read(checkpointIO.headFileName()); } catch (NoSuchFileException e) { headCheckpoint = null; } @@ -114,39 +130,43 @@ public void open() throws IOException { // reconstruct all tail pages state upto but excluding the head page for (int pageNum = headCheckpoint.getFirstUnackedPageNum(); pageNum < headCheckpoint.getPageNum(); pageNum++) { - Checkpoint tailCheckpoint = checkpointIO.read(checkpointIO.tailFileName(pageNum)); - if (tailCheckpoint == null) { throw new IOException(checkpointIO.tailFileName(pageNum) + " not found"); } + // all tail checkpoints in the sequence should exist, if not abort mission with a NoSuchFileException + Checkpoint tailCheckpoint = this.checkpointIO.read(this.checkpointIO.tailFileName(pageNum)); PageIO pageIO = this.pageIOFactory.build(pageNum, this.pageCapacity, this.dirPath); - TailPage tailPage = new TailPage(tailCheckpoint, this, pageIO); - - // if this page is not the first tail page, deactivate it - // we keep the first tail page activated since we know the next read operation will be in that one - if (pageNum > headCheckpoint.getFirstUnackedPageNum()) { pageIO.deactivate(); } - - // track the seqNum as we rebuild tail pages, prevent empty pages with a minSeqNum of 0 to reset seqNum - if (tailPage.maxSeqNum() > this.seqNum) { this.seqNum = tailPage.maxSeqNum(); } - - insertTailPage(tailPage); + add(tailCheckpoint, pageIO); } // transform the head page into a tail page only if the headpage is non-empty + // in both cases it will be checkpointed to track any changes in the firstUnackedPageNum when reconstructing the tail pages if (headCheckpoint.getMinSeqNum() <= 0 && headCheckpoint.getElementCount() <= 0) { + // head page is empty, let's keep it as-is + PageIO headPageIO = this.pageIOFactory.build(headCheckpoint.getPageNum(), this.pageCapacity, this.dirPath); this.headPage = new HeadPage(headCheckpoint, this, headPageIO); - } else { - PageIO tailPageIO = this.pageIOFactory.build(headCheckpoint.getPageNum(), this.pageCapacity, this.dirPath); - TailPage tailPage = new TailPage(headCheckpoint, this, tailPageIO); - // track the seqNum as we add this new tail page, prevent empty tailPage with a minSeqNum of 0 to reset seqNum - if (tailPage.maxSeqNum() > this.seqNum) { this.seqNum = tailPage.maxSeqNum(); } + // but checkpoint it to update the firstUnackedPageNum if it changed + this.headPage.checkpoint(); + } else { + // head page is non-empty, transform it into a tail page and create a new empty head page - insertTailPage(tailPage); + PageIO pageIO = this.pageIOFactory.build(headCheckpoint.getPageNum(), this.pageCapacity, this.dirPath); + TailPage p = new TailPage(headCheckpoint, this, pageIO); + p.checkpoint(); + add(headCheckpoint, pageIO); headPageNum = headCheckpoint.getPageNum() + 1; newCheckpointedHeadpage(headPageNum); + + // track the seqNum as we add this new tail page, prevent empty tailPage with a minSeqNum of 0 to reset seqNum + if (headCheckpoint.maxSeqNum() > this.seqNum) { this.seqNum = headCheckpoint.maxSeqNum(); } + } + + // only activate the first tail page + if (tailPages.size() > 0) { + this.tailPages.get(0).getPageIO().activate(); } // TODO: here do directory traversal and cleanup lingering pages? could be a background operations to not delay queue start? @@ -154,19 +174,39 @@ public void open() throws IOException { this.closed.set(false); } - // insert a recovered tail page into the tail pages state tracking - // and purge it if it is found to be fully acked - private void insertTailPage(TailPage p) throws IOException { - if (!p.isFullyAcked()) { - this.tailPages.add(p); - if (!p.isFullyRead()) { - this.unreadTailPages.add(p); - this.unreadCount += p.unreadCount(); + private void add(Checkpoint checkpoint, PageIO pageIO) throws IOException { + if (checkpoint.isFullyAcked()) { + // first make sure any fully acked page per the checkpoint is purged if not already + try { pageIO.purge(); } catch (NoSuchFileException e) { /* ignore */ } + + // we want to keep all the "middle" checkpoints between the first unacked tail page and the head page + // to always have a contiguous sequence of checkpoints which helps figuring queue integrity. for this + // we will remove any prepended fully acked tail pages but keep all other checkpoints between the first + // unacked tail page and the head page. we did however purge the data file to free disk resources. + + if (this.tailPages.size() == 0) { + // this is the first tail page and it is fully acked so just purge it + this.checkpointIO.purge(this.checkpointIO.tailFileName(checkpoint.getPageNum())); + } else { + // create a tail page with a null PageIO and add it to tail pages but not unreadTailPages + // since it is fully read because also fully acked + this.tailPages.add(new TailPage(checkpoint, this, null)); } } else { - // for some reason we found a fully acked page, let's purge it. - p.purge(); + TailPage p = new TailPage(checkpoint, this, pageIO); + this.tailPages.add(p); + this.unreadTailPages.add(p); + this.unreadCount += p.unreadCount(); + + // for now deactivate all tail pages, we will only reactivate the first one at the end + pageIO.deactivate(); + } + + // track the seqNum as we rebuild tail pages, prevent empty pages with a minSeqNum of 0 to reset seqNum + if (checkpoint.maxSeqNum() > this.seqNum) { + this.seqNum = checkpoint.maxSeqNum(); } + } // create a new empty headpage for the given pageNum and imidiately checkpoint it @@ -174,7 +214,7 @@ private void insertTailPage(TailPage p) throws IOException { private void newCheckpointedHeadpage(int pageNum) throws IOException { PageIO headPageIO = this.pageIOFactory.build(pageNum, this.pageCapacity, this.dirPath); this.headPage = new HeadPage(pageNum, this, headPageIO); - this.headPage.checkpoint(); + this.headPage.forceCheckpoint(); } @@ -210,13 +250,10 @@ public long write(Queueable element) throws IOException { } // create new head page - int headPageNum = tailPage.pageNum + 1; - PageIO pageIO = this.pageIOFactory.build(headPageNum, this.pageCapacity, this.dirPath); - this.headPage = new HeadPage(headPageNum, this, pageIO); - this.headPage.checkpoint(); + newCheckpointedHeadpage(tailPage.pageNum + 1); } - this.headPage.write(data, seqNum); + this.headPage.write(data, seqNum, this.checkpointMaxWrites); this.unreadCount++; // if the queue was empty before write, signal non emptiness @@ -273,11 +310,7 @@ public Batch nonBlockReadBatch(int limit) throws IOException { lock.lock(); try { Page p = firstUnreadPage(); - if (p == null) { - return null; - } - - return _readPageBatch(p, limit); + return (p == null) ? null : _readPageBatch(p, limit); } finally { lock.unlock(); } @@ -312,9 +345,7 @@ public Batch readBatch(int limit) throws IOException { } // need to check for close since it is a condition for exiting the while loop - if (isClosed()) { return null; } - - return _readPageBatch(p, limit); + return (isClosed()) ? null : _readPageBatch(p, limit); } finally { lock.unlock(); } @@ -361,10 +392,7 @@ private Batch _readPageBatch(Page p, int limit) throws IOException { Batch b = p.readBatch(limit); this.unreadCount -= b.size(); - if (p.isFullyRead()) { - removeUnreadPage(p); - } - + if (p.isFullyRead()) { removeUnreadPage(p); } if (wasFull) { notFull.signal(); } return b; @@ -410,6 +438,10 @@ private TailPageResult linearFindPageForSeqnum(long seqNum) { return null; } + // ack a list of seqNums that are assumed to be all part of the same page, leveraging the fact that batches are also created from + // same-page elements. A fully acked page will trigger a checkpoint for that page. Also if a page has more than checkpointMaxAcks + // acks since last checkpoint it will also trigger a checkpoint. + // @param seqNums the list of same-page sequence numbers to ack public void ack(List seqNums) throws IOException { // as a first implementation we assume that all batches are created from the same page // so we will avoid multi pages acking here for now @@ -419,23 +451,52 @@ public void ack(List seqNums) throws IOException { lock.lock(); try { - // dual search strategy: if few tail pages search linearily otherwise perform binary search - TailPageResult result = (this.tailPages.size() > 3) ? binaryFindPageForSeqnum(firstAckSeqNum) : linearFindPageForSeqnum(firstAckSeqNum); + TailPageResult result = null; + + if (this.tailPages.size() > 0) { + // short-circuit: first check in the first tail page as it is the most likely page where acking will happen + TailPage p = this.tailPages.get(0); + if (p.getMinSeqNum() > 0 && firstAckSeqNum >= p.getMinSeqNum() && firstAckSeqNum < p.getMinSeqNum() + p.getElementCount()) { + result = new TailPageResult(p, 0); + } else { + // dual search strategy: if few tail pages search linearily otherwise perform binary search + result = (this.tailPages.size() > 3) ? binaryFindPageForSeqnum(firstAckSeqNum) : linearFindPageForSeqnum(firstAckSeqNum); + } + } if (result == null) { // if not found then it is in head page assert this.headPage.getMinSeqNum() > 0 && firstAckSeqNum >= this.headPage.getMinSeqNum() && firstAckSeqNum < this.headPage.getMinSeqNum() + this.headPage.getElementCount(): String.format("seqNum=%d is not in head page with minSeqNum=%d", firstAckSeqNum, this.headPage.getMinSeqNum()); - this.headPage.ack(seqNums); + + // page acking checkpoints fully acked pages + this.headPage.ack(seqNums, this.checkpointMaxAcks); } else { - result.page.ack(seqNums); + // page acking also checkpoints fully acked pages or upon reaching the checkpointMaxAcks threshold + result.page.ack(seqNums, this.checkpointMaxAcks); // cleanup fully acked tail page if (result.page.isFullyAcked()) { this.tailPages.remove(result.index); - this.headPage.checkpoint(); + + // remove page data file regardless if it is the first or a middle tail page to free resources result.page.purge(); + + if (result.index == 0) { + // if this is the first page also remove checkpoint file + this.checkpointIO.purge(this.checkpointIO.tailFileName(result.page.getPageNum())); + + // and see if next "first tail page" is also fully acked and remove checkpoint file + while (this.tailPages.size() > 0) { + TailPage p = this.tailPages.get(0); + if (!p.isFullyAcked()) { break; } + this.checkpointIO.purge(this.checkpointIO.tailFileName(p.getPageNum())); + this.tailPages.remove(0); + } + } } + + this.headPage.checkpoint(); } } finally { lock.unlock(); diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java index 1b847e0fc2c..1276660af77 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java @@ -14,6 +14,12 @@ public interface Settings { Settings setMaxUnread(int maxUnread); + Settings setCheckpointMaxAcks(int checkpointMaxAcks); + + Settings setCheckpointMaxWrites(int checkpointMaxWrites); + + Settings setCheckpointMaxInterval(int checkpointMaxInterval); + CheckpointIOFactory getCheckpointIOFactory(); PageIOFactory getPageIOFactory(); @@ -25,4 +31,10 @@ public interface Settings { int getCapacity(); int getMaxUnread(); + + int getCheckpointMaxAcks(); + + int getCheckpointMaxWrites(); + + int getCheckpointMaxInterval(); } diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/TailPage.java b/logstash-core/src/main/java/org/logstash/ackedqueue/TailPage.java index 8a8b2b721a5..6ebccbf1d87 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/TailPage.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/TailPage.java @@ -17,13 +17,16 @@ public TailPage(HeadPage page) { public TailPage(Checkpoint checkpoint, Queue queue, PageIO pageIO) throws IOException { super(checkpoint.getPageNum(), queue, checkpoint.getMinSeqNum(), checkpoint.getElementCount(), checkpoint.getFirstUnackedSeqNum(), new BitSet(), pageIO); - // open the data file and reconstruct the IO object internal state - pageIO.open(checkpoint.getMinSeqNum(), checkpoint.getElementCount()); - // this page ackedSeqNums bitset is a new empty bitset, if we have some acked elements, set them in the bitset if (checkpoint.getFirstUnackedSeqNum() > checkpoint.getMinSeqNum()) { this.ackedSeqNums.flip(0, (int) (checkpoint.getFirstUnackedSeqNum() - checkpoint.getMinSeqNum())); } + + if (pageIO != null) { + // open the data file and reconstruct the IO object internal state + pageIO.open(checkpoint.getMinSeqNum(), checkpoint.getElementCount()); + } + } public void checkpoint() throws IOException { @@ -31,18 +34,20 @@ public void checkpoint() throws IOException { // since this is a tail page and no write can happen in this page, there is no point in performing a fsync on this page, just stamp checkpoint CheckpointIO io = queue.getCheckpointIO(); - this.lastCheckpoint = io.write(io.tailFileName(this.pageNum), this.pageNum, this.queue.firstUnackedPageNum(), firstUnackedSeqNum(), this.minSeqNum, this.elementCount); + this.lastCheckpoint = io.write(io.tailFileName(this.pageNum), this.pageNum, 0, firstUnackedSeqNum(), this.minSeqNum, this.elementCount); } // delete all IO files associated with this page public void purge() throws IOException { - this.pageIO.purge(); - CheckpointIO io = queue.getCheckpointIO(); - io.purge(io.tailFileName(this.pageNum)); + if (this.pageIO != null) { + this.pageIO.purge(); // page IO purge calls close + } } public void close() throws IOException { checkpoint(); - this.pageIO.close(); + if (this.pageIO != null) { + this.pageIO.close(); + } } } \ No newline at end of file diff --git a/logstash-core/src/main/java/org/logstash/common/io/CheckpointIO.java b/logstash-core/src/main/java/org/logstash/common/io/CheckpointIO.java index cd28cf66e3b..8b9abc10242 100644 --- a/logstash-core/src/main/java/org/logstash/common/io/CheckpointIO.java +++ b/logstash-core/src/main/java/org/logstash/common/io/CheckpointIO.java @@ -8,6 +8,8 @@ public interface CheckpointIO { // @return Checkpoint the written checkpoint object Checkpoint write(String fileName, int pageNum, int firstUnackedPageNum, long firstUnackedSeqNum, long minSeqNum, int elementCount) throws IOException; + void write(String fileName, Checkpoint checkpoint) throws IOException; + Checkpoint read(String fileName) throws IOException; void purge(String fileName) throws IOException; diff --git a/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java b/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java index 12e8e197772..6d79aad2be4 100644 --- a/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java +++ b/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java @@ -43,12 +43,17 @@ public Checkpoint read(String fileName) throws IOException { @Override public Checkpoint write(String fileName, int pageNum, int firstUnackedPageNum, long firstUnackedSeqNum, long minSeqNum, int elementCount) throws IOException { - Path path = Paths.get(dirPath, fileName); Checkpoint checkpoint = new Checkpoint(pageNum, firstUnackedPageNum, firstUnackedSeqNum, minSeqNum, elementCount); + write(fileName, checkpoint); + return checkpoint; + } + + @Override + public void write(String fileName, Checkpoint checkpoint) throws IOException { + Path path = Paths.get(dirPath, fileName); final byte[] buffer = new byte[BUFFER_SIZE]; write(checkpoint, buffer); Files.write(path, buffer); - return checkpoint; } @Override diff --git a/logstash-core/src/main/java/org/logstash/common/io/MemoryCheckpointIO.java b/logstash-core/src/main/java/org/logstash/common/io/MemoryCheckpointIO.java index 0dc5b8b6310..4723e2ea550 100644 --- a/logstash-core/src/main/java/org/logstash/common/io/MemoryCheckpointIO.java +++ b/logstash-core/src/main/java/org/logstash/common/io/MemoryCheckpointIO.java @@ -31,10 +31,15 @@ public Checkpoint read(String fileName) throws IOException { @Override public Checkpoint write(String fileName, int pageNum, int firstUnackedPageNum, long firstUnackedSeqNum, long minSeqNum, int elementCount) throws IOException { Checkpoint checkpoint = new Checkpoint(pageNum, firstUnackedPageNum, firstUnackedSeqNum, minSeqNum, elementCount); - this.sources.put(fileName, checkpoint); + write(fileName, checkpoint); return checkpoint; } + @Override + public void write(String fileName, Checkpoint checkpoint) throws IOException { + this.sources.put(fileName, checkpoint); + } + @Override public void purge(String fileName) { this.sources.remove(fileName); diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/HeadPageTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/HeadPageTest.java index 0477b1b209c..5115c69a5d1 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/HeadPageTest.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/HeadPageTest.java @@ -38,11 +38,11 @@ public void pageWrite() throws IOException { Settings s = TestSettings.getSettings(singleElementCapacity); Queue q = new Queue(s); - PageIO pageIO = s.getPageIOFactory().build(0, singleElementCapacity, "dummy"); - HeadPage p = new HeadPage(0, q, pageIO); + q.open(); + HeadPage p = q.headPage; assertThat(p.hasSpace(element.serialize().length), is(true)); - p.write(element.serialize(), 0); + p.write(element.serialize(), 0, 1); assertThat(p.hasSpace(element.serialize().length), is(false)); assertThat(p.isFullyRead(), is(false)); @@ -57,11 +57,11 @@ public void pageWriteAndReadSingle() throws IOException { Settings s = TestSettings.getSettings(singleElementCapacity); Queue q = new Queue(s); - PageIO pageIO = s.getPageIOFactory().build(0, singleElementCapacity, "dummy"); - HeadPage p = new HeadPage(0, q, pageIO); + q.open(); + HeadPage p = q.headPage; assertThat(p.hasSpace(element.serialize().length), is(true)); - p.write(element.serialize(), seqNum); + p.write(element.serialize(), seqNum, 1); Batch b = p.readBatch(1); @@ -81,11 +81,11 @@ public void pageWriteAndReadMulti() throws IOException { Settings s = TestSettings.getSettings(singleElementCapacity); Queue q = new Queue(s); - PageIO pageIO = s.getPageIOFactory().build(0, singleElementCapacity, "dummy"); - HeadPage p = new HeadPage(0, q, pageIO); + q.open(); + HeadPage p = q.headPage; assertThat(p.hasSpace(element.serialize().length), is(true)); - p.write(element.serialize(), seqNum); + p.write(element.serialize(), seqNum, 1); Batch b = p.readBatch(10); @@ -97,20 +97,21 @@ public void pageWriteAndReadMulti() throws IOException { assertThat(p.isFullyAcked(), is(false)); } - @Test - public void pageViaQueueOpenForHeadCheckpointWithoutSupportingPageFiles() throws Exception { - URL url = FileCheckpointIOTest.class.getResource("checkpoint.head"); - String dirPath = Paths.get(url.toURI()).getParent().toString(); - Queueable element = new StringElement("foobarbaz"); - int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); - Settings s = TestSettings.getSettingsCheckpointFilePageMemory(singleElementCapacity, dirPath); - TestQueue q = new TestQueue(s); - try { - q.open(); - } catch (NoSuchFileException e) { - assertThat(e.getMessage(), containsString("checkpoint.2")); - } - HeadPage p = q.getHeadPage(); - assertThat(p, is(equalTo(null))); - } + // disabled test until we figure what to do in this condition +// @Test +// public void pageViaQueueOpenForHeadCheckpointWithoutSupportingPageFiles() throws Exception { +// URL url = FileCheckpointIOTest.class.getResource("checkpoint.head"); +// String dirPath = Paths.get(url.toURI()).getParent().toString(); +// Queueable element = new StringElement("foobarbaz"); +// int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); +// Settings s = TestSettings.getSettingsCheckpointFilePageMemory(singleElementCapacity, dirPath); +// TestQueue q = new TestQueue(s); +// try { +// q.open(); +// } catch (NoSuchFileException e) { +// assertThat(e.getMessage(), containsString("checkpoint.2")); +// } +// HeadPage p = q.getHeadPage(); +// assertThat(p, is(equalTo(null))); +// } } diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java index 31024220dcd..81b00d68553 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java @@ -174,6 +174,7 @@ public void writeMultiPageWithInOrderAckingCheckpoints() throws IOException { int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(elements1.get(0).serialize().length); Settings settings = TestSettings.getSettings(2 * singleElementCapacity); + settings.setCheckpointMaxWrites(1024); // arbritary high enough threshold so that it's not reached (default for TestSettings is 1) TestQueue q = new TestQueue(settings); q.open(); From dd8d2edf552685bfae7e935ad9a2c85edf2a90a5 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Fri, 11 Nov 2016 17:35:19 -0800 Subject: [PATCH 501/632] Update readme with more relevant info Fixes #6243 --- README.md | 153 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 78 insertions(+), 75 deletions(-) diff --git a/README.md b/README.md index 7eeaa34ceb9..185b9c655e6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Logstash [![Code Climate](https://codeclimate.com/github/elasticsearch/logstash/badges/gpa.svg)](https://codeclimate.com/github/elasticsearch/logstash) +# Logstash ### Build status @@ -6,29 +6,37 @@ |---|---|---|---| | core | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=master)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=5.0)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.4)](https://travis-ci.org/elastic/logstash) | -Logstash is a tool for managing events and logs. You can use it to collect -logs, parse them, and store them for later use (like, for searching). If you -store them in [Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html), -you can view and analyze them with [Kibana](https://www.elastic.co/guide/en/kibana/current/index.html). +Logstash is part of the [https://www.elastic.co/products](Elastic Stack) along with Beats, Elasticsearch and Kibana. Logstash is an open source, server-side data processing pipeline that ingests data from a multitude of sources simultaneously, transforms it, and then sends it to your favorite "stash." (Ours is Elasticsearch, naturally.). Logstash has over 200 plugins, and you can write your own very easily as well. -It is fully free and fully open source. The license is Apache 2.0, meaning you -are pretty much free to use it however you want in whatever way. +The license is Apache 2.0, meaning you are pretty much free to use it however you want in whatever way. For more info, see +## Documentation and Getting Started + +You can find the documentation and getting started guides for Logstash +on the [elastic.co site](https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html) + +## Downloads + +You can download Logstash binaries, as well as debian/rpm packages for the +supported platforms, from [downloads page](https://www.elastic.co/downloads/logstash). + +## Need Help? + +- [Logstash Forum](https://discuss.elastic.co/c/logstash) +- [Logstash Documentation](https://www.elastic.co/guide/en/logstash/current/index.html) +- [#logstash on freenode IRC](https://webchat.freenode.net/?channels=logstash) +- [Logstash Product Information](https://www.elastic.co/products/logstash) +- [Elastic Support](https://www.elastic.co/subscriptions) + ## Logstash Plugins -### AKA "Where'd that plugin go??" -Since version **1.5.0 beta1 (and current master)** of Logstash, *all* plugins have been separated into their own -repositories under the [logstash-plugins](https://github.com/logstash-plugins) github organization. Each plugin is now a self-contained Ruby gem which -gets published to RubyGems.org. Logstash has added plugin infrastructure to easily maintain the lifecyle of the plugin. -For more details and rationale behind these changes, see our [blogpost](https://www.elastic.co/blog/plugin-ecosystem-changes/). +Logstash plugins are hosted in separate repositories under under the [logstash-plugins](https://github.com/logstash-plugins) github organization. Each plugin is a self-contained Ruby gem which gets published to RubyGems.org. -[Elasticsearch logstash-contrib repo](https://github.com/elastic/logstash-contrib) is deprecated. We -have moved all of the plugins that existed there into their own repositories. We are migrating all of the pull requests -and issues from logstash-contrib to the new repositories. +### Writing your own Plugin -For more info on developing and testing these plugins, please see the [README](https://github.com/logstash-plugins/logstash-output-elasticsearch/blob/master/README.md) on *any* plugin repository. +Logstash is known for its extensibility. There are hundreds of plugins for Logstash and you can write your own very easily! For more info on developing and testing these plugins, please see the [working with plugins section](https://www.elastic.co/guide/en/logstash/current/contributing-to-logstash.html) ### Plugin Issues and Pull Requests @@ -38,48 +46,62 @@ For example, if you have to report an issue/enhancement for the Elasticsearch ou Logstash core will continue to exist under this repository and all related issues and pull requests can be submitted here. -## Need Help? +## Developing Logstash Core -- [#logstash on freenode IRC](https://webchat.freenode.net/?channels=logstash) -- [logstash-users on Google Groups](https://groups.google.com/d/forum/logstash-users) -- [Logstash Documentation](https://www.elastic.co/guide/en/logstash/current/index.html) -- [Logstash Product Information](https://www.elastic.co/products/logstash) -- [Elastic Support](https://www.elastic.co/subscriptions) +### Prerequisites -## Developing +* Install JDK version 8 +* Install JRuby 1.7.x. +* Install `rake` and `bundler` tool using `gem install rake` and `gem install bundler` respectively. -Logstash uses [JRuby](http://jruby.org/) which gets embedded in the `vendor/jruby/` directory. It is recommended but not mandatory that you also use JRuby as your local Ruby interpreter and for this you should consider using a Ruby version manager such as [RVM](https://rvm.io/) or [rbenv](https://github.com/sstephenson/rbenv). It is possible to run the rake tasks and the `bin/` commands without having JRuby locally installed in which case the embedded JRuby will be used automatically. If you have a local JRuby installed you can force logstash to use your local JRuby instead of the embedded JRuby with the `USE_RUBY=1` environment variable. +**On Windows** make sure to set the `JAVA_HOME` environment variable to the path to your JDK installation directory. For example `set JAVA_HOME=` -To get started, make sure you have a local JRuby or Ruby version 1.9.x or above with the `rake` tool installed. +**Vendored JRuby**: Logstash uses [JRuby](http://jruby.org/) which gets embedded in the `vendor/jruby/` directory. It is recommended to use a Ruby version manager such as [RVM](https://rvm.io/) or [rbenv](https://github.com/sstephenson/rbenv). -**On Windows** make sure to set the `JAVA_HOME` environment variable to the path to your JDK installation directory. For example `set JAVA_HOME=` +* To run Logstash from the repo you must first bootstrap the environment: -To run logstash from the repo you must bootstrap the environment +```sh +rake bootstrap +``` + +* You can then use `bin/logstash` to start Logstash, but there are no plugins installed. Logstash ships with default plugins. To install those, you can run: - rake bootstrap +```sh +rake plugin:install-default +``` -or bootstrap & install the core plugins required to run the tests +* Alternatively, you can only install the core plugins required to run the tests - rake test:install-core +```sh +rake test:install-core +``` + +To verify your environment, run + +```sh +bin/logstash -e 'input { stdin { } } output { stdout {} }' +``` -To verify your environment, run `bin/logstash version` which should look like this +This should start Logstash with stdin input waiting for you to enter an event - $ bin/logstash --version - logstash 2.0.0.dev +```sh +hello world +2016-11-11T01:22:14.405+0000 0.0.0.0 hello world +``` -If you are seeing errors that look like +**Drip Launcher** - $ rake bootstrap - Installing minitar >= 0 because the build process needs it. - [bootstrap] Fetching and installing gem: minitar (>= 0) - rake aborted! - LoadError: no such file to load -- archive/tar/minitar - /Users//projects/logstash/rakelib/vendor.rake:17:in `untar' - /Users//projects/logstash/rakelib/vendor.rake:86:in `(root)' - Tasks: TOP => bootstrap => vendor:all => vendor:jruby - (See full trace by running task with --trace) +[Drip](https://github.com/ninjudd/drip) is a tool that solves the slow JVM startup problem while developing Logstash. The drip script is intended to be a drop-in replacement for the java command. We recommend using drip during development, in particular for running tests. Using drip, the first invocation of a command will not be faster but the subsequent commands will be swift. + +To tell logstash to use drip, either set the `USE_DRIP=1` environment variable or set `` JAVACMD=`which drip` ``. -then you may need to update your version of rubygems. Run `gem -v` to see the version of rubygems installed. Version 2.5.2 or higher should work. To update rubygems run `gem update --system` (you may need to run with `sudo` if you're using your system Ruby environment). +Example: + + USE_DRIP=1 bin/rspec + +**Caveats** + +Drip does not work with STDIN. You cannot use drip for running configs which use the stdin plugin. ## Testing @@ -115,43 +137,24 @@ You can install the default set of plugins included in the logstash package or a Note that if a plugin is installed using the plugin manager `bin/logstash-plugin install ...` do not forget to also install the plugins development dependencies using the following command after the plugin installation: bin/logstash-plugin install --development + +## Building Artifacts -## Developing plugins - -The documentation for developing plugins can be found in the plugins README, see our example plugins: - -- -- -- -- - -## Drip Launcher - -[Drip](https://github.com/ninjudd/drip) is a tool that solves the slow JVM startup problem. The drip script is intended to be a drop-in replacement for the java command. We recommend using drip during development, in particular for running tests. Using drip, the first invocation of a command will not be faster but the subsequent commands will be swift. - -To tell logstash to use drip, either set the `USE_DRIP=1` environment variable or set `` JAVACMD=`which drip` ``. - -Examples: - - USE_DRIP=1 bin/rspec - USE_DRIP=1 bin/rspec - -**Caveats** - -Drip does not work with STDIN. You cannot use drip for running configs which use the stdin plugin. - - -## Building +You can build a Logstash snapshot package as tarball or zip file -You can build a logstash package as tarball or zip file +```sh +rake artifact:tar +rake artifact:zip +``` - rake artifact:tar - rake artifact:zip +This will create the artifact `LS_HOME/build` directory You can also build .rpm and .deb, but the [fpm](https://github.com/jordansissel/fpm) tool is required. - rake artifact:rpm - rake artifact:deb +```sh +rake artifact:rpm +rake artifact:deb +``` ## Project Principles From 4bbd8de197b51ab70f57498a7bb0a333b96e3bda Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Mon, 14 Nov 2016 10:39:21 -0800 Subject: [PATCH 502/632] Fix stack link Fixes #6243 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 185b9c655e6..3a03f66dfd1 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ |---|---|---|---| | core | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=master)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=5.0)](https://travis-ci.org/elastic/logstash) | [![Build Status](https://travis-ci.org/elastic/logstash.svg?branch=2.4)](https://travis-ci.org/elastic/logstash) | -Logstash is part of the [https://www.elastic.co/products](Elastic Stack) along with Beats, Elasticsearch and Kibana. Logstash is an open source, server-side data processing pipeline that ingests data from a multitude of sources simultaneously, transforms it, and then sends it to your favorite "stash." (Ours is Elasticsearch, naturally.). Logstash has over 200 plugins, and you can write your own very easily as well. +Logstash is part of the [Elastic Stack](https://www.elastic.co/products) along with Beats, Elasticsearch and Kibana. Logstash is an open source, server-side data processing pipeline that ingests data from a multitude of sources simultaneously, transforms it, and then sends it to your favorite "stash." (Ours is Elasticsearch, naturally.). Logstash has over 200 plugins, and you can write your own very easily as well. The license is Apache 2.0, meaning you are pretty much free to use it however you want in whatever way. From 6b2c5dec147ccddded9606177178513835b27467 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 23 Nov 2016 15:00:05 -0800 Subject: [PATCH 503/632] Fix bad callout formatting Fixes #6295 --- docs/static/breaking-changes.asciidoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index adee13a3e48..f922cf974b4 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -129,8 +129,8 @@ before-and-after examples. In Logstash 2.x, you may have run something: bin/logstash --config my.conf --pipeline-workers 8 <1> bin/logstash -f my.conf -w 8 <2> ---------------------------------- -1. Long form options `config` and `pipeline-workers` are used here. -2. Short form options `f` and `w` (aliases for the former` are used here. +<1> Long form options `config` and `pipeline-workers` are used here. +<2> Short form options `f` and `w` (aliases for the former` are used here. But, in Logstash 5.0, this becomes: @@ -139,8 +139,8 @@ But, in Logstash 5.0, this becomes: bin/logstash --path.config my.conf --pipeline.workers 8 <1> bin/logstash -f my.conf -w 8 <2> ---------------------------------- -1. Long form options are changed to reflect the new options. -2. Short form options are unchanged. +<1> Long form options are changed to reflect the new options. +<2> Short form options are unchanged. NOTE: None of the short form options have changed! From 100b846d36883f45affbadc1db928b3ab0ded46e Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 24 Nov 2016 12:32:45 +0000 Subject: [PATCH 504/632] first step in having maxQueueSizeInBytes Fixes #6297 --- .../org/logstash/ackedqueue/FileSettings.java | 10 ++++ .../logstash/ackedqueue/MemorySettings.java | 9 ++++ .../java/org/logstash/ackedqueue/Queue.java | 14 ++++- .../org/logstash/ackedqueue/Settings.java | 4 ++ .../org/logstash/ackedqueue/QueueTest.java | 54 +++++++++++++++++++ .../org/logstash/ackedqueue/TestSettings.java | 13 +++++ 6 files changed, 102 insertions(+), 2 deletions(-) diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java index 8267cfa5c99..00deeee1b6f 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java @@ -9,6 +9,7 @@ public class FileSettings implements Settings { private PageIOFactory pageIOFactory; private Class elementClass; private int capacity; + private int queueMaxSizeInBytes; private int maxUnread; private int checkpointMaxAcks; private int checkpointMaxWrites; @@ -42,6 +43,12 @@ public Settings setElementClass(Class elementClass) { return this; } + @Override + public Settings setQueueMaxSizeInBytes(int size) { + this.queueMaxSizeInBytes = size; + return this; + } + @Override public Settings setCapacity(int capacity) { this.capacity = capacity; @@ -106,6 +113,9 @@ public String getDirPath() { return dirForFiles; } + @Override + public int getQueueMaxSizeInBytes() { return queueMaxSizeInBytes; } + @Override public int getCapacity() { return capacity; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java index f83f6e42171..8f18f080389 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java @@ -8,6 +8,7 @@ public class MemorySettings implements Settings { private PageIOFactory pageIOFactory; private Class elementClass; private int capacity; + private int queueMaxSizeInBytes; private final String dirPath; private int maxUnread; private int checkpointMaxAcks; @@ -50,6 +51,12 @@ public Settings setCapacity(int capacity) { return this; } + @Override + public Settings setQueueMaxSizeInBytes(int size) { + this.queueMaxSizeInBytes = size; + return this; + } + @Override public Settings setMaxUnread(int maxUnread) { this.maxUnread = maxUnread; @@ -108,6 +115,8 @@ public String getDirPath() { return this.dirPath; } + public int getQueueMaxSizeInBytes() { return this.queueMaxSizeInBytes; } + @Override public int getCapacity() { return this.capacity; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java index bd561d80a83..3e5df137ca4 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java @@ -41,9 +41,12 @@ public class Queue implements Closeable { protected volatile long unreadCount; + protected volatile long currentSize; + private final CheckpointIO checkpointIO; private final PageIOFactory pageIOFactory; private final int pageCapacity; + private final int maxSize; private final String dirPath; private final int maxUnread; private final int checkpointMaxAcks; @@ -65,6 +68,7 @@ public Queue(Settings settings) { this( settings.getDirPath(), settings.getCapacity(), + settings.getQueueMaxSizeInBytes(), settings.getCheckpointIOFactory().build(settings.getDirPath()), settings.getPageIOFactory(), settings.getElementClass(), @@ -75,9 +79,10 @@ public Queue(Settings settings) { ); } - public Queue(String dirPath, int pageCapacity, CheckpointIO checkpointIO, PageIOFactory pageIOFactory, Class elementClass, int maxUnread, int checkpointMaxWrites, int checkpointMaxAcks, int checkpointMaxInterval) { + public Queue(String dirPath, int pageCapacity, int maxSize, CheckpointIO checkpointIO, PageIOFactory pageIOFactory, Class elementClass, int maxUnread, int checkpointMaxWrites, int checkpointMaxAcks, int checkpointMaxInterval) { this.dirPath = dirPath; this.pageCapacity = pageCapacity; + this.maxSize = maxSize; this.checkpointIO = checkpointIO; this.pageIOFactory = pageIOFactory; this.elementClass = elementClass; @@ -89,6 +94,7 @@ public Queue(String dirPath, int pageCapacity, CheckpointIO checkpointIO, PageIO this.checkpointMaxWrites = checkpointMaxWrites; this.checkpointMaxInterval = checkpointMaxInterval; this.unreadCount = 0; + this.currentSize = 0; // retrieve the deserialize method try { @@ -135,6 +141,7 @@ public void open() throws IOException { Checkpoint tailCheckpoint = this.checkpointIO.read(this.checkpointIO.tailFileName(pageNum)); PageIO pageIO = this.pageIOFactory.build(pageNum, this.pageCapacity, this.dirPath); + add(tailCheckpoint, pageIO); } @@ -153,6 +160,7 @@ public void open() throws IOException { // head page is non-empty, transform it into a tail page and create a new empty head page PageIO pageIO = this.pageIOFactory.build(headCheckpoint.getPageNum(), this.pageCapacity, this.dirPath); + TailPage p = new TailPage(headCheckpoint, this, pageIO); p.checkpoint(); add(headCheckpoint, pageIO); @@ -197,6 +205,7 @@ private void add(Checkpoint checkpoint, PageIO pageIO) throws IOException { this.tailPages.add(p); this.unreadTailPages.add(p); this.unreadCount += p.unreadCount(); + this.currentSize += pageIO.getCapacity(); // for now deactivate all tail pages, we will only reactivate the first one at the end pageIO.deactivate(); @@ -255,6 +264,7 @@ public long write(Queueable element) throws IOException { this.headPage.write(data, seqNum, this.checkpointMaxWrites); this.unreadCount++; + this.currentSize += data.length; // if the queue was empty before write, signal non emptiness if (wasEmpty) { notEmpty.signal(); } @@ -290,7 +300,7 @@ public long write(Queueable element) throws IOException { public boolean isFull() { // TODO: I am not sure if having unreadCount as volatile is sufficient here. all unreadCount updates are done inside syncronized // TODO: sections, I believe that to only read the value here, having it as volatile is sufficient? - return (this.maxUnread > 0) ? this.unreadCount >= this.maxUnread : false; + return (((this.maxUnread > 0) ? this.unreadCount >= this.maxUnread : false) || (this.currentSize >= this.maxSize)); } // @param seqNum the element sequence number upper bound for which persistence should be garanteed (by fsync'ing) diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java index 1276660af77..078176af151 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java @@ -12,6 +12,8 @@ public interface Settings { Settings setCapacity(int capacity); + Settings setQueueMaxSizeInBytes(int size); + Settings setMaxUnread(int maxUnread); Settings setCheckpointMaxAcks(int checkpointMaxAcks); @@ -30,6 +32,8 @@ public interface Settings { int getCapacity(); + int getQueueMaxSizeInBytes(); + int getMaxUnread(); int getCheckpointMaxAcks(); diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java index 81b00d68553..97ccb979bdb 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java @@ -390,4 +390,58 @@ public void reachMaxUnreadWithAcking() throws IOException, InterruptedException, assertThat(q.unreadCount, is(equalTo(1L))); } + @Test + public void reachMaxSizeTest() throws IOException, InterruptedException, ExecutionException { + Queueable element = new StringElement("0123456789"); // 10 bytes + + Settings settings = TestSettings.getSettings(256, 1000); // allow 10 elements per page but only 1024 bytes in total + + TestQueue q = new TestQueue(settings); + q.open(); + + int ELEMENT_COUNT = 99; // should be able to write 100 events before getting full + for (int i = 0; i < ELEMENT_COUNT; i++) { + long seqNum = q.write(element); + } + + assertThat(q.isFull(), is(false)); + + // we expect this next write call to block so let's wrap it in a Future + Callable write = () -> { + return q.write(element); + }; + + ExecutorService executor = Executors.newFixedThreadPool(1); + Future future = executor.submit(write); + + Thread.sleep(1); + assertThat(q.isFull(), is(true)); + // spin wait until data is written and write blocks + //while (!q.isFull()) { Thread.sleep(1); } + /* + + + // read one element, which will unblock the last write + Batch b = q.nonBlockReadBatch(1); + assertThat(b, is(notNullValue())); + assertThat(b.getElements().size(), is(equalTo(1))); + b.close(); + + // future result is the blocked write seqNum for the second element + assertThat(future.get(), is(equalTo(2L + i))); + assertThat(q.isFull(), is(false)); + + executor.shutdown(); + } + + // all batches are acked, no tail pages should exist + assertThat(q.getTailPages().size(), is(equalTo(0))); + + // the last read unblocked the last write so some elements (1 unread and maybe some acked) should be in the head page + assertThat(q.getHeadPage().getElementCount() > 0L, is(true)); + assertThat(q.getHeadPage().unreadCount(), is(equalTo(1L))); + assertThat(q.unreadCount, is(equalTo(1L))); + */ + } + } \ No newline at end of file diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java b/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java index 7478c2ec70f..f4eb9844a89 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java @@ -20,6 +20,19 @@ public static Settings getSettings(int capacity) { return s; } + public static Settings getSettings(int capacity, int size) { + MemoryCheckpointIO.clearSources(); + Settings s = new MemorySettings(); + PageIOFactory pageIOFactory = (pageNum, pageSize, path) -> new ByteBufferPageIO(pageNum, pageSize, path); + CheckpointIOFactory checkpointIOFactory = (source) -> new MemoryCheckpointIO(source); + s.setCapacity(capacity); + s.setQueueMaxSizeInBytes(size); + s.setElementIOFactory(pageIOFactory); + s.setCheckpointIOFactory(checkpointIOFactory); + s.setElementClass(StringElement.class); + return s; + } + public static Settings getSettingsCheckpointFilePageMemory(int capacity, String folder) { Settings s = new FileSettings(folder); PageIOFactory pageIOFactory = (pageNum, size, path) -> new ByteBufferPageIO(pageNum, size, path); From 0d04a1c542bed2437f6419a619edb0d42491b21c Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 24 Nov 2016 12:41:04 +0000 Subject: [PATCH 505/632] queue test cleanup Fixes #6297 --- .../org/logstash/ackedqueue/QueueTest.java | 28 ++----------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java index 97ccb979bdb..47261bb9b0f 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java @@ -399,7 +399,7 @@ public void reachMaxSizeTest() throws IOException, InterruptedException, Executi TestQueue q = new TestQueue(settings); q.open(); - int ELEMENT_COUNT = 99; // should be able to write 100 events before getting full + int ELEMENT_COUNT = 99; // should be able to write 99 events before getting full for (int i = 0; i < ELEMENT_COUNT; i++) { long seqNum = q.write(element); } @@ -416,32 +416,8 @@ public void reachMaxSizeTest() throws IOException, InterruptedException, Executi Thread.sleep(1); assertThat(q.isFull(), is(true)); - // spin wait until data is written and write blocks - //while (!q.isFull()) { Thread.sleep(1); } - /* - - // read one element, which will unblock the last write - Batch b = q.nonBlockReadBatch(1); - assertThat(b, is(notNullValue())); - assertThat(b.getElements().size(), is(equalTo(1))); - b.close(); - - // future result is the blocked write seqNum for the second element - assertThat(future.get(), is(equalTo(2L + i))); - assertThat(q.isFull(), is(false)); - - executor.shutdown(); - } - - // all batches are acked, no tail pages should exist - assertThat(q.getTailPages().size(), is(equalTo(0))); - - // the last read unblocked the last write so some elements (1 unread and maybe some acked) should be in the head page - assertThat(q.getHeadPage().getElementCount() > 0L, is(true)); - assertThat(q.getHeadPage().unreadCount(), is(equalTo(1L))); - assertThat(q.unreadCount, is(equalTo(1L))); - */ + executor.shutdown(); } } \ No newline at end of file From 53fed061fac65d4898bacd971edc9417b5398a91 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 24 Nov 2016 15:14:51 +0000 Subject: [PATCH 506/632] add failing test for recovery from a full queue Fixes #6297 --- .../org/logstash/ackedqueue/QueueTest.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java index 47261bb9b0f..27fb4216829 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java @@ -420,4 +420,43 @@ public void reachMaxSizeTest() throws IOException, InterruptedException, Executi executor.shutdown(); } + @Test(timeout = 5000) + public void resumeWriteOnNoLongerFullQueueTest() throws IOException, InterruptedException, ExecutionException { + + Queueable element = new StringElement("0123456789"); // 10 bytes + + Settings settings = TestSettings.getSettings(256, 1000); // allow 10 elements per page but only 1024 bytes in total + + TestQueue q = new TestQueue(settings); + q.open(); + + int ELEMENT_COUNT = 99; // should be able to write 99 events before getting full + for (int i = 0; i < ELEMENT_COUNT; i++) { + long seqNum = q.write(element); + } + + assertThat(q.isFull(), is(false)); + + // we expect this next write call to block so let's wrap it in a Future + Callable write = () -> { + return q.write(element); + }; + + ExecutorService executor = Executors.newFixedThreadPool(1); + Future future = executor.submit(write); + + Thread.sleep(1); + + assertThat(q.isFull(), is(true)); + + Batch b = q.readBatch(99); + + // spin wait until data is written and write blocks + while (!q.isFull()) { Thread.sleep(1); } + + assertThat(q.isFull(), is(false)); + + executor.shutdown(); + } + } \ No newline at end of file From d7c8a19bd677e9386d0ca8b693cd193b06733c98 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Thu, 24 Nov 2016 19:20:34 +0000 Subject: [PATCH 507/632] ensure maxQueueSizeInBytes and maxSizeInBytes is a long Fixes #6297 --- .../main/java/org/logstash/ackedqueue/FileSettings.java | 6 +++--- .../java/org/logstash/ackedqueue/MemorySettings.java | 6 +++--- .../src/main/java/org/logstash/ackedqueue/Queue.java | 9 +++++---- .../src/main/java/org/logstash/ackedqueue/Settings.java | 4 ++-- .../test/java/org/logstash/ackedqueue/TestSettings.java | 2 +- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java index 00deeee1b6f..0336dc97193 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java @@ -9,7 +9,7 @@ public class FileSettings implements Settings { private PageIOFactory pageIOFactory; private Class elementClass; private int capacity; - private int queueMaxSizeInBytes; + private long queueMaxSizeInBytes; private int maxUnread; private int checkpointMaxAcks; private int checkpointMaxWrites; @@ -44,7 +44,7 @@ public Settings setElementClass(Class elementClass) { } @Override - public Settings setQueueMaxSizeInBytes(int size) { + public Settings setQueueMaxSizeInBytes(long size) { this.queueMaxSizeInBytes = size; return this; } @@ -114,7 +114,7 @@ public String getDirPath() { } @Override - public int getQueueMaxSizeInBytes() { return queueMaxSizeInBytes; } + public long getQueueMaxSizeInBytes() { return queueMaxSizeInBytes; } @Override public int getCapacity() { diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java index 8f18f080389..9951c9eee8e 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java @@ -8,7 +8,7 @@ public class MemorySettings implements Settings { private PageIOFactory pageIOFactory; private Class elementClass; private int capacity; - private int queueMaxSizeInBytes; + private long queueMaxSizeInBytes; private final String dirPath; private int maxUnread; private int checkpointMaxAcks; @@ -52,7 +52,7 @@ public Settings setCapacity(int capacity) { } @Override - public Settings setQueueMaxSizeInBytes(int size) { + public Settings setQueueMaxSizeInBytes(long size) { this.queueMaxSizeInBytes = size; return this; } @@ -115,7 +115,7 @@ public String getDirPath() { return this.dirPath; } - public int getQueueMaxSizeInBytes() { return this.queueMaxSizeInBytes; } + public long getQueueMaxSizeInBytes() { return this.queueMaxSizeInBytes; } @Override public int getCapacity() { diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java index 3e5df137ca4..ce39c0ddea8 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java @@ -46,7 +46,7 @@ public class Queue implements Closeable { private final CheckpointIO checkpointIO; private final PageIOFactory pageIOFactory; private final int pageCapacity; - private final int maxSize; + private final long maxSizeInBytes; private final String dirPath; private final int maxUnread; private final int checkpointMaxAcks; @@ -79,10 +79,10 @@ public Queue(Settings settings) { ); } - public Queue(String dirPath, int pageCapacity, int maxSize, CheckpointIO checkpointIO, PageIOFactory pageIOFactory, Class elementClass, int maxUnread, int checkpointMaxWrites, int checkpointMaxAcks, int checkpointMaxInterval) { + public Queue(String dirPath, int pageCapacity, long maxSizeInBytes, CheckpointIO checkpointIO, PageIOFactory pageIOFactory, Class elementClass, int maxUnread, int checkpointMaxWrites, int checkpointMaxAcks, int checkpointMaxInterval) { this.dirPath = dirPath; this.pageCapacity = pageCapacity; - this.maxSize = maxSize; + this.maxSizeInBytes = maxSizeInBytes; this.checkpointIO = checkpointIO; this.pageIOFactory = pageIOFactory; this.elementClass = elementClass; @@ -300,7 +300,7 @@ public long write(Queueable element) throws IOException { public boolean isFull() { // TODO: I am not sure if having unreadCount as volatile is sufficient here. all unreadCount updates are done inside syncronized // TODO: sections, I believe that to only read the value here, having it as volatile is sufficient? - return (((this.maxUnread > 0) ? this.unreadCount >= this.maxUnread : false) || (this.currentSize >= this.maxSize)); + return (((this.maxUnread > 0) ? this.unreadCount >= this.maxUnread : false) || (this.currentSize >= this.maxSizeInBytes)); } // @param seqNum the element sequence number upper bound for which persistence should be garanteed (by fsync'ing) @@ -491,6 +491,7 @@ public void ack(List seqNums) throws IOException { // remove page data file regardless if it is the first or a middle tail page to free resources result.page.purge(); + this.currentSize -= result.page.getPageIO().getCapacity(); if (result.index == 0) { // if this is the first page also remove checkpoint file diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java index 078176af151..90a892a9e0f 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java @@ -12,7 +12,7 @@ public interface Settings { Settings setCapacity(int capacity); - Settings setQueueMaxSizeInBytes(int size); + Settings setQueueMaxSizeInBytes(long size); Settings setMaxUnread(int maxUnread); @@ -32,7 +32,7 @@ public interface Settings { int getCapacity(); - int getQueueMaxSizeInBytes(); + long getQueueMaxSizeInBytes(); int getMaxUnread(); diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java b/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java index f4eb9844a89..7de19a7c3e1 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java @@ -20,7 +20,7 @@ public static Settings getSettings(int capacity) { return s; } - public static Settings getSettings(int capacity, int size) { + public static Settings getSettings(int capacity, long size) { MemoryCheckpointIO.clearSources(); Settings s = new MemorySettings(); PageIOFactory pageIOFactory = (pageNum, pageSize, path) -> new ByteBufferPageIO(pageNum, pageSize, path); From 094a1b2b6af532dfc56a9a7a9289d9d40c4842ba Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 25 Nov 2016 14:55:13 +0000 Subject: [PATCH 508/632] remove per write track of queue size Fixes #6297 --- .../java/org/logstash/ackedqueue/Queue.java | 10 ++- .../org/logstash/ackedqueue/QueueTest.java | 66 ++++++++++++++++--- 2 files changed, 64 insertions(+), 12 deletions(-) diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java index ce39c0ddea8..94e04c82b97 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java @@ -153,6 +153,7 @@ public void open() throws IOException { PageIO headPageIO = this.pageIOFactory.build(headCheckpoint.getPageNum(), this.pageCapacity, this.dirPath); this.headPage = new HeadPage(headCheckpoint, this, headPageIO); + this.currentSize += headPageIO.getCapacity(); // but checkpoint it to update the firstUnackedPageNum if it changed this.headPage.checkpoint(); @@ -224,7 +225,7 @@ private void newCheckpointedHeadpage(int pageNum) throws IOException { PageIO headPageIO = this.pageIOFactory.build(pageNum, this.pageCapacity, this.dirPath); this.headPage = new HeadPage(pageNum, this, headPageIO); this.headPage.forceCheckpoint(); - + this.currentSize += headPageIO.getCapacity(); } // @param element the Queueable object to write to the queue @@ -264,7 +265,6 @@ public long write(Queueable element) throws IOException { this.headPage.write(data, seqNum, this.checkpointMaxWrites); this.unreadCount++; - this.currentSize += data.length; // if the queue was empty before write, signal non emptiness if (wasEmpty) { notEmpty.signal(); } @@ -300,7 +300,11 @@ public long write(Queueable element) throws IOException { public boolean isFull() { // TODO: I am not sure if having unreadCount as volatile is sufficient here. all unreadCount updates are done inside syncronized // TODO: sections, I believe that to only read the value here, having it as volatile is sufficient? - return (((this.maxUnread > 0) ? this.unreadCount >= this.maxUnread : false) || (this.currentSize >= this.maxSizeInBytes)); + if ((this.maxSizeInBytes > 0) && this.currentSize >= this.maxSizeInBytes) { + return true; + } else { + return ((this.maxUnread > 0) && this.unreadCount >= this.maxUnread); + } } // @param seqNum the element sequence number upper bound for which persistence should be garanteed (by fsync'ing) diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java index 27fb4216829..4fb0d9b8529 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java @@ -390,16 +390,19 @@ public void reachMaxUnreadWithAcking() throws IOException, InterruptedException, assertThat(q.unreadCount, is(equalTo(1L))); } - @Test + @Test(timeout = 5000) public void reachMaxSizeTest() throws IOException, InterruptedException, ExecutionException { Queueable element = new StringElement("0123456789"); // 10 bytes - Settings settings = TestSettings.getSettings(256, 1000); // allow 10 elements per page but only 1024 bytes in total + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); + + // allow 10 elements per page but only 100 events in total + Settings settings = TestSettings.getSettings(singleElementCapacity * 10, singleElementCapacity * 100); TestQueue q = new TestQueue(settings); q.open(); - int ELEMENT_COUNT = 99; // should be able to write 99 events before getting full + int ELEMENT_COUNT = 90; // should be able to write 99 events before getting full for (int i = 0; i < ELEMENT_COUNT; i++) { long seqNum = q.write(element); } @@ -414,7 +417,8 @@ public void reachMaxSizeTest() throws IOException, InterruptedException, Executi ExecutorService executor = Executors.newFixedThreadPool(1); Future future = executor.submit(write); - Thread.sleep(1); + while (!q.isFull()) { Thread.sleep(1); } + assertThat(q.isFull(), is(true)); executor.shutdown(); @@ -425,12 +429,15 @@ public void resumeWriteOnNoLongerFullQueueTest() throws IOException, Interrupted Queueable element = new StringElement("0123456789"); // 10 bytes - Settings settings = TestSettings.getSettings(256, 1000); // allow 10 elements per page but only 1024 bytes in total + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); + + // allow 10 elements per page but only 100 events in total + Settings settings = TestSettings.getSettings(singleElementCapacity * 10, singleElementCapacity * 100); TestQueue q = new TestQueue(settings); q.open(); - int ELEMENT_COUNT = 99; // should be able to write 99 events before getting full + int ELEMENT_COUNT = 90; // should be able to write 90 events (9 pages) before getting full for (int i = 0; i < ELEMENT_COUNT; i++) { long seqNum = q.write(element); } @@ -445,18 +452,59 @@ public void resumeWriteOnNoLongerFullQueueTest() throws IOException, Interrupted ExecutorService executor = Executors.newFixedThreadPool(1); Future future = executor.submit(write); - Thread.sleep(1); + while (!q.isFull()) { Thread.sleep(1); } assertThat(q.isFull(), is(true)); - Batch b = q.readBatch(99); + Batch b = q.readBatch(9); // read 1 page (10 events) + b.close(); // purge 1 page // spin wait until data is written and write blocks - while (!q.isFull()) { Thread.sleep(1); } + while (q.isFull()) { Thread.sleep(1); } assertThat(q.isFull(), is(false)); executor.shutdown(); } + @Test(timeout = 5000) + public void queueStillFullAfterPartialPageAckTest() throws IOException, InterruptedException, ExecutionException { + + Queueable element = new StringElement("0123456789"); // 10 bytes + + int singleElementCapacity = ByteBufferPageIO.HEADER_SIZE + ByteBufferPageIO._persistedByteCount(element.serialize().length); + + // allow 10 elements per page but only 100 events in total + Settings settings = TestSettings.getSettings(singleElementCapacity * 10, singleElementCapacity * 100); + + TestQueue q = new TestQueue(settings); + q.open(); + + int ELEMENT_COUNT = 90; // should be able to write 99 events before getting full + for (int i = 0; i < ELEMENT_COUNT; i++) { + long seqNum = q.write(element); + } + + assertThat(q.isFull(), is(false)); + + // we expect this next write call to block so let's wrap it in a Future + Callable write = () -> { + return q.write(element); + }; + + ExecutorService executor = Executors.newFixedThreadPool(1); + Future future = executor.submit(write); + + while (!q.isFull()) { Thread.sleep(1); } + + assertThat(q.isFull(), is(true)); + + Batch b = q.readBatch(9); // read 90% of page (9 events) + b.close(); // this should not purge a page + + assertThat(q.isFull(), is(true)); // queue should still be full + + executor.shutdown(); + } + } \ No newline at end of file From c2b89d49d4a478077f70cc5b092c5085ef71a70c Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 25 Nov 2016 14:57:53 +0000 Subject: [PATCH 509/632] fix broken resumeWriteOnNoLongerFullQueueTest Fixes #6297 --- .../src/test/java/org/logstash/ackedqueue/QueueTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java index 4fb0d9b8529..bb54db09461 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java @@ -456,7 +456,7 @@ public void resumeWriteOnNoLongerFullQueueTest() throws IOException, Interrupted assertThat(q.isFull(), is(true)); - Batch b = q.readBatch(9); // read 1 page (10 events) + Batch b = q.readBatch(10); // read 1 page (10 events) b.close(); // purge 1 page // spin wait until data is written and write blocks From 4a5aa90466693143587a85e8dc46cb4f38f72d81 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Fri, 25 Nov 2016 18:32:35 +0000 Subject: [PATCH 510/632] add ruby wiring to the queue.max_size setting Fixes #6297 --- .../ackedqueue/ext/JrubyAckedQueueExtLibrary.java | 6 ++++-- .../ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java | 6 ++++-- logstash-core/lib/logstash/environment.rb | 1 + logstash-core/lib/logstash/pipeline.rb | 7 ++++--- logstash-core/lib/logstash/util/wrapped_acked_queue.rb | 8 ++++---- logstash-core/spec/logstash/pipeline_pq_file_spec.rb | 3 +++ logstash-core/spec/logstash/pipeline_spec.rb | 1 + 7 files changed, 21 insertions(+), 11 deletions(-) diff --git a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java index 30e12b94af9..300e46ff907 100644 --- a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java +++ b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java @@ -57,22 +57,24 @@ public Queue getQueue() { } // def initialize - @JRubyMethod(name = "initialize", optional = 6) + @JRubyMethod(name = "initialize", optional = 7) public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) { - args = Arity.scanArgs(context.runtime, args, 6, 0); + args = Arity.scanArgs(context.runtime, args, 7, 0); int capacity = RubyFixnum.num2int(args[1]); int maxUnread = RubyFixnum.num2int(args[2]); int checkpointMaxAcks = RubyFixnum.num2int(args[3]); int checkpointMaxWrites = RubyFixnum.num2int(args[4]); int checkpointMaxInterval = RubyFixnum.num2int(args[5]); + long queueMaxSizeInBytes = RubyFixnum.num2long(args[6]); Settings s = new FileSettings(args[0].asJavaString()); PageIOFactory pageIOFactory = (pageNum, size, path) -> new MmapPageIO(pageNum, size, path); CheckpointIOFactory checkpointIOFactory = (source) -> new FileCheckpointIO(source); s.setCapacity(capacity); s.setMaxUnread(maxUnread); + s.setQueueMaxSizeInBytes(queueMaxSizeInBytes); s.setCheckpointMaxAcks(checkpointMaxAcks); s.setCheckpointMaxWrites(checkpointMaxWrites); s.setCheckpointMaxInterval(checkpointMaxInterval); diff --git a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java index 3ba29210867..50c185813ac 100644 --- a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java +++ b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java @@ -57,19 +57,21 @@ public Queue getQueue() { } // def initialize - @JRubyMethod(name = "initialize", optional = 3) + @JRubyMethod(name = "initialize", optional = 4) public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) { - args = Arity.scanArgs(context.runtime, args, 3, 0); + args = Arity.scanArgs(context.runtime, args, 4, 0); int capacity = RubyFixnum.num2int(args[1]); int maxUnread = RubyFixnum.num2int(args[2]); + long queueMaxSizeInBytes = RubyFixnum.num2long(args[3]); Settings s = new MemorySettings(args[0].asJavaString()); PageIOFactory pageIOFactory = (pageNum, size, path) -> new ByteBufferPageIO(pageNum, size, path); CheckpointIOFactory checkpointIOFactory = (source) -> new MemoryCheckpointIO(source); s.setCapacity(capacity); s.setMaxUnread(maxUnread); + s.setQueueMaxSizeInBytes(queueMaxSizeInBytes); s.setElementIOFactory(pageIOFactory); s.setCheckpointIOFactory(checkpointIOFactory); s.setElementClass(Event.class); diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index a8badea05df..6a590cefe94 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -42,6 +42,7 @@ module Environment Setting::String.new("http.environment", "production"), Setting::String.new("queue.type", "memory", true, ["persisted", "memory", "memory_acked"]), Setting::Bytes.new("queue.page_capacity", "250mb"), + Setting::Bytes.new("queue.max_size", "1024mb"), Setting::Numeric.new("queue.max_events", 0), # 0 is unlimited Setting::Numeric.new("queue.checkpoint.acks", 1024), # 0 is unlimited Setting::Numeric.new("queue.checkpoint.writes", 1024), # 0 is unlimited diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 039868d179e..a6dbd841dec 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -118,21 +118,22 @@ def initialize(config_str, settings = SETTINGS, namespaced_metric = nil) def build_queue_from_settings queue_type = settings.get("queue.type") queue_page_capacity = settings.get("queue.page_capacity") - max_events = settings.get("queue.max_events") + queue_max_size = settings.get("queue.max_size") + queue_max_events = settings.get("queue.max_events") checkpoint_max_acks = settings.get("queue.checkpoint.acks") checkpoint_max_writes = settings.get("queue.checkpoint.writes") checkpoint_max_interval = settings.get("queue.checkpoint.interval") if queue_type == "memory_acked" # memory_acked is used in tests/specs - LogStash::Util::WrappedAckedQueue.create_memory_based("", queue_page_capacity, max_events) + LogStash::Util::WrappedAckedQueue.create_memory_based("", queue_page_capacity, queue_max_events, queue_max_size) elsif queue_type == "memory" # memory is the legacy and default setting LogStash::Util::WrappedSynchronousQueue.new() elsif queue_type == "persisted" # persisted is the disk based acked queue queue_path = settings.get("path.queue") - LogStash::Util::WrappedAckedQueue.create_file_based(queue_path, queue_page_capacity, max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval) + LogStash::Util::WrappedAckedQueue.create_file_based(queue_path, queue_page_capacity, queue_max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, queue_max_size) else raise(ConfigurationError, "invalid queue.type setting") end diff --git a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb index da9b3a6d753..a2efd6bdf22 100644 --- a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb @@ -19,15 +19,15 @@ class WrappedAckedQueue class QueueClosedError < ::StandardError; end class NotImplementedError < ::StandardError; end - def self.create_memory_based(path, capacity, size) + def self.create_memory_based(path, capacity, max_events, max_size) self.allocate.with_queue( - LogStash::AckedMemoryQueue.new(path, capacity, size) + LogStash::AckedMemoryQueue.new(path, capacity, max_events, max_size) ) end - def self.create_file_based(path, capacity, size, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval) + def self.create_file_based(path, capacity, max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, max_size) self.allocate.with_queue( - LogStash::AckedQueue.new(path, capacity, size, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval) + LogStash::AckedQueue.new(path, capacity, max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, max_size) ) end diff --git a/logstash-core/spec/logstash/pipeline_pq_file_spec.rb b/logstash-core/spec/logstash/pipeline_pq_file_spec.rb index 9349868eac6..c285a061aab 100644 --- a/logstash-core/spec/logstash/pipeline_pq_file_spec.rb +++ b/logstash-core/spec/logstash/pipeline_pq_file_spec.rb @@ -78,6 +78,7 @@ def close let(:worker_thread_count) { 8 } # 1 4 8 let(:number_of_events) { 100_000 } let(:page_capacity) { 1 * 1024 * 512 } # 1 128 + let(:max_size) { 1024 * 1024 * 1024 } # 1 gb let(:queue_type) { "persisted" } # "memory" "memory_acked" let(:times) { [] } @@ -95,6 +96,7 @@ def close allow(pipeline_workers_setting).to receive(:default).and_return(worker_thread_count) pipeline_settings.each {|k, v| pipeline_settings_obj.set(k, v) } pipeline_settings_obj.set("queue.page_capacity", page_capacity) + pipeline_settings_obj.set("queue.max_size", max_size) Thread.new do # make sure we have received all the generated events while counting_output.event_count < number_of_events do @@ -121,6 +123,7 @@ def close expect(_metric[:out].value).to eq(number_of_events) STDOUT.puts " queue.type: #{pipeline_settings_obj.get("queue.type")}" STDOUT.puts " queue.page_capacity: #{pipeline_settings_obj.get("queue.page_capacity") / 1024}KB" + STDOUT.puts " queue.max_size: #{pipeline_settings_obj.get("queue.max_size") / 1024}KB" STDOUT.puts " workers: #{worker_thread_count}" STDOUT.puts " events: #{number_of_events}" STDOUT.puts " took: #{times.first}s" diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 49cbb651e9c..8209ff92d55 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -450,6 +450,7 @@ class TestPipeline < LogStash::Pipeline allow(settings).to receive(:get).with("queue.type").and_return("memory") allow(settings).to receive(:get).with("queue.page_capacity").and_return(1024 * 1024) allow(settings).to receive(:get).with("queue.max_events").and_return(250) + allow(settings).to receive(:get).with("queue.max_size").and_return(1024 * 1024 * 1024) allow(settings).to receive(:get).with("queue.checkpoint.acks").and_return(1024) allow(settings).to receive(:get).with("queue.checkpoint.writes").and_return(1024) allow(settings).to receive(:get).with("queue.checkpoint.interval").and_return(1000) From bc3bcfde24a4c7421aa60487426782feba099752 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 28 Nov 2016 09:34:00 +0000 Subject: [PATCH 511/632] rename queueMaxSizeInBytes to queueMaxBytes and currentSize to currentByteSize Fixes #6297 --- .../ext/JrubyAckedQueueExtLibrary.java | 4 ++-- .../ext/JrubyAckedQueueMemoryExtLibrary.java | 4 ++-- logstash-core/lib/logstash/environment.rb | 2 +- logstash-core/lib/logstash/pipeline.rb | 6 ++--- .../lib/logstash/util/wrapped_acked_queue.rb | 8 +++---- .../spec/logstash/pipeline_pq_file_spec.rb | 6 ++--- logstash-core/spec/logstash/pipeline_spec.rb | 2 +- .../org/logstash/ackedqueue/FileSettings.java | 8 +++---- .../logstash/ackedqueue/MemorySettings.java | 8 +++---- .../java/org/logstash/ackedqueue/Queue.java | 22 +++++++++---------- .../org/logstash/ackedqueue/Settings.java | 4 ++-- .../org/logstash/ackedqueue/TestSettings.java | 2 +- 12 files changed, 38 insertions(+), 38 deletions(-) diff --git a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java index 300e46ff907..cf63c360c9d 100644 --- a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java +++ b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java @@ -67,14 +67,14 @@ public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) int checkpointMaxAcks = RubyFixnum.num2int(args[3]); int checkpointMaxWrites = RubyFixnum.num2int(args[4]); int checkpointMaxInterval = RubyFixnum.num2int(args[5]); - long queueMaxSizeInBytes = RubyFixnum.num2long(args[6]); + long queueMaxBytes = RubyFixnum.num2long(args[6]); Settings s = new FileSettings(args[0].asJavaString()); PageIOFactory pageIOFactory = (pageNum, size, path) -> new MmapPageIO(pageNum, size, path); CheckpointIOFactory checkpointIOFactory = (source) -> new FileCheckpointIO(source); s.setCapacity(capacity); s.setMaxUnread(maxUnread); - s.setQueueMaxSizeInBytes(queueMaxSizeInBytes); + s.setQueueMaxBytes(queueMaxBytes); s.setCheckpointMaxAcks(checkpointMaxAcks); s.setCheckpointMaxWrites(checkpointMaxWrites); s.setCheckpointMaxInterval(checkpointMaxInterval); diff --git a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java index 50c185813ac..90fe314823d 100644 --- a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java +++ b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java @@ -64,14 +64,14 @@ public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) int capacity = RubyFixnum.num2int(args[1]); int maxUnread = RubyFixnum.num2int(args[2]); - long queueMaxSizeInBytes = RubyFixnum.num2long(args[3]); + long queueMaxBytes = RubyFixnum.num2long(args[3]); Settings s = new MemorySettings(args[0].asJavaString()); PageIOFactory pageIOFactory = (pageNum, size, path) -> new ByteBufferPageIO(pageNum, size, path); CheckpointIOFactory checkpointIOFactory = (source) -> new MemoryCheckpointIO(source); s.setCapacity(capacity); s.setMaxUnread(maxUnread); - s.setQueueMaxSizeInBytes(queueMaxSizeInBytes); + s.setQueueMaxBytes(queueMaxBytes); s.setElementIOFactory(pageIOFactory); s.setCheckpointIOFactory(checkpointIOFactory); s.setElementClass(Event.class); diff --git a/logstash-core/lib/logstash/environment.rb b/logstash-core/lib/logstash/environment.rb index 6a590cefe94..2931f3bf065 100644 --- a/logstash-core/lib/logstash/environment.rb +++ b/logstash-core/lib/logstash/environment.rb @@ -42,7 +42,7 @@ module Environment Setting::String.new("http.environment", "production"), Setting::String.new("queue.type", "memory", true, ["persisted", "memory", "memory_acked"]), Setting::Bytes.new("queue.page_capacity", "250mb"), - Setting::Bytes.new("queue.max_size", "1024mb"), + Setting::Bytes.new("queue.max_bytes", "1024mb"), Setting::Numeric.new("queue.max_events", 0), # 0 is unlimited Setting::Numeric.new("queue.checkpoint.acks", 1024), # 0 is unlimited Setting::Numeric.new("queue.checkpoint.writes", 1024), # 0 is unlimited diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index a6dbd841dec..6b244c80312 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -118,7 +118,7 @@ def initialize(config_str, settings = SETTINGS, namespaced_metric = nil) def build_queue_from_settings queue_type = settings.get("queue.type") queue_page_capacity = settings.get("queue.page_capacity") - queue_max_size = settings.get("queue.max_size") + queue_max_bytes = settings.get("queue.max_bytes") queue_max_events = settings.get("queue.max_events") checkpoint_max_acks = settings.get("queue.checkpoint.acks") checkpoint_max_writes = settings.get("queue.checkpoint.writes") @@ -126,14 +126,14 @@ def build_queue_from_settings if queue_type == "memory_acked" # memory_acked is used in tests/specs - LogStash::Util::WrappedAckedQueue.create_memory_based("", queue_page_capacity, queue_max_events, queue_max_size) + LogStash::Util::WrappedAckedQueue.create_memory_based("", queue_page_capacity, queue_max_events, queue_max_bytes) elsif queue_type == "memory" # memory is the legacy and default setting LogStash::Util::WrappedSynchronousQueue.new() elsif queue_type == "persisted" # persisted is the disk based acked queue queue_path = settings.get("path.queue") - LogStash::Util::WrappedAckedQueue.create_file_based(queue_path, queue_page_capacity, queue_max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, queue_max_size) + LogStash::Util::WrappedAckedQueue.create_file_based(queue_path, queue_page_capacity, queue_max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, queue_max_bytes) else raise(ConfigurationError, "invalid queue.type setting") end diff --git a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb index a2efd6bdf22..ffac9eaab4c 100644 --- a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb @@ -19,15 +19,15 @@ class WrappedAckedQueue class QueueClosedError < ::StandardError; end class NotImplementedError < ::StandardError; end - def self.create_memory_based(path, capacity, max_events, max_size) + def self.create_memory_based(path, capacity, max_events, max_bytes) self.allocate.with_queue( - LogStash::AckedMemoryQueue.new(path, capacity, max_events, max_size) + LogStash::AckedMemoryQueue.new(path, capacity, max_events, max_bytes) ) end - def self.create_file_based(path, capacity, max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, max_size) + def self.create_file_based(path, capacity, max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, max_bytes) self.allocate.with_queue( - LogStash::AckedQueue.new(path, capacity, max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, max_size) + LogStash::AckedQueue.new(path, capacity, max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, max_bytes) ) end diff --git a/logstash-core/spec/logstash/pipeline_pq_file_spec.rb b/logstash-core/spec/logstash/pipeline_pq_file_spec.rb index c285a061aab..b715f457f0d 100644 --- a/logstash-core/spec/logstash/pipeline_pq_file_spec.rb +++ b/logstash-core/spec/logstash/pipeline_pq_file_spec.rb @@ -78,7 +78,7 @@ def close let(:worker_thread_count) { 8 } # 1 4 8 let(:number_of_events) { 100_000 } let(:page_capacity) { 1 * 1024 * 512 } # 1 128 - let(:max_size) { 1024 * 1024 * 1024 } # 1 gb + let(:max_bytes) { 1024 * 1024 * 1024 } # 1 gb let(:queue_type) { "persisted" } # "memory" "memory_acked" let(:times) { [] } @@ -96,7 +96,7 @@ def close allow(pipeline_workers_setting).to receive(:default).and_return(worker_thread_count) pipeline_settings.each {|k, v| pipeline_settings_obj.set(k, v) } pipeline_settings_obj.set("queue.page_capacity", page_capacity) - pipeline_settings_obj.set("queue.max_size", max_size) + pipeline_settings_obj.set("queue.max_bytes", max_bytes) Thread.new do # make sure we have received all the generated events while counting_output.event_count < number_of_events do @@ -123,7 +123,7 @@ def close expect(_metric[:out].value).to eq(number_of_events) STDOUT.puts " queue.type: #{pipeline_settings_obj.get("queue.type")}" STDOUT.puts " queue.page_capacity: #{pipeline_settings_obj.get("queue.page_capacity") / 1024}KB" - STDOUT.puts " queue.max_size: #{pipeline_settings_obj.get("queue.max_size") / 1024}KB" + STDOUT.puts " queue.max_bytes: #{pipeline_settings_obj.get("queue.max_bytes") / 1024}KB" STDOUT.puts " workers: #{worker_thread_count}" STDOUT.puts " events: #{number_of_events}" STDOUT.puts " took: #{times.first}s" diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 8209ff92d55..919dffaa52d 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -450,7 +450,7 @@ class TestPipeline < LogStash::Pipeline allow(settings).to receive(:get).with("queue.type").and_return("memory") allow(settings).to receive(:get).with("queue.page_capacity").and_return(1024 * 1024) allow(settings).to receive(:get).with("queue.max_events").and_return(250) - allow(settings).to receive(:get).with("queue.max_size").and_return(1024 * 1024 * 1024) + allow(settings).to receive(:get).with("queue.max_bytes").and_return(1024 * 1024 * 1024) allow(settings).to receive(:get).with("queue.checkpoint.acks").and_return(1024) allow(settings).to receive(:get).with("queue.checkpoint.writes").and_return(1024) allow(settings).to receive(:get).with("queue.checkpoint.interval").and_return(1000) diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java index 0336dc97193..3c3ec6672c9 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java @@ -9,7 +9,7 @@ public class FileSettings implements Settings { private PageIOFactory pageIOFactory; private Class elementClass; private int capacity; - private long queueMaxSizeInBytes; + private long queueMaxBytes; private int maxUnread; private int checkpointMaxAcks; private int checkpointMaxWrites; @@ -44,8 +44,8 @@ public Settings setElementClass(Class elementClass) { } @Override - public Settings setQueueMaxSizeInBytes(long size) { - this.queueMaxSizeInBytes = size; + public Settings setQueueMaxBytes(long size) { + this.queueMaxBytes = size; return this; } @@ -114,7 +114,7 @@ public String getDirPath() { } @Override - public long getQueueMaxSizeInBytes() { return queueMaxSizeInBytes; } + public long getQueueMaxBytes() { return queueMaxBytes; } @Override public int getCapacity() { diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java index 9951c9eee8e..b07ebaca22b 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java @@ -8,7 +8,7 @@ public class MemorySettings implements Settings { private PageIOFactory pageIOFactory; private Class elementClass; private int capacity; - private long queueMaxSizeInBytes; + private long queueMaxBytes; private final String dirPath; private int maxUnread; private int checkpointMaxAcks; @@ -52,8 +52,8 @@ public Settings setCapacity(int capacity) { } @Override - public Settings setQueueMaxSizeInBytes(long size) { - this.queueMaxSizeInBytes = size; + public Settings setQueueMaxBytes(long size) { + this.queueMaxBytes = size; return this; } @@ -115,7 +115,7 @@ public String getDirPath() { return this.dirPath; } - public long getQueueMaxSizeInBytes() { return this.queueMaxSizeInBytes; } + public long getQueueMaxBytes() { return this.queueMaxBytes; } @Override public int getCapacity() { diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java index 94e04c82b97..6f9b48bcb7c 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java @@ -41,12 +41,12 @@ public class Queue implements Closeable { protected volatile long unreadCount; - protected volatile long currentSize; + protected volatile long currentByteSize; private final CheckpointIO checkpointIO; private final PageIOFactory pageIOFactory; private final int pageCapacity; - private final long maxSizeInBytes; + private final long maxBytes; private final String dirPath; private final int maxUnread; private final int checkpointMaxAcks; @@ -68,7 +68,7 @@ public Queue(Settings settings) { this( settings.getDirPath(), settings.getCapacity(), - settings.getQueueMaxSizeInBytes(), + settings.getQueueMaxBytes(), settings.getCheckpointIOFactory().build(settings.getDirPath()), settings.getPageIOFactory(), settings.getElementClass(), @@ -79,10 +79,10 @@ public Queue(Settings settings) { ); } - public Queue(String dirPath, int pageCapacity, long maxSizeInBytes, CheckpointIO checkpointIO, PageIOFactory pageIOFactory, Class elementClass, int maxUnread, int checkpointMaxWrites, int checkpointMaxAcks, int checkpointMaxInterval) { + public Queue(String dirPath, int pageCapacity, long maxBytes, CheckpointIO checkpointIO, PageIOFactory pageIOFactory, Class elementClass, int maxUnread, int checkpointMaxWrites, int checkpointMaxAcks, int checkpointMaxInterval) { this.dirPath = dirPath; this.pageCapacity = pageCapacity; - this.maxSizeInBytes = maxSizeInBytes; + this.maxBytes = maxBytes; this.checkpointIO = checkpointIO; this.pageIOFactory = pageIOFactory; this.elementClass = elementClass; @@ -94,7 +94,7 @@ public Queue(String dirPath, int pageCapacity, long maxSizeInBytes, CheckpointIO this.checkpointMaxWrites = checkpointMaxWrites; this.checkpointMaxInterval = checkpointMaxInterval; this.unreadCount = 0; - this.currentSize = 0; + this.currentByteSize = 0; // retrieve the deserialize method try { @@ -153,7 +153,7 @@ public void open() throws IOException { PageIO headPageIO = this.pageIOFactory.build(headCheckpoint.getPageNum(), this.pageCapacity, this.dirPath); this.headPage = new HeadPage(headCheckpoint, this, headPageIO); - this.currentSize += headPageIO.getCapacity(); + this.currentByteSize += headPageIO.getCapacity(); // but checkpoint it to update the firstUnackedPageNum if it changed this.headPage.checkpoint(); @@ -206,7 +206,7 @@ private void add(Checkpoint checkpoint, PageIO pageIO) throws IOException { this.tailPages.add(p); this.unreadTailPages.add(p); this.unreadCount += p.unreadCount(); - this.currentSize += pageIO.getCapacity(); + this.currentByteSize += pageIO.getCapacity(); // for now deactivate all tail pages, we will only reactivate the first one at the end pageIO.deactivate(); @@ -225,7 +225,7 @@ private void newCheckpointedHeadpage(int pageNum) throws IOException { PageIO headPageIO = this.pageIOFactory.build(pageNum, this.pageCapacity, this.dirPath); this.headPage = new HeadPage(pageNum, this, headPageIO); this.headPage.forceCheckpoint(); - this.currentSize += headPageIO.getCapacity(); + this.currentByteSize += headPageIO.getCapacity(); } // @param element the Queueable object to write to the queue @@ -300,7 +300,7 @@ public long write(Queueable element) throws IOException { public boolean isFull() { // TODO: I am not sure if having unreadCount as volatile is sufficient here. all unreadCount updates are done inside syncronized // TODO: sections, I believe that to only read the value here, having it as volatile is sufficient? - if ((this.maxSizeInBytes > 0) && this.currentSize >= this.maxSizeInBytes) { + if ((this.maxBytes > 0) && this.currentByteSize >= this.maxBytes) { return true; } else { return ((this.maxUnread > 0) && this.unreadCount >= this.maxUnread); @@ -495,7 +495,7 @@ public void ack(List seqNums) throws IOException { // remove page data file regardless if it is the first or a middle tail page to free resources result.page.purge(); - this.currentSize -= result.page.getPageIO().getCapacity(); + this.currentByteSize -= result.page.getPageIO().getCapacity(); if (result.index == 0) { // if this is the first page also remove checkpoint file diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java index 90a892a9e0f..c64e33117f9 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java @@ -12,7 +12,7 @@ public interface Settings { Settings setCapacity(int capacity); - Settings setQueueMaxSizeInBytes(long size); + Settings setQueueMaxBytes(long size); Settings setMaxUnread(int maxUnread); @@ -32,7 +32,7 @@ public interface Settings { int getCapacity(); - long getQueueMaxSizeInBytes(); + long getQueueMaxBytes(); int getMaxUnread(); diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java b/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java index 7de19a7c3e1..cda45aa3e64 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java @@ -26,7 +26,7 @@ public static Settings getSettings(int capacity, long size) { PageIOFactory pageIOFactory = (pageNum, pageSize, path) -> new ByteBufferPageIO(pageNum, pageSize, path); CheckpointIOFactory checkpointIOFactory = (source) -> new MemoryCheckpointIO(source); s.setCapacity(capacity); - s.setQueueMaxSizeInBytes(size); + s.setQueueMaxBytes(size); s.setElementIOFactory(pageIOFactory); s.setCheckpointIOFactory(checkpointIOFactory); s.setElementClass(StringElement.class); From 209a3aaa21d6ff91fdfa63e6f47772d2e6956eff Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 28 Nov 2016 09:45:16 +0000 Subject: [PATCH 512/632] make some Queue tests less aggressive on Thread.sleep usage Fixes #6297 --- .../src/test/java/org/logstash/ackedqueue/QueueTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java index bb54db09461..13a777a7d63 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java @@ -417,7 +417,7 @@ public void reachMaxSizeTest() throws IOException, InterruptedException, Executi ExecutorService executor = Executors.newFixedThreadPool(1); Future future = executor.submit(write); - while (!q.isFull()) { Thread.sleep(1); } + while (!q.isFull()) { Thread.sleep(10); } assertThat(q.isFull(), is(true)); @@ -452,7 +452,7 @@ public void resumeWriteOnNoLongerFullQueueTest() throws IOException, Interrupted ExecutorService executor = Executors.newFixedThreadPool(1); Future future = executor.submit(write); - while (!q.isFull()) { Thread.sleep(1); } + while (!q.isFull()) { Thread.sleep(10); } assertThat(q.isFull(), is(true)); @@ -460,7 +460,7 @@ public void resumeWriteOnNoLongerFullQueueTest() throws IOException, Interrupted b.close(); // purge 1 page // spin wait until data is written and write blocks - while (q.isFull()) { Thread.sleep(1); } + while (q.isFull()) { Thread.sleep(10); } assertThat(q.isFull(), is(false)); @@ -495,7 +495,7 @@ public void queueStillFullAfterPartialPageAckTest() throws IOException, Interrup ExecutorService executor = Executors.newFixedThreadPool(1); Future future = executor.submit(write); - while (!q.isFull()) { Thread.sleep(1); } + while (!q.isFull()) { Thread.sleep(10); } assertThat(q.isFull(), is(true)); From 9a1a8f0f1230566914de06ae7eb929c60bfb2986 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Mon, 28 Nov 2016 10:13:21 +0000 Subject: [PATCH 513/632] minor style change in getQueueMaxBytes implementation Fixes #6297 --- .../src/main/java/org/logstash/ackedqueue/FileSettings.java | 4 +++- .../main/java/org/logstash/ackedqueue/MemorySettings.java | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java index 3c3ec6672c9..c627e3f6165 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/FileSettings.java @@ -114,7 +114,9 @@ public String getDirPath() { } @Override - public long getQueueMaxBytes() { return queueMaxBytes; } + public long getQueueMaxBytes() { + return queueMaxBytes; + } @Override public int getCapacity() { diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java index b07ebaca22b..3d9ea6672bd 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/MemorySettings.java @@ -115,7 +115,10 @@ public String getDirPath() { return this.dirPath; } - public long getQueueMaxBytes() { return this.queueMaxBytes; } + @Override + public long getQueueMaxBytes() { + return this.queueMaxBytes; + } @Override public int getCapacity() { From 8c9b874c98769c1649d6c497b348d274638b99c5 Mon Sep 17 00:00:00 2001 From: Shinjifox Date: Mon, 28 Nov 2016 11:08:31 +0100 Subject: [PATCH 514/632] Fixed typo for logstash cli help The original shell script throws a error when calling it with "bin/logstash help" # ./logstash help ERROR: Unknown command 'help' See: 'bin/logstash --help' Fixes #6303 --- bin/logstash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/logstash b/bin/logstash index 45d65afc384..3fa98ba66ce 100755 --- a/bin/logstash +++ b/bin/logstash @@ -6,7 +6,7 @@ # Usage: # bin/logstash [arguments] # -# See 'bin/logstash help' for a list of commands. +# See 'bin/logstash --help' for a list of commands. # # Supported environment variables: # LS_JVM_OPTS="xxx" path to file with JVM options From 425f4e9034aec56d014aa814dd27e12044a48fe5 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 22 Nov 2016 13:03:58 -0800 Subject: [PATCH 515/632] Clarify -f description and add info about supported glob patterns Fixes #6289 --- docs/static/command-line-flags.asciidoc | 21 +++++++++++++---- docs/static/glob-support.asciidoc | 30 +++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 docs/static/glob-support.asciidoc diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 2e304247d3a..0416bef5073 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -16,10 +16,23 @@ Any flags that you set at the command line override the corresponding settings i hostname. *`-f, --path.config CONFIG_PATH`*:: - Load the Logstash config from a specific file or directory. If a directory is given, all - files in that directory will be concatenated in lexicographical order and then parsed as a - single config file. You can also specify wildcards (globs) and any matched files will - be loaded in the order described above. +Load the Logstash config from a specific file or directory. If a directory is given, all +files in that directory will be concatenated in lexicographical order and then parsed as a +single config file. Specifying this flag multiple times is not supported. If you specify +this flag multiple times, Logstash uses the last occurrence (for example, `-f foo -f bar` +is the same as `-f bar`). ++ +You can specify wildcards (<>) and any matched files will +be loaded in the order described above. For example, you can use the wildcard feature to +load specific files by name: ++ +[source,shell] +--------------------------------------------- +bin/logstash --debug -f '/tmp/{one,two,three}' +--------------------------------------------- ++ +With this command, Logstash concatenates three config files, `/tmp/one`, `/tmp/two`, and +`/tmp/three`, and parses them into a single config. *`-e, --config.string CONFIG_STRING`*:: Use the given string as the configuration data. Same syntax as the config file. If no diff --git a/docs/static/glob-support.asciidoc b/docs/static/glob-support.asciidoc new file mode 100644 index 00000000000..6fd7f96272b --- /dev/null +++ b/docs/static/glob-support.asciidoc @@ -0,0 +1,30 @@ +[[glob-support]] +=== Glob Pattern Support + +Logstash supports the following patterns wherever glob patters are allowed: + +*`*`*:: +Match any file. You can also use an `*` to restrict other values in the glob. +For example, `*conf` matches all files that end in `conf`. `*apache*` matches +any files with `apache` in the name. This pattern does not match hidden files +(dot files) on Unix-like operating systems. To match dot files, use a pattern +like `{*,.*}`. + +*`**`*:: +Match directories recursively. + +*`?`*:: +Match any one character. + +*`[set]`*:: +Match any one character in a set. For example, `[a-z]`. Also supports set negation +(`[^a-z]`). + +*`{p,q}`*:: +Match either literal `p` or literal `q`. The matching literal can be more than one +character, and you can specify more than two literals. This pattern is the equivalent +to using alternation with the vertical bar in regular expressions (`foo|bar`). + +*`\`*:: +Escape the next metacharacter. This means that you cannot use a backslash in Windows +as part of a glob. The pattern `c:\foo*` will not work, so use `foo*` instead. From fb97c637385cde4ee135d07df5a4609e10072ac0 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 22 Nov 2016 18:02:14 -0800 Subject: [PATCH 516/632] Add examples Fixes #6289 --- docs/static/command-line-flags.asciidoc | 2 +- docs/static/glob-support.asciidoc | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 0416bef5073..c948d5deb4f 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -77,7 +77,7 @@ With this command, Logstash concatenates three config files, `/tmp/one`, `/tmp/t and `NAME` is the name of the plugin. *`-l, --path.logs PATH`*:: - Directory to Write Logstash internal logs to. + Directory to write Logstash internal logs to. *`--log.level LEVEL`*:: Set the log level for Logstash. Possible values are: diff --git a/docs/static/glob-support.asciidoc b/docs/static/glob-support.asciidoc index 6fd7f96272b..795abd8bb42 100644 --- a/docs/static/glob-support.asciidoc +++ b/docs/static/glob-support.asciidoc @@ -28,3 +28,23 @@ to using alternation with the vertical bar in regular expressions (`foo|bar`). *`\`*:: Escape the next metacharacter. This means that you cannot use a backslash in Windows as part of a glob. The pattern `c:\foo*` will not work, so use `foo*` instead. + +[float] +[[example-glob-patterns]] +==== Example Patterns + +Here are some common examples of glob patterns: + +*`"/path/to/*.conf"`*:: +Matches config files ending in `.conf` in the specified path. + +*`"/var/log/*.log"`*:: +Matches log files ending in `.log` in the specified path. + +*`"/var/log/**/*.log`*:: +Matches log files ending in `.log` in subdirectories under the specified path. + +*`"/path/to/logs/{app1,app2,app3}/data.log"`*:: +Matches app log files in the `app1`, `app2`, and `app3` subdirectories under the +specified path. + From 72fbc6a4eb14bc0ea05244a39ef24f373217039c Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 28 Nov 2016 15:27:44 -0800 Subject: [PATCH 517/632] Fix formatting of examples Fixes #6289 --- docs/static/glob-support.asciidoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/static/glob-support.asciidoc b/docs/static/glob-support.asciidoc index 795abd8bb42..050b99330a6 100644 --- a/docs/static/glob-support.asciidoc +++ b/docs/static/glob-support.asciidoc @@ -35,16 +35,16 @@ as part of a glob. The pattern `c:\foo*` will not work, so use `foo*` instead. Here are some common examples of glob patterns: -*`"/path/to/*.conf"`*:: +`"/path/to/*.conf"`:: Matches config files ending in `.conf` in the specified path. -*`"/var/log/*.log"`*:: +`"/var/log/*.log"`:: Matches log files ending in `.log` in the specified path. -*`"/var/log/**/*.log`*:: +`"/var/log/**/*.log`:: Matches log files ending in `.log` in subdirectories under the specified path. -*`"/path/to/logs/{app1,app2,app3}/data.log"`*:: +`"/path/to/logs/{app1,app2,app3}/data.log"`:: Matches app log files in the `app1`, `app2`, and `app3` subdirectories under the specified path. From 5a7233c73416677f14020f34771da7d38b88bd75 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Tue, 29 Nov 2016 10:54:00 -0800 Subject: [PATCH 518/632] Copy from logstash-docs@master Fixes #6324 --- docs/index.asciidoc | 149 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 docs/index.asciidoc diff --git a/docs/index.asciidoc b/docs/index.asciidoc new file mode 100644 index 00000000000..786af00b8de --- /dev/null +++ b/docs/index.asciidoc @@ -0,0 +1,149 @@ +[[logstash-reference]] += Logstash Reference + +:branch: master +:major-version: 6.x +:logstash_version: 6.0.0-alpha1 +:elasticsearch_version: 6.0.0-alpha1 +:docker-image: docker.elastic.co/logstash/logstash:{logstash_version} + +////////// +release-state can be: released | prerelease | unreleased +////////// +:release-state: unreleased + +:jdk: 1.8.0 +:guide: https://www.elastic.co/guide/en/elasticsearch/guide/current/ +:ref: https://www.elastic.co/guide/en/elasticsearch/reference/current/ +:xpack: https://www.elastic.co/guide/en/x-pack/current +:logstash: https://www.elastic.co/guide/en/logstash/current/ +:filebeat: https://www.elastic.co/guide/en/beats/filebeat/current/ +:lsissue: https://github.com/elastic/logstash/issues/ +:security: X-Pack Security +:stack: https://www.elastic.co/guide/en/elastic-stack/current/ + +[[introduction]] +== Logstash Introduction + +Logstash is an open source data collection engine with real-time pipelining capabilities. Logstash can dynamically +unify data from disparate sources and normalize the data into destinations of your choice. Cleanse and democratize all +your data for diverse advanced downstream analytics and visualization use cases. + +While Logstash originally drove innovation in log collection, its capabilities extend well beyond that use case. Any +type of event can be enriched and transformed with a broad array of input, filter, and output plugins, with many +native codecs further simplifying the ingestion process. Logstash accelerates your insights by harnessing a greater +volume and variety of data. + +// The pass blocks here point to the correct repository for the edit links in the guide. + +// Introduction +pass::[] +include::static/introduction.asciidoc[] + +// Glossary and core concepts go here + +// Getting Started with Logstash +pass::[] +include::static/getting-started-with-logstash.asciidoc[] + +// Advanced LS Pipelines +pass::[] +include::static/advanced-pipeline.asciidoc[] + +// Processing Pipeline +pass::[] +include::static/life-of-an-event.asciidoc[] + +// Lostash setup +pass::[] +include::static/setting-up-logstash.asciidoc[] + +pass::[] +include::static/docker.asciidoc[] + +pass::[] +include::static/settings-file.asciidoc[] + +pass::[] +include::static/command-line-flags.asciidoc[] + +pass::[] +include::static/logging.asciidoc[] + +pass::[] +include::static/stalled-shutdown.asciidoc[] + +// Breaking Changes +pass::[] +include::static/breaking-changes.asciidoc[] + +// Upgrading Logstash +pass::[] +include::static/upgrading.asciidoc[] + +// Configuring Logstash +pass::[] +include::static/configuration.asciidoc[] + +pass::[] +include::static/reloading-config.asciidoc[] + +pass::[] +include::static/managing-multiline-events.asciidoc[] + +// Deploying & Scaling +pass::[] +include::static/deploying.asciidoc[] + +// Troubleshooting performance +pass::[] +include::static/performance-checklist.asciidoc[] + +// Monitoring APIs +pass::[] +include::static/monitoring-apis.asciidoc[] + +// Working with Plugins +pass::[] +include::static/plugin-manager.asciidoc[] + +// These files do their own pass blocks +pass::[] +include::plugins/inputs.asciidoc[] +include::plugins/outputs.asciidoc[] +include::plugins/filters.asciidoc[] +include::plugins/codecs.asciidoc[] + +// Contributing to Logstash +pass::[] +include::static/contributing-to-logstash.asciidoc[] + +// This is in the pluginbody.asciidoc itself +pass::[] +include::static/input.asciidoc[] +include::static/codec.asciidoc[] +include::static/filter.asciidoc[] +include::static/output.asciidoc[] + +// Contributing a Patch to a Logstash Plugin +pass::[] +include::static/contributing-patch.asciidoc[] + +// Logstash Community Maintainer Guide +pass::[] +include::static/maintainer-guide.asciidoc[] + +// A space is necessary here ^^^ +pass::[] + +// Submitting a Plugin +pass::[] +include::static/submitting-a-plugin.asciidoc[] + +// Glossary of Terms +pass::[] +include::static/glossary.asciidoc[] + +// This is in the pluginbody.asciidoc itself +// pass::[] + From d669540123375dce2f20cc99f090d558f687a5b1 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 29 Nov 2016 14:19:26 -0500 Subject: [PATCH 519/632] Relax the acceptance test expectation to match only the exception message Fixes: #6310 Fixes #6325 --- lib/pluginmanager/remove.rb | 2 +- .../spec/shared_examples/cli/logstash-plugin/remove.rb | 2 +- .../spec/shared_examples/cli/logstash-plugin/uninstall.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pluginmanager/remove.rb b/lib/pluginmanager/remove.rb index eddd604e1cc..6c2efebbbcd 100644 --- a/lib/pluginmanager/remove.rb +++ b/lib/pluginmanager/remove.rb @@ -17,7 +17,7 @@ def execute # make sure this is an installed plugin and present in Gemfile. # it is not possible to uninstall a dependency not listed in the Gemfile, for example a dependent codec - signal_error("This plugin has not been previously installed, aborting") unless LogStash::PluginManager.installed_plugin?(plugin, gemfile) + signal_error("This plugin has not been previously installed") unless LogStash::PluginManager.installed_plugin?(plugin, gemfile) exit(1) unless ::Bundler::LogstashUninstall.uninstall!(plugin) diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb index 08b6aad4cbe..f8bd007f6b0 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/remove.rb @@ -16,7 +16,7 @@ context "when the plugin isn't installed" do it "fails to remove it" do result = logstash.run_command_in_path("bin/logstash-plugin remove logstash-filter-qatest") - expect(result.stderr).to match(/ERROR: Remove Aborted, message: This plugin has not been previously installed, aborting/) + expect(result.stderr).to match(/This plugin has not been previously installed/) end end diff --git a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb index 2b14b7f09c1..9eb4939a31f 100644 --- a/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb +++ b/qa/acceptance/spec/shared_examples/cli/logstash-plugin/uninstall.rb @@ -16,7 +16,7 @@ context "when the plugin isn't installed" do it "fails to uninstall it" do result = logstash.run_command_in_path("bin/logstash-plugin uninstall logstash-filter-qatest") - expect(result.stderr).to match(/ERROR: Uninstall Aborted, message: This plugin has not been previously installed, aborting/) + expect(result.stderr).to match(/This plugin has not been previously installed/) end end From 0c0af9ef1bff0bcdf6e77e4fd8eb7356beae52d6 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Tue, 29 Nov 2016 11:17:07 -0800 Subject: [PATCH 520/632] Add glob topic to toc Fixes #6326 --- docs/index.asciidoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/index.asciidoc b/docs/index.asciidoc index 786af00b8de..8498a6e57ce 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -91,6 +91,9 @@ include::static/reloading-config.asciidoc[] pass::[] include::static/managing-multiline-events.asciidoc[] +pass::[] +include::static/glob-support.asciidoc[] + // Deploying & Scaling pass::[] include::static/deploying.asciidoc[] From 0f82f3471d73e6f4e43a8a054f506733001d3e33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20B=C3=A4ck?= Date: Tue, 29 Nov 2016 22:32:14 +0100 Subject: [PATCH 521/632] docs: Fix typo in event API section of Breaking Changes doc Fixes #6329 --- docs/static/breaking-changes.asciidoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index f922cf974b4..a2e5d492871 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -258,10 +258,10 @@ Prior to Logstash 5.0, you may have used Ruby filters like so: ---------------------------------- filter { ruby { - codec => "event['name'] = 'Logstash'" + code => "event['name'] = 'Logstash'" } ruby { - codec => "event['product']['version'] = event['major'] + '.' + event['minor']" + code => "event['product']['version'] = event['major'] + '.' + event['minor']" } } ---------------------------------- @@ -273,10 +273,10 @@ Logstash 5.0. Fortunately, the change to make it work is very simple: ---------------------------------- filter { ruby { - codec => "event.set('name', 'Logstash')" + code => "event.set('name', 'Logstash')" } ruby { - codec => "event.set('[product][version]', event.get('major') + '.' + event.get('minor'))" + code => "event.set('[product][version]', event.get('major') + '.' + event.get('minor'))" } } ---------------------------------- From eba128c96861dd672574795526c68ae7c280f9e6 Mon Sep 17 00:00:00 2001 From: Guy Boertje Date: Tue, 22 Nov 2016 14:41:11 +0000 Subject: [PATCH 522/632] Allow for exception instances to get serialized in JSON logging --- .../lib/logstash-core-event-java_jars.rb | 25 +++++++++++++------ logstash-core/lib/logstash/patches.rb | 1 + .../lib/logstash/patches/exception_to_json.rb | 5 ++++ logstash-core/spec/logstash/patches_spec.rb | 19 +++++++++++--- 4 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 logstash-core/lib/logstash/patches/exception_to_json.rb diff --git a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb index b7a36ce2937..068f1826201 100644 --- a/logstash-core-event-java/lib/logstash-core-event-java_jars.rb +++ b/logstash-core-event-java/lib/logstash-core-event-java_jars.rb @@ -1,9 +1,20 @@ # this is a generated file, to avoid over-writing it just delete this comment -require 'jar_dependencies' +begin + require 'jar_dependencies' +rescue LoadError + require 'com/fasterxml/jackson/core/jackson-databind/2.7.3/jackson-databind-2.7.3.jar' + require 'org/apache/logging/log4j/log4j-api/2.6.2/log4j-api-2.6.2.jar' + require 'com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar' + require 'com/fasterxml/jackson/module/jackson-module-afterburner/2.7.3/jackson-module-afterburner-2.7.3.jar' + require 'com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.7.3/jackson-dataformat-cbor-2.7.3.jar' + require 'com/fasterxml/jackson/core/jackson-core/2.7.3/jackson-core-2.7.3.jar' +end -require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) -require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.3' ) -require_jar( 'org.apache.logging.log4j', 'log4j-api', '2.6.2' ) -require_jar( 'com.fasterxml.jackson.module', 'jackson-module-afterburner', '2.7.3' ) -require_jar( 'com.fasterxml.jackson.dataformat', 'jackson-dataformat-cbor', '2.7.3' ) -require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.3' ) +if defined? Jars + require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.3' ) + require_jar( 'org.apache.logging.log4j', 'log4j-api', '2.6.2' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) + require_jar( 'com.fasterxml.jackson.module', 'jackson-module-afterburner', '2.7.3' ) + require_jar( 'com.fasterxml.jackson.dataformat', 'jackson-dataformat-cbor', '2.7.3' ) + require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.3' ) +end diff --git a/logstash-core/lib/logstash/patches.rb b/logstash-core/lib/logstash/patches.rb index 8a3b3aa85e6..283d74aa346 100644 --- a/logstash-core/lib/logstash/patches.rb +++ b/logstash-core/lib/logstash/patches.rb @@ -3,3 +3,4 @@ require "logstash/patches/cabin" require "logstash/patches/profile_require_calls" require "logstash/patches/stronger_openssl_defaults" +require "logstash/patches/exception_to_json" diff --git a/logstash-core/lib/logstash/patches/exception_to_json.rb b/logstash-core/lib/logstash/patches/exception_to_json.rb new file mode 100644 index 00000000000..00de79f25f6 --- /dev/null +++ b/logstash-core/lib/logstash/patches/exception_to_json.rb @@ -0,0 +1,5 @@ +class Exception + def to_json + {"exception_name" => self.class.name, "message" => message} + end +end diff --git a/logstash-core/spec/logstash/patches_spec.rb b/logstash-core/spec/logstash/patches_spec.rb index f22db6d07e5..f97d4ea201b 100644 --- a/logstash-core/spec/logstash/patches_spec.rb +++ b/logstash-core/spec/logstash/patches_spec.rb @@ -2,17 +2,18 @@ require "socket" require "logstash/patches" require "flores/pki" +require "logstash/json" describe "OpenSSL defaults" do subject { OpenSSL::SSL::SSLContext.new } - # OpenSSL::SSL::SSLContext#ciphers returns an array of + # OpenSSL::SSL::SSLContext#ciphers returns an array of # [ [ ciphername, version, bits, alg_bits ], [ ... ], ... ] - + # List of cipher names let(:ciphers) { subject.ciphers.map(&:first) } - # List of cipher encryption bit strength. + # List of cipher encryption bit strength. let(:encryption_bits) { subject.ciphers.map { |_, _, _, a| a } } it "should not include any export ciphers" do @@ -35,7 +36,7 @@ # https://github.com/jordansissel/ruby-flores/blob/master/spec/flores/pki_integration_spec.rb # since these helpers were created to fix this particular issue let(:csr) { Flores::PKI::CertificateSigningRequest.new } - # Here, I use a 1024-bit key for faster tests. + # Here, I use a 1024-bit key for faster tests. # Please do not use such small keys in production. let(:key_bits) { 1024 } let(:key) { OpenSSL::PKey::RSA.generate(key_bits, 65537) } @@ -88,3 +89,13 @@ end end end + +describe "exceptions used json logging hashes" do + let(:exception) { ArgumentError.new("so you want an argument, huh?") } + let(:result) { [] } + + it "should not raise errors" do + expect { result << LogStash::Json.dump({"error" => exception}) }.not_to raise_error + expect(result[0]).to match(/ArgumentError.*so you want an argument/) + end +end From 1cd0453081063fafea314712dd1b2b3274787713 Mon Sep 17 00:00:00 2001 From: Glen Smith Date: Wed, 30 Nov 2016 11:48:29 -0700 Subject: [PATCH 523/632] Updated geofilter breaking changes Added note about _geoip_lookup_failure Fixes #6333 --- docs/static/breaking-changes.asciidoc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/static/breaking-changes.asciidoc b/docs/static/breaking-changes.asciidoc index a2e5d492871..5d3629f3033 100644 --- a/docs/static/breaking-changes.asciidoc +++ b/docs/static/breaking-changes.asciidoc @@ -240,6 +240,12 @@ The GeoIP filter has been updated to use MaxMind's GeoIP2 database. Previous Geo by MaxMind. As a result of this, `.dat` version files are no longer supported, and only `.mmdb` format is supported. The new database will not include ASN data in the basic free database file. +Previously, when the filter encountered an IP address for which there were no results in the database, the event +would just pass through the filter without modification. It will now add a `_geoip_lookup_failure` tag to the +event which will allow for some subsequent stage of the pipeline to identify those events and perform some other +operation. To simply get the same behavior as the earlier versions, just add a filter conditional on that tag +which then drops the tag from the event. + [float] === Ruby Filter and Custom Plugin Developers From bf2d670d2a3bd7708513bfa7bb55a02748a22876 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 2 Aug 2016 12:51:17 -0400 Subject: [PATCH 524/632] Logstash-docgen tool v2 **Motivation**: We have decided to rewrite the documentation generator to add more features to our documentation and to fix some outstanding bugs. This PR addresses the following problem: - Hard to add new features to the code base. - The code was tied with Logstash. - No easy way to publish the doc for a single plugin - The plugin author was not able to test their documentation changes - The reported errors were hard to understand. - No easy way to automate it. - the minimal requirement on base classes. Fixes #5720 --- Gemfile | 2 +- ci/ci_docs.sh | 15 + ci/ci_docs_master.sh | 15 + docs/asciidocgen.rb | 266 ---- docs/index-codecs.asciidoc.erb | 43 - docs/index-filters.asciidoc.erb | 43 - docs/index-inputs.asciidoc.erb | 43 - docs/index-outputs.asciidoc.erb | 43 - docs/index.html.erb | 57 - docs/plugin-doc.asciidoc.erb | 68 - docs/plugin-synopsis.asciidoc.erb | 57 - lib/pluginmanager/main.rb | 2 + rakelib/default_plugins.rb | 160 +-- rakelib/docs.rake | 31 +- rakelib/plugins-metadata.json | 786 ++++++++++ spec/fixtures/dummy.gemspec | 24 + tools/logstash-docgen/.gitignore | 11 + tools/logstash-docgen/Gemfile | 4 + tools/logstash-docgen/README.md | 86 ++ tools/logstash-docgen/Rakefile | 2 + tools/logstash-docgen/bin/console | 14 + tools/logstash-docgen/bin/logstash-docgen | 6 + tools/logstash-docgen/bin/setup | 8 + tools/logstash-docgen/lib/logstash/docgen.rb | 7 + .../lib/logstash/docgen/asciidoc_format.rb | 50 + .../lib/logstash/docgen/dependency_lookup.rb | 58 + .../lib/logstash/docgen/dynamic_parser.rb | 53 + .../lib/logstash/docgen/github_generator.rb | 182 +++ .../lib/logstash/docgen/index.rb | 81 ++ .../lib/logstash/docgen/logstash_generator.rb | 77 + .../lib/logstash/docgen/parser.rb | 196 +++ .../lib/logstash/docgen/plugin_doc.rb | 22 + .../lib/logstash/docgen/runner.rb | 33 + .../lib/logstash/docgen/static_parser.rb | 174 +++ .../lib/logstash/docgen/task_runner.rb | 63 + .../lib/logstash/docgen/util.rb | 21 + .../lib/logstash/docgen/version.rb | 5 + tools/logstash-docgen/logstash-docgen.gemspec | 35 + tools/logstash-docgen/logstash-docgen.yml | 8 + .../fixtures/logstash-filter-dummy.gemspec | 26 + .../spec/fixtures/plugins_source/base.rb | 4 + .../plugins_source/config_from_mixin.rb | 9 + .../plugins_source/new_style_header.rb | 16 + .../plugins_source/old_style_header.rb | 19 + .../fixtures/vcr_cassettes/logstash-core.yml | 1267 +++++++++++++++++ .../logstash/docgen/dependency_lookup_spec.rb | 35 + .../spec/logstash/docgen/task_runner_spec.rb | 116 ++ .../spec/logstash/docgen/util_spec.rb | 40 + tools/logstash-docgen/spec/spec_helper.rb | 10 + tools/logstash-docgen/spec/support/helpers.rb | 14 + .../templates/index-codecs.asciidoc.erb | 21 + .../templates/index-filters.asciidoc.erb | 21 + .../templates/index-inputs.asciidoc.erb | 20 + .../templates/index-outputs.asciidoc.erb | 20 + .../templates/plugin-doc.asciidoc.erb | 125 ++ .../logstash-docgen/templates/plugin-doc.css | 595 ++++++++ 56 files changed, 4435 insertions(+), 774 deletions(-) create mode 100755 ci/ci_docs.sh create mode 100755 ci/ci_docs_master.sh delete mode 100644 docs/asciidocgen.rb delete mode 100644 docs/index-codecs.asciidoc.erb delete mode 100644 docs/index-filters.asciidoc.erb delete mode 100644 docs/index-inputs.asciidoc.erb delete mode 100644 docs/index-outputs.asciidoc.erb delete mode 100644 docs/index.html.erb delete mode 100644 docs/plugin-doc.asciidoc.erb delete mode 100644 docs/plugin-synopsis.asciidoc.erb create mode 100644 rakelib/plugins-metadata.json create mode 100644 spec/fixtures/dummy.gemspec create mode 100644 tools/logstash-docgen/.gitignore create mode 100644 tools/logstash-docgen/Gemfile create mode 100644 tools/logstash-docgen/README.md create mode 100644 tools/logstash-docgen/Rakefile create mode 100755 tools/logstash-docgen/bin/console create mode 100755 tools/logstash-docgen/bin/logstash-docgen create mode 100755 tools/logstash-docgen/bin/setup create mode 100644 tools/logstash-docgen/lib/logstash/docgen.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/asciidoc_format.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/dependency_lookup.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/dynamic_parser.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/github_generator.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/index.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/logstash_generator.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/parser.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/plugin_doc.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/runner.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/static_parser.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/task_runner.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/util.rb create mode 100644 tools/logstash-docgen/lib/logstash/docgen/version.rb create mode 100644 tools/logstash-docgen/logstash-docgen.gemspec create mode 100644 tools/logstash-docgen/logstash-docgen.yml create mode 100644 tools/logstash-docgen/spec/fixtures/logstash-filter-dummy.gemspec create mode 100644 tools/logstash-docgen/spec/fixtures/plugins_source/base.rb create mode 100644 tools/logstash-docgen/spec/fixtures/plugins_source/config_from_mixin.rb create mode 100644 tools/logstash-docgen/spec/fixtures/plugins_source/new_style_header.rb create mode 100644 tools/logstash-docgen/spec/fixtures/plugins_source/old_style_header.rb create mode 100644 tools/logstash-docgen/spec/fixtures/vcr_cassettes/logstash-core.yml create mode 100644 tools/logstash-docgen/spec/logstash/docgen/dependency_lookup_spec.rb create mode 100644 tools/logstash-docgen/spec/logstash/docgen/task_runner_spec.rb create mode 100644 tools/logstash-docgen/spec/logstash/docgen/util_spec.rb create mode 100644 tools/logstash-docgen/spec/spec_helper.rb create mode 100644 tools/logstash-docgen/spec/support/helpers.rb create mode 100644 tools/logstash-docgen/templates/index-codecs.asciidoc.erb create mode 100644 tools/logstash-docgen/templates/index-filters.asciidoc.erb create mode 100644 tools/logstash-docgen/templates/index-inputs.asciidoc.erb create mode 100644 tools/logstash-docgen/templates/index-outputs.asciidoc.erb create mode 100644 tools/logstash-docgen/templates/plugin-doc.asciidoc.erb create mode 100644 tools/logstash-docgen/templates/plugin-doc.css diff --git a/Gemfile b/Gemfile index 0dfd3fe26f2..cbf6dbf3555 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ gem "ci_reporter_rspec", "1.0.0", :group => :development gem "simplecov", :group => :development gem "tins", "1.6", :group => :development gem "rspec", "~> 3.1.0", :group => :development -gem "logstash-devutils", "~> 1.1", :group => :development +gem "logstash-devutils", :group => :development gem "benchmark-ips", :group => :development gem "octokit", "3.8.0", :group => :build gem "stud", "~> 0.0.22", :group => :build diff --git a/ci/ci_docs.sh b/ci/ci_docs.sh new file mode 100755 index 00000000000..0353db2eb5d --- /dev/null +++ b/ci/ci_docs.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -e + +# Since we are using the system jruby, we need to make sure our jvm process +# uses at least 1g of memory, If we don't do this we can get OOM issues when +# installing gems. See https://github.com/elastic/logstash/issues/5179 +export JRUBY_OPTS="-J-Xmx1g" + +mkdir -p build/docs +rm -rf build/docs/* + +grep -q -F "logstash-docgen" Gemfile || echo 'gem "logstash-docgen", :path => "./tools/logstash-docgen"' >> Gemfile +rake bootstrap +rake test:install-core +rake docs:generate-plugins diff --git a/ci/ci_docs_master.sh b/ci/ci_docs_master.sh new file mode 100755 index 00000000000..d337d2894fa --- /dev/null +++ b/ci/ci_docs_master.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -e + +# Since we are using the system jruby, we need to make sure our jvm process +# uses at least 1g of memory, If we don't do this we can get OOM issues when +# installing gems. See https://github.com/elastic/logstash/issues/5179 +export JRUBY_OPTS="-J-Xmx1g" + +mkdir -p build/docs +rm -rf build/docs/* +rm -rf tools/logstash-docgen/source + +cd tools/logstash-docgen +bundle install +bin/logstash-docgen --all --target ../../build/docs diff --git a/docs/asciidocgen.rb b/docs/asciidocgen.rb deleted file mode 100644 index 5392e6a6440..00000000000 --- a/docs/asciidocgen.rb +++ /dev/null @@ -1,266 +0,0 @@ -require "rubygems" -require "erb" -require "optparse" - -$: << Dir.pwd -$: << File.join(File.dirname(__FILE__), "..", "lib") -$: << File.join(File.dirname(__FILE__), "..", "rakelib") - -require_relative "../lib/bootstrap/environment" #needed for LogStash::Environment constants LOGSTASH_HOME -require "logstash/config/mixin" -require "logstash/inputs/base" -require "logstash/codecs/base" -require "logstash/filters/base" -require "logstash/outputs/base" -require "logstash/version" -require "rakelib/default_plugins" - -class LogStashConfigAsciiDocGenerator - COMMENT_RE = /^ *#(?: (.*)| *$)/ - - def initialize - @rules = { - COMMENT_RE => lambda { |m| add_comment(m[1]) }, - /^ *class.*< *(::)?LogStash::(Outputs|Filters|Inputs|Codecs)::(Base|Threadable)/ => \ - lambda { |m| set_class_description }, - /^ *config +[^=].*/ => lambda { |m| add_config(m[0]) }, - /^ *milestone .*/ => lambda { |m| set_milestone(m[0]) }, - /^ *config_name .*/ => lambda { |m| set_config_name(m[0]) }, - /^ *flag[( ].*/ => lambda { |m| add_flag(m[0]) }, - /^ *(class|def|module) / => lambda { |m| clear_comments }, - } - @supported_plugins = *::LogStash::RakeLib::DEFAULT_PLUGINS - end - - def parse(string) - clear_comments - buffer = "" - string.split(/\r\n|\n/).each do |line| - # Join long lines - if line =~ COMMENT_RE - # nothing - else - # Join extended lines - if line =~ /(, *$)|(\\$)|(\[ *$)/ - buffer += line.gsub(/\\$/, "") - next - end - end - - line = buffer + line - buffer = "" - - @rules.each do |re, action| - m = re.match(line) - if m - action.call(m) - end - end # RULES.each - end # string.split("\n").each - end # def parse - - def set_class_description - @class_description = @comments.join("\n") - clear_comments - end # def set_class_description - - def add_comment(comment) - return if comment == "encoding: utf-8" - @comments << comment - end # def add_comment - - def add_config(code) - # I just care about the 'config :name' part - code = code.sub(/,.*/, "") - - # call the code, which calls 'config' in this class. - # This will let us align comments with config options. - name, opts = eval(code) - - # TODO(sissel): This hack is only required until regexp configs - # are gone from logstash. - name = name.to_s unless name.is_a?(Regexp) - - description = @comments.join("\n") - @attributes[name][:description] = description - clear_comments - end # def add_config - - def add_flag(code) - # call the code, which calls 'config' in this class. - # This will let us align comments with config options. - #p :code => code - fixed_code = code.gsub(/ do .*/, "") - #p :fixedcode => fixed_code - name, description = eval(fixed_code) - @flags[name] = description - clear_comments - end # def add_flag - - def set_config_name(code) - name = eval(code) - @name = name - end # def set_config_name - - def set_milestone(code) - @milestone = eval(code) - end - - # pretend to be the config DSL and just get the name - def config(name, opts={}) - return name, opts - end # def config - - # Pretend to support the flag DSL - def flag(*args, &block) - name = args.first - description = args.last - return name, description - end # def config - - # pretend to be the config dsl's 'config_name' method - def config_name(name) - return name - end # def config_name - - # pretend to be the config dsl's 'milestone' method - def milestone(m) - return m - end # def milestone - - def clear_comments - @comments.clear - end # def clear_comments - - def generate(file, settings) - @class_description = "" - @milestone = "" - @comments = [] - @attributes = Hash.new { |h,k| h[k] = {} } - @flags = {} - - # local scoping for the monkeypatch belowg - attributes = @attributes - - # Monkeypatch the 'config' method to capture - # Note, this monkeypatch requires us do the config processing - # one at a time. - # LogStash::Config::Mixin::DSL.instance_eval do - # define_method(:config) do |name, opts={}| - # p name => opts - # attributes[name].merge!(opts) - # end - # end - - # Loading the file will trigger the config dsl which should - # collect all the config settings. - - # include the plugin lib dir for loading specific files - - $: << File.join(File.dirname(file), "..", "..") - # include the lib dir of the plugin it self for any local dependencies - load file - - # Get the correct base path - base = File.join(::LogStash::Environment::LOGSTASH_HOME,'logstash-core/lib/logstash', file.split("/")[-2]) - - # parse base first - parse(File.new(File.join(base, "base.rb"), "r").read) - - # Now parse the real library - code = File.new(file).read - - # inputs either inherit from Base or Threadable. - if code =~ /\< ::LogStash::Inputs::Threadable/ - parse(File.new(File.join(base, "threadable.rb"), "r").read) - end - - if code =~ /include ::LogStash::PluginMixins/ - mixin = code.gsub(/.*include ::LogStash::PluginMixins::(\w+)\s.*/m, '\1') - mixin.gsub!(/(.)([A-Z])/, '\1_\2') - mixin.downcase! - #parse(File.new(File.join(base, "..", "plugin_mixins", "#{mixin}.rb")).read) - #TODO: RP make this work better with the naming - mixinfile = Dir.glob(File.join(::LogStash::Environment.logstash_gem_home,'gems',"logstash-mixin-#{mixin.split('_').first}-*",'lib/logstash/plugin_mixins', "#{mixin}.rb")).first - parse(File.new(mixinfile).read) - end - - parse(code) - - puts "Generating docs for #{file}" - - if @name.nil? - $stderr.puts "Missing 'config_name' setting in #{file}?" - return nil - end - - klass = ::LogStash::Config::Registry.registry[@name] - if klass.ancestors.include?(::LogStash::Inputs::Base) - section = "input" - elsif klass.ancestors.include?(::LogStash::Filters::Base) - section = "filter" - elsif klass.ancestors.include?(::LogStash::Outputs::Base) - section = "output" - elsif klass.ancestors.include?(::LogStash::Codecs::Base) - section = "codec" - end - - plugin_name = "logstash-" + section + "-" + @name - default_plugin = @supported_plugins.include?(plugin_name) - - template_file = File.join(File.dirname(__FILE__), "plugin-doc.asciidoc.erb") - template = ERB.new(File.new(template_file).read, nil, "-") - - is_contrib_plugin = !default_plugin - - # descriptions are assumed to be markdown - description = @class_description - - klass.get_config.each do |name, settings| - @attributes[name].merge!(settings) - default = klass.get_default(name) - unless default.nil? - @attributes[name][:default] = default - end - end - sorted_attributes = @attributes.sort { |a,b| a.first.to_s <=> b.first.to_s } - klassname = ::LogStash::Config::Registry.registry[@name].to_s - name = @name - - synopsis_file = File.join(File.dirname(__FILE__), "plugin-synopsis.asciidoc.erb") - synopsis = ERB.new(File.new(synopsis_file).read, nil, "-").result(binding) - - if settings[:output] - dir = File.join(settings[:output], section + "s") - path = File.join(dir, "#{name}.asciidoc") - Dir.mkdir(settings[:output]) if !File.directory?(settings[:output]) - Dir.mkdir(dir) if !File.directory?(dir) - File.open(path, "w") do |out| - html = template.result(binding) - html.gsub!("%VERSION%", LOGSTASH_VERSION) - html.gsub!("%PLUGIN%", @name) - out.puts(html) - end - else - puts template.result(binding) - end - end # def generate - -end # class LogStashConfigDocGenerator - -if __FILE__ == $0 - opts = OptionParser.new - settings = {} - opts.on("-o DIR", "--output DIR", - "Directory to output to; optional. If not specified,"\ - "we write to stdout.") do |val| - settings[:output] = val - end - - args = opts.parse(ARGV) - - args.each do |arg| - gen = LogStashConfigAsciiDocGenerator.new - gen.generate(arg, settings) - end -end diff --git a/docs/index-codecs.asciidoc.erb b/docs/index-codecs.asciidoc.erb deleted file mode 100644 index 528ee1d39d0..00000000000 --- a/docs/index-codecs.asciidoc.erb +++ /dev/null @@ -1,43 +0,0 @@ -[[codec-plugins]] -== Codec plugins - -A codec plugin changes the data representation of an event. Codecs are essentially stream filters that can operate as part of an input or output. - -The following codec plugins are available: - -<%- -full_list=[] -letters=[] -docs.each do |doc| -letter = doc[0] -letters << letter --%> -<, <%=letter %>>> -<%- end -%> - -<%- -cols=3 -rows=(docs.count/cols)+1 -item=0 -r=0 --%> -[cols="asciidoc,asciidoc,asciidoc"] -|======================================================================= -<%- while r < rows do -%> -<%- c=0; while c < cols do -%>|<% if letters[item].nil? %>  <% else %>[[plugins-codecs-letters-<%=letters[item] %>]] <% end %> -<%- letter = letters[item]; -arr = docs[letter] -if ! arr.nil? -arr.each do |plugin_item| -full_list << plugin_item -%>* <,<%=plugin_item -%>>> -<%- end -end -%> -<%- item+=1; c+=1; end; r+=1 end -%> -|======================================================================= - -<%- -full_list.each do |plugin| --%> -include::codecs/<%=plugin %>.asciidoc[] -<%- end -%> diff --git a/docs/index-filters.asciidoc.erb b/docs/index-filters.asciidoc.erb deleted file mode 100644 index bcfab03925c..00000000000 --- a/docs/index-filters.asciidoc.erb +++ /dev/null @@ -1,43 +0,0 @@ -[[filter-plugins]] -== Filter plugins - -A filter plugin performs intermediary processing on an event. Filters are often applied conditionally depending on the characteristics of the event. - -The following filter plugins are available: - -<%- -full_list=[] -letters=[] -docs.each do |doc| -letter = doc[0] -letters << letter --%> -<, <%=letter %>>> -<%- end -%> - -<%- -cols=3 -rows=(docs.count/cols)+1 -item=0 -r=0 --%> -[cols="asciidoc,asciidoc,asciidoc"] -|======================================================================= -<%- while r < rows do -%> -<%- c=0; while c < cols do -%>|<% if letters[item].nil? %>  <% else %>[[plugins-filters-letters-<%=letters[item] %>]] <% end %> -<%- letter = letters[item]; -arr = docs[letter] -if ! arr.nil? -arr.each do |plugin_item| -full_list << plugin_item -%>* <,<%=plugin_item -%>>> -<%- end -end -%> -<%- item+=1; c+=1; end; r+=1 end -%> -|======================================================================= - -<%- -full_list.each do |plugin| --%> -include::filters/<%=plugin %>.asciidoc[] -<%- end -%> diff --git a/docs/index-inputs.asciidoc.erb b/docs/index-inputs.asciidoc.erb deleted file mode 100644 index ade4fc9b249..00000000000 --- a/docs/index-inputs.asciidoc.erb +++ /dev/null @@ -1,43 +0,0 @@ -[[input-plugins]] -== Input plugins - -An input plugin enables a specific source of events to be read by Logstash. - -The following input plugins are available: - -<%- -full_list=[] -letters=[] -docs.each do |doc| -letter = doc[0] -letters << letter --%> -<, <%=letter %>>> -<%- -end - -cols=3 -rows=(docs.count/cols)+1 -item=0 -r=0 --%> -[cols="asciidoc,asciidoc,asciidoc"] -|======================================================================= -<%- while r < rows do -%> -<%- c=0; while c < cols do -%>|<% if letters[item].nil? %>  <% else %>[[plugins-inputs-letters-<%=letters[item] %>]] <% end %> -<%- letter = letters[item]; -arr = docs[letter] -if ! arr.nil? -arr.each do |plugin_item| -full_list << plugin_item -%>* <,<%=plugin_item -%>>> -<%- end -end -%> -<%- item+=1; c+=1; end; r+=1 end -%> -|======================================================================= - -<%- -full_list.each do |plugin| --%> -include::inputs/<%=plugin %>.asciidoc[] -<%- end -%> diff --git a/docs/index-outputs.asciidoc.erb b/docs/index-outputs.asciidoc.erb deleted file mode 100644 index 2cab51fa478..00000000000 --- a/docs/index-outputs.asciidoc.erb +++ /dev/null @@ -1,43 +0,0 @@ -[[output-plugins]] -== Output plugins - -An output plugin sends event data to a particular destination. Outputs are the final stage in the event pipeline. - -The following output plugins are available: - -<%- -full_list=[] -letters=[] -docs.each do |doc| -letter = doc[0] -letters << letter --%> -<, <%=letter %>>> -<%- end -%> - -<%- -cols=3 -rows=(docs.count/cols)+1 -item=0 -r=0 --%> -[cols="asciidoc,asciidoc,asciidoc"] -|======================================================================= -<%- while r < rows do -%> -<%- c=0; while c < cols do -%>|<% if letters[item].nil? %>  <% else %>[[plugins-outputs-letters-<%=letters[item] %>]] <% end %> -<%- letter = letters[item]; -arr = docs[letter] -if ! arr.nil? -arr.each do |plugin_item| -full_list << plugin_item -%>* <,<%=plugin_item -%>>> -<%- end -end -%> -<%- item+=1; c+=1; end; r+=1 end -%> -|======================================================================= - -<%- -full_list.each do |plugin| --%> -include::outputs/<%=plugin %>.asciidoc[] -<%- end -%> diff --git a/docs/index.html.erb b/docs/index.html.erb deleted file mode 100644 index 859f4f158df..00000000000 --- a/docs/index.html.erb +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: logstash docs index -layout: content_right ---- -

      -
      diff --git a/docs/plugin-doc.asciidoc.erb b/docs/plugin-doc.asciidoc.erb deleted file mode 100644 index 55fd81cff48..00000000000 --- a/docs/plugin-doc.asciidoc.erb +++ /dev/null @@ -1,68 +0,0 @@ -<%- plugin_name = name -%> -[[plugins-<%= section %>s-<%= name %>]] -=== <%= name %> - -<% unless default_plugin %> -NOTE: This is a community-maintained plugin! It does not ship with Logstash by default, but it is easy to install by running `bin/logstash-plugin install logstash-<%= section %>-<%= plugin_name %>`. -<% end %> - -<%= description %> - -  - -==== Synopsis - -<% if sorted_attributes.count > 0 -%> -This plugin supports the following configuration options: -<% else -%> -This plugin has no configuration options. -<% end -%> - -<%= synopsis -%> - -<% if sorted_attributes.count > 0 -%> - -==== Details - -  - -<% sorted_attributes.each do |name, config| -%> -<% - next if config[:obsolete] - if name.is_a?(Regexp) - name = "/" + name.to_s.gsub(/^\(\?-mix:/, "").gsub(/\)$/, "") + "/" - is_regexp = true - else - is_regexp = false - end --%> -[[plugins-<%= section%>s-<%= plugin_name%>-<%= name%>]] -===== `<%= name %>` <%= " (DEPRECATED)" if config[:deprecated] %> - -<% if config[:required] -%> - * This is a required setting. -<% end -%> -<% if config[:deprecated] -%> - * DEPRECATED WARNING: This configuration item is deprecated and may not be available in future versions. -<% end -%> -<% if is_regexp -%> - * The configuration attribute name here is anything that matches the above regular expression. -<% end -%> -<% if config[:validate].is_a?(Symbol) -%> - * Value type is <<<%= config[:validate] %>,<%= config[:validate] %>>> -<% elsif config[:validate].nil? -%> -
    1. Value type is <> -<% elsif config[:validate].is_a?(Array) -%> - * Value can be any of: `<%= config[:validate].join('`, `') %>` -<% end -%> -<% if config.include?(:default) -%> - * Default value is `<%= config[:default].inspect %>` -<% else -%> - * There is no default value for this setting. -<% end -%> - -<%= config[:description] %> - -<% end -%> - -<% end -%> diff --git a/docs/plugin-synopsis.asciidoc.erb b/docs/plugin-synopsis.asciidoc.erb deleted file mode 100644 index 6b1d047c4d6..00000000000 --- a/docs/plugin-synopsis.asciidoc.erb +++ /dev/null @@ -1,57 +0,0 @@ -<%- plugin_name = name -%> - -<% if sorted_attributes.count > 0 -%> -Required configuration options: -<% else -%> -Complete configuration example: -<% end -%> - -[source,json] --------------------------- -<%= name %> { -<% if sorted_attributes.count > 0 -%> -<% sorted_attributes.each do |name, config| - next if config[:deprecated] - next if !config[:required] --%> -<%= " " if section == "codec" %> <%= name %> => ... -<% end -%> -<%= " " if section == "codec" %><% ; end -%>} --------------------------- - -<% if sorted_attributes.count > 0 %> - -Available configuration options: - -[cols="<,<,<, -| <s-<%=plugin_name%>-<%= name %>>> <%= annotation %> -<% end -%> -|======================================================================= -<% end %> diff --git a/lib/pluginmanager/main.rb b/lib/pluginmanager/main.rb index 5323f4370a7..fd1f75b9807 100644 --- a/lib/pluginmanager/main.rb +++ b/lib/pluginmanager/main.rb @@ -6,6 +6,8 @@ ENV["GEM_HOME"] = ENV["GEM_PATH"] = LogStash::Environment.logstash_gem_home Gem.use_paths(LogStash::Environment.logstash_gem_home) +LogStash::Bundler.setup!({:without => [:build, :development]}) + module LogStash module PluginManager end diff --git a/rakelib/default_plugins.rb b/rakelib/default_plugins.rb index aef65395fe7..433acedd445 100644 --- a/rakelib/default_plugins.rb +++ b/rakelib/default_plugins.rb @@ -1,144 +1,6 @@ module LogStash module RakeLib - # plugins included by default in the logstash distribution - DEFAULT_PLUGINS = %w( - logstash-input-heartbeat - logstash-codec-collectd - logstash-output-xmpp - logstash-codec-cef - logstash-codec-dots - logstash-codec-edn - logstash-codec-edn_lines - logstash-codec-fluent - logstash-codec-es_bulk - logstash-codec-graphite - logstash-codec-json - logstash-codec-json_lines - logstash-codec-line - logstash-codec-msgpack - logstash-codec-multiline - logstash-codec-netflow - logstash-codec-plain - logstash-codec-rubydebug - logstash-filter-clone - logstash-filter-csv - logstash-filter-date - logstash-filter-dns - logstash-filter-drop - logstash-filter-fingerprint - logstash-filter-geoip - logstash-filter-grok - logstash-filter-json - logstash-filter-kv - logstash-filter-metrics - logstash-filter-mutate - logstash-filter-ruby - logstash-filter-sleep - logstash-filter-split - logstash-filter-syslog_pri - logstash-filter-throttle - logstash-filter-urldecode - logstash-filter-useragent - logstash-filter-uuid - logstash-filter-xml - logstash-input-couchdb_changes - logstash-input-elasticsearch - logstash-input-exec - logstash-input-file - logstash-input-ganglia - logstash-input-gelf - logstash-input-generator - logstash-input-graphite - logstash-input-http - logstash-input-http_poller - logstash-input-imap - logstash-input-irc - logstash-input-jdbc - logstash-input-log4j - logstash-input-lumberjack - logstash-input-pipe - logstash-input-rabbitmq - logstash-input-redis - logstash-input-s3 - logstash-input-snmptrap - logstash-input-sqs - logstash-input-stdin - logstash-input-syslog - logstash-input-tcp - logstash-input-twitter - logstash-input-udp - logstash-input-unix - logstash-input-xmpp - logstash-input-kafka - logstash-input-beats - logstash-output-cloudwatch - logstash-output-csv - logstash-output-elasticsearch - logstash-output-file - logstash-output-graphite - logstash-output-http - logstash-output-irc - logstash-output-kafka - logstash-output-nagios - logstash-output-null - logstash-output-pagerduty - logstash-output-pipe - logstash-output-rabbitmq - logstash-output-redis - logstash-output-s3 - logstash-output-sns - logstash-output-sqs - logstash-output-statsd - logstash-output-stdout - logstash-output-tcp - logstash-output-udp - logstash-output-webhdfs - ) - - # plugins required to run the logstash core specs - CORE_SPECS_PLUGINS = %w( - logstash-filter-clone - logstash-filter-mutate - logstash-filter-multiline - logstash-input-generator - logstash-input-stdin - logstash-input-tcp - logstash-output-stdout - ) - - TEST_JAR_DEPENDENCIES_PLUGINS = %w( - logstash-input-kafka - ) - - TEST_VENDOR_PLUGINS = %w( - logstash-codec-collectd - ) - - ALL_PLUGINS_SKIP_LIST = Regexp.union([ - /^logstash-filter-yaml$/, - /example$/, - /drupal/i, - /^logstash-output-logentries$/, - /^logstash-input-jdbc$/, - /^logstash-output-newrelic$/, - /^logstash-output-slack$/, - /^logstash-input-neo4j$/, - /^logstash-output-neo4j$/, - /^logstash-input-perfmon$/, - /^logstash-output-webhdfs$/, - /^logstash-input-rackspace$/, - /^logstash-output-rackspace$/, - /^logstash-input-dynamodb$/, - /^logstash-filter-language$/, - /^logstash-input-heroku$/, - /^logstash-output-google_cloud_storage$/, - /^logstash-input-journald$/, - /^logstash-input-log4j2$/, - /^logstash-codec-cloudtrail$/ - ]) - - # @return [Array] list of all plugin names as defined in the logstash-plugins github organization, minus names that matches the ALL_PLUGINS_SKIP_LIST def self.fetch_all_plugins require 'octokit' @@ -153,5 +15,27 @@ def self.is_released?(plugin) require 'gems' Gems.info(plugin) != "This rubygem could not be found." end + + def self.fetch_plugins_for(type) + # Lets use the standard library here, in the context of the bootstrap the + # logstash-core could have failed to be installed. + require "json" + JSON.load(::File.read("rakelib/plugins-metadata.json")).select do |_, metadata| + metadata[type] + end.keys + end + + # plugins included by default in the logstash distribution + DEFAULT_PLUGINS = self.fetch_plugins_for("default-plugins").freeze + + # plugins required to run the logstash core specs + CORE_SPECS_PLUGINS = self.fetch_plugins_for("core-specs").freeze + + TEST_JAR_DEPENDENCIES_PLUGINS = self.fetch_plugins_for("test-jar-dependencies").freeze + + TEST_VENDOR_PLUGINS = self.fetch_plugins_for("test-vendor-plugin").freeze + + ALL_PLUGINS_SKIP_LIST = Regexp.union(self.fetch_plugins_for("skip-list")).freeze + end end diff --git a/rakelib/docs.rake b/rakelib/docs.rake index c7eb1d32152..437b0b0a29f 100644 --- a/rakelib/docs.rake +++ b/rakelib/docs.rake @@ -1,25 +1,26 @@ -namespace "docs" do +# encoding: utf-8 +require "fileutils" + +DEFAULT_DOC_DIRECTORY = ::File.join(::File.dirname(__FILE__), "..", "build", "docs") +namespace "docs" do desc "Generate documentation for all plugins" task "generate" do Rake::Task['plugin:install-all'].invoke - Rake::Task['docs:generate-docs'].invoke - Rake::Task['docs:generate-index'].invoke + Rake::Task['docs:generate-plugins'].invoke end - task "generate-docs" do + desc "Generate the doc for all the currently installed plugins" + task "generate-plugins", [:output] do |t, args| + args.with_defaults(:output => DEFAULT_DOC_DIRECTORY) + require "bootstrap/environment" - pattern = "#{LogStash::Environment.logstash_gem_home}/gems/logstash-*/lib/logstash/{input,output,filter,codec}s/*.rb" - list = Dir.glob(pattern).join(" ") - cmd = "bin/bundle exec ruby docs/asciidocgen.rb -o asciidoc_generated #{list}" - system(cmd) - end + require "logstash-core/logstash-core" + LogStash::Bundler.setup!({:without => [:build]}) + + require "logstash/docgen/logstash_generator" - task "generate-index" do - list = [ 'inputs', 'outputs', 'filters', 'codecs' ] - list.each do |type| - cmd = "bin/bundle exec ruby docs/asciidoc_index.rb asciidoc_generated #{type}" - system(cmd) - end + FileUtils.mkdir_p(args[:output]) + exit(LogStash::Docgen::LogStashGenerator.new(args[:output]).generate_plugins_docs) end end diff --git a/rakelib/plugins-metadata.json b/rakelib/plugins-metadata.json new file mode 100644 index 00000000000..2b09fb1a852 --- /dev/null +++ b/rakelib/plugins-metadata.json @@ -0,0 +1,786 @@ +{ + "logstash-input-heartbeat": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-collectd": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": true, + "skip-list": false + }, + "logstash-output-xmpp": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-dots": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-edn": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-edn_lines": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-fluent": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-es_bulk": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-graphite": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-json": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-json_lines": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-line": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-msgpack": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-multiline": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-netflow": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-plain": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-codec-rubydebug": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-clone": { + "default-plugins": true, + "core-specs": true, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-csv": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-date": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-dns": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-drop": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-fingerprint": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-geoip": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-grok": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-json": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-kv": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-metrics": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-mutate": { + "default-plugins": true, + "core-specs": true, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-ruby": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-sleep": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-split": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-syslog_pri": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-throttle": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-urldecode": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-useragent": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-uuid": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-xml": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-couchdb_changes": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-elasticsearch": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-exec": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-file": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-ganglia": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-gelf": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-generator": { + "default-plugins": true, + "core-specs": true, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-graphite": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-http": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-http_poller": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-imap": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-irc": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-jdbc": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-input-log4j": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-lumberjack": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-pipe": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-rabbitmq": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-redis": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-s3": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-snmptrap": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-sqs": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-stdin": { + "default-plugins": true, + "core-specs": true, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-syslog": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-tcp": { + "default-plugins": true, + "core-specs": true, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-twitter": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-udp": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-unix": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-xmpp": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-kafka": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": true, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-input-beats": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-cloudwatch": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-csv": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-elasticsearch": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-file": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-graphite": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-http": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-irc": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-kafka": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-nagios": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-null": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-pagerduty": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-pipe": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-rabbitmq": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-redis": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-s3": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-sns": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-sqs": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-statsd": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-stdout": { + "default-plugins": true, + "core-specs": true, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-tcp": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-udp": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-output-webhdfs": { + "default-plugins": true, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-filter-multiline": { + "default-plugins": false, + "core-specs": true, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": false + }, + "logstash-filter-yaml": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-input-example": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-codec-example": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-filter-example": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-output-example": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-input-drupal_dblog": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-output-logentries": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-output-newrelic": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-output-slack": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-input-neo4j": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-output-neo4j": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-input-perfmon": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-input-rackspace": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-output-rackspace": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-input-dynamodb": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-filter-language": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-input-heroku": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-output-google_cloud_storage": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-input-journald": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-input-log4j2": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + }, + "logstash-codec-cloudtrail": { + "default-plugins": false, + "core-specs": false, + "test-jar-dependencies": false, + "test-vendor-plugins": false, + "skip-list": true + } +} diff --git a/spec/fixtures/dummy.gemspec b/spec/fixtures/dummy.gemspec new file mode 100644 index 00000000000..c32bbafe6da --- /dev/null +++ b/spec/fixtures/dummy.gemspec @@ -0,0 +1,24 @@ +Gem::Specification.new do |s| + s.name = 'logstash-filter-dummy' + s.version = '0.1.1' + s.licenses = ['Apache License (2.0)'] + s.summary = "This plugin is only used in the acceptance test" + s.description = "This plugin is only used in the acceptance test" + s.authors = ["Elasticsearch"] + s.email = 'info@elasticsearch.com' + s.homepage = "http://www.elasticsearch.org/guide/en/logstash/current/index.html" + s.require_paths = ["lib"] + + # Files + s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION"] + + # Tests + s.test_files = s.files.grep(%r{^(test|spec|features)/}) + + # Special flag to let us know this is actually a logstash plugin + s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" } + + # Gem dependencies + s.add_development_dependency 'logstash-devutils' + s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99" +end diff --git a/tools/logstash-docgen/.gitignore b/tools/logstash-docgen/.gitignore new file mode 100644 index 00000000000..f33f2034685 --- /dev/null +++ b/tools/logstash-docgen/.gitignore @@ -0,0 +1,11 @@ +/.bundle/ +/.yardoc +/Gemfile.lock +/_yardoc/ +/coverage/ +/doc/ +/pkg/ +/spec/reports/ +/tmp/ +target/ +source/ diff --git a/tools/logstash-docgen/Gemfile b/tools/logstash-docgen/Gemfile new file mode 100644 index 00000000000..b1b171bb3db --- /dev/null +++ b/tools/logstash-docgen/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +# Specify your gem's dependencies in logstash-docgen.gemspec +gemspec diff --git a/tools/logstash-docgen/README.md b/tools/logstash-docgen/README.md new file mode 100644 index 00000000000..374d81574c1 --- /dev/null +++ b/tools/logstash-docgen/README.md @@ -0,0 +1,86 @@ +**Features** + +## Generating the documentation for a Logstash instance + +You can now generate the documentation for a Logstash distribution. + +*prerequisite*: + +- You need to have installed the plugins inside Logstash, this is necessary to pickup the right file when generating the documentation. +- You need to have the development gems installed. `bin/logstash-plugin --no-verify --development` + +If you have all of the above you can run this command: + +```sh +rake doc:generate-plugins +rake doc:generate-plugins[/tmp/the-new-doc] # Depending on the shell you are using you might need to quote the task name, like this rake "doc:generate-plugins[/tmp/new-doc]" +``` + +This will give you a output similar to this + +```sh +logstash-input-file > SUCCESS +logstash-input-s3 > SUCCESS +logstash-input-kafka > FAIL +[...] +Exceptions: XXXX +``` + +The generator will try to generate the doc for all the plugins defined in the *Gemfile* and installed in Logstash, if anything goes wrong it wont +stop the generation of the other plugin. The Task will also report any errors with stacktraces at the end, if one plugin fail the build, +you can interrupt the process and it will output the current errors before exiting. + + +## Generating the documentation for all the plugins from the organization + +You can now generate the documentation from master for all the plugin in the *logstash-plugins* organization. + +*prerequisite* + +- You need to go in the `tools/logstash-docgen` directory +- You need to have the dependency installed. + + To get started you can run the following commands: + + ```sh + cd tools/logstash-docgen + bundle install + ``` + +You can use the the `bin/logstash-docgen` command to generate any plugin that you want, this executable can generate all the plugins or specific one from their master branch. + +Usages: + +```sh +bin/logstash-docgen --all # will generate the doc for all the plugins +bin/logstash-docgen logtash-input-file logstash-input-s3 # generate doc for 2 plugins +``` + +**See:** `bin/logstash-docgen --help` for complete usage. + +**Notes:** +- The nature of theses tasks require a lot of external execution to make sure all the doc are done in isolation, this process can take a long time. +- Some plugins will be skipped, see `logstash-docgen.yml` for details. +- The script will inject itself as a dependency on the plugin. + + +## Testing the documentation as the plugin author + +*prerequisite* + +- Declare the `logstash-docgen` as development dependency +- Add `require "logstash/docgen/plugin_doc"` to the `Rakefile` +- Run `bundle install` + +After you can have access to a few rake tasks, you can list them with `bundle exec rake -T` + +``` +bundle exec rake doc:asciidoc # return the raw asciidoc +bundle exec rake doc:html # Give you the raw html +``` + +## CI test + +The CI can use the `ci/docs.sh` script to correctly bootstrap and execute the docgeneration + + diff --git a/tools/logstash-docgen/Rakefile b/tools/logstash-docgen/Rakefile new file mode 100644 index 00000000000..43022f711e2 --- /dev/null +++ b/tools/logstash-docgen/Rakefile @@ -0,0 +1,2 @@ +require "bundler/gem_tasks" +task :default => :spec diff --git a/tools/logstash-docgen/bin/console b/tools/logstash-docgen/bin/console new file mode 100755 index 00000000000..49a0d277df8 --- /dev/null +++ b/tools/logstash-docgen/bin/console @@ -0,0 +1,14 @@ +#!/usr/bin/env ruby + +require "bundler/setup" +require "logstash/docgen" + +# You can add fixtures and/or initialization code here to make experimenting +# with your gem easier. You can also use a different console, if you like. + +# (If you use this, don't forget to add pry to your Gemfile!) +# require "pry" +# Pry.start + +require "irb" +IRB.start diff --git a/tools/logstash-docgen/bin/logstash-docgen b/tools/logstash-docgen/bin/logstash-docgen new file mode 100755 index 00000000000..e7338a7c4f6 --- /dev/null +++ b/tools/logstash-docgen/bin/logstash-docgen @@ -0,0 +1,6 @@ +#!/usr/bin/env ruby + +require "bundler/setup" +require "logstash/docgen/runner" + +LogStash::Docgen::Runner.run diff --git a/tools/logstash-docgen/bin/setup b/tools/logstash-docgen/bin/setup new file mode 100755 index 00000000000..dce67d860af --- /dev/null +++ b/tools/logstash-docgen/bin/setup @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail +IFS=$'\n\t' +set -vx + +bundle install + +# Do any other automated setup that you need to do here diff --git a/tools/logstash-docgen/lib/logstash/docgen.rb b/tools/logstash-docgen/lib/logstash/docgen.rb new file mode 100644 index 00000000000..7a70dce3334 --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen.rb @@ -0,0 +1,7 @@ +require "logstash/docgen/version" + +module LogStash + module Docgen + # Your code goes here... + end +end diff --git a/tools/logstash-docgen/lib/logstash/docgen/asciidoc_format.rb b/tools/logstash-docgen/lib/logstash/docgen/asciidoc_format.rb new file mode 100644 index 00000000000..3be29229109 --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/asciidoc_format.rb @@ -0,0 +1,50 @@ +# encoding: utf-8 +require "asciidoctor" +require "erb" + +module LogStash module Docgen + class AsciidocFormat + TEMPLATE_PATH = ::File.join(::File.dirname(__FILE__), "..", "..", "..", "templates") + TEMPLATE_FILE = ::File.join(TEMPLATE_PATH, "plugin-doc.asciidoc.erb") + CSS_FILE = ::File.join(TEMPLATE_PATH, "plugin-doc.css") + + POST_PROCESS_KEYS = { + /%PLUGIN%/ => :config_name + } + + + def initialize(options = {}) + @options = options + @template = read_template(TEMPLATE_FILE) + end + + def generate(context) + erb = @template.result(context.get_binding) + post_process!(context, erb) + + if @options.fetch(:raw, true) + erb + else + Asciidoctor.convert(erb, + :header_footer => true, + :stylesheet => CSS_FILE, + :safe => 'safe') + end + end + + def extension + "asciidoc" + end + + private + def read_template(file) + ERB.new(::File.read(file), nil, "-") + end + + def post_process!(context, erb) + POST_PROCESS_KEYS.each do |expression, method_call| + erb.gsub!(expression, context.send(method_call)) + end + end + end +end end diff --git a/tools/logstash-docgen/lib/logstash/docgen/dependency_lookup.rb b/tools/logstash-docgen/lib/logstash/docgen/dependency_lookup.rb new file mode 100644 index 00000000000..7aecb05694d --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/dependency_lookup.rb @@ -0,0 +1,58 @@ +# encoding: utf-8 +require "singleton" +require "gems" + +module LogStash module Docgen + class DependencyLookup + LOGSTASH_CORE_PLUGIN_API_GEM = "logstash-core-plugin-api" + LOGSTASH_CORE_GEM = "logstash-core" + PRERELEASES_RE = /\.(alpha|snapshot|pre|beta).+/ + + include Singleton + + def supported_logstash(gemspec) + plugin_core_api_dep = gemspec.dependencies.select { |spec| spec.name.eql?(LOGSTASH_CORE_PLUGIN_API_GEM) }.first + + core_requirements = match_core_requirements(plugin_core_api_dep.requirement) + clean_versions(match_core(core_requirements)) + end + + def self.supported_logstash(gemspec) + instance.supported_logstash(gemspec) + end + + private + def match_core_requirements(requirements) + logstash_core_plugin_api_versions.collect do |plugin| + requirements.satisfied_by?(Gem::Version.new(plugin[:number])) + dependencies = plugin[:dependencies].select { |dependency| dependency.first == LOGSTASH_CORE_GEM }.collect(&:last) + end.flatten.collect do |requirement| + Gem::Requirement.new(requirement.split(", ")) + end.compact + end + + def match_core(requirements) + logstash_core_versions + .collect { |plugin| Gem::Version.new(plugin[:number]) } + .select { |v| requirements.any? { |requirement| requirement.satisfied_by?(v) } } + end + + # Remove betas/aphas and reverse sort + def clean_versions(gemspecs) + gemspecs.collect(&:to_s) + .collect { |v| v.gsub(PRERELEASES_RE, '') } # remove beta, alphas and snapshots + .uniq + .collect { |v| Gem::Version.new(v) } + .sort { |x, y| y <=> x} + .map(&:to_s) + end + + def logstash_core_plugin_api_versions + @logstash_core_plugin_api_version ||= Gems.dependencies(LOGSTASH_CORE_PLUGIN_API_GEM) + end + + def logstash_core_versions + @logstash_core_versions ||= Gems.dependencies(LOGSTASH_CORE_GEM) + end + end +end end diff --git a/tools/logstash-docgen/lib/logstash/docgen/dynamic_parser.rb b/tools/logstash-docgen/lib/logstash/docgen/dynamic_parser.rb new file mode 100644 index 00000000000..48a875e9c83 --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/dynamic_parser.rb @@ -0,0 +1,53 @@ +# encoding: utf-8 +# This is needed because some of the plugins have weird declaration in their header files +# so I make sure the basic namespaces are correctly setup. +module LogStash + module Codecs;end + module Inputs;end + module Output;end +end + +module LogStash module Docgen + # Since we can use ruby code to generate some of the options + # like the allowed values we need to actually ask the class to return the + # evaluated values and another process will merge the values with the extracted + # description. IE: Some plugins uses constant to define the list of valid values. + class DynamicParser + def initialize(context, file, klass_name) + @file = file + @klass_name = klass_name + @context = context + end + + def parse + # If any errors is raised here it will be taken care by the `generator`, + # most errors should be missings jars or bad requires. + require @file + + klass.get_config.each do |name, attributes| + @context.add_config_attributes(name, attributes) + end + end + + # Find all the modules included by the specified class + # and use `source_location` to find the actual file on disk. + # We need to cleanup the values for evalued modules or system module. + # `included_modules` will return the list of module in the order they appear. + # this is important because modules can override the documentation of some + # option. + def extract_sources_location + klass.ancestors + .collect { |m| m.instance_methods.collect { |method| m.instance_method(method).source_location } + m.methods.collect { |method| m.method(method).source_location } } + .flatten + .compact + .uniq + .reject { |source| !source.is_a?(String) || source == "(eval)" } + end + + def klass + @klass_name.split('::').inject(Object) do |memo, name| + memo = memo.const_get(name); memo + end + end + end +end end diff --git a/tools/logstash-docgen/lib/logstash/docgen/github_generator.rb b/tools/logstash-docgen/lib/logstash/docgen/github_generator.rb new file mode 100644 index 00000000000..7785a4d18c0 --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/github_generator.rb @@ -0,0 +1,182 @@ +# encoding: utf-8 +require "logstash/docgen/parser" +require "logstash/docgen/task_runner" +require "logstash/docgen/util" +require "stud/trap" +require "git" +require "bundler" +require "open3" +require "octokit" +require "fileutils" + +module LogStash module Docgen + # Class to encapsulate any operations needed to actually run the doc + # generation on a specific plugin. + # + # Since the doc generation need access to the current library/dependency and we + # dont want to polute the main exection namespace with libraries that could be incompatible + # each execution of the doc is is own process. + # + # Its a lot slower, but we know for sure that it uses the latest dependency for each plugins. + class Plugin + class CommandException < StandardError; end + + GITHUB_URI = "https://github.com/logstash-plugins/%s" + + BUNDLER_CMD = "bundler install --jobs 8 --quiet --path /tmp/vendor" + RAKE_VENDOR_CMD = "bundle exec rake vendor" + RAKE_DOC_ASCIIDOC = "bundle exec rake doc:asciidoc" + + # Content needed to inject to make the generator work + GEMFILE_CHANGES = "gem 'logstash-docgen', :path => \"#{File.expand_path(File.join(File.dirname(__FILE__), "..", "..", ".."))}\"" + RAKEFILE_CHANGES = "require 'logstash/docgen/plugin_doc'" + + attr_reader :path, :full_name + + def initialize(full_name, temporary_path) + @full_name = full_name + @path = File.join(temporary_path, full_name) + end + + def type + full_name.split("-")[1] + end + + def name + full_name.split("-").last + end + + def generate(destination) + fetch + inject_docgen + bundle_install + rake_vendor + generate_doc(destination) + end + + private + def fetch + repository = sprintf(GITHUB_URI, full_name) + # by default lets just get the tip of the branch + + if Dir.exist?(path) + g = Git.init(path) + g.reset + g.fetch + g.merge("origin/master") + else + g = Git.clone(repository, path, :depth => 1 ) + end + end + + def inject_docgen + File.open(File.join(path, "Gemfile"), "a") do |f| + f.write("\n#{GEMFILE_CHANGES}") + end + + File.open(File.join(path, "Rakefile"), "a") do |f| + f.write("\n#{RAKEFILE_CHANGES}") + end + end + + def rake_vendor + run_in_directory(RAKE_VENDOR_CMD) + end + + def generate_doc(destination) + output = run_in_directory(RAKE_DOC_ASCIIDOC) + destination = File.join(destination, "#{type}s") + FileUtils.mkdir_p(destination) + IO.write(File.join(destination, "#{name}.asciidoc"), output.read) + end + + def bundle_install + run_in_directory(BUNDLER_CMD) + end + + def run_in_directory(cmd = nil, &block) + Dir.chdir(path) do + Bundler.with_clean_env do + stdin, stdout, stderr, wait_thr = Open3.popen3(cmd) + if wait_thr.value.success? + return stdout + else + raise CommandException.new, "cmd: #{cmd}, stdout: #{stdout.read}, stderr: #{stderr.read}" + end + end + end + end + end + + + # This class orchestrate all the operation between the `logstash-plugins` organization and the + # doc build for each plugin. + class DocumentationGenerator + LOGSTASH_PLUGINS_ORGANIZATION = "logstash-plugins" + + attr_reader :plugins, :temporary_path, :config + + def initialize(plugins, target, source, c = {}) + @temporary_path = source + @config = c + + @target = target + FileUtils.mkdir_p(target) + + @plugins = create_plugins(plugins) + end + + def create_plugins(plugins) + plugin_names = plugins == :all ? retrieve_all_plugins : Array(plugins) + plugin_names.map do |name| + if skip_plugin?(name) + puts "#{name} > #{Util.yellow("IGNORED")}" + nil + else + Plugin.new(name, temporary_path) + end + end.compact + end + + def retrieve_all_plugins + plugins = [] + Octokit.auto_paginate = true + client = Octokit::Client.new + client.organization_repositories(LOGSTASH_PLUGINS_ORGANIZATION).each do |repository| + plugins << repository[:name] + end + plugins + end + + def skip_plugin?(name) + ignored_plugins.any? { |re| re.match(name) } + end + + def ignored_plugins + @ignored_plugins ||= config["ignore_plugins"].map { |item| Regexp.new(item) } + end + + def generate + puts "Processing, #{plugins.size} plugins: #{plugins.collect(&:name).join(", ")}" + + task_runner = TaskRunner.new + + # Since this process can be quite long, we allow people to interrupt it, + # but we should at least dump the currents errors.. + Stud.trap("INT") do + puts "Process interrupted" + task_runner.report_failures + + exit(1) # assume something went wrong + end + + plugins.each do |plugin| + task_runner.run(plugin.name) do + plugin.generate(@target) + end + end + + task_runner.report_failures + end + end +end end diff --git a/tools/logstash-docgen/lib/logstash/docgen/index.rb b/tools/logstash-docgen/lib/logstash/docgen/index.rb new file mode 100644 index 00000000000..3568be8ea22 --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/index.rb @@ -0,0 +1,81 @@ +# encoding: utf-8 +require "erb" + +module LogStash module Docgen + class IndexContext + class PluginContext + GITHUB_URL = "https://github.com/logstash-plugins" + + attr_reader :name, :type + + def initialize(name, type) + @name = name + end + + def full_name + "logstash-#{type}-#{name}" + end + + def description + "WHERE I SHOULD TAKE THAT? GITHUB?" + end + + def github_url + "#{GITHUB_URL}/#{full_name}" + end + + def edit_url + "#{github_url}/lib/logstash/#{type}/#{name}.rb" + end + end + + attr_reader :plugins + + def initialize(type, plugins) + @plugins = plugins.sort.collect { |plugin| PluginContext.new(plugin, type) } + end + + def get_binding + binding + end + end + + class Index + ASCIIDOC_EXTENSION = ".asciidoc" + PLUGIN_TYPES = %w(codecs inputs filters outputs) + + TEMPLATE_PATH = ::File.expand_path(::File.join(::File.dirname(__FILE__), "..", "..", "..", "templates")) + TEMPLATES = { + :inputs => ::File.read(::File.join(TEMPLATE_PATH, "index-inputs.asciidoc.erb")), + :codecs => ::File.read(::File.join(TEMPLATE_PATH, "index-codecs.asciidoc.erb")), + :filters => ::File.read(::File.join(TEMPLATE_PATH, "index-filters.asciidoc.erb")), + :outputs => ::File.read(::File.join(TEMPLATE_PATH, "index-outputs.asciidoc.erb")) + } + + attr_reader :path + + def initialize(path) + @path = path + end + + def generate + PLUGIN_TYPES.each do |type| + plugins = logstash_files(::File.join(path, type)) + .sort + .collect { |file| ::File.basename(file, ASCIIDOC_EXTENSION) } + + template = ERB.new(TEMPLATES[type.to_sym], nil, "-") + save(type, template.result(IndexContext.new(type, plugins).get_binding)) + end + end + + def logstash_files(source_path) + Dir.glob(::File.join(source_path, "*.asciidoc")) + end + + def save(type, output) + target = ::File.join(path, "#{type}#{ASCIIDOC_EXTENSION}") + File.open(target, "w") { |f| f.write(output) } + end + end +end end diff --git a/tools/logstash-docgen/lib/logstash/docgen/logstash_generator.rb b/tools/logstash-docgen/lib/logstash/docgen/logstash_generator.rb new file mode 100644 index 00000000000..59cff330f1a --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/logstash_generator.rb @@ -0,0 +1,77 @@ +# encoding: utf-8 +require "logstash/docgen/parser" +require "logstash/docgen/index" +require "logstash/docgen/util" +require "logstash/docgen/task_runner" +require "rubygems/specification" +require "fileutils" +require "stud/trap" + +module LogStash module Docgen + # This class is used to generate the documentation inside a working logstash + # directory, it will take all the installed gemspec and gerate the documentation for them. + # + # In pratice we will install **all the plugins** before running this generator. + # This class is invoked inside logstash with a rake task named: `docs:generate-plugins` + # + # There is also code to generate `Index` but for now we will still handle them manually. + class LogStashGenerator + PLUGIN_RE = /logstash-(codec|input|filter|output)-(\w+)/ + + attr_reader :output + + def initialize(output) + @output = output + FileUtils.mkdir_p(output) + end + + def plugins_gemspec + Gem::Specification.select { |spec| logstash_plugin?(spec.name) } + end + + def generate(options = {}) + generate_plugins_docs(options) + generate_index(options) + end + + def generate_plugins_docs(options = {}) + Util.time_execution do + task_runner = TaskRunner.new + + # Since this process can be quite long, we allow people to interrupt it, + # but we should at least dump the currents errors.. + Stud.trap("INT") do + puts "Process interrupted" + task_runner.report_failures + + exit(1) # assume something went wrong + end + + plugins_gemspec.each do |spec| + task_runner.run(spec.name) do + generate_plugin_doc(plugin_root(spec), options = {}) + end + end + + task_runner.report_failures + end + end + + def generate_index(options) + Index.new(output).generate + end + + def plugin_root(spec) + spec.load_paths.first.gsub(/lib$/, "") + end + + def generate_plugin_doc(path, options = {}) + document = Docgen.generate_for_plugin(path, options) + document.save(output) + end + + def logstash_plugin?(name) + name =~ PLUGIN_RE + end + end +end end diff --git a/tools/logstash-docgen/lib/logstash/docgen/parser.rb b/tools/logstash-docgen/lib/logstash/docgen/parser.rb new file mode 100644 index 00000000000..386b72a9114 --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/parser.rb @@ -0,0 +1,196 @@ +# encoding: utf-8 +require "logstash/docgen/dynamic_parser" +require "logstash/docgen/static_parser" +require "logstash/docgen/asciidoc_format" +require "logstash/docgen/dependency_lookup" +require "rubygems/specification" +require "gems" +require "open-uri" +require "json" + +module LogStash module Docgen + class DefaultPlugins + DEFAULT_PLUGINS_LIST_JSON = "https://raw.githubusercontent.com/ph/logstash/de2ba3f964ae7039b7b74a4a8212beb5a76a239c/rakelib/plugins-metadata.json" + + class << self + def default_plugins_list + @default_plugins_list ||= from_master_json + end + + def include?(name) + default_plugins_list.include?(name) + end + + def from_master_json + response = open(DEFAULT_PLUGINS_LIST_JSON) + JSON.parse(response.read).select { |_, values| values["default-plugins"] == true }.keys + end + end + end + + # This class acts as the transformation point between the format + # and the data. + # + # At the beginning of the PoC, I was targetting multiples different format: asciidoc, manpage, + # since we only support 1 format now, we could probably remove it. + class Document + attr_reader :context, :format + + def initialize(context, format) + @context = context + @format = format + end + + def output + @output ||= format.generate(context) + end + + def save(directory, filename = nil) + target_directory = ::File.join(directory, "#{context.section}s") + FileUtils.mkdir_p(target_directory) + + filename = "#{context.config_name}.#{format.extension}" unless filename + target = ::File.join(target_directory, filename) + ::File.open(target, "w") { |f| f.write(output) } + end + end + + # This class is mostly a data class that represent what will be exposed in the ERB files + # Less manipulation should be done in the ERB itself and most of the works should be done here + class PluginContext + ANCHOR_VERSION_RE = /\./ + LOGSTASH_PLUGINS_ORGANIZATION = "https://github.com/logstash-plugins" + CANONICAL_NAME_PREFIX = "logstash" + + attr_accessor :description, :config_name, :section, :name, :default_plugin, :gemspec + + def initialize(options = {}) + @config = {} + @options = options + end + + def default_plugin? + DefaultPlugins.include?(canonical_name) + end + + def has_description? + !description.nil? && !description.empty? + end + + def version + gemspec.version.to_s + end + + def release_date(format = "%Y-%m-%d") + @release_date ||= begin + response = open("https://rubygems.org/api/v1/versions/#{canonical_name}.json").read + # HACK: One of out default plugins, the webhdfs, has a bad encoding in the gemspec + # which make our parser trip with this error: + # + # Encoding::UndefinedConversionError message: ""\xC3"" from ASCII-8BIT to UTF-8 + # We dont have much choice than to force utf-8. + response.encode(Encoding::UTF_8, :invalid => :replace, :undef => :replace) + + data = JSON.parse(response) + + current_version = data.select { |v| v["number"] == version }.first + if current_version.nil? + "N/A" + + else + Time.parse(current_version["created_at"]).strftime(format) + end + end + end + + def add_config_description(name, description) + @config[name] ||= { } + @config[name].merge!({ :description => description }) + end + + def add_config_attributes(name, attributes = {}) + @config[name] ||= {} + @config[name].merge!(attributes) + end + + def canonical_name + "#{CANONICAL_NAME_PREFIX}-#{section}-#{config_name}" + end + + # Developper can declare options in the order they want + # `Hash` keys are sorted by default in the order of creation. + # But we force a sort options name for the documentation. + def config + Hash[@config.sort_by(&:first)] + end + alias_method :sorted_attributes, :config + + def changelog_url + # https://github.com/logstash-plugins/logstash-input-beats/blob/master/CHANGELOG.md#310beta3 + "#{LOGSTASH_PLUGINS_ORGANIZATION}/#{canonical_name}/blob/master/CHANGELOG.md##{anchor_version}" + end + + def anchor_version + version.gsub(ANCHOR_VERSION_RE, "") + end + + def supported_logstash(max = 5) + DependencyLookup.supported_logstash(gemspec)[0...max].join(", ") + end + + # Used for making `variables` available inside + # ERB templates. + def get_binding + binding + end + end + + # This class is the main point of entry to the parsing of the plugin ruby file, + # the parser need to do 3 differents actions: + # + # 1. A Static Parsed of the comment of the files + # 2. A Dynamic evaluation of the ruby code to get attributes and parent files + # 3. A static parsing of the other modules included by the specific plugin + class Parser + # This is a multipass parser + def self.parse(file, options = { :default_plugin => true }) + context = PluginContext.new(options) + static = StaticParser.new(context) + + # Extract ancestors, classes and modules and retrieve the physical + # location of the code for static parsing. + dynamic = DynamicParser.new(context, file, static.extract_class_name(file)) + dynamic.parse + + # Static parse on the modules and parents classes + # will update previously parsed context + dynamic.extract_sources_location.each { |f| static.parse(f) } + + # Static parse on the target file, + # Can override parents documentation. We are making the assumption that + # the modules are declared at the top of the class. + static.parse(file, true) + context + end + end + + def self.generate_for_plugin(plugin_source_path, options = {}) + gemspec = load_plugin_specification(plugin_source_path) + _, type, name = gemspec.name.split("-") + + file = "#{plugin_source_path}/lib/logstash/#{type}s/#{name}.rb" + + format = LogStash::Docgen::AsciidocFormat.new(options) + + context = LogStash::Docgen::Parser.parse(file) + context.gemspec = gemspec + Document.new(context, format) + end + + # Note that Gem::Specifcation has an internal cache. + def self.load_plugin_specification(plugin_source_path) + gemspec = Dir.glob(::File.join(plugin_source_path, "*.gemspec")).first + raise "Cannot find the gemspec in #{plugin_source_path}" if gemspec.nil? + Gem::Specification.load(gemspec) + end +end end diff --git a/tools/logstash-docgen/lib/logstash/docgen/plugin_doc.rb b/tools/logstash-docgen/lib/logstash/docgen/plugin_doc.rb new file mode 100644 index 00000000000..08fd52eff3e --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/plugin_doc.rb @@ -0,0 +1,22 @@ +# encoding: utf-8 +require "logstash/docgen/parser" +require "stud/temporary" + +namespace :doc do + desc "Preview the raw HTML of the documentation" + task :html do + puts generate_preview({ :raw => false }) + end + + desc "Preview Asciidoc documentation" + task :asciidoc do + puts generate_preview + end +end + +task :doc => "doc:html" + + +def generate_preview(options = {}) + LogStash::Docgen.generate_for_plugin(Dir.pwd, options).output +end diff --git a/tools/logstash-docgen/lib/logstash/docgen/runner.rb b/tools/logstash-docgen/lib/logstash/docgen/runner.rb new file mode 100644 index 00000000000..0fd08321f7e --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/runner.rb @@ -0,0 +1,33 @@ +# encoding: utf-8 +require "logstash/docgen/github_generator" +require "clamp" +require "yaml" + +module LogStash module Docgen + class Runner < Clamp::Command + SAMPLE_PLUGINS = %w(logstash-input-http_poller logstash-codec-netflow logstash-codec-multiline logstash-mixin-aws) + + option ["-t", "--target"], "target", "Where the generated documentation should be saved?", :default => File.join(Dir.pwd, "target") + option ["-a", "--all"], :flag, "generate the doc for all the plugins" + option ["-s", "--sample"], :flag, "Use a few plugins to test, logstash-input-sqs, logstash-input-file" + option ["-c", "--config"], "config", "Configuration of documentation generator", :default => File.join(Dir.pwd, "logstash-docgen.yml") + option ["-i", "--source"], "source", "Where we checkout the plugins, having the same source can make runs faster", :default => File.join(Dir.pwd, "source") + + parameter "[PLUGIN] ...", "Specific plugin", :attribute_name => :plugins + + def execute + if plugins.size > 0 + with_plugins = plugins + elsif sample? + with_plugins = SAMPLE_PLUGINS + else + with_plugins = :all + end + + DocumentationGenerator.new(with_plugins, + target, + source, + YAML.load(File.read(config))).generate + end + end +end end diff --git a/tools/logstash-docgen/lib/logstash/docgen/static_parser.rb b/tools/logstash-docgen/lib/logstash/docgen/static_parser.rb new file mode 100644 index 00000000000..9c20e497a8a --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/static_parser.rb @@ -0,0 +1,174 @@ +# encoding: utf-8 +module LogStash::Docgen + # This class is parsing static content of the main class and + # his ancestors, the result would be the description of the plugin and the + # actual documentation for each of the option. + class StaticParser + COMMENTS_IGNORE = ["encoding: utf-8"] + + VALID_CLASS_NAME = /^LogStash::(Codecs|Inputs|Filters|Outputs)::(\w+)/ + COMMENT_RE = /^ *#(?: (.*)| *$)/ + MULTILINE_RE = /(, *$)|(\\$)|(\[ *$)/ + ENDLINES_RE = /\r\n|\n/ + CLASS_DEFINITION_RE = /^ *class\s(.*) < *(::)?LogStash::(Outputs|Filters|Inputs|Codecs)::(\w)/ + NEW_CLASS_DEFINITION_RE = /^module (\w+) module (\w+) class\s(.*) < *(::)?LogStash::(Outputs|Filters|Inputs|Codecs)::(\w)/ + NEW_CLASS_DEFINITION_RE_ML = /module LogStash\n\s+module (Inputs|Codec|Outputs|Filters)\n.+\s+class (\w+) < *(::)?LogStash::(Inputs|Outputs|Filters|Codec)::/m + CONFIG_OPTION_RE = /^\s*((mod|base).)?config +[^=].*/ + CONFIG_NAME_RE = /^ *config_name .*/ + RESET_DOCUMENTATION_BUFFER_RE = /^ *(class|def|module) / + + def initialize(context) + @rules = { + COMMENT_RE => :parse_comment, + CLASS_DEFINITION_RE => :parse_class_description, + NEW_CLASS_DEFINITION_RE => :parse_new_class_description, + CONFIG_OPTION_RE => :parse_config, + CONFIG_NAME_RE => :parse_config_name, + RESET_DOCUMENTATION_BUFFER_RE => :update_description + } + + @context = context + + # Extracting the class name and parsing file + # work on the same raw content of the file, we use this cache to make sure + # we dont waste resources on reading the content + @cached_read = {} + + reset_buffer + end + + def parse_class_description(class_definition) + @context.section = class_definition[3].downcase.gsub(/s$/, '') + @context.name = class_definition[1] + + update_description + end + + def parse_new_class_description(class_definition) + @context.section = class_definition[2].downcase.gsub(/s$/, '') + @context.name = "#{class_definition[1]}::#{class_definition[2]}::#{class_definition[3]}" + + update_description + end + + # This is not obvious, but if the plugin define a class before the main class it can trip the buffer + def update_description(match = nil) + description = flush_buffer + + # can only be change by the main file + @context.description = description if !@context.has_description? && main? + end + + def parse_config_name(match) + if main? + name = match[0].match(/config_name\s++["'](\w+)['"]/)[1] + @context.config_name = name + @context.name = name + end + end + + def parse_comment(match) + comment = match[1] + return if ignore_comment?(comment) + @buffer << comment + end + + def parse_config(match) + field = match[0] + field_name = field.match(/config\s+:(\w+)/)[1] + @context.add_config_description(field_name, flush_buffer) + end + + def parse(file, main = false) + @main = main + reset_buffer + string = read_file(file) + extract_lines(string).each { |line| parse_line(line) } + end + + def main? + @main + end + + def parse_line(line) + @rules.each do |re, action| + if match = re.match(line) + send(action, match) + end + end + end + + def extract_lines(string) + buffer = "" + string.split(ENDLINES_RE).collect do |line| + # Join extended lines + if !comment?(line) && multiline?(line) + buffer += line.chomp + next + end + + line = buffer + line + buffer = "" + + line + end + end + + def ignore_comment?(comment) + COMMENTS_IGNORE.include?(comment) + end + + def comment?(line) + line =~ COMMENT_RE + end + + def multiline?(line) + line =~ MULTILINE_RE + end + + def flush_buffer + content = @buffer.join("\n") + reset_buffer + content + end + + def reset_buffer(match = nil) + @buffer = [] + end + + def read_file(file) + @cached_read[file] ||= File.read(file) + end + + # Let's try to extract a meaninful name for the classes + # We need to support theses format: + # + # class LogStash::Inputs::File # legacy + # module LogStash module inputs File + # module LogStash + # .... + # module Inputs + # ... + # class File + def extract_class_name(file) + content = read_file(file) + legacy_definition = content.match(CLASS_DEFINITION_RE) + + if legacy_definition.nil? + match_data = content.match(NEW_CLASS_DEFINITION_RE) + "#{match_data[1]}::#{match_data[2]}::#{match_data[3]}" + else + if valid_class_name(legacy_definition[1]) + legacy_definition[1] + else + m = content.match(NEW_CLASS_DEFINITION_RE_ML) + "LogStash::#{m[1]}::#{m[2]}" + end + end + end + + def valid_class_name(klass_name) + klass_name =~ VALID_CLASS_NAME + end + end +end diff --git a/tools/logstash-docgen/lib/logstash/docgen/task_runner.rb b/tools/logstash-docgen/lib/logstash/docgen/task_runner.rb new file mode 100644 index 00000000000..e74fee30a3e --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/task_runner.rb @@ -0,0 +1,63 @@ +# encoding: utf-8 +require "logstash/docgen/util" + +module LogStash module Docgen + class TaskRunner + TERMINAL_MAX_WIDTH = 80 + + class Status + attr_reader :name, :error + + def initialize(name, error = nil) + @name = name + @error = error + end + + def success? + error.nil? + end + end + + def initialize + @delayed_failures = [] + end + + def run(job_name, &block) + begin + block.call + report(Status.new(job_name)) + rescue => e + report(Status.new(job_name, e)) + end + end + + def report_failures + if failures? + puts "-" * TERMINAL_MAX_WIDTH + + @delayed_failures.each do |failure| + puts Util.red("FAILURE: #{failure.name}") + puts Util.red("\tException: #{failure.error.class} message: #{failure.error}") + puts "\t\t#{Util.red(failure.error.backtrace.join("\n\t\t"))}" + puts "\n" + end + return true + else + return false + end + end + + def failures? + @delayed_failures.size > 0 + end + + def report(status) + if status.success? + puts "#{status.name} > #{Util.green("SUCCESS")}" + else + puts "#{status.name} > #{Util.red("FAIL")}" + @delayed_failures << status + end + end + end +end end diff --git a/tools/logstash-docgen/lib/logstash/docgen/util.rb b/tools/logstash-docgen/lib/logstash/docgen/util.rb new file mode 100644 index 00000000000..47286cc1cd1 --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/util.rb @@ -0,0 +1,21 @@ +# encoding: utf-8 +module LogStash module Docgen module Util + def self.time_execution(&block) + started_at = Time.now + result = block.call + puts "Execution took: #{Time.now - started_at}s" + return result + end + + def self.red(text) + "\e[31m#{text}\e[0m" + end + + def self.green(text) + "\e[32m#{text}\e[0m" + end + + def self.yellow(text) + "\e[33m#{text}\e[0m" + end +end end end diff --git a/tools/logstash-docgen/lib/logstash/docgen/version.rb b/tools/logstash-docgen/lib/logstash/docgen/version.rb new file mode 100644 index 00000000000..b1940f52e49 --- /dev/null +++ b/tools/logstash-docgen/lib/logstash/docgen/version.rb @@ -0,0 +1,5 @@ +module Logstash + module Docgen + VERSION = "0.1.0" + end +end diff --git a/tools/logstash-docgen/logstash-docgen.gemspec b/tools/logstash-docgen/logstash-docgen.gemspec new file mode 100644 index 00000000000..2fd415ec7e7 --- /dev/null +++ b/tools/logstash-docgen/logstash-docgen.gemspec @@ -0,0 +1,35 @@ +# coding: utf-8 +lib = File.expand_path('../lib', __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require "logstash/docgen/version" + +Gem::Specification.new do |spec| + spec.name = "logstash-docgen" + spec.version = Logstash::Docgen::VERSION + spec.authors = ["Elastic"] + spec.email = ["info@elastic.co"] + + spec.summary = %q{Logstash Tooling to generate the documentation of a plugin} + spec.homepage = "https://elastic.co/logstash" + + spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } + spec.bindir = "bin" + spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } + spec.require_paths = ["lib"] + + spec.add_runtime_dependency "clamp" + spec.add_runtime_dependency "stud" + spec.add_runtime_dependency "git" + spec.add_runtime_dependency "asciidoctor" + spec.add_runtime_dependency "pry" + spec.add_runtime_dependency "addressable" + spec.add_runtime_dependency "octokit", "~> 3.8.0" + spec.add_runtime_dependency "gems" + + spec.add_development_dependency "rake", "~> 10.0" + spec.add_development_dependency "rspec" + + # Used for the dependency lookup code + spec.add_development_dependency "vcr" + spec.add_development_dependency "webmock" +end diff --git a/tools/logstash-docgen/logstash-docgen.yml b/tools/logstash-docgen/logstash-docgen.yml new file mode 100644 index 00000000000..6c329006b72 --- /dev/null +++ b/tools/logstash-docgen/logstash-docgen.yml @@ -0,0 +1,8 @@ +--- +ignore_plugins: + - -mixin- + - logstash-input-example + - logstash-output-example + - logstash-codec-example + - logstash-filter-example + - logstash-patterns-core diff --git a/tools/logstash-docgen/spec/fixtures/logstash-filter-dummy.gemspec b/tools/logstash-docgen/spec/fixtures/logstash-filter-dummy.gemspec new file mode 100644 index 00000000000..39db14d14a8 --- /dev/null +++ b/tools/logstash-docgen/spec/fixtures/logstash-filter-dummy.gemspec @@ -0,0 +1,26 @@ +Gem::Specification.new do |s| + s.name = 'logstash-filter-dummy' + s.version = '0.1.1' + s.licenses = ['Apache License (2.0)'] + s.summary = "This plugin is only used in logstash-docgen test" + s.description = "This plugin is only used in logstash-docgen test" + + s.authors = ["Elastic"] + s.email = ["info@elastic.co"] + + s.homepage = "http://www.elasticsearch.org/guide/en/logstash/current/index.html" + s.require_paths = ["lib"] + + # Files + s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION"] + + # Tests + s.test_files = s.files.grep(%r{^(test|spec|features)/}) + + # Special flag to let us know this is actually a logstash plugin + s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" } + + # Gem dependencies + s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0" + s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99" +end diff --git a/tools/logstash-docgen/spec/fixtures/plugins_source/base.rb b/tools/logstash-docgen/spec/fixtures/plugins_source/base.rb new file mode 100644 index 00000000000..0f4a5546939 --- /dev/null +++ b/tools/logstash-docgen/spec/fixtures/plugins_source/base.rb @@ -0,0 +1,4 @@ +class LogStash::Inputs::Base + # Parent configuration + config :parent_config, :type => :string, :require => true +end diff --git a/tools/logstash-docgen/spec/fixtures/plugins_source/config_from_mixin.rb b/tools/logstash-docgen/spec/fixtures/plugins_source/config_from_mixin.rb new file mode 100644 index 00000000000..9a9583fa36c --- /dev/null +++ b/tools/logstash-docgen/spec/fixtures/plugins_source/config_from_mixin.rb @@ -0,0 +1,9 @@ +# encoding: utf-8 + +module ConfigFromMixin + # Config mixing description + config :config_mixin, :type => :string, :default => "mixin config", :required => true + + # A deprecated config option + config :config_mixin_deprecated, :type => :string, :deprecated => true +end diff --git a/tools/logstash-docgen/spec/fixtures/plugins_source/new_style_header.rb b/tools/logstash-docgen/spec/fixtures/plugins_source/new_style_header.rb new file mode 100644 index 00000000000..ec53055dd21 --- /dev/null +++ b/tools/logstash-docgen/spec/fixtures/plugins_source/new_style_header.rb @@ -0,0 +1,16 @@ +require_relative "base" + +# encoding: utf-8 +# +# This is a new test plugins +# with multiple line. + +module LogStash module Inputs class Dummy < LogStash::Inputs::Base + config_name "dummy" + + # option 1 description + config :option1, :type => :boolean, :default => false + + # option 2 description + config :option2, :type => :string, :default => "localhost" +end diff --git a/tools/logstash-docgen/spec/fixtures/plugins_source/old_style_header.rb b/tools/logstash-docgen/spec/fixtures/plugins_source/old_style_header.rb new file mode 100644 index 00000000000..26852f43da1 --- /dev/null +++ b/tools/logstash-docgen/spec/fixtures/plugins_source/old_style_header.rb @@ -0,0 +1,19 @@ +require_relative "base" +require_relative "config_from_mixin" + +# encoding: utf-8 +# +# This is a new test plugins +# with multiple line. + +class LogStash::Inputs::Dummy < LogStash::Inputs::Base + config_name "dummy" + + include ConfigFromMixin + + # option 1 description + config :option1, :type => :boolean, :default => false + + # option 2 description + config :option2, :type => :string, :default => "localhost" +end diff --git a/tools/logstash-docgen/spec/fixtures/vcr_cassettes/logstash-core.yml b/tools/logstash-docgen/spec/fixtures/vcr_cassettes/logstash-core.yml new file mode 100644 index 00000000000..cf0a5b39853 --- /dev/null +++ b/tools/logstash-docgen/spec/fixtures/vcr_cassettes/logstash-core.yml @@ -0,0 +1,1267 @@ +--- +http_interactions: +- request: + method: get + uri: https://rubygems.org/api/v1/dependencies?gems=logstash-core-plugin-api + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*" + User-Agent: + - Gems 0.8.3 + - Ruby + Authorization: + - 953b0543ac7ee8528d2a14f263615e33 + Connection: + - keep-alive + Keep-Alive: + - '30' + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Tue, 16 Aug 2016 13:07:19 GMT + Content-Type: + - application/octet-stream; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + X-Content-Type-Options: + - nosniff + Etag: + - W/"aafe8b2d5a54b17008aadfad2d80022c" + Cache-Control: + - max-age=0, private, must-revalidate + X-Request-Id: + - 6dd0326a-3a4c-4d60-8fc3-c76f07085872 + X-Runtime: + - '0.006193' + X-Ua-Compatible: + - IE=Edge,chrome=1 + body: + encoding: US-ASCII + string: !binary |- + BAhbIHsJOgluYW1lSSIdbG9nc3Rhc2gtY29yZS1wbHVnaW4tYXBpBjoGRVQ6 + C251bWJlckkiCjIuMS4zBjsGVDoNcGxhdGZvcm1JIglqYXZhBjsGVDoRZGVw + ZW5kZW5jaWVzWwZbB0kiEmxvZ3N0YXNoLWNvcmUGOwZUSSIdPSA1LjAuMC5h + bHBoYTMuc25hcHNob3Q2BjsGVHsJOwBJIh1sb2dzdGFzaC1jb3JlLXBsdWdp + bi1hcGkGOwZUOwdJIgoyLjEuOQY7BlQ7CEkiCWphdmEGOwZUOwlbBlsHSSIS + bG9nc3Rhc2gtY29yZQY7BlRJIh09IDUuMC4wLmFscGhhNC5zbmFwc2hvdDMG + OwZUewk7AEkiHWxvZ3N0YXNoLWNvcmUtcGx1Z2luLWFwaQY7BlQ7B0kiCjIu + MS42BjsGVDsISSIJamF2YQY7BlQ7CVsGWwdJIhJsb2dzdGFzaC1jb3JlBjsG + VEkiEz0gNS4wLjAuYWxwaGEzBjsGVHsJOwBJIh1sb2dzdGFzaC1jb3JlLXBs + dWdpbi1hcGkGOwZUOwdJIgoyLjEuMgY7BlQ7CEkiCWphdmEGOwZUOwlbBlsH + SSISbG9nc3Rhc2gtY29yZQY7BlRJIh09IDUuMC4wLmFscGhhMy5zbmFwc2hv + dDUGOwZUewk7AEkiHWxvZ3N0YXNoLWNvcmUtcGx1Z2luLWFwaQY7BlQ7B0ki + CzEuMTAuMAY7BlQ7CEkiCWphdmEGOwZUOwlbBlsHSSISbG9nc3Rhc2gtY29y + ZQY7BlRJIhc8PSAyLjMuMiwgPj0gMi4wLjAGOwZUewk7AEkiHWxvZ3N0YXNo + LWNvcmUtcGx1Z2luLWFwaQY7BlQ7B0kiCjEuOC4wBjsGVDsISSIJamF2YQY7 + BlQ7CVsGWwdJIhJsb2dzdGFzaC1jb3JlBjsGVEkiFzw9IDIuMy4xLCA+PSAy + LjAuMAY7BlR7CTsASSIdbG9nc3Rhc2gtY29yZS1wbHVnaW4tYXBpBjsGVDsH + SSIKMS41LjAGOwZUOwhJIglqYXZhBjsGVDsJWwZbB0kiEmxvZ3N0YXNoLWNv + cmUGOwZUSSIdPSA1LjAuMC5hbHBoYTEuc25hcHNob3QyBjsGVHsJOwBJIh1s + b2dzdGFzaC1jb3JlLXBsdWdpbi1hcGkGOwZUOwdJIgoyLjEuMQY7BlQ7CEki + CWphdmEGOwZUOwlbBlsHSSISbG9nc3Rhc2gtY29yZQY7BlRJIh09IDUuMC4w + LmFscGhhMy5zbmFwc2hvdDQGOwZUewk7AEkiHWxvZ3N0YXNoLWNvcmUtcGx1 + Z2luLWFwaQY7BlQ7B0kiCzEuMTYuMAY7BlQ7CEkiCWphdmEGOwZUOwlbBlsH + SSISbG9nc3Rhc2gtY29yZQY7BlRJIiE8PSAyLjMuMy5zbmFwc2hvdDEsID49 + IDIuMC4wBjsGVHsJOwBJIh1sb2dzdGFzaC1jb3JlLXBsdWdpbi1hcGkGOwZU + OwdJIgoxLjcuMAY7BlQ7CEkiCWphdmEGOwZUOwlbBlsHSSISbG9nc3Rhc2gt + Y29yZQY7BlRJIiE8PSAyLjMuMS5zbmFwc2hvdDEsID49IDIuMC4wBjsGVHsJ + OwBJIh1sb2dzdGFzaC1jb3JlLXBsdWdpbi1hcGkGOwZUOwdJIgoxLjEuMAY7 + BlQ7CEkiCWphdmEGOwZUOwlbBlsHSSISbG9nc3Rhc2gtY29yZQY7BlRJIiE8 + PSAyLjMuMC5zbmFwc2hvdDQsID49IDIuMC4wBjsGVHsJOwBJIh1sb2dzdGFz + aC1jb3JlLXBsdWdpbi1hcGkGOwZUOwdJIgoyLjEuNwY7BlQ7CEkiCWphdmEG + OwZUOwlbBlsHSSISbG9nc3Rhc2gtY29yZQY7BlRJIh09IDUuMC4wLmFscGhh + NC5zbmFwc2hvdDEGOwZUewk7AEkiHWxvZ3N0YXNoLWNvcmUtcGx1Z2luLWFw + aQY7BlQ7B0kiCzEuMTguMAY7BlQ7CEkiCWphdmEGOwZUOwlbBlsHSSISbG9n + c3Rhc2gtY29yZQY7BlRJIhc8PSAyLjMuMywgPj0gMi4wLjAGOwZUewk7AEki + HWxvZ3N0YXNoLWNvcmUtcGx1Z2luLWFwaQY7BlQ7B0kiCjIuMS40BjsGVDsI + SSIJamF2YQY7BlQ7CVsGWwdJIhJsb2dzdGFzaC1jb3JlBjsGVEkiHT0gNS4w + LjAuYWxwaGEzLnNuYXBzaG90NwY7BlR7CTsASSIdbG9nc3Rhc2gtY29yZS1w + bHVnaW4tYXBpBjsGVDsHSSIKMS4zLjAGOwZUOwhJIglqYXZhBjsGVDsJWwZb + B0kiEmxvZ3N0YXNoLWNvcmUGOwZUSSIXPD0gMi4zLjAsID49IDIuMC4wBjsG + VHsJOwBJIh1sb2dzdGFzaC1jb3JlLXBsdWdpbi1hcGkGOwZUOwdJIgsxLjE5 + LjAGOwZUOwhJIglqYXZhBjsGVDsJWwZbB0kiEmxvZ3N0YXNoLWNvcmUGOwZU + SSIhPD0gMi4zLjQuc25hcHNob3QxLCA+PSAyLjAuMAY7BlR7CTsASSIdbG9n + c3Rhc2gtY29yZS1wbHVnaW4tYXBpBjsGVDsHSSILMS4yMC4wBjsGVDsISSIJ + amF2YQY7BlQ7CVsGWwdJIhJsb2dzdGFzaC1jb3JlBjsGVEkiFzw9IDIuMy40 + LCA+PSAyLjAuMAY7BlR7CTsASSIdbG9nc3Rhc2gtY29yZS1wbHVnaW4tYXBp + BjsGVDsHSSIKMS45LjAGOwZUOwhJIglqYXZhBjsGVDsJWwZbB0kiEmxvZ3N0 + YXNoLWNvcmUGOwZUSSIhPD0gMi4zLjIuc25hcHNob3QxLCA+PSAyLjAuMAY7 + BlR7CTsASSIdbG9nc3Rhc2gtY29yZS1wbHVnaW4tYXBpBjsGVDsHSSILMS4x + Ny4wBjsGVDsISSIJamF2YQY7BlQ7CVsGWwdJIhJsb2dzdGFzaC1jb3JlBjsG + VEkiITw9IDIuMy4zLnNuYXBzaG90MiwgPj0gMi4wLjAGOwZUewk7AEkiHWxv + Z3N0YXNoLWNvcmUtcGx1Z2luLWFwaQY7BlQ7B0kiCjEuMi4wBjsGVDsISSIJ + amF2YQY7BlQ7CVsGWwdJIhJsb2dzdGFzaC1jb3JlBjsGVEkiITw9IDIuMy4w + LnNuYXBzaG90NSwgPj0gMi4wLjAGOwZUewk7AEkiHWxvZ3N0YXNoLWNvcmUt + cGx1Z2luLWFwaQY7BlQ7B0kiCjIuMS44BjsGVDsISSIJamF2YQY7BlQ7CVsG + WwdJIhJsb2dzdGFzaC1jb3JlBjsGVEkiHT0gNS4wLjAuYWxwaGE0LnNuYXBz + aG90MgY7BlR7CTsASSIdbG9nc3Rhc2gtY29yZS1wbHVnaW4tYXBpBjsGVDsH + SSIKMS40LjAGOwZUOwhJIglqYXZhBjsGVDsJWwZbB0kiEmxvZ3N0YXNoLWNv + cmUGOwZUSSIdPSA1LjAuMC5hbHBoYTEuc25hcHNob3QxBjsGVHsJOwBJIh1s + b2dzdGFzaC1jb3JlLXBsdWdpbi1hcGkGOwZUOwdJIgoxLjYuMAY7BlQ7CEki + CWphdmEGOwZUOwlbBlsHSSISbG9nc3Rhc2gtY29yZQY7BlRJIhM9IDUuMC4w + LmFscGhhMQY7BlR7CTsASSIdbG9nc3Rhc2gtY29yZS1wbHVnaW4tYXBpBjsG + VDsHSSIKMi4xLjUGOwZUOwhJIglqYXZhBjsGVDsJWwZbB0kiEmxvZ3N0YXNo + LWNvcmUGOwZUSSIdPSA1LjAuMC5hbHBoYTMuc25hcHNob3Q4BjsGVHsJOwBJ + Ih1sb2dzdGFzaC1jb3JlLXBsdWdpbi1hcGkGOwZUOwdJIgsyLjEuMTAGOwZU + OwhJIglqYXZhBjsGVDsJWwZbB0kiEmxvZ3N0YXNoLWNvcmUGOwZUSSIXPSA1 + LjAuMC5wcmUuYWxwaGE1BjsGVHsJOwBJIh1sb2dzdGFzaC1jb3JlLXBsdWdp + bi1hcGkGOwZUOwdJIgoxLjAuMAY7BlQ7CEkiCWphdmEGOwZUOwlbBlsHSSIS + bG9nc3Rhc2gtY29yZQY7BlRJIiE8PSAyLjMuMC5zbmFwc2hvdDMsID49IDIu + MC4wBjsGVHsJOwBJIh1sb2dzdGFzaC1jb3JlLXBsdWdpbi1hcGkGOwZUOwdJ + IgsyLjEuMTEGOwZUOwhJIglqYXZhBjsGVDsJWwZbB0kiEmxvZ3N0YXNoLWNv + cmUGOwZUSSIdPSA1LjAuMC5hbHBoYTUuc25hcHNob3QxBjsGVA== + http_version: + recorded_at: Tue, 16 Aug 2016 13:07:19 GMT +- request: + method: get + uri: https://rubygems.org/api/v1/dependencies?gems=logstash-core + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*" + User-Agent: + - Gems 0.8.3 + - Ruby + Authorization: + - 953b0543ac7ee8528d2a14f263615e33 + Connection: + - keep-alive + Keep-Alive: + - '30' + Content-Type: + - application/x-www-form-urlencoded + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Tue, 16 Aug 2016 13:07:20 GMT + Content-Type: + - application/octet-stream; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + X-Frame-Options: + - SAMEORIGIN + X-Xss-Protection: + - 1; mode=block + X-Content-Type-Options: + - nosniff + Etag: + - W/"f0e86058e0041b67adbc2854e6525213" + Cache-Control: + - max-age=0, private, must-revalidate + X-Request-Id: + - a37fa4e5-29a0-4eac-934b-e3cabf34ec13 + X-Runtime: + - '0.019220' + X-Ua-Compatible: + - IE=Edge,chrome=1 + body: + encoding: US-ASCII + string: !binary |- + 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 + SSIXPj0gMi4xNi4wLCB+PiAyLjE2BjsGVFsHSSIMc2luYXRyYQY7BlRJIhU+ + PSAxLjQuNiwgfj4gMS40BjsGVFsHSSIUY29uY3VycmVudC1ydWJ5BjsGVEki + DD0gMS4wLjAGOwZUWwdJIglnZW1zBjsGVEkiDX4+IDAuOC4zBjsGVFsHSSIN + ZmlsZXNpemUGOwZUSSIMPSAwLjAuNAY7BlRbB0kiCmNsYW1wBjsGVEkiDX4+ + IDAuNi41BjsGVFsHSSIJc3R1ZAY7BlRJIg5+PiAwLjAuMTkGOwZUWwdJIghw + cnkGOwZUSSIOfj4gMC4xMC4xBjsGVFsHSSIKY2FiaW4GOwZUSSINfj4gMC44 + LjAGOwZUWwdJIh1sb2dzdGFzaC1jb3JlLWV2ZW50LWphdmEGOwZUSSIefj4g + NS4wLjAuYWxwaGEyLnNuYXBzaG90MgY7BlR7CTsASSISbG9nc3Rhc2gtY29y + ZQY7BlQ7B0kiGDEuNS4wLnJjMy5zbmFwc2hvdDMGOwZUOwhJIglqYXZhBjsG + VDsJWxNbB0kiDmpyamFja3NvbgY7BlRJIgk+PSAwBjsGVFsHSSIWZmlsZS1k + ZXBlbmRlbmNpZXMGOwZUSSIMPSAwLjEuNgY7BlRbB0kiDG1pbml0YXIGOwZU + SSIJPj0gMAY7BlRbB0kiDHNpbmF0cmEGOwZUSSIJPj0gMAY7BlRbB0kiCXJh + Y2sGOwZUSSIJPj0gMAY7BlRbB0kiD21pbWUtdHlwZXMGOwZUSSIJPj0gMAY7 + BlRbB0kiCGZ0dwY7BlRJIg5+PiAwLjAuNDAGOwZUWwdJIglpMThuBjsGVEki + DD0gMC42LjkGOwZUWwdJIgx0cmVldG9wBjsGVEkiDX4+IDEuNC4wBjsGVFsH + SSINZmlsZXNpemUGOwZUSSIJPj0gMAY7BlRbB0kiCmNsYW1wBjsGVEkiCT49 + IDAGOwZUWwdJIglzdHVkBjsGVEkiCT49IDAGOwZUWwdJIghwcnkGOwZUSSIJ + Pj0gMAY7BlRbB0kiCmNhYmluBjsGVEkiDT49IDAuNy4wBjsGVHsJOwBJIhJs + b2dzdGFzaC1jb3JlBjsGVDsHSSIYMS41LjAucmM0LnNuYXBzaG90MgY7BlQ7 + CEkiCWphdmEGOwZUOwlbDlsHSSIOanJqYWNrc29uBjsGVEkiDX4+IDAuMi44 + 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 + YmluBjsGVEkiDX4+IDAuOC4wBjsGVFsHSSIdbG9nc3Rhc2gtY29yZS1ldmVu + dC1qYXZhBjsGVEkiDD0gMi4zLjAGOwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUG + OwZUOwdJIg4xLjUuMC5yYzIGOwZUOwhJIglqYXZhBjsGVDsJWxdbB0kiDmpy + amFja3NvbgY7BlRJIgk+PSAwBjsGVFsHSSIVanJ1YnktaHR0cGNsaWVudAY7 + BlRJIgk+PSAwBjsGVFsHSSIWZmlsZS1kZXBlbmRlbmNpZXMGOwZUSSIMPSAw + LjEuNgY7BlRbB0kiDG1pbml0YXIGOwZUSSIJPj0gMAY7BlRbB0kiEG1hdmVu + LXRvb2xzBjsGVEkiDD0gMS4wLjcGOwZUWwdJIg9ydWJ5LW1hdmVuBjsGVEki + ED0gMy4xLjEuMC44BjsGVFsHSSIVamFyLWRlcGVuZGVuY2llcwY7BlRJIgw9 + IDAuMS43BjsGVFsHSSIMc2luYXRyYQY7BlRJIgk+PSAwBjsGVFsHSSIJcmFj + awY7BlRJIgk+PSAwBjsGVFsHSSIPbWltZS10eXBlcwY7BlRJIgk+PSAwBjsG + VFsHSSIIZnR3BjsGVEkiDn4+IDAuMC40MAY7BlRbB0kiCWkxOG4GOwZUSSIM + PSAwLjYuOQY7BlRbB0kiDHRyZWV0b3AGOwZUSSINfj4gMS40LjAGOwZUWwdJ + Ig1maWxlc2l6ZQY7BlRJIgk+PSAwBjsGVFsHSSIKY2xhbXAGOwZUSSIJPj0g + MAY7BlRbB0kiCXN0dWQGOwZUSSIJPj0gMAY7BlRbB0kiCHByeQY7BlRJIgk+ + PSAwBjsGVFsHSSIKY2FiaW4GOwZUSSINPj0gMC43LjAGOwZUewk7AEkiEmxv + Z3N0YXNoLWNvcmUGOwZUOwdJIhs1LjAuMC5hbHBoYTQuc25hcHNob3QzBjsG + VDsISSIJamF2YQY7BlQ7CVsYWwdJIg5qcmphY2tzb24GOwZUSSINfj4gMC4z + LjcGOwZUWwdJIhB0aHJlYWRfc2FmZQY7BlRJIg1+PiAwLjMuNQY7BlRbB0ki + DHJ1Ynl6aXAGOwZUSSINfj4gMS4xLjcGOwZUWwdJIgxtaW5pdGFyBjsGVEki + DX4+IDAuNS40BjsGVFsHSSIJaTE4bgY7BlRJIgw9IDAuNi45BjsGVFsHSSIM + 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 + PSAwLjAuNAY7BlRbB0kiCmNsYW1wBjsGVEkiDX4+IDAuNi41BjsGVFsHSSIJ + c3R1ZAY7BlRJIg5+PiAwLjAuMTkGOwZUWwdJIghwcnkGOwZUSSIOfj4gMC4x + MC4xBjsGVFsHSSIKY2FiaW4GOwZUSSINfj4gMC43LjAGOwZUWwdJIhhsb2dz + dGFzaC1jb3JlLWV2ZW50BjsGVEkiF34+IDIuMi4wLnNuYXBzaG90MgY7BlR7 + CTsASSISbG9nc3Rhc2gtY29yZQY7BlQ7B0kiGzUuMC4wLmFscGhhMS5zbmFw + c2hvdDEGOwZUOwhJIglqYXZhBjsGVDsJWxhbB0kiDmpyamFja3NvbgY7BlRJ + Ig1+PiAwLjMuNwY7BlRbB0kiEHRocmVhZF9zYWZlBjsGVEkiDX4+IDAuMy41 + BjsGVFsHSSIMcnVieXppcAY7BlRJIg1+PiAxLjEuNwY7BlRbB0kiDG1pbml0 + YXIGOwZUSSINfj4gMC41LjQGOwZUWwdJIglpMThuBjsGVEkiDD0gMC42LjkG + OwZUWwdJIgx0cmVldG9wBjsGVEkiDDwgMS41LjAGOwZUWwdJIhVqcnVieS1t + b25pdG9yaW5nBjsGVEkiC34+IDAuMQY7BlRbB0kiFWNocm9uaWNfZHVyYXRp + b24GOwZUSSINPSAwLjEwLjYGOwZUWwdJIhJqcnVieS1vcGVuc3NsBjsGVEki + DT0gMC45LjEzBjsGVFsHSSIJcHVtYQY7BlRJIhc+PSAyLjE2LjAsIH4+IDIu + MTYGOwZUWwdJIgxzaW5hdHJhBjsGVEkiFT49IDEuNC42LCB+PiAxLjQGOwZU + WwdJIhRjb25jdXJyZW50LXJ1YnkGOwZUSSIMPSAxLjAuMAY7BlRbB0kiCWdl + bXMGOwZUSSINfj4gMC44LjMGOwZUWwdJIg1maWxlc2l6ZQY7BlRJIgw9IDAu + MC40BjsGVFsHSSIKY2xhbXAGOwZUSSINfj4gMC42LjUGOwZUWwdJIglzdHVk + BjsGVEkiDn4+IDAuMC4xOQY7BlRbB0kiCHByeQY7BlRJIg5+PiAwLjEwLjEG + OwZUWwdJIgpjYWJpbgY7BlRJIg1+PiAwLjguMAY7BlRbB0kiHWxvZ3N0YXNo + LWNvcmUtZXZlbnQtamF2YQY7BlRJIh5+PiA1LjAuMC5hbHBoYTEuc25hcHNo + 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 + VEkiFz49IDIuMTYuMCwgfj4gMi4xNgY7BlRbB0kiDHNpbmF0cmEGOwZUSSIV + Pj0gMS40LjYsIH4+IDEuNAY7BlRbB0kiFGNvbmN1cnJlbnQtcnVieQY7BlRJ + Igw9IDEuMC4wBjsGVFsHSSIJZ2VtcwY7BlRJIg1+PiAwLjguMwY7BlRbB0ki + DWZpbGVzaXplBjsGVEkiDD0gMC4wLjQGOwZUWwdJIgpjbGFtcAY7BlRJIg1+ + PiAwLjYuNQY7BlRbB0kiCXN0dWQGOwZUSSIOfj4gMC4wLjE5BjsGVFsHSSII + cHJ5BjsGVEkiDn4+IDAuMTAuMQY7BlRbB0kiCmNhYmluBjsGVEkiDX4+IDAu + OC4wBjsGVFsHSSIdbG9nc3Rhc2gtY29yZS1ldmVudC1qYXZhBjsGVEkiHn4+ + IDUuMC4wLmFscGhhMi5zbmFwc2hvdDEGOwZUewk7AEkiEmxvZ3N0YXNoLWNv + cmUGOwZUOwdJIhAxLjUuMC5yYzEuMQY7BlQ7CEkiCWphdmEGOwZUOwlbF1sH + SSIOanJqYWNrc29uBjsGVEkiCT49IDAGOwZUWwdJIhVqcnVieS1odHRwY2xp + ZW50BjsGVEkiCT49IDAGOwZUWwdJIhZmaWxlLWRlcGVuZGVuY2llcwY7BlRJ + Igw9IDAuMS42BjsGVFsHSSIMbWluaXRhcgY7BlRJIgk+PSAwBjsGVFsHSSIQ + bWF2ZW4tdG9vbHMGOwZUSSIMPSAxLjAuNwY7BlRbB0kiD3J1YnktbWF2ZW4G + OwZUSSIQPSAzLjEuMS4wLjgGOwZUWwdJIhVqYXItZGVwZW5kZW5jaWVzBjsG + VEkiDD0gMC4xLjcGOwZUWwdJIgxzaW5hdHJhBjsGVEkiCT49IDAGOwZUWwdJ + IglyYWNrBjsGVEkiCT49IDAGOwZUWwdJIg9taW1lLXR5cGVzBjsGVEkiCT49 + IDAGOwZUWwdJIghmdHcGOwZUSSIOfj4gMC4wLjQwBjsGVFsHSSIJaTE4bgY7 + BlRJIgw9IDAuNi45BjsGVFsHSSIMdHJlZXRvcAY7BlRJIg1+PiAxLjQuMAY7 + BlRbB0kiDWZpbGVzaXplBjsGVEkiCT49IDAGOwZUWwdJIgpjbGFtcAY7BlRJ + Igk+PSAwBjsGVFsHSSIJc3R1ZAY7BlRJIgk+PSAwBjsGVFsHSSIIcHJ5BjsG + VEkiCT49IDAGOwZUWwdJIgpjYWJpbgY7BlRJIg0+PSAwLjcuMAY7BlR7CTsA + SSISbG9nc3Rhc2gtY29yZQY7BlQ7B0kiFDIuMC4xLnNuYXBzaG90MQY7BlQ7 + CEkiCWphdmEGOwZUOwlbElsHSSIOanJqYWNrc29uBjsGVEkiDX4+IDAuMy43 + BjsGVFsHSSIQdGhyZWFkX3NhZmUGOwZUSSINfj4gMC4zLjUGOwZUWwdJIgxt + aW5pdGFyBjsGVEkiDX4+IDAuNS40BjsGVFsHSSIJaTE4bgY7BlRJIgw9IDAu + Ni45BjsGVFsHSSIMdHJlZXRvcAY7BlRJIgw8IDEuNS4wBjsGVFsHSSISanJ1 + Ynktb3BlbnNzbAY7BlRJIg4+PSAwLjkuMTEGOwZUWwdJIhRjb25jdXJyZW50 + LXJ1YnkGOwZUSSINfj4gMC45LjEGOwZUWwdJIglnZW1zBjsGVEkiDX4+IDAu + OC4zBjsGVFsHSSINZmlsZXNpemUGOwZUSSIMPSAwLjAuNAY7BlRbB0kiCmNs + YW1wBjsGVEkiDX4+IDAuNi41BjsGVFsHSSIJc3R1ZAY7BlRJIg5+PiAwLjAu + MTkGOwZUWwdJIghwcnkGOwZUSSIOfj4gMC4xMC4xBjsGVFsHSSIKY2FiaW4G + OwZUSSINfj4gMC43LjAGOwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUGOwZUOwdJ + Ihs1LjAuMC5hbHBoYTMuc25hcHNob3Q3BjsGVDsISSIJamF2YQY7BlQ7CVsY + WwdJIg5qcmphY2tzb24GOwZUSSINfj4gMC4zLjcGOwZUWwdJIhB0aHJlYWRf + c2FmZQY7BlRJIg1+PiAwLjMuNQY7BlRbB0kiDHJ1Ynl6aXAGOwZUSSINfj4g + MS4xLjcGOwZUWwdJIgxtaW5pdGFyBjsGVEkiDX4+IDAuNS40BjsGVFsHSSIJ + aTE4bgY7BlRJIgw9IDAuNi45BjsGVFsHSSIMdHJlZXRvcAY7BlRJIgw8IDEu + NS4wBjsGVFsHSSIOanJtb25pdG9yBjsGVEkiDX4+IDAuNC4yBjsGVFsHSSIV + Y2hyb25pY19kdXJhdGlvbgY7BlRJIg09IDAuMTAuNgY7BlRbB0kiEmpydWJ5 + LW9wZW5zc2wGOwZUSSINPSAwLjkuMTYGOwZUWwdJIglwdW1hBjsGVEkiDH4+ + IDIuMTYGOwZUWwdJIgxzaW5hdHJhBjsGVEkiFT49IDEuNC42LCB+PiAxLjQG + OwZUWwdJIhRjb25jdXJyZW50LXJ1YnkGOwZUSSIMPSAxLjAuMAY7BlRbB0ki + CWdlbXMGOwZUSSINfj4gMC44LjMGOwZUWwdJIg1maWxlc2l6ZQY7BlRJIgw9 + IDAuMC40BjsGVFsHSSIKY2xhbXAGOwZUSSINfj4gMC42LjUGOwZUWwdJIglz + dHVkBjsGVEkiDn4+IDAuMC4xOQY7BlRbB0kiCHByeQY7BlRJIg5+PiAwLjEw + LjEGOwZUWwdJIgpjYWJpbgY7BlRJIg1+PiAwLjguMAY7BlRbB0kiHWxvZ3N0 + YXNoLWNvcmUtZXZlbnQtamF2YQY7BlRJIh09IDUuMC4wLmFscGhhMy5zbmFw + c2hvdDcGOwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUGOwZUOwdJIgoyLjAuMAY7 + BlQ7CEkiCWphdmEGOwZUOwlbElsHSSIOanJqYWNrc29uBjsGVEkiDX4+IDAu + My42BjsGVFsHSSIQdGhyZWFkX3NhZmUGOwZUSSINfj4gMC4zLjUGOwZUWwdJ + IgxtaW5pdGFyBjsGVEkiDX4+IDAuNS40BjsGVFsHSSIJaTE4bgY7BlRJIgw9 + IDAuNi45BjsGVFsHSSIMdHJlZXRvcAY7BlRJIgw8IDEuNS4wBjsGVFsHSSIS + anJ1Ynktb3BlbnNzbAY7BlRJIg4+PSAwLjkuMTEGOwZUWwdJIhRjb25jdXJy + ZW50LXJ1YnkGOwZUSSINfj4gMC45LjEGOwZUWwdJIglnZW1zBjsGVEkiDX4+ + IDAuOC4zBjsGVFsHSSINZmlsZXNpemUGOwZUSSIMPSAwLjAuNAY7BlRbB0ki + CmNsYW1wBjsGVEkiDX4+IDAuNi41BjsGVFsHSSIJc3R1ZAY7BlRJIg5+PiAw + LjAuMTkGOwZUWwdJIghwcnkGOwZUSSIOfj4gMC4xMC4xBjsGVFsHSSIKY2Fi + aW4GOwZUSSINfj4gMC43LjAGOwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUGOwZU + OwdJIgoyLjEuMAY7BlQ7CEkiCWphdmEGOwZUOwlbE1sHSSIOanJqYWNrc29u + BjsGVEkiDX4+IDAuMy43BjsGVFsHSSIQdGhyZWFkX3NhZmUGOwZUSSINfj4g + MC4zLjUGOwZUWwdJIgxydWJ5emlwBjsGVEkiDX4+IDEuMS43BjsGVFsHSSIM + bWluaXRhcgY7BlRJIg1+PiAwLjUuNAY7BlRbB0kiCWkxOG4GOwZUSSIMPSAw + LjYuOQY7BlRbB0kiDHRyZWV0b3AGOwZUSSIMPCAxLjUuMAY7BlRbB0kiEmpy + dWJ5LW9wZW5zc2wGOwZUSSIOPj0gMC45LjExBjsGVFsHSSIUY29uY3VycmVu + dC1ydWJ5BjsGVEkiDD0gMC45LjIGOwZUWwdJIglnZW1zBjsGVEkiDX4+IDAu + OC4zBjsGVFsHSSINZmlsZXNpemUGOwZUSSIMPSAwLjAuNAY7BlRbB0kiCmNs + YW1wBjsGVEkiDX4+IDAuNi41BjsGVFsHSSIJc3R1ZAY7BlRJIg5+PiAwLjAu + MTkGOwZUWwdJIghwcnkGOwZUSSIOfj4gMC4xMC4xBjsGVFsHSSIKY2FiaW4G + OwZUSSINfj4gMC43LjAGOwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUGOwZUOwdJ + IgoyLjEuMwY7BlQ7CEkiCWphdmEGOwZUOwlbE1sHSSIOanJqYWNrc29uBjsG + VEkiDX4+IDAuMy43BjsGVFsHSSIQdGhyZWFkX3NhZmUGOwZUSSINfj4gMC4z + LjUGOwZUWwdJIgxydWJ5emlwBjsGVEkiDX4+IDEuMS43BjsGVFsHSSIMbWlu + aXRhcgY7BlRJIg1+PiAwLjUuNAY7BlRbB0kiCWkxOG4GOwZUSSIMPSAwLjYu + OQY7BlRbB0kiDHRyZWV0b3AGOwZUSSIMPCAxLjUuMAY7BlRbB0kiEmpydWJ5 + LW9wZW5zc2wGOwZUSSINPSAwLjkuMTMGOwZUWwdJIhRjb25jdXJyZW50LXJ1 + YnkGOwZUSSIMPSAwLjkuMgY7BlRbB0kiCWdlbXMGOwZUSSINfj4gMC44LjMG + OwZUWwdJIg1maWxlc2l6ZQY7BlRJIgw9IDAuMC40BjsGVFsHSSIKY2xhbXAG + OwZUSSINfj4gMC42LjUGOwZUWwdJIglzdHVkBjsGVEkiDn4+IDAuMC4xOQY7 + BlRbB0kiCHByeQY7BlRJIg5+PiAwLjEwLjEGOwZUWwdJIgpjYWJpbgY7BlRJ + Ig1+PiAwLjcuMAY7BlR7CTsASSISbG9nc3Rhc2gtY29yZQY7BlQ7B0kiFDIu + My4xLnNuYXBzaG90MQY7BlQ7CEkiCWphdmEGOwZUOwlbFFsHSSIOanJqYWNr + c29uBjsGVEkiDX4+IDAuMy43BjsGVFsHSSIQdGhyZWFkX3NhZmUGOwZUSSIN + fj4gMC4zLjUGOwZUWwdJIgxydWJ5emlwBjsGVEkiDX4+IDEuMS43BjsGVFsH + SSIMbWluaXRhcgY7BlRJIg1+PiAwLjUuNAY7BlRbB0kiCWkxOG4GOwZUSSIM + PSAwLjYuOQY7BlRbB0kiDHRyZWV0b3AGOwZUSSIMPCAxLjUuMAY7BlRbB0ki + EmpydWJ5LW9wZW5zc2wGOwZUSSINPSAwLjkuMTMGOwZUWwdJIhRjb25jdXJy + ZW50LXJ1YnkGOwZUSSIMPSAwLjkuMgY7BlRbB0kiCWdlbXMGOwZUSSINfj4g + MC44LjMGOwZUWwdJIg1maWxlc2l6ZQY7BlRJIgw9IDAuMC40BjsGVFsHSSIK + Y2xhbXAGOwZUSSINfj4gMC42LjUGOwZUWwdJIglzdHVkBjsGVEkiDn4+IDAu + MC4xOQY7BlRbB0kiCHByeQY7BlRJIg5+PiAwLjEwLjEGOwZUWwdJIgpjYWJp + bgY7BlRJIg1+PiAwLjguMAY7BlRbB0kiGGxvZ3N0YXNoLWNvcmUtZXZlbnQG + OwZUSSIWPSAyLjMuMS5zbmFwc2hvdDEGOwZUewk7AEkiEmxvZ3N0YXNoLWNv + cmUGOwZUOwdJIgoxLjUuNgY7BlQ7CEkiCWphdmEGOwZUOwlbElsHSSIOanJq + YWNrc29uBjsGVEkiDX4+IDAuMy43BjsGVFsHSSIQdGhyZWFkX3NhZmUGOwZU + SSINfj4gMC4zLjUGOwZUWwdJIgxtaW5pdGFyBjsGVEkiDX4+IDAuNS40BjsG + VFsHSSIJaTE4bgY7BlRJIgw9IDAuNi45BjsGVFsHSSIMdHJlZXRvcAY7BlRJ + Igw8IDEuNS4wBjsGVFsHSSISanJ1Ynktb3BlbnNzbAY7BlRJIg4+PSAwLjku + MTEGOwZUWwdJIhRjb25jdXJyZW50LXJ1YnkGOwZUSSIMPSAwLjkuMgY7BlRb + B0kiCWdlbXMGOwZUSSINfj4gMC44LjMGOwZUWwdJIg1maWxlc2l6ZQY7BlRJ + Igw9IDAuMC40BjsGVFsHSSIKY2xhbXAGOwZUSSINfj4gMC42LjUGOwZUWwdJ + IglzdHVkBjsGVEkiDn4+IDAuMC4xOQY7BlRbB0kiCHByeQY7BlRJIg5+PiAw + LjEwLjEGOwZUWwdJIgpjYWJpbgY7BlRJIg1+PiAwLjcuMAY7BlR7CTsASSIS + bG9nc3Rhc2gtY29yZQY7BlQ7B0kiFDIuMi4zLnNuYXBzaG90MgY7BlQ7CEki + CWphdmEGOwZUOwlbFFsHSSIOanJqYWNrc29uBjsGVEkiDX4+IDAuMy43BjsG + VFsHSSIQdGhyZWFkX3NhZmUGOwZUSSINfj4gMC4zLjUGOwZUWwdJIgxydWJ5 + emlwBjsGVEkiDX4+IDEuMS43BjsGVFsHSSIMbWluaXRhcgY7BlRJIg1+PiAw + LjUuNAY7BlRbB0kiCWkxOG4GOwZUSSIMPSAwLjYuOQY7BlRbB0kiDHRyZWV0 + b3AGOwZUSSIMPCAxLjUuMAY7BlRbB0kiEmpydWJ5LW9wZW5zc2wGOwZUSSIN + PSAwLjkuMTMGOwZUWwdJIhRjb25jdXJyZW50LXJ1YnkGOwZUSSIMPSAwLjku + MgY7BlRbB0kiCWdlbXMGOwZUSSINfj4gMC44LjMGOwZUWwdJIg1maWxlc2l6 + ZQY7BlRJIgw9IDAuMC40BjsGVFsHSSIKY2xhbXAGOwZUSSINfj4gMC42LjUG + OwZUWwdJIglzdHVkBjsGVEkiDn4+IDAuMC4xOQY7BlRbB0kiCHByeQY7BlRJ + Ig5+PiAwLjEwLjEGOwZUWwdJIgpjYWJpbgY7BlRJIg1+PiAwLjcuMAY7BlRb + B0kiGGxvZ3N0YXNoLWNvcmUtZXZlbnQGOwZUSSIXfj4gMi4yLjMuc25hcHNo + b3QyBjsGVHsJOwBJIhJsb2dzdGFzaC1jb3JlBjsGVDsHSSIUMS41LjAuc25h + cHNob3QxBjsGVDsISSIJamF2YQY7BlQ7CVsOWwdJIg5qcmphY2tzb24GOwZU + SSINfj4gMC4yLjgGOwZUWwdJIgxtaW5pdGFyBjsGVEkiDX4+IDAuNS40BjsG + VFsHSSIJaTE4bgY7BlRJIgw9IDAuNi45BjsGVFsHSSIMdHJlZXRvcAY7BlRJ + Igw8IDEuNS4wBjsGVFsHSSINZmlsZXNpemUGOwZUSSIMPSAwLjAuNAY7BlRb + B0kiCmNsYW1wBjsGVEkiDX4+IDAuNi41BjsGVFsHSSIJc3R1ZAY7BlRJIg5+ + PiAwLjAuMTkGOwZUWwdJIghwcnkGOwZUSSIOfj4gMC4xMC4xBjsGVFsHSSIK + Y2FiaW4GOwZUSSINfj4gMC43LjAGOwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUG + OwZUOwdJIhQxLjUuNC5zbmFwc2hvdDMGOwZUOwhJIglqYXZhBjsGVDsJWxBb + B0kiDmpyamFja3NvbgY7BlRJIg1+PiAwLjIuOQY7BlRbB0kiEHRocmVhZF9z + YWZlBjsGVEkiDX4+IDAuMy41BjsGVFsHSSIMbWluaXRhcgY7BlRJIg1+PiAw + LjUuNAY7BlRbB0kiCWkxOG4GOwZUSSIMPSAwLjYuOQY7BlRbB0kiDHRyZWV0 + b3AGOwZUSSIMPCAxLjUuMAY7BlRbB0kiCWdlbXMGOwZUSSINfj4gMC44LjMG + OwZUWwdJIg1maWxlc2l6ZQY7BlRJIgw9IDAuMC40BjsGVFsHSSIKY2xhbXAG + OwZUSSINfj4gMC42LjUGOwZUWwdJIglzdHVkBjsGVEkiDn4+IDAuMC4xOQY7 + BlRbB0kiCHByeQY7BlRJIg5+PiAwLjEwLjEGOwZUWwdJIgpjYWJpbgY7BlRJ + Ig1+PiAwLjcuMAY7BlR7CTsASSISbG9nc3Rhc2gtY29yZQY7BlQ7B0kiCjEu + NS4yBjsGVDsISSIJamF2YQY7BlQ7CVsQWwdJIg5qcmphY2tzb24GOwZUSSIN + fj4gMC4yLjgGOwZUWwdJIhB0aHJlYWRfc2FmZQY7BlRJIg1+PiAwLjMuNQY7 + BlRbB0kiDG1pbml0YXIGOwZUSSINfj4gMC41LjQGOwZUWwdJIglpMThuBjsG + VEkiDD0gMC42LjkGOwZUWwdJIgx0cmVldG9wBjsGVEkiDDwgMS41LjAGOwZU + WwdJIglnZW1zBjsGVEkiDX4+IDAuOC4zBjsGVFsHSSINZmlsZXNpemUGOwZU + SSIMPSAwLjAuNAY7BlRbB0kiCmNsYW1wBjsGVEkiDX4+IDAuNi41BjsGVFsH + SSIJc3R1ZAY7BlRJIg5+PiAwLjAuMTkGOwZUWwdJIghwcnkGOwZUSSIOfj4g + MC4xMC4xBjsGVFsHSSIKY2FiaW4GOwZUSSINfj4gMC43LjAGOwZUewk7AEki + EmxvZ3N0YXNoLWNvcmUGOwZUOwdJIgoyLjIuMwY7BlQ7CEkiCWphdmEGOwZU + OwlbFFsHSSIOanJqYWNrc29uBjsGVEkiDX4+IDAuMy43BjsGVFsHSSIQdGhy + ZWFkX3NhZmUGOwZUSSINfj4gMC4zLjUGOwZUWwdJIgxydWJ5emlwBjsGVEki + DX4+IDEuMS43BjsGVFsHSSIMbWluaXRhcgY7BlRJIg1+PiAwLjUuNAY7BlRb + B0kiCWkxOG4GOwZUSSIMPSAwLjYuOQY7BlRbB0kiDHRyZWV0b3AGOwZUSSIM + PCAxLjUuMAY7BlRbB0kiEmpydWJ5LW9wZW5zc2wGOwZUSSINPSAwLjkuMTMG + OwZUWwdJIhRjb25jdXJyZW50LXJ1YnkGOwZUSSIMPSAwLjkuMgY7BlRbB0ki + CWdlbXMGOwZUSSINfj4gMC44LjMGOwZUWwdJIg1maWxlc2l6ZQY7BlRJIgw9 + IDAuMC40BjsGVFsHSSIKY2xhbXAGOwZUSSINfj4gMC42LjUGOwZUWwdJIglz + dHVkBjsGVEkiDn4+IDAuMC4xOQY7BlRbB0kiCHByeQY7BlRJIg5+PiAwLjEw + LjEGOwZUWwdJIgpjYWJpbgY7BlRJIg1+PiAwLjcuMAY7BlRbB0kiGGxvZ3N0 + YXNoLWNvcmUtZXZlbnQGOwZUSSINfj4gMi4yLjMGOwZUewk7AEkiEmxvZ3N0 + YXNoLWNvcmUGOwZUOwdJIhQyLjEuMC5zbmFwc2hvdDQGOwZUOwhJIglqYXZh + BjsGVDsJWxNbB0kiDmpyamFja3NvbgY7BlRJIg1+PiAwLjMuNwY7BlRbB0ki + EHRocmVhZF9zYWZlBjsGVEkiDX4+IDAuMy41BjsGVFsHSSIMcnVieXppcAY7 + BlRJIg1+PiAxLjEuNwY7BlRbB0kiDG1pbml0YXIGOwZUSSINfj4gMC41LjQG + OwZUWwdJIglpMThuBjsGVEkiDD0gMC42LjkGOwZUWwdJIgx0cmVldG9wBjsG + VEkiDDwgMS41LjAGOwZUWwdJIhJqcnVieS1vcGVuc3NsBjsGVEkiDj49IDAu + OS4xMQY7BlRbB0kiFGNvbmN1cnJlbnQtcnVieQY7BlRJIgw9IDAuOS4yBjsG + VFsHSSIJZ2VtcwY7BlRJIg1+PiAwLjguMwY7BlRbB0kiDWZpbGVzaXplBjsG + VEkiDD0gMC4wLjQGOwZUWwdJIgpjbGFtcAY7BlRJIg1+PiAwLjYuNQY7BlRb + B0kiCXN0dWQGOwZUSSIOfj4gMC4wLjE5BjsGVFsHSSIIcHJ5BjsGVEkiDn4+ + IDAuMTAuMQY7BlRbB0kiCmNhYmluBjsGVEkiDX4+IDAuNy4wBjsGVHsJOwBJ + IhJsb2dzdGFzaC1jb3JlBjsGVDsHSSIUMi4zLjIuc25hcHNob3QxBjsGVDsI + SSIJamF2YQY7BlQ7CVsUWwdJIg5qcmphY2tzb24GOwZUSSINfj4gMC4zLjcG + OwZUWwdJIhB0aHJlYWRfc2FmZQY7BlRJIg1+PiAwLjMuNQY7BlRbB0kiDHJ1 + Ynl6aXAGOwZUSSINfj4gMS4xLjcGOwZUWwdJIgxtaW5pdGFyBjsGVEkiDX4+ + IDAuNS40BjsGVFsHSSIJaTE4bgY7BlRJIgw9IDAuNi45BjsGVFsHSSIMdHJl + ZXRvcAY7BlRJIgw8IDEuNS4wBjsGVFsHSSISanJ1Ynktb3BlbnNzbAY7BlRJ + Ig09IDAuOS4xMwY7BlRbB0kiFGNvbmN1cnJlbnQtcnVieQY7BlRJIgw9IDAu + OS4yBjsGVFsHSSIJZ2VtcwY7BlRJIg1+PiAwLjguMwY7BlRbB0kiDWZpbGVz + aXplBjsGVEkiDD0gMC4wLjQGOwZUWwdJIgpjbGFtcAY7BlRJIg1+PiAwLjYu + NQY7BlRbB0kiCXN0dWQGOwZUSSIOfj4gMC4wLjE5BjsGVFsHSSIIcHJ5BjsG + VEkiDn4+IDAuMTAuMQY7BlRbB0kiCmNhYmluBjsGVEkiDX4+IDAuOC4wBjsG + VFsHSSIYbG9nc3Rhc2gtY29yZS1ldmVudAY7BlRJIhY9IDIuMy4yLnNuYXBz + aG90MQY7BlR7CTsASSISbG9nc3Rhc2gtY29yZQY7BlQ7B0kiFDIuMS4wLnNu + YXBzaG90MwY7BlQ7CEkiCWphdmEGOwZUOwlbE1sHSSIOanJqYWNrc29uBjsG + VEkiDX4+IDAuMy43BjsGVFsHSSIQdGhyZWFkX3NhZmUGOwZUSSINfj4gMC4z + LjUGOwZUWwdJIgxydWJ5emlwBjsGVEkiDX4+IDEuMS43BjsGVFsHSSIMbWlu + aXRhcgY7BlRJIg1+PiAwLjUuNAY7BlRbB0kiCWkxOG4GOwZUSSIMPSAwLjYu + OQY7BlRbB0kiDHRyZWV0b3AGOwZUSSIMPCAxLjUuMAY7BlRbB0kiEmpydWJ5 + LW9wZW5zc2wGOwZUSSIOPj0gMC45LjExBjsGVFsHSSIUY29uY3VycmVudC1y + dWJ5BjsGVEkiDD0gMC45LjIGOwZUWwdJIglnZW1zBjsGVEkiDX4+IDAuOC4z + BjsGVFsHSSINZmlsZXNpemUGOwZUSSIMPSAwLjAuNAY7BlRbB0kiCmNsYW1w + BjsGVEkiDX4+IDAuNi41BjsGVFsHSSIJc3R1ZAY7BlRJIg5+PiAwLjAuMTkG + OwZUWwdJIghwcnkGOwZUSSIOfj4gMC4xMC4xBjsGVFsHSSIKY2FiaW4GOwZU + SSINfj4gMC43LjAGOwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUGOwZUOwdJIg4y + LjAuMC5yYzEGOwZUOwhJIglqYXZhBjsGVDsJWxJbB0kiDmpyamFja3NvbgY7 + BlRJIg1+PiAwLjMuNgY7BlRbB0kiEHRocmVhZF9zYWZlBjsGVEkiDX4+IDAu + My41BjsGVFsHSSIMbWluaXRhcgY7BlRJIg1+PiAwLjUuNAY7BlRbB0kiCWkx + OG4GOwZUSSIMPSAwLjYuOQY7BlRbB0kiDHRyZWV0b3AGOwZUSSIMPCAxLjUu + MAY7BlRbB0kiEmpydWJ5LW9wZW5zc2wGOwZUSSIOPj0gMC45LjExBjsGVFsH + SSIUY29uY3VycmVudC1ydWJ5BjsGVEkiDX4+IDAuOS4xBjsGVFsHSSIJZ2Vt + cwY7BlRJIg1+PiAwLjguMwY7BlRbB0kiDWZpbGVzaXplBjsGVEkiDD0gMC4w + LjQGOwZUWwdJIgpjbGFtcAY7BlRJIg1+PiAwLjYuNQY7BlRbB0kiCXN0dWQG + OwZUSSIOfj4gMC4wLjE5BjsGVFsHSSIIcHJ5BjsGVEkiDn4+IDAuMTAuMQY7 + BlRbB0kiCmNhYmluBjsGVEkiDX4+IDAuNy4wBjsGVHsJOwBJIhJsb2dzdGFz + aC1jb3JlBjsGVDsHSSIbNS4wLjAuYWxwaGEzLnNuYXBzaG90NAY7BlQ7CEki + CWphdmEGOwZUOwlbGFsHSSIOanJqYWNrc29uBjsGVEkiDX4+IDAuMy43BjsG + VFsHSSIQdGhyZWFkX3NhZmUGOwZUSSINfj4gMC4zLjUGOwZUWwdJIgxydWJ5 + emlwBjsGVEkiDX4+IDEuMS43BjsGVFsHSSIMbWluaXRhcgY7BlRJIg1+PiAw + LjUuNAY7BlRbB0kiCWkxOG4GOwZUSSIMPSAwLjYuOQY7BlRbB0kiDHRyZWV0 + b3AGOwZUSSIMPCAxLjUuMAY7BlRbB0kiFWpydWJ5LW1vbml0b3JpbmcGOwZU + SSINfj4gMC4zLjEGOwZUWwdJIhVjaHJvbmljX2R1cmF0aW9uBjsGVEkiDT0g + MC4xMC42BjsGVFsHSSISanJ1Ynktb3BlbnNzbAY7BlRJIg09IDAuOS4xNgY7 + BlRbB0kiCXB1bWEGOwZUSSIXPj0gMi4xNi4wLCB+PiAyLjE2BjsGVFsHSSIM + c2luYXRyYQY7BlRJIhU+PSAxLjQuNiwgfj4gMS40BjsGVFsHSSIUY29uY3Vy + cmVudC1ydWJ5BjsGVEkiDD0gMS4wLjAGOwZUWwdJIglnZW1zBjsGVEkiDX4+ + IDAuOC4zBjsGVFsHSSINZmlsZXNpemUGOwZUSSIMPSAwLjAuNAY7BlRbB0ki + CmNsYW1wBjsGVEkiDX4+IDAuNi41BjsGVFsHSSIJc3R1ZAY7BlRJIg5+PiAw + LjAuMTkGOwZUWwdJIghwcnkGOwZUSSIOfj4gMC4xMC4xBjsGVFsHSSIKY2Fi + aW4GOwZUSSINfj4gMC44LjAGOwZUWwdJIh1sb2dzdGFzaC1jb3JlLWV2ZW50 + LWphdmEGOwZUSSIdPSA1LjAuMC5hbHBoYTMuc25hcHNob3Q0BjsGVHsJOwBJ + IhJsb2dzdGFzaC1jb3JlBjsGVDsHSSIUMS41LjQuc25hcHNob3QxBjsGVDsI + SSIJamF2YQY7BlQ7CVsQWwdJIg5qcmphY2tzb24GOwZUSSINfj4gMC4yLjkG + OwZUWwdJIhB0aHJlYWRfc2FmZQY7BlRJIg1+PiAwLjMuNQY7BlRbB0kiDG1p + bml0YXIGOwZUSSINfj4gMC41LjQGOwZUWwdJIglpMThuBjsGVEkiDD0gMC42 + LjkGOwZUWwdJIgx0cmVldG9wBjsGVEkiDDwgMS41LjAGOwZUWwdJIglnZW1z + BjsGVEkiDX4+IDAuOC4zBjsGVFsHSSINZmlsZXNpemUGOwZUSSIMPSAwLjAu + NAY7BlRbB0kiCmNsYW1wBjsGVEkiDX4+IDAuNi41BjsGVFsHSSIJc3R1ZAY7 + BlRJIg5+PiAwLjAuMTkGOwZUWwdJIghwcnkGOwZUSSIOfj4gMC4xMC4xBjsG + VFsHSSIKY2FiaW4GOwZUSSINfj4gMC43LjAGOwZUewk7AEkiEmxvZ3N0YXNo + LWNvcmUGOwZUOwdJIgoxLjUuNAY7BlQ7CEkiCWphdmEGOwZUOwlbEFsHSSIO + anJqYWNrc29uBjsGVEkiDX4+IDAuMi45BjsGVFsHSSIQdGhyZWFkX3NhZmUG + OwZUSSINfj4gMC4zLjUGOwZUWwdJIgxtaW5pdGFyBjsGVEkiDX4+IDAuNS40 + BjsGVFsHSSIJaTE4bgY7BlRJIgw9IDAuNi45BjsGVFsHSSIMdHJlZXRvcAY7 + BlRJIgw8IDEuNS4wBjsGVFsHSSIJZ2VtcwY7BlRJIg1+PiAwLjguMwY7BlRb + B0kiDWZpbGVzaXplBjsGVEkiDD0gMC4wLjQGOwZUWwdJIgpjbGFtcAY7BlRJ + Ig1+PiAwLjYuNQY7BlRbB0kiCXN0dWQGOwZUSSIOfj4gMC4wLjE5BjsGVFsH + SSIIcHJ5BjsGVEkiDn4+IDAuMTAuMQY7BlRbB0kiCmNhYmluBjsGVEkiDX4+ + IDAuNy4wBjsGVHsJOwBJIhJsb2dzdGFzaC1jb3JlBjsGVDsHSSIKMi4zLjMG + OwZUOwhJIglqYXZhBjsGVDsJWxRbB0kiDmpyamFja3NvbgY7BlRJIg1+PiAw + LjMuNwY7BlRbB0kiEHRocmVhZF9zYWZlBjsGVEkiDX4+IDAuMy41BjsGVFsH + SSIMcnVieXppcAY7BlRJIg1+PiAxLjEuNwY7BlRbB0kiDG1pbml0YXIGOwZU + SSINfj4gMC41LjQGOwZUWwdJIglpMThuBjsGVEkiDD0gMC42LjkGOwZUWwdJ + Igx0cmVldG9wBjsGVEkiDDwgMS41LjAGOwZUWwdJIhJqcnVieS1vcGVuc3Ns + BjsGVEkiDT0gMC45LjEzBjsGVFsHSSIUY29uY3VycmVudC1ydWJ5BjsGVEki + DD0gMC45LjIGOwZUWwdJIglnZW1zBjsGVEkiDX4+IDAuOC4zBjsGVFsHSSIN + ZmlsZXNpemUGOwZUSSIMPSAwLjAuNAY7BlRbB0kiCmNsYW1wBjsGVEkiDX4+ + IDAuNi41BjsGVFsHSSIJc3R1ZAY7BlRJIg5+PiAwLjAuMTkGOwZUWwdJIghw + cnkGOwZUSSIOfj4gMC4xMC4xBjsGVFsHSSIKY2FiaW4GOwZUSSINfj4gMC44 + LjAGOwZUWwdJIhhsb2dzdGFzaC1jb3JlLWV2ZW50BjsGVEkiDD0gMi4zLjMG + OwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUGOwZUOwdJIhs1LjAuMC5hbHBoYTMu + c25hcHNob3QxBjsGVDsISSIJamF2YQY7BlQ7CVsYWwdJIg5qcmphY2tzb24G + OwZUSSINfj4gMC4zLjcGOwZUWwdJIhB0aHJlYWRfc2FmZQY7BlRJIg1+PiAw + LjMuNQY7BlRbB0kiDHJ1Ynl6aXAGOwZUSSINfj4gMS4xLjcGOwZUWwdJIgxt + aW5pdGFyBjsGVEkiDX4+IDAuNS40BjsGVFsHSSIJaTE4bgY7BlRJIgw9IDAu + Ni45BjsGVFsHSSIMdHJlZXRvcAY7BlRJIgw8IDEuNS4wBjsGVFsHSSIVanJ1 + YnktbW9uaXRvcmluZwY7BlRJIg1+PiAwLjMuMQY7BlRbB0kiFWNocm9uaWNf + ZHVyYXRpb24GOwZUSSINPSAwLjEwLjYGOwZUWwdJIhJqcnVieS1vcGVuc3Ns + BjsGVEkiDT0gMC45LjE2BjsGVFsHSSIJcHVtYQY7BlRJIhc+PSAyLjE2LjAs + IH4+IDIuMTYGOwZUWwdJIgxzaW5hdHJhBjsGVEkiFT49IDEuNC42LCB+PiAx + LjQGOwZUWwdJIhRjb25jdXJyZW50LXJ1YnkGOwZUSSIMPSAxLjAuMAY7BlRb + B0kiCWdlbXMGOwZUSSINfj4gMC44LjMGOwZUWwdJIg1maWxlc2l6ZQY7BlRJ + Igw9IDAuMC40BjsGVFsHSSIKY2xhbXAGOwZUSSINfj4gMC42LjUGOwZUWwdJ + IglzdHVkBjsGVEkiDn4+IDAuMC4xOQY7BlRbB0kiCHByeQY7BlRJIg5+PiAw + LjEwLjEGOwZUWwdJIgpjYWJpbgY7BlRJIg1+PiAwLjguMAY7BlRbB0kiHWxv + Z3N0YXNoLWNvcmUtZXZlbnQtamF2YQY7BlRJIh09IDUuMC4wLmFscGhhMy5z + bmFwc2hvdDEGOwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUGOwZUOwdJIgoyLjIu + MQY7BlQ7CEkiCWphdmEGOwZUOwlbFFsHSSIOanJqYWNrc29uBjsGVEkiDX4+ + IDAuMy43BjsGVFsHSSIQdGhyZWFkX3NhZmUGOwZUSSINfj4gMC4zLjUGOwZU + WwdJIgxydWJ5emlwBjsGVEkiDX4+IDEuMS43BjsGVFsHSSIMbWluaXRhcgY7 + BlRJIg1+PiAwLjUuNAY7BlRbB0kiCWkxOG4GOwZUSSIMPSAwLjYuOQY7BlRb + B0kiDHRyZWV0b3AGOwZUSSIMPCAxLjUuMAY7BlRbB0kiEmpydWJ5LW9wZW5z + c2wGOwZUSSINPSAwLjkuMTMGOwZUWwdJIhRjb25jdXJyZW50LXJ1YnkGOwZU + SSIMPSAwLjkuMgY7BlRbB0kiCWdlbXMGOwZUSSINfj4gMC44LjMGOwZUWwdJ + Ig1maWxlc2l6ZQY7BlRJIgw9IDAuMC40BjsGVFsHSSIKY2xhbXAGOwZUSSIN + fj4gMC42LjUGOwZUWwdJIglzdHVkBjsGVEkiDn4+IDAuMC4xOQY7BlRbB0ki + CHByeQY7BlRJIg5+PiAwLjEwLjEGOwZUWwdJIgpjYWJpbgY7BlRJIg1+PiAw + LjcuMAY7BlRbB0kiGGxvZ3N0YXNoLWNvcmUtZXZlbnQGOwZUSSINfj4gMi4y + LjEGOwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUGOwZUOwdJIgoyLjEuMgY7BlQ7 + CEkiCWphdmEGOwZUOwlbE1sHSSIOanJqYWNrc29uBjsGVEkiDX4+IDAuMy43 + BjsGVFsHSSIQdGhyZWFkX3NhZmUGOwZUSSINfj4gMC4zLjUGOwZUWwdJIgxy + dWJ5emlwBjsGVEkiDX4+IDEuMS43BjsGVFsHSSIMbWluaXRhcgY7BlRJIg1+ + PiAwLjUuNAY7BlRbB0kiCWkxOG4GOwZUSSIMPSAwLjYuOQY7BlRbB0kiDHRy + ZWV0b3AGOwZUSSIMPCAxLjUuMAY7BlRbB0kiEmpydWJ5LW9wZW5zc2wGOwZU + SSINPSAwLjkuMTMGOwZUWwdJIhRjb25jdXJyZW50LXJ1YnkGOwZUSSIMPSAw + LjkuMgY7BlRbB0kiCWdlbXMGOwZUSSINfj4gMC44LjMGOwZUWwdJIg1maWxl + c2l6ZQY7BlRJIgw9IDAuMC40BjsGVFsHSSIKY2xhbXAGOwZUSSINfj4gMC42 + LjUGOwZUWwdJIglzdHVkBjsGVEkiDn4+IDAuMC4xOQY7BlRbB0kiCHByeQY7 + BlRJIg5+PiAwLjEwLjEGOwZUWwdJIgpjYWJpbgY7BlRJIg1+PiAwLjcuMAY7 + BlR7CTsASSISbG9nc3Rhc2gtY29yZQY7BlQ7B0kiCjIuMi4wBjsGVDsISSIJ + amF2YQY7BlQ7CVsUWwdJIg5qcmphY2tzb24GOwZUSSINfj4gMC4zLjcGOwZU + WwdJIhB0aHJlYWRfc2FmZQY7BlRJIg1+PiAwLjMuNQY7BlRbB0kiDHJ1Ynl6 + aXAGOwZUSSINfj4gMS4xLjcGOwZUWwdJIgxtaW5pdGFyBjsGVEkiDX4+IDAu + NS40BjsGVFsHSSIJaTE4bgY7BlRJIgw9IDAuNi45BjsGVFsHSSIMdHJlZXRv + cAY7BlRJIgw8IDEuNS4wBjsGVFsHSSISanJ1Ynktb3BlbnNzbAY7BlRJIg09 + IDAuOS4xMwY7BlRbB0kiFGNvbmN1cnJlbnQtcnVieQY7BlRJIgw9IDAuOS4y + BjsGVFsHSSIJZ2VtcwY7BlRJIg1+PiAwLjguMwY7BlRbB0kiDWZpbGVzaXpl + BjsGVEkiDD0gMC4wLjQGOwZUWwdJIgpjbGFtcAY7BlRJIg1+PiAwLjYuNQY7 + BlRbB0kiCXN0dWQGOwZUSSIOfj4gMC4wLjE5BjsGVFsHSSIIcHJ5BjsGVEki + Dn4+IDAuMTAuMQY7BlRbB0kiCmNhYmluBjsGVEkiDX4+IDAuNy4wBjsGVFsH + SSIYbG9nc3Rhc2gtY29yZS1ldmVudAY7BlRJIg1+PiAyLjIuMAY7BlR7CTsA + SSISbG9nc3Rhc2gtY29yZQY7BlQ7B0kiFDIuMy4zLnNuYXBzaG90MgY7BlQ7 + CEkiCWphdmEGOwZUOwlbFFsHSSIOanJqYWNrc29uBjsGVEkiDX4+IDAuMy43 + BjsGVFsHSSIQdGhyZWFkX3NhZmUGOwZUSSINfj4gMC4zLjUGOwZUWwdJIgxy + dWJ5emlwBjsGVEkiDX4+IDEuMS43BjsGVFsHSSIMbWluaXRhcgY7BlRJIg1+ + PiAwLjUuNAY7BlRbB0kiCWkxOG4GOwZUSSIMPSAwLjYuOQY7BlRbB0kiDHRy + ZWV0b3AGOwZUSSIMPCAxLjUuMAY7BlRbB0kiEmpydWJ5LW9wZW5zc2wGOwZU + SSINPSAwLjkuMTMGOwZUWwdJIhRjb25jdXJyZW50LXJ1YnkGOwZUSSIMPSAw + LjkuMgY7BlRbB0kiCWdlbXMGOwZUSSINfj4gMC44LjMGOwZUWwdJIg1maWxl + c2l6ZQY7BlRJIgw9IDAuMC40BjsGVFsHSSIKY2xhbXAGOwZUSSINfj4gMC42 + LjUGOwZUWwdJIglzdHVkBjsGVEkiDn4+IDAuMC4xOQY7BlRbB0kiCHByeQY7 + BlRJIg5+PiAwLjEwLjEGOwZUWwdJIgpjYWJpbgY7BlRJIg1+PiAwLjguMAY7 + BlRbB0kiGGxvZ3N0YXNoLWNvcmUtZXZlbnQGOwZUSSIWPSAyLjMuMy5zbmFw + c2hvdDIGOwZUewk7AEkiEmxvZ3N0YXNoLWNvcmUGOwZUOwdJIhQyLjIuMS5z + bmFwc2hvdDEGOwZUOwhJIglqYXZhBjsGVDsJWxRbB0kiDmpyamFja3NvbgY7 + BlRJIg1+PiAwLjMuNwY7BlRbB0kiEHRocmVhZF9zYWZlBjsGVEkiDX4+IDAu + My41BjsGVFsHSSIMcnVieXppcAY7BlRJIg1+PiAxLjEuNwY7BlRbB0kiDG1p + bml0YXIGOwZUSSINfj4gMC41LjQGOwZUWwdJIglpMThuBjsGVEkiDD0gMC42 + LjkGOwZUWwdJIgx0cmVldG9wBjsGVEkiDDwgMS41LjAGOwZUWwdJIhJqcnVi + eS1vcGVuc3NsBjsGVEkiDT0gMC45LjEzBjsGVFsHSSIUY29uY3VycmVudC1y + dWJ5BjsGVEkiDD0gMC45LjIGOwZUWwdJIglnZW1zBjsGVEkiDX4+IDAuOC4z + BjsGVFsHSSINZmlsZXNpemUGOwZUSSIMPSAwLjAuNAY7BlRbB0kiCmNsYW1w + BjsGVEkiDX4+IDAuNi41BjsGVFsHSSIJc3R1ZAY7BlRJIg5+PiAwLjAuMTkG + OwZUWwdJIghwcnkGOwZUSSIOfj4gMC4xMC4xBjsGVFsHSSIKY2FiaW4GOwZU + SSINfj4gMC43LjAGOwZUWwdJIhhsb2dzdGFzaC1jb3JlLWV2ZW50BjsGVEki + F34+IDIuMi4xLnNuYXBzaG90MQY7BlR7CTsASSISbG9nc3Rhc2gtY29yZQY7 + BlQ7B0kiGzUuMC4wLmFscGhhNS5zbmFwc2hvdDEGOwZUOwhJIglqYXZhBjsG + VDsJWxhbB0kiDmpyamFja3NvbgY7BlRJIg1+PiAwLjMuNwY7BlRbB0kiEHRo + cmVhZF9zYWZlBjsGVEkiDX4+IDAuMy41BjsGVFsHSSIMcnVieXppcAY7BlRJ + Ig1+PiAxLjEuNwY7BlRbB0kiDG1pbml0YXIGOwZUSSINfj4gMC41LjQGOwZU + WwdJIglpMThuBjsGVEkiDD0gMC42LjkGOwZUWwdJIgx0cmVldG9wBjsGVEki + DDwgMS41LjAGOwZUWwdJIg5qcm1vbml0b3IGOwZUSSINfj4gMC40LjIGOwZU + WwdJIhVjaHJvbmljX2R1cmF0aW9uBjsGVEkiDT0gMC4xMC42BjsGVFsHSSIS + anJ1Ynktb3BlbnNzbAY7BlRJIg09IDAuOS4xNgY7BlRbB0kiCXB1bWEGOwZU + SSIMfj4gMi4xNgY7BlRbB0kiDHNpbmF0cmEGOwZUSSIVPj0gMS40LjYsIH4+ + IDEuNAY7BlRbB0kiFGNvbmN1cnJlbnQtcnVieQY7BlRJIgw9IDEuMC4wBjsG + VFsHSSIJZ2VtcwY7BlRJIg1+PiAwLjguMwY7BlRbB0kiDWZpbGVzaXplBjsG + VEkiDD0gMC4wLjQGOwZUWwdJIgpjbGFtcAY7BlRJIg1+PiAwLjYuNQY7BlRb + B0kiCXN0dWQGOwZUSSIOfj4gMC4wLjE5BjsGVFsHSSIIcHJ5BjsGVEkiDn4+ + IDAuMTAuMQY7BlRbB0kiCmNhYmluBjsGVEkiDX4+IDAuOC4wBjsGVFsHSSId + bG9nc3Rhc2gtY29yZS1ldmVudC1qYXZhBjsGVEkiHT0gNS4wLjAuYWxwaGE1 + LnNuYXBzaG90MQY7BlR7CTsASSISbG9nc3Rhc2gtY29yZQY7BlQ7B0kiGzUu + MC4wLmFscGhhMy5zbmFwc2hvdDgGOwZUOwhJIglqYXZhBjsGVDsJWxhbB0ki + DmpyamFja3NvbgY7BlRJIg1+PiAwLjMuNwY7BlRbB0kiEHRocmVhZF9zYWZl + BjsGVEkiDX4+IDAuMy41BjsGVFsHSSIMcnVieXppcAY7BlRJIg1+PiAxLjEu + NwY7BlRbB0kiDG1pbml0YXIGOwZUSSINfj4gMC41LjQGOwZUWwdJIglpMThu + BjsGVEkiDD0gMC42LjkGOwZUWwdJIgx0cmVldG9wBjsGVEkiDDwgMS41LjAG + OwZUWwdJIg5qcm1vbml0b3IGOwZUSSINfj4gMC40LjIGOwZUWwdJIhVjaHJv + bmljX2R1cmF0aW9uBjsGVEkiDT0gMC4xMC42BjsGVFsHSSISanJ1Ynktb3Bl + bnNzbAY7BlRJIg09IDAuOS4xNgY7BlRbB0kiCXB1bWEGOwZUSSIMfj4gMi4x + NgY7BlRbB0kiDHNpbmF0cmEGOwZUSSIVPj0gMS40LjYsIH4+IDEuNAY7BlRb + B0kiFGNvbmN1cnJlbnQtcnVieQY7BlRJIgw9IDEuMC4wBjsGVFsHSSIJZ2Vt + cwY7BlRJIg1+PiAwLjguMwY7BlRbB0kiDWZpbGVzaXplBjsGVEkiDD0gMC4w + LjQGOwZUWwdJIgpjbGFtcAY7BlRJIg1+PiAwLjYuNQY7BlRbB0kiCXN0dWQG + OwZUSSIOfj4gMC4wLjE5BjsGVFsHSSIIcHJ5BjsGVEkiDn4+IDAuMTAuMQY7 + BlRbB0kiCmNhYmluBjsGVEkiDX4+IDAuOC4wBjsGVFsHSSIdbG9nc3Rhc2gt + Y29yZS1ldmVudC1qYXZhBjsGVEkiHT0gNS4wLjAuYWxwaGEzLnNuYXBzaG90 + OAY7BlR7CTsASSISbG9nc3Rhc2gtY29yZQY7BlQ7B0kiCjIuMy40BjsGVDsI + SSIJamF2YQY7BlQ7CVsUWwdJIg5qcmphY2tzb24GOwZUSSINfj4gMC4zLjcG + OwZUWwdJIhB0aHJlYWRfc2FmZQY7BlRJIg1+PiAwLjMuNQY7BlRbB0kiDHJ1 + Ynl6aXAGOwZUSSINfj4gMS4xLjcGOwZUWwdJIgxtaW5pdGFyBjsGVEkiDX4+ + IDAuNS40BjsGVFsHSSIJaTE4bgY7BlRJIgw9IDAuNi45BjsGVFsHSSIMdHJl + ZXRvcAY7BlRJIgw8IDEuNS4wBjsGVFsHSSISanJ1Ynktb3BlbnNzbAY7BlRJ + Ig09IDAuOS4xMwY7BlRbB0kiFGNvbmN1cnJlbnQtcnVieQY7BlRJIgw9IDAu + OS4yBjsGVFsHSSIJZ2VtcwY7BlRJIg1+PiAwLjguMwY7BlRbB0kiDWZpbGVz + aXplBjsGVEkiDD0gMC4wLjQGOwZUWwdJIgpjbGFtcAY7BlRJIg1+PiAwLjYu + NQY7BlRbB0kiCXN0dWQGOwZUSSIOfj4gMC4wLjE5BjsGVFsHSSIIcHJ5BjsG + VEkiDn4+IDAuMTAuMQY7BlRbB0kiCmNhYmluBjsGVEkiDX4+IDAuOC4wBjsG + VFsHSSIYbG9nc3Rhc2gtY29yZS1ldmVudAY7BlRJIgw9IDIuMy40BjsGVA== + http_version: + recorded_at: Tue, 16 Aug 2016 13:07:20 GMT +recorded_with: VCR 3.0.3 diff --git a/tools/logstash-docgen/spec/logstash/docgen/dependency_lookup_spec.rb b/tools/logstash-docgen/spec/logstash/docgen/dependency_lookup_spec.rb new file mode 100644 index 00000000000..516e1196d27 --- /dev/null +++ b/tools/logstash-docgen/spec/logstash/docgen/dependency_lookup_spec.rb @@ -0,0 +1,35 @@ +# encoding: utf-8 +# +require "logstash/docgen/dependency_lookup" +require "spec_helper" + +describe LogStash::Docgen::DependencyLookup do + let(:gemspec_file) { ::File.join(::File.dirname(__FILE__), "..", "..", "fixtures", "logstash-filter-dummy.gemspec")} + let(:gemspec) { Gem::Specification.load(gemspec_file) } + subject { LogStash::Docgen::DependencyLookup } + + it "doesn't include pre-release" do + VCR.use_cassette("logstash-core") do + expect(subject.supported_logstash(gemspec)).not_to include(/snapshot|beta|pre/) + end + end + + it "includes only top level logstash version" do + VCR.use_cassette("logstash-core") do + expect(subject.supported_logstash(gemspec)).to include("5.0.0") + end + end + + it "includes any supported versions" do + VCR.use_cassette("logstash-core") do + expect(subject.supported_logstash(gemspec)).to include("5.0.0", "2.3.4", "2.3.2") + end + end + + it "doesn't include duplicates" do + VCR.use_cassette("logstash-core") do + versions = subject.supported_logstash(gemspec) + expect { versions.size }.not_to change { versions.uniq } + end + end +end diff --git a/tools/logstash-docgen/spec/logstash/docgen/task_runner_spec.rb b/tools/logstash-docgen/spec/logstash/docgen/task_runner_spec.rb new file mode 100644 index 00000000000..52deaa06c71 --- /dev/null +++ b/tools/logstash-docgen/spec/logstash/docgen/task_runner_spec.rb @@ -0,0 +1,116 @@ +# encoding: utf-8 +require "logstash/docgen/task_runner" + +describe LogStash::Docgen::TaskRunner::Status do + subject { LogStash::Docgen::TaskRunner::Status } + + context "#success?" do + let(:name) { :making_stuff } + let(:error) { OpenStruct.new(:message => "Something bad, OOOPS!") } + + it "returns true when no errors was passed to the class" do + expect(subject.new(name).success?).to be_truthy + end + + it "returns false when an errors was passed to the class" do + expect(subject.new(name, error).success?).to be_falsey + end + + it "allows access to the name" do + expect(subject.new(name).name).to eq(name) + end + + it "allows access to the error" do + expect(subject.new(name, error).error).to eq(error) + end + end +end + +describe LogStash::Docgen::TaskRunner do + subject { LogStash::Docgen::TaskRunner.new } + let(:name) { :making_stuff } + + context "an execution without errors" do + let(:job_with_no_errors) do + lambda do + 1+1 + end + end + + it "outputs the name and the status of the task" do + output = capture do + subject.run(name) do + job_with_no_errors.call + end + end + + expect(output).to match(/#{name} > \e\[32mSUCCESS\e\[0m/) + end + + it "returns no failures" do + subject.run(name) do + job_with_no_errors.call + end + + expect(subject.failures?).to be_falsey + end + + it "doesn't output anything to standard output" do + subject.run(name) do + job_with_no_errors.call + end + + output = capture do + subject.report_failures + end + + expect(output).to match("") + end + end + + context "an execution with errors" do + let(:job_with_with_errors) do + lambda do + 1/0 + end + end + + it "outputs the name and the status of the task" do + output = capture do + subject.run(name) do + job_with_with_errors.call + end + end + + expect(output).to match(/#{name} > \e\[31mFAIL\e\[0m/) + end + + it "returns failures" do + subject.run(name) do + job_with_with_errors.call + end + + expect(subject.failures?).to be_truthy + end + + it "outputs errors to standard output" do + subject.run(name) do + job_with_no_errors.call + end + + subject.run(:not_working_bob) do + job_with_no_errors.call + end + + output = capture do + subject.report_failures + end + + expect(output).to match(/FAILURE: #{name}/) + expect(output).to match(/Exception:/) + + + expect(output).to match(/FAILURE: not_working_bob/) + end + end +end diff --git a/tools/logstash-docgen/spec/logstash/docgen/util_spec.rb b/tools/logstash-docgen/spec/logstash/docgen/util_spec.rb new file mode 100644 index 00000000000..b8164470f12 --- /dev/null +++ b/tools/logstash-docgen/spec/logstash/docgen/util_spec.rb @@ -0,0 +1,40 @@ +# encoding: utf-8 +require "logstash/docgen/util" +require "spec_helper" + +describe LogStash::Docgen::Util do + subject { LogStash::Docgen::Util } + + context "time_execution" do + it "prints the execution time to stdout" do + + output = capture do + subject.time_execution do + sleep(0.1) + end + end + + expect(output).to match(/Execution took: \d(\.\d+)?s/) + end + + it "returns the value of the block" do + value = subject.time_execution do + 1 + 2 + end + + expect(value).to eq(3) + end + end + + it "returns a red string" do + expect(subject.red("Hello")).to eq("\e[31mHello\e[0m") + end + + it "returns a green string" do + expect(subject.green("Hello")).to eq("\e[32mHello\e[0m") + end + + it "returns a yellow string" do + expect(subject.yellow("Hello")).to eq("\e[33mHello\e[0m") + end +end diff --git a/tools/logstash-docgen/spec/spec_helper.rb b/tools/logstash-docgen/spec/spec_helper.rb new file mode 100644 index 00000000000..1856c339ffe --- /dev/null +++ b/tools/logstash-docgen/spec/spec_helper.rb @@ -0,0 +1,10 @@ +# encoding: utf-8 +# +require "vcr" +require "webmock" +require_relative "support/helpers" + +VCR.configure do |config| + config.cassette_library_dir = ::File.join(::File.dirname(__FILE__), "fixtures", "vcr_cassettes") + config.hook_into :webmock +end diff --git a/tools/logstash-docgen/spec/support/helpers.rb b/tools/logstash-docgen/spec/support/helpers.rb new file mode 100644 index 00000000000..30e2c33fc23 --- /dev/null +++ b/tools/logstash-docgen/spec/support/helpers.rb @@ -0,0 +1,14 @@ +# encoding: utf-8 +# +# This make the test suite non thread safe. +def capture(&block) + old_stdout = $stdout + + begin + $stdout = StringIO.new + block.call + return $stdout.string + ensure + $stdout = old_stdout + end +end diff --git a/tools/logstash-docgen/templates/index-codecs.asciidoc.erb b/tools/logstash-docgen/templates/index-codecs.asciidoc.erb new file mode 100644 index 00000000000..3cc116a4b98 --- /dev/null +++ b/tools/logstash-docgen/templates/index-codecs.asciidoc.erb @@ -0,0 +1,21 @@ +[[codec-plugins]] +== Codec plugins + +A codec plugin changes the data representation of an event. Codecs are essentially stream filters that can operate as part +of an input or output. + +The following codec plugins are available: + +|======================================================================= +| Plugin | Description | Github repository +<% plugins.each do |plugin| %> + | <<<%=plugin.full_name%>,<%=plugin.name%>>> | <%=plugin.description%> | <%=plugin.github_url%>[<%=plugin.full_name%>] +<% end %> +|======================================================================= + +<% plugins.each do |plugin| %> +pass::[ ?>] +include::<%=plugin.type%>/<%=plugin.name%>.asciidoc[] +<% end %> + +pass::[] diff --git a/tools/logstash-docgen/templates/index-filters.asciidoc.erb b/tools/logstash-docgen/templates/index-filters.asciidoc.erb new file mode 100644 index 00000000000..f5e82b253c8 --- /dev/null +++ b/tools/logstash-docgen/templates/index-filters.asciidoc.erb @@ -0,0 +1,21 @@ +[[filter-plugins]] +== Filter plugins + +A filter plugin performs intermediary processing on an event. Filters are often applied conditionally depending on the +characteristics of the event. + +The following filter plugins are available: + +|======================================================================= +| Plugin | Description | Github repository +<% plugins.each do |plugin| %> + | <<<%=plugin.full_name%>,<%=plugin.name%>>> | <%=plugin.description%> | <%=plugin.github_url%>[<%=plugin.full_name%>] +<% end %> +|======================================================================= + +<% plugins.each do |plugin| %> +pass::[ ?>] +include::<%=plugin.type%>/<%=plugin.name%>.asciidoc[] +<% end %> + +pass::[] diff --git a/tools/logstash-docgen/templates/index-inputs.asciidoc.erb b/tools/logstash-docgen/templates/index-inputs.asciidoc.erb new file mode 100644 index 00000000000..20e70ae6901 --- /dev/null +++ b/tools/logstash-docgen/templates/index-inputs.asciidoc.erb @@ -0,0 +1,20 @@ +[[input-plugins]] +== Input plugins + +An input plugin enables a specific source of events to be read by Logstash. + +The following input plugins are available: + +|======================================================================= +| Plugin | Description | Github repository +<% plugins.each do |plugin| %> + | <<<%=plugin.full_name%>,<%=plugin.name%>>> | <%=plugin.description%> | <%=plugin.github_url%>[<%=plugin.full_name%>] +<% end %> +|======================================================================= + +<% plugins.each do |plugin| %> +pass::[ ?>] +include::<%=plugin.type%>/<%=plugin.name%>.asciidoc[] +<% end %> + +pass::[] diff --git a/tools/logstash-docgen/templates/index-outputs.asciidoc.erb b/tools/logstash-docgen/templates/index-outputs.asciidoc.erb new file mode 100644 index 00000000000..b64ff85842a --- /dev/null +++ b/tools/logstash-docgen/templates/index-outputs.asciidoc.erb @@ -0,0 +1,20 @@ +[[output-plugins]] +== Output plugins + +An output plugin sends event data to a particular destination. Outputs are the final stage in the event pipeline. + +The following output plugins are available: + +|======================================================================= +| Plugin | Description | Github repository +<% plugins.each do |plugin| %> + | <<<%=plugin.full_name%>,<%=plugin.name%>>> | <%=plugin.description%> | <%=plugin.github_url%>[<%=plugin.full_name%>] +<% end %> +|======================================================================= + +<% plugins.each do |plugin| %> +pass::[ ?>] +include::<%=plugin.type%>/<%=plugin.name%>.asciidoc[] +<% end %> + +pass::[] diff --git a/tools/logstash-docgen/templates/plugin-doc.asciidoc.erb b/tools/logstash-docgen/templates/plugin-doc.asciidoc.erb new file mode 100644 index 00000000000..1b6eed1800c --- /dev/null +++ b/tools/logstash-docgen/templates/plugin-doc.asciidoc.erb @@ -0,0 +1,125 @@ +[[plugins-<%= section %>s-<%= name %>]] +=== <%= name %> + +Version: <%=version%> +Released on: <%=release_date%> +<%=changelog_url%>[Changelog] +Compatible: <%= supported_logstash %> + +<% unless default_plugin? %> +NOTE: This is a community-maintained plugin! It does not ship with Logstash by default, but it is easy to install by running `bin/logstash-plugin install logstash-<%= section %>-<%= name %>`. +<% end %> + +<%= description %> + +  + +==== Synopsis + +<% if sorted_attributes.count > 0 -%> +This plugin supports the following configuration options: +<% else -%> +This plugin has no configuration options. +<% end -%> + +<% if sorted_attributes.count > 0 -%> +Required configuration options: +<% else -%> +Complete configuration example: +<% end -%> + +[source,json] +-------------------------- +<%= name %> { +<% if sorted_attributes.count > 0 -%> +<% sorted_attributes.each do |name, config| + next if config[:deprecated] + next if !config[:required] +-%> +<%= " " if section == "codec" %> <%= name %> => ... +<% end -%> +<%= " " if section == "codec" %><% ; end -%>} +-------------------------- + +<% if sorted_attributes.count > 0 %> + +Available configuration options: + +[cols="<,<,<, +| <s-<%=config_name%>-<%=name%>>> <%= annotation %> +<% end -%> +|======================================================================= +<% end %> +<% if sorted_attributes.count > 0 -%> + +==== Details + +  + +<% sorted_attributes.each do |name, config| -%> +<% + next if config[:obsolete] + if name.is_a?(Regexp) + name = "/" + name.to_s.gsub(/^\(\?-mix:/, "").gsub(/\)$/, "") + "/" + is_regexp = true + else + is_regexp = false + end +-%> +[[plugins-<%= section%>s-<%=config_name%>-<%= name%>]] +===== `<%= name %>` <%= " (DEPRECATED)" if config[:deprecated] %> + +<% if config[:required] -%> + * This is a required setting. +<% end -%> +<% if config[:deprecated] -%> + * DEPRECATED WARNING: This configuration item is deprecated and may not be available in future versions. +<% end -%> +<% if is_regexp -%> + * The configuration attribute name here is anything that matches the above regular expression. +<% end -%> +<% if config[:validate].is_a?(Symbol) -%> + * Value type is <<<%= config[:validate] %>,<%= config[:validate] %>>> +<% elsif config[:validate].nil? -%> + * Value type is <> +<% elsif config[:validate].is_a?(Array) -%> + * Value can be any of: `<%= config[:validate].join('`, `') %>` +<% end -%> +<% if config.include?(:default) -%> + * Default value is `<%= config[:default].inspect %>` +<% else -%> + * There is no default value for this setting. +<% end -%> + +<%= config[:description] %> + +<% end -%> + +<% end -%> diff --git a/tools/logstash-docgen/templates/plugin-doc.css b/tools/logstash-docgen/templates/plugin-doc.css new file mode 100644 index 00000000000..7bdb684994a --- /dev/null +++ b/tools/logstash-docgen/templates/plugin-doc.css @@ -0,0 +1,595 @@ +#footer-wrapper { + clear: both; +} + +#guide { + width: 95%; + margin: 40px auto 0; + max-width: 1200px; +} + +#guide div.chapter, +#guide div.part, +#guide div.section { + margin-bottom: 2em; +} + +#guide .article div.section, +#guide .book div.part, +#guide .book div.chapter, +#guide .chapter div.section { + margin-top: 2em; +} + +#guide hr { + margin: 1em 0; +} + +#guide strong, +#guide b { + font-weight: bold; +} + +#guide > .article, +#guide > .book, +#guide > .preface, +#guide > .breadcrumbs, +#guide > .navheader, +#guide > .navfooter, +#guide > .chapter, +#guide > .part, +#guide > .section, +#guide > .glossary, +#guide > .appendix { + width: 67%; +} + +#guide h1, +#guide h2, +#guide h3, +#guide h4, +#guide h5 { + margin: 0.8em 0 0.5em; + position: relative; + line-height: 1em; +} + +#guide .titlepage h1, +#guide .titlepage h2 { + font-size: 34px; + margin-top: 0; +} + +/* Navheader */ +#guide .navheader .prev, +#guide .navfooter .prev { + float: left; + width: 50%; +} + +#guide .navheader .next, +#guide .navfooter .next { + text-align: right; + width: 50%; + display: inline-block; +} + +#guide .navheader { + display: inline-block; + border-bottom: 1px solid #ccc; + padding-bottom: 5px; + margin: 10px 0 20px; +} + +#guide .navfooter { + display: inline-block; + border-top: 1px solid #ccc; + padding-top: 5px; + margin-bottom: 15px; +} + +/* On this page */ +#this_page { + float: right; + clear: right; + width: 50%; + margin: 0 -50% 1em 0; + padding-left: 2.5em; +} + +#this_page h2 { + font-size: 1em; + margin: 0 0 0.2em 0; +} + +#this_page ul { + margin: 0; + font-size: 0.85em; +} + +/* Right hand TOC */ +#guide div.toc { + float: right; + clear: right; + width: 47%; + margin: 0 -50% 2em 0; +} + +#book_title { + color: #2b4590; +} + +#book_title select { + background-color: #fcfcfc; + border: none; + margin-left: 1px; + color: #2b4590; +} + +#guide ul.toc { + border: 1px solid #ddd; +} + +#guide .toc ul { + margin: 0; + padding: 0; +} + +#guide .toc li { + margin: 0; + padding: 0; + list-style: none; +} + +#guide .toc span { + display: block; + padding: 0.1em 0; + font-size: 0.85em; +} + +#guide .toc > li > span { + background-color: #efefef; + border-bottom: 1px solid #ddd; + padding: 0.3em 0 0.3em 20px; + font-size: 1em; +} + +#guide .toc ul ul { + display: none; +} + +#guide .toc .show > ul { + display: block; +} + +#guide .toc .collapsible > span:hover { + background-color: #fafafa; + cursor: pointer; +} + +#guide .toc .collapsible > span { + background-repeat: no-repeat; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH3wUQChsBZOOibwAAAHlJREFUKM9jYBh5gBGXhNGeDbb/mRgP/f//3/qCc8AxbGqYKLGZBV3AYP96AwYGBgaGfwwqEOMZVQ32r//GwMDAcMEx8AJezYz/mc4zMDAw/GeE8RkWIDmQEb9mRkZLBgYGhv///hswMDJM//+fIY2JifHy4AqwkQgAW7gloZBjerAAAAAASUVORK5CYII=); +} + +#guide .toc .show > span { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH3wUQChsxQjqSwwAAADFJREFUKM9jYBgF9AOM2AQN9q83QBe74Bh4AV2MBauJ/5nOE2MRVs3/Gf8ZjkbKYAMA5XcICwYKcGoAAAAASUVORK5CYII=); +} + +#guide .toc > .show > span { + background-color: white; + border-bottom: 1px solid white; +} + + +#guide .toc > .collapsible > span { + background-position: 0 8px; +} + +#guide .toc > li > ul > li > span { + padding-left: 40px; + background-position: 20px 5px; +} + +#guide .toc > li > ul > li > ul > li > span { + padding-left: 60px; + background-position: 40px 5px; +} + +#guide .toc > li > ul > li > ul > li > ul > li >span { + padding-left: 80px; + background-position: 60px 5px; +} + +#guide .toc > li > ul > li > ul > li > ul > li > ul > li >span { + padding-left: 80px; + background-image: none; + background-position: 80px 5px; +} + +/* Home page TOC */ +#guide .article .toc, +#guide .book .toc { + float: none; + clear: none; + width: auto; + margin: 0 0 2em 0; + padding: 0; +} + +/* Lists */ +#guide ul { + list-style: disc; + padding-left: 2em; +} + +#guide ol { + list-style: decimal; + padding-left: 2em; +} + +#guide li ol { + list-style: lower-alpha; +} + +#guide li li ol { + list-style: lower-roman; +} + +#guide li li li ol { + list-style: upper-alpha; +} + +#guide ol[type=a] { + list-style: lower-alpha; +} + +#guide ol[type="1"] { + list-style: decimal; +} + +#guide li { + padding: 0.15em 1em 0.15em 0; +} + +#guide ol p, +#guide ul p, +#guide table p { + margin-top: 0 +} + +#guide ol ol, +#guide ol ul, +#guide ul ol, +#guide ul ul { + margin-bottom: 0; +} + +#guide p.simpara+div.orderedlist, +#guide p.simpara+div.itemizedlist { + margin-top: -0.9em; +} + +#guide dt { + color: #2b4590; +} + +#guide dd { + margin: 0 0 0.5em 2em; +} + +/* Tables */ +#guide table{ + margin-bottom:1em; + border: none; + width: 100%; +} + +#guide table thead,#guide table tbody{ + text-align:left; + vertical-align:top; +} + +#guide table td:last-child{ + padding-right:0; +} + +#guide table th{ + font-weight:700; + padding:.5em 0.2em; + border:none; + border-bottom:2px solid #e5eae4; +} + +#guide table td{ + vertical-align:top; + padding:.75em 0.2em 0; + border:none; + border-bottom:1px solid #e5eae4; +} + +#guide table tr:last-child td { + border:none; +} + +/* Code */ +#guide code { + background: #f8f8f8; + padding: 0 3px; + font-family: Consolas, Menlo, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console'; + font-size: 0.9em; +} +#guide pre { + font-family: Consolas, Menlo, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console'; + color #888; +} + +#guide pre.prettyprint { + font-family: Consolas, Menlo, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console'; + font-size: 0.9em; + margin: 0 0 15px 0; + padding: 8px 0 8px 18px; + border: none; + line-height: 1.5em; + overflow: auto; + white-space: pre; + background-color:#F0F0F0; + border-top-right-radius:5px; + border-bottom-right-radius:5px; + width: auto; + max-width: 1000px; +} + +#guide .pre_wrapper { + overflow-x: auto; + position: relative; + width: 100%; + margin: 0 0 15px 0; + background-color:#F0F0F0; + border-left: 3px solid #31beb1; +} + +#guide .pre_wrapper pre { + margin: 0; +} + +#guide a code { + color: #31beb1; +} + +/* Admonitions */ +#guide .admon { + background: #fbfbfb; + padding: 10px; + min-height: 80px; + margin: 15px 0; + border-radius: 5px; + position: relative +} + +#guide .admon .icon { + width: 80px; + position: absolute; +} + +#guide .admon .admon_content { + margin-left: 80px; +} + +#guide .admon_content h4 { + margin: 9px 0; +} + +#guide .example { + margin: 0; +} + +#guide .example .title { + margin: 0 0 0 10px; +} +#guide .example-contents { + border: 1px solid #f0f0f0; + border-width: 1px; + border-radius: 5px; + background: #fdfdfd; + padding: 10px 10px 0; +} + +#guide .sidebar { + border: 1px solid #31beb1; + border-radius: 10px; + background: #fbfbfb; + padding: 15px 20px 0; + margin: 10px 15px 20px; +} + +#guide .sidebar .title { + margin: 0; + border-bottom: 1px solid #ddd; + margin-bottom: 10px; +} + +#guide .experimental, +#guide .coming, +#guide .deprecated, +#guide .added { + position: relative; + font-size: 16px; +} + +#guide .experimental .exp_title, +#guide .coming .version, +#guide .deprecated .version, +#guide .added .version { + font-family:Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace!important; + font-size: 0.8em; + border-bottom: 1px dashed #31beb1; +} + +#guide .deprecated .version { + text-decoration: line-through; +} + +#guide .experimental .detail, +#guide .coming .detail, +#guide .deprecated .detail, +#guide .added .detail { + min-width: 250px; + position: absolute; + padding: 15px; + border: 3px solid #e8e8e8; + background: white; + opacity: 0; + color: white; + left: -20000px; + bottom: 20px; + line-height: 1.2em; +} + +#guide .experimental:hover , +#guide .coming:hover , +#guide .deprecated:hover , +#guide .added:hover { + color: black; + transition: all 0.3s ease; +} + +#guide .experimental:hover .detail, +#guide .coming:hover .detail, +#guide .deprecated:hover .detail, +#guide .added:hover .detail { + z-index: 10000; + left: -5em; + opacity: 1; + color: #555; + transition: color 0.5s ease; +} + +#guide .toc .experimental, +#guide .toc .coming, +#guide .toc .added, +#guide .toc .deprecated { + display: none; +} + +#guide h1:hover a[id], +#guide h2:hover a[id], +#guide h3:hover a[id], +#guide h4:hover a[id], +#guide h5:hover a[id], +#guide h6:hover a[id] { + display: block; + position: absolute; + bottom: 0; + margin: 0; + padding: 0; + left: -25px; + width: 100%; + height: 1em; + background-repeat: no-repeat; + background-position: 0% 50%; + background-image: url(data:image/png;base64,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); +} + +#guide a.edit_me { + position: absolute; + font-size: 14px; + right: 0px; + top: 0; + z-index: 1000; + padding-top: 26px; + line-height: 1; + opacity: 0.3; + background-repeat: no-repeat; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAArgAAAK4B+ff3XQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAKySURBVEiJrZVLbExRGMd/3713qkJZaBeIhIUIC2FBhOpjxHRaNkhTERZeC5EQ2pmSsBikMaYVj4h0Q4pERNKNMlMVnZZ4lIUuxYqFaLqRNNXHzJzPYm6FPmc6zuqenPP//c53v5tzRVXJZQSiZUcFqsUy58IV3T3j161c4HVt5YWIfFFhjVHrfSBW1vBfBeIxbYgGPR7HCzwBzgZjZc2hkPzhzloQjHq32NiHMSxLJJJdanETOKmwY2Tj1kU5CYLPy3eqmNcpNRfzLOMDWsUQU2VpamB0ZUNld/+sBfUdxUvU6F13WpxQu0KRh4i1Gxi8Wv1m6O/9WQlCIbFMyrkPFAKKUK/odUHjaKqwsTJ+YXwmK8HAptIzgDc9kyaUY8ACYEhsuifLZCyojZZvEiUEIPBOUBvY4MqOXdne9WWynJMJ/MyL7QtF9CHgIPxEpVnROy68JeLvfDBVNiNBMpVsFlgOgGqdwpV0IXzGyjs+XXZGQTBaekhEatKH5TYq+4AiYNiIVdPkax+cLj9tD+pj3lUqcsOd9qLah9tkhdqmipe9Mx1QprrsTkSr5syxfr1DWQcMChxVuA/YQGvEH98zE3zaCvIZCrtwRAmoctmFf3VSqSOZwKesINDu3YGatvQO7qEUALuAJFAS8cffZiqYUMGp9pLFqBm7Cj6L8smFI8j5bOCTChy19gMFwLCB8woNAKJ0RPzxcDZwGPeZ1j8tXW2J1Zmw1ScmmbDEuQXki9I3muccULL//f1TgbHVE67q/Hi1Iv5KxOOo8ghQY3Pg2rYXfdnCJwrEkbHnbwNFbxXpVvRgoy/eMRv4BIGo7g3EStYCrJjXv95Whhv9XS2zhbvM9Gs9/XjzXLsg7xvwXZHjozr3w43KZyO5wOGvJjvz8zcaUo8sM3QpUtXzI1fw2PgNtmkFbbGhF10AAAAASUVORK5CYII=); + +} + +#guide a.edit_me:hover { + opacity: 1; +} + + +/* JS API TOC */ +/* prevent the list from rendering at the top of the content */ +#js-api-method-index + .itemizedlist, +#js-api-method-index-0-90 + .itemizedlist { + display: none; +} +.js-api-method-index h2 { + color: #454746; + font-family: "Gibson-Regular"; + font-size: 1.17em; + margin: 1.5em 0 1em; +} +.js-api-method-index ul { + padding: 0 0 0 0; +} + +.js-api-method-index ul li { + list-style: disc; + color: #74b73f; + padding: 0.05em 0; +} + +.js-api-method-index a { + text-transform: none; +} + +.js-client-docs a[href="#"] { + float: right; +} + +/* Comments */ +p.remark { + color: red; + border: 3px red solid; + border-radius: 5px; + padding: 10px; + float: right; + max-width: 50%; + margin: -5px 0 10px 10px; + clear: right; +} + +/* Images */ +#guide .mediaobject img { + max-width: 100%; +} + +/* Sense widget */ +#guide a.sense_widget { + display: block; + margin: -22px 0 15px auto; + text-align: right; + border-radius: 0 0 3px 0; + border-top: 1px solid #e8e8e8; + background: #f8f8f8; + background: linear-gradient(#f8f8f8,#f0f0f0); + text-transform: uppercase; + font-family: helvetica, arial; + font-size: 13px; + font-weight: bold; + border-left: 3px solid #31beb1; + padding: 5px 15px 5px 0; +} + +#guide a.sense_widget:hover { + background: linear-gradient(white,#f0f0f0); + color: #2b4590; +} + +/* RTP container */ +#guide #rtpcontainer { + display: none; + position: static; + float: right; + width: 31%; + margin: 0 -0.2% 20px 0; + border-bottom: 1px solid #ccc +} + +#guide ul.lists li { + background: none +} + From 0687f6821aa76d48cde9b2471082e0770828781b Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 1 Dec 2016 11:29:16 -0800 Subject: [PATCH 525/632] Add feature flag support for RATS (#6328) * Add feature flag support for RATS Adds feature flag support for RATS integration tests. First feature to use it is persistent_queues. You can enable a FF in travis by using the travis matrix and adding a env variable called FEATURE_FLAG=. To use feature flag, you need a logstash.yml file which has this feature turned on. Unfortunately --path.settings needs an entire dir where logstash.yml is located, not just the logstash.yml file, so we need to checkin the fixture which has the feature yml and log4j. For example, you can now set FEATURE_FLAG=persistent_queues which means travis will run tests twice, one with this feature enabled and once without it. When the feature is enaabled the logstash.yml located in qa/integration/fixtures/persistent_queues is picked up whenever LS is started in tests --- .travis.yml | 3 +- .../persistent_queues/log4j2.properties | 83 +++++++++++++++++++ .../fixtures/persistent_queues/logstash.yml | 1 + qa/integration/framework/settings.rb | 10 ++- qa/integration/services/logstash_service.rb | 33 ++++++-- qa/integration/specs/kafka_input_spec.rb | 16 +++- qa/integration/suite.yml | 3 +- 7 files changed, 137 insertions(+), 12 deletions(-) create mode 100644 qa/integration/fixtures/persistent_queues/log4j2.properties create mode 100644 qa/integration/fixtures/persistent_queues/logstash.yml diff --git a/.travis.yml b/.travis.yml index f2dfb53f000..cda182983e4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,8 @@ rvm: jdk: - oraclejdk8 env: - - INTEGRATION=true + - INTEGRATION=true + - INTEGRATION=true FEATURE_FLAG=persistent_queues before_install: # Force bundler 1.12.5 because version 1.13 has issues, see https://github.com/fastlane/fastlane/issues/6065#issuecomment-246044617 - gem uninstall -i /home/travis/.rvm/gems/jruby-1.7.25@global bundler diff --git a/qa/integration/fixtures/persistent_queues/log4j2.properties b/qa/integration/fixtures/persistent_queues/log4j2.properties new file mode 100644 index 00000000000..ac9273b64a1 --- /dev/null +++ b/qa/integration/fixtures/persistent_queues/log4j2.properties @@ -0,0 +1,83 @@ +status = error +name = LogstashPropertiesConfig + +appender.console.type = Console +appender.console.name = plain_console +appender.console.layout.type = PatternLayout +appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n + +appender.json_console.type = Console +appender.json_console.name = json_console +appender.json_console.layout.type = JSONLayout +appender.json_console.layout.compact = true +appender.json_console.layout.eventEol = true + +appender.rolling.type = RollingFile +appender.rolling.name = plain_rolling +appender.rolling.fileName = ${sys:ls.logs}/logstash-${sys:ls.log.format}.log +appender.rolling.filePattern = ${sys:ls.logs}/logstash-${sys:ls.log.format}-%d{yyyy-MM-dd}.log +appender.rolling.policies.type = Policies +appender.rolling.policies.time.type = TimeBasedTriggeringPolicy +appender.rolling.policies.time.interval = 1 +appender.rolling.policies.time.modulate = true +appender.rolling.layout.type = PatternLayout +appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %-.10000m%n + +appender.json_rolling.type = RollingFile +appender.json_rolling.name = json_rolling +appender.json_rolling.fileName = ${sys:ls.logs}/logstash-${sys:ls.log.format}.log +appender.json_rolling.filePattern = ${sys:ls.logs}/logstash-${sys:ls.log.format}-%d{yyyy-MM-dd}.log +appender.json_rolling.policies.type = Policies +appender.json_rolling.policies.time.type = TimeBasedTriggeringPolicy +appender.json_rolling.policies.time.interval = 1 +appender.json_rolling.policies.time.modulate = true +appender.json_rolling.layout.type = JSONLayout +appender.json_rolling.layout.compact = true +appender.json_rolling.layout.eventEol = true + + +rootLogger.level = ${sys:ls.log.level} +rootLogger.appenderRef.console.ref = ${sys:ls.log.format}_console +rootLogger.appenderRef.rolling.ref = ${sys:ls.log.format}_rolling + +# Slowlog + +appender.console_slowlog.type = Console +appender.console_slowlog.name = plain_console_slowlog +appender.console_slowlog.layout.type = PatternLayout +appender.console_slowlog.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n + +appender.json_console_slowlog.type = Console +appender.json_console_slowlog.name = json_console_slowlog +appender.json_console_slowlog.layout.type = JSONLayout +appender.json_console_slowlog.layout.compact = true +appender.json_console_slowlog.layout.eventEol = true + +appender.rolling_slowlog.type = RollingFile +appender.rolling_slowlog.name = plain_rolling_slowlog +appender.rolling_slowlog.fileName = ${sys:ls.logs}/logstash-slowlog-${sys:ls.log.format}.log +appender.rolling_slowlog.filePattern = ${sys:ls.logs}/logstash-slowlog-${sys:ls.log.format}-%d{yyyy-MM-dd}.log +appender.rolling_slowlog.policies.type = Policies +appender.rolling_slowlog.policies.time.type = TimeBasedTriggeringPolicy +appender.rolling_slowlog.policies.time.interval = 1 +appender.rolling_slowlog.policies.time.modulate = true +appender.rolling_slowlog.layout.type = PatternLayout +appender.rolling_slowlog.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %.10000m%n + +appender.json_rolling_slowlog.type = RollingFile +appender.json_rolling_slowlog.name = json_rolling_slowlog +appender.json_rolling_slowlog.fileName = ${sys:ls.logs}/logstash-slowlog-${sys:ls.log.format}.log +appender.json_rolling_slowlog.filePattern = ${sys:ls.logs}/logstash-slowlog-${sys:ls.log.format}-%d{yyyy-MM-dd}.log +appender.json_rolling_slowlog.policies.type = Policies +appender.json_rolling_slowlog.policies.time.type = TimeBasedTriggeringPolicy +appender.json_rolling_slowlog.policies.time.interval = 1 +appender.json_rolling_slowlog.policies.time.modulate = true +appender.json_rolling_slowlog.layout.type = JSONLayout +appender.json_rolling_slowlog.layout.compact = true +appender.json_rolling_slowlog.layout.eventEol = true + +logger.slowlog.name = slowlog +logger.slowlog.level = trace +logger.slowlog.appenderRef.console_slowlog.ref = ${sys:ls.log.format}_console_slowlog +logger.slowlog.appenderRef.rolling_slowlog.ref = ${sys:ls.log.format}_rolling_slowlog +logger.slowlog.additivity = false diff --git a/qa/integration/fixtures/persistent_queues/logstash.yml b/qa/integration/fixtures/persistent_queues/logstash.yml new file mode 100644 index 00000000000..1ee962bd8ae --- /dev/null +++ b/qa/integration/fixtures/persistent_queues/logstash.yml @@ -0,0 +1 @@ +queue.type: persisted diff --git a/qa/integration/framework/settings.rb b/qa/integration/framework/settings.rb index d0a25ad3a6a..abde97bfe83 100644 --- a/qa/integration/framework/settings.rb +++ b/qa/integration/framework/settings.rb @@ -12,7 +12,7 @@ def initialize(test_file_path) test_name = File.basename(test_file_path, ".*" ) @tests_settings_file = File.join(FIXTURES_DIR, "#{test_name}.yml") # Global suite settings - @suite_settings = YAML.load_file(SUITE_SETTINGS_FILE) + @suite_settings = YAML.load(ERB.new(File.new(SUITE_SETTINGS_FILE).read).result) # Per test settings, where one can override stuff and define test specific config @test_settings = YAML.load_file(@tests_settings_file) @@ -50,4 +50,12 @@ def verbose_mode? def is_set?(key) @suite_settings.key?(key) || @test_settings.key?(key) end + + def feature_flag + @suite_settings["feature_flag"].to_s.strip + end + + def feature_config_dir + feature_flag.empty? ? nil: File.join(FIXTURES_DIR, feature) + end end diff --git a/qa/integration/services/logstash_service.rb b/qa/integration/services/logstash_service.rb index fbf92fa7e73..b873ab89bbc 100644 --- a/qa/integration/services/logstash_service.rb +++ b/qa/integration/services/logstash_service.rb @@ -13,6 +13,7 @@ class LogstashService < Service LS_BUILD_DIR = File.join(LS_ROOT_DIR, "build") LS_BIN = File.join("bin", "logstash") LS_CONFIG_FILE = File.join("config", "logstash.yml") + SETTINGS_CLI_FLAG = "--path.settings" STDIN_CONFIG = "input {stdin {}} output { }" RETRY_ATTEMPTS = 10 @@ -20,7 +21,7 @@ class LogstashService < Service @process = nil attr_reader :logstash_home - attr_reader :application_settings_file + attr_reader :default_settings_file attr_writer :env_variables def initialize(settings) @@ -42,7 +43,7 @@ def initialize(settings) raise "Logstash binary not found in path #{@logstash_home}" unless File.file? @logstash_bin end - @application_settings_file = File.join(@logstash_home, LS_CONFIG_FILE) + @default_settings_file = File.join(@logstash_home, LS_CONFIG_FILE) @monitoring_api = MonitoringAPI.new end @@ -86,7 +87,7 @@ def start_with_stdin Bundler.with_clean_env do out = Tempfile.new("duplex") out.sync = true - @process = ChildProcess.build(@logstash_bin, "-e", STDIN_CONFIG) + @process = build_child_process("-e", STDIN_CONFIG) # pipe STDOUT and STDERR to a file @process.io.stdout = @process.io.stderr = out @process.duplex = true @@ -104,9 +105,8 @@ def write_to_stdin(input) # Spawn LS as a child process def spawn_logstash(*args) - puts "Starting Logstash #{@logstash_bin} #{args}" Bundler.with_clean_env do - @process = ChildProcess.build(@logstash_bin, *args) + @process = build_child_process(*args) @env_variables.map { |k, v| @process.environment[k] = v} unless @env_variables.nil? @process.io.inherit! @process.start @@ -115,6 +115,20 @@ def spawn_logstash(*args) end end + def build_child_process(*args) + feature_config_dir = @settings.feature_config_dir + # if we are using a feature flag and special settings dir to enable it, use it + # If some tests is explicitly using --path.settings, ignore doing this, because the tests + # chose to overwrite it. + if feature_config_dir && !args.include?(SETTINGS_CLI_FLAG) + args << "--path.settings" + args << feature_config_dir + puts "Found feature flag. Starting LS using --path.settings #{feature_config_dir}" + end + puts "Starting Logstash: #{@logstash_bin} #{args}" + ChildProcess.build(@logstash_bin, *args) + end + def teardown if !@process.nil? # todo: put this in a sleep-wait loop to kill it force kill @@ -172,6 +186,15 @@ def process_id @process.pid end + def application_settings_file + feature_config_dir = @settings.feature_config_dir + unless feature_config_dir + @default_settings_file + else + File.join(feature_config_dir, "logstash.yml") + end + end + def plugin_cli PluginCli.new(@logstash_home) end diff --git a/qa/integration/specs/kafka_input_spec.rb b/qa/integration/specs/kafka_input_spec.rb index dc2d371ae8d..70338d4cb9b 100644 --- a/qa/integration/specs/kafka_input_spec.rb +++ b/qa/integration/specs/kafka_input_spec.rb @@ -2,9 +2,12 @@ require_relative '../framework/settings' require_relative '../services/logstash_service' require "rspec/wait" +require "logstash/devutils/rspec/spec_helper" describe "Test Kafka Input" do - let(:timeout_seconds) { 30 } + let(:num_retries) { 60 } + let(:num_events) { 37 } + before(:all) { @fixture = Fixture.new(__FILE__) } @@ -17,9 +20,14 @@ logstash_service = @fixture.get_service("logstash") logstash_service.start_background(@fixture.config) - wait(timeout_seconds).for { @fixture.output_exists? }.to be true - expect(@fixture.output_equals_expected?).to be true - lambda { "Expected File output to match what was ingested into Kafka." } + try(num_retries) do + expect(@fixture.output_exists?).to be true + end + + try(num_retries) do + count = File.foreach(@fixture.actual_output).inject(0) {|c, line| c+1} + expect(count).to eq(num_events) + end end end diff --git a/qa/integration/suite.yml b/qa/integration/suite.yml index 8ccdff47bbc..cdee612d4e4 100644 --- a/qa/integration/suite.yml +++ b/qa/integration/suite.yml @@ -3,4 +3,5 @@ verbose_mode: false # Typically we use the binaries in LS_HOME/build. If you want to QA a LS in different location, # use the absolute path below -#ls_home_abs_path: /tmp/logstash-5.0.0-alpha6 \ No newline at end of file +#ls_home_abs_path: /tmp/logstash-5.0.0-alpha6 +feature_flag: <%= ENV['FEATURE_FLAG'] %> \ No newline at end of file From f528987cc2ae35627e7834740aa1c92288aee911 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 1 Dec 2016 12:20:41 -0800 Subject: [PATCH 526/632] fix failing RATS test --- qa/integration/framework/settings.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qa/integration/framework/settings.rb b/qa/integration/framework/settings.rb index abde97bfe83..b5c567a049a 100644 --- a/qa/integration/framework/settings.rb +++ b/qa/integration/framework/settings.rb @@ -56,6 +56,7 @@ def feature_flag end def feature_config_dir - feature_flag.empty? ? nil: File.join(FIXTURES_DIR, feature) + feature = feature_flag + feature.empty? ? nil: File.join(FIXTURES_DIR, feature) end end From 91e6881698115317d1cd5db7524d36eb30abdee0 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 1 Dec 2016 16:19:54 -0500 Subject: [PATCH 527/632] Do not clean unused gems after updating gems The are a difference between the gems installed and the available spec loaded in memory making bundler remove the gem that we have just updated. Fixes: #6339 Fixes #6340 --- lib/pluginmanager/update.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/pluginmanager/update.rb b/lib/pluginmanager/update.rb index c33e25d610f..e5de20cd494 100644 --- a/lib/pluginmanager/update.rb +++ b/lib/pluginmanager/update.rb @@ -62,7 +62,9 @@ def update_gems! options = {:update => plugins, :rubygems_source => gemfile.gemset.sources} options[:local] = true if local? output = LogStash::Bundler.invoke!(options) - output = LogStash::Bundler.invoke!(:clean => true) + # We currently dont removed unused gems from the logstash installation + # see: https://github.com/elastic/logstash/issues/6339 + # output = LogStash::Bundler.invoke!(:clean => true) display_updated_plugins(previous_gem_specs_map) rescue => exception gemfile.restore! From 2081fa626fc318be22b3c8e35b2d35c500d92feb Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 1 Dec 2016 18:30:53 -0500 Subject: [PATCH 528/632] remove the expect Fixes #6340 --- spec/unit/plugin_manager/update_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/unit/plugin_manager/update_spec.rb b/spec/unit/plugin_manager/update_spec.rb index 5498f9dea0c..3fc4d1d62fe 100644 --- a/spec/unit/plugin_manager/update_spec.rb +++ b/spec/unit/plugin_manager/update_spec.rb @@ -10,7 +10,6 @@ expect(cmd).to receive(:find_latest_gem_specs).and_return({}) allow(cmd).to receive(:warn_local_gems).and_return(nil) expect(cmd).to receive(:display_updated_plugins).and_return(nil) - expect_any_instance_of(LogStash::Bundler).to receive(:invoke!).with(:clean => true) end it "pass all gem sources to the bundle update command" do From d42a82eb08f1e9cee10e0e3e5259aadb813098e0 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 1 Dec 2016 17:00:19 -0800 Subject: [PATCH 529/632] Add default setting for queue.max_bytes Fixes #6343 --- config/logstash.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/logstash.yml b/config/logstash.yml index 6fa26d9dcca..3025b7d4981 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -107,6 +107,14 @@ # # queue.max_events: 0 # +# If using queue.type: persisted, the total capacity of the queue in number of bytes. +# If you would like more unacked events to be buffered in Logstash, you can increase the +# capacity using this setting. Please make sure your disk drive has capacity greater than +# the size specified here. +# Default is 1024mb or 1gb +# +# queue.max_bytes: 1024mb +# # If using queue.type: persisted, the maximum number of acked events before forcing a checkpoint # Default is 1024, 0 for unlimited # From a566908a8489ff72063f8faad686573f191b4437 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Thu, 1 Dec 2016 17:12:35 -0800 Subject: [PATCH 530/632] specify max_events relation as well Fixes #6343 --- config/logstash.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/logstash.yml b/config/logstash.yml index 3025b7d4981..573e7e0f402 100644 --- a/config/logstash.yml +++ b/config/logstash.yml @@ -110,7 +110,8 @@ # If using queue.type: persisted, the total capacity of the queue in number of bytes. # If you would like more unacked events to be buffered in Logstash, you can increase the # capacity using this setting. Please make sure your disk drive has capacity greater than -# the size specified here. +# the size specified here. If both max_bytes and max_events are specified, Logstash will pick +# whichever criteria is reached first # Default is 1024mb or 1gb # # queue.max_bytes: 1024mb From 2bb69743e6bb224e381e0747485d7b7dcf885b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20QUINTANA?= Date: Thu, 1 Dec 2016 10:24:14 +0100 Subject: [PATCH 531/632] Fix Heap Dump Path on Windows Fixes #6336 --- bin/setup.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/setup.bat b/bin/setup.bat index f2ac30383f8..f874bc23a5f 100644 --- a/bin/setup.bat +++ b/bin/setup.bat @@ -59,7 +59,7 @@ IF NOT "%JAVA_OPTS%" == "" ( SET JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError REM The path to the heap dump location, note directory must exists and have enough REM space for a full heap dump. - SET JAVA_OPTS=%JAVA_OPTS% -XX:HeapDumpPath="$LS_HOME/heapdump.hprof" + SET JAVA_OPTS=%JAVA_OPTS% -XX:HeapDumpPath="%LS_HOME%/heapdump.hprof" :opts_defined From e3209a3033a59f7bb06920191f0c12a3cd0d8c45 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 2 Dec 2016 12:33:42 -0500 Subject: [PATCH 532/632] Change the assertions in the config reloading spec The assertions was using dummy outputs and kept received events into an array in memory, but the test actually only needed to match the number of events it received, this PR add a DroppingDummyOutput that wont retain the events in memory. The previous implementation was causing a OOM issue when running the test on a very fast machine. Fixes: #6335 Fixes #6346 --- logstash-core/spec/logstash/agent_spec.rb | 12 ++++----- logstash-core/spec/support/mocks_classes.rb | 28 +++++++++++++++++++++ 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 2c4aa6d7929..98eafba9d9a 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -411,19 +411,19 @@ # We need to create theses dummy classes to know how many # events where actually generated by the pipeline and successfully send to the output. # Theses values are compared with what we store in the metric store. - class DummyOutput2 < LogStash::Outputs::DummyOutput; end + class DummyOutput2 < LogStash::Outputs::DroppingDummyOutput; end - let!(:dummy_output) { DummyOutput.new } + let!(:dummy_output) { LogStash::Outputs::DroppingDummyOutput.new } let!(:dummy_output2) { DummyOutput2.new } let(:initial_generator_threshold) { 1000 } before :each do - allow(DummyOutput).to receive(:new).at_least(:once).with(anything).and_return(dummy_output) + allow(LogStash::Outputs::DroppingDummyOutput).to receive(:new).at_least(:once).with(anything).and_return(dummy_output) allow(DummyOutput2).to receive(:new).at_least(:once).with(anything).and_return(dummy_output2) allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(LogStash::Codecs::Plain) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(LogStash::Outputs::DroppingDummyOutput) allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput2").and_return(DummyOutput2) @abort_on_exception = Thread.abort_on_exception @@ -435,7 +435,7 @@ class DummyOutput2 < LogStash::Outputs::DummyOutput; end end # wait for some events to reach the dummy_output - sleep(0.01) until dummy_output.events.size > initial_generator_threshold + sleep(0.01) until dummy_output.events_received > initial_generator_threshold end after :each do @@ -461,7 +461,7 @@ class DummyOutput2 < LogStash::Outputs::DummyOutput; end subject.send(:"reload_pipeline!", "main") # wait until pipeline restarts - sleep(0.01) until dummy_output2.events.size > 0 + sleep(0.01) until dummy_output2.events_received > 0 end it "resets the pipeline metric collector" do diff --git a/logstash-core/spec/support/mocks_classes.rb b/logstash-core/spec/support/mocks_classes.rb index 3cdf0a6dc01..5ae99a68f0b 100644 --- a/logstash-core/spec/support/mocks_classes.rb +++ b/logstash-core/spec/support/mocks_classes.rb @@ -48,4 +48,32 @@ def receive(event) def close end end + + class DroppingDummyOutput < LogStash::Outputs::Base + config_name "droppingdummyoutput" + milestone 2 + + attr_reader :num_closes + + def initialize(params={}) + super + @num_closes = 0 + @events_received = Concurrent::AtomicFixnum.new(0) + end + + def register + end + + def receive(event) + @events_received.increment + end + + def events_received + @events_received.value + end + + def close + @num_closes = 1 + end + end end end From fe336c3068cf2d9048db7ea1fc2fab95c6286383 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 30 Nov 2016 21:32:09 -0800 Subject: [PATCH 533/632] Add docs for persistent queues Fixes #6344 --- docs/index.asciidoc | 7 +- docs/static/deploying.asciidoc | 18 +-- docs/static/life-of-an-event.asciidoc | 83 ++---------- docs/static/performance-checklist.asciidoc | 70 +++++++++- docs/static/persistent-queues.asciidoc | 127 ++++++++++++++++++ docs/static/setting-up-logstash.asciidoc | 7 +- docs/static/settings-file.asciidoc | 32 +++++ ...ed-shutdown.asciidoc => shutdown.asciidoc} | 8 +- 8 files changed, 259 insertions(+), 93 deletions(-) create mode 100644 docs/static/persistent-queues.asciidoc rename docs/static/{stalled-shutdown.asciidoc => shutdown.asciidoc} (89%) diff --git a/docs/index.asciidoc b/docs/index.asciidoc index 8498a6e57ce..ca57821a3e2 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -70,8 +70,11 @@ include::static/command-line-flags.asciidoc[] pass::[] include::static/logging.asciidoc[] -pass::[] -include::static/stalled-shutdown.asciidoc[] +pass::[] +include::static/persistent-queues.asciidoc[] + +pass::[] +include::static/shutdown.asciidoc[] // Breaking Changes pass::[] diff --git a/docs/static/deploying.asciidoc b/docs/static/deploying.asciidoc index 822fdd82b64..dc6fa74faf5 100644 --- a/docs/static/deploying.asciidoc +++ b/docs/static/deploying.asciidoc @@ -1,5 +1,5 @@ [[deploying-and-scaling]] -=== Deploying and Scaling Logstash +== Deploying and Scaling Logstash As your use case for Logstash evolves, the preferred architecture at a given scale will change. This section discusses a range of Logstash architectures in increasing order of complexity, starting from a minimal installation and adding @@ -8,7 +8,7 @@ write to a large variety of {logstash}output-plugins.html[endpoints]. [float] [[deploying-minimal-install]] -==== The Minimal Installation +=== The Minimal Installation The minimal Logstash installation has one Logstash instance and one Elasticsearch instance. These instances are directly connected. Logstash uses an {logstash}input-plugins.html[_input plugin_] to ingest data and an @@ -21,7 +21,7 @@ image::static/images/deploy_1.png[] [float] [[deploying-filter-threads]] -==== Using Filters +=== Using Filters Log data is typically unstructured, often contains extraneous information that isn’t relevant to your use case, and sometimes is missing relevant information that can be derived from the log contents. You can use a @@ -40,7 +40,7 @@ image::static/images/deploy_2.png[] [float] [[deploying-filebeat]] -==== Using Filebeat +=== Using Filebeat https://www.elastic.co/guide/en/beats/filebeat/current/index.html[Filebeat] is a lightweight, resource-friendly tool written in Go that collects logs from files on the server and forwards these logs to other machines for processing. @@ -55,7 +55,7 @@ image::static/images/deploy_3.png[] [float] [[deploying-larger-cluster]] -==== Scaling to a Larger Elasticsearch Cluster +=== Scaling to a Larger Elasticsearch Cluster Typically, Logstash does not communicate with a single Elasticsearch node, but with a cluster that comprises several nodes. By default, Logstash uses the HTTP protocol to move data into the cluster. @@ -90,12 +90,12 @@ image::static/images/deploy_4.png[] [float] [[deploying-message-queueing]] -==== Managing Throughput Spikes with Message Queueing +=== Managing Throughput Spikes with Message Queueing When the data coming into a Logstash pipeline exceeds the Elasticsearch cluster's ability to ingest the data, you can use a message broker as a buffer. By default, Logstash throttles incoming events when indexer consumption rates fall below incoming data rates. Since this throttling can lead to events being buffered at -the data source, preventing backpressure with message brokers becomes an important part of managing your deployment. +the data source, preventing back pressure with message brokers becomes an important part of managing your deployment. Adding a message broker to your Logstash deployment also provides a level of protection from data loss. When a Logstash instance that has consumed data from the message broker fails, the data can be replayed from the message broker to an @@ -111,7 +111,7 @@ image::static/images/deploy_5.png[] [float] [[deploying-logstash-ha]] -==== Multiple Connections for Logstash High Availability +=== Multiple Connections for Logstash High Availability To make your Logstash deployment more resilient to individual instance failures, you can set up a load balancer between your data source machines and the Logstash cluster. The load balancer handles the individual connections to the @@ -131,7 +131,7 @@ by eliminating single points of failure. [float] [[deploying-scaling]] -==== Scaling Logstash +=== Scaling Logstash A mature Logstash deployment typically has the following pipeline: diff --git a/docs/static/life-of-an-event.asciidoc b/docs/static/life-of-an-event.asciidoc index d1431d116b6..cef095f496f 100644 --- a/docs/static/life-of-an-event.asciidoc +++ b/docs/static/life-of-an-event.asciidoc @@ -78,82 +78,17 @@ stacktrace messages into a single event. For more information about the available codecs, see <>. -[[fault-tolerance]] -=== Fault Tolerance - -Logstash keeps all events in main memory during processing. Logstash responds to a SIGTERM by attempting to halt inputs and waiting for pending events to finish processing before shutting down. When the pipeline cannot be flushed due to a stuck output or filter, Logstash waits indefinitely. For example, when a pipeline sends output to a database that is unreachable by the Logstash instance, the instance waits indefinitely after receiving a SIGTERM. - -To enable Logstash to detect these situations and terminate with a stalled pipeline, use the `--pipeline.unsafe_shutdown` flag. - -WARNING: Unsafe shutdowns, force-kills of the Logstash process, or crashes of the Logstash process for any other reason result in data loss. Shut down Logstash safely whenever possible. - [[execution-model]] -==== Execution Model - -The Logstash pipeline coordinates the execution of inputs, filters, and outputs. The following schematic sketches the data flow of a pipeline: - -[source,js] ---------------------------------------------------- -input threads | pipeline worker threads ---------------------------------------------------- - -Pipelines in the current release of Logstash process filtering and output in the same thread. Prior to the 2.2 release of Logstash, filtering and output were distinct stages handled by distinct threads. -This change to the Logstash architecture improves performance and enables future persistence capabilities. The new pipeline substantially improves thread liveness, decreases resource usage, and increases throughput. The current Logstash pipeline is a micro-batching pipeline, which is inherently more efficient than a one-at-a-time approach. These efficiencies come in many places, two of the more prominent ones being a reduction in contention and a consequent improvement in thread liveness. These efficiencies are especially noticeable on many-core machines. - -Each `input {}` statement in the Logstash configuration file runs in its own thread. Inputs write events to a common Java https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/SynchronousQueue.html[SynchronousQueue]. This queue holds no events, instead transferring each pushed event to a free worker, blocking if all workers are busy. Each pipeline worker thread takes a batch of events off this queue, creating a buffer per worker, runs the batch of events through the configured filters, then runs the filtered events through any outputs. The size of the batch and number of pipeline worker threads are configurable. The following pseudocode illustrates the process flow: - -[source,ruby] -synchronous_queue = SynchronousQueue.new -inputs.each do |input| - Thread.new do - input.run(synchronous_queue) - end -end -num_pipeline_workers.times do - Thread.new do - while true - batch = take_batch(synchronous_queue, batch_size, batch_delay) - output_batch(filter_batch(batch)) - end - end -end -wait_for_threads_to_terminate() - -There are three configurable options in the pipeline, `--pipeline.workers`, `--pipeline.batch.size`, and `--pipeline.batch.delay`. -The `--pipeline.workers` or `-w` parameter determines how many threads to run for filter and output processing. If you find that events are backing up, or that the CPU is not saturated, consider increasing the value of this parameter to make better use of available processing power. Good results can even be found increasing this number past the number of available processors as these threads may spend significant time in an I/O wait state when writing to external systems. Legal values for this parameter are positive integers. - -The `--pipeline.batch.size` or `-b` parameter defines the maximum number of events an individual worker thread collects before attempting to execute filters and outputs. Larger batch sizes are generally more efficient, but increase memory overhead. Some hardware configurations require you to increase JVM heap size by setting the `LS_HEAP_SIZE` variable to avoid performance degradation with this option. Values of this parameter in excess of the optimum range cause performance degradation due to frequent garbage collection or JVM crashes related to out-of-memory exceptions. Output plugins can process each batch as a logical unit. The Elasticsearch output, for example, issues https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html[bulk requests] for each batch received. Tuning the `-b` parameter adjusts the size of bulk requests sent to Elasticsearch. - -The `--pipeline.batch.delay` option rarely needs to be tuned. This option adjusts the latency of the Logstash pipeline. Pipeline batch delay is the maximum amount of time in milliseconds that Logstash waits for new messages after receiving an event in the current pipeline worker thread. After this time elapses, Logstash begins to execute filters and outputs.The maximum time that Logstash waits between receiving an event and processing that event in a filter is the product of the `pipeline_batch_delay` and `pipeline_batch_size` settings. - -[float] -==== Notes on Pipeline Configuration and Performance - -The total number of inflight events is determined by the product of the `pipeline_workers` and `pipeline_batch_size` parameters. This product is referred to as the _inflight count_. Keep the value of the inflight count in mind as you adjust the `pipeline_workers` and `pipeline_batch_size` parameters. Pipelines that intermittently receive large events at irregular intervals require sufficient memory to handle these spikes. Configure the `LS_HEAP_SIZE` option accordingly. - -The Logstash defaults are chosen to provide fast, safe performance for most users. To increase performance, increase the number of pipeline workers or the batch size, taking into account the following suggestions: - -Measure each change to make sure it increases, rather than decreases, performance. -Ensure that you leave enough memory available to cope with a sudden increase in event size. For example, an application that generates exceptions that are represented as large blobs of text. -The number of workers may be set higher than the number of CPU cores since outputs often spend idle time in I/O wait conditions. - -Threads in Java have names and you can use the `jstack`, `top`, and the VisualVM graphical tools to figure out which resources a given thread uses. - -On Linux platforms, Logstash labels all the threads it can with something descriptive. For example, inputs show up as `[base]workerN`, where N is an integer. Where possible, other threads are also labeled to help you identify their purpose. - -[float] -==== Profiling the Heap - -When tuning Logstash you may have to adjust the heap size. You can use the https://visualvm.java.net/[VisualVM] tool to profile the heap. The *Monitor* pane in particular is useful for checking whether your heap allocation is sufficient for the current workload. The screenshots below show sample *Monitor* panes. The first pane examines a Logstash instance configured with too many inflight events. The second pane examines a Logstash instance configured with an appropriate amount of inflight events. Note that the specific batch sizes used here are most likely not applicable to your specific workload, as the memory demands of Logstash vary in large part based on the type of messages you are sending. - -image::static/images/pipeline_overload.png[] - -image::static/images/pipeline_correct_load.png[] +=== Execution Model -In the first example we see that the CPU isn’t being used very efficiently. In fact, the JVM is often times having to stop the VM for “full GCs”. Full garbage collections are a common symptom of excessive memory pressure. This is visible in the spiky pattern on the CPU chart. In the more efficiently configured example, the GC graph pattern is more smooth, and the CPU is used in a more uniform manner. You can also see that there is ample headroom between the allocated heap size, and the maximum allowed, giving the JVM GC a lot of room to work with. +The Logstash event processing pipeline coordinates the execution of inputs, +filters, and outputs. -Examining the in-depth GC statistics with a tool similar to the excellent https://visualvm.java.net/plugins.html[VisualGC] plugin shows that the over-allocated VM spends very little time in the efficient Eden GC, compared to the time spent in the more resource-intensive Old Gen “Full” GCs. +Each input stage in the Logstash pipeline runs in its own thread. Inputs write events to a common Java https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/SynchronousQueue.html[SynchronousQueue]. This queue holds no events, instead transferring each pushed event to a free worker, blocking if all workers are busy. Each pipeline worker thread takes a batch of events off this queue, creating a buffer per worker, runs the batch of events through the configured filters, then runs the filtered events through any outputs. The size of the batch and number of pipeline worker threads are configurable (see <>). -NOTE: As long as the GC pattern is acceptable, heap sizes that occasionally increase to the maximum are acceptable. Such heap size spikes happen in response to a burst of large events passing through the pipeline. In general practice, maintain a gap between the used amount of heap memory and the maximum. -This document is not a comprehensive guide to JVM GC tuning. Read the official http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html[Oracle guide] for more information on the topic. We also recommend reading http://www.semicomplete.com/blog/geekery/debugging-java-performance.html[Debugging Java Performance]. +By default, Logstash uses in-memory bounded queues between pipeline stages +(input → filter and filter → output) to buffer events. If Logstash terminates +unsafely, any events that are stored in memory will be lost. To prevent data +loss, you can enable Logstash to persist in-flight events to disk. See +<> for more information. diff --git a/docs/static/performance-checklist.asciidoc b/docs/static/performance-checklist.asciidoc index 48e8a4d1bc7..b8b8e550f6b 100644 --- a/docs/static/performance-checklist.asciidoc +++ b/docs/static/performance-checklist.asciidoc @@ -1,13 +1,21 @@ -[[performance-troubleshooting]] +[[performance-tuning]] +== Performance Tuning + +This section includes the following information about tuning Logstash +performance: -== Performance Troubleshooting Guide +* <> +* <> + +[[performance-troubleshooting]] +=== Performance Troubleshooting Guide -You can use this troubleshooting guide to quickly diagnose and resolve Logstash performance problems. Advanced knowledge of pipeline internals is not required to understand this guide. However, the https://www.elastic.co/guide/en/logstash/current/pipeline.html[pipeline documentation] is recommended reading if you want to go beyond this guide. +You can use this troubleshooting guide to quickly diagnose and resolve Logstash performance problems. Advanced knowledge of pipeline internals is not required to understand this guide. However, the <> is recommended reading if you want to go beyond this guide. You may be tempted to jump ahead and change settings like `-w` as a first attempt to improve performance. In our experience, changing this setting makes it more difficult to troubleshoot performance problems because you increase the number of variables in play. Instead, make one change at a time and measure the results. Starting at the end of this list is a sure-fire way to create a confusing situation. [float] -=== Performance Checklist +==== Performance Checklist . *Check the performance of input sources and output destinations:* + @@ -34,10 +42,62 @@ You may be tempted to jump ahead and change settings like `-w` as a first attemp + * Often times CPU utilization can go through the roof if the heap size is too low, resulting in the JVM constantly garbage collecting. * A quick way to check for this issue is to double the heap size and see if performance improves. Do not increase the heap size past the amount of physical memory. Leave at least 1GB free for the OS and other processes. -* You can make more accurate measurements of the JVM heap by using either the `jmap` command line utility distributed with Java or by using VisualVM. +* You can make more accurate measurements of the JVM heap by using either the `jmap` command line utility distributed with Java or by using VisualVM. For more info, see <>. . *Tune Logstash worker settings:* + * Begin by scaling up the number of pipeline workers by using the `-w` flag. This will increase the number of threads available for filters and outputs. It is safe to scale this up to a multiple of CPU cores, if need be, as the threads can become idle on I/O. * Each output can only be active in a single pipeline worker thread by default. You can increase this by changing the `workers` setting in the configuration block for each output. Never make this value larger than the number of pipeline workers. * You may also tune the output batch size. For many outputs, such as the Elasticsearch output, this setting will correspond to the size of I/O operations. In the case of the Elasticsearch output, this setting corresponds to the batch size. + +[[tuning-logstash]] +=== Tuning and Profiling Logstash Performance + +The Logstash defaults are chosen to provide fast, safe performance for most +users. However if you notice performance issues, you may need to modify +some of the defaults. Logstash provides the following configurable options +for tuning pipeline performance: `pipeline.workers`, `pipeline.batch.size`, and `pipeline.batch.delay`. For more information about setting these options, see <>. + +Make sure you've read the <> before modifying these options. + +* The `pipeline.workers` setting determines how many threads to run for filter and output processing. If you find that events are backing up, or that the CPU is not saturated, consider increasing the value of this parameter to make better use of available processing power. Good results can even be found increasing this number past the number of available processors as these threads may spend significant time in an I/O wait state when writing to external systems. Legal values for this parameter are positive integers. + +* The `pipeline.batch.size` setting defines the maximum number of events an individual worker thread collects before attempting to execute filters and outputs. Larger batch sizes are generally more efficient, but increase memory overhead. Some hardware configurations require you to increase JVM heap size by setting the `LS_HEAP_SIZE` variable to avoid performance degradation with this option. Values of this parameter in excess of the optimum range cause performance degradation due to frequent garbage collection or JVM crashes related to out-of-memory exceptions. Output plugins can process each batch as a logical unit. The Elasticsearch output, for example, issues https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html[bulk requests] for each batch received. Tuning the `-b` parameter adjusts the size of bulk requests sent to Elasticsearch. + +* The `pipeline.batch.delay` setting rarely needs to be tuned. This setting adjusts the latency of the Logstash pipeline. Pipeline batch delay is the maximum amount of time in milliseconds that Logstash waits for new messages after receiving an event in the current pipeline worker thread. After this time elapses, Logstash begins to execute filters and outputs.The maximum time that Logstash waits between receiving an event and processing that event in a filter is the product of the `pipeline.batch.delay` and `pipeline.batch.size` settings. + +[float] +==== Notes on Pipeline Configuration and Performance + +If you plan to modify the default pipeline settings, take into account the +following suggestions: + +* The total number of inflight events is determined by the product of the `pipeline.workers` and `pipeline.batch.size` settings. This product is referred to as the _inflight count_. Keep the value of the inflight count in mind as you adjust the `pipeline.workers` and `pipeline.batch.size` settings. Pipelines that intermittently receive large events at irregular intervals require sufficient memory to handle these spikes. Configure the `LS_HEAP_SIZE` variable accordingly. + +* Measure each change to make sure it increases, rather than decreases, performance. + +* Ensure that you leave enough memory available to cope with a sudden increase in event size. For example, an application that generates exceptions that are represented as large blobs of text. + +* The number of workers may be set higher than the number of CPU cores since outputs often spend idle time in I/O wait conditions. + +* Threads in Java have names and you can use the `jstack`, `top`, and the VisualVM graphical tools to figure out which resources a given thread uses. + +* On Linux platforms, Logstash labels all the threads it can with something descriptive. For example, inputs show up as `[base]workerN`, where N is an integer. Where possible, other threads are also labeled to help you identify their purpose. + +[float] +[[profiling-the-heap]] +==== Profiling the Heap + +When tuning Logstash you may have to adjust the heap size. You can use the https://visualvm.java.net/[VisualVM] tool to profile the heap. The *Monitor* pane in particular is useful for checking whether your heap allocation is sufficient for the current workload. The screenshots below show sample *Monitor* panes. The first pane examines a Logstash instance configured with too many inflight events. The second pane examines a Logstash instance configured with an appropriate amount of inflight events. Note that the specific batch sizes used here are most likely not applicable to your specific workload, as the memory demands of Logstash vary in large part based on the type of messages you are sending. + +image::static/images/pipeline_overload.png[] + +image::static/images/pipeline_correct_load.png[] + +In the first example we see that the CPU isn’t being used very efficiently. In fact, the JVM is often times having to stop the VM for “full GCs”. Full garbage collections are a common symptom of excessive memory pressure. This is visible in the spiky pattern on the CPU chart. In the more efficiently configured example, the GC graph pattern is more smooth, and the CPU is used in a more uniform manner. You can also see that there is ample headroom between the allocated heap size, and the maximum allowed, giving the JVM GC a lot of room to work with. + +Examining the in-depth GC statistics with a tool similar to the excellent https://visualvm.java.net/plugins.html[VisualGC] plugin shows that the over-allocated VM spends very little time in the efficient Eden GC, compared to the time spent in the more resource-intensive Old Gen “Full” GCs. + +NOTE: As long as the GC pattern is acceptable, heap sizes that occasionally increase to the maximum are acceptable. Such heap size spikes happen in response to a burst of large events passing through the pipeline. In general practice, maintain a gap between the used amount of heap memory and the maximum. +This document is not a comprehensive guide to JVM GC tuning. Read the official http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html[Oracle guide] for more information on the topic. We also recommend reading http://www.semicomplete.com/blog/geekery/debugging-java-performance.html[Debugging Java Performance]. + diff --git a/docs/static/persistent-queues.asciidoc b/docs/static/persistent-queues.asciidoc new file mode 100644 index 00000000000..30aa5f8da15 --- /dev/null +++ b/docs/static/persistent-queues.asciidoc @@ -0,0 +1,127 @@ +[[persistent-queues]] +=== Persistent Queues + +WARNING: This functionality is in beta and is subject to change. It should be deployed in production at your own risk. + +By default, Logstash uses in-memory bounded queues between pipeline stages +(input → filter and filter → output) to buffer events. The size of these +in-memory queues is fixed and not configurable. If Logstash terminates unsafely, +either as the result of a software failure or the user forcing an unsafe +shutdown, it's possible to lose queued events. + +To prevent event loss in these scenarios, you can configure Logstash to use +persisent queues. With persistent queues enabled, Logstash persists buffered +events to disk instead of storing them in memory. + +Persistent queues are also useful for Logstash deployments that require high +throughput and resiliency. Instead of deploying and managing a message +broker, such as Redis, RabbitMQ, or Apache Kafka, to handle a mismatch in +cadence between the shipping stage and the relatively expensive processing +stage, you can enable persistent queues to buffer events on disk. The queue size +is variable and configurable, which means that you have more control over +managing situations that could result in back pressure to the source. + +[[persistent-queues-advantages]] +==== Advantages of Persistent Queues + +Using persistent queues: + +* Provides protection from losing in-flight messages when the Logstash process is shut down or the machine is restarted. +* Handles the surge of events without having to use an external queueing mechanism like Redis or Kafka. +* Provides an at-least-once message delivery guarantee. If Logstash is restarted +while events are in-flight, Logstash will attempt to deliver messages stored +in the persistent queue until delivery succeeds at least once. In other words, +messages stored in the persistent queue may be duplicated, but not lost. + +[[persistent-queues-limitations]] +==== Limitations of Persistent Queues + +The current implementation of persistent queues has the following limitations: + +* This version does not enable full end-to-end resiliency. Logstash only +acknowledges delivery of messages in the filter and output stages, and not all +the way back to the input or source. +* It does not handle permanent disk or machine failures. The data persisted to disk is not replicated, so it is still a single point of failure. + +[[persistent-queues-architecture]] +==== How Persistent Queues Work + +The persistent queue sits between the input and filter stages in the same +process: + +input → persistent queue → filter + output + +The input stage reads data from the configured data source and writes events to +the persistent queue for processing. As events pass through the pipeline, +Logstash pulls a batch of events from the persistent queue for processing them +in the filter and output stages. As events are processed, Logstash uses a +checkpoint file to track which events are successfully acknowledged (ACKed) as +processed by Logstash. An event is recorded as ACKed in the checkpoint file if +the event is successfully sent to the last output stage in the pipeline; +Logstash does not wait for the output to acknowledge delivery. + +During a normal, controlled shutdown (*CTRL+C*), Logstash finishes +processing the current in-flight events (that is, the events being processed by +the filter and output stages, not the queued events), finalizes the ACKing +of these events, and then terminates the Logstash process. Upon restart, +Logstash uses the checkpoint file to pick up where it left off in the persistent +queue and processes the events in the backlog. + +If Logstash crashes or experiences an uncontrolled shutdown, any in-flight +events are left as unACKed in the persistent queue. Upon restart, Logstash will +replay the events from its history, potentially leading to duplicate data being +written to the output. + +[[configuring-persistent-queues]] +==== Configuring Persistent Queues + +To configure persistent queues, you can specify the following options in the +Logstash settings file: + +* `queue.type`: Specify `persisted` to enable persistent queues. By default, persistent queues are disabled (`queue.type: memory`). +* `path.queue`: The directory path where the data files will be stored. By default, the files are stored in `path.data/queue`. +* `queue.page_capacity`: The size of the page data file. The queue data consists of append-only data files separated into pages. The default size is 250mb. +* `queue.max_events`: The maximum number of unread events that are allowed in the queue. The default is 0 (unlimited). +* `queue.max_bytes`: The total capacity of the queue in number of bytes. The +default is 1024mb (1g). Make sure the capacity of your disk drive is greater +than the value you specify here. If both `queue.max_events` and +`queue.max_bytes` are specified, Logstash uses whichever criteria is reached +first. + +You can also specify options that control when the checkpoint file gets updated (`queue.checkpoint.acks`, `queue.checkpoint.writes`, and +`queue.checkpoint.interval`). See <> for more +information about these options. + +Example configuration: + +[source, yaml] +queue.type: persisted +queue.max_bytes: 4g + +[[backpressure-persistent-queues]] +==== Handling Back Pressure + +Logstash has a built-in mechanism that adds back pressure to the data flow when +the queue is full. This mechanism helps Logstash control the rate of data flow +at the input stage without overwhelming downstream stages and outputs like +Elasticsearch. + +You can control when back pressure happens by using the `queue.max_bytes` +setting to configure the capacity of the queue on disk. The following example +sets the total capacity of the queue to 8gb: + +[source, yaml] +queue.type: persisted +queue.max_bytes: 8gb + +With these settings specified, Logstash will buffer unACKed events on disk until +the size of the queue reaches 8gb. When the queue is full of unACKed events, and +the size limit has been reached, Logstash will no longer accept new events. This +process is called back pressure. + +Each input handles back pressure independently. For example, when the +<> input encounters back pressure, it no longer +accepts new connections and waits until the persistent queue has space to accept +more events. After the filter and output stages finish processing existing +events in the queue and ACKs them, Logstash automatically starts accepting new +events. diff --git a/docs/static/setting-up-logstash.asciidoc b/docs/static/setting-up-logstash.asciidoc index 6aeef927d06..28f122dcba5 100644 --- a/docs/static/setting-up-logstash.asciidoc +++ b/docs/static/setting-up-logstash.asciidoc @@ -8,8 +8,13 @@ This section includes additional information on how to set up and run Logstash, * <> * <> * <> -* <> +* <> * <> +* <> +* <> +* <> +* <> + [[dir-layout]] === Logstash Directory Layout diff --git a/docs/static/settings-file.asciidoc b/docs/static/settings-file.asciidoc index a646b5852ab..4f73fc18fbb 100644 --- a/docs/static/settings-file.asciidoc +++ b/docs/static/settings-file.asciidoc @@ -102,6 +102,38 @@ The `logstash.yml` file includes the following settings: in plaintext passwords appearing in your logs! | `false` +| `queue.type` +| The internal queuing model to use for event buffering. Specify `memory` for legacy in-memory based queuing, or `persisted` for disk-based ACKed queueing (<>). +| `memory` + +| `path.queue` +| The directory path where the data files will be stored when persistent queues are enabled (`queue.type: persisted`). +| `path.data/queue` + +| `queue.page_capacity` +| The size of the page data files used when persistent queues are enabled (`queue.type: persisted`). The queue data consists of append-only data files separated into pages. +| 250mb + +| `queue.max_events` +| The maximum number of unread events in the queue when persistent queues are enabled (`queue.type: persisted`). +| 0 (unlimited) + +| `queue.max_bytes` +| The total capacity of the queue in number of bytes. Make sure the capacity of your disk drive is greater than the value you specify here. If both `queue.max_events` and `queue.max_bytes` are specified, Logstash uses whichever criteria is reached first. +| 1024mb (1g) + +| `queue.checkpoint.acks` +| The maximum number of ACKed events before forcing a checkpoint when persistent queues are enabled (`queue.type: persisted`). Specify `queue.checkpoint.acks: 0` to set this value to unlimited. +|1024 + +| `queue.checkpoint.writes` +| The maximum number of written events before forcing a checkpoint when persistent queues are enabled (`queue.type: persisted`). Specify `queue.checkpoint.writes: 0` to set this value to unlimited. +| 1024 + +| `queue.checkpoint.interval` +| The interval in milliseconds when a checkpoint is forced on the head page when persistent queues are enabled (`queue.type: persisted`). Specify `queue.checkpoint.interval: 0` for no periodic checkpoint. +| 1000 + | `http.host` | The bind address for the metrics REST endpoint. | `"127.0.0.1"` diff --git a/docs/static/stalled-shutdown.asciidoc b/docs/static/shutdown.asciidoc similarity index 89% rename from docs/static/stalled-shutdown.asciidoc rename to docs/static/shutdown.asciidoc index 73a67baa1f1..ceb4777dc8a 100644 --- a/docs/static/stalled-shutdown.asciidoc +++ b/docs/static/shutdown.asciidoc @@ -1,5 +1,5 @@ -[[stalled-shutdown]] -=== Stalled Shutdown Detection +[[shutdown]] +=== Shutting Down Logstash When you attempt to shut down a running Logstash instance, Logstash performs several steps before it can safely shut down. It must: @@ -23,6 +23,10 @@ worker threads. To enable Logstash to forcibly terminate in the case of a stalled shutdown, use the `--pipeline.unsafe_shutdown` flag when you start Logstash. +WARNING: Unsafe shutdowns, force-kills of the Logstash process, or crashes of the Logstash process for any other reason may result in data loss (unless you've +enabled Logstash to use <>). Shut down +Logstash safely whenever possible. + [[shutdown-stall-example]] ==== Stall Detection Example From 45d54324f4e83b5ef79d273a807417ea2ca83ca5 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 2 Dec 2016 17:30:39 -0800 Subject: [PATCH 534/632] Add fixes from review Fixes #6344 --- docs/static/performance-checklist.asciidoc | 4 +- docs/static/persistent-queues.asciidoc | 54 ++++++++++++++++------ 2 files changed, 41 insertions(+), 17 deletions(-) diff --git a/docs/static/performance-checklist.asciidoc b/docs/static/performance-checklist.asciidoc index b8b8e550f6b..58c741dfcee 100644 --- a/docs/static/performance-checklist.asciidoc +++ b/docs/static/performance-checklist.asciidoc @@ -12,7 +12,7 @@ performance: You can use this troubleshooting guide to quickly diagnose and resolve Logstash performance problems. Advanced knowledge of pipeline internals is not required to understand this guide. However, the <> is recommended reading if you want to go beyond this guide. -You may be tempted to jump ahead and change settings like `-w` as a first attempt to improve performance. In our experience, changing this setting makes it more difficult to troubleshoot performance problems because you increase the number of variables in play. Instead, make one change at a time and measure the results. Starting at the end of this list is a sure-fire way to create a confusing situation. +You may be tempted to jump ahead and change settings like `pipeline.workers` (`-w`) as a first attempt to improve performance. In our experience, changing this setting makes it more difficult to troubleshoot performance problems because you increase the number of variables in play. Instead, make one change at a time and measure the results. Starting at the end of this list is a sure-fire way to create a confusing situation. [float] ==== Performance Checklist @@ -62,7 +62,7 @@ Make sure you've read the <> before modifying these * The `pipeline.workers` setting determines how many threads to run for filter and output processing. If you find that events are backing up, or that the CPU is not saturated, consider increasing the value of this parameter to make better use of available processing power. Good results can even be found increasing this number past the number of available processors as these threads may spend significant time in an I/O wait state when writing to external systems. Legal values for this parameter are positive integers. -* The `pipeline.batch.size` setting defines the maximum number of events an individual worker thread collects before attempting to execute filters and outputs. Larger batch sizes are generally more efficient, but increase memory overhead. Some hardware configurations require you to increase JVM heap size by setting the `LS_HEAP_SIZE` variable to avoid performance degradation with this option. Values of this parameter in excess of the optimum range cause performance degradation due to frequent garbage collection or JVM crashes related to out-of-memory exceptions. Output plugins can process each batch as a logical unit. The Elasticsearch output, for example, issues https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html[bulk requests] for each batch received. Tuning the `-b` parameter adjusts the size of bulk requests sent to Elasticsearch. +* The `pipeline.batch.size` setting defines the maximum number of events an individual worker thread collects before attempting to execute filters and outputs. Larger batch sizes are generally more efficient, but increase memory overhead. Some hardware configurations require you to increase JVM heap size by setting the `LS_HEAP_SIZE` variable to avoid performance degradation with this option. Values of this parameter in excess of the optimum range cause performance degradation due to frequent garbage collection or JVM crashes related to out-of-memory exceptions. Output plugins can process each batch as a logical unit. The Elasticsearch output, for example, issues https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html[bulk requests] for each batch received. Tuning the `pipeline.batch.size` setting adjusts the size of bulk requests sent to Elasticsearch. * The `pipeline.batch.delay` setting rarely needs to be tuned. This setting adjusts the latency of the Logstash pipeline. Pipeline batch delay is the maximum amount of time in milliseconds that Logstash waits for new messages after receiving an event in the current pipeline worker thread. After this time elapses, Logstash begins to execute filters and outputs.The maximum time that Logstash waits between receiving an event and processing that event in a filter is the product of the `pipeline.batch.delay` and `pipeline.batch.size` settings. diff --git a/docs/static/persistent-queues.asciidoc b/docs/static/persistent-queues.asciidoc index 30aa5f8da15..73b24134a2f 100644 --- a/docs/static/persistent-queues.asciidoc +++ b/docs/static/persistent-queues.asciidoc @@ -10,7 +10,7 @@ either as the result of a software failure or the user forcing an unsafe shutdown, it's possible to lose queued events. To prevent event loss in these scenarios, you can configure Logstash to use -persisent queues. With persistent queues enabled, Logstash persists buffered +persistent queues. With persistent queues enabled, Logstash persists buffered events to disk instead of storing them in memory. Persistent queues are also useful for Logstash deployments that require high @@ -19,7 +19,7 @@ broker, such as Redis, RabbitMQ, or Apache Kafka, to handle a mismatch in cadence between the shipping stage and the relatively expensive processing stage, you can enable persistent queues to buffer events on disk. The queue size is variable and configurable, which means that you have more control over -managing situations that could result in back pressure to the source. +managing situations that can result in back pressure to the source. See <>. [[persistent-queues-advantages]] ==== Advantages of Persistent Queues @@ -38,9 +38,10 @@ messages stored in the persistent queue may be duplicated, but not lost. The current implementation of persistent queues has the following limitations: -* This version does not enable full end-to-end resiliency. Logstash only -acknowledges delivery of messages in the filter and output stages, and not all -the way back to the input or source. +* This version does not enable full end-to-end resiliency, except for messages +sent to the <> input. For other inputs, Logstash +only acknowledges delivery of messages in the filter and output stages, and not +all the way back to the input or source. * It does not handle permanent disk or machine failures. The data persisted to disk is not replicated, so it is still a single point of failure. [[persistent-queues-architecture]] @@ -76,34 +77,33 @@ written to the output. ==== Configuring Persistent Queues To configure persistent queues, you can specify the following options in the -Logstash settings file: +Logstash <>: * `queue.type`: Specify `persisted` to enable persistent queues. By default, persistent queues are disabled (`queue.type: memory`). * `path.queue`: The directory path where the data files will be stored. By default, the files are stored in `path.data/queue`. * `queue.page_capacity`: The size of the page data file. The queue data consists of append-only data files separated into pages. The default size is 250mb. * `queue.max_events`: The maximum number of unread events that are allowed in the queue. The default is 0 (unlimited). * `queue.max_bytes`: The total capacity of the queue in number of bytes. The -default is 1024mb (1g). Make sure the capacity of your disk drive is greater +default is 1024mb (1gb). Make sure the capacity of your disk drive is greater than the value you specify here. If both `queue.max_events` and `queue.max_bytes` are specified, Logstash uses whichever criteria is reached first. You can also specify options that control when the checkpoint file gets updated (`queue.checkpoint.acks`, `queue.checkpoint.writes`, and -`queue.checkpoint.interval`). See <> for more -information about these options. +`queue.checkpoint.interval`). See <>. Example configuration: [source, yaml] queue.type: persisted -queue.max_bytes: 4g +queue.max_bytes: 4gb [[backpressure-persistent-queues]] ==== Handling Back Pressure -Logstash has a built-in mechanism that adds back pressure to the data flow when -the queue is full. This mechanism helps Logstash control the rate of data flow -at the input stage without overwhelming downstream stages and outputs like +Logstash has a built-in mechanism that exerts back pressure on the data flow +when the queue is full. This mechanism helps Logstash control the rate of data +flow at the input stage without overwhelming downstream stages and outputs like Elasticsearch. You can control when back pressure happens by using the `queue.max_bytes` @@ -116,8 +116,7 @@ queue.max_bytes: 8gb With these settings specified, Logstash will buffer unACKed events on disk until the size of the queue reaches 8gb. When the queue is full of unACKed events, and -the size limit has been reached, Logstash will no longer accept new events. This -process is called back pressure. +the size limit has been reached, Logstash will no longer accept new events. Each input handles back pressure independently. For example, when the <> input encounters back pressure, it no longer @@ -125,3 +124,28 @@ accepts new connections and waits until the persistent queue has space to accept more events. After the filter and output stages finish processing existing events in the queue and ACKs them, Logstash automatically starts accepting new events. + +[[durability-persistent-queues]] +==== Controlling Durability + +When the persistent queue feature is enabled, Logstash will store events on +disk. The persistent queue exposes the trade-off between performance and +durability by providing the following configuration options: + +* `queue.checkpoint.writes`: The number of writes to the queue to trigger an +fsync to disk. This configuration controls the durability from the producer +side. Keep in mind that a disk flush is a relatively heavy operation that will +affect throughput if performed after every write. For instance, if you want to +ensure that all messages in Logstash's queue are durable, you can set +`queue.checkpoint.writes: 1`. However, this setting can severely impact +performance. + +* `queue.checkpoint.acks`: The number of ACKs to the queue to trigger an fsync to disk. This configuration controls the durability from the consumer side. + +The process of checkpointing is atomic, which means any update to the file is +saved if successful. + +If Logstash is terminated, or if there is a hardware level failure, any data +that is buffered in the persistent queue, but not yet checkpointed, is lost. +To avoid this possibility, you can set `queue.checkpoint.writes: 1`, but keep in +mind that this setting can severely impact performance. From 74e32a6b97e9c111e104313523851c89eb52e5fb Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Thu, 17 Nov 2016 12:28:43 -0800 Subject: [PATCH 535/632] Add comment referring to another research effort Fixes #6276 --- rakelib/artifacts.rake | 1 + 1 file changed, 1 insertion(+) diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake index 8c33df07552..27ebdc946d0 100644 --- a/rakelib/artifacts.rake +++ b/rakelib/artifacts.rake @@ -416,6 +416,7 @@ namespace "artifact" do # correct version of OpenJDK is impossible because there is no guarantee that # is impossible for the same reasons as the Red Hat section above. # References: + # - https://github.com/elastic/logstash/issues/6275 # - http://www.elasticsearch.org/blog/java-1-7u55-safe-use-elasticsearch-lucene/ # - deb: https://github.com/elasticsearch/logstash/pull/1008 # - rpm: https://github.com/elasticsearch/logstash/pull/1290 From d5d556989dcf8232c83ef9b6558c0bbe299e3455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Palmowski?= Date: Thu, 25 Aug 2016 15:13:04 +0100 Subject: [PATCH 536/632] Don't pass jruby opts explicitly they are already passed via JAVA_OPTS environment variable. Fixes #5830 --- bin/logstash.lib.sh | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/bin/logstash.lib.sh b/bin/logstash.lib.sh index 3777514a31a..55c01d56b36 100755 --- a/bin/logstash.lib.sh +++ b/bin/logstash.lib.sh @@ -135,15 +135,6 @@ setup_ruby() { VENDORED_JRUBY= } -jruby_opts() { - printf "%s" "--1.9" - for i in $JAVA_OPTS ; do - if [ -z "$i" ]; then - printf "%s" " -J$i" - fi - done -} - setup() { # first check if we want to use drip, which can be used in vendored jruby mode # and also when setting USE_RUBY=1 if the ruby interpretor is in fact jruby @@ -179,8 +170,8 @@ ruby_exec() { # $VENDORED_JRUBY is non-empty so use the vendored JRuby if [ "$DEBUG" ] ; then - echo "DEBUG: exec ${JRUBY_BIN} $(jruby_opts) $@" + echo "DEBUG: exec ${JRUBY_BIN} $@" fi - exec "${JRUBY_BIN}" $(jruby_opts) "$@" + exec "${JRUBY_BIN}" "$@" fi } From 3cc5d3cf32c59e9bab466008703ea8244a53be77 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Tue, 6 Dec 2016 10:49:38 -0800 Subject: [PATCH 537/632] Pin webmock to 2.2.0 The latest version of webmock (2.3.1) requires Ruby 2.0 or newer. Fixes #6362 --- tools/logstash-docgen/logstash-docgen.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/logstash-docgen/logstash-docgen.gemspec b/tools/logstash-docgen/logstash-docgen.gemspec index 2fd415ec7e7..c26ab601e57 100644 --- a/tools/logstash-docgen/logstash-docgen.gemspec +++ b/tools/logstash-docgen/logstash-docgen.gemspec @@ -31,5 +31,5 @@ Gem::Specification.new do |spec| # Used for the dependency lookup code spec.add_development_dependency "vcr" - spec.add_development_dependency "webmock" + spec.add_development_dependency "webmock", "2.2.0" end From 6e527b26ec6f298f164fe8e30c03171668b4d293 Mon Sep 17 00:00:00 2001 From: Alvin Chen Date: Tue, 6 Dec 2016 13:23:50 -0800 Subject: [PATCH 538/632] Remove community maintained statement Remove community maintained statement Fixes #6365 --- tools/logstash-docgen/templates/plugin-doc.asciidoc.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/logstash-docgen/templates/plugin-doc.asciidoc.erb b/tools/logstash-docgen/templates/plugin-doc.asciidoc.erb index 1b6eed1800c..999b52ea4cd 100644 --- a/tools/logstash-docgen/templates/plugin-doc.asciidoc.erb +++ b/tools/logstash-docgen/templates/plugin-doc.asciidoc.erb @@ -7,7 +7,7 @@ Released on: <%=release_date%> Compatible: <%= supported_logstash %> <% unless default_plugin? %> -NOTE: This is a community-maintained plugin! It does not ship with Logstash by default, but it is easy to install by running `bin/logstash-plugin install logstash-<%= section %>-<%= name %>`. +NOTE: This plugin does not ship with Logstash by default, but it is easy to install by running `bin/logstash-plugin install logstash-<%= section %>-<%= name %>`. <% end %> <%= description %> From c8131b146a3fbad4c07a3075d9051d8ca8c9c959 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Wed, 2 Nov 2016 17:14:59 -0700 Subject: [PATCH 539/632] Add test to cover negative array offsets in field references. It currently fails. Fixes #6226 --- logstash-core-event-java/spec/event_spec.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/logstash-core-event-java/spec/event_spec.rb b/logstash-core-event-java/spec/event_spec.rb index 3402270c92b..1ed0a9777a5 100644 --- a/logstash-core-event-java/spec/event_spec.rb +++ b/logstash-core-event-java/spec/event_spec.rb @@ -61,6 +61,16 @@ expect(e.get("[foo][2]")).to eq(1.0) expect(e.get("[foo][3]")).to be_nil end + + context "negative array values" do + it "should index from the end of the array" do + list = ["bar", 1, 1.0] + e = LogStash::Event.new({"foo" => list}) + expect(e.get("[foo][-3]")).to eq(list[-3]) + expect(e.get("[foo][-2]")).to eq(list[-2]) + expect(e.get("[foo][-1]")).to eq(list[-1]) + end + end end context "#set" do From 235dc12c09c0dbc5be70191748c37d4f95373eb0 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Wed, 2 Nov 2016 17:37:58 -0700 Subject: [PATCH 540/632] Allow negative array indexes to mean an offset from the end of the array, where -1 means the last element. Fixes #6226 --- .../src/main/java/org/logstash/Accessors.java | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/logstash-core-event-java/src/main/java/org/logstash/Accessors.java b/logstash-core-event-java/src/main/java/org/logstash/Accessors.java index bdf6c622b83..00da2b9f11f 100644 --- a/logstash-core-event-java/src/main/java/org/logstash/Accessors.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Accessors.java @@ -34,10 +34,15 @@ public Object del(String reference) { return ((Map) target).remove(field.getKey()); } else if (target instanceof List) { int i = Integer.parseInt(field.getKey()); - if (i < 0 || i >= ((List) target).size()) { - return null; + int size = ((List) target).size(); + if (i >= size || i < -size) { + return null; + } else if (i < 0) { + // Offset from the end of the array. + return ((List) target).remove(size + i); + } else { + return ((List) target).remove(i); } - return ((List) target).remove(i); } else { throw newCollectionException(target); } @@ -112,9 +117,15 @@ private Object findCreateTarget(FieldReference field) { } private boolean foundInList(List target, int index) { - if (index < 0 || index >= target.size()) { + int size = ((List) target).size(); + if (index >= size || index < -size) { return false; } + + if (index < 0) { + index = size + index; + } + return target.get(index) != null; } @@ -128,11 +139,15 @@ private Object fetch(Object target, String key) { return result; } else if (target instanceof List) { int i = Integer.parseInt(key); - if (i < 0 || i >= ((List) target).size()) { + int size = ((List) target).size(); + if (i >= size || i < -size) { return null; + } else if (i < 0) { + // Offset from the end of the array. + return ((List) target).get(size + i); + } else { + return ((List) target).get(i); } - Object result = ((List) target).get(i); - return result; } else if (target == null) { return null; } else { From c262d53765848406530cccd224435821ae058a1b Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Thu, 3 Nov 2016 15:55:46 -0700 Subject: [PATCH 541/632] Move list offset calculation (for negative index values, etc) to a static method. Fixes #6226 --- .../src/main/java/org/logstash/Accessors.java | 53 ++++++++++--------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/logstash-core-event-java/src/main/java/org/logstash/Accessors.java b/logstash-core-event-java/src/main/java/org/logstash/Accessors.java index 00da2b9f11f..4b78c375123 100644 --- a/logstash-core-event-java/src/main/java/org/logstash/Accessors.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Accessors.java @@ -34,14 +34,11 @@ public Object del(String reference) { return ((Map) target).remove(field.getKey()); } else if (target instanceof List) { int i = Integer.parseInt(field.getKey()); - int size = ((List) target).size(); - if (i >= size || i < -size) { - return null; - } else if (i < 0) { - // Offset from the end of the array. - return ((List) target).remove(size + i); - } else { - return ((List) target).remove(i); + try { + int offset = listIndex(i, (List) target); + return ((List)target).remove(offset); + } catch (IndexOutOfBoundsException e) { + return null; } } else { throw newCollectionException(target); @@ -117,16 +114,13 @@ private Object findCreateTarget(FieldReference field) { } private boolean foundInList(List target, int index) { - int size = ((List) target).size(); - if (index >= size || index < -size) { + try { + int offset = listIndex(index, target); + return target.get(offset) != null; + } catch (IndexOutOfBoundsException e) { return false; } - if (index < 0) { - index = size + index; - } - - return target.get(index) != null; } private boolean foundInMap(Map target, String key) { @@ -138,15 +132,11 @@ private Object fetch(Object target, String key) { Object result = ((Map) target).get(key); return result; } else if (target instanceof List) { - int i = Integer.parseInt(key); - int size = ((List) target).size(); - if (i >= size || i < -size) { + try { + int offset = listIndex(Integer.parseInt(key), (List) target); + return ((List) target).get(offset); + } catch (IndexOutOfBoundsException e) { return null; - } else if (i < 0) { - // Offset from the end of the array. - return ((List) target).get(size + i); - } else { - return ((List) target).get(i); } } else if (target == null) { return null; @@ -171,7 +161,8 @@ private Object store(Object target, String key, Object value) { } ((List) target).add(value); } else { - ((List) target).set(i, value); + int offset = listIndex(i, (List) target); + ((List) target).set(offset, value); } } else { throw newCollectionException(target); @@ -189,4 +180,18 @@ private boolean isCollection(Object target) { private ClassCastException newCollectionException(Object target) { return new ClassCastException("expecting List or Map, found " + target.getClass()); } + + private static int listIndex(int i, List list) { + int size = list.size(); + + if (i >= size || i < -size) { + throw new IndexOutOfBoundsException("Index " + i + " is out of bounds for a list with size " + size); + } + + if (i < 0) { // Offset from the end of the array. + return size + i; + } else { + return i; + } + } } From 4e65c1a3a19d0649fd00dba86852b54d41bf3b77 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Thu, 3 Nov 2016 16:15:39 -0700 Subject: [PATCH 542/632] have listIndex take a size instead of the List. Fixes #6226 --- .../src/main/java/org/logstash/Accessors.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/logstash-core-event-java/src/main/java/org/logstash/Accessors.java b/logstash-core-event-java/src/main/java/org/logstash/Accessors.java index 4b78c375123..0c6ef5b114a 100644 --- a/logstash-core-event-java/src/main/java/org/logstash/Accessors.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Accessors.java @@ -35,7 +35,7 @@ public Object del(String reference) { } else if (target instanceof List) { int i = Integer.parseInt(field.getKey()); try { - int offset = listIndex(i, (List) target); + int offset = listIndex(i, ((List) target).size()); return ((List)target).remove(offset); } catch (IndexOutOfBoundsException e) { return null; @@ -115,7 +115,7 @@ private Object findCreateTarget(FieldReference field) { private boolean foundInList(List target, int index) { try { - int offset = listIndex(index, target); + int offset = listIndex(index, target.size()); return target.get(offset) != null; } catch (IndexOutOfBoundsException e) { return false; @@ -133,7 +133,7 @@ private Object fetch(Object target, String key) { return result; } else if (target instanceof List) { try { - int offset = listIndex(Integer.parseInt(key), (List) target); + int offset = listIndex(Integer.parseInt(key), ((List) target).size()); return ((List) target).get(offset); } catch (IndexOutOfBoundsException e) { return null; @@ -161,7 +161,7 @@ private Object store(Object target, String key, Object value) { } ((List) target).add(value); } else { - int offset = listIndex(i, (List) target); + int offset = listIndex(i, ((List) target).size()); ((List) target).set(offset, value); } } else { @@ -181,9 +181,14 @@ private ClassCastException newCollectionException(Object target) { return new ClassCastException("expecting List or Map, found " + target.getClass()); } - private static int listIndex(int i, List list) { - int size = list.size(); - + /* + * Returns a positive integer offset for a list of known size. + * + * @param i if positive, and offset from the start of the list. If negative, the offset from the end of the list, where -1 means the last element. + * @param size the size of the list. + * @return the positive integer offset for the list given by index i. + */ + private static int listIndex(int i, int size) { if (i >= size || i < -size) { throw new IndexOutOfBoundsException("Index " + i + " is out of bounds for a list with size " + size); } From ea2530c8d8ef2176043795acfb83439ca19aec60 Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Thu, 3 Nov 2016 17:53:37 -0700 Subject: [PATCH 543/632] Add test coverage for listIndex Fixes #6226 --- .../src/main/java/org/logstash/Accessors.java | 2 +- .../test/java/org/logstash/AccessorsTest.java | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/logstash-core-event-java/src/main/java/org/logstash/Accessors.java b/logstash-core-event-java/src/main/java/org/logstash/Accessors.java index 0c6ef5b114a..c4cfd492c7d 100644 --- a/logstash-core-event-java/src/main/java/org/logstash/Accessors.java +++ b/logstash-core-event-java/src/main/java/org/logstash/Accessors.java @@ -188,7 +188,7 @@ private ClassCastException newCollectionException(Object target) { * @param size the size of the list. * @return the positive integer offset for the list given by index i. */ - private static int listIndex(int i, int size) { + public static int listIndex(int i, int size) { if (i >= size || i < -size) { throw new IndexOutOfBoundsException("Index " + i + " is out of bounds for a list with size " + size); } diff --git a/logstash-core-event-java/src/test/java/org/logstash/AccessorsTest.java b/logstash-core-event-java/src/test/java/org/logstash/AccessorsTest.java index df0a56c5f09..634ef9ad88a 100644 --- a/logstash-core-event-java/src/test/java/org/logstash/AccessorsTest.java +++ b/logstash-core-event-java/src/test/java/org/logstash/AccessorsTest.java @@ -1,5 +1,11 @@ package org.logstash; +import org.junit.experimental.theories.DataPoint; +import org.junit.Rule; +import org.junit.rules.ExpectedException; +import org.junit.experimental.theories.Theories; +import org.junit.experimental.theories.Theory; +import org.junit.runner.RunWith; import org.junit.Test; import static org.junit.Assert.*; @@ -207,4 +213,38 @@ public void testStaleTargetCache() throws Exception { assertEquals(accessors.get("[foo][bar]"), null); assertEquals(accessors.get("[foo]"), "boom"); } + + @RunWith(Theories.class) + public static class TestListIndexFailureCases { + private static final int size = 10; + + @DataPoint + public static final int tooLarge = size; + + @DataPoint + public static final int tooLarge1 = size+1; + + @DataPoint + public static final int tooLargeNegative = -size - 1; + + @Rule + public ExpectedException exception = ExpectedException.none(); + + @Theory + public void testListIndexOutOfBounds(int i) { + exception.expect(IndexOutOfBoundsException.class); + Accessors.listIndex(i, size); + } + } + + public static class TestListIndex { + public void testListIndexOutOfBounds() { + assertEquals(Accessors.listIndex(0, 10), 0); + assertEquals(Accessors.listIndex(1, 10), 1); + assertEquals(Accessors.listIndex(9, 10), 9); + assertEquals(Accessors.listIndex(-1, 10), 9); + assertEquals(Accessors.listIndex(-9, 10), 1); + assertEquals(Accessors.listIndex(-10, 10), 0); + } + } } From 42ec61987dbcd5674472bbada03dd880a0340b90 Mon Sep 17 00:00:00 2001 From: Guy Boertje Date: Thu, 8 Dec 2016 14:14:31 +0000 Subject: [PATCH 544/632] Update logstash-core.gemspec --- logstash-core/logstash-core.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index f59d397b75e..b590cca5411 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -46,7 +46,7 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency "rubyzip", "~> 1.1.7" gem.add_runtime_dependency "thread_safe", "~> 0.3.5" #(Apache 2.0 license) - gem.add_runtime_dependency "jrjackson", "~> 0.4.0" #(Apache 2.0 license) + gem.add_runtime_dependency "jrjackson", "~> 0.4.2" #(Apache 2.0 license) gem.add_runtime_dependency "jar-dependencies" # as of Feb 3rd 2016, the ruby-maven gem is resolved to version 3.3.3 and that version From e2619d10345bccbafb2b3f2be7c10ddc3488d4a2 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Tue, 6 Dec 2016 16:21:33 -0500 Subject: [PATCH 545/632] correct batch delay help Fixes #6364 --- docs/static/command-line-flags.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index c948d5deb4f..97c793a26c6 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -57,8 +57,8 @@ With this command, Logstash concatenates three config files, `/tmp/one`, `/tmp/t *`-u, --pipeline.batch.delay DELAY_IN_MS`*:: When creating pipeline batches, how long to wait while polling for the next event. This option defines - how long in milliseconds to wait before dispatching an undersized batch to filters and workers. - The default is 5ms. + how long in milliseconds to wait while polling for the next event before dispatching an undersized batch + to filters and workers. The default is 250ms. *`--pipeline.unsafe_shutdown`*:: Force Logstash to exit during shutdown even if there are still inflight events From 80fcadd931b94f4c3457b727ab3ab1a7d187a18e Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 8 Dec 2016 14:16:55 -0500 Subject: [PATCH 546/632] Allow rake version:set to update the logstash-core-queue-jruby gem Fixes #6380 --- rakelib/version.rake | 7 +++++++ versions.yml | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/rakelib/version.rake b/rakelib/version.rake index 45655cd330d..d80102ea341 100644 --- a/rakelib/version.rake +++ b/rakelib/version.rake @@ -23,6 +23,13 @@ def get_versions "yaml_version" => yaml_versions["logstash-core-event-java"], "current_version" => get_version(File.join("logstash-core-event-java", "lib", "logstash-core-event-java", "version.rb")), }, + + "logstash-core-queue-jruby" => { + "location" => File.join("logstash-core-queue-jruby", "lib", "logstash-core-queue-jruby", "version.rb"), + "yaml_version" => yaml_versions["logstash-core-queue-jruby"], + "current_version" => get_version(File.join("logstash-core-queue-jruby", "lib", "logstash-core-queue-jruby", "version.rb")), + }, + "logstash-core-plugin-api" => { "location" => File.join("logstash-core-plugin-api", "lib", "logstash-core-plugin-api", "version.rb"), "yaml_version" => yaml_versions["logstash-core-plugin-api"], diff --git a/versions.yml b/versions.yml index 1c44f7e4c39..93668f071af 100644 --- a/versions.yml +++ b/versions.yml @@ -4,4 +4,4 @@ logstash-core: 6.0.0-alpha1 logstash-core-event: 6.0.0-alpha1 logstash-core-event-java: 6.0.0-alpha1 logstash-core-queue-jruby: 6.0.0-alpha1 -logstash-core-plugin-api: 2.1.16 +logstash-core-plugin-api: 2.1.16 \ No newline at end of file From ba83f100ac1bfcdf492cc41c64c889a29599c555 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 8 Dec 2016 14:17:20 -0500 Subject: [PATCH 547/632] Impose strict version to logstash-core-event-java and logstash-core-queue-jruby Fixes #6380 --- logstash-core/logstash-core.gemspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index b590cca5411..e80c33d0e15 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -19,8 +19,8 @@ Gem::Specification.new do |gem| gem.platform = "java" - gem.add_runtime_dependency "logstash-core-event-java" - gem.add_runtime_dependency "logstash-core-queue-jruby" + gem.add_runtime_dependency "logstash-core-event-java", LOGSTASH_CORE_VERSION + gem.add_runtime_dependency "logstash-core-queue-jruby", LOGSTASH_CORE_VERSION gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license) gem.add_runtime_dependency "stud", "~> 0.0.19" #(Apache 2.0 license) From 3ea565ae3bb6ea0a78bc54bf7278e73e742da1b9 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 8 Dec 2016 14:21:22 -0500 Subject: [PATCH 548/632] make sure jruby queue is on 6.0.0 alpha1 Fixes #6380 --- .../lib/logstash-core-queue-jruby/version.rb | 2 +- versions.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core-queue-jruby/lib/logstash-core-queue-jruby/version.rb b/logstash-core-queue-jruby/lib/logstash-core-queue-jruby/version.rb index 62f138e2ba6..225cfbbad2f 100644 --- a/logstash-core-queue-jruby/lib/logstash-core-queue-jruby/version.rb +++ b/logstash-core-queue-jruby/lib/logstash-core-queue-jruby/version.rb @@ -1,3 +1,3 @@ # encoding: utf-8 -LOGSTASH_CORE_QUEUE_JRUBY_VERSION = "0.0.1" +LOGSTASH_CORE_QUEUE_JRUBY_VERSION = "6.0.0-alpha1" diff --git a/versions.yml b/versions.yml index 93668f071af..1c44f7e4c39 100644 --- a/versions.yml +++ b/versions.yml @@ -4,4 +4,4 @@ logstash-core: 6.0.0-alpha1 logstash-core-event: 6.0.0-alpha1 logstash-core-event-java: 6.0.0-alpha1 logstash-core-queue-jruby: 6.0.0-alpha1 -logstash-core-plugin-api: 2.1.16 \ No newline at end of file +logstash-core-plugin-api: 2.1.16 From 48f3624302ca2be8f2782d8b7e6cfc596f835221 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 8 Dec 2016 11:38:22 -0500 Subject: [PATCH 549/632] Do not include Utils, this could cause some bad references on the LogStash::Environment in the context of stand alone gems Fixes #6377 --- logstash-core/lib/logstash/util/byte_value.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/logstash-core/lib/logstash/util/byte_value.rb b/logstash-core/lib/logstash/util/byte_value.rb index bc189a438a1..36a8c6c83c6 100644 --- a/logstash-core/lib/logstash/util/byte_value.rb +++ b/logstash-core/lib/logstash/util/byte_value.rb @@ -1,6 +1,5 @@ # encoding: utf-8 require "logstash/namespace" -require "logstash/util" module LogStash; module Util; module ByteValue module_function From 19d5dc1de514fa65ddc7c43d5ff29839c574eb0e Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 8 Dec 2016 11:38:39 -0500 Subject: [PATCH 550/632] Only include logstash-core.jar in the published gem Fixes #6377 --- logstash-core/logstash-core.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-core/logstash-core.gemspec b/logstash-core/logstash-core.gemspec index e80c33d0e15..0d4107159d4 100644 --- a/logstash-core/logstash-core.gemspec +++ b/logstash-core/logstash-core.gemspec @@ -11,7 +11,7 @@ Gem::Specification.new do |gem| gem.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html" gem.license = "Apache License (2.0)" - gem.files = Dir.glob(["logstash-core.gemspec", "gemspec_jars.rb", "lib/**/*.rb", "spec/**/*.rb", "locales/*", "lib/logstash/api/init.ru"]) + gem.files = Dir.glob(["logstash-core.gemspec", "gemspec_jars.rb", "lib/**/*.rb", "spec/**/*.rb", "locales/*", "lib/logstash/api/init.ru", "lib/logstash-core/logstash-core.jar"]) gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) gem.name = "logstash-core" gem.require_paths = ["lib"] From 60b6a9f72eee18e4937e352740c14cec628d1501 Mon Sep 17 00:00:00 2001 From: Aaron Mildenstein Date: Thu, 8 Dec 2016 15:01:50 -0700 Subject: [PATCH 551/632] Have logstash.lib.sh find jvm.options This will work if `--path.settings` is properly used on the command line Remove unused count variable It isn't strictly necessary Add double-quotes around $@ This should protect against strange spaces fixes #6379 Fixes #6382 --- bin/logstash.lib.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/bin/logstash.lib.sh b/bin/logstash.lib.sh index 55c01d56b36..d070f6c6fa5 100755 --- a/bin/logstash.lib.sh +++ b/bin/logstash.lib.sh @@ -28,6 +28,26 @@ export LOGSTASH_HOME SINCEDB_DIR=${LOGSTASH_HOME} export SINCEDB_DIR +# This block will iterate over the command-line args Logstash was started with +# It will find the argument _after_ --path.settings and use that to attempt +# to derive the location of an acceptable jvm.options file +# It will do nothing if this is not found. +# This fix is for #6379 +if [ -z "$LS_JVM_OPTS" ]; then + found=0 + for i in "$@"; do + if [ $found -eq 1 ]; then + if [ -r "${i}/jvm.options" ]; then + export LS_JVM_OPTS="${i}/jvm.options" + break + fi + fi + if [ "$i" = "--path.settings" ]; then + found=1 + fi + done +fi + parse_jvm_options() { if [ -f "$1" ]; then echo "$(grep "^-" "$1" | tr '\n' ' ')" From 35999aeeaba71b7d4adde5bbb738ed377f3823f2 Mon Sep 17 00:00:00 2001 From: Aaron Mildenstein Date: Thu, 1 Dec 2016 12:51:22 -0700 Subject: [PATCH 552/632] Change system-install to allow manual selection Now you can specify 3 arguments, each dependent on the previous: 1. full path to the `startup.options` file 2. the startup variant (sysv, upstart, systemd) 3. the version of the startup variant (usually unnecessary, can safely be left blank) Present behavior is preserved. If `system-install` is called with no arguments, it autodetects and installs the detected variant. Fixes #6338 --- bin/system-install | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/bin/system-install b/bin/system-install index 5790a5a41e8..98cf7b84c02 100755 --- a/bin/system-install +++ b/bin/system-install @@ -7,12 +7,34 @@ setup if [ -z "$1" ]; then [ -r ${LOGSTASH_HOME}/config/startup.options ] && . ${LOGSTASH_HOME}/config/startup.options [ -r /etc/logstash/startup.options ] && . /etc/logstash/startup.options +elif [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + echo "Usage: system-install [OPTIONSFILE] [STARTUPTYPE] [VERSION]" + echo + echo "NOTE: These arguments are ordered, and co-dependent" + echo + echo "OPTIONSFILE: Full path to a startup.options file" + echo "OPTIONSFILE is required if STARTUPTYPE is specified, but otherwise looks first" + echo "in $LOGSTASH_HOME/config/startup.options and then /etc/logstash/startup.options" + echo "Last match wins" + echo + echo "STARTUPTYPE: e.g. sysv, upstart, systemd, etc." + echo "OPTIONSFILE is required to specify a STARTUPTYPE." + echo + echo "VERSION: The specified version of STARTUPTYPE to use. The default is usually" + echo "preferred here, so it can safely be omitted." + echo "Both OPTIONSFILE & STARTUPTYPE are required to specify a VERSION." + echo + echo "For more information, see https://github.com/jordansissel/pleaserun" + exit 0 else if [ -r $1 ]; then echo "Using provided startup.options file: ${1}" . $1 else echo "$1 is not a file path" + echo "To manually specify a startup style, put the path to startup.options as the " + echo "first argument, followed by the startup style (sysv, upstart, systemd)" + exit 1 fi fi @@ -27,6 +49,18 @@ else opts=("--log" "$tempfile" "--overwrite" "--install" "--name" "${SERVICE_NAME}" "--user" "${LS_USER}" "--group" "${LS_GROUP}" "--description" "${SERVICE_DESCRIPTION}" "--nice" "${LS_NICE}" "--limit-open-files" "${LS_OPEN_FILES}" "--prestart" "${PRESTART}") fi +if [[ $2 ]]; then + echo "Manually creating startup for specified platform: ${2}" + opts+=('--platform') + opts+=($2) +fi + +if [[ $3 ]]; then + echo "Manually creating startup for specified platform (${2}) version: ${3}" + opts+=('--version') + opts+=($3) +fi + program="$(cd `dirname $0`/..; pwd)/bin/logstash" $(ruby_exec "${LOGSTASH_HOME}/lib/systeminstall/pleasewrap.rb" "${opts[@]}" ${program} ${LS_OPTS}) From d14be333fd78bc268173272f63d5c920b93208aa Mon Sep 17 00:00:00 2001 From: esalem Date: Fri, 9 Dec 2016 17:48:39 -0500 Subject: [PATCH 553/632] replace environment variables in deeper object properties --- logstash-core/lib/logstash/config/mixin.rb | 87 ++++++++++++++-------- 1 file changed, 58 insertions(+), 29 deletions(-) diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 09cbd7a019f..83d50e29295 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -47,15 +47,56 @@ def self.included(base) base.extend(LogStash::Config::Mixin::DSL) end + + # Replace all environment variable references in 'value' param by environment variable value and return updated value + # Process following patterns : $VAR, ${VAR}, ${VAR:defaultValue} + def replace_env_placeholders(value) + return value unless value.is_a?(String) + #raise ArgumentError, "Cannot replace ENV placeholders on non-strings. Got #{value.class}" if !value.is_a?(String) + @logger.debug("replacing values!") + value.gsub(ENV_PLACEHOLDER_REGEX) do |placeholder| + # Note: Ruby docs claim[1] Regexp.last_match is thread-local and scoped to + # the call, so this should be thread-safe. + # + # [1] http://ruby-doc.org/core-2.1.1/Regexp.html#method-c-last_match + name = Regexp.last_match(:name) + default = Regexp.last_match(:default) + + replacement = ENV.fetch(name, default) + if replacement.nil? + raise LogStash::ConfigurationError, "Cannot evaluate `#{placeholder}`. Environment variable `#{name}` is not set and there is no default value given." + end + @logger.info? && @logger.info("Evaluating environment variable placeholder", :placeholder => placeholder, :replacement => replacement) + replacement + end + end # def replace_env_placeholders + + def deep_replace(value) + @logger.debug("entered deep_replace") + if (value.is_a?(Hash)) + value.each do |valueHashKey, valueHashValue| + value[valueHashKey.to_s] = deep_replace(valueHashValue) + end + else + if (value.is_a?(Array)) + value.each_index do | valueArrayIndex| + value[valueArrayIndex] = deep_replace(value[valueArrayIndex]) + end + else + return replace_env_placeholders(value) + end + end + end + def config_init(params) # Validation will modify the values inside params if necessary. # For example: converting a string to a number, etc. - + # Keep a copy of the original config params so that we can later # differentiate between explicit configuration and implicit (default) # configuration. original_params = params.clone - + # store the plugin type, turns LogStash::Inputs::Base into 'input' @plugin_type = self.class.ancestors.find { |a| a.name =~ /::Base$/ }.config_name @@ -88,7 +129,7 @@ def config_init(params) next if params.include?(name.to_s) if opts.include?(:default) and (name.is_a?(Symbol) or name.is_a?(String)) # default values should be cloned if possible - # cloning prevents + # cloning prevents case opts[:default] when FalseClass, TrueClass, NilClass, Numeric params[name.to_s] = opts[:default] @@ -103,24 +144,12 @@ def config_init(params) end end + @logger.debug('IS THIS EVALUATED?') # Resolve environment variables references params.each do |name, value| - if (value.is_a?(Hash)) - value.each do |valueHashKey, valueHashValue| - value[valueHashKey.to_s] = replace_env_placeholders(valueHashValue) - end - else - if (value.is_a?(Array)) - value.each_index do |valueArrayIndex| - value[valueArrayIndex] = replace_env_placeholders(value[valueArrayIndex]) - end - else - params[name.to_s] = replace_env_placeholders(value) - end - end + params[name.to_s] = deep_replace(value) end - if !self.class.validate(params) raise LogStash::ConfigurationError, I18n.t("logstash.runner.configuration.invalid_plugin_settings") @@ -204,7 +233,7 @@ def config(name, opts={}) name = name.to_s if name.is_a?(Symbol) @config[name] = opts # ok if this is empty - + if name.is_a?(String) define_method(name) { instance_variable_get("@#{name}") } define_method("#{name}=") { |v| instance_variable_set("@#{name}", v) } @@ -289,13 +318,13 @@ def print_version_notice end rescue LogStash::PluginNoVersionError # If we cannot find a version in the currently installed gems we - # will display this message. This could happen in the test, if you + # will display this message. This could happen in the test, if you # create an anonymous class to test a plugin. self.logger.warn(I18n.t("logstash.plugin.no_version", :type => @plugin_type, :name => @config_name, :LOGSTASH_VERSION => LOGSTASH_VERSION)) - ensure + ensure @@version_notice_given = true end end @@ -346,7 +375,7 @@ def validate_check_required_parameter_names(params) :setting => config_key, :plugin => @plugin_name, :type => @plugin_type)) is_valid = false - end + end end return is_valid @@ -354,26 +383,26 @@ def validate_check_required_parameter_names(params) def process_parameter_value(value, config_settings) config_val = config_settings[:validate] - + if config_settings[:list] value = Array(value) # coerce scalars to lists # Empty lists are converted to nils return true, nil if value.empty? - + validated_items = value.map {|v| validate_value(v, config_val)} is_valid = validated_items.all? {|sr| sr[0] } processed_value = validated_items.map {|sr| sr[1]} else is_valid, processed_value = validate_value(value, config_val) end - + return [is_valid, processed_value] end def validate_check_parameter_values(params) # Filter out parametrs that match regexp keys. # These are defined in plugins like this: - # config /foo.*/ => ... + # config /foo.*/ => ... all_params_valid = true params.each do |key, value| @@ -381,10 +410,10 @@ def validate_check_parameter_values(params) next unless (config_key.is_a?(Regexp) && key =~ config_key) \ || (config_key.is_a?(String) && key == config_key) - config_settings = @config[config_key] + config_settings = @config[config_key] is_valid, processed_value = process_parameter_value(value, config_settings) - + if is_valid # Accept coerced value if valid # Used for converting values in the config to proper objects. @@ -396,7 +425,7 @@ def validate_check_parameter_values(params) :value_type => config_settings[:validate], :note => processed_value)) end - + all_params_valid &&= is_valid break # done with this param key @@ -542,7 +571,7 @@ def validate_value(value, validator) if value.size > 1 return false, "Expected uri (one value), got #{value.size} values?" end - + result = value.first.is_a?(::LogStash::Util::SafeURI) ? value.first : ::LogStash::Util::SafeURI.new(value.first) when :path if value.size > 1 # Only 1 value wanted From e212facaed75b1832fff4d7b0318da264e4cf202 Mon Sep 17 00:00:00 2001 From: emilesalem Date: Sat, 10 Dec 2016 17:01:16 -0500 Subject: [PATCH 554/632] remove superficial logging --- logstash-core/lib/logstash/config/mixin.rb | 27 +--------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 83d50e29295..c4906fd69e4 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -47,32 +47,8 @@ def self.included(base) base.extend(LogStash::Config::Mixin::DSL) end - - # Replace all environment variable references in 'value' param by environment variable value and return updated value - # Process following patterns : $VAR, ${VAR}, ${VAR:defaultValue} - def replace_env_placeholders(value) - return value unless value.is_a?(String) - #raise ArgumentError, "Cannot replace ENV placeholders on non-strings. Got #{value.class}" if !value.is_a?(String) - @logger.debug("replacing values!") - value.gsub(ENV_PLACEHOLDER_REGEX) do |placeholder| - # Note: Ruby docs claim[1] Regexp.last_match is thread-local and scoped to - # the call, so this should be thread-safe. - # - # [1] http://ruby-doc.org/core-2.1.1/Regexp.html#method-c-last_match - name = Regexp.last_match(:name) - default = Regexp.last_match(:default) - - replacement = ENV.fetch(name, default) - if replacement.nil? - raise LogStash::ConfigurationError, "Cannot evaluate `#{placeholder}`. Environment variable `#{name}` is not set and there is no default value given." - end - @logger.info? && @logger.info("Evaluating environment variable placeholder", :placeholder => placeholder, :replacement => replacement) - replacement - end - end # def replace_env_placeholders - + # Recursive method to replace environment variable references in parameters def deep_replace(value) - @logger.debug("entered deep_replace") if (value.is_a?(Hash)) value.each do |valueHashKey, valueHashValue| value[valueHashKey.to_s] = deep_replace(valueHashValue) @@ -144,7 +120,6 @@ def config_init(params) end end - @logger.debug('IS THIS EVALUATED?') # Resolve environment variables references params.each do |name, value| params[name.to_s] = deep_replace(value) From 134795360c3b3d18bf3bb5f6f3dbfa7ff815721e Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Mon, 5 Dec 2016 16:00:36 -0800 Subject: [PATCH 555/632] Expose stats the right way Fixes #6367 --- logstash-core/lib/logstash/agent.rb | 20 +++++++++++++------ .../lib/logstash/api/commands/stats.rb | 6 +++++- .../lib/logstash/api/modules/node_stats.rb | 5 +++++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index ebdefefffb2..f9780445d52 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -52,7 +52,8 @@ def initialize(settings = LogStash::SETTINGS) # Create the collectors and configured it with the library configure_metrics_collectors - @reload_metric = metric.namespace([:stats, :pipelines]) + @pipeline_reload_metric = metric.namespace([:stats, :pipelines]) + @instance_reload_metric = metric.namespace([:stats, :reloads]) @dispatcher = LogStash::EventDispatcher.new(self) LogStash::PLUGIN_REGISTRY.hooks.register_emitter(self.class, dispatcher) @@ -109,7 +110,8 @@ def reload_state! begin reload_pipeline!(pipeline_id) rescue => e - @reload_metric.namespace([pipeline_id.to_sym, :reloads]).tap do |n| + @instance_reload_metric.increment(:failures) + @pipeline_reload_metric.namespace([pipeline_id.to_sym, :reloads]).tap do |n| n.increment(:failures) n.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) n.gauge(:last_failure_timestamp, LogStash::Timestamp.now) @@ -236,7 +238,8 @@ def create_pipeline(settings, config=nil) begin LogStash::Pipeline.new(config, settings, metric) rescue => e - @reload_metric.namespace([settings.get("pipeline.id").to_sym, :reloads]).tap do |n| + @instance_reload_metric.increment(:failures) + @pipeline_reload_metric.namespace([settings.get("pipeline.id").to_sym, :reloads]).tap do |n| n.increment(:failures) n.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) n.gauge(:last_failure_timestamp, LogStash::Timestamp.now) @@ -291,7 +294,8 @@ def start_pipeline(id) begin pipeline.run rescue => e - @reload_metric.namespace([id.to_sym, :reloads]).tap do |n| + @instance_reload_metric.increment(:failures) + @pipeline_reload_metric.namespace([id.to_sym, :reloads]).tap do |n| n.increment(:failures) n.gauge(:last_error, { :message => e.message, :backtrace => e.backtrace}) n.gauge(:last_failure_timestamp, LogStash::Timestamp.now) @@ -319,6 +323,8 @@ def stop_pipeline(id) end def start_pipelines + @instance_reload_metric.increment(:successes, 0) + @instance_reload_metric.increment(:failures, 0) @pipelines.each do |id, _| start_pipeline(id) # no reloads yet, initalize all the reload metrics @@ -340,10 +346,12 @@ def upgrade_pipeline(pipeline_id, new_pipeline) reset_pipeline_metrics(pipeline_id) @pipelines[pipeline_id] = new_pipeline if start_pipeline(pipeline_id) # pipeline started successfuly - @reload_metric.namespace([pipeline_id.to_sym, :reloads]).tap do |n| + @instance_reload_metric.increment(:successes) + @pipeline_reload_metric.namespace([pipeline_id.to_sym, :reloads]).tap do |n| n.increment(:successes) n.gauge(:last_success_timestamp, LogStash::Timestamp.now) end + end end @@ -356,7 +364,7 @@ def setting(key) end def init_pipeline_reload_metrics(id) - @reload_metric.namespace([id.to_sym, :reloads]).tap do |n| + @pipeline_reload_metric.namespace([id.to_sym, :reloads]).tap do |n| n.increment(:successes, 0) n.increment(:failures, 0) n.gauge(:last_error, nil) diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index f5ef39043bc..5f9dc5fa460 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -16,9 +16,13 @@ def jvm ), :mem => memory, :gc => gc, - :uptime_in_millis => service.get_shallow(:jvm, :uptime_in_millis) + :uptime_in_millis => service.get_shallow(:jvm, :uptime_in_millis), } end + + def reloads + service.get_shallow(:stats, :reloads) + end def process extract_metrics( diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index 239aaa87cd1..355ee6736c2 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -13,6 +13,7 @@ class NodeStats < ::LogStash::Api::Modules::Base :jvm => jvm_payload, :process => process_payload, :pipeline => pipeline_payload, + :reloads => reloads } respond_with(payload, {:filter => params["filter"]}) end @@ -26,6 +27,10 @@ def events_payload def jvm_payload @stats.jvm end + + def reloads + @stats.reloads + end def process_payload @stats.process From c8826b81abd4ee614c591beb46957cbb423a01ce Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 6 Dec 2016 17:13:24 -0800 Subject: [PATCH 556/632] Add reload stats at the instance level Reload stats are currently reported at the pipeline level. The instance level aggregates these stats across the pipelines Fixes #6350 Fixes #6367 --- Gemfile | 21 +++++++++++++++++++ .../spec/api/lib/api/node_stats_spec.rb | 6 +++++- logstash-core/spec/logstash/agent_spec.rb | 2 ++ qa/integration/specs/reload_config_spec.rb | 3 +++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index cbf6dbf3555..071ece98b33 100644 --- a/Gemfile +++ b/Gemfile @@ -116,3 +116,24 @@ gem "logstash-output-stdout" gem "logstash-output-tcp" gem "logstash-output-udp" gem "logstash-output-webhdfs" +gem "logstash-filter-multiline" +gem "jar-dependencies", ">= 0" +gem "ruby-maven", "~> 3.3" +gem "logstash-patterns-core", ">= 0" +gem "pry", ">= 0" +gem "rspec-wait", ">= 0" +gem "childprocess", ">= 0" +gem "ftw", "~> 0.0.42" +gem "rspec-sequencing", ">= 0" +gem "gmetric", ">= 0" +gem "gelf", "= 1.3.2" +gem "timecop", ">= 0" +gem "jdbc-derby", ">= 0" +gem "coveralls", ">= 0" +gem "addressable", "~> 2.3.0" +gem "elasticsearch", ">= 0" +gem "sinatra", ">= 0" +gem "webrick", ">= 0" +gem "poseidon", ">= 0" +gem "snappy", ">= 0" +gem "webmock", "~> 1.21.0" diff --git a/logstash-core/spec/api/lib/api/node_stats_spec.rb b/logstash-core/spec/api/lib/api/node_stats_spec.rb index 1602599e1ce..bfe695a8d01 100644 --- a/logstash-core/spec/api/lib/api/node_stats_spec.rb +++ b/logstash-core/spec/api/lib/api/node_stats_spec.rb @@ -80,7 +80,11 @@ "filtered" => Numeric, "out" => Numeric } - } + }, + "reloads" => { + "successes" => Numeric, + "failures" => Numeric + } } test_api_and_resources(root_structure) diff --git a/logstash-core/spec/logstash/agent_spec.rb b/logstash-core/spec/logstash/agent_spec.rb index 98eafba9d9a..b3d558e1fd6 100644 --- a/logstash-core/spec/logstash/agent_spec.rb +++ b/logstash-core/spec/logstash/agent_spec.rb @@ -479,7 +479,9 @@ class DummyOutput2 < LogStash::Outputs::DroppingDummyOutput; end it "increases the successful reload count" do snapshot = subject.metric.collector.snapshot_metric value = snapshot.metric_store.get_with_path("/stats/pipelines")[:stats][:pipelines][:main][:reloads][:successes].value + instance_value = snapshot.metric_store.get_with_path("/stats")[:stats][:reloads][:successes].value expect(value).to eq(1) + expect(instance_value).to eq(1) end it "does not set the failure reload timestamp" do diff --git a/qa/integration/specs/reload_config_spec.rb b/qa/integration/specs/reload_config_spec.rb index 530e75a2a7f..24f37aba942 100644 --- a/qa/integration/specs/reload_config_spec.rb +++ b/qa/integration/specs/reload_config_spec.rb @@ -64,11 +64,14 @@ # check reload stats reload_stats = logstash_service.monitoring_api.pipeline_stats["reloads"] + instance_reload_stats = logstash_service.monitoring_api.node_stats["reloads"] expect(reload_stats["successes"]).to eq(1) expect(reload_stats["failures"]).to eq(0) expect(reload_stats["last_success_timestamp"].blank?).to be false expect(reload_stats["last_error"]).to eq(nil) + expect(instance_reload_stats["successes"]).to eq(1) + expect(instance_reload_stats["failures"]).to eq(0) # parse the results and validate re = JSON.load(File.new(output_file2)) expect(re["clientip"]).to eq("74.125.176.147") From 079d8b30ac7a2078b9b439a1f9e9cdf8a7e68106 Mon Sep 17 00:00:00 2001 From: Suyog Rao Date: Tue, 6 Dec 2016 17:16:52 -0800 Subject: [PATCH 557/632] Undo gemfile changes Fixes #6367 --- Gemfile | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/Gemfile b/Gemfile index 071ece98b33..cbf6dbf3555 100644 --- a/Gemfile +++ b/Gemfile @@ -116,24 +116,3 @@ gem "logstash-output-stdout" gem "logstash-output-tcp" gem "logstash-output-udp" gem "logstash-output-webhdfs" -gem "logstash-filter-multiline" -gem "jar-dependencies", ">= 0" -gem "ruby-maven", "~> 3.3" -gem "logstash-patterns-core", ">= 0" -gem "pry", ">= 0" -gem "rspec-wait", ">= 0" -gem "childprocess", ">= 0" -gem "ftw", "~> 0.0.42" -gem "rspec-sequencing", ">= 0" -gem "gmetric", ">= 0" -gem "gelf", "= 1.3.2" -gem "timecop", ">= 0" -gem "jdbc-derby", ">= 0" -gem "coveralls", ">= 0" -gem "addressable", "~> 2.3.0" -gem "elasticsearch", ">= 0" -gem "sinatra", ">= 0" -gem "webrick", ">= 0" -gem "poseidon", ">= 0" -gem "snappy", ">= 0" -gem "webmock", "~> 1.21.0" From 2a281730c177b6bb4a4610cdb15f159224cbf1f9 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 9 Dec 2016 13:44:59 -0500 Subject: [PATCH 558/632] Explicitely require LogStash::Bundler.setup! make the plugin install process to require internet access Fixes: #6386 Fixes #6388 --- lib/pluginmanager/main.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/pluginmanager/main.rb b/lib/pluginmanager/main.rb index fd1f75b9807..5323f4370a7 100644 --- a/lib/pluginmanager/main.rb +++ b/lib/pluginmanager/main.rb @@ -6,8 +6,6 @@ ENV["GEM_HOME"] = ENV["GEM_PATH"] = LogStash::Environment.logstash_gem_home Gem.use_paths(LogStash::Environment.logstash_gem_home) -LogStash::Bundler.setup!({:without => [:build, :development]}) - module LogStash module PluginManager end From 8dfefad58a1d5257016b1225994abfed2306d8ca Mon Sep 17 00:00:00 2001 From: Jordan Sissel Date: Mon, 28 Nov 2016 16:00:28 -0800 Subject: [PATCH 559/632] Remove unnecessary log4j-1.2-api depedency. This library provides a "log4j 1.2"-like API from the log4j2 library. We don't seem to use this, and including it seems to be the cause of the Logstash log4j input rejecting log4j 1.x's SocketAppender with this message: org.apache.log4j.spi.LoggingEvent; class invalid for deserialization The origin of this error is that log4j2's log4j-1.2-api defines LoggingEvent without `implements Serializable`. This commit also includes regenerated gemspec_jars.rb and logstash-core_jars.rb. Reference: https://github.com/logstash-plugins/logstash-input-log4j/issues/36 Fixes #6309 --- logstash-core/build.gradle | 1 - logstash-core/gemspec_jars.rb | 1 - logstash-core/lib/logstash-core_jars.rb | 2 -- 3 files changed, 4 deletions(-) diff --git a/logstash-core/build.gradle b/logstash-core/build.gradle index 625b73933a9..0d1c318ccf2 100644 --- a/logstash-core/build.gradle +++ b/logstash-core/build.gradle @@ -110,7 +110,6 @@ idea { } dependencies { - runtime 'org.apache.logging.log4j:log4j-1.2-api:2.6.2' compile 'org.apache.logging.log4j:log4j-api:2.6.2' compile 'org.apache.logging.log4j:log4j-core:2.6.2' compile 'com.fasterxml.jackson.core:jackson-core:2.7.4' diff --git a/logstash-core/gemspec_jars.rb b/logstash-core/gemspec_jars.rb index 15f2967a4b6..b18f7aa2e5d 100644 --- a/logstash-core/gemspec_jars.rb +++ b/logstash-core/gemspec_jars.rb @@ -2,7 +2,6 @@ # runtime dependencies to generate this gemspec dependencies file to be eval'ed by the gemspec # for the jar-dependencies requirements. -gem.requirements << "jar org.apache.logging.log4j:log4j-1.2-api, 2.6.2" gem.requirements << "jar org.apache.logging.log4j:log4j-api, 2.6.2" gem.requirements << "jar org.apache.logging.log4j:log4j-core, 2.6.2" gem.requirements << "jar com.fasterxml.jackson.core:jackson-core, 2.7.4" diff --git a/logstash-core/lib/logstash-core_jars.rb b/logstash-core/lib/logstash-core_jars.rb index f548c9fd35c..b759e1d5833 100644 --- a/logstash-core/lib/logstash-core_jars.rb +++ b/logstash-core/lib/logstash-core_jars.rb @@ -5,7 +5,6 @@ require 'org/apache/logging/log4j/log4j-core/2.6.2/log4j-core-2.6.2.jar' require 'org/apache/logging/log4j/log4j-api/2.6.2/log4j-api-2.6.2.jar' require 'com/fasterxml/jackson/core/jackson-core/2.7.4/jackson-core-2.7.4.jar' - require 'org/apache/logging/log4j/log4j-1.2-api/2.6.2/log4j-1.2-api-2.6.2.jar' require 'com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar' require 'com/fasterxml/jackson/core/jackson-databind/2.7.4/jackson-databind-2.7.4.jar' end @@ -14,7 +13,6 @@ require_jar( 'org.apache.logging.log4j', 'log4j-core', '2.6.2' ) require_jar( 'org.apache.logging.log4j', 'log4j-api', '2.6.2' ) require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.7.4' ) - require_jar( 'org.apache.logging.log4j', 'log4j-1.2-api', '2.6.2' ) require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.7.0' ) require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.7.4' ) end From 9c8bf203e25d76d9f9b7b214e57aff2ecfe90b73 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 1 Dec 2016 15:05:16 -0500 Subject: [PATCH 560/632] Add cgroup information to the api When logstash is run under a linux container we will gather statistic about the cgroup and the cpu usage. This information will should in the /_node/stats api and the result will look like this: ``` "os" : { "cgroup" : { "cpuacct" : { "usage" : 789470280230, "control_group" : "/user.slice/user-1000.slice" }, "cpu" : { "cfs_quota_micros" : -1, "control_group" : "/user.slice/user-1000.slice", "stat" : { "number_of_times_throttled" : 0, "time_throttled_nanos" : 0, "number_of_periods" : 0 }, "cfs_period_micros" : 100000 } } } ``` Fixes: #6252 Fixes #6357 --- .../lib/logstash/api/commands/stats.rb | 8 + .../lib/logstash/api/modules/node_stats.rb | 6 +- .../lib/logstash/api/modules/stats.rb | 5 +- .../instrument/periodic_poller/base.rb | 2 + .../instrument/periodic_poller/cgroup.rb | 137 ++++++++++++++++ .../instrument/periodic_poller/jvm.rb | 3 +- .../logstash/instrument/periodic_poller/os.rb | 21 +++ .../instrument/periodic_poller/cgroup_spec.rb | 148 ++++++++++++++++++ .../instrument/periodic_poller/os_spec.rb | 85 ++++++++++ 9 files changed, 410 insertions(+), 5 deletions(-) create mode 100644 logstash-core/lib/logstash/instrument/periodic_poller/cgroup.rb create mode 100644 logstash-core/spec/logstash/instrument/periodic_poller/cgroup_spec.rb create mode 100644 logstash-core/spec/logstash/instrument/periodic_poller/os_spec.rb diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index 5f9dc5fa460..cdc26cac862 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -65,6 +65,14 @@ def memory } end + def os + service.get_shallow(:os) + rescue + # The only currently fetch OS information is about the linux + # containers. + {} + end + def gc service.get_shallow(:jvm, :gc) end diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index 355ee6736c2..8ffc9c7327e 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -13,12 +13,16 @@ class NodeStats < ::LogStash::Api::Modules::Base :jvm => jvm_payload, :process => process_payload, :pipeline => pipeline_payload, - :reloads => reloads + :reloads => reloads, + :os => os_payload } respond_with(payload, {:filter => params["filter"]}) end private + def os_payload + @stats.os + end def events_payload @stats.events diff --git a/logstash-core/lib/logstash/api/modules/stats.rb b/logstash-core/lib/logstash/api/modules/stats.rb index eee3d0b8b65..a35c9f062b7 100644 --- a/logstash-core/lib/logstash/api/modules/stats.rb +++ b/logstash-core/lib/logstash/api/modules/stats.rb @@ -30,8 +30,9 @@ def stats_command :jvm => { :timestamp => stats_command.started_at, :uptime_in_millis => stats_command.uptime, - :memory => stats_command.memory - } + :memory => stats_command.memory, + }, + :os => stats_command.os } respond_with(payload, {:filter => params["filter"]}) end diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/base.rb b/logstash-core/lib/logstash/instrument/periodic_poller/base.rb index 916f0c88df0..b66c50b58e3 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/base.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/base.rb @@ -12,6 +12,8 @@ class Base :polling_timeout => 120 } + attr_reader :metric + public def initialize(metric, options = {}) @metric = metric diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/cgroup.rb b/logstash-core/lib/logstash/instrument/periodic_poller/cgroup.rb new file mode 100644 index 00000000000..40f98f1d65a --- /dev/null +++ b/logstash-core/lib/logstash/instrument/periodic_poller/cgroup.rb @@ -0,0 +1,137 @@ +# encoding: utf-8 +require "pathname" +require "logstash/util/loggable" + +# Logic from elasticsearch/core/src/main/java/org/elasticsearch/monitor/os/OsProbe.java +# Move to ruby to remove any existing dependency +module LogStash module Instrument module PeriodicPoller + class Cgroup + include LogStash::Util::Loggable + + CONTROL_GROUP_RE = Regexp.compile("\\d+:([^:,]+(?:,[^:,]+)?):(/.*)"); + CONTROLLER_SEPERATOR_RE = "," + + PROC_SELF_CGROUP_FILE = Pathname.new("/proc/self/cgroup") + PROC_CGROUP_CPU_DIR = Pathname.new("/sys/fs/cgroup/cpu") + PROC_CGROUP_CPUACCT_DIR = Pathname.new("/sys/fs/cgroup/cpuacct") + + GROUP_CPUACCT = "cpuacct" + CPUACCT_USAGE_FILE = "cpuacct.usage" + + GROUP_CPU = "cpu" + CPU_FS_PERIOD_US_FILE = "cpu.cfs_period_us" + CPU_FS_QUOTA_US_FILE = "cpu.cfs_quota_us" + + CPU_STATS_FILE = "cpu.stat" + + class << self + def are_cgroup_available? + [::File.exist?(PROC_SELF_CGROUP_FILE), + Dir.exist?(PROC_CGROUP_CPU_DIR), + Dir.exist?(PROC_CGROUP_CPUACCT_DIR)].all? + end + + def control_groups + response = {} + + read_proc_self_cgroup_lines.each do |line| + matches = CONTROL_GROUP_RE.match(line) + # multiples controlles, same hierachy + controllers = matches[1].split(CONTROLLER_SEPERATOR_RE) + controllers.each_with_object(response) { |controller| response[controller] = matches[2] } + end + + response + end + + def read_first_line(path) + IO.readlines(path).first + end + + def cgroup_cpuacct_usage_nanos(control_group) + read_first_line(::File.join(PROC_CGROUP_CPUACCT_DIR, control_group, CPUACCT_USAGE_FILE)).to_i + end + + def cgroup_cpu_fs_period_micros(control_group) + read_first_line(::File.join(PROC_CGROUP_CPUACCT_DIR, control_group, CPU_FS_PERIOD_US_FILE)).to_i + end + + def cgroup_cpu_fs_quota_micros(control_group) + read_first_line(::File.join(PROC_CGROUP_CPUACCT_DIR, control_group, CPU_FS_QUOTA_US_FILE)).to_i + end + + def read_proc_self_cgroup_lines + IO.readlines(PROC_SELF_CGROUP_FILE) + end + + class CpuStats + attr_reader :number_of_periods, :number_of_times_throttled, :time_throttled_nanos + + def initialize(number_of_periods, number_of_times_throttled, time_throttled_nanos) + @number_of_periods = number_of_periods + @number_of_times_throttled = number_of_times_throttled + @time_throttled_nanos = time_throttled_nanos + end + end + + def read_sys_fs_cgroup_cpuacct_cpu_stat(control_group) + IO.readlines(::File.join(PROC_CGROUP_CPU_DIR, control_group, CPU_STATS_FILE)) + end + + def cgroup_cpuacct_cpu_stat(control_group) + lines = read_sys_fs_cgroup_cpuacct_cpu_stat(control_group); + + number_of_periods = -1; + number_of_times_throttled = -1; + time_throttled_nanos = -1; + + lines.each do |line| + fields = line.split(/\s+/) + case fields.first + when "nr_periods" then number_of_periods = fields[1].to_i + when "nr_throttled" then number_of_times_throttled= fields[1].to_i + when "throttled_time" then time_throttled_nanos = fields[1].to_i + end + end + + CpuStats.new(number_of_periods, number_of_times_throttled, time_throttled_nanos) + end + + def get_all + groups = control_groups + return if groups.empty? + + cgroups_stats = { + :cpuacct => {}, + :cpu => {} + } + + cpuacct_group = groups[GROUP_CPUACCT] + cgroups_stats[:cpuacct][:control_group] = cpuacct_group + cgroups_stats[:cpuacct][:usage] = cgroup_cpuacct_usage_nanos(cpuacct_group) + + cpu_group = groups[GROUP_CPU] + cgroups_stats[:cpu][:control_group] = cpu_group + cgroups_stats[:cpu][:cfs_period_micros] = cgroup_cpu_fs_period_micros(cpu_group) + cgroups_stats[:cpu][:cfs_quota_micros] = cgroup_cpu_fs_quota_micros(cpu_group) + + cpu_stats = cgroup_cpuacct_cpu_stat(cpu_group) + + cgroups_stats[:cpu][:stat] = { + :number_of_periods => cpu_stats.number_of_periods, + :number_of_times_throttled => cpu_stats.number_of_times_throttled, + :time_throttled_nanos => cpu_stats.time_throttled_nanos + } + + cgroups_stats + rescue => e + logger.debug("Error, cannot retrieve cgroups information", :exception => e.class.name, :message => e.message) if logger.debug? + nil + end + + def get + are_cgroup_available? ? get_all : nil + end + end + end +end end end diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb index c1186cf9e9e..707553aa513 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/jvm.rb @@ -39,7 +39,6 @@ def self.get(gc_name) def initialize(metric, options = {}) super(metric, options) - @metric = metric @load_average = LoadAverage.create end @@ -114,7 +113,7 @@ def collect_load_average metric.gauge([:jvm, :process, :cpu], :load_average, load_average) unless load_average.nil? end - + def collect_jvm_metrics(data) runtime_mx_bean = ManagementFactory.getRuntimeMXBean() metric.gauge([:jvm], :uptime_in_millis, runtime_mx_bean.getUptime()) diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/os.rb b/logstash-core/lib/logstash/instrument/periodic_poller/os.rb index 8ad09dfc7d7..7f2a334b5ba 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/os.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/os.rb @@ -1,5 +1,6 @@ # encoding: utf-8 require "logstash/instrument/periodic_poller/base" +require "logstash/instrument/periodic_poller/cgroup" module LogStash module Instrument module PeriodicPoller class Os < Base @@ -8,6 +9,26 @@ def initialize(metric, options = {}) end def collect + collect_cgroup + end + + def collect_cgroup + if stats = Cgroup.get + save_metric([:os], :cgroup, stats) + end + end + + # Recursive function to create the Cgroups values form the created hash + def save_metric(namespace, k, v) + if v.is_a?(Hash) + v.each do |new_key, new_value| + n = namespace.dup + n << k.to_sym + save_metric(n, new_key, new_value) + end + else + metric.gauge(namespace, k.to_sym, v) + end end end end; end; end diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/cgroup_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/cgroup_spec.rb new file mode 100644 index 00000000000..f723f82eb22 --- /dev/null +++ b/logstash-core/spec/logstash/instrument/periodic_poller/cgroup_spec.rb @@ -0,0 +1,148 @@ +# encoding: utf-8 +require "logstash/instrument/periodic_poller/cgroup" +require "spec_helper" + +describe LogStash::Instrument::PeriodicPoller::Cgroup do + subject { described_class } + + context ".are_cgroup_available?" do + context "all the file exist" do + before do + allow(::File).to receive(:exist?).with(subject::PROC_SELF_CGROUP_FILE).and_return(true) + allow(::Dir).to receive(:exist?).with(subject::PROC_CGROUP_CPU_DIR).and_return(true) + allow(::Dir).to receive(:exist?).with(subject::PROC_CGROUP_CPUACCT_DIR).and_return(true) + end + + it "returns true" do + expect(subject.are_cgroup_available?).to be_truthy + end + end + + context "not all the file exist" do + before do + allow(::File).to receive(:exist?).with(subject::PROC_SELF_CGROUP_FILE).and_return(true) + allow(::Dir).to receive(:exist?).with(subject::PROC_CGROUP_CPU_DIR).and_return(false) + allow(::Dir).to receive(:exist?).with(subject::PROC_CGROUP_CPUACCT_DIR).and_return(true) + end + + it "returns false" do + expect(subject.are_cgroup_available?).to be_falsey + end + end + end + + context ".control_groups" do + let(:proc_self_cgroup_content) { + %w(14:name=systemd,holaunlimited:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +13:pids:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +12:hugetlb:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +11:net_prio:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +10:perf_event:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +9:net_cls:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +8:freezer:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +7:devices:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +6:memory:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +5:blkio:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +4:cpuacct:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +3:cpu:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +2:cpuset:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +1:name=openrc:/docker) } + + before do + allow(subject).to receive(:read_proc_self_cgroup_lines).and_return(proc_self_cgroup_content) + end + + it "returns the control groups" do + expect(subject.control_groups).to match({ + "name=systemd" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "holaunlimited" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "pids" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "hugetlb" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "net_prio" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "perf_event" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "net_cls" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "freezer" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "devices" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "memory" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "blkio" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "cpuacct" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "cpu" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "cpuset" => "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61", + "name=openrc" => "/docker" + }) + end + end + + context ".get_all" do + context "when we can retreive the stats" do + let(:cpuacct_control_group) { "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61" } + let(:cpuacct_usage) { 1982 } + let(:cpu_control_group) { "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61" } + let(:cfs_period_micros) { 500 } + let(:cfs_quota_micros) { 98 } + let(:cpu_stats_number_of_periods) { 1 } + let(:cpu_stats_number_of_time_throttled) { 2 } + let(:cpu_stats_time_throttled_nanos) { 3 } + let(:proc_self_cgroup_content) { + %W(14:name=systemd,holaunlimited:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +13:pids:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +12:hugetlb:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +11:net_prio:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +10:perf_event:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +9:net_cls:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +8:freezer:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +7:devices:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +6:memory:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +5:blkio:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +4:cpuacct:#{cpuacct_control_group} +3:cpu:#{cpu_control_group} +2:cpuset:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +1:name=openrc:/docker) } + let(:cpu_stat_file_content) { + [ + "nr_periods #{cpu_stats_number_of_periods}", + "nr_throttled #{cpu_stats_number_of_time_throttled}", + "throttled_time #{cpu_stats_time_throttled_nanos}" + ] + } + + before do + allow(subject).to receive(:read_proc_self_cgroup_lines).and_return(proc_self_cgroup_content) + allow(subject).to receive(:read_sys_fs_cgroup_cpuacct_cpu_stat).and_return(cpu_stat_file_content) + + allow(subject).to receive(:cgroup_cpuacct_usage_nanos).with(cpuacct_control_group).and_return(cpuacct_usage) + allow(subject).to receive(:cgroup_cpu_fs_period_micros).with(cpu_control_group).and_return(cfs_period_micros) + allow(subject).to receive(:cgroup_cpu_fs_quota_micros).with(cpu_control_group).and_return(cfs_quota_micros) + end + + it "returns all the stats" do + expect(subject.get_all).to match( + :cpuacct => { + :control_group => cpuacct_control_group, + :usage => cpuacct_usage, + }, + :cpu => { + :control_group => cpu_control_group, + :cfs_period_micros => cfs_period_micros, + :cfs_quota_micros => cfs_quota_micros, + :stat => { + :number_of_periods => cpu_stats_number_of_periods, + :number_of_times_throttled => cpu_stats_number_of_time_throttled, + :time_throttled_nanos => cpu_stats_time_throttled_nanos + } + } + ) + end + end + + context "when an exception is raised" do + before do + allow(subject).to receive(:control_groups).and_raise("Something went wrong") + end + + it "returns nil" do + expect(subject.get_all).to be_nil + end + end + end +end diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/os_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/os_spec.rb new file mode 100644 index 00000000000..2fed6913b18 --- /dev/null +++ b/logstash-core/spec/logstash/instrument/periodic_poller/os_spec.rb @@ -0,0 +1,85 @@ +# encoding: utf-8 +require "logstash/instrument/periodic_poller/os" +require "logstash/instrument/metric" +require "logstash/instrument/collector" + +describe LogStash::Instrument::PeriodicPoller::Os do + let(:metric) { LogStash::Instrument::Metric.new(LogStash::Instrument::Collector.new) } + + context "recorded cgroup metrics (mocked cgroup env)" do + subject { described_class.new(metric, {})} + + let(:snapshot_store) { metric.collector.snapshot_metric.metric_store } + let(:os_metrics) { snapshot_store.get_shallow(:os) } + + let(:cpuacct_control_group) { "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61" } + let(:cpuacct_usage) { 1982 } + let(:cpu_control_group) { "/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61" } + let(:cpu_period_micros) { 500 } + let(:cpu_quota_micros) { 98 } + let(:cpu_stats_number_of_periods) { 1 } + let(:cpu_stats_number_of_time_throttled) { 2 } + let(:cpu_stats_time_throttled_nanos) { 3 } + let(:proc_self_cgroup_content) { + %W(14:name=systemd,holaunlimited:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +13:pids:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +12:hugetlb:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +11:net_prio:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +10:perf_event:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +9:net_cls:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +8:freezer:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +7:devices:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +6:memory:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +5:blkio:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +4:cpuacct:#{cpuacct_control_group} +3:cpu:#{cpu_control_group} +2:cpuset:/docker/a10687343f90e97bbb1f7181bd065a42de96c40c4aa91764a9d526ea30475f61 +1:name=openrc:/docker) } + let(:cpu_stat_file_content) { + [ + "nr_periods #{cpu_stats_number_of_periods}", + "nr_throttled #{cpu_stats_number_of_time_throttled}", + "throttled_time #{cpu_stats_time_throttled_nanos}" + ] + } + + before do + allow(LogStash::Instrument::PeriodicPoller::Cgroup).to receive(:are_cgroup_available?).and_return(true) + + allow(LogStash::Instrument::PeriodicPoller::Cgroup).to receive(:read_proc_self_cgroup_lines).and_return(proc_self_cgroup_content) + allow(LogStash::Instrument::PeriodicPoller::Cgroup).to receive(:read_sys_fs_cgroup_cpuacct_cpu_stat).and_return(cpu_stat_file_content) + + allow(LogStash::Instrument::PeriodicPoller::Cgroup).to receive(:cgroup_cpuacct_usage_nanos).with(cpuacct_control_group).and_return(cpuacct_usage) + allow(LogStash::Instrument::PeriodicPoller::Cgroup).to receive(:cgroup_cpu_fs_period_micros).with(cpu_control_group).and_return(cpu_period_micros) + allow(LogStash::Instrument::PeriodicPoller::Cgroup).to receive(:cgroup_cpu_fs_quota_micros).with(cpu_control_group).and_return(cpu_quota_micros) + + subject.collect + end + + def mval(*metric_path) + metric_path.reduce(os_metrics) {|acc,k| acc[k]}.value + end + + it "should have a value for #{[:cgroup, :cpuacc, :control_group]} that is a String" do + expect(mval(:cgroup, :cpuacct, :control_group)).to be_a(String) + end + + it "should have a value for #{[:cgroup, :cpu, :control_group]} that is a String" do + expect(mval(:cgroup, :cpu, :control_group)).to be_a(String) + end + + [ + [:cgroup, :cpuacct, :usage], + [:cgroup, :cpu, :cfs_period_micros], + [:cgroup, :cpu, :cfs_quota_micros], + [:cgroup, :cpu, :stat, :number_of_periods], + [:cgroup, :cpu, :stat, :number_of_times_throttled], + [:cgroup, :cpu, :stat, :time_throttled_nanos] + ].each do |path| + path = Array(path) + it "should have a value for #{path} that is Numeric" do + expect(mval(*path)).to be_a(Numeric) + end + end + end +end From 2b45a9b4ae8de90a91172afb47e0dbc06b98b4df Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 15 Dec 2016 13:14:47 -0800 Subject: [PATCH 561/632] add queue stats to node/stats api (#6331) * add queue stats to node/stats api example queue section: ``` "queue" : { "type" : "persisted", "capacity" : { "page_capacity_in_bytes" : 262144000, "max_queue_size_in_bytes" : 1073741824, "max_unread_events" : 0 }, "data" : { "free_space_in_bytes" : 33851523072, "current_size_in_bytes" : 262144000, "storage_type" : "hfs", "path" : "/logstash/data/queue" }, "events" : { "acked_count" : 0, "unread_count" : 0, "unacked_count" : 0 } } ``` Closes #6182. * migrate to use period metric pollers for storing queue stats per pipeline --- .../ext/JrubyAckedQueueExtLibrary.java | 40 ++++++++++++ .../ext/JrubyAckedQueueMemoryExtLibrary.java | 40 ++++++++++++ logstash-core/lib/logstash/agent.rb | 13 +++- .../lib/logstash/api/commands/stats.rb | 8 ++- .../lib/logstash/api/modules/node_stats.rb | 2 +- .../logstash/instrument/periodic_poller/pq.rb | 20 ++++++ .../logstash/instrument/periodic_pollers.rb | 6 +- logstash-core/lib/logstash/pipeline.rb | 32 +++++++++- .../lib/logstash/util/wrapped_acked_queue.rb | 2 + .../java/org/logstash/ackedqueue/Queue.java | 37 +++++++++++ .../org/logstash/ackedqueue/QueueTest.java | 62 ++++++++++++++++++- .../org/logstash/ackedqueue/TestSettings.java | 4 +- qa/integration/services/service.rb | 2 + qa/integration/specs/monitoring_api_spec.rb | 25 ++++++++ 14 files changed, 283 insertions(+), 10 deletions(-) create mode 100644 logstash-core/lib/logstash/instrument/periodic_poller/pq.rb diff --git a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java index cf63c360c9d..e36f425ee3f 100644 --- a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java +++ b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueExtLibrary.java @@ -87,6 +87,46 @@ public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) return context.nil; } + @JRubyMethod(name = "max_unread_events") + public IRubyObject ruby_max_unread_events(ThreadContext context) { + return context.runtime.newFixnum(queue.getMaxUnread()); + } + + @JRubyMethod(name = "max_size_in_bytes") + public IRubyObject ruby_max_size_in_bytes(ThreadContext context) { + return context.runtime.newFixnum(queue.getMaxBytes()); + } + + @JRubyMethod(name = "page_capacity") + public IRubyObject ruby_page_capacity(ThreadContext context) { + return context.runtime.newFixnum(queue.getPageCapacity()); + } + + @JRubyMethod(name = "dir_path") + public IRubyObject ruby_dir_path(ThreadContext context) { + return context.runtime.newString(queue.getDirPath()); + } + + @JRubyMethod(name = "current_byte_size") + public IRubyObject ruby_current_byte_size(ThreadContext context) { + return context.runtime.newFixnum(queue.getCurrentByteSize()); + } + + @JRubyMethod(name = "acked_count") + public IRubyObject ruby_acked_count(ThreadContext context) { + return context.runtime.newFixnum(queue.getAckedCount()); + } + + @JRubyMethod(name = "unacked_count") + public IRubyObject ruby_unacked_count(ThreadContext context) { + return context.runtime.newFixnum(queue.getUnackedCount()); + } + + @JRubyMethod(name = "unread_count") + public IRubyObject ruby_unread_count(ThreadContext context) { + return context.runtime.newFixnum(queue.getUnreadCount()); + } + @JRubyMethod(name = "open") public IRubyObject ruby_open(ThreadContext context) { diff --git a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java index 90fe314823d..db80f228454 100644 --- a/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java +++ b/logstash-core-queue-jruby/src/main/java/org/logstash/ackedqueue/ext/JrubyAckedQueueMemoryExtLibrary.java @@ -81,6 +81,46 @@ public IRubyObject ruby_initialize(ThreadContext context, IRubyObject[] args) return context.nil; } + @JRubyMethod(name = "max_unread_events") + public IRubyObject ruby_max_unread_events(ThreadContext context) { + return context.runtime.newFixnum(queue.getMaxUnread()); + } + + @JRubyMethod(name = "max_size_in_bytes") + public IRubyObject ruby_max_size_in_bytes(ThreadContext context) { + return context.runtime.newFixnum(queue.getMaxBytes()); + } + + @JRubyMethod(name = "page_capacity") + public IRubyObject ruby_page_capacity(ThreadContext context) { + return context.runtime.newFixnum(queue.getPageCapacity()); + } + + @JRubyMethod(name = "dir_path") + public IRubyObject ruby_dir_path(ThreadContext context) { + return context.runtime.newString(queue.getDirPath()); + } + + @JRubyMethod(name = "current_byte_size") + public IRubyObject ruby_current_byte_size(ThreadContext context) { + return context.runtime.newFixnum(queue.getCurrentByteSize()); + } + + @JRubyMethod(name = "acked_count") + public IRubyObject ruby_acked_count(ThreadContext context) { + return context.runtime.newFixnum(queue.getAckedCount()); + } + + @JRubyMethod(name = "unread_count") + public IRubyObject ruby_unread_count(ThreadContext context) { + return context.runtime.newFixnum(queue.getUnreadCount()); + } + + @JRubyMethod(name = "unacked_count") + public IRubyObject ruby_unacked_count(ThreadContext context) { + return context.runtime.newFixnum(queue.getUnackedCount()); + } + @JRubyMethod(name = "open") public IRubyObject ruby_open(ThreadContext context) { diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index f9780445d52..8e73fd461d7 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -178,6 +178,12 @@ def id_path @id_path ||= ::File.join(settings.get("path.data"), "uuid") end + def running_pipelines + @upgrade_mutex.synchronize do + @pipelines.select {|pipeline_id, _| running_pipeline?(pipeline_id) } + end + end + def running_pipelines? @upgrade_mutex.synchronize do @pipelines.select {|pipeline_id, _| running_pipeline?(pipeline_id) }.any? @@ -209,7 +215,9 @@ def configure_metrics_collectors end - @periodic_pollers = LogStash::Instrument::PeriodicPollers.new(@metric) + @periodic_pollers = LogStash::Instrument::PeriodicPollers.new(@metric, + settings.get("queue.type"), + self) @periodic_pollers.start end @@ -325,8 +333,9 @@ def stop_pipeline(id) def start_pipelines @instance_reload_metric.increment(:successes, 0) @instance_reload_metric.increment(:failures, 0) - @pipelines.each do |id, _| + @pipelines.each do |id, pipeline| start_pipeline(id) + pipeline.collect_stats # no reloads yet, initalize all the reload metrics init_pipeline_reload_metrics(id) end diff --git a/logstash-core/lib/logstash/api/commands/stats.rb b/logstash-core/lib/logstash/api/commands/stats.rb index cdc26cac862..321d2875f56 100644 --- a/logstash-core/lib/logstash/api/commands/stats.rb +++ b/logstash-core/lib/logstash/api/commands/stats.rb @@ -3,6 +3,9 @@ require 'logstash/util/thread_dump' require_relative "hot_threads_reporter" +java_import java.nio.file.Files +java_import java.nio.file.Paths + module LogStash module Api module Commands @@ -19,10 +22,10 @@ def jvm :uptime_in_millis => service.get_shallow(:jvm, :uptime_in_millis), } end - + def reloads service.get_shallow(:stats, :reloads) - end + end def process extract_metrics( @@ -106,6 +109,7 @@ def report(stats) :outputs => plugin_stats(stats, :outputs) }, :reloads => stats[:reloads], + :queue => stats[:queue] } end end # module PluginsStats diff --git a/logstash-core/lib/logstash/api/modules/node_stats.rb b/logstash-core/lib/logstash/api/modules/node_stats.rb index 8ffc9c7327e..f56efe81c59 100644 --- a/logstash-core/lib/logstash/api/modules/node_stats.rb +++ b/logstash-core/lib/logstash/api/modules/node_stats.rb @@ -31,7 +31,7 @@ def events_payload def jvm_payload @stats.jvm end - + def reloads @stats.reloads end diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/pq.rb b/logstash-core/lib/logstash/instrument/periodic_poller/pq.rb new file mode 100644 index 00000000000..d0028031f1f --- /dev/null +++ b/logstash-core/lib/logstash/instrument/periodic_poller/pq.rb @@ -0,0 +1,20 @@ +# encoding: utf-8 +require "logstash/instrument/periodic_poller/base" + +module LogStash module Instrument module PeriodicPoller + class PersistentQueue < Base + def initialize(metric, queue_type, agent, options = {}) + super(metric, options) + @metric = metric + @queue_type = queue_type + @agent = agent + end + + def collect + pipeline_id, pipeline = @agent.running_pipelines.first + unless pipeline.nil? + pipeline.collect_stats + end + end + end +end; end; end diff --git a/logstash-core/lib/logstash/instrument/periodic_pollers.rb b/logstash-core/lib/logstash/instrument/periodic_pollers.rb index 09c4feebd57..0ce6d406448 100644 --- a/logstash-core/lib/logstash/instrument/periodic_pollers.rb +++ b/logstash-core/lib/logstash/instrument/periodic_pollers.rb @@ -1,6 +1,7 @@ # encoding: utf-8 require "logstash/instrument/periodic_poller/os" require "logstash/instrument/periodic_poller/jvm" +require "logstash/instrument/periodic_poller/pq" module LogStash module Instrument # Each PeriodPoller manager his own thread to do the poller @@ -9,10 +10,11 @@ module LogStash module Instrument class PeriodicPollers attr_reader :metric - def initialize(metric) + def initialize(metric, queue_type, pipelines) @metric = metric @periodic_pollers = [PeriodicPoller::Os.new(metric), - PeriodicPoller::JVM.new(metric)] + PeriodicPoller::JVM.new(metric), + PeriodicPoller::PersistentQueue.new(metric, queue_type, pipelines)] end def start diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 6b244c80312..0ac54d51675 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -40,7 +40,8 @@ module LogStash; class Pipeline :settings, :metric, :filter_queue_client, - :input_queue_client + :input_queue_client, + :queue MAX_INFLIGHT_WARN_THRESHOLD = 10_000 @@ -549,6 +550,35 @@ def non_reloadable_plugins end end + def collect_stats + pipeline_metric = @metric.namespace([:stats, :pipelines, pipeline_id.to_s.to_sym, :queue]) + pipeline_metric.gauge(:type, settings.get("queue.type")) + + if @queue.is_a?(LogStash::Util::WrappedAckedQueue) && @queue.queue.is_a?(LogStash::AckedQueue) + queue = @queue.queue + dir_path = queue.dir_path + file_store = Files.get_file_store(Paths.get(dir_path)) + + pipeline_metric.namespace([:capacity]).tap do |n| + n.gauge(:page_capacity_in_bytes, queue.page_capacity) + n.gauge(:max_queue_size_in_bytes, queue.max_size_in_bytes) + n.gauge(:max_unread_events, queue.max_unread_events) + end + pipeline_metric.namespace([:data]).tap do |n| + n.gauge(:free_space_in_bytes, file_store.get_unallocated_space) + n.gauge(:current_size_in_bytes, queue.current_byte_size) + n.gauge(:storage_type, file_store.type) + n.gauge(:path, dir_path) + end + + pipeline_metric.namespace([:events]).tap do |n| + n.gauge(:acked_count, queue.acked_count) + n.gauge(:unacked_count, queue.unacked_count) + n.gauge(:unread_count, queue.unread_count) + end + end + end + # Sometimes we log stuff that will dump the pipeline which may contain # sensitive information (like the raw syntax tree which can contain passwords) # We want to hide most of what's in here diff --git a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb index ffac9eaab4c..e9c9e817d90 100644 --- a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb @@ -33,6 +33,8 @@ def self.create_file_based(path, capacity, max_events, checkpoint_max_writes, ch private_class_method :new + attr_reader :queue + def with_queue(queue) @queue = queue @queue.open diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java index 6f9b48bcb7c..9720b0c6ff4 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java @@ -106,6 +106,30 @@ public Queue(String dirPath, int pageCapacity, long maxBytes, CheckpointIO check } } + public String getDirPath() { + return this.dirPath; + } + + public long getMaxBytes() { + return this.maxBytes; + } + + public long getMaxUnread() { + return this.maxUnread; + } + + public long getCurrentByteSize() { + return this.currentByteSize; + } + + public int getPageCapacity() { + return this.pageCapacity; + } + + public long getUnreadCount() { + return this.unreadCount; + } + // moved queue opening logic in open() method until we have something in place to used in-memory checkpoints for testing // because for now we need to pass a Queue instance to the Page and we don't want to trigger a Queue recovery when // testing Page @@ -585,6 +609,19 @@ protected int firstUnackedPageNum() { return this.tailPages.get(0).getPageNum(); } + public long getAckedCount() { + return headPage.ackedSeqNums.cardinality() + tailPages.stream() + .mapToLong(page -> page.ackedSeqNums.cardinality()) + .sum(); + } + + public long getUnackedCount() { + long headPageCount = (headPage.getElementCount() - headPage.ackedSeqNums.cardinality()); + long tailPagesCount = tailPages.stream() + .mapToLong(page -> (page.getElementCount() - page.ackedSeqNums.cardinality())).sum(); + return headPageCount + tailPagesCount; + } + protected long nextSeqNum() { return this.seqNum += 1; } diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java index 13a777a7d63..88aabb63c76 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/QueueTest.java @@ -1,11 +1,15 @@ package org.logstash.ackedqueue; +import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import org.logstash.common.io.ByteBufferPageIO; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Random; @@ -22,6 +26,13 @@ import static org.hamcrest.MatcherAssert.assertThat; public class QueueTest { + @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder(); + private String dataPath; + + @Before + public void setUp() throws Exception { + dataPath = temporaryFolder.newFolder("data").getPath(); + } @Test public void newQueue() throws IOException { @@ -507,4 +518,53 @@ public void queueStillFullAfterPartialPageAckTest() throws IOException, Interrup executor.shutdown(); } -} \ No newline at end of file + @Test + public void testAckedCount() throws IOException { + Settings settings = TestSettings.getSettingsCheckpointFilePageMemory(100, dataPath); + Queue q = new Queue(settings); + q.open(); + + Queueable element1 = new StringElement("foobarbaz"); + Queueable element2 = new StringElement("wowza"); + Queueable element3 = new StringElement("third"); + long firstSeqNum = q.write(element1); + + Batch b = q.nonBlockReadBatch(1); + assertThat(b.getElements().size(), is(equalTo(1))); + + q.close(); + + q = new Queue(settings); + q.open(); + + long secondSeqNum = q.write(element2); + long thirdSeqNum = q.write(element3); + + b = q.nonBlockReadBatch(1); + assertThat(b.getElements().size(), is(equalTo(1))); + assertThat(b.getElements().get(0), is(equalTo(element1))); + + b = q.nonBlockReadBatch(2); + assertThat(b.getElements().size(), is(equalTo(2))); + assertThat(b.getElements().get(0), is(equalTo(element2))); + assertThat(b.getElements().get(1), is(equalTo(element3))); + + q.ack(Collections.singletonList(firstSeqNum)); + q.close(); + + q = new Queue(settings); + q.open(); + + b = q.nonBlockReadBatch(2); + assertThat(b.getElements().size(), is(equalTo(2))); + + q.ack(Arrays.asList(secondSeqNum, thirdSeqNum)); + + + assertThat(q.getAckedCount(), equalTo(0L)); + assertThat(q.getUnackedCount(), equalTo(0L)); + + q.close(); + } + +} diff --git a/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java b/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java index cda45aa3e64..7ab07b6cfd3 100644 --- a/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java +++ b/logstash-core/src/test/java/org/logstash/ackedqueue/TestSettings.java @@ -4,6 +4,7 @@ import org.logstash.common.io.CheckpointIOFactory; import org.logstash.common.io.FileCheckpointIO; import org.logstash.common.io.MemoryCheckpointIO; +import org.logstash.common.io.MmapPageIO; import org.logstash.common.io.PageIOFactory; public class TestSettings { @@ -35,10 +36,11 @@ public static Settings getSettings(int capacity, long size) { public static Settings getSettingsCheckpointFilePageMemory(int capacity, String folder) { Settings s = new FileSettings(folder); - PageIOFactory pageIOFactory = (pageNum, size, path) -> new ByteBufferPageIO(pageNum, size, path); + PageIOFactory pageIOFactory = (pageNum, size, path) -> new MmapPageIO(pageNum, size, path); CheckpointIOFactory checkpointIOFactory = (source) -> new FileCheckpointIO(source); s.setCapacity(capacity); s.setElementIOFactory(pageIOFactory); + s.setCheckpointMaxWrites(1); s.setCheckpointIOFactory(checkpointIOFactory); s.setElementClass(StringElement.class); return s; diff --git a/qa/integration/services/service.rb b/qa/integration/services/service.rb index f2c3525d2f6..63b898d30d9 100644 --- a/qa/integration/services/service.rb +++ b/qa/integration/services/service.rb @@ -1,6 +1,8 @@ # Base class for a service like Kafka, ES, Logstash class Service + attr_reader :settings + def initialize(name, settings) @name = name @settings = settings diff --git a/qa/integration/specs/monitoring_api_spec.rb b/qa/integration/specs/monitoring_api_spec.rb index f9045c49d2c..e6dc90097e8 100644 --- a/qa/integration/specs/monitoring_api_spec.rb +++ b/qa/integration/specs/monitoring_api_spec.rb @@ -47,4 +47,29 @@ end end + it "can retrieve queue stats" do + logstash_service = @fixture.get_service("logstash") + logstash_service.start_with_stdin + logstash_service.wait_for_logstash + + Stud.try(max_retry.times, RSpec::Expectations::ExpectationNotMetError) do + result = logstash_service.monitoring_api.node_stats + expect(result["pipeline"]["queue"]).not_to be_nil + if logstash_service.settings.feature_flag == "persistent_queues" + expect(result["pipeline"]["queue"]["type"]).to eq "persisted" + expect(result["pipeline"]["queue"]["data"]["free_space_in_bytes"]).not_to be_nil + expect(result["pipeline"]["queue"]["data"]["current_size_in_bytes"]).not_to be_nil + expect(result["pipeline"]["queue"]["data"]["storage_type"]).not_to be_nil + expect(result["pipeline"]["queue"]["data"]["path"]).not_to be_nil + expect(result["pipeline"]["queue"]["events"]["acked_count"]).not_to be_nil + expect(result["pipeline"]["queue"]["events"]["unread_count"]).not_to be_nil + expect(result["pipeline"]["queue"]["events"]["unacked_count"]).not_to be_nil + expect(result["pipeline"]["queue"]["capacity"]["page_capacity_in_bytes"]).not_to be_nil + expect(result["pipeline"]["queue"]["capacity"]["max_queue_size_in_bytes"]).not_to be_nil + expect(result["pipeline"]["queue"]["capacity"]["max_unread_events"]).not_to be_nil + else + expect(result["pipeline"]["queue"]["type"]).to eq "memory" + end + end + end end From 2f19c89388b884078df50495618f91c0d430adcb Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 17 Nov 2016 13:43:53 -0500 Subject: [PATCH 562/632] Feature: Paquet, a tool to pack dependencies This tool allow to generate a logstash pack of plugin and it is required by #6168. This allow the developer to specify which gems it need to be included in the pack, it will also take care get the parent dependencies. ```ruby require "paquet" TARGET_DIRECTORY = File.join(File.dirname(__FILE__), "dependencies") Paquet::Task.new(TARGET_DIRECTORY) do pack "manticore" pack "gemoji" pack "logstash-output-elasticsearch" # Ignore some dependencies that the core will provide ignore "logstash-core-plugin-api" ignore "logstash-core" end ``` Fixes #6271 --- tools/paquet/.gitignore | 3 + tools/paquet/Gemfile | 4 + tools/paquet/LICENSE | 13 +++ tools/paquet/README.md | 36 ++++++ tools/paquet/Rakefile | 2 + tools/paquet/lib/paquet.rb | 7 ++ tools/paquet/lib/paquet/rspec/tasks.rb | 147 +++++++++++++++++++++++++ tools/paquet/lib/paquet/version.rb | 3 + tools/paquet/paquet.gemspec | 28 +++++ 9 files changed, 243 insertions(+) create mode 100644 tools/paquet/.gitignore create mode 100644 tools/paquet/Gemfile create mode 100644 tools/paquet/LICENSE create mode 100644 tools/paquet/README.md create mode 100644 tools/paquet/Rakefile create mode 100644 tools/paquet/lib/paquet.rb create mode 100644 tools/paquet/lib/paquet/rspec/tasks.rb create mode 100644 tools/paquet/lib/paquet/version.rb create mode 100644 tools/paquet/paquet.gemspec diff --git a/tools/paquet/.gitignore b/tools/paquet/.gitignore new file mode 100644 index 00000000000..2d10130b53a --- /dev/null +++ b/tools/paquet/.gitignore @@ -0,0 +1,3 @@ +/.bundle/ +/.yardoc +/Gemfile.lock diff --git a/tools/paquet/Gemfile b/tools/paquet/Gemfile new file mode 100644 index 00000000000..67dedf9c429 --- /dev/null +++ b/tools/paquet/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +# Specify your gem's dependencies in paquet.gemspec +gemspec diff --git a/tools/paquet/LICENSE b/tools/paquet/LICENSE new file mode 100644 index 00000000000..43976b73b2b --- /dev/null +++ b/tools/paquet/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2012–2016 Elasticsearch + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/tools/paquet/README.md b/tools/paquet/README.md new file mode 100644 index 00000000000..2d751a0cab5 --- /dev/null +++ b/tools/paquet/README.md @@ -0,0 +1,36 @@ +# Paquet + +Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/paquet`. To experiment with that code, run `bin/console` for an interactive prompt. + +TODO: Delete this and the text above, and describe your gem + +## Installation + +Add this line to your application's Gemfile: + +```ruby +gem 'paquet' +``` + +And then execute: + + $ bundle + +Or install it yourself as: + + $ gem install paquet + +## Usage + +TODO: Write usage instructions here + +## Development + +After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment. + +To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). + +## Contributing + +Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/paquet. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. + diff --git a/tools/paquet/Rakefile b/tools/paquet/Rakefile new file mode 100644 index 00000000000..43022f711e2 --- /dev/null +++ b/tools/paquet/Rakefile @@ -0,0 +1,2 @@ +require "bundler/gem_tasks" +task :default => :spec diff --git a/tools/paquet/lib/paquet.rb b/tools/paquet/lib/paquet.rb new file mode 100644 index 00000000000..19e6c8fd720 --- /dev/null +++ b/tools/paquet/lib/paquet.rb @@ -0,0 +1,7 @@ +# encoding: utf-8 +require "paquet/version" +require "paquet/rspec/tasks" + +module Paquet + # Your code goes here... +end diff --git a/tools/paquet/lib/paquet/rspec/tasks.rb b/tools/paquet/lib/paquet/rspec/tasks.rb new file mode 100644 index 00000000000..3d325987d40 --- /dev/null +++ b/tools/paquet/lib/paquet/rspec/tasks.rb @@ -0,0 +1,147 @@ +# encoding: utf-8 +require "bundler" +require "rake" +require "rake/tasklib" +require "fileutils" +require "net/http" + +# +# Uses bundler/fetcher to download stuff +module Paquet + class Gem + RUBYGEMS_URI = "https://rubygems.org/downloads" + + attr_reader :gems, :ignores + + def initialize(target_path) + @target_path = target_path + @gems = [] + @ignores = [] + end + + def add(name) + @gems << name + end + + def ignore(name) + @ignores << name + end + + def pack + FileUtils.rm_rf(@target_path) + FileUtils.mkdir_p(@target_path) + + # need to get the current version and dependencies + required_gems = collect_required_gems + download_gems(required_gems) + end + + def size + @gems.size + end + + private + class Dependency + attr_reader :name, :version, :platform + + def initialize(name, version, platform) + @name = name + @version = version + @platform = platform + end + + def to_s + "#{name}-#{version}" + end + + def ruby? + platform == "ruby" + end + end + + def ignore?(name) + ignores.include?(name) + end + + def collect_required_gems() + candidates = [] + @gems.each do |name| + candidates += resolve_dependencies(name) + end + candidates.flatten + end + + def resolve_dependencies(name) + return [] if ignore?(name) + + spec = ::Gem::Specification.find_by_name(name) + current_dependency = Dependency.new(name, spec.version, spec.platform) + dependencies = spec.dependencies.select { |dep| dep.type == :runtime } + + if dependencies.size == 0 + [current_dependency] + else + [dependencies.collect { |spec| resolve_dependencies(spec.name) }, current_dependency].flatten.uniq { |s| s.name } + end + end + + def download_gems(required_gems) + required_gems + .collect { |gem| gem.ruby? ? "#{gem.name}-#{gem.version}.gem" : "#{gem.name}-#{gem.version}-#{gem.platform}.gem" } + .uniq + .each do |name| + source = "#{RUBYGEMS_URI}/#{name}" + destination = File.join(@target_path, name) + + puts "Vendoring: #{name}, downloading: #{source}" + download_file(source, destination) + end + end + + def download_file(source, destination, counter = 10) + raise "Too many redirection" if counter == 0 + + f = File.open(destination, "w") + + begin + uri = URI.parse(source) + http = Net::HTTP.new(uri.host, uri.port) + http.use_ssl = true + response = http.get(uri.path) + + case response + when Net::HTTPSuccess + f.write(response.body) + when Net::HTTPRedirection + download_file(response['location'], destination, counter) + end + + ensure + f.close + end + end + end + + class Task < Rake::TaskLib + def initialize(target_path, &block) + @gem = Gem.new(target_path) + + instance_eval(&block) + + namespace :paquet do + desc "Build a pack with #{@gem.size} gems: #{@gem.gems.join(",")}" + task :vendor do + @gem.pack + end + end + end + + def pack(name) + @gem.add(name) + end + + def ignore(name) + @gem.ignore(name) + end + end +end diff --git a/tools/paquet/lib/paquet/version.rb b/tools/paquet/lib/paquet/version.rb new file mode 100644 index 00000000000..ce897a39151 --- /dev/null +++ b/tools/paquet/lib/paquet/version.rb @@ -0,0 +1,3 @@ +module Paquet + VERSION = "0.1.0" +end diff --git a/tools/paquet/paquet.gemspec b/tools/paquet/paquet.gemspec new file mode 100644 index 00000000000..0ce433a7580 --- /dev/null +++ b/tools/paquet/paquet.gemspec @@ -0,0 +1,28 @@ +# coding: utf-8 +lib = File.expand_path('../lib', __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require 'paquet/version' + +Gem::Specification.new do |spec| + spec.name = "paquet" + spec.version = Paquet::VERSION + spec.authors = ["Elastic"] + spec.email = ["info@elastic.co"] + spec.license = "Apache License (2.0)" + + spec.summary = %q{Rake helpers to create a uber gem} + spec.description = %q{This gem add a few rake tasks to create a uber gems that will be shipped as a zip} + spec.homepage = "https://github.com/elastic/paquet" + + + spec.files = `git ls-files -z`.split("\x0").reject do |f| + f.match(%r{^(test|spec|features)/}) + end + spec.bindir = "exe" + spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } + spec.require_paths = ["lib"] + + spec.add_development_dependency "bundler", "~> 1.13" + spec.add_development_dependency "rake", "~> 10.0" + spec.add_runtime_dependency "pry" +end From 49f667428b01092aef4d53d15d6b65986558dd44 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 6 Dec 2016 10:47:54 -0500 Subject: [PATCH 563/632] remove the unecessary dependency and remove the file shellout Fixes #6271 --- tools/paquet/paquet.gemspec | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/tools/paquet/paquet.gemspec b/tools/paquet/paquet.gemspec index 0ce433a7580..ee3209a8bc9 100644 --- a/tools/paquet/paquet.gemspec +++ b/tools/paquet/paquet.gemspec @@ -15,14 +15,9 @@ Gem::Specification.new do |spec| spec.homepage = "https://github.com/elastic/paquet" - spec.files = `git ls-files -z`.split("\x0").reject do |f| - f.match(%r{^(test|spec|features)/}) - end + spec.files = Dir.glob(File.join(File.dirname(__FILE__), "lib", "**", "*.rb")) + spec.bindir = "exe" spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] - - spec.add_development_dependency "bundler", "~> 1.13" - spec.add_development_dependency "rake", "~> 10.0" - spec.add_runtime_dependency "pry" end From 8559a5b841c714b214091e9f5b3c0b5950937dd8 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 6 Dec 2016 11:00:22 -0500 Subject: [PATCH 564/632] fix the readme and make sure we raise an exception when we dont understand the http response Fixes #6271 --- tools/paquet/README.md | 55 +++++++++++++++++++++----- tools/paquet/lib/paquet/rspec/tasks.rb | 39 +++++++++++++++--- 2 files changed, 79 insertions(+), 15 deletions(-) diff --git a/tools/paquet/README.md b/tools/paquet/README.md index 2d751a0cab5..1f4d8205f23 100644 --- a/tools/paquet/README.md +++ b/tools/paquet/README.md @@ -1,8 +1,11 @@ # Paquet -Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/paquet`. To experiment with that code, run `bin/console` for an interactive prompt. +This gem allow a developer to create a uber gem, a uber gem is a gem that content the current gem and his dependencies and is distributed as a tarball. + +This tool allow to define what will be bundler and what should be ignored, it uses the dependencies defined in the gemspec and gemfile to know what to download. + +Note that by default no gems will be bundled. -TODO: Delete this and the text above, and describe your gem ## Installation @@ -16,21 +19,53 @@ And then execute: $ bundle -Or install it yourself as: +## Usage +Define the dependencies in your Rakefile - $ gem install paquet +```ruby +# encoding: utf-8 +require "logstash/devutils/rake" +require "paquet" + +TARGET_DIRECTORY = File.join(File.dirname(__FILE__), "dependencies") + +Paquet::Task.new(TARGET_DIRECTORY) do + pack "manticore" + pack "launchy" + pack "gemoji" + pack "logstash-output-elasticsearch" + + # Everything not defined here will be assumed to be provided + # by the target installation + ignore "logstash-core-plugin-api" + ignore "logstash-core" +end +``` -## Usage +And run -TODO: Write usage instructions here +``` +bundle exec rake paquet:vendor +``` -## Development +The dependencies will be downloaded in your target directory. -After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment. +## Project Principles -To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). +* Community: If a newbie has a bad time, it's a bug. +* Software: Make it work, then make it right, then make it fast. +* Technology: If it doesn't do a thing today, we can make it do it tomorrow. ## Contributing -Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/paquet. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. +All contributions are welcome: ideas, patches, documentation, bug reports, +complaints, and even something you drew up on a napkin. + +Programming is not a required skill. Whatever you've seen about open source and +maintainers or community members saying "send patches or die" - you will not +see that here. + +It is more important to me that you are able to contribute. +For more information about contributing, see the +[CONTRIBUTING](../CONTRIBUTING.md) file. diff --git a/tools/paquet/lib/paquet/rspec/tasks.rb b/tools/paquet/lib/paquet/rspec/tasks.rb index 3d325987d40..3cf6d651b9e 100644 --- a/tools/paquet/lib/paquet/rspec/tasks.rb +++ b/tools/paquet/lib/paquet/rspec/tasks.rb @@ -5,9 +5,37 @@ require "fileutils" require "net/http" +# This class add new rake methods to a an existing ruby gem, +# these methods allow developpers to create a Uber gem, a uber gem is +# a tarball that contains the current gems and one or more of his dependencies. # -# Uses bundler/fetcher to download stuff +# This Tool will take care of looking at the current dependency tree defined in the Gemspec and the gemfile +# and will traverse all graph and download the gem file into a specified directory. +# +# By default, the tool wont fetch everything and the developper need to declare what gems he want to download. module Paquet + class ShellUi + def debug(message) + report_message(:debug, message) if debug? + end + + def info(message) + report_message(:info, message) + end + + def report_message(level, message) + puts "[#{level}]: #{message}" + end + + def debug? + ENV["DEBUG"] + end + end + + def ui + @logger ||= ShellUi.new + end + class Gem RUBYGEMS_URI = "https://rubygems.org/downloads" @@ -28,12 +56,11 @@ def ignore(name) end def pack + ui.info("Cleaning existing target path: #{@target_path}") FileUtils.rm_rf(@target_path) FileUtils.mkdir_p(@target_path) - # need to get the current version and dependencies - required_gems = collect_required_gems - download_gems(required_gems) + download_gems(collect_required_gems) end def size @@ -93,7 +120,7 @@ def download_gems(required_gems) source = "#{RUBYGEMS_URI}/#{name}" destination = File.join(@target_path, name) - puts "Vendoring: #{name}, downloading: #{source}" + ui.info("Vendoring: #{name}, downloading: #{source}") download_file(source, destination) end end @@ -114,6 +141,8 @@ def download_file(source, destination, counter = 10) f.write(response.body) when Net::HTTPRedirection download_file(response['location'], destination, counter) + else + raise "Response not handled: #{response.class}" end ensure From 10b1bbd308e7afeb6a3855885dca35d262408db5 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 7 Dec 2016 09:20:22 -0500 Subject: [PATCH 565/632] code reorg and adding unit tests Fixes #6271 --- tools/paquet/README.md | 1 - tools/paquet/lib/paquet.rb | 4 +- tools/paquet/lib/paquet/dependency.rb | 19 +++ tools/paquet/lib/paquet/gem.rb | 78 +++++++++++ tools/paquet/lib/paquet/rspec/tasks.rb | 138 +------------------- tools/paquet/lib/paquet/shell_ui.rb | 24 ++++ tools/paquet/lib/paquet/utils.rb | 41 ++++++ tools/paquet/paquet.gemspec | 5 + tools/paquet/spec/paquet/dependency_spec.rb | 36 +++++ tools/paquet/spec/paquet/shell_ui_spec.rb | 40 ++++++ tools/paquet/spec/paquet/utils_spec.rb | 93 +++++++++++++ tools/paquet/spec/spec_helper.rb | 2 + 12 files changed, 342 insertions(+), 139 deletions(-) create mode 100644 tools/paquet/lib/paquet/dependency.rb create mode 100644 tools/paquet/lib/paquet/gem.rb create mode 100644 tools/paquet/lib/paquet/shell_ui.rb create mode 100644 tools/paquet/lib/paquet/utils.rb create mode 100644 tools/paquet/spec/paquet/dependency_spec.rb create mode 100644 tools/paquet/spec/paquet/shell_ui_spec.rb create mode 100644 tools/paquet/spec/paquet/utils_spec.rb create mode 100644 tools/paquet/spec/spec_helper.rb diff --git a/tools/paquet/README.md b/tools/paquet/README.md index 1f4d8205f23..ac61e149a0f 100644 --- a/tools/paquet/README.md +++ b/tools/paquet/README.md @@ -24,7 +24,6 @@ Define the dependencies in your Rakefile ```ruby # encoding: utf-8 -require "logstash/devutils/rake" require "paquet" TARGET_DIRECTORY = File.join(File.dirname(__FILE__), "dependencies") diff --git a/tools/paquet/lib/paquet.rb b/tools/paquet/lib/paquet.rb index 19e6c8fd720..0e19b6221eb 100644 --- a/tools/paquet/lib/paquet.rb +++ b/tools/paquet/lib/paquet.rb @@ -1,7 +1,9 @@ # encoding: utf-8 require "paquet/version" +require "paquet/shell_ui" +require "paquet/gem" +require "paquet/dependency" require "paquet/rspec/tasks" module Paquet - # Your code goes here... end diff --git a/tools/paquet/lib/paquet/dependency.rb b/tools/paquet/lib/paquet/dependency.rb new file mode 100644 index 00000000000..08fc739cc7a --- /dev/null +++ b/tools/paquet/lib/paquet/dependency.rb @@ -0,0 +1,19 @@ +module Paquet + class Dependency + attr_reader :name, :version, :platform + + def initialize(name, version, platform) + @name = name + @version = version + @platform = platform + end + + def to_s + "#{name}-#{version}" + end + + def ruby? + platform == "ruby" + end + end +end diff --git a/tools/paquet/lib/paquet/gem.rb b/tools/paquet/lib/paquet/gem.rb new file mode 100644 index 00000000000..76606397ead --- /dev/null +++ b/tools/paquet/lib/paquet/gem.rb @@ -0,0 +1,78 @@ +# encoding: utf-8 +require "paquet/dependency" +require "paquet/shell_ui" +require "paquet/utils" + +module Paquet + class Gem + RUBYGEMS_URI = "https://rubygems.org/downloads" + + attr_reader :gems, :ignores + + def initialize(target_path) + @target_path = target_path + @gems = [] + @ignores = [] + end + + def add(name) + @gems << name + end + + def ignore(name) + @ignores << name + end + + def pack + ui.info("Cleaning existing target path: #{@target_path}") + + FileUtils.rm_rf(@target_path) + FileUtils.mkdir_p(@target_path) + + download_gems(collect_required_gems) + end + + def size + @gems.size + end + + def ignore?(name) + ignores.include?(name) + end + + def collect_required_gems() + candidates = [] + @gems.each do |name| + candidates += resolve_dependencies(name) + end + candidates.flatten + end + + def resolve_dependencies(name) + return [] if ignore?(name) + + spec = ::Gem::Specification.find_by_name(name) + current_dependency = Dependency.new(name, spec.version, spec.platform) + dependencies = spec.dependencies.select { |dep| dep.type == :runtime } + + if dependencies.size == 0 + [current_dependency] + else + [dependencies.collect { |spec| resolve_dependencies(spec.name) }, current_dependency].flatten.uniq { |s| s.name } + end + end + + def download_gems(required_gems) + required_gems + .collect { |gem| gem.ruby? ? "#{gem.name}-#{gem.version}.gem" : "#{gem.name}-#{gem.version}-#{gem.platform}.gem" } + .uniq + .each do |name| + source = "#{RUBYGEMS_URI}/#{name}" + destination = File.join(@target_path, name) + + ui.info("Vendoring: #{name}, downloading: #{source}") + Paquet::Utils::download_file(source, destination) + end + end + end +end diff --git a/tools/paquet/lib/paquet/rspec/tasks.rb b/tools/paquet/lib/paquet/rspec/tasks.rb index 3cf6d651b9e..bb352471d2a 100644 --- a/tools/paquet/lib/paquet/rspec/tasks.rb +++ b/tools/paquet/lib/paquet/rspec/tasks.rb @@ -4,6 +4,7 @@ require "rake/tasklib" require "fileutils" require "net/http" +require "paquet/gem" # This class add new rake methods to a an existing ruby gem, # these methods allow developpers to create a Uber gem, a uber gem is @@ -14,143 +15,6 @@ # # By default, the tool wont fetch everything and the developper need to declare what gems he want to download. module Paquet - class ShellUi - def debug(message) - report_message(:debug, message) if debug? - end - - def info(message) - report_message(:info, message) - end - - def report_message(level, message) - puts "[#{level}]: #{message}" - end - - def debug? - ENV["DEBUG"] - end - end - - def ui - @logger ||= ShellUi.new - end - - class Gem - RUBYGEMS_URI = "https://rubygems.org/downloads" - - attr_reader :gems, :ignores - - def initialize(target_path) - @target_path = target_path - @gems = [] - @ignores = [] - end - - def add(name) - @gems << name - end - - def ignore(name) - @ignores << name - end - - def pack - ui.info("Cleaning existing target path: #{@target_path}") - FileUtils.rm_rf(@target_path) - FileUtils.mkdir_p(@target_path) - - download_gems(collect_required_gems) - end - - def size - @gems.size - end - - private - class Dependency - attr_reader :name, :version, :platform - - def initialize(name, version, platform) - @name = name - @version = version - @platform = platform - end - - def to_s - "#{name}-#{version}" - end - - def ruby? - platform == "ruby" - end - end - - def ignore?(name) - ignores.include?(name) - end - - def collect_required_gems() - candidates = [] - @gems.each do |name| - candidates += resolve_dependencies(name) - end - candidates.flatten - end - - def resolve_dependencies(name) - return [] if ignore?(name) - - spec = ::Gem::Specification.find_by_name(name) - current_dependency = Dependency.new(name, spec.version, spec.platform) - dependencies = spec.dependencies.select { |dep| dep.type == :runtime } - - if dependencies.size == 0 - [current_dependency] - else - [dependencies.collect { |spec| resolve_dependencies(spec.name) }, current_dependency].flatten.uniq { |s| s.name } - end - end - - def download_gems(required_gems) - required_gems - .collect { |gem| gem.ruby? ? "#{gem.name}-#{gem.version}.gem" : "#{gem.name}-#{gem.version}-#{gem.platform}.gem" } - .uniq - .each do |name| - source = "#{RUBYGEMS_URI}/#{name}" - destination = File.join(@target_path, name) - - ui.info("Vendoring: #{name}, downloading: #{source}") - download_file(source, destination) - end - end - - def download_file(source, destination, counter = 10) - raise "Too many redirection" if counter == 0 - - f = File.open(destination, "w") - - begin - uri = URI.parse(source) - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = true - response = http.get(uri.path) - - case response - when Net::HTTPSuccess - f.write(response.body) - when Net::HTTPRedirection - download_file(response['location'], destination, counter) - else - raise "Response not handled: #{response.class}" - end - - ensure - f.close - end - end - end - class Task < Rake::TaskLib def initialize(target_path, &block) @gem = Gem.new(target_path) diff --git a/tools/paquet/lib/paquet/shell_ui.rb b/tools/paquet/lib/paquet/shell_ui.rb new file mode 100644 index 00000000000..b765fd1ad0a --- /dev/null +++ b/tools/paquet/lib/paquet/shell_ui.rb @@ -0,0 +1,24 @@ +# encoding: utf-8 +module Paquet + class ShellUi + def debug(message) + report_message(:debug, message) if debug? + end + + def info(message) + report_message(:info, message) + end + + def report_message(level, message) + puts "[#{level.upcase}]: #{message}" + end + + def debug? + ENV["DEBUG"] + end + end + + def ui + @logger ||= ShellUi.new + end +end diff --git a/tools/paquet/lib/paquet/utils.rb b/tools/paquet/lib/paquet/utils.rb new file mode 100644 index 00000000000..b12f2bd87cb --- /dev/null +++ b/tools/paquet/lib/paquet/utils.rb @@ -0,0 +1,41 @@ +# encoding: utf-8 +require "fileutils" +require "uri" + +module Paquet + class Utils + HTTPS_SCHEME = "https" + REDIRECTION_LIMIT = 5 + + def self.download_file(source, destination, counter = REDIRECTION_LIMIT) + raise "Too many redirection" if counter == 0 + + begin + f = File.open(destination, "w") + + uri = URI.parse(source) + + http = Net::HTTP.new(uri.host, uri.port, ) + http.use_ssl = uri.scheme == HTTPS_SCHEME + + response = http.get(uri.path) + + case response + when Net::HTTPSuccess + f.write(response.body) + when Net::HTTPRedirection + counter -= 1 + download_file(response['location'], destination, counter) + else + raise "Response not handled: #{response.class}" + end + f.path + rescue => e + FileUtils.rm_rf(f.path) rescue nil + raise e + ensure + f.close + end + end + end +end diff --git a/tools/paquet/paquet.gemspec b/tools/paquet/paquet.gemspec index ee3209a8bc9..2d35e687ba9 100644 --- a/tools/paquet/paquet.gemspec +++ b/tools/paquet/paquet.gemspec @@ -20,4 +20,9 @@ Gem::Specification.new do |spec| spec.bindir = "exe" spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] + + spec.add_development_dependency "rspec" + spec.add_development_dependency "pry" + spec.add_development_dependency "webmock" + spec.add_development_dependency "stud" end diff --git a/tools/paquet/spec/paquet/dependency_spec.rb b/tools/paquet/spec/paquet/dependency_spec.rb new file mode 100644 index 00000000000..aeab6663aa0 --- /dev/null +++ b/tools/paquet/spec/paquet/dependency_spec.rb @@ -0,0 +1,36 @@ +# encoding: utf-8 +require "paquet/dependency" + +describe Paquet::Dependency do + let(:name) { "mygem" } + let(:version) { "1.2.3" } + let(:platform) { "ruby" } + + subject { described_class.new(name, version, platform) } + + it "returns the name" do + expect(subject.name).to eq(name) + end + + it "returns the version" do + expect(subject.version).to eq(version) + end + + context "when the platform is mri" do + it "returns true" do + expect(subject.ruby?).to be_truthy + end + end + + context "platform is jruby" do + let(:platform) { "java"} + + it "returns false" do + expect(subject.ruby?).to be_falsey + end + end + + it "return a meaninful string" do + expect(subject.to_s).to eq("#{name}-#{version}") + end +end diff --git a/tools/paquet/spec/paquet/shell_ui_spec.rb b/tools/paquet/spec/paquet/shell_ui_spec.rb new file mode 100644 index 00000000000..398274e9445 --- /dev/null +++ b/tools/paquet/spec/paquet/shell_ui_spec.rb @@ -0,0 +1,40 @@ +# encoding: utf-8 +require "paquet/shell_ui" + +describe Paquet::ShellUi do + let(:message) { "hello world" } + + subject { described_class.new } + + context "when debug is on" do + before :all do + @debug = ENV["debug"] + ENV["DEBUG"] = "1" + end + + after :all do + ENV["DEBUG"] = @debug + end + + it "show the debug statement" do + expect(subject).to receive(:puts).with("[DEBUG]: #{message}") + subject.debug(message) + end + end + + context "not in debug" do + before :all do + @debug = ENV["debug"] + ENV["DEBUG"] = nil + end + + after :all do + ENV["DEBUG"] = @debug + end + + it "doesnt show the debug statement" do + expect(subject).not_to receive(:puts).with("[DEBUG]: #{message}") + subject.debug(message) + end + end +end diff --git a/tools/paquet/spec/paquet/utils_spec.rb b/tools/paquet/spec/paquet/utils_spec.rb new file mode 100644 index 00000000000..de636526d7a --- /dev/null +++ b/tools/paquet/spec/paquet/utils_spec.rb @@ -0,0 +1,93 @@ +# encoding: utf-8 +require "paquet/utils" +require "stud/temporary" +require "spec_helper" + +describe Paquet::Utils do + subject { described_class } + + let(:url) { "https://localhost:8898/my-file.txt"} + let(:destination) do + p = Stud::Temporary.pathname + FileUtils.mkdir_p(p) + File.join(p, "tmp-file") + end + + let(:content) { "its halloween, halloween!" } + + context "when the file exist" do + before do + stub_request(:get, url).to_return( + { :status => 200, + :body => content, + :headers => {}} + ) + end + + it "download the file to local temporary file" do + expect(File.read(subject.download_file(url, destination))).to match(content) + end + + context "when an exception occur" do + let(:temporary_path) { Stud::Temporary.pathname } + + before do + expect(URI).to receive(:parse).with(anything).and_raise("something went wrong") + end + + it "deletes the temporary file" do + subject.download_file(url, destination) rescue nil + expect(File.exist?(destination)).to be_falsey + end + end + end + + context "on redirection" do + let(:redirect_response) { instance_double("Net::HTTP::Response", :code => "302", :headers => { "location" => "https://localhost:8888/new_path" }) } + let(:response_ok) { instance_double("Net::HTTP::Response", :code => "200") } + + context "less than the maximun of redirection" do + let(:redirect_url) { "https://localhost:8898/redirect/my-file.txt"} + + before do + stub_request(:get, url).to_return( + { :status => 302, :headers => { "location" => redirect_url }} + ) + + stub_request(:get, url).to_return( + { :status => 200, :body => content } + ) + end + + it "follows the redirection" do + expect(File.read(subject.download_file(url, destination))).to match(content) + end + end + + context "too many redirection" do + before do + stub_request(:get, url).to_return( + { :status => 302, :headers => { "location" => url }} + ) + end + + it "raises an exception" do + expect { subject.download_file(url, destination) }.to raise_error(/Too many redirection/) + end + end + end + + [404, 400, 401, 500].each do |code| + context "When the server return #{code}" do + before do + stub_request(:get, url).to_return( + { :status => code } + ) + end + + it "raises an exception" do + expect { subject.download_file(url, destination) }.to raise_error(/Response not handled/) + end + end + end +end diff --git a/tools/paquet/spec/spec_helper.rb b/tools/paquet/spec/spec_helper.rb new file mode 100644 index 00000000000..a2d0aa45d42 --- /dev/null +++ b/tools/paquet/spec/spec_helper.rb @@ -0,0 +1,2 @@ +# encoding: utf-8 +require "webmock/rspec" From 369d8aff535cb1985f87d87314c597ef34072693 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 7 Dec 2016 10:18:43 -0500 Subject: [PATCH 566/632] Adding the unit tests and an integration test for the gem pack Fixes #6271 --- tools/paquet/.gitignore | 2 ++ tools/paquet/lib/paquet/gem.rb | 4 +-- tools/paquet/lib/paquet/shell_ui.rb | 2 +- tools/paquet/lib/paquet/version.rb | 2 +- tools/paquet/paquet.gemspec | 2 +- tools/paquet/spec/integration/paquet_spec.rb | 33 +++++++++++++++++ tools/paquet/spec/paquet/gem_spec.rb | 24 +++++++++++++ tools/paquet/spec/support/Gemfile | 4 +++ tools/paquet/spec/support/Gemfile.lock | 37 ++++++++++++++++++++ tools/paquet/spec/support/Rakefile | 11 ++++++ tools/paquet/spec/support/paquet.gemspec | 17 +++++++++ 11 files changed, 133 insertions(+), 5 deletions(-) create mode 100644 tools/paquet/spec/integration/paquet_spec.rb create mode 100644 tools/paquet/spec/paquet/gem_spec.rb create mode 100644 tools/paquet/spec/support/Gemfile create mode 100644 tools/paquet/spec/support/Gemfile.lock create mode 100644 tools/paquet/spec/support/Rakefile create mode 100644 tools/paquet/spec/support/paquet.gemspec diff --git a/tools/paquet/.gitignore b/tools/paquet/.gitignore index 2d10130b53a..4398f38a4bd 100644 --- a/tools/paquet/.gitignore +++ b/tools/paquet/.gitignore @@ -1,3 +1,5 @@ /.bundle/ /.yardoc /Gemfile.lock +/spec/support/dependencies +/spec/support/.bundle diff --git a/tools/paquet/lib/paquet/gem.rb b/tools/paquet/lib/paquet/gem.rb index 76606397ead..2e009c78f64 100644 --- a/tools/paquet/lib/paquet/gem.rb +++ b/tools/paquet/lib/paquet/gem.rb @@ -24,7 +24,7 @@ def ignore(name) end def pack - ui.info("Cleaning existing target path: #{@target_path}") + Paquet::ui.info("Cleaning existing target path: #{@target_path}") FileUtils.rm_rf(@target_path) FileUtils.mkdir_p(@target_path) @@ -70,7 +70,7 @@ def download_gems(required_gems) source = "#{RUBYGEMS_URI}/#{name}" destination = File.join(@target_path, name) - ui.info("Vendoring: #{name}, downloading: #{source}") + Paquet::ui.info("Vendoring: #{name}, downloading: #{source}") Paquet::Utils::download_file(source, destination) end end diff --git a/tools/paquet/lib/paquet/shell_ui.rb b/tools/paquet/lib/paquet/shell_ui.rb index b765fd1ad0a..f1f73027528 100644 --- a/tools/paquet/lib/paquet/shell_ui.rb +++ b/tools/paquet/lib/paquet/shell_ui.rb @@ -18,7 +18,7 @@ def debug? end end - def ui + def self.ui @logger ||= ShellUi.new end end diff --git a/tools/paquet/lib/paquet/version.rb b/tools/paquet/lib/paquet/version.rb index ce897a39151..454bc4d4680 100644 --- a/tools/paquet/lib/paquet/version.rb +++ b/tools/paquet/lib/paquet/version.rb @@ -1,3 +1,3 @@ module Paquet - VERSION = "0.1.0" + VERSION = "0.1.1" end diff --git a/tools/paquet/paquet.gemspec b/tools/paquet/paquet.gemspec index 2d35e687ba9..b784ab3802b 100644 --- a/tools/paquet/paquet.gemspec +++ b/tools/paquet/paquet.gemspec @@ -12,7 +12,7 @@ Gem::Specification.new do |spec| spec.summary = %q{Rake helpers to create a uber gem} spec.description = %q{This gem add a few rake tasks to create a uber gems that will be shipped as a zip} - spec.homepage = "https://github.com/elastic/paquet" + spec.homepage = "https://github.com/elastic/logstash" spec.files = Dir.glob(File.join(File.dirname(__FILE__), "lib", "**", "*.rb")) diff --git a/tools/paquet/spec/integration/paquet_spec.rb b/tools/paquet/spec/integration/paquet_spec.rb new file mode 100644 index 00000000000..70ca5347d08 --- /dev/null +++ b/tools/paquet/spec/integration/paquet_spec.rb @@ -0,0 +1,33 @@ +# encoding: utf-8 +require "bundler" +require "fileutils" +require "stud/temporary" + +describe "Pack the dependencies", :integration => true do + let(:path) { File.expand_path(File.join(File.dirname(__FILE__), "..", "support")) } + let(:vendor_path) { Stud::Temporary.pathname } + let(:dependecies_path) { File.join(path, "dependencies") } + let(:bundler_cmd) { "bundle install --path #{vendor_path}"} + let(:rake_cmd) { "bundler exec rake paquet:vendor" } + let(:bundler_config) { File.join(path, ".bundler") } + + before do + FileUtils.rm_rf(bundler_config) + FileUtils.rm_rf(vendor_path) + + Bundler.with_clean_env do + Dir.chdir(path) do + system(bundler_cmd) + system(rake_cmd) + end + end + end + + it "download the dependencies" do + downloaded_dependencies = Dir.glob(File.join(dependecies_path, "*.gem")) + + expect(downloaded_dependencies.size).to eq(2) + expect(downloaded_dependencies).to include(/flores/,/stud/) + expect(downloaded_dependencies).not_to include(/logstash-devutils/) + end +end diff --git a/tools/paquet/spec/paquet/gem_spec.rb b/tools/paquet/spec/paquet/gem_spec.rb new file mode 100644 index 00000000000..5226c68e8d0 --- /dev/null +++ b/tools/paquet/spec/paquet/gem_spec.rb @@ -0,0 +1,24 @@ +# encoding: utf-8 +require "paquet/gem" +require "stud/temporary" + +describe Paquet::Gem do + let(:target_path) { Stud::Temporary.pathname } + let(:dummy_gem) { "dummy-gem" } + + subject { described_class.new(target_path) } + + it "adds gem to pack" do + subject.add(dummy_gem) + expect(subject.gems).to include(dummy_gem) + end + + it "allows to ignore gems" do + subject.ignore(dummy_gem) + expect(subject.ignore?(dummy_gem)) + end + + it "keeps track of the number of gem to pack" do + expect { subject.add(dummy_gem) }.to change { subject.size }.by(1) + end +end diff --git a/tools/paquet/spec/support/Gemfile b/tools/paquet/spec/support/Gemfile new file mode 100644 index 00000000000..884cbedd8cc --- /dev/null +++ b/tools/paquet/spec/support/Gemfile @@ -0,0 +1,4 @@ +source "https://rubygems.org" +gemspec +gem "paquet", :path => "../../" + diff --git a/tools/paquet/spec/support/Gemfile.lock b/tools/paquet/spec/support/Gemfile.lock new file mode 100644 index 00000000000..0f74a815231 --- /dev/null +++ b/tools/paquet/spec/support/Gemfile.lock @@ -0,0 +1,37 @@ +PATH + remote: ../../ + specs: + paquet (0.1.0) + +PATH + remote: . + specs: + paquet-test (0.0.0) + flores (= 0.0.6) + logstash-devutils (= 0.0.6) + stud + +GEM + remote: https://rubygems.org/ + specs: + flores (0.0.6) + gem_publisher (1.5.0) + jar-dependencies (0.3.7) + logstash-devutils (0.0.6-java) + gem_publisher + jar-dependencies + minitar + rake + minitar (0.5.4) + rake (12.0.0) + stud (0.0.22) + +PLATFORMS + java + +DEPENDENCIES + paquet! + paquet-test! + +BUNDLED WITH + 1.13.6 diff --git a/tools/paquet/spec/support/Rakefile b/tools/paquet/spec/support/Rakefile new file mode 100644 index 00000000000..3b8d26ce65f --- /dev/null +++ b/tools/paquet/spec/support/Rakefile @@ -0,0 +1,11 @@ +# encoding: utf-8 +require "paquet" + +TARGET_DIRECTORY = File.join(File.dirname(__FILE__), "dependencies") + +Paquet::Task.new(TARGET_DIRECTORY) do + pack "stud" + pack "flores" + + ignore "logstash-devutils" +end diff --git a/tools/paquet/spec/support/paquet.gemspec b/tools/paquet/spec/support/paquet.gemspec new file mode 100644 index 00000000000..668d109a74a --- /dev/null +++ b/tools/paquet/spec/support/paquet.gemspec @@ -0,0 +1,17 @@ +# coding: utf-8 + +Gem::Specification.new do |spec| + spec.name = "paquet-test" + spec.version = "0.0.0" + spec.authors = ["Elastic"] + spec.email = ["info@elastic.co"] + spec.license = "Apache License (2.0)" + + spec.summary = %q{testing gem} + spec.description = %q{testing gem} + spec.homepage = "https://github.com/elastic/logstash" + + spec.add_runtime_dependency "stud" + spec.add_runtime_dependency "flores", "0.0.6" + spec.add_runtime_dependency "logstash-devutils", "0.0.6" +end From 81a5757fcb2d84a387fd6ffe8a4b8e47753f6dfe Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 7 Dec 2016 10:25:26 -0500 Subject: [PATCH 567/632] no gemfile lock needed Fixes #6271 --- tools/paquet/.gitignore | 1 + tools/paquet/spec/support/Gemfile.lock | 37 -------------------------- 2 files changed, 1 insertion(+), 37 deletions(-) delete mode 100644 tools/paquet/spec/support/Gemfile.lock diff --git a/tools/paquet/.gitignore b/tools/paquet/.gitignore index 4398f38a4bd..ebcca5e3bda 100644 --- a/tools/paquet/.gitignore +++ b/tools/paquet/.gitignore @@ -3,3 +3,4 @@ /Gemfile.lock /spec/support/dependencies /spec/support/.bundle +/spec/support/*.lock diff --git a/tools/paquet/spec/support/Gemfile.lock b/tools/paquet/spec/support/Gemfile.lock deleted file mode 100644 index 0f74a815231..00000000000 --- a/tools/paquet/spec/support/Gemfile.lock +++ /dev/null @@ -1,37 +0,0 @@ -PATH - remote: ../../ - specs: - paquet (0.1.0) - -PATH - remote: . - specs: - paquet-test (0.0.0) - flores (= 0.0.6) - logstash-devutils (= 0.0.6) - stud - -GEM - remote: https://rubygems.org/ - specs: - flores (0.0.6) - gem_publisher (1.5.0) - jar-dependencies (0.3.7) - logstash-devutils (0.0.6-java) - gem_publisher - jar-dependencies - minitar - rake - minitar (0.5.4) - rake (12.0.0) - stud (0.0.22) - -PLATFORMS - java - -DEPENDENCIES - paquet! - paquet-test! - -BUNDLED WITH - 1.13.6 From ef13f7675ce4a579b9a172e33ec6a77d5234252b Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 7 Dec 2016 10:27:10 -0500 Subject: [PATCH 568/632] assert a specific version of flores Fixes #6271 --- tools/paquet/spec/integration/paquet_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/paquet/spec/integration/paquet_spec.rb b/tools/paquet/spec/integration/paquet_spec.rb index 70ca5347d08..267f65efe4c 100644 --- a/tools/paquet/spec/integration/paquet_spec.rb +++ b/tools/paquet/spec/integration/paquet_spec.rb @@ -27,7 +27,7 @@ downloaded_dependencies = Dir.glob(File.join(dependecies_path, "*.gem")) expect(downloaded_dependencies.size).to eq(2) - expect(downloaded_dependencies).to include(/flores/,/stud/) + expect(downloaded_dependencies).to include(/flores-0\.0\.6/,/stud/) expect(downloaded_dependencies).not_to include(/logstash-devutils/) end end From fa18df3ec655e3ac6ba03b0c07ec2ee138ba48f4 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 16 Dec 2016 10:01:01 -0500 Subject: [PATCH 569/632] rename cgroup usage to usage_nanos to align with ES' api Fixes #6428 --- logstash-core/lib/logstash/instrument/periodic_poller/cgroup.rb | 2 +- .../spec/logstash/instrument/periodic_poller/cgroup_spec.rb | 2 +- .../spec/logstash/instrument/periodic_poller/os_spec.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/logstash-core/lib/logstash/instrument/periodic_poller/cgroup.rb b/logstash-core/lib/logstash/instrument/periodic_poller/cgroup.rb index 40f98f1d65a..1398ea3eb61 100644 --- a/logstash-core/lib/logstash/instrument/periodic_poller/cgroup.rb +++ b/logstash-core/lib/logstash/instrument/periodic_poller/cgroup.rb @@ -108,7 +108,7 @@ def get_all cpuacct_group = groups[GROUP_CPUACCT] cgroups_stats[:cpuacct][:control_group] = cpuacct_group - cgroups_stats[:cpuacct][:usage] = cgroup_cpuacct_usage_nanos(cpuacct_group) + cgroups_stats[:cpuacct][:usage_nanos] = cgroup_cpuacct_usage_nanos(cpuacct_group) cpu_group = groups[GROUP_CPU] cgroups_stats[:cpu][:control_group] = cpu_group diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/cgroup_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/cgroup_spec.rb index f723f82eb22..2fddb927fab 100644 --- a/logstash-core/spec/logstash/instrument/periodic_poller/cgroup_spec.rb +++ b/logstash-core/spec/logstash/instrument/periodic_poller/cgroup_spec.rb @@ -119,7 +119,7 @@ expect(subject.get_all).to match( :cpuacct => { :control_group => cpuacct_control_group, - :usage => cpuacct_usage, + :usage_nanos => cpuacct_usage, }, :cpu => { :control_group => cpu_control_group, diff --git a/logstash-core/spec/logstash/instrument/periodic_poller/os_spec.rb b/logstash-core/spec/logstash/instrument/periodic_poller/os_spec.rb index 2fed6913b18..1d5027c03c0 100644 --- a/logstash-core/spec/logstash/instrument/periodic_poller/os_spec.rb +++ b/logstash-core/spec/logstash/instrument/periodic_poller/os_spec.rb @@ -69,7 +69,7 @@ def mval(*metric_path) end [ - [:cgroup, :cpuacct, :usage], + [:cgroup, :cpuacct, :usage_nanos], [:cgroup, :cpu, :cfs_period_micros], [:cgroup, :cpu, :cfs_quota_micros], [:cgroup, :cpu, :stat, :number_of_periods], From 2d000ca1468b3a17dea8c099f0b19ed38ec7ba01 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 14 Dec 2016 10:23:07 -0500 Subject: [PATCH 570/632] Turn off any jar-dependencies lookup when running install command with --local Fixes: #6386 Fixes #6410 --- lib/pluginmanager/install.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/pluginmanager/install.rb b/lib/pluginmanager/install.rb index e7ba94158ce..514ca502bf9 100644 --- a/lib/pluginmanager/install.rb +++ b/lib/pluginmanager/install.rb @@ -20,6 +20,9 @@ class LogStash::PluginManager::Install < LogStash::PluginManager::Command # but the argument parsing does not support it for now so currently if specifying --version only # one plugin name can be also specified. def execute + # Turn off any jar dependencies lookup when running with `--local` + ENV["JARS_SKIP"] = "true" if local? + # This is a special flow for PACK related plugins, # if we dont detect an pack we will just use the normal `Bundle install` Strategy` # this could be refactored into his own strategy From f227610418914c6d3eca2aef30a6db94bd16d1ab Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 14 Dec 2016 10:30:14 -0500 Subject: [PATCH 571/632] Make it work with update too Fixes #6410 --- lib/pluginmanager/update.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/pluginmanager/update.rb b/lib/pluginmanager/update.rb index e5de20cd494..2007c8ad7bd 100644 --- a/lib/pluginmanager/update.rb +++ b/lib/pluginmanager/update.rb @@ -14,6 +14,9 @@ class LogStash::PluginManager::Update < LogStash::PluginManager::Command option "--local", :flag, "force local-only plugin update. see bin/logstash-plugin package|unpack", :default => false def execute + # Turn off any jar dependencies lookup when running with `--local` + ENV["JARS_SKIP"] = "true" if local? + # remove "system" local gems used by LS local_gems = gemfile.locally_installed_gems.map(&:name) - NON_PLUGIN_LOCAL_GEMS From 7051e86dcfa362874b854b73bfd7bfb9457b76dd Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 7 Dec 2016 10:41:14 +0000 Subject: [PATCH 572/632] add webserver metric Fixes #6385 --- logstash-core/lib/logstash/webserver.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/logstash-core/lib/logstash/webserver.rb b/logstash-core/lib/logstash/webserver.rb index b7b99b602a0..0531cb84395 100644 --- a/logstash-core/lib/logstash/webserver.rb +++ b/logstash-core/lib/logstash/webserver.rb @@ -87,9 +87,17 @@ def start_webserver(port) @server = ::Puma::Server.new(app, events) @server.add_tcp_listener(http_host, port) - logger.info("Successfully started Logstash API endpoint", :port => @port) + logger.info("Successfully started Logstash API endpoint", :port => port) + + set_http_address_metric("#{http_host}:#{port}") @server.run.join end + + private + def set_http_address_metric(value) + return unless @agent.metric + @agent.metric.gauge([], :http_address, value) + end end end From 128c660e0c670a4be4b95dfa1de4eda2ff2b572d Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Wed, 14 Dec 2016 14:14:58 +0000 Subject: [PATCH 573/632] add tests for webserver metric Fixes #6385 --- logstash-core/lib/logstash/api/commands/default_metadata.rb | 4 +++- logstash-core/spec/api/spec_helper.rb | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/api/commands/default_metadata.rb b/logstash-core/lib/logstash/api/commands/default_metadata.rb index 119c0c66727..4436adf1350 100644 --- a/logstash-core/lib/logstash/api/commands/default_metadata.rb +++ b/logstash-core/lib/logstash/api/commands/default_metadata.rb @@ -20,7 +20,9 @@ def version end def http_address - service.agent.webserver.address + @http_address ||= service.get_shallow(:http_address).value + rescue ::LogStash::Instrument::MetricStore::MetricNotFound, NoMethodError => e + nil end end end diff --git a/logstash-core/spec/api/spec_helper.rb b/logstash-core/spec/api/spec_helper.rb index 31ec6f27113..bcb37ecfc7a 100644 --- a/logstash-core/spec/api/spec_helper.rb +++ b/logstash-core/spec/api/spec_helper.rb @@ -20,7 +20,9 @@ def read_fixture(name) module LogStash class DummyAgent < Agent def start_webserver - @webserver = Struct.new(:address).new("#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORTS.first}") + http_address = "#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORTS.first}" + @webserver = Struct.new(:address).new(http_address) + self.metric.gauge([], :http_address, http_address) end def stop_webserver; end end From 8e44786a7a14e10d166a2fac9c0a301867bff819 Mon Sep 17 00:00:00 2001 From: Glen Smith Date: Tue, 20 Dec 2016 16:52:35 +0100 Subject: [PATCH 574/632] Correct default pipeline.workers Correct default pipeline.workers is number of CPU cores, not 8 Fixes #6446 --- docs/static/command-line-flags.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/command-line-flags.asciidoc b/docs/static/command-line-flags.asciidoc index 97c793a26c6..4a896bbdfdf 100644 --- a/docs/static/command-line-flags.asciidoc +++ b/docs/static/command-line-flags.asciidoc @@ -46,7 +46,7 @@ With this command, Logstash concatenates three config files, `/tmp/one`, `/tmp/t Sets the number of pipeline workers to run. This option sets the number of workers that will, in parallel, execute the filter and output stages of the pipeline. If you find that events are backing up, or that the CPU is not saturated, consider increasing this number to better utilize - machine processing power. The default is 8. + machine processing power. The default is the number of the host's CPU cores. *`-b, --pipeline.batch.size SIZE`*:: Size of batches the pipeline is to work in. This option defines the maximum number of events an From 08cebd5c160aaa817e4ba5e4a395d631c0f38fa7 Mon Sep 17 00:00:00 2001 From: Joao Duarte Date: Tue, 20 Dec 2016 15:12:38 +0000 Subject: [PATCH 575/632] ensure metric collection is disabled when metric.collect is false Fixes #6445 --- logstash-core/lib/logstash/pipeline.rb | 6 +- .../spec/logstash/pipeline_reporter_spec.rb | 28 +--- logstash-core/spec/logstash/pipeline_spec.rb | 139 +++++++++++++----- logstash-core/spec/support/mocks_classes.rb | 4 +- 4 files changed, 108 insertions(+), 69 deletions(-) diff --git a/logstash-core/lib/logstash/pipeline.rb b/logstash-core/lib/logstash/pipeline.rb index 0ac54d51675..24e28b0d4da 100644 --- a/logstash-core/lib/logstash/pipeline.rb +++ b/logstash-core/lib/logstash/pipeline.rb @@ -70,7 +70,11 @@ def initialize(config_str, settings = SETTINGS, namespaced_metric = nil) # This needs to be configured before we evaluate the code to make # sure the metric instance is correctly send to the plugins to make the namespace scoping work - @metric = namespaced_metric.nil? ? Instrument::NullMetric.new : namespaced_metric + @metric = if namespaced_metric + settings.get("metric.collect") ? namespaced_metric : Instrument::NullMetric.new(namespaced_metric.collector) + else + Instrument::NullMetric.new + end grammar = LogStashConfigParser.new @config = grammar.parse(config_str) diff --git a/logstash-core/spec/logstash/pipeline_reporter_spec.rb b/logstash-core/spec/logstash/pipeline_reporter_spec.rb index 40e821d6941..68b48181996 100644 --- a/logstash-core/spec/logstash/pipeline_reporter_spec.rb +++ b/logstash-core/spec/logstash/pipeline_reporter_spec.rb @@ -2,31 +2,7 @@ require "spec_helper" require "logstash/pipeline" require "logstash/pipeline_reporter" - -class DummyOutput < LogStash::Outputs::Base - - config_name "dummyoutput" - milestone 2 - - attr_reader :num_closes, :events - - def initialize(params={}) - super - @num_closes = 0 - @events = [] - end - - def register - end - - def receive(event) - @events << event - end - - def close - @num_closes += 1 - end -end +require_relative "../support/mocks_classes" #TODO: Figure out how to add more tests that actually cover inflight events #This will require some janky multithreading stuff @@ -39,7 +15,7 @@ def close let(:reporter) { pipeline.reporter } before do - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(::LogStash::Outputs::DummyOutput) allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_call_original allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_call_original diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 919dffaa52d..89d7aca1237 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -49,7 +49,7 @@ def close end end -class DummyOutputMore < DummyOutput +class DummyOutputMore < ::LogStash::Outputs::DummyOutput config_name "dummyoutputmore" end @@ -158,7 +158,7 @@ class TestPipeline < LogStash::Pipeline before(:each) do allow(LogStash::Plugin).to receive(:lookup).with("input", "dummyinput").and_return(DummyInput) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(::LogStash::Outputs::DummyOutput) allow(LogStash::Plugin).to receive(:lookup).with("filter", "dummyfilter").and_return(DummyFilter) allow(LogStash::Plugin).to receive(:lookup).with("filter", "dummysafefilter").and_return(DummySafeFilter) end @@ -258,7 +258,7 @@ class TestPipeline < LogStash::Pipeline before(:each) do allow(LogStash::Plugin).to receive(:lookup).with("input", "dummyinput").and_return(DummyInput) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(::LogStash::Outputs::DummyOutput) end @@ -313,7 +313,7 @@ class TestPipeline < LogStash::Pipeline before(:each) do allow(LogStash::Plugin).to receive(:lookup).with("input", "dummyinput").and_return(DummyInput) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(::LogStash::Outputs::DummyOutput) end let(:config) { "input { dummyinput {} } output { dummyoutput {} }"} @@ -378,12 +378,12 @@ class TestPipeline < LogStash::Pipeline let(:pipeline_settings) { { "pipeline.batch.size" => batch_size, "pipeline.workers" => 1 } } let(:pipeline) { LogStash::Pipeline.new(config, pipeline_settings_obj) } let(:logger) { pipeline.logger } - let(:warning_prefix) { /CAUTION: Recommended inflight events max exceeded!/ } + let(:warning_prefix) { Regexp.new("CAUTION: Recommended inflight events max exceeded!") } before(:each) do allow(LogStash::Plugin).to receive(:lookup).with("input", "dummyinput").and_return(DummyInput) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(::LogStash::Outputs::DummyOutput) allow(logger).to receive(:warn) thread = Thread.new { pipeline.run } pipeline.shutdown @@ -435,28 +435,87 @@ class TestPipeline < LogStash::Pipeline end context "metrics" do - config <<-CONFIG - input { } - filter { } - output { } - CONFIG - - it "uses a `NullMetric` object if `metric.collect` is set to false" do - settings = double("LogStash::SETTINGS") - - allow(settings).to receive(:get_value).with("pipeline.id").and_return("main") - allow(settings).to receive(:get_value).with("metric.collect").and_return(false) - allow(settings).to receive(:get_value).with("config.debug").and_return(false) - allow(settings).to receive(:get).with("queue.type").and_return("memory") - allow(settings).to receive(:get).with("queue.page_capacity").and_return(1024 * 1024) - allow(settings).to receive(:get).with("queue.max_events").and_return(250) - allow(settings).to receive(:get).with("queue.max_bytes").and_return(1024 * 1024 * 1024) - allow(settings).to receive(:get).with("queue.checkpoint.acks").and_return(1024) - allow(settings).to receive(:get).with("queue.checkpoint.writes").and_return(1024) - allow(settings).to receive(:get).with("queue.checkpoint.interval").and_return(1000) - - pipeline = LogStash::Pipeline.new(config, settings) - expect(pipeline.metric).to be_kind_of(LogStash::Instrument::NullMetric) + config = "input { } filter { } output { }" + + let(:settings) { LogStash::SETTINGS.clone } + subject { LogStash::Pipeline.new(config, settings, metric) } + + context "when metric.collect is disabled" do + before :each do + settings.set("metric.collect", false) + end + + context "if namespaced_metric is nil" do + let(:metric) { nil } + it "uses a `NullMetric` object" do + expect(subject.metric).to be_a(LogStash::Instrument::NullMetric) + end + end + + context "if namespaced_metric is a Metric object" do + let(:collector) { ::LogStash::Instrument::Collector.new } + let(:metric) { ::LogStash::Instrument::Metric.new(collector) } + + it "uses a `NullMetric` object" do + expect(subject.metric).to be_a(LogStash::Instrument::NullMetric) + end + + it "uses the same collector" do + expect(subject.metric.collector).to be(collector) + end + end + + context "if namespaced_metric is a NullMetric object" do + let(:collector) { ::LogStash::Instrument::Collector.new } + let(:metric) { ::LogStash::Instrument::NullMetric.new(collector) } + + it "uses a `NullMetric` object" do + expect(subject.metric).to be_a(::LogStash::Instrument::NullMetric) + end + + it "uses the same collector" do + expect(subject.metric.collector).to be(collector) + end + end + end + + context "when metric.collect is enabled" do + before :each do + settings.set("metric.collect", true) + end + + context "if namespaced_metric is nil" do + let(:metric) { nil } + it "uses a `NullMetric` object" do + expect(subject.metric).to be_a(LogStash::Instrument::NullMetric) + end + end + + context "if namespaced_metric is a Metric object" do + let(:collector) { ::LogStash::Instrument::Collector.new } + let(:metric) { ::LogStash::Instrument::Metric.new(collector) } + + it "uses a `Metric` object" do + expect(subject.metric).to be_a(LogStash::Instrument::Metric) + end + + it "uses the same collector" do + expect(subject.metric.collector).to be(collector) + end + end + + context "if namespaced_metric is a NullMetric object" do + let(:collector) { ::LogStash::Instrument::Collector.new } + let(:metric) { ::LogStash::Instrument::NullMetric.new(collector) } + + it "uses a `NullMetric` object" do + expect(subject.metric).to be_a(LogStash::Instrument::NullMetric) + end + + it "uses the same collector" do + expect(subject.metric.collector).to be(collector) + end + end end end @@ -465,7 +524,7 @@ class TestPipeline < LogStash::Pipeline allow(LogStash::Plugin).to receive(:lookup).with("input", "dummyinputgenerator").and_return(DummyInputGenerator) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec) allow(LogStash::Plugin).to receive(:lookup).with("filter", "dummyfilter").and_return(DummyFilter) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(::LogStash::Outputs::DummyOutput) allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutputmore").and_return(DummyOutputMore) end @@ -501,14 +560,14 @@ class TestPipeline < LogStash::Pipeline } EOS end - let(:output) { DummyOutput.new } + let(:output) { ::LogStash::Outputs::DummyOutput.new } before do - allow(DummyOutput).to receive(:new).with(any_args).and_return(output) + allow(::LogStash::Outputs::DummyOutput).to receive(:new).with(any_args).and_return(output) allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(LogStash::Codecs::Plain) allow(LogStash::Plugin).to receive(:lookup).with("filter", "multiline").and_return(LogStash::Filters::Multiline) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(::LogStash::Outputs::DummyOutput) end it "flushes the buffered contents of the filter" do @@ -531,7 +590,7 @@ class TestPipeline < LogStash::Pipeline allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec) allow(LogStash::Plugin).to receive(:lookup).with("filter", "dummyfilter").and_return(DummyFilter) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(::LogStash::Outputs::DummyOutput) end let(:pipeline1) { LogStash::Pipeline.new("input { generator {} } filter { dummyfilter {} } output { dummyoutput {}}") } @@ -643,22 +702,22 @@ class TestPipeline < LogStash::Pipeline } EOS end - let(:dummyoutput) { DummyOutput.new({ "id" => dummy_output_id }) } + let(:dummyoutput) { ::LogStash::Outputs::DummyOutput.new({ "id" => dummy_output_id }) } let(:metric_store) { subject.metric.collector.snapshot_metric.metric_store } before :each do - allow(DummyOutput).to receive(:new).with(any_args).and_return(dummyoutput) + allow(::LogStash::Outputs::DummyOutput).to receive(:new).with(any_args).and_return(dummyoutput) allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(LogStash::Codecs::Plain) allow(LogStash::Plugin).to receive(:lookup).with("filter", "multiline").and_return(LogStash::Filters::Multiline) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(::LogStash::Outputs::DummyOutput) Thread.new { subject.run } # make sure we have received all the generated events wait(3).for do # give us a bit of time to flush the events - dummyoutput.events.size < number_of_events - end.to be_falsey + dummyoutput.events.size >= number_of_events + end.to be_truthy end after :each do @@ -702,7 +761,7 @@ class TestPipeline < LogStash::Pipeline it "populates the name of the output plugin" do plugin_name = dummy_output_id.to_sym - expect(collected_metric[:stats][:pipelines][:main][:plugins][:outputs][plugin_name][:name].value).to eq(DummyOutput.config_name) + expect(collected_metric[:stats][:pipelines][:main][:plugins][:outputs][plugin_name][:name].value).to eq(::LogStash::Outputs::DummyOutput.config_name) end it "populates the name of the filter plugin" do @@ -719,7 +778,7 @@ class TestPipeline < LogStash::Pipeline allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator) allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec) allow(LogStash::Plugin).to receive(:lookup).with("filter", "dummyfilter").and_return(DummyFilter) - allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput) + allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(::LogStash::Outputs::DummyOutput) end let(:pipeline1) { LogStash::Pipeline.new("input { generator {} } filter { dummyfilter {} } output { dummyoutput {}}") } diff --git a/logstash-core/spec/support/mocks_classes.rb b/logstash-core/spec/support/mocks_classes.rb index 5ae99a68f0b..6aa4c70c7ad 100644 --- a/logstash-core/spec/support/mocks_classes.rb +++ b/logstash-core/spec/support/mocks_classes.rb @@ -12,7 +12,7 @@ class DummyOutput < LogStash::Outputs::Base def initialize(params={}) super @num_closes = 0 - @events = Queue.new + @events = [] end def register @@ -23,7 +23,7 @@ def receive(event) end def close - @num_closes = 1 + @num_closes += 1 end end From 13599ca64aa7024ff392d1c9ede10d53c8517b15 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 20 Dec 2016 14:44:39 -0500 Subject: [PATCH 576/632] Initialize with default values global events and pipeline events related metric The metric store has no concept is a metric need to exist so as a rule of thumb we need to defined them with 0 values and send them to the store when we initialize something. This PR make sure the batch object is recording the right default values Fixes: #6449 Fixes #6450 --- .../lib/logstash/util/wrapped_acked_queue.rb | 9 ++++++++ .../util/wrapped_synchronous_queue.rb | 9 ++++++++ .../util/wrapped_synchronous_queue_spec.rb | 23 +++++++++++++++---- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb index e9c9e817d90..e59d5c8e1c8 100644 --- a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb @@ -132,10 +132,19 @@ def set_batch_dimensions(batch_size, wait_for) def set_events_metric(metric) @event_metric = metric + define_initial_metrics_values(@event_metric) end def set_pipeline_metric(metric) @pipeline_metric = metric + define_initial_metrics_values(@pipeline_metric) + end + + def define_initial_metrics_values(namespaced_metric) + namespaced_metric.gauge(:duration_in_millis, 0) + namespaced_metric.increment(:filtered, 0) + namespaced_metric.increment(:in, 0) + namespaced_metric.increment(:out, 0) end def inflight_batches diff --git a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb index 98503d960f1..af32b9207d0 100644 --- a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb @@ -79,10 +79,19 @@ def set_batch_dimensions(batch_size, wait_for) def set_events_metric(metric) @event_metric = metric + define_initial_metrics_values(@event_metric) end def set_pipeline_metric(metric) @pipeline_metric = metric + define_initial_metrics_values(@pipeline_metric) + end + + def define_initial_metrics_values(namespaced_metric) + namespaced_metric.gauge(:duration_in_millis, 0) + namespaced_metric.increment(:filtered, 0) + namespaced_metric.increment(:in, 0) + namespaced_metric.increment(:out, 0) end def inflight_batches diff --git a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb index d7b403ed0b0..8571fc673ee 100644 --- a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb +++ b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb @@ -63,7 +63,15 @@ def poll(*) shift(); end batch = read_client.take_batch read_client.close_batch(batch) store = collector.snapshot_metric.metric_store - expect(store.size).to eq(0) + + expect(store.get_shallow(:events, :in).value).to eq(0) + expect(store.get_shallow(:events, :out).value).to eq(0) + expect(store.get_shallow(:events, :filtered).value).to eq(0) + expect(store.get_shallow(:events, :duration_in_millis).value).to eq(0) + expect(store.get_shallow(:pipeline, :in).value).to eq(0) + expect(store.get_shallow(:pipeline, :duration_in_millis).value).to eq(0) + expect(store.get_shallow(:pipeline, :out).value).to eq(0) + expect(store.get_shallow(:pipeline, :filtered).value).to eq(0) end end @@ -73,15 +81,22 @@ def poll(*) shift(); end 5.times {|i| batch.push("value-#{i}")} write_client.push_batch(batch) read_batch = read_client.take_batch - sleep(0.1) # simulate some work? - read_client.close_batch(batch) + sleep(0.1) # simulate some work for the `duration_in_millis` + # TODO: this interaction should be cleaned in an upcoming PR, + # This is what the current pipeline does. + read_client.add_filtered_metrics(read_batch) + read_client.add_output_metrics(read_batch) + read_client.close_batch(read_batch) store = collector.snapshot_metric.metric_store - expect(store.size).to eq(4) expect(store.get_shallow(:events, :in).value).to eq(5) + expect(store.get_shallow(:events, :out).value).to eq(5) + expect(store.get_shallow(:events, :filtered).value).to eq(5) expect(store.get_shallow(:events, :duration_in_millis).value).to be > 0 expect(store.get_shallow(:pipeline, :in).value).to eq(5) expect(store.get_shallow(:pipeline, :duration_in_millis).value).to be > 0 + expect(store.get_shallow(:pipeline, :out).value).to eq(5) + expect(store.get_shallow(:pipeline, :filtered).value).to eq(5) end end end From 0fe94e779d69b4f5c5760e2f9a8da24a28d8011d Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 20 Dec 2016 13:25:25 -0500 Subject: [PATCH 577/632] Do not log a warning if a plugin is not from in `#print_notice_version` When a plugin is loaded using the `plugins.path` option or is from a universal plugin there no gemspec can be found for the specific plugin. We should not print any warning on that case. Fixes: #6444 Fixes #6448 --- logstash-core/lib/logstash/config/mixin.rb | 13 +++++-------- logstash-core/locales/en.yml | 3 --- logstash-core/spec/logstash/plugin_spec.rb | 8 ++------ 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/logstash-core/lib/logstash/config/mixin.rb b/logstash-core/lib/logstash/config/mixin.rb index 09cbd7a019f..bc024e515c7 100644 --- a/logstash-core/lib/logstash/config/mixin.rb +++ b/logstash-core/lib/logstash/config/mixin.rb @@ -268,6 +268,7 @@ def validate(params) return is_valid end # def validate + # TODO: Remove in 6.0 def print_version_notice return if @@version_notice_given @@ -288,14 +289,10 @@ def print_version_notice end end rescue LogStash::PluginNoVersionError - # If we cannot find a version in the currently installed gems we - # will display this message. This could happen in the test, if you - # create an anonymous class to test a plugin. - self.logger.warn(I18n.t("logstash.plugin.no_version", - :type => @plugin_type, - :name => @config_name, - :LOGSTASH_VERSION => LOGSTASH_VERSION)) - ensure + # This can happen because of one of the following: + # - The plugin is loaded from the plugins.path and contains no gemspec. + # - The plugin is defined in a universal plugin, so the loaded plugin doesn't correspond to an actual gemspec. + ensure @@version_notice_given = true end end diff --git a/logstash-core/locales/en.yml b/logstash-core/locales/en.yml index d1c31e51006..cda5bdf5f8e 100644 --- a/logstash-core/locales/en.yml +++ b/logstash-core/locales/en.yml @@ -44,9 +44,6 @@ en: %{plugin} plugin is using the 'milestone' method to declare the version of the plugin this method is deprecated in favor of declaring the version inside the gemspec. - no_version: >- - %{name} plugin doesn't have a version. This plugin isn't well - supported by the community and likely has no maintainer. version: 0-9-x: Using version 0.9.x %{type} plugin '%{name}'. This plugin should work but diff --git a/logstash-core/spec/logstash/plugin_spec.rb b/logstash-core/spec/logstash/plugin_spec.rb index 2313ca27d95..0e6444f5fc1 100644 --- a/logstash-core/spec/logstash/plugin_spec.rb +++ b/logstash-core/spec/logstash/plugin_spec.rb @@ -106,12 +106,8 @@ class LogStash::Filters::MyTestFilter < LogStash::Filters::Base one_notice.validate({}) end - it "warns the user if we can't find a defined version" do - expect_any_instance_of(LogStash::Logging::Logger).to receive(:warn) - .once - .with(/plugin doesn't have a version/) - - subject.validate({}) + it "doesn't raise an exception if no version is found" do + expect { subject.validate({}) }.not_to raise_error end From bec118ca5703dd7c974f622ddff3d5705676a3d2 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Wed, 21 Dec 2016 16:37:56 -0800 Subject: [PATCH 578/632] Remove multiline plugin docs Fixes #6457 --- docs/static/managing-multiline-events.asciidoc | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/docs/static/managing-multiline-events.asciidoc b/docs/static/managing-multiline-events.asciidoc index e9ee8bc12fa..83507c85e6d 100644 --- a/docs/static/managing-multiline-events.asciidoc +++ b/docs/static/managing-multiline-events.asciidoc @@ -10,7 +10,7 @@ pipeline is the {logstash}plugins-codecs-multiline.html[multiline codec], which a simple set of rules. -The most important aspects of configuring either multiline plugin are the following: +The most important aspects of configuring the multiline codec are the following: * The `pattern` option specifies a regular expression. Lines that match the specified regular expression are considered either continuations of a previous line or the start of a new multiline event. You can use @@ -20,16 +20,10 @@ value in the `pattern` option are part of the previous line. The `next` value sp in the `pattern` option are part of the following line.* The `negate` option applies the multiline codec to lines that _do not_ match the regular expression specified in the `pattern` option. -See the full documentation for the {logstash}plugins-codecs-multiline.html[multiline codec] or the -{logstash}plugins-filters-multiline.html[multiline filter] plugin for more information on configuration options. +See the full documentation for the {logstash}plugins-codecs-multiline.html[multiline codec] plugin for more information +on configuration options. -NOTE: For more complex needs, the {logstash}plugins-filters-multiline.html[multiline filter] performs a similar task at -the filter stage of processing, where the Logstash instance aggregates multiple inputs. -The multiline filter plugin is not thread-safe. Avoid using multiple filter workers with the multiline filter. You can -track the progress of upgrades to the functionality of the multiline codec at -https://github.com/logstash-plugins/logstash-codec-multiline/issues/10[this Github issue]. - -==== Examples of Multiline Plugin Configuration +==== Examples of Multiline Codec Configuration The examples in this section cover the following use cases: From a98983aa10e047d575d77ad2c41c9173365951b0 Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Fri, 16 Dec 2016 13:54:13 -0500 Subject: [PATCH 579/632] add explit fsync on checkpoint write Fixes #6430 --- .../java/org/logstash/common/io/FileCheckpointIO.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java b/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java index 6d79aad2be4..b20753e558b 100644 --- a/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java +++ b/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java @@ -5,8 +5,13 @@ import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; +import java.nio.file.OpenOption; import java.nio.file.Path; import java.nio.file.Paths; +import static java.nio.file.StandardOpenOption.CREATE; +import static java.nio.file.StandardOpenOption.WRITE; +import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING; +import static java.nio.file.StandardOpenOption.DSYNC; public class FileCheckpointIO implements CheckpointIO { // Checkpoint file structure @@ -50,10 +55,11 @@ public Checkpoint write(String fileName, int pageNum, int firstUnackedPageNum, l @Override public void write(String fileName, Checkpoint checkpoint) throws IOException { + OpenOption[] options = new OpenOption[] { WRITE, CREATE, TRUNCATE_EXISTING, DSYNC }; Path path = Paths.get(dirPath, fileName); final byte[] buffer = new byte[BUFFER_SIZE]; write(checkpoint, buffer); - Files.write(path, buffer); + Files.write(path, buffer, options); } @Override From e433abdbc14a721318a53e99a5056cc488b551ab Mon Sep 17 00:00:00 2001 From: Colin Surprenant Date: Fri, 16 Dec 2016 14:20:40 -0500 Subject: [PATCH 580/632] move options as constant Fixes #6430 --- .../main/java/org/logstash/common/io/FileCheckpointIO.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java b/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java index b20753e558b..5388003fc41 100644 --- a/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java +++ b/logstash-core/src/main/java/org/logstash/common/io/FileCheckpointIO.java @@ -34,6 +34,7 @@ public class FileCheckpointIO implements CheckpointIO { private final String dirPath; private final String HEAD_CHECKPOINT = "checkpoint.head"; private final String TAIL_CHECKPOINT = "checkpoint."; + private final OpenOption[] WRITE_OPTIONS = new OpenOption[] { WRITE, CREATE, TRUNCATE_EXISTING, DSYNC }; public FileCheckpointIO(String dirPath) { this.dirPath = dirPath; @@ -55,11 +56,10 @@ public Checkpoint write(String fileName, int pageNum, int firstUnackedPageNum, l @Override public void write(String fileName, Checkpoint checkpoint) throws IOException { - OpenOption[] options = new OpenOption[] { WRITE, CREATE, TRUNCATE_EXISTING, DSYNC }; Path path = Paths.get(dirPath, fileName); final byte[] buffer = new byte[BUFFER_SIZE]; write(checkpoint, buffer); - Files.write(path, buffer, options); + Files.write(path, buffer, WRITE_OPTIONS); } @Override From 52b6f963e15e93d5c4703664d4c566110a5b8444 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 21 Dec 2016 10:46:54 -0500 Subject: [PATCH 581/632] Code cleanup for the collector observer We have more the responsability of watching the collector inside the input itself, this feature might come back when we have a new execution model that can be improved in watching metrics. But this would require more granular watchers. No tests were affected by this changes since the code that required that features was already removed. Fixes: #6447 Fixes #6456 --- logstash-core/lib/logstash/agent.rb | 1 - .../lib/logstash/instrument/collector.rb | 47 +------------------ 2 files changed, 1 insertion(+), 47 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 8e73fd461d7..16ba2e583f7 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -130,7 +130,6 @@ def uptime end def stop_collecting_metrics - @collector.stop @periodic_pollers.stop end diff --git a/logstash-core/lib/logstash/instrument/collector.rb b/logstash-core/lib/logstash/instrument/collector.rb index c6946781fb5..25ee3b7e746 100644 --- a/logstash-core/lib/logstash/instrument/collector.rb +++ b/logstash-core/lib/logstash/instrument/collector.rb @@ -11,12 +11,8 @@ module LogStash module Instrument # The Collector is the single point of reference for all # the metrics collection inside logstash, the metrics library will make # direct calls to this class. - # - # This class is an observable responsable of periodically emitting view of the system - # to other components like the internal metrics pipelines. class Collector include LogStash::Util::Loggable - include Observable SNAPSHOT_ROTATION_TIME_SECS = 1 # seconds SNAPSHOT_ROTATION_TIMEOUT_INTERVAL_SECS = 10 * 60 # seconds @@ -26,7 +22,6 @@ class Collector def initialize @metric_store = MetricStore.new @agent = nil - start_periodic_snapshotting end # The metric library will call this unique interface @@ -43,8 +38,6 @@ def push(namespaces_path, key, type, *metric_type_params) end metric.execute(*metric_type_params) - - changed # we had changes coming in so we can notify the observers rescue MetricStore::NamespacesExpectedError => e logger.error("Collector: Cannot record metric", :exception => e) rescue NameError => e @@ -58,51 +51,13 @@ def push(namespaces_path, key, type, *metric_type_params) end end - # Monitor the `Concurrent::TimerTask` this update is triggered on every successful or not - # run of the task, TimerTask implement Observable and the collector acts as - # the observer and will keep track if something went wrong in the execution. - # - # @param [Time] Time of execution - # @param [result] Result of the execution - # @param [Exception] Exception - def update(time_of_execution, result, exception) - return true if exception.nil? - logger.error("Collector: Something went wrong went sending data to the observers", - :execution_time => time_of_execution, - :result => result, - :exception => exception.class.name) - end - # Snapshot the current Metric Store and return it immediately, # This is useful if you want to get access to the current metric store without # waiting for a periodic call. # # @return [LogStash::Instrument::MetricStore] def snapshot_metric - Snapshot.new(@metric_store) - end - - # Configure and start the periodic task for snapshotting the `MetricStore` - def start_periodic_snapshotting - @snapshot_task = Concurrent::TimerTask.new { publish_snapshot } - @snapshot_task.execution_interval = SNAPSHOT_ROTATION_TIME_SECS - @snapshot_task.timeout_interval = SNAPSHOT_ROTATION_TIMEOUT_INTERVAL_SECS - @snapshot_task.add_observer(self) - @snapshot_task.execute - end - - def stop - @snapshot_task.shutdown - end - - # Create a snapshot of the MetricStore and send it to to the registered observers - # The observer will receive the following signature in the update methode. - # - # `#update(created_at, metric_store)` - def publish_snapshot - created_at = Time.now - logger.debug("Collector: Sending snapshot to observers", :created_at => created_at) if logger.debug? - notify_observers(snapshot_metric) + Snapshot.new(@metric_store.dup) end def clear(keypath) From 7b4373789f2692bf7604e310d130db553900a1be Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 21 Dec 2016 15:51:48 -0500 Subject: [PATCH 582/632] Add a test to make sure the Collector#snapshot_metric returns a cloned metric store. Fixes #6456 --- logstash-core/spec/logstash/instrument/collector_spec.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/logstash-core/spec/logstash/instrument/collector_spec.rb b/logstash-core/spec/logstash/instrument/collector_spec.rb index 2a9979d0caa..b5c9b3073de 100644 --- a/logstash-core/spec/logstash/instrument/collector_spec.rb +++ b/logstash-core/spec/logstash/instrument/collector_spec.rb @@ -45,5 +45,9 @@ it "return a `LogStash::Instrument::MetricStore`" do expect(subject.snapshot_metric).to be_kind_of(LogStash::Instrument::Snapshot) end + + it "returns a clone of the metric store" do + expect(subject.snapshot_metric).not_to eq(subject.snapshot_metric) + end end end From 55731eb9360ba1e209d3c456d4b72523ae6ddc53 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 29 Dec 2016 11:01:08 -0500 Subject: [PATCH 583/632] Initialize the metric values in the batch to the correct type When we were initilizing the `duration_in_millis` in the the batch we were using a `Gauge` instead of a counter, since all the object have the same signature when the were actually recording the time the value was replaced instead of incremented. Fixes #6465 --- .../lib/logstash/util/wrapped_acked_queue.rb | 2 +- .../logstash/util/wrapped_synchronous_queue.rb | 2 +- .../util/wrapped_synchronous_queue_spec.rb | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb index e59d5c8e1c8..5dd40c7b889 100644 --- a/logstash-core/lib/logstash/util/wrapped_acked_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_acked_queue.rb @@ -141,7 +141,7 @@ def set_pipeline_metric(metric) end def define_initial_metrics_values(namespaced_metric) - namespaced_metric.gauge(:duration_in_millis, 0) + namespaced_metric.report_time(:duration_in_millis, 0) namespaced_metric.increment(:filtered, 0) namespaced_metric.increment(:in, 0) namespaced_metric.increment(:out, 0) diff --git a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb index af32b9207d0..e36d88eb45f 100644 --- a/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb +++ b/logstash-core/lib/logstash/util/wrapped_synchronous_queue.rb @@ -88,7 +88,7 @@ def set_pipeline_metric(metric) end def define_initial_metrics_values(namespaced_metric) - namespaced_metric.gauge(:duration_in_millis, 0) + namespaced_metric.report_time(:duration_in_millis, 0) namespaced_metric.increment(:filtered, 0) namespaced_metric.increment(:in, 0) namespaced_metric.increment(:out, 0) diff --git a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb index 8571fc673ee..b9b65fe8886 100644 --- a/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb +++ b/logstash-core/spec/logstash/util/wrapped_synchronous_queue_spec.rb @@ -65,13 +65,28 @@ def poll(*) shift(); end store = collector.snapshot_metric.metric_store expect(store.get_shallow(:events, :in).value).to eq(0) + expect(store.get_shallow(:events, :in)).to be_kind_of(LogStash::Instrument::MetricType::Counter) + expect(store.get_shallow(:events, :out).value).to eq(0) + expect(store.get_shallow(:events, :out)).to be_kind_of(LogStash::Instrument::MetricType::Counter) + expect(store.get_shallow(:events, :filtered).value).to eq(0) + expect(store.get_shallow(:events, :filtered)).to be_kind_of(LogStash::Instrument::MetricType::Counter) + expect(store.get_shallow(:events, :duration_in_millis).value).to eq(0) + expect(store.get_shallow(:events, :duration_in_millis)).to be_kind_of(LogStash::Instrument::MetricType::Counter) + expect(store.get_shallow(:pipeline, :in).value).to eq(0) + expect(store.get_shallow(:pipeline, :in)).to be_kind_of(LogStash::Instrument::MetricType::Counter) + expect(store.get_shallow(:pipeline, :duration_in_millis).value).to eq(0) + expect(store.get_shallow(:pipeline, :duration_in_millis)).to be_kind_of(LogStash::Instrument::MetricType::Counter) + expect(store.get_shallow(:pipeline, :out).value).to eq(0) + expect(store.get_shallow(:pipeline, :out)).to be_kind_of(LogStash::Instrument::MetricType::Counter) + expect(store.get_shallow(:pipeline, :filtered).value).to eq(0) + expect(store.get_shallow(:pipeline, :filtered)).to be_kind_of(LogStash::Instrument::MetricType::Counter) end end From 0ca0ddcdaa2226fc5f55829353083858855ea48d Mon Sep 17 00:00:00 2001 From: Mykola Shestopal Date: Wed, 28 Dec 2016 15:29:20 +0200 Subject: [PATCH 584/632] Fixed logstash.yml code snippet Fixes #6464 --- docs/static/logging.asciidoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/static/logging.asciidoc b/docs/static/logging.asciidoc index c601bd3f2da..68dfe47d33a 100644 --- a/docs/static/logging.asciidoc +++ b/docs/static/logging.asciidoc @@ -27,8 +27,8 @@ Slow-log for Logstash adds the ability to log when a specific event takes an abn through the pipeline. Just like the normal application log, you can find slow-logs in your `--path.logs` directory. Slowlog is configured in the `logstash.yml` settings file with the following options: ------------------------------- [source] +------------------------------ slowlog.threshold.warn (default: -1) slowlog.threshold.info (default: -1) slowlog.threshold.debug (default: -1) @@ -42,12 +42,12 @@ can be specified using the following time units: `nanos` (nanoseconds), `micros` Here is an example: +[source,yaml] ------------------------------ -[source] slowlog.threshold.warn: 2s -slowlog.threshold.info 1s -slowlog.threshold.debug 500ms -slowlog.threshold.trace 100ms +slowlog.threshold.info: 1s +slowlog.threshold.debug: 500ms +slowlog.threshold.trace: 100ms ------------------------------ In the above configuration, events that take longer than two seconds to be processed within a filter will be logged. From 9fe6c0cf43082648c2439d8795b5f9a9c226dba9 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 22 Dec 2016 10:25:01 -0500 Subject: [PATCH 585/632] Record the execution time for each output in the pipeline Record the wall clock time for each output a new `duration_in_millis` key will now be available for each output in the api located at http://localhost:9600/_node/stats This commit also change some expectations in the output_delegator_spec that were not working as intended with the `have_received` matcher. Fixes #6458 --- logstash-core/lib/logstash/output_delegator.rb | 2 ++ .../spec/logstash/output_delegator_spec.rb | 16 ++++++++++++---- logstash-core/spec/logstash/pipeline_spec.rb | 3 +++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/logstash-core/lib/logstash/output_delegator.rb b/logstash-core/lib/logstash/output_delegator.rb index 39a7fdb1f0a..d2fff02c9eb 100644 --- a/logstash-core/lib/logstash/output_delegator.rb +++ b/logstash-core/lib/logstash/output_delegator.rb @@ -39,7 +39,9 @@ def register def multi_receive(events) @metric_events.increment(:in, events.length) + clock = @metric_events.time(:duration_in_millis) @strategy.multi_receive(events) + clock.stop @metric_events.increment(:out, events.length) end diff --git a/logstash-core/spec/logstash/output_delegator_spec.rb b/logstash-core/spec/logstash/output_delegator_spec.rb index 56dbd5168f7..e86c0556f71 100644 --- a/logstash-core/spec/logstash/output_delegator_spec.rb +++ b/logstash-core/spec/logstash/output_delegator_spec.rb @@ -45,16 +45,24 @@ context "after having received a batch of events" do before do subject.register - subject.multi_receive(events) end it "should pass the events through" do - expect(out_inst).to have_received(:multi_receive).with(events) + expect(out_inst).to receive(:multi_receive).with(events) + subject.multi_receive(events) end it "should increment the number of events received" do - expect(subject.metric_events).to have_received(:increment).with(:in, events.length) - expect(subject.metric_events).to have_received(:increment).with(:out, events.length) + expect(subject.metric_events).to receive(:increment).with(:in, events.length) + expect(subject.metric_events).to receive(:increment).with(:out, events.length) + subject.multi_receive(events) + end + + it "should record the `duration_in_millis`" do + clock = spy("clock") + expect(subject.metric_events).to receive(:time).with(:duration_in_millis).and_return(clock) + expect(clock).to receive(:stop) + subject.multi_receive(events) end end diff --git a/logstash-core/spec/logstash/pipeline_spec.rb b/logstash-core/spec/logstash/pipeline_spec.rb index 89d7aca1237..791ca1f8e87 100644 --- a/logstash-core/spec/logstash/pipeline_spec.rb +++ b/logstash-core/spec/logstash/pipeline_spec.rb @@ -756,7 +756,10 @@ class TestPipeline < LogStash::Pipeline it "populates the output metrics" do plugin_name = dummy_output_id.to_sym + + expect(collected_metric[:stats][:pipelines][:main][:plugins][:outputs][plugin_name][:events][:in].value).to eq(number_of_events) expect(collected_metric[:stats][:pipelines][:main][:plugins][:outputs][plugin_name][:events][:out].value).to eq(number_of_events) + expect(collected_metric[:stats][:pipelines][:main][:plugins][:outputs][plugin_name][:events][:duration_in_millis].value).not_to be_nil end it "populates the name of the output plugin" do From c378190bef8c9bf3b0181c64fb9b766d08a64292 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 2 Jan 2017 12:41:36 -0800 Subject: [PATCH 586/632] Add fix for example tagging Fixes #6470 --- docs/static/logging.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/static/logging.asciidoc b/docs/static/logging.asciidoc index 68dfe47d33a..67560e1b053 100644 --- a/docs/static/logging.asciidoc +++ b/docs/static/logging.asciidoc @@ -27,7 +27,7 @@ Slow-log for Logstash adds the ability to log when a specific event takes an abn through the pipeline. Just like the normal application log, you can find slow-logs in your `--path.logs` directory. Slowlog is configured in the `logstash.yml` settings file with the following options: -[source] +[source,yaml] ------------------------------ slowlog.threshold.warn (default: -1) slowlog.threshold.info (default: -1) From fdda39964d4f5ff40fd4058c1a2faf30f366df2f Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 12 Dec 2016 11:17:28 -0500 Subject: [PATCH 587/632] Add bin/logstash-plugin prepare-offline-pack command This new command replace the old workflow of `pack`, `unpack` and the `install --local`, and wrap all the logic into one uniform way of installing plugins. The work is based on the flow developed for installing an x-pack inside Logstash, when you call prepare-offline-pack, the specified plugins and their dependencies will be packaged in a zip. And this zip can be installed with the same flow as the pack. Definition: Source Logstash: Where you run the prepare-offline-pack. Target Logstash: Where you install the offline package. PROS: - If you install a .gem in the source logstash, the .gem and his dependencies will be bundled. - The install flow doesn't need to have access to the internet. - Nothing special need to be setup in the target logstash environment. CONS: - The is one minor drawback, the plugins need to have their JARS bundled with them for this flow to work, this is currently the case for all the official plugins. - The source Logstash need to have access to the internet when you install plugins before packaging them. Usage examples: bin/logstash-plugin prepare-offline-pack logstash-input-beats bin/logstash-plugin prepare-offline-pack logstash-filter-jdbc logstash-input-beats bin/logstash-plugin prepare-offline-pack logstash-filter-* bin/logstash-plugin prepare-offline-pack logstash-filter-* logstash-input-beats How to install: bin/logstash-plugin install file:///tmp/logstash-offline-plugins-XXXX.zip Fixes #6404 --- Gemfile | 1 + ci/ci_integration.sh | 1 + ci/travis_integration_install.sh | 3 +- .../bundler/logstash_injector.rb | 44 ++++-- lib/pluginmanager/command.rb | 8 +- lib/pluginmanager/custom_gem_indexer.rb | 63 +++++++++ lib/pluginmanager/errors.rb | 2 + lib/pluginmanager/gem_installer.rb | 16 ++- lib/pluginmanager/gemfile.rb | 4 + lib/pluginmanager/install.rb | 4 + lib/pluginmanager/main.rb | 6 +- lib/pluginmanager/offline_plugin_packager.rb | 120 ++++++++++++++++ lib/pluginmanager/pack.rb | 2 + lib/pluginmanager/pack_command.rb | 8 ++ lib/pluginmanager/pack_installer/local.rb | 52 +------ lib/pluginmanager/pack_installer/pack.rb | 1 - lib/pluginmanager/prepare_offline_pack.rb | 61 ++++++++ lib/pluginmanager/unpack.rb | 2 + qa/integration/.gitignore | 2 + qa/integration/.ruby-version | 1 - qa/integration/fixtures/install_spec.yml | 3 + .../fixtures/logstash-dummy-pack/.gitiginore | 3 + .../fixtures/logstash-dummy-pack/Gemfile | 4 + .../fixtures/logstash-dummy-pack/Rakefile | 14 ++ .../fixtures/logstash-dummy-pack/bundle.sh | 20 +++ .../lib/logstash/outputs/secret.rb | 17 +++ .../logstash-dummy-pack.zip | Bin 0 -> 9260657 bytes .../logstash-output-secret.gemspec | 33 +++++ .../spec/outputs/secret_spec.rb | 22 +++ .../fixtures/logstash-filter-qatest-0.1.1.gem | Bin 0 -> 5120 bytes .../fixtures/offline_wrapper/.gitignore | 1 + .../fixtures/offline_wrapper/Makefile | 8 ++ .../fixtures/offline_wrapper/README.md | 31 ++++ .../fixtures/offline_wrapper/offline.c | 98 +++++++++++++ .../fixtures/prepare_offline_pack_spec.yml | 3 + qa/integration/framework/helpers.rb | 67 ++++++++- qa/integration/integration_tests.gemspec | 1 + qa/integration/services/logstash_service.rb | 33 ++++- qa/integration/specs/cli/install_spec.rb | 68 +++++++++ .../specs/cli/prepare_offline_pack_spec.rb | 88 ++++++++++++ qa/integration/specs/cli/remove_spec.rb | 93 +++++++++--- .../logstash-filter-qatest-0.1.1.gem | Bin 0 -> 5120 bytes .../offline_plugin_packager_spec.rb | 132 ++++++++++++++++++ .../pack_installer/local_spec.rb | 2 +- .../prepare_offline_pack_spec.rb | 99 +++++++++++++ tools/paquet/lib/paquet/gem.rb | 55 ++++++-- tools/paquet/lib/paquet/rspec/tasks.rb | 4 +- tools/paquet/lib/paquet/shell_ui.rb | 13 ++ tools/paquet/lib/paquet/utils.rb | 2 +- tools/paquet/lib/paquet/version.rb | 2 +- tools/paquet/paquet.gemspec | 2 +- tools/paquet/spec/integration/paquet_spec.rb | 65 +++++++-- tools/paquet/spec/paquet/gem_spec.rb | 43 ++++++ tools/paquet/spec/support/Rakefile | 3 +- 54 files changed, 1304 insertions(+), 126 deletions(-) create mode 100644 lib/pluginmanager/custom_gem_indexer.rb create mode 100644 lib/pluginmanager/offline_plugin_packager.rb create mode 100644 lib/pluginmanager/prepare_offline_pack.rb delete mode 100644 qa/integration/.ruby-version create mode 100644 qa/integration/fixtures/install_spec.yml create mode 100644 qa/integration/fixtures/logstash-dummy-pack/.gitiginore create mode 100644 qa/integration/fixtures/logstash-dummy-pack/Gemfile create mode 100644 qa/integration/fixtures/logstash-dummy-pack/Rakefile create mode 100755 qa/integration/fixtures/logstash-dummy-pack/bundle.sh create mode 100644 qa/integration/fixtures/logstash-dummy-pack/lib/logstash/outputs/secret.rb create mode 100644 qa/integration/fixtures/logstash-dummy-pack/logstash-dummy-pack.zip create mode 100644 qa/integration/fixtures/logstash-dummy-pack/logstash-output-secret.gemspec create mode 100644 qa/integration/fixtures/logstash-dummy-pack/spec/outputs/secret_spec.rb create mode 100644 qa/integration/fixtures/logstash-filter-qatest-0.1.1.gem create mode 100644 qa/integration/fixtures/offline_wrapper/.gitignore create mode 100644 qa/integration/fixtures/offline_wrapper/Makefile create mode 100644 qa/integration/fixtures/offline_wrapper/README.md create mode 100644 qa/integration/fixtures/offline_wrapper/offline.c create mode 100644 qa/integration/fixtures/prepare_offline_pack_spec.yml create mode 100644 qa/integration/specs/cli/install_spec.rb create mode 100644 qa/integration/specs/cli/prepare_offline_pack_spec.rb create mode 100644 qa/support/logstash-filter-qatest/logstash-filter-qatest-0.1.1.gem create mode 100644 spec/unit/plugin_manager/offline_plugin_packager_spec.rb create mode 100644 spec/unit/plugin_manager/prepare_offline_pack_spec.rb diff --git a/Gemfile b/Gemfile index cbf6dbf3555..6079926dabb 100644 --- a/Gemfile +++ b/Gemfile @@ -6,6 +6,7 @@ gem "logstash-core", :path => "./logstash-core" gem "logstash-core-queue-jruby", :path => "./logstash-core-queue-jruby" gem "logstash-core-event-java", :path => "./logstash-core-event-java" gem "logstash-core-plugin-api", :path => "./logstash-core-plugin-api" +gem "paquet", "~> 0.2.0" gem "ruby-progressbar", "~> 1.8.1" gem "builder", "~> 3.2.2" gem "file-dependencies", "0.1.6" diff --git a/ci/ci_integration.sh b/ci/ci_integration.sh index ff343cf8438..de26ea120f8 100755 --- a/ci/ci_integration.sh +++ b/ci/ci_integration.sh @@ -16,6 +16,7 @@ rake artifact:tar cd build echo "Extracting logstash tar file in build/" tar xf *.tar.gz + cd ../qa/integration # to install test dependencies bundle install diff --git a/ci/travis_integration_install.sh b/ci/travis_integration_install.sh index 2b8a63ac419..3f174da3f3f 100755 --- a/ci/travis_integration_install.sh +++ b/ci/travis_integration_install.sh @@ -18,8 +18,9 @@ rake artifact:tar cd build echo "Extracting logstash tar file in build/" tar xf *.tar.gz + cd ../qa/integration pwd echo $BUNDLE_GEMFILE # to install test dependencies -bundle install --gemfile="Gemfile" \ No newline at end of file +bundle install --gemfile="Gemfile" diff --git a/lib/pluginmanager/bundler/logstash_injector.rb b/lib/pluginmanager/bundler/logstash_injector.rb index 1ac2e0ebe68..6193cfb100a 100644 --- a/lib/pluginmanager/bundler/logstash_injector.rb +++ b/lib/pluginmanager/bundler/logstash_injector.rb @@ -5,6 +5,8 @@ require "bundler/dependency" require "bundler/dsl" require "bundler/injector" +require "pluginmanager/gemfile" + # This class cannot be in the logstash namespace, because of the way the DSL # class interact with the other libraries @@ -14,17 +16,24 @@ def self.inject!(new_deps, options = { :gemfile => LogStash::Environment::GEMFIL gemfile = options.delete(:gemfile) lockfile = options.delete(:lockfile) - bundler_format = Array(new_deps).collect { |plugin| ::Bundler::Dependency.new(plugin.name, "=#{plugin.version}")} + bundler_format = new_deps.plugins.collect(&method(:dependency)) + dependencies = new_deps.dependencies.collect(&method(:dependency)) injector = new(bundler_format) - injector.inject(gemfile, lockfile) + injector.inject(gemfile, lockfile, dependencies) end + def self.dependency(plugin) + ::Bundler::Dependency.new(plugin.name, "=#{plugin.version}") + end # This class is pretty similar to what bundler's injector class is doing # but we only accept a local resolution of the dependencies instead of calling rubygems. # so we removed `definition.resolve_remotely!` - def inject(gemfile_path, lockfile_path) + # + # And managing the gemfile is down by using our own Gemfile parser, this allow us to + # make it work with gems that are already defined in the gemfile. + def inject(gemfile_path, lockfile_path, dependencies) if Bundler.settings[:frozen] # ensure the lock and Gemfile are synced Bundler.definition.ensure_equivalent_gemfile_and_lockfile(true) @@ -33,16 +42,31 @@ def inject(gemfile_path, lockfile_path) end builder = Dsl.new - builder.eval_gemfile(gemfile_path) + gemfile = LogStash::Gemfile.new(File.new(gemfile_path, "r+")).load - @new_deps -= builder.dependencies + begin + @new_deps.each do |dependency| + gemfile.update(dependency.name, dependency.requirement) + end - builder.eval_gemfile("injected gems", new_gem_lines) if @new_deps.any? - definition = builder.to_definition(lockfile_path, {}) - append_to(gemfile_path) if @new_deps.any? - definition.lock(lockfile_path) + # If the dependency is defined in the gemfile, lets try to update the version with the one we have + # with the pack. + dependencies.each do |dependency| + if gemfile.defined_in_gemfile?(dependency.name) + gemfile.update(dependency.name, dependency.requirement) + end + end - return @new_deps + builder.eval_gemfile("bundler file", gemfile.generate()) + definition = builder.to_definition(lockfile_path, {}) + definition.lock(lockfile_path) + gemfile.save + rescue => e + # the error should be handled elsewhere but we need to get the original file if we dont + # do this logstash will be in an inconsistent state + gemfile.restore! + raise e + end ensure Bundler.settings[:frozen] = "1" if frozen end diff --git a/lib/pluginmanager/command.rb b/lib/pluginmanager/command.rb index 1a7c88bedc9..fa4d40dc8fc 100644 --- a/lib/pluginmanager/command.rb +++ b/lib/pluginmanager/command.rb @@ -6,7 +6,7 @@ def gemfile # If set in debug mode we will raise an exception and display the stacktrace def report_exception(readable_message, exception) - if ENV["DEBUG"] + if debug? raise exception else signal_error("#{readable_message}, message: #{exception.message}") @@ -14,7 +14,7 @@ def report_exception(readable_message, exception) end def display_bundler_output(output) - if ENV['DEBUG'] && output + if debug? && output # Display what bundler did in the last run $stderr.puts("Bundler output") $stderr.puts(output) @@ -35,4 +35,8 @@ def relative_path(path) require "pathname" ::Pathname.new(path).relative_path_from(::Pathname.new(LogStash::Environment::LOGSTASH_HOME)).to_s end + + def debug? + ENV["DEBUG"] + end end diff --git a/lib/pluginmanager/custom_gem_indexer.rb b/lib/pluginmanager/custom_gem_indexer.rb new file mode 100644 index 00000000000..0d7d273de2f --- /dev/null +++ b/lib/pluginmanager/custom_gem_indexer.rb @@ -0,0 +1,63 @@ +# encoding: utf-8 +require "pluginmanager/ui" +require "stud/temporary" + +module LogStash module PluginManager + class CustomGemIndexer + GEMS_DIR = "gems" + + class << self + # Copy the file to a specific format that `Gem::Indexer` can understand + # See `#update_in_memory_index` + def copy_to_local_source(temporary_directory) + local_source = Stud::Temporary.pathname + local_source_gems = ::File.join(local_source, GEMS_DIR) + + FileUtils.mkdir_p(local_source_gems) + PluginManager.ui.debug("Creating the index structure format from #{temporary_directory} to #{local_source}") + + Dir.glob(::File.join(temporary_directory, "**", "*.gem")).each do |file| + destination = ::File.join(local_source_gems, ::File.basename(file)) + FileUtils.cp(file, destination) + end + + local_source + end + + # *WARNING*: Bundler need to not be activated at this point because it wont find anything that + # is not defined in the gemfile/lock combo + # + # This takes a folder with a special structure, will generate an index + # similar to what rubygems do and make them available in the local program, + # we use this **side effect** to validate theses gems with the current gemfile/lock. + # Bundler will assume they are system gems and will use them when doing resolution checks. + # + #. + # ├── gems + # │   ├── addressable-2.4.0.gem + # │   ├── cabin-0.9.0.gem + # │   ├── ffi-1.9.14-java.gem + # │   ├── gemoji-1.5.0.gem + # │   ├── launchy-2.4.3-java.gem + # │   ├── logstash-output-elasticsearch-5.2.0-java.gem + # │   ├── logstash-output-secret-0.1.0.gem + # │   ├── manticore-0.6.0-java.gem + # │   ├── spoon-0.0.6.gem + # │   └── stud-0.0.22.gem + # + # Right now this work fine, but I think we could also use Bundler's SourceList classes to handle the same thing + def update_in_memory_index!(local_source) + PluginManager.ui.debug("Generating indexes in #{local_source}") + indexer = ::Gem::Indexer.new(local_source, { :build_modern => true}) + indexer.ui = ::Gem::SilentUI.new unless ENV["DEBUG"] + indexer.generate_index + end + + def index(path) + local_source = copy_to_local_source(path) + update_in_memory_index!(local_source) + local_source + end + end + end +end end diff --git a/lib/pluginmanager/errors.rb b/lib/pluginmanager/errors.rb index 260c5815cbc..691c8b67500 100644 --- a/lib/pluginmanager/errors.rb +++ b/lib/pluginmanager/errors.rb @@ -1,6 +1,8 @@ # encoding: utf-8 module LogStash module PluginManager class PluginManagerError < StandardError; end + class PluginNotFoundError < PluginManagerError; end + class UnpackablePluginError < PluginManagerError; end class FileNotFoundError < PluginManagerError; end class InvalidPackError < PluginManagerError; end class InstallError < PluginManagerError diff --git a/lib/pluginmanager/gem_installer.rb b/lib/pluginmanager/gem_installer.rb index 4a1cf020983..abb686d50db 100644 --- a/lib/pluginmanager/gem_installer.rb +++ b/lib/pluginmanager/gem_installer.rb @@ -2,6 +2,7 @@ require "pluginmanager/ui" require "pathname" require "rubygems/package" +require "fileutils" module LogStash module PluginManager # Install a physical gem package to the appropriate location inside logstash @@ -12,11 +13,13 @@ class GemInstaller GEM_HOME = Pathname.new(::File.join(LogStash::Environment::BUNDLE_DIR, "jruby", "1.9")) SPECIFICATIONS_DIR = "specifications" GEMS_DIR = "gems" + CACHE_DIR = "cache" attr_reader :gem_home def initialize(gem_file, display_post_install_message = false, gem_home = GEM_HOME) - @gem = ::Gem::Package.new(gem_file) + @gem_file = gem_file + @gem = ::Gem::Package.new(@gem_file) @gem_home = Pathname.new(gem_home) @display_post_install_message = display_post_install_message end @@ -26,6 +29,7 @@ def install extract_files write_specification display_post_install_message + copy_gem_file_to_cache end def self.install(gem_file, display_post_install_message = false, gem_home = GEM_HOME) @@ -41,6 +45,10 @@ def spec_dir gem_home.join(SPECIFICATIONS_DIR) end + def cache_dir + gem_home.join(CACHE_DIR) + end + def spec_file spec_dir.join("#{spec.full_name}.gemspec") end @@ -69,10 +77,16 @@ def display_post_install_message? @display_post_install_message && !spec.post_install_message.nil? end + def copy_gem_file_to_cache + destination = ::File.join(cache_dir, ::File.basename(@gem_file)) + FileUtils.cp(@gem_file, destination) + end + def create_destination_folders FileUtils.mkdir_p(gem_home) FileUtils.mkdir_p(gem_dir) FileUtils.mkdir_p(spec_dir) + FileUtils.mkdir_p(cache_dir) end end end end diff --git a/lib/pluginmanager/gemfile.rb b/lib/pluginmanager/gemfile.rb index c0b996dffd7..86af9a40826 100644 --- a/lib/pluginmanager/gemfile.rb +++ b/lib/pluginmanager/gemfile.rb @@ -71,6 +71,10 @@ def restore @gemset = @original_backup end + def defined_in_gemfile?(name) + @gemset.find_gem(name) + end + def restore! restore save diff --git a/lib/pluginmanager/install.rb b/lib/pluginmanager/install.rb index 514ca502bf9..476b00ec7be 100644 --- a/lib/pluginmanager/install.rb +++ b/lib/pluginmanager/install.rb @@ -158,6 +158,7 @@ def install_gems_list!(install_list) # Bundler 2.0, will have support for plugins source we could create a .gem source # to support it. def extract_local_gems_plugins + FileUtils.mkdir_p(LogStash::Environment::CACHE_PATH) plugins_arg.collect do |plugin| # We do the verify before extracting the gem so we dont have to deal with unused path if verify? @@ -165,6 +166,9 @@ def extract_local_gems_plugins signal_error("Installation aborted, verification failed for #{plugin}") unless LogStash::PluginManager.logstash_plugin?(plugin, version) end + # Make the original .gem available for the prepare-offline-pack, + # paquet will lookup in the cache directory before going to rubygems. + FileUtils.cp(plugin, ::File.join(LogStash::Environment::CACHE_PATH, ::File.basename(plugin))) package, path = LogStash::Rubygems.unpack(plugin, LogStash::Environment::LOCAL_GEM_PATH) [package.spec.name, package.spec.version, { :path => relative_path(path) }] end diff --git a/lib/pluginmanager/main.rb b/lib/pluginmanager/main.rb index 5323f4370a7..fed9c4cddc6 100644 --- a/lib/pluginmanager/main.rb +++ b/lib/pluginmanager/main.rb @@ -21,6 +21,7 @@ module PluginManager require "pluginmanager/pack" require "pluginmanager/unpack" require "pluginmanager/generate" +require "pluginmanager/prepare_offline_pack" module LogStash module PluginManager @@ -31,10 +32,11 @@ class Main < Clamp::Command subcommand "install", "Install a Logstash plugin", LogStash::PluginManager::Install subcommand "remove", "Remove a Logstash plugin", LogStash::PluginManager::Remove subcommand "update", "Update a plugin", LogStash::PluginManager::Update - subcommand "pack", "Package currently installed plugins", LogStash::PluginManager::Pack - subcommand "unpack", "Unpack packaged plugins", LogStash::PluginManager::Unpack + subcommand "pack", "Package currently installed plugins, Deprecated: Please use prepare-offline-pack instead", LogStash::PluginManager::Pack + subcommand "unpack", "Unpack packaged plugins, Deprecated: Please use prepare-offline-pack instead", LogStash::PluginManager::Unpack subcommand "generate", "Create the foundation for a new plugin", LogStash::PluginManager::Generate subcommand "uninstall", "Uninstall a plugin. Deprecated: Please use remove instead", LogStash::PluginManager::Remove + subcommand "prepare-offline-pack", "Create an archive of specified plugins to use for offline installation", LogStash::PluginManager::PrepareOfflinePack end end end diff --git a/lib/pluginmanager/offline_plugin_packager.rb b/lib/pluginmanager/offline_plugin_packager.rb new file mode 100644 index 00000000000..a0d21413570 --- /dev/null +++ b/lib/pluginmanager/offline_plugin_packager.rb @@ -0,0 +1,120 @@ +# encoding: utf-8 +require "pluginmanager/ui" +require "pluginmanager/errors" +require "bootstrap/environment" +require "bootstrap/util/compress" +require "paquet" +require "stud/temporary" +require "fileutils" + +module LogStash module PluginManager + class SpecificationHelpers + WILDCARD = "*" + WILDCARD_INTO_RE = ".*" + + def self.find_by_name_with_wildcards(pattern) + re = transform_pattern_into_re(pattern) + ::Gem::Specification.find_all.select do |specification| + specification.name =~ re + end + end + + def self.transform_pattern_into_re(pattern) + Regexp.new("^#{pattern.gsub(WILDCARD, WILDCARD_INTO_RE)}$") + end + end + + class OfflinePluginPackager + LOGSTASH_DIR = "logstash" + DEPENDENCIES_DIR = ::File.join(LOGSTASH_DIR, "dependencies") + + # To make sure we have the maximun compatibility + # we will ignore theses gems and they wont be included in the pack + IGNORE_GEMS_IN_PACK = %w( + logstash-core + logstash-core-queue-jruby + logstash-core-event-java + logstash-core-plugin-api + jar-dependencies + ) + + INVALID_PLUGINS_TO_EXPLICIT_PACK = IGNORE_GEMS_IN_PACK.collect { |name| /^#{name}/ } + [ + /mixin/ + ] + + def initialize(plugins_to_package, target) + @plugins_to_package = Array(plugins_to_package) + @target = target + + validate_plugins! + end + + def validate_plugins! + @plugins_to_package.each do |plugin_name| + if INVALID_PLUGINS_TO_EXPLICIT_PACK.any? { |invalid_name| plugin_name =~ invalid_name } + raise UnpackablePluginError, "Cannot explicitly pack `#{plugin_name}` for offline installation" + end + end + end + + def generate_temporary_path + Stud::Temporary.pathname + end + + def explicitly_declared_plugins_specs + @plugins_to_package.collect do |plugin_pattern| + specs = SpecificationHelpers.find_by_name_with_wildcards(plugin_pattern) + + if specs.size > 0 + specs + else + raise LogStash::PluginManager::PluginNotFoundError, "Cannot find plugins matching: `#{plugin_pattern}`" + end + end.flatten + end + + def execute + temp_path = generate_temporary_path + packet_gem = Paquet::Gem.new(temp_path, LogStash::Environment::CACHE_PATH) + + explicit_plugins_specs = explicitly_declared_plugins_specs + + explicit_plugins_specs.each do |spec| + packet_gem.add(spec.name) + end + + IGNORE_GEMS_IN_PACK.each do |gem_name| + packet_gem.ignore(gem_name) + end + + packet_gem.pack + + prepare_package(explicit_plugins_specs, temp_path) + LogStash::Util::Zip.compress(temp_path, @target) + ensure + FileUtils.rm_rf(temp_path) + end + + def prepare_package(explicit_plugins, temp_path) + FileUtils.mkdir_p(::File.join(temp_path, LOGSTASH_DIR)) + FileUtils.mkdir_p(::File.join(temp_path, DEPENDENCIES_DIR)) + + explicit_path = ::File.join(temp_path, LOGSTASH_DIR) + dependencies_path = ::File.join(temp_path, DEPENDENCIES_DIR) + + Dir.glob(::File.join(temp_path, "*.gem")).each do |gem_file| + filename = ::File.basename(gem_file) + + if explicit_plugins.any? { |spec| filename =~ /^#{spec.name}/ } + FileUtils.mv(gem_file, ::File.join(explicit_path, filename)) + else + FileUtils.mv(gem_file, ::File.join(dependencies_path, filename)) + end + end + end + + def self.package(plugins_args, target) + OfflinePluginPackager.new(plugins_args, target).execute + end + end +end end diff --git a/lib/pluginmanager/pack.rb b/lib/pluginmanager/pack.rb index 18b46e18511..2f00728199d 100644 --- a/lib/pluginmanager/pack.rb +++ b/lib/pluginmanager/pack.rb @@ -8,6 +8,8 @@ class LogStash::PluginManager::Pack < LogStash::PluginManager::PackCommand option "--overwrite", :flag, "Overwrite a previously generated package file", :default => false def execute + signal_deprecation_warning_for_pack + puts("Packaging plugins for offline usage") validate_target_file diff --git a/lib/pluginmanager/pack_command.rb b/lib/pluginmanager/pack_command.rb index 2409b212f97..3f4ed0b383c 100644 --- a/lib/pluginmanager/pack_command.rb +++ b/lib/pluginmanager/pack_command.rb @@ -10,4 +10,12 @@ def archive_manager def file_extension zip? ? ".zip" : ".tar.gz" end + + def signal_deprecation_warning_for_pack + message =<<-EOS +The pack and the unpack command are now deprecated and will be removed in a future version of Logstash. +See the `prepare-offline-pack` to update your workflow. You can get documentation about this by running `bin/logstash-plugin prepare-offline-pack --help` + EOS + puts message + end end diff --git a/lib/pluginmanager/pack_installer/local.rb b/lib/pluginmanager/pack_installer/local.rb index 702eb408754..ff75b971026 100644 --- a/lib/pluginmanager/pack_installer/local.rb +++ b/lib/pluginmanager/pack_installer/local.rb @@ -2,6 +2,7 @@ require "pluginmanager/ui" require "pluginmanager/bundler/logstash_injector" require "pluginmanager/gem_installer" +require "pluginmanager/custom_gem_indexer" require "pluginmanager/errors" require "pluginmanager/pack_installer/pack" require "bootstrap/util/compress" @@ -10,7 +11,6 @@ module LogStash module PluginManager module PackInstaller class Local PACK_EXTENSION = ".zip" - GEMS_DIR = "gems" LOGSTASH_PATTERN_RE = /logstash\/?/ attr_reader :local_file @@ -29,13 +29,12 @@ def execute pack = LogStash::PluginManager::PackInstaller::Pack.new(uncompressed_path) raise PluginManager::InvalidPackError, "The pack must contains at least one plugin" unless pack.valid? - local_source = move_to_local_source(uncompressed_path) - update_in_memory_index(local_source) + local_source = LogStash::PluginManager::CustomGemIndexer.index(uncompressed_path) # Try to add the gems to the current gemfile and lock file, if successful # both of them will be updated. This injector is similar to Bundler's own injector class # minus the support for additionals source and doing local resolution only. - added = ::Bundler::LogstashInjector.inject!(pack.plugins) + ::Bundler::LogstashInjector.inject!(pack) # When successfull its safe to install the gem and their specifications in the bundle directory pack.gems.each do |packed_gem| @@ -44,7 +43,7 @@ def execute end PluginManager.ui.info("Install successful") rescue ::Bundler::BundlerError => e - raise PluginManager::InstallError.new(e), "An error occurent went installing plugins" + raise PluginManager::InstallError.new(e), "An error occurred went installing plugins" ensure FileUtils.rm_rf(uncompressed_path) if uncompressed_path && Dir.exist?(uncompressed_path) FileUtils.rm_rf(local_source) if local_source && Dir.exist?(local_source) @@ -64,48 +63,5 @@ def uncompress(source) def valid_format?(local_file) ::File.extname(local_file).downcase == PACK_EXTENSION end - - # Copy the file to a specific format that `Gem::Indexer` can understand - # See `#update_in_memory_index` - def move_to_local_source(temporary_directory) - local_source = Stud::Temporary.pathname - local_source_gems = ::File.join(local_source, GEMS_DIR) - - FileUtils.mkdir_p(local_source_gems) - PluginManager.ui.debug("Creating the index structure format from #{temporary_directory} to #{local_source}") - - Dir.glob(::File.join(temporary_directory, "**", "*.gem")).each do |file| - destination = ::File.join(local_source_gems, ::File.basename(file)) - FileUtils.cp(file, destination) - end - - local_source - end - - # This takes a folder with a special structure, will generate an index - # similar to what rubygems do and make them available in the local program, - # we use this **side effect** to validate theses gems with the current gemfile/lock. - # Bundler will assume they are system gems and will use them when doing resolution checks. - # - #. - # ├── gems - # │   ├── addressable-2.4.0.gem - # │   ├── cabin-0.9.0.gem - # │   ├── ffi-1.9.14-java.gem - # │   ├── gemoji-1.5.0.gem - # │   ├── launchy-2.4.3-java.gem - # │   ├── logstash-output-elasticsearch-5.2.0-java.gem - # │   ├── logstash-output-secret-0.1.0.gem - # │   ├── manticore-0.6.0-java.gem - # │   ├── spoon-0.0.6.gem - # │   └── stud-0.0.22.gem - # - # Right now this work fine, but I think we could also use Bundler's SourceList classes to handle the same thing - def update_in_memory_index(local_source) - PluginManager.ui.debug("Generating indexes in #{local_source}") - indexer = ::Gem::Indexer.new(local_source, { :build_modern => true}) - indexer.ui = ::Gem::SilentUI.new unless ENV["DEBUG"] - indexer.generate_index - end end end end end diff --git a/lib/pluginmanager/pack_installer/pack.rb b/lib/pluginmanager/pack_installer/pack.rb index 7c9b5bbe8e7..3090472dbf2 100644 --- a/lib/pluginmanager/pack_installer/pack.rb +++ b/lib/pluginmanager/pack_installer/pack.rb @@ -67,7 +67,6 @@ def initialize(source) end def plugins - require "pry" gems.select { |gem| !gem.dependency? } end diff --git a/lib/pluginmanager/prepare_offline_pack.rb b/lib/pluginmanager/prepare_offline_pack.rb new file mode 100644 index 00000000000..8cd9736bcf5 --- /dev/null +++ b/lib/pluginmanager/prepare_offline_pack.rb @@ -0,0 +1,61 @@ +# encoding: utf-8 +require "pluginmanager/command" +require "pluginmanager/errors" + +class LogStash::PluginManager::PrepareOfflinePack < LogStash::PluginManager::Command + parameter "[PLUGIN] ...", "plugin name(s)", :attribute_name => :plugins_arg + option "--output", "OUTPUT", "output file", :default => ::File.join(LogStash::Environment::LOGSTASH_HOME, "logstash-offline-plugins-#{LOGSTASH_VERSION}.zip") + + def execute + validate_arguments! + + # We need to start bundler, dependencies so the plugins are available for the prepare + LogStash::Bundler.setup!({:without => [:build, :development]}) + + # manually require paquet since its an external dependency + require "pluginmanager/offline_plugin_packager" + require "paquet" + require "paquet/shell_ui" + + # Override the shell output with the one from the plugin manager + # To silence some of debugs/info statements + Paquet.ui = Paquet::SilentUI unless debug? + + FileUtils.rm_rf(output) if ::File.exist?(output) + + LogStash::PluginManager::OfflinePluginPackager.package(plugins_arg, output) + + message = <<-EOS +Offline package created at: #{output} + +You can install it with this command `bin/logstash-plugin install file://#{::File.expand_path(output)}` + EOS + + LogStash::PluginManager::ui.info(message) + rescue LogStash::PluginManager::UnpackablePluginError => e + report_exception("Offline package", e) + rescue LogStash::PluginManager::PluginNotFoundError => e + report_exception("Cannot create the offline archive", e) + end + + def validate_arguments! + if plugins_arg.size == 0 + message = <<-EOS +You need to specify at least one plugin or use a wildcard expression. + +Examples: +bin/logstash-plugin prepare-offline-pack logstash-input-beats +bin/logstash-plugin prepare-offline-pack logstash-filter-jdbc logstash-input-beats +bin/logstash-plugin prepare-offline-pack logstash-filter-* +bin/logstash-plugin prepare-offline-pack logstash-filter-* logstash-input-beats + +You can get a list of the installed plugin by running `bin/logstash-plugin list` + +The prepare offline will pack the currently installed plugins and their dependencies +for offline installation. +EOS + signal_usage_error(message) + end + end +end + diff --git a/lib/pluginmanager/unpack.rb b/lib/pluginmanager/unpack.rb index 7937e7d2e24..f1f7221e171 100644 --- a/lib/pluginmanager/unpack.rb +++ b/lib/pluginmanager/unpack.rb @@ -8,6 +8,8 @@ class LogStash::PluginManager::Unpack < LogStash::PluginManager::PackCommand parameter "file", "the package file name", :attribute_name => :package_file, :required => true def execute + signal_deprecation_warning_for_pack + puts("Unpacking #{package_file}") FileUtils.rm_rf(LogStash::Environment::CACHE_PATH) diff --git a/qa/integration/.gitignore b/qa/integration/.gitignore index e7775797e47..01f9fbcf19f 100644 --- a/qa/integration/.gitignore +++ b/qa/integration/.gitignore @@ -1,2 +1,4 @@ /services/installed /fixtures/certificates +/fixtures/offline.o +/fixtures/offline diff --git a/qa/integration/.ruby-version b/qa/integration/.ruby-version deleted file mode 100644 index cd53e881769..00000000000 --- a/qa/integration/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -jruby-9.1.5.0 diff --git a/qa/integration/fixtures/install_spec.yml b/qa/integration/fixtures/install_spec.yml new file mode 100644 index 00000000000..cbfc784af81 --- /dev/null +++ b/qa/integration/fixtures/install_spec.yml @@ -0,0 +1,3 @@ +--- +services: + - logstash diff --git a/qa/integration/fixtures/logstash-dummy-pack/.gitiginore b/qa/integration/fixtures/logstash-dummy-pack/.gitiginore new file mode 100644 index 00000000000..0bd659d183a --- /dev/null +++ b/qa/integration/fixtures/logstash-dummy-pack/.gitiginore @@ -0,0 +1,3 @@ +vendor/bundle +dependencies/ +build/ diff --git a/qa/integration/fixtures/logstash-dummy-pack/Gemfile b/qa/integration/fixtures/logstash-dummy-pack/Gemfile new file mode 100644 index 00000000000..f40ab78d3d1 --- /dev/null +++ b/qa/integration/fixtures/logstash-dummy-pack/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' +gemspec + +gem "paquet", :path => "#{File.dirname(__FILE__)}/../../../../tools/paquet" diff --git a/qa/integration/fixtures/logstash-dummy-pack/Rakefile b/qa/integration/fixtures/logstash-dummy-pack/Rakefile new file mode 100644 index 00000000000..bb55078e69e --- /dev/null +++ b/qa/integration/fixtures/logstash-dummy-pack/Rakefile @@ -0,0 +1,14 @@ +# encoding: utf-8 +require "paquet" + +TARGET_DIRECTORY = File.join(File.dirname(__FILE__), "dependencies") + +Paquet::Task.new(TARGET_DIRECTORY) do + pack "manticore" + pack "gemoji" + + # Everything not defined here will be assumed to be provided + # by the target installation + ignore "logstash-core-plugin-api" + ignore "logstash-core" +end diff --git a/qa/integration/fixtures/logstash-dummy-pack/bundle.sh b/qa/integration/fixtures/logstash-dummy-pack/bundle.sh new file mode 100755 index 00000000000..bc16b58dcfc --- /dev/null +++ b/qa/integration/fixtures/logstash-dummy-pack/bundle.sh @@ -0,0 +1,20 @@ +bundle install --path vendor +bundle exec rake vendor +bundle exec rake paquet:vendor +rm -rf build/ +mkdir -p build/logstash-dummy-pack/logstash/ +cp -r dependencies build/logstash-dummy-pack/logstash/ +gem build logstash-output-secret.gemspec +mv logstash-output-secret*.gem build/logstash-dummy-pack/logstash/ + +# Generate stuff for a uber zip +mkdir -p build/logstash-dummy-pack/elasticsearch +touch build/logstash-dummy-pack/elasticsearch/README.md + +mkdir -p build/logstash-dummy-pack/kibana +touch build/logstash-dummy-pack/kibana/README.md + +cd build/ +zip -r logstash-dummy-pack.zip logstash-dummy-pack +cp *.zip ../ +cd .. diff --git a/qa/integration/fixtures/logstash-dummy-pack/lib/logstash/outputs/secret.rb b/qa/integration/fixtures/logstash-dummy-pack/lib/logstash/outputs/secret.rb new file mode 100644 index 00000000000..ed621ac3259 --- /dev/null +++ b/qa/integration/fixtures/logstash-dummy-pack/lib/logstash/outputs/secret.rb @@ -0,0 +1,17 @@ +# encoding: utf-8 +require "logstash/outputs/base" +require "logstash/namespace" + +# An secret output that does nothing. +class LogStash::Outputs::Secret < LogStash::Outputs::Base + config_name "secret" + + public + def register + end # def register + + public + def receive(event) + return "Event received" + end # def event +end # class LogStash::Outputs::Secret diff --git a/qa/integration/fixtures/logstash-dummy-pack/logstash-dummy-pack.zip b/qa/integration/fixtures/logstash-dummy-pack/logstash-dummy-pack.zip new file mode 100644 index 0000000000000000000000000000000000000000..f2dbc63c8d63f77cb7d540ea0db0d58d3414aa06 GIT binary patch literal 9260657 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 z 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

      hWT$d}xxKF%UN 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

      x{dRt7DcwoybhMOXbF!s^2L>aR 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

      +>Q4ajFG-jId{C>G`o%8dkBWEi& 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ⅅQiFYkAv>$zrG@ncp%A zRnN^MkWM^Nk&9@59U`J%8^}BJ!$!E(?#GX=vu0Umq@zUwR9cK-hI?B2a0+OuoY3k$ zdbiGiob4WT!N5eM<2n8bawt~O0pzV%1U0(d7HQTfjAFzthPt_voRyQj8STE&(QB*; z+DXG!H?xupMB$flj=G)r7avm-la1LxOEVoG1Dw!V9LqSrc?^Jc+iSdAXe^OVgF&A~ z=Du#C;jb$>4Em+?mi=PMR*7#bXJ~nJ`_nqw+Wkiy-zhz!?akcxMsI%q{%!ca&RC^S zIxip|kuMY7cxZSdUAH8-VZr%h&9-U&M2aSyBDSD(yjGE5!UogTMPANlW~8=BY^Wa3 zaa!Oq-Bb?cnbc>)!rOaodc|Vtc=X4^s-7K}a;D(Zac}QyHrG6{Vg7C_yYJDTOT)y% zrdBDHQaTD1h4@=?(@Wzq2jAtZ482bas6tb9UK`1Y@>26tnF^K}Z$4(u#4{mk;^ym7eHwdwqqV;A4Fox9O;uyy(zS~nDj#rYmzKo$ z=vZ%2BKbPJ?Ix@+JE>cj>YQir99i{|{}lH40VQ&GDe-ge=Ihj*(9lf==&}Ng!faCY z!tWy+X5nRbRRDJ+aE%jZDOIv5)k=Iz;Hy82!Iq zUW#}1XJhB)Vf&Bk|2hAy|NM*SKe&+pq5rr?P|LV~ zxZK@Ux;veY8`LGcb|iP)d!SdD`r8oBlW>Fb7O67iDbf=^84hPSL)x?@dPQ`|oh02CU zb%ov1LRyEV>kaaP9lG7SgCCb^I^VcHC+(CCn1Bf`zUSUly?YLSu4%2g_^P{d<}#~q zXF?Cn#wwDey#zMNhM8n(UDwINYUj%fH>dDR>l-vO>ynP=5VF*2gxMhHf4iBvl7I*b zUciVE2Lb9lz6Nk1#=Hr|jTYV7nsmLb)UP64cd_0QV0r@2R^J%8Pd8t`ixwn$fj?UuY$okDQ+&MT->>PQni39EoK_g$FrodXV=144sjVl4cw<8f$aT z+gH+Ws=L4b>!bu&|1Csb>7ZY;f~!qQQVa`_KiShaQDSrvR6jnUzh

      >aZFbykFCk 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 G90&7kGlT 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

      YIvea&WyQ3feacwXNeq^ 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


      bf{t~= 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

      P@CCHFL& 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%0Db3j$6*+h1Y}fbxw=a{4R)w3pg0SD3f%`t{7< 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%0DTf!e$6+#k9H=b1rtUsQO#=WVF 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�B@2)B-GnLBdRc8k4EerLzVt4t$_X7IQ$+}^N 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�LB|kY9fv#?UiO1GBt>*9 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

      1=KV?^Qt|k7#C~1(quBxlBB{!VU=M% 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%0DG+K_>IZ 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�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 ?;K`v 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 QEje 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 z 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

      FnNad;%B> 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⪼lrL5dVE%{G;?L0E4~Sqr`!OR2>YxT>s?z0K>A}Bil4wXx zAT+*;V3wz*z}B14T&!54)5Z!W&7?DuRgBH_6gnf%zKu`XSXx^%Y#+D9!c$7|&As<@ zEM&Lvy3xWhTrtLKsy1EfyDQ2_0cMW1lVOy*&$?Uj;JFWYCh&OpFjw3*j-%p4y%k=kPOf z!(Uvt2f8gN_N74p6BODluIbzaGdY}G&I7NhORR+YkwQri7>#^>TaB`-5aZ#g^)GpN zv73Jbe>JP6IZ{Q=5GTKzL~SE5T1_?9XjYb{tCX^=TcY1NH{Q#vv)~;hjXn$+_8yvu zp9z~Msau2(D^C;QPc{}G08)Fy3-h0mSJW7g#o?$@0f7>4U>OZtp4?YQc<|4SB%qmsf2}WFH)? z^&0bZK53T`5Z%w7O_t}Y=VypgS-0>_1&F_DC1T(c`tl+w8jnZ^Y&Ld(Hy-e-z+>TE=BE?AR2f# zROekqVg;)SfjMI!S#cu;rX$i3=A^GSm~B#h}Yd*Ka|Q+?&F zzb^YBfTo&^VeosgNkM?pHa5)Z`);iPDopHl@F$_9VKFMmgz2Wt9qd9_u6zl3N-}1Q7|CB@S*}xJ0uKJ!!+Qxhqs{je>a3VbupQ z=+>V+RNl#mF<`Nx{{R_DBhvR$^4(8h`T2TGv2dV`VRC{#k~sL)*33|Wzf1iIr}{i) z`nUHF_8>SQR~P$~Jl~Qa-v%p;2s+Hi?o0SlD6aMg?|6v1?EAPl-G&G4p?gzacu}0f zqcib%RP9p&)UH1~ZVFj;1}*Tg@E&0>2|J4dIb+EZrdCrU1`1zZIVy>x^@z6u8mBHh zBbrp92A*NbInc`pjA_p!@+B0uqfMS$+*}Gad`FVtqxCF$9oC=C2~{h-sU%9m?0?cQl2y*Yt+fPoO3uYW=;vP zg+x5^?cW1&W$IBHY!g^I6Cw*t__(wN1YYPI$P;!u_c0OA!SM%_5mdE{x16%+5tnSv z)bY;WU7{f?(ulQEG%#Gebcq^1vkaXT8#X=EAIxIE-NgRIT_C#|(g_^l#ul;0x^t-s z{eG}owgfdTAzp*RBO%m`5v0GpBYp#iat1>AS}PVTyej9GH-D_etyE6cbobn zhuTPAh42+s`m1A!!{*iL@@;AOSnu#dekBxM=}|+k*r2-X(EzSZRJu`TuEo^IlMLNz z2P`!t>co3ZXC_h{Y2%47PZqHimc;2=J>W7UkxYGkr7be4xby4Zj>iUjzwIC5v6R&A zo0$CMOm%A;>|oc1PEFk$ZNiK7+?#RopQ6hZVrVvqZC^KT7yagV@PM(FmsLMmBk@|+ z5o}~XZVYt+5*6VL!8yp0bPN8fh~MLKe{MGi_sEX8@p1GJ2Gc_%ai@O&47K|c$xZlK z#Mkax1Lr%%%W6uD$aSC})zvtE`<1g;uzLbJBbaEmkhT4WJPT|`iq^I5wvk2V(dW97 z+g%DVLC8j#{*5;G}wmaR%3K9wFW>PH&6l{iYO=v8mrld73aTkqArhZrO zRf;VJU&yPzj$hpLZ;*-j*u2QRN$+>28$QxAJgpc!+OGbAm0eZF1$j#8;_GCkceC;v znA)9W7Pe%Nf0Q1O(drS@!6%qV?y=SXsPe&{$TVIu@n3WzON$^L4;3llV1Cr#&8>=ZorDWTZGjXo8h*o`B7D+f@(5;Q8Vwp#gh(^3l%_qQU8;`?dVXq z;&?xzS!qJ%&#=!~pOlQ}YY*Sy8&K3w{~neNyGlhPH%~?({zh(&ry}O|+BFl3Z4G<< zr{nkjX+68`_Q2YyVOHkx(?LzK1CLbGe}Mi1&O=3+_z)8ztwUIFZkUbiyoTDtRN&zv zqlp%=pV@3xl+a-!O=Ncmsli(B+tfkf8|lj%#w#7jfO_-)+WY~G4@$C|`L6g(8k>2|HJ>^I5>I#yZ#q`F8=@WzyFK)UkLmEGykWD8cRCo`MN%}#$8(* zT6YMOC&i)cgd+}Sgd+Wp?}q$^F`C+;;0A)DYmgdkK>g8yO{BX<%vgL#{X}RC0!E=d z$fh{ygLsSKXb>FAT)pzS)A0`~_bpe^S<7YbL%1|6*63O*Ro>pbyxb3-*YDqcd3(u3 zaz4C?Fs_e0sKT+49#jF6;FlJ5eUH1C_UAd2?B~nh_#@fA4rjIE26tCM_y5K+`Sl(5 z1BfhkM0vZI$91b$Y6ixi*IV0WxW1d%+&HnPhDaabU1Ok!m59v-w*(RSB7l{AbZ3GX{#InDIm zSGy?Q*5R{P{b!DM>#o5zzpNun~eYR3ZJoRhr+Q958jc&3DFuDOp~#3dPx8 z+v4N`_mmgv*xOF*k-)@305v43x$QRUQ>71ZxC`~Z+%EExvBKz@^kkteD2aK)=eTL3Qcw6V zDI_H?EfH*)B-Iml{e~P*xsDo%+L&vGOmya4iJJJyt&FqUmHD&o2@pW!4pI#)Qxh~3 z!mvH7`bVCP@EzC-LZ&WXp={$0d(K0YMYWs?#CumTI>}$-ecOm%@{5 z8DIjqf!81cF45kneJ8zW0Zz@*<-|+93(e#E)JN#3J3{hGO5`(^L2&8Q(-N2AxtOK|Kt#qa0dmmCK`_@ph30Nu*F zsQGV_J9E~2*?)|$lVyroL|CFtuyEYMCz(AX74OY7=}&(&g_1e-e@P*Kl&-U#F%S%E ze=9Pz6Ma)+UlpDwy=cF<6!c~n+U@*u{`BxqFtvGrCDDtXhRHow^RKLHH-`MD{%d#k z{vty$gj|82X|i8%NuMlgRm5zkCbEdQu{=6Fo|5?6FXci&--+9)y%RoU5%@8!5lUJi3F2+fiKaB^9H1J6@5F z)90zuL@?8)Ax3~5BY>Be!1oO+Qumdi=Z@KFD_^FYgl|RJ<;C_@5A#km{aUDXm*Fvf zyRmB)F5-Sq??capY#JtSC;owOjQbQ40cc?YD8;n;BJW`GNR>QJg*h0(MmiEEcNa!g zWNudqK~;o|VF;lX-vdmj%;l zVDb6fb@wigaI?A-H6&3$4#!b59xh9K>QT)i2#SmIyb4v zQlZq0^d-k`w~}AgC+eYtDEsyFcErBr==-^hLR~mSC={wW0!7G2M9d|W zjwH~xH48xqL!yK8iK%a}v&17tI!o6?DGX6dB=&9=B09d8?M98N7it7KPicrZdQbSj z%%A;YZ@oAUP;-Pa5R9I7*jRO^d@SuR;rO9wqV~hbo-s+lqr0I;E!O95#?WI zWf8_02}QnQQX>qG{+7-`3@&@gdg4L7chfwfnq_>cJLe5^wJWEty?1K9Li!`q457|* zqrriJ0kg0yW)jTAn(8L1T&&1xN<0D{7cn$)JD}c~-%=VDPD8P>N*x_YqvL@$KveHc@JEl>4WFEwBh_y@{y_BhrRDLT zioxx*8niRK`E*?Gdl>bBAkaj%OP;cy=$5t=$jJUPi%X0_CWaDvy^Cra(brAKTkkn) z>r(I@>}ZZKnHS>#ac?I~H@kWmXm=i{3nBb+-MH7tjRbDo{Z(bio6jJa7VyDY7)V81 zftQ;l;=J32jz(1y!k4pt2c!*$<+e(t5)Ot-7;(cpWib_31Y2=t_Y$85gGFrqX8F#A z5bD3|Die01m3R0a#It_b(Psc4bdo6q&lLs3k7HNrC@0!fUn95)drk-@nRtfs++(*T z1BrHGput4#6t;0j#E(!vheHGm4&HF8g-HR{zXE2+8d7*a9JVZ1V{r<{7Yb z6bi>u4?9E;nF}U;J!W8gKBW;>gTqH&pT1*m{CiqxF6A09gOL-=jVN84W$%&i>;P)69 zg?@dJv4B8EAzan1)DXDafiRT|WaQXokr zqan?hsgwRL!JB@J1PKT_9`kYhQZ^R!F^0<_OU68d$M{V9+P9Rdy{T}iMLulFpXPJ3Yu)!cFOSt*POkLw#tpf7js zzn4II7$b5>0ZAAUKhtR!LWePeV z$gj!mVcodWpKlTZ8DHkGRFE@}BHodS)jj-+Ow5!pIc<(SjGIJdZ@!Md4E^{eF*Ysu z>TmT_i{vAtGfClh9tXz`HT=%Ssln@s1+MoeX?456(n$6I7Hl?Eu&Cspz)Z}L^M69x zfXIf{A?YcEM25;jn)3|x#Q4Nl-fy{eSRFn6v;As#l$+WoBpu%*)(mS;Luin-(a4>JuJb68|3CdkQH@@ zqaItRb<+t7eAXCcggaz5K1I=!vw+6fxI4*!5mk#vks)|i0&nZ;&lz1XJ9GHzJ}W~G z4@6ltO3PFdo-$u-zfh?EyO1hYQEvWW4Q6TK-Jxz-h~ruQ1qZDgb%#{SC?5lJVzCLU zoACg#<2aY%|6uQ}V&ee9EzRyWGcz-@V`gUNn3-bc7~0ItOffSvGgHjW6hrKoY42#X zq*-ZRMytE4`%qFnm3~!8CH>zyr^+0=X8H-|i$6;)J1oIY$_Na)sjk{J#JJ$z#0RzL zzg&XEeU)#II0}7>r-?E-t1HRD;|Ofc4fCiKBFsZrmM2<*p3LZJzR!3}74Hs9YCiW| z3tlGEu=Oh$&3RMuZJc+OGc~O%*5(^V6u1DXpJKg~A&soinN(>dgHOm7%@~8pY4kcm zilN`VSwxm*awFv4i0cJcg`Kra%p}1o@Yxr2zwiDGBDJLLu%;B##dwN9BM^k{PVK{$ z*<8a#4dP`|?b^Z_opxvhcEkS4_J3%Z3+D(OP`J>T3h+wr8dw<0H~KjgRnoT8txER} z2W!lj(PxJ^Z}JspV|0oU5?(?62a?pO^=Y0j0hz&3;3ZJQSf%{Uzooa=ZTd665Qm$q zSCDpu$}U{3!K6G?kNRVB*;QI*2-9D)7P0YwTFwSR8{4ERd1I9~tK;$720pX~Dey<8 zPKS;4^M>$vF`KFMX{gee9mSY*9B&Aki~7;iOy*jP;iLdVK)k=N4F`AAmTPEaD(rE@ z>yHF{5an7Nm-H_#Y$rQQ(MTSGXjLP=L-7;Z4rB z&f%*$vv8OR7f6PCjzYbq$`x|Q)>3|aSD2*{y}Plq0T97q1ya-=c|D1GkcwpUI3}~W zaEYO-!c>Ux9Z^NQB&H*zNRc0qH!42F`~cpiD^Uy*(wKch3Zw2d|7Oubj*BB&BcQR0 zwTu61Ef_W_$m|gUjAsNtN-X?hr@@FI<25T7EkI7l(s+&a$@^OM0BT=)zxiP^er?+kOa9_#Ol0-?xdYr;z}T4OfN~R+a*tr-i#tbND-LN&TlgU#R`uXJ{L@qO6REqgUBccWOLH5C_N6=(ynw` zTYPlVn)R-({qijRUBA|lch;a^SpF^Nbe!&Vb@BDx-1t4#Hm=-dBhEO|rorlv8%Khv zK>x>tkeMw-4f-}vU=J9kEe#40!GNu9flEhKgZI=qG97@C6Cs(0^6KUjGbYY}z7Xjr zFTm(f+9dxO*aq5m>Gh%oLVUf)w*@@kA=yP9Lhe3UbA87hGj5imgAz$9b@4Yp;vxCS zcKjegsA(k)4t)7QpF3#tz2V;R-egC*>wkEsM2h6*Xtjj zd2-x>#|{VM$2cf?yT6kCYCSATSR9#*nN3am<0xX0Cyp$Ryn{>7FD>BpiDhx~dtq6bSXE)B z&=Ms?Y-mELr3AF^s?%Nx;nN38H6i_?=Hode_bD(1up|X8c()?y$Q>E={gGEu!SUx~ z9VcQ|E24!W5V^ngP0)BLg%vTA&pQGo;0zfW2Kwyg1_R;wbDP3^Z+?JHuOk8xSGmdi z-q!HzySV*^+P?4e^VkhzeigD4iwP5W5nhcoPKscrBS9zHgHWzS;EIP!t(fT8B~Xi1 z8am3G1YAZesMt`T+tizV-!F&*EYQIe_-Bk2Doz1!!*w}5t+3#TIO;whC+ZmmRSPOu zhW9$5fvIp)ZZv%%U7=sm!lXsgYw#~nC~QuWYKlDcCKTctoWD!CzGg3`Sc)OeF4U`G zZ}#~H`=S@;=yhluF6V@XS3bAQ>vBc~;BwqhK&5S7#N{*v(rUnzVi~6v>CghO$2gh? zv3a>s;OFJ4C+3c=p%wFd9Z23#ZpLua^*#{4*KUor&aB=Y_0sU@3d(l;9(t(r6V!I- z)*FX-xJ)06|Kl4(velHlpiTo=>pX}5+*9_?XQ6tz`PX<4H*v9}Gv3KlQ&YX;SD;E^g}$b6e4@s1;M^yc0+5VWpoKmGj4 zbGvwNzw1G9*&{HOj&yejb5mT`mv1oz6VPKx3r8X3d8++#k={4cXo2Oi^@{D&$?)gr zCu#o28w&(k7NDe{t1Z1^f-R1iuYY0zO-h-h3=5L{x#~)cp~S)~Pr5dN0v>{Rw<{hd z-zzHILwIDUE{5h&Xl^!~c>kK@6Ghh4`%lHT?-jq%!TdN{n08G`TO&xitJ~|@TPlvk z;=@AQRpWs?%O0v+YG&;k68;R_-#mcr)C9PL9&h|2$B4IQG_{SW2CWjT zKX>^3abyBa+o8O&QXVa^NA2t*r=^y-Y9y7E#}CJJf=@OV{D@` zb1K={6pHA2suADs&Z_?X9X}K{`N*1r3r_2v%>Z@y=5fY4w+uoTyhqc3-@YzIb=Sg> zhUOQN7rE5KFy2rA^YB^IE3=LEJhRigi*QAL2&zd1A&8-uJmBNK1sn-l#^+j^I;5qH z-+=_JyVD>1H&7+K92``&PK`eAsfRwJG-Gs_T@f`<9}If^3yFt~8P_}Px%&V#z;Vvl zMol)EqRq;sLR>y|>l_$VSO5VhXUE8vcN3I`Kxs2Qfb+Cu&H2|Cg;58=89mWSzND2G zfKdVsYPVz^abeOlrs(L@;+T@oZ5-sB0}f?{d-vv)tyoHkHRv3jo&B9| z+^g{GTBtbKdFvf>-*h}E9P?cKj%R*6Z!6)C`5MG15@NXb`)rtDjL*iD%5P?Nh39#Y zZKJ_flf__LvL6b)-@KG0@m^mKDRe~ci-kJwJOi#-OTt+$4UKX;Ha>UI-PM{2hbn>E zMr_Ajb}*$_8YKx>%vt+ar`HrKJicdq;~PQ6zelt(HrNuJeGtmlo9lJY8?bSNv|+E$ zbJBWjweL;0v(o_b*RO`coTtd*6jJ1g4k=C&$iUyP&RGX%$nGMx!06MCU%!eVOAw1* zFbSo_v2jwkeyK{#9;skEadOEV=$s6~eFwzD@c~E)db2<>+E@(y2WVQE1K6=;>l(_t;88Zc z2>2n?Dn@IkSQag`Dh>AJLoc3MH1-rNo~x1c&TqHL)`3xdlFrpp%#i60-Kpj6!$ z#mFCWO?U|sYzCp-zgmY&iR2xkM{I9hg*-bm{P`#v|&B{LHG`ld#ieLIEja z#kv_)6G9>BQ<0Z^aTHG~`o1jnr+-gN(gHT)xc5&#;sR0Zx#oNobyHH+2Wd<3xXjt$ z`LM)Y@+qkhA@p}gX!p^6^m`JbQ6f?_H{cdaR>_hda{%Jlb&Ne6(h8O-jTj?tC#~;l zMZ0j;5n_nz?xMrBPjSGj6(uWn-)~ zXkKI`qh$~yPR&fSBNFnQ8*~Ys1eG~&c%+&gn#mXNX%>>Ck|{?Ye0|>DhOyAI$ED;m zN^w>Z6ylWcU%Glnv9xPW#RI$vq%M&Oh>@@_kQjyb3W(0G?{10Odd6vB$m z=l`Sm{WP{dmYdkk%#?2mX|b*`cTkrP8ZrNX&`DU)F8xJ6qDOXh(2JW{o|igW#>K7t z<4b^~=PDVo&R}F^)!}63rakcUlNg|zqLtOw_ts_;e#r|-O@7n0HZI;Mf*W;Wj__wo zS7aKmU>$xwF7b<(k9T6Nf?fv@%@*ey=N2b*s1wO65s4b3CAV>^QNHrb3&V0cWycH# zAob%2eJDD3pAvLfjKvB(-WvM<3(n_wy~~JsyV;(YEIj_lbYt;nm}j$gcX-CJ3rz-y zB+^4XziMRe(H;Twa=9vBWd{ z#+b%!CWmq-})PRZ^B1<0R*zE#A5gr#gm00qvhO-cfqiOYycz3SpwUMm0*OJ4) zKu|$JLszIdXDok5v4#t#@@HZ%VT;^0AS}Zx1qAgLwU87Lt+$b#- zHKYH=1gMdRblLDX{4X|o4Kn6n8hxqw6gdS>)@^ZdlQj+7}Xw5o- zSa!@tG{c1c=eVJ!XsfuGx*L#@7}>SmIg^dRFs+(lPuCp%j-=~6c4yo3^J~#U?6(&H zj(t!+wurt+B1?M_@0_Rk)I~o6jEkXRzw!r`I*y zvN+9-YsJ+iZl3uQ!;3+NfwCuoF`Dal&iwb^R$eEmFDw*kWc`2wjS$5tz!3s(XD5ON zO{KyrHPw%kJHxa=Oyjw4zhX4uC!TawhFy_17BqaOa{ON`N~Pvh&Y9uXk4^J-bBOXyo|HWse6B3)w>r-UnMCZw(WwvW;`nf+sR>BE zjaba-RD#H7r2049hr0KXxNqaW?+&=H_ClAS3j2SHsIy~=jYCtHS-<~n_$d4Vnvsh3 zU66ha8wSBHOp;O#tI|7@4ip9ETow^ht;Uh?%`SC$81Vo}+7JB%-shQ#*IS}Dh2N!5 zodYptM4%Enhn>gI7T_@F%iDg{C}Kok${D99#v`M;D%Mb?<{7D0Em!1L$SM{PG4b}O zOctXK+(!5Q;?CA1tTDfr02Td}0sLtBBgqq|b6nLa0uNaL@Y;4?ojgNaI)Nu%lPSfH zT|mC^nftabSUxkSj!>o0i<_uplb0YRIl+t~M@KdSqL)wgpDnR!54US|u+$9@KCWd3 zl$Jr{`B^3*CV`Y=XN@%xy>+;BN;U2V$aUOxakPJ2T>Yz7*-#RJRVZe8{42IOYKG7Z zL%R`}1Uuc>8|8a$6Eo^AD6yogqM-*7(TYx&ZV*#NMgbYScb2&RNRMCA%xQ3F<_b7+ zA%^$P-<#HmMrK!pFyRLx?IomNeiE`GrsxP9fp=KmmlapjC#im=N`iGnb5t(q<;rkF zfO&`PTx=t|JKmc@jWiwLkP%TL9v~qI{|b^bFrA|o1p*2iMQHy1FN@$SqktZ$`*DX? z{LLHoH`v)28&*ev6Fi}?V#yC=G8X9aLUhs<@Df3p4@g9j%bS3O)fJG)jBypI$^}z) zp+P{aFcK3Mz#jp>KqRS1jSnFr(+2~VjZ*80@}E^~B`LEZ9{kCh-ia$4De@5|`7?jB zqy8`5`hT13eF56_Wz#RQXQuuO5&kFRe{MDoRz_wfZvSuo|H{e5^*{dq`d|6)|1|mU zkN?yEXJC=~`FYIjc>ZMQcz*3h3U^MLGz|F-l8qdC6w0ksCDFy)w%>wW2Lei+w17%h zkr#R_1@;@W$-L?Up2@It@E(5X09u&n2pJ-Iq%1f=iKXtX=4t0E=ltob?Ny7QK!IvN z#idf|D`5BO_3^FuCg$l#EVLm1_ld&Q6Y;MqdRR^O%23Omm(Js|-UBr@GcV+~{gXlr*^92O zs2%zWtZ_pr>Es7KM%<)im9l1X}4u$Y0wa9$UXN&s|;Bfu=Q-S^|C1 zU)Pp_`#TOKSL1sX3y{wCq_|avtdL&%-HG7+9GV4djtD%7{(o-2iEO>sM`I5FcYXH@ zz55vtxzlG2Pq37a%J|J@1?%L))4?pTpx!ncCnCJR={Z3WrqCQB)2;auSJ88V&bt0e z16}$@{R6qf0`{=9n4G3V)?9EBF_zh6u!7Qpz_uQ7TGNk?5MxCdQYGA&-~HB{6>V)t zJsed~U`7;wK1)LrM8H05Mi#Zam?>@pFeABG7&NFE9AJ?l{R_bN+>EZ|H$)1J2vn6I z#RxDSf~EyLUxbG-lcM9`f?&aFAVV5=K9hWa?3h`Y2{Z8sB+oxuUwT;0MPwn9hcmL`SPi08tEeK-rSz!LY=8&F31E`l z`r8;6s%~nW3-`n1zkk9p)c~li5p-~#xm)Fcp#;=&Zn*6aP~J6kHY{cv+7bCbt*ngN zG2CkysWA#lsSQ36U(6aPhfSWk_N%4nIuhLR-R0HQ7KcjgU?Q(FJ$eIv^5d9t{VQN)=>vfW(+^|nTFEQS%6-rsY; z_;XRMLmtWm4Wr@}6|6A80hW>&4@I}%1DDBRyPyxFMh;%8=JTt#}{|wB&lG>&yT&RPvU^f?$39d4qqVAEo&r_s^u6Uy85nd6H?hO z{cW_Ttn3#nPhG^po(p7&SG}7TaOMl`GH03c4gG4mb@}uT%9+3^I4H`6`F>ap|HwxgsgJ3As zK;DBKMuXJ1g|+F|3#Jr@4N9=rL?`{11}AqChlRS^dmP+znj5ga_LR>J>h&ElHnHaE zwkY7%*B^(u6(GsG(YOx+0TMxTzquEYu9xvm2EgHghM{5=D4~VR333pa-%BYeVL@Ut zuqFNTk5LP~Jyrkk#M}tWNkPfGGsA5=E}A#%r;hktPu{YDawuF+PtbNzP}{28omx9F zcJhM+hWrVYvk{By1SP$W0zr46qpnWXoB;S=@OugXv00_8t^Pu?UybIp0}euDC2vN# zzhMPZIyrrQ2FW>&bX`SjYo!r7gL+#VzGglIUmi-j!xo8~PrvV}*;QqL`}>{i`Zs5J zy`|1`a=S3lI-`W*Na)Pg@2Fr;Yb4Is+)*dPIYOt`xUM{0NA1d&D>E{-P{=q_{uP7- zX`t&N$V)J5aFx9J48D{UJ#`SUpbenO2QpnsezvDGK8LHxQowRHpNiU83@}s}OD4yS znR=tz&FKTiHB8Pe^xJ zeX`u`O}ja31yZHkmKx>a1a(+YYAMh@8v(D+dvI?*SDnY*8^Mv6N+Q4$s3!BACvnP= zIz@b;_>~pV(fl5ZAf)**W1<)sixb6~{=|G9qQ8fb9gW>SwW`~Xew5}zda6L@we~2& zF}vOq@R3PY>)$l`(+H{i*rNY34n_+R!ob@`yhq*hI)HL?`AdIvviMI@L&RU|? z`3Np0y?S)y$RCktVehO@cgiVqlEHB$*AOb zRE9hE#?R9lFd^IHz|ro+VI0pTh6Lq7|1vJ?HiiK!LTkt}RHlH%lL%#k-V#4*S~%T# z+?4>yCEC?aZQ85tQO zxM5zES?zPl*Zj7z&7|~4cL#*>{e{?~$`hJ$5MnM|DZ!*mAew4DYS$<=s7>S)hz!j) z-V0akS5}cl4<-VbylH!SNKr7Q?CoAKis@J!Q5tv+7Di}Ui~;C48Z1JNbJ6mBCH)mS z6L2*ZO7sA=#)oLp`z3nW6#_;+Cmelc$L*cyt;JuQO=?YiP(GV zg%Uc{`kSL{LkfTCQOSs#2fFhXRK{_>Aj2RX5TrY324>Jf?EP+{oMtj7LUk^sUE`f& z3Ys-r?QC}1OWcmmG(Nz#ZNcBT;>wySy&~bJ%weVT0*ctcDa%3zir}7c6UTXrEJ#-K zuS`<&D3P5UJym+b=cuVrM+ZR+Uq!|3sMTZ2LCx%j$Yt4(nqd~hL-4>j(TgBqwi zm=KyxuY6uUT2Dl#)`AF$NxDZaN()E{?HiZD&9^so`=T6`qG8jtD^zu)h{E8^ie$3x zJ&n@ylr>%OCE4BdWfWjKNlLFA+grbUpbamD8vsV@8?}FSaqqIOv|r|3o$mNl@mhnD zGD>3v(i3DR@xmaKGlQ2}XlQwm{XxA z{m7q4N{|G$Evz#KJU7ro`ylAFS;9*EP*74ZU9E-tv$FsnfZ%`BuU`D)H$el^zQ;7H z#Jrpi%Lye9*2kw2x79Vqen~V$HSXVp`=*o)HXl$}G+EXa-+Ydgt%aFh0NK0`W`8P- zq)3kO&)+9YWqt zF}>`pYZT50gP;(~dNKv>@jRU7joLm(a#3{82(pmgO-yf>KG7W5oO+o;{g9T0GEcIo z(gYT4vXaK7Bc4drDy5ljE-k?`Ol!%Bxx+R66x>)IXX)Px(2OY*AZqo1+0t= zxfgur{s>dgX)2x0Z*%sT0OKrqXkhXZG>QOwptm4z&cj6%Q^wbm7nX2uTa*ulm=NTN zCZ&>Y-dMLo?EF{^g88TndaH6qjJB2UM!^bc7vBt&JseulfW#Sk-%#HVqR?A`Zs!@; z6!h}d4cX#_-m_81k2wl2?4K*r79%m+Zo0=X_b_*tuMF_1MG``ov?o-}DG7RFuokIV z1i~_=;9y0qb zPn6!yZ-XeU5LIzT;BWHK_zzll*8!b}I7UOR85{K`5P1`Pt2dvcV+jb$yuCC9Zk>!C zW)7`HT$}8qCzaaQi)+G}d(y)B&Hbyj^n1@x#GPH$E_f;}`tf+^<`XpJ zoD^Xy@PSdN%W#KpX4luH3_@KG3v(okaq~ydzpvC=p1B{ei&r?Un*+6`ui;QE>t*|= zTfY?Kgj%~o$2?k`N3+ni`Z(iNtS*S#MSL8J-SB7sh~-6^#E3S{a45kB5vJwyfS+=> zLlAbceGf~!Ja(PN`NdXuCR;99nEkrf=D92NV>g!-U=}i zBt@HF{8Hrwh<0m2$7SJU$T%b+aNxiV-ZDXCp_7gBlc#IASkF5UOuk1a&VRP#9ad#u zVTTaAe{kHoz9v7+j*ECbdqNh$%7;%s-Ruf|lnnWEJ$rI13f)dTX){0hz2KDy$Vj4+ zGmy#YvevTF!MRjgQ9yoQIXUT0d45&CXg^rOkdY}?xh+VU1k6EwRa2rSZnNTD*nC`k z8Y%aFMi9jrKCVy9?Kr7ggr*#rk~M24T;T!xk;HHTc{C!%wDJj%;Bk(e$ugB&hg7nm|&}MHW!v38l!f}@{2XpJUTiIhx zI;pjS%%|dE;jfp{Oj>6iZ$qq3sgEDO|Y(UX|&e@bZ8Mg|S_84MzpW|EK zGYdef)}Pk$wuDGVEy7(P_#tICx{20RHlY9tUE#_f+i_bWilqba3_|koe*_^lpHx@% zeiUyCZ&b;1wBhQa=Py!kR1I6pbUsu*n`sn%!HU4p>%YQbSif%0H zk)^;w*o0TiYo8}R#>k6|H+M$cV~?Ky#X}25q#z4(W>CR-l?_KMST~gxn=!Vp{MZ}z za(nz{R4WW+H75*Q2ikg;l*t=tPF6j6V)eK%V~)SXA?{*$^cl*Uye%pftg#7yU*JcE z*{ScrrV+7+BkdBNkK)^dd*CxMrT<)C(|NmE{j~d#1w2z=B&?4K&p$27(SCB_T-@Ik z{()mh-?M=$*>)3+_??JHW&XX)A4Z@9He#(cmTO(wuB_~k>CLwN!ptbM*(3lHEn(gL z@@L%DWJOzOp}!sKxHhz2NH6w$Ub78p6P@Tr>HZuuNI}|9Tn1hHR<9aB5#nr!Z`-Bh%t3szCM4JJVC`r0o_$1#D{Q6f`L7r znr(MA=ByUQukh7K<_b!pU;lfbp%=@7U~p8&Cah|TS_l9ts1Q-ayxhW)up!TZ48P|Q zp{2)*_|M1<@}csEA?2PV=#%6~8dYXW(v9!`pQ!r(&VOA@y#LqRKmTX^my?zIfAD{D zaDMwQ{`;SV|KfuFJO4e-hKn&D^WF_G>M6cC&->}|c);vAaeUVsUs6Qnp2cS`LzXOp z#>5kdMpqBJS$|CFLaW<=PN_u*WJknnjf1SGoJ>f`KogHbq|*JJG_{1?!ABb^?Fx1zl4j(GgYDhkM<7pS$^TKxvRPRR=IPDr>gl$HgtKP+vVT0kjiIvP)4y5ukX?y(9ObSj^d-Tpj$RFW%^#5}1p#gh8MC-r9q5$YV+_AYCerA0L9CUW)l(G4IO-<2-p}?YNE;&yL!0(t{EtQc(yy`forgo=_jsIuHwL3>BX#=Fj#ve{U7xBAqYS{G?Wz|SB@K2?3=@&i zlPv*p7-WU5m)C5gz8`bn9ZuXGdm{-P+g}$W2MPl&&fh+}oPONwFbR8k9H5-w;F1+- z#?|*Zed`})+YqSYzh^6?m)sb6M9GfjT$M9-KAU*U= z*wV#(>e>%QlO+X!FI;6H*-ZXS)=boF*3jq2&?)ed40C6 zWSFaCM6KaSETy>iVZ;P)l{~T)3?J7Psnh!U zH=Nutd-16~jiMQ{&O@_LinkBhL+E$`UVOZI|eFtbTo*ODXa(D(-1MIjZuZwmZMrd0!_v z26CkHR-%Z}l@XWy62=?uxd3{d zFeeqFFC)@NsyU0PTo>Tu=~3^Ok~0xh2O15$;N>~L%$u7zp~{-7sDz9U|B_8fL6C9| zi7JX?9gSC(!aX05JiYtWqICl^=DH-O?j#`}-%n z$*D+(|5)EL>~Z#EkQm6;%W<$eHl)R3cFUr1AZoL)C+PI-)QL z+Mq#?nAUzH;BxMsl=IWl;JxmtaSmQNQbi3HP^m-e3|_B1NqtgU*7VLKfQW)XN9)WP2j2?S1pc#@#Arnbr9ud`=V54COPHpv8LM4h=sJ z;$*MkQA}vBgSR8vc2HV9r;E-$-ypOiDgcmuPvSIr^Z1D|DFsl4*5p~7d6qb&{~)sh z2gEzwsb)T}I+_pWBVBhQ+(&`x@7NFRk+D9j4g2)^%u|(t9I(N(&=v_9@hb%Ecx7~^ zMVi3+=jI!82Pwtg-&aRRTrg1ctSfVLspk9%bj=#xgDo#>w+}uU?t3T}9Pty!ibJUt z7VLDYaiqOIDMwgPdtwoz44kt)5wd+B&(_56r764+(6uYlHuokeeX8XUu=d;CvW_xI zm@xqS^4Y}A>H;MythS@Kau7N`Ihm~b9b=q?b-Bw^!_vFxy;SZA73-S;ujeP5H_f*l zVg`Oi30-pX!w7yfStQc{{+wlIQmCl#TphKTNEuZxY`-p^|1 z*w2v-^|ZO!TpZVq$aXF{Ty+c85V{nL%LoY>0mV!m%gFcdB~6pycwb0a=*SH@#<&Q= z38qop3)(KE?w?bw|lB#|A=sgv#&_ztn0(D6QwbDH3qS(WiD^&i_3` zqLBl0#1mOt)hgzHaN|JN9&^|chv2)$Pq18d2E|LVk%+VdMha+mEQ1a!L~-^*40h0B4@4P5n!@wl_=;ZA63EM@=W zibF!B;trG-!Dedza_Xhkrl#8Idd_$s*XyMkq)0u9LoxDSr|M(hsZ^=dQ1MZbR3X=d zjAw<+SVu<5*gWXKlvI#3xLh-(Qx$TI}lPjj;d<+&xBR49_!6|ID-? zOnl1L@_RvL2o|4b#fHP<;OvB-xzmRtcSyL9j}1;r1Pc=EPxc2h*x7ivz%G3pb~zA; z9YVNfb?8c|F?~QeOmxN6iVs^diN55;-H?Nx#g1WW)&KXawDlEP$ zu479CD@YfFg-Lk+9QsNy__bH_)rcoN`j9m}Sa@J6YpZ$x{WO5x8|`-ZYqf5qSkCR^ zISh`1mPekC6)f%yfUW-3g`x2c)ve|m59joVE~JI8=@w#K2luntb=8Zy?sOIGmyeIR z)7Z|yf@)*vy2?bcOQyoA)W$z-J@G1$I_O6etR$E9DcHvD>3dHJ&t_9*hSnVngtuc% zC;Vf~u;e6;<;cuPS8N>RrB9RG+5nc9EU12A2E%HVVgUZqyJ=~c68wmLEXAiZCNRo&To(5M8U zunt_0AJTEWUr0JNRlOXRB>k8!^wrwN92-%u9*S9FhgoK?TP|0+{mgFx{>534FJ zJtzzyQ@{s>xdJ&*dC%TmP1?kzlHS#~!lTzG^@TbXUVZFZfV&Ik zfL{LQ6S`NgH)12Ys|{6FPc5ujla6N2q?|iC#iiN}Ebyoyb~LPdTCQCXcCdPfn+%4f zAs+{JpXrPnlo`k5e$ZW4M-?b17xf<>MjzEG)y651@i>xdgHVs5H1l$VComYK=Qw$- z6n-FMS5iH&i(jjz3=ia*eS1h(|?wEzqyj zuwhZfBc`ZWwr;}S(}2*vL5w23BwS%qVK&#iaL*8&eI#-ryX@bDAbk4w{Z0}tm4`x) zHW3R-<)-_d5yELnan0;0NfNCiZ9KOa10kIAQ0EX@5G|zvpLDY|b+^gy@RHsm@?@Mg z>sR?nb*LyT>Hsf-7+_LfY}s2^)be;FSm89-k>{WB>p-XZ*Y=l|bE)uezzGmqQUbxL z6|Vp)s;y$Z6q+b)JPn%%bMYN8vwA9}_doMq*k|)S*O>y?y3Z@0mT8zpHs;hFe@8B+*l*`}fGI%i zc5iK=Mb$9jNu_kLfqc$6i}Y?iUYuQjw7=9BKmUXiXRUklrgr!>?tZyExcvp1eJ|+~IEC_f5KhMb|9nw3SIJuu{RJEu6%5GY$c0hO_`eNt@K_3QIBFkbdyQ zV_Y+>ejLVc`Mwn%9-Ck|XMPRA(cNaj82`%&Xf`>@`TH{~`{~`q)fY$B2KNBIA@P

      k2; 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 z zCQ#8f@^!$5*jba3$+%-Q*t@jUyOE8Jr2R&s%E@X~xevISxT|Fe;34`M(xK6dk4_u} z?7;xVw*}3oQxb#28+X6{9s8%~Gyl2wDtxqcCa%gaP+(haSBRT0f?4^&8CIFti}BA2 z>yMzu7@$$H-eh5N>9z^5Ewr#%5`1(=3+ibsGEZ_d>TDhzGCW#5C}8Yd+um(1mvo>| z(#FO&ube|JZ2UcW!@O^9=M6+~pK>~VwCuWakNeEL{NAhQe7{-cE-+P2pPk-jHRJ%Z z+(h_UQAt}sZ79rCE5%MB>j%Zjn|z`jRV>Vp28)(&7AA|$V4#8q>pRi4>q#ow$ZDe4 zLj~UL*$;RWmV!c+CYEdj4|~hM-B#Kn$aJC3mO%5fwc#_7cgpvD#ja%Dt{q9-F8`Of z&XM;ueUyB4lc#6lU2V3|D5L%S1~&UBIZk|BI|b_#UwHMrivQHzL=XYA8V&mPw-6h5 zI2m`tj6GUG69-fPHKqBfP~Fbf1OH>LHK&{_MZ<1xOq3!U%zZo;SXx~U19BOrTkiH3 z!833H;u-h=U#2${-HnMs=Y&N_N|SHu5ltA4`!ONjSo;r5atqtv*zr-;YnSVCvPQx{ z1#$jq(}Gu}l_40&=DP4-Y;hSi*}*P1DIsVqFvv6(^7tBf8d~~fKiAKaP$4_?1O9o` zxo&M(Z776dWthPCPQx{S)c^p4n9DC-D>JUlJ&?d8!FlwEa;hOC*X>ZY=rU1!pb2*t|IGLE`3+k{%t>4a^Q0)j*1sP5_V=d z_ag8JLJ^prOx(+txiy10C$6Z(A^jm_l71X6r+!DAv(NkD8%4@wO~jnd7h~}Nt_N`2 zFn$y9M~5wes7c|KRORv&0kX1)hgNXK8aRgtb`d&g?$iG^|#s5vMv z?cKh@g9A6{Wmt1}R>-{h@m}wj2!y?ogNZ{-!!6(Y0I1MNiGUFDTJQ|Yal+}QWG(1(A zGjWVe&=SLjC>3%V3m`+!!gqZlJm`}*nUA$Yo6U9;_5 z%F(Zgv=;gi9OZ`U&e;0gz9n}>+{2anF&RwLv1DqQ)^CuFz{oU1VD~TFYdHL^8Gb{E!+AEFZ3|j_sP0D{<=6)p#9)XIKn?T6F8Dby5%wYx()7!xLlsFGcpLwVsaZp5tmrFfC$( zs!S4%03!){I2AbrUJzGq3CpE*horI=icgbBXWM8*(m3;7>dYCbGIk*{P)vk7kQ-(T zk?HL4d;q_D&^O+}P z1h-pZCy}-p1k*88>TXppNE2pE-?gvTNX~ogJ7NtRENg@|&IF%>{4;lT!K$cPu zJEILdYNk{X2|uGKH6Aqol%0-Gl)| z;t>G4ZEUZc1fc4&O0p0bhFX02e#O7hk@U!f6w#P4W+?qXkBuZY!9~-zGQ(@&@lDf9 zE=9#?3XD0otP`K=<2Yt9RRpLO!6BUXuMf}Z?SCmB`5#;hObbLR;^iqVe)L+6dy0s? zb)wlr={Rewfx?z9Z{B(zehXmuQb;EhNmA<;KsbZG94&@-zLNophp1|RG790?#jp?M zvY^4VSfO7HhoTd(#4;J;Ibk?sFm{`AxIz&tC$TdTL!Lxn$Bmd`KhPPYg;+`6_!a)! zwDSMf|KVz9V)6ew|A&K%gX90?|FHkJ|KtA>{|5lkK}O3N0KldBuLG1-p}qtFAnpIt z6ta4jsa0WitiI{L*)Z&UNcf_msp*bm*|v&rGBIOBn`$B*9G1^6Bf1kJ6Fw`G0Nx7> zlNpVYq{PN%kfHd`QXeS>1`CAKYbcrWirdg4G-u_Ox0jz+wl$v<+&{{DF2DS3)6?s( zv}-=2zLV8C%=VrZ_OAYTu5Ns{_9Y^%ls=jDYWT0~V~wUu7w=tq({uZ4W}5#J_Fyx$ z<#R*4)xyJDOqXr$h0O=i$Lnt1%fv@L;PrLW@8IXsRQA*G&naOyFIVRuT+^5;I~654 z)BMYwMh|Y)ABRtsopEpVn=gGg?ztbc7sAasN3X`=bDC}+ivIgaytp4rfJ5kMH`a z)1{KF=TvI-$6szb-#%P^Yx$gN3O|kARa*f3w)@jQ_V*wB*A;U*Z`Jp7PN*|PX^{e< zU?2yCQsUw&r=Qj8KtSLRLh~g@VN!5Ix}kGx`S~h}=%<43?$~ptoXQV??wau$VFdXkCyzqz)<6hyG12cb ziGmah!RR@-{6kbF&-hA=_{sS;ZZsTluQ zkdc8A$A2c`M_s}G`+}(T~ zcp+=Qe5@9J>w3tFIjg5;BG5h&k7Hz*VWsqrA}@>ziYKBbPmw^1z#t|>Z{CbM1_a}G z`QzCSf>j2$c>}(cR@hY3y8iop?fyY1?F$q83+}P zGSk;grDUu~!KW#*R_MKT^-LEP!0%LN+TNz3%4eW>#eHAP$x{VavBKU)*v-jXC)?+h zcx8z3^Snig^7DCvKFpQff(`{#E&-d2G8l>dxg7JND%vP zQMo-i1@LxmtJuJ{x|Mt)4Ys60E-l&9_Cqe~$6MZ+8aisg=-or^s&HDi$0^66f?a$n zgH}1mYJLi_AOnpGDOJ4tA3IT>-W)h z+PX$IPyH5qSIIIaE2~ePtR%~{Z--O+gT+2>W+l|)Ds$8n@(4f7*5=RFC0vE1eh2zJ zFqs8lI0+7{jXBr~4KJVudu%2$1pOz60_3`mS`jPqkIyBUpU^=8fRCd8sgQa4yJVm& z_NqnloXjC6Oy)}R`C?_@^TSm*NCH%f+&Af4j4WQoM~e)T-#~jSc#9`(acC&?AY&@$0cTS}!8rrgTwWs=VNDpyz#q|dCRzhr1e04B$emIZ~#cb0zQjdNbqa3D}G)lDh zrw6E{WGl|yx~1{RY5D|%KXV*W`x@Gk+Jr*~9)zlFd&0c;*S+Iq3hRh9c?YIqQTu*O zb3{D(-?5byb(r` zAavB>(O`!rj&Z@!t2 z>|_6R^}aDE6uZKNbi~}}9pt`6qJjiAdi-!C0zl~)I6yv|fe#OpLgS-}Dv4avO5jM! zv|pb#U2Fi+8d)lG4!z6W?OQ1m8s^ z2*o7~*Wj~Z4-o<`9H&%pGP%SpMN>;nGrZ1QIjH9(we98tAi%uKt4KEdx5e{^E8f95I zEmMPsgfGQp{t4%zfN&Y+h#x?3sBEPg233<~jl6)a&uB1joJFWrF9caplkMmPzL=O+ zcu`o5jJae0L9sbKrXpHgvL&nrA{>B0E&EvwzVcgEGTxL;PU}e2lE?!T9xQs0L-S4A zCDxFukN+~zj-$lhdVsH$W{6kOa%c|EBzOyPYK{fh#WqG42BWX`4BaGI>f)FE8CJHq zl@Q;d{<>MT3;Ua&&-Nob>T8>~AQT;%X71tLTDTLDRPFtiw`ct4K|0EXd{N ziP3*4i~>7;By{Ezdv+ENiWp{v2@}V_yqc;_SBRKG8zSqxzkV6_#{bNj%t2q705dik z{Fi#ur^0SVAnroPMs>cKKq>%&(OIOWCXRSZ$_D>qKm}704IzsIRCx2)Rg|k(JB40u znEfcMCV&AmC6M`qV(#5QxMMIf`=Q*?Y7ZCw%t^%uv1Dt=8Z)|e=vhyRGh7) zcKtfeO6{_(v6VN_(-ZLZ=;_=Ha!BI~LaL_q>+ zBMatr-xrm?4{k{>lwVF2#u%xjVkMP50IL7u1xPMkOqSNunZLYHL&UNQB&Zuu=Z~{( zY)RJsNEC=76(@@`@tF2dym$7yb2nA~$_(wJ_OM1^BSDiyn1u|p6JC!cj)Yxt1(3kh zd&&z5K@}GhzSFxpu6$!QaTvuncU+_h$+x$rj!&bB;MfGbPWb}Myk7oo^uEG+T7j#~ z6V0jRATObBlH+m?tYPAwT%q2kdXYe#u;0~U*R(p}~%TZ~bq|MXo6O=5X6 zklmMk`hcy7MaU16+512B41)(SIG@PQ54ogvO9p`X3IkYd9) zn$Pwb)}0Q7;@^6h*Sbn-vRQa3E($yk z5+`^DtAH88Ovf+@$&fNU(q+WKhTb+y92dlsJ_?#FN)-7yqB5@DGZ2c{XBxgRTY(@~ zz6@@AmfO6Pd^~>7 zkY!UJI2B5Mt|WOr$X+sN?_)R_rK7RTEKHl@0;LibRx)Nv%9Fv!AAb9aF5@GS0WzBa z2YH>~zbQ!}6gDqEMIZYpU|{6@tj3i9aeTKRLAw*f7JrYJGG0sl?g-`1+m+I?YENxD zsg4CKdjkyv3CnQN?!v04{jna;=95glsZtb?7{ml@Cak=$P+jv|Y4a@A|}66*Fr%WF3ocJwkoCfu$R#c}Xv|}x;hxu4f4gbRtRF+~nGc%Fk^GpO z3ep5FtPJFCWV{t7Cf=17OmHT;q?2J#QF!RuAA5aSa#hPQ$7K;%va35MpC+0sgk~A- z6z`F1!eJOoJVL=}OLr~{L2v6MRis=M2Z+9F^J>V@{K`QFNo;Xc#Esp`K{wR9!UMw( zTwZiWR$*V<6QOw>)&D&1_RsbOA`=7FM?#5ZfUwkTB)56X%;h)aen)=_C+W1r68<@M zLoo`6+o1L&m3LnS#w+eRJZ$rZE6mNz#4<}vEhA-7w2_KcWOm|ZItR7ltgR2~`PuZ= z&E02jxS0r|N~y*OHnd$n?IoHmdz?5<&GE3zdk+3?SB)C^z(LwCO!{OdP-g} z%dZ&?g^YKmzwHv1mRr3-57JlZ@tEtdQQ&k*N-|jk~Xj+q#u-97x#@9%Pps@iL>@ z2~Jmk85HtF;M)iALz*meKRwEE6A75OYtr^B{ylxG)ZvP-A z^z^Fn^cPl07yIbKXx~wUMonfJI-a&2jkd7_wLG?`@iMcjO3{(ma6^;Y;{oO_S zTKv-|iS=Gm5g78o0nvx+hPSA+pRX4*-_m$)hTo_5D=*gcnY1Rc#?+EZL%C$xO|lUV zYnz6(!|F)~YH(7i87y;?b zeEH8@5hUyUHPvJcCI!bLXD$TVT~<~O=iM&Q;pKagl-Kp?Z2}zdW-LN;FjUmKs}=5% z*6PUpiH4;5_mWCv<-+SqBNm;OkauQE9W~phIj&x6hB^FjakI-sh%eM4L=FY1+S^lNo6F zxOIGgC;@C44f%E|m@VnxtyTSeAdTuNQYzxTitS;41XDl=!m5n21!FpYJdj$$%CE7n zZ<-&*@U~n(-|6Ieoo%H_@1A(`AB@8R0Mp&N>ITl`zE6wq?~A6kI5af9{BzU<60_{O zJ)Vl-eg)O={vIj^Z^(Yf&kOH=l7sJ)S-PHQsPEVRD*f-~^u5hcI`8$oRc>>tmh4&H z&;B*8qto--_;FcVi`!Gs3#IZjbj$g>~NWbzfYG}yRgBS*&XH`XKUe8r=QwW;^oA<&l zy)PSsGoQ(_8*7hE(wA~JJ8O?VUeWdWAJ1kl2j4nAV#!k8C@WC-5N(8Na|NF!eqGz! z?j3taspY9t{%d+@ub=X_tNzzrqq%mH6Xkm7v*dN*6?f8kk<;J47Q_@S=Zba;+kCF^ z+?5Ex=z*`{W*oPvz_^Yrhn&~?`y6imJ-S+1p6RSdpy|e@V4qWqE&Rntnb;z(6e1AN za^uSf19h#gdq^1yD2k<*DoH0!__H1E*FproLc@4{Tz_Q8ewEYyCu8E843tLo|DQ@x zRP#GJ6xtS*n(xE)-@@?!uKzkY*q9kum>D_!e+hv4f8xJ$vh)6L`Y$g#&wuN`|JU%} zWB(Wb9XVcCJ!9B^v$eVXFaZHkHXVhUfC)pxKoU1 zT7>MQ_rc%n?e+ZkR9$eebNqI0~}JEIcX=$+9#J6lKUw_#a@Mr7t;$aw9nK0 zsfe?bVN514U;w4z5%|xoXw6#r!gJ*&{%hFTi(bIZORB+20I~8Z2Kltm1`3{M zamALP)sq*e?`F4s>k-pS34AsMuX^hJ=JQh`6ARm{(7ctNge6=3;hkgO3NqhGqzV7W zF5BMSQfEMSrwav}@15YY`82tLcfq1$#yMV!?!M09!}_zn<#H0@LkVY^0hLNyy{VA& zm(Hjv6?EsgoT*W~iQQ9lmc70#gPxF&XEA;E_1bK=S)T)vHR%XB2E~&TtPV(BvX?HKkl^w4?@B zwnwyaeyU`vwtGL&LBd3;^?t$gsg*d^m6w}H=M0=@%j)O&IW6(Y$RaBNEwD5I2&0Tx zXm^x>)X7O~ndm&t66g3ZY5nUbcSCmK%jxP`6LY&&9^ALp?wt!cmG`zAJ+a@4MwBExFOU^E$%amZLhz z*9I}P4<~q3zp~9`BebUTCakNorYXV{jSX`W&tYzYwj97xMvS3+MSo8+_>gJuq+h2s zd7KXyewQs+TO@njtq?Gg8r-kbvGnjKr751BRlZg*3pvxA9o#mP^;%whPVQwH+xjdm zd;|s2!6*PkrQCts4T#EPSSdf^u$wAnAID12>uq<*=N7OF-n(>oy6%er_WY+)aRXJa ze*er$r_aqs>G0T}w)EX9t}MY(K4(q>VELVRO8FQRI>8&vw|=6P%n%$ z|93;V_~sHXAX1b16^m<(v$_LxgGG6G?yT)r($Z&LmC;{ef@XY3IOrfT1!N8HTzbO3 ziR7IgSQ!!xV`?^dXYcN?=5(Rk`@`Dhx;r=RP9H>pM|V&5G&G`ll))94#@#1eEoJk9 zYH<)w8TJd-(PRW~7?%_jLO~Q%iO%>YtzbN>6?UD(CZfP(J@m8xxrH`uoq>E6Dczl=TK&d=XD$*6Dp|nb4(9;cq(UqEUUdN{$*ou zto71Eo}!N%A*zpcK+2g=q?j`{^Ih}=jjrG#3$(*??gQByYNTrtG(Hi}JswsteK(Nb z)^w+lSieFxpH6Sbc)Zhxqi>xn40pmFP8lLo{Qih2lk3nTGh=hhSOFduI!6A+2Sec@ zBZH9ABK@tw^z&5O%56I#46&CB9^2;!a^|>^-v!H-7zE_e-dWSyl)XA2TF4*LC9tA}M!K3S6g^RO#hkMM)Y3YLyL)eC{WH7UX3PeH9`0?i| zg>n;)UrL=Gsaz+5e;lSod=YEI3XZ=CH*CoLfip0y2#dmrILwb?2ccCsFZ31*>BuC9 zkSx@~hqnkHnt0Kr)C$tBpq2(rgTko5@%QtTZ0`x%ZPj2aHg zh6wy`<0cu~NwplD+UlZFbb|>on)WbIC0ICSUL|Sb6bHTm$#oJqKw1R2G`6F>fY2K3 z3m5bdMGaOQc9$2GTg?gND2ho?eODTE6rYUbuek)F*5|_?^dMkj5VHSrR{$24Z`Baj zede?EoN@?p$0S$-2xwyp?bg&mNs8(TLPGu`tnQ)0eFd?FGKRO%hJHo@*bH!wG9AaO zFc57J;f_!lgLzgpO(+XED^wNS16Cdx4B=NJ14d*Zaf%H%ZCRg@43`-lrL^zVnhyu& z$Kr`-Lyf{gbDvi8{Fwwv`g&Qm#4*ne^cW`u>~B0WyVQ zD0iNvvsIG>Nu~J0>Xdj!-^1~%E_qZOP)!Nwe9bmj);1&p3)`^=`sr~~w-ibsWnaUGLLL`vcY!e}6kCsX@lf2OdWzkuiKB zI0$R?*zntx{XhN4B4AzIo-OeO6MRwsMgmGG z?fNF%DN|V~lId$64#m`E>o&6zCIQw4jIm(|*jplacBSTOG%HvcSaAf148(_oT>9@k zAi|zt(R+R+>UqDBwU00pfAW`3x{f(`EuhV{{f#vTG#Wc)^`ZsihR9Ab8KYs&82A1d z+3;?O9&Q(JZ02aSho^-{!x%i2vJI>26!mc+522T4p<6oL);nH&$!h@Qt$QBCelg$l z4QoElVdR(K7Z><6ms3RnjmTw~5yBi>$7JOhKm?SM59LaLObv8MdcFa*|M7!w2r|XB zZ~nM3i3?m0r6(j&(ZnqgH==OA&DrW~D6RjLSH8G&)~{4elmkIghU6_U~XfF&C`O7*NAzJPgqE9sPeem^C(WH zI#AAwiGN5vyB5}~oo?^rwG}*jNF#ZFTkAB#^Z4{fE&?@6Ix4Qv6JM!OG>W5eDUB6-4RiseG}o8fy7jT}qq53uo=tRmBg36&OYdfj`=&qgGsGFSPv_mmXJbH`@!})YgCGZvU8(Rywsjx%=ct4_`QXm*z zK3rgMkON?E>xMjlCqY%s3w#nk(nDbAp;`fl-AJsMeS9N=KuPYPUgqhfjaG^tCMcm}SVV2d8=q9jgmu=kZOG+Y zib`-cq}*T+PBCK(Qr$jh)BY>g{urFO#L~QY5RkC@`^u~1{DpO_LE|B{NqYi}LZ%>x z%^puFQX(nQNAJ>e^k59V6g-<|b=tr>u=f2TT16`w9h?S16RU14+8ocIhP`R9~4)T^} z`cO0%|MChCZUXav@1haI#KebFCR%!txe`XYK-ls4L)e4Wk(&@lPQyptdi>l-SH(yE z07gBXVvC?dop#?*2>-K9Zj?$#n;ZHvgS1Z{|kd^=)cd?jvg9Z+pOst}CM>E(<)x{<6 z=l)yrpMTU{_lBjTMBO#_1A9XhHgGtEo(2#eW~7bG;E2*??}{%V?^IaZjrIosr>T5B%Lw3!@^1Ov0GBV#d zm^Sf#*O{lKIyh>n0O}QW#_px?eh;gchTv=O36jPw;Xc`bER$Mj{xnKu(%HZKTwwc{ z19qr3a8~L1zWx;U*?Z&69>EDZbu5thiUC3yXsz`Y7X{dQ3Wv`iy>yV=Bf1*2|0`b@ z_K)p*|AVQtHSp!Y=VD)VV}@=A7j82Q0YWWmIw6V1)L~yVVy&=9P1cv&wn!vX_Owk@ zrS1Bf0`O0T;Tr5XOyu5N{PiqIcW%*($sArYjK&sR!8X$DENq=*UwHgv`joSKFaD9YnUO0#S?kRwzs&U#EE87|hky~$iexTZbzh~9 zZeQGe+&QAU_BZiqe6rO^)wJa0qVDI49<6BEcGR+z8@datzv$Z~pO4avW5p~U8klsp zajGZmvPVwm^Pl#E8g98y9{d2Dq0zCBHpYd+?^Wi28Gax@l>KA7TuJj;mB!=alICbslm#^TYKWu@Bn63K?U5@A}o$F>Mo8 zb7tXgQB62-yb)N;^UoO3*UN<^=8nBNt*Zky>zNS0T)S2gdWaX)8(X>4YzqKGK)k;z z$5rdU=-vMh{Ljng|9<@^FVFv8|H;YsFaG!6g#Tf?{|EmwaH=yI^7*?wx&119dA^zO zJE+lY)!Yg)?Ax5gp^7q`dJUpfkIQdJ|>9{ZsodkwbMJG1o%Kmt=Sfpi{ zZzpha`{(47PA^U6q!wWm9v<# z#9+XhwRc?y6WKj(M_FIlwY#8{hKI|Clw?0j0f#0zuz)GsTShpmn{?VAm+LT0shWN%Dan=#RY{&B!S6|NT8`vaxOeWOa2lWU!U8 zP)vv?!)8j(%tbk$RoJj`rP^`mN9DxucF-E2$z~$^-1Wy^Oi(W2!otFiaNymkS0isj z>Dx_S!o6G)#}D7FPEuk%*X~~*lz?v=A;i4S`Yj=^4?$NQC&gl&kJ~|gJ-)x!`%jWd zENqLndxB<0;+?PhO=KLFf*vjcn&jg}^%Gz39a{rE|18qrd!gV#LTW*L?ZrbM^Y_R? zsIJ@H&sB<*o;&Hy%~J`ovdc@3)Dtl=a9={+b($=?-7g5Hi-b~cY?R7;V4yH$h&*s` zeNarkPgG+4lStwNyOWbBboBHpn4D(JxnB0Ru9s`k9UbImxg}u_(bRIq7Pf!IV0Wtu zTss}j&3E5h4S#Q09UN@L#Kz*b$mH9~C`eG8@=K=E)GWm`d!K3IP=q6V_GWO%!b+#f z#u`!3u*AUp#ymI#1x~mZoK{n7hcJyBC>ODepK(nEz7P0SS5=X1_l13=nF#_4cwG!l zLAPtTOnRaAL-Dw+b8{M)e<$;}a?SKHXqApQGc`Y>fFj}%kWxu=iZ0KkS~X=WwONL9 z)LH4})3LrUUlIa_2@V62W%DgVUD3R}ZgYFtlens9b}O;z-QQN5UzF%gUpD^nQi+i7 z(=~D*3^_%0ryu^=`9bv7--jZT&M|yJHmeS`6uQd`Fe8*>_K4isJKgCg1KBXjDP$agZxJ)=hvKmgFg=*q+rsg928ysu$$;aB@lCf$W>!Z9a98k0;bHB%yEU0LnZcFiLt+7 zyda0fNynfh%0iJGdOc0wsc~=wkj#jBU7L*1)Ac@A0YQb68?FJb)8w1IXSSVxWugy* zp-G&?F~xhL?*UQyr}yEKTN%FfgCxgDUPu^mu*sD^Z(A1<7b4$2b~Az=|M?goyCH%7 zHhos8{k8&MM=o1bkl%elmtQIpu5NoA9Z#BSrqzAYGV!jCks(J zG%FmRVcXGWVZxt1k>~FIPp2b*;NMAH6tiKEugg0xMSi*~=I-X=Fx0;^u@(!Cr7a4N z0K>$bkz~s0@vz=_(h+Azbb}Xf!o8lsS8pqiVJ9#DyspVUItZFR3x0DEL8oRMLKydB zz#{@;)OHPnklL-`p$Vi-<6QTjhM7VTD?SO6MVUvy$S6u)OttDP4S#V70=z8|+d^LX zoaMKDk2W4%i24E-R%fX)(<>%aJ0>JxWzJfibF@#}HT?tx^dw2{4%U1-2a?<2wajyE z&Rnfgl}&|H-s$NduEc_$j^#|BTn|t=%!hV)$n`brU5G$Br8?K0pIh*1dpLPP$2Jn| z8LnC#IKoMKT@jq02BurGea+K+%vS;3#-U;Rpnh}8SNkxR1>6bQP-IAs86UvN!Rf8Q z&-twk6-tBm+uhq->edBKZ_)cqKuh*<~!*>6^^2{)TDH&O@uXC1!4 zLtLLphnCes;{#*(wbB2nxYeoerEx}VC)fmVvD$f;-269fD$;|nIlfdL8DU^pK28$o zafxK6=&MV(0t5Ri0W8Z&(C09&;MO&%K!7j#i6=)Eoa)SwQtz{f4sBhIMQT;E7(3Uy z{?e*v?1vAQGs6cYe1Rq>P5yeifH*p#g4Ss9S2A=n0 zQ=*s?0QJ)|1$2=jH3+Gf!Z$>N-y3ck$zJ+vS76MW!rV{PHBGc-qeithBFfgelSJMn zQJ_DMA`;-_?E8iXmo%fWa(?1@1Eku;r3b8anIj>lN!Xd_ zDsIc`WN1#{#558Rt-8;6hoN{x*V5ZA`<@fo-_chIM3od^uqxe*EgRo0b_Fa} zA`;Y=Y5Ew^GE&E3V`R)Ko*`7=KrHy?%FJ^m#pQ9d6`=EBXeu{&_eU6y$QFCWW70xsJZ|Ju8(qiB)3XH6cw8u}=gKD>;}G{}#fvgL5(YPa>2$UnmDMt*H) zBU7*RIm$NAhUn^gtFmK9n>efkVlaWE;%WF%IvNhu-H#6y-th2C4qm5`zf$40?>_}V z+PflY)^@cq*=5NNqi$%DaK<$dp*0*-zTLFl6a!GS;g@x_g$XiZu#9v#%T&DFvyq7_ z^bJN^wV(-(@E3Qrb_Cl1PLX3cQR0qMqvt z*xJFg{fw55GEslSYdlrd$knT?eLh>x7rzVu(76?1RJYt{Q~~;KUP+sCQ`Y7x06BBs zqS;Ez-{STJwG1~ujF4St(%`RVCdJ2-hXo=xlq2s1O1sIM=!8#l9s29j2`MJbWmJ); zkQ8vr#Te@^Q30QizP-kfymvpZ+p_xUz+lFpgeQo`^Ej)P3gf?UQBgo^UrJ@fq-+U* z;vvUaw(_tCxYJUsI~|EW@hw33zk^j5;G{R>JXqx*Y6|C8mOPAfnkn(gFQ7mhH9+ap zms|zO;;F63cmtA*BDHW$6o6+*Izi#YbON+hxp)V49j&;`;f3h3sFIRIvu9Te#Nw#C zr$rIR7S>L8y+GcU)N~ya&C-(Q@ppF`?+KhaQ!5V~C+8ys3z4|S0t4B-tsU{FAxjFg z1R)a+-jKvB%(Kf0GbqJEX;=U~jCVIvJRhRKJdSjJTn~_{h~Q+sL`L|O4IPy`+&=PrWHT-abK?h=QfStMaf77tV30oDn{hc*z)gJ+4)58A>l0h8k()EZm=Cun*R~- zA?PwveHg-#pJ>VlP2cw?N2iD#ZkU#1m5H}05!egunpgny$~azWBO9G~ULKYG=5vYG zb*;Jp+?KY)Vt_teLK9u=5dcT#_hiEQnmd1Zt+HSpQneI)uz$6TqLMtV#|CB8(Imw@ z`#2Dwe=W&4UZctI)2B&!$bblot51|mT44Tnc}oGYfWWZ0J#vhlT=63ug_TvE&7lKp z9egY9eY`ZLbA~aVZOCP@0q_%690sWn9D{_>DUkz4v>%l7S`kzTxgV$Knu#52h~`nsWn(OZ3-~9N&dSRphS1p!fX83d%z~5-)Tit|bRdu8(*Fj&(t_!u zHvA^8e^7)wHZVyB#wq3hqZx=kMfZfzucs{TJ8zrl{u#I%j$=n>dlo)v?RO-0I9ZiZ zg)Hv^NSr`DW-vNM6yM?vOV58R>fi;X!FkcUpcoc+ zMeytR3MpKVm{`Pkm~K!-_2;RsU2^bhIe@=t2YIp(mz zTHLn>Ra2=R|HupOXQ>3=vx@r@cMoHiKzsf!E;!yLPogM&gx88Opxr!O%^J+Ue0Rw= zJXsPd>43_^P0a7=NGN|O(VBGsnA#ytO}^5h+HZJdN>h#_Oi)2(UY|i(SV8HP{~0{6 zK1`6Oq`v&S5D0i~lKk7W`0zI^nvP{reg zA?BO+2Kawh2>&E03WbF0K@T1Egbf=bIe46_Xm=grvwy=z^8Q!VwoPOQ;XSijtdEYg zvnOAAmO^@2a>(PlmlP5a<{moN-ulxMbHGr}##7OIn?ZIxDAWm9-zi$G`E;xqZydQn zSPHswRdU4y91CMVj24ckv?LaCP3FSU-6rrGehCu=?YvH4kQsYTm|d|?h;owMmzPjw zf;`Fc=f>KhpBC>s)}ay`GP5>Ws3<_h-@cDlE-0UpwB$Lw1w9mGxwV1zYSAk2a)fVx?ipAzuMA^lIqm7Q5wB9Xy`~}QD=IxG-g|3 zWWJ@1giE*pf^i`lWXwA=yy|!tc{A)&lcePel%w!h&U^Og6eQ`AuIBZ>tt&es_^&q& zx#v6s39BwhikDCRzB>f{%J}?t{?02e{SwL49vm1=^md4))loI9P?=(x>5~|hi9jq7 z5c^v)o9e?T^VXp3_AZ>#L{HvX*a{=~YfXJHodU|aI>v(KiYGTcq)BEN4wb2y>_n%< zBOfm`kOZGx!29h?Ol-8U_jp8u>epXo2Ein#u`kV8daR5quA~yr#}3~sJo~%4`Ri%LrSN^N}Cfe&X}r~ z%wQo>u{lm`^+L9uHqo9M+g$ZJ(w^Z3iFr{P`FjL5gmS_jzZoouqab&XjbrbW>#12~55wwD>gz{lou>J$@kp;=kk zCXxxywNWfekt@T;)hU7GjOfD9Dc4nCL;0SuAC1~&+qJ$G^2Rtr^`vp!#wt>@+xVyQ znkl3Q7GeZ=L#HT8oA$(8Z2Z4Kxc?LX^|E(&aQ&|)!2j?3mz|G`^FQ-nUUnYdfAQb{ zCj1vI_dob=zC)t*lFvxkNpIyt<=1MyK-=6hyD@8mm?zik>9dled7b7Lps67W2e5E8cA`4mHMBftdYsrf% zc{$>QzDFcQi=LBs^gcXq&cdrYLi^_aN*j9~CvCZpX?PaZ3QA!Y5mjK!v8ZDkAsm0- z$443@7pgr0TiO@r(y7x*8rmyz*`VPn{b(jQKR|3FI&pLTMcn&b!BZOdC{Fk>iUS13 z$hM6ABe?~z(?_fHiPf59Hpt&zd-v2zGU0^b3@vIIf$$D<1G6=Yd3kIe02Rif-9_tk zmf`2a9o!hP(0RgZ-qDf>ky8pB#N6N7k{*G@`;)@hfvO0EoNvntc-VY7n;2#Z}J0S>P57l%Q^w?^H;R_0;noT>4U-SV~Yq(%j3>7Os^ zlztN(c~7LoBr+0++2MN?Qw{;KIC#JqhG1JngmA+(E7xhO&$`uRQA=$ZtJYnQy>f7z z%xP1IbuLtADfoZXTqpUBbdjy+Rt>LP%ZTi;I4ooaY?rYaVU!ORAnZ}lQObDd)>@R& z-VvA{ZO*?JN}xrr^J~EEBL`Lm@Gn)_Yj^@ycza1@r%sNBT;v4alI|qYkt(qK zpJr~KNQSGWA;$G%WgSSx%N0X`AMjewEh!yP+ccKYX9P4ji@mU|N|bhywGx%+of8Vb&ZvLTS){<-Xz8>s=w%V*N>{0-CndD z^a*N{=p0L_48&hXk031*oV$Od_emp@@70XB#;nJiNh?uh3yuSlIq`lnSN`<4h)MD! zMlJu#Z1BSg&ui!R{WE;%yKT<%WM0Q2{jjG(jJJ5*5%ut_A(WXzY&DM$icTfS%C#5u zDn-QzfS>R_Wf0LSa9AFI(@BViBlTXsCGi_sdVi%CJG0GIKkZgEX~eR+0-L`~qD-M; zp1(~}GKtvF!-aUo!yyrWtkV9GjrB`95+pmjZdcovP!OV9g#`wXvZ1Gt<= zG4}VYd}aK1qMw^MdErnGok{MyMl`>G3Wxd9%Av2F(tqQBn|iRx&B?vqF0s7lE#`-d z{u#njEf)$laS|?NMa~QJFzfKGJWC%d8qU;TzXCwqT6>o{yJN6hh`iiC_H za)0SrFOvn(AMX!4!%g>r*Gy)-o?_wg3NYP&@@7dj1f1kJ-J;LUT@B6KB_0)#r`+2J zxYU%~-Ep_Ayk%Wa!TMXMCi2ZKp7&`qlH2Be3xLgM!Rr&+sWB_Sb39?;d*$aH z*bRUizDCh~LF{vN?RKH)+@{%AjdkjY0E)`hT&2<{rH93!g<&Zf??)V^lTUfThTaDu zA$*0>S>;}Rlq246#^<%!B<5=*`fT#x@}yAL89TQ{T+B8L^+l0`{8Vk*?56jFxCiGQ z-DgGGx5eCsH(bYnx>whFlsaa_bz~s^nmXX?>|H5yU>BsoV`S}!Td4b$ zzB^?WtBlGYUNMVh)-H{>&_5FaVR0P>hbZ%L4Mg2CG;2IE47^CDv++2h$b>3hAv#l*_iT>0aD5v8jH*+ie| zX3)i8T%&SlB0a9;S8o%l1kx7+0V@@oEz682W4PJzBbdxq2;4BF1kkevSqPoD-}Ww4 z?i3PtpCj3~O7kLYC)IUhAaK$eXj7YVRkrYn94}G40COY8&?5%RExyv99?CEzYs4x_ zP^(mT=#MRoMiiSO$vS8^E|DcznM~iMIkr#=#N3`se$J^}mp);3e#}uZ*6c)Ef$MOGPg-_=r{V1u&U6*5@OA6WkmY zrb%B`VQ+&I*m^zhUs~Ek(}N~jFN1j}A`l5aF#?suVWbhMA_y>|WEZM&xbwJxm31nq zKA&ui=RtoEBEw(AUvK(5J$s}hm2>u~lQhCUdzCpVzpifr zP*B4m08)Q|2B|*{QYm3f<{O=ya^x52Kp7}Le0of;X)&Pe-uAV}%EOneKS%9hzaQje zF8%M;rT2Y*j|#mCHMU8M$CZ{wq9`H)<~tmbrIIvao~vTpaEmLiS+@A6;qGGG?8d%k zD&_11p68HN-kxhnZ-*o)CK6kPtn!bm`UQp)0AZ2JZrcHDO$2bDL0ksum+b)zU=X13`@9E5=4FD@?iw3(zDzO_K{jd z-&nWS{EGBugx*-PI^Dh?5cdf=;-KA$l!}S6og<74Odml+G?gG3V}LQ!?q?=bw5wOq z4&~v3VnM9_M?7>rMzIdk!DYt$tb+^F@xtZl|k;+0j&e1VY+) z@8Vd9C@D*UW{9ZXUbR3GQDX6I0&E>|wx{!rYpZiU5m66oM__NrwgR2Wm0XvviO-73 z2T?zH1~856i*8@h*FQbTUS~?WU4LpLIEc0IK(simRRmEpGI4|6W?fe@1Jd|ZCcAuY z0_Qi8vBMkJXiRc)*G4LCCk;hSAqwlE30mJTtxuUz{0i%Hv$5a+Y6 z;sQVAgtMrB>sqEmy0vTTr>r?q>OkzGqL(7KcMEP^kK2u6z#3JA(m;Ya*l&8z z57U=_s5q?@&SbBRW&}^>%F6b9^1O*=ZdcpgcG&hlu$u%i2{EEkvE`U*!+MYFUEtMOb@96IPKck_8ZZ&%)4&;I;rHbIwENY! zORRa={K^>bf`6iwYkKpa^)fqN$`C^i)5T8TOwexstJuSing|bc9kisl-+(vtFWA1i z<0X-=SU@Vd0N#+yUh7YS{Kh^@I^|a9yqBZaE$5aE|3rI>-wd*sS>JgBaai~HT8TUN zy=&+^?P-Va2eZQfj7&}{x1ei-UY~dGf#z+dZ1jId*2Kk9Tc=!|QECeN4|3z2A z($$!I{sR72CE$M*|M50+cJTJL@icRAHFNOxGIMvfu=@X85%_=NKYV;#|11CD}x%-?8@+syTF!GVDrj% z`s^qcS#$AIcZE5N?2E-E30Ue+@yg}CVN4?IH~OCDAgd}(ycOnQ73eCP0W>y~lidqA|8S@ZO#~>!k^9}~oV#H8J;p{u zAEzP74ozc!S;%vjR_tG=HaGOu&=tLQqr9{$Ygu~H0y0tsqBxw3Yr{TQ96x80q2Xo; z6gw9h=1A!uK-p`b6}jF+^FRmK>gpU0q4vo_?WHzO!i^@aFl|%QA3WC2w^mmoesy-h zwyoP!TakhgNB7^uW;4mj`GHhPtxm)4AJZ(WEk2}h^Sn{oH61`GN=h1NEv%IVoP*gP z1D}RHM(9W%|EPd;NxDNk(Zqy;@ow>R%yV@$xu#-~Zt;te^8Q}`ED-w((gn0x#R_C~ z+-^u=pI;Id=Cb=Ei1}>5y=_O948P1V+urIF78^;A-C#aJg=ea3rm2~lS(z6~oRD;u zQ92Rp^Q8~C{qDrw;7!`!33~x1m*n-AR^_Gki*)4eZcuI<{5sWW{0i96)G|{}NepA* z;dx%OklOTYzNvyzrYTb|>6uA1? z*ZtG|S2-cK{$}TGtBdC^Sb*3i2r?X!LJL>FcyPAY9F;e2>FrO@=k>w+LvpXks--4C zlzV!vRPT!m6<-^cY^6Rz^s^-F5H+i>TTy98*he%GUbJ{*t*&8!u=S=`$Z6gSE^HH& zkDsOc=|5hE2;FsJ($U<|Cjb z5l)Lr#M>;S!;=pzrH3P~_tyJUT(B|^F)`7)+2);HwQ#0vABNoDlLXMV3mg}skyM5KPX z>J~?#MCOQg{<&I-ZeGUF*+CBlBO$JmJkZK#Vg(b{VZ$8x7mii|{CC4fhFN+9m&4a3 zDidmJ@{zVeJ5|xNy)Mj=E`_vUWF4TYd_qYH^zoTW&n(oR-BsrZ0?Phv00XrDM5X@- zeS(BjFL0|i5LOgzk0A?m2L$8kokt>3z%lLsKP3?eod6I)5`5ZcBm;s% zG2Ap^rn>)8QHr^JA)s3vasy+GBom0{^Op~Vfnp-(PrK+_<2#P*)y9h2#EG+Qq6xt z;WkTnV}f_b;O)~T)6au9uNQBoju@Y|V%rYVL^9;pWYtVtT=|n`LIa_T-})txkf#Z_ zi-zt9X!toW3x452{cMznmLL=7c;V>mjbNkEjYs><)%%pkvUqoAnFvHw8X3M}CJQo0 zV(an1lFSgtIDjt1MsC(hztV)IDmwMsy4j-*aU?s9t|M2EkSX{8QDCHRw;#Uv|C!rT zdE#mb*u+DccXHThw-PZG_Q%px^e)W(+yE!}^mBgFOx%gz4rxscT6k*p&VKP%5YTg`Yjy$DPgA%zv!Z;C1LgB_^e51J27Yw zL!LlT2MKeb%9FzSIu4f6GBSPwh=mfr-EQmydi|9TCxfcdO^pELPfm~=>d&9^4&sGx z@^ggt-D!@2DB|L)_5A_T?K$vHr?;~spukN*XEy}t5Q{Ba|j0Mr)!aY*JceS|EkYd2xkc z1BdE!|1J@CQgRK$d5jcSubzbW=}Oiod~rA=&F=t`k!qI)^>{EW%Vs5RDaW@@60*wi z1YLK)`mAaVM)1VLF*DYV9Dt5sb9fZv{v^@$*Ar9=vWz>azEGj;JTF76d()|Utc;k( zk~)-!u9xumX_`i`5-o!;$hd!&dztyDl}aS2-|{V;A`|=69yx&t z_hMT#PO>&W$Ls^puA*u_B@fqDxezs%&$=~qyASIw>8}RoQl>}=V3E`zHCB;kPG5y| z@k-)AO(oz&o_<}(kc7Z24tZF6bcYw^=gWzdr+72d&<20 zd%^MdWJ}XgxflQhl0(x^VkoG=@nR7tcW#WyVnKJIiD)zkyZt8ZSWjYNVX5gwshmiJ zsGX_|a2Qm@fYp)|67&S*)3M^8bvYZ~dZR}O5oJS94)QL1GD9-u1Y)-hS&XciL z>3etwi&Whx>W%+RA%R_*LPB8~|8z$C=R6KeC>uZqIyW(AZIOGDxxsv9IVqQ5Y>ZMX=Jkcta}8h&OCOPh;*CZQ45^KfPQ+Pf z!ZWC=qblu3VqVeoWYdXK$cAHECe~mi161w|K6S3{`Icy`efK~&V7n2Dg{*QP=F>M? zs+EfyZcqu^{Etv?ig<^5ku?z1&~ThYgaNCzQNxc;B<_zkLE*XJoxkXI`EgCJrWBqN zy*Os0IriN)zu7Bj_DcP`;6b%b7KtzrOV`TQaSgEP9IQ3*=u!Z{I)Ofv4MSlWtBiig z$p>GF3D-HFpb9m9(f{iTJVkWH2)$Hz{E^^2vPQi9Zvk*y;haT|qWHVP*LI1`JPLlG z*)sawGSmz!p2rHQLj^Wnzb8PNkTlw$Dp`4c_|?vKOiEt~DDHg?W@16>icd){9g|7C zDZw=*Wo(AWYe8m$VNX?+-CHNykIch4;|OWS7@YlhpWAsIdbgtS%(D;M`g+)+6hIUk zyO3+3AH(Y3k`1qE2@+BSAV*U{@=u1QiVTJNx}hQ~zPjOm(l=xY9U&2))Cgj%9XbkG z+xA2#%?YBtCpG&Io`=Nn@W8PiZn-A4I)bgb&05CV!Gkbx*B z)oE!@_MvbF2r}EF4aZ(k@#8`qJgb>kjovtr+fB2V-q=zOLRw0iK;3TR`aR;X_xIxB z_Rc;_|C{^An^S0^n*k@eeAnKO**SNq@5pSuH)N#cOg^m%Y;g?M)WgY82jg|hh=7xVpBDwyt5uA|CSt7LSK~``W1M*l;`XW{9Q?zjcv8wxvM{1Ge^vuHFsk7 z#VOUy4-+ym_2U%a@7?;7v6~MUb8fX{Sk#a^^1`cl+6%u@|5=x{(D~oG7ET<&$>Npx zOdM=%NfQ~b0Ji|}gYIa8TG_J8S z|2qeiXtfv)=?_6{7&Epbjd3;-$0i4JUVU_=mQeI3@AlKK?SU0`~e~NFHALuwq{?M)jk$B-`2{(dNggOy*$GNExp{D7So`e5+Q+3rvBN<)HEX3ATWmpG{GD1Y=~``RKcdf%*$EC3o%mPmus>fCOL|FeQKiFv+b|)o@WrnIWRVpDC4q8R1|GXoO5`<{`*iHCw{ z56{mF%D1{Dpi@6dv)cn*8w4=`*VIpffU-dFt5`<8siK$x-O~R?%KjJre1B~7OXxDDD1cYbvyiUvC zr*m_4ij=aQe|<_&I*(5f+QcP(by?XT8Z)^)VRK7JE-qa-Gu@RHKbXu5|Lt|s@Ifou zd$&EFCDKPrm(D{OUZs`B&au;1P)>@a1^V82K3&bmrDwS%idYer7K2L-14Z1Ovz zA$EvRz+5b!!4+lMdP+Xjn-~6T{+mA||4`z&-(Ot%Yi)71zVvI!zKqh9;loiK?`mmP5R{wMzE8U#C z5kH#*fdu)*pjRv2-TA=qI&A_Jg-o&?`asi1n&JWG=7xN{L3lQ0k;TIZ>KsngyWQV1 z@rJNiog!8uBJg<2)IEb%**jydSEcSO;D*dgXy(u&EkJ%y|EzG{oTQ}AL<9Rs_9igf zB+HSEVPi4Lf}(Ydb)zRDBaN;k!JLy5)&`iRnurbI83=tk7|HGiczuGN*26t><+W%+ z-Ao865Jq0aD*C-f&j42S!>hhdLXn+#NqfYIY)W=@SZy#DM#Pr&3cX-au@EpoRP^!~ zle$KT0vwNtbK8xMppFbO|LP&6fJx@=pWmh3+`v+peN{H8;bZE#dF3Lg1t49uC`o*;0U zKO<;|LfYCS(+&uz?Jf+v2gg8(NK0HZBvV`ToZRo1)j zf}3n2GQD)WK^kwFPQVcYC7rfbnbO&q7j*&0IFw=$ z#mZoLju22Eir(z!-w)>OZUcnETa<4UwCF)mUb__(-2++R!9<(&2-^?Xj&F5HfTG*I)F$n&GH{aIBoME4aTs>2VYb1>Eqv2?ottM3bI0RnnZZ3IckS)A<( z=MEVnhEL=ah_oDv{e%>LW|1X?NiMGh=LK+i6jEL5>s^>+Gd7+bX!?Bq?x(S`)W5M{ ze2NRit9(V^I5ynFisn|cDi#QTm>@RzdIoZgnS->XoxOdlR4523_-Tnys&EYj3SXzx zKW8iy@&vvQ!$exxMVNj_43tW+3A7EO0sm+FKn;T`tf&3?sK3bnudToT!u>x_3rkA} z@Bi`(K>iQ+e{iw$@cifdKX|#g|E2%_o9I8>yZ^EOcW7XeXrhB_8dTCUvvzV)Eac}J zR!R-q@2Dk6xDFJwvG-vY&V8DfRzV=h%q7@P5;aHYm4AUrd7;w4hH|vWt&4!AS{AoV z%7%jF#>~o|-^rUUdJUWQ2y?o6zzFuJD%yab@%Ab4y4pH_U0!!;>{${0%&hbh)_Zsa za9;n;P*||F)DiS}GTwE$>SM2p5Y~za4XqD>;pI2xfp<0zno>JZKj)8UNIo!d^L-5R zbM0+uGaQ!UV+X@3n@0}nct9FRg{mY;Lj@){iMZySxoZSOMKSBO^8-hx=omQ`tiz6a*(plJ|SyU8rAol7mfOVIK%UMqwpG!+${c-Gy2x8kHMp;GQ( zpaw+E)AV>;KCBt(Itsr?!h1{5d;ffMnZU`l{ zZn>XH>aQiuPQk4IZa3sy2pqgSusV(3+|hBI;0jg}2}@X!?0KAiPoX%Ym7k6Ql>^;N zTZ7<*sTk@MnRJ%6a;csKk3Ad}Z5K*)x9t}iL5?OO@E}@e_nD?r4#c3YR|Bz2(_C-5 z*XHHoY6CPm>E@N`ax#JG!Vc1(k|v@h$nUbq z&OHSY2@-WI^ag>hU$4OZ<_K>Q3gWrAS+em|)l_T>tIrUF^;=;tHdlRCl$TOA?m}lT9B)p3h4k%m70PMKNLed3FTh9Dw01**<8Y zEQGO)xC`U@^%6W7i;j+>zw(LJ*6^vE9p*ONAyxnv+RM#Qa(2CYR-YB^MgJW3NcDes zl9}`$8`HZJORxYYgUbNy1ER5Wut&1-{op^QC5j7p?`5>bTmr2Z+FCfke+z&tRX%nC zWGLt2Kw2-uIa4dx5b<9n0mW+O3ghqss1k~b783>s4tNL4OAz` zZ(w^bgK>quxhT*?{#1!&GxP0%V_g;V+v`~suS<=ax0|c_Aue4#(vI8og!bcuqUX96DM(mw?GvlJ=0Di0 zH3R?_A=aPf*dZZYl3Tt7l9M`CcTFxNv%d+xxy(CAo;Mh%8OC;{)ml{Vwssk^Vh+%- zrxfvh`tH#C-Bl$csoT9wCgk9!vC&p!snQd}e}o{lm$(2k`aN7o6tB-@4Kqs{h`E0} zF}=f0OW|O}L{34MdPj~f$8}=-qYDpzeO{6B0_!Aub`!x?-WI83IaW!>YF*ceZ{b!UiEt!IG7)5bwrgFv0Yab80jGb*J4Yky%AW(KpJqlB5Z zYUnWyGl*O!Uy_<1Ufz4uF3bjRq0bOG(dX9%;qbrbum)ND!0QZ48|&QTY#Xz zMXEBD=r<&&#cN6(7x8g<3=q?}uvw)qWWe=<|d zx0(R+@0KlqN}blcGN3fvx%w(vZ_*c&ZWy0-d{7Hcx>2CKGvT36EcK@>K>zaf`yhqV z*sWRoe8^>*+`th`*Pf=0xB`xr7;$QMlQ^>7w1(fT6)UwEp4gwq_HBEX)|oPWLO1RJ z?N-i;q*c!UhrNFauEYz!2H|sJ+qToOZKGq`w$nMWZQC8&R>xMy9otUkS2J_ske^meB$I!r3{3Jf8 zt?_s#Xph+dqWm6GS{cLResus=K&iimdM7!P)&&m%f#^%<3hEi2>K&N}H*LPksvbgI z!J=J*j^##gQ)i(|T71HK29h-|m)G9hZFeM2e3N7X|CT1Y2K3iUt_NH-6exCyaVaS- z{9D5Ch@OF6R@Wfh6+UqbO|_Kp_LJ`&b!xXks#rdMHtoG1fB7nXGlUr*i#<+5v~SZL zy^-nkUu963y(+1+-%K25p0$r@7hDdTkVu+6`L?u(`sOug?j81=)5gcXf}OPyts*JK5fm!-S{}2Rjyk+6tv?Vo`ylwsAh;@ zp>TP@P8**%ax7*dWuM=RS;`29hl8+a zW#g0eb-V3*bWe(Ak@~64Q0Da7&sB2=4u=8^8#1Byj)>?LY=p_!>NU00P`Xx1$^avD zl9t5=J~a+U2kG*6boxu@#mCfE>|AeN$M&NVg|~F7ZD*B5LGic4%9T*_-7q~i zqiff;T6Cf_9vzn8kHwpbU4y81-L_q=YAW-VD}UN{vo^WEr>VR5$5o!{$G*MbPd7NL z%c;P%_-mGXJ(S`za;~BEx|ygRf?qtw_k9a`mzMA!&mWa|@9&IRa}xkYdFEtG>#DLr zp_tVDo8{ak>~YrJ^UCX9pVOPI4!SGw+SiFvM6dZV;rl)U?_y0nijO|BFyGQ+YgHPy zeF8((oLpC}zw^A}s+mjh9X==!q5N^i_rBBCC#UlB$9gz$Mpe!E33PVDE_%Aif9f!h zl7J;X^&i9wJq>aZ``vufV*xk09Jdon=IOntHRV*JiifXmQytRBXdgQc7^LbFC z+p6a~LQqh=ac}y_l37-9bdjy|?(^66TyQiv_V_x_f6x1EWe9m*^*wLEky}sBmoow! z;g@83(Cm|o-x$4&w%VeUjIJDiPXMw1u`lv}?T@KoP`t5b5L;Em`>&?$vm~ztHB9Nj zaa{zs!xryjtPbN=)FBm|akr#9v=L{9-brLody2o$j-bz3rr{i{D%rKrjqTe2x)AHI z=*J9R`Y}z~@7p86vBVW8Dc5jGUBfn*tbJRX)q&*PtU-d_CKi4T^TdR`5Y)FLoJ}yF_|>Oxjt?Yj~3bkq9B7+W}bKoBeC6Ojm2Y!6{y>m>(w}({fA; zk;!8`*9k*Vu=0oqaN^J&=F-IwrBB7_hah`hs_VESD}|C4p!$s0NL`66DFd)ge6MRY zzGno0j*jkjvnyi5nf>vR&J{=Yvon<>oQ(x@4%vA2Sx4#uL2pg1=Zgy4Yi^*Eic|jP ze%^DtY)%1tPXoebB(3v7QfCO3CU>!w^b& z{1c-i&f=xuqT|qEY6R2-PwIWZb!)5*0+My^hft)GAVu*w@Zsm>g>iSV5W`_S=R`mt zBE2(!zlxud>uyDT1Jz@q7SFqD+8sZKlmq`@>D-c?}a8TR*KBqxI205~9PodJT_Z6PS$8 zRYoHK5#CvS8T#&hn}1jH*b#XiMXbxoDWji`_aW+$6WGpOQp>^$?u^H0bYN87Nr7~l^VEzg_W@HZCK@p_FcN;EUH-3dg*UrB+%M@g4IKfE zczqdq`+#R@+pu=GsEM{8uI-b{TduPm$A9lTu`RL!aUx9LXC19c6%-O7QZ+F`&Fo+? z3mx(Az7Y055k{9*mPxal0HL_u%)inM?CtG;<<@R1^rFs7D4|JFEr-9K$frWZhuMMZ$rkUx58vB1X5h&>*a0b6_RxZNE2b^DAw;DoVbx94d2qt`KMxE-Ha ziUzIYG7ogykQUMpkoQG(>?!J60o_@tO=A@`*(pLhHCt45XI5q=;(udBkDSn!M~7V+ z7D;*qedQVW?A@U5p}kg2wHAxLSZcVYDHnPL^>HJE#s+Y*XRqfhDH{RI)Z%YifWM)&C$}t;st(JE!uoX}ojPZ*fds z=97Z_U*F*|s_GmX0j>`B$oOJtL4a6`jNE1KLP+GM1v@`=NYsmwXW@@zS`^h<%X{hp z%Jpu!;D>RVlxi0!r7%Iky6BOE4_BW3duTj->&YQq<8iuB0b!w?D-!|C!8m9AY2k7yUO;=l_j#y)B^uGpKkjB1#9;*5!g?3!co8{EnL zvcLl~MqC0(EkjgH4OM{`YRg2~>YQo%!DOx!MA21yE?ZVx9mnaLHMuJ**bAJRDbv&@ zP?O9D?MT57P~Jg(P|(BCRz*3IChEmK-^9iX7G-2jRoiOdXn_lt1f59C@|UWm+Q&dC zCH8w3W{4VSgEztNN3@ zK-@s|?w(=aZal2Q`<}|it3L5xiD=>ocm9GfpLoU884W>P+^1E8SqCF&GmkI}Rq#Jc zOG|5krHG;c(ti*9G!x4Z5$gN@FCnP z>-r?9n%B(>^Emu^{Rd%&yIkKHC;=iR)=XK%G18VQMEr(&I zKS?gfNFa}{x8U4vD;R14jZ+Q*ak=M=!u-PnyMD$Od~Uu^Hr1%o?w1fTs8M0p51jGc z^+$@!#+2&_i8*Da5oViF9@#_qAqr-2Yt1$k+5)&WQ$PE&HVD|3530Gn>z`>Ht+i*L?72X zrKRl^MQABW={0U=2SZUGHO^gdxU8d5Sr!pQsVc^2Mm zY+PKebJy0qx-G!vwk)c}w(IEl_}lww%T_LMA%V&v8lcu)t-K2HHuCko-PR|!^EL`UseO1am0zB2;FpL-tG+wT4Hz9m)v8ps zWP~H=uNg7@%M>o!9P&C?&j)KI$`6L;C%8r!X>$4xQU>-DXUZ^SlpP5fxea@-;~Wx) zfWWTVjCG{g)HGS6`mqqT?LFeKw^3|cqHggzT{;Q`BabuOg%$^jpphT}w$t}AlTH9o z=%fY#(y%`m2x65nu30!F!}Xx89G{8$9p0)Yr$^<0uEvz2s1h-d07n3KX@WcunBYKz zLPm)Z1|Xx51L`Dwpn&8>v`5Ka@&#FV8txO*(h@(Bq;_r(#&!ZFXAlt)Th{Da7rw25 z!!~=taP4^B5C0|tI`n^Vp{0)Q^xckDmsX~zXsfCxGBOIXd%9k^&wh|q2@C4z1T8d%Buyq=(yRkxzh z&mXHlLyq6p*4CEa-ri*ETa$M9wir<9SIk66RR1FiC$?{_aRUJ2Kq zmmA9=S$`837FeO9l4_*&r;~7l$bS4ROj4Wqb}bRd0jLkZz^z~SH@95Et3h*xg>#&q zjUb;4M#@y_Y05}Mpe}R}g!kBKE#ltJJP9+2d)+*yJM-8uB(MDP|7Bs(OVVv(w<%`D zI2K3fEAb$L{)QNR$okdeRsJqW4|r^AsT~-Y@qd3xjqEihf!yEP|5TjY*zoyA&&|!> zTwGpmc)s0=M{;|9So3`TwY9bSy`lLAeK50ifcs27e3=!Z+19gTwP%ewm*si^hw>9 zlBuSfo2O?w41|eDo8yiFoVe2FrAIHO4-@l^_$=GgRUY!Y?-O3RVlL}Uo`9{qf&$BK z?)$K#Neqr}-Thtz%tk{lzIgu7-WoeIbN!X+frdli*VmVlToQz12_^>@m*)W8_v6Fq zBI#R5o<8TM>kJdI7j8@7=3A&zz&&yRKd%7WJ)D0~{O0N3WcnYyQH=EzUfDT0Y8q>x z@8jd0CS|)g((0|t{}EXJ|4sj4{r@)qhvmPu{~!H_i}iozKmPBc|Df9a-~Jz6YdhUj z_uMPrY|h*g88~+PIkL+-u+w}f31$)0g4aYa>oZP?EH_sBSPTBqwF7+vQSC;vbsf7) z{L0*=ADKE8p%{#bOQM%(*guOXR4}kzS+G_2tp;+o-+w|JS?1tM7e^xcdBy)@yPfHH z&hxz*D_;eCh}LOBbd&930_$MBB>J7}*eqv0{)|Lh{yKkC`gIq+I+OPq++;cXwZQ}d zOyb&pS*~{MdGy8AoCzqUxqn*Tzj&B{ZmY|5%=x}OPiOkR@ytM&2;~wQI+kB34+FeC z%O!E`d`$nvPw&-9`cyr2@*IN?)&Q5VN0fD8)i95D**>kPwpn@d%pMK%A)j7w5lFtN zB;EaZb^IPJerR^2&BpIO=Y+SjKyL;IKe@IFYc2QR>E(__oFq%ji!(}$U_p2Y<3<<6 zgpfAyy-cS}|Gsvu;Yhs~eCFg_y_{oyQG~=oEcUw63U;-|nzX?@^6jiQ&Ixg-_dHk> z>tAo`(@&!8=xl5T^sR#D>cpn$&}tl&q3E{_2-pt0C{c5UzoBR|lhs=c7Nual z8j((RyIswOb!~PNMfE!Sf$85t*=1m%v}*6o#rLn&h4_kx3Y>!(tjVV!x+5Q|a0z4vl| z;~yIyr&#WmkHWFNd}MR=Ep1WYYmrODzxc21Yz;vBc5$yok`lp@oNS0XZ3aeI!l&K- zq$xFDE9kv$WDr}XTE#M#>HTvLcn?wKKwx_Es@y{ z!s)dVZ*l0eUJ-ZKprK#na`xJdq`d{U*n^vDa{3GT>7}wF0BvPbs<$|_pU*i%8U~E) z-_^g75v{N7zJWWXoxrPYeJlL)J$5GYe;!e-mU)?yw)QP@E~gj7Jw_TRu-;WDM#P?xPSWr z-}9A!Q4;mqZ!$**KdxFLVIgQsiz$4%=3yfBVOYT41XBSX`!7aZ9Z35>DT<6k{0-Vy zSB=QXmna>@kEWvyc~f!wxwh$&d+QbP8JFgr58``6vhV8%P0ubOff{*=#RVLJ)W{}Pfso^IH2Eoh%8Q&DGjG(N+-jkQ&F>ZM`&CH}a_lUm`PP4bpfEAuDxz>8>WXDI zLMN5IANmXd5XDQt`sJ)3k%^~R`r@D4R!`6-uomZYdqGOb?MoJYsIn+$VOySRm~v1-Q3;?dbg6GrALc|Ks6p|Hjv6K{Pmlk>mHw9^+wqp4eInb3-B6t zI1_J#=qt!e&Y>!VwZ}rf!p8mS#=gHpZpZDk9 z>7t1PPD_~N+ep0draHrq=$X;Z&jwP=3oQ8krFXGkLQ=Y*ZPEe+pLkwz1}yYC;iEQ^rm-JMTL#;o_(|H1B8)shv*HY zgIr5HEB`Wx^HIX6Wq)oJ!@T?VVi+0xB^z;07u=-2kr$1M=ozjhA;pSCaVBjjk{WYj zCSf&O?v^htle83zt=S*wan%d5t5D1VT)}}~!cD?0cc&vL#lY-7#7PW7a4QxR(Smsq zrUsG(73HIt!5m;Jk*Vfx> zO%0+@(wucQ4=aSzB)R=VGwRoaB5;SA7H3`);Jvzkmmzy$>-;fr4PUdSkcJXKY#B_0 zNOCfp@R*wA}r}g=bnjE zlZj|FB1OL9qo1s{&gA2Z09i=B;&J7t!*i6oqFyC}b_U#9;n2}tG} zjx-kzsQ%j`D@h}ILho!xx-~U&^Rk%IC*8T`4u4blDQ=z&!-hMEZ4dF;d#R2=2 z#F->RE+|zEyRYwGy_C_8`6fIvWxeMyA)Hpwu8;-=qGCvQMaV$1(e`btV%obD-?td4 z-s{ia!H;XOyKmJ@Gn#l%(7Ud@D0l6lNFm_ApqPp`nCHL|D8lzy;-rqBCsCf zl0A6yuLECnfV^a33{)KB{oavJC+?2XSd})8ab|{nU*=bEW3m8b)>0na?+@{95aodx zE4Wq#%^*<6;5iM2aURhl1Retr97s|F8VB29WBLgC4e$t2Kq4c7dANVRK^WMfH1LIW zo10y43dI0A98<+~qNW_1MKEwb8HTNuX&fJ_Da2Nwmf%O-Oy9GgIQ941gqm*6&`!<^ zoB=RS$^CEIx7J*e?wd9n4xR4YA^wP6^PDu<7d~k;$slNEv)kFv+xE@M{d<+bvfEgV zC{V~awv>S{L0Sn)zl0&4RN7r%W%Bc`FGl>)S;#EKk5f?LJ<+Ze0fCoZn_mM=#bnJux5YRs4~-WE5h8@qfF;w&K+DJpf>S&(-kG*Ur|9Gr3yj;Cx!+6& zOSQz<4k7F(Bl?i_OzB|1_GA1*P-kE`L_)tS?9IG!+q~B&hPwAUB7ZG0ACSLO<9Mf! zV{JVyv{Gi99;0-(AcpzuQHy!T$ifQHqrWwG?#7T{SFTOq z-S7fSj)4dtJn~D}ENC1|CtJ-XdNH|R%t@Xg#*`Z5%e<)~q1~XdwFt>4@x>z*PsU#M z6TMzh9`6A|9X<#`v3)SOgkFyfxzNfE)Lo0@zopNvSVzqf><>goLA?i{i}ZIugh17U zSb>8m>-Jbvs_V_Ga$jEo8D8YsA~7{)?U`4X&L!Q&`HM(lJ zTgizG$>209o-zdVzi=I2+R!k+2|u@FACz0i>HaXwv|N)hi(Wuz3B?a%_!ol9gQWuk zs6g*MqA;PzTBRC1Y}Ue-rm?}7uPi7xY>78DWmQq2=4Kp1#_6S|%Zqzl{y|BLaCoEHw(Q8T+ z<^1ukgjEKV8~U2@|{$kiC zz%Yx+Xr~1{KMBnAqEmw$i`eB{EZwvuthFV%uFS!PQ`)(0#d#9R(q%e4DiPk4Q?lco zS%r=|thaU0QITFhOlnbD(+#Ox0trde0jokh!yJO;Z}}u-wu!#yqkZ*IC7g;%^58F2 zyf$>yc~8&6V!cK}MA&j}A!U*nhi1jvRD5S>i!?L75bln3UU73W1s^3hqKmLRi_8QQbspzO9+P9>Z{po(cc1BSQ0XT$8oO1P9;;02a!8eE; zoROCHdYYo^DB>dEplbF%k`M9lL_1A1!h|9d08@e@Qg z?@-MF$)wzZEQzLYXx|jvtx{wqboKWKDk`560w({f6x?_G5oQJ@maueDM=@tWgaj!5 za(sajPR^R;g0gzyfa@(!q1hf@rKG3)7Ru1tsv=RdosQt<$#l}Xs!>%|NqYGE52H{T z=zL$f6yXe+0=wPcyW>rk%#1U|J=%d;Q7SPA$Pr^V<I_D} zWq6~A_(|k8LFUD%wiZp&&e)N;p4qYk2ZhC|R$~+`^NME_l#s6{rx*P>&QUt&G|k|j z30Q|)f@x^G6-~PsCHk+MZ$;gKxGIn4LpW4w0?KXUh18yH=e}WxSuoWuP5e*8gUONzP$xXQ-ueb__(0?KNsHU<`5ALMO(P)iy=3D{KNew?^x;Ax-&d&EPCP|MMY zsxj$8{e-A5&$!s?dY&I0w9Sot#Djrg#>GAX4VNN8#1&-GU27q5wN=pT-!qg+zI>MfvW;w5O$)UYC6JIf zc4@`sl|=@8jqXJ(7UY)tgxV z7oD%==VR@U0M!78u@cskB{8hJFQ+?9AXDELG1JY@$m&sS<^PX(*Z+n8Gc~tz{C|B0 zxtdDP*Y1YY0&UnuD`=jn+N(j1=W5d$pFR%x*M7%2b&d*bWP@zD1hY>3a{WyZ z{6n`4z*#gW7;e{;kz>Ua$^1kJ=23AJsa5T`rdwT@(F~z+tyfK|-B5hlYud4|bAI}( z5l7N6pwP*qpsW1!&J<2GaxQ@Sb3wZ0!f<2fvRZcH{o$V4r_W<_Z7zI9htFrC>~>Gn zo}lJwpJt4xC=27b`cvqwu@JAgq{xS2dk&&d-y!B3<;`G=^md)#;{}sn528 ztG%d?T2zx3a6q5}>;S7e1lU4jhFBXFCIaP++$1jj%i|G$9sj;96sloe@l|UTl}(n- zKIb2p!-PIYS{}AVmhF$;NEIq0>gn4iG&yb-W#hVm*nKCc(KEHF1;A*rSurncg%n88 zn0kAbewZ-92=X>meP_os(8Y=VD-kS=`LPcofBI-+9^KC;--SGvOGkPP)qGeLRWk`Z zkRnHT96h>X2%dvR65i=6RF0^L&;r6WB+Xd*p`!w3YcvUGvN9dQgIYtF9~v5kMq$TXeqYD|bwRGq zVH_6-1m?_1y>%@bIlw{ea~@N9HPdUuFq>PWUDxy*6FQdFsm&yr2K#6Js~wIu@qV>h z_h=RiGhksBH;gOeJB23>+V;*gtGz##f>V9pn?dq;Boo{i=k{lg!iZv&* z2s5u-_88fp77gh5{p!IJwT)J@WuStSF%}+Hw#q*Kvpvz=fg_reFyP0D#C;E$AQMcH zjzVz54+Qn&3<*z*(Jp0J?>C2v6SX3@_|jftU5Xof8D>wG)^^*5%SxOdM2Hg zJym?E&nm8|$sz|h!rHHL0gnolL}Ks2YhM@vqH9ifeFwsO?=$!*4$#D9x@#i_hu=+sFZGV&NiDGJ`+#HIURR#)IY2D0)4%v2U z@ij~jiBy=wil8JzNnt^0bZ+MVL-ZGi(RaafslG((b~@5`EB!>aWf-cA|u% zq6yt{xW!X}E8rzY&R5%>h;sQIi6sYeK*7RY2>bxGD-^6?2K(m8XNg zhL{Fg(j9++L~q|zXngob`?-UuH=KomfM6A1izCB z0Eqchq+gWTWKJV^oJ5mnfo#AnqwvEi&eRPCW-sYz&~<_r(+Nq=Da6)P-&Tc>0hJq^ zd+fHd*-;)dS7~&6I`i`YnwV=dhYYa$B)|^7OUNz$ms2jRT?{4R|&g>FH5O)+~z&V-6f017umZHnDb z{@KqI=_g3!l^Z2DQOLiCbp253UISVJUCz!aD^##U;uO>bHa4o-qad)&=>_A4Ne{<` zh{}|B!=)a1nNf`8KI`Ok^zW&QLi9?Q!H5`<;&@u(f@_^6^y5mMcspoOg>Gtmd#sw? zU6o%d-VA&$$-CUoj7)J?T8q)7h-g@uEpV$d1M+5n-f{;?p_#F|tJ_n+YuQQB+w;IP z!k-q=z_B+`xnzn|frU=Z|H+cpWu&Qf9!&h!Xd-pp5M# zk-u$&xmamxXJSH&iXNir*wC;_uO&UG&OKo)f73Z#AVST)f{pR)z|ExsJDg#8F)>w0 z=`nP)1KHE#FlJx@q!S!Rx^W4*w-`4!?7OWKe(yZCgL2gk&*rnoBuEf}!W|f7H+*po zdPw!1@qs%z`(v?ST}oUeH6mgCen@Z|#)!j2k#}(fkI)o8#BC>ye-o{N!pvSqibpCP zBZ&4OJsk|$gZ^U-PlF`-DK0h!cKCmPzMObqo#w(k=oKQsL9S4SZgzBHV?^&c#X5-f zXjpHpSQkN~wN0=qSt_q2Q<;zo=1CsH6{d zW^&IpTpU<-{%n=6hRR<{mp`VNQ-fT8wu0Csa)t)*;HP=d=fE781JOIXxD|WDhm>Gh zsba3saOfa9#RA(mrBGas!Ah5uXNu4p2Rq@|BuQLky37>#81$ZIP>*B_Gi4Z>G5)Le zKiBY|P)a8iL6m%|G-7G|qo5gxA8=OW1$?#>HMQM@Mp%b%W0mpDmTLP+!rg^i}Vfe4?T2=5?@XBFEx!a9Mf^-9F6OQoLhAM$ZuwO9P=Cim9t&|8D0Hmm!MzP+<>yh>jOxrt&CQV zwSXWyfYmV)Wei8?{s)5U-5yaif&U%GZVty`+r#r)fNpFLX3oI6G1mmH6zv0Qc;5MG zbHaak(p4c+ty8@$wv=#V&i>CFGVY5~npxa8GL&f;sMP3$W&oflAmebA4nGpA8mo9W zsn~B#Zf9Pq(pgrA*Ub*c4YzzMR%+daa#MBaWL6?X+!cwSb44fejeL;<)JL=HGIWZ_8kO?I)OO z@dO=n0v|Yr?bG=&`xeB*mn9c%QEP!0`T0z-`0e*h#D)~b|9C!^JIBYgc5p6l`)1-i`U3fdRppGcZDCYcAeEdum?gEJT z`*eatp=A28uSuK=p>&@@%E$CPx1hx(o0ce{zdI>H`eY)^PuTe3pPmP+!?Z&K*4d-7 znq!5YnJpnD^;XFr`R}dAbvEX1)ubeMkYEF||J|GV3kZ~kRT{DJmd}rWQ?r_0V+5BD z?1$GJD*nlw!n={rwYV@lprK(erfNY;^_NkFgTreN&)2q8a_2}+wQOq}`RU1Z3mc|& zMKx*r-U4JUj$9&Sy~ zzcQ6H+@|NERJj!8cS*P%GHQ73)jtLXwinWLXkX-M(U{1X=cf>#n5y2NxR%~^t$#fQ zzeoA5ENQo)e3(O!XhMZHnzg8L>!Hk(j{V8`D0X*}KZeVNaK8JYHMtDi&pWohjx z)LspBMhbSDEXo{o8GP{_GvqZoe+1?G|GE^u=~UGm@tx7#kvOhBFJc>&bz87%cO5GD zo_BY@4g~~J=jrc+zMWPdTz_6gs{7pD>bu?jvD(?_-E{}xpzb*h4jBtOH6S?=d7P7? z$N|3m%%=?z1X_78zLdZRs`6x*nYlwgU1Q^wUQfgBe2tms*2%>EXa3Ggnh96g9P_pSOa{9TRjb-AO_isJ2hI_B?3NVc8_*c-iFJ>L6sc;JbvSB;*2d!5Al?hQU^!P{JK zrgrm!8f~g!v-$he7}B}0Nr3VXPehO9H|DMc3gh2-jY;G&sXk%F(?pgTN=s&JngQ(o zB(FO-z-Rl-md9bl{VIO#?$amVwt(Y$WV55m>Cul*WcH&{`9-O#o!d14!6f@zPNgFTab^(4*UzSsv7Ng;3eL{Xyf9_ZF zy`Z2p?Qb@lsK;3Qhki!MI(`Q2H7vsf0j4X%dlPl|?qkS6EPvTL-sh*Z-nMg}9p3pF zRqF)bw~YCV|4-89rcYW-LUw<03G06xrT_c-Kh3Ni|6h;)_}}@ETziW&WWPfoRjTUB#|*dO-Z|cEzMR)>f#yQMa3P45D(N&+dtWP%fAi0 zYCCu&emW)UgMn+o-UxwakGqbZ-=m1)sa;9IE7Yny6Q$V)??0+0%w!Lkln-*ed$uKF zC7Yxp{Lpt9T67SXZ7@R;kQRY|9iAKKt@QGd<#-s*L$mSTl-u}<7Eisix6)BH%tLW1e$-iUohKR}a*KC<5*LtgwyH5$>Pg&>y> z1eqkF=l4&kf((RRCvJ`38s|Q|xp`&q!j)>G4O-%Do0um{*K-Gu%2SZ_>voE{is|}V zS{dcZQcdgPRLLUM?(8Juz4TH0wlNJDpabrfEr$R!7ziQ?G*|>E@P95mOXrV^*Rck5 zo=QJcNNJA1GNzAo2aIkcSTl24wHVgcX^T|Whi)6x5)b!I|30&fssMrqc1y-ARV$ae zcdo-pV8)N{PdtR8!SC$dX(An&|Jx9^@BO9Cj@LyTJ>v9G8Ef~1sdI@0Ly9Z&(J6WS zMfgqgm>)NUi(%v9Vq@;XdE;X3Z7s{i5?Irw%gt>i{Oa5oaLDSgnq?TWv&~Bl7s~cw zw=-o**-?A{)g`CSilK-z zg@7U>2Qt9Ad@&<{zeYQek)Rj_x1!)T+J&lAaO=n?rm*h|4&}1tTrzIyZ}vQk-vf~` zNM^zB@}7p@{pDl69nTrhs`t;ePtg0e^JT93VSwfLRjF^8dxXV^pA)D&11&SWmb=N5am(p^o-#h+! zH@931*zcsp(!B`8AT+$$1}40Pz{hDx(1hl|TkHmthXAQ8}!DH26oakfuR1Jr*KgN%i4y5T-OO zTgH5Ar15x(9hjnUHaPviNqS5_z_q}PM39&Wo)OqUKj7N^w>GKd?3{%PQN;B{*?@5`1FrT9Ibi)ejhhxZpI^fN>9 zJ;*iGMs3lZum!oqWa&Uw`$Dzs4v0;nftgmABK#xFu$Ea|h%xG?EEdg)PN1>`f#T{M zDR-1IyWRr^Kc%}Damr`!DeS>`d#$t>6=I|oldAg9-Qy%@B+6nla%2Hoz6BK{9iFV( zgAd93d{F+oEl^9l)w7D^U>5==I#L`~>Cc~To(?!MvqNvT- zobTp0=(m|lK8s__w7BUp;Wm$~3>bAJsf1f=1Nk9D2Xod^vjRM%hDV(U?H`|r#EAv* zsi{hops~HvMPVXVK`+SzRPyVH8MeH*_Ikma!O844{RWsgNz8){a$Yc7Xa`g4XQ0a! z38W}O3Jr@X4oeIvmZ+liEKf4+E+RTy9xH_`iyi`mCB(H85>VBpNUNVY2a#70Qt8xp z8JxI4n;ou|2s-Q+3ZVEDW>Rto35=k?R+q)xnibVI=zh0<7*0t)X5wF?S+$=8pvZLu zx(=CBM_|~>8<~=krn20`NKf63C;3fOCNoYRli*-uJ~dEL1QQrI8AGPV(cA;vC5+%m z5=%Qm6@y#wA#yW-X4l1c`wTkePRI)MU{j4B4f(0CgGn$5R;)Z0b-EE{BTQR%k2oYe zgKK#vjNre(F>nzDz$puEkgq7mm=~b8RmykH*<9Pt+w?#;fge$oI9T|5j~(ymGMPxb z`kOK<2Se>9u+Oim+~}{bUl3vsyUk{xDP8?KD_rk&zsM;zLo27&wlAZU;|rhsGXc2< zJ@@%K_cIu_!5gRUv66BB!kNMRUp|Z*JJ;Hva{`ncK`|$!9O{BKHT+r#5K@8%szjk# zRR+&z+3k9G??Co3(~XjlAF@!uH{9nO`e4M)`;g^pvCun|CqZA}&euPEai22N* z&pSFhcK-45n9%HzZT$R<+KHMfMXGYJ*p?Jpam9G+mhg`VN=*w8EJT8|gc5%!eEN}{ zy}j~lAhw}*GKy#A&XJne?Q+v^h24ww`>A8X_f`JlpSvTgv&tKckbZB6t}mVhq6o`rMNPn*m`5$RB7>{2yb6|ElBtBDrR|2mM-QA~1cQ^hQ3P1;&{^4wRe@ zl>DPK^Il91zMcXKiI@WGmV&yLXd~A+y~4Q0^^2~3RD>@6LB!T?dFl@&2o5yTdEONG zr>U0)gU2_tp0kpW=Y*q>_=Iyk`T|jk!24AObMBN*`OJSi@*d$IbHCNbJ00}o@A4`6 zQ^Y{{HRfkslPO|-kX~xK0jnA)N2BOGIZBTRO%PiT5+Jry+$s%JMNJB6 zMNFtt_4; z0}WfzKexFZ1mDsP%c@DltRG;-<}YOA9exdo(7G9hq=DtSaMl?}N(peGz1#e`tT}*k zo|TgXrc_#itjV&_k}J&6F~*lMd$e$7rI(C_zw~}pV$c&8PV`3Tab44~cPRxDU!2im z*JZ%Up8BsXGTLuiNYXO;J}GFe=e|6Ye={mvulq0V40VYUEWhxIMr4HVr!dM-O+O4N zauf*v$(;9sox;#Ul7O+8ZwFK`9lQ<#p&Hr^JUpab!aS%#5mV+n-_WQ|iJ?fK zK$R>;9ZD#mkflRVr)+K3hqf@0p$+YXGf}~$hl%_vA^Ue$l{&xwx2bhU89r9?mS|w~ z8=RgBN=3B8jNN_GKW02B6Ud#9Bh8M>7wXfykfmC&3N<5t%#nyB_+=yU>wyk>Ie9^#cmxSaKB0s408H!G1e`NHb zy_A}i1rO)}`H@ssip<2$Dq0+c#W{~6E`7dLyEzX;eJ*UA=n?tHf=jHTZ{4k`f}+a= z2<-bXL1ZsB6aBqlcHzwj1p9dP)FV`*@*jYVMG~}bRS(yEX_@H98g~~#Q1Nb~4=?QW zJ1g!09}AV%oGqT*A_!CUeAtMc=s?;Gb7lA~b2URg-Rod#lHZfAu^A5+!XjLlp@&Km zpjU>F8(-d!YVrJW*N7drDP!6^gaNaArx4LXbyg#lXd`gn z$BZg^zBN`y2Sx;v(U{k`qx;`AyuxBbHB>z9%>suondyR=+PoUqT)1JtJwMww19V*n ztfQ%7pHo=sawI^3$5`TcMYa^=CxMD))Ephi-oIJfm-^_+q?#IrLqEZ7PCiCL6;qDh z%Bf3fEd^yHJ;sB-&c2=0iWo}@cw1uoC%?+BR!mFEd&$&+5>$Csrq!cvcXRf+9Vlr* zZ)eZJkQL|b#xTP_@MXI_p}@5@@|^bt*Y#{r?0U4XJhlFF>Sq*qcbe)u$4qXn>&vbJ zfuIk%W!@JWmxjPFhaC<|uxnvPc>;{PGMU^TO(8kGYJf{n4_yvb>8RT7EQN4Ydzr*@9?(M@_Ad%-k~$sR;Z&mSLJc=$#j> znrkPRsQWb`v@o!gYZg`~qs#F(HpvO+gqU#YH#)NkcsB*IC^bK1lc#qMuhSmS`>|@% zoudm<(u*e#rslG-T!c{`2NO1#S-$qYo4#ASqynBU_i`M`!=P9ZI=HU9 z%Bxt4Wksoxy-R0yRrZmHs>zQwnoUs#*fA39ADDyetdPo7!2aLRtzGR{jfV=5HLT-c z7%vg1?1gIv3;b>n^<5sr?nkDdkzaR}UPz|1ykou?sBD0Ta?J>$0&b#&t18YhUVaa^ zTvZ`@Jm~q2Ma)})f0eu;y3%>Kcpa@p`%SqCi549qi)2E__-nweP3#A4xkIMnUb6#x z=_w6SvFde(y<8em29>`^5qakY(k-;DfO zBsog!cvJ+?>5j4z!se<%V@negva<1dDAi{l7lM6!))fk>X?W3Y}lL`I`5JMJYYZ& z1cyruh4LLZ!XgFSEQm|3sjJo`><#Uv=PgRdfy2&9f3tIc%o+9J8%Cr<7?FjK!wwyu zkst23&IC2J_0}i7H_TG#HDy^W{R8~j`UebUKO8z~H}EW*9CZ>)+nOVDFkT%WafoL$ zGOFO{7nU)uCq}yVA2-0jj`;tK)dv^L))=d6NaDc~wi(vTyw$v0Zy3l-&EEgRo4qaH zE`O#ust$)-Yg>1~>a^p(8@lT?%3m`xV<~eo*uZATPP$@6gaz?mLKiV+lOVe?j&F;# zRh|)opc_Ke+1Y}bf+zt@vvT*1w1D>B}8?gv!kQY*a;sTT*80QfBN95gP-! zTQ+qr)U9oBmJ__#8z+o>#k)x5<7%VB`sNGhb%(Vqe7H4*%^kYC7M&=X6jFQ1c<%Uw zL}8~B0Kj3-ZqwOb?jgDb@?l~5vhCEt11kA&FeWhAZSM9*tCr{i@X)Qehep_lnTNS)pQ86nb|^( zgQ|8FMY=gf&*Tr}UeYZ$1Te|{Pb6K%tJZW&m=Q7q(Qnh9heY#OHFlp7EcqCuV6jYb7)Y6eUTQ3#d$1e=dc|a)3Gc5c1*6{R&mwd1JLmA2l`0 z?ReHQoECB~$8;82Mdj&1jF#fnzUV79o!_~^?U~N*ql0@}7Xc$LK?ngaoqi+FcIM{8 zruROhQL%x3uqQ#ulvqvRZ8TjCh~{+Wkx!LW3|L!yz}NQ^C#OLZLc6gtlP7yujz z`$a_M1<@PFWRJ8cs*zbn-8}~f#ZyPa?Mryg>HxKXEo>aUlGE*?R71*O`tI7gc1!M0 zwo{CuOn$I@;;8DgM(IEfeumngiJz)Ta9Y`JU>`Bai*z@p^PbBKDIyr6CW(g8jnH;G z_5Gf)WSEI5{CyY`ihLH?bp;2iKID>d1QB_Cj%hs`(YGvRHnef|7@3WQNk8;aGkVwu>9zFUU`An!~aJv)Fhr^j? zKB{Y6PF&8yiX7}W&4cz8Q>Y{3{-;lQhsTFLgRp}Mt1lczlJ`fe+e_J0Yb~4XF|d;W zgSTsL;H!(rJD3o`D*F#B{`}Ln3H-hagU#wz1xrjA0D^6lxH+EkyXG1^ByxbN%$ntLdxgvdM=R8g^iI7 zU0{>6@-v}4mEY4<6W<_Of92O;*Vu_KPU9K5~U?G<8E z1w&Nu>u2J&IE8ypLr$Q{^3pPL>dsvJ?7#u)AqP4?#n+bU)yJ6^+aXI%%;tc1>ILD# zH5!pC@vK`XfP3BYzlUHf#VgsIz_3 zcS=v}qnTV8K=O0d6CTjI{RivAM11rGJpld;(-$5QG8(Q6WDf=YmPxTZ!MZ&P7b^=MamU(pCUsIYtuM{Ej0dtd%Jo-Ki z7&Sy#(jP?vxD0&ne--^6IHo@KbcNp-T?m{(M6LS(Frm-D#X43*q;F4D%$Zp}m@s~oEYZeo@AgXPRyJp*qF$dM0u1*i0F ztyiwY1YZ=-r%pbw~BZP;zT@-zk7X#gMim+9<8XhIcM8R=pNj7VPoOU(<)gWr>F5t>!SbJov^wq8WR55MiRB6XweH!>gFpB7q0^6&n$xcnNoxCuD-18UJr z)E%SQKmOB(`)B)a_5X}aT|a&LANn0o|DErD;^N@=uls+zY&;zQ^#A^s_W$7ib=J65 z0{{RS{FmoH(tT{dXps$z9`5ts-QIq8gV5U+Bts^@AAQ5bN)Lu`$P;=+@rAVfEJj*I z<-CZKjEQh@2g{&vK@$#Z*Ijpg!6DBspyYRrCbf>z|ZZpJG*j@9UV<_ zR&r+OWJY?uf8PI7&im{;_2+rYBl}9Q&&h(OweLaHzu08bdNv35Yu&139SQ3y9ro(s z!(5Qn)Lbs{+diAB_lu?brbzIm?4S?M{)E!DYGw9Dx1qi-LGMz@AZfQZAA|InGAt4T zCHA&M#{0$RW7{IvbA)}4i3p5n0Vb9X%6Fq7&KX?T)%aSgZTI6gqJumTf?NHPy;4|QE<-hIc7P0q zI0DSgFd0&!xkg2%-aMa|*nd(5xCq=-|A_I-kjhhe0}PIP;N0?t*q`NmVte%R-1K`S zL1<}`e%5rAmcq*OmVqlPz78b*#xOk5Z!Ut(k;o@(-hKO$i3Zefm$!>Ku))jo8ClbX zTgcO|q4lQprY_{+&se{Csd57L&7N3I3NfQ*fFh)#2aEQHC=S1Hd$v<{uXG{h^JY4x_l%h8ZvwR5=;WpKjOBZ_Z)$~#^&EQz9VV5Wi6wm z(9U~mSF)w2Eac=5@~g2R?DiOhLWZ4>v?=S>`9u&)-{-#C6&U<5@UB?72Yj_tu95E58UT}$7WMx7Q01pf z&^vDHKaoAt;=Ll&ZfzClJ%Kl#rBVg#-`E}->eJD2iGC+~K_oCX_fy4$K}crqGTdTI7x*`kAH}$O!%=)YM1Dj^$~O1$C={T2)W+YXsu0l zc*o_WF(rC<2T6~Nd^w}_O)9QwD1Yqi!UQ~8Sa6Mnp?>tk6W-Y1aFV6wt%*dLKe(hR zpZO-^lYj}B5a@21F@dqRL`%e#hP`Y_&cc*id(XQ+`NRiE+gxbU-aeWUgVCH3 zmy+65ZKw(Cjz>wSDy09h^T%#@Y5{;ta5Uo3W%8_MUPR}{#S&#o<7d`@AZ8LFBb&cN z>9zn!d-F9j41P&60B(HGoMC3L*O=LSL)y#}2C!W8d`}e@k1{UKu~rBq4GihPL1pN} zP5|S>af2-xsX4NMW&Hk`*bs3wz?b$3B*3R~NM7Hx0&=p9le}RdHauKw{GQ0qCIIA% z&&wV_hfUra$63sx5D2~_dLIxE1oXoIdr|l(202`dwDXMx zFAe*F{-n4v>HzS!cn(*M@W9s$hnvGbTvQo}7KC_Ilk~RGG!@v~k#ofoSit8WAz|o{ zB&Wo5c?I%>ynaqxm@r{{m=1Vw;9V}|j)A@TN6%Cc9?QTQ6fut@$}m_JL6m1T(WOUZ zk=D*8wIKhAUnl@WlKVd3;%;BHG3s-cr9jf+Flh;=(A19O5^ObEFhh-vTiY8jgkE*W zVu916Q$B(cyKk4#t)w0Zpzf~UZ1M*IbUiZnCoG)>Mpr*6qgnx?24Aqm0SI@E*UR=% z?;ul5)k==biY6Gs%iwK;9H>h{y*^eN$?`6*(E7ghg&zVgsdVm(t(&#kX(P#4npz*=K9d$rz_ii3pusqL_prSlfZl<| z8aOjkdNvMX+CLiY_ma)O|1=tW|Gn-&lzaMo_!^8wM3rUXA6II8!u6JBQr-&Rjw>&4 zw0S_iG^=#&GR$BqMi6#utxWjAzEc4o9xER~Os!akTD=mm(FF_N!x&cKINWN`}6mgDRvW%7JJ#p zE~`688)>#ti}pEjMHsdtU)3(xNK_n}QvytGo-$MnwcuUql(~nfB21_<f)ppZZB@14!`Sw?HDR))3U-|>9%h;tu=)k0+xFt=LQ8BLK}WgUdo;N`kia+ zm%mINnSz#Ys??Ki+6eG{zYjNM9jEUR%%2s$dYjgKK2Fs%vSVl-NArC5>8lZ*{`L2_ z)en2h4-Gz^KYt`0vTjzUx0L8-43%h?h*o1v6ES=lVtijo7GZZO z!A%U;g*sTmQ$w#l`Voum6MY|MCC-AnX5d zkN%7QXQEUvYk6$?ZR&D*<=nL%I_2;XY}$~l*0RSq-`MXj8X-VZv5LM ztuQvzzx->Bbg)N>JU}9^e9T#05jKqGQu|!!wzi&hc3eotph@g}GU}4Ib2pV^*hXkA zO^}u|K)(lt56BLH&lgvw$17`y`2^!#9l1t8ne#A5^Sq$c0qmycVDF6LUfYR$GWcb}BM;UEEG zz^0tRt`0jyVsC1_qm#MAYmBoozPF-JAKfeaGntpsy{aXK;rk8ycia#}9}rDGdoNWq zakY$HAm2Iv_cuWm3jBmMZhMGX54T$U&(Cx^3?>R&-td_LlL42jcUjwa>Kd%wK!leS zk75GOmpSzz(X?^n*J0={zY>OZasrnPTdesV=(Xycsigr?22ZMj5_jUWGkhx@w zW)t6vk2{!HZo16QDQ%mE5MUyrW0CQBz@ z@h+8KkbEnnrnhlBK>KlFwHp+a<pA2)pZ@An{zmi$HorZ8K zC15$B!}W$><=g2miI7S3!eU`+nCf7M9%d~!vJL|7d`XSq)Wx=M!5ul=z6ugMZnWmp za4%B^9X>-Yhp#~ny)ZSeG^}QBuVU8|7#DC^I9V_B-}GVbQ!1+q-bC`K4YLV-j-(jO z$9Pg|2zeg(+Mo7%Cv5en^HhGMDadaQrdi(Wx1qd`2*H8m@=ca7)0#U9^?jMcc|lE` zg6}xbGdUUaf;);L`}aV;Xo|t_UdKo~b0wwDdCEnRYr@gb0dZds1qnDQ+6kXTtfw2? zH}$7}RLN_PB$M$oZ9JLk`;ifid4xrwebN6IYP51c6OGtZ)E(P2tnJ+!b(GVYs{B?G z7okjzro(}}<2N-bi@CU4!d2_yuk9Gl^rs1Nge(3D&$Q*%k^4T%itIs^?Le?z(Ift2 zD$}|EmF=dyavxjD#h6V_NTI;?_rDbDo@ShlO zBAw-bEp`9n z&e%YL%cp4^fOt=EdJtPGU!_zjn%b|9uq$#C@u9FiG74T1{sTm%)%|5m@~SPteo?7` z2y=cde0?65WS5!#9hnPVpJnoiQG?#u{RYwRTH=0qw3>xfN$VIdU!R5f529cC-4RYv zz3Cl;6om)zAm5rt7G@~HsfqZJOZe~_om=#!$fnMp&TDhOn&PEJvgwJLE|JzT^$n+h z!;5-T5C}v31}U56k(#H>*}nD$hcyN1L)sWyY=KCF)*DgOF*~LC?EbWpN%^(n>LhRB z@Wk{jZ}^g=v&f0`D+cq}5lSK{WvoKLDvX~BLIm{Sv0J#h~hQ@SD*`}N^F)$!QLfI*N zoMODkBEC7H0^S4VhKO>*8{lcfz;lUPUYvHaWF;rV;a-J#yp!L#Aeg|lACvwn?g2a9F5|rrx;uK!El0!8i9-UU9Dy_ zI^~->(#h2=A!5pvb%`;U9HdqV<3gkH+Ec#>83%mGikXZAm#TQS-z{Ej; z12+v$>Xd=xC6W5Eq@lJVpl|Kqq?sXY#pWD-5CIXg8Qy^If*0YHH~^R8bME)GHBueK z@j(LNrm&ws+giHPb^VN_#FT}yeU-%l>@KFZI};Kgcz1yjA8LzuVZ)-oFmoEOIhnmT zUYif$)GFy3XM&A>m$gNf#k@706HB`M%}=lRLyIW3^BUsh2 zik|8rbJ@f_>zx`aJ6z0BYFh@2mT@faTH;dZQsm-1>|zjULQNaitM{vw6BvPZ9?GQW z8qh&AL9=B!V?!%Q3Dbmkt+}B>jf(4gb7KB+SNDWg?Exc2%Y> zE*5SSHnF6ne@YOBh~{~o^m|$|rT`p(<9~y`4cYB|Edl%0UH2&oG7=RATU1AMF66hm z!?eh%!@r|x*lBpci00*1LE@8wznMjFcnE+F=P=-KM7*EUdF0?o$N7rGO5UdXJ5j-* z>Wwwi!me{-2%$bN6nw)1$e&5TBwngR;gQ+WzzS7e;h_HFpJs# zrp7PmeNTl!&C_GYjR5j@+D&BBw!UR%9NY9&Bt);dc2#ANfOj#P~-VfFSf)=Hd;8_r#y!*Pa`nWm_hItO{@wf@14`lz_FVzo;i=P>U$vA;0|WgxBD+8 zjB9B@-s(r~*Lni94thk?^9jeMVApkbH5dD+!CSQYh)zotic$vz>+dNx0pBX}*#tC( zz3UCa8inwq`{lt7f^UR$F78`XR;`+9h*{|P85z*iyOMHO)i*?WLM5HKVMX(=UoVFu6x5}TpT?_ z8ePP}19-Pk$&ssD$)^qsQD`j)jIDaaGJ)$zr(8e@`@ z*MdtG-iSOYcCv!0%>9eH)mJ&6!D4U!^gOVNO2+$KWC=4FCcOBi37qv~4#I%rbN_ye z8AGwJzE~epvWCK=<f!nm8oWKkriBilM|pN%Nzr1 zc26G*L|D3+@yXO14KLgiB@94-)Wrh`$&ikC;6Cpn|1t{cZ$!PB;1$V6TV*&n*yc(k z)?n2?BwCHFFDXbVi!keA<{nh%-?dmB2W=H4leiHa9>qfn&A!+6b7;CT7q+Q>Eww+N z{3B%skUSz zc3A$~0_EjC+6uEYUM;-RoR9AwdtwIZKmazme!(di7Yhx`IbaMyRFD_DqAEP!^;oY$ zvPN&W@r{B!WRb8n4cLkOAnoJK2bu_hV+6Yp){+D!edsL0O z>vb7UioP>X!r9PNLV_lFD!3~?U^2Z|_C`1Is_PeRKg7i#KX%@4*0LK;HPM{=I7nqqQo z#>VDEeX;>_7+6jUP5fYm)`ke2UxJ6*?b2QyCmS?%9L|oOpiCq+WHT|Ms4=dZC1?Hm zewQct-tMOX{warKK9z9Va=rPjg8aPLyo%(2-V#E!3Wft*FH;$&p#e^go-AF&DL5gy$e}lc`aKVjBMfeO865}{tnRYRSKJ@8Tahj`4Z4?I)79}`#y-JC%GmU=*LP25 zlaws^JX5QA>6y1eSnK9`FY4i6w^0~_bHmdiJ;$-us(5p)YN!k;xN4D=v9-atE|J2} zcj$Xh(H?ccc+bFDc65%f();XG{yUdegUNxxykk5)THvAi9vTAD8-EOumfi%jAg(X_ z3tE#->OI6hFe0->nhR9eeSfSkf30CRktb4btWjyNf0|sBF zR}hC3bt>{m2I9NcnNx-mp^l@RUpr`ip92n~_Z>U@!xnRGc0<=|zh+;MuFdUeoV5f> z`&k6Ud0#UrUB5NddBb$~@_8%Tw@b^H> zkqo^LOSKgQ=lv`@$(hv?9%t38GyI0i!Yh?}>!{&Dkoh=<{iAE+0sz%3{qD`N|EoHXn-u3`Sv#R;{>u(Y5Hi=T)2s@|-u+ zj#GqB4{?v=R5t#wd?YiUMT%bkeAPP6J5;)gi^Lp${KBD!tY$at4qs{dO|$24OD@dZ zw7C+V$m4U$!FI{pB@2yH4iY(fg{$ z8NB0hTOILk^)^ZKdjA-49adSNm(^D@nx|Q#>_bqE?babqN7>N$LlYkx+C(Oj%bVht z3z54-z2ZM!F3g{eIf6#@2_2Adh#EL3?&7TiUA}k7od9epg6s-ZHQ&M0zb(=et5z1+ zSH`Qrz4-Z==RWGyjpL;nkjb;cnvRruWOq>+lLqGoaB2FQekb4Q+U&KBruOvY&BCi- zzB9yO!W7h09dmv=uxwY0+W0%C=cGhbLzP2p*SR!KxNG!K#F^IDi=WzYf%#O+w&Co_ z?{zplyn%_tQh~DvcgxQt831%Zp#}x!9^Sa(bA&J-0s#9K0Jo>-2j{(FVt|%t!Yc_E6>5f)+ITW-I?zi>w0Da! z7Y)$3RW{sX87hbStBLYYPx)u zMPCUh#DcYO`<@~H|LH~iyZS%-|Lo`g**Mt#-RHk@bMpSP{^x&f{T~+k`n5UW7j##y zEUzy4`uZBINd5K=ytNp~@F(#cBX&+Yq!?BD&ywI&O=e{->_!^_9bx<*-csU>=#^$X z`Nka380ZjaFf;&q1R8S?tOO0~auk7%dad+;MnY%%9jy%=1s$uWr}vWe;WpVAn)9{L z2|B;KyZh@*Jv7T}N1{9%*=vJ`11#+8Qu}K|0Q5>qOG_CU8B6HscKqL$1)Fr*3BUGa ze!<0MTqM(lPJ#7FRZ$JlJlCCBK3(5lJzUVAI$p8^b2rul0Kjtm?P+wTgxOQFV}{l< zp#<+mdMz9NEIb^06kVPq4^vajlN{Ti3y2@L%1mFs81yQhyAK(qei%0oOgXyVAuSg0 z>-BmeIGfE^LXj%q>#AZ)udT!F!xZN$!9DaaG#I|H{-n=VVuA?&Gd(W0I>%)yP1WMh zlWlaPIDIZ*Z$#Pmx!Ipf4<+!PzVbb-$zl}2$y4l>%zp6FX*hR5U2s9Yi%iq(m@v1I z3(+b7ZV@gbRD?&opvPaNKt86KwleUyw?#s|X?ME2uz#MPvqtJ(;4(nHfiR_{)DUd3 zLf4$YGI7kj8lETgQFFT)$ZRzL%TW>Z9;AYcrhp!YH4x$BzUXCApldMp4QFJkZ;79KQm7u`~|Lmdti6=COCO$ zZJjx_5FD+;vWg#phplHLN`$_N5-e)8HR#)G+3&GRX;6on(Im-L<8)S!%COLs<-qd{ z!VYCvGF@cG$H34Dg>AIcF`d&1ZK^VBR~bD-p%s~?QPGGBSuhCOcKRkgjs&qNK@$n;!0o zYZ@(FU!-_FE3&M27g$l|9351%pR8SNRnNs7d3t->L_ZT4#-NZ{%tX<1ZwLox_|>GK zW$6i=?94(s#V>!RW_%i1gP-?K&WQzSDnTTgd$Q^^9^56Mz-M0~)G{_w~b$nM@s86ChiIR1n1I%WT(w>Dds0P{UZ=+-%fCZj%Qt=-{0 zBfWhdo*%`~4P8re`Ilr&(8ay>B1(Q0IeCb`vE<0OFFY1TX)xFC4gXI~DQc{7u_*Z$ zPQ82rED#pQ*kRqVs`l0Zz$PEQ8K$v(cVPG~miYG{H*<3iJ4dBe3Ht68?w@oqCBxu< z5W&$=VO4!Vn7oAH0u9P=0C^(eEzeu|NH(wboUSc z|2O166zNcyLun5UfQCVb{5=IFKlCj0IF$C#8K9&7ngY}Upc$YuK* zD{L;oGQLXt011{5r|>w^iWtgT###}-P7pv;AaWF3Pxz*AYNz#8vNx~eI6 z7UB;eNvN|MR*@rRDuqvOI^~&Z8dClUqw4mReK(v(ZVstyE8I>9t+bt;sZ8K5@3j+f!d?YI@08x36y7YVD9F*S;ClU*nO_*UZ%X`kSev$|V@ zdrE$+P=GBowqaMBg4MqyTi4^uhU9wOyNiiArVSKI&bvi%`1){Lwo4NBC1?gFSk)=- z-Jx7kf;ND_6n*%nRi^<*Gee`iinkr|8uLvX@BIC#0|6{tC0~bj6;9^njs${Ba6z?5 zpnxBFg@iUR(RtpW536dgG-5CAIa}J9}#rrWdXprA57{dAy{Kfc9 zN*uGyD50uV?9;u92A_P9MD<9qb9zYI9a-w%2+{~UMzX`u;Fr$og%!k!(*o$IuIKTlRqY6}_vQGx&C_|N&jfd8ETjr;$9`2Qb<|D*pm|NjmC zP%{6;K9uBt$?qaT9w1Kz4+{eYyMYM7U)29C0sM6Y=)ixg5kPg|FZ`i1KqH~>heG}@ z|Dg$?S)ka5iU2eVR0M9ly+&VT9S1*usO$o^Y9w0WfUcXia*ET_Sg7OF6>rGWkvSnmg$cmd~Z3k_M zz|$mH&==BNb}%KGi%6fG2OwR+{rRfK9BS^E9wbpsVP zgoHaumBpdlN|T1n=Ad4+0Q*=1F3(JeT%qzJy?P=M}}uyW0RyBh4OAH0V;p2inXq?E1B8G<_5=tE9f2H z%GkwT3JdD)F8oD2oRU9)zeHluK);Z|thqTylr!{8R8-abxqL@-7`SUnuwx!5eaG}7 zYUHX6c~k?h?-7@flPX&5giTePUOasKeaAtRX=nF)%p5X0zNlstHWUz7C_6)=CDSxb zt-kM{K-kGN_N778YZ^ioUzuJniUui?-V&v_I9-%&VYjcDF>WYQR$=gGQkcIKO?mp^ z8KXuLr` ziI&oHic3*L=nwoW`1KH!kD>3-(@pVu$WChO-(8n|Pkxkz@Q#Sx>-#@a@V_(vx&G(# zpOc5@-}C>U_5c4-_zy(+fARlsNgw(Og)-Q0%Ac zu(a3+`N>fws53(CAVZG@stE&j3}lFTA`wKmW@f{*=FT*T4Kfx1E>gmyclOBB)S!{+m$5?#f_> za*nP+5KKHUGA4g*u`%_rcfKa+KOgTk(8Zlf(D@}=l&;=1mX)s@8-DrvRper4u- zDt3l;+@0wBE*ovuYiq0T`wfalkUz447x>iL8K_PpXy^m&z))@!iAfzxNJr_skaCHRb!=E$MIJQ$Uac|+9NVa70npda*d@`J?Wa}#c~*+vtq=ByNHrn z5etimk18_N)gSk)Vkc5KD6MgT0Vwbson1qNJ63(J{pSzFqahT1?YJOzs$j^GRKcT{ z8K23-D=F)t4ICoka5+*e2D)cleT)q%fjGma)vx}rOp=`Ygq{FRInYEt;z#$c zj4h8!n%>?wppn!(GDmBwqoKqCWzn(gnUTMcJpR(9Ne3o}4@Jg%jN+j^GW_n0=q(1N~ zI-qy;mNWEAOG_W|ZS8EikY`X@jKP~n*KzQ34Bx*K2O5${PX-of_V#Rn@;;1RYMII< z(`29wkNt*>v!EWs2koObXu@>kRi;`rq-M*(A2T{#w`_q7 zR>HI%*8SkmuFJl_OpqHk(r6}|40k?@9>`&diuZq{#PCzwtx8lALRKzbj1Ji{9lGww1tM| zke^MC&+q!OljSo+G&BJSF9uyS6&pojE+HHZMQ=1Lr<94flr)5G_LYm4T8irhRt4vs z|Iq|B4%yMCfppnSSyFO|cmO3TPn`XOfrdex*U5tL;jd1i&-)9Nr9WnVZk^K~yw|k& z+PL_z@S-^-QleNSq49^W|AKuu4)J^!*dgt`-(_R(b@^iBcQyUHyAAz(pfjiSHsZ0` z=Vt=zDVgpa?EP4(s82-X8ti#Y(Q<*-`c*_~&fHW%VAh&4$)lMF%)OrnitS4K2W#h! z%TuA_gzZSLqtTo|s(La%a@NhwQk^8-3T;A6II_3zGl| z>SgD_y%_ptMrYXkX#k?xhR5;s`^u#8pyfoxjoi1qkw2Ngkp|p1YPLT%hAiSwd7C4! z{Ygq%^@$l)$!4J3l*6`%{X;b47s37}D?`{zChlX{=iZd@p*xD-_>%T;y2QJSP80ll zz2Ag9A3{opMUr8cypIORza0*)#CNy<6t7Kw{(Y1>B{J>Rb1vCWLNYl+z+@_|szP2-^_%8hNB%G9L z=sB|EtzwtIb5g#NWQ-sG<3V4Z>lN`@O|u8Ml&(7sonK$Lm&Wn8GsUMbGb|vKgjjQe z&qhDHF7wF!^{KtecE1pmP0GCs#$z%X*}62yV-y7g`W}%rem2z){+4%3?qYX>)Y(%FYAr^b(1%b!`xR9Se1Y?eB&Oer((p@wAJd?%wM~`~A8!AaV zsVeCx%_u60yss$IpW&}^s3h(=WF>!i8j?DFANA$>Ev{p(e_7odFlBfI9(I7|!t?K1 zHO@F85AD10!`qmRZm;2iel0@}_ElbV6)Z%01PdRCW)_n~>|}%c?Q*Ke-VumrC_~SlEd>U2a0|n5QHF8><7Ygk5i9qZ zrp!&E0Ln^BRAg1qnEHVs;^monSa8-0jD;|5ktlWgAFTKRr7o!R&lx5WkaD&7VGyJ~ zQB~GLBO3suut~S{TtVwpg*bp=4Cf$=P)I{#GzT(qS#|}8$5Rlx# zE%A+CoOE%Mk7eJefMuKeeZDiRrat$nholHBv7Jbk2|~uB>u}EhwK*x1`Y0%!au|)q zyUfimt|C#VeC`mYq^yA5V*>t;7Lc>V^I>?&YgkXsCCk8im76`V|Jdfs+jhE8h5GRR z0I+PIa_3OcWA~_o_swSO+3N6n!Lg5mQwIAhK}z09Xg2~eav?%$zaOH4)~=eX9XIm| zipaJ%{M@6AeD*$|zYN<%^O9H=In+8&I*;j>GuXrw>>WE1-x(~tYJYHW*=&w=JT&qP z6ZLx_k_yYXJ@!1kN6qot0~q-})Hr>y^d+iqjqEeBA# z8+(uQlLtL~KroPT`YZx;Q-64Db<2`C#vn4+$Iy$!Y>QXrC^M!~6<<{6Ud6CB@jZiTWUXAS!9WYj$5_V#? zhtkf&LFb_NjuQ(!WU$OBf=+=nLdhv*SH|lPHF&Dx+KXM!W$0^S##!%8Yfp=hX(tow zjkxYb%ZmV|P{Wsj{JQrY}Nzfa(tRU)IhEOJ|J$_iGvB=a)T9PHtHzsa{lBxRXV30yVH%2oNAKh%EuDi#srb)Aj%Y zMTX`#0Qiz+z!ZB4+Is^Vy3ygLzUl}h(c`uGqJYB*j8>;y&{niw&nrl;@NOfSA+VKN!jP#J%YSqBObLevq$$7?CIV_K}a zH5qdO;ZCW-6Y6+%#;zZQ#d>#WS>TXy6sDWgDotvLPtx}#AkK4^#CUV4$i6z^prz}_ z=B*4taD-0+;{{0hn(pgo#A$y*=PM^d^?B3UpSNBS^V-a?gm<~!5pLFTjA?MFFvJ|D z+00=Ri#5(@-^*)tPu@!mn5?l&2lsAu+UYim>NFnE{wQvTsV%igc^6EGr%`id9Rs5+ zU#S_i!fo7jix>hrhAWSd%<1Qg5xjoH`65Foq^G<~yTZmCi;Ld#pV)iLsJMc5Yp}a< zcelpfJy_%J5G=t01eXxp8h0nSTLJ_N5}d}}J-9>gKyaDleea#Q^W8Ob|J<2%*SFr) z|4y$uRcF_Jp4zqRS?Bmh|90hKciC-*`x4#z{M>0$C;v&o#&*A-K|aDR9)iubX18-M z#b5YZPoKOsp9(7<=TDP9WY8B={@^$KYTLwD@f#57dUCRe;SFS{i@B*YJX`qUx)JtQ z4|vURQYYA6EdKyASPm6Gie4tG<<6Gyp%%pE*btnpzX%&;<6N`?@Luw>U1l1n=Cw|Q zx-9>I-4BeDnv25M2xvi+;(NC$ZGcGLSitYG29D6;UMRq}*~W-|m*%MwORJK{WUARYvKn-O|_*((e`zgM~2EwoE6Mj^CJJpEa0xeU`BhRvq;nSRp z@58~yA>99w?SFk-kHjR!#Eu*3OTOV;N&l*b+vO zHK2g2e@5$!ObuK9JpPN~=Ivu6hAzjNP*)uLyIDMWoq7Ij2%}6`(RPDYYu*H^N9k(8 zRJo=qMNO_rXlbk?<)O`~%}r%r_t=<6I)yElj(URs)_q7Jqyq2Y?>~&ChVodQUcT^Y zT%tPEF8fVr^Szdk$3Rnu7mrn+h{Vv>a%CC0?n}D+nQzI$pKTUS$6_3b85GGQXtusE zY}C;3(rmy>>+}laaw5mkn3o>J>wnvzuu`JKkLqu-H4#$C=8Z;P1(f6HAXD>*bixt^ z)m?T}jtn(*-J|VQ$yWGhcYx8g^nOOj98_@j^3GS~_@QRCGi?J@0)jKaw*<*J;x)BtjHn zWrdj3%(Dk^TFLT!X~nT2Ju3s@7vOkS>j3Mivzz7{iV(ne*hf9H^b3o!vN8bSoU#1g z#}|N|7!E}Om{iPR;ZW$YWP;Hb#h#p&d_z)0nCZkC}4n^ z3^^58haZHaP#jW@2$Ai*#7ubBG|+!@tR$vrn2d*~YEoHPe)RYq+BH>h;GU70>xkyu zwE2`S1nzJxI8W?uzBz`_vJv(zy#R?6?8iUI+a&(WN%`N`|8X>T^7!vQ0s61r|HRAn zzt(>WaPj=>`;Y%q{2%L$1rbJ0oS(!~~FcUJe86MATY)~SEtA8>0eLwGZt=Q-^Z*E5J z>CcjuiVC~4@|(4>iWWU@W=pn|Q+1LmKVQd*isy5Y{eaX3F+wF~|FrlWkH^J++K?J3 zQvy6WZ12Y_j!DFyuyU>8A}p;QEI7P=#->I!I3`e9tkV?&%)(!a`L}Y_CT)l(++>p> zz#O*Nu#Qgx$6;KF@(Ko6cqZZcdc_K$fn=Y9ze}im_=s*Z0E>cZfxUTxVDR}MP6XsD zO(=fhK8~q{Jd@-lz>)`ij-tE33Bgt>z`tb*LG9Gbn7GET09?J5s5?&yKNB!uC%l+= zBHJ@1rqx4(qSF?!^9%IvRf^PRvvo%WX;{0fvY|*~5ciXCc8ehDoezg|d_|l^RD%A( z2c3WFTBv7&XBUxMj+#v5ejN&joIS^IZHq9aUtI4U(@{jSI|l*-SdW3G!raIDgscJ~ z1hv5KuVmt(GMNBy$aT6zS~(IpkwJsur~n^bGu@jCX0aTetJfh#eTW<#hgY&$d>#^d z)_proFGo~epH-US0CuJ*8pmyoEPLuGkWOG#8WXMgU%Ew*c`J1<|M z81uRYwKt&Ub1g?-6v5P(`trF3Saa4X0m=%+`1)GZbZ>c~N=OCrUkIS|DwXeoim?&1 zYluR)xz=elm?|UyRrUH9`9~Lg?yjHS?#H{F_imGm-q00QA|$}DYo@NQTrS-Z73|LX z^LHg5wqCdaW+>2l_}8XyIlU=mI#(K4ijO&gKrIFIj|<(iQ62dqL?%;_GGB^+ZJ;r5 zv<><(1`GysKBcSfg3v*&fn%_mp)MNDw2nu9uXlzC_Cmaz{ zwm)ldNIi>?UAyxY;3D`a?{$G6vx!*`$zNBD`Gr&N!>Rj+uA;r?pTyiSHbtwUSVY~y za7I)BYMuuoCJ|1`)oh`a9y!Z2x4Dd=CV*P)8X<;9kJD$`o}3@1bUtfamc*)lV2j8j!T z4JSiB!UE@l=6MEdZz%p^JK!VrBMihTJ#@t85vxIg{1)`24G1j!q@X>9?mDxXcQIA{ z!cR7=?Tq*1x*)g)ZxKLO;Fyo5z#&MVMoOryo7GGZ-3R!#@(nIp<0zA?U|Sf>=FI*@ z`QWxD7dN3176mWP6^Kq>UGOlHe}wb&OP)%?T$_ZP@vY&O^vk*AX~4b9B3v6n6N%qC zFvj*AHz``i(`#<)!`tip&#VHW1mRNb-5*%xDz-OR{;0KnSd=s$Fp>C{Pys6}Dbt1> zSVO0uD&yV`Q3uIv@Pj{YVtnPhT!)u3_ePwIqc5}iwQ^bHbWXJXNEbIVyHO2tL~xv> zRTZv@7#q>gwo_8$luu_9ep4niI!CTl$<#1MtV9PXg&i7_AH(-1Z4^^yqOhU)qrZM* zZEW~}UsFsO&`6)yh#8XF&Idz$jh%{^t~JTqAs`fVzPX+E0H_wbqQ&qF2X;l5x4xcuVP_WhOUQCId6a}8z1lCD#4q@9|5+}!n> z?WL4KaOayip10~X(+G@kQ<4}&BT_U-L);4X$o9NKMc`zx`39Ob96^4uX*o(b+4+3K zHK1U>vmW*VLZf;TOfS7e=3lHC?6kxduUhkxCb5YZ|IB@@K}Lyq3U7>Y4B|x9Ud;YL z5tl~OR=;ts#f@Vjsy3z?JP2t+%L%_yFvUw)0bHnJQy>Y$SHQ9Z*&9H1FmntgRei(2 zJ`&GO;n~mYZT*y{1xF@^?WX#vkdS<2|2!gNUcU`7Z?z6^7*+ z2lcU}z_HHduLZgA&CZJ=`e>w<@KU9Zzk16#iW+l@ge)o|<>kwY<@dXe z^jUlZeEv#o{VByX30Xc*^n}+SS)Dr3#AuseuVN2q`6?z7CiO#>m2LmgPbg`zB(!DrqyZMRCcwQQ-#fE!K zp3qm`3AD7jeRdKGN^3bE!JHVE7k;hqp+f+Av`;OLSr(g+0}X5^HI9R^IkzCbk8(CM z4(6OUD+7&S=-WtFNaN>8!h6va*G5n)nj@4tN7SfTiA5*O(wiEz^Kj8le)O(;HcXnn zCB*c9qVl@Yqnw&V3iRPRPwHVA=9LXE3MC#ON>W)s>LLxhA|zg+T%^RHTn7>WKmRx% zr56%|yJXcU@A<%9V^!VHu9qm6D9xjiQVVN@Z$t`rq1geE0fuM2#DD0=gGLwYRH(4Q zTqS0?b8-S7j_@S5#7v%3!UDjfzGI2xx;Xya`{xy`C~AZ=Y#w1SlHge@;vX1yPYE3) zEBM(6{$d!6Rj?A8QI4KB2(}K^UUVAhG()r`JyzMotq~tYxZM*<8|Zr;uaT12Wih{R8MbI20FW751Rh9`J3?sbvh!n z*sGJDTF39tE3rE%hY86my6e)+J`h@^7HEWpzIt8P14!sGhmXdPSyW2NQgp^+o^}t4 zb{hTFj~=dEQCu7--3s>b+i(gT6i5f=<^~rLZEn$wzUK2SlO4WEhgoGM-a3*y(smI} z>)ezGKVPFytm74A;|-RF*B#@y5p-Y~lVz&b_|0=8V7DwS?VYHV!QdKI-+5+Z`9D6z z5RG^FjAeJ?ywdD)A=r!rJRfpAN~K0Egsy{{-*Wkqp|1jMvDH{T?`g8r!^-+#ElJf< zMLj}=X@_FHUSc+D%E0hPCq(PS<^Ps$h?FO%DKZkoKZz-Hx;ME0RI~1X~fLGWM3WaHqhPx0B=D zn+%V(xM~yKvq`CbE}x3eYDuDVWSSH4olxxMMF+G4c*ie-aWY*(b+02i?<3;6_42(p zlvw#xD5X4(ey2eB&VG5{;h?_CKtD83ya~8?=iF-JSq&6GHSXU!kLpRx5Mm_K)>-9v zgx_&L@}6iXe3b!c14#%Yynk=jf?mfj)82zzgAu;k+nmhj#2|e#j`RF`#%oUyZOfHn z+A@c3ornpgaG(;znb0AnX!hYV#CjKGrwip)b_!&nDZ_~Uwb|)QG=1@L&k4!BTQsSM zJ^a1ZJMt{`Z?mL9w}`|om|<9uQ#JiDm^Q&}eA};oZHguBO}pa=on_}j5_KUlPUl(TOtx-0KImff6tNL- zT!y_fS%)4y^p1!tp`;w_Ye9K%ByS6jOB6j0AS}Lf$s7vvf`|kgueiT@N3Xv;6KycS zbz-m}#|g5>5t(N*(_gd!6=IK6Ia{enF&}*~bA^%i`F!iA%*X@;6LzSlkB4F}7d;v^ z)X~hN#l=H-2odQXV{7l^p&FjzOqVJo3bGqr={)`vS^1#y;GUI-TfreVf=vp;d-N`P zHno&&$UQeb zJFqkWn>u8AjVK@AkiHb(7vBm^28TmV$&fguffZI)G&mPG{w&`9^Bcua1vNnj1|o-2 z7R8z{@M_MT549`pD4*7jk@Abknpro0=>TLUj_Weh(l~|52Ld3J-^%z3VF1E%Y%0_UQ zo;W1~R}_~}KmO4Ha7;f*#Q%|h5qSl09KsN^{*i5*<1lZD77;9lnvt_{3?+i@bM!na zneu;a9AF^7PTHtM|20c%Bzy-+x>7;Hzr{{MJ6BD`N#FO!0`WD0@c3e06$+FU33^--rAkr8sYQP6#SWPg;4U2cAYy6An6yj{V* zvTCXhO$xfq?aKf>4=aIo0Ce);RI`niKi(e~lI z9ZvIsnn1JlaA#8Fk~|U(DquT=$(Oob3RKN@{_02%AV?X2=!9N;=iq=c6q-o^6Z!g4 zD}ifi;&f(7LUVE{&nR%1Wm~}=cRRLN==Y}T=t+&DipROvZjlaCXbm}E6P16z3Sd12 zRB$7ys4e+pz6$!J{rSr}S~CRa=-lZ_8_0$^ThoIbE zWA{q%15Q*d@uH2wF5EJrD$0cM6z8itOY8b2nUJFhS55;=zmIrxF*Lg8=Oqwq%DFR1 z5>Gg?Ah`70$+WjzdGaWh_;ga|znP%$TtIXDD1~udhtgDv*X{7Vya_+xFHo8QZHr^i zG;FU)WUg#q9Fv-So11UdnxpaaJwhf8#-B7yg8-#HSwp5An?IsK+tR-W z`I+pMK*FN@|6M zgVew~>~Jv|n-lW2lZmVR`a{4p-Y{9+iJ2`G zM#U)k6$%{O#vN+)YJX+Qh2D{!9_%B=&*UhRJBqj*ll~l6>ck*-l%KrLA5r7T!|L>4 zl^T8hj6IRr8;9;GgE&No<=Do?m1j3O&(%*FC}I4^aQ7}Id!L9LV}>2J1?<>H)vMc4 zI`&-=0F(gn8}H|vX1v=$V3qsx`OD^u&>@h$>S+elR>7Q)!ItISoa#VgZNd(4%dc_S z?(alsgd?e{)CL+OqC%c*f%*u9P&CLTDF&pAtExi_B}FCWHB@L}-Ug(cdGV8el6xZ^ zORlL=4au6cA9L?f@b0U{T{RbQSHw$h9FZ(M#>unjE=)j@=2+*oHk@gVsQ1lvj)=d_OQJ~4!*#IdP2zI!RAK?A z|MC20$BPF*+{1HbZC$ACqDuYLXeN60TgLfy?7J)tVKStW3rO$;Ji z$_vImuAJ|2Usav;+^ffleHNmWx{mdLe1>A^vfT5Wv)mNo!}&N*||IOP>d5hZy{E?F)t(2O0wq48YN6MppFK z1>IhCO<_5$y7zp)p%B0IunQOPzj>zZ>Cq-4d}A7f&Wxyu#4Tx4NTVqU0WBnA3W4x> z^=p3)y}xfj0hIi>2MX;c2q{J=RK5a)ns26goUDhhB3-{*cR-RuLiNMSu7FwA1yYyl zm>VJEC3BO*gn!Cm(qP{i7Vz|^sA2=6L;*N3gXrF7M1Zj_KwPF+sXerS|H)3{nDgE0 zIreAUGjl4R4Con4+=yhli2gg=or7EP2=z&CUOxXKp@(gfiW!)L!MnMA?C2^0bfC+X_J z;i`I-=zie~CXmbkFihSpMolSkD}c)&)S%kxpFlhjLqg!O7<=~y8@D8r>^?VYcCzQ3 zEK~}YsRYCsO5AZ!J3LET*i}sY!)G4NEN>e*WjInu^~&l_2HlQ*!~RQyaUv-P#%Emu zAUp-}7-bnxFKd(v{@>WZI0%$t%O@0KQ%p`DUGcX_jwFxS+$k;Hk z`7cmJiiaEXD58u?v9+R%;ao;Oc*{CNBoY~WKuSs_=#!k)91zMsOk5dB5V4WNA&}VS zQgERu$%@)OJ;;R9aLkN_O$U$UK8|-d4uC)^FrluBgGx5$YM101U+F5mZ~)1tTS_Zc zS2BT242GEU@NCb?_~3~2#y^mxg)cbsRJ0i z8a90h2NhD=kU1`ohC*5k1xoRLmJNJj-{G+=Sq7D8pJte*LujHh6zp~zd@7Z^)Ca}} zXOA%8_QA!kLJf^SZnPu6a#Tc6-00-kbi9*^aX@b=|TmqqH&eyN9qL@^-y`9~M$ z#$@5sjUDmvwp6>Skt_8SH68U(k&IRy1`|693IlM{z#=Wc?|wT)URvlwH(*>ec696w z8Pk&&UxJR8bGPruEA5v@4`;8YjmSx%sC*#+1SuG5R@JipE0_D@RX}b>HeirgS0DqB zGA_6XYQM{!9z361vllpOcMNP)aG89f$444A_B>_-gMg2eBnUrQy}5;Cms?g2|Q@g z%=1i~@<)TnteuiVZxB3$g+~!rgGHK?3ZV&;1zP(NH32&!QX!;vx`t!nCUo`t@%p^r zD|i7GiYn|FxUFWdYzaTqYD$T_A9Z-2O%V-PBug+WDgUK<5ne>PQRW{J2rd1uij^DIxGb9_9t7KA1qSm<_y>| z#%&)CP!4D_PP{zFm)fcRBA4YL0tkGauQ68_Ww&}B{7LK)$=IniCWXD9Or^kPipQBN zvmuiT=IWtG88qOk!5OiysXlu?5j^1t-K7aZi26iC^)|cfR+)1%@=U_9)9ZLgufxsu zc^P0a#bF1J-HeU~VV%KSLCDuWD_LIF1ku$Jao7~p(=fyD7bLlwx^Sr+j3GRg43&yU$9fW z0Swlx)@lqEJvBCWmeQ;&QaZJF+kdPkfW7%2t6+myu_WRgaOWqNm*{>Iq(On9-Mp z56`-y_k%Z|Uw&sqBB@QtzSr8Ui*Air9KnQq4UVRTv>jXx`k*mOWl6EJpt}`d+~G4fq-dA5X`g+wW8~*XO6rUHm>HrG2Et9KFA> zOr~BjiIV+D61+8gkU?1;s~)`5m<(GlDmlE8jRmS~x-YP#z^n!{zfSne8m0aiWh0>! zUn}(D#T!M!^K{NhRD83?pAx3RBHm%XYMNcY!^mw)k^UO>^DaS8Va4wwZ?@=>`&9!Z z#WQ#dbRHHoD-6sSiJ#e;&QTlL5MJqWRTb6jKD3E;{1<26YbT(N)`crg(wiywMZ@n2 ze6;%eZH%c|aQV|Ybo7PD&ZrvYuBXzylG7|hl&PS=0ubCVJft5Gg~NN7w=0vM-jyhA zX-mqO8$hYv{^8n)Q*9wnx!vS2qO%ZS8|z6OmFeuV<@%c2bX9Ax!V=t;SWm5Q3kT4` zhI*b1bD~Ov`LM0@KNvUZLnAgASrTQpr_uXO>>~sA?v&NzCSI7Kp?&l;Q**?B)BuUP z;1NIF7z0lvf+aq375fgO@H>+HkNNp301G&wBD20O;b^sUYgr8qh?tbC6=Cv#Nq@4s z=n18;|EBWx<(T$iqF$>lUV%4$j+0JB1Q~xmj^z6f*grErwtu2w0)c`vpl^^vNFzB> z2&=X!KoR&lTTnxc*tfeY$jT%v{KG08}G*_l&BS;4K0IRuJ zHO0S!0k6?_0Xk$gpAh)U(bDt0;qaiBJ9Nrk zTX9k=6+z1R6=>G#q*y2VPOB#1CK>4I4~RcgPsGA&mC=+f_-4+rUN+s{3zG-9k*jCt z-u-$*+dTR9cl9f1+Go3c2F|f|&%2tz>T9D>e!D`&?KAkH{-vE|{1v*N9Nk%E8*pg!Q@R^@4(!B`@G z>ClFc#dS?vaXN%;R#G#`JMYI<<>hxdeKetkz?v&kBn?_13;&`wflGUwHI7u}UeC*P zD4LM)^DE;vuA3VGq1FYO(}=!kW#dI{WOKN2MtZKOhdT%@jiV8)gZ=Q)8e%A-o0V?} z&zA+k2fD<>c_F)iYW1fQa3(upOai5NfU+IYQW*%WE} zwZ5ouWX5tobT@}qW9H>PYN=CWRq_iFFq&bi0F3fxSFc{RhSSh=0CBTm{oGq$Hjg5W zd{?Z^%^VSvKTm9g;w4YjMh;WC_eLu`Ho^fkUb=c$I&b#pd{CE0A7Z8sJP4b6sTIr* zgy6FPy~haE@YLsTOH>nNTv{>I3j0WdIazN-t(i+w(CnuRCQ#;TlN5EL!=t6W!P-bXDiAY!T=3B8Nt}G ziFc+B65dhmgBF*Ql7JGoSB<5Zkj{;4q(na2-dIG#eU{R-rie&aZBHBXpWVFGdL6%t z7M>iOs4-qhIqIJBp6y~HJ^22>S73BFcr)bJ zh{N(hFayrDm-`CiN;5}yLZVVD=lj@TR*2{WjO^?R(lSbu}8QbhWyjM#>2n0pxqN?{{Nu#}7IPOHc=10R};eDLOZ+Ej^5E)vfdTrdtYBRVp6=QGMqp9oMKm_g@z1t90B*hF0|7*=0qI}% z+yD0dpX-040r+3m|Nf`%#ZD_I&BN)>ICq;!>P?Ssc}5fr1o! zdhAzlqgBoi?wBu-AhjZUX8lh1tgQ{TQPrL>*%y`5=yo$%;*d3jlN9e=wf8*0Y% zk~d~8);ocAehK>MdsU!v!$`R}<98!{bG`C3nU>PH%S~PsOKg648PEdA@$k3F-#PJ9s)&emXuDOspG+g)xi`^+p0-l@8cnQX zy=gJ@v2F@ux^wV(niR>wSiV0FjPCtOiM`u9UWJ%%?-4}o()!<)!~Hdh%XPXqchrH8np|Ed^Ln>9pA)wqF&HQY8YZb1V3XP;KgjI5^(YE#h5JMuEO8ZFbJV?`G)Rm z3em@`cBwX1GH%HdwyOe8;lT!6#6|ZTSk_5kB}JtEFLje(5a1rxn)4jJRuuku(NEgk zvPHaN?FnfdwV?ER@o^i=x7q#IZnFPr8~hxPaiK$r=Z^^LRPihN0i_GmAPl7UPlPUr z;p=GMQwj5rs*vtub*}w+XXxd4XzeTAf~$`x^*xqRH^q%5{J|!V7ZNWneji4$P+f6v z8@g=)^*GXOeh15gb)t>$YtCp*Id?&VgrlkW5VNogVFE-y$!4&>i*dK1EV>}ImCwXk z? zkr}28$$UjGU12sqMO}?jOyv3CyV>+?obV4iO@_)Z-L&>oQr&J#E`glcQ?epBMDKygmw-c(N-(PRfwO5qhx0 z?^>X&T8pd938o1|xz75ogu~$+L`EKIH$*x)x8}ERS>1WPu;8#t$9Uc0*%P13BtaCm z{Q|D8m6e6<`c;$p4#bUcJY4N5dkoG_)snHS8*dnF-vsR8I6qktwE9i--S|JMws!n_ z9zm)uEb#DKXprtPD)z`XYP4UbIaD#ns-ZiD+>5vx!rChZ+cI3Ep%o-H?b~vR6h6(j$!s)BcgFog zm)F&eT_mTyg$SzF(zJ$Y_)zL~VV;`Z!hjXORkr{>u9XKOnhr7#iX3%8yYKb->sUmg zB;;@^RDvI4-w4_bY`q$VhIkeXj9Vh7$ph*tSz-qEQdq$DN8F$_uXX3G7j zXFsQ(W%p;_2^&n&TUYrI3?xi9?FpPh{zG$|Drd)Yd9+M9cl%D1SZi6=IzZ{>$Hvde zN#l)&chi*d!dBrYi^xPOBMU)&C=KqoEHG>p3O3#$YXB3nv~S`_g;Ug@!6Gm$Iz!Q* z5iaK5@-T4+EBdd%>?cWm>H%zMn5ayhQ)oUDTvnyYYjt-1)~=$(pY?^ zpC85e3zsB&85a2_>iZ^I*f)0RL(NrU9BWzL*br<|UJSf~AF}qrW|hCc?V!-_;(pHl zLI_47LsTRVNyYRT!}#+klj&)RR&Z6$Vf3W-BZM;=+^J6R`2=IpCHPk)Rg$`dydi=6 zt?0K2v+ztDUa1bGVRQKEG^J@}$JQVz1!;J8Be*}5M*Iu1auM=hOt|@o;|ki8R&@=@ zxc`hpj4epTk;~rb3;iYSp`p#px6GbZz6?QgBSL*8=boLiuZ~|#69MI39)~{cGwP09 z@Nj>Dp^xzVOMp_g#{&9OQk#$>oJwoQH;A9?I8m(vYcP0K7|lrr+*1lo@%tKN=fo^S z%m#lGfgSl+`o3w8?^DFeN?jav=-Bn z&D_R=-6S6R6)zg41VeSItI@*#U9a15eMzDp3i0!Fj$&oS4>@bwd`RT%kz1M9voNAG zs}-QR%hWVzDNEJi10D(jQ9Lhe80^oOtqM#F|Hj%3DSLgPa0?cs?$h)@Xz2Qt*e?8< z+`yEo&LmcEgvf`U%I}WqA3Y)mYNiH23#oRF?G4)c0zZ;)XMItEA?ZZZf1^3DAL;Tw z-nS`Qs|P_X*JiM>qRO6(ob-odKgDbGc`wO-4?1p;4jZ8pZ%!X`!g#$%Yry8uoZ4%5 zz+J7RR1TZZk|V}3FHTu>hzhL3F%a@4-bfB+K2%d@$PXIC27;m7&$$Wb3N(sAZp> z$nyKfv1`n~X(>sL4@qR`HLzZI(&+5PNTG6Fx0?9BbEa`~WTtBZ ztl?QW>XzO-ABfa=5?Q`BEHK;Vr3AP4dy$QKqclRLfQ|RgWdE zuBNzkLDBmO(ZI=QYq?RImvHk$>Fux2>O(t`cs%~UQrbT56dy|n|L$W{BN%|M``lq2 zaCW%i=XTt>#O9MZ~xk{0RFXQLcFGe>Rp-f&b!N@pc0{atjsMq08@ zUYe8Gb?nAbyx+sYLdWH?gx^tL@^>*8`)B{tF6V1uIWq3v>F|ynFp==k-y9-$`&awY z#IXgj#smJ&YAiE$>TrpaTLIhfWs!#uYb8*qtPmq#RB-^$+;SSXG+C=o^@0wpbF2|5 zk(`zma8)mQe-j`7H0P1`GFJU~d*!e$_Ua}asgy+`(XyZW-}V7W%}}~O%XlD)0Qm;! zGh%Z|RGO_M8R=A%RUt;uuiasl68)5XExfwg4+3~!opt3!IW@F0Aq>>HMSVPM(z!7z z+!drdD>3B$*CcoS+v~!22dD}u`|*ZHi73d41|4l zYD9m}2BdU&Z5*Fvvp#&rS$u>_!aMs9v2Xupn*QxAP`h4(lYVVQ7Vn>#SPmj&RNlrX z=BB1}=XK%c7SqBx_WqdbgGu{`$Vg!tOli)DHMuNv@4%4eB%OU%o&bL(Oe#;sT=9?h zi5G89Y9e-MT=o}jr(Bf-`mOTbDZl&21~K|S#3cUP^35MRs>p_uAp-vl%Ip!nPC@sd zAGt*M=|4$nK1vzDOMcri9*QR7rA2H!N1ab*fh$X9^zH#~{}&uH4aew?}K_fv~g zMLZsAMAUg$Pj9$&c3Vn!4llJAj8UZ5v81iNfdg)>ds&>Jzwh4YbBuL z(>(N#OYms^>K97B4fSn;*cVX=56Y_jn`Q$3L*f5X0dYk@c5A7B@TFcGVB+%xlerj~ z=FpCyJjLzA#mYL{-SkK@8s9x1q1^wK1fXcy8;J5v-Ty%YlAOH0!qNVH ze%#%$Q!q5~+5F**=TjbkP|GhnlG^4qo^?-5U0jS-Xe)P5^+Ml`=!LEB&{%ewG*WyS z<2B{-P0zM#9<%2M@%xn$niuJ!>VEbl<^8sWq_nfSCK1lHj=s^4?$KvDUahnY)tB{k z*x%#?9OLQFV_WuKkMHk{Msjaw_#y2FI9vZhvnEJn`GL_@s64e6`DQ{e-2c?*WAyRPi0etY5j$I4#7O68@h- z7C<$X1)E*5=V^aI93USUa;rKz{5e=$JgnNY(iXzQSxRGw!|8v3<}{S-K%)5Zqw=@} zyKca}LNFWT*H4mWwzi+)@<|S5Vn+h#5wmt$EITC$Su-o?rPv`^$Ucs23>58tG#7$@HhN>)AcMlV}N3Vqili_+h-K7O;$Y-3jnO#~%LN)0dT0$tD{K~#{ z%aUBVdzP?$x^y-F>8DJhTUg@u8V-()caEX<)ZL{bH$rb_1sA_r-^F&E^jf~XpWnw<0#Ge(&K-<10q0Jbh1kzhVOxY#&dXKF*va? z{B|58m?|6jPabeM!J;37uBW0qOue)EsN5FCL&=Q-R*L~=MzGgmqt`%iZV}Fn+JCZm zdrIN`n156n-4)a*xmri4K`pG*3ap>cB;G^-7yOZyMsYm=sk7Et_0Mfw0oK)AnuonHLE`TsVK@Bh0Cfd32spO1@=`#<^r-2d|b|EKu> zLBx>g52#W0Z_9o&E#1r85%W}w~?xB8&EH@Nch=;0Bt{(XIlf2g9U)r{aKp}ykl)1pg1&Xa(0{(?WP$B1Du7BK)bTWQIWFpOn55p2H=CHd zo@j#ry^hoFaQSJYOlmcr9cj(S0({&kjjr~&t(w3LcyT3q5_yiNVp!{$diD8tSXdZC z3_2FACPBkllfP_F-+uL@4ogly#6-e$a-7Qdd3tVS;_3Y9FNV2cDr3#&@l*4am!c1Q&evugJP( zt&EQimIgKUXsW*(+>cg-^M-VE3-sB#Kd+e>?vFLQIxa_I#AuR>dY(5_uRQF3{?pER zgfpsdYx+J?2AAD+@6D=cUGtI)xyBYPVdRNTF8?KOnF^wGaPYxO`@RWq11=ekCu6kR znl1>6uHX1nra(u7;zFZ2J2$bhnOOgJp)U~bLD28wy}I~CAPqP}jq_t+6o3*@3Kuy} zUlen>HuWeoFqd}q;79ul2jCWhlb}TZgIpdL{8cxYqc6Y)N`wf6hb)2yd_^RE``oH9ORAQXpUDiux}imd+bv+otr@8?5* z?hwVB9lC+cKzHBUw9(3qh_5FbvRs1UF)bql-wCY1mvp`cJ;A`MytZqO_7*>Lr<ou3IfC;taJwNNFbwYx$eTvU=>55wDlAhG%ov{noRNm_za=i{HNCZnDP9^qfr z@t#8D)>|F}e8O%7+(D;A-uV9Ah{MWjVJn@&sLnsBs4-AWoqoY0F}oGhP(wyR%t?rG zthBy6WNEnGYFiw=xr5Vx_aQTHvjqfsdZc(?+W(Y*5fLmD3v?vn{J6z&>ubiCel$79 zb%WH8sW+@zgAx8gf+8A;h>R*c7;cN&K{?2Vj1cqy@^Rm+wl!2U_(VZLT~ZuKEZiyx z{Q47k^}ydS)AqfIBYsJQ&mDsh=!2 z609;RSiE>ytn!Ep5kxtGGE$Ho^Q+QpNHCI0+H-TtxLW<{cDtW)fC}Q%zt`)*3aQ9f z4-2FaX=2UH-IW9YYDQxAtTIoKL9ocm!J?6&iJ}Bm{&(an#K_ctLnxpF$RKhO%A-$e zh=3i=y09GEXvJyqWOHu&dYv};D`@-R=vI`wG`UT1g-(D$vgd!v{qa%``8uiMx0wp=R@eo25vC@cO zRhQ(E1dUyZy66dH1vuwY;E-6cfn8-nZV=O)E}DIPgI<=5IdUw;-g;YOy_?+bvvPe} za;&&8@Bsq}TvsB*Oc!}LxB^HRA3X))T@weYVpv$zJ{aoqvygkMXBDTCdl4T`qrCmu*k(w_@8!DbaC(?p!t4~vg&%>2C$ zNY%8ERsWC+VIS*Q?Tnyx4Z)TvAS9QDNE!|xo<>t1sIG_6FvQX~Hb(bUfCsjjwDGhJ z2TSc~Ba-T0bdmgMF3x5ZwEqRN7NjPd&jN$M1*lpU>c5Ad4Q67Jh)IBAM`+lOc*a7M zl>^u(R)Xj8DBq|V_@`Q#fM-|?vCj}gbOhZ#N8m@m z(1lJ4gZdgcDK+FtNFX9>*Y88o$@%RIRiF=YCp%|FTp8*ML z3DI>v;V^X{1^*Hg0;2Lt`5>FEI(|?QUKcruwJ!OR@L3LF^*|+i+~c0LUCpS@DdXs3 z`sqN-sPQJ^8fJax@vn}L3MI4gTD+#`8T+%pykP}mQs$;?H>+R5)?wuMOC+ir_|8C$ z92FJBPU`C_WqpV}p+quh?QL+-8EOxyNHOJy{~1CbdCLWXZs z&#Jh*8tB1}xD-9G7sP=gSTWcNgxH6e*#on27aq?GhiA4LlqnJ~HtvhPWa^LEakLvw znAu|CWfc?wGb2G!twKMB6e)pN*sRP0Ke&|+Ezcb~*LTC7r;5NN{&(Vi3|a?_9ni93W2}%8Fq~m^-$w2r#QF`dD-!@xw78vjaTq~ z=;P+@5y?aS6B&*lSoP5|kl00oX3W~HNFf9sLHP&)lt+Srp)OhuO^+$2#gHP!6&Ya} z1at@jtJTYda0`%PSth#bc!He523o~-5rdGy=G;5e_O&L7KR6yIt!?>$fu5fj>)k(y z3SM@6;^L2im?_BGh8p0l;xdZafGOs4dNrRQ7bArz78B<58*_MQqf+Uzk|-(C61_Cy z=5kirV>nrHf0C(aVnU^onl9YGZcr-LK^9_2kw!c>F9ngREaQXmru2L>FTtkx`dzk2TPednn{YtM2j2|er&aqAp) zwhxTcf7e(nIBVz&R&fzDOU=+=5apJU5t+2>4a&G^^b59S>lyd8OV90F?aR_(;$8&P zPE4z(AA!-!xqa1zb{qkp;gPunN~=9KX2_eQ3ghv@?rx$%uLQl|yV=We;_AW7Ozute z+@CPt)c~Y#k7p&oNwM!?VUnfydPcOk8LpTa1;oIxp-4Dd?teRRRjVM@8K?|3yn@jp za}CLp0l8kmD7To$rg^wLTDjjTML4qHpZ{`K*G?k98?zAV+jMm87wvig)Q zqL>LCF{#~l0N2vmYVz|3RhP%*sF439UKL%!&|LgM9K2wNXcL6zy%{qDK}NOQ#XGxx zd3Z0_Lp7Rlj!pWDJkGmM7I+A(d`ije#gG|$Rz*UUy-8I!+Gsd@(|Pk$)9pSq3qOC% z<_S0B#~B8)9tDemtqv5!PpkPbO27iXvq8q6sroKBa6QiA--GR~b3@frv*Ln`ybt{VW(H)Wie3*d+c zvfzj1@Aa}c65HG=8A=w`K6t!uCm78c`Z7hsm;yV*?!a&45?!F2rDid2zWS2j?Lf$1 zX4_5cLs(WHH-KJYAbON0S#q`5QQ4^9;}dS&ZNPNwTa*R`3vUJ_m?zcZPCB9$vrIjg zI}+gcNKai`SL*7Tt>C=Lq|HJK8c8{NnA|ce3m=YDXho?!^xkQNu`XvG4$BDIjP!`v z4b158n@3dJDkel-9bOnys$Wsq$$g26w~Jh~8Yi>_PQ!=R%Ny6~k) zA5RobLnaEdWf9~=$Jq978+t%WOhNVusZ$iEH&kc(n5Ext&`-O9WROjCfI8U_Fb5qq zo{p61XXHc0{U% z$DR(6_37v2jD$*pn0WxN#`2j({tY2ZC+!ExLj6$%Un0r36x0a3^@dIOVf~!$!BHV9 zz)k3TSZQI0jmM4-Rje3{7ZLbN*99OpJu_*`*C7nhk?Qu-cml^qIEx&ilNJrH6ox7| zj_)^?EHx$_b-KX_8DW)Cuw~WXM95>f3K%?sSf!j;^O2F09RqBFxzf&h+)DT9;pqxo zprKAaxTQYKEdT?~R&wuDmICWl6(?L@r?q!q8G_(kU;wH@eqf3Z3TfJow^%%i$N~rs zpzIOmf&gODFQq_~Ni&Sa>Ksj3C<;qxOP@gRIEg$MXJlSY964#^$_y58K{Ld&iQ`Z4 zC&`j0$&UajU85nC{IQTDZfNy8tGpOv%28cLQOE8r(&PlCJ1|qv5a1x-Q>r5ec-s>A zI}Yjv!saF9MX**uy+J?nvl_+C(Bg}E{>1o~G8xlr2^ZIdsZ+!>+d!?5u7~T@s4Re> zww9Gs<%u!kf8SNp#sFVy)wK(%@b{wEJ&%QtG->huAUpkFbr?Uz%sx;dHJX?p>0zK( zU_gXxijAty?ar%MEEO(5=2yvx>e#wQSSr-PX!lF)-B)f)4s~bL7-<*dHv1trcW%=n zFz{dm1a#gV143A3$U2A!~6)+jF4+vFbG0Uq(1ex(fNu@SU**qXvbox>y$4Q|$<6{rvo3I(L z)Cnc8UDT$y~p~>g!H+6%Plquxuwu=hS+Q9b%UMNW7iw=>r@^5&Haq%@cL&^<=^=~ zsiw0~ni~-$WFHZkh<=YCmJ>oOpwZ6P;g=MX;nv)6kw|Oa`Hu+ipb5k|)=^w~%KM;R zst|u@sU$_Iw0g z7gDST>zjJln|qNG$}7YtsrhA-N?5oP!uk4IaKAst>%43~5kZKj=Fn!`P?nsU`!TVY zhtuVC)S9%Uuw;7Fv^U^n>nkgfJNcnE(O~cqjqvKINyHYX56H^Zc6Zy8=ft3)Vrc?f zGkQy~aS{FuVc*Azb(S{h&XP#2Hn&h@xZP(SY^3^AQWT7dg|TqD*NW$mRC7WV&lnC4 zd6XFaVrr|B`G%Lx~`flu{Z^YgkI{o$=_536rx|fYVOiG(PJdp6d?WKS!n3*z6 zVHUguJtkvaH8w#l7t73G%?v<2cF$<&Q;KJ{fqF7mUDT&8$%`Y#IwsS|ur5+qR0JrH z+fxgHgD#}YU`e6dJ9ENxy!t!*MP_z`;YE|>6(mcL2Dt~$G_Qa6uLXH8Ww9dWA|z!1 zd|8zJ0btEsje?vc?5e<)W6I`KHc!=nB`e5z$s2POjL*AyzM!5dN{J#i-DIK{L7ysu zng*Uw#T%Xy^$v#klwdOVMREmcK|P(iW=L`a@O!aaXmc2otT@Ffju+zoc%kq_dh62~ zKXO8U0^bMIa1T>KmC(>&aNs$_-0uF1wa(V%Xu7k*mNdSQjGE!TOs0l`KGQVG+QeRHYN8y}GKov@;h_$QiDrm# zBeGVb^I9?uaIqN;U;Wwf>V0DP)#5`2BWq z^Fsgh|BQ0eF}4KrolrrS@kRy0)Cs=&7x|wHG4DXw)i{Cq;T{1wFv1byfYgHc&W5v~ z1#R@d@*KRnn8cY=rsi?ocXENkeWPNmgd%Z9i7xgV3HXiFEaa%|_!9gmV($LvnV{9f z8i~Szs?5=^CPue-B4Mj5WS0OE@-PL;aMh>Hps6-_I$-^^LybCZ(Ij|+P1KNimChg< zVFXEge*&5a`DC!988srlh~} zF}Zl%q=aRr_aHliyAlc@#v6O3B}H~TU!8Tfjwvd7poQTTN48qOj_sgCUz#{Sp%kAf zgW+7lw#L>X0a)r}fW&4wJ+Rm*_uqR^`;XJv@hK7S$B1O6*JIj2lStyH1#TfG(s8oJ zZlFoPR`k@x1upWbrt@;qy~8gEeyy47&&X%9B{Lz3w{zU-uX%d)mF0oxQ4`$?@*ozl z!caO4IBZ<(fv?K${r;1~hg!izHw^{h3Mdo6+P$*#)Lq~H?=$AN#HULh-qrV}z;(Z8 z#h%FFj?bs9+jhc+-TMdnf)>q@L)eXXx{LGcG3S>#J7`Vz=s_!w5=&lDK|J~1~MI0kY@7#5OfRQX2tpqe3m4@m;M25C7yEAcLSPL83VV~ zqLsVo*bfbQ0bL|1+R_uvzgPy?@%!xYbg%ev6iY)FxW-s|JdkQK8^jIX!Nkq}tKfBm zzc2dfFj?bdQo>YHqQlPUG=b}!GZ57KBsZqT>TexHKPxYpqx+~(A<#d6x-y@wbKk|= zM;UAc9f%1?*KreZ+;5`9j_wkEn4_9g*K6Jjfk3bFvDG(oZsGlmWX2M0&K14jlovn{geVMM1b!ow zTxszuOtD-QR}^N&N9Z08_|Z zB`_nSWOH&diJLQVQ8p1rTFjD&&`bNX}*g;{LQBEFjD)%+ai<+9bp#47>rN99!JIM0}{rT7HOi8o=0u{dMqaOe=! zc`NUc18kyPZdK+z_FbpfAM3=R#S)bUE7}#>m_RI{=?1KRFLo*hE7rcDN!hQe*A_J3 z{HAxR3}G9e50efAis$vtxUK`icq9Th1vG@n$ZDwq{wg3p0qAH>GRaC^0$IKQ2n#t- zo#`!DJeYe9z&Ul>e3e!0g)Q2AqH{WyjX?2wkD5C)D9FhZz>23}!BiB!{3~Y895HyK z0~%jyghie7#rQ{fcKhk++30hxceLiPFLEXI(b^X?Jc($>3ERYm!r?Ue_S#7MTB=ea zfmdmh-@YF}vv=hl_;Gh+H%+WPF&KcO+74f`J#d(BumAqQ`_BW%Av)5!wP=!s8pFM# zUnR)Cg+EOV*mM7s8wI6Q+M)+G-ejypU>-}juZ)y}r7B%U#f%Dj*tjZu)gHON zOE+ZcIaE4%8js1CB#WZ31;z{_iXBI7SVS+L>XuLr3#y>Wnr7uL1w^cr-kB2xI@E`< z-8XLht0K4>sM#I;`^DTf%{c!P!;&XRnm&ONC_AcI*pFlfwNtg{i)zyz2zmLLfP-}Q4x z2(ibQRiB55wCcY76 zK5hw!6eOccpyrNFUY8MO4Kc;O72Au12#^V)Rx}=fHYJe;@kAiK4z`v2=EP5F6xU;w zP$?0QIbih6-2UNV>3MbaxBFfr99}vjO1kU;oogX$p1@_PW8L#uioQ2c2BB zEHA^Xei=E1%l@rmsU-X_riIaa01|-hf2*oZ-BN@0D-r{i>OWP=B(=&m#vyr6veHvv3!u3Aq?+va7#`oXO2J3p-she6tsWGbnSP7ew}(hU^CsL+ zqw=@lKIpF_|Id$!Kq4L&rHs*SyxzpV7Q^>dC;QJ&hDrg=>Er3I56VTi{FA-M&M7u@ zS`z!Mw)hCB$fR8+m%7T4durHj^hm;}xeEXG%d)S1nwqrA>K$0?(^(Qz;k8pzmH-nv z+Atr7*)<|%wdmupq|9X=-J!m2Rn1+jY)u zu9|5sekCNUVMS+W=j!zIHdfBcRsV}*`E6^109qd*pxN2bo^USk)xfj&G?i=Dg-=PG z^2i+=t_0Db;1Jo7ba_g>`;L9b$5kk9OEd$r!Te3Q09Z$_u+)iFY13=J(AO;(cdw=% zMk2Cj#-HjV=Z`+h;@-^&`i-n257$%049FpYk{~wu12P!p$yZfHHo+WZy=CWPl?jp` zvMEpwx|NOwmdL(PoenV%T&ds*(;Mg%{bJ$|tkHD{*p8lp2Mt}+LxP4i)6?>kRoCj& zsskZHJIc;s-E$de(OtxC#4q&=?#SNHUa{upN8w|$sv;U&m^;zQagq!+Mfn{1!D*Vq z$Hq9-)?6n-NH9T?>oJ~W2E(2j6~+Vicmcw&5lxhXig{~CUg(s}v*bb#G`US1PQX#{ zDhTKeP{gE~94zuanv#PVGA%juv|3Oa%}_UYt*t7{K~%C;&pbVN}?D(LG$VpE*0LToH#`9`~ zE`LH*0tPG)b_o(=$_*#iGpGkAX11)IoYGc{P}GACNb?w`F#FCJ(u2AXnInD!OkVwF zTlP`VUh@u8C*X~l@ngKC$6$c6(~;`>mA5ocq;aw)^f>FsSj_6_&IehgWSGJ-`(}0> zAex?K3Ec8zCE%h2hkB=@k&zGr2rR+D3VJX>7kA&gbgnjgasdKf*X$IVm##nPY+efuNQzZ zTAjz`rshQtw+_pjK(jtvpxgQ}bvyI+P%QR5-e4QWOnUB9*{N#y<$w)&QzM~r0DC?) z1rOsHd8dP2RF)DNkzC4-NeZ^`sKTj7{FNWETipc*j=(~%C>DegvMtIflEq76`2)3| zG9@9#3tL&5#|$-TqPiob|ChTdb>iWaR~h-smC3ZUxVC5$AR1-_S{T~P1pP2Ch8m&B z&YqiUoVce_dEK(tLGGU)#=`ZuQFfKEQv+xA?fo<7Sy}c zAT*}goT^S1cevELR!&V*a>`N{=AoDH&<98!-58o1K%L+ZK%MY}j2HzRr|YFTb-I;@ zl)Vs+f9MfLLaYO9a#^`esNvAfr&LHV$i^OJum><9E7>QHnxWaUs}kRH8h}9>YE;XZ zOh!6y?^E#b%hsI1reR5QQ6$CJDr1u&s}EN8X>Xy73i3Qn+`*-F@vE=b&BstO`$Pyt#c6XWQBw$)6+IF zkiXR8C6p%$ec3xa^n084w$h>QfXtb>uIC0V?NTYQBEq=AvEz{!8+<= zlTiDjoD5*bU!)QC6*c3;U3zvrxP4q|FVCjd?9AwXAihlZkKA#XS{zG(0kkzhjjjUt zwk6Y|G(4o5d-izV4N)Q_cPvldra58$*izf_$vtT|3L~DNtQ#rhj+CtwRzC>iF=oN^ zv*>Uvzd5n0cL1*Mz#3fT&2gE_n|}N}wHwU_ATufiCV~&~9ur{AR%JqonEC@ux!gAB zmr{L0U2Ge(e0uXM|9=_qTc#t{uN4qMQZ5^%WGNaGMjmqFPTbCs(^0&9`&K0UTiE(0817uH4bx(?=kaSTrt8co&i82^u_vG9lhaZ209_ zt`0c_Kk~|yhdi2$ec6Ufsw^yz3fZhS^p636GI}6F{`06kPf1jVFKp*ZWA4}X@vbB& zC1}-d#aSs+dsI?}zUb8u>yJYURyf$akG}!wAX3RQUH$Ev2CuU{K-EsrSYKDi|K%8- zDOUV4@@!!y4hDtKEVfdhh=5ccqZ)!Fnrj~=oP4^IgtQP&I1OL&x1{RbL40`P1L7hA zj#N_^<04!kKNM`RyNWw6qBQr7agZ3{6C*$b&J>BxO&buKjtW!(8=4BkYTzLPG8h_5p8f*U)ulzaay zrOCZata}L<1uA5`h-O9%qe_Vy-)};D?bdW$^s&#+(9|pdfpt$IehC#KvWYrxHPq2J z_%Tsfx~Pe+%$JGFyl$THhpTAy#3*AW=5)=3r;s8VwGR_wWN@O0wAmXOEXn0aL!iJ0 z!`>#tP*8FN4NRiiq%o}@=wJY{Dn@CDeM#v=@xig&{jr``!ik&^kc40J7--H&bk6}K zphcpVt;~-#`pAaX^iVoO$Hqh0arf&}%CK^)D#(T|hgkN$rn*>9c{(balAMtd%GY{u z;=*7{CJ6d!Zw6u3ChSxU4Vp(H%2-=6R0lOw65gL(t$+o+>=eUYB7f8g9RFfbTG1@8Ilgp-yRfPEqUa9V&8u0VQ#S znVQ^z-}|$qoFSRU<$n~sRsSj1r+Gwne!!rXz_0ZB&P4+^epN?Y${Q-ODI_JQ5btZhp zxxG4k;pJZ{!zYDp1S3XaUbIw0KY_%8dO29oRt=L;fN2SGb5x7cgFqiRD4`q44gW7 z7@7{zi2hR#r<^JYJrU@SHG35nd5!D$fC9u@TyapZNz!R)jZ+otA=MDDx`=5-7~P8a zFY%EyX%yIY;&p0s@a;+gxSXIOjfAkOYN*}t5LFX^7W(pmJ@Px(UrHKN8b1AQsQh)5 ztl#VIl!3W{`A26DJ)xWg0_D+-^Q^?si1TzfKnC5xKtjDi16jZz8cNBwYkd6pc_1uj z2J=O@KxY0;SK&7%1Z~Zn1Uo$=JquG5$P+(vvlVw`ZOx)CX$sxkzSzh<=Hwod7SqQf zyha!I1YH=(t?;o`n{cgv0%m-;1wy z-PnwCHnmaD@#oUHEQWF2B(L#QhD>r@*4J8d4M%J~q0~fjIl6Jtv{`7>V-`r3mJT@(WcB)FK;8`8!erOtmUu@7xvqwhOSJ zWU+~huVZMT7xiYE*H~sJ#ZwpmmX;p*ZjWn9RL3S&SM3KFZ%BDz5tvzPieuYj*Q(*` zg2KZ7ZsqCcQUQt@duuQ0xLI@8lwq7HR1~$^74K1~L;q;RDQ4yI3lpxJ(;ZD;I0Mso zgU%T0yqrx+CdUrM%mduTYU1OzB}8fj?OOCkh^x-J6vwoAaBC;;Kn#E*YS_)M!mmbF zR(=_;oH)%_`Wb_q(ghZ!JESp|hN(9LHHo}NDa(+N7t5&?qVqNb-#XPTUy_~{q62HB zWH_^F(l-PhZrkRqTT9d;Si!%-$P7WBSjv-@XcD=czrueJOVYV*eg};|JR^b-N>G>o zF8+(F8p-dLmuU(Hig634bLL8Hh$eG77SJ2&bhsGNyyY{YCi@Bievc*AxwJ)4sdHM` zr#34GE4Gu(M523dIkfD>qj)V~#qV0TTDLZTfse!DA_;v|l^PFYk3&J1Qb|r5h7$R9 zCRh6;)Ji7To$*>TH=$CGKx`vhiPCu}#GIVc@H!s|9S%o6UyKgT3t_}=B$7fRw6+)i zvlITYLi>3~lj*P%Kknw=qs$gw<{FM_K}xicCKVg-fEK^SAIMB4}WH6mSMd34SDK3o_a{i&HdVN9DMOCweVvHe$?_3 zn(VOjS+$02c}qPnr{tI}^Y2}`PBn}f+9B~l8vERSRGMY1$>x?nTjlQW+!A6j*(AOD zqOXh^x@93|>6I0@8Tq-Q71ghgEy)jr@chxqK|m$=X7_ z4pymbeZ>Nuvqgu>o9zu(A-|Jlwug_uY*7gj(swH>tV{`pcL)N#`<~&4>j+y8H|Beh zRijnoKiqS&4ZN=Ijv?3XmG5)y&s(~rhB&U@cVEVox*Q*CUHA!wF6}ixBQrC!2=#~Y zi)fO-?&}6Th43y;7G%9I+Y<sV*)5y7t6pk>6MQawZP}%*#@mkKI`IuZ%YoSwiL4d98759} zpAN%s=W>jnd7!i*tD5wuL60q0&#OO3E`*OHOBRA_3L$W9rBXQ=VlLI>(cjLG_QB`VtO&d$B)KDMeoCiGX)&|rO$o1IGh z+RD-8cZ*7EhYu2q^uW;@YxYD+bSRKT!%*!Gn5^y6;QYcMu5QbpGixWV(=jcSBO$BD z0^l$wK*OQsN)fKN99w#;M-*%&)@2Zt@dya%e$6X6p6p-0^nsK|^|2Yf(tm6SI z-i}y&_?dYYYIC0c{GtxDeXL$KycX(4#*y#tzPiGTK~>{Mto3`hNgxsJ&wTb zpM0M%P8zp;oP&yxs#@myZQo7W5AJLLxY^P6V!m zXNdqpBHU*0L~!@Y(9B>AhF(587#-4^0p8Khd41p9^!57ossAI;%*0|^96H9@NbCH= z!QfN=3{4dw*x~rS105>>-qOrJBQTO%f7(9{ljHkjF6-Nd^kL@MXSH;G2kCS5pk#Go zWz}bl?W~N;cv*-|=p%KocJ^vSSc)|#@GabVg3srCAbzJA`DGknYJPpSs0AhK@#hEq z0=!k=)BXMFoL~K-osj0NP#+M`8d)b#;`lA1G+QQV0d-CP`Jfko>`&2-3gw6iSom&N zdd7TT*>ImWe0H!T$uCbyez=Vgc`N@a`<pW)7o=UM(o6 z5rFddl2~Z=o8)0%ZH2YtPI!aogZWu&@FbHpo0=n@o|HuD`LX`}@tdIHdu^)$_`(7B z2Ioio>7n0w{QZB7u>Mc~vvBy|FM$6`|Ks5NpZ>?e{D1rZ{*UoL_y6zzKOfjMjFrwS zt;+K}K{2I=ZDBER1O)0AVJHxZ zF`z!RB`XsgBDW+Z4g@Z;bp@fd53m1Qp4w91uF=JESF0`LJcZ1v&!67aU0Nn(#T7=)G&hFZiHuu)UfemNV}}YkpUnUYEb>yYD91C=ZF0*%g+Agk)ol z*fr@;c{G+x?;~v{I)~-x=4|9wLPrN==-F&jtun|t7f+r2;m3v4v%cMGGcM-(^8tB*wV%E+8nsS=8{_*YzsI=zlJv!Xr zkcj4}MYq3V!Thc=_etsyy3^O(^*Ddrj?;e97!>EL0~XufH7s~{SxIyH5!W#-#zo`> z9BE~3ryT$BEJswkR*biQ(YR;?ZiWyp6%W#A)638O-fg6%@Kbtg{_%q4h?5h7UM`NV zz8^5=;o=Q1D;5Xp7i$XTEali_|^vI1t{djHDSC7I$4iQ7DdyE1pAWSoA z73;n@#2EL2v;h^^;WgNCTY8}j^Lw+c?J6^8EbhhVov$m5O1kmDyN*lb;kzg*$mcj4mZIoT`z@|EC;@D)mclaE7?U?l|U#C< zpxmEP5>A_W)fjb1eXh5^_uZYKp-zohNdH7OqYk^IDYLvXq0yo+;!>bI1fmedff+(R zpSB{3Z_sON((#kkMb+ zdfSerO}lJLx$=jhrKT4)J$tgLxK_Nl&ji-qS4(_jHlX)tEJt6;8=ntZW=PaQvRPDw{cOlp`y{3#O{kg zWmy%YC}L_M!;jH6h!y!tXr$F;jTRM}GFendMC#UKwq#gK=;oC;vEP=i-SSJ*bZa6; zO5aa&^0fcDJVe2hCd#xbRVB(ZEKuX>+lANw;-wDZ%*MNYv*S~fF;pOs8^Oox92Y*+ z)OWl0z*^r^>s?Mx&Zcx3w~ij4TY|Cw`AE1>^-nu{JIB~Ip_e_fL`2X-dGiM74AV&_ z)lbl|=?dB@>=Chixlfur`7Ue)H$D*Ei`IH6mV7?>G5Ag zU^3{s@zlKqRymPXM}B<;DE(EZ4L>+AHL?K)p<3}N9;>ye5>+TU4kwGjrE|!1pnyA6 zVErAm%-RHDC)2aj)&>7$aa)CH7G@>^sQSvIP)L{gAd>t-C1tZ1(xTi#sd*O-Vsj@{4_6wK9@T_Cz3OZu`s3p60RucZ>lS zxn-+jM@^nGO0BR;g4v3)&?~JqeGmJQ>bl-0_n^H%I4bTM9Y<^SEq0@rm-TyNfn(*v%1h5_OeyOEeUFmtb8UFeH?3+c}H`t^BP#aHK#ICU@<_0A_TArSsrS0un`sb=&Ulh15 ze|n$)bibK_JB<@~(wA`*27G@$lcY7&*21gi1EQK)WKk#3vytVzGNxQi1Oy`IH=a;p zQl*?HBu@7>DhtI9t4tdI-aGbuu*ny?F+5%Q0BeoBi6%rd9O=-lnK0LYBSF$3^3|d` z-UPCf=kv^_thjho#a$i{5ouaO)O4nS@PEGu#Y_Fus+i~5!gd8+j-p1YsliWZLmHEa zdz?f8*k`yh*BBRT4bM>6oOW5%--YaziQ{Oa%nuOszQ~u6TqH~V&?m-p`0ZG?+8KTM z-HMId$%(^zKzHefgkew0Sk7uExgakPaX%Ns8=RGru# zAaKd^Z?_Yl2?;F6FhqUADGpbFU~%x%dWR9z+2%pLmYs&ojwsmJJWzF6$+;zCS9 zV)UNf?l6TyPB#%AkpAEL_e&E6hi>+V;V~0YG@5)m^8|{Y&j>+JjuH^>DjAbS#k`V4 ziENB%$&=~x>ESUoCQkI>H8I$-Fh%)OB|qt*w1U-7`Dyau*}X2IX8-NI@@jX>s<0b^ zBW|_*C3WQa4az$ED-hQ9$=B#UoEoGe6EQPnv&1->Rk5UuqJ(m!DAaHRb{Gr}4FO`= zV**a|F#;k?rc0S*7&M>H&?#0p7!tnvFttN3Y*rNI?Px{a6<}p!Ba={gaf*Y>nXAP( zxdG@5nnx>9)WEsKe+A(^yCfXM>D#I(JF#zF{6kIbVnGW*SqW*ir9aunw9`bFvT%=n zr(6|?;0xZc8hSk?x}`^R-@ERL--qEqFoG?$SkL!htBj!o7<<0nE@Cqn4RVAi0jT0N zH8tefx5D%B=s$ZP3ba%V0+7kZDOA+d5>wRCCDqX&;e0tp!?n_CNv5KHdX=`c#LQW$ z80ZXsIsc_2_#Fasx`@Kz1_nM0Ely1+jJ~QqFTp4`!PjWv1ZEAxoFm5t9&eT;V^LMh zFxC+lKMehBwj#%6vh!|bJPXN{N3cRyGEsdEqYsd=^; zp4J3qHooN+jf+UEl5Oj{QqWpmRw(&OGnTY)#+@RPf+8UE>|~egP^`Ak zEk6}xpS;PrcLX6$5u+*+?;sVFf|8awTI^cywkcXbz+piAtUdUJ>Sg~0HL}tFvkXcs zQp5N(!Cm`y`g`QG-wE1GEZu6^`EV?nPWsOtJ{L;Yb>I8)!{4PQ$8X@rd6U$__IgOQ zS`4$FHP3;B;0*j1E_dql=lXDvX-;TWZDF_?rTpO73?GZlqV~U?tr+Y>>8U5J`L!(> z3j`ezl6zMeI|#80Ic1$eX~NPA92QpQL2olKu=JU|n|;nB1&KCmX8zbo|L{*}mn72- zxX!%c&IHq`NX&{tf414T?bA**9IuPI_L~tjrL?Oid=<-g6laE{Jg$^vs*6e+?OhG4)~R??|y6iUA50f?UF5P&f% z0yA7RY+bD|aC;t>i1yVS+Abp*Of*V%LgV>1xCZnC8(XoxjZND8P9F)wZ{m{t8*ju zJABFp8VRUf%J0RXgL0H;i~~hKJ$waa+Ovks7GnrsJ!k+nVJ>NNMT?k)@DD2(X|PnP zwc?+x@jxelfs}&Xj|t<0b@Xx7X+57Lf-@2C84&&JU)3u`g=qz!o4Y9{IZ-O$f=JPs z=O1sX5R2njCc`;H84*iyG4SVgDEX`h1*l*DRUcGPY|z<*<;5a~%IN9S3%n{jj1CF7!c@2Q&2FY zC?yLDeJ}u@QE0Wsro?0w>5`)f0c)>&b}9R-r-g(A0`O>nbl^w#4O;g$DzxXmw7 za0xu2^=-`ffxV+0UQ?{Km&f!0x!V=MP$Az9rpn99dwXy60oL&O*g!pHj{Nsp$Yn@= zo{+<~z1MC7!t7Gl?en7lV81e2(78%lPIR`F5x5*jsm;F)<`R|{3Diz4&AK64sNO%J z&?=I<*JgFNxVlO&ynYiOuiw6QW`{_T_B%0?YldPQ;7CO;|9+_$8pHrxK%>8Jsh6J<4@?LPm9c z|5zWd+}EmG@wjRj2ncL<2Sa1f)iW$=(J%<_n;dgxpNW(|d-*i9#wA;Sy#KJBo7GaE zYTKNF=_Bi)7rgR?8B6PNMeg#`s%Go2ZoO7Z)|%3Gtw)qNeNH^EqodeEZo-?oyuh6Z zg!A&1+7-1qfl5NXHu=wYrNA1(d;vXy5!W_ffIC%szr`f_dW`*L|EDVHOmT_4K{ zdElHSN|U`zsmyJZmX!9pqg9&lSQVrWb`?fd71h^mX5e|Mg>LT23y&bvvpv)~_o=d6 z=1@sLTX3-Vn!x~FgYYd*CgZ+~R#WF^w(rw}qiW5uSw1vKG4I7A;9?bWH8B7px4OxF z5VG;F79x@qKA??y#DAsutRCL|B-^R~Rl)kS5NUZu1P4kVKq+xJ#PM{y@_5mBK-zb} zxm6%tqX3!jg^#&6LtyV1SrVe%iMrlL@O0TO_W!W=4#BxVUEAgp+qQ9H+qP}v#I|kQ zw(Tdjb7ChaIK*f8S^7)XLBgpJ=s?JbnOHDlg=F zg5qLX{@f)ftr@`0WP)t_akfSff?CXnyKh~_8mcEdV~Y`3>BBMYN_iWGtL5|J(|^tW-M2(P!ljn|!EbG6!yt92prJUV!sL!ZM$M&l-q zR?={R>=y903=_tL2aWAro;flbr}=P}bbhFTUo8cLlyO(51raVceT}1gFu7lIypF52 zLF^v&lEyi%9hoUwY~f&$p7w`9qs;it!)0yyG{0SHT*wi(eOWK9;5oF9;o+q|Jza*w z5hMi`JA@(g%R)A4u{`g=Nf@P)-4U_O7!BZKpmXrIPpXn;+r=T|?u=JCc0_`c#bq~U zpzU-fvjmB*5jcS)c-xXhVJ=5;j$Hln-MV`pgqP!lA)>NA%#x|bz_x%V+Vxo4)f|T* zypZ&?b>fDVxkwbpfO|Bqc|Ne5LLN9wVBd|v`e`1NE~uFW0P_PYelf%UFrkE2qxKc9 zBe#SlFt;lQoJ^ADFAkDiu`T}_xvk35`<#anGo%)l!I}1sS-=K&D1wRn$J#)+zAjvh zkk)j@aQ7js7Oe)*Os}yrlENX=6((jS&4&^L`6SCMPrPx~=Q>DThsO3{jN|+T(}Vn@ zV<60Jj@uDBciJ*Es2)3TeiK{+eLknWw+6od>v@Y-fEj@9^{Y!?K@A*G#m{8rmZH{j z7Q+#e>bI)htTZokGK@4#`9)7->ui|_0W0ds2XvKfcW5|yUaH^@IpAF zst`nR7f$SbNkR=8+Gd4D5RNtKaUCi# z73?~erYS-;iUG)&lD=A)GN2b3HHUM-zOoarNr6FBHBkkkwTqF0_MZArIgN1j51EiN zXGi9OPrn3h%QE(*zN!&Pa!}(o(?&Qb4b3S|NX+0>aU>K=GGQg zA`D?0Hg;Khow(8q<&&V=J0{cDnJmTUUNfp}X~T-I!1Ucc3*;8%d3K7im!HU_%(UU14YBTJ1&-Nimude|fF-Z;21iUSJ~xM6cp`%Ovhm;b@uP#e)i z{Ms}9%>dP_23FF)hW@vc93O=#K`AS`e$JUZ-j{r4(=j?!o$zyNd*YzQ1hj8BC8eR! zp9JJ8KbRlGKq*IopUsK^YQ{raMKXT5iysX*`ARJT6tGs2J4W$|P~O+c%M9lUYTL8( z^K_k&j?hSlq{g-c8$ZJ#y1TE<8?;`kYwAPEuloA>iptLy@rGb4VLt&5fbppKr!dS= z9IwZ9@5|XD1L(r^@I(o+kS7y~N7NEa2K80P%jL$y z1fE0hogJXN!B=XCIP@W~@lXgFJU~fwQ?*>~Ekn6P;w!o<$X7H~@iZCh_0S<>&`xzz z;L4m~;MtmBTl-Up>MNw468^S>=bUV68mr)6huzjQIw0pzNv+Twj=dDIXVfXgX#E|; zH7*X1^ZUE+WtX?l&G4W1TP(xU#zs_pJR(YwsZuCKvg#`X85|bM$%Mnw^M_PGRmhiE zua9ue!+?gsvFw~J%@1fG_2?}EdNOi}=pF=H`e+PRL|yy>z#9ObM15}Mj6(bN3KHza zQiQJVg%lz>j)DTG%f^Br8nLqWHGCBW&fc;C<#gMmKVD38CUtQkhs(B&nf>H$vv%B{>PUyPj?6 zVC6wylD{p)(4Zlk#AO)_j)9MRqN5&*7f=ARUvDCLXun$Jt+D)D#6W`<5LWE5$qSw& zsFiOAZ__jb{v8;(BDCcNYLUjG^-zC+)cyis!Yy!|!F@lt3(o`}!^va|AcHW~2Hv-? zkd*B(i3+sCh4SM~m2NuO zRy)~la&@|yT({kp!k^M8MV@#Ey}NA3d|jI`3`9q2O30Ertl8Wnb8=yWWyYPwOkw`T z@TZO{%uJr8hhTN)vn%}-2l_p32nrZC zx*j~H-EY1{Ci!1{?-uIy2MoJzuJ^!(X*{mp5dz^(zQh2)5TWxtUXSmglOS=m)a?#a zpoQ1J8P{k+TDj#Yu}~E-`wRAeRrRe}Q0{tB{Fxn>bG!ic>VtE;o zs=JGe+nbtezXQgL-p8t!By3cNMHr4N{&NP&t3-vC+l1ah35>Dgzf9YDfo$J8%F2t3!)IF#17BFi zp2G)VAM9=FmOOIrF-$yX=Ov2>rYT9r*|8E9T$Wyf8innWm<$D6U!g3Tw)=QaRsTO4FlHZsE5oX@QJFZh^U@ z&tq`&WacUI;?zSM0CwhqvBvtNj*6xxpQ^T=FDGCC7y4)XUtvj+_LErRugu6;rDT3U zL#I~}r97)!4g$J4KxL6B(72lgW0umJk451Jo3P};*VpHp+Am>zfRS!7=8oKJC9br( zp1e;-e3gTqQ6-|pXqgF&d(a?H{ud;}{QT1WHatOI7U~$LvubPVxQD>p?2?Ree7YC9 zv-VUOB{=r-Bv&Sh&@D6Xphk#}ThaCHH)QB-n$T;378C^zcg?iDKPM(^V~{D^Bw0qJ z(+u|+E$5yX=dLFidlSjs0HboyN!bczly< zu@8RA!ar3}Tn$dy+9~5YI3rxn5JJe8_(mMqD+pLL&o_+kT>PZpRdm0)oK}u{Qx)SE ztBzz{FGg4h409{~4Dk`1LN(B1o(-0P`sD?Ay#`_E7#bA5&5$Q2Nr^?(Bfcw`#S$6= zzRUMysr>L0c<8g*W>@TOOAH{9rR~>GQSP#h6e->e$hqNXLX!S=&aoVozjXq~hFhk? zdW}XweTZBO%mM-6_YlA#hqtO$qp8IW>umFJ05|~ov0J>@zP`%8ul98}M^Gj!I)IqQ zHhWBU;-o?o%gXN@dzpa>(wi23)Q4;{f z=olM-9c@N+L@;R|9yjczj5h>{atBl{Ix5`7!*Q`uHF`eHxSn#9d4~m`7R|r}vY>Iq<$rmibrjT$YkBkoOQs#ff zZxs$Lp3*ZZMOSL#;F7F0PDHb3q&g_CZXPFY7z|EW0a*Yj`5D;ckR3V+5I(%3TgDJX*M3Pa$E+}wl@8E ze}KjH9p%AbHw3fJz4EZb%;e$+(%3=pv1FLR;-KhNhsVHRB}gwW>r4dTDK#VZ!^9>1 z5hgBpEf_Jgg%SB#MpPWg*)R&&+97Tre90ZbeEM&d3+z;hq!g`4bB-5EO}jv1avoiE zAB*vD1MPxS+`Lm{A$z0E;Qm5(Z06~}(j(<4zHli8?tVnzzK3!?2Q}Y>)4AnuNMr_E zXw<65#!}B*;mBr^Tdpbk>!edh0{G!vXbfvU|KU?tK1$(n2Y@V0$khGXBI^XxYm>L% zijtf4c?O!m>BgUPa)NnFZb>;7=)_v(5&X)Ch=T(rttFhhxJ$&uQjgJFRyZYG;aLz( zr12_Is}N5v=$j&(;6W?z!l#W8d+fL%OOk#R6KH;IiG#aY658zVonrAQ(o{k(gSRv@rxn8 zJiaEG7e)r56-SE6;`oPRzT-w*FKi&_Hj<+7Ak6vYA;|l5E@@hEC2lc1RVdw@C{ZMN z^)V?tPJE{#rDUo(bj#*aGP_m5EWj2AI#u3QtaU}BQjg=vW_VYCj*y@@mKOjp71uZ1 zU3mFdQ_F${yMX2!r@3-Q2nigHMwmp2aW#4vo+)G!WkP}%G7lsat{2V{+X&?VqGX$q z6o@W^j}^Hdd6&IYdjYtGW_Cdb|DJw3FvE{(Z z^uX&Fw6!-n7|%FrrfDuF*!hyJEorBaOtT`=hY9vAFfKn-1pLa0$c#B~ln;PafPxt5 z_bbVXpc+5}jtve-1Q)N_uCD$9_{6Ru0OZDWRrgriD>K{mqhax3f`jEYV2W;GFRRQE zAr@Sdu;6jYxQpoBH)l;G$2Y5mFUdZ@03-C&@bfezY7-&%x7`!8H2_zyAfGhz&_E+G z1LdR%erO0aGCs-L$%Eq}KZF%G+Wg zV^`Y;Sbmf}(mCGs2YpPiJ4BRC3pz|fFh7(RCPFaCk}HV6#!Tzv-6Ky&(*O}bifT5= zf3!^?2msZE6kO~tb32=|+nry4_YQ!o*K(eyI8{6(#4H5M&Vod*cw)O3+t#y?Zi+b! zd=v~Xzpzw)o`Bra(gI~~4Xh|c98B!s?oSB>n=EN=dM5uFz#J)P4`gQZz8E^}Qi45G zWdz4H_>w5mk-PWODpm{bvL8<5rn?uVnwGxLG?JZ2PF$YNz{eQ7>rlc44g22&4A<{mZ(qDo3rrttOMtyMN%1|N!| z4OE6kPbhJDXy;<#K__}9Aa-3qEg>gu|2qa-Ka64v_*(?)Bp4{M41OVdQ?eb+Qd1>( z&#=p(pFtB?zi7VLV6oBpD}8K{gt3kNPhBb|*3RG!ioit0p_&nF39Jzn&PDtlt6t;3 zmDBJY#O&D6#voAfNbw=vXv?%Y)Hg6jhTu!XkeAE~#3vXI@E2bgkFyk*nH0d+UW7kQ~z!k)i%IEX=LVcI-%ZhR|y zvY7JAycgBY!-e}w6%?2kSO2NhT8!&9xahO@Ha~gBLkUfBBS zKK&1Fo2Ni;f|W~{g}tU^=LROk~Q%Ge;rWW^TpmQx3$(&k^Z#J z?IQK~>@KfpXij4xGs&p?-_Eo8BjxF5mxz#x)Jf7@-F`|2Me!9^(Fo#Qd#G5XLZF-Y zf%owE+ZIiRN8+FaCpp_ff`ku0c%BEVM0Y{~BKY_=Qy03wsl;h=jXY=PXw&J9$5z(ak16N@?oW1-~!`?8N_ba?qAu zEO^Y;DM;|tPenjd<-oPjM?v8i7ug^e))F#tP}&7EI-Wy@1O^@$0RTx&33XmY9J+Y_ zb|XMXTspu3_JJ8g67pA*BsVUK^NNceS(`5j2!GX%NsS$M7^)%Iw=@@D|I8?T~a{L($=e4z5p2_~TYnT}g zUI{E>&xwT%N&_LzwQ6Br`2h$4XgP*LHke`EsZnvkbnONac@fs@L@Zlf%9IHN&;jc? zb{|dDd;026qgf0OQ7vQw-rnB9`E!cP-dwl&dn+fyW5JKT<;7-_OD0@TXP$`$2DxS9 z70KvKZTWV;Xy0(x$=pH|RULHB{=FS=zIIDelDblI$W&}>Rj}kTwMcgh<`rUae0!#| z3lgQ|J|-6lPsJj|G-sV0$vNW#p@o`#!C94r&9p*0OZ1LEEV${mYnfXmX$S`;5Ldg^ z0Rp_s=5+?=|Gq1pgx6FJk-QCIah~kSxjj+QhCbe#n;Fe`W*DjDyET`t%E#gAui*&g zOYo3(s)phxuV!&M8;j zUE-}SUm&et;G~V97|K8QVu{mQMGZE@O%|j#c)?N}8dOZV@qsj6{D?hmmZ0!}_#G{- z5>Ny1m9S44#>Q7ZVUR?H2i8#Og#@Ag0_o<et+B<)|NBb(gauhFr%EuXvaD$$unEFF$72sDFHYWMS-OPc3-%Tp8ZYD9-M| zO!1|)L%XnXb`u?&y=zW_kMe984!aeg0_yWys$Z_Zd`pL)k2$lx|0OZK z#o5^a{;47X?lIV87R>Z?Om6~MS*5Kl=Og-b+#p15vH{3lg{8+XkpT-ZUl8;WsENp}p*$r9D`?a}wc}L1tU#ucye_PX{uM<*vjH zS4tz6lL+{5{{{oy-6H$xU~`Ol!jHkpKm%j@qkLsiz$sK18MQ=@~80&U$B4pwd82;pKA zw*J(%9l57;pT@lvF)RvD@?E*9Zcm4v%tx2p1&2va-1C z4~ui-h|G@mn}0q``uDz0h8BqH8ex3{|LlGBZndJ{s>X8)k`g>~ezeh}g=c3o8a`XL z>O$^!gN58;FZ_E9@%{otEM9o_e7QDPeE4pjd*c1B+kd#fO?>6sFB4DigbM*{JtitO z=TO240Y7pQ*cuP6D*58Ge3jg$|2yTWom2wf42wlf6o7zIGH(_{s;cg!Nl_4 z^Z)*<@P9S$R^i#QzrSk z09n1)-`$2D1OANofLHY+PEg3-B;TO^tC+k^nj34o}G4=diShAbrhI+RL z%`r6sd)`gg+ms^`8kIk0%VBP(Ih#2GJBI23?E>%Rq(bdNHA<^i3bN(X!b+6Esm7pE zzYqg8NdZn_@X_sQgI^7rgMC!A+K0lOFDoHT53>-Bx5F0$4gyWu{;J48?ceyt2IW5b zEaD)=PAtgssZfqoB)2asO{mDR=%RzqD%1f_gxG$zsQ)PtSis8zGuE#IqN*V1SnX^5 zmWZbyq|;^{Z&D9gs;W+$v&%Z-F)hrl3KcdV7g!`YWn_itgDxNl8s5i(E774g(^mvO zp@|D21=Ng&Vk0gH%ak`^% zY@LKbBp=+(-9R!6d~n3<%>I&;uBhkn-gHPP`N2a6b+x%NWt)~4ZU~nKiV!Hx6<(R_ z6@Wa0MOr*JUcCgLN)clJCqtTZ3o$@sw@R6IHb*Zk1QlecY=~OF?@9EJi2E+p!n}$( z&<*Gmd1vWVaGbgIO&z+65i3>;WjY=Pq3?{bx$3#5s#OIHww-VXADB!ENQV&w<1Slpf3z_Lr z8qz4&YrK$5EIAhynLNH-kecPJzya3sHVnxUnsx_!374$bixF&G{AX3)-m$fjD(F7) z$cU2q)S5wzw)ic?5W<98dhvc;$KUCKViX?%CFp~P4^%}`rhmV(%gJestKPZ)859?o z4jA)XwxGI&4NF^VL%~gE89{B3_0-^!kO)UXA;Dqn(S(SqFVz-o7^aoVGu=#92yeU> z5atno!<3xux(d&QbU+hJb0(OyB!8g>@c|P_ph!%n8lZlHw>a1BdBi|Tww`LSl3F)U zx{vU0LpZG4F2>_QA`T%PU3Bs6`eis_Sq@QrQ2i-1B1MCaeABD3A%@f-)-i>tfv&XM zc=Z(MnR~e}&x&#==JLuM-6`Q8^(uM!!}|ahEJMVod25@%KZb4X!eyS++hAbZi(V7= zXV;aisq(n;kxSGh$Er7%H0b;%?C+9;DLp@}js7Wt-PUPeY<^kY0^Ecrk(PU>)tQQi z>O43Z1oK}#tQ!JS(#i3Lt83OUO9`n5h4|ky+}ij2`A8GMei&ePL!}%qkwd)VB`3%s zjZ>*t1?{*;J2CIkmx;&N)*DIj`V~)p89a%gm}FG3#Tc}S=UOgpK3k4@%hLyVSu#?x zi^{It+(E%LT34j)_c@pBVQ6Bk?a616BB&?Ckah80b3#>GX$o#gTwjQQsXxtEuWJ~0 z(w7wdLJJZk-&H=>sq9AEv)?Wm|76#uDva`BCPlIIy+i6lYig_aI6gv4N1TlvtwXz0 z$46Q&uU!v6kyU!OP|FDPJA3;%$zQ;mnOEpL$KY%01vYmF>7&X9wAH2;Pp zp%d9|s=8QvwJ0e?ySyt_r;wyADv|ldkh&*GJO=l6a|e!km(PfI zgt6PVJf3p?Rlm~jrB{gQi57w_FAwH#q_Zn#CC z(u={sq)mE|a<@5^M^fIS5M`msvBohS?)C5u4MV)@NTJ}4rVaE@{7O%PIOYddKQ;$rK-~+-{>iFWo`#;)G zJWqC-(6=0a)vc@LUDYW5v!;?~OCWjj?69ql*lBA^=;Z4enWlonZH5WP44M*bDROW? zqumpfu<>#WYzR4-rpQ_@rHM&m9lMaf}k(k26kgzJi!`&q6#U@Hnlc|zQ z-ob$r9eJxlJ{pWeYevfMMVbp-^G7A5K1=-H{;t7YEP6uHe$(d z^5_GDk=mP?w5B7pTt5S_&K<*}!_d|iYKJQ~t_KQYiwHoYl6UIA3dqOx^hlWIJ-xhz z?#P!*YY4eRe+XFdh4FK*cXAljIMtxZc*N45deZPamA^l7&TK6^HAj>0`^tZWh7D14 zVt7*pLKkZr1@jl#67ygEM+-Nxzg_fv5Kf9@^@#~ry!?7R7b>l3V={J-z&rm2_6t13 zHFq~_Sqv^+B!!6uLIm}(p;79X#m<4}DKCV)G?6>`^|piDTp?k#{dfAGplv4#V zx?Q6brahqMsl1Oh0k!05S2uggZvdDI+a$dCmZqGPAgEuAaiz$sI+ym@4n(oD=yljR z2U$ZA?6h%4G+2h^jbU+Z*0#>zgMu5}QUP3lz3p%2K-F7*?r&a2JnBd0b>*$6!Ohum z8&y5^^FFpUElc{dxVcaIVCfR%+hl55F~V>-z2gp5s?{wK%LzMsm#a zphU@hlER!M-zWt;UsC5>%6O#wnnXm}OmXT&W=6jubIV{^ShYtIm1(F};8KR{Ht*EL z-7)gv0n7bp2D&jpZO{J=szA6SW$-Ko3_vE{Ig@ z^o&0Vx|%mQx!&73L8?DOBF!*c%qGuqh2DoIDOgGadNbVQmW*Oy`$e?-D-j{>Pa@Ox>=@Y(>9tP^voM3;W(_BsRih^N_A0VQvv&3& zijgC}nfYf$zT43dtuP;$NC}})B83AOX(Xn?+&r*QLF&K0FCMX+Cn|62$Dg4lML=uC zfbBvoYbMeaVp2#fD&cU#d1ZNEBuDB zek}CPlHh@BW>wWIVdUI`(dHri$|9|@(3v1eHjPWsspofq9bFvNO^Rt{LeW)qO^Y(p zFyFi^0V7D3Vn5YoPEqnA1&h6c3>3dq8TyC+aNkp3SD_GHkD0n#_7l*9R%n07wt9qRBAGvJ7X{5;s?MaO zKccbA{Uk)BxgN%8fLJjvjM@Q z4p~523?q)K8oK6~KyXXv{PHnhoDM)wGuC5&(3C-4*c9QzH+5Gg(sR){+D9{E>8jd3 z1|gQBx{5~G7e*u~O-xUBy7;rS5}U>|e3G@pBz(oCn|FZAT5|>1qQ2HMOBo~5x~#HI z`=30u#QPMJ`1EF4iwz@f+jnjf@8GUL0+73O&#>P~-!`B4F@1`=Kjs@p@2dXym|px~ z?*f50n0CSz4Zq{-Cn2ES{Q&a?-Pj-S@3vY#12r$|XMP8szoc49b)i0kLMwp7r>A8G ziJHI9GVvpW;}EO+2K5#MLAfLpVr|_wCF3z=BKyJuEO)4e;QxjA{455(ymeJ!eNy-j z7WN_^RCz6fmyl;#1!EK?(TG?Y22MT635o7mg5;9KmwX0y2=t)}HPa2&CkQmuF|(>i z&oPxA6$&Ip$;BDa<5QHK-=)F8g^~CDb83A*gT@0s1S|?B=t@>!JL$$y`o;)79N-4h`CNuB~&PPz~u!s zAa?H-%zi$CY=4~j?^`MwZTP^cn5*iQO#yg-QVeFO%JpeO9Dfv^>lhK!u^1%FqTLmd z{}*yK;W{;_@P{lB@yBC;8@DV$MqSXNGjy{3T=S!**8@E+@B^D#gh@+}2*O1FZr*b51en)P? zN~x=`DR;7?zrwVjq8P5qCAkG46ZL>NI|@znn3r3eL9v|8bc zoXY?fa-=g)XIeiF5^GgA@Qz1CeA-zsuXB-)mwawF8-K;7h1uL5NB)tj;<(XsNiU*P z$bK>ma48ydMK+>@mmeU@Bg}^#(yZYBfu`g08GI>Nv#oUdh66mKnT|Nb2O?r@En<5R z_A#gQ7q7W3rbrd?XNgTYVOv1#y(m9V0brnmfxsp^Fx`EwLwMNy2yQ{3+Wsknx4-?u z!!trEf9xw^d#MUzyw`3@zXO4%W`;qCwI|bsgQVTC`P;CRB;B`=1Iyi2p6h$ID=gmT zCKESj#2OSNQxSW4s)!T|YF!PTtckTZ%^!&l9EgUqH$KicN7Kw7kvAz zP83d;*t;m0nYj~Y1(tCBhPL?^UB%RBE@netG}{by5H}h226@Vay;KY^)Y41gM4wYEM(>q3P5bp7=zouC$ zgZ#1Y*S3)VG#bW|S{x4EOi(=de?YxE3}YrYxWQ8&BdmkaMDv|BBeRjMwE;!o!hnpY zqLem^GP@FlId{Okz6$83-OF^2Y8BKAbAh1nDK8K2-H7afn4t9QQAor>s?GTR0uvkA zlW|UiZRj1BE%!5@l>}}-5`vJp88u|lpi^TotP|a~r!-9AgW-oK&s#@9@v%d7jijn9 z8KKv+Hu!)GT>oQ20w5@%h}CkGhi*W<6p6a@@&b7MrXV4<9Pe+U&wB@{;dfu-B-YIsO)%sSI`O#~&cE>^Itl@!ZX%|)m#8)} zO{naEJ~9JeZ+DWghNxrv?DFzdW%WGT7yg{*?6-jK^#1a;;vq_m409F2#$8g0^`{-L z?Z~UkD21+XG~MgxNbxsP)X8lS4JYS&9K++Gr8&ftDXN*lSxjv-6C&Nl4A{6$w0z9A{-D+>h{zbh2_}Y&n z+Me>c&^7LDP8&Fau}0-`mKS4tVJ}|5P~XHBk_FUDfrh z?I(OYm&X5GEfC#8d=7ACbU$&PXhD8g3!e9-Uo;wEif|TCY%G`_#=7+Y0I?NIBiR;# zO}x0c3&1X1EmIwD?}d^6crSr*5v-*HDQOH0F>uGpS&=hf+s;1_UpDaC=+U3cZrhWd zf3Y&SklSA zntZW8%ah*PlvJpEH>C2X1Wxfu@X|(6aQWEM4AX~^55J@_%4opVQjE6Bk?Y+FTDhP7 z0YC3SSR!^ZbuIL#?eU#GHJnMWJ6BcY?F&E*Iw@vU2`zR!30l-V%XB0i3TOb_fxJs%ZovYrKB{m(ec?LI7vpI zq;IKE(O8U!6wgo=7EZ1lKNTfGFPt~JAaycrx(b*7=-VIOX0vQ%vB=srI9M5cq6jgJ zm~s1$GUH@DWZ^ih;s{cE)GoM6xFtnp$)HFK&kNQj?AjEd`z zwQP=jpJ*{fi0z`4h4ou2GWcI019mD`&{A{;TF61-=r2}d9rk+W+83qlf-v_`$UW&hwgJ5g2BUYrx`cZVOpWcU|*?X6O8g|L8Zf`&gF{ z>LNk>Qit4WU@PjM6jqM79UqGgP2S!f;j|U%?b?9XI(Z|-5`ehwV+TYimw-^B8k^N( zM^kVJcB|CVoQug>$NgGqmC?b7IZ4AtZYrl-(RahptA{of!3F#K^kn?~>6Hoxv0jxr z>2?&NGO<|>yav4m6BQa7BRY1*^>bL~dP#w=_pO4^M?kzE#Q|rfXuaHyTHSJp*x9i| z2WYRk7?p(X^c212`@LjYGTmL&G@3auNZjgFqQ?$uRsX3b);q*0Sc?`m!W6ozXQ=Hu zLNx2JXa5Z@4U)$xW)RS)4K~yNj4KgOC@!p#uNG?a%WGIlzNcFS+|q;>@rNls0c*LF zW5UR-B+ko$5ED*uUh_uMcN%m5Qadz3FkZWvN08lI!&qlx+H9uS?C;5}m6gLduVg&X zRP8uB-ueEE0|TSBacbiN6IuLiS8|-=dM5_s;|0tWe&7}2WIm6zU`nPKwl40I^}f$> zhv#wIoAy0{V3_>I$yT?RaYDJOo`e`0Rm^n~{&w1oYH$RFF3 z+$a(+^+63toySN+;mq=;7H|T;S!PwIAA>(I`&7VXy!vI|dI;Cliz%U{B%&m~fS%S7 zgja~MrVsVAKqAL9B&xR0OI~J}KBhy);690(iP%9P7+GNe)o z#e)FSUWSLSS%RN3KZ^?^VMj{^a3J*ka?3UUVKEQL^b7-!l}xg3rfcc$PUlWPI=*7F z05jBfi;J6hz|qwROmDLVbqxb7GoBR!xsS=F({fD@C#e=C*$Geo-CMd|YQNFoSItst zuwpb+=;K+5;@#-Vy44=iu#=ph&km`>!aiGw2KI7Ik&qFDHo68r(P{t>3LWwV;!@~b zB{MY>RG#0$#G(F>*ae3O&PMi*S?!JW0b^A%eP8q+@7GWGRmrC_(umXd9!V*{L+QGC zsQ(SBRyaC)Vly@(eun;Xv^d}mTp^mnTBvv7^N3&bNDj?YJ7x3By!B%fYv&aSEaSul z^^H?e{#Q!JX3LWaaLm5<%2ODSg8IqwOG4sUZUU!Lmg&<>l67^Co$?G$xys-NX|Taf zDvq^7`UyMi3Q(H95itc4_ zk7srq#|C0a>8+#uOK7;(_{}c_vX=M*Z4#jGjSA+yFVz6AaWiaZL_kZ=7Ea zG@eqV{9TTpBR#`LmFV-XMXq_5r7?~I3ZKP%7(y+i-iHuOUG3ufNqU7#semH=<}Xyy zvQbO2uU{>SKX1ljWuBLaM6ncZwJdGI5732P%I=3;SlB@UvC3ZFt z;uiN{8hgL6kSJ#a%{70xG^c4u){y3TQ<{4u_Mk&1J$@7oPECP!5W<00L5;y@)k2aD zClbr5^=pm2os0Yv{U4|*5WUL@(j=Vb`uv>vS0*|4aI+E12o28os}5+rmQo=9B${;@ zlZ|$GASe-jktzvb%}EZNp|M$Z#ic7Z>yp$^usEEue#GRHehKfdi#QP3OmvWifo@>( z0aNa*#Jdn#C|ESKHNmB9Xkns1p++Fa-QylXSyFw5<>uq#Lmr5$MIzx1C-;{(XVQaX*pr2Zix0EC#AZxuqvuEU7xeemYImHM zE;NZ4V*(g&avzjwH2uONHY~LyTxUdye&sLwb5|WBbYzJUbgz8)OrI&>8_E3E$dSk_ zr!Z#NjT~q|(rL)pjuee>E1S6iPQ^wkWaM$ElgkVyj&dl=;}$>yy_5f>V7&7-2CA7!E;TX(GnsgK zO$}a33L2^tjuv#{BsqnYGZ`f0d)(u?2I}AHn}Su+N{AIM17R(Qnrh5an8M)(ms z0s;b)gwmi&m5D_2Zv5pFhE2X-qsnSdf_`5I4HQC6eR3OakQPoVp%lafB z$jHc+rn#DEP|kmYj(F81L=Wfs)ZuJ;@ueU0F-_qJ|V1FeT_c@>x~#uTTumTtErXw z$m~Sovtc?abcYg$E+g!VT^TS*UvTPk|G9tvd=L}YKB`wzl;O^f?2OEc(K_Y7A{~;D z*1Ervy&)y(IRF0BGSX$<3qpgUdx-y=pmx;!6Dv!H{SRsf8=LOmZ*$&uU(j#CjvokA zmk$QGI$ELsricIU@IPzk|GQhj{;&GK*x6bB$Nn$2|K@-HW%wTw^Zz#gS=T34f7I*8 z;$*i+@uohG`85n=OI;`mSxrlW zBtMJw;miMFmXpH3K zBQvPhZ#}`qI8mJf!O&n~coa1tGb#PIS)>20t&}U)6}-iVm~}1%v7@;w&<_Vi9*;eD+4&j;m3=6P$s^u_Ss zX}dAJ0iIWFkKeiuWwVAqJYS1nFUuDDOE-QAgKwTl=9R;4Z#e$xThMk+IoljBgMLm0 z7299})hlBRrr+jaDg|0W!OLysK^7^HiS=AJd^&D#e_J1uWh*`Y(5Q?d7tI)#;()8D zJ=dWtmxNCd^|rBnjN!4h`|g6Z6Z7MfCkx4{tW`9e(Af zFaR-R{G6+pUvjHfrdWkv*^^=kWVRW;m%RvbTZ8IZ z&tS&B3)ZVoF};-$dyL)xZ9O>2Ie$d*i?sS3-7FdrX<;EXsvu=e@IbKnOd&K!i*diQ zCiy3gHY%O2h-}~up)b1Xes!^g4Khh96l_=5b9hg{_KF~e0Wh)WmcAMQaqmhAn{Ir( zX1^(h*I`@q+kuhY&?j!?k2)}C2VFKGz+@)Rrmg?4ZQ{7+f=Z%cz%0A#syt`Xc;snj3lD=sP;Y)j<8N7k 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%0A5KDK zp#ZhWb1iVZ#ypve)rCrCm#nn`?O>Da5s;C)!=z9tG#w_0vqRz2-~Xp_ei&u&Iak?p zy=)nbMd5zx<085_iVSEpZ!f8itYF{dz?H01{(2mpG;~FL{CB|XcA{{71r#zR6yWkR z#_%hrK7$)?f=!bSJOh86Cie6)u#1*@I87F$pIn?IFXpw%f+$X{dSF#3Vn>8qk1;B~ zgC7QaDuS_0@BBTCuy7_U4TeVu%`LJ>;|LKHj0l*qzb5A`e0uI>K}}V|{|321VeSW# zSB3z{0M(C$l%h7%i=;$0_gGzF_sQY&QS#BMfdB$&xLrODyq#l}gHfSM(plloFMeNA zu!tNunB9nxnJIB}X`})S9;HnkPntk5fhPfh%99{;L&K-(YMuU+Dd0wKh5vC6I(RTgY>J=w%}Bx)5(yK5!|(aGRPQ=%pzSy zZH&xrd;O$mPtTk>;QCpy!~)oXD#?^XGg#7)l%n%-V3@hgKT1qepd-|3B=t6xy*K7Q zTmb~$d2&e$!b%cS(Lau6;0a#}NmTIW_|+6h9|BSQaAGFD&_({L_#`aIt_q?iXH+hG5jOTWHGX-$7iH5%!(QJLIE3k8Z~6Qz4Cp6}^V4_={z;CWDU`EregHH<8|t%a&wYcyT zjvgdINOeg|GKJh)wqic`x_9Rgm%gj!-~>4;CrJJ5LFEDsOVnd-VjlqRnSWIa@&+~^ z0wZUU&@`Hh=Sbf%6MNzb^QoI`wph`CU4A3MbzFu_ZPH#m9nnK7OgK{uW>6k=ie7f) zLBwX$%%N=V$8fBLd;74}E_AkBQt8YIt*A&cXKUktTmtFb6;4ef?}Yhlx7HYi&ae?V zk@(8Cs6}u82wj5P!-4_hx^MOMr-8;3KJ`gkxI5&*vHm+s7?Qyf;Xw@3$tcE%0zUffQilGk z>~347L{MUjh~C$|$KhW7I(=@c@3ZRJs@M>;BBkyJ@dx)B)*5?Wn{*9ID$Dhg}IyGb-X81isR*an(q&Jf#2!1W#@fpHR@h6KDq z6A#Ew-1*2MUtTFtz00(U?@2ZI1d7d(JECE&8HRp zhbaDkjQ_ctxZ5~d8QI%dS-b!5>i^;3{=ew|Vf_#P`>(?P2ul8s{(nE4IExXFO|RH*!O6B;NK||3ox(MAOmGV1N;IcG_sGzb!k8)EM!026Zb{iHidGw z#=06zb7S>#%fI5aR4ndbm{{AwqF9<)qc4`GetwS4M|$UU+%CaP-ry-@)m8BebF{yn zzQ@ge91D4p`F~yO*F^KJq_GfWFeOlR_2$bZRZwhLwD-~$IPW8&{2KdY<(V;Z)D*iG z5JQ{P*88rtB0zA_^KT7%K;6@g;-4E~Lni^tEiI8uu?F%Fu9JTeS^LJw!?nZ{K5((znQGX7RNj zZhH921(7j1%IN0lS#bBndpUH#zCE=zI3y3=Hy>)Q1#bf-pvREW$sjcWM8Hz+7~bb{ zv2}nCeT2*Ka@CD-49e1aRH)hLhx)k|K;D!cqMI+@=I|>aKIcED zUUU65Mge*V+9i2zwOQwK^DFs?V3_$h`!$vl)q8DUQo_1b6B6^*S1U&0(bE@wf510YDPFh51NL)*{`$*1Td(QdPnMq{DVz&Z@Pr#&75r)_!Rmmh(d*q7B&avMqSX2RT zUA%p*{@w-;!kk{8@2hKKpp~FwBNGp2LPBoJfgDme&xhymlCzy-q?b}EY&lZcJ5MQZM;4XdO~N*2%^0W`$_pA zj~3sZdz)M)six-U0Gghs2nQZ_V_d)17S=7fnJIWxHUKR9pU&Z8uUa=}++MF^QOsab zjQ-_c@lAWu32uZMDbi8=SId8ugxpY@Ho`oe9A{D9ERWOAxc?QMd3Fpb@GI5UO_Dr9 z3VQ5_S)3xun=-S!FgWQzl;>?_*8iext@h|>v@{a#+f|gKD?d8&Wskl4rzXeGc)LE( zf#^}|qdt$13){j)D|coU(Slmv-AaA={OtMU7j#V?mSk-aCNUPfvW6cvO@Ks8fE2`# zaomc%;ctzx8sgaL$e@~5{7apccJTC;_g5ajRcuQU*A#Ddj#&Oduo=>(*Sk@W;MUDa zmo4Cu3FCUs>B}>{uGU~gjAs!?d#O;?ZNaF`Dxr4u;8I0(1J^>$VdYYxWlhZ?xs`A9 z$cj!*O){O2_8`P=&0%1{&+1s~ay_w_i-brNF*q{{nr_VAo+rX1%oO^5iJ(f={i3Uj zVXHl;;qlb&!qg$}>>+vfjH-!ik^(9P(v&apHw}C)tzx5nEPdi7#5E!S>-;a~cJHgv z<8}T9e3KvWnp;RE+^}Tn(ZxCtPesmFP@U^4YBJs#-@mckc-p-mpw4!Y>K`qWx|T3t}j!> znQJXg40w3^9ZvrL1Icp!G>e#w0+`}TltN47hpaMT>L^zKq{zy$bZp_b$>)UjM+4`# zeysU35qU4Vi+iA-V6ms(H?w+}BuLt=Qb^~vH~U?oJ{6jF#EhJ=>w?`3lD95+F*`in((&%)P}{b;3zbJs(hc=D!&LEIv(z?f`i-lOtJ(K1{M7 z)-O~kD+KO`N68KwA&-w2Ks1)tI?QADnI22w)wR}$>9W|ILax8!x_D^=M41a7;lIeJ zrb{&&`2o`jQRRiSGL0Oxv=@)k_niZzSaRg1mJmGB_Dl&xo1f|9+vRyVs3AU)H7z@x z5e#xdPdy_@X=SD(Tc6%EClB+#orI(QDfMLoLNMuoR7Il9VIo|@;puQ0Q&X^sHJT)# zgaQZYt#2d|uo|UX|k)-Lt+aEo$>Zqg5E0r@?5zCgiJQ#rT;<50io! z&7Ea+4TNxjLe)&+=z8p|x+6G~lqini9JE-$H|_$lH$of1ZQB8kV{opY{WgD^ch$cV zkd>8HN7OPDLKsmHgmit&jmA^lhUj z7;@wwr$?ebYp1WaQxg32ZhV+2Vn7RCY%Tjh<^!0y?*-6vW~??xGzg-m@uk>E!7>Lt zK;-(}66n7@1)`iJTx14pO@qp!FcZ+ELe9sgO$L1$N1kwDCwP_~v%mB^AfDhy4kGx@Uxfo|NW#JU~3l(echfz*sV zB`8`bRUTI6=Nu4t{fS@U%3(V-6*v3BZ7ARvTbaaBaOm8Jf6gWu24g5Iwc4kL*0-edvcWUMA`UwI`^{*8QU9kBue(zR0X6{U`e!806s$73 zDTTGMSXe3ujyNJ=0mQ{@dZ{H8+=13hda&X~tC$Nd7oDz^tB!cGSWEjMS$p*szVJs% z8fkp)Z%#{YPE&}4DuEjoNVuIGGVtWFuO+dRXFrZJbf;1)ZXDGXitTweltAihkJRL= zl}WkF3(71j<=amYj+;)zccrO4m;3Hm9I{O_8hNLckoAm(_tStIlCy@#$tIqgysKg! zFA_0Hi!4pWx~;22pUct|MP0AFEqtm#GxI=mc=zQ%03}!AI6Wz<6tTL;vp8T+HlhjD z>T~}S032*;*|v0K3|Y6feV1?e7rk8@E2FBY{zn(;2Sl8t3kkBzqh3&g)z?WMn8E1F z?B0kU_p)hmfB;GzM_yyrnCF>=y@?HyN?`ZUM#S*xs{U^DO?w7*w+lb&L6wi z^6iJDhzPVawoEb^t0L>b>qHCM9YCU^ZKE*I1SY@ zLRTO37^@fu8;3Bw`DgwD^1^czYLoiLiAE{CpF>5~Ae8XBCLlAA^dK6G=Y?iV;e~W zpjspe{t?jcVCW-8V*oBIo{L6kb8wBFIc-UE z=Hv*5-d<12EGL6tQ%UN!?XI_?*@UC6@7#6aVD=I6_;xr+fN%6Teqezg^p}bagtEIWWGNx>Rc#gthuC_k7h z*v)&m)bopo61HP772%spp=o50DX7S@m8}m7O|eCXRq^|k%&`TgM-u+z3xuEE6IfsQ zxN-R!4K5uQy*2IGLW~3hsAH~l#Cf8WG2>f;l}~D&J=f;vRDE?I0s9lZ0m}~fxIdLC zWwzzKjhZP_1cIg2lX4BYm1T>~L1(mgi|)*zGRojl*Gxw^8H3PY@v%$D4N#>qrQTI{ zXZ7NK*R40Njc}I>>aWjjB^akF1l=~l+m!wAvRH~CVsewlm;efO7-%;9eT6o?4R=dw zIF@co2sGh$XS?Zle>kgYDFQkifsqiA!r0;pd60xW&{O$OaRdbWv}p486IWj#c6qeN)y;U04cPBwtsgxc&MDiQi+Y_R z%6NF&m@(5724oI|r#PgPg11P)#XHGbGMYwP_rEK11OHSKTFF~!%E*X-iLOR8+?&)R zhp>QPr!I=oS#$I+fy)|xT;#7zyQ*zHI71o33+RW&CjyC&Z;RkU0>eBzR+|Wwgg@Nh z>bfpFIUwj}1jp-oEl0S@BE*Mu5E0{LQLG8cawaIn0OaSB(n>c?ivs#?J#v@#lZf7XwR+gjb z3ofHv;!O97e5d}Ii5(7`K@Fn3{wjmShs8FHh=8ZmW;13g9H$4>dZ6$UiB&cVR-njY`nbYvLSO>!LbH}`xDkQixk?mWC*bE@64IeSvuiKKyE+1ehEx5 z<04CkPyu2J)ey!pfl52yroH%&i3Gq+q+i-Cy#Z_2$Fn7t4XqL5_{W`x)r>AWko0y- z(sp&#^o$MHYymH$7-kvii|IlxUailov;NmJPycp|dZj(f&}7x+1)?GJP)TV1f)3%q zEUA#okl64$%fFJsLtzJQ_D$fGbWd4nZoVbrY-107V=f*^mIf+ptHNaGh+Y{iT@Q>1 z>DHXpF=fDop6>rPb6mbs)4;CmNz)jL@VU4}Y+&C&-CsEw9{`hI}%{ExL zt&U|c9lTk1KXiMYc}|2M)Eht7?;3@CzP-NFxBn6~69ex_Qf(JGe@BnZIUoIw+3!Nu zfCULm4f~1Nm?t_l1zhPQ*zhtit8na`l{fM-s69NgMVon?&hujU(9pejnl;ktk3rkx zWc~`KDN63GIve@A2zdG+dUH9U-yXSW+jykHd^RibP*K-7u7Hyb*D0e@6~+Qv@^G-< z-C3Td=h&PqqRC)~&sj~4K2R`M1-I=!l!!4GQ1yjVksyorI!lI%5nCC{Pi1B;w@YJK z%Bp+6GWc#BauURbD=@Y>c+{3{aBVe7Rp_-Xo7;}FG!f(Ca8Ec5`Fe1I zo)AS;upzp+$`3B&&POb;SycL`w_HZ9v8dJNHeBw^IlG9O|xZx@NY zR*Cm7a4TfQ=+QhfGIi!H=*Ig+<{1KPUTcbPe_JmuhA|-8jvMR-O$`smeTQ~0)`!|W zs8sZzEKHgyii^X<# zGiO%U*6wTVYTawAp6!mXkHA#evFoDM=xYBZ#VoMx_hPyQ0v(mePvYPvuKCMGy<*Ps zDl%CF1j`YRS_ch{@=94-TvmJ2hB_8VHJITUTWg+b`HfLbUAy*(mYXSMg#P$d-TXMm z3h@oiSpGmqvBnKsvI#e7OlS;Q>+9=ER^|s$73l5!q@)p|rZDvBho!~9ypQ%`s}MAS zYw-2sn$uUfVfH5(Yu^^1mIhyI4W;Rs&9`ffa1)iVA5=QH^pWsC3U6c;gu=uiZ&{C- zyu&|SXn%hSJw9>AA_GOjC}ooT7$S#CVzX5 zT-3MBtQOWWqeT^x7 zRy|Gik_ytdL_=$!xlr2Zyesepjj3qIq&4#*+LPg4US-Tig;{RdcOF zZd;0WrVlvFMJgvW6>Qg}_-I6q=D{EjqpTXcHG#4b8!xTJ6tMmEF;eg`fEW1O8ep`2 z*>#mJ$M5<63+_b;de*NDJv?=8G&7EC{#KH}ll@yg zPQixU{l)%WK_7`kAMCawq-E~G>hA@6rZY(#UAS#(ZymTREz#B%;e;`p^=w$Dwc{`m zkk+?#9wHF_X$Wnmy*wRHSyY&G>aDuPm~A#?&_2Qon$_D!h453ybca&kPowNtq9&+o zY*3Kr;1H0n+a}*+*NWk|iTw{Z>Nk&tJE-tkaJGuovN-dF6|y z9jj9dD(;^h1qw1pa%SqD2n5vR9BxqA07w7^bIN^_H0DlEXLi}i ziNFME+v){PX{u5bqhEfb{R_A7o6eoqwVoN_#iE{*1{@m6a{TK0na9aO! z|Jx|aKno|buVuQxZ>op;X-b|=CcAWbwiL_0TBe!|7sgBhWA0g9rMe~c748Rpaj!H6 zObas#?R+&FW~yqM=?|kAY&(?VRug+ddvS(54ju*FRe9>4SsiZED}Kz}ZqwrU{=asn z*1NXN94^Um|bGAL@WfON(C`SZ8KlQ2)?gVG40-sgie+vl7M z0sjZ6`STIV=KZ`$^=qCiSwVjYQ{y8DF7c9J%XR6m%m>4g)L8E%UGkl>wtm~-cO8Lr zMPq{Ln)aos-GqYD=h*^{E!}^Rj!sUS51)$>1w@Xmj$=On=-9bG9HRBUYtrH&#tf*M zx_IL%8xG|AMC{rnR(}R67(#NltifGvHojDqT+Hg7`bf?@DzD8`ZY>w~{#M+as%*2{ zuMP93q^_4L#YYx{U60CYkKg~T_oKJ-5ZZpaaqPdb_m)9%MsJiS-MBYS(8k>*XmEFT zcXx--xLa^{2_Xc6yK8W_;Lrqjm-$z1%~s7!ZSAL>o!y#xzua%vs_yf6Vf;ImQtn}yF`3WFJYf)P<%~*8J#pP_1_-=$9(1E6B~IaVN%ni{|4UOaW0z zGC^Q-kbFQQjT-xhJQUlq0jJ#(a@||R5_v<^7D~T~UCP|{>7QgUQw@Dc)iP2B-N2Nw zX!UUMU^SRN7_~*xI(Utq{KpZ>Zx2n7NlL*a>N~a_VSBh#BsCJV-z4)yecbDVcJkKM zKgpsc*?~YpczT0TpPXXx*RSVO{V50?5VK> zP<$P4H>0ow_&rkZuVip}H(4cvJ{>CuthIHIbG5JMuoy!UqH3Z)&LM8pn@ETdjW;@Q zqEBOui>@P^Z%Y}PFgDHa49-|Jtigb?Mq7|6ER#=I#E@Q6Q!EwCN;Tq4ELtmm?ZqEb z_6lo_$PvVi5-HANMch4MTzpCiILS?_sZyyn>~1vNh;oDW8DW|bE$nb(8c_s;|IE>A z%2&wrN_16?`f8ixOYCJmg_^%OP&bN&wAO(^{K8uZ9&m(QrP`}02?@O|hoH8u!V6hI zMoJW7X~`}~SUGjE%)#o605T{^^DVA|mT#JK6D*L=pJuU4XeI(@BKZMzC#}Stc1RU3obl?WN zY&-B6ep9#h0~4bGzWm%FW_dlLZx$BEq9;}wZ{#HevLk#W{Eb$)T;DXa2bT=Mf{BKU z7t?+sCjl(tP+&1qaOwh+jcqwNiv&f(QP9Agw!kWCv{M6fN7^CUT z-b>-WV#xp1x1(bbqP=S5d?_+6m>WAP3)a&Cmg%sVVn2?ao<QZu?O&Kdzxvl?8?N#5md6*`I=(4ncEA6uF&luBg}vWJ4O}bLr&Zpe5>>B@C{& zjpj0^oGMN+wNl24u_##w=km3?`#cbP1=usRjLYJ_xPx-Zq(aqjRJf=vG zl9Iq~cubVlt(`r=ZvhozvOkwsbZbV#(& z&NuR#o~?{RK78432s@^(<3GADYJBoLCXTI0*xc|(QrF}h zab$sV^J%q$B~k@km!HG+fcVjH7+LanG}tqj4l37zvzhWq#ZDDPz*vVt$Jlejan-jp7q@^d=JQ|B&M1jT->j6OTqohN*Aj zeG~b>Y!!>9i*+?Z$tE8l<$1)f8;-hxtMLvRzDX3(9{sapD29QDsyz0fkZs62Vd>#~ z6wv<%8qPNkj+*|^m|Aa72yBaoLbCl+eAq4yCv%r@h!Ya2rdX$3J*{I`$m?BR^L=7F zL|ip2z#6B6@&fsZC8SN7Iy7>5S<2sHYZLzs2@|>58+>ohUpTh5*P7QSTAJa`X%0b{ zQJdM-!sM=LI$lO_Ee9<-hS-Q3su&)t^|%(@4M2~t1}kRg#;+!wn;4NiSnVADHRmFk z*)|<}`eVtJ&FU9xB*@`>WxvHhU|kuX$+?4TW9}yu_{n=csIYPVmUc63@FzA!Z5)<= zj@n9ZAkf4o$c7-wWK(7vURDPP8sRVlZMOn+L(*>DE?;57DbAZ-zJ$rs$T6zci`mJs z*;W2@?y8LcH!(3hy_|6uCfA=-(}emf0A5@*jISMOlXquVMG@DztIg1sIu?=q%Xq;B zd8xW~JenLcn8xxqSt8R_d9fzTUOT{8)p{#iU}wWD&CX1S{0F*RrNl2a8|MR|pYtpj z(c4=3$9MX|d$aAbZlXn6@yhD@q*L%kPO(}brZ7Bgvw*S~3MHyQnVoi` za?0QQABKEq*1LK%ozii;KR^F`9B`z#c?tL`(oj!jfK#DSQ=%Sr^uru&8PKZ-Pl(wRsgr zIrS1nERKGK(zhk#R5WpY`!kE0zy87vX9B4K50nWz{Rsnb@R$x@lWOo^2;VVQ2-YT9HMi9w* zKKe!k8+v_=ae8l-cwGo~+nPqb6sV~asST3GgnV*Bs9-#aw=&j3>lS_I~K>v}1hd^el}w#^nm|P8ricSJbt9J9L^* z{)m1dUl~eXruw{Xnjlq~{0q(FMCOaKovZL)=kT=ONfH)zk{Trbk*0%{>zB`uyJ0TyCacuA%=Pd>WYbVgh9W7+gYPb4^9$n|s zkf4}{(shOjLH4tD^vKP`Y`sSu>S@4LnG-8ZZjgvDlYZQHQpV@&v!1tH_w|EJE>-5; zCkp(K*^CQvy%H$W@UmhZyH9xK$6JHqdA5}&Qf@_bRYU^r#6uD1x1F%yC)UkZ1Ho`y zWc>#iDUWvoq1RrYPsaSiM@QgND0+kY8)GO~<%>Z->(I)cf@d(N)Wd;A<3nK?@4RX3 z*I?WZvwr=K53iQKB$SJCmgpFy6+SXbu20%EMpCt!qA1CBXltfMA)lDAe=%6-9K^^7 z2_#meH1c}|0?1?HniwIP_=xknv{P~`k7=kqlR!ROrSuSH6NCI!&9hdK9sxfEG?*JS)Ca&Ew*Isa`vZ#?v>^uR~ zbvIUN->;-#W$a+DD|c z9RT;lY(~-h2d*_Sj7pR+K^29GM*9}o(DR7G9Wc4Z9M!DidgfGU@jR-r@$k72if$I8 zpv`nWM5zvh;4p;)XM?18D0!ksw>>Qs?d#=3IH8>!P|@;OzH=NJ?p&keJF@&*3WVO> z;%w;~F5ImUm9nL;*UJdtLBXi*-cmZoWI)nS7h{=qmKS8C6-PWEp$>y~Y7dgdj2V$Vt9G*JrVv${Q`+n}H#As1ZSU#Tw5I1ZDXEI)ueKzu+Q1Bb$w z^bQE<;?o}`#XyH;_`T=(t@loTS;k5Xl1c&I(d}4Hu`iPMW2kk*;yKurDDz5kI8q%; zy%i`meXSVI_WWAE9iOgSVgziSh9xlTFK5288fa9c)4zI4;&y;VQD8#q@qbLTNtmO_ zeIAzN7}uSX4O27ibt3^TQ|OFS{Q%0yr-jnX={nwL=_&F_$RqxN0dM2FUh+UAh;_t= zLmUC2pK&)EcWWmv)|%Zs2N;_#I%Rqe#xD3r+&&rP!ZM8Ea_uYl_18odUSWxYNf2S` zOnddiW)ak-oUTFtrUF)5-}JvWKZvaO-I%!9On@pHr3|G}+7h8tZ)h5J{f7DTFpJ^czh4cm$MEmxQ-Zp0jtS$c zqqRR|8?ov>8J+ zT7CPQUX#GY+zjV|?z+sYEnPVpa`kId6+0G0pUxBm3?b>oS=*hWCb3&{jKMg=_thx3 zT?`fBC#2MOtwvr&_r+N`!|9R$EF%X{!WUT~?t-O2uQvlw6W7KXU-+G&Aq7^q!chR9 z`nLI~Hx(J#ruf^d(re#5=B#s5R_^jby)82!bdhgiM$tUW__NsCp^9qJNFI7GvaFT( zX?UwHq5?S!7UZbBhP9){o79`U8Y}(Av)by*$EuNG&yCCK^^p#;tDSQ<1iBR^nqT@;u_siT@kG24Bv1J!cVkmE92d*hlwxZV^!R*9UXG%W7ER%WChC ze8}%mF3vw1ZK$?e-UK5mY?mvkn63k_U*s#IRPle}xv`ncN4!?~fBNwFBhz*{haPx+ zgtlJzMn*7ig>DMU6ZZfPV717eMYecc$(--cAjjDaM$f?a?n2U|$BjB_f@k$Riy1MJ zAJ8J=2a4zjZGH3%Cc$a=+x+fhQ z1}~)Y+qFV!rjYMr0{QfndCm4)ovgzi&7)v#nc*0gL&WU2{a%XDAQ74A{1Uf&w02eL z#CWXp)|`;I&olQlsAu7AR!XRdCwyf$anw;2Za+D6E&eg_eIt~cYw*M-oH`(6Akd}5 zqg~RaK90qtG>SSi!c#+FHAzFzI=P#>KbzZ})b^~?8^qKSelo6>`mDkh zR$SDEq0h%yY#V?tyUtMGL`|fQ4wInCvBww)D8SVP^B~vPQy&`!v*#$Ippr^~d+~sV za3KQCk6iG?W zhX#aCrj$j>RPH=OfEk8Q4p%7iv`78v3AifcuijEoqYQY95r;6R#*C36eIW(GWHa#D zR*&v+$*g|#E4&JSR&Zp@yHH!U(QESz6>Je2^C=9L@OV?k$qcc#jrVF+teJeV1-lT>#Q4(j#1` z?k*AWW&Y+@EIc?1NdN73*w2usA}q1^5w_X1exzhLEr_^zuyOzSAHS-pQn73#&I|`7 z3VX;BulKh*x=HSmGW_baB}HgMJulJ(2pZlwfLEeNczOLwCv>wyocDgx!p%gjQp2|W zhTFB7K=QT=ilQU4y6*m2)iaSJPFj5~#k&#SayY0p{2jYmiXlW?QjC88SYlL5B}#=B zcYeh0ExjwRP*5cvi(WO4Zg-{bidUKBBj=%8c=FNXC0aoNq^Duo70MS_2p?vyu;AyR z$QAlcx+<|M7Of9<>7xoXMWDD4r)cbh3S}jmZtftn*wf(7e7D?^5vjjj01Usv)yJM_ zy$NmOj*T`jQ#2Y@%>(5;QmsWrC)3eE8LZ7PzVw6Q9~fWx+6!NNPOa^(IAzm@s5hlH zpSLxveNN2+=g|knCUYdR>1)p)485A*`lH(b6>Z3A)gj~WwQzW*9$-q$_llpL{zpiN zBS~({OZj{vVoiJ_J8U9*qo>00PQh6#zm{YIYpwB}_-%x?Ftze}?KSa7Xv7*_`qEc%~rKb7X8#QHsnQN0>E&xoeEIg`C2aIeO5_lD<+>$C=5jJ?{6k+O~& zYWsOrvqge*SaG0iJ6UT?yw0KZWK^V=ssb8vvpMPzu2>J9RT!%^Z1~e~+NyPd0oH{e z-K>KTlcXE+kshLko24JKssDd`&i>!(|6czOq(A=O`aeGN{15&Q9(IoZt^fb8qW@zO z{8#_SpCrQ(ui@az^RB6;?5_8xL^6s*|-|+ZBd7`eC^dU9Ws2`}te^4npdRGzL zJLR+-Ef+fYzM;Xr_Y@ zD9A+TfyVjnsr&i(_PcbF-0o+7U{A3dxHkj_5lDjM`d=HWHx7i>_z-`@>U~`cpQ?CY z@yr>Z+P4pV6w@GT^RVz8f}Y2rI|7rytM4-8LAM$wbj#D^g8r|sbJs_@^Jv-#VSQES zr6_&WZOx?#9NtdrQ|-06ik0)ZEiPN{L&L+vY^)~Tufr|fcRverR#{Ae6Vy`bS!H>$ z`Pi;S>A1lW;Y>wx;WBJJuh*;7!S6Rc!S|=D(8QnQ0p3<#cUSG-KXJq6v=>)1R;yx( z>lPhfsZkA&9v;#Xuo^zjVt&003w~Z(?!HfOSg!q>ym0Q>JLmAL>;CTG;NZjWZc(Sl z&e|tLuNk!ct+8-%G8`w;w8412VIP&P~`~*zh_(X1sk)GH4mY%oTY$bq-s@P5*2pi#7=j-^t$}cwybOC}Q z4PVXQ{_Tw+7H7H*Vqx&vQ@aM2PBX!G^#jDc{Pjd&NP;ldH1f#UWt!@QFDk z1Uz!4GAFF(*VQ$msC`Lq6xF-I>M=)Y7rAHihB}qR_q*bOC`@u-fvJqFJ`7kSN0OW3 z)7lh--Ze=$Z>mME1Fq_k{)!vUnh!Ke(fF}8PqlsBNaKTQI$P>@deqMPH~C>FN<~>; zFuQb6W-hdBBj#L=exxA+T@n20v?7wiYZ`cy`F zuk?!)p!ktWJSJ=N(RTP_nr=~=M({COqJEshuID2&Cb`!bvXmtx;jvyOx#PR~liYOVJz=pc$Z4}7 zC}z=&gi7#QuwF=zv-xz$7g@-WYym1o?>ogAC4(p56b3h{lytub!*pzYjQjfl zep@bL&9n|pVE~4fwG%$xVNS*L@}EE)8_b$im@ANnA)#q_yUqB_g*%h}b}= zVSe}zCJWu!IMtiW@3C~#FB=KBZ)*ZiT_zUNJA%ewW?5?NfozjD@<55eprY` zCCOoat0&KOX`$Ea`om%8`&**JG8HBn-#L2~6M|Ba9!YqfDtrxgdWX>wWPN#t$h!nIX5`D)HXaX{P%)zz zc9>XU+rMqkwKv1lR9kP;85e=S4(7@eUoi7b&ACAXWFv_cQ|KY6GNTFtSs`-@05MR! zsVN>>lx0-?Z;~u!V8f@tmf)V??Dz-VB9+>M=@0Y%WzZLCNsy;&7Vw${J#XecFhrU2wXB)EL6lYuPtjA~A-(g4Z+tBQbj+ zI44ubM9fL1ni6<$2(dE)j?MzPK2$B|jT@c+-ntXs#=RXA@|$tC;}(C0>54Fx$$H9= zso~Z-fnmehg|MU|qqBhDM8yk+k*dWoP|CB%g)Oyez1&=hCu_)7Ky=KBp`s@u^$9x zZd$Pxr-WUfwYQad`iAx=;&Y%ZdGew=@`3TD81TU<94tK5X%A`Bjh7$a06C)-e;lBwBrU>-9 zhK@!BsZC%Ak{i&<%}_E7v3_$Qmn^`1rlv?SMW$Sqk@HhbGE`4h`G=42a#_GIi0 zE>SFt+|EFb46O*K-wTA18XOO?wi1+7MSYzWzjL&C)FqZn0f+KFdrjT*ku~ei=UKIo!4i>|eD##}>>lK8 zlBZPXD#yU&!>M(TMGahf&lcGM1()Ky4j2Oi$KDe)-Zj4Be?*f%5wz|VS|9${@WOv_ zOU59?mh9UYnn?IQPgPf*SWjdfolRLUQ_dmLGl1MRg7c2wQ+naCxwRk9T5tUT!(r80 z_wJOaZl;N%$(n;=kIcmm7Yl|l`>;9iP(;86QlfKZeA4j9jMn>8c?t~>+$M{967Cqi zS^P|R`OrGW9s_MXgSL{9LzRW5_?S5oVQI;-{F7ucIbt*_z6|fuhWTa=TnW(aNs;YA zYfg+X{?RHlM|5!2V_6V6yQL+<*shPxB0(4_a7+m;=S&e|Oc8LglF#0?@y+TWI9Wfi z6yIF{0*vPk<4WYN;S?tu&>hzh6?gPg5eUFHAA?y z2t__B zuwHub0*7_Kb~qQw#GIFeJo|tIEnrO4(zF78{1p=3X2IZL z1xQ1+)BABd_izp;;o6Yr-mGSaNCQ}{#jsx8+@{$H)WR-jOqEm|ytcQQ!ybBWe);iA zEsHDM2=Tk}6@|0$L6VFy4ImJsLENX8QIOKCF_E4Y?n)-}VXBrw#U%q?^mZs5Qd*aNJrk9k_9eb4#H^-bOmYnC4Z@j4sK>j?dm<*#V5nsrh zELrb+V{Je1Or01<`<^|61@%*_DQh&X{sjexfuRSv0%miG^W@Cm@2w&p34a~u;1BVS zb+bREYbjM7S73yxX(eQYvi#ECnK6SNsm)6;*_OvB!!%QGc>L~wSB=W?TPx&eUe{PJ z9Y+|XNCnF7B4JPTrNKOr>Gw%a4Gv{IBzv^n1hfbnw}0~Tqk29taO!+6Xn$~);e}vC zBg?ORDu$pC<~il;C2=p(`3v30(B>KZs;+!#LloU$ftg@aUN6kIJyeka8fz_Z+`A&I zH5(^ez$xyV>k271XR(0eZKY4lt0fnPf|4Ai-2{gxPmEp<63CVfUApF{*lsOd0Q1*- z%!mK{6feW`fx6;YFvowK0?J2V2!RT8KaPtV2I?{nH)(orbBS|<@8bTwCRA!?6bOEH zniiQImQfZcT|7dAvV>I>BZq*o%m>#n@NNGcvfMOV%vr28zY%_tvEhZ_yHY=C`8im3#uCR!bas5UTO=WM#+FK;v%i6SgxPXi5 z6>vq-h0T~|!BiAaM|Xh53%6D=XVeX%If=x>t-u?lp4 z^67Q6%g+a@yzb=ad37j#x_P4W^jxm@Fa_J1sl%5-3fmAb-d@v8efIGXJ%lHPM3NH{Gtfc9|Slw5-A2v>1M%X||p+(ejfWz4!f;*LKX>td_-0;UB>R)Ipl4dSpIAHc_yh@$f@aJ;rXAK4GuJ!~e|<^py?P{8kKm zX7}^|mt~>oIdNJp4T^Qeh%)t5McQ;l zY#^FeI5RU|Rvp{0>FFRc0&zV03ih`eo2P&O&es2SyyV?X-gIT6;GxL$CA0IGbOq<1 z*9N$BeS8=^zf5(pRF8j5<6i|iig-l~+6lI~mgStX;HS;ZFU)Fci^@HR09W9qltBW@8|T2>D%{MaV8soiR$N=^@U( zkjs!SWZq=Fqtt>PY*oG^!e`_a}qN4)9;t=uh-99hwJG#r2{zgSSqQt4M zL`WEoRZqB=;zg(-8j@TgOI?It8G6VUVxi?V)U2wd=T3uZt-twXhx_(iI zEMJfdvGZDQ)wwl3S{O_-rM1N4(bJNp!?{+47FE?(!6V~yON5zAjfNpM`9e94N8M>C zX}9ZnD>hy8g#PXyWlvqak7W||+yeW6q691>JCpdn&dvUq?N zEYdJNN_31HUkwW=FcB+SLi!Sm!dDVo+*P=~lV(!*pk$}F05DvAMI7vI@^sun?)3Nd z7h~@U>vzL?JE5n1Vpj4Fr*%K8YMP`q@#Qd}e<{@76RurIqrv3Z|{qY0y?VZ4W`8sLhQn-2fG_~HO)9mQ)XG86v z{lpVGXTiGQ@Z%zi6}WhFRIG|*kW_|mkQNo8L%kcEG)D^?R5Luu! zFr1f{RgHx4TUx}>JP*D$7seU+_W0ie2ji}m$HQPXz^3bec$jUy#qPN_m$&PByBi%X zDFcZTE(U8aW*073axem$5zH%ILy`E~7=Rll$2`nP%leHva#Y$VL{W1PC0Y~-U_l9@ z$K?!-YM`@U5Ews?V@&%GkO4{femypbbp8xnd=P^F>X@Y2;zIh?%c6s}(d-nEPLCam zLR6+8&79>6qsftD79TN4N!#xbU)=|Xq!vm6a+J*T4MaI+k;aAU7vUqB`eRuHf)ygZ z|6*&_%eb0p9^g7cg44b}FjH1Rti&=X@ zQO_|912>3U*XYV2>J-0TePga_+KzO&4sZ zP|1wPlEEE<;~>0YCNZa~2_=GX$^yh=HDH0f_{k)xz4kxHU+3Yg(*<&Unq>nczGnlZ zBNAU%mo(iz@9+Gs{FE&^H>V`UN>XG@La zR!W`Q030Jn7I5zgg==2CK8wAbKUvyJ`HOqxYFpahOea&%5fD=YOE_-{e+o--8;MkJ zR4o;)yufYAWJH_@XX+O$;jPU#B_C(s{WXbn1zs1%9Ujn-8v$=jA7MOP9T^8KJ%%Lv zv6>dO@(c(JSwt!k?f5>yJQyACx}D74X@{zZvbu|H=afEcKe(-%Uz+sf?EFi)MK|kT z-N!Yfgn>ehqK~Um5-M2?WuPEcE6E^4chFxRzD^qxRz-4pbnY`ZM%S1Pq>x6=i34|{kL5aouTP@w8k z;Zk-y_?7p%Z1P_pd1azskbPneA*8O)q969wiCYPmb@wFQ?$tNfkcRc0tV_YZ#&rO* z`ekIeR}_X!8laUL#3su$p77Ik^M)}vmwvs)wHRQyxpDf|kIyR7n$q*JfrBee75Q1J z)mqtxVL-441J(G7Rf^|7^$MNL1sz|8`t&&w{&CSj`l9FQx>%xg4^I;}hQ&>+ZVX(J z`$5KBr3o4X#i(*XB;rR9lCt15YCtjti;Gk3(DaxXHD2eNef|DV5>7jWOK5HfJ#Tgy zHdB|YB5xOtf9r{xU>A-_6E^}sjgY?x&7(>o$c)6i&KrG;1#2VOC9V(-;ovSHhDOQu z>Pq)e0p91E7DYPts#9`hWa8i~INUb6mK8L`6?=yv4CXc9=5P)?@llXaQBfj9YA{vP z)QZ)@jMidZd%F2AG^HgYS}`=bRFlQ^z8FX7b?3o-J*g`(H~3Y@_p-~y!p|$i!MQzF zqws_H{*1Lx)zo>cH^<7NIAUb`cPDYoCIiK^+f015 zK_{be@8GOJI3Fujisy7#3_DO4_FKrOUc$Ipd{($L6y4~!g2gAIN?MCZrh`y4^l<6^?0T`NomkouKiKL%5-}XF>uTjWe249|@w?ujqNjacKUpdOW8n4hi z^rG-IigERk5CC~MRYXYg=djfqV0s8Cg)B2Ar+33{Pj{C@ruYyEU zl1r2+Lnsh2$-ez6B~g?W`U)Yn;qNwfWU+Gjqy$Pcc6{14hy3s5m05b9phtTRio#z* zwTW6!*A)C-i$~g^`N9291gHDGEIuX23_7tOJh}BqcV;wnQKnV-k!<4xwRX|+Elk-S z1Ti98V3xkRsf-F}oDR@*NbVZwMmxbMn+#xj2$C2ca#3|_?*@NmFR=^Z^N)cS z1ZhSZQSqKNI@vta5*rSPZj^2q3K)SyDj8A@UMht!_$yW@lKrgLkK=c>Qq1vF6+^)r zAFw)H_IOW8dZ+Q}JiOcZ&u(nTkp~bIzCBj@t^W8R#SDH86S_N?w%~T{+jI)NQ;1A? z61X}9KIR=*XPXbHCTp#c0wT84i$YPlJivFcH_sFN$d{>^+Qz=?cmr(Y#PXNAyR8si z)Nf{v0AjyEg!uBUf1g6FqhrLFiG-@mW9JgSjafJ?9FVkI$Cp*rOxkc;tC*rh_FYlj z8|m+CCjC{Y{JR?=a>Zrn`*uc{Hr@5X)^-$&mADZUuJX28N)mL6thi}*JNJ{iLPFSM z!IQY2)f6TZF%J>lQwIwBg|G(MGJ6+jB2tOl>T2*$xT85U8ij`4vqK0+ijP!OF+5t# z6@0+zheZ)P-h~7{Iqx=i{v1>k+ zz}6o2eT?D#IrxoLu-SR%RpD2-q-?BsvF>h$j^Rj%LN!U7hhQmG3lyTQU^|^}9#|(< zOjwLk1V*r6{^CWbhFhG?^nLG0(dKEDzxr zD78ph)O-d_tq+%LFwO6Hg;TF%=-x;wvL(KhRL0`TZcS-AMDU!lHu0wA;w`B9z->-H zw@lO0?)y~Ng+F5ERv=XX#@66+_bvbLDUQftgq5IKkR6rHzgr=v&!Uw=eZ2gU6<7%f zzL>}2E_WzulDKIL3_lg$gl|@L3N;|hMw+YcZ#z3CSy@%4QZw}Zk~EH;7)-K`YU|Tp zTQL7YMszH5SVnP8IK!#$r3%b!P?Ao6x*_qf8M|$d=v~nOuaI9tu52>Kuj0Rx8--tP^1%v_dwFeQpDOLfj=K2-N)|6B z0mhtj_!ZF>?g&GSL=)sgBvt0hqX>F!b%~!yiv^(CyW5T3GPA- z{-UpV8`ik^z>NRq;S022`vfDy`|Pi=-_wk0JSK89h+sUL-aanc7lg?BPa3j~rKn>z zL@5{3xVn9NrKMcxeJac@ZB?fj@U_4Kv(VJ-AW->>p3U{2BrdP^;qql8B@3&Bhpw~y zcpV&XWA`jY*cha>nASI$MAy3%mW`+DxYb5hOGDN4qI_$u!3zc*V8Ksnq~qB$g#<0X!z}k)FY|Nh3`q)(31lobX-N-{v_g$8 z%-AD?bVzq%*p~S2o<>G(l1vc(rlcm$(7_#J*yu8!jp|8OWHb!8QOP;n(1&7*sW zjRlG8B3hE+8+6}i51nE?1}-4o{|{L;`3@EdVes+}SGv zDs6wI20s65HHcyB*%8_`kFBPW4J$KsOQ0b$p1u)WzPM@WJk)8s$PXTUok-ny?kBih zeEA~(Q*AHq!GN{hk?n_G$hdr*ycvcMf+lQ&;@EfqvUkoIu|^L#-%@KQ-LL;s z2T?lMHW4VwIWDq9-lR~<9?CthNyfQf4g|saDJQB@fg7D$zTh7G!pXOifTKW z1FmEK9k$uJA$;h3z{MZQP-p?A!>Y{{H8V4_F`c!gI+C8v*y{%#UiEF~M~U_vg+xoy zY&RGaMQh;ahO{rY2tyx$2E)6BWS^KzstFxpBt-#}005pUCN>xbs7AS9kEQZuXO-Qo zb^kblIvu-qe&@u5Z&*Kopfa(A|7mD%Vmjd7#EZwKvf`9mvIj5z0^Z_k`om~6hvGeYww_#Z60TlFb7gx$^JoFjb z7^n%C3&LEh16#bn_W`Se6PLEYKn(z2K%l=%JS;?O7!I-$Bp7b7_<Nx%t+9V;%=7C!Yi^76T7SdlKaY9shO#ru7=ruZvr{({qhq zVNbiRkw(bA!d&!BJPtEj5Ss@s71e8&YN0awNK*)o4^!AOLw#N9h+tHqZmcyD$iOM4 zJ_)2`L>Q}|rOY-v!C#=CCBo8=v6A+{pQ_%2qjXi{f z@%VzH>Vj;LEzo#lkt?LsU3GiLB~EUHetvQeSY*>6-0BND`FZ~Hp$Z^OAp5Bd++)SYutx8R0Id6hp`0U z=N7-kWWSzGGxQ$T@6#;ywPs4(#^!MVn+f2KiRrOyr5!!Ara9iyf!x|@ zV`o-j;8MmnNLRso8qTBt+z{=u46n=en+Jj*7Jw7Y(WDo(Iz{a4}S;N zUeSnK;(Z=~j^=s=4-+g+pBQ-Q@#MKrKqQ_F2rB15A~-}{j_5hzhuR(lDOGz?tBUil z23mLPD3@z*L&C%(^2GI__G@gOk=wxJBBGJPR^oX()cBWb|@1_-m^sWb?+@DJIK`eye{fmKY=j{rYDf1gVf^3Gq+a&1Qfh*KvUc z#9hsqh#6s!x+qjO{*OTwrY|0-Z#cB&6KdS}_^w{_Ij^i891EI-BNp)pVM{;s%OwH# z^p~*|op)eZuJ_duLE-i;YzHChLfsQu@I!ros~>SCe1`QgH$K64Hs*Q#pB~m6)<2ib zn6oV%!85f?fYAori?ofq>#a7?CA;0QA_&5nOYm$$Y|%D};$r_T-L&`ncHwJ;Y!j}L zJ`sI!Ux?i3O`f>9S_~2egg1H|wq^lQ)+pw!!$DFlWq3o#hK@iD*>RJnx7gu7WGqqn zI9m7t&-M|c)9_J2PR$$n>&v5__qlrQYw?Ni<~d-iEpAo?p5G=IdA^g;CNWX-z5~* zGNcgt-}JEn#Ziv>a$}bULyj7q(?4w*3_L${O3iK%73 zKQ8ZNzXJBA-QN5D@O#{H)FldW8NQSZoUU-i*elmF?~{(qDJDEc&R!{DWGEbt+42tiAQCGQ zrFgyVca~=4pQ(;*u2hUxzlS;h{0aHvvNkf+5gZ$^^-f!|#CTS*H?e>gRVy_3^8Wa< zbNigYZB?n|@+hbf;ei@wU0OE&q?^?vL|fmSV!dDY4o-q*J)eME)D-~rBE5}s?R}8K zg27WKN5T+F?ts|3E5$#Zifg4Xv|HzHcpQcC>7M}_sqiD3N8YLmLU1TsL{|{0ylcP!xbC@T%}Za$4;T#J6B9k3vi>)L*o#LD(!IBy?vIjf zmv`AzxMB=^O*)yyKCqNOwTDMgxKf$guJt*#wBg`!_53rg#h#qI^FZsja4H&|7~f;|$RQt0uw$S42}-8%R@ipwabQY6I-!%a zrIaV4bUw$e_r<-PSg-n@PBAG7N#)ee=>-h9>ksW;=ZX%huzVcNbX}{Y=WIg5|BI@D z+TJ)2sNHi=ldI=N! z<}bP~g#P!CYi+l3Jf#{dThJ(3KTB|tg2fI|VAP4xlNW=d zYFGL`l6qz7p0x+m`t5Tjxh5kD-yoqIc+>acY3b^j4e)ZMtdZyFC7U&-a_K_`;^Ui& zk3GrAJ%Cs~A}`J#*~FfFyXNAMv()rdoG?D;pTf*kd3@@cYugXDdLluJ-`lWo4FFZq zZ*fcb!V#*#h$Xv8(8c1e@NcEPt}#fH2@Q7#eY|uhd%*0NM$x;U8}QkC<9wM4JEx2d zrWC3BNM9VTSYGXAW$Um-&!fp1-DJvry4QFoQ@DARwTT84OJ>nVyU~SEpCXn4Sb8}t z$IF|haqn4=2;S1o4t4jNQgzp?DXs*Eyn_(HGyJ=r0B#E$*Ouzi+^jxH6*slt_YsKr zt6HWrXup1LgO)o_2+zD8#q9il+Eq}(i#JFKMIEA^(ZWp(ixYihs`jdFZR_l@KM)sr zN2|zNPZUr=>&9bqPsMj`mGetn*Y(zAmxik_d3a*2?%c^etF$q=*^sU|PkVdXia;U3hvp zKTAn~q8d?U=sqgP%gcxi20)m!d1RLz$c8R0=d_} z!}8F%#emPtmi_1x;jl|S@=8*xR?({4g1KtR!Pc#cbjMOr~=U&aVK`Nq)u_} zb-{*y*IaF-p8jh#iH#JZvz@6>TKfY!mt?m#YLs{!L~>O;r6oRrOsA~?qsX0|MnXAr zY7?V+F|d8TpvcUP&0%*fwT7lnN>h3RYO7^}q{Tvr=C2)2=}{qV(ssD)utt%e`Evp@ zFsluRrBXSJz;D$g9>zK(kiQ_fyr4NKoFPHqkSVx>*Bj_E)W-#rAq{ zCaK=H32YWFpL*gBQ3vD15GKJV)7&-Nc(LY*6&{f&2fNC`Y&hJ%6-<)xw~ zgu(~3(gd>W*8;P>5eW$5EULdXS|b-&I0QpP(bAy7q5`KHH%@#dKQDL@!J-c68lvF) zE{&rQe-%)-$V;%nnKwpWW44nU^M%5nuC1K(lc|k{u#%FLdc&NYbD!;(2)GF5jJ^d^ zxvsMnXGnNJMC-F_vvpX_CtO%kOsHrM0vsm%7YUQat#--AjY%j95I}}n06g%PjJd$j z&kcMqSg$P_=bU((w4r^?e?GWn&k4((r{sL!`W8{C?9!cknLckc)8;in#il)0} z8=^PL5m(?*N(W@K_!QkIAlhf7a)9*e`vl-!rY()6D7))C4eI~IFNCO>myBq39MHgh zKSGv1=J#fJ@}n(1WNo6`DPgr5*Qgryz@AlwB(mfF#O+T2-4ckj?_OFH!y>*0RJQ30 z(8ywt3%;+Bo?`^j-L%xeBEMQ<1coWVT9bUUTJ*L2k=XV2=bgb(PGA$A%1TycgEX@<@JlkbAtfGtJr7Y>CCnGx_=zp1v1G;EnE7A zDF?5T^!K^f>$BR!Up=h=fcrVadYixVmYO#W1;v+wQJ09v?l5K{W3i)8teg6xlAwHL zoxXV@BPlSQs698#v;-pxQ%llgNv@t{$i~Bh&)vbzsi6h{nrg>tP*-lX(PM7nvl<#n zzLckg1QL5*za#y)wB>bRA@U*m$X*{F27<)}mHtv%Wfo9e!tv{d>}YpuDmP<7L~*0r z9_}#c>j}&2gO=>N%eqCqNh6aM5S}6!y3ILsi_`Z_4nPHSesmyE#4$LOHTe-G3<5Oby7CTQpz^1p0Kn7;~KH;J`=2M9{R$QHFB^$>^m_C`n+#_ zaL2d7Ao`ou@Ccg)Hbl6h*KN~y69%G7Z)`)}9JD7>FbV;R4k7l@gHZ_ir#m!1|LS9? zLuHy1u)F<&xb#F(1byZydWIVV-d7)NMB3xRE=#ZX)ZC~6u&}($0FO(_WpQ9gYg~S} zR!Fx89;WD#HhPh7Aj)gge>^qmKmQ|V!0|onLU9DJMZ7`u=2-D+IMvZd&;AD#`tQ+? z|6i>Cu(SK-^uJsK^gq%6@Nls6{8#tqN_|=$LKb z%Kj8sYy)ckO2mGf&~(wFk@}8vZj$;t=(o4|jHkW{BDp9i1h`xxa}4Wq$!0$$;+N~o zdEOF4050Bbi0(JfsD!COX1ioxUDdpGmHOgmp()i+!9WKCC_+!qQqtUir=`86Rlc3c z(Q;yhNLw!+<0W3P+J%+3^;_oG4=Q}KG;+}?qvKZl!t1s=>0KRpRBg+gJi|l})XiY@ z|Hcs^!qAjS*OczCqE4)dTUw0SAt!58b3wo&ed(N7@uDqlvZpUE-aDKes{w?&Y|!$g9g^p^jWU1@7X69P{&o zrbEZ}uMSlyfMB=^ZHOkWLWP4n*Vj|+8<;9hdGqvnS>0C#yWd{0mB&P_@9W;4Cr71a zHI?S$WE9!+KV3=a#SS5=ksQGkX9hPNy=#BJRU_K#NFUrCvwx}rE&|O^ERaYAUi8t0 zZ*2R2QWc{MkpHAU#G#j2Z9arg)A$mbBx(Gm3Mhj26*rA3yy)|FiCeel;ql91ZLZ0; zm`voaNS^d#d#+dQu`G_vPio}p6GPi$Tm*^|tW?$1V|#NUMWauptp^j&d`=HyghYgw za1?`0Oy$u^{EXk*6{xfpCR#DLIHFsb{`> z+vj)9ja^2WP|aHwZ0)k*y(06v*=;9d1a8THM1=LAH4lFjDuOX^G7?F*h*uDlY-amh zN_*i=yV}?usDHaCBlP}u>G%Fiz5qL#O7&B2+Qp^VJI+AiJY1)NxLV?1snDRW!L}b6 zX8^$DjbNQ5bN>`7auOwNXTVW?5rL9(dE~IWW-^eoAn=E@oy7|upJ5dLnuF)a#A96g zT_Kz^DDftnR8r*A<6-&wA?jCrvgcS8>&iMF{;zMHbC$k&!>1})=qQo%a^i=k>$$y) zd+_8aSs|&N4*fu~tmLb~1WX7NQ+&0n&8>96($IiF*5mg;zO?%=r@JOBaPtEjYBV8- zi_FmGhWN!oSyES&POpz2^I$I5z)yz4l|1mKU_5*5d@m}dT5?vUTgdV5U~n_l8Aym} zaGr+O3OFh1$b`@f*9a3x(ek@_qVYcE_R{xL&3j)0W_-1SpWO!#tRuNmbOsi!1DXng zdUefS$uGCL^`)|tKMQwXH(HwpI^3PF&!iYPf7YI8wVg+>Zm2Yr29ZMG(qLYC8^Hx6 zTIhNhjW#w$G}(Qo&GQTOk<-VzR-dYByib>6n}ecMMJqdYKOI{Ut=yj&5%#p_M)i_! zvYS@HEWx1X0n46V36yfrj41HI-=|eoHK&_0|E|;(+ZqLlH7>b(d_u%F-(qe(^f zykB3m+Y!PpJqBcObcj-a%r(7iD-xxo>ivWv-Pmw6G+KQk$|RJd3WTtYUR?0%cfEE# z?$ckretE+`WV1QO`2ldtLwHaPmLHqX32m9q#c+>9=j6i`OGUP=th8ZFS=Mj8g2RuQ ziR)>7Ek3T%zZ5rd7J>=bI4G>O51#+y+v!;%!0YXo^4iPOi(pDm0dQ4+~w8 zM5kLxn3|A~etymBlWV*la5q|JA2SqC3eHD2@Q?vX=hDtE{1LfuJ3j;skjbgQ#jxBr zvz}P^A4Ot1>|T?+cXk(FHQn7du~hzvUEbOG-G=q{Y)UpV?N00cj7aL)CEzthK%Z!L zK?Rt?B;SveCj0`p{$0U~&W018?Hjc7zAC^!PW{eApkMmiuE%+KxV=Z44d`xbzxr7C zt2uP3<*Sd$suSY(vd`|zRJA#T+wKP}X4CqFZ|grWO0r97IA)AD!)ieBIgDw7@!b1d z(Pm?56A~jILt0@WTud0z(F#HWygcJ79w{>XiUz4+%bJ<)ETbggmOpQ9iZR&b1Dm4Z zV8dYfKJxDtH?;ov5%0xG93z6p7td_O;jnJK$cLfO1wkYu$cpN4qcO_>gaS-f-V`|| zDgInOWhOPRS~SOZ9tZ+i5e8vneOP6p%*Slt%r{Tii8$Af=NQ-nquYA~AdABAm`nma z3oo#6lxm-d&zDcYkeaa7d#kjd@%Tcw(;^5QPNrghXlEAm&xl|Tw%jpc zG7MS_!|+jUVVLI-nWms7bUGkMZ<29I%iZU7`|j+%c2=k>d~hkb17V4wp9Fem-E(9I zy_XZ)3p02ySB~CQnBU^!H=Q8AX(dkIo-V!xfA2ztkctkXsyGA88kZ?D)`$AaAh%5)M0-#Y#}9jp)u;~V3~@lYj7~kDw`=q zo;A6vDB^ck(u19NG*NzpnuH*Lyg1ZCzy*+4jXZ?jj~Ym!8dxKt6r_M(&mMjU;Hyg! zY&3;~)V#5$Fx2sias%h+gfUjBiu$F1KS{$;1B-Dcr(^oN@{I#n1IfsKy1a9%+gOk2 zAVlH@Te(Q^jTVz*Ga!R*dv}TQbox$U(t|$Snr%w$i>li>Z#mRT9G-$)nN=+*Nffq4 zPGJ&M$2)51fGe6pF1^Z!QJ|2 zm0h#oZz#!%xMkFNDS?>e4e?Imn@ln!;KAsmt1U+3kC@eA&1&7JR5je2dI)%o@nM|^ z<(L+v;b@_)F6z{|&Rcd&$aSrKyL57*h~;?2bUZ32dHj8*@KB$E)<~~+(m5m4wW1_g zly;QxC0|Wq=33)g*h&-ynt0DqE6m)0L(E|Bt4U%*F{gcjGQ3f9v6&#uJe^*3n5Df< zE#MuYgHPIDafUtvV60OeuCXBk4XyLVcK_lr&+3H@W*BozIKs>lcPIOuRQYzTu5k%Qz7qyF-p z0y}g8l?pcGA?iIb17-?CXI7@S6&i{hA==Oz#uCwHWAbG&#b~4)%1Y&Vnhn zSp)Xs-_PvTl3xgW7ob*lpPP8Vljv~JV3(|k*~bVZO!1YXq;liSjZO^di5WU=G<0{z z4mI5P4+-Vls*A&5q08^Tbkp&(VM@|wUP@&0als^`de|4WlUP8~2gxS@crdXSi#)P& z&okrfndgp>&KAL(J1yojO(uJDr#z;QxeEGAeX=qpSdz95k(ajkWr}tVgapn3keZ`g ztYF->1XZ`kBiAJbsFPQVxe$w+gRj<=_`FVb3;Ya4L0>eO{74IXf+m@&d@-5uMrGp7 zWQIhqMV&4d8Jj!+d+&SpU9?+W=L0sZMP^`O{n6H+Hy%C6b%*dW^sl|bEXs}o{P)=5 z=(s3xw-TN21Vc9~T?2d3^-?UXG2J9=5xJ+{kpKTglZ4AL1eP<8y8 ziK3=kVDf*9;vWo)93y@`__*u-n<)5i#s8Le=Ks(3|NcMXe;zh&j(_?8U;h7>|NrIx zfBFAk{{NT%|KnZ2dQfyYfwHg2GGG%s|GIIU~v~!t8$kwAREgqgoj1QlP86S zrbx4`@V2h3kj{9YU1wc;pLBgS_tTZWpH31X^kIEBm6d;XpH8lszVBFis%g4w`>LM& zS{L>{MQi``n)`e?Pu%HvgVy8bo&5X4U|iNVa%^PAe_PRTJB(`p!}9zEBUjsZ#{Z=- z*KdQi`zF`#HEKh!uxl&Vsn_lB?7qkGQG@KI;cd!VIlJ{eC3gaSYU=%UbmQ5o z;b|$(&+n+I=dm~7!^H*e?DGOvFUFh>U@B1dv`Qsrh#_#L9=kt#1(aXdZ zQjy1eX(cBB%~hQ~|80O_(@_2l_1@n~TH58-trZR$qIeP=YJL9i`z@VYihB{ue)|g| zk1Mt>)J$8fCPV@PpZ;9e8~(%lzZ$-Xj6m9c_v4I8OC)r@eA_&4h~w!#_LY~f_1dGg zwRgHXocoW`_r%dYnvZ{m z?GlsqG`&4__dEQa3(2*4sK2kJIhs32@OgAKmRCrqds(BDsSVQ!02m)B1w!%nlWj57 zVRJ-UE)Spfvu;1HmgPGIv;|Sgj&htlq-2VC-PgYK9pAzF@ErPs>1pqcRTZq-wiG|9 z{&vLXnJHs{*N6tH7b41ta|o-z%w8mCd&XP`q~G(l$psfGFg@@cp@mH(3n=?+bz{75 zJ@0NwpUA_C_=TiJJGE`zg`Jr`y1HY6qOXFN7(sbVsPJ5eFA$`Qr^O?i*b29w_WF>& z#MKzP(#i$5IGQO9h4H&y!^P+uO13_IN<{yu|5yZkLS+ZeY6( zV0V}=nn9V~i7qBU$B#p7VIdK?vVWaEp%i)ZHuSUccD`1w+CmECs~+1|%k{sP5Rlwq zet()T4Lq35w)cCqkG0q8I5_+xoldOZmkO_@xMD{#45gwkW}hqp)?wb6im7xe?<2|q zdZ(vf+M3;3nuil~gPufH_6Cbaj$-J$CMkNG#qD`b*+^IWz9%Ebah(QjldSQJgF3I{ za>Uv2DYIISm7*0}Ul;Fo1fEfg;vWAAfu)7; zSLfDb?#Cz^VB%a2)}IPac#3Bfn+`)_;t9b30kI#(vQGpdSRW`&KeN??^aOoXD)KH} za?~Xd1p(8Z`@Ob_q;|~`Lbz0lvqGDT+*5laZ%g|D*le|bClrq@6GV^Eim_OhnG?CT z?utoETdcga0|Qvv5$ZkwJM!Q{PKVtkC8I>{D|SC)Qr=((eRgWUCxJk}n0ee~6;`X( z2lQzmBf}}H+@tmeV5=+}t@Fo0$~5RDK@|&Nhv(K2PNHiT<8LYPk?}fxgs`IMT9EiP zsYhe5uygezrbXu*LNWUIM2eTX;=s{?)xyn>&kjmJmGduO-z`8Ei!-n)h{||Oef?~T zt-SVamhsNZYw_m>ISKGXga9$_co`9n;~$o#oLOu@?*<%XH}K88#dK_-Xf=ip{L#^I0Ygwk<3McxiI zSJ#*3oe7`2Hu;5V3F9$Jb>evAc2pH3Ba(E0m;{yl5h#r(wj%{mD@lGnqr`4iFw=O1 zphi;#Af+F5@3SMF0Hm2vZZhBWxP=ZH}ppd;A&jF#F)t2EHY~xm-*zmO8Aj~^Ax6YS!$fqUP5|Z zbKYr0HO~9%Qzu(BZ;QrHY~I%-i8&ZFCe&NzA&9QWAr^WkoKhEqXYXBPpCBj#UILCZ zSgG7QqE3@0D^nonPmZ%s{I$C>%eBbN*~M=&sqciUj8ue(c_9dNv#n*|bnec*2M#F; z!43`gO=%t#+omjE9x%z?1M;jCV%aFV?XSW&4Ge(4Qy$z3lQ*JN4|YdB_m@qD-pW2g z38LUhy0D30d5z5uB4@MLtYu5_R?tq#vV^Dr`?VlBXcMeU3%nfRDCt6DJ5 zFpbk*C~-lQ#AEvsITZs8`+L z77%lY$l|*a2;-wec_8O}hP>;9&iBjlWKw_T00qdI5h;Wo9-aZ?z%0k!AfsWCp95>j zDF}&~X#KLQ7EwXdfb-4DfodpPWm0x|$?s~#TiEI9al`9=9#I@hkn+xj=|$;u;8*L}io`uh?8< z|8wc{9zoEco!j?4`mv;*%@ubjCbLX&48b>3^K2O!cBc=g-1#o@K6!Y!rmVdKa+NYh zL%9~d^VGN?gjY1$x=|b065NtWuS+8G(v*>;V4p6O`*>RX+v%a=V`xqjes5DiiRI(^ zvd-Y$m*hWhWH`2^yNRxFLpbz%iedhL554{G&F{Ejm)5Vp_x)v-_NQfKGU}G#*X|1^ z7p;Ua!zE$D;LEEFdCD-u!F{hpk6=h=4~7E-Ta2GsYdA2qXO`OPPK$inc|oCmZ3^_V zR=$ytXHPeYBAm~J-WPQRu8$wO*ZAy<@V@JwudjZDsd+2t5Pm^w%m62TqnesUFG|3i zg*Zx5WGyT0Nx%g~Qi#P5J)nRf08~2B6^US|#!yJ*rcjOL!~VzpG#fN_@eA+4+Vr12 zw;ZxLiKtJlToM(ws5u}%GVb1UJz;sTo7ORuswO5T0E-3Uba}#HEC3wX_}vWW0@)(# zRUa;v35vZ8(TFMhasSY~cjIoJ<=;KBDI?od=sh@NGKFX6fR%|c7MWFavhyJ*Q`p;W zgPVNiq^byBi|FfuC{B+MO0)|tAbb{U&Jjx-Q2~exA`CzVTsD0*CIIH~9$03E*7|q% z<47o2sf>_bW^(ej$1;DQVwAbg>Kv_mWlzAk&jp;6cD+n``I4Xp`AW!d*Je{Cn%eh1N>Rw4CH8EM(E~d=5yM! zNVNx&ydYKo__LN^-GTdw+%tBpAr{nx5QzBgowIi;qaptmE9*W=C_9gRe7pt;0+;lM z!*aV*82}R*4w2N-`t|x-jhnflWJ}lZw^=)fcVJLk zUbcs46;LBUY7M)#y;?imU?qly$px120|5s)zB(+8L69r6eY^g3_6&Tz7>@9U9?|Q9 zU3_geExr5+ZYdp`II0{-W#(teFxOUpH#VluA5>eE=`Ex*E^>;&L+Lt%pnGztv?DM{ zes+IG4s-y0WD)9NSL+bj#f-;$FE>` z`#?>6W&ItsOmRj1dMGhM8&~0VgwG|Y2Scjf)1iO#A3_*ORSp$Bf(Xja3&; zKcCp_MDNL8&EIJo#;sLChvob2lc|(g#-4|4T8l8cK3#Yoh0G`H!Fq=@*N#%6Fw%a*w(>7)Fq+R*J@scwISNUjmNEbA4~uWJb+d|``# z5QhU51{sIR=itrj&NtAM&Yp%o{c?Kn8snszVskvB#XNnob|?kbZu;a|>bK-^3E;;0 z+sJVn7NjLD2rNgLN+jqPbl!SXb^T+%(S)$FbzW&!2gbhAk%Vw z5KrYe_LHvuGq6`H2n!YtrvMQ{Og1Jqpy62+MmEL2mkK@ssreAhbG8w4Pq*1`@EEn( z<&1KXb)6FL{dC?P0FP}(VmzmHQWeoBP(hebDzl_Nc>De>?4~AkWMMnO z0BTMO4B~}@nib-iC~I1KbJSda-V53;&e}}#zS8^e2@;#XpsDx^J&b%w~}P*zlLi8<{Zf~%_UcXwUHQ(t(O`Sx>Kt@ zPUH6?IZy#{d(TmqSH#5^1Zg{gk*f*id7`+(nBk;CuqSJ?VCJ{M92S)NFTIR#ZuV(F zCJ21dJhJ=(O3;tHVslZM$x7^o=N+4G_vb(rYA#m=--Anysp9u94VSxVPL^|)L${U8 zeOMW;cJ0T+112AjVm>DgfSW}Q2Q}tV=iml0JGXrRz2W318HhNT}!bb!gO-*;0nY`1u$s+bm*b*wB(59L?mfnrwV(-W(43pBbgox|-sKN9;%d%w6F?`xZoyTN?G^1%^RNP#rmJjm0C z+ITTW8Bro)^)0)?ZE&?(P7HrdK0S}6qX|1C8Bae4Y^|*t{6WpsH@oegzeynq4WmIF z#vT_V)5VG3hcltn`VsDRr=t?%9TuvD$QJnb_LfN6=v1zkg2(enUsQb@9%u^u5twT` zKP@;czW0lHd@%}DNmzoNg@BlU5F%J0LKweK-8|`t-)r2t z4PsJ&e1U<3XB<3fRSH(4)W_rU9@mIoNmYP8?WZ%oeXbfZ4fuP4{%eCvAvYT`kF;7B z78-0twAo(vjO>!#H!+=1omGe*hfhq%nWe`kEfMKgOXSo^g-;ck0qleHV@yN4iaf|q z#sG}$ufVmVXfKoJ^i&1WU#*7AOuua>^PgXeC2V{i=@QUopM(OjGtz;rcper%-7t+THe`{@zdv#C@lI}%6+zz!^gk%X|XMFJdiEiM$JJP<2ZsPYxn z#Lcjh%rqPPEQ2Okv%Fp0-uipI-g4hh3ZK2m>MonyebHP0GWG1ci^w$Ju+S^7Tg=Uo z=hc9@G7ab4o_-x4_q<*%p2X(Lyv_*>?qY=2n{z|MhahE@2!<_XfzGk*uIf#N<+_CD z+XW$g<>%{_CAU7pnL=C5Ej??Rr`VclMC>E;^;(J?-g;U7HI{3%``xcAobNaJ4KJ8? z60g@cyCZLZY!gVlJAMrD9b}5Ezs$D?O}X;CA-)@1a^VYUp+>3&UGB!d^|MmR0fAydLZT5fAD*vq`t#dHFlXB~P^u8andhb&osf-(I8NJc63(JeqW@{P`s#iGs%_1-QnbSG$}**r{enc ze%;wlv0PH)Q8s0ZR`=Z=I>SI6!TXA>>$_vfkkgZ#*9h!{0fFq}xSj*hA~I^rV{#+( zU)WgxJVw*#aKgTDHv6)zcsVRoUc%uHb42<`&fVO#TZ>vNHiUOzg&bO z5n|hRl@ZH|-q!98vih^HTtIvVAWzzFEg2`rtY~t<5GYpV4Ey(r=z0e{spp4O-agVuXx`m4u}bHpJ$MOix(#1>kR@{N`^(O zzq{>+aLFS&tNk5HqdTv0LYHVSB(j{>@ZbGjWr;-~t?watai^B-e5H-XLv2*+!+2)V zDmNjn68$r|db>O41pDLFK`&Rf-kxq9%8sKFSvlJzjqZ`7&)h%j5j@QQI3yG3`SXoU zwgiHkZTMru{O_p@gfXw%o)7ry@{(XB`e>1YK;^rq762%NmWG=$BX(lc?`QF#W7aAv zzMjPUbq0l#zxOYd5!F&X zt|TAKSS9+|==`5fFVj-5Hu!if58HMHYetik$A=4d@3FaS?g4+l7JM=Uo>$~ZZ>+T4 zX#A*&Q#R!I%#8DP)xnJr8QKeVCSGJ9WP?xK)jQZXB!=krUwqxLGX7AKbgJKU4ISC| z4Zzl`DmK!al`dZ!`DTvlFk<2w8PJDcH_i?=k#SaXI{37a&E``Z=TH(rWfSf%`xTa| zEK36BysZPm&_M(R3v4vt^D~gr<+VQz$TIcEM$mB9 zeiG%-!L9h`({9w@B|FG6;Nk&pr%j!g<9a*>qDGLa!F^_GA1?tHZRv5CgdYU$M0pft z0P$+1Js7QtiaqZ-YaN1gtxchz`9Y=n*D}HD0d}{z*m}#dXYQDQAa1aq<#!Axs0uUW zV(^Fe3|*}{tdgO**Z3GRJqpNzu>Pt6$}lyG#W%!%T8_~%dsUwK>FWFSr+K{Jj~l9=SFhw>!Y&lHeeTWDJ`ZH(5ynTBM3S*d@Qb9Rp>S2OuCuTrgPRc- zR{TAb(3R+i3Y7C_BqXr{RL5pH*dxaVj4V8*bh^WI zOVFA#&@*Rn*h5EgEWCi#p#%Jw!F5KKG+#(?$7wbws*9L;f3WP+&A7`zBLZjR0EB-xHWH(oEC4yHi1HpOoaNa)VZ&u(#5|Ln%gs!?Cj< zEdoq0Up?|jZ!duJTqt=;_JsShW2kR#YK}x>32^!yxEu*Ey5V3>%x)phu*$ z3c*D=Iu74$yEfk6STLF1!IHc-M-472)TVLPf`1>6M1mSzf6DVgnjAJzM9VCm>a%w8 z@G?fxr6xE3dg|v-V-{#1#i?vLVKMdz|M```<(;VSV+8V?AEKeo+NK(7L&O^O`Np_h z6Z0U;Gb9NN`%tFMwVpzi)z{C1diw0EL$*aYf^5Rl$#PObQOP(4vd-&51jVSW=*^@C z(I739XAGUE3GpUFOhbHjl-(PCYjax>4QJCh>h^d=MiaX(dBUcPCC&^ zF_feqvo-UWJ@yyF5AKK5k>`HsK1cOG#2eLFrKQJOawVr{sM^zmAOQVaKG8mU3xWD5 z6+`vEu5@rJEXb*EM__S8$E9b-JV2PSu$NRwtzG3Dp3h@Gp`mvkLZRP%FkD)b-W4Y` zOS@%s^Jb0xa@)=uyeXCZDwGaCAP~4A;}wWX*=q`Rspo}vDQ1Zu+e?H6>0+|*1ALU} zQiF{FA%U21p}yZ$v5d+YkWsy|c-QtUm3lcZDl~>)UmgOn@vl}?Zo?_0@foVkK7g5q z36c;WVCKw5e;is(15azdlUV?;9OQ_pf2#bg0EE-B5r9kau6(d&)wl6+;;CuM83EWsORLRu>l6_TI#uF@id)7JfynS@c;O379{~*=k&x z;cy*X+E^f*jB%~xtiOO)Qjd6A?(7Q~iyX^uuuOTo$e)$gln8N(gn%vrM+5=AqU4+O zbe`}q=t^stb?R!|C?O}G#RV`i^=0k5T~2B4E$ryU~0#y&d#)W0fqiE(iqBik7cPgX%Vsv@+34@ zxv_)nIUWSb`^UMVi-KtFZdG*pfWOK~78usEom@V)PYSzWS6 zwQhuUJBuJf7Tcik-9FRDF)Pm3GJPoSAH~F%0dKt4qfC^+@38PQh^|HZ7lnb3j_PtW2yftfF_T5 zZs*khEf49{Mb2wd@vAV%_0B&t=zI$9^y*U)n#v7?2O5^U*HVk+cl$TjtlaKZ6AfJ( z|Gw{M<&~aYleE!%AyCfXG5A+DIS3Ng?;LkE7KhZbaSKeTSXH%qdJWFRWu| zb=xiX3&u5~f*-+w=xkngVG50H_#U~`ye87-Kepa?6GnUF5rc2n5xi5`F9z^Vd=e5`QY&jo zw?bzOCsR0;i!U)6TOU-Z$cU+Xr=#1$%wnEz{iWJJ0HSOf^72t;>4jNxxO5 zy}0qjyh#|*Ar8*MR$q35r<;sM=se6FeSBal#n|A;ZtRCIBcvN&WA;7u7}dQa$H_<6 zTXxs#ngB3Ate6{o`}60x^`(Isio zk8|B*EYr>WoG;pw|3hTo*?p$oZ*pg*n|uaKT!xYoiOTGkDTX#;U)$Y2MA<`R=L_qYawSaKi9!e zd8#%CI}*TJIBed%=d~WeJ|v@j2OuK|lCcr%Izdc8M6+2zYdO+tJQhsmqMR}5-tXa% z!(*8`AbZ|7HsNqU|Iad?Us2%c&Ewkc6pn8``e?I~6i#Vtg;If+wuh{~1f@ju=wh>} z8Bq4#pBBL-0nYS-KPejb^Sa&18Zd0-(`W()GA#C#%_Ns#U)5QJ0=5i0BF1Gus^KH_ zpc>2?pixL8d3!JY_`-i3+@SL7S>LS3ld~zz5b6!n+|K^r1|KPBttMmWLM8N-~{*#S|ll{NyKRqEJ$xet8&p&kg!A%Xs`rOh({E4xV)nfg zdrvwn2fqx~Uw5&SewHa-JUnQ}e0Km&K(W8r{pfm^)=+WcwQWWn`*GMo(Pn-)R%fL- z!ibR05!!|;W4PTeY&SP>t6y}Q*ffXw;Cs_9aOBn^k}Ox+UGK43UgNF@q}9mcYhzG- zejZkt*wvv$WM!=5025-=8qLuwMrW%^82cp2^bezEf`VWfsQZ+ki|$%aES2YeRE5P{ z3mmP@N`$D%N>Pa|C}b^C^N^*Ov~4E8mFnKFLM?wbjA#rW=h~qw@;3@E$WW1#HvfoB z>~^I}oDqSW$Mc|uA9qvg5yG>SDmxC>OJ)Zph{R38OBgKE=LXHsL{em8Bz~a? zxpc2fTZKiP(az+&T2bwgLLLhQ8wlGl9E+R*dBgbTODyg%4XMh z2BxrpYVD=&uAr%z`-}Xjz$}0FKI64z(d^UjS8AmPt5E6BHi09NCa0n8CLa~UeJ|43 z%{VobxO1Nekf=KJ)?cRFCgUS;d3e+IimCmE56W0$!D|-R7j038Q)gx!Ju%IFO||ET z244NDO$#K=Fvi^2r8FlQCLhdT7q%=;0rLYE zgOzckPh;$2&o5FJ&+FQ-PYUtgI1LA#vT-7!@@m*&>dPv+WVAXY6gWTX#5W0qNrhFP zJp3TBH`HrHZOSwU&eMC{F|y`db=%+Z(@ir3Gr<(4u@+E?mjN(k6zIPDkJwT9*s+s7mDrs_+jbkposE9NiVM?d;qO%NnX0 zSm2bp-Y;}&;N-YcLBU7=%FL3%w`*t)2At$-z!qjf0g#D^~U!VUwJ2(>VrrF z<?YhbczuOYfga@%I4u^Z6BAGI761`6S8xy> zF~#H8_l{bw?h}Cw52jx3#bt7m_^N5V(y;>Ki1YNS8GdUm_U6Yac1u-ug|}0RReC)E z@b>rhwnL<*G;*+xO4TAE^V1KAdcRLaYbP9mE+38# za}&Lt7fjTaD=k<$C*Gd$3JzkMijc6#aRPKeW zmXjakEI-|so|J7CTW?Tg)kVaiePQQOSZrmBKr*6eLRShI>iEKtJvOj4u|0-UtR1;B zP8JF$_VqTf%dR-ZRs2Sg_Ilz6rgYPq0%v&XGL8xTy^zBiJ4DU1WByA zinbI2Dm$Ry#S#-j|E>cLUr87>RMMfd*j_jC&uNeg(-F0C=<3}P>C)Nn z@oM`iDm_c~gkZGpkGqWDer#n(?MW2e-SSpZ$rv8-Lgt1+C*e}RBd^D+ZeQB(fp&f` z9B77j9w+dRctk3CSkZP+!!o$8w;=G2=(wALv0qjxnP;}=qQB`|jjp9Eu@WBvI{z{` zos8U60djO96Yy2$b*Zql)(MQU(l?EytJN{^vb#F6>hb`C*Zh`X)e+IP*g;>OS*ooi zE+gvIJ>61<2%?10*L^Yjs3P`B5u=*cRa8#ogPY1P@!xFkKpOo7qovn4N;v_t%#SC= zXSkJo@0aCN!yyC-mP8NTOw|BGD?Dm0?MHo40VfMG`cgo|HFChhgM5fYIQBGs{R^Ci~Q0x zudW?Vs9#zxX{8h1$M*KVhV5DW!0}=I{v*d_5{^7qWIatP*&2>E4nBR_b{AVf=m2G^ zf4rsGQkfKb&an5pTQhGIS12lsr|R}gsQ~$(u3uk`w6;q9W|T)bP8`Ei>kQQe6DMkv z9AAmE{81oa-MprV8|Xzkgl3fv1!W(tW4wA_HQW__QpOJ$$!Uv0g&xVt%!nfF=!YIk zvxl=Er&-M(;l|r3e60Mw7bcwit1>McFv0nn{)xJcg-0UPT0@D)DBm)0i6jO>1t4%B8q^@t`1*f_i~r6pf9k5jNP&*9B9+oAHI4yme>fRWnxp(-Q{F z*Cs0kUXqwAqu6dk?;HUtdXt$mDV!AUmX_a+iZ>$}8Odw86sqS?5nnI>eV4nK`BW{H zs&OlS@6j2M0k2i*&456wnRVD;f@H8t{BY zA%h<5{QM>ul7Mtof0zq5Fs!us!*Z^}>JQJy#__E-Uw=p@dQm+cB)q!vjS)ybWvl5o zCv(A`;$Wlv&(4^w87G*DZ>t3f(?YZ$RDKK^X+%V5)uW3Zw`azSY{7(jdTu0<#y;-b zsgXSRU-PUWB`Z7dshk;@>123^c{*Y8tce8pw$`KbZ;RM2?)!<`W%;X>+Z1#k!)$u2P z(-E@dd-O9AgqJb5XAgu7Rq@0|1d?Dx7JNbpVlZ)0*^w$!Zx>@+&87=iBBkOe7X`x= zwC9F9FHU#aV0QPCAL{ubl3DMEta`rfgmJ5cD4SPM)3EG?2Em9zRs-}933BZ4jUf^* zTtd{giOFq9pJaQwHj()N4KZw5VXI-&IFh{g4OR>NPDG~t)82><^B06&;@}5xyKaZK%zB?GY0@Z|^ShnLGZ8k;GpqI0Hq4d(S1qAw+t3E=1t*r*cj#+f%aM4kSzXv_bTr4 z-a&4+c?S*GpA#D^&2C^sks=;h5vR3?GUvx)!`-IafRRPMI?DOI#OoeXtpetsh+b;0 zo%(gsQ*7E8)o+Xd@fvUw*NA=Y<4@M&j3uFZ82kr~!zu%RPJ3hpqKd6-1fkK5mwB&@ zhKn(zwYztsZ)t8kiVU8rMJy6guo&({lU6PIfk}weLfr5`R5H=WHhQ6x?(pNoIOB)n zITWF#4{t~%{XQsT96SBS7%4`tv^l{mm4_t;&Gn(WkATDWcK+cE6HC!QOm`s=T&a*u zj>6A$EK!Up#vVXpP?2QpLz{vB_s$@^i<}>i{r&{Q)*nh5*X5VJiY=U>=&g4wFRid# z;OH#h1IzK|_KWUkMhCqQoc9>msPLR5Tcut)$mmS+V#09QgkiC!lF=I^yeFjg>+12k z?VYU8F(>bvZaL5AI*lC#)b%t9G(_pxIOfmUuM0$ZTYHWeD6+Qs=fX8?jdXs#3G}ExDStfINX#n#RDDfN=0-hu*houN=2|*Jw<6)BdMB{FQWfwM8_s$nAD=HZvnH zn9tiVFTIBmL>J{Fi+_{tA6%{ zTg*ncB?OkqKdEn)JWTFeeIb;6jq8@@s?gh4{xPF}eUkyhQ+dB`q~uce4fS$v z=N?tZvYqYqh3jdAgUEOtfnd#N)+IBYSOf3xA)|eS0=+fB>Z!jsT+oMzruQro#*?;r zSd&nY5G^XGByuva%30-Ly)pSCmqtUd6^@SVUr>_J|fxU%`hfRsZmo?))TRvdEP z#;LWsDgQ1Nn_I)1AlMjg2otMbpofskW_QF6$+&tM;zcyxJf-V-PwCwR#Y@=W=&~l7>0X9qh4l_wl6N%6z)s$0EbU%glgcse0KNkpdja z7(^rGX~Tg`V{yH;6Qys>eAQC9$T-LtS`K2D*jcnFyp6YswHVJJzdf7aZyPoja$QH? zZy#Gc=8Du4;p!eB7Bg}KFg`k;zj)TBlihfkfPjUz0SQ(ua|Hs@89X58yT3b0PxE(< zu-!+Zz5V%v3)Ub{ju`t-QR>Yko-#8D6gwnmQ0y?-xI$&aN!fw?laX{N9`q2}kZ;1H zmq3>fZra7v7#52GKd_?=aH}yr?MjXEaIMgGQ z3gexs3W-sf1Kf{`1U!R)OCl{q)B}*L!m>1JCPerB#2QIw3^kUX|35fY|HA*Q?Mxhv zUH=bTK>x=7;bP|IW0H)z|d;2)NYoxpe8B=3%pBeDE|$ z7|-C2QrH>f6f@z2qX<5LY*E#X!cs zTELntZBh6!3MC5HX*BMB)+q3xH=EP@sN*Qm>~Wa$Cmv!jipeXUP{60w?_l_2=C!VM z4(;o{thD$Cgy&QcB$?yOd`5ggG#&YH+HX&AB>R``%{8yXD>{RCfNaZy9_}K57Bbv~kAz;dBK(Jb__3Nq9ygXBT4rCKZUM6L zcP7*T=girD#1vn*&>^m|zuetX=V5N$j+<@U_sar-L+A=vf^AVQ0j#5cQ5-Fv$yO^r z))nLhyFv;tetvf60T%!#`+-)(V{KiT2dsl$T(C%L!yIiW$PU@K>%Nz6`an!PW6UeU zOH8*s>98c#F#9-?mHo+xI$OX!^APnGW)JLrwRR&Ak4~ZNB!uq~$+7R=rWZ*e|~m zX8rN)RUeq7yHqTIV}8h%!tvi_)q;lB5CaPfT)AeD8RqQ12J}DqZ=Emm2XCaq=U>r~oL`&f#cRS4x5s|WP0q|?g zsOuTP4jAmgTu3f<-M*(^4|>pwQ>X>nk)b-H0Qfy!Vr(t`{iY^kQlry!lh;|kQ^yWU zIwO6WmxZ`{EUaz1a>9IQn4)0iTDS^W6-Jsc;z0M+1~=V_03onH;3>kk3c}($x?@Kr zujgEuNm>(2jshQoaIrdTYBb?U5bqWbeY}ps-xe0Lsr0L~*T-ddJvK~c1~kRm)sG*V z>fbR&oLI9W{>(xy%4&m#dlvE!t@@M$8(F5>>`^0-8G4C4Z#jSkSPH&7ORgoHESjdA z`bDd5Q?izX6`C-i4dleg^m7ct^oX$_H7+STUiGIi{qDV76oHZ$O^!gn-H=xcgGK+- zyST}b0qukQEUEk)K7tQAG=&}gpZm93rU+N7*IqREga+pSy%)5)Fl0iF|9T`77U_ELb2&Aom1>}nmi_iu2Hs6 zvGpf}c|&D?0qRB!=^{HI8s3*ur3Ccb0M^_z@9LKOD0}V?2xP1G8-gIixF1}*X(~OG zAVUDH$^mjdj5U|%APO-M9Q>|!e3YIsC~L_b2$M-_mXjjT4eJ(MVW0|}4Q6FzJs zA&33mmDd4!#MlT_V1c<1q?Xthac7p?*LWPn0ucw|c|djG7JPyCL@{_Jdf37Ec3($^aC+L%Ywxv}HS`)} z*jEHVCQRib{NrfQZktgqPy>||3=s%V&f?mg7Y2`7O*xBtIz_6zGFm^5eL`%O3X!0fQ5@w zg^7t*`p@rc0-@y%!y+xygp0m}a{Tvg`uZ`$&L}CM3sj{S}oqqMWMDiid-T%IF%ev^YY@{60hAPB-#~$htlDr_hICncujz0C1Hel z-Sa_gLa(&~7ovdB@KR|SWgK)a?~L)cS0Z}6C` zJ}})Ne~!D|?twC>1xE_$$yh0F{8w!Jnmx-#0x?K)!3Qh?4BeP4_j4545rNhd4Bc=i z371AZFBm`y`w|hX<_IhJR0OG|xzFaa%B&q$1%1aupZHV*!5d#}_J!JnrgE?-5(fha z{dEvP41#Fj90J)up#p*O=}W?L(RTEU+J-fKPk;;j6vJN2U|mOtAtPYT-OIa)IUpV1 zHI2-yDxBJK9qkDN^Ja8rM}pY|)fD^#TPUeDOu5975b~K@qH^S?d)R$_?AXJbrtg`M zAqKz$QTn#b&DZsj*p6CE1kn5EJsPu%koQ^#VIhuse8*+FQiP?Ns38&*3_WcF|Ez^1 ziVR3u*9`JSCMGF7K-_s>4a9~W*aGK&{~LIQ6YPx(H2@S;>Mi&J)dNlCwBj5quR5Tt zOaTV6BJ2U6wt}70|8{&P66cFmptI7NugF|m26^bY1K7j{@h)_*H`q$k=OIR7g1rZ9 zEhsK`&vXFg%LWd;ZkMjbAw z6Q*8tOk1iZ`uW?i+YTU3{wA~J_igJAY>E8!84G4`+u6zhB6{vOFnF(c{OAVi7JqkS zMQIzPHID&M60V9K-oA;x0!1G)BxbfIqye;L5P|8!H{u{=9W=D8tHYovSfjBPLFeY$ z1x^`pNT~wkdzuQV#lqyvU$z1Om`LF0_H~Z3J~&AxP%BKzH$prVM0>_dMwm(d&F}uMZixm4407SRO2+SEsXF-ExLq|9JY#3 zTfn06DcD33(u|wEjlgI{W5x-vtM4in>)0o%(=Jp|-v43>X_Y-`=^>q_g07;heD8T* zKsb{vtS+Nc;)r)89F0~?esuk@36zrFeC(JF$ibG$E?opQevH=zuG*cVv}aCoQ&ah6 zuq6sL!M4;N3LG^*3X2?VJp);8J5tPS0OU^Ju~jyge_IBe>2GP^<}^zB+b)gslOK9w zCjsj8^qcL0Tk5cIoVFym+rQS!C?hn-E{{s8DF;D&rYslEaE*Ch;>B=(rpKQ2M4 z4YIB`5CF?MZ@}hHHK{-{Jp)WY)zyfLT|4JEP1T7f9C_8tFrlABaWOk-sRq9zgpGz3 zu{bHBr&8#AOL#Ks390(IS4^pKScP`c(}1yi9>3iAmU|zbmTRLNCJ-_j43|1maDp0! zEPFOsNY5)FFkJ3VmZ*AhdqE^H8pVh zXy5)B&@$@7S&J?S%b)^c3=2bEIri2*8JbUS!WYA@4+I{j?ql#a7QurmEUYZk1YNczUTQnI-1nElnzw?b%oF6w1Rt`Rztrg10A}X zSS2xWq>E^d@JSjuYO?wolQbbF+DIb{sAMpDz=qk$n;@DT)(_ zEkeM}d*Jfd&7lVp_G}f-pfG!HbLK@`wZ8BGpnTN?Kd=*(dYEBWxI~IGLQ4xF z*Ld}$0vl25H`qNeE93RLr*#!o={$T?pj;0MqjoV9xfw-UaM%Jw9hT;@{dHzn^p5ppKDJ$`T?V zWQL5ZQl=AYrB8)drU!*FyCmk@;H~ntkwpXpul2}#7ebHqZ8m#~VcG5z%d&RWHFH|G zSn1u<6tQP#>Bg1lZX5kSp*4m3+v27eO`oEeTk7k?dDUpMwpF3h&@eQsNv8%xacWA8 z;w+S7iL2ql<)$E4Y>|4Fdqy!12Y4ucuo?yyW}BTVQibo=*-$NAQqrKfn|=cF>fNxO zAJkmD4_E;mTG_g+B&hX6-;b#id&7jwi=@YHYLn6sHSE}Qf3K24lV}F4ZuvRpdmyW3 zq`98Bo%1TXktpyam3;HhUygwKJZIn6RhqeB_!?(8kiE74`=tvJnuM&ffr8l%n`M_2 z5x3gj6o*rpJ-kYIq2Jxp{1=`6*MnZmUp|Votkq7F z2;|=@zAS8vrT?dA?cebqTl4=59bo^)|6<`{{a60O!N&5R`Tze__z!yK|HFUIGXB=* ze#IRNuzed7$bqv%F{c*&oesj1ZnR02R?ev_h|)6xMRAiuK?8wND(EsD19%HU!W6PY zVZ!q`%J`~JpFQA}zRf9ROs9#7bCizhom{Lz8@<6uN8oGWcPIUetmjns~S3x~j0GYkO`{?Oe5C zC3p&@wElTC81jaav=lfFpZqO}Ku3x^c zQ`)IvYTP%L)roaV@SaZOviqLU=WTOTH=u9WGo78K&%@6l(5^oLRm-mP2(rr^sM*b8 z%sbycCCodv{7u;~<9}fiD+xb-958oYF~ebi{*J>7lw?FEGSqUAY(`+f!s5%Rt#z>| zo3*pgS}eu=PG@OVH~X_HzqFNC!S9(Kq19`4x{gI)+040fczTDIuKILW=w&ud2#*)o za?qxv*BjR=ITRC7=J`B9ACbU#^>Qr{-^(}mL+!V`(q~MwrQ$c66L!a5&E0#CbZ%d} zATcQm&+9ZAUV=Y9i=4?N9^*eT2U{g|mGTS^#veDQ*#dk+G(Vq_%gZ;VY)8F{QH#Hd zVc@i&)o^svGqhJSa9VkIL#d?U3Hl&$>Gx-c{e9&AxX2;o1%8>?LutOPZns;G%n)geu*LO1-^BKKdsUJtkaul+3y4fAL5Xl*eMW$SUmYd$FZi7U1(-!2yJGJ zwfY{b+IB`Nyb0-|-}!X2-**@@f9>&jP9^tG&`*j`R@~>*76?7~LjYRnX>v=3c8L(=#Qg)xVRJJsM)>)k- z+PB1(O~@x%3^sp%x&N7AuGc9vZ1mwW!W}IKKL**Lfudm9{$@q!V|rUGz}(Ibk-)w% zbpirOCwNg#>}e__FZmGt%xZ6X7mlK{@q(3VHZ z^#P&kph9O+Qfcryr+*^&)s1aoZkuSW?{jZ=?-+G`Y}=v&j?8i_W8v3W zb=0MpDAKt#pVRp3LbpKVg^V3;d1&xFahgbE&u2AM2}L^qLO94ppak8Di5wBKsH%_9 z(}o&469=guFJn?mNSqdhM#1Kh-b@y&!1HVyYSvA}7NTBCk5(l<{en;yNcg;T@y;jM zwLi~HZyKAR-UbH1f?yN<9Fdcx!33$-$1&q0o?e^7n;UNHN&(JyrG;olcI@6JB|0P^ zh?WPno2-Ar41h(BcoIfA6(MDY32qoUngA`XOfm%}pu_h*W96ay#~XTSV#i8pZa%spdjP>;V)J2?boOj8~CS@C%9B zq7;&=!U>ax4)6d2*NhZ7yCYqRj=|(s{BPVQb}d8GYm?{$rI4F2L>;Dw>${5+V=A$W z{+wIVNE1UJ(lj^sc1oZq`Sqmp7+-z(C=NkqJqr{1m5+gQzJAs#dw z_+Y;Zd^BRR=s(-5QjmqZ%&s!Y@pT1BBxEMm+hgvg=9Mw^C5AHz)+o(2f3Vh4td_ZClU z`=rT(PH(EM zGVRRq58ISv%@v14O-|j6stUX;C)p6?%HpC4GUSCBNScA%_pDxw?=g@<<$p%ceAp${=$^yyc)d)IxH5}qWRPB@JK7pDrlR)^+@mqGCLnxKMTg{#8 zrHa&Nm*v!Y#3d3{qTJA`!OD0L4~20gcN|eFJ}?*Xoajx%<;JH1OD-ePfz8-+?_4XDyP(siJUcD4Y;9>WrelE}|hS0dOF2 zFa7?qNQVOvtw)IXflH|Bmuilcs$9rJfayZ0s`kFSETE|4&0(v7$>~#$eu8q)9Zc4lTJ*s23iS#N*IGmUbf5=M8e58Y(~B0q72fo z3KW(O5-Ug@kk-bf1|}yd?x7vZc}pklnKD|#IPoAQg787#g7EQ@e7EeWIsH6%213woW%o~&SET5};y|aBT*R=WbuE`1Ql*VLZ2Mfs4F_$JFNHC1iByQw_ z6B$MzX<`jgPM=^_1B-r-gN?rR_V$x1UOr2@ zujL$MNJ)ur&q80<{Z8IC`}5R1u&OlGV1{g{HGsho;I&~*`aPTXJo!N5UU)a zrG$2IfeBP^?h(}?MNE|_0PKs2H8MX7p4c~+K6f$ZSDy0B=8;xR-i_U_(_ldl zZ-_*Z^EmyOS@0l(EVolT#VF}huNE>V=^_k&2JojPlcw=#0b;Gc}qF#s?NHzYT-7P4{? zI}Q%8il2A&wDiyNWCA6Hw^x{=WoS(|Qr?68Eo7+R_uOt+65He)H#cjsP;Jss6+Lc< zR3rasVBPrqK00C5RUTYHtY72rWAk->(J#a47}<>?;0Ztuv~o~z%Sc)J8nuP82%LyocL=K%w z9Q~VT*${E$OClKBAPrRJ%4aT>KxN-9xdVoBa6hHP9f1) zLtplr0#tf*7r#R#_!Q&$*66WK_j$ur5vAbGm~IVCjz+r&5{nil2ltUc{512`r75X~ z$wRyl3j|KCW6yt$^XIbo=Kyj{z2qM^qn6{BekYckc^_exA=?}AUH;GaMu#gBEIjxU zqfXNvAh=t0xaMg)o|$+?Q9B=}Ksj^m@|@y2T#zxXtO+V*_O;O|(0ThB;a8T6P>o`~ zA2rA2vqRb7|<|1+JY2hi zB!SBKQ6CQF-MLh`46ZOziv_DH@3pT#kBMS1m{ev_f`6TJDa+UGI(>e3``m&8Yf*4R zh{OfEM^L?2ItDh_zohC^zRHF?+g=Qbc{}(#y{DLiy;A?}+ zimxM?fsy9(V|e{hIj9o)i;rD3bBBOfHcj>1hi`Kc?l76el)eUwY&u+Xz#6F9DdfCw z7Q9_czm;nd0OMpjvqTYo;RCHVg{7VzJMFCngcijR#mcmbeGdtULGG zH%h6vX~d&Oza8rAjrzO{Alf_3Kti>jq9+JSR>=;K9a2GOfo683)S@!U1^B+q8TQ`| zQTe}}JV-tmaV6Npr4mGwpA*NUQM0ek@ws;y9AkcC4>d__k<_14W z@8}P>Dqo)-A(F~i1V00uS9&^PFZM?@e>eP5oj8H`$^%2g4)l$3>~lx>4L$mojbK0v zpQL0@0|tKSeHqR^)lp_Zc9@)g0O=QEGqjilxx+?X-(hWD3wjIrT2kQVYfMbQL)PZU zFYJei;#%shz?!5cB=YdkktA?vkgcvJ_M({$MeU6;ek>Yu8x&o+7FL87hD+=il;P(r z!`%&74@v`d7MfH9VC#boaZdT^;85nP%DzOUoKwVTE00hFM@*fLv5WiMq)E4EFIW<8Sqf4#)NmtLqh}e4iStDrtlLl!*nlawcp(6DwC5OJNJT?rMvQuZ_?V@ za*Ap?c$%+n|8Vlq3b@<$aKEgt6qkU+ppe4(8cE6!g2RfKed7TOqk{t4Y7#m`Y_)Hp zE>nxcT{I1!T0X5m;;_gAT#yJ1Jt;ccDSUf6)O36w9v5=G*hdg*c}6rx8*jI{gGJao zpcgtPj%GUrs^Ew~3mPc&h(Y9tNk202QCBKsaEz&$)C8>#-^^R~JDsDWtmi+3DbFp6 z7g9r0s+p|rD$XWSBngqYPuBO5h3fppkbxb8KG8AK{+?ORor81Arng?pI7|0{6}W3~ zJur~4El}{)H#fBZqnxh)&6ddTh+(V?C5>ZrDS1b_UUVbM4?Xn>QUS7KCISX~?4D;b z+O*Pm%~{0>(URkNjcz&M0tIk}--JzMe9~Ejg`;Fc4dB>6I|%dL2SCQ@6)!2Df|dye$ZV3wHvP75QkESU92K#l z+QTs&E-?SB(>eR}4{Us36o=4^?M9`4*`;|1cX|CgyMfj{OyT~JvGmd|C3pQ-v+iy0 zT*ggd&ab6zabHezN(rr~#u7i)_AG%eX1ii!LnKUq;Zf?v`|bS?*JJivgwD$*ax1$f z5{0qnd)(iCWU8}jfTH(f0>{d(IjrsRR}?3!{v0d%TYO9ZkILWq-B+`Nue;=;_z_2$ zSQBl77gwn8VA-Hmof>5|U=>N)d{)QW`&)*)kZ;G>VP3nEie%;5+5cxS>y}{;jKV+}!YOjTw;y^RMh(RYRgVFjJVYO26 zH{Uk)h(1qscQ>IM4iAe3@nG{JpCPH55(GZ#;;`Gee#enVC5AHlAo6(>0of1WiF*e# zDONN0$^F(paI{_3&|D(5%cd7)UnYJ5p zad4-q#es?5j*~2w<7P$Q^-6Zi924C$hZ6BGttSbmdfz=2s~rEQpxN=+yb}QzJ2o%o zDU*`MQ!uIxZk@U?wA1!PT@>@o?B1Bc`+d73h9Nnk<13GCT&Y-f53Hl?4lgjSc@&EQ z=oiP35Km>;`lq6(;WUW~%I!L|3yKRTCjCzAIu2MQuaRPd zq=k@LFq6PaZy=3NEt#;V%qmd_tY^k|ABdZ@ut7RW%|C|T>i=XP;o!=U+Nak%^~v~r zf;Jv&UQhT$y6Z36wT;_EjkcGHuP9oZG_5>^BDP^};xM-2EcJ-mhSM+AxtO@#;?;#6 z?o2wbxq8jij+pjo_9+h49bDdW1H5q68Mcu+p5NX=Qw# z6d=2lRzH?Jrfdl0Z$9SuT=4YgH!R&W^OFnhnnDl22Vw%~02+WAfEKU;!svgw;9nO0 z(eLm1x@cll;CMAEQs`T#NslBmZZEgC3-_?<(|zqB`22(5*aaBqX<@ka5)<0(WqMt9 z^7E%I%yN#9Mpb;lJE^SA4L_A)5&wy+d;9m=IsEz=-;;v`2S@&Lz}gMp;U-6;_1lbT zHe;!y6Jo6Z7$S7wi&$QnxJrh5v7(>9!{gA}ba%jK8`Ju04)98otB=0>EyG{?D~uFa zl~mDynj9+zjAn|co&L*#Q!7UxX)Z5w^K$5S#@4=m6?6y{sL`FPNVp>5@&KlcLe(KDf$$z9gHn|(Nwqpx zrq;mG5tv=MrQCS!M0wvJIP8Pa`BmG@=3?>fQ}N4h*oiJAsNU{)Fo@(xMvS;b+&Y4o zo{haLyb&pT<5?--BV0*8pjY{jKCpDczbJ{jH7m<2p5O^tZak0FnhAhac}K$q7QI^& zkxiX{3PTI2)?jnrcy@fbH}pN--0U)s5u^g9PNh|8)`c>tY>&9ck@*mrUR)^_t*}#0 zq0Wm?LyP9Aiq27B_-mONxgweF;yM0#`;H*!bBfpYbf`zl&c9-aTY>c^&+Gaf8Y|r* zs=GU~7`gbAi2_F}ZWp^zBalOB9Gaw28bXOAJp4!V(MyY($A;Vc%4VS`^rZl*Hp&nr7}8-FSf*-F>8de8x4Z~t>4FD_A3508@hw?R zNE^+Li^Ww^e%<;Lmh(rZCezy|jl~fLc1U~|2hki6>4be7GIZ-bX4-f;h%xZFEq7=5 z=!XGg1e4HUs#>=!amU9bM+aZda|V}}p>ytGrJR?o>Y16HQw|NX)J#P2A&{@bP&R|k zx4TI4F1IjYL9!uCw{q`>FH^NlT^G3?cKOf#FvG z0&J-W>2p+WL1SwiCi?zA&OJUtH+32PCu6IZ`MmD|pLZzrKD*`_dLNw292u|v6(!#$ z*yJp~z75#x8on21Upx(I`jZ0as|;nZOW9Rvq2Ns^ba<>vf5CsF_irQz#vY8 z1hp(tp92a4^#-roB%(403j@8IV+^y)o4nCi5PnTc(ZV8t=s`{`N~OG@CB4|KzWzVn z_ej}Pb#H%0{`eGJB7@No6PlC%)g$o)m>66n< z$FIfQKLKcUS8if1T1cMG+nLQ%rGPa-``rS8?e}Fdb6KHzjMB&w7>s-_88- z_R?=k&d@^xK%GkEHYZHu-3l;;KIz6NNNn;TO$FiG!vj#xb6$!a*v_Zt@QVdqGU?@f ziiD6L2J)x~OXoEuWTH4|MBz*3Gx@2azPp~>x_)UkvkpB?qfV6qO%2xwd_rqs-W&icS~+_tZ(m>AOQu?Bk}!jm8)8b8@QB`Pls~ZAgYb z1;OWjzMF6QGF%o9PX@_jXqh>`ryP{dd~-}lN|b36$B~j1W7us{MhR*Z26b-ei+<;n zYiAd&>WRaT4je(L!ty^kdYH(^@4kRYe(CIRL)hNBS(Y;qi(i&dk&905k228-(}se% zb&?KwR*6>IUpHWh0({!j&YWOy4Ed-v95;Kfj-N*_OlsQ(cBVz_zB7iL#R+s1nl7%~ zdm2c8cav@}S} zv`_Le0kG}@Uc}LAO=~8x#52N?<#8UZJ5P5e?vEKny@z-S7w_mP`)*{NKed+Nhr^#0 z(S+VcqWWjMXl|ROju#HSZ?J>OA`+BoVbmj}5~s>1_?2Xeu$JK2YKH@gxX*FWo}%SEXsk6qQeR2(IvO4n_^Gw6o;FRgCPz7q9RH8VdJ($)99 zgbyyBGCN2AaA^r=kMerD4tXW=+8J1vNj_VS_J{sTGQm8e0q%@GX@6uCXz}XtUzZ4S z8627x=@BL3MfAG4zGPnJ=!_6YDTR%fQgK`6`f29$gM;jENH~j9JXPT*LeK;84vSc@4ZI9d;!5`*ZxFLh?lUDG%RQkq$G&dSlYCr_V|{o z=Q<6$$I+-`C)Tki*2xIz(e9N#L(ds{*!1+*iU{L4CLMWj3Qq{MozjjdnuqC1V`0zJd@ruVKC(c2sw z1i;Cl|Hx;M!nSSJ?JV3cqWmL0l!gQs`lYrYl9(N4Q;Q#t*U+5?(korH|754ow$AJL zMe_~?@z?AWem4KesHUDwC2Qb3qih$opZDlrQe|RqTUIaGVgt*@B}qnsP!0G>{?y&= z4iX2gK_r-~Vfc8wVAlpwquSB$8?sIOR7z^!TPfnte2Uz*D*c#x>{t7!0*oBNTR)R) zf$e}Av?ArI`FuGG@)j5Bm7JnfjGDqk1X1hj*wM6t)}og8lMiw17z{ZgCXcEv#~ zJl5Y+N?C>g$e={9%e2j`yo8+u{_qEHy%x6YWw zZp_}Q)_eZs3Wz!TuK<1g??PJya)5P_lu;2CZ_@iFI* zE+qImF;nO0VyOpH7rt+j=hv3PfCf=eBav!+3h>xFvPXosHZ%Qj=P+5A8$(_aDD#UJ zKCiIhXQYS!MgK#Aq%|&6{(c%Jd|>c zOGWrZ;{Z=Uu)lO$FQsZ@wgkkbBk*w;Mzs`kZ1WW{%rtrK17-LE4KZX=$iHo*O1wC| z#zd}QJH}=1C*YK4P+h^hAnXLFO=?jFkPEd1PZ+z{SGtR^35Q(^T?TL3X?*k zM0|8={r`@V1zf!$NVSDhpzQOSaT2o#O2_SXdFHLsP0EU3j4x!<6#Jnro-oH7j$H?< z)&3JJQkD6{a=3N(+~>|+div>~b}h#(rr&2S{;7VR-ibObZ~E9~A^pX{RJ+lcfJI!f zXMOzR?G>m^+Bf>~AK%{Gs^K+1hYq%v9ko{5dFb!j#0vFeon%yD>DYO`v$wnQ!r4}R zk3uT8s*lw85=ySbmfRw?V69ruG;gyM$*Zq(o>`I7#<%_yq{!8Ex*E6pD0me(<6j|u zL?6gq8hu}|B6cJijm2n?vpqkR2QwxWt*PHo_ZEF`nnw3JWw3aUk6-QqPH9?pSDUKk zBB2jx`RZse20s*?3j?j z5eeQsIEo+G0jIK`zPt`0z{-9+8yAd4&<$2x^1bU6m7*0w*`to_aZbu_Ot7ly+Kn{d zD}EcXuy}0L@mW@<^Rw|@Y0FBPjapEt7$zp)$SefT@D0$Cw&Q3`2!ZpgvjhZMRgS{`|N!2&Q|OuH65 zw__g_#3M?t|D^u_H$n7MUi#?od@8EL5{Oyw1d8nR?BtVS4LcE)h6V}t|0WCiSN`Mr ze_;gtzw!UrS-80VmH%)s|7ZT&e--|NBl$o5zsxyX3>o}UL$^oQM^_~aN;X_7HkmQ; z6r5Z$Q{-S0SX9)7m@ayH&nwue3wx5oQ3?LDnUK770Z;uu*`Bx5&*)7BF+MBie?uy! z92UrX>$eaV<$o!_P<;?{`c~vs74=>Ao}3`7$Rryv86rPp3>b|0U`v#x!uxF{!pcKr zQWC)8$Ogg#sJEUuuaeL60eKCd?Eyje%N6;J!c(i#9QJ9Y{26Qo0}w?6K@Xn88O8LV8o=R| zz1yacBzB+5G(Cv)L0Y|y1gk!pZmAG-EEPQ?2SS=jCZv#+WDoZIO!I2qBR&TAYQ)*5 zceK?N+WIjo4dkfWqjac1^%V)XBN}N{BxZ(=WaxW9h25FQ1NLY<8Q#S5k`Cwlh?#V-uU8P~k=q$>~$2(-zF*thHU@ z<>%>n(+$L`R0>pxDP&=4~3oc-=;e$_(XUA?=n(D(GY{bFXg z#M?ZxbDV`N*XFdu;$e9A0z;L{+rDtv)Iy>d0XrmaGsgBM*kw(8+P8FvYJFB+FFZfg z)JYjw&EtnDYTXKeS9ba|kkt&gHzGNWDdb{3>z9w4j*n64WuZSwF>Oi@sv+S5^Rxbf zI)2M%C7kI?kQ67Bj7Qne$F7om=a5#c<-RYqN=9?iwGF5SVALlfa0JTg!i#rO%JgYx z_c+rTb!#NT(C)iz_^c%Tmzpmi+i?t@#)>J4xMT< zkrp>;FZfIP9Pt7EzKa6%h*%EcgIF99Cb4pe761pRzs%yrvSSlLPX<26e1TqDCYVq1 zA5~NG8&gMQf6HJ(Gj3bH%A}|Vh7}Kl^+722kZ!FS%QXHWTU#yM7QXU`<`DYbQEC6q znLojcODWh;C2-Ci$k@OQMZdhqhgTBaQK^B}-ap5BV8xH3h%d&GJur>fmXY4j+Z4RF zC$n{D9oHvS^vYd!c+}~DKkTgEJY4yua0{Vmd?k~FRO#wkV(U-*C)pmPVLGs#7Fy3b zPFwBh^Pv`sd-jH3$Y)dMymaxTh2lB+5;A{*I~+$okQ|JtMjY`Q3NncOSe{j8O&Ja1 zSY9lPGZZZS-`IPL*h+w=N${DU`I+5jW@ct)XtUjB<~FyP8QRRu%*@Qp>^3tq%{S8S z9(J_a%V_i;{!7)dq^wj%R)jJteZW7FED;3kvx7!m;b4ZweT}mnOQ~FHqpeb(w?e-3 z@!qz7P;|@3-Zz^+m3#Nte*Ied`u^^^z8AQ@{p@K$ha)CL$e&#WHa7Ok9m>~X&&~p5 zxezK=;3FrB%o{ckGZtVY*DCv%!JXn&^3jt-h!cdVGsOSiAFQTkM}|W>T;ct+XN>s# zWO8vmn<>g8)_lp@GN^VWl<|=n@q-2&B`Soh`pzAL)#u$nz@+;JtB3`fa`*E5C*kfl z+MJq7CS6?Cxy}0hnZd_% zaAS#HwGuEUZ5*-&swQqoYCuJayYoo((BnWA_WyH)Nhg%OgHbkd&3q-}n z3(_fTi?qP?L%U9e!0T0Uv#p}{96-e0Y{wYj+zPt5JET(k*(+zI9WSjZ&Ck3pSI{S3 zR?G3v*T#W9qLQA+La$PF&mcdBoJZPO!FDa6+jb-FYZr!?L(3lnOFrN#7`~>q`d74y zJR)7d+bEDON}Sb_GUV$yG+co*B{C>rw6W(~I*><2qpE>EDIm#@3Rab3EkZn!qth5w zx5vkOkRbY(Ip$DUbvPC7(!No@HQOitBm@Hmf9L=#<&arRUq8sZ^vcdqz-8Fbc8lFsdpW=7 z6M`-kOruJh_QK*&$j4q>#v1;*QY-&29P7~h`d2R`;{sCb9|R)*(+3Z8Y@SczBz$g; z?QRV(Iz!BorVT8D#2P@6#RMB4EWL0l6g-2hUqp!1AqsK4$CK0t!eihRc0J{mR5Hm5 z4-dD@O+2qzlgQgXDNHYltFCe)x=KQdSQ)X0z z!Lbnhy|%sPPuU*9j;xetM+T2?-=s#s+dHNWxVZiDz6eYt;<07P|4Ka=siZj$&=U@g zH{ss&!_ScZv@Kyya8S;x@%qfL@O0u_-*JbULS$ZCV(-0vL<1t9zy_4zZz9YEu$OR5=WI*6+E!ciZ$ySZ}^Gwpv(P zDIan=E^lk{X{ux{<)F9yN!Vsp_m+WNrRt{Nqv>t8QFXSt)*v%{MEfmbtJ@$(`0VUf zw)}(mvG2TkIVYCDPIc$)EX(RShOzA4v!`a>wnwQAtw;Sep+?EIJp3u;=iP2Y`95cC zMUFtb{O3dqfl7jS5fUMHv6U!;%d@1tGK*{XLuWbS>e6%e9~IxP!~2=?4*Pap?_0)| zikYo?VcV_7pL$(|{_W68rzkHc$#+0@Bhn(b{C8h`7$fzq^(`&>5d>nm4;^rd^auFoN6 ziqunz`tFSMG9OXEH4}Sy>~@h9?$05-j41_o@t^D6SvF zO1bXv_%@-WiqSij^Fd_A{u7v!y(!mi7~v+UBS?gU5o*?Z&K^o=PX)v{ z0Rgaee#nm~jAlw_A_5od-q;-L|9*4V8F=s`UGe{N>J#WaY;5GhH*>8vqYywlT6~|w zgU_e=3Dz?LRx*{}P?iu*SE$0(cC8UN$JPLb$WA=i4~AWkUbm)%FJhea3wdAb1anO^ z*o9Pg{$ZhC=Zt}6*SOn|{O_Kt=j^6twT3G!EMM;P!Q8jA|iOTTm4%xLi90028u&bJFr^93H$EnN8>Pu1LlJ78N<;;TXK( zyzuE~IP6e>1sQ_*^R>h75=AKO=a;crxkKZQK?ap)`T z`z^X36YOKP?2nGdb;OXK4;Y$_DCqc*i(%{^fdfmNmYUQjA@q4?&1KyYu4 z-GcrvOtZ7?*x_A*V*Jp1@M;6)83h4mNh1Ve!Z1&4IiSSJcJl0VJxq}{NORIpIUsMp;?*D|2 z&s{Dp#~@_q8VUl{q`lbCOyz+bNMYy~++gG6@0@OXNn2y+Ba3LZ9J1%S z7W`KE?U5Ny=}_1J!)naz&c_gL91$XfOQ+;fNz@?(J$s(O9TjC(Dhfxgh>tm0AxZ@b zP<72$M_a)W*4PZ*ZZMxS#8z|!K+!V2#sI=5Q|kup>ryqxbb+A*7Ns?z3#aI@Ov2Ii z5-a-$ZCp=eZ-1`|L?!hZkb==)ht@R(F^^sS=Rr{q znwVP|LJrnhGGO>P@E0%l)=aB^CmTd(dcJ>Gb9u_}Dz+hkqtPRcW`}|ag1|bB4 zu4Rp={sv(ToLu7e7Ss$oBG+hb;S`~m1P?{X`8(>3p4vWKu2f3e&WhUSh-zpEngo3c z=(hZU-EOc7u4WK7vo(Thkr#rLD||bbe7k+Q{#P2IUeI0+C;9~-*#oF+NU}Zh|LW?S z=Qg&n(LJ{Te_)0BVMo7yH@P8nl@A!)znx5Hw?;j6ZV%s3Jw*YenxL!^oUdKF688>M zB!r*xdqjlgT;unCnGnW&R%3GFzZS!V92T)d{uHg=&-Z@V8LwV z6L_%s+n<`n@=!iQh_*Hukv10?#T=3Cn%keNuiL zCB=h?GW(gUL}h^^agx<1 zhWG}J`k*W5x`Gv+6l+l61|&58c0N3+KI-VWH)*uZ3;9(wn-+i(FXOgSAl)F zD-t5HWX#y4mgPvagot*!0R_&41`zSb35&*5$>v0_NhKsCnB=lX_8lPsK~zYWA_zU_ z-_+x{SNR%(Ya1IAU0zv1{<(Bv6E<{}Nz9sihun2%R+C1Bj)c`|%uI>>-M7jJuW*{* z+2S|tdXO{a6IoH>of?0uo-`>!e+tYvRaxkAAWwiNIq+QYG~4Qm%9KW1JMbfRGh-Kr ztVn+|BOoIihlRK2#IR-w+IP|ghZ<3CU*iC_Z!rFRJ4;GRs?uSii8to4AW&dmV{k>P zq(cdQu9!Q{lw9qZQH4;EtKf?hp_(Q?kzxb;FI@)q9I(CpVm2-ylPIOe4nR*T@t>dA zg@c~^Z^|38yl%|QoFpkzW7$OJBz1?zXkCLliW{4b0E$Qq36Tg97J-k!8_wa$pG00V!5~b=iEWSi z^lEz!ep-KVS438LeC)e>J1>Q4TvTz^(`q={e-^wQ{DQgayvM?V5-RNK`t*EwG7E4d z1&e!GAaZb6c4h<2#*_T3Sg!1^cvz*+sO|$sl&1f2l60Y-4X9uH$q||AB0ObXU2T&c z?E8Lc-7lcxIcg9M){62h;$2S}Za4fv%|h8^j;zhKA`hk{F0FD@rH6~SxcFi6{&cA! z@Uk1|$q46XGTG*I?31Y0=XtSOC+{yL^xJQC>t?Xg{PkZj;&m6CXDs1BiCsHJM=XID zdBjb?g+CPBLMT`-S%ehvjBjsO%XUa;&pZC=4~8+Zeqf7b-Hdl+j3H{x_J}drlUQ%h|dTmB~*?u)bW= z*Jhk}E^9N6f3KqNb^AF40}04J_$49l23abjNL`+O^NV!(fZ$tdkovTKgreXBM(1{Q&gCezLEaIH(!^a0!8Y^1~aiuAvTzPuH3A0BrfhAiFN+mNxAG>SMTfn zF{OH?=B<&2#!3@AJ9|4O?ouuv!ni;7#rewE6=_Zv*7f&l=-&Tm)<_Owrgswt?uiFz+XtbeH4T;nm4U4#67$ zPqq)v(C53$)Py3~hSzl$_C9+AQJt6m+cgw6+_{yt^|$d_y(!2tcitrUFMO|KUkWvN zP^{_Hxz-Q3Uc!0rPM;bkj`-wfNUVqUK9(oycEMBQ{sgkmWgUA< zGY&TPz5y$fJsysb5K-!vqe=gkwjX9VGn~uq+M8bYQ^m62eulgMx_2*=lasY3Uhf<^ zcChao9$+MFv!R2CseJW{-l1vD*D}DwRa6id&h&EHXGuK^I8pW=Z3YFjsK;=!va<4H zeRB4Gcfh&>2qH4xxB;IWYXVCRK!Dqp%SsU#5sUS5Wslj%hcWA%Zmoeoo0JLxBIw{~ zp?9~=uvdJCJvm2GwB*NB6k~(4r-=8Z_YrxffVXyeFV{N=dBnGAT%iO&guv#E_ScEE z5}bgR!4dR$ee+Mpa*>9nfM03oX@%-bv+LdL~^I4gr)eOUE`tPn-YX})nUM03IHbc(DA<@jnpQFjN29pz4 zo+Dx$hLs2;k`Rcf!M518{jcvQWD2PkC!4>VD&2$o9K$;&djp~H_T8@(Vo3Nrg~su4 zdw8r)ii)xBVV)0QX)eP@O@}1Dw1Se=b1U;yZ7G|oJMX>z5OGZ=@+v*i+ux`&J4C|} zaV9TJ!s{|4gKdPMS`$R$OS~12h>;Ap>uvszk}tE-+{(15Qqq3A`HGM`AnkyWA;5gA zkC`GGU-$LOR$J9L?C&nw^eJ_?%WeIn?ZcHh6+a)P=uOAtvg=#iCVD=D#@zeFm;lzw zIiNOjx9MBUmjf$Y%nQN4BNgT=LSlyHUtC0DXaMm-eV4HJaD$SjAL#VpnDTUOQGl2Km*Wx)%pYjw4)W@TGkT{%{WeHJv<3a+slxK2oAh_ z>&NbYzq}}-^WHj8ycbOVw+qLAUH=bfQyUvg=l{(nApd{ z|DlfmKmR}5B&(&5%xJ(B1q6dv=@vbJ12L3^81f-lT1OS~8(Qh2ddHoiLPt%?oC|(v zbY8^iQCM-9j#U0e5jTL*WG3cm^g}>Bpa5qQb&*8{rSCpLqI&c;0HRPj@t=G-R_Are29LvmnWxx1WWd(40*O^YP zrgpWWrL_l-nD+eL1?BZ(NY$pr%Bj~vDqbZ@j76KgaoQbtrL)ATVDR~NS~9@+UG{2> zGw_oNJ;HjaT=*5kR|z`@vFKs%kd!KdzZm%lD2;`>(=f}5D_^Tu!g*49>O zdhNy+CUshDX(bq7imceReuwL2RsyABvKZ~hhJENiUT23-GP!_an;MSp z_Vub99(J#K;(d)upm#2F0#xQu2%_M-*2_pV7=XTH$8iKd7`#syoCMVBaeoAy*%9v9 zhJCZMP=mcHFE5Y!%I)^${e3X{76M-DY+0I+4q3O1xfhG)sB=6CtN#e|@zj#H3=3Ob zkX(_@LawU<1MHbwT_XUlf$v>f7z4n+V8BVK&QOJ5b%X;MZeEJX(Dq4aN zxxC%4{yiM!Q1nQzg?d&|03*R{=j&qmt~%oQR75l!eiQpx374ZC@c{Nb8q)MNGsF{+v_Ctx$X5oVru7${46uws;J?aT&|WWwv?mZ#4LujvOodzhR0G9>`)==S?7*I~VoC9~Lyk}S@wV^xGmSfk z)ntfXfn>@h6{DL5q)?Tn)>+XsB!@ERc|?T86L_jMsz@$9$;;E_25DgK-|KgdQNFr5=6l8;!t-)^6nm~hjn+@V`xdKb_0FvvjpYXe zX?gO^;yb>$=S+^9kJ*m^J3Ht(V`VTusNMt9DmH^&K#SY;uOMM33MSu-Yf(&ifZuW~ z6m&M2i66iZLqpy2AHn8=ASXGwt=&$yH#^6$_os{he`>~zFI_U+Pq(b48wKqnJC^KH zvFA2c^AKx3W{LS4Q%{Swr8)3ff?*mO8m772Txu#RqNZ1MgMQ;}CYykHb3oelhR2z1K#w$WYjn@$cW&7iP~R?nafxv@5mv;HLMDmV0p5Ak)?m z!!J_e3LM{iEAr&3-1bVN<*Hv_@QEbTXwdUmHZ$hE`DUJI z=qQ3_HeGcaTaP4WtM~EI6x4aD=Qz6CRaMKT>5}%kLp#m}qkH#G(j`-xsBB?mGHpzv zB)p&WzKo2_=4zesRyw;iaL8h!@dO?@E$%O-pUdJ8-c~w(b#?Xj&-Z6E;MUFFz^Q8C z&M6WeSMK||a9LU45k7zWy*^uvznTkkm%AgCbVza;bs0WS`4+FEk-K;Sk{F#fDcdBV z|Ks(ZSrzgQN<6F`JlAqfj{mn$1$NTLOzS`>^2Ers(?AF!{PJp-XA7_U4H5Z+{A}d! z`30CvDw;PdA3a{_u4Jm_tNb?z{p1e!Iq%{7;le%~?Fz8k0LT5|x;(?2SfTFM_n=cz zALyI08WM;;IC%KE-$XB?e@V;u1G@2fU0Xe`yHZ}98Z7dEStMlqb-XtI`w>xPRx3Iu zwz%@iy@X`F_LIFCwG)tl**Od9=!8Y10Ab6!Yr_XnbSfT!bCl#D5x+jK_y)Xv zm=*1#IQvh`uI^_9TM*Hg{dANlLAZmG87|=DYsVU3H#i+q(`b!@TKI(*Y3#JRF1+Re zSkZ>?f9k<)nX(-#G-_N^81zWAGoZvUC0yWaXB-KK_jd3~`MzHEEz*gk!Yj@g1gYZQ z9!?>`S_yG!mWg?VH1}dgNq^G_P5Gu_J9g|q8N4+LBC9+6QVT(1-;Dafx+%-pHQ0<< zTqzT^$u_rn$4L z@@NU{bl#@%5pG4a^gp%-e{`q z8f9?WyGq6qxQK=z7$T`Kkvq?-YiO`iM(le3gS?z+^2d2Ueq(W-MEEo)NvaS3Tc8GMhqi^YbcC*e_jKB!=VwKUpTm^WI4B zTw<<#?_QD+gJ_$I?_Y2~HWLB4T`aJw(SR3XdXo*Uakc8rP2HfPhz3oABtq|0b|>X! z)Fnd#`FxKc$$J3G0|pirDHqr@WJ}wHMKn>^Hz`{g3X^4B7=}EopMNcK-mTN<)4eWJ zi}?%z9J-oe4GJ!JZfm98%UMN@K@@sukJGL{6HsxlATXL95N;NJv53_i18YYO$|L?D zWLjmON6uY@HYr5cS`lP71&L+w4o(IFL%!$Vx)t>Nq*X|+*P9~W010IA_Xtx;LwV%9 zS|aW&us(`g$U;DyUaeCEDqy4m=n?$-ACD^#9;69*9+zL2sq4aMK?Co12f|i`2F(BU z9flc5<(m2BafqRUTNWjQRJLUQ$L4Zx!MGt+3>(j_gjr(!I#Z-G`W z0hU?M%+`?LfCWCGR~_>nE^s2hf8GF(0&3%4a#&9gfR5=^T?n4lufcI&0umbG12fJb zlN*%1IOY$B3CQi7VBJ8uV+h!tq2Rkt9m|;Yu{BgTsP4sH=hEtXDEAI1Uh2cvp|H@ci8#Q<0lU+xeZva_Y;e+lIwoR7K}+q!_3U=Y6^I60oF&u+(?Ro+z}lz?@8V0>~I zdxq!>O&{0S1jIYX=k<`JZ=W^ulgI$g8^!!)KcCMxev+vkX<-P!3x$ukp(u_h03{l(w*yylM}ub}#zv62Ab!3H4%(P0tJ zwI%!r0Tk0wF~d+Vz}wBNc0lhWA*<=}kOzLyte=pYBs?(@QQdxE*c0d(ILPaCJdLQk zw`QK>!q|BO{t2m8L4yeC6!v+1Ge7_vus$a32zZf%!Npn%$C&}{`({A=@Ozw^K8E4`j1VKI2i zS&jPM{^MLv4Cr+a!RJZ6aiv3I`VZ(zTBD0y{JS_uCTGDp#>af}RXJwGoouk%;&}q| zCzs0+;OC-UZL~y#LcJFKY6GX|d#MI2K?RwTK!6){%OOtKmqN|vYOzJXk^;e@qxNtD zp%K9$^Z7djBB30DX)WA832~JU!E6V}1Dm|K9WE8hu5-M#R5R+V}RVkb{{% zx?!EiZG^1a99+WzWLbFD?3cN~)1g`7qZa`C9J@yQg#NZfR$+Ur576OC`T zBZTM2HfXO0(Ab&GDs)=fO)ntnZfk5RSLB?irr%l2<~Vo|H-fyuP4if6Q=N3ShOn&= z*S82$x7|aK0Xc2)<`KnXxv>*STCi~w$@EV9Be8C=0&f;fu|9g^d@ip%&t}x>ru~E; zsVuu&3T4e~*Z@}Z$lcTi3~Ht!{zx!%cEAqsq$JjfZ|RN%X(LK zHbGHftc;lVC>RmiPg)bm+Qi=~?n%;#@B8k3 zu|3N(S$o+;&*~i&yE*sT6wovE=%31J9^*}Xl#18F1UBUje%B+imaKRBBN7r|;z5%x z1IlZ*_`3%%C_}I%1&uD412hFEH|CPW4M#teG?1g^Re9BneaX&ns2lBJbzRxI-EWOP zXAQYadLU&~SfP++E(_OZ#MEn13atk>P6W>)paB#a75+Kkfc4wTfKfXf)&vNqxRS#( z45BYaS;2({qo!GClo_6rHKsX;Gu*|wNzvkm{CzbIw$(_K;1 zcPJb!;)wQ87l-q3eOjohGz?2g-fD#E$64?T6D_dZHKDYJF0r#R3n%NQHHite(=-=R@{a@l;Zgb%9eo!7L0i{)QxNIs(E z*9Jw|)eta9&d35UM6aoxlgX(h!Guf>$jUekl79aZ%R?e1&M6t8b~pj0S3Z>YSp#D; z%T+pC>rK{ytX&wi>L)F3gr_?T0tgmk@#L=8$qafpiFLFZ)rG~!9RTV`u34Qq?#iD@ zZ~S3kf^z-fUvRz1ssCBN!6@KGTOI@%l6;= z?|+&3kNE$a|AlQdRr5IZ_2fFiPb9+IG8ks&<&Ztyv@cF2CG?eBlIR8(FhM75Vi%J`8Po zfk}Rl5afUx?2M)z)*j5_7o>2eyP(CqpSfzCxn-E>bwWz`EAvmNQ}VvWh$#r&d*i-- zc&*!YrWXs#Gh!i#@oXH8K<1AEEO}vq2nir_h?};OY1+WX2sNd3l^ty$aPVrwk;abq z6)jTG)%!gfbGL&LWp8Y6R88StrG_k9hN^-mF7L*aP!E_#4^)B!fkX2RSsMdj7?N5C zxv@6LqHR*DZOQqc_5R+S@^2L}3O=${zvGhkax!B4IS=_;QG{B9q2^evp{`~{6PGP| z)(wODBV^PHqF=c*iu42L1OS)^Vlj$(Vz$GtE|WBG3`t;Sz}b)(tcgjFH0n-lSx0+* zE0!b+_>SQ-d^W+?-mlL&mHT@(RFBhkrk79D--)g5d4Nku{;kLf%H+aT_C?KS@mDh3 zfe^Z}aN!OAH(n%AW#hjNBVEt{YPkIRs;FE1)f)|78gV$J*<8Cb zvzA=?5vi)>J-*^A*F+j3BWwvPdp5Kuq|o!Uui4>t%>mT-W|^gaRAQSgU0R| zWjx;lhSw6*p<2*^2U@(g;IIZ9ads{6Exdo{H#?~@qPG(l4WlYrcFj4e1kH++i~rk?~&l6$3J& zM%zm{0f*uvdhX7@)kt!D^xO`@dMSXD5dEmqARV3oM?2i*ez;{jhJ#Y`%jk-IDai>9 zX1EO?PLs}ms(jtS{r0(y1$%E0n^lDT+S7>YF5U#yJPo@LZU?px?mRdTo?uEP1K?Ev z;CLfD4hF2(rpyRN;cj1O0;rkr<7J*Mf=4h4ukXRgaKr=}ke>~^*MA%jE47EZ^lI*C z+xJ9=@>T?3)w2*!Np^+6)o&`;VK8gwh%mcc1RI_;E~EF9azM&@0Qk2YmDk=iB6$qJ}T+b<-GRplV=YABmv2T zgECwfddv!(x)hbASgzw1WPTx$v{7kw;F*F{h6%GLDMzVG!TCE~%eEKcga|NYZDt$* zTe_0X{YOm+?f4`_L=A%nprs!j2R@Gkgi#47N#$jmsV<`^$>Ndl{-omaw-%4X{_06B z0WAT7a@%}kVBDtbJVdkVmLB)mE1@VsG(s_z5^fnvYONt878On`$r;x=FLb*ACpoaY zWh|ZHTU?BH8ZFpHAbWWs(X5g-lqHr_FBqm+*P!jr=15M@aYv@3OgQTdpFb@Fe>i;h zZxSQ6UV0be<`0o0*+D5T(7k7i;AE8>U;pPb;gNr+XXj;)K$3O!M#T9OoZq5IEgU$Z zsft|bUyK6Wq!Tso;_vraI*9{Ihe`yH-`jb~$~2wEL2x;RavmPE3Jq~0^a8Xppw(>9 zN#Be4S)Tgp>&$kuYxO`mV;Q`qjdk6r_Q8Yji1vbypbMFG z=h0N(m6wx^<7mwT>Hm(y7y=+-`blKPua2s&J0o}*`GS2v^mB-;n$iSodw0BV?7F`m zLp}DEN`8+W;`V8ui1Jr2@x?{(cGm~ac>9@>`D^_JXk0i zc=)e>**mQzsoAx@#=6fpCzPEhCP+Y}OJaIl?`%%VbNYlHlFFAtQ20Mkal$T+#f-&F zO^;1aosFK2pG}@kSO3+sc95SpG367B8=>pW%qtvCW#JGys-$HRGWja@)#qnM;8IP3 zd;!mcQjr!yFpO=2MI(PveXet~VgEj?sXk1&eq-tA@fFOV@Ji>O@D}9jC)}F-H?#d4 z(|QGFR)7YLh5*Km?zZH*J+^3#gEIDgQ8r$I(rjYr*kMYiI)8aPIyD`7qKl|)3TaSQL_|BA+ACcj*J7imH)A!ND=dKD=ABXr5O|1`Xj_> zr(!!m&!d~D<1j`3?4+>pA5y-B8kV8SHujQ-D)e%u;1(M1bHlKYk&s53PK(8}5GG%P zfTx!NRQ1x#;snt^jv+4mxRVZ#a~<84{+~y^px&hF37P$(30DoK6oMUIelHfVQP&+Yni zUAFT}aeDWjklN|H%Cj^iqMq_qFejZ@W;dc@IHW;pMtP7F(7-|fi5iaayVvL~yYBFY zgmr~;tYB&-LOBlr2CiI4l@D+|xavL3SwVk^NA}qT5xyLth**d7Fk6!Eo}JGei}!f4 zG?9kpE$yc+pP7!BjF=sp9GkhAxR|;iok>WS;#=c6h-V@ZnS+SXO>F!W4Mz)p!3WX8 z|9$p8{#_#Fv8imA2RYFIYyWvqZTEUcSDvy969J#?3+MZhqPW-D0J(SdIU5s!O{k~X zHy=}P+~8F2)WB2UUe5#L(({<58fdNjZ|=60grK$!b6|!wdyvW^msB(TLd zU4s4qsz!Grct(4oDrap%uZ8g7iT9Y>f$ON?THr@+m^DDRGYK$_`34+a1we`OSVt^? z6*jT-b7#8j$|2>@R)s(*HKs!){>zkIc36uX=i5)Kz{bZ)jF}{Ldn96i%^&;vIR7xq zs9i8Nt{R-!aUhv#GvjaB;+WaAfvFYWaWg=Xf>{-jpN#7}Oye_v&|+hxT>-ZgStvq^ zg5q?R&8vr00xy4s`e&$D<1G(Sl*=X}Nssb+s@1aanS- zRy%Gyz!N)F^2cTawYEs#PO}Dj1O(@hk1d9XzF$f&0HJhHi)wQFgJp&T#unrZ*6!!*h2#-nBGaW}vTgQzX$69j&jw$8FzLm|28Yw&W z-VF(PP`4*s0YR$H5|91#46#=Wq~qxVslL5Q+$cTr{abNk>oatb;VeWknDbDqw4E zIf9xSe*@uFBx!@^DNns-K8eU(*&lVyg2|vE5tKFT>{PaQ>03< z^Naepe$j^2&4ICM2*HL`F>!{A*_J z@(^BZU#i0(TGVqFCPt-b{9qW`_?!b3G}n3UGb}PToWLig%j}v;GFO+()~q}XT^LI# z^bw4I`_-bWnE^+lK<;Spn>|=ahA4!!Iavy7khH+&U2%ofR&HI3BHC#EKDL&NSF)sS z@a};@`<_1EP7Kd2tmCrpY#Jx933eFZH;=*flTMf|4#@d`o#=XK?s7K?Qn_hx{pFUGG(Zrr+`iZ&jx3%T*OVt zykF$WdD%p<`@S1#ePXvawRt4#=OGf8xoOHp53*21gDmpr@&WBy5*9&aqaW;pkeHC- z$;hKs@>?bGB*~;j(1%XANQQI8!&Nkgc~-mL4Z9y7b)@`D^wk3gks22LoBZlhh0k?# zZES`iAN&q(pCA!uKUWpCk#*gk%JI<{~%=y!{T?Dq{y@_3mc>m;G*XV0`iJ1BiO02166iCafp8aH7cb4 zapf&svamk_pTAG^U-tNS44)NS(D1oOixJrw+B(6f7^HfIhmYw%xVj@OJIJiY;O%}M zoyU;$vuj;K@7bbbDK;B%63HK-%D3nC)TZaE;0$~{(>RnjSWh>M-_G#Y-p@G>1GxIr z8#{L$UMCROd$=v$e<9wV4C{?$OwS&946*;c3k38xPS=y245+{V5~a?eYQFe5{q#D8 z&)GYA{?h8%)^Oa<_%#&z^~C6Ya<%az+B_9K;`mor#C&PsCu-WbsmfpvAT66*4xM3H`#;P`8Z81)*-#q(L~mQ?*zLp#@y zWtD`dJMgYwQO(Tc_{;8P>n1ZR9s+hK2CKWYE1jg)eEOZ16UUkFKUy zOaK(&-!xubYu3FFc}%p1wR2qku7WU%JlB>hxvol#A~puo=Efbt%m7G0x4#_?Fg3Wv zcVqC~AG3a7)d)R8z<@h}EmQ|y0>U#dZ{k;C9dG_JIC-XUABx4oRykmj7)zsyAK-N@ zqTuFmnQ}F(Pe$tg6d{7LD7y)g%)h2E<#&I2;D{HyJbUIX2~OOpr%uRh|c(j ze=>GD97(_Lr#jNoFY7G3at~l>ME(^5ATUFn44hsnonu`%F=tx|W54DLM&4=6z<=NPl)IsZ`OW1-!%3uVcvYtn zFm!ITK&^l;i$5{#?fn8z(fUMh4XblM%S;5xkaMM*{3J_#Dl-0D9It3v2jL{dYW(Jr z13CqRm*pQ{@vZWnpsct%n96R|wDKPfOjaQQwXQK(Yw-Shu2y|r)K|RieezJ?5pJ*& zQ&kz_5rL!1cfZK8)j~Mng2)a)AkHI1#u_wT@hprwR#3Guy(JaCyf_*NEDxnJ7*C*-xOa@<_zvlSD%Uw3HS zmwfV;W`?VGu%a(^&~{8tuw#{bqhBwSzAs73`aZTAcWAo+rpruOpFH!RdbD6rq@VA5 zwaGK$&PnGrBg63^|50vey`{sj2B^i^d2+34137SIBq=9V)>4B;vsM<{!%I* zCjMjPGio(=6nUG36( zulHuAL>Pld_vX9ZLP)!85p@K!q`91lUdQBjEfT<8NUlH9Cr*bn6&0A z+iV(IZf6*(bXz>SeCr5QOG6}<(T#3Ah5aZ&U$tZpQfI_<2&eP|7ls4#Hj{TEa;QIQ z19HnPquv)O9}F0Up{RW}#W_7^Wr-YHAxGakthq1h`{;@b??XbLhju(R@GoPx>v-3e zWVs>bAntoModRgZm3paawFeH?60D}=Q#7hOcgeno4w><5WeThYu879r_~P<{`fT=k zH9%CA$A+?Sv}_88F1Vp`sy~fDx4Dc$$e9fwRwA09<-C%$Zq~^~ z6zmIlBIG5ACTBB?C>Ff3_XkXfmnCrdV0R9**+lQkopJP^>rZ$W?Bah7josex-rXa2 z0;W!Rk8!6E%#;jaD8US~5F%o4G)u^LKXsm|GV)04uVHJPtErJ#;b6!B@9p-?cTp4l zyd>NgKkV@}iCnmhi7{8V9h8mRF;`$XCz6M_8@{V0=WDvZvzOgk2w5aCNsfrzEHLSP zGa;#lAoMzTh~h@$@f1?hjvD~!c|`}- z?kUf1p_f`G+BPFbJi}9Tt)V^+M4!teEpAs^-GXUb8{@uvec-i;10DLOgcN?D(nBLQ zzx81h3C^hUb<>Q21je<}W?Q`b=IEcACE!1(^o5S#f|6s$0V&!{LKjSFk{sGrP6pSy z^`9A@Q&096XIE+3OcS0d(7hAfUaY=b{9nGQ?jMeM2#au(c!=0(m1Sq^G(`)`NeWzU zBJy??VNLs{b?ud=1NSCFDGY$Hs<8OMX5KQr%*)o(GI6(??H^7DeGpv(Fgg!0bQ#Mc zY`W7(e(=|oC)YhzU=cRGFe16}p4`6rdq%`jn39UYQMJ>Yb&;ex7Dv{x+x}4;{ z6y!E9=50&FgcxD20hgN{Lb{D_HCld2A|OD~rf4rC9u!cB&_$4{s8tUYO9AWTkN{)1 zXYW7ZHbJ^T?DTsEQwD-TaUq4lqe%UZ1$)Q+9vL%^RHl2rR}pyn4b1RNPnpI)27D6& z_$sH^w#qdBTgUs~tN*#%J6PD;{hyuxU}9lq`(N}wPUipC|Ne{Ue<0)kOaDvvsMS@= z8WB9+?rwSZ_V{e>q-V63zC$&c8w`^ODjhABil&l_rb1{%DC&>$D~&oIJqcrqp<EReI?Gy=RBt`6s%izTzQ%65<;u6_`O*eCRAuufJ~A2e!W+y#_GUtFWGW zu))spLO#K12aq?xvTxrS2|IYM#7PB@udBUsG@h}Di4Kk^$Nwx$*Zld}$VPvU@Of|Q)D<2Wj1$!=Gfts+>5Nxx2Yh; zX8TR%yor5-sIev4Uz%$m{Y~uZQdd*j%j`!$E}p?aUDU6o@(4zC3VtJnACBGq`))i7 zKmW8n>e-(Ec}_vG*DSGz4&>>~CpEURwJUI4gl2@pVc`rDW~@uoX9Z1Ew34EZy`mLq zTL@FDdzkNw8E{@ga%g`TdxUwJj7N&$F54Qu-4KopKPAb-J#~$NW(?TK4GkMg7NyqoX93?4aC+C*l?&Z_CBF&cHzxOi%#KDBEkgYhi;5C4p z6eWV%+JV;hl*0r|(Ka^job#;dgJ%lL#QQ4Nk4mSalA@-nl()reqqmbNbY;?sX_Zs% z=!wGDy}n&6(xOag+aE$aaNa*Su&BU(ae~36;6;Wy{LA;(Ql6X3E5yZX8k(BoN?+EM zApS|Y^bQ@Jcras|B$Danmy^6GZJ#{s5(4;cG%YK8& zzFKr)ae2^3W|{pSa8n5G-7yHNQ$#vGYD-EIAOOdP&`<*UI%_R=G?dN7uo+nYdZ2LU zEW3L%{+qLI!~soT_N4 z=Mb7)k27vvmDWxNckbmLWzw#Gf3UI8rY@;HbuNjM48^gT9Uip|-1{pvc_vhksmbED z+E9R#x3*waZ{^<4TGbS$%FTbT{Yb9h67GU(NV=e>Y=hrv#Ihf6Qat{mg!UOt2u_f| zML;NgS$U&D_A3an^S*||cR6m@uOmdMj;r@OM@8ac*Pg=LXcQeoALg`)19i33e29$f ze}pCTt*7xNDi9K4A{3JKeCqx<-<}QKa^YMj{A63z&bCxC>7*CW10gpT9!3G|BK>8p zg6Gc%4H`(biKEl?;@`@XkG|hGw(C5*7}|!E$Ko4DDGS9Eu~O#NDnv@VJ3}XhJ$e573k(S;Zdm#AW=E9lmsepEq(+f1GZc-|le{ z?WsQPkZq_p;?r5XUwjWO=9C-@nd4N0?8#TNUnBP+clXq`Uv@F@T*`_g?z&k2Algl_ z4ShdO!!L-RynoG7I{Ll@MrHy`g9_hc9i6f0L`2|)~qn*9IRgWZ?iRTOE(D06T8G1VFZn@{7UmiOA`*&<_#BSEOy6>vtzYZVbOL#JP!{H^It4(dR z(2`guPZAC_?ZG@7eo{V0ppw~zeWJ5cx3!qBphUZKZ9D!-d$qo!b9`O@dVDiVhaR@EWu^>YzgdfKG)>BhG>- zkmHgqSTj$1L{VbeAjPruCuW}@7GDcS2i*+1g1_Zo>AE|WC}|N*(1pF!?_$SDLp23y zQJQjM!Yp)cUx)aL8m^r3t;zGAjMKt!O1E3HzP^ZF1C)Dn1-$y% zjkVxS)BJRk!ditYZ0td%LGK7hy100#^y)k-8qBDO;Y*^7$lqMhg zXuS(3Da97Hi4&C+Su2cgdtr83wPt;bcL-?TZ`t5q_1{IC7k-RW-jT;)$F0Z758x_z z>9$4XmVq~8;}#mvIvcZ?)@%Xe`+fUPsFk;c3Jm#NZrJ zKvd^B)e_B(mA86!O)w_j%fFCqM;qMusFs|e9o+Q#2fj*hxEr$sN>grw<|pJ->Q8yt zf5z7%+!Swv3H4TKD!PP$M-^b?)%5+mB1$6=EQN~{6|GVMt6j5M5XYa0IpkzYjy7@h zKG7F?a?I4OYp+sbkxHQW=OVwR|E7>Gi#o#+u;hz+KZ@Yh%;Ud6iodxyzJgLXx6#H* zikw~V>t8;%XJ650`AigyMNGE%fgYJ}Fv|h~q((0<9$*-gpdtG~A(ffa$wlX-399<` zKEWtZdR3*+6sR~l>`s(&{u@W{XG&UZ1J3<@Y}HuJ8K*QlmX`&^JkRs$oJg2G=j$(P z)HGj~$E{7J#y{woQWjAVEi1>&%q-mWM-=dC4LeVjkWI_T8(~4kGXxtxn7EyuGfBps zp?Z7m=HfK0&bFiL!zx_!5v@%lwjEG_?_rXBilbDV4Z(_ddEwzozwZ+-cVA>9y6PwO4mL}X($Q7<@Unqk1fJ%LFYbyrI*NTL z1Qxd`s3Q!Xq^yh%j}vW}JqspT2C8Y6)HFc7wnGn4NDf=$vI5^t2V8|VjQn-h{rvR7 zc2C1TG4TfMIru)yL_*7X@C&rm6JyV2v6aM0xdwiW+#?YDB*%7haBGnWlI7F!}dhu{LzDXu_6?^^#Eb2v~g`=lV@zeIW+(g8RXTjMI zP=I3gF{AA6-86x}+Am_4pb;$|i}*c~XdVs&eGR*;@zL%7Pu~Yw?fO;aHyDemeuHL& zm=$bTzcG`EDHL?Lyhd$PnE8nV?-Tn!4ZhYL`H6P(-^h)PkQWKHK?2Iiu>x4&^qXC>ikxaZDIF`$Oc)3Ae4SJSdJkcki|D9kAk-)UaZ)G#g(!wNVh-ZbH*%@pVcOc9fV-*eJ_XB2UY3D8is_J@l=y zf5FAYN_)IlZ?48-HOqI$kNx4>zb~y}ZCRzau#G~Abaz;&CU!XKNyG8}8Ijd?tN4Zl zdO%0!OG=TqhpVdvM2&WQf(>5YbKfr32r7OWn-Nm7F-D6v{BQ^XAkLS@#}209hIIB` z0>n!WiR{1L*9QG;IELSDhf-i3UHBSjEb&bP3xvaNAyXK6o&6&Ov2jeR=?7x~(n9_y zLS6MiQJ-KxOV|Yl+XGb$DVIKUtqJ%C^95%5nE`nUIZP;8xq)(KV)+H1SbNNs0E4IxB7X!?}LG2s$F? zdqPt@Hz>zGDG!}A>PIUx*^XU?4Jk-f%3W>C*#FSut>Pr}ot?q8ja+)Q4?C|DZ%@7U zK?sg9%#)xYD0wCt__5JNPOqn}#49+ME4dtgrUt2kSmEH`Hp(a#HXJ@V5ieWhaKdG4 z=kHxC(3qEU&VC+WYG zuBOtYRyIXLm<%eKWe_>{(d}~Y1{7Ex>xWL z?{{fJWDO>jOCD)kF$tXA`seU^7B2skl*+{E8E;89zQ|p~qCuj;Avc(-!U|#;(@&RB z-noBGO-t)z7;D|6b8N$p5J8Y_QJ63*OOa}U{FqwbsB&rDpmXjDY^a8==)=B~6wLYQ_8kq^Pt(YECOXmc&tnCc{Bufie>botmm+)}L7TeS^1a>&`( zt(39}1t7L0i~mGb9@LcrRw~ z^Z5ps5ufk}rb*ory#HvQ-9iRaEtP1(di*Jgu}u9a-G z?W+Cxf)u=Aicmzcj%Dbf7R0=I#^rY5y!67~ z0A%Y?r+!HUqV1hE$tFQLDUcYkbpUQN+d@ONFAhtKu&`J7O}#76*B|u7K*b4VRvH*l ze}$3b`a)$Vba)IyC(&P#Q!CxNNSBEZj}2~4vClxj9wJl{{L@i>7lcORKgyR(ZL)L3 zqW@H{t!qr$0s}U2k_AX%lzcBUbaLeoU zSuv~Ol^~-=+hT?6`I(=mSGQqgFrFpw82Gb})Z zgU3(Y64LiQgMm@Ohho92VQw!)iT=W@=YSvl{SiAjd{B7pKd6n1PV4d#zBm<@>DrEu zq}`4r!GI7>NtBSANpq(GdF87*mX#^?L9ZsPYu<>8YVuz|@BdByXJl??_y6?$PevwI z2Dbn1{wEv5fAPQnN%$WI;{U$?B|6*8<=F4ogMQnjx_S7y&dAG}9V=tNK?rS+BCm`H ztUf=0tP;?Wu?Ybjb!`GQt9JZe%eP#$F_6~kMH691bXRYLcgB;*{UwSDhL#>r9${Cv zzY=Tb)aAYWe8*#UTcEyOlCXcfutt@#!_Vc(8n?wf?e^s~^_p`$8(m7%Gs5s;xc?6# zI1`)%trDBcrv!cM@sIK7*zCg*lZ3@rD@0td1?(p^xzBd^-JIc7Qq1<1yCb7jcyNj zxiM#t32zg^t@?Pa`wsyn;Y*tB@niPzA5yKwCsEg8JOfksO?odU`E+t!8QU};yP~hJ z{N*RfU3mG~c_P@ekN#vt2fzJcWK_+TjC`Da^bKx*lKqQ)*0t}x#nFz#|#B z=$D<>^Dz0FReHIG!#UIxdP4oha#d{r5P=qb!S=g66Z|zk~WSd1gf3fJZ`fwTc=Tm7*PJ z;nX-A)zn$-!*A(MS`BZlz2nY}N zCk1hgoSQqy-vJna!t=S2Oa!0| zGj?@#1slNlH$6FXx|39QJ#jVbI6&epA>LlVk2&#Y2M{>r{qs-LdIuG3XBZ!r4|X5b zbX;-Gu{;I<`DQ%36TmceX0Pbo0z35@M?Rfx6e^g#QG?j>NRc83j2+gqqZ+unrkFO2&di`3T1F@v+03mL z(z1H)>V@xQzB#jtc`I0?zvUK}lqjmogCa3#JJB|rrg=M$d9Qb$*6qx;yM4mLDX9>I zAx4~_q?y2>XfrPIk z;+-PJ7H7=Gi&AB32#VAvQ~2S2G(z~0Sb+$C7Bm-jcF~5@n|L3dH7H7~GC3UjXay3U zzTTg^pSw1k=Vf)@0FhriK{@H^BnZOtGb=AFc=T`y0cfwr9Yg??pF32drWcPkfpQp- zB4A*kBYmh4TKbxsE=n;@=MxmIX6xI>Y%)p8uH`DNuyBBLVePEBdj$T^pND_db$4Gz zVXwNaU>5c^(#qU!iVj**QpQ^lkwS^(Lhk*+ElS!5awPc+%TM_u{8^k(odSS`u~}}2 z_f6to^zToE#{Ka0_JbJeFGTQd_eBg?FVQ3Q$!6Iep+4_O^XeA2Q|oF%lXsRHb9h%8 zO{Milr+e5l_m=T$2JLAH+@t=;U&^+@bXy+7x1SmoO^1F+M>ASe^7iHhKh9K{==Oq++B*|g4WF)xLkS!?zKTVvo zC{8_96;+x9;-;squS9QCw%IOt5+b2)Tu31|%-kSt;!Mex{%?Eg>1&_JYoBk;oV{gT zFT@NsTQa)8D5!SjXE~FmLC4u%*@WLOlssPp_Zzp7JbFJo_;xiv_$&JWRfC%8b^-tbV>1wfy@rKW>-ksUs8}U1$#fH~fg))yjaxB;!_f%TnzYsgGtDC&v-%H%jPPyKZ z|C3kvv|%K+-M;?kHJXEnJ?-dYLQGo^y_vlDkg8}I1&UH->;n+`5F!UWoG6Y~;aY}r zu`PrUTi@jn8+R##?4A2Z1O$F}9062t_oxb`A&J?RKZg5kdg=n#w@gkDo=8w2Qyq6Br?l-i8-#|YC|_#H;H!gyWgWi>oC+QJPVsul-46D6?uIs`2-tC2 zBOqaWj>Q){3n7a{kbwI)#2-~R_~GM;2w?pAu>~7U$0Cfd#UGt^PLCq4^UXqAkA#w( zT|Tpp_v4>eM805Ps}wd21sV_jfu@5y8gV290s)H`R3qlprysrD(Dx1iM`VdSYqj5;caLkGZ!;m4@oBOkr}qh%z3LmFWs zm(HRuAsRzXB88j$6Im*xA1+<;tdg%_zUXM3y$|~Sb&RlNfto=)UC%6+eiRK)1Z~-I zhxG(~@pi-kz8*K@_DSt~859;?juIv`Cx_GhNbYHeTXLN)e6gzctiD^mR(D6T>-THM z?>P!FAC9Wp95Pon#qX06VIO45+y0l--iWbihR2KO)^{3dYCXjsta@;oG1Tj2I7;pgp zWTyq@kUNNwAE+wo1Av=K)Bva5LeRQ4Y`>pGgC)(!kx;dg>Xzi2x-(uT*<2 z5@Pm1hY(O2Eg|~ztSU>^L#+szK|Dq6&MViwBYy`DBlVPzJ6-5p7bet!)hqFI_WlAI zp`{2EfpU>FXaf>uKt))^sbCuYsY}8XfseP1cf}G8Js=z(%;U9GStJxA(qK6dQwE?o zcwGQ2-J`1HFj;$L0#UD!=x`+-poawtC}yGm@&G4j6 z1!F|aiyjM(VqH5|33QNV{YCV(A)y0JenCdJ@067$=%AG!B6Ce;F40W9EovleUOK9_hhlz0?E zkXoR?XRW7A|2x7$K_Hmq6XRT2QxYxjkL>G>EI)9&Mu_5UC@G24eYiPDq?b>iw8`+y z2Bj|R&NZ_F;#X_uc%o7&1PW%2DFCy_7NTzj4{l8*wL@~3Pzd|?j271SOxERGM z7(qbbUD3BkU(NSv&~O>M68~D?>nnR_&rX28&qX9{x;{2l!(*`g_p|cHF@5a)&UQ43 zC2B#k(aYMl{7o5s>}?JK&uAX$Z<@O2%hW$19#XmHT)A>wOc)PTaXhmJ+uv7!hv$0h z1CA2gQHLpoilUDSd2AT9{sC-t-6g}}zo?RDR012cJa<7MuXa6^gYAoojM0jviOv+g zju$VdSIKdHjxdYtXiLcdeODLc{@EQtvetCVXTMnSJ0I;Q+uFLImS0;wYfF@ zCufNKX}93mFN39B{Y^_7%$F!|w}9;3$kjer#cR-Pf{VL|VHrKJt{u59xl~l~)THC% z+RmC1DSWHx#myOdgd3Y)p(*EqcG$q!mFHjB)6_w6U&x z*p*P$TWF-xzoen1u~FwX=Adjl3;UGI`svszwf^KU*}8A%H}bYw9$G^ec$TD895w7$~*SFh13yb)8mcgp8lVcL{kcSEUztG|p@Dus zg=xoY*PsG;uqtsO6cCzByH*BrAs`YMutEn83ny`S7IG;Bsz@88s#vA<@y`$>ZEw6> zDSAopbR3A3J{Ffmd;$T3<;3HGh8q~BxU53^3Pj`JnYaqeieO$-Xg5lX&*Y?$;Yt;n z5ai+D`BX&XKZoUI=B@uk8}!;EK|zsV(qB;`5ZP$b%UWjg_eaeHV9p&zn%S=j6|LH1 zyXYsE8rx$E6%>{|f~SxSm<072bR;63P2~ZprsiG|ONIP;cE`7|kF&R}1ltDiTAJM* zmqjmp4I(YC0q5eOAENz2sDDY2uDGQd6bnj}4E8UF(`=uFJBE_pQgP!`Dq5eAYhwu60H&xQ!DiNz1m3U-dtf9ygBA;Q*sBw5}ARLS0mfIQ_CR*k|ML z_9yc~3M$Zwjl482B1xZ}5Z3TuuG|Dol$q7OCJm-$FsZepH*dlGn4ee?XJm1}1@54z zOf$lAK{gF00hiEH#%fQ{u(jpT34z>#9a(eMaSfIha@o{oAV4gqLO`Phc226HxjjJ8 zV3rHJ6(0&wuolmynN~vdW-6OaJexZjqV_;t-=3E2hsL|GV@8r0^(;t=VclOb@P%+> z4yTeCz(K3g0>E*umf*jsT(-0y&Hz@g-TfE{MhIoaMeH9tH0i#b4D#Oj%0Yn;(uY8% z=4*9<2oOBlnBaQz66SN=#(nerhboFH|J}=o_PULoQEwqRa^j9hA0T9gKlPKNX<apmsUzKFR=tfRKU=Lk)+4&T_Kdd$qW7RmFz z<$FzM6W8 zs}IJroLmHd2{*lAr*aS`SsJXUHMpGE3P#cpwa9;`=s_Ec#4^o^bYa`f{m!hx`-ztM zYsz+9Y}f5dQ!EiW*dgNUiv~|TrNO-Rz^YLtG9E>jlkf1G!SObcM$`0j<_83$g;yj) zY(zc2nG@ejgpte=Lg`@~0d_tbeB^NEk36Ro4(H7DTJMVn9ElPAra`;QUq;b+`28h4 zbB5OmGqgiJ-W>+-MT||wd&K$%TL`II-|i?wv6RoSe(#s;phP|bKM($#*6G9}sFL_1 z&Ph`#^hiq3kyJy%tEXL~(w^rDY&fZS#ovS@-8mTWQg)~Ao2o^Hp8-k3FE=_#(UnY2 zW3w4QREUv&Q&Qk>f6Ok{IzuiX-`HKR2{+;XkRI!ouQKs|LuAl7j+D+Z96rQpu)I+a zteUC;f-->FjD9#?e&E3c}vA|)8*F%<)+k z!4#WNmmV-9BZaM)arr%MSY(J}OnXv@>I@)MV#;CqB%|9FS4dg0^>64#Ca!yr^dmm~ zM=;Jkvcg#@iKOU1yn+z>69hO~E`Z;iWlb`y=+>HYuYo45rdSyLs_svOE@>m4siuFV_tkaI6_*Oy_NQv8(!q8hov5X#}g!N5rr zti-IhR}RMi@dGW1;nOO^2FOK4N0rW}AOC3U4mrp*WWVN~KR)3DEhh)qrCfw;Az^`h zpVK*D_vjJ=K5Cqv+9(j$;R^W1b)1bq`t|Ml{Mud(fJ{szLso&4L`kV$TQ8(zy~qki zsg?p=i@XRpw}%izSy}$0Y0f)`1)*s;yJeLZ|Foo zb2D8qkJ0}>oQnSw{;%g`;A~`W@;}Z8_`l)*%#5t8{|*0VXJ%vhFaG~O3IE4r`9Ju- zjk?FS-}WD`>-%ixIIruClA1}@l}_tyq?KJ&dt6iza|qk?F$G*!6m;`+5mC$e@+x#{ zDOy!k(L^>I0@%^_GwZ}fK^60a zwvtkM?oH1hw<^}-%!IF=N1yFKR;JCVIDUT*Uz$%l0NwCARjVK4TT2=rA%qqLUkhE6 zhhf(?_^)%kG5z0%&<%sn-8x4({dz#3bxRPkaa51V|J{&5`-{}sf@xHlRX_Z z|NCm}=UbCiMNc1}r}C1YNnnTcPAG&$*-1OQo1kpBNO;^=w@u}D5yVZq^%pOt_tW^W zj+h=#83&pGfLS8&u1UAAB#u4YWYpd3VU#kv-JSifE?K=hM^=yBDy5qXd0s?35eEn& z5C?LIVJNJb=wyz~O*e>eg+6z@GnmCeOlmAZ#8G|D=OA7_<()1ss)SfbO%NbBIKud6&-S{!!)N_H$4{&I#g1RC z`nxdg^cxFMgO=vhXp1p`-;SGR?Y(4O1*~li$rIs06}<5WNGhV)a!<}Omz>aWI2?%f z>RUMAkg-c39`Si36TpwBMH6T#sL?)ZiVESV@QcMPe*!t*WVFDX0j<(ZdC(#Q;Ju z6Puq*nAu*Wmu+koOCT9)*|wX-`^?W9N{hGP6lwGDcoG&=rj03$fZtJ-LwjylYf{`AnzA&S5avK+Uc|04~NPPl~5@MZmR-1kz&ysSh2WQv_wt0~HH1O2C;H84!`j zqUp`5&V6tHb!c*7Z;Jbxhw*u#L9gR*jA~Qvr~3HbN+Bn6XnjmpH5f)2s{p-++^ zq^}h-Y539pZu2pGG5gbP^Jz`_c=-q9wI5aI!V^{CI!2|?3SKdC4 zPL3njdF_VvkNO2Q=GVGypSy%_2IUf6r*)xc%R1NPBygy*ea4?YCq_w4IWIlHo6k8t zp4GGtcc(e)Y%U+t=6b1(F=7Y(CIf`VGn=&nnKT-;j3HB{z_CtgWz5*$Nrwsi?Vj0j za@CHICIkin(VWK?8Q{@<$-hY=9g~xdCJ73}-Wr~5v|rlNsN5IFzvgKPwYuCq&^^|~ z>0;UCzp`WKzS6)p*0~=?wGyB3a-1$WCe05j&RfaSaEB||j7*sYtmAgym<6(s2Cya8 zf2YLKF?Tw~_%%4j(lhO%Y(U( z4A1r+IMr}<40-n7ns0m^#>p-DeoRB`WN(!%^R~>sK1^;x#{MFt@Oxw0gUnESC`&7= zOXEzXhVq)6_GU{-D4aLGJz+YZ);DWMQ0) zWsS~>r87E@d4ek%-Y=ZPh^KTKQ}dcV?&kA)=GYLCsZIzuD<`FN(uQ{`s z!}|rsmVrc?*}j@hp@xg$vc%Mi;jt4cD8OQ%KKWIdG8~KUewv+do6)Z&XCG=g-!3** z{^WNv>TR;9Bo%l$Y8a{PkE0Hqqe5vjCkawH_deNrs4ir%>%uvzp*TJ6HJ{~4`O4X8 z?<28tOlm<$K<-R09lKgTr~Aaa%? zDClUL41>aQ7ozN3Yx1Z*uQeB{Sj=6&u4i2-#AS*$!d@c&_HVjnc~~Y9%-q~P*}>&5KH2F>WlYdNI22vYU|yR#X7F;# z|3qB~HS5(6H8hWA`SXt9=Y!w!N-*w@I~jfDozpvpi}}|ykz}C{AE>V& zBQ<0I66zT?_`M1@q*~t(A_v4=ITg5$8CQ!sG31{oF8j@Q2=Lo{DD=$cub=jgK}jYC zO6as$CCLS07142Y`tH3evCp zuyPbE3pWU6ty(M)DBQzU+S#yq=D9Z}p~t(1?%vog7qWblCVu7&)aIFeXS(&8VvBnTXcf` zH3;k%gdm69Vl!LXDk_5nn1+iz%838(@Qe%6pFitpei`HE9>w=qtmS@ zib|*mrgIUmt68$UISCCkCt)|)bD%JX@mJW#LOEOHg$dQ<-I{+F6XT-xux2tw2bb;^ z44gp=yC(?S8BBPg0cHyLeDtEDgqVl>WA%f{AqYN^&s>qoi>nIN$c_^^Ilk?{FmPrA z=x7*4O7HZ}(4u7#VH;?*)A$vD?!6cR4FxU`_CNxOTe4Q2`>E@PJ$w?|<~MFg3>0#% z8*DzBt#XxJJQKV@^-Fg$XFT^{bUy|Fp{8Rw3h)oq05?i+E*osE9e=}JLxNH0IM0;6 z5@seL@<`?|sr#yp9K<#L*5%V)IaTQtax&_oKXZSSxV=cD)W3EW(}^=?vuUL7A+7C3 z%gv=kcX?CK7etatex{5INPppX5f~H6U(zDHFd({JPwnSLh#zH~;oxO?d2odiIIA>p z*=YzC;r$UiC_L4`-5VIg3tTpGNoKB1B&RUsOYMK+>+6+#j|k0-AkuJug_ciaV!o=b zp+tA_z#083vYQuOfCg&D8jJ=Gj0dPlEyI89#+mOYJd6+`mE3k1AoVJ61fFf2v0o!F zrBS#rrzs#D1F~*}nCkNNDt32kmXzBpNJ-zQc1pQoSwmB^D105?0m%#%E97iD0Aeh^ z6D4C*`nRM+Bw9}E{yPw)GC_h1WK2$_s*UT#nGe+W>YXT#qLKUS%|dbN{2x{I#?0gM zh=%NYi9fCD9vRxi={S!#!F$YNk%HP~WaI^U9sj54b3qdngE&^dVRFWc3NuI4zdN(m z3if^taa`bJPDwf{9-g%Sz66L#zy>lxsYw4?iS{s<9ur0c=1C3VE;-vRh0jaiCf^5P z@O?+b-3=*E?}zE#z|E<5Vww#d*@Ipyu-aS?nfhZ8BT1kk{&Ap$N&jdphgL*H?VXr8 zV=%^srXIL61emi+s0kbZ07YU#Fu~ZPQU3BJeCLbR_kLX2Qvt2dyaJF!u&84rRD`!T zJ2-c=%N*~A^mPkYyZ*Pv(Pfv}f|6fQsbc8Dli|hTG-qp6fqf6A_C&x%_coTn zc0@E*Z_D8)XcS>8VTs66Zj{E@JzM}NyKSKYQArer=@Y*kl@J^gm|-FZlBh?R3wF>< z3@5fw`m_a1kQ8@>fggT&qF2Z5qafouC~k_s}D8mKR$-juCe z7U;l$-D^k|;lPd|qX9-Y6v+8+#=&MmUqU~3Xa)TicC&J@Oe{)RGm3N{RMb!Dz6x(^ zmd8F#Y7r?0K3weq#>%k54$E^Wp_;cSByuBRrw1^y{=Fn}K#Qc`P+U^( z4yIq;s-aYxkQVPT9VtritJ#C;AhS@iWA(tkW?G3r)4JufNH&p75JH<#NEHVuOaca> zr8x}?6m2dh!svhvWqhH^NY;Wa%_RvJIE?!a9GO(3U`)(FV`Qj+$8BEEScEFen-CB( zmFqW+Ojk-zz-=6;yHG-UO@{pE2<`NsrL(rlImQ6-@2Xpm6oyO=TW-kv@q=^Bq4$-Z ze;`IuC?d}vr&Na$@+~e-H77|crO+5jW$qIUB|CkG+K33Q!_*96Jo@&n(2NxYA}_nY z5sC_OBAGUB=7&61oPmtYXapH9>M<(1puL4ur)LcE_gpJU=O@|?bSAhv304tHh)8%+IEQ*hzbV7QtipJNKAV>>gQ8}eG!P;o}l)V6mSs{fn$Vd zyoEZG7GLeOefB!>&6>>hQ$Y3>7go-Gg|2Wc7YtQcp;jVdce2*<(d4cDIrHji7KLgo z5hXc1f2GmE2MX7Lpc6dE2TTU$*hz9k7{n=F9rAadl{r>ZBEsJda$j zhh^|ewP3^BnHCP3vIu^vL9yz3)6a?U1=$KH$al#B>Im^JBK>zDHj@Wii!%>(lv=-8 zu!TZ>$;~Qz988%(Uj7R+LInxHZy8Z3YB4&w4G&P7#T zK#*Z91pa1-fn}CK5G`R)ICJHdy{4nk#|Hq2D8H^HHM6N@6>sr9UZq#PKX~?IFwnLu zi7r^_murx*i$wElNQv^9Q2|m4p+J&62K z-$E3rw$kn5PP$)RI!{~tLd^J|Mfo0EwuIZ-1Ic1=0Zj*>?lBA1KyU~pmtzrbRBRm7PrwIct;mVP)j$a?{gYlp2oIe~-!)ZGo?eeAph$FJF%JFA`->EM9| zALH!7MJthpv=39$#X|uOrppB%%=>cj{tJassPOo=44l1h*=PEaz3b(*g^nzugn{8=2i<+-qAzPs z_h+b~h3_jieWzncE91Z{(KA7B^^Z5TVNkYok|_Cr1{jJMc7O$+mQQugkip;OCiE(S zf$~Y)fZU53UArr@BTpN&V`|m3R74~QKy3`)!^PT}o{>Ss*QxS~d!I2!F1|dV*Q>{_ zo4G-F0#iy97W;_D0)0W#1fGPARhA`$X4CO+`gR6xt`~36ye-3tmgzUXL8ure?Nug z))AS($5G~qT7*&vVIo@on2*Ama)twE7L`E(H-ZBdV^w(Ki9}$GvIyJ{89{=ibKK^o z-=gjbIUGJtI^up!&Y!wbS64PPHBAnj9@oI{pk`!(U-=}A#34ubv@mLa3wX797}czr zI{0SWesdVG7L@F_Y55B&U1-kX~1VqmjkU+#rBd8h+yO{Y5UQ>7CHD zYGQOYP6rF{*lP~|vaDxEpK|nUBiHQfd3m?=?BYG-Z5O+BXV6LWdgSkIg$KALfEF2g z(7WyGJUIShOj>lI+q!q7n&JR2K+wMzP9!t-as_1ATFftsGA7{;@S&pAalw_}xM>14 z9oyF}>sGGoYgf#!Zh)FKgNN@|#~)bTeHeD%ugnJTtKb0q$}pR|Fc9GujpMx7LXO5Z zm2YK3-By-Wi>9_lVN0t3Cw?Mw3zhIdg2S$pUtf>+w|xG+P9e5KU-St+LA=EmI2bsB z-Zp%EmabqSlmMiEIY8}b5`l7P@sNONxp>iL-n`|8vHo+!L#^8}d+~nSk-Sd)8oA%? zyDb}w!|I83r$qE1h@Qyj_{jVQSxvkj%OwfwvyHFIXj~yBnjNZeJp+O74z;;(l##h_ zgT!Lb0pn4F(9~WHZ!N8YWGVot(h*D(xp)jnHkYCvT6FCrbNHpBK{}~EIvzN#^&?WU zcg2}S=CGw(!M4lnn?LCt)7TX3WwE9OOX8_qF!f{M?ax>2lV_iI&G<(id3v+Je;U_1 z)s-POAxSPT0N z9%E`2<6+{ z!E^5w8G|pR44-c%3(ByU#~HPjQ%&O%vqbS9y*v)L+1d&9IW! zimGei3qOFR$oh1M>$pq*7!F@4B-o}K65VFL~sXeMXKB>w4= zbcqt7hXH_0&h{rTND|8B&Kg0n64$&ap0Hh5h+U$QptP=_NVQ?p3yy?A5pDF;C?NjU;NBaq@!nQMBz5>-X}k zNe`CZBaVsX>-5ShLsr@64CHRBdW4seQ)*@(po!!bismjBjov%dxHF;O>q@_Py2gbh zhV#)J=i<#6lv7tMoBA1+?pOUBze+Q-*a(|;#f>M;mbA0`Mzv*Qqu*|S({9mdtA)6J zD?V&QGHGvuBNbH+KEe?OwHM=TeP`a>_Tlfp(MLT8oyskrHo+w|)(9|3{VUgs+SDsv zaMmxUE``L!~I@-#G_g&cx1dZdZ($o?KD9v|~QwKm_YrI{$uDPB9zteC(tuaN?qozZ-0$ z+xeB5)XOR%tFxr;i@Cpz@Oi>h_JG(GB5`G$Zc&AK(bWqD=gX z)r?Dz;UV}<+3r`QR{kE|Ik5Pc^0&v2Z9$(qKPFkF-PuRc2J_ZgG+wR8kL84-yy)u! z#~y_e2Fw21@H;|G+3!_6OCHadxW9?NgtR)mUEFx{xwz|vcr}K+vN3VOpO)JnH&2(B z4?9kpgn9qDqHNZ2UMD%9{yBD;^5l9<$92Y$$uP|xuE?NaWnTB~#Oj#A$&aXiTxId< zXQk-J-qIthPX7u?~sN#2@+q=A(2 z+6k4O(FE*4Ie}{HoS$pBS%-3(lM0?!b0-+_gtu!mX}ZNg2n`hG^;Y5VJH#S`+<0Wx zeL}cv+mX@Nfy>W&_nWrPsQT12J9+%Aq>l{R|M71+u66pRJ|dnFQOw}h$K8~MqOy>^ zX~YtGK=Wcgt^GZSBzPgFWy^b&xoP64r5gYs=rfoq(@ixB1dp)K);}zT?8vGX@kt|sf-C9 z*yB&tUZy=pplbz7V`stK9i})UBsC)hhkQPHtQzqhz}~Eu|FK!XDv zkz;GfMaBso@Oo0PTg0ZVxU6ng8dQI1iHp>s_og>@| z^QEh2;kW}_^_{#)acX!YE76OSm!3|*K)m9x&o}0Qu9`jOYbuDD}2rH@w105{(4f?ml;&@3V!v}65BR;6irhVy5g)z>&TmD=^#5qn@ zZ;)2(fJQ`^dXN?Sd?H(|?)~07m9VePP30N{w}dEZ}-R#V9I!W!ixjH>-E>qt<4?^BPPAjlej;sq0WsRNhcU#Lcn{Z zTUomGh@BY)QpXY+p>f8HOCY&F8L)nvfNr@sw_YK3u>++(30~s|1e78LK=}WOMBK(V zq95S({)M(f0PwJ@+}heB)Uju6UiG7>V3!+K@%T>lK~&$i7oPxlvID7!e+^z&W!c&i z_q)9L$X2>)z;b#*mD(ef)}rN)6_h9RZSKa>jZ2|S%V~u+azE1CRfqgYx@YiZoM*&? zP?9L!iPI~^#@#D9wkWGmYxT=%R!QG4-PSnvi0QeLpKf54Dsk0w$(N zh9E|k!jb`*=N6A{cM$Vgv#K9O`=qmVCj{B*gYm%-*#a>3;zMJJm^qQ(ny*sd3b z%&l{QhkWsekDQ&w1mvq|Vdr2>4~R<-j+$bm6T}2rj=s*ps2ul43pE*;*w5ISuBVJD z&&RWlcGpWP6f&8(qlwgs9A2-(i`RR{+Yx+Hmpy*}v-o*@MYNNvZju(~;&7g$2<#{( zFxh47yfG_4)nZNRXvS8@(FA=@QeO~+^h63R0=wnQV5@a_8LMT-1pu@gT`BXZQfUp3cC%0ppAQwg?M}+!q48Rq zQ>pc8t)TfwrAEWyY`(DL)h6d!t3x3y4u=9Kg~hw;>&X6)5(n8IoD!G?#{&Turr!>0 z>TULy86RPBzITV=o1GrYO3KPdY*`MkcP40e(y4SmLsn|^^!!2U&F6?TU=JpShPRFC zDvtgj{jA;1;ro0WuhMEcyge8hM?%2oLydtzz#A0&tf9d>sJ8!|b;{Uh_as(dv1@puB>0*rvOfH9qGLy|FflM|-VkU?8sOxzf zC8&=<#Os$Bl)~2MUouoQyXvj>`BAvss(kMk%o?@&0Y$~dW5>CEbjj3e=p9>MkMcGV zYUWAwdS5IGdPlq?5opxL4<~bHnqY&aMx($c6Ddb-a5*(ex2%?nCsPZuGBT)+e9@%n zad4y1&(}L@*E(&EzmOcbxwzK9#xeBToloQBvbn}GSgla^gT77H8!hgxgDwR0Nfc}$ zK7DTbASQG%Ar`B3ye?%%H*mRKDRwiN&0+{}lk#z9(gS`F@68uW&uHWsRI~H3u{D3? z2?iz2b9=wk;_$dDtT)?Gzuq7J*zfa@(1lkb#0+e7zux8*jr@FnmZ$z%p;9dew)KA9 z;};ZY%1&|rGbVWuWB`AtIupRrq|~tpx&H{smzc0y?#R z-@bi3sgBtoSS;qXepj1qR1X%5MUsi2*X41g#8N3Vk_SD$t{q3w?Axt^#iK0w#A(Qb zK~`mi>g0n%LvT~Fy(^xpwFdPb_ogP3XG_0}g+t+`KoAkJ*{mr%yZC;=6&=s)K4Y+m z7>^~8QURYd{#L7@BCq8sQLp$bN;i%j4>k@I6cj@D>mO{i?!(V~;ZUg-+b!e6(fIi; zFSpy<+r1qW)X!@(T6F15v1lyHNqrJTl)rouyIpVp`~(u2S;n~roV=8acslY~*u6cR zGU@jMieE!vF^RySQT0#QznhLhKtRadt~NFP=8#gHUOb@F+rL&(djs-c_y#4Ef6$@rxvH1MDaab&0#ci;r5~htfoQ@*Jh|#4e9RK`{X-7N`%Q+8}*V=Xe zXG*zLJbH#Ic6cU@Q8+w@$K&n>W|8MKZM?&Lu7JH9JRN!vgiX`!;0zoPr*8jrp@GS43d<@Y62sUn z5l@6Zy1_!k5p9;vZM)f;o0&U$-qBjMc%A)2?tHdVgZU>j12mm(XITU(FwwGBYN3B@ z{&aoHt~eq|DauRl_2m1qUu*K=0dsa>MATgtRydRlb>o87A?Pl(L`30a@j5a1EanV1 zcdNBFrcQzR$zlk+mCu$~8N;ZVd@LA^0*7N?V#D6lg8`8VrEl=yiC6{qjt^aKV8SgVIXMF)%Kb zUCk0nzKre+ykS`?mrXRq2j1mr76~F?W0sTJ&Vw7m>%mV#5}cR1*X8|tDFXu^|C^Zt z8D>?|cD?a*lZL%pyUj8CuO}4C<){pGlHUdOq(9R#Tj?;2SL$|oQdae41W3hOf!INt zv0iTJHCv}c`z>E=f*Mmr<0r437aFw3jwg)Az4;@B;qB+pI0+0zppC?zxxZapGCyoI zS`d#eBx^1|+}#&sbr00cjKVtq^X9t;Aeza?ga&8a(By9vLO-5D&c?TDS1-J95KMU5 zaOtf5b>?!V%tv6#R{31Ml?BSC@0T*A;&GaJoSwBK`9NKF_ZOeb(r>!4d7zThe(>{V zn~fxtoH@hqNoyyM+MXGHLxN|&x6@K!!og0vL>-lj>udf}y&m6+>s}bRRPhr|O=c6u zhdXYi?Rj@1zMiq64WkCFC^RaS69U0BG>W>szq0Evo8-G~dzevsK90LP`wYG;K3;8Q+R##U#bqhQrOT8+TemX-m!Zt^!;YI@ zMT?o2kIgMhO~B83t@Wy%ZApyigY+3Jjn9r5I3p$HDs{R${P7WzvzZVKp%;PCi9_aP z#xf^*5e>=A+<>JuLtsyuVc!co#pJE)SU9~%iAU2lg=<*TMt(>u`}8Za`+$kp#`qqE z94!3*8=UpO;6HYb_7*Pxd+{Ge26iU4|Ahbi_xqp!W$+)Q?Em@xXD#l}>|wv-tgG$~ zt-I#VxXw7xsBjV34ugbgeAU-b&d$Jd zZ|X|L{TllgZy-?gT}DV#b5>l2cACnjm7U}w55`!ae}sb)b5OX%%U{a`=eZHF!=5&MYu zz@E(?eir^P^v8cQXD>QS8VfawdZ}SNx&AgN*M1vac*TdGTn931>^2(8l3DTTDi@`0 z@5J)hicprE>u5|gn#mXmMB%pJ=aMej5-mm(x)c93hnONPRmfM^5qYu2Fc?D)&rs_V zrdkudEW@p_LMS_-|8_8oR!{XY@j7Q6LhaUg13-(MyhO^|Jx1T%=-ea zQhg)T5lnDQfk(YK1ECC7Z7zeKstELm($R_Op|d;t=*QG?rF@nCz1!2x;*XYn*dmGI zh1PzpI{8rutE}lalUs<-1!w|Gj+*!JjpO1J9Ap6+bj_Q1Am={0(y3uALf+B?)3KP=89*vm=ZIfIE|#~4${69hLp@jV(va_&`- z@;vH+tt($HwxL<#1niK20g5EDvz0H4L_(IQaU#F!Gijf%MpQk}68Yy1&V@9W{&dG0 z(PvBy+Z~soPAs-b#&edI1Mq0ci;U6P?bACdv%US&Km6q@MDvO7fDs*)_OXSTZ7$s3 zfiV~!^EiXc#IrWO)y9&E&zxFtJT0}wa&Zf%r-(c1Es&g(8+uXjq&SSZlwfUV3VCM9 z41dVVso;>%5h3@vkaFo1t2{B@s%y)~Ct3v74?eTzP$Oc>_R+7w2U?KiNOiaeh&Nfs zDear&nM-rl`FpV*yBj9r0#(<$j^{ zQ1C&4qXu@*D|SA&wlv&b@Im{6MUf>+D!Y^JX7YOk)9#TC*Q5P8bjn(Egud=Pan7m+ z^dQTrvmF<&Hu+|C3sfZnQxmc)UGx(ZP~Kk)%PHz9Vr3MBP9S5 zRG-5b(KnnywnVJ5UvQ)Ub8gn1DPV;dxMSy+9@~9{w|zgl!MPU*23fxPG-&m4KHTBH zu|t12ZN)dq7>Rz@zkKQa8i{aEuXlO;HbE!+1f8i#OEpx}(-Xw~v^_)K?Zc*4*%gwX z&)9uimFsvga((zFd|hJq6FXU{*V>@5PFnyl?`Tcsk0j;~1mxQ{BHeZ(sl`*cJG23w zzS5GlY=jF??fNqI?Q~+yz3_@N0db;)efPFHpLrRM#IM}q4u`DNbin#;%OCBh^$LRb za^h6k^+uAFG(q3}j?90Dw_lepUsvYC2&mf9*}Q34xoL)BcbK>UefK zkY8CIr6-4ad2va#A8_-XoQ)w00ujaATj5#uW43W-z_io#(Xa ztkcG7mHlQQDS*aF6FF!0Peexrudx2S@>TWCi-oNG_zh33* z*?`*1rC&lWWN-nR`RzHLMIEC`84Z3|utb~cv;EY@KD(A93~@7&sVCG5tTXrVmBR}M z9EBRudBAL!u`12;I z5NzOc3N&*^I}rj@{~stT$%zwT@TfqT`A>F9c% z0Bq&*g{i5Fk#a2w2PY^2Oq{WhJom+F4vut?AmD)!!}P)7v`mUphH0EaHf9RXu z7X$`nhrfe$EMz!-0rJHlkymd|1Umw0os`udqlari6%o`1{b`@C&5YgRmvy<(VKMj{ zI|jw@G6-Ppg*iLu{A;z-5dA4}^@SnJ&_SpU_;e$!$hRkfBzs|=FNY*0ofqq)LS|Pm z5^;K7y}TS6Zq z+0K!@U$|R57d{LGWixBjI%-0&DJZMv^I*uo5EG7FAY>Y7e{by zbX*QQjL4W#0&eciLem}RA8^;I7fCg)?9LgU>Ds#*$XR~5OfDtd#J1cXEn0R4fhu0n z=)A6Cf!f<*gfd|W#xAl018Fe!iWaTcDEv#9Y+hQosC!iObTA4i(v2_H(w0SAIu0Af91acLGAK?=x#m1a2_oXkx|?J}3bi2BkGCd_N+sdGG8fM{%l;qmKoSc%HV&La}BY1WKJ8 zdL2Wi1!-OxwgqK) zkOsL7l<>6<+LNBGr5xtxVpIiD07@b>&eSw-Xj%htQb?itHCouYA1w}h?3~VvPZ~`)PF^qRNhB^RJZrLztd+&t-S_*+= zKbLZ#B0-q-Ss=7A2&KUoMN*3ELU5S8lL;SXX95vd{IV(@2}(-rGHxFY<2!2DrwL4g z#MJ~GK~g!GKM+`dJftkJRG_m!tBe2#imhA)9jrtF9RU%92z8FcghsJ|5_ke|98H>} zL?s6zCmISAQ+hl&rGTd@=sqg)DA_TJgn-zYxQAT<0=hb(>C}+qVGEp*5j0T2gZ%c2 zkiL_~u$jG5fP#PeAu45UzM)HSpfRxjxumo8Yg#KKWY|3)rNHEfCF5m4m_?ZBU#|sC zfD|11sev);7!j-FAGH-pQZIWK#ZTo6)f`eHag+We5KP%&s-!b_D7Tp*Aa)IfR8%Kd zca4%f$3lvH+}w!8GD17ml2KOnPP&h;Xb_kXaGi@U@XQ4Hl)t*2dZTe6^Yaw0(Y5roA68*#HzA zmmic6g@0RS39Q5}$U){DAWx}egU3ja?Jznab{jRvVIf*VDhldI8LJ}2dPP%30Zx9T zgi|@|uYCw?!H|DRby6Xqf||aJYBDZKm=INB8-!(*i0J}klh;K)GW*A&KASR%trau0 z**b&J4F`pLK(4)kdSn--(7lQd;LDg-$Sv+M2r;KVyV8}(GB-yB-1#k;9m zD#&vR`9AQc>bIZuh*(N>v`c)oH6jcU6)DCln-na^Q9qdX(;L0hWa>@cvcD&x&O zh47~b*N(dp9?o#&r8c=R3#FR zr1$g=C{w+99Pv|iA7rar4-c$YZ|Sz1c7csmQBJ_+l(_}`38qs=1wtX#rdfJk&s1Zy z7Dn!z-otvUa=&LZKe+kO`Uz?eiEFR=e{&qqwq<=+yYSqZb6cTT2PO@lgvCnM$0x=# zc*|m_O$BMA}tY0i%dSK!Jv$fRh)R-_Be6I3sA`ot7S);NV7Tjy0Fw zOaS4xe|slU1Fb&H%3ZzA)|86c|XDdfzqbYB0s`z_ze4Qsu`xR99umH_d z1jpgnLXw)F%H^{riBU)KYZYk1Q~aQ&cm@XGb$jsgzkb}Srme5KPgq~PDIcpGm~yhA z<@K~4y%u&3WkybSqO~!ECeVQcvBC2P1IRBIfj1iqy6DaPp4!hrV(&jbYi4~_rrQat zU523*mVQRG_qKko|Ka-EKqpZgL41CGZ|zO@kdkZJ|I&g95O6FKYy}3}bR2%>Z1stX z>BbR~^Oac!9WKQ{AA<-jbNcOMO$AU`*M6B2zOR1lu1YZ62^IOPgXH;O{b|*$E`+hIUw4L|h4V?XBAzq{kv)3q{j~KWL z7Dx>1&>b4ABKu27U4IncIPcE#dwT!6`tn(C9jwzds$AwhwUr0oV!X{D(yzEG(wc9SH+AP=b)L zzh@EP81f7P9MT_JfoV7?jqnQs?T5%7N)@!m|1)Irf5HD8O$==Qci;cZ!pg$_pYH!< z{crs5zx4SpOw4~j|CIq1_wy)u^W(<))il!+`oBV8)JY|L0@aa_nA3Yrl+uU>R0pcWcVmR%NP>(kTg-RpV# z^}FXC&!QGhF+tK2*yU`y`}uwPHTyo>u4`ua``+(K5BMe(@IeajJMmL}XpEJI%JMw+ zN=)SUHZ#84hZs=qevvW1Q&S5q@%}_3?p$H+QpQaFiM#aK04MOV7&{d!*ZsbIv*@+b zQRmbglIWB}v#j&{sBl2qB9ehl6TzC>!m!NqjiWcMRc7W{%0y*#R%`2iXLglb%^wSh z>LA6-@E(DiE7#M!B$?K;Bd6~qUw7W~xK%tBA&zc9s?LoNxIBeimfLfIu1Sn~c~+j} zP7bfHJS($h@VMob+sDN&Q0}SKY&SWOX9DCeT(uM88Ybc%6<&qavl>u6U&asFh)5$J9n5OZF+gwA*;M_R2`<=hWGC4zD48mm&u9Y4hw0v=*yB@#K^S4CkQx!%T_J1{HMuMBiZB5--5Jp zl_Qi!mJSCURyP6CMq#3d9J^(#(MH=ya}9fr)?}T3K5yEgQFA3*tVdI<$D1(*iO3eG z)lD(J5rHt6|71gT_CG^69rn3_dIzK9JI^b|UXi{e9MHLCR zn-mIY)l+U5B1Rfmau@|*40+Cj?6SyxyB7Ga7sC~B@=u8qip5oAp&&9aM>uigD40&OF%~H&cm4bT_rYFCRUux@LU?~!8jOW z7T3C1w|dBNN-XGZSdx4_>;mn-6HXgk78sUrdZK=nohDItJGIVPE~a#jl@0I!?O#ALRHvm~gG(73Q;2c&3mUt&kgPK6JL zV4PVBrE#zYuPGOn{M4>7);wUX`WBC?(20dLOn31FEsdv@6s!CD*~o@MmjQrmvinxJ z?k&ZQjZH*B?}vyFt^J=vL?OY@Vb;ymRcKMYan!FVZ1o(FR_|k#+#b>L#bmnE#xgCo z$@>bOQe*Xg;|xhQc(9P4lZL4Xc9Z}VGMccVgWDN4R(tz$Wn)@+w%!x5On`?FRG$8z z5T=2ge9BNCmwkX=9Pe+0A{eT208JG8SYngVbJh0k_4L92*JW6e@|qaJ^! z6dX-jw0h35wqD#(JM4-6I0%HH8zfEDj`&^O4bEI5KinYi^8;eNCEa(tX&*ac+_~;= zUi_C%rT#;p)D89XS!Jh<(cvFPdV4Mag@p=T+f~ACJVHe(7BPu+v8jrTP7~*$L#Nzk zqDjxry>V+hfMs{z5KZRrVl$gg_BL89M9Jjx;nLF5ww@IH;_w+auGDFQZB7*h%*SJE zyvUg>*Zvz}wVyTrf$lGisCD%*hDaU0(I2l5rXYx6BSC5zi!}~$MF*_$JV8n%`YA}J z(6*Y9%Q{;2YbL2i(^;J0*7HS@I2`0Sq$uQagNxpl7M&_KgkTLxP>Dy^~xQXPTT zHXT9k)o{q8mBUrry~FaF8Fp`-(MUmC8>XywEISKJUJf@at=NOi_2Fn)iRlB5wRl*J z<}{)L9uHAU@XW)%2v>L(OLG-#u~m4QXu%pHC9V!)z#PH-%WLE1?=D+`!nFE4##(X9 zW81_8iL^zMkl-{mL@I2#~`GP@ysBcuNWB#)4ADEFfPMarA|%9k!ve5zcHdP=oy3VH>3>YFTSfVWG%nPb4 zNz4VRT$&%pC9o6!l$8-hY321<=6~~CnZKbDT=|#KU%$PR?8apW#50sEi?6*QHTi~@ z&j3I_35wnk3e}reze}(NEW_*OpXn-5mD4j(2ToEvJ;sY%tB9HW ze*Bw-o%wknk^hGv5&udfcchZJha0!R`s6}at(tPAtTOnLmB5vP45?ED$g=vd%8h3q zHz_q-x-Q+&xl^X`V?~V3lz|LPlO_FO1^?2JQ)SLxK$)o!E2JT^7F{AIvT>c-XBiB4 zoZZNqw>1EGE^pvdq#U`A2hGBHnRP-IBDYR{IIUo5v9ehO&7Q-#t#V5fNJj@kgFTe; z00gpCSnOD$;NNv`(tyUt1-T@k5=8hn^-t|lF=0)rrmZcxC)2Z9_nOa2<8h;Ol7Sck zkz>Ks9$^YbmmzVRkxa4**lhmh(BUL0=itPte{(BWVOr_y6SQ7yM_C{XVWf)xqbUT0 ztI_ZMw=eozf4Q|+BwU^Ovm~PosQrSuk#9PLHtC4)C`4mZfn0+#qbOR3TTXa>kQsmr zMn)3+pqP5(DWW-wH}F*Li{R;Ba%ok`rHppFv>XZm@v=bjK1JP73+TH+dE-9Ju-$UeY zY*sXj)hjoVmbAO$pV$sYJ#xe)1cE`d*EIWzkmHes-==?I^yPfIygP*87_i?xT*FCq9|#jhP5C~-^B~6(~O(#*)J#k{8z@u%7GfNi4deQY~Qv1!DbhxhBXHe2p<52wktCRx#Re@j8Hjki>`3=Z+RTihx(#loQhln-jUZbN8zTU+zM}&I zo85NkK%OspVc4cmHZo+lND~RxxV3ydPvvCffPX81-rE)A>TQHo{o|DNWre;cc!~Pi zo;UZ;rfg>8(L?io$?wpp|4@hiy8m#(X}yN=WC^TQ+@xi%e%-q5qX%3~S8u*8 z>YMgX9lK9YB{>&`t?imj*-o9E587PI7PeV{q|o@_P^NO{uvJT&@ijNjuFY3~hI9y&QY7?TzegMKAvTEE}^Q#2YQVJi^=jZn|u} z?yegB1CA7F8kP{U(FMbX=)&9Y`nLl*b;-AjOeA>^*3k9Uu&kF`sy7T_B0b!2BW7}vQVfWXupqFb1 z_&ggg{7qp>)Mq@g@Pz9V(QdQZtc5l0Utlc19O197#tb)xamZr!8PRa7_n>rG_8A$v zMcnm9%%*r|ag?nLwqS&L98`zVqE@w2CCs|r5MQ5kjea*CGjs+~HrkvIJdYBUgwW+G zR#N9)^&3sV3;$EJRiOO6I`91hjn|ehg5ZJhJ&l~9@=+KYrYp}+RQK~Gc**T$e7*H8@UH{q>=EX>)!yu~*SN!+t^Rs7rG9Zky z^%3A&y_3Ad)|NA^Wca9U%eE#FRmbSr`Rm?{$;4y-ZgAk!d~1LYn;xn0kXsK89HbMS z(?|4mjst569DG+EfRR>6Dgng|aHw7aMrW7jxllpJEw0)3PAlcDs?y-O{q!BM=flP4 zo!&oo%;c{jG@BnzD*~&VfOvHz0-Ck7kRVpb8L?KK4g9e;Ol&|r+j~h1f@DBNjv3Za zvSu#nsebo~qeN*6aMNk_X|#vGi>(*-ZHHKT>qLklF_;0R7>tT5#2Jd2H&F!M+$nvN zQooacr**-b&NyojS>+JC13T#yRgLZYD>Fl3`E}y6sr)a_O=5QSVHh3j!AdnKp)4_T zg27QSELtpZ(_Di+)S01qe6-zpMe36v)n86X%zXwG4JOpIcCjS+<6cl83RPAQ>fLnQ zy)}Y311Vpv{>tv;8!m-yzwByZ6IX#9bN=erD}!$|HA3F*OZ^)n=r(wgO5vn@5qj$#1V0HOj$btbif z?o795ThuZ&v~9s>BVLT3dZ-9|p9*r4Gfd+m`yqe7)2kqNcsvw*ZY_Rzd>Ym-tJf!Z zWFCFy0z{@pAUfA}JorytuLh5e*Vi%Kd=Qsv{fDes@15vlATh@~S9-5W7CvC3BCJNa zJ=brUwK*f*=Wl@JsgD{rM2UBJe3c1J;tH#i;>TpaZCeARGT7Q7YAb@qnK&U6d{dumSgZ0E;rs1VN>cw$t&hmrKS3HOR zEerO=)a`_R24Viwt!R5yRm%7jw;%&-8t=P=R~K1N9^p)Q)9iBpunf7D5s zJwt$gYT9ya5W(h*H%Rj&^~P=Yc<)Y_EPO05eU5X;QGw8uGr-bd4Psipw8|t{eMkh# zm8`6oKQgerm28{GLiRJE9E+qZAM!2zCWBF+AsWZzl|$_p6!@~c@oRgL@;`{iKLczY zz+s!g`olg-kj+1Bh;M$;jR;8L47D}McEX&1#t~=s;xG+<{Hpf>#_=Yc377MYjFaGY zfv4H-?t>*BgtVG?*fC4L2bap-7twlWPe9bUCM9(}zcZAQ*0-0VN+nR=;N27fPMetI z+()aq-GD+L0~Tf?qDtoP5ZboyeR>Hh&^e?H73!#Rfle!Y+V(bk`t2mDMF)^@j>m=@9B-tXoc{DaRJ315Bte$d~XJoz};8zMK%y5 zB6Xv#lzO~*%9p-+mw8oac!a`gPkBJ<4vt_7v&4qMkIPW)i$dojZBP%aj{xp|4zFfC)qwj4 zkg>{NIiHgh&6Y%0W{Jg<_ud_4ppyGkyVLQQJF9;j)d|cuAQ1#eeg2vRsB5~^>!nEf!w2Ry>-y&a=ABt0{{_(km{NQhj*+7 z7KGq+1&Y1q0Utl$PTdmyXXbF4OmQanqp4dNLO)B8t0}-w?vuwnr6PW%cESyLud=(R zM(-d>mzM&Ru-weD1v4W<`(MU(vwdLp{-mC5J$~5|uqY2u>UxO(aXZzKlEmNQpxnm1 zG%V1_y{X+w;q1h{Fj6Cq1Gz=G5_a_{bFD(QwI|@hW=rQLHBz`pnk_y|u)@Y>vcY=p z)WL*!ZbXw!{yS~xs~KcgA#@>Ksk9;wAah|un(w$Z6PVz8u2(w+T`Mr=z#@07=;@83 zy8Tk-cK+Ez#oy`Ez#O-JNwDyTU_(xv`_w+wOyt?Kg*XnDusD+HA58@7(|Bh~^ zr+aU5;Tjiq+<;AxAtw{+)ftrRKG;3VR~~*@G}4O$O=pJUP>xercy|nmj*|%wQFP8q z8*@MOazCwK*WS+MUK^j(6R};bb>26-zfB&lcr^cx#eenrQ{1Ikxc#l%$$yP$)H6Gx3UMen|Yp^j_Y~~d##W<;FIdo3%~MN+QI8j0@LT_bmD!p z$8oUw19EMKBDixOyB)WXuT{gZQf-E29;+Q47x*i6bN}g(uelWZyJLu+PaD_b*dh0_)X6ldPM2bOm7Z>06zMQhOPBn>ccM5=dZ zT5O&^xxw#hB`c>n52bHMFqeo@1|_?tM-)-dC?zv(C3AfyyK$Z-T^->N=d7s?GB>vE zC)1?F?@2Q8(2>BdDr{W)jT=}K)`J1Zb#1abRxJ_Zyjy7cy`>MjN42r_pB-E zHl6)6yUgI7p3$>>##{G5Y`F)SZAea5_gEFQ`erzWM{uftPBY_8uK#7QLnSp&xm8c7 zHPdxg`8w5nx1P+MrB}Iq`Vl6hhmwggq*<=Vg9${TGOv{I$IO4K17WwE_Wh<;y5lz5 zh5M$>g}W~8`T1%!Hniidwyhq5zDte)B9zmojA%(8wj17g3};TU#d>r(1NWu0iM#ft zh5Pns%FF(n?yvb07=Lc}-)6n*EiT@aRcJ9x{(s_Ef&YvBpPrF{^Z%R+(YDu>m1)&bkLjMf^qn2(2R4x3 zXZYrf@A-1`Mz@RA`_Rj`!q?Yw$=9`a^JPj0-N}n=j+gJ7Ur05=>)``^|h~i{`Ri- zKg+5v7S)RV_h23iz-!^*=H&hm=+XW%AvHBKkg-ntF#U<<7GRE?O|G6~U-x^AkL3`y zR^O4{d~a{!-C4Q)`_iMMF>eC!Sb+AMAqMUOP;Aw(f zL%RhaZDav&mD;SFXj|#LE1z>c?^{puJ2!gbeo-(<9ei8O6-|OZ4nqQGpH;Nb-81>L zBa1SDgduDxJoFrKQ%n+lyVTvricktUC;Py&%K}znga$wuHn@lfECxA>FH7tc50t*) zxrXxI_s`tjOpa_H13T^Sm!(6p?2IlN)sIHJHrv-Ot}nEYF39-~A@Xs14B$7YAjiQF zlNLByki&T-R$3~+MFNqiIGS4i%%#RWh75NCMFHsreXB(w*CRF17yT8bTaX)EWgMz=m)VL%Uv` z7K%^|;4V=>f*&EQkX(%vp#q2+!TEw19mh$(n$V@<$$NR)+8Iai+Me&b5Nfa`aO0)u zlml4<8&CmYfMtSZF|~r(=`7rGHg&10@c+qle1!v6)4mj8(0MuV&cvBmuS| z1AU;o&R>YIv;NK*_5Qz(BBlJEQ@@>`#Lnj*__104Oji_%KGS`b@Q4Ax&6p)xGlK<}<%A%7SgHF~~!KvnIqTz=35o zg|vDFgTQvB5pNkep(CXM4Yi8aitseF+{v?sWQ^Tq@ovM|xJHjk;eyAP*2|$Xu&Fr< zsI3b6LV=|6WB{^0Ob8=_x@G@C-f&RtfnlV|1O~1^MZ%&VMA=XZsqrVY!5CPsTu4M= zXjsew))-MUP-QhV(d}iRB8>YCGLRBHHWrjPxyxx(mW?KGY<4n)D~AL33vs%JjS%HZ z`r3h=^gMCT>A*E&0FK{i7>H2d!-M|IwL~GT&}{JfQNc*anvfEheb4^Znt4@}gYhdM zQ8HA)b^g=p3=F~DqR1kV+MqU^x1QyOiWHbKWYRm6CD2H0k4_J+#j~3N!-*rmhsuahb= zWf&C{f}->i zfi#A{(+GonSaWu%3upp7bN8Jukf8Tv5R~tWeB|aFpJG>Sn;T%?%`kY~P-H%oV6L}S;WzMM^Tpxlj6%#)P~@I834Q0bIi^;u$V{kWT`^Lcl*UaJS&Xto(J zN!1C-?x-H*{bu-8s)qprB_ex#$ozdt5OFecwbkJ;Mw+UBzFhU-^PI80(RpC`F%V$8 z>H18P6sMr1$ZI|+a8qED7D~ivjCYvXTEg& z2=cclFUvBe@jQ+a^m^#`9B<;u)lR&7gnzYq9k7p&4_&a=+`>YT$wZ35>)p{<;%K-QeDffcTr~Ch z{9f9_0%SxCA772gT9@!!OtBCrO8b|h;q)~irtY4eT!5RaYr)@q(xwehOG{gHd3kwq zbp?*uWX%cR$srYzn1GRm8$LE#U0wZZwAff!2qK+ISInsG+-ANWP{XfpF5gEQN-jvk zvO=wvJBX(DMIcSDiL|+y>iL{tn`@$kLm7*75Xk6#5D(0z>#S(VgSooCeg-+NU|D-6 zH=+qM%~?Pp5I-_+9#(FpYP)0GHTkOBJc~5AWmtTGP<~_goV@b5b_D1 zH?S%QM-1{s*OBMg-0t>`YQm8n@G=1t7(Ydie{OgUshJOD<{%fFBiOyf~n zUT%?pOEQe11ZbK;ZE+7$2Qg*EBo8K-ui#pFCqCevAx6ekM1>0q3UWUr2lBbHpEIDm zWHx3-euUdU(0ief)?oljr{Pn`P40qfkOC5txZ?vMsK-6@fH=#2^u`%Ee0|lVK%HGk z*`2>fmALiiThN^O#_Os^76kn%DFI22JS|gXA=kH;BrGYWsF3;-+tX=kMH>-lQj)EZ zFH266DJQ0-mS7lDoGQ5_E?Ef~5+cVre@_r`mN|FE=;8v(T6Y0BG_PbBgQ!pnv{>1CK|k;(BV+#wwL&UYqUrZ-pk;4%k4{T-x9;VG4>&0X<0MBf zXbqk)SOAa!;20{P3Ygr8Dj7NkpC6vj1NAd#qgJ7MV=085{|Q)(t}DqBP#mGuw5f-v z@lcczhoQTL$S6f9!1;(4>a@-3ww-j@etSN2e;wwJ`dlqddF2%`<&jGkJO@evP1Pvv zgqL&AgrxMS5)F99^mtzD;ve#BEdrt<9z7o<3-7Cds~X*W#(~G&FnSNpwU;Q8+I zNxTxS|0q(Ty!#4t7<)<8T@97jJp&102)JQ{?_(_jou>rir=^os4dQRzP~Aoca&2A7q>+ds{lIUdi=Nqh_qnjKk$w77NvaU?xbDx1;%_?k-E_41KiIpc;7q`- zUC^exnyZ=C(@nVOT?C;MP#>Yu8=Y8^j^>#4i0x@*Dl zVRa-;7_o%~$kh^`5IF8U-%#!W(Z0|60;2TRzkN2vdz@^JyZ=!f5&AtT+3rg;dFLsN zua{oZ4hcz^?`8Pq`HLV2uJ5YDQIaz}_)ejLp_!=-+Q!3}FRsoz&ZuEV1pHfn-SyiW zS5e?g6NSM3S`a}#=mGlv`dsL^&jOY;o;H&+imp6+m7u(8b5JhN-n$5_hZ<=4L(T90 z{MrWo85m1Z;Ey^h2*`hGnjjeQ+v`Nn8%a3&efLbI4&9)|jIzKBx%}h$? zD|e`)G$F$IM-*lp=B!3Hp590R+%PX8566XFH)Qv z*wXs>&g9}6O{0x$A+L>~J9SVK1s-g}ZkRsTVk% z`-9gbL`Jns+LB7DgbHiain{WLfDqUF!~rTc+qnPoF5G17^yh6v)1 zOouS3)Kp|dVPjp3C{CtL)$^oi$c3}*Pa25<{RnMZ|G3F6f4f>1udm2$qxp@0hF^tTU^P!x4cn2p(pj-`# zky{X&C}|}nY)4pVg8=lck5zIQcFRocD?2RrKZ2OCI=udck&g_siuKrZ3%N??ma37h zWNR1xjO~WuLywSlB3yy3(55Vc0BZ=L$Z_weI2-5J!C9{D3rSA*=xCz3guKzXbt<4% z#7qFPlIft)LZTU^1^{k+NjIehihBhxqa$f$L|ZMEZDL9-+>aN;BKNkpdU&+?N6UHo zphT=BPK%s*_x*;ZZ~X-y(ZCZNlqbD89iOImhPC6Yz>n>f9OM(YH~TljUwQDt7n=tP zK;JJph>mH3G+JXZ0~0njvAZYq6(njrqDZYWlN*RB6W%_Ly{D{%HY*4hbRvW6M24`L zGwyWyX%h&!+s78tM&okZLJntC$L2e~T*Z zgND98PCR{nih4uXR|Bqo?=J_<_WtYQ;dJ2nGc-s5nce*CRZd54XFIBJgO4n{H3kKh z7~7&iCx{{_3ozl}xob?kG(cuno#C1liJRNhD_p+>bj~GqU_X+UUNDw4o(-OJ81Q!D zVPn_A>Aty?2(DTIb5M0^zYCrC`<^IK<#Xj*gE{~r1Pe%j40Iqcwc93=y(R-g`@21# z{-%7h)<`j4?76pEbM+%-UVOu$nc=0$+YW(4M=U%fvO0XD5dhOG{izTQn8uO?u+^HpTq)}HN=2x*D}7v^;;43@~x z8ULU^oCAfE(}GRFVUJZV0f1PHi+t{=m_d-e4JrV!__tFZ86ujplmXxW_OI9tWPhGb6)vG{4UX8)!2w_?IuvBu= z$KJOui|N+|JCha3wCR$Olrt~3wnR@?gFxUe_u<1jZ6`l;tK98xk5(Mesy2AH?;p|ZR{0JARbFSslOL# zD2|er(Q%5*7Ze#~gI$o7rC#|x(BY49eyv8X?%*g8(jV3i$RFBKR6oHV#T3BYvfX4k6Ic?LJ zgNR^MNInE!M@`rK9IC&Twx!+5-;ZS|NCfnoEiA|-&R3yBXj%&lnJ|G~PkL=ISvuY+ zfc3H;7uARvI!1v4O;9g?ma(0?*1BS^SHz+3pqk* z$`6fzdPc8#KY4iBV@Ky@fIYcWy0Y4^(unNKbNy3J1`>y6I(!PFRZHl5Cj*GOE}gB4 z^cE2tt++%Aa0POtVfOc1dsWk%qA~3t$Ki1p@}lQ^`7r{{@X-VV5A(J@dnO+4D-H<+ zb&$rY!{YLZ(3Jbjgj?OKhCwsHL`s;_J)~F4OehrsgHjGw`@aW7L8|KOgT^gIjbf9e z;#^E{!ia|72`;SXg^$z_Q=llp#vgIgHn!b{uzp{pdT|=86fkcN;^_CRL7{_Gm_@sr zWu=ZSxzBr1xb8+T2oUSBVI>lPAH~9CE^`p)O$L`O^Gyehzx9q!CBgXJOyTwC#Hg2h zjl);OHfnW8G)`i%cCrd|8-fX=7dSy+jBJ=vDcBA3*0_h6w#DLj=8M(ua)OcOa{`P! zhf50POP5i-dc801%c%@wizt~IBab5eqn!P>t@wx4a7pdldC4s8mFWeE24RvRZ&Vny zR>*D}4H!XvF;l{t^N7F#aXc65Vbos8038_VJ6y1KV6n1Rq#V=uT`+5hb>$#o0w%{& zn>TT%dE98mC3>Q7s?S*{g2lNA6lLq1OS(bqlu+Kht{V)Qfz1)ZWUOP7CGD)M`FN{( z5@6H9Q-HcSG`YWnpd5f4_Dp)5#1R1Yw>hd}k4<5?^-vs>nPqKxY*|xPx#Bxlo=%;CT3VA(ZE%~GkR;fiu72mLulFgKCGaC?JP<9w5B{96OtlqQf z{9Zm|$UcTL#)K`9>%om}GNvrQzNecACYhQt%pF#D(3CEO8w&d}_LhbBS595MhR!-k zFl=Gt(nj8DL3iQ;kDuuXCbMmWpK@W(F6o*UT}yIM7_EK_ZWfcun~|$zN2R1HUgb3; z3J1yC85E5tBip?`VG8pE2zs^7GOsb4p&Pi`J0T=(SRI(?OMk(5{DDxmzzv2_4u?Y@ z_V2GjqoqwG<;2;}d$KxW#XS47L_NnKqZ;cZdeC^B*?B1?1Ox-w&B}2GE?4e z@fy8S>k7MPQ2)1SW`1A{l#wN)N+C?)9aK>mMUDNh;!{6We9+!Sru>N{L-|GnN4VG7 zE8BW>yZ&U9+G&3}UpqGoTi8%1xS=7k9SlNe2wO^3%2?E^QJ8pxzNN#2z=Zr<&Gep(->RlV|>MC)o4;#PwbURLKS#MH9txtDMJEc>7=ESs>)p2kc+m^dZXt}FKiGdFC1O+sN2`TB zh2RMk!4eHbvCUCNQzAvd1qDSKA_E{uS_cRk84?vDqFBP)Y&>}cX#3&~j&$s$_Sm+g z{CIQI1+bsovnw=RS}W4{V-PD@Dn?yjIHLqK05S*Ows+pJKn;Op)%|GT;yjQP$=KD9 zsH!1`h=o;b6R5H^5lVns?8*$mlI zJKpH(&$)Gq0;qpagg@Fc3fkE=dXyTg>`wy`dDzgXt99At&@aVwnoBsM@gK5%{ z;gd}M6+t$1+$cvf^m_h%e|Uht zCUW)WHf+%t z+3XV2(NZSnx0=VvVYZZyBCP&pQ3;I#<;19mFps2gE)kRVFP_iGTCb3UV&95GV3H-n7zYeyx|6lh%*_c?^{+IqI2jhSH?|&8lCH=qrSE`nDM(t&4vZ=Xw zT*u@5%}oI4fNdK@YlN`7Az6zeY#h`lCTwhF+9agk82AeYGm;Kokm#;4G}I7Oycvs# zv3>8+r{TjLh#%3dvXgy=_j(wkdYQg*v;NFZ`>8>LA!0rn$9d!-Z>pn}KBe%eFr@&z z`#~S{+SzZv`@V4a+RX6(0ruasWyxcXb%q6C>ttd4PLFJ+-8uD~?tXR3wN`KCDlo}a znLVl29oR- z$r2&s74@eiz*0fHIP&dx><=p*&E;bHN`*LehJD9oXE7KpZf?DQ^}o^(J3fL96u|6V zhVkIjV4iqhlH4s=(Jq=dC%{{u|vEg0oxov6}0 zbrjQi$gZ2URMG$qfbxGnM<$EC;goM&Q=aQii2>>pd~fNX63r!lTlUIcwUx7BBboB& zxa8tZQRO>8+>l}orTUfRNHu98xbRxQM~(J-WjknNPwi*Jg_bYK6y4>f$Yk;>W@CIX ziE6h&n-|DL5x=W2Ix^u*4t&nv@8Rb^_y4Fvblx%;Ao1R*VTczHy7n~dmalwl%SUk` zKPTHo7n+U7aW6MHmN=oAEK|Xzop8%Fjd{*G{bur1j_fUTv^y{k^J+~S?!*w+C`usi zzv67C)B)O=l&e4&3uHt+n9|p;ZI9`AgF4&(dqnOS`1*IyH=iJm?mXFSM_^htCJ;9j z#d$XF+(dd}QVC}#SS`kRT25!yG!CFK!=3AjM_YFrOW%TS9Ba~ZVVpS((wir9!go<# z(^Mf$mu>3e-*v+n)2DI51z>GSz z{c7?oq+QpVZ=wo5aSjw{PgI`DxUik;-mRTBWIR2nZfkz!ob*LX%AF&H@%=(tzZVKs z23S%Z;`HAga=m9IbrY{u8uFKx{}ZNvK`XfnHXOMRy`oEx3OzwPJ+3wi!X`PCKW%<$ z3Lu-)7Cb*cJX{3^ydL%x&6eU&cJ*kb`0ya&Z6+lXDy|e;lPZxVo3{iZZYkHPo~RUf z$Bv|%maL}6#bI&+4)?Vw@t<-MOOp++mI&#N53NZ@tVqD>4R&SC7~{XcvbA# zXn`qd-II>3g`UQEknh;4vRh8X#MwUdA9158(vbQVa0`cV&-C|inx zs@`BU;0nb3350Eiq$YN0a5j6i8m6E<`y1NQcv4H5hNDgRRqKA|JtBMw)ok|O>^Vl; zNnEy($WHe5D{pgn)Qj7j>5a!$zscj9%j!4EzXny&hTZYdg6f&sZq?~9)+9%r{UqZl zjCEc%n*?o2(6sXz=;d#OYDFQPcXDJLQX@HwbafMmqOnk>>M18O{*r{q)0?sCOB(-0 zxhva#65qf;Sk!fy$atKgKYczyGhC)i@}P}Zm3#bU*~8R z{aD>aRTZom7kznAIR3oExk5JMHZa~nf-!-qv4yr93x-1E^uMYZhe$=uk&LDd#%@KDw1JGI` ztkua2Zqb5dF@t1UgD#2@Vz<|}DtYOi^K*XR%M}W5-!CuhA55ozEh+2BiCTwS=>DAO zLTWY1Va>dwqYD1b%Gr%ROy8e;dt*|{Rz|ASOZKj#_Ke`^3-(k$z+RY%!`N;8)hi-d zb>ZOyfWB{q@TBKB^Wr}%cZ!`3^=Cne9hA``uT&1+T!Z*+;m2r<;Op$>6~@<1>fEAr zq|Mt%RIcBB!Czs|1<@8C_5T1hldflS&|`R!F|S5#1c2boW}*ZcZ_#hKu^N=0P_ zx=-rW`n;d#VG7abVk-te;AJ6U%lil>YUl*TvB9XkA9$4oc26zp`S>P`gPVi1&`3Fv z0y8R^_5z^d`n$Pnj)10KeeMG@P5y+F3}-u{42I&|q6W<(JNkBhkB?&rLC!*KQ>2g{RA%d=1`Sb_70IYI{bJsN!aaJh`P1UJ*FD14h-yD)nfABy ziqmTaQ$$)CLNjJ8cpIxIkEltfE}T+4IaY>io!oQ{q8(9)-8%K{!d7?~>x_|oN=tyO zoLNr(3vA38YA(+}*IDK3JMb;2C?4~SMH&o@0*a_Yg2J;sFkWB!qZW~kE178*7wO&E z#ShUQ$&9N2o$#rfW9jZ0QlN4rzje#5a!!pO7%Q|QSMj?319m;W(J9UBdO()=I<6yD$xI_C^s*E$_)A& zpF5y2Al9RvvK%_1!n1?I!a{>+n{8Jh`AR;4Y1o#1g1DhcKEghkxWVj5aS(eD30lI! zd9Ax3EIK;Cd@hEr$+Z-qgiH3Ku1uUkCAHNuGfBrtyM@8n|5T0M=y{Gi?#^z>Gwe4PCj8)Y4 zhiJb3KGW#<3#k@;>~udi=+&8e_#Q57<0`Gh=9w~X(*cucgDUlqamM*NtPu^UAN`SE zDx;(2arYO0*FxCqZrCd3kdPrMjS^+@7RJ0=r+hU>P3kKW`!$vJqqO8mL`YPsFu47; z^bpE>H%_ zMND0hr<&*L@$daL%%Ex8r065c?i#;JG2!1>Qd2I4NM{?2XVx7OY1Ve^7yN|0oeX_B z^{+x8nOhkbp2Ln@(bK8rDwVh??JbZ|2i*0%UJsGR`MCVjh#N|z<}4V{Aq`VLj=|m` zo|NnEIOI)c3mIoV%2mV9hHwzbOu3ql%vFSwys&x zm{Ke4h9Lhssz%gP1(Q{S3W=G1&~o{pksR?d>RIPp3scd=-piOzFF_{JkzMFk-i+YD zN^9w=v)-5_-=hR87b0|y*r9rZiAY@K;!dGBf?+uurKB~d*U*M=YKf{x5;g{@{whNO znGaD;uR*d1qfMAOLYL~)Q+y8vDo5wm%1y_|l6ancz3T7fyLzX`R5Qqs2f%z52mAnK zYZ1fuBvL-=`M2T76ra5pPq4DQD8B;%BXqy`_oP+2DF^lXS#XfBxixBV5ZzruILVEY zQ$gW(YOcH)9e+o9iG_~WOYj^*lacVPyF7zd84n9a$l?uXVxXw7^ZNcI(>>(c-VW^l8bNkP z-PBiE@97JgEoW)x;lTHLxh7k)obmdQravI@D7bT>i#6Hd-wm=0!jUzyEb!}u2YZ=< z_`N$;1b@$9jWa=lo`-&c4keQJ{UolMn``woZ)#&AGQAoO(VxI&5;ZK?+ZbC|MN2(_H*z4lPTOX#GM#1_ zcI4Gl=}^>v=p_%WlcooAdcZz# zDcZ7zd^uHCu7n79`uFz*6CX zRcY5Giw%by&JtJ=Hkw#WwTm5hws1q-!r^Fg%-PHd0Ouu;s|1!zp8?Yb6hD?d*s8);i1WQV3%~33xptJ&e)t1*GAw;kO!= z16b0fjev3@%xP9cXLVGdxjN&_G~v)p?{ztQWF@^P#&fKlkzTjdh%QDn<@>j*kk4ov z+o4S{*y9y~KKM84R=l`zk@E*YuOzN>pjVB_7FV;%@PHc9wsA|BTLng)B=}Wt-pO>q zA%gUF8!U+RJNEL9ZZg!(*o3mVg2p}O}uy)+r5O_KX7@dULQQWBT@oS*h6jQ7zsM?exTF|&c>TOvprUK8=OdG6X z92f%>ncoa4h26>>zrP_-<54ntR2Q{Hd#55I1|8Y6cB%<`%v4I{c4FQQqIjVG^32^m zlfLyfnn4H;P8;)ShLk5Rq;gR5Isbt(83G_)!l>odbC?>TAhA%3fXFL8c_ilhdy_hl zG}xkFmsrdT+|}22)^?6qR}Y!~>hvA1-kQj+vwk^6g=hdiD{jKoD*{^L>52qQR8OdA!CI8yb-oIYRnNl2-OXB98}( zwZ(8OdSv9A4us5%S+oTmI$A{y5cEk055>U_EHL_oj$<+>XF?(WpZq_T=W=&CS$Tx; z-;uUyXvG(7A)%f`vgnEH&$e;!0Mzz&?Y9ars%vps(pSMN<~1Z~P!q`9Ap3{!uMb{` z-4Y~|?ZLx$s56en_Bz|ISTyZp@CRgyWZkp{GMHe}cN=sNXxjXtS4HF+C8;ZLj)LP# z+Y+tcKr)>NzS6lETE+Z@N2WZUqhX=tt=jUXt~56wXWqDVHwIqMKyXy$2A1-L1yDsFxp)^>rb@t)$A&XM2q`z3 zX=Govh&FLfQB$Wqd_%k@lqM%pH#l*#*bpwdkiK9dGFKs41*LN(X> zn1aywLg1$3%wb*?JI)%;xi`=uH=J6e|JD&I8#+qXg@g^VzRIeE8a07 zqZWqF%CRsRH4CPsN%>BQBUw_rirUfO*TMbq^Cc0>Ow7iYS!uwU=CF`miXK8T*J+ zZweaYm6-Y?7V}XUzfe!I3i;{`TzgXP%D1QBJXZ$+4hSlsP^MfbX;U&si@bmvr*30| zuGk@>g8~H_nMy=*eJF@TcFH2~NOkVEMJk!j#K0RdLM4!J;c9ok{$Wm7*Dq~SU3A|T=|EdUmyO0 zZ6%lv9V3$sWZW=vGCA!jO{+TKcH9KSp>Vr*hOVC&+C9?UKr z-PoFO2bQ$K28wmKP2y~cD8-LBeA4ejrN~mAK91$S$B{xhgwvQsIJ!dxd-cAw%OMfT z?=M??!qw`+!g`7mSz?5Jnir~9C3{Yipi&)jZlWu)rEVl^pMM|;4E)`;#yFfuF4g@| zM=^y-VrtYzp;u`9_N`4}zxdXMc%9Dhzirw3d|&s6hDiXv$DiS*Rv;RnpkQSpW8z)5 zoc(2GhuDEiHQY9`14#*173{?yS&Sn!@rf|-Q4Wu}e)MHGvG%(f0{6y%Q1_~|QMxof zy0aq1OeL1jjogK5P~%w*ENzAg}W1%vvzbhGfg`N4i~5%}D3@Vi+b_*8=-6ku(I z^@-y@T}rZWEPEBzr+o+Oo*92{gc{%KF@ho2A-9sM9r+A9M6Qx)< z7eZ1|aaCx2u-r=kb_k&Yi0F_`eOu*AJp<7<>fOG&vV7M869>u~_3a#TV&5rP$%4vM zL6f=I=!CfTMnOl8Lv~kct?o4j$5aaJg5^|-1kdVxe;Ojdb)v7Nq~vW*T%^1N<^3+H zI4m+JM&gnnYyMB85?&1_MpsdnX%YS0Bs&F$p!wK)wukz7%i-7h+}Y9U3~HD#Ea1hg z278L6Ex-2{sJw&yT>m5C`~Yxk;6BD6PadkVxCS>UiKc&-+`u_WM9)#}J}V7fkbE`{lKbo|2I`##F#6VJOx8rY7o}o^qdH8E9Zt3vY1vXfvP!Es7&tqMjAt2n~ za~dn)1vzKc@na{#W4etI27Hf>t6i=7HD9AD%~nGRw#q|Fcq3~Dx}^;&i0opzjZMdE zuU);NIgVb3)(Ukg8-DJv0xqftG7R3Q*;y)D*!KQz?Q%uiTJW&2@f41 zx@h0|Hb0%H3a8#H>JcYrCNgsg-}zkq^zqbsP8m2&_y#52SquUp=euO|REUzrin+ah zG?Q60@VN}$fw`uRG!WXu66?Z3_Dk2A$~5n`o71sJAxbRKW;+@%ZQ751ovwjCt%T_^ zZ>oQn`6bk=l(qc+jo{u;lS!OK7B!5HdIHqY@i9nYxgIG@U)-gkH?(D=*oR~_KM62? zYm}iwgnT^d4qsOZ11|h}-_zWZjzLReO-i*1RF`f?kx;*;r!_x{AGyKO@g}IQaFW9x zdyHC??E?+nkRenB$0G@=@A$j7B8LmnUiJT|DOYI}J6iN;QTx>2QE#miL$(M^2YWN2 z%W2yBm^BUbeAptwzD|u%o67F$Vwt(wA{tNQ!d#uog4=DQmDXN%Co(ooZ)ielSfu&z zES@nM}cl*YQ>b=IUGd~^vZ=n7EvHzO=KivHN-|}A;b~cv( zyZ^GV{P+F$|0@2A<@|s8?`jTgZTY&_dca+`?}t0EYi670V*@*ZFFvE2Y79;og(g%m z^cS^djU_Mg0tXX| z0i9lNX$}ueNRPKX-s9X}$^udL`3r6YPrAUAd<%TP2bFo*vMedUJE>GLZQMgf;Ew<( zr~hYDxzRCvwh_Pa=BY^iQ7)xt7aS6opl;oMuS~T8`gm*?9Lp0 z$Pl|QBSdEd=z?|2vr>g|$GCQY5X(~mGvZb1l{E{6JOOoAe#Djcl9HM8t@6K>U-K?a z_|OwgRqN9ThcOs73peeckw=L_0~3Dmf@RDBsw{sD>b1u#CM+yQrlP>>%X1+56Uf7P zpI1^i<6~|%I;WMOx7r<7EU=cDn`Eup#i~>fH=Q$516gP8BSgYOZogm!%b0#*%dZBG zQ*A7yPjJdln7I4*xx;X{pxOZ_Pa^VuhY;;YMOWPAR>nH%&TFg)2v*MV^%t4tLPd&& zY7O`AIa`|LBiGlgL3?Hllb#PpW^XIi(THEK<`#NfuL>or6HVwZoUkO*=Q z-=D?QNBGRm%he!Ey}tXGr%C_PC?bexxGYd+$SlDD%EOFKTDS0r89_S(Ko&&5AG?jz zY&&F2xPmD12qBn+5LiwySKle)b(GAx2*#9ywA-XH$O^5j+fE>fL%~2+@IdtDn`q&Q zomoLg7=@4Dz92z_w;I%SHtgdl|1haI=AmI5@<1*itgQo+P=`0p0sl$S8|+ru19!Eo zAd`=u;Afzs>4%%-5tvAmKDNmgTwUY~tVufpAc-lkiJ}o!+|vibO|d9Af6VdaT2Q>h zi*RjiTQ8p8@iMbj=fDK6{~-scud~iO;icemsH2dSX;Ln*(Lv1aaex5A#qx#fg*Qm& zA>(iMf59U}pmyi)d$CI)C?zwWe-y$t(|!ct|19t-u+XZQcmxzEFP14fVi0DQfBf?U z7eoS?zW45nKf?Tb=X&nS!zmvpUNQzwfyL=@t2azpw1rFL%#R03n2%0DB{pBCT)*EX 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


      #|09%+y8v6VKY$FzI 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

      Hkj3xHIcci8^5#+5g;0Kd>of}P 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�aSTD*k{4CHY%!eiIIXT&V;f*{xduh^HxUq6O? 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மW-fmGA~kE0;y-=^8zd;Du++2v;c8MC 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 Tc`VUr0odo{az!Ns^@bO-69ZX%L!JC8G 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

      l(x-SWuXlV`w=F&e>eq}N}{#l!8 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 z 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

      HnTwV(pfX*SV$sTqVaLe`YjI8fR1=}=J(zGY8 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 QzC~%TU6Sz}pd1 z8weK71Np7xC}O%mucKDn1Ed}gm#YDQznOs)ohQU~zmx_AdmHr;1TWd)O&J=v9ho^7Xn;u?8|~Dlvd4 zAShbDF&r@U0KimJiz43(rvfV_{?{AHR&)6pIyl{9r>II8J!EH*bCci-FcdaAKk9k%;bdCgIe!sO7K14<Gav0$IaI zSR-Iy+5v!JkkF%4&~plmNwX@HwfjWF_lR9^q}ub$^*SN|M@=tO65D&Gt){7J9Y`aE z5ff|~#1ZCNg&bs4$67+8Sk)S4ClHl4zV}Ro9-@_Rj#k14ES9pygb8s(f$NO~S%YyE zkO^R5=`qh{gzCzFiX$MXMbdD$A)^k#;r`??MMXgWICc!{?_nPTLv)Y|F(ZdTnE&l& ztWk5J5JQ}}u^K7JfO6m&ylplZ8Ubztur2#{&*`rOPzaPJQ9JZuNS975!8wnmn9zj= z1NFVP$je897>i+3&M*jq^a|J-#1WzdkkuS}ip7~w28~}pkLE_SY1~A^d`yntfRF?> z+5{e;EWjEOTBY(uwGXgCLVIl1PE;Et3!|x*9jJ-Nz(lpyiml`frKy2JuL1`nYej*b zI4;JB$YLW)OOeIk=OF}@HZ~ssfHF-uC`W*t@i5>$71&&RZUbpizT);_*|TF|gqKSA zeVxIAgNWIRH4J4yEQlnNPqsqpl0p~+E!YpC;nleF*^qLULQjI7aX}ex z=n%GGRk%)M`ztPfgG$V=1;Y5-k5@JYZzI^No-dmzckAgt;z^_4w0YT9(5O8yLvGM! z%Hc^|FtVLFIr1eYrN@i|a-RAF!+(D9&8?NEQ|?1EB8%S7C-$J!Z>CuH1iKAFg-ROBgUsif@&H@{;vKi-(t{ zSlCkZLqiXZUz$7efB}<`S8Ra$c-r`W!Lu(Y0r|c3Yk=wU`?rEUy@ETnf@K&&KDUMF z2knqqbL|I_7rfShe_1!9KOBpTi={s34vr00YyDb_Hc}eSkaj-cZ;p)NGf{6CNA_;n zCWxPA37e5}rqTq-a;b6~*lwpHC|}XBRXxCxMYhICgy_)(RC!+r{<{5RF8Kau=2EHP z(J_=v8)yc5adv@PHi)pgEA(byIZ8CJRD{_|ZIpg> zOP2K|;>PQWuQgRes=%S7PA!1U2j|aAf4sfZWTjJ|4auQ{#kl^l%f?E70Y7{p7>3(K zf9`{rLPks%Mt~0FFgufI5pd5#7HIoLo$T!g2k)fS+j&f;aCO=kn(CVR%aGuT+rh3~ zKmcu~=2wD`3uKLi*4SUPLI~gij~ZZDZ@ADH5VL?A6Q~Ino>7)l8U<{l36+ zcCA59thbsqNOOE=th}It1dkc=E`#NLruq>u?Q9@=ZZP5vff|Qmp1%M^;`Kn#;Q5IC zSg6&>IvKHJ`G2vg525GRZG203c`fBO_QNgvc?fVL=T7X8#}>`ecA8?~ z)$y#R*J?1ip0!-+jr$X+l~OLcyHOpwqP9D_vfGD0fprXKQiiIOe6oDg>(<5Wg)<04 z2xH5T|Maxy;Dz8qgx~b7L$nTUy9^gu&m7&K_w=kH$10TZQos8;M6K|IxUoxwVJ`h3 zyn7Z^zNdtofkFxTRRIJk84ul1{Km4rDtQC)k{R62^jX^k{r=tGhyBd4H+;}hUKy5% z9kHa;Mc!Z-yNu;tO0xI@Zelk4AI=LXBBK&8d!3nK!kU=h0F}YtdkEs@h?oHk8u~%z z@H)SL@M#TWc`ST!dH%xYa=wGEz3+{^b^8$BySm{kWs&rZMeFs4?~;!J9aow9_67 ze@pX5??5T$=({KxQMEQ_Cu*phZ3?L+@ni0IGn4xTrGisqy{P4#QW=ROL;o+sVb1mTY{U20pykqZr3?DuFHqePQhls0`XZ$CdF~raoH&3$n8Cy$G3B5ANUuep*cXoNctp($|2)dIt?=lAvF;owT$OnjKo(0%UVmWVvS zPRiw}%oP7vK~BKT^1^Iww3Yh|ATn1LfOrf;z7CT(_;@fCS8;rmE0eH^%IOB%sz0KwK`qHRk5fTr%7F&e?jZKNwy_9#Jtt|^~ zj&KWwVhLcxqEu8`u%vKRL?Y8=pcEi3bt?k$&fL1(Rmu|PRILhJ88}|7 z1T6H)Qf^#B+=xYSYPu=sK56E$=k&%>%;V8(WARe^O4MC;v(bflY|lmg&sL;*oV%iE zF{x>I*m5`&%SwHE&G97(A6pIp>tZ|mpxka0VJp_UgFO05)j`DH6%dnxfhR5w;g_qW zIXE)^2dbmMTFl;GzbV7BZfE#=LPPK&IwqNb8p*4;p~auskeEbF3Rv!iWw~>i+ot8J z>MclnEuONYWczxeg0MhyNFSXogCr721V9hbq6!boq0ixepNyUsJu~)xN(5>ew!5vD z`d)6mf0cf3aP)buqx5k2;)~R?uJf*FIP57>`2D%r?LO4Y8PO=gK~g#gCj=V5vAGgJrlpkC{1qO((o+Xf-k-kd1Fa8B_q3Kni_utftnK+XeKyU^pW zkF4g`T8_#<3#(3{)2hbNjhCRo!+y9F_p|Qlk%Ga^p=>$o45g#M)t>eF59#}#w18;R zUUiYGV?2T3X&4JJE2udW&Ye=EV+Fj92Bj|+|BU^gQ}3BXKfE@PM*a1ZCo4w5*onmf z`aH%I*gqctqLLA^2&S6$5(u>tdY8hnY(_0Lc(PEL!spnr(3?RHVDG#+G|l$}kve5> zspCJz+uz#ll?U7L2EPgp>_@c}Xa8p7({meGmiErIY7Ic+O`oGpzaCINoXO-4_$qAF zhL`haPrX^+#qM^LV<&nn&7E>UC$V!ew zCD$gV8g7?nL%k{$4)rpp&S|;dj8_t#wl}JO_jQ{iKwIZzFMfl!qNe8V_RVt;q>zn7 zyaragW1JIybc;9Qdl3xfTHAJ17Aax~RFpLC2I4+^Y=b_V)`)wy0RMv`?|cIL4oAO| z$%fDWmtyt5>Ob~oE|zw7|EHgT|8Mjk4o(h^|4IMh;o#x^Fa78L68#5D<^R=xCNgXi zNd_~+^Cl{OO=srj`Yv!0aZ^!KfcH`WKqEU80=A=w{@yAMr0pXe{S_oCVmv=Mf(a;* z<#tmZlGA(4kHbxxrP|tE_AUez1Z3u~u^4mK(sLVDp32&unnzle3i<3YFi`v*#)Ip+ zGFpqTUC;iynk=y#Z^aT7UFTMzarQ?&o)0ca5-0(7f@-)EGrX63d=#I1d&~Z&Ob*+c zMLuMF#e4fb=l+02*V2=gFOQ!~fVbRsHGkp)o2wkN`_A+1KRS=-yfIVtNt?t4?)Rlz zi9oZfBlLCd7p^d!+Z{a5!=0U#?(Ur1?Ka@Xk-BHK#&CQ@S4|kXkQd=WyXbQ`O3(QV zn$a=zTPx*yz;x;|`pjAHlINp@zRfxV$HRo9Ad8KmBs)Y5AC8aQD0kcr^b6vTa(pETlWm#@l*M#xh8|WCG?Q0+Ut;! zNFDzf?Nvl9*VZ+7pO#RXTTbr6PA=WX%oyuYO+63MRQCh2#EJhJyHDj@8uiAX3MARS zybiupcc!Z2nC&o4y50MogtJsKhha!Mxy?H558)AatfV*MEH`+?h2-rU5glIhE-d0~o0bIYd?5%wq985d^Da?3v z@o|Swe>mV%n4kY~@zps>Hw%=Jgzj|BMoVO{? zAKF7eq{nU;VLQz%?m3L-y!D=?Yz^_psXS@@82T!ZQ9%&T{M}(~1FATeWp5$^ZhNEt zS@_Rp`=JmL3%T{>7>8y(OfLj8xRypj=ie$CJ0(L1h9Q3VH1IC?=PxczjhR-n06o~b4=MQ*T4KQ8o}=#k(0DN z`k0HJcqhLc7kQcw+E|ue;xWW-vf>d|RHxm{c3u&51S1sTcwrf3$05WGj9bc0$xSI% ziH%2}uRH3FOYm0Yx0t%iS9~79do^BhS~WJ85SD*0fp$viiL0G~gdk(uSBeyIo$}%F zRm(O~z8`Ns#4A>Y>ZwGb^nqzYPuZ*wgN)s`Ks4~5;aD=f?JCdB`hWM=)tgJSRa9fk5V22gb~fF9xTkImIWVo3N) zWC8=1QAX%e6>`FA7XLyH?{KVH$a~x9yZoj5aNdTFj`Z)IJbILl5rA7Zh)cVmL#1Gg zo?SCeCz@IeK}@AoOSjOdGEtSq+LC}#%D`U}oseclu=07`70J)B#_i|IRUFeq)q22G zEkyd6cQJFUF)m-4e}r963uNNVK>2&AY)Z4B>uKToYtOi`hMlr&Lt$n$F$sgpTs#{5 z5!KqBdC@KYRW!Y2cfjpSU&6o5)-Qr+4WD94$I_z$-a@;DDkfmtxS{;Gg2$TvlNo}D zgegv8?Qb5=QLAB`GNniSPEJ41PM`>Wdwoe$x->a$Wl_**%$a??WzAwc75f(bIl%PG z;Bz>0R~0RGf}Nus!??N6AokkpeI|*p1T9v~{bqNccxUIEupACymUvLO^be(&a6Rjh z7ZY3-8Q+JG+}^ieg6*6k+l()y4wL07w}SjBl^_liEbG`P_7n3=&Sk{uxSPBAexc4| z`fhR}tK(db+%^8Om3oP6jycom)#c8S)hypVjfV^!EJOpNn_*)4{)9{8Xxp zEc+5$!LGki5Hbv-Bl{xr4MOxR*?OWUv>i?qDql>K*Mnn1mMDHbBNf+Anfo+NBn`?5 z1VarG{5Z^*?_)hC*BR{kZr9h_-;#+FCmnK>1W}A=ccL6r_?~++2377`#|(o(l-S2k z45m0wG+Y&Tm-4Bx^4bAU9Ck*Od%gjB-oCv)4i-O7o#*CwSsSaHVkB9-Z_wYW=kav^ zKkU6zkS0&NFZ#A^+qS!>^|oze+BTm$cWiL_dxo$T4mNHde(BZ zoHb@F2Ur5dmw-hEEld4hH~IsuM7eu1n_pp1EP9+kNho8nGHlXNlRpoZEdOxkSQN31 zCo!uMXAoa6tYk%pB3Mg_Jdl{ZxW!N-mg)IlaRc+}_-9`_H1BgA^AlHoNCv)->EGZ+ zUB4t_A?ih##EqH$w7#DO@pZaIpCHNp{rHml)y+KO%!{N%$g-IBC=7TbdReHDaJG zRChy&l7btH(HtPl*ssY^z{4<~Q-_~n5)iyNF-7)0VLcSV*4N?oZa!43kC2m|)kURa z0ZCFe#eh6b=-c*;)3L#7Z9g_nPm1%(O#J(=)Vmhqqek12ZT4k4+u_gtVU3iv`_aKH zAMT(N-e45!A`DBCBo0tw)(lB&8|*oY287h|bJT_4DX7rBhJLlcbc&b=cBQ$#TJ}po zTdacoF)^EivHla?o8nPywf!2P3T9IfYKR-tCq1lp`M5T6*u3h+Q+3pt05%=e&p~|5 zUUPi8)Rae;6I~^+8mskwepI_$jzba#DZoRki;h6|h`3mkcy0qZBL0VefTT#d_F-|o z)W}GurjlgBFCdLjySBNNT|z{H)|(l>?rJ{a%3ZRAxEZzQh28lyUmLgb=aMazVPC|2 zcE@|l%tL5qqda00=@N-FP{SFoxv$P1VAs_I7mm2Giy9f=s6zPFQz5 zS2CHbpxKk$ss4G^=@!f2v!|p-MqZ1Oz5NGIyPIQYs)7^|HryhZgnyV5osr2@B3!-2 zSxG;ozCwtsOe~OiWcUIux>~w^mqBa3$K^IDsMbbi!nNK(_XArmTGdIm1GHTLYn_<1ZuIV2avMH+xsb4* zhw-;qj2synr}VZ*j9pPCqCTS$V(R?dGsw{H zWoH;zIlIShU+|fFxMRH>GMWtqEveEUQ0E!tdPF#rt9TDpXhV&kk5JtaJ!UDc+SF~F zf5eo6!$u&h^Q}OVpxR+d!{WnOr2o?bgeUHZ(5^+dUj=8bc<~z6L^Bnb`1w^A7MF0d z2Ic`}h~-5iMGd2HKV~7k8u-44kQFZR_r?YB_uM)qJoeoN@qNw0D`TsuE`FGx8urL+ ztC*n8TS_rfjBn7#n)1`B<^@Zt=6qX7JQdD&V2{`~T z(Y$zrOIKrV7Gf*^8`!@zsqGN9Y(U~_hh*RerUnIak#2w;^rY*J!}1f9O|NXh_@Nz? zfcpUaSUJXx%y?6Eu89y8TfK;zb4FQy_5EaDbG#obFI5d1*-hIxM~Z|Jg{7?o|A~w) zmH3utPoDzS1?Xt%OAZ4}gYSZVf)fTI>GqSq>76h!%G$ix{MXv!cJBlct@86XK~hXTBfmrGIVsP@OClH1sQ^SO<%Hl7lq0Am~o*|YmA&DKEs$h zYXC-0)MgUholih2_8u&L*bpE}HM)vJDDnAVrS;Hqg8L~0HGspj9Uk8hXIGl{jT4TU zT$jPTP>4YxG@_(xF-e}CuoWC%#a&1GP;p=zK87@sw8Kc^k7NN#FbO>e`~73MQ?z!W z5b{PXPc(}G@j$#ZjcA^tWDyEGXqjb<4YVvVwFyBIfP|Q}P7@CLw*Z3N8ncD%1@2st z3TzNb6OkNbzKE4Jszr=FJBKl{aQr>Q1`3SEq=#8aq$7IbnAKmg87uG{Z#A%J7e+W{ z`cM!no@#3n3oJ7#_V-e&DR7PwD;avo$2)D+T%xFzr}FxUha?NW*zA*Y}?QF7QH$Jln^JP5t%+*emPp2z?k zTu61^`NdK5h?}KQrZgn@y;-x|M2;r5x5$A4FQjw_W|EXd&()GJueSO8v&9kXn8^ZX zPupRcD11Py$!gJvb4Fo|ToPVa)NV+eK+pl5<~#=kg|tXcw`~;)(fPzK^nS|u+WDBd z57e&poi$sYNFjzsm8e1^sGk@K9_Wukzt*M*M~rDygCdLq3{P*vp%?P!pBoq=2dMc6 zASVO7-({tUqfO&9>M{CogX=#a7y?YOXkB0okceC0ysZaAoIzCm=P3NgnT%|M3Vh*i zW&Bq!{=AyP+)4n+Q9bTny=U3&G{(MvOW+MjDGb~^hdH<7b7#*Csy*7bZaSVv3$>9L z2;^EfuETF!aRv*M+`991-h$~ersBgx8gk>4f-u-YW5vA29M#T}F|@dBD$Aia}=Wt#yOi)pz~c zRVLbG*s==PW^DwApVa7in)Lgh*1bDBdgQa|peYXA_%P>>9+}g>fVs_Le&${UP)7)I z-j)efFvwUJ>h5xVSjG(5`v-{oCjTSB{x{Qq?F?;QolQ;t&+5OdY|L!`yZ+0{%<(_^ z?|&2h7d`U7_W#4xnW}l5`0Z$W<@(IDpKM9=+AU6tz4h~I@?~J+oPm(X-1X;0{<+$^vJvMjs`h$12@PP@>uGyFjsec(c@d97(9 zZ0cxAHD$`8t<6M<0W*Y9v_FO?SZSGtH(lyzanG^Jr^oqA3bnqD8y=E1uiiZ5$BPpU z6VV~T$luM7f>(_elV}M1`sV1f7){=m~(_4ikFhnRs5Q3pUS=78v;LG zf#K{EUpedAGLGG^D2k0wyH~eCx}$uj-cOsI^TPoXTcbn{lyT|ex&>v;?!f(#MoHf* z)rv#(U$#(TTX%$TEKdjmcx9 zsnIBm_cse-((_iyedghC3kUGVH=C*3c1cq*WnD-moS{H~1prwQNMORz#1b%bHAM8n z;`^;IR`RrqhqKXS!WL`uqmbpKXHoKXmTD&-sh1v7k~gP4<08_uy`CBUdA&ca?2_du z+~P&{va-cU-7a*Y0gwtp7`P|7tG|HN=PybO^Z^xoW4>;;Patqd*Pk4-g5*kG$dEn3 z8U6RVwI+r8F4`S_r<&~_V*h2ZWl(8zRk&-I!ZbpDp~`ajOmVf{qx&%972D8w2wqC91+Uzig~zMO(2~_bh22v1-8ue5k5e)q5FIjfhr=r|!;1)#EtlAf7!h&^RA8)&>^Z zK){>khFiUOk0#a4yzIXwpPjMWV&Fl5b;JPTV6dxoZL(t`LaPG{$*MN9`S=G zW5b>5gzvdXkoTw}WMYTAuoBo*&9}Vt8)d)0@?o-qS-DjqpbhLd z26&1aY#NfGRhrTQgo#Q>RYSgjgDgkDgrb=;0BKP%mO~BXW!{p3{(4~<`ZZtdrn>i~GJIN>zfHA6;x5wKqZSteNvw^}Kr^bQj zB@6`0U05^ZGXen>hBCIlsqL94_W;iA%HYEw+X>{2F6Ao#`-G1T z&Dr~GQsHi_@cm^G$(n|JMyjEjG2QDM5y2pRGnPSe_gLs`%LR~8c= z#|+oa=5S{XUpiOUms+;254p$n&(MZq)hWiA^_+C_i)=`)&? zvhi6EBZRLZWM&fCj%)(7pivldzRA>PqES^?Bl<-HHH9Kk+^B}O|mTE&0&M7m5FCL8VRP_cE?K)3T88Hy&3S1{#4yh?mFPAkX&@dc1p>zEIOYB z|AjvTVAEtR-4u=I4&zEII2td_{P^>;&}O|O^x5y$`|XqO(i^`E&L8KcX>nRXJf;2%4a;d#4ync2CqToV-r*bu zGo6bdC5y%!%*7i^VCVP|NOIWrJLaTQ}@&?FB+ z61(3|S<)U0Ki(1x6GHj+OgNbv&dcnqb|f3WmMGi)gl{&Tq z*{^S8fR+@5PBg)AHXz!ZDhbb?FQBK~GR-ak#R0_0abWaxz~ao-Mfk#Bk!4Ztt!bF3 z>l@sz%@E5A$pl}YrKt)??y}YgX)^zdUJu+Dj|KaBGYF^>{QPkZjR!>_dvt3SpbSI0 z1~miq%SLIga>5OC&K*-xOb^^fS&z_S?mX)9`CRG?~tXy2fU z0@v#onJeMWx`_)ZnH$DdkuJ2-hE_oODT#+j%oDx~fJm`>5B9 zQ4eBZc89>;POoh|#~_Npm7_;hs3Rd(A3HpDzdvyd<}~#I9|FF`T2B|2D8qwl2YKCn zdeUZ(z~pR>4e2(UCMSI@w3He$3M-PzeeAc-3HcGLu9G2*Ev*yyFe8fz&emrP?oOM1 zY(zwKPhee@mF6asCS1jwWb&x5-pMh~Xl|E1PjTSxCuq!%Fe{zypr9-U>^vcvS_szJ zXwSHgDh3b)Gic~Q&6kzu^N(QyXLK~f!I88h5lm$TpQZU!AbtQS7zGLH%XZ6a3kYO= zSUD(63`&U^zu&J5{7t`{20QZoOK0ha zp4nNI=wjnQ4n;X|H8Hu1TS#z2Ll?dEkCNbL@4AT%Lm3vx`hlUQzsU--tlhlDy*r9^ zyWPr>!IX$a5VQf1OV&D!buWl`#4?PbO$4L`fJFumJGqK7mD@e?Q8-*!Dk!h}3-~p3 zGdyOD3Yx&xY@&L5x1lF57062AjHA&0;#BRTrN9lt7D=MN>fDw=dqvLhOXtkx@t}n2 zNVwZhwnIBxNeS}Q!{C(WNe5h_S)LtvmY6TXC>E(gY+@=`bpfdHu9gtMr>*E6SLw<9 z?EUW1G9g9eK7jjHf8C8{A2oKoD$6??<9BPyg43i55=}8_*VigSE&t?TT9BmP15Y!6 zowe-w`VqtmR6Iqi=Cd%(e&-+!Pesp1XlR9N1b&6hTLr~9FnyQzqi1pp7`G z$Nie0=3kaKomyT`ZX}oiKxEw0oCV-`IC$6rVPA+(LjWK!M)?S+iVz|isNte_;NIs2AK>YZC;|e;SMehv~E5>wCemFzerQYsQL5IKL9tul}2igXa8*+K8 z{uH|)?oyqSeNi_du+qp;q-k_Axgw~Mi*&o_sR5ixRrvzupyxo(Hm^X!vOgbWIUmz( z5A}PdU&}2NFG~h!AX@Ah;y}+tmVBZO1JT`r(qyts$P5|i`n6B7i(q2XGAR5P+4+*u zWuG1&ffP27=Dx8#__EoeB_a=@oAr)`UTr+c2{;O>1mXs0cAydFXD&=#cV{>Nq7Squ ztQevQL|YSFf*B9!2}|M9h#@RcVRgTRimL^3vu2}35~p4Y<@`L ze={z{1~!wy!4kb`bEo?5~WOPBxr`zK(duTj3|FJ!(8=Jg)n=nVnU4kf5zV(15Rzou3+hs>#1ON7mK%p@$5j4GQ8FG>hu| z8|spD_F^~rX893Hb3x7Zh_ifq>ddlPne#O9N`SBj#sfJ7w~bJFPh>CGZb|nuK{CFB zKm7H8(@_XvMRce=W&le^)${J7h~6JE4_WYw5D^H@TADk!4Gu+ENPMkH5u6eM6aFu zKFi)r?>%4hrn8iNvIpiw4@47qHI47cZ}}G2IY)2PwuD-1aM^obs@ge zYObwYeKK4XSXU(Jn=%nv3pDRPCuBPzg7Jf$RDba|+pnPzK~;DLnLfp&P|86E`!-f% z>W*s}e+%k52lDXh5g0_1*I!bph}dm)BD-GYd#r!K*;kbJ_bMne<3{ zJHNmiIrJ>+MJUsV(+Ys3lHjQDKy>n^FhA<1hbcxdSHnY{NPFrZr6z{C3K9goetX}u zonJ!VX69~(&M_6|hccg03FYxW6ch?G1xj;!E^Iq40uj!Bgq5N zf%xIcb#kF8#9H7rLO65xOL97qoEX(Xna^!F6qyc7qdyOzIu9E)e8s+54&4CQ2%luI z@AYv$(PR-HK3v=G#*HVh9qsopJ_5E4SBHs+sojL7d&yl0rg+;7dyv-gP)T#M!@}j} zfh|q}oaog7xnNuuoks%KciMv>cTU3ZrOWp|?#6s`o9CD~Yp>q~`>|dB zl}TKb9A`N1iwvi!2J!+_9aR6Nc^k8-Wo60{tG@#(2fnkleZ#)1vrOSzrF_~{U3&Xu}EP&cuh?RPk6}ycuBA2&W_$h1nv**`UgE_d+OaF z-L%b7zAr(hbuVQQGLX0baSr~!(f>_Mo&LH0Kdb+h^ML^#b7Imll$9tYky4LsO?iVZ;y4x09l{tyU6N3TU8 z0%IwrtqyviZ4|8ZBp)X-WC(e(2RS@w=WGvpGicGkW$WrqT6GlBb?0$T$J~tTkhlXD*uJOP04-6&K==o9sNb! zwOjLd#=T?;XLWS+sr@V3B>gqt7hkBe6H9{l_8enICk3AEd<^+J2}Af`|iq zGl%>XZqV<^T(OmRKk=u~-u|!UowI*8rs6VRoa8^6lVbJTmJQOF<(Ns>AEHOR^yD-8 z2Ijia0j>vTzD~#U082o$zfSSMAPbuddEL(g?loOPQB^M>F;O`Q=II6 zIR%_j+V7Z#kB`YBEP05LM+ibcQ2{ToLX`xLHa6A{@`LJM({){HVDt)h{v1x-H7YWf z*UN}l5)a@b51=EF3a4>!aHUG{mTX8NPxvDS^dqYE5r*}-^~q_zh#=gZRK56l=GD~{ z-Gmj!es!Tlgjb;-LGR=taEh-_7j4Xr#LNYB%sohvp{}FfEq1|-&7ix5okEM#b6fm* z>mPZq5JGV9J>IsD%FpzaXxI18BM)!&F9OZk;gtI^=OD6#!EE-mCh!;+5)tETLqPf= zQJZH~fL7vS4WaPokrj!J0*zqgB;<@# zg!~98NqNgSMt;u%`|q#Q)RfS#zv-L?fVXj~-i!50t_^_?=KV~LFba0r<(T^>gAfx~ zaTlzc;3zc6JflHNF!oQBT`PIE-KKeyZH@9q&b;Ysk|Gp*Fskx!|zLxq%~*9 zH@8NAkSl-3@-bQKxFqCEQ2VG@u}wsRxl(<>hqFbf^78W2`9i1;w~J7_RrlxXKX+qf zad~bx+ox1VQ1IB)fe*snm<-AO0im&KwzwdLUVu1(VCe`gqgJ@kxNtGUf2t>6>7)US zuX<4cXAS*r^M!ka0GFAZ1uox=SvaYX@UlwA-b(kLbMS1!7nCH;Zba~ee3}W@8_jeb zE@#Ts_kjhdB}S51OKyv67ZcN% zQE%+7t5ga{M@9!xF+uF3aBv82z(U=I+d+`f z;8>(6U#O#pq^E{_M?v|HDw+Hg%r+QMAQ8jT4ZbI>l59}^`fP%V@b0VTLhUh5Z|#)R zg~nkA7>a~dhssvJlK{By zjz+8ujF!nHrRPR2BDpwAr`~>In2_>S^g4XDF7=Pjya(6Sl9i2S%RWOdl*{Cl-)A0(G=4C!Ne zV)g#Z{JP&@?OTa}MviGWE&neO@ivHe(Bd%jSmAju`-01S^5!l6Rbp)jTZ&*CPP|_? z+gGe$R?8J3$J3c~AfTY2$oTlt8J7off+PP71s0n%=4c|pocq8GBwejEXj%G4pDN&Y z3-@MzkAY868pbatVl1Z)DG=_v^pPIA30nj<2ljCykBgN8ZUzYRj!)QO{+l2gBu*pgfGCi}8wKYxi&(HVg!XNLu zK}d||0po$@7ZRX8*Ai0S=!ZTHDQg%|P9&w7sKjE6(ZvnHRpvKPQa1`Xu>)AS!cv*s zNzWDmjikU|t7h(3{br}zT@g*hquU}9y0L0CpfPw{;w~;t6ObAshW(co3q>$6yxD#d z;^GyCE_eH4s>Y~f$T>nJ%2 zN9*w=2jZS9+>YM2xrrx*peaA96GQ4qLxBPz()l}RUs(Q7JeCo{eV{_Do3Kd3n}Nnz zGNtE|iju7NCn_wFtf-;%!sB+2z~4+I|GTnykAnSYXT^F8OxhELk@TJDVH}UPJNYy$ zPi{ns>5kHZACuG5M?OE;Lb}J3H0~uVEU5YT`Io!VsO0m0;L&y}AU1nGCg#1q6;}3A zF}m7>lWH}O{VU~T^Thy#%?CUCu(W!P0ifBUc3m7%c;I`X;#LhKqkt-sMQ->6dZZE( z1gUI*cWx@W|AN$@;@6UD(zhA>gde{&AHh+hM4{7$F)$c$sNK-3E)-&qGim**%#K#4 z#YQXU#6JWMYap4$xot;MQqn&+3&Yz4I|-(xL7n9g$QX&%o?wgsnpRSckbFl}ez4{< zKX#oSO^S1XVSB*Bu|QPI9xi+h<_L5GpBo|?cCD_1vZ9u{VJH{GG-VUdlO3bWWrH+r zz}ysjEpTU>S#=y8RzwKlzme#V9HxFdhEvVqiK=KZoy2sNXU?3K-{0c#ec20hFs)Rt zRz3m+16!6x!@(;J?RQH|Khaqg{}pHAq?9!lgZ~q@P7)ExyRMFHBkQh$8Kfv^n3g zGN6NBS)`{)>xW?;eEO&oXA2Rm__Nsc01oxo3*L!a>kNVCQOWWnl zws86Xn1P;alDCBDqEk7MNu+{yk#`oyAcDlo6w`xvi7P)vS;)lnf4M$TTVM^zI6KEb z_v5aeC}5Jj?a2m99Rt94ERq zGUK+zLz=W)_xU`|(NpEG>3ztoxBU{oyukH7TU9Jmx{ zP-OP|$ZMwQ3|ns;Gx{A?ExX3eRxHKs$o~KIp<7TcA!Um=bOFj_dFdl36a$%uYB(U7 zYR@9OOgc$u*6d)n66cXpl2k^jEI}kGN%hBSVeo?q`UGtvl|tI(6>0)mrvh)PmdB|w zpDng@34+8|nci4B5AH9I2R+}v!EEx~;xRRY>>IOv#iGf>hXvdTcswgjuvI6b^)j&L z(#1r@P6^Ns+$#qy;CX5csrANK@u^_%7q!F^%KY{ww6LbE^hY?piV|5#B!7ddXaz-8 z?-UWJ(5lApwh4w4al}+Y3lu{ot`9!rKi{eRyEkvAQy5ki0s|l!DQOY^U0nydL5`f? zZ<%348gEhBPvYb&QlMTJhVNT8%xxbSQeK5x&Ohuz4u{&^1BEusW$4ubL5zhm*;P>Q zLMe54?Dwa5ez+R7mI}8IIP54={A&RcBSTKm3EpVFFNUmN634eq!T!JJi9#6=GxtnP zUu;?hzrrm?>ZiYJJTx;Ab;WAEWFT#e&Zf2(Lxv6chPgIceu>k|>m8)tfym}m+#hYw z55@<`=rcHRf%ioOJn}+k3+b`1tatJD;#2duRP?by0vLKq>i zPl^R6uJ$o$y!}DB19P!}DjzYts0NEAa%D3OPEIvemEENY8I+btr>+xl_a3`B>)af%et6_J&$@P9a=Irtc3knLRoHzq} z(By3JY?v=bB(k*F)X7|zO|I8rA0sUi7)<^Gol$f;2eNydsMA|lk0 zx#a@)s`7GOhML0AeV&O}m9f^;#7vJCNY;J-jG9A`C=9G-+qP}nwr$(CZQJ&3+qP}n zw%zmB>}THFoJFdVO_EB!N_Gu0h*hIkm)Zgp{6*Ug#wlHA2#6{?BC-fi{EsiCbm_^6 ze9sA%k8B)VV{S7dmqWb91=B|MBq^8bnjYU?wY+0HzU13(6L8Fg=QW51G;%-Z+)09W zcnUFRaY8^zZx&v@{GHSM1-!nAgxLX4d9`TotR(H3&xZ6zSP4=7X~_uZ8iiWcos{{pc*BKyQ#h$)lWLw31 z&F6$}f7Ii}{Ye@`D7$ul)HUtL#H?4X9bg6ZTv)dPbfH>QX6*w@i`0p5z0C4gZaxo*?ev-Ai01a&DYaCHQcn zWIo#`z;X|?Ee{6;zY?O2yA8XXy6x5-D9F(2iIk%fz0-B{G&cMtOZ;VrRRoOR&TVlN zr$TXLo?b+fzmb*O;Spmy{QyGlh0?kigQ}YdVLDKJdY@b%gEC{Moo0lZ&~<)Qw9XAq z1i_321&sx1L9TkBK_{Y@u)5Tr-pfC_Doo1dH2P2g@tm%PWZ+wbKEPj+z*aZgLnp}3 z$%anh#A?2aTq!LtOcT_zHqfLVj$(VLQDvKXsUiB)9=8RGVR zM^SNYGuryAzP*tlDWdodm9}Uy*@Sgku)ag+8w# zEzA@)k8`t0ItaD68EWHAIu1*?g&-}K=e%$j?J5tX$NjFW(s&RXkC2Av&2S+MWV2;F z#Z@6ML&-zDBnjiOR6#!6#`j4e`L6$HW3bb3!Wzq)k7m#KN13*3B_IN3p+3yvmh@z3 zyxCU2mzh_Oh40+)&WWl}QynDPogT8Ov^Dd-rR=C}s9WV}w!S{BFQCv!km_L)j}uME z&e3b>fA&+7EB_-plfp|alkFT*mAzjGMizAX)tm0fh46-%mz_u&&u-0W6s_@>w04D| zJ)+%Prdf9xjK-`afqJIwhz~jxZp5NAcG-%0?2O)Vg5o_Mm2-OFSiQg~z<+~t;9WSc z{_^2;Lo{=Y9NwtHZ z)e`*v=%3=c6Sg5zIQpD?(CCz>^Bi38?$0+WZ!vmrD(N%5$p{{iVE^2R-u)YFZCK0g z{UguyFwvOYYgGcYG;Q-!D4NT-3sGZJGw(A~JrDgOMOI4~AIV&d_kr=hJuYF?%a;jt z*P9+|?@ z{q5KP5}Mzt;Q&MvFaL?Befo3$8(Uo89ZreN%uJ09Ox;Mi`NJhX|J(R8JT)@?+WY(K zADJHb;QyWTNB#p}c;@f>n_q|=(_i^aT4R4|KC*S`N?Khl!v0%96{K&qEl_fszy%!Q z3@N87CeK9ZzA7$;09*)FZpf~W7nByN^#Z?7zyqsX$O;>XBZw<$-?gq<8q(M;t~EFR zlbq||L*~fjc3jxMywx*dR+6^CH2AbB)j-qv_M7cpW0!Z#=&&vhf3fBK49m=>7Ewz; z_mJ0{F27e(_tvQ{CnO5R6{lN29UKOno_D}s&vV`*|LI@Moxl2_=w8^F**FBqec)?d zedCjV@s4xG%X6q$(DAAdjH!kwCMp-Jo$ng0B&UsJnPAV%z1qlXkiulx*0q;kq}8{RArPtl-^^G$l^CMtDX-WZJI z0-6Qav1MUDu~Ab`d3Npfnmtvr?&{UL*uEE(cIK;^%60qPE)YXFNiHlvvS4_c#%kYi z{fb=xTdK#5c}fxip$b)DXst%kbs4-(dRTH@HtD#QMcVF%uiqui?4O*VV6xnvTRsETqOx$a=%rHz zGA2$X2u9M=_N&V!@>>;p;LaaiqG7E+zlfmeBbZ{#Z#(tpvD0yM4-I%crg8D32(V=h zZ{;EPR}Cas05j)i&RdLi0za=n5zAHt=s(}|wdc67cpr58Z@~B16-U|r`nSdoMId!_ zJ5wc-6Qth6bZ~DJqw~fp-o}UA8fjJ#z7CfB4$(bP7zZ>gUX_;NxZXi5m$0#%h!B=t1QWv*Yo+uXg3Gdw-o)>g~K z@EDf~jnTw7=}Zazi??z+3~5TNq+JOM2e#Q3{njIyJ<)iwn!R^pTz1Y=lGy zl=uj80s-bYqt%qs{aWP#!*z9H&Uq;iD!BZBogla?ee~k^sg?Jo55K}@@juPRT=7HyMpEZB;X+DFI!yqN~n}vdzhJ!MhHeAf3 z3L^IRc(yPh8nz7NmVY|#AejYH6;{ARA^>oH5Kyt=j`hjmKhxR!oeM!Nwt4s@LEYnH z069~|1=PY8k_YCs_89b9Dtpk>eIHkG?T&paLLo7N0=5N`oqD)EVA}|F7KQPGZAtL2 zP6$OD8=!Uz-)j(jZ^e@GU;X^Ea$Y;Pj6~AFBJYBPE-XK9$bozh8^v4o4QDU=tQ@*V zs0ai`DFq}%;bQd>2&9U4U%aePrWnCJS$KXmTaWEJe1&E%mbZZh=XOveK=>o@&~^88 zL{wqa2U`{iMoJ6$)1cmY3CB4@`D0@f4OW=q)W`;2skKpt^)*TZP}tKM{*n+(>K!xg z{++#3&3jLj5$oL9vB$J$8Q$FbL`Qg~*V!`0_T*YN2Ma?*AE7S=N*TNCgeN3Qu*Hq4 zb{CWtfs~78+M|aqytxBj169bQ3{Tk9kxGCGsq6={` zsq4i*r6}k-szoq~3dz=mP4+(#Oo)2-#$Z2iM^0eiH+f;)C66lhi=3l?`Oio~uGRoo z>?@gJiMVVMzKy<0d0Dt0C-v$jw;Tj~LS2cvRmH|N5=?m(x~|O-3*U& z;sEYiIvSEn{QbIV>4RhPJAmTsya6NuavT<&d8gvy@Dw!|8?SA?qnr8!vLu%bP!K=W zb?&-LB=1=DUU;ZDmwZKOKlI3){-KiXkf;X|=1%^ZwL`W@hWJQIN2SOn%W&x#&Bwo{A-G^KZ*z_WjWPVfjr;+;wU$V$6^oDkvhmzxEg}bx;MiV7 z^!xw%)EG?0=8)32(}zM5P6H1wzZSjR+%qZJ&3aPJ6!yL}<3Rm$cw*UvSZ=^`&W-Xe z>!BK2nDJ2u_y3IU=z>oX zi2jPhW-WNO_PRl7dLtDL*|A3)^}~~50n4p;eojtA$RiIdmFipOTxJz11;lhm@XBY< zA1AjB+ruoC2ojRGhEl#v)hV?Vycffe?BGRsIK~;XtB8^ISyGrVqYP?w*6F$V{P@B9 z%^l%k2>;CkVD#K(tqLQX0fA8R%NMhuKdm zxUL8244YxSic>fuGFgK@!7@d$kJHl>_|_{qc$b`-krAhwuy5kV%W*n$ zdCqTn<4ibCdhe%#@=WS=pWwys<4bSrRRt?Up=%py#JFFT{#QF$&P}fW;ls@f;VStj zKScgqQ?mC=Cqm_4$$XG#u**(TA({zQQ3^CmW?TFTT*{aaDm<`rY}42(8;gAr(2#D| zwiMjBBhc+gEOxe3r|wnEFxH*U`r+nt_b2 zeK?Rm^L-vi-j{rL;m*hrB^J(_br`G%=GbEGES!UYhHc)?Tyu)vCjdJtbV9rCkS1>H zGz8bXVBQ!}?p$c*-nZrsI(65SUnge}pHDcjA(T<$K-cntoBJV8B8?q)h_)h*_BNkZ zWk59q?0Gk+P>7*}IBN6c%Kil|zQ*+Dc#-^y{oABbxz|<|8X0O@N8J!*O2J;_qS+hH zo@u{u-$96ej=OVQZL(A0s^QNrHDrJlf(pXVKUnm5 zm+A-uO0$gVzxBzbcIVVHzSv>>h*=aCv+~mtA!nn3f{;Yd#}Xp+ebGSTNhXAOc0p-) z98fLY+Xy2{J-l95o4{GTyly8qSVH7N479vo_0xmZ7@2ecioM%QGz0t|6iEtRVEPt_*&c-l@$9gdx62AiXY0DFR!x56* zgvMiC-lPS%KS{e~$Y*AEuFvZg#j#Meb1$iUU?SYx`JM>{)L|6Bp`SWa?VGfBOxx@r zaTpK44hW1|LtvO4t^wQ3i@eIS^B%MW?h`)0QuS{$obbo|eGVOZmHy8g;oN_~zul8> z)&KWCAO7#-e?t6`|Dr#K#$W6ce>D!ypY3n>)6vJ>AIhKL=11L&{)-JHdQaFcZB_SM zCcT3SHc6VYjau)~WN7W58+8#3ueOs&e~Ks5to8Cx>Sq>s`hpDX4-2-~rF9o?9fY7| zI)a)3daP#LtK_JFUZiBYd2O5|t0);#lUK~-(9X_}{3^~^pd)NW*H}H^o_qTjou5iU z#n*uEZRlKS`23qe`g(k8qJH~d&;r&IPuD{&ZP^!wB>!7G;I!l$GQzRX;nVUdb z=aIq4cMs{#4T{X-m2_Pm!<|M10yv55+0bn0{*p&6zW66ZGwnO$>>yqKfYVB5kb^l;$yPcL$++{m|9g0Df}lB zc?!Wr+M!PU4rCQIi61pM%oPb%&XLMN3B4p9f|2reQJwfCh*tr{lkUr{1m4&mENG%+ zr?>Z7KKse>y`-CCRi)ZqaG4Td-^^fjC^?+kCH9t0Z9AL0NRsXw%UTvMls(3J(kgcO z$iKS&AkP-x;9t@g_wRbo!Si$w%qg9oYq~P4qp{RgGyYvQZiz#Cdcv!kGu00FGwOV` zH12 zIz55#>gQdcWIfPa%i=nMJn5IbY&V?0u{9Sm5~T)?{Ga1!Z3UZV?#JBgp{t*nTViP% zO|#%+QFD(fG8$Cq{vd_?ht?bP4rh@{6+IOvTBPxs@rjpQ6wXao?M*>T^EZ%(1czSm z_;L%wDeS}PEX*fscOdDtnVPu~H6v^C204(koefX?BBnx-xzwXQO{c*Mh6;x@oy^{k z3|6*Qjl{{&$NC@bkVF1xxj48AT<~bA&z+~EW25zzG9eGw{_tg^jj4l><%gapjhBKi z*u2b>83y0e_GKNSixVL|c=jDNQI1__QWgOv(Tae6DTT$k9cbbM3T5)*1cV94e`@&y zHoAY=*~B+%3M`4QW0VLz&`E5W?mo}urJN`PC9b_?E*=z!rZ#s#5c;Z z6SNWV=uPJ^ria+(BG0H>u>%^Xjv_l;#hfBs3jG$GTQJb79p5CBaida>Qph*Eg+oGm))mrIEnNxyP#r+spl2mmM{*fd3Mws2VQ;PRUZ!G>i**vAR z6droF=g|tnm{Dqa6-;e94(QL}jY&x)_0aO;$kTb=#0_xWS26bVT3T|eJq%CK)iJz^ zf-#xXWdyaE5kgC2!Q`=m!eX>WFP3xFj}Dpg4f*Iv!a^e#Um9fOF#4(_t_U9ll!!Lh zS5YcB*Chm=qubFXazC*jsxuxgpF$YwYrnb?ap zKn@rBV(hDg$Q4F4TJWKNoc>NkR`rUS6qz4_lMd)ZS$P46nl&wzr=fi0pA~ zTusc)6~L5l$#+4-YD>d8l`Qlmwna{K(l=4Xl>$CyjooN5&#r$PPp1OgT0`}RN!a4q z+MsGqPke$Z$?|0HMzu@e660#6yM4HlNgNoraV*dxhdChv%rAjRl=VxOn-WH-+0~pw zNNk!@>v8&f`d&r8-lM}I!t$d!8f33vpgtcVn^RHv{Nau1#CRz8R_VvdG*ppOUK(i&lOXjI%Z_n zq`Nxrt=kgaiVKNviXxs~h(}psm9okdnP6D2@@_vrFE02jyG|nGRA(e(FXcXqdVnuN*&MKx|2t z>>z|fd9tx+E&KWtT7;J!jE|g78*@=k@IV4gy6Hueg1MI>ufp9drhNfEH@5KuK?g0= z;!p+~bahxdB2jodX{RA+Oe#}GV!;)D#4|AhcPY%Z zy8VSs9S9g^tx~1^4O8@qlYl6i3w736^#LL~m2|0uF{~b}B+ynU*DqpPe(!|ZveKE5=9pResS4?>{k!fNB*!Qvl1YiLFEKEd z&~$7O3jyg*;7gqSErFrEDZ5hEx3RHS?uX90i}?g(|4{-iO0VW9GGjZiP)J6ixbPc%1X2BPNjsZ~JCiw#sBMq7|x{$jC=p zn{L%0Z^elysmi#k;nuQMiYAm}EJl{8r=&?Ca>>lhf8qE>6QnPr;p-SPSp~J7X{2!Q zrpCJF|6NBj1>%V_U3zgze3{$2lWsu*Z)<=4hRfaA9!bw*Ol<4Oh|UYrPfAC^UM!5p zkk2P8fIvTkInc|O;@8+FPvC_$abz4PfQbf?A%A<$Emz~t~mviK1S{EP?C zZI$tFr8Jvm605xCrB`R&NBA&DHomDD;&|F#CMakuhADPBRJ$JMubPj!{E@iPbJ8GS zc&uv3e*Q?M`6&Kuh;vfR9&s|CcOiL9)~`PJuJ-o87Q>cntXPnIBV!{&9i(jLVivGI zaW!MtkF*fx-_QsoAsyXpbF)af%)KX%#+XF$^?!+*wo!{YdU1(&LV*VLgNb^xrcI#? z>x38WTN$3~5;-dNbnZ;Ais%TxvJyPiIn#HzuF2qLH-6bnKl8Se9$^m43M@5^?aA?5 zc1SKY8qool@!bJNUCT3XyUbIcT2w)T`EKJSg(u}n9^$t!SL+bXKr{Hd3AB@3kQ!Ke zZA*I!xjz&(jfiHI4GTsmArY=a>6JFRuIlKvyT5BgeJr<<(Lqyt>5h?U*DktNZ1*Nu~U^U4AFbBsNuklN78=eE8S4sslmQ3xx4xco;NOe1a`1@bqRP zP1W`s86}bKB#MWdxW)m9ZXAE3R7+H~#Zb*exkFJbt?e2wDn4UOC((!1-|G%QdyeHAE>|S~%HC?^;+@Ip+kd zCvzU+izLd*;8r-rYyPM>xH5|$8fbE{Ss?dICTe-7^V|}Kzdr<@`Dyr@3;*+Z|DS>L_wRS;^*_IZLlfh#yC;79 ztH1BEclg2QzbSvT2(T^=G+4T8fA8zdU=QL!>oC%a1HQAeh=Pjwx{y?Ni}hpUNW+iK zgqTQdRTnnUN?$tR1s}MSr4aHd>N3(1q$Y6+EDGc*EiFB!XSZ^9L%-ZZYx2>j*5P)8 zxYRo=$_g8dOrK}hOrJIWmV|##6AkOVzaMa2Eus7bPdI1J`1YmYjmyWp*S&eXc2YKO z>N+CaMBwt;ZZdF2fx^VQs8=q3*iDk^ z7O-e9Oy2fCx}|&6w+KKP7An#a*dnPOk0E zH(#Q!62^z)ld=4&v`H9*@u0p83$@X3Sc6FNi}Q2xz7ER4{|@8OXK;K5VPG;3!&yom zViK;*t`_kvbji>UUjjxej7a43#?2*B%jBP1eZRN~*8kqlYKNwFV9~3O6s%^Im>_%O z(?90tL?oCU#aZ=rijE2kI^0_I@d|R1d1`<+K^ZB2x&`?PcT8b5ymb}4gf(mdAU>*5 z@l2Z%1++Mf3xvETJr*syGz=)y$Vn!dd25!=)&oh$0s#aXeme~^g@tmm#Ui8|9X7h@ z5H9N}afLb zIQQQuBAlr!K}qm(01%Hm8nw8C^s^J=JG$t^O`G0Bh6XF7SS5(k0qAqlEO6J7Nv+vc z-Ov}%r}9BGJBWR`BvXFo6fS@}>vkDY)kvstXNZu6*8P8WHjRBB3D3Pc%!Xp37A2={ zx8&oaSF(&W`*!d1pg22#>wg4#_rhsC?KbaL#Tliv1IUV;kO z{+hWFrUNUvpGCeHt&=anKLN1AcmfK$qLUkfYm8ckDzuT$;F6LgZ9)^;?^NJ4Y#228 zv*=dYD_yJngr(MZRlUCJ0aQ#M@%db_>}niG-zrc?&^A)i?puVODB@=J5}QPgV|t#8 zlAYxzk~J=b5MgWV+ZeWp63n=&7Ogsb|4_$?H|{0!ktVtmY%;>f>~_cvvlXoYBlJqK zt(o*r<(kIV_CTX`n;}6N*V-B7?^q9`>e_8+16QT9>t$lcG#8lq)(-()rkMo?K6mI^ z*%vm7>VfED1A%Q71h?Am=_zp?AvLon#Iv3~T2f0N9f(?jhaU$gV6h%t@g{#i&b19G zvKulNXHfx$?7<7@!Hwkw)V(r{bVK1--qXT(y35sUfANtDI_WIt zLBN2b)E%QFMhm0?F>5(_Bc&7(D8(8tdjI-9oxI=(|KxJe@~s%DeUZ|tB<8@# z=rUHR%9u4#TiWZRVX5a9X~kub;Pu1v3}J8Sx+ySyola|?dW1}#>lBqL?AdcK(m@r6 zrU$04M49M7>_91T{;ssCi@pw_mtk%+j_#q%)9uKRd4*!ZE6M>ZE0%++(8_dF~JPH09tQ)wAsckW1BL-@x2JV?G!Cx&! zVx4BU@U-s>RH4D>+Bnj2&yg%R@wL5*vXtDB_1;M@N5}`{A zN1Y=UCGCXq_#exzjyk!?_!9!$AJgZYbK~68GMV+?{Sb(`CJbYX^`CAb6Mv`>0a(uv zfgIeE+mH0j!4`a=YsatJ0%-)hekg1bx=*N;j)gop0dVZY~fguHE{B?d}?g*{~9cy61yN4Spsqc?6)|G&S>$Yv?*|Z z@jT?oLRPSz4%y&^s{X8mkBr{Z#0hJAU>Nii4ctsHX z1!fk9MK}O6pDt__!V7f6b)R?)x`riyMi4*210gtT7OLnSCw7Tep&5% zUd^RuNO+*}FJ&>P23GpRX6!+N)OWWDGQm-Vcf)5g9drxl2jFTLCXS%^r(L1wUO((} zxrmeBhl~(;{F50>D|LY&wK*HSuDwKWpR_NG`zvr*KSMrw`URp%Uo1J7s*lw?MrRo2qKCsz z;l6$f6|F(2t$?3LytpHANvD=qBr3WCy#ZTEIB)C{MfF8jF zd?+eBZ2y)5c))1PitSoIP~;}%uQ-xpdhQkUu=vdPN2xfTP!n!f{SK*FN!e`bgb6oh zPKQpB+1dDXNVP>4h}~WsWTadK9-KvT2C(zaK8vgl1ITBExy=E9$v;C;FFt8o`ByUt zWWbsFR5SJ0@h9>3!$7I7_U+41Q_Ge~h3NpmBWIS5Z9q|oAp>~oYbGTo!CDP6(p#q+ zhW1K^z6Quf9z{wUW4j5+Q;MxqiVpXDZETq8c;f( z_iv#)f#J@vuNH)386D#w7Ccu1Y4+E4KHQcN%?3ZePaF4jZEP zsmWs;Ee;`nO#AL#RdN`SdtG|*v?Bs;00fQ4kCU?f(y{Zw?yGnCF53>=^W!dZC* zwjYm6qy<>(!L@urWwfNe`e3m*4@(8@5crRv2Dm?FeuId1Us#lTTC^02DFt8M4+PyJ`?za9B^O#ILHdGG&;zLLN7 zKi{{%_72bAuU~xpr@cSUr#-^ImfwGN&A&pQTg8F0t}74ypPZ|eI|&h*39NmY%^CU+)jcjU4==6!wVv|14ZA0{XEH>2;w$0t(_ zVmY4fY!OxD{)_Y5)BL|-|MJjA-LN&;U_zJ?-DS$vT{Nw;3M4W;&U`ScIV%J-R8VfI&^Z8cr#&6Gkuw;Q zHnYjY&qq!sA!pQbd7C=%D1FWON!T`bk~Qdq#bY@sj;K+`#pkU$K@%76Gf)eJ@mh4jR*ns{2`GGi zM6kG?Ne}v;!NbS=sOOuOa9WJ{N7`zte7inrnm)qHDiU#cjmlm(a+mEQ-y~ghSd(Gp z__r_&x^6n^GCnY08ovv*xZ_gR%lq7O8a$Z7>7nI+pSJ|rW<&rR80A$0#^ad|ELAc% z2f$&8am0FRUT&;WJ1yD7fAq@(m{~xoD&%KmEexY6L?OW?!6~7H>j8wsyc{0b;WeC+ zg$a{_YysT=H7CQDr0_Cn%AO-nPrB}II!n>iD1Tz?)<<`i1hnA@?Mj-LTDwvSt=h&w zp3vZva=RkxlgpSnD!PbF?XoyuaX_1X59C*YgNyM{(2YcUsuw*1J@#-m06##$zf(wO zB6=?5th%EHY=Qm=j$86sALmcJ5iazXgW4A$ZzCrzx&x7maRq30G*Y42atbll#DFG` zr)fnefG)1X)$X=4ddD5_>&c>3EV^W6TB+NlrZ|LQFj7-@vZlxIII&>GvIZd&qjD(g zKVico12!D?J3UizFVQ+fA(6E6Yx^t5SsOaFdcxEN-Wn@l7N0GS3&}Of%HF zAQD?jd=m_nKrI7^kounT(ozb{VKEZvU)?W96usIR3~e0%bCwG3)rKqP=zGQK_;KT} z6Rb%k?JXYj2Hl!kDSKgEt*YqarFMP(X4r~XLluiq#8V{2s-82hnj97#FGx&xmZR{h zWYc3@Tp2=SYpVvplLq+j?n>QDC3vp>wu+2@ ztegn=T4HsDpLL^pWUG&Z^&&V7-+O0^VwV9qhCw+DWD)->C2A!x4qidUWvF)cAoC{i zmF}EgQux<)l8p;yqmbCE3wP$zgGH`Lw4q4ay` zGAF{&>ARSbhGzyPAjBvYOOxV!YksoLuMph^yTp2`vcBi4j|Xpw$(*|D z6?{Q5^i(nb)fJ|^U9rjcHptsqVwet+w!u+!7@$2L_Inw1Pn2EK^=AZ3d`yw2Fdvrn zvT`+!YonXaRLILHtg z1j5>i>=-eK#t&#hboEjVt!y-awQW*?T6>s5WWj;6wfnt` z*Q)A!CQ6ibewy89W(?aYx-lXUUx46reIYNIhYflZ@fk?fMdf2%v>B2M&c}+Z2E4gO zE5vHXp%z8v!vatDWU}6;k2BO{PQ+0QmoN|&{1pUh?~@p0>A4Q)gudL(;g|{uH)P-I;SevnR1sNYQB8VjHKLxsvLHEoDA+Mb|hAe_; z=Sy%={Oo(x)fh@7QSoQx?#tSEW2ggTILwOn5gueRRbgPAcB~l=iZu(D^3qGt@3+X4 z$0Z*YOzG^PL;+V?6@ofA1S>O@tAy_GED;J>kA&3S+oo!y0h0OWDQO zeXN2J%)p&CtYg%7NsB5`jn4-Sh#;uJv=lOx$(br#Uq8h1k#hBlijYTZQ3THCS z!v`bzim402c47!9RbZb+tEETtehM@}RxYCTQnAi3LB5D_y!iGwRrJA~oth#tbN+(| zf3ue5_P{u@G1K}=C>_RFz46u}bt;{%8@)=ziYaNJ!(rf6o>BxCpIirc?AM|p2*Y3+ z)z?0R|J!=L^nrn7-ueZfT$FyD?&|43B*v)=?Sfz@Fg-Vf8Iextk-?GJyPbFUQ-$oE zTm7#2EEc1MGk$+wE)^cai+%X70(!!_a*6<9r>ErrY)1UFeFc6c5Z(INJKCpnAxeEX zimY#h+)m97!=gP5_~HA1>3ra%GPu;Q~!6@&C;^B-+zPq zAum%rz36KHkW}CQ->_P^ zWH*PvVi--h0@i2yIL7FJ_#!6OGmbPmlRy>?_NgqfZ`soU5n4x|b`qdyilQse^8nWk z8zT8jFEZ~xHDu`VMOw9Tdn#lMC@GL(TS=nRyNG1THY+j+=++?l7efs_`&#(;YS9f0 zQ!h=f905aY61+(;8Mzg54x)@ai)R8zJ!o56e+4~MXXVBHSRjz-Ip4Xro{IItsg~%O zJl-DxkW#FW>*YmY#&(9`w1#|csPfZ5XTLFoGz3y5aCJc%>%vKPRT}2?$u04_UXWFk zda%9hNFdrU8)Dt0b_pU#0$7Inb5Z)YB|sElHY-5?y)WN+PaE4W8eRtpp*=hNcb`{U zO_|*HwxP^PPf}PgrP;>x%aG%4>IT6d;4iGxW327cCZi_=w%K)OAHKB@Kgoc#Fn+{d zJYLjhXpG8szc+W67}2JjZH_FO&razq&iV}8{qh*iMWKap1Y!CP`4w^{m)5H#CoLHJ z?QKRBbQWV-Utqy+xs%f2od{$qFv9W#*AYTMFGg?pTyD< zrHANNuIvM2gI{mi+#SyXQPzToFAPM@ajxDIQ*A*#Uup)_BpSGnxexhlEJmzM)>JkZ zU%~R4FD1QQaD(%C6(b8OAfV#{QaQbmhu^8WEZxfl`O96Gqm0qGJcPa);}gM?^QF_wAah{sJmTyLm+#N!qfXkG<6_JMjd*cNr9%v zwIMoVx|mG|wB+G@Jf;xye3v5)A1bJ7dSMm|Voq>Cz*qr{cmwaKX-OrTf4}JuB{KBh z0AGG^zw7v2N7dlVJk4$Ma= zM?C(v^4XCq-FK`tTaxHHe4mx=X6_*O4cMX6(P=VNlTf5me!q4pVlpBG*S`;e_ZYH(Q4XQ4P#-ISI zQ@H>Gm9t;(=tPjgI8^X>F^{N9>E_XwRc+3~xRv<*SDmo*>jI0kaGlr)`3WO>QNM5u zgQ#3lW3#n?d(mirdq02nU4LJ7pZVdbNB{o#KmYzG{FQy>AMLgO@^i2Cwg1h%F8uuw z{={Fu>ObwRE_g-T3E#cBr5JiYywL2G_-$Ea$L{;Xo>NFM{-AuRavPNfcxQEAAG2>| z<--D%PE$cW>oaMA$W(>sT^ZX|1>h$wJ;^1cytYQSsB~(b%Aj;YDxol@fyZcW6(klG zp0?n?qbV-=G45soc$X+eIrJY?P49ic)AF^Qx%9@ zFfM{B!KX9}S!uI#2#j?k0iq_b?t*kj2iS6&zY=OLei}}iLj5fLCyqcHtR1(?i!pWOca^3- zgYdZpC5MPXTzIH4AbN@Cfxjmqky(i$Tl2bq5!IuO4@$0TfJzw(mK67ouF!4}!+HGG zch;mT`6UI?c=pVoXZk1i|mm@uMx*k<{gd*%TfH)1!MiM}tB z8f)>$kGf3x%2Wn^?1B;T@`)YR&{DhYYQn6YnTwQG_TE}&E!I!`U?3vyq|Cy2Th*>D z7a@z=n5pR|oQTI+tVfxil~}l31m|q!L3ivxgkA*QlP`fOc|s*BZE5&)D;1r>u4t>V z^;W(J0q|W&n(+Rk_evatUH$gJsVpYh||4|*CmHUyO7Kah?=2Phl zn}06JiB(SzlIG|nLuO(6z;R z^586F{vR@EsIQid<`t+ghipi0{=eXm&?Mo~*URY3DFVQTmFImU43oUTpbLV9U!jo_ z)R@8=!@+=tu-6>PVvGHOg{ZL^g6E7mv3(UrR~AsT=jWTWLINtPq@-}3((gurs31M0 zd|*UJu_z+I+zUd@Nj>^bcz68m&R2eS|7(<7XX+A^LK;@%R)GSi07L@`Gq7mug2mK6 zlQj4@eC~mjN7sdlq{G*wSc!G8RWyL2DG^fEC#j1iC<$a;fQCsB`E$*14jjFOBus4H(|mL(++tAECz4? z%uLj%*sadUDf1L|bRzD%LHLP44~ff&P6E@ko5AF(a2>Gp63y@36peO6kYT&;$vaME z*Fb(^KuwKguAxW(Cc{ufAUetYe9pRRom{<#S9|p`USzd<5H4g}v!VizRk||aQyQd^ z+}FZNTZvEogkCwd#HP56>uTO({a{N6OazJ4mYk#aDg^X8QiqPhQilf1Hw}w*d@=a# zwzk^@YVzr1IrdXxdamw5OO2En4Wd%qJyFolzq_}2#|+{=Lmv|`3hq6*hgKpAzKmo;K7rW59^QiG#q^7huBmJ?= z*nCC{?kGzvFd?flUfS%VeS_tuYa-fx@S8C4<+kJQFT zXGj3R;6#+M)drwA7JGnJQJBej{NN;jyC<1sGmP6%#M=ZcSB!Os)p;Sn*`sLkY4W_% zZ?jUah+WGWFiMh8$tfPM4*f^t#h_mUpf=ns-eBt(>@v#obs$DjS+C+jxN_ai zJtwGtap8)5oBaDW<==U{&92#U_r#t=g;BKu(G=pp8!^^lTA8FhrK}3?o$`ExI>Ph34nFd3H1rHYzY~u!CIpx3PAsQ)d={oG;9WQ zo&`+TI~5NBu^=O>6Oe(z{rOTkkPb6`A72AR21C(f1a`dB*X3`|ZpjrlG-dP=siqM! zs9NNAoEfImrT$@rr-Gdz6N9*2T#sCxZLn7pi$LevhmvRCp$16`xBNj0RtZ!q_4;ta zFL=I04UYart4YbP%mi()96!4h2RCP1zO?G%acst05EgvENTA~Lro6PMaXcz4-SCJo8M6`Cy>yvN7RM}oK_+#{ur-$%B{w+R*>&t$Ph7TJo}9E+57W|><8By>po_l8 za@NI)a$5I}5co2pU`cO%xG}nrG{D4z+U;pBM2YAbr&`EjY}(?m(ky{~7_;qe;wx01nYV>ZxCs5RY{ratLvBOoesTA)>Z;@EM( zc0E~*nb_jSi!QX4jlMq#lS#6117_*kc1L=?DDv6B^{^EYT>K6^dXCls$TbAfa+`m_o>lPy;_`c#)d2z+c;QB-vimT zpRMYd0uWwQ0$Tp7pR;|Xj_EHjCXvxguj7<5&|YHPD%-?D zczzeW&>+c&vVVc`p&ueq$&xBTLbL0uTg#5}=X&4$HBsPpCzV@&Q**3oz)LEakpYE2 z>Qu%HKds~rZ6EpwQ>og;+L<|vzJzrGXJVlpzqY0$Br9$lX#Ib9v|HqQ#8U+q*0lI*jOhTH5il* zfit`-Ka2&ap|o&JF31;I$9GS`yZdq4;wD+r`Z@K}25WIaUAXm1A`mIT9 zE}biffLLED5$uMx0igcmgWM2TQX!696#T_058&2t-j7a`{QE39ND8XE5FiUh1$hnV5bOL96v{_ zWGWs!HEbvInLrW#L=$&pg)n-2*WEK8cm|y z{$*UYSNVKjFjDPL17~s?YQJI9Yk5Ro>Louv5VC<+)Qm%rqJr_5Mf|%8)F`?Bn0V+V zf7(HvjN9AKD);&P{_2X^u7$O{AFu7qe(R5X1@f>R8q|_KeXc@|$Eiz?B{R4lihl(H z-W8HKiT!NvJEn0&0wGWIUjvqAvynYbnaC;a6t>vTf&n(4p%K>Yr#-d=@ly<+(swfl zi$g-Z(4#nH8A+vw4GC~NAV}BmJRYyn1sB(hlgi%CTMM9!of%x)OhH#}jX13013gx4 z>DL3{+*UqlK-mB8g#c5&_*T7C6Cn)l&cL%+gyey3CeX#L=D13n2X}7$4#ZgO4*Mlf z1pCHi;E!C%Yq0RHXA}vL<3h=%lugWiq-OfPd%A3T_8?BDpCeZ%^a3T40)TOh5~s@Z z@u8oJg0dtvfZKX>DNDgwSda;w)mblKyUlj0!{Pj-AWHb8n4CSUZO3Ya&8}@gOW&6?6{mLJ_q| zZT=${bExSSR`{J9d?LS*|M8GG`Wt@2$N3w5`TGm~b9nN({(C>*$Nzo$A2Ie<{^#(E zz4m8tWb|YI#IJMxpB?{@pCIk;F~6?$6FOG-ZVt%5u^TUvkMc(5X>e*X2F1&8)O&E! zb3x8}0Y6&UXO!eiN6abC^tt%)T+8Kb45f&yEue_f$2uZP6(t`C5acx>5pY3$>C>9i zD0aG3ZuFy@-f24v3|gG04?@KJ4c)g!TB?A9W5=iN`^EdjBquda%A(TaYx5SjrVE?s zwBdpVbQQR-M$*%fsB5Nk5(Gc7W<3HI8cSg8jd=H}yN14MCmka^ROG%;_uQfdp!f9n zZKQK-!)rSm{O*nmYmlPbsJh<>=m^F{t^e)ju01k9on=tKe(XAZ%`|r5YNTwvmR~Hy z?`!5)Ndgs9VFmjwZu94o>)%6R}y{BQfCAr~1a&Tb2mwAH>V zwnKZqiOOOItxpeEm`wcr7neRYO@!My2cnN$=KQ(-2N-jxJ{oQc2-0F;9dO%C%?)r9m^VV;#4GqemqIH zl^61(^b@Qyic&jjgXD8u2fM^d_w(3io30lTiqw57e4x=!(wJA+wZx*ov3oMhDYt56 z_C#47{9E(n(W8eZn%DmO#hDlTU1@sWt)q5LMsAyhHfMp~CQhCmBr^Cn*8$!fG5rpm zeEQQjE3}~$uavzld*cP_ZOZNOc4!D^`OK|Nu~{DoJ?Ja+%B2_edFQNZ+&bG8bgsdl zEHPN#(toe(_PCBMdp_S*Hav5}$B6GqiP;E>271AKOkl1<;yGyNWFJ^m9;>dE6;qzV z-P1@&3oeR*O3{006$pPCj6%EnE)d7snO*-@*m#q_?P;#M22?7aUR>mjGn4x=U3OoI zi8>oli$z5nI-79eIGmyMc4Dy!j8#T3w2pKKr&QjZ0pRCLk@P=r_hv9}v9^4AsR} zDV8h?qAOcnWDEg|&Fjt=v5JUfI$`r5(e`e+N4GqmBDyY?v$yXql#A|HeT;%l`Mvob zLkBE`hqUHA+?L$LtQ`E=;GRUoh|M5x>5PB{Y;ybKtWht%m`kma8QK_ zc8=hJy#;mUQsTT!EfM6r_k1Gh29+Qpq@-MYe@A5l-lA)7Iv)?8?`EVpQydM}ddCS4 z_yWN8k0Sox>pMlpcJoBu@NMrI*{Bj@W*#PWh=&i9jWX*Ntt>@*H$h$v0EZX;_ocUj zrkchaD*3|`va>&a3oM{&n~8Lp1UraTsbvY_Gd#$4#ZNhkgbst0MdVQ^cHokb7&4c~ zmsFeKyxQQb=`f}Obcy1wMkYXJGxPLRck(}_L@eY-G&PR4X4i-B?T%9LfyvYja{s_? z;eO+6I+!bn>PlEyE`=)83SA6PxaCOY`hw(*(yl`Y$8Ma?!Fxdc*2-B6W`xmBuGJ%x z*aDwO({qRvU`}kY_nWSfsPt*<%ud4OC6?9LjV9sB%O?n=D=yvl^{9whc74joy}Rvd zBR*xo%1Ay?(pN(b(c15$Xn7dkixlGYBl|c?0A*Z((-wd-B*q&-*@`+_nLN5mIZ8wp zT#U#J&RML@O!&Ujzt0nuvJL>KZCjG-xIHzR%W|#geF-+7qGhAs^*~_{f^r?|e~|XX zfO>&c?&jh7_Zr(bnp$F`!O+pg?Jy#}c!;9Tj4vWjQ+3r|Uy zCT61v1<3nV3ec(-_Rm%%hAW)6+4G%+4{+a_&2M+DpFXd7mossc*@7Dqe}r ze|7sdG?4UFMS<9Sn}&|4gvF>HoxuLK~yYs$$3vhXx|tJm(z z3KL_r>>}nxQx?6;$XKufm=E>*;Fl3`O9zhe2RF5zq<`u9ml(U`3NsNzI^V6Gi;lxI z62j@0!Py2qwpm4l?%;?78!jrAF&J_aeP=Js0z+YyooOd z3A0i^wt5dLY|$<U)OaK{y;%xV0Pg3LxN~W;~d|^CiAb6e2 z0aQRNL0$srY;w`_g3XTZre$^~SjaP{RQ*kz7BBu!Oo#>k8;CnN`XU;#D|tDYajr>T7P7h;+8w!s5K!MgNk!gXk~ zU(S~z5kg$OTpXxS?GAd?9c=jWeLKshW4)Aj<^nJMMVRQCE&7DM0Nk+Em9$1GZe9Ci z*r<%CXmawjL|IN24_fQ>BK+0`Bxcex`O8P2EQ@8(2q%oy`V;-+(NvKeN1fadT`PB5 z98|vDd=(9v-WQh@gYqZ~YSFj?S>LGUjG`M|Bs~H3;@#2M?}wirP#1cEhGQr|q*48s zm6)(gzO0c7gF;_%>T2(q*OfdBJj|V`!G6_EJ4>-Z0&QIphvo>s6_^_3pE2uUZcO){ zZ-{jD7MeC5v3dbMIxKw%c6}=V#MlKfS=;+BL4aaxM9BO&8f(pVamlP#fM)$1u|>PS z^8?Zt-zC?ccC0jnMbP9i!K_tBHTvCm#Ip%|({O1l!s$)7Gr8n*zoQ4T5#E~wwpc`z zmbKoj*8NkQOT`8G1Y~R+hP0{hYsi z>jr{3WkuE67jWw&Ax%+VFQ7{#Fv;d7aTqr6nr@S0vhMa}N(m6}*GuwP=^%Lr9r+F| z_$c5;ihOkyFEO3zS)lN0{Z-IUx)S$X}7td&=%!1sd9($gQTOnT17@ z@Lxx#$}IRUI<_kRYz}`kPIZ_dy$Bx8na9G-5+e_C&Akc(o87ct0?-lnH&EXK|mX7`napSzN6_dY4pauc% zBUk_|ytuT!n;X}h{C3#!f6`=9%qxT_%1P~v}UyaeHxZK zI_{)P%)0|+cmanoutNETl+{YqWlc$N;w_c;VdNcTO*!eZRP<`}Nwrbo17k(fDXD>K z5;DW`fkuJ)pJSokn*qwsZf6ztzrII4H)f}tOI3yYb~cADF+MGat8+snt$!CMH-u09 z#zx?E91Ufqc+ZEPk8vv6)Dx9+?gwX!CQw3;-KyTD%UtT&=ugOT^k6a~R29jeif=lnBhSY8G``=>ipt$$>2nJnP zjmcWn@eoUsP{g{+ptxQ^`+2a?;Xb=UL+$Eggeaa~*)9PYH@}N#cj;y)kX@$_c|@Gn z(j+b(?UVU_epGUqV582}w1?0<&^lwhsuTtNNZM7*62TRAL8+jZ62_MzZ77M%6WLsN zZw?HUOv$BF$);0DCDLE-o4Ru$vU)>sL|?skrNpdvEUx!sdHJ1Zo;x(hJN6V-a!($Q zja}F>joVu}63?tuOPqI;NLLJ$_Q-UtrDOJ?E@NSmGBsxIxnq<(agw22w{eD-4^5#e zB*YH~U)oX+qa=74I2G=O?JIX)&irneDx26Hj|&W#!Q>*X4!Pr`H0CONze?Msc^0jU&D#<)|b0aa|-|ZHM;^_ zAiKU=ovWgNU0l?_zOyhP0=q!a6VMB;91CKaaB*+n)RY-a!iI>Bqf!m{BqgfG>kpnh zK6+?#<=0EPeCwsf%#X*TzN5Vi>KoD3s{`K}Ps7v<_~kl~O{*?tUt3xVd|c45}Z z?UslxM`6&8L@HDH&mGP}PlwVA2C-CD!wc~k-~lLQc~&YSppp1!+*BY@Eiz-7LSxOv zs$J87u_HIlcOcf-ZL3pYu2R5bO3h_aZ#s|7`edSMGw^pUZtjjE)`umxXws%+et2-@ zTW?Mh%4qhPz9Sx^r4(p!iP=iAsViY6b&v=Z_lB>E49+P zOR7@pB4hFA_f@uU2G!~m?jeB%5f(8b6vJDU;egcwy=?JA$mHS1^iHdbOHHyQ91B(o zq-4QP($<`BkDcyZHID_yeW2JwSIL5gMY`vU9be^DqklZtmMh$RG3Abrysc^OU7AA= z@5!QT8m*d02aG`c(=u+)p**?q0?C$RqCQWeYj3RiR>vG6s|)s%|vTD+L9N0bf2)h;w0C8cq><@k=W~;YLz%a$5nIfPkirZ-D@`3$hh)XKKs6+t;3-C75 zFP=s#4Luw=?8-+ohB-7IhX#ABt|BZ(PR2G(p&65(nU4RqXX};uaw?)Z!c{H@hAY43 z(L6E&#NCdg9UDCf2Xwe~D@ORB{=l+oWqjzqQeQwYx3D_ufgJ7_qf9)OqMB(nw_~?! z3DYv(e)AnnSH;^sUuGPmAO902ZI;gld8`3e^_`1&=Cy|*7kLWXYzaV;sZ3NRQWL;9 zgNTL7w*mYJydg3|V}&L&hBIbl8E{$YC-}EjMcLvc`|iBjS4elf8;@~IiUznh3kWEY zk>9pmo($5g$FU=_<DJG8{=P9h5OgN}DTBD#v zN*5<)BA(Byj;sQEL1;btiM7*K!<_}$$B}QHoaFFsPDS)O*y51%Am)sX%^LMN7)-Ph z==$8xlZF(|!;mvd-D`tYa@Hmu3T}&zqmGZ~s1#a`58<$Hz7--GU_;0a$6U!Kf6VxIP(j_xP}eugyl<%Df1Vn0-3mU zw-ybt+{z9VJUz?u)%T?Xl;5=zn07lR38Pdbg>f?9KpM2Kgc^mt7bei#HcIVr8gQ@` z_W=jg?OO8~ueT@J_hG~VhNVn;lMc9A6Gjr;HJORV(r>tEhn34s>mBnz&G;wNdpgk% zg~!QfWS~u|p~)rKZ+(snpyV78GIgE-U6|nt#l$A9U2-9>&a-1JG-YG4Uz=|clABJC zJ};ikI=yOXjWx7?ZKF*bb)pK-AUg@J!>KI{Eh8}rElH4-h6VsO3J<+4Bj7v?32R6k zQ@d&N#a7DV9=#4GlTMMRUP3ukP5U)*6eB*0A*j-!TM7l+^J}6Em+UX!29+W<&a@cW zn~!`}4{LIcQ339Lw#@-w8cgD!MYjfS`SQ=4!L{j|fY2nJ9#f968i zqGRWs`|{S*lE+4B7fKRVmj5n^2%zp@K)-dka)l%%ngcX|M|A}_b?m!tjshIZ=$h*< zCe+Hf8%2~$T*XV6Fy6VTxQz$Td$MfoO3$FR{?K_QG|eO}!Zes}c3G6ru{_d3(aS@z z^RE2JU(`73)z6ny>o8i5L|Ke!Nh`Se^^nbk@+z#CA5Ly)$=Ed);z2DRX1`9G*L#N% zFiA!|Aw<)R;0Wi~6X;;Y+7p9UC-B&`P=DiA$`0NPuKmK4omB7X&gGjwamvQ8<`>`A zjXJb_j(YWliHZ(V;{n8A%GwozxQv-34bsZtlluN4<&IU+U&gp22~gy8vM(1hqL9?Nv4#*;?8%F|Ha#^i(8a?|!l4LtR z%3Qkt5|zJt1u#CT$kPM~j5tlf`>iqHzA3?*Xc~HsJYo#dg}5IEK9Tm)J3Su79FIxA zci_##Na|;^&!;f@YsEU{w7>nhFfh zsxKE=wUuF7D9z~p3BVFk{;_zr-5MK*+`ZYrdvmt*US1l~lJ}OAUAeOl{5$IvC*dD( z!NI@ff|H%2J%rSo*n}|+JGF#ay|}%*b_ov>y@eq~dK&0qc2hVp#+I7_Tj2(Aym@is z*eVSFow)ScHtlB(d$dL`B5#(&kPQB7b!8t0!Z|jO#Mpb>+W$*LO6Kipr{ZJVA@Pd9 zsnQ}y6LOAGo-8HnI?yaeqZ!zMNupfzc|qXIH1zNL9tiQZ#wOS24TDQ!vFBI2eqK4* zLPQI&Nu#Q)=;AsEW3i}>17GIEBeisJM%7d{U3q!O*d2bwlBmf_s}YJtdtXhTR6~E8TawQd3;M`Si%0s*nhIoDpQW|@ zC&ke%Z;ySj3}(4raa8^d;?!8k433*Q{n3I`FNOk~$DdLsr!MTfaDw*^ITSs|iHT4K zec(+`X)y{hETFBVrqDQWyf!s&3{Rsz&*^B4G zVOn=Zd9I6&5h4=a!t?8;YjmO$R)xBGfxtuN+~?7IhmZS9p+(Y>hW38UnhJITHa%*8@JL5KnxiGSOciO zIoGCt76N3{Cu_xarddE9?dYl(4kV7%zJqG=c3{vC-GYwDMN7`Qa?Rkim7jNM9+_P9 z0xAoKkU+ug223uo7`kZ#u?H_t`&fHRxs<(5{HZzKkwFhw11FXen5j~6?Oa>+t+%^l z9%|>BAI@1^c-W}pYTI9r{`Pp37k&}Ae{1{>@MML(+m|5z;jo}Ipcs+=vA0-{EB1@y zuTt0;)PTw=iiUEUmjfW9|0CJT_ubvE{+#QJw*4doU*PG0|4;nyKm`j@0bUi)JGWSa`NvMc9i zS^c~4PyPPB#6^c$oSHhyW-QBd_@AlHmgo#(?T zjIFX1VsP|*EUX})IxSHbBQ|kC?VG#CAhV6s$dUwc9vdpFrT4_AqCuh&^ z9u$-5{hM%$v*$dgdP>({yMiXU_)g zww@00z#)Y>G$f*}Qi8DPUu}LX_Crz*t71Y>R)hXkI0j%HsT3GzSNq7c&Iwuoq9q9y zChcj1F}weZo)SU^|29r@8&wU?5Ws*zk_e1yp;Kcbddd&hp9s0OQaZ>>aasvGx9fwE?V_V5=-4w@o+xgxh$XMr*=Flfk~@_ ztqTV&yDj&q3&+?gHeT0g_HpB6e0b)B0$%i-R68Bm3AR)iLirZOQm^O>ZC_hC2!;33 z!)KBaonC#Csm<{Tf^l%{u@Z5a1;W$wu$YFVlmX}t!X#+4(;AvNIO1IPk^4G!k2ABhbV@C)wSNB{q0IgFB01o) zVy74zM)(iEYr}E^;4p{jEyj5o5M?aQV0!%?cB_~n_C##8MHKq*fq_5rFz=M|*JlQz z+hdcMEKC90YozYu8Vm-!kZ4|!DK>*f&{nfX=vZ1NpMHqDkMUXfwtVZ$sr(=C*I^~?~=yT!(X;E!{T>>;L1^u_xUeRUH!dwIKov16g4O|<|jh~Plx1nrn zL3dT(8H`1BP~=+)pS+Txf)iw zP6+4PJ8?(vjN~1+p^0g2NB3tIFj~iX(xla_D2fq6$N>GDd-_8zHk5PkwBBQzpJ)g0P%WG=RQm4R6zB0ifO+SJ@7sf7P zf~!)Ahql57xbRmx?`3i_P;SX%}`pFba8Cyr^+HERa*3}=CpF;Lp zB-i9)SP2J+2ZHue+&`$Jo=LCIN(F@&X72J2vRapYe@Y1y1k2onD+;^aY<{)6@Anz*Rldh zpi4JC&p<30gn@hD{FaX0TQ-!jW(zCxzA(;=SN6YqDMl7oP29zdVbtdV+9}uuW+m0=viAb6)tI;HkT5!NPYe z(X-O`dg0?3$Q%q>La9ISt(PlDM{0QAU!@XGJh~jJuj-GlA`?|DFCtWo>jk)UeoPC` zuj}mPBie!G!xvvx@`=Ck{nh?t8J8fG?sc&@Q({>~glfQ}dUGa60RWGSZKzhzo|%DO z7@T6AkQT8t0BWiM?72fqdzN1v@D zC}r(UYiubuT#=R%Q*Gq&m}0KCS4^-{7c6R!=sJt*#8;O;-)5#{ClaM>#cd4C8pFtd zR+I!a|2*QH z(JreGQDtCM1<&a`R^ndYuRTv-E6jXEKv+;<0zPFWTnSQr$c+8>wl|unLk)1T6^3?k zY-Ueb!gh*#xV`AT)^fk%4cx{te{D%T7-qwdmYLbi_P1%^3on4`d2r1`lngL;LvxsX z3$DD^WrOaVl5f{&VQSJM+XJn0X|jmnIt%1 zBvO?R3XsR9zdZHknu>gu36d-ASiFlrzBkK406%9l@<`6WJ>b#)_dZ+g*QLYlF)klk zk(lo{e>u?{HI7Q&rhyy5kJr13Bym8+SuPRjDTFPqVX;9B4Znw3y&HeP>NGnrfmVboQrvT@BYBj z-n`OC`BLK(h<@7%+ ze63>GVxpF_iTeH1VTPY=WuMK}eiSQ4%J{A-xuerR9L?G?QTutDXt+OnU?b?jKSlz# z_(@OuX2!eZJqlwg6)`2SrW%IiClOs#(H0;Xt5&$+$zmY&pB^%Rz?Dxjv4%yx5r~5fuGw=Do_7)RaGKfz~GrS+G z*+vI#kWufN={A$Xf}xc1+KXD_o2~0>{1gMJg#8x*p&Z(T%8Iu!T;JR^kx`j`#Yb*U zOzc5lQdh3SdCXxsDVXN?N&fqFIc}{mKSx=<#IiTKMTR0AjZ4k!Dpr&-1GlVm4$B5> z(uix&66&t=ECDiyA4ootnh)E!gBet)OEa}^MAX=n6YO*;P!osuMfw!ExCdAak^0ZB zi}WpB@Y0_S?%+7F7zWto)VxF?Z)$r4SCduACg2={Sq96mI)*Dvs4ooP!?D%0P9Bed z5=6!FMoJR!eVAl*tv1#3jh;pu@~|R116~k#TNFj3EU-4}MEj!vezDZCz`%WK<@&6p zj_%|QI-5z718Sv0*^sD2YTQ63Y4!p&qSWT`)8nTUPly5F>-CZV^Yl0U~qt?3Hla$5lG^rGm#567E;#-Xf#EZ^rM(X^1Dl9ZHV zvl6Rzv%bU!(*@2>E443wHMn@Xn+*8n+8dL%Hk`}oKaZvdqwZ#K zZZ;^nXd-L9*AGX8(Lg1sUGi1 z&@62GZS55LuV%8L^*#ADG44GIH7VJJ5B#p)p=*@Biqt-IY0~Ppa7Dv{-JpSOD2xfw z9%TtMvegh>p2B6_R!rX7PJ=mV+@NBx$I!ZohRw{o$|2F^>685w{dXSU zzxuyMvkd*%l+}Ry>nq3mp+7uV`|ClZ99tkK9MCgOezZ>)->^e;?A|)tFRlVH)J>J3 zoAaXxR$bW+UYSh%UTucU>0cOLtC)XpZ`X_=;|Gsol%4ZS)L)14!5u%rfX*qPgeG02 zeO=I!ER3}t_~DJj{A9SvvNFG|W5$M{w3zJ}v5OF}$6_}IkG1z4|Gusr=%9ykau-ky z){#jwr4h!sS}zuSv1#6JZ(qBhm~5>pRNM5tP?lHO~W~RFbO_-7rZ@W74D!WJM+_wTvwD<;loV3ZdcACXz4$1 zG@L5p`Ubu~{kJ{8a8Kt!lH(S4lB6rse(4rcuD&fxLcD=TRoPu?n`Ue%Cd;Jj zS)9<6M|rK%R-6}DDhi=nBaZ%vPOOJfD+}iZxu|@Dm^fTCU##a0yDnu`f3>rL3#W-J zYS8yzuQMrIr%%Q#CYZV{9|jX?(yVMOZhIA-$|*zgA|WXED3`^rLMjG7>WrVIf87Oc zdPMk-r#JQ{Xz9st?pz*jK9G9d1F<}CWT4D13BZG@(%eerW?7K>z)$x4n0(Hj&X5Mp zE@^_3P2O}rMjE?1*;7b&>!d60%(BdSuJ!L?dt4y+LaRSbw0tf|+}(HEWVlcj?lUZ@ zlcIuB#&S8*z+pC!OJ9y0cF$83`1%ErF8F3afGxoa=wemZIhGOSz53YC~DY&Ng*zPRHgbU+SL|w22UhqL1bIXQ; zj4H&x_A|dXK-Gsw$jH7tkTC9SF(JB4G^0D}EMkg*u2Db%re42SEG&brgbuXgJ#zSw zdek9Qtcf597-J4Ha-r!1)YbPd8s|x1n<&rLXs%Bgm_L@z4Di90PIPeWw|jeaMg`4k zgqjXQDV#U&H}r(lq9~Fy!BsOHit6fZe#fA~ zo%yL8f_o7T6>C`n1QlT@U&aE}HXl#Jj1Fvc(@8>40*69IFwM(U?d~%l@s(DYB*aJ} z!jVC5KtSY@5a48N8K)-Ym+SOoBI;i}S)`PR!6xmc^@+x13b9V+`^*Zj_W?qhN23W3 z++~MmP>QZ~;Zng=%N_%MK6(hx0GLDB2_AIhGJoUS~zVr3o$ge)u!Ono(55f<$OuaKP){lDEK=nUsMeywqdGyk? z+iYPs>uTn}JPns|FI*Ze{xGuN*?5)B=27W+jB6D{;ETlU1g?VO_F=)rUmYyIBfQe2rS7CD23t@O9fsY zoUj$8I@p(QG8p~lpOX-qbr70@Fsfu+FayeV}u z>DiTI{=@!z+p9enou4}rN$X{@qq$B_4lYR3Vz{nY2Fb|TAkYNN%5=|PIL0C^R{p*= zlCjV+mi~`|>RH zydjrYVk3>JfRr0N+Z3{9Ylm_+1y*$(4^>?K4F!Tei^ML9_q}p>=gSl~x_xJPOb%3b z1qg`3Vy$I4oO432D+>e~?bl1A)iXmdevWwDXZvgc;E-y+yN(Z|w~QLMB?#ExD1nxt z{a-v_Q<~bHdc+5Xfj9%7F%T4o#4-TT`T-a&F_RXXGT!hmM{iau;FNsV0ixtioc<;P zX!@56TYrrEgsU{cO_fDcvacB75c`SpyzyDKabgfZ`wtXUGhJR; zH|;_c&4+cnAJPXNV(O=d`3(;kh-0fa7pg~<*e6~ou*9@&`;uvxljmS$-%GM`8UqG=^9(Ug%Om{ZNt%GM$>q5*zg_8%8?@GU zJK`QI&F%qvyhnh$S~bvV9|Bi8wZJwah`(tWQLKPUs`lctR}W47=*UrTh||gJwy$`w z@w~ChQT$hkbbi#}Y*Vyj*I}78a7S*SR!c0KmLd>3mj@z^nh?TI>KoibFn8?;!zLLp zuC_CP$w-QA#`O`9C{c&tRHA}w8Dm_*cIw?3nr6H$8&twD{^kE06^GSwv5=W|#<&xx zvqoG73uiE7>hP*^;(Dh{zNv%(?ZXn}JUV52a*$-jt(Bj4b=Ji~S?apE2rH%*HEI$x zT`AQwEY9+*v}!EPm_^M(e#{+v@&8xJ#nGp?k=I5Hb#YPp%eS^xJc5Qe&+rwrO^6_G z0L*Zsh8@tc)K&ri`)g5Q{`0pv_ILLCmCpP3SNC~`5BR>|kN@-b|G{6> z@6iYP?cbTf!Ta3TAAjE8PrT+I?`Qt1f76yTp}*dhvUs`ze0_Z`TT%S(k6Ia@hWdc9 zV81Q)RF#1U0bp2ttZGs2W6M2#nBGInct*0|U~|rF>gZWAp_2Oc#aG2_d%ub7Dnj-; z4kNnu-mPOp!=yWb1I5xA0?{ic-?dt~r*b>|(cz$d(w#x<93LxUkF(9GQ}bnRR~2*- zf8y2hT0P&K*2TShG}>Fckt1&9Lvnl*6akwajG#4pmT&clr_J2CFUQ$QSj+V)ew|xg z!ILlT=C`dg%j{2!V%8p=D|D(cF2fZN*k}+Q$uZ%)G4L>sLy>C_sB>6$O{MS|Gxv_& z*p08^@`}bm)lVy8m5Rz9ufG?KeMGe4_YpaBkj6*jdQy(VK>agdpDF}coLls)q3d2C zf?Kkrxx!)swbMt0fEMMX`uRSR_{DWkFZXN_LZekv)TwN;2+k(4EO-y-VghRw6Cs-v`i@D83AZ#o#V5i-8P-wWKn$(A z&`B|m)c(Z&4q(R$QdS-@g23)cINMIAZqlE84A|t{Rrkw##g;zAMBQ)JppL8QgungQ zse=agPG>|>{ZVR9iFbehit5U3Qk+$D++cG;&Y-EW4wP`N$_dB9=05oIgoDf~@3K2N z583aFxqa_?CI8_rexfI-AB2#iwhG2UPY)ah8rCdg=-49m7%0Zt@5(*U*g7`p}J?eC_{@@nZ;w8l*5)mnaX&q7t3S4>$g1x-(_On8*keSHqlSsNF`jP346i^ znRY$t8O>i;Ck?3iH6DQ+O##Le4|ANw;S3xl53?w2(^)_{w_!_2FM8yvHu?cRZNuQ= z&!OPRET9wb9A71^*c)Or&p@{EAtF(lFp&O$p2arQn6bX^nS(PNF#CGN z5=N3GQW8@*V8Xa`Ltj}jt>3Zw-cNd**mlzb#xscaYkvmhIx}M8VC+j#`edXDQj}U< z31IN8PY))ubIy=>C{e9>?_J~Z5%Vu^g}(8<5r26;na--V^hG7?v9O^-2(-Qd)R=KFE`uNxG_EWTCH=WztQAuiWEb+<8x zI8BW3iU{CzD#J1pJg7Ywrm_>c-RbM8QUZQetOPX-0_eN4DDpV_mJi4go*K!I%Bs>= z??IkUwi{ar)(~Vr7;TZ1AOu6vZ1|FyGDh9L7bn&vZo|E0J48=1vAbQPsrJS0yQ=!G zzJ;$8f*%L5EI3E2bMT2qm*aE_#|Wmfsz{n90(+HU5!@&%JX)nTO*XQ50MhXhf_L$h zUAZ<jx^~N!kF3*sqiQJu>rFFJ8fXk!i1C=XHEEFfvkz@Ji6ri7~@OZ6_ z;7Y4Twd_4NVdkg<^REIqA&vjsQE>8Js_&Y*^~fbGtdZ%}sgER0qP|(74B!veZqXT2 zP5V3eABuma9NaxFyCNF0>W#~{4(OZ*TgYZ} zMEmUd=lZCb2v3jSx>JP6`3-oR#7t~N3WqO3D_j5)uOo57Vi9>24|v;L>}d`O1C&>Rw7^D0zN=lJq>#O3JP2+;lQ0f2_O zeRX#|a5_Mzz8q$7)L~~L&5JLXAnN|LepQYz+n$=gaFZ{Xqa( z5*>gJz|(y+=o2`8SKQ+tme08B2v@zdzzQiz-tNIG)`clN<7oZy zyE{pBCV_P@OMpkHlQ#z|!DhZ^z(jA^;9Y9V%}Lk1KsLX1Ne)maH1u0>RMs+i!#0}l zLfvx!5$z=F{F}cGEm^k%IJ?_-b_^JM&zQi|{N|f5z{>R*fUtnCBZpMVjzLV`7rZ?G z6R`rt`3b$z6=~icZrwk&AgUIo^n~P>48u@tF~3%4VZyPx0Wz0C~)Dol-p7{8QlfU627nQ*Inp$j0@Y#nyyn8n0? z9kyx|6~R;lZ#-NRD%SnkgB*wfvcRu*>q5y2J!#i9c>Op=8KYk?HVq-iQ*2*&lQ7FhvwBd>y=0+Bcn}uaO2__cKsxOonLBwXK3?5 z%{=bCf^TtB6J{EaPpa33?m9Fw32-LFmq0-+xx(i}N@Gn1E8=^{c)UOlRCSivKDZ#B~Ld5(Ba~$mW!+D$R|} zs~;xivA_riE3IHg8l(D4&R(V$9Hi$ftJgoimG*o2qlcY14*(-m%jyU8Gqqsqv{o3< zNDf~Hnam>zX`8`}9m$}CC#vLygbJ#Cm<7WML69n%+33jzg81RTQ<#4e!U^qco}()N9fiEAbYrC1=)&~ zW_CLCIQy$nW8+!j&r=KCqr`GDm#Tw7WnJ`p*(hyarnw*YG~#(YYLkU7gF|3Y)_UYU znm=@k*vB%HZ-wl|gq|WSP`!@$q{anAJiakr7*Kul0;O!Jq=NBtglhv@e+ZY<{c}Eh zG~8cUz9EJ|J{y?TiVK6JDMU@>6g6gimKP*>BlbM@5aoFXD7eS41B+b7KrCZmRq%>HQjEyZ3b z_rWg5noWgZCl5x7`(y9PC2|xtvgyoPL=u+~=(#`uy20f8z!Qfo<(q&LhEgeT?DKsx zCKiduAc2c)In(z;1w1IGQqDIXyD?cmkTAcLAM4m`EE({b$OMD8RyDAvl{PWzSzlM& z7aCLy_)s^5Y+(Ud97zTv6by0*WOPB6tSMTpzc=m+ls=e)kZB34QAmYJ%1AGlb$*7z zDV27ewE4Cb;h9_)vuO<*m?diuR#L$G{57LV3$~&X6v6m^zc<3E&2CVXS5KGxui;N( z-}v|nD5U-gHs_stXZILXkMKxSqhVNrk*toTi-XIM!zXFls>#)EVLRX4cV?6V1{0~3 z)riA>S)d%FkbxzA&R8|Duqu|~hb$``X&q^1Il|jWp*04+^Bp{kVWFwIeCD zH&*vn?6~uZlu!Ror~O?KX=DHoFnd@=79#~z&zLBnYZhUTeKbXQG!!+>l<2c6ol5`Q zuWmu^n-AmmKJy?!_k)fnzD-$~3mI^Hcsnu(2IRj{7nm@Uc|-7x?;B!%N?0T-m31IC zvZ@73^#|z)+&dIg^PCaIW3^JRj<*B?u%e=xNhM7BoL<%3;Aj0lkM2*F*j=Z)miEns zAV9h84tBpglRHb(7}X=BHjFR;)brhERiY3Zx#Y0KeebllOxVAgmhiR3ZD49OReQB`# z{+;mub^iSC6%z+Pp1;5UulLpe8M~LfxxdLL{@;hszmDIqq^BXj-?Df4^S?)YYwR4s zwE;JCq`EM}o!DO_sSQV|R}+T-`XU!{pNY<&+6%0!k!ZvjCWsz5kPfIh4-&BszZDLR zWJcQFmd%=HhFOEfX;$uRGV6g7j?Hd?fu9?)ZVot|GYeU4|8OoV ztTX_qDWav!;JV!^`D{{xqh%A1>tl*Zw2|llPzCQ>+g!=+Tr$zJFRoDzU6Z^4+E<_Aff3^8>w%W+t)FL>46Xovz8u?5@vgq!ESkyGdiwH|@f zf<8#4&9;ARJ*r+Dhc)g;-0Md)=JVv`-SB5V>sqAQ@ZdXFAaU>rUg8EjI=0T#ur94G zHy=ne3$fk`!qct}da(QyG4_{8kTMDEMG2%`xVc1H7Y|jn0}qn{&H3jA*gOlQe0MPx zJ~Mb37bs9tD`*1xg(q|paosT0@~)Pm`9(ID{EgBkGS@D!#R^^X@I_h`a%%a!d(l05 zeG1nJRhlX)j*dYyzzYleM6H@HNS~hXfvYBJ?&1Cs!Tiz?Y-O*%imc|_ypb$8w&RY1 z@#u`~HAi?>Ec}er`K%Y-$~1Ev4YahO5suu@&7MB)MiD2n#W?$|3hK{_e-2zGBb&cN zyTm}_=~eEP(p;a@i$J^x<}@&ht?U`ZNCLZoy(bqgDsY!l{7O8&-h<4a-GI$`kyNd zBaBYd(-_Lr)2{!i-=EXnKl5A5GKRLYvVSa1ixwyJs73TQLwhnljg#a?J@& zDG|rcPUC0O$}KzDGX#<|3c|*dNQ0l3#n1))yG*;|{%6hooWqIYf12ZpywF3hj-8AJ zoQlv143mLT$fPldsISxckZANaAAK^Q2lZ?xQw61Hp?=O6to>6qlJWG0%#>CCwkpuq z_1;FrP|M;K6dJHCDnLeYqNwOj@t;c4;xD-YiJDNp6+o7AvT4c-nT_I~PwE{#DhLF; zfBqSg>}L4Xw@=(|n;S`0(Ln+rfQ<2s|82_&M=wBLfpitJj+2e^((Q z28WnQZaM&SEDkfum~X1pYkp7(qRZP{Ye=jC(U7pQyZdG!Ro+(Na^R&WGnEJrNef6> z9eJahE)lP8VRHs;JomRm{n@Jv#FCACIB~dJ0$R6280Ca%Q{aGuntJg*EL~LC2p#8; zQi5={;*eHX41oE|r=fZqgiV8du#Pn(rjXpkhw-{uydC&@Rb`edS-0T+I1D^^kGGJS za}>$B{mY5Z=m5i%iwuD9n}V?c*sJOwb2zM&$gWs(df*GCW$3|-AkT1ex7m)Uzi7EL z&sSk;3fEN)hyqyMs5Ev4IWs>tV&RGy607D}(1OusrEzJUEjoS#eHAu@WRd02SMO)J zVetD-(sH|ebn&UT?i*9G2aF)BccB!<%$!nJg9ZK==%dq)nHy=Cw-s-r47N}4f)^;f z9Fjd#DHCta*@Ek_xdoDqMbHI|BN&v^7M-^k&fkc+_e12P_HEAWlLtKX{scaYG+(V} zI60fc2iak)6}_GS59i&O@Pi0GdV{Gq?k|rOR_?*!e&OA7%n8V$Ukfw z1}03P2#``?Ld=L>-f^ilgE$$>Icog7m*W3Um;l2PoQPj)!t$IYsjACq|9-=l78T(~ zOMwwdo4n#cR6rED28(4Y7zJ=hB0mv0X0g`LwKk1-e0r-v!JdcDL+HfEytX9$i`J>t zb8c&U?|7wYW5e zX-AP*d>Xmi5CIkDD(~1|uB&%xDKIKhB8t)qg``DUpZ>OM-5>FCpR@esL6$KUxGpu#DmQ z!$z-I>re^as5Dm-NQqse-Ad|DPOf}*go?iwMumwZUOXEx9)|}8qy_8tXUF(DDx*}J zoDnJ1jS4+p3rxmDBP-@KBsq>b9U4J|nIS}O9&czN1B?rF<~}N_m^F-nB7+aO@aJKd z;Y=3)-Ob3pj@9A>+~BfCod!IS530gCA9zZ*J;jr@2*FnUK4(fE-98xM z3QuhsI)Ntg3Kifb{XItx_)}MwncSTc=l|)vUL->{zx~O9W7J-$??~BmXH$hdl}diV z2jNX7RwC%Ru2$R+VfbNse0wY)?wu~TJ2NDWsA8<%wUwd>{i#?<#X2cY=Vb?sqq*Y_ zI*u!HdA^wG&Ja`)Y3F(v#5cFY60Z}P?$Z*4E}5xa(axNh-mGu`$Y1&aZbU;OTH2B) zJk=O-{=&@rc-u9{hJ#&NhXetx_s-;%`PwRGnY@w^?)=FEY|_s>AZ-d>B`U_Ck`#zk zdu)M{qC(3|$Fl6#;i^LjVj{U?Zn!irDv!w5h2B;UIJkX-#@=HO4)a!OnOziQUZCKV zdXbL-KBoLB=OnL@+v1p=a=x#{Oq6kl6%=5A1;J4}5ksTfQNKwHnmWCY(TnbmS#JkE zm#Q!^jiKYdIZZxMuxWI*t05rR50SQ8<`6EAyI^& zPKP|Qnxer!IyJb0`y0h+$>`u7<`zk{HjUxX`9mkw(KfqUOz$&>%c0_IhqZ1IPI--Nx^oY2|jr}qU)o&cosEZHOdk?DS(Y!0(&fdg>aMxNO)}y#;7V|T8zS_+5-y2VE9_uH$)MdVx zcb6CLzW2sbMj;ND2g#mCfoVG7d-fL#d4=dDbom9*`&U&l&gT9Vmd5_CVPLDGEbO%B zbIY*}wUye|q@{Y4fkgQP*wJiRHbljC*r;4aV%%AhEKevtOSfbir{Y|a7m2%fB5Ay% z%*mXyp&>QdHR_44Bc=zn@DK?0v*G1m)$+z2d*OZ;v5pyGKfPFv6bHht^1irjj+AS%0u|m_ML2S z$|QOBFFIApa}g&+_%^Y*-WGULm1^GzYQHu!sT2#clZcvCcsuV`Y`q+${L7$R zfLDwOGk&U6gDPxIiHP+4nxR5oDn&-j7~WOyOo%d2H1qQjzDx!2TRQ{k4iKtYWU#q2EV3u;V$U? z5fQM<=bSkME=Zp{8ukIdrBHs(qYFu&IYkz)SK^V@3Y$iw5BnbBS)8q#jHv(E;0L%V-noA!9C33hIM9F7x+0Wi77(gpX^TUv7i%Ur zn103RQbPX!}X{Qcwa0)DeyIZ*p?u7brw@%BLML0Ax*GQM7fa5lWp=EBd~ zZGcsW2m50J!b2 zW)UE*sNUB@&Qmb&kPIvGM3y;~HAJ+65it3LgC-n~UU*cU=+-bMOxgY#B;O_bxi32D zIpj&b>`S7)#)YEsVY(EQ;3+P~J@#)iBJ%;20Y#`2>PPd_SM=LU_KXYz=%Q?87e7H7A=G7=Kx)Tx2#k^xdBD5Bz?C>;4|@e&EsBzx4l}*8aX<`2Bw7{(oG* zqQ8&nFaFZcC%@sp`les*zoC(ViI@K(_%Hnk{$462t4{gf?B$p`YXJb*PWsUDtFcB% z0RUWn=qXKl98wGF@^2*>s$n4ij$YB`FAj6~b2klhCPmcXehAsr?IrvK_9=~3NF*YRAfQQZ z{_P+Y5Pkwjtr3n@s|1IWi)q}iLvyc$=3%hKE z4_oUEykUd`faol6tPsWEZ@vZ@#G$0F%2xljPs}M-({vg4-(D^i{0+|8NLNi ziB=B=hmF4&^qj`$Ac2~q0Tk=v(x&Ke^P~K|r-c1=bhbD36j<+uy0S(v{cSTP4u2)7nFI5)|Nn*Vb2o zKrt;V-OmPwDdl=v2AwLlVfVK_2;A2b%<8wwqtq=aTm>$;(5{tS0Ds#S=4*)n$4v!? zG99?i^zTel@lH+sW*2v_m0LPSx_oj0#D3{`b*f4aL8B=>N}-hPVrzeAVTrTf(koZN z-cxQ2v}4ym#ictd_vYl|a=Y#UfD+!URJ&ekw}HrYD-PRsr;saix{9O`)K#4xmhAWpZJMC+1}>46`s`^5)+OG1)ikXNr2ux zOXgI@NQ44I$pMei$9inaS6O|J{5D+29+N`vPzKNqRc~$bMXLKOrsVPb@XN{HjG12>}?h0oy zs~`OsIn1VkW`ORc3dSvQ^Pv*ho9)L5T}Wj6j;yCGVJp2o58A>TL^g7{0-#HM2q{SU z!e`Y)-uqkior-_rzFN0NC=d(1TEufzPkS;?9BKj(GanpGWr_tQZVd#Car1WiQxs@UKph*BU;VJoRf9&LN+*R++^0{LGVhvGZBR<6`TA5;cMdgOg0m;iVH27%s zCF5$%Y~xV*n|L23XBy=P&CUU(#so? z#lfbbKnrtRnU_EfaWMg7Z7BG`){ovQl(9Az8ZnRJ03E{-jje70iq#y)c6)lsJW?zo z(&&`8$JhC9`?#z%zlo9ds@6}TK5BRmT5F}+EB5>3(=2L-Hke}Qh5!D3&?~R#Hn|K0 zyVJclO+-RUni<`#@plz;&Txa`q!eWYXgXQhbXQvPqIn~PA?79usNL+ zmbEh-2LNe!9bE)LYHU?My5jFzHz6P>_PKrEvRtEh`m?p4a1 zYENtcrQK4cdhz&rC1?T+}PDn9~cTf@tOX8v*2K{U_vEaO25V6bd+VRlb!bTls z$&5prRHB#EAX#})!8|z=pgh}PxDp*m!#5{?#u#0kp{#_%KAOrNqAvbqEHknYwKWNW#A6zGgc zy*cayON?7AeXxSzUeY|^Rn!cil;~yLk#@FxCOWp?dRw4^3S9~U+|W|Lb#j0kdR~lK ztYXfo(WJGSgba#PPx{k<{fah=pM>POW^3-`S1%n;ujCKqM=>X9y@278lXnL>00XJB zr~p#}1TIW~D?(E?$;om&jNk8i=)NyLzCG>{ zIc;*vHj8tIR8KsLS(3#m>E5zWZM9>)Jt*c>bTQKyC-H#3ts1LUX^ueKN;XVUw7fHn z#2_mKMtsM5i43}a_CB&ixsF{GNw~Z4|A;H=cA`C@6hwp|RtZnMP04Zi%P3(V0>9Cv+h{eC0u~;_5EVVAfj2 z78Rm-DoS5I>JHPm?C~E)?ILwk(aDiO^N@#FUhbfghU%BkPETYAwgn@~cRbbtWVYRG z-zD#t}=h}6zFP#X^6P0*34z*;?%4`y57^x z>LLP;*5@fHa^i2{V1GMsUHV9b$SYu1!b?F1&n zVtr$RTUt((`&MEeQ@cieIX_YNXg&q{wtd$wFM71cS(GeUSj+O&*mGk}3?Q`$-)<4v zrIwzl_UKV9s!%dBGl?5JOk|ELjd;NJtL<|MDMMLbKVi#LAWcTM!#pSovF1`Wh8^d= zlxQ%hCv`#KPtH~$GVGbAX8by%2ETAA zb!YYXKU9$qKrONiWwoh{>}0pf6($>PHe^=1kGSbV>p=vTzwr;3K8k{KW2p~d5*NdDF3YldW3ORRa*Y?eowbY zYc(^E6R4lq34Qyy{2I4>lSlq&177<{Kz;8`_~~3{XaD*9Mdf52+5LXWFa8PHeAEBb z`S@sa2a3MEJ;}NLf{B;%G;%XZewcv0kceGS2wSQ>s~NCGP%zF5fMDg2C&vd`$3#A% z5M)LLLjjwo+2O{>Vu#Fxzkiv-t!NXO4jFv5vInI^F>$)0on02II zXOT7GFT?V}8lPra?CNu6zTkX$w$@aaDkL>+1c#iX8ASwRnl6r`^x+?l6tX9;FxP?t zRt#e9*;T8)NpBma*gk_V1t6F-th(mCQYbGN~t#S7+Gr2!vrT+aS!GMHWImIuH0G1q^*@b(dy~CyTX~g_}U#G zKZ(~+|5E7@V(HcJtw!JpFPy8`1*y+kAhsTu2n-FWV|gqa289p*#j4Z}Xq!2tIhP5KmO9 zktbP`w-qTDRmN}QXIs0{3F9_2#!1v}l>%rc*ceaMSSvV)Dv9+;pGkXjFZ9n*v^uZ> zyz#goJI2eB$nSNf6~_kZXq;b}%Zxh7nkpO%CzQB2VwBy6nbs7fKublm6BJ+|t5~$^ zItww*eRB#`O)mX<*|iukpt?mf>j_gC4mH#p3!`Q%6D6bN6MJJe%BJbPOHm~anKOe+Tu?ik_PAN@)hki1;^DNV!0f{f5A~iW>*lc43Ams4}F)6gk zH!Mw7`JSZUo?C&9O|s*gJx?*JX-4yC0u@WYADfbRQM4eXKROG381h60E1%PhX6Sh} z%XzM890oMYBA=Fpq~*QT8LtbXsD`&zjwp;z1_EFUP+H==TN(?qeHcOH$~2VpjFY{5 zN)rlKHcac`$9fDW(Y#n=naU_df$S)2G+2hq*|kjleYHSLs|g`ii~B zno@-*=_9w*#RarbKAnPHlVUhw4q2B=v5(zz@mz2wbFL_Xo5mK1`*IH_@mL!?K&8-&_n& z`e5{>N^#IcHw0B>+kd_9*BGie+Vw^tq~f%p+pso&2{aRbX6gNXT$lAN4Ow|!MOm&>x0f7--hJq9R~ahw{96^*EU&&`zu%nJed0pi|IA4J z`y`o5V4)Up`~?M)e(k}WNR3#n*Wwg;k9hw100S@k9oezp1)EK9PuAN(aDCSmxTG)( z_uOG5jOqxM2p}7qg@TF07$lQBvf*aS3!L9V_>G>`g$58%k`!LAT;_9NnI^p1VdSQo zn-_4w)0?jLTenTMTbmzVFBd6n`)CD$SW6j&$?NH4*`0gRtv;%`b+4sr)NTfAv7H7_ zfxP+QjGYwZ!i=>g{0j6^isW=P)q8_*9Bu^!xrk+%?O3J%lfn4_VhaFufUY$hM_m<2 z?^ZAOBTHh1SAM8(O9JU#>ti*>syL8t5IqA>$j-X}Oq*P``$;9D!E`nPTwH^yHfOah z_++n!_&XgkvO%;p?8+~Q{tc=$ON!wEk;Dz(1Z^}>&yPwU!fsBGlhsM3lP8``Yx6NO z!)cUMvpgOxhq2m5X|^a(h7+b0bOL|es@-?EBW8OZES!bE8}ZL9{3$9c95O{f=T7}2 zwG9eC>Bkd|wbolEgMX_LQqq9ixu^0AjDd)W zP(AbHiEvsVgb>>v+qmMw<|zT9PctH{D~&T;1T~IC^(J6FT1xMUiKE1}k8cz^J(qHu z$gCnXr;IkBbbR_#+fx`{VBy>Kv=jasRP~(!+h8x~2LtU&MDz#K86+}A&9SmQq+);% zibWMP{)=g=;Cx!(=7B=|khPjm1Z~))P?iA~JaK;yNDVzQR)_G-5UYqL;tlZ{SGI60 z+Ob0{X>EYoc*$oP#qwr|o9`M0{8Bi10EHw*o4}GD4jFES!nqDYPJQC|o)koV7c>BA zq=utgH@{PD-BQ5{vPi4^FlSt#H)O=X;4}ZDnkHDF8ZEwFCOEg)$VL|ALj3Pfij!u_; zJ(R#HMjAXtvZ{<}Z=~nmZiCD0B1W+4SY;c%yE$-fOQ`?vQ{PSWrl3?)2tR*CH?3cwGO2LO_tz|3BXu+KRF;@u$&C;tdx zBk{a?9AKO;vQJIre&D;WZ9{o}0-xX1u7S`{H9wI4OFRHmK&-!|?CHf>vZjsTnOJau z3Yta_-(IjE&n-)^&M9N>*y?eL{@)F8x~CpHmnTKMw}=8q;N{a&`|i!iX1^e(FBv|^ zXNOfOlq7)V87JF7BQf>kQjvK7GVkV6yZbTOt~(JZvl(BxCD%lb4%{re6wW&O9#JXd zV^$?-I!KXtZVubsb9!iZo7UKz-~CzmeM@XCFwM}<<`yELdloWW$b2DGttok)!a^u| z;-+FcKY5D%41(PWYhV&pH(>y#5VF+AU4<8`h7+S5B0sY`Azc_n)sh{dKwlChOv48h zvHcQnIDr5=<-&$j?&E#=LO(W-{$qgo-%|tj%rL3pjxe8=7w^7dKVO3+Zj;}@8U+mx zjFDxY*dY?#QW!2R*Cq0>cUg#2Xu#QB(r>ZS&^M{x6;@k!L@h6BM-u7mKsD0%BajlS zbdZ-W$i`@J!d{RBQ^|j$stwbzcs+osAc-s0JIv2d=wfiG7gCp zfgL2hmc={%ZtDea+DaOp1eJEQ`mnr1kV^`=>|+aEnbXRW6D*Y=l*3o%PA@eK_XTO= zZMFN>PUOPE@&nGkjuw#K%79ot%^P){&a?Ay%O>*|Q{g0WYa#RT`i0el;QhoO>s`!! z4hxHt&<<^lOr`mDEtpfAzCP(o&ytPV()wwOjH@D%}ari4+FKxT+_ZsncAzM35+0i1mlyf&QS;7~b+J&?Ga6x5`ut6~>NzAcRc)C`bs} zxd04nLXd|66zRZ~It_p@1aZC=YZ}_X+ZURWREF08W0?bxD^XM7Q~~(v1PSFJoxDlh za|Tb5O-;ag92EUJDKMe5LoOuNc%`zd`+(FAEf5mMYG!C17N!sx#=!QSXgC%#tlc(H?LD1^@Aw=r z>C4!XUtdI-4DR?$)F0Qj7t+Xh@~INdw)KFwhEip>tz(55{JCd4QJ+zbq3sNAiJ#D5 zCwx5YA0M{089#eWExH-%@aFFTu?S*-dp=jM?xDbX@-h5yql!SayH4-)zbxzKsG#bV zDJfq)Hm=>He%rHZ-hYm3jeD7|o1ES;GsdL?4>t`Z?5hmbZJcDaNOnC}v~>1fUcQ>q z)HQ6BE>-nU)Up{;GlRbu)@)r(ZBwt$ufR=8uG~|tYkA@LxH(VGG?5MC;h5-ugrM}Gj#nfrAH_5n)yzWhY-U5$v@Ywbn+(3lDMwBvF zT8ufI0Y*Se0X+at0A$U>7T=rj`;9Y4ovZdYOZun}ehGhnW4HjH{BwUg*?wRAejk7I ze}5-`ecyj+e}9jE`oDiufBzT!`}wvr`@kRl+s489i~Z}^_{IDClXv<}TlyRQv&X_x ztGGMkV?8M;#gIF!tQ4SuWNE_4OTy3wjivbt&~N0naTgVKRe5U{Rgq<`ybferHap+b zLTNNHHu(s{IAP(CkWmyZsAmW$eB*yo#{U)EW9q$!X=Y)+U$=NS)3hHO`WhPrUlKn9 z=j~iqVFCPq+lwR9=dU^r}2VWQAkt4%5lz7*Tha9r$)JznJFaoGn z>>A6c@y1FbB#LYg8~fQ2D~qd_eY(uHeR&FidN(Et+L`oinZN^TGae%`0_@NT3`9g} zYHLGZ!iFKVNMdBgpYza%Ckm?p_q2aVJ#Q)y#(P92%ss26ESlP! zyt>2lH$qHx*^f;c;aW1@I-XXsV3kWCRsk3aMQFFTUU}f_>t?Vpe&Q@D@tfff>w9z7 zVgLCj6hJ?NslgXS;EIBXzH$~chdc3YAA1la6dn5K3zl#`7mNyZBKnNU(RBe|R#0Nd z6lt%#sU)ee3$5XXfhS1ZXF}FGl&f+EObHRgvu)$mO-5y?6=Hl|5s*4&86^VD zjgHZa#}>r6OfR!|gr!ShT9oKPXy3=zJ6+XyT&1a^PENr#*YN!8-GEKdh>X9{o>s^k z-(7(dn|HQ{aY=?r0cIH<6bVC&DlQUBJsq>G5}{Dx2LI2{aK)Zdv>B|;7IS-hdZvJ~ z;$jvP(Ta_t$-bjP^(4!s66M$BEFIjbhq$pl{cs5tB@_E~bbOidb5he~f->_qH2`O8 z_O{jng@+Z09THz}Rm}h4%BXgKw*3e^W!@^OK!{HKa11EIH63gfpqy)8$i8~&BuO?S zrSg|7UvvwD&1doP;iH28)n%st_DCXoU<@pVF^!)qWr97vstFhVR!U1B<6z|i0yR-& zD*&K$CTXn@02T!$xO004_RADevu{Jc)*Gxbzd7|yrR+=Z!!5%)SPX^AeX|E7==SK_ zhW+znqf4oe6(U2ypG>q62L%KOsql2G&NFd-#i>l~V%}4lf1QrmM$*z!5p)*jUm=GY zwt}269s@RLg1TC+KuD!ML4~~;^#f6K*ko10qu?!M8jR}P>$400o&RyN`vmNXCNqG^ zOwB);z8nep{RVQT;RyOviLF85Ebe^Ywb48ZM4|LdkD0Gre9-4G!h`!(uY62zq#?i` zXE!&C#No0|D6a201Fe~M?Amuu_`2pMmmLhEy9q^yMQV1ouwSZqF-NS8iOvq2a;lHz%VB6l?KX z69yc`^Z=Sw5neG`Fo|}Adju`yqd-o1w8ACBe6IqPmY1SFMxM{E_5nq~Gw8!}4ISP;6D5qoVem(QWFdi=p;+^nx0TncD^HJOKi z5JyG$2CnRWG?KU7ZadiNR*K`EDb;wuxLD=o_2To0a>w9hzM7@M*{j^+B00Z0B07{K za$;(;;~?MLy$yI;{Rh3G0^Hp@238B@7|6;pZ7$JJ8?no-mdP8M#SlvkUOrIF*02`F zR85vQUJ%lk52g3s2f0&O)gzNa!O$5(=`TdC>w{|v?}AGtN3mMu zwA;2SZKv7S+Wt!}Q88(ip3|wB#?By$GVCrM9Uc`yhY*U0A=r*?6H3tBjQYN3Z9Oom zMl_JkX*X}*_Ec9ZHAHtILB^cC@+P)lwC>!N_9w-29m=URK)e|Az`s`SOhFBT^0|^v zfrm5{ELNvY zR^0>Mo${#)HXL+Ni!oo8Tg_<=>XX@m)P;q&Uz=ow_u(k1@jVni=4jb9Mbvk*N91Cht5uP^fU&V;-;O?MpG3T)gaSPaR8%;sPfVPIgx-3?#zUf#%34Q z^y%#AdFBF)ImBdg8--1RL4lAV+O2e-5+r5%i?1OzmY(Jjb8fn5IR3s2Ds{_9{Ln&d zN+?@#ANTTrtXB^%Ju;~{3{~T z+DMk4>>Q$eqhGLSB-mu&8eKRTJF_TnR&kZWY3$0|Zcm=#>_CA-DFo$%b7@v@$>lYO z9i>ZMs}8_p-@*Jn+TTJ&1vn{X=<&X}hX{+j^3EY5NI@~u1Bl8^fzi5(Iqld9)??y= z(oufk54{YFeOuPZMBoFcNFb7SAKncDFmUibJ}|5qs$5TnIYw2Aj$yjEfwp@mkRj4u zNl`MtsO5QO*p(*IXVd)0o;0HK#6QwfgIb)RwooJ16kHzQ`Gz<5XHUkiNKD?rZ`hmJ zkEg0T_31HIquIP{7Sj}^0jGc#-NUOUy}KHszNaf9hWs4(LULA5K`vaVdbqBGpq*g} zIopHF15SlH8TIh+d4!Jk@B8@$#k}PqLYjIhYRh6;$NJto>(td>Nx!bsEW|>0Ri-Dl zLGF{bQ4?jd#K*ts%PVueU`xh7r-?Io&8#e8cREVKs~qz_2?yWhu`$^Uw_m>UqL2r;30SxgAcPu2?E#!@bn4b!mj_-;*XFUG z$gi1O(-qigj}N9<9^EEhD{-k~Zz}m%)E)GH(&9S~%W+5n@d6NxXOUvgG@)y|M!{oI zd+#mDVcc;PL(OLt*FhLgYQ)%r{NabAzw5NW2hIEi)M8!%KjK z{p*Ns84Gfde}_4?9&>C19ms4v1~&GbSvM5p!8e(>$kdf4A{JlfVRj{V5xlwk=#g${ zdF`}xLCER5`K&=p>fD}EmD%-n^)JFvw)w1@0Sg zIzmYx@Ws?!Y>(uDJ}D&_r8SiJQaRIwJy`Z=?&rWW3T&Uzb3wTJwMfwPEg+pL*g_T{H}`@H)k}|`eM-r)QDH^l%5!zb>HU5^j<`zC zqo$DY1& z#lc_#m+-uS0EKKFtm7leR8*ed?vh)!rR5m(_dZ4}{Jeu`;Rb0iLX@dtQQ(nX@?5a^I6G>$ z@v>@nx0H{g4(?+nL`@H1_e9V|j;3wN!~V470nc4# z`(EHXYGLHE!$$*vXL1K&VAHq7#q*}f9*7LYSvTtZ300$?hdWE`ks6g&8zF6S&CR|q z>HO$~e$Jm3vW}r(s$m8&kDur%_;v5C!L={K`z^aZxIm%)*D_O1y+N+_Z@#34rnTdAk zOaZCvpTkl{jg5%GsrZUpqpuN0Mq~vHY|^}y-oaj|>y+T|$pX$jwRi}mnO?c5@h_)6 zEB^ZBvV(bdH_fI{9QqCRry~~@U^1RfX3C%3TOn}?J-7XxJUI90-@ZBK6;+p0Ku9K5 zb-8v*8XOp+j!w>9rqzn?A$`w`;?i~X6~ztk0Mjeuh4TS0Fus|YN8cRkXNjspq=kKP z9^_E%_&5Z7CwP+59BeLXf0Ipp{2|*t_Z|3YbZGt_ed1T+Z2#5%JJYYDCaA(?_`#;0f{$uE*EYd*X(ToQu%~j{$AARgT`aX8P4cvQKqt$M`I>3_g z-s$-G9Tq7&8wu%^Kl_O++e%`1V21iGqNu0tmK^X_qf2P=y0u+IL$Sc{huC=G2n+rv z75G!f%%Mc1vY62vn++u#_{buAsp8ePnY|T^gDsvc$#c{}wpDVmGb3cfNMNPNcsW0Q zHLn}CFTG$H18JzwyGHZRCK`a()pwJl_hx2j5#`c z;UK;3^jD**|Eh5ftZzNQpsIV3YmK~=!QcZ^X)1YgD1?L-vq^2#J7U;AN!G?eW2sny zW#=Cjj0yL9uGy}-c`2F&t5!u;ah>RitgyrUrB-?Jn(EFNq^TFgV8xP#R;0vo#Iyz$ zEDHu^4InER*sDMpy-s53*^v>!Nn z*sD&z4Sw$slSJaV4()jnz1wBf2HmCNPyav!+eh>QH_!bdnWC!@z9n=(e`OcQZ{8Y} z<3AHI+;h=VxPLv3Z+tbv!9NuvEG#{hRB)d;@wTOnB zOa5-_+?7BWzV4t91jlPVy`Okqwx2VtA8taK8d{0|oUB#~vVB`@t~_b*zfXjw_11K^ zb{rk|#8ENd5NYA1l7io7kUVwHcw2%OzH_Hhy)Ks>lB(GTdc?w`)G$_HWHwe|mq;Vp zu!x5uN_|TH*|HfTfwZKoE?@m;6wl-3rYttDdw2B(LY&Eo<=@@$5i0|nbubPc_w^U4 z9jRgW!KweXT)P2*M`NR_!UC}~NQKc_-}%lbugT}Vyn&UdzYeR|r=SWuqROGak0yn0 zjEoIYLS!y+jJInVRBUP8fGPB$79LgV#d$)P>Ve6?fgx~a3E~>XZICGS9I4;u*CeYf z5A}$i>SX8kmFexQB0~#=a4|klPODZDNcKYo&ahe+KfeO_cZ(!2%xK$39aXy4RV*Qn zLNiEz2Z!CCOdu(g+ZAKbe*62?3r@BW|dT%zdd*9)djQS!-WCS_M8Y>isPXV8)q+&(*K@o~+&5A{{a zkZP+UmwkUpWZcg>{W+;{KQY1c>{GUe;XW1yQLHRa#srJ17uVwe`L1QA^4s3J(nvK& zp%4Vy<-AwE6e^be=7~?aj z6;)zl9>Ujx7e3jBrtyK3{mJX z5zHCJrIxL9I}0QsZ5LIuYcIWp6WkQ~f(>l4Lab#&ZQ@;|gC>+?%R#ZZMv1aK45m*; z)52v`4!qWkwg6)%?Radin)r*yZEkQgwx}u5$=@r}GIem>ESuWDphuWzI{^N>)Ky9b zwH1V+Z#xfaw5wVeacYm)F5I0tZ(;a4zQs>Vw%r2vXYlkW8)@5ge zstDmj8e}%=Oi12RoRVCRkNgyAo3eO{T~?Ky$)ifFS_?%JpP4_}C7g~QhY?Gq6;E27 zIEoMV^XC;L;GVglRW_&mp1)Ij8_9(yRanUb)9A`D5`@zNMwZLzxFVGjRp3x{q5%8o zZd2)m2$WIUdi!sYYf_BnW5TuYdBFxiZGK_Hj+ro>xP%qSlqDsUtTMu>BfxYbjnpY; zbx~wyl1b$%jnmTs-dmPTK;~SQzftv7wfT)5lcjm61W9gud~*7RymV#z?vl!9;5k}l zKSi8))ZLx989*MX4-6 zK+u|LqVjl8&c_FxdvcPKIpi?((V{&C1X)B-Sr>V4P6HA?`ggsnlSEG#t6YyLXJ^|= zpT{QKS4%YEc~UjVgHMO;5p~h}*n%!2QPxKU$VaTcNC`Ji4 zTb9=tC;_J9b-h?wXIruK{EDT;`0Glg84M zm=Rnl8UtO+|pzJcq8NcDKr42rLoc{!_=Kq%A ze(gp)um*oTRI;5fyeZ9dh2izP3ZoA8z_PU;?ar~WA!d$+VP}EP`zNjJ5@+~obs<)C z&0VItZE0{`VQ~a(CcY*~Km9w*;nZb*-RR4uj>>Hci4|OD9*)(`A3>bV5Fl@^UdtV? zUVb_%Iz!r^&(K^d=pv4~#5uZurooGDTpiI;0;rS4iq14KjQx>9VCZz0M|B*=y$`(( z6tzKN@lXNH<#8QN=Ib-w%a&mxUZBDM3N-c*r%E7-U$BzKzdai=k*W1ha}aM(|5ht# zSHFQS@-bReOuj?vNtYp|GV?YUOx@K*66aAM^M0?EFb%BrbzaZI7d3X;B&zKAA$Ny9 z%+prKv}@N_In}!U?TX7j3i~bY?yU^QaS4KpGnxcTWwh9~kV%2J;D^;#V@H1!iv-UP zC@j>pVecbf-RJy+T63;hM(o`oOKnto$7x)JS3+U?`UxMi0QmriDt zW0!&(6j;DyP+9LhEKqh<6htW_@o>#Z$QeZTZ+{=bF(X#wOWri?4$;obWTqZj{hlF zWxKp$JYvnQ_S17KG%_*9%6`hk;#GoXpzW^5VKPycyZ!~$epsKbx6C%@Q!c(RUa5;E z9Q+pmx5sXcAT!4&6L}q_p!?>l(}hZ54EMS2erYZn(9=7yk#FPSuQp|d>Ecq)ll(Sd zvopFSM(W3|;zqH?#!r6Ga3{4nL$jmTV^r8wzMXgDtJRt0HYyM-QWlvwgHq-)ktl=e z_YbKmy|oLgH$ub?%p}#W4wgHqX6qo9e;+m_E5%)xNx?;2WOFl2PMS*~jkT%pps8@F z$>{!x&LeH=)(u{B>Nhap(Dz+~>UXCgy18pd^U;|?t`#fI<6e(M{C&D-EmqzzJ_H*v z6Av*8J0sC{Za9;ap5ZS*zdBs3B0_Ke0cd)HM7b+{1H8m@2Kln=li9QvM`6~fx5+NF^hjErjP?PFCo5a7~4<% zP2=j(`WhUf3sYzp^L_od&Ew(E?AQDU{>V?xmTlFK|1ao^{_l_cz%Tgu&+`Z0hn_p= zgM2`?ZzsB{4j1?_g$J)>k3;2ixzKDuwB{gx*trn7P(+0YGhx^Ox}K7v5WwF4w~ng( zv9V;0VnR{2q`XqmQQ6%_O}!sD~TJm|V}1a5^>ErES;B7Rdf5>70VdH!DSwNp!6 z8k!p26Ja}1n%eVAPV zWIkBmf4eh6FFTQAmQup;#ty1_w5@6FvwX1tcjr}Q^xnY#tK#MaI_XwjA#ih^=I=Dm z(ppU-{@>L>-V@GC?#F&yAEXo(=yCq~=qoXbI#mN9 zdj?P&_3lYlO~f>I$B}mhlTaJxC=vB~a$72LI1XdHXbGsQv+h`Ze8<0>$TB{~{_ zgo|L)sxyYc-Qhd(cw)hrud5V)lEF;j6bym2CLx@`^aR)vovwhwbFqn~wr2eVTn_#B zW}B)kn@-wo0bCP_2GW&t!Po3Yz(Y-vp@l{j!k$h?WDuwpPhbpqe#smH7qV4Mg~8Fy zr(SHPlfUV81=o*oUTIPj`SFDzzo|FbQUn`5ewu5#1g*qWG8nRXXmYZ3I-*FL;BK#WdA@WRkFBY(z8|@nEYZw-ZIdbbD<+$bfTe zfeZfipfBc3_C53r<`a*Paj}P$PE#n^;RZVu!_P-@i&hn96zD(tmtmhDPngu5nRSj$ z5mieR)jRDbA9b;lOp?(wE z6%H#mWFx+5z0J)n)E?VCSNI`v|6BRWt1f6YAG$1iq@iiGO-9=9FYlTbg|J=3H<;xX z!o?QxuuN%1Z14Sb+1-UIGKBsnJlL_IP2(x;ap7y+&ri=>$yFPx0 zs2C4mGKVw@MRP>Yh&((AX9Lqw-Qp&dy6`){pnt!7!fokpvReRNhxV#cf|xAtDY?{B z5h3D}sZ_GZ{k4ie#Ztzor&~WZSzvy&*(25SeNf4U`2Pl;0n~%P>!0E0rvfmYQUrk?TM-hAO=X%mrS{XOM6naC=F@;S z!Ob&gV&Nh6mo8^^yHy)?Zkt+{q%M+LGou7pK6`0x6WsY&wwj_%=5Yx;803#!!+(^5E?EQ0MX_NU9R7c zxJp-_l;i~@&m3{|(WuHV%fm~%!AUuB!kjpIJ50%|vwf6uI59_PqDXHjG9bL63oe^s$mSS7AF&eFBREL6hj`gYhPlH7Ewg14VQjwwpO;Fc;(O00Z9{Q+L#V2r}X z*LO>9dao*`Es~G+^kG!Bw--!?D8XP;Fuw0Na4E;W7B;^rDoH z&g^MP_O~u~iy(lX^h-`03!zWda-;Y;pFgrQdTkV3nxitkJuS4Z@h@nIfPct0zD zP$bs{qXFm$ZpK7mRy^r*ob-hIhGfej=Q~rdG!7_-q#Xf{TWE#Z( z(Nb5a&F$um>G?SUwf*L=^1w|&#)&m3jE`kb`xUw#Ah&JM~9ZtEIgP*5Y zo-pHA_Y2#YJJAMbDmpPF2O@A;5nqK33b(K!O;eq-@rb_oJl9wUo(MPbK*@uQ?fi&!){ikpoYJv3=l2lDD}b>*WAxRwF(*3#XsdQ9ahN z9nKxQ&dF;NV#V*4fx7rAMa1cf%0eI#vO;jr*jJ`d0d_EnZD|BWg3p2&M*H_q&DNfe z@f}9`69DZ%CrsRsOgv7T|8ZjWgV}A2l$Trx0?=Dup|lcB2LR!L=kwun>UVYdoBQG8 zf*?&cUNg3P<)uRU0Zu?OCXZPqnxG6o)Pl8Zl*50p`~iV0>t&k%m^enF61h8UD_or4 zz;jsCtIKd`k`?ZOgdC?t=hQIc9qABdQy@#v9|8E<5oQ^!@c^%fk?6-`b`q%Wq%<<3 z`a7EMuPg?bYJRcmT^_d(beZiOaUJba5h&$nAd3|K%45@V_yZJ?jD$h7Bb~|oplES! z0H5}(rLZMOaU=0mjmkR{h8=sxlQ$LJk`XTxr`h2jjc z(`Az5CIC`y=(d{M0(7ToT@NA}dgmXFVj;OrtH7Eq~ z77CjbY3@Vnnj1}fnNEXrp0L>oO7`@uRX2I^5L7lcqhtc)qd8j;+0Qsz?C#n)CRA?q zgwqu}EUq~5=Q`OG5^)k{9*a7siH*Wv6DV6n!$pc^n>zGYv-fdr8@oIwCuz-m4g*}- zaR8nNoQmr(W`>?@4tecYw^(Rx|IkW&m;-ik-&AuXA<3O$qeZJ@@|yOd#o@xppZt=y z=qfy*GsA%lZ#Ko|d4~C;`_U}i?V;;~!Vzd7@l7CmZrFC9Ey-%Zk3piY#SvXS6LA*N zjHG)z>6JGppqHcBAEv9#GGq9I{UM}KH4w`2x!i*@c&JJtVH^5ilZ&H_)&@I35VQGJ zGH-=Ue9j1+KE`$KQq7yPU}MaA-XE;xU)pce=iSvG)cs%Cw>e<1-_INWh+jJ0U*4b5 zeGT5vnsu*V%M%?Wc|sdW=o?UpGh_e(7+E-8rRHCPo0--*v#-gfPrD-wP}OSH6VSt~ zo4ZS~P?^V%xUkI+DY9<0O1et63U*@vq7_;bO~vp!P+TKI)Q;jC4!9;b74D0?O;8udq!E zRREe*Y@BDVCA-a}0H&-_P`dBMoWLqQyW$`sRDfs0bto^*K}4(##Yo>n#yw4nF<^GJ)kBsOMT(l z07NWJvMg#9upl__#JjV96z>*c3)EIt4=5;^s;WX`UK0lP9J8rg1mf@?Td6S|O_mWB zQGWHV7!wc;O=*M?q5GNUfF#u`e(C2pC1?Z!uJ)fVd)D_IOb7MFA4ZwSKR*SAZ2a;+ zj-1sP_Awn@D|H`9GtQu?G{X=HWJyIK{y$iEluzvHl}tjlZgfFP2GR60aeG+Iy( z0Xad}9vrCu+Gyd%>~`_LrR(X*>jgLYAz+VV{a>V82%aG>O6$4&qBj76&1wdU*7aNZ zw{{IiZleggkD}E!d%+oi&$BwCtIiNo=tXwJ52Lg^?nTIHl5 zkb>~ufQjS+TmxQGoij*nUzg~>abKES%>_;C3gvca_o!h*MUSM)+*&cw{aHSsJr z9}zg~9kY?a4n{!J*~cE8>#iYd2VJSHKC|aGXW+=xI1W-JI{xtmSxjK(MU38lD2qK6 z4>S^5hE*#hYLYwoQ!&epv1RgguM!D^<;PnW_u`BMQsI^yuhJq?4jSLle&iL&s)&g>eL083+_c&VDqT{D~VL z!-=UB*Dbpw%#x7NwttxYn2id3R^VUr^?w((4wWzmhWtD7JMu&H6=60dauC30PdmkV@hS;8eK#i54KRSnQtebYRoY%g$(t1ILvt<>06Q|5kXAN;y<7Lwj5CL z(V_oj%H2sLjP%7W1Mx3R>|CHPs`)Z+vvU4F9@?5mX|j$GQ0#<{7WWlmI+x;ti@Ih% zjKqGa?e4g5k%)OC{m1{{Y}>VTjnjJ6tF0$ z>uH); z^J;u4aiTpe@{gTXGZt^Na+6q(HG&0zwxj#4p+AoZ_mB>sXj3&oM}>hluSqs)jws8k zf5o2VJ0uTg&pz>m{e?nkQrrl+q>5< zMA8qMXT;>cS#1yE~a~XA;!4WhRzH^lPXYt45E*Y;p?s2#LI$BqwvtPTKrRt z#t2UN>&>KTG8ZRB7`fJA+YCm1LN>w{a7lEmpVF&FS6vk9AYDA}g@FpM!49Pce$}^> zPP@P#1pgI_JDbbMbM(U3W@1v1YObp#!9Eiph#?Aq9tm*3ty7c=1cySOf1T3O>Rc^o z?>>oixn$AtD}rb4J0Qr)Z@tEcSfTbgHyf1!t^Gu7jBKN;Vbc1cS&N2g{7$Zrf$rrnp( zPckPMcGGVFlkJsg!%<-M`zr`69Wf>}j=(3M&p0-Tw50tED-%O`=e~v8;pf_HPk_@Mm9@fc~j z5Fc|OeDaJSjMOt*O4VcyHiAWX4U&MuZe^Vz>s?g`2S-}3cPQwFkMjg6w5NG}?HiJD z9>?uDbQ+zKD3oOL0d37i>z0PssJ@_QsQT9TcK)^J65LGtNKiy}6s9SNE{_5KP6m_G zTs@bM8Mc3N8`CeB|HtW@t;x)b5gC~;*0uVaEIjZT8aNWJiB_2rYGux)Iua^H+`mi$sqqUFY_*z76Jwxq&fA1SjTs&jj`y9pfqxsGile zt6R}F$gc0{fLq^2Z`ATAq^Q{S5)e_SAV4gK)ZR&YpAHL~+Q*Es$63k&J=5l8_shP- zF^POIlm11d`KyjUD=7w+Sz0EYkpfYycA>moJUs}uk3VY^0UQfB@V;3#xV>)vVAheD z(j`w1j;!HITKZ0MxB<*`Up-X9i9YZ{D54P0hhmrI0vg^)-Pn~wOM9h-2To*G*Nw?A z8cV`HlzMdA9#@4w9X4qhs~6Ae0%{XmhY%@VJr9O=@H~};A&hHa5-yx4qj!jM)RM-fsSSUS_6q2q5TG(r)S&pguF@|R*8NtzwZt5?K=}ZrPBEH1+7&>UY3r1{FglA>X_ug ztkJ&mx-Ko-vf$RZ?Q0jwz&}Wmmc?zrCkE;qN_DfMh4S`HiP}i~Z+~6X|LnvCL(lhT z%eG_+2IZ_C&GcNw3EL4R)aKl46XoGXJAZXr_EafF=1~F~0(tg&+TC9kyYaejgreIm zQ0v^Z2z+#zvOyI7Q)%XHplP6yH6pbZt)F=i><5)3Hum7~s`=>RAz(Mx}F_x;-78Kw#y6qr^HZM9~dHMGx{oKX!w6`j@v zbDw53+5m|{5OM)FqMnIcykJtg?^f4rI>m=F9$6D+m#2P$6?w#IlW7=G=?YscQ*XPC zuSy-k0MXbIb&Q&Ene_hidKwkktInIqbti&$>d=@^z7Sb9kNsEiZYEB(Ywz7rJ`94I z*?OcY#50nRBeXYMc~83?E{RmyuTB7cr7E%X%O76W8nKkL=c2d4>+XlsbdpI%T>UV@ZYlIL$~z z!6sY6PqASJA~pp-kw~FHs=D3PILmjUNPNjo=q}IdOZRWU$wW%MnbF%6JrgJ88~EiJ{02+hev+T{N0s=K5f=1v81RgLS;Aouy6YC$biV< z1aPVmH(V73pnLpAJ6?Ku{Az$#@8r8=Jq*1aZ-YD!e2hm0aq+|Z2B0?tG9V(X4mU5i zbLoKHnedHQ>HbUYCY-+@d_$!@a>SwH<{6)=nSZ;IhXxdY`VqLv_vmi3ed1P6#TRW4 zLPl7bc8Jvtwo!G3_D*yk3njNd`^Z!^OP@9`56J+nTI@p4@o{rTrpYiITqOw8pa(7= zb7JFn1oE*GKh8^rBS>I}t3z|*o!)(vXDS zO<{;HR(>shzH`C;`HTHgzxAbs#z9t4vGMsK2qXdoMlh>!%3zbg8>HHvw)&qVgGPpy z6$Qw2xjesrwhE*^o_?*yEr(uLu?@zo)>lFOzOZU`Qn^mLuQLXzy9{FH*I4a2jq$_9 z$%OcUQ^@uf_+LR(+Jt)Y41RRPeI!7gPMP_@_>U78899oa$o?ujC4n!k=s@A*SdNkt z(F7s8&4bah3S0k`LOscZx$*24s98K1coXHlzTKQM!fiRs|?Q9LH5)l~%n- z=BGbpp-m$i4yF)EWr)P}pi&87mM-mn87g(v$O~8C<3w!jA`$VqwQktsjZk}MuVK*a z*(yW>Pfzl&sUY3gpMYyH&=z_Blt8i*YmA9db<|Mh2|O~pHcbe&k4KENPR1S4@%%!D zJBLkj#LY;iwKtBBLI<#*mXTG{aVL}^w&V^kJe9$qg0;1YG9x0u;Qw-UG0khMAI`fH z`w%T?&++ADe_#}|y>_Nv7* zb?2Y{IoYkzdU2?F8aN`SHF@PQ65gP|AzJj#4<`{vBmbKw7_a2{)8@@L?s>~BcK^O+ zy3t-{+4TxX>V-&eOxeI#aIg)aIj2}XM>sMWVv6@=-1VJ@7so&vgTIFdUjQWR<&4UI zG>==;s|`Iew{VH!^t+d>HtQ=g3l9mDrVVDvzE)*yQX2IArYIe&R0%anVmnAP^8nKmpU2m>s~ z?c%xmdd5wu3k~L8qFR%>2ck%$XQiS4{$TYp|Am8QaaK?_SCSZ#AYLdCry(sQT?}0{ zt1)=S44EMTrIFhv4UiW3yc)qr`W-TebL12 zw1mBc0=o1^J3fqbt98qRj(EI@j0J6Xi1lOQh`L7FKXz7&sMDD)-V#}%a+6G8aQ9bsF%HFM?@*7zodVBLDiX64 z{j2>GLFQ=byWK0pppmhWXrONX9kN^A*6wvQ#u5`kb0c=v+H;=KCE3&6c0xmYp{cnt z-Y&NoiFuvevAX>}AsORc;?`pt6bd01PejQejP*ez`g8U@2%z~q3Zzi}JnOV5-M-YT z{gA+=gv&VncquWv&+`6ROIGyX{9Ba%7?siC*Dy)<>v*YJkwjeid}th$V)f2=R!WlC zM&ojBkeKhTJ+4jB9P3tWoVx)p7 zx9-y&%(im^w5~WdGWl!pQ zfX&|RkQQ#R9%qsIUheHF3Vx5VZ@K_VK()V<@(rA~I6kFu`vtIw9j`;?TI5u$E?YO5 znIQUmGbtNDp{P=SVkvl|6Wsj7i8ey_%vhOuR3)jb6zy_A^Hqf~#>} zanw)D%LO(*XwOr_+mUufGfhAb(Wa{o!$m4<7V*g-)g@63KXreh8>St;1e4zmMTf^3UT)=zF`mD}A(DIVsivA(|fK_H{8PQWe3c-m<1XN{q8Eq3!pFOqRPg$(aw8j_#m`q*i_ z|Kk3r2`X!tUEx(>P>@LTFwgBaMDiUmwdK-V60kjNjGOe|1`fM2f~V-D2yt&kG+A`1 zOSY-))S+WMFFTx;hbl?TZ4^>7QjCF6iam>VZTOp@A(hWs$tjY0kX~|}yu_@%2Nk1F zR~+ThxyRt;YwW<}m7vRudm{h|!H+}o`kl|CKlabQ7R*NkHU9n9Ua`Yn`MB6! z`j60278E>XqnI(JNkCC*<>m4b@C*4GvF4~bj{Tyr-8u|rnRv2kg#Z%dKhspf&NAg> zFa%!X^6^_TjZB8>cnY6TQ1%4-Y>D(aGar^Ayie}(;f4-y?bI+2MZS^at30g%Phq@H zrQIqk*IqM7$#CgTjDpjm!J-0-N2hSF@{506EHTz;hH-%zaOnLMC$2hzbxR90kyOwB z>Q=T+0Q#tYc4OkAZ zN8vZd6;d?9R;Ef=NGmR}w)*z2u6CfgILfvPDbhWU?c~qjfS>AZi;3H~4zc~Ox^B~P ze*ltua@pu@7)#p4xq+VfnX0yAh# z-FMmvrldiL>kI&50=NYZERUs9FR)yCnM9L`6OH`-6WGd!P|fj|+t?Jo6o;-n5T-HZ z3b(CfL3gCKy_adIDoP9%9H-^X>!g}n61?jt1XD+?{HZGGCdEYeW^U5lI=jf8dJ2VE z@l}S8)w_e(hzw+NSBRIa36*J>v3@uEJARJxYo>sO`O0;2F3T?h9+QGm;MH=v_nslq z^i_nMU`dUDFS;cq2qw$Zt->vjtkSgk8~41at4I=6A$9-GKuv(D3KUW{Z^x_4>&G*X z9>x_QSMDzGy3CXf79K&3APh(hPpo4e{6)Or&9xxHk^G9;%UVb{9AXp9VAv-jF0FXf zhStDmz>C1f0dCe3sc^ijA@JO3;w>`^up$T6TktJ75C?&pKBr@N*9DEII12xHbhr6- z6Z_ixxceLY`}6tv`@8l71l;xe`uqF*)BpRs`t$qwtNZ(V`JerN?f-y1zj0ssp%r(JiH$6+b4zN@f@(aCR`%a@XUOg{#hyaDv6qGWu0L`fJ z_qdJy_s<{GJW#Xf^Tjcx4wY|}CGZkw$?Cydaa$Y#CE>$f%_>*v3qzJ1qs5qwB5{Tj|kjmDm z%Kdcd=ESii^RZxpL2`?;(=^l1TF;0!0W*?L zhg2s6u|m@F!u;t9;It6@QD$iJ00ujrHbP~Vw^IPqF1+v5i6Kwi$|uE?F@%XF9rsiK z2>X}6AQYl$V#S&v77Xt&siz@3*Q23ICO72|;HjCEX|kYl(we?l7p#ayOB>>LMD{pT zM$0ryCnjT$^cbIAji8jcOK$w4(BC>Gpe+l@Rd$W+CB5rG5c#AS2&7(>cg~h)b*LQO zs7`Q*euMw5fAdXM6%d|gH|n=?A*NBl?Bcg|+b*sK>At+c&Sb=;9kX4_wrHXfRvJ6x z3NWdi-+x@6U+?bVFd|iS&auFJK3Q*~<5wzhx6nZVi$&VA1(5nErDy{7$nBPop8p)qVRrinmW;*X3>clk1~IgG3|bKOSZbhzUpKM%Y@?eNizpBl6E z{Hh2#bK}vDwPR~=9j6b#I0-ZC1aU+E^@i)Y-+AXb9kW*OwSx|!86Yr~+m|O!bJj1t zm{l1bWSQeJ%z2WhCbI!cti|CuPCG1CoUWTcraRyO+c#6G0Ze%Wc&Fv;&5UrL{B#qy zhs%LLW*8MlQJF6s6cL1MWAP!zE$dKsf2Y=G^FA?k99+iM)B#KtI%&V3J&?Zab>qzt zYFIJ6*iyAo*DPNq_p^2Kdc<>qcX{urTE*C4P6s?j2Sf@PU^m&iXRn){HYiz<0lr%f zXz}3JF*mtlq&yK;ip|bWZ`E#>F;faVXRP{NT@ZeY`bv&&56qf@2a7bb*f#-TiFzoE z8%VgYq|~>kP;v3wzWL*&0%`$`FDMA1ig73p4Dp&Qd5OEUNrB;{nUPi$YKE0JVxqhbj6AzWm6-FA6-kw>CHWIS zP`tj;n+(}$v9~uvN}Ab0lxqE6Agb&E%p?W>%^}o|u@k4l^LU{CKIjGqD5KRPndEWC z|Brx|oQI!pI&3lnHPx!NH*(oJJS-NBhgpnt zL-CAb%yu(_n`D=#W3F8`O5EFFFLTbvkgc3eh>|VJkRF;P+>oN0(X6JKGHWbebBmw= z>W}B8X>~t{%+o08K5b)u6Bf~4bn1RFe@9h)6FWg&T5WA@3yaK_t<$3Lne2A(xA>aa z&R-V-lZ`bzG%iHZ@RXBBJymYueUqlNDz&=5tcyJL4`&SUl?N9gY?LAtSyqXIhcq%K zb8&d3{a_@V=3-z__H(dCo*Nn~Zn3Dw4Oro>Vk9}ygIBAx>H0}9h?$L6h zc(2aWepjJhlx0s&LE^salF@||O7DB8wA36!qT&{vY0cB&>@}Y505(6bhVCo&D zxL<;B1KuQDzTHO?{E46C9FLv-G0s|V0nO^{`uSgDf{3y(E+5zlAv&BK&`Om`v)q#| z>tOGvUo>%D%oxUN;h6wohGYsytWK;Dl~b(YNOnE_qI9ZtEXo3l`C}h-TeG zq~Op>$RfYmg0{wrbe%-?0e>MmU|(`bm6$+#uv={RW`f2UJo zn9hnbVV$YunU1s|(n~b(R9FQ{BN2Z}dDCM(A&g;9JX4`}NzyEbYo%LPtJ#(3i#Q83 zWpxLOA2`B%5_~TfOu4A#NxbbJ7<~l+jpDkRDBd7&J0?n&vRVQpT707km5nUa;x`GI z#vA#Uc~!*7-5j&Y)O)t*BeZNW#Ml0>hu`W=xAdQU%F^m(2YxFro9dpPxmDxx{1F=4 z+cKEdB*@&32s-BJH)_TLEai-4gKFp8PWCycw{&VljcaIgs@lRa2N!`95}T{yRSL7E z8c)-M%WsXIU9&(N7u98(r9n=-L=2COFY|WO$za{-TL!jw;39}2Kv7J3 z#K%mCuAs$c(vPJaNpKt7LgLxmt?ib3Af;Ny_dmu2%)40x0SoxH-LqFbU_Jy^B+>q5 zgLpIE&2Ch`SZyL9Jx4$$kI8<^fCtpFrQ?XG=NCa_`du&|5nwnXUJ-(Ru*_HoA+p*s zW}l}us#vwPu701Ku|Uv?B!8T`9M&T-7M6!6s3bwK=B1rVY-WKbA>&G}90unKfhrnrC7&Z;h6SE2gV%iB}yQ$PebS%V)d;HIx=ax{Z+6d@+=f;Dj zHms#EgKNG9p&My#Z9*n8(Ykne?=GnL&w9ZyVl7gJ24wSp^w)qfSz1a&CsJ-wo@d@c6 zJMAJJ{W;zj%Ll661rv(XgjeoD*EC6Yvx>fzZ`V;;r|EzsF`Oz*uP=Zq9loU>uo?sXFe#M?WnQHIk#gflnc#s>H{_)UE%5e^Q`g)ua- zYRND-@!b6=)#`4)L>N67>xXs?_6%?cw#d{fe(w{h{yR`Q8v=Qo+0-a7IjsaZ%@m*k zJN$YsAj1F#U^(yfAZ%8~3yNI~a&9w8%EXlZ_bj%eqk^5CIT{Y7S9e>B|Lkj0`m_`6;#r>NIuB^?*LqLQG9U6= zjvb0AUiMSPKtv_)LkC?nk!SkP(Gbo45cP05R!d{Rb2C3Hc$`W@+Lx+=zgRrG z=Q)sZUaiJgp3Mi-LEu0HLDX-kbIY3^HPQpSPs{ z1OalRhHG2b0XpmUxPLS!C|P-qRJ`i}=U z3<|+=Hd6vBWf2}#n{B<4-^joT3%1qBaos5XrnJ(^3eN+OOqZ)!LJ{1^jF(!JzDp8( zgvBgAp-Vf|`<))H3PMBK;@?-9VDm%YmG8Ty-0aH%l;$#?%m90BlVb@w^TZ!v{-zr| z2DTE;Qp(`FR5v~hvEoh)w=3e3X1mxXSLhdL`7ojWVlcY_-H`ydD^_l|+V3(ea(Lr^ z+#WOC3V^+yAUhTS7l#0RZ8_8!`^b&?3Stjfwe|*NWpydQDC#?rskJKYzr3NGArRZE z-QYI-J1^Im?XR}twR+_pHh)5=5kes5F^f^>Iv-h!o_&gSH^i7@aSEz&2FOS5y<82M z$rm4&DL>|y;0;mAu1RJT;1B|AB~T8GKE1zVLtdP8>!&%xjO3l!Q<+clu=oqUIH4SF zJO5+~VIci;DgSEwG2$fCe`_V~diXdHGrG953a?eDn17p>hGq%_j|nY@`SW{M-DABt zrkev^cz_Q_NtpGGjhi(1NS2c%6u3)jYSock@k6>&(RPhJ5RCc&9BNnTU>cYyT0|L2 z{?$O{NdmiypemZu_5>Dy# zRG4g5OqQ9~%r3MZs)ocD@ru;oqy_5llh*#f_8jcLI{y*o{%_2G_|N};G$@>;TUo3@35E8#_L0v=@R zCWs6Tl$HjvwIDmmWfRYY%8W)2euJQ_nGUzUH8;u4yBh777)qglVJlz8yuD~Sj-TvD z%og`-=knGdFSvVlI}kap!e6YWqa=n#$TMNBhH~MX=BK&go9@y6#8$%Nouj3Ql zF28ZCQAuQoZcV>Z24QcQ?NO*;!Jp*h7qy?4Fh^Fx5?Zkp0s^orY98JqSGOki&9GF8 zg{!OPp`*u(Ku!E!)Ps7Zidus#pCLLP{^`Ljexd#0Ht7uJ7%Cp-AMUjO?ga>} zY%GE-6Udm?z0tCGgJfTX-sNGGk-3Q%3RL$ugiT!G4S*ARVNDN-!Pn0@(672)@(mww-7DlmXnw&Gkdbk_5OHViGztVe+21>`-iWcAyPcj4BYN?py`bGx3R&^hw1&z!VWwc~7gcMDbll`uCSNR(&0Kn#3W=`S105`r2wJZeH1A)`6HqsDYg3 zQE!+w$s6DZb!`b-ZoQ{(L*sJv=sZ!H`F2=NgZY)Z94$Ul5n)CjUo zsQn%RQ!#x%$qvQt9JU7=(VrdxNC?jZh=;t>+WzjzSJ+?X>gvDRS`xR5P~$@aWoOfo zR%N3I&8ZpsVNno`NgOO>%?KJuis}(BJ3#9{mVi!-K*!O4s&B<2V@wp^|MW_tJzgQT4S0Q!2@9=}i|iJh z>@O@gs?S6G_jTOTp;p2!n>_6EVWrRVia-=5V0YH`d>{*^XZRGm=FhtDzZ-1{fnWWS zo%5)+)5JnB+Bsj|M4fwzqEvSTS{}bExan6^2#k?dto4pRD8eBgIMim2k3}@J*@li@2Fd zKw(Y-KgRkMO3ce*Y)CfJ02(zyMxhMmXUc7uRX)d$ZElQSSjrpIg;3_-;zGs9wi(;M z3H95A91vw>=6A3tEUz^FM(iHiK)*SA#{WH*klpWCR}*Jlf1(^B3OFVr1cOj;e^a%r zTO9S)`Kp@C7oQ^J!4#Y`tfcyJY|Dd%O71}Cr6l1!7hcNPPQ7#Z0FqqOXWkYb*Wd3$ z`uj2WG*^8kihW*D_z*{H08W%OV^`%Lr8J?b89?i>awjHWuD6J~iAJZj+K;u|j#ml3 za!sUb<#rFM>kpJg`-v*$rT07gT>pH+BS`ahw=u8L`mQv;rn9qy;1`ygNr+CroG~(( zL)DysI7iG*K0%hQ?V|$TV;es8c7VQwBre|0_baSiHOTAwgazq@dEX~f%!4+q$Mt(q zFg|)aqg{r@@)bV!pQbC(@@Wd!=2{OhVwkyLd^b(B2O8YKtZ1O-=_%h67a0yl;gD5B zWf4h@<@aLWiMVbCju&TR+|OV0k20*oiPJgf=|aKMqliIfZ6tYRdMR=ca_(i-Xd1x% zErY(wjr%!9B{p~)tOJ5~;$ULV#kiXz+@MK8#fur6>z*4!F7~ zgaRHe$-Xh~%2>YVz_=9Lku&IR%VTn@OpSrPTo^OW*{0bz$i%=PFPYMDu1rAK4Eed3 z-FL;2t4m~Q4vFIf{Mg;HpMABeWpBmaDbEbN#Uy}gVqh=3s?ID;O=Pf>Y>HEc|DMkm z{#qUc9+$7^ki$YNi4y+q0Z~X{#5)tSM*Bz{?^fT$+neE8#U3=I6(N>LqTp(qlgApO z2tlRB2P4QL7SVjNPiyjR&Q)o!iH4;EquyuEwyH-v=^;erE1ddU48%MK9C2qcXrjSH zdJnYj9;oLNh0D-TU1c;~7HsfpRpaK0^p7#PFyvf$p)`VnRR(T>F1jEqPuv*Xu!;p5 z1X=JJ6bLkT<<@lgdDYa+#l{FCwU=!15P)+g+l58)y^zUqw-bAAOj~Tt;tsHW>-dW| zEhdfCcK(BMeDq*d2YQS^qbAmu`r9__&&{@`bl+posH3%Dz+X4D99svkO|4b^wmma_ z(ez&lPC;nPbB{1zybze>71tzK4@h>k#QUakXi0}qq-?ftFPa%!X8T1bD z=LS(b`K2LVMHrZ_a+DFNUBg&~mk^7bI$ep|K%0P*vmCKe4q48NUnV*^^Jy!I&*I`V zlNnEk9tjcfbr|S(zN*SQHZA^DPeC+`nK>%|lT!{TBpwhiZ^Ry+kG$kC_2(`CmYGiT zy#sQ((weaS;8gf$*@I~l*bBUNuRFU^u^XCC3Fqd~yh@Le{$fU4#f-pc4ueo*{@pT2 zfg&Ekfz_cqQ)fA*C+j}%-F{ll10rdsp8ixlub@<0doMXcBio-m?CFx%c;7#i2-27-iidYUV3y=8OUY+eez?{-H*I41#J!A695iodXCHI~2X%Mt zaGb3&O}|ds2;a~NYJq~7%r}#h4#iy%dFf(yO16I-lH~l|`QRM+VGc?@z^#(+{Tfco z&skVfvF=#ld!C#U8(vW)=67An{0G~4?wg+A#J-sVidT_NlEc$TcpCXy+(Kp=m@^!T zCLdE+z7Uu4(;km0yBI2D{~CpuQ=NYN#sd){oUKG5u>@Cf?N!M z6c-dAj1^lGWAjO9cNRbGaYd=&kw!hq`eV1eHH@X2M-wY5c!3) zZF&jaFIyj)`iKZIUGUm@sG0lmsImMbjF<-IFv`tlT){e+HndFe>#vP7)y9$M|HIB* z1=Sga>4M%HHtz1QakoHlceg+Y?iO5wvvGHKch}&q!GpU?aCe!mn(C>kI&*HjdQSEI z|6i_J>wD_`-cekw8*XuEig$}3T?fMJk)>A$XJIi~bP85j(U`Hu%^wh^^IxGKvqv)a zK8v@#MJsm=J%m{C7aWEI^r|jnKk?rFFa&UTLEy;+q#E*Rh>3@p9N;&6+5Y-@^tE;T z>Q&-kZ2tVoBn-bZ#aL`Uo%?DFpKdye2*X|g)xy_GG-EQ;P8-vd9 zEd_bG^`)hIXkUFgZkUCE>)-qTi$vmoJO6+AubTha+1S5u{jdH1|C9gt?=t_Rll(vZ zk8#8YuAe?W6N3C+R+@}fnstoibAk{uYEgCQ;5^eb)4?-{yhny;T(CpSAE8<&y z_S2|=5+ZU0vnDUPxEd^|VS<3g`B>_)MyvW^rpi1vJ-g8B<>}_db(W*CID1HgesI~h zOS!8uXX*Xjck6ZY`o1PkZFflv`^|IQ9)9KuC>d9^@equXQDLL0;S*SKIvzwJCRUaj zEt#q=2lqGGY@|Voc!bZC|H4_?;3-x-VgEB45}n)r+Nk6A_`xcTHJMo$9#j%4uA+`2 zrV0d#AnM{`U|x0W!qu1zd>PMWJhBBGmkB1{b|gGZl0Jck$AppO<7*C zf{$HytmnYf-y18rKY#jEHCtQxRaB$oOA!C0i!zJMxW3MjJpQMU|CK5RM4is7{q9w~G?ne;HQ@pc znme)l9?E^G3XPDXEZDg;L~_!8=_1IUkdf8Ef9JynCUase))jq?nXGKTs?YiUcJ;i+ z+pz!5Uzf{~+U9S0L%70J@3uRtb*;?-yKv_v9qhDn?|?C`Jh#^};O(eW)M2i~ z>)!I$9FZR5cRQPZXCe#>QLn!C&=Dnp13jZpHb}tm*b;a(=@5o)IZ zl2T${rPb;!jNw0Y=>>(34WzJ|b3?noCx9$}J|)(xV|r2r9GW6`=}q!*B^hytCRyfn z`;T}h4R<@qa+stuWnR^l|C?#?K$y87^%NvNgtBmy$80kuXiFHfnzHRJu}T@vp+?pV zGW*E~ho(b^t;cPTKF{e>UUI4u4v~891b^ zKYzm$hHKuH`ODjwPbW&&4`BVOrN)+m*z&TG2Q7nlWuBuhrv^nEgyv24ZE(hA>=cx) zp{Fqu4{u~9jX4{qEhqw;!>EnlnkF4Gm9pnVHjBMDvqmay!2tD}Yv_wZe_ zTFUrzOei*!eN27_GwQ#<182|S?RxjW*bB2c@Fq1fl5DtfU$}T&xg-fV{h&i-uhKb~ ziKcVq_U4=XKQ>X&9X@g%gPrb7RIpkc_KMuky=cBjS|A^@rJ&duftan_%M4n2i zzkK3B41po5Xfr57N0`eT=Ka}fhy58^^aWtiicHO8(w)|pk zNM*fi{o8)%u=_#&0`Pv^3_SC3M$fFVG>Y}y<~Xfun(X-ucTRNQU6_L}m#fZ1B10f}KQfFmH=B!4dK9Pluu`y^J@#F4 zzu1|DmiKg^RHil?M}@7lln_;i%Q)mp8}RuHPLm8=MxD;rMVbvA}(StuzR8;ld`Sz*+QwJMD=)%N_JM|jK zuc;`QB~QH4nOSVfZp+<_?wDTl02zTVY32~>#wc#(7!Z!tH>RNO8XEi(jZ+}0q0*Y~ z6|8QOEzyb?0wgvZrRduhG!J?L6ejh+?(s?F7MZD&WXxfIhklFUcZ``$Y;k#kDBK($ zgQ>(*XY`bW-+wLXL57^Hkwpb6ps?c~L-(b(Y&`AqQ^4#gZzsP0=9s(e&WSv})B9b} z?m@26=9UAQFOfd+6p>&a`bQb6;dYg`xLeyJwdNfcDN-1^$OSfzzqrLnI;RZVZDa

        ~h-DlQSYJ1lgAoau-dU#f$?Uz2FdgaVB80B&ALz69Y>}B>#4p

        7u4KzQIjgrQ#(t?Ni3K}+G$5{6)^-Zj8_8AzuPdir;KMRoUQvC z*?DH20_`^Ndx!mj+g~!9%ZI7i5aBs$4+1S{*qq5nX4FU!&RXrLWqvL?w;1*|xWblK zAOces9D`G3ad3Sf<0gqDP*>Q1TuX?}_Q6lO(Tz||xLB2bC`d)3PkBDjsiL@1;Fp`# z2TEpo5?;cmBl{oG_Lr+6mvJAn_m#ZG8XYACh)}zA(TWxn@u~7=U72j-xDirq!$Y>I zjUo=mqPjclLfr7MCOOK`Hm)6_Tyg%0{wMy9dB&{9?Rw_+N6}=Z-kbdop5=N z>$CCF`ufts;dfSr19$Tf76mviP1Z}1!+xe5j|1c!?;WZd8Jf7L;DGCFd1dEJU6S*N zMw-oaKSWj`A1K!I`}-l;apV0FkTfU@nPP(SyIL8X7-k8hEZrU2Pdt>iY0L zue8A&k-9ZOJsZv0&O8Xy+u`|~93QuP;y-!{#xF5y&UyzPw*o$WPXLR$eqS$IJ$wLn zS1YP4u>%=m)DIr(od*mwyvbqP@jY!gTWhz7+G~kVr~E=d0}%w@Fs9S;>p1TYh zq{|}xkLKy2kkw>lapA{8W7slRXn6-HNTAGmLiT zt}ZEm%sBn^;0%nw`>L$MVT8?|w1>aNCXXzs>R|NJU4CUXLOgn@l2UPCA%Vc{?KgLO z8$=_Pt}%WNEvBoQj1fG9a)(wCp97* z7s31%DuK}ZFhZw;17LEDPD}_miqp!ntzK#^cb!nqAQT%(+WzX`oD~0i4aV`gJQ6Z;d)ZhO8Vv(&POCHBcIC`+PRfO(+TUX)~lue{p zZm|tz9ssRpw#8b&Xqaw7xjYP)mQD}ar!y_Agc6%yrR!GJ!w7f;K`Y#Mh%S{+r4|`q zV7VVAXArA@ZsZ%z{8?A{CT%K$4L(_8W&)@CF6(y_dHf9}A9s<;4l0e)IC z#aAUP`LwBsIl3W|a-o@Y+0}76?B93Is*l*_%iMTM&Y{besbH&-6P7YyXZ`iySfoo) z8J#j@@cF<&%M7j8r?zzG^F6%Unp8lJbq|rs2Za8(<7ZgG7oB$XnBa7Sy)?RJ>x#Ai zU}nc8A5=f=SK-N0SeF)l&phSXP^ut^w**DhG;+h|9>#)QuBtk4{aFdVYwpxYa?7?1t!ZZ@#GID0njEQiVef&A7nnDH|E2fc>ujCjpI zweQam1!9}kL{X>#F^Ry-!o+AVJ_O2$1ZKP+WC>`Obyd5o?)WHCm!1|3SAT7HpaL?V zc?3u?0P=Mo1de*7n~XAX6)0o9xtyu^+25|V<24@!@FMR7jG9leROH3*dogMH@D3tA zn29K^A13o<-b_5{*6GzXZg~JKniVc@N=x}T23&Jyg${q{OgBmSJ{HLVb~sP${Z=e@ zzXESP#AvOEqv>J(y0G0Mp{vA(fgs=i!V`)kKLJ@k$3G7&eJBb50w{?;$@0~~vbJi8 zO%iExPmmiwU)_ggXsSWZ|5+vbKPvyj@n5(9#rEa@BmeW|fBf&iOa5p5KmE_zMpsk+ zGu!zxyNzRSiHATKb42#mCZWU%>$er%KPW|=LAB&bme^zw2zmexCRtp2RnQ=uis(tH zB;$3GB{$g*X6+v>F1gI=vhB>a8+K&j*~4Re^(G@G%I3qjow2uuQ*D~0v3u!`RP!#D zezTL!)z7)ke!}m$M?b@oFmp{+y!)@q0lA1*W5cCTY0F?4l-ChbVY;F>Ee=dxOUYgF zAT>snnci$*C;%LM!Ko{Y-#n~5s_rkT`v zm{B@SJ}fza>H@jHiyS6(-6E6fE6d2*7x=>dPVOmi$R9>k&r|2b&w)z?yFKMOZRQza|=`)A?o|YQO-t_ z>&Wb;Klxk)b)AnXQuoucQBlH1njV9(u^T~g1=;rvCQ%;<-1SYh`!j}-J9oraJUs57G1A==m97f;?!hBHya9qbLR z@IALH>}KVxZjVb7QPo9d#ysh0YgL147s(A zubKc>PQ?IIn~C;Xi_7t~%kIbc&3Q0pm+adnD_NkG_S0ChI)$odg}qplu4r>sVPfr3oH3! zx(WlI4EdmA5me+{S480yra|h0jh+vLp}ezVpG+QD&({PS4-Xww?aN&*}*@g%J($iD% zVH6DKSG8IyMP%+Ss{;n=Y@l)rB<_~*aNz(3slcKoCJF(k zG}3vAeZ1IslL$eUF_SPNKd=zCIbd0MgW`@YRm$58gWWQvWPUee@u&&M8Bpw z_{I^X!$9?`IlxoH^63D`p;>^dh`r>&DzJPXFnHOlfUrXf$zGIgMHqOj9OR%lOtB4q z0T4WOguIL{LrgUYz9wS8;rfI^K!t5n7gFO6>Ih8?lTvW+?segdJSd2~XF?W>3zLpJ ziKbjJ8~B1EIOa&d^9t3NPLbk7eeX36Jz=U${0rs&r`Pc68U_^8(H}b8hULHVy}?w~ ziD1CA1<&)9=-C$g3q0vcb#*eaJ%%`vL_^(eB-)1^>n&fbbX}lNSReBE%|>CSqsuhg z>W(&F?Cm%1Bu4vnB{^hj6ZeC&Q?NwDAt`zZAW^MaZ?MP`1-iwk*9aLKgl%bs)r?GK zgXDKN5B*d*XVHfb=MQ86%5gQ2p*JF@1p$bEn=RQ&8%kGkX^7AQ^YP51$U*vqJyFIh zFd~ad_yoif@F#X_@7R}W z3p!SlFcR|o#aMgDLk)qt-S8AJGN)MN2yJSwr@0+$T@dg5cDwOyXVu!@`Qalln{7Nx zGw%3F{r9}2L~Ag?Bm?hhS^DstN1gei{C;M@@#3Ex_TL?m^P02WFzM@ctNNV<-Ib`l zNmu5fn;O()^f)w6)vKP$T1nC6#OH+zHfrt034^bprY)~h!v7I5LJitF7w;JBid12) zJNhIs*bO)mk&DU}o{*k()aYrg5P-TzRLa{8y8)>}-qV5Gm<1XHLHbHnwyD<-gUGmc zxQ5ywny*Iq*lvS^$0B6As?bS_q9fk?n4dh^J3QDX_W^$7cQK0+u#~sTdJ>SE+~qotd2Hc0Bu8G zz&uv`$OyAMJl@x{ue}m_yqGlUwQuK<4tjX~$eXCaxH8MCZ|`%ZCq?isdw-YA#CJ+> zxm|g}9MGnS1h;1?JCc{Gbmr`t4%r*y{Kx48V*RUc5@?4Xg4|4*8FjO}{0}DjhbsV7 zBR>aikxu(s=o-w(a+I61k%?RoYq%&ZEJzeUgeycW(|K5|f zP44q5k=SvaO~^+M9aEy%ki;o*UZuz$w)?{dBi;A)5U0U527eY2svvdHNnztO4^2%m zMx^#Ke}eY&+AV8$@MEdDYXJ_qhgl!YlC3Sg_i6HD9AnaeDISGFkMqB*7@s)LxJ_ee z&6QwsAHi&mb?rll117RWZ^iOUUo34LYmy4wEL0n*j%-@O5=!!_>KGR`qS zi<|muT~WbukYTy)=We$x^SGA;6zbYDzIN>HFGAry{ICw6n;223_dCjduj~Tv+*?pz zA^70|YEW%79IsLTazyhFa)O}atk0I2qoI$wZ@vsw>!J3_;rtNfaGY9zLUH}XO{ON? zW-nPP=Og{NU4P|ia>g&Q+V+26yV}mzYvpkz!59Fr|6^v=WQ++tFouctlT-;tuIQBA zxPLi659pS9in*|Bvsr-eTQaRHF~LONF`tB)p)pR5j$^bvxw9dx&CMMSe{~z+r0aG$ zF?#zj$Xc8;jLOJITCgoW{L3TE8+dQHhCy5wzOse`4PIT71+u{gemTRB0`_xf9033l z@#xV=*2a9-Dpg1%Um#W1sPHApv_U7BFYlULBhYXyr~al#DU&>Imv-K4ywPQ{V6#1@ zt5m-y?37eSzVzzgaeSqoD-)8XAe%v@lec|O)Q=bI(mraLQ*_8YlFCd-pd?h200lP+ zBISD8Os_`zHY1la56w$^>fqZSPlq73#T@>7==QI&t^Sf;~e&;Xwr)q50uaj}PqU&2Hr~d_%>eNue8N zfa6p5+D8{;za4J|fl0Hhm#zaqy^K%w<(WcT6kU8j<^ zMw^MNynxC^S?Mj;g9nI#1iRvp)iVGxrAT>gmP*FZ(da6d(56pbrTI9tqqtD>T{)oQ z>_4A)q+rQWS!2rTIzaEeUH~J`%nCY6mbNE^3K@kq>qH5L4=-95o9YJ=Fl{>l4zBS2 zgESju(f~HA6@uPx%>bG1j6&aO>p<2my>*7P2OSo*vL7B~Aoiv?_dRye2AInLB;0u3 z9n{ebo|jtvJr=?b_Z)_Jk2K}|Fgx+!vB2yzv+&al#pq>@fo1I$nTTweW8I5i)4Jx9 zi8rm&aOv2A6#Q8|GmQ|P>H_sqeKq1tM2H&Sw?8PpU8}-x3iC1k73E5$z}50Iaw@n- zAN5GBB&SFNP2x;VAiX3-yr+_$n-ctw%kUa!=wD0ES1EYeI~1FZ4er*1@{3J>gUgc@Z!n=ew8oz`x^BtC`598Pr$3J+Tv!kZ781)xCYO|DkcCa_nojj~$<;G^AK9RCb zBM{%!w5tAxZ~n)B{@?z?`CsQhU)k9I$AA9&`VSiXf9`)-)tPB(jQCmSIv;UAWO~Z| znsbSW8&p6Cvn#@fry-_^LWvQL|1Ap>yOtb6Lzj0PY?x`7K`bgrVaE?dMyZF7ATPo) zrp-rju~0g?=jrsV-SRGVe$emkI8FLp^Lx5&1BRgeYODF=yX(20{pW{8wd>NxqoAsW zZG~~PM7UDGu~00HPn~^aY*pJl!CqlU}qt|pn}JBlE;p?X>}bZ|MU8I zr^D@Egs&;Ajh@%IqNe@ZjQ!(*6btjwOTU;3RT6OlEXK}4QboaT*w+H1Q?fEC`RhMg zWIDXJxxy|_HLP>u>55mjSZg$L!GF#vhnl&O@ubT4U&gEvutGtiGUZtV`^f$ncQ{;P z>h(&F@rB=`>$rx4*%iy{iJ8BwrJ0xbK2&b&$P~zN0takka0{lx zM_t*Lv$=z^pzv`WOV!~3#M+eL{p z_z2x3ZN07c98IuS)S1{3SXw9m9Jr@=*FHo!<#K$MtTh?;7-&_KXeRYasQ^NSHFa3AxbV2#~d(>@Iv_<%H>Nvudxf?oYD@f%sy36_8KE;6&& zKQA2#kB-VfhWqK|L8rv8Xo`)m<>GHgJ%Zzke^svWwuNvN*b$;Z`wJTW+DMfC`iM)0c8K0Cjtlk$kp=LB{YfZgi4{2@F>aX&>W= zmG$u%ISY>$(wbc>rrj^^Ya;%qy;$3$Ouu&j*!O;ZdV9ojjY4&-ERE^EeQ8DzI1qIN z(;{D%GZj={;MWrjtDjsHpZi&8)G^GC8yL7K!kx(62Cr^*z7OZ#H`5n~dp%yPxvkf* z!_(8MwxSFh4eq#@T$0KMLL#b5h)eN63iq-qEs=%GV5&}k)IGo*Cdoh`A zH?syk$jmQErQ)d5yXiBe1aVB{TE{kweDb|3JaYiosZ`X(=l8|oG6%JVLlblTDh%BA zaY{`De0_u7AhDE|ji>LVpUry$?psus?pv@wRV}_@vy&)nHz2F@7VLHiPiZxAKnvtm zP%1LW{-YA?y;QzF?X7{i_$h4fyI=BBZ?ZRo!s=yUZEJ|N<^vH4 zZkS#n=*L>fomSZthktMs@|9u5$-wXjf?IJ%GlF`={N?qPkj?P?u5lzr@r;GaQXd*( z^v?9<_gC@ zYN+kWVpyz=OcZ2kM&QF<($6FiMKDKYsZJV1w&MGBir*+*3Ay!RYr+>mD#)2MnnRKC z^uzqKd(Edh0OgKO#?=9uubqAHv;fL#Rq>oEo)DA`;O`8D&Y>*3jIq@>4#q?Km)Qx5 z!)exvj+Q?n(E1XZUd((+j;CmA_{T<32{*WCq*33Mk@t<_bZLiJ5NChq*cqwF%H|tc zTS8xXVcXe{jGEU3R~jR=^I7P+JgWRKIRCmqO+GBM51pdIz*3^klfma-5wtOT*mwrv>E=@? zPZq*X!f7aVKcE?xSNvOa(#r#n?GVOOWPzqayt6Gf3P zj|`OLPxCe<%CmeuuXE<(Foa?gt4P5mnmDUYKtf&=E5yi`8gnNDnDhl`hxsf*SWzkm zF_vWQ5{ zXs~z`R1uK2M{!ln5@w{Ax?#+V%pU(sbpwID7N7X)vG3GPM5g*j?^AC&Bcgi%Pv0d9B)HUpiJ zJ4e9yN+pHUQ%2R2(Wm=X9KbsU;3>HeI2+dT75ZCAlvo)$9Zj88h=&Lk9VWvrwxtEc zrKsnL^`~3whWBBiuy_Vd&#!|uvxEDXQSpZUBH4R(X=*QGPu{7%surLFH`@%U+k&Q1Hx z%|*N-(a^DZtzu=88Nv$up=TAKaZfZz4c>s#ImAlH0Lqy<_D0oc%FaVX4FoAhA$!rN1c7LWD`i-rERm%IiB^&!ijOy5qCqT@?)Zjl(QaN7ed6qN=OeHD~wH~TQQhBx8#4B{{j5eRud5IwFgbES}ZDzg$m z6}O7JC1w}LU!-$$O*}s-#&1z>if4pf*$J?|b15%^L93*MaTh52@<6y;-oD#d63M1l zv4Z*3QWezeSMlp#aF4zxvvZ&Kgc=~W{A)a7BOyb>Do{dRnbXgow`B}m8|#^ZJBLUV?e3vm0UW=+8HjfO_nX3Y zd)^oxeS*Laa?8YAg2OeP_Oo}Vt+bn4b+yhSkIhk^{&+wJ6$55}Vo0;tDpS4C4406@ zOFOC@cD{@`+mg7=nNIr_??6{Le~es|v@fgtX|P6i^1D`qxmA5Lej{xDDhDlTmwg_a zlL>v9&7|zqKq!sKzQWJ2hzd-8dBK{7NqC3jn?Nu&lHiWn3D(2(s@JTRdDjU*pK~@l)Wb zl?{=>qt>WIBK1=k)`_0FCi%Pr^#?w153Cm-SBP^M+Y*uWM`ViOqkMS{?X6bl!}&;d zM9lV`Kf%HZ^i^>j9#9DAScdwPTs+vWxRoho8n@Rsh;K}D3qELPnXeyY#MR2Auqhh% z==xnK@cxYu;$B|L)Gq5L_r+RdY$;YISfBlX6a;dLLyf86hvwf4X`@`_Yt*=ebIM9f zXzSM#6Tf=G@h}`jH1=Ge+ZE{m)>v48i4|x(1KlY!18wBjsWG?%gu$Qyj|G0gliiYP z(#jF}Y4yy;Sizn;YrO5%E8_19up%iyt8_M?IuA!PGO@Mrvki1Z)G_pTpyU+tLSo2o ziHN@_qg(}`rUF1vZGNAKKfWd4t46hB#0werDAuJB<&VYxgRJa->px%r3;pK{_y6KQ z+#LVoKmT3)hx9-5KUz_yOIjaOU9PFC?J1ij79|#Bv5tFM0;Fr~T;xh@GzbkI019#{ zc<{KGj6g3m+7+OaTwfg1LR1XB4>~eFnB7gRPQZVeLr~uQ`YdO&vNCn`vby7X>$COc zrM=yr5W%BFraQ+#W9}FK)~}C)x6%qpbkLJ(NC27b+YbnK3xX)m%Y=QFO!*%Rbq)Uf zpR0EH@Otp~IpxQRF#e&vXze+B6P`I7=bj%#c-`-l{~%X>G`(ZWpNFizySF{JaQ}3# z)%jB8twK;G6-DV7zyJ``BZvaf@7E2t<-D`J!RnHsm^%D|8vQ&y-T8d)C-EgN4Mg@a zVIOP3dCwR;OEP^VKfrdYh3*9zwa$PYP>C;ijA-SCdJ+YshOM>0jW_~4FZsBtq>!SU zapqI-KHJXSS@pg54vIgU;fVbXmr4=E4|*7t&oUU0(Zr|C@=svhVsWo$a#YU;FYJt!oCG^LpI>rEKe2jR4g=UtbU@sA>k{RMbVtT$nP|4m{`G!Lmz`~wI z{6KXdVUh)P-g~F}wC0p%ybth2kbXdc{CFsC@;L1?|veVxF6LJho69Z6^x52}gNg zkc#4eF8`Ue5&sBW|MELL5Pc$C!6=3u_!3$9r#9wPRJk1g?i@<^N}Pq=4gm@T)i5HK z$|Cm)^llIhff%whNIgwBS_4}fG2c!+Nd>k-xvyBjV*mHIM2B9c4Rj<~;Q9^)8|>u>dfqVYyxYY8^Mrq6SRII6+#*pFd*o7nAn2 zEwhdSzLxZbCerND+G~CNo}uAkMbu1M+5jF2r56*)%abAyBLpGhH3tP}y047;`>UJZ}13j0F1#M}nq zy`K$O4eM7$=u4gXGpLI{ubvZSim`)Qd3!=?dwemJg<6qv{dU1Eft4JLx(zWGWRW?y zC%p3+xC-rljdMeZp(EG*iJ`LtIPHh_Jt_m zE$-+r6ss-JO9x+pjGw9ko|eS-G0e9?BS+WzqG-4nszJJ8HdqRVc5MXwY)N0;F$JbA z?1@>5Oh%AgbaA%P_nRYY#N^A5ca(~ypxg>VSa{(i%wkFZP&}b$ru65gF%8Uo{n0Wm zOM9_*CM$64PKL3eDRSp(&s-Uq?8z@xm&Ki)bu>Q1a5S-eomDQrq@F`Ha;q|he}*DB z!LsBLMNSn9rUwapmjyXVSu-QijC}6_XniaE-Uwm5)MU@%e)@~=-Z4QNY494jHvaV3 z_}hJk9oWl0Rb%~25L1(s)eNOoD3mhR#GUQ}_}nx+*1Ayt{Gz4{?(9+DGp&gmlQ^dK z0?>+m*?}V#MyZUf*$bS-gXMQP?1I7OAk3@luTPK)yg&l3Ir64(`2L*x@`HAkNMd+~ z1D^f+L>(<}%$Z^YmCU*`$ZJfyYm!{#(q!#$+?si_A4z~Lj)KOIbC_NQ!UPDy?sFoR zaj2>f=J~=qQEfi%^pY|G^n|+eQkKKW%s>aOy5WtVGD~n&VL8HN+oj(4x9n_2R!(kq zrE^Bd!;pmw1O@BYBmxkrXk~?D0d0s;$U#5e%^UFSm;-tP(^t78?o(he?hXJ-F=Uhe zm5NBEW7eCV_UsLnNIX712-YZ(;w6{}B1I@Q09(wqw67k+;<}mD1(b;_@l$a}F7&3h zsFS1&oUbJ9O5k0PyAIMejDQnCk4{y#1~99Qi&aOVe^1&iq-eQ$?+FYyh_j8KP5j4% zDKnZWb;yz{@cYuOF779F_>VOp$i!j4A+6Q8~=q}10b!Iq=* z?Sw$LvnxoFkY~w7QigT(xNLrvuHI|h)WgRPN4dEJpB1=AZbhy#ir<;IFreEU1J>TE z>r?&%6zo?hq7^gPH8h^%KEx1{r++Fh-}qszU9W<`@vG2w;Dm3Pr9CFntyCVW_Li_P zRBUSBR6u`%LL&R3L(N{bOh%b}R~Lm&*Vq~ooD2&Z@ntGXgn>{^)DUUSXg1KH*)YZB zln|iodi}>i+g);6|85yVKRZ;VZGGLygMqnX##b6jBGH+|p^`+6%ILz<#$`bHs}Tnk zOB;J=k!YMMj-r>C!cKMr9Dk1HulS`DlZEXkb|@oHg9Uad9rA;6(sSS+BZ)Be*eion zi>t>^$M~fSM~C2@dtmsW*2mRFd=A{zqMI`0Ksys*Y7Y6a&e|QmFpH9EF_T1p!~rHO z*v*&~-8Ik#F&#OyJK&s$rKEN`7|Nka=y6o2)h@}Xa3xlFX4e&hVnb1do{u2JB@Ok+ zrl95f>F$5p#^mpsvvM!xRVYu)Y{vFI0uxNF_CWPb6GKL5g4v23dkcH_F>{)Ne$4Jy zPXBgrsUFL>T!HplR*?5Y*~g~l=ub>ptR8M8zTaxnXjbi?duV4tARbe?$E$`mlaA3e z!jgxW`bPTFj^+J6S^Gl zeO9Dig{b>o1#Ws-(2XnkD*#z|pnkS0N?0WbiV|cU#Qr>*;N>qv|9tYQa{QGjnJKLu zR!`#zAIj=dw{1CRwR{LAMExMIB4$-52*+ZgEetIx%EF-+T;+1OE4PQP|$>j(y z^(EYsew99~|MrBZS4~6`16N8bX*O+TvV!lDIfMJ{hIKuYfR2_lOLcrG=k?-q=9(^o z=Q<7_)XcoYSl8;Wb2K|<5fn*8ky=EvS6A;}FH$y3o-bWm?XiC;iFLNnNA?9pC1~xF zIzFkO>~p$e(8WA~BW$Tm%T~*3s*;IaxNMwUPTU|Rk+%$KJav+& zutT;;&CSQBKM5Fe%D=%Z*jry6amjb(or*`%4-JMD28AIx8{4%sH#7sjzc!pM=iU?Z zt=y6K=NfK9LsIv1_8_hK);g&z*u8dKTP@X#mmM(!(J>VB{CHmhNsNV`(Rr}p;r zz1jSD)40Db+LBmf6bV*1pNLHSBSb^U+#U3YHr$XVS8s~r_EMno=B&6XZ?`N{X+Qc$ zO`l`QgJ{5hut-3iUdJt4*BQGiihW!sg%enQ?x|eguX^}iqTIL2jOEx9S%{M4iEEXC zz}eT32)N1((aM&Xh2r$zVs_*sL3ZfhEs>U{-e)}zE^OTM7k>6RlS~yA9UD>!ZXL1D zEvI{rQt!|2{l2eZ6NRtW*6TFEe_ofr>tTJ);r@pc!8S*Ot!QG8u6Fnu$LGH26FT~f zsVV$zb$26uh3H71LJ0}*9l9Uwy^tQ$2oG{LdLhpLi$vgMWawHj_YZ1vp2e5#OU%;w z*GjRcFDo83p>+YSYqm`%);|o|U$fgX@ji<9#&dU@!cK`Ps1W0z*knum9j=z=rg4WK z-oDqcIZd!R%Mj$#7L9_yNnZL#-ojw#omEtu%5d{)&+hMSug#f9Tb?ACs4K{hu8A;V zk%oZfF$x*F*Ah~GBXen`f94OOirmA&6(##ZK@nci%D#vHR0n^Z7uPJb|7@YMdHVV$$ke;FUX21~!xr{n00udHxKN_BI2w>jXv+waq%6}%;ESMP?xc`m5?eI$w*j_pq)OLjXAA>KI|b+O=sSEE5ce*hAEpSFdr@pKqe<>D zzn-~wPBt-R5|jXk@P!Z%Bid$!t^}5tlN*wc*E@6`Hy;PSy*~%ab?q8hF%VkaPCnLf zqQ5tq%1^&vr?ezx%Sg0h7_GM$O4~@>vnirZ)$}u{K-3YtSydf%TRml#0X zQz!8bX>xGO-tPYmOhNBT+8l^Rkn7a~rJw0i`PV{lRrNVq;h~~1hTL|QhCGGK0&sHElIxjN`QDQQ|33~&0m||bpsISM9jEP}2 zkJ)%?v`lt!yJ4M!5jO?DMtq(Nht^-y|8S$STYku1so%N$St1P^^S0lQL(=PZR`g5R><5d_J z;rp3iOX=V7P&2alHQW8{=??VEB?nbSZ};fbB%&=oa}wc-vc z^!|_n&K15{n4o>OPJfi9vUn}F$qapGB@vATnq!{m#x}b1BH_XK z^L`T71UOuzA1mL2X^|lkYDXUmtiQaID$FI0I%M3|9hUGk#I#tDiT&G^ekp`Rk6V^L zxeP=N&HSndcCBJOgM-xh2nVW7U@L@QesM#zg*OkwFsB?HL7f~(8QGClT6!5|4oqVsM#lYomSeaEy7GOb!Oz!_t+{-=MeBIHGZve@Y;wONrp*{oJa~A0W4Gp;qCp^C zCL`%ahwK!LvL*C_KFnYJRn+yE=XI0QWnd3*_N0c$%7oY|qagt=39P4OD`4IUjSe|D zcSuXrulln8lu1N^i7g{niE*%a%KNZ~(fb4A<8r~rG!J!d=Q$G_5_uVGCDOme9gJ^P7k z@YtjmR%$IOl48Hc%b6-7{?sfb`9nG32Xz?cg6#53l+vW+0#^16R&z&zl;%@$Ut}dkhmu1E#o30J8Tmtfr7+38merFNcS>YP*6HZ!48zl(vOU8Rl1NLN+un3V+l?3UgSg8ztKgLCO8I`h+C(6!B%kp97!5GHn=ss}-{ZoK1GX9xMG+Y{2oW zK1zXLhD0RJE2tf6o@U}U=5>0xf5*rs#DUgVkM-Cax*u>E*-s%4rz^Lr6c**P%)vj8 zM8q72m>b6)>P`W~)@H_*%8-$(X~bd@LR4RBfX5gK5>Fmz;{0-T)RcfI-Sa^f93*OB zfHnTva8Y6IGU!Y0XZvzZ^^Rl&lbV|Nvi@S*3@u@IYMV3|-=sr86I}`UXf!%vi&Zw_ zA3edws^ob;4kfmN<9)dN&$KOmk%RYMMvu$7qU}-viXLoV8cfaGV(p!b7NkFqJP64( znGRifl=@za8XG`F1CeIPNcAi+^v2c4u&%isqO3O4k^0$0Gqn_LJUU&sRu`GL*_KH5 z!i-MmR?=j?;}F0dBv^gz5=ydnGFeENPUZ^wed@dQ+8Lz*H)OH)^ zt+QVesw_C*`Wf6&1P`w^N@?C<7Ruk_~T7F*bQflC|0@equ#pkcYh=*rDF& z^r4jV6d5ahI3FT=n@Ul0!?JaX8>k>5r6m#~Pn-G-P8oGIeTb(1SB$2ID8)1!DZQuo z56(83s(GYz8fdny=AlxpHxSbIOg`c*nP$X=F*cLD6WN=$^uuWd{&hmqr2oJZUDnH( zpPw&z;Aa1sFZ#U{Uv0ee@qWlhqtJ~yAXa+n=D$K9MsWr!$)_z0C2CsyN_z+46OGml zc7snUhYk@MF=<~etfZt5)nHYfGv4oQe_Wdd?kDh?kBy3aJ9l0f`~0}?6(_8 z#*P;$FTs=RMB%uS)zM|kifI2u(7zi+!|aHeF~X{pkEh?X(6WAA=N`QLI{8TX%;59| zIo4ioG1Zb@Z_|}-VaI`jsCphtm|QJjwbW*QCb#yiDe50z*d+zHF81k@w`cOm!MqEM zy`C_$MMli_0X5E;_3ba)r2X5XcO1sSF5nzPq$IA-Q~Q0!{P7<`k8SAfSEKh@4bhAj zaCl4_TzFrSc#{i8W)G|3B&|_Wi*3GWRG-;VZV$*C4b^%XheR8g8;`iLvvDP(lydr3 zSE8NjdKI@*CM|1y&3ZK~PE_32|JutIHaEfa?aI*Zt_gG<`1pFbivt>w;;kOOs2 zsV!DACWYAvqqhDd9n$bBI3UBDiTZHYKZZ$Q;6^1{EL<+MUs>0m6=K4f|^dGmS4;ni8-AbsDlpftJB zOsYn>8!(jh0aZ*}f|J}71wtfHlu8u9n{y$E>+)}l^lEP>8W?@ZtZ-6*GDcsLIa7fA z-x8=OC+EUE`%_}Z#n$<7`c4H>Hr^wLS43p^tuWsq$Jao-!;J$@phb&JRb~$4S)Xgo zs~uN)!!euYj4x(y*XP`x;7u-_$0K}avJ=%kCvFJ%sejc`(2!+nYU-CV#+#F~^{qKQ zFG{6WIL>?X(|5f`FxP)=Ijci-=byO*pk_ZF8xKo_g8b;}+2ZA;{AA)gZa#J7wR zxHLUfCPakMi6J#q(?Y0y#fcm*gW>(>jjz#U1V59|gfZEG*=Uf4R{U|Gv-$1yj$rEE zOqA~XTUpojvTcdBAUX0-n;Gmxnnz%|P*GVV7&Pd`9SHY%j|rKRvH`b(^=?gTw9+1etz!zW53t7B&Z8F?vs%D5G+Cm=~+hO5p|%P+*s6c zX14;nM@eR$pSQF9$;jD(C!VV!V3gaTJO}1)ekx#AI^`HEPLE>gcb5IX4GXEg-z7R{ zD;;+25$w|)Zg=UFFw_Ec)a4h}490$XeB~KWYk%I&gN06U6RZH}q4ZPw!&uLvB+e&B z=lAGl|NEx!|9Ab5_y3&#vGM-D&wuCP`CtG0pW=UT|Cj$6_&E}<_t~e=&0+q&q&E4CjbD$+s{#XYI{Oj556`^L2WPMt0xK83d=gfnj7i((0PBP< zs7=BfN2%CM`CC9qeoBak=a&FB=ZB1{UR$;?u`d>5I{!3a1fXGH@ z$M~mcc3XX!O1mqgv4`#rda7V2kmHZzxEL3|%N!fYv|Q$5IjI}CS2Zm(C3PUY7@Hw3 z8xT><6=j3N?Br?2Mw4Fid7V5c`2F%6-^Y|xODX*HJgB+)XJs&Lo9&h4+`2z(shQk; zDAmQy6Bw~-_P{2}hy>UHW}|j9YBzAj_Jx-a$UMl(PM! zT_2`S-+r9SdQCAqSlr!R$_}c%0b5yW26Ee^Z5`r^SqLSx#Ud&g9y_?fpmZTw8Q!$) ziINbmIL$XV)X_?CqLeyr5(Ok#BojhvK;9|j?>W=wWz+;XJr4}D`__A2nP8B`+~8Cb zgZE9sA_(n#dofv=F>mL=Zv0TW%pKlyL1LQgiv6O3s-uK0QZkrpDcWrze#F<*K@i<1 z#r$~JIMGhzF+8{`H-tI*Qgh-@J$9eJovAS}dw8nw=^6!X%4yOek0|aHZH0TcDPWm` z5V^>PFD@aDOXCMp0t%wt{pmg&Wd>`M_-8yMTRjc@(JZ3erXO|a+uNH_7_5mUZTe9= z%kGRWz0m3)134`m)0-gGpk8bBn|nPAnAZWe^)EboS1&6T9Ca4kf7r{sV2~}!MED0B zW$Ot$Lg|^)R@g=IB`+?ymRV~l3;Q09+-}hmi~FT#EZgxrfREy9R2_adn!U60f8VAU zb)0LQ?4_7=A}T{(Xe>QZWM`6o+jGK)IbfrPQlC|AbaVr?fw&*fGPLOv^h(LeW*wC; zuHL54S&}im7MY2FT4TrR_$8;Bn&j}O*A6cyMkU1^ITvCEY619U2Ye8etT;5V_bHlY z@6uWp9!>?$xmw8`B{YZ{Zg#Q1tws;0*A&b>$H3%LKM>dJhU|eD2DiwYIx|*&!T4nn z{3WhC8N}52 zoapjkxu;f2o&wcyanp)0_9vL=JHZoz>SDx$V<;eqp?8cePj)S348})Wi-o zx(MvCYml1F$jN3alit@MgG=)M*o3@KaKK^e{VXn<(@*0&05>-`Mpi&&?iR&-x9Qh? z1swoP6{#-7BSGdPnroVbT^&=)isQ(*4-T8mD$$3yiz{t7sWcogc&G9uWB+qIfwGz0 zDa|u22Smxb_>)J98bAt$aNWLkRs%b{f?i8M3v0HKPo~m?D>zG)=|s|qO6`1&>a1T2 zkDrh;rqM(?hzp>tZacU+m0PueW)QjqIOckhkYlU^Om#Txt#0$ir6q>lk8rQHT?sJN zVo(w;%0)gVCT}$n5DSyZjzz&bJ0_ZXd3FX^8txM1G`=Pwo8@1ARQb>pyZG zQDEq0^#^QPbX;Vt?5CU?MVNPcd?U;6DFq{|ld}NaD3d??0L>5*?etX8FQ;GCC?YI| zI3H_goJWlua^0vO7vp7`@xAj$i4X$Z#%iR!^LIU67)r58<#nQ9o>jsE7_AQude8aV zoNO88-|L2s-O6lmf(sQM4u2gA} zdyGw0*^W&$83`df8C|wQ3l%QqQXE{^M8XoMHFFek}oW@TqcvZ3{?%xI3TwQdj?up)e znpJw9>^-8!U#*hVHu`CEPLJ4xuDy6%oVh+bvn2Edc;oz2JiXeW%oCakZrLXm5Fu_O z;yn%?q)|1bB6cqMZ&y*!D7pS%%bBKd$pxIja%3r4YBD(V3_{_If=Mo9_Zdn!aJ8)BV|OtH4E2K{Hin()yuNGyzTzBwkuF6Z%-K z%M{x5Rg_r^TaZM2*3R`C6&pWRHmI+VH;lzbKB|N1K2>3p!&b{Kk}-FuQQXzjHHuoQ z^K!K?Wujl%Z1hZ=!=i_$BsH`?68VCAG7nDc@tvq z-7rad89c8y89!}lEtyE+-(TJNaxH!tCFyM%@UBO$6xW|m0S2_r7E(aZ`{4a%8TX$_ z8OO3_5Imf|c#XPJSMTJsVbten+Hyp+Y-z`SO@hSLpzS;}fWNPUCs9+=4)I)B?cWr)?~`g)t4ERh-W%-Q%W zUAkR6V)f0AFabN$0G1?781el42iHiTN*cupVjYg0q%2cL0D-&Oiu^-$WVIF^ciQaN zeG%Ll(N46KKnn!I5}+2so9FXB+<(coRt*7c=QF-KG?Bd@Nd)YZ$ytLQORwQ)7r{!$ zeM6kkI-g&4f3%Y2eZP+hNK-oA8I5m)54_v0J2@esBv*Xik&g`Qm57BoKbJ@37~mge z#V}i+uPG&WPu!ErTAh#dGn=GOPK;DOOk>3qn>1nTdJ<52Hm@&95tsC6A67TTE{K*p5sV!e# z>Y7u*af_Z5P_k2yH0c_|l^DT6PM-@>hSRdnQ?(jLNp4TM-EH}#Q$nr-$NOVC#gySQ zxtk&qShXT;;?I3G2A}j=Z9sCGtMlSg^c8Q4OR2pUuhNg{e}Zmd3s}0~e(pQ()_yA` zHl<3BRYu8qxSGND-9P^>RZo21@M&G2Uty!M>`=$6PEH61lRpIFXIfcD$VA;a4U1~7 z@~1saO{Y1f{xGDYi~*A9V^u4z_Jw8D6T8~J_2WAmMM&Dn_D6b%#zbVmkkl@s4p5YT zun#azyqd=P6X z_XIlm-2aS?mt4p`B>-LCAA?y$LBZ1Z82F8SwHPCh3EO=r%DZ5HSz5a_KIOSH{m>zc zEn?^qs`P2jTEKmRs9>xo4+gJ98ua~k@^@3fSmFL`a>LFnk;zDHgHQwl*(+7Nn>UmN z`?p(Fji5_EicT|IY2eM@-(#uS)BQ=NvoU=kN5HRSUnMl2#~|JN4Ld@nEXW-_cpG@L zTDPd9S9L4*KLb-G=wSzewm>q4U8xJ{*GbhaNtKy}^@87azJCbAJyI}4qRax_;YGJL zc^U_WZ!-%pqp3?0mTy6fQSnF`zn#sbQcFLL7I%7`JNtDD$Bgx*BJG-0WJhi2n=E zi!V;hSb$Vg1z~_AKcld9r-}G-=)SsiMb1<2I1;}M&ow+K6^Rn&$&#{rMHT0Dy}?Ff zISwDVUam>>K<^@B{PJ@~)YT^sXRqZrdc<_mf$lLa5k!zyaFN9vZ_ZQzIA*yH*A>C` z#2PJ62FJI~6V7@uK(w?+X7#Y%hLGIHE32c{s4822i09{m8$V14>-=izPzh31jxU!7 zIKf}Y`qO83tO{mA|Ku=jZG`+-Y!Z$`J92fS_U7e!CEU@(Hvpt*+7#pq&q=0`wDv9~#k-9gQ@h?EW>l?;9W} zh&FkV$?i0MnX4WxQnIKIg3W-((a~s{D{!5|r7_{F8)l&oOr5IG*vB{dxyb!tRK$R) zywo3vdhcK+o{D7f@Z^b?lLL#qflSPZE3sB!@e+&|&;6b(3h6PLy~8X3>L~ z0xAz|$iGZb#b)52Oi``>u=^-+B_$hYmox&BW7 zz#A&wS#|@N2RAvW^9vc-g#SVUsvaI!MiBy7Kyr%plF(nQq41{kfWI8;yc@wG-4UMqNwYUXI)v>TQXCUHa^!g8FDP}bj20UcgTx|o@;F}!U%5DtfLKe5 z0vSF+PRyzbsa~92Mot2&nPpSnU%u~r<@cux;p4n7pZrF87Ce2bazO@f+CfX&)z5!7 zK0bnv1&_P(btne6Iq*XEUpGVhh%Vcww$WVq6tv=McOntfLShGzaP=~9q#U>OxS%^n z?D^8Gdwcb73_=bVWHRS%()pY6ZV-T*{EyT2b=FOJ+*)ldzmLrM_wz|s3|V9- zmCEA$+`fxFfcX{S~t5hPp03bTqy|o>(u5wJ5m(m)X_S!R{L7}sWTb_uaY<`X0Q8w8lyQZ&))^y z8%eATGpocXK~h&gN??&31s0Z6f+uwrJ!aJ1cBP3w`CGr_rt}wh8xqqdbe5InQkOIJBijQCqv-Y6sMhYjm zlp&;`?UXRC(3&kA8Rd|{q&EsEK z(P;8w{k&Sf(~6mAN?gGoDiO=IxZ|`9SHdO(FxwzUb{S(aNsw?&wk4hmMbugiO}c*Q zT3J9tp3QZO8(b;M{O8b|@?Q*qqP2!ekC!F~JIq$^_PwE;X&J;_0xXic960b$!-Qc@ zbYPlU!GaW6O2MG+0O3*ceXbG_M%n7w3mQgDcO3-R-Sng=3E6VplG+A!@8(cbDT^^% zX(9Vzuee&Fw6?I~nxqnzAn%f%}O$!#n?X8@B_+X z3LXrNqCl6bWmd5 z=Ru-V0l!C(eo}?yN+kNBxK04rh_&q}RY9{9Gt}p8etb_G6{!1IH zi`7(H0x{G2Ehn8fEau8y+2Jw2_@dWRL>10f@xDog>rx8XVQHh_H^0m?y7BfU^6?-e zQ2bm06#>B#v2y&6Omq0U>8Unxlg~d5)_9H|HHc|h$pR7`m6j(5SU1Qk)KZ~On_W~d z$Hyb5%JN{={H(ebl}zQk49f^3#ut&`mTX6zaGd+IdymcJWLM{qKF6SAi8a1rV`HtQ z`Mx84%sOg0=Np-c-p1h78`Pc-ah}mrtI1ouHSbqP6G{1mhChvMLxd5z%plu9FwRzL zLf(|Q)McWnHmz-Uuzc04KWRrHjAH$6|CHid$lG@u?~9T|BTdP>Jw|Yyx_r#Uq)1f! z7=1?Y0r|bj3#MrMzaO;(1}~qIcXY=ytqMmi4b44L7_~RnO!W_m82%N0(lNMzM-SYS zL1+0CKY^-F<2N5iwcQIS<%YlF&TNHNHIG8cVI-6#hIh`%#PH)o!Fg*+mgd-2-C7tu z7;mYs1K#nQo0hyT#UV>6NE%-E1bUy@_ij|E)`gNdj33A~w%>W4-Vk0lUXwR(15fjc zb4vei_?Ro#Q270gtCEZ4$nlz4__(R0Cl%0&cZLtSBjT8;D@ScpzCK$Z$CJi4G>M1> zLb{OrL(!$w@!6f;R?*n^GIGV}f1V5gqrJbIOFL-|N0-pF1m&^TC$1u6H^mjUL0gYG zLxKwoWf33)W47=n>k4MuA|ZirYH_f0`xX02c2GI9Z6LA{y_PiUq27sM@SmBAgv${ye3s_eD78MJ=Al(k-Xgb0hZbnMyyTf_@(K5UQRWYJgX%3gf5S5tG z?1P1MGuoJTMkWc0+Q3fQ!FgK=EK#wneM?oewH}h6y4`<~3TyiBf z$gCNZv2%o7)p5{~Eu8w}Vvsg@z05-ek~ufe&fP7zZ0~VD`+bSEabM9y^6nN(m2oe^ zuTdZ^F@fGccFq)l122y7J;^#0{gp|O1`&|+@8vD1fbRc@sl;Nej%aZDCbed)VV zg6+#y>Di~w_~|wshOiDy9MgT&zO5mMG8=R&lX53lFmu2ET5xcpiS8=PI=Rys$>zXr=OO^tCr=}WUEx}=QSkJMgZ?uo)qs$q41a(nbbzSTfI;H(CnSx7&J(p!uP1&|HiU|U%t56 z+tXXnW&|tsoD|v#9OsuUzvbMuZ^^hVSf}$RsYlMT;P^+Y)pU15_ews4rGE1~ZJ`E; z`p}l3X*wG|D{MD1eXU^-wKjeu&t>&veJKn~M{5sCL)tVNoZ8~@ zLI1X2kn&i2$3qxLTuu7pM`F2o*!<=s@ZJKs=bmm{M?#yUwR0dCbLVN7voe%)5>=FM zm8?@+Gpsg~<@gx}Zzv5rl|z+Yb;=)HvD2h;#R(A_St&;F9U&4HdtHI7_1qwe$HOqWC{;cK)sdXTbCHY;i^*Kbu*>8wp<6nDGsF9q#uMD z&TWG}VW$Ze16sQ=A@MY(wuZ!ih$k{Y~wgGC3z{^xA52df16>xafR% z-p!ETNpKZ&T;=fe?V3t1tka7-l` zmEf}3wSnK~KQeAWr_1@B0NzGtH#)_Yzb5FXBs8XC9VKJEh-RST*G9EY;;T`apTmk2 z*P)pxXpplNy<|zSPt})S_r&6Vr}^^59T{E?qgvfGNR z+q6v`di@QN(|E{_EsS2Dj zz5ki`{L8?dn_0J~@FwIoD7ov|KHO8J4NJVI2G4~HW*7+LI~37d=XCbg5CD^d_q{w_ z`0b|MZL4Q{=itATQqr5u5p^!<_}2c3zJsOSX7!%T=kY_QqPa5%u2BEzxWIkrZrI+Q zj`MQQ|6ZsOgu(ZiuswT|XCo=sQn2>%RCj#GRSs zI{HrcmogGlwdLP^7iOKEzPoVRU&4^=IBi{QsaBfrM+Dw1CMq-QNtyB=Rz$3Z-?R5! z`tsKoWHYMA>J9_F(u98U$&lY1t6aSpYzott>6URN|4fz94<(ai+^@i!&EUf)xMi zZ__dE*j-o@d4zJ)7RtGgDt%4AicP&Zqv#5t?IAKTzbqH-2zo0v1R1n8xMhA&x9Lfn z2*DjM!b9T*K}^vW{B5F$`e{`kGJs**#8dP55e?tOXd}##_|ZlR^dc~O>}fFyoYI^X z)we1SDpn2Ba?F3b4WH=Dg_J|pv~9o|{W9HX7>aJ^wPX>P{cuRcVbQyfD1Q9VF$V;t zUc_?Wy2sJ1y(%Q`f#%Vhf?mv-RhB?c6xB5S0P!@oUQUzk) z#R&({GN*l|$&m2nD2bQ7_4Z?Np%fMB)woH?4+RP{etB?oI3POFQImZ}=q>q~SGN~y zfOS-Cwz_Csd65O#)-j{g%RrS*2Cf8bl(33YYJaZ}W^`yz+hZ=e0}NydKwq5s9JF|! zwbs`13aP8mf=TOlEb{fhdQWA%r95jX4-(vBX7znFRv^CHMqOgi=KOv1HAl)hr~V(O zgW52VNSgUy zulgVV|GD{Z9PIxe=Kpj5umAlI@jrC6|L6Z76AhPwKHg?}e2fJJjW6nZ9;eKq-l)T) zDPXuCvr-$UU&zPU|LyQ8vFTUQqY<}D%#$*$aStAB^ zTqyz_4aw;S&$~h_@YCK11V3*cmT?kAf$2+&qH1A~;Kb+;5efpxZ%<=#hVapQZaqD% z-bJxZAB0VOAM0a!Z;vBt$L^2due}*Eq7GM~W?=xfdSnBKmh@C{#O=C}CY`#-Ib#f| zfcN!c{6c^Dpjl3&t>+wsG2}nHv@*Poey+BjI5~l&g9_qdP)8zyu`nkTM2gVM1UQ&@ z0<)?ec%T+UBDA;+qg`V_qA7Ooppz`KyHj>Mco$)TY!$|P>n%@kIngoL-tp#9RyQee zP{BrgaNzm7WIcjHzlxiD{F@fYaq z7SQ|za*v2YsN5Fx&>TKQku`qaYGTCOSymNpwVPVavfr}^pV=_NwnJ^KMC{nu>6{-+#d z24}zo>Ii_-1Q!^K^k227IN(I*shis0|Gi={_DI+J^!h2g!xbq?JDB$Xj8hX_wZBCJR0KN?YQwcO`K^q- zR3`X741(^rx@9h&3JV1zJu*0LUF}@$U12W&)yuoi6bMi6Jkmb6^c=S3NA0SU$c9|c ziezqpUA|^VTOcXF6Gp4VhiN@Nwz1=I@VsBWyr|b^s^v18@11-Q(--kb$s5lW?aTrap}$c#8P|5!Y)h=ieOR62s*s z5?mck;0JG9Xx_v>1)FBm=0;~<@QpUcp+RV?g*biGXP9Wf?G`0^?&O3!E}C=aS^sps z{H(mq^4j{6yv^&MPGqJ5QysmyMp#+m8Z?$%&0%GaGX}s~b!H=MBsdhBe-$S;_ND-v zwhIvdzXw?WOgsb5&D9p1dh9wJ*?Jy82WhUcdXQLEg?lJjv>ZJ`JgyE$8HZu4dGaQl z8tPFrP`n6=E2%L06W)Pk<4mu(W1Fde9fy$;UdI=)ad-Y;$p&H$r!%TGRQ41=q$EMk zBuS@zJrxD8&58K)Kn-FdpT&qbyI*j5JFoZBW8?l&9O%uN1(*Vk*=pL^ZF> zFEk-Kz_&ofC;e}8G;ocJ42C9a43VQ835}uZOuC-2)R=uX2?B}KSrmEdt5uh6Amcr9cW@v_ z?vkp7qb0!P>Gj_U#;9tt%ATk(U%Ucy#FPUH-HPE^kDc)OCP{;+uG`gciwlKkx;qwZ zS-c-mSh9Z@Q5G*+Bf|whw0u$20fAjo9v-&H#Y|=sB@u-eGjjf$+sNmr%i4Cw;og(R zeb)Ck++WPg;vmGO>pNjqSP%0CLRedtU&_usuz;~6|FBNX$&AX(iKEyxCJAtEhsHV# z)>TFJcVBW^IL|jVUZz2cpkHk`ory`TAJ6|DpE+Ne+EU@#k*bPrdlcNmg&C_mLk00c zX{Lk7u+hf|u9VpR`}Wn;>G)yTeWhgzOrwqx3JO%0zZ}M{+PB~6-*^A4T&d2Xh7{`! zYHV~kbB~TitJV7>ndt+OIhqiPqtLkU!*}72&OvOJj5?6SD0?Fxbpwm?I$YIBv9h@D zM5QeNHF>yj>+!JAoG9e?(N^W> zR6~IE1!hb~8RJp|wx!deCoa}EqOVb-O!@Aq%7RB;5+HI$L@UG-FHiI$o?`Q`-^ICG z1K&JLHQj>VTE7gsF_A13dGqoxvNIZ0IB+9vW8Bt;EB!0&AUgXDOWnbZQ8f-5n@g~H zx9cxb<3;AhD|b>6hbh*?OC|T!h_q!2IR3H>t^%(3<{v>acGD@1D{homg%pom0iu%Vd z_N6o`H(}sMjJHtWinr6|rHiOgq{fo;&n7Uu*(V>uP{e%NmF$G8NMrs`eV)ze0W(WH zT6k1kcXJ7o9z&9U7VTqy?{Y1y;`n4JiwazwTOdc z)oA4#>yD`8rnhu*-%jWjVo zclD>g1F=GgN3AP&>ryq6vCaVrPs6A8!kF=OXh9|^b(0Hf`4=JAV=%uf-UJgjIR4Oc>>L97y|5daWIMUI5V?2f3pg12B3qa_%QuSXXuV4#NA_GXg?L zlM*ZrW>A|WfcWG}VzDWb%xGM@ibUVm(_=6J**PyNeQNw<3^bfVK?|6WJ{;aJyR35h zNJ}S2K=m^p-~dW(w(!FI)u{I!!!+(keiM>vk0&^yGm*5tG9h8SoT+HxkG4ZA??!(Q zY`?ot8j0c0W>~!1yJ33F7E&S4t{-aEr5ZQvnKMxM+aMnGFJOBJZ8zl~dJs1L@zv&+ zLg}iqBafkIv$NlANK#*C#b^f810H}I&i_D&VTvPI>uzIpygRBN?|*FVi3ZmGz`d?r zY?Y1}#CzZ$o9Zvdm630o0E9Oj35iDE3OnG6xs+!dsUEN5=o7#FgtAwDN9hl;0pgm7 zKhJ2CISpF6;n`HgLrg^DCm*kee9ZU98D1ZE=+BZ0MlZJe@D|rCKRRr)JFAGfs0hQR9x*jqNuh$VpzsBO?`T5z zF@<9qLXV8?_NS39A`iJLnQcy9sLT`A$^`nXjp{9OVCZqEAg4l~Y z6&gkxZvS;ff|ayaKHGknDI%Wu%{e$figg|?hdCSe@(WeXv_)zwTLT5IUVcpM4(G}v zR#@vNvKx+5TA^eZM#&)ph9??ka-g~UHSFdfF%l!UB{6t}WR;ywPR-SxH~&NzNSwK= z+RSzE>dA^CA4%tHp8AJzbr&6~B_Nx!A@|rG!(69s*x$?_?@#8*i@G6?#r~!T{?$LS zo?;th3JLx8aULAE*dM-QJG=##`&gOKZfY^;%#lf_Jg&=AIYZY5FF5z>+%j>q;XR% zpx{%G;BC*#C$h8*khm!|r3g`GY{x*YcCt5qk6S z_m3BMUEs9w*T+A(cX=swg!+9$ZW_>mA6YPopOHA28?`P^y)usy#t4bKkV88=uQz@j zU`smi1PbR*Na$r<0kHJaOxHYv$PP#JxjMM{ym3P*!E^1`wK5@$f~kE8jwnSqk*1-o zSd0vJjODlD%HNwqb5JTj0`}@w`j*~}C{C}&$i_6JKJMTDviA8ePM`*|JsE6=;EPe{)sDX}nCkxjp6ddZw_EocR-D(L{|ppk zmT?g1wV`qBx=!)Id%PZ4K?Z${GV!h1J%aZRt2M`Z1vt6gQgeFVK~&O>z(l7Wuk9hq z)B2D3*>NwjNz?6N8jxVl9k)QrC~61+T3-okq5RKXq#fHXmMl|K4T*+15v3 z!XCI2YN`K{+TCyOAc_puvnf4DFkA0$47VHWt)G|+T^Y+^Y*dNg z2|_72bwySm;9pSE;AR_JC&*T`2oZt4fWN;C$8h()Y?F?~5PzUJ>8sOVYO?EmXO|3mx-jrRZYpWgwAhIf9WS2O%J*53DfJ!`%}hkF1S zG5ZL1c6w!yGF@>z6bZSAL0mze&S^=;jzs|!mkVEFNJwqR5?*$oLFm3~K$xcZ$ypvi zM1(pp3SRaOG}`uFx%aoRIr_TbHbb_2V$0Qr1I)W+6c+sWrh9R7b`vo3I=T*3)(jbs zd~baE03au)7Y)ej@-ZU!G(q@lwVI)2I8nwrdy$d$-|Zck?=8PRHsq1sSg!B*;Pu}% zpl$gtM2YatT0JE?M#kpMoZaG9)-`^{_Q-i#^H~v z@upR^LsK3IMgp}dTckgw705?otB8?H!l9^`U|%~q^3ODJT=fZzaRy4<#TphL;`fOy z7KH&A%ANP4WAkYi&i!LEXw%tC7YHaR9;0p%x84hyMGn)%o0WzYtvfm3wwQbni4@{D*uck?+`B_%!*S z(XR5}WY+F^(0Z&f*lI52?o1mfqQrbCUAhdlz%j~EkIHfSX{KsWUNTv)zT3XQoSPhT z{He2@UKf?qtNt5x;@#$X37&C z77Ll{?;^!kar`WD$1mQLCqWRVOGAGb-^xR-_be{|04m)!GV}aq{Tq>p=Tnb=!;Nz= zMcpA$=m_Gjiv%lyo|kN^h}|$N6~MJ`A4lb znoAqL(JDu10lH$BLMBS4bs;?@BrWcr=dB9a4M1IfHrr@O((Xj*u!;MJf+s$+T_@}$ z+|8tPNoth?URNOvLmE{DwYvOJM3qMtU76u8p*GYa2m`(ZAr?GlMi)4JxPq4avk{@O zWiLkxGYq1JL?lrB4ID)}k5g@@m~QKf2_Kmw%M1fX1U0iRMPv%dV=d%DmoF(05iLo7 zZ^LOUG7NL4uijQ<`N^l;349%uGdcQ4W=rFBR#w(T>_n7Gk$i&|+9(FGr>JfhWsyLR z+8}U3L;^=flB>&svB#jNu92z!61mmF?A4`?V(!D;|2OvTDk`pUZxehKMd9vF;TGH_ zP*`x+5ZqmYd*K9k4Gw`2+=IIX55e6nxa*wx);crO-P5aYy1#X%=iKc5u6?nu-`}&J z|GQ}?@P@LGKp!FmYa;M~y$L~Jw+UKhz4f&j$(VN8MhT*X{FRYz>Oyr({jm347R!#e zG{DeEj!40)gHMr>J}cjdGvjGG^$?*;@8mjuib|9t%35)|)62yIOcE1$$I!p{Bo1TK zp7;fQuP^h&qAjM{%~&Fc3OUgms((5(>?hW79eqHXVCdd~_vO2I28mpmiA-d=9t!9B z92aGIPZiGrp-FO0fNVR~0$Kv^8hy(Vi0twscZiFf%Vr&rF!wDo`56Q0mq?(IC~UxK zGZ7O@M-EO&3TP%Qu;1}n$bGu+gHCQJWFc#zYxW{4+c?aVyhtXn0=;b>> z1fPcpUOyY)`|VJJhwb!lndt;z7`dkSC$UGxj#!oHNi#e) zHT~U1zs^tLb!vs`!Zg)t%1kxc$|P@DatqMRo=zi4QJ>}@vcyaZ?Kf4+YiWK1@y_&?QF!GpeNmY20eOCr3U1$z1+9`mgc1xCa=f-o7m-gCdmGwHWN##o`#3ss z8o?ad-fjX{33qco$ntURC~EP<%W3FSf(hs}5M{4Zw!L@1`+u-)XI68}ssw+3?>25V z{WEK!Hp^ggnmbe%H+p^IT*fOPLxZz4g7`&BdTghPg>eEB%UusFCWzHpCrG1|q&BL1kP%8q{&J zJ{fMc(4>wVJz4rAeu)u>zUJECv;DnFR0pls_0{JT$*R`yY|5=FNk1Q6tJUt)s|O}W zv3}QWO-zp3yq6-)AJBzf$z{)Axq9f-V?beWY3Jngo=^6}e*5`*OC{5Ufqfg(A?DkP zUq?m<#(zCCo4>lgexPs*|LX5SpV4h_cexvX-tV&(3a9?C@1J$`XAfy70GgbYtvs;Hg``fDh+OLU}z=uzc{)pSc4JD*!?I~KvUfbv*k?`UHmSle| z%1SmxfH)~N{-F+bnO*QOd_qnd<9EATp1&^o?~v7$00;eV&ylI`aajQ;|7FkX;f5FP*|H!x(?D zaSP}D?muSR?#N3t`-^!f9vaf}nl183N?|z3&VPOru@Hep=Vk_YDf_na#OoN)L550z z3$dvOEd^4*1T=iH3Zojuj3*cX0r0F#h_N#zP?JkcaLiTkRj)SGQgiWczd-Z((u@y^Hm-v!juv%SDkwueW% zhzKQY0VsMder1jKRh3Sg?%~CqUcuUzBoX->jNQ0F4Avt{l+$3Ca>X-SdY}^S*@HqM zo8vR1*s7Go94tY{XpFV_SM8}`l%crm`+>)tN=@wk=F) zc_q*G_L<;=a1yiF1Hn zqBU6yJtqLDz_!~zKO>y3&TvDL?7Mi0cYL=0U6}a$RJ3Wf_cqNa|AwbDj4RhC!$&fK z8X8Ff{{Sq8VfmMtje{y|8KsG(X)~mPu`JNw)Q1$GN}<8swZBVvzubl%gn#>(B_Z-H z4^ghI6nd-@W=I_BeB#S=_FV}C2Zx;b{5rLij0HGyZ{(rF6*peOg(tg^QrB=;gxQW) z6)WQ;(?===nj0o%6f5&KHCq6Rc#my))6L%)s^AnT! zJRAIO4-8S)?n+e5$NgL!a%__zMh;dv^&|Ih%qL>QCQcFWo9qGf)s(l}+^q(48kYTy=n@1W)fMEOHjd zjEl}Fd2GkrGU=<}zW?3RX-96C(AieS_}Z8vDKD2#yTZ`JW5b3k)(#ODH^Z-8d3)8WjLaoSO(^qXEh#t<}P1d>n=^g`&^q zwRs)&omG3?uh?GnTv?t8lm9Isudn~4B_J64$IVXYy9DnAUd5GA)iPFAYVUZ7+h6BD zh5=@^eiwtEZ&phQj}-#%weK1-d7+>Rx(8VRcXT&A)|C9^n^|wNqQ_&1^JBf$5vBi| z_RIF&;Q0ZuJ7xBxt#)>Xz1A!gDTpXPF31+=yA^IlxiOB3y7*Yn)}dqtND+v13)xVQNHLnv+U30G?nXEA0sWhxdqp&O5qF1D^ zkAHq&)FK`qT|`p_9N9O-E1`X(XBLvctBnhlCraFaiveJPG=T%KKM0%>2I5*lTKO$h zPH=z56jyK?Ebvt{r}K0j|ETz1#O@|{zskby{=6aT%!IzQ0d7oIWf59lm;k?&u<;7b%bpj|=Np*IGi z=F=i&s_s=`aZv`r!?HQPr-zR2fXc>9XvmE@-s3^Z^Nkr1%){s6IvRsVM0xQ05%zfD zBO1ajkrB~PC^z`i?mw{xR1S#x%f9eOwDcV<3%kA91H3$BBH?f;F0}zYfPB@#OOYzY zQ9!E2;-Tud0!`+aiz#v+AhJ*p?anTEB_AmI6VnA8@k7xM%ugy{U2vE$=k-}2uZHBA zc?u5Z2}Pw6grIRrK^Gu%m435o#YJd5Ehxm>Qw*pwl(2O}03z+?$kb9k?*TjuB3W)b z9Ok=?go?UuC_V=-4=5+>x{)c`XvyTI^po3qd5s2j03-I=vI!=VD}YZMD7V3EzS|6y zhX6-EsHS1G+lH0gc-um+o0wDuyy1R?I+EzZ++jnQL6Tl4toM(2w(Cgs9; z`<5U$&jZ5@H+oWOUUJNTzcYg#QXHlMRj-iNO5t;xI zlU-;AsDG$V1fL(sUTN|trch}6=zCd=_lg6fDgp!LAJbuCxX7hnX%o8Zw0Eouih8Z! z7Fz;#W2oRjKHC!eLRsf+(ooWF8fz3j_iLHbjrcR5sZE7*evmDAJ-3hYq|j+>nnxUq z4_h0#nkBJ zox{s}PtK!1B}#c!NNN;dqzr@S6Hs-G@F1T&<>9X%tlbP9^J~-926MoSD5dfX{c6tl zsi6Geu6Cp@ul2zz&GSssnq>e+4>pv=k7<@@r7i&j@~UZi%fMo3q+ei=cpE!QwAy>1 zP2Jf09#vuxTYQKZ_h4RFL^33d&kyLv02G1I$I(+O!4vA;&m%uy`k#BcmI>cKq6OTE zdXX@cwaZ*^rJ&Raz-a0zs z@{Gt!e%GvF;{zvFU;lVgt^A%gjA}tfP6Cr{stJ@_rhD+>a$~nAOdR-7fH(ilRr0+)#2pJaC)e{f^W0&4NzD0 z5Bz$u9Y3ISge#P6jE046y&G2k7KlQ&3L9nQ-$;5x>o8E4T2BTv1<^SB>~K4)*2?N) zkTP{~k9)5nTl9`_+k~V@)hSY(12|pFe!d%UJ|vi76&MKx$&v0{1CV9B)==f~CnbV;81=v}gvNeM z63y{2IOOzH!krTJn*l~b&+|~LL2nef7KeqOEKX`7*~4~>@Wg*u$#Vcix>V6}#-PjZ z&WsHGIoSoy%PjSuZiDeJZS-;FvtUxSFSubnHc_%Ts~f)U_6Bb3#Y1sgRG&@(TWs5> za0{y%`H@?sc5RFv3RAi|K<4wOled~-wxI}wo+>zPjCO}r@T*v_r7dt;%VMCh) zHbVSxwMmlENWG0N?NL|whbMK#)Z1qpM9#4nFJYt9*L*bH=+Kf(*)YG0PGAW_0)V)< zuwe%pm`Q}FxoNuFCTC_v1u`*HSysgYu`nkT$$s$enQ{PgBrpmh0TITLF2xbG;U%>n z*+`QbO@4e*hfKO#1awd5&$id~MpV}Rb|O1>5i?#92cUDw^ht0}RKIExPS8yzEj}<&g;~3)m4Z-m!%zTe z^TqZfZ`LGZSX$3IW(+^Jgg|(95V0i|-i!k{-&_D?w_Fcp{roGOY93OCLqhs8q@pA8 zJ%u!5-JydG(l1Opx~UCmLfIllX5ZbRM8GbBzTwzI2-k`@G4s4C6H6|C4??VhcA%ep ztO-qw5mrg*6nPeeR0c=d)x;_xcRa$>_1?os+EFKKI-JLV? zF~Jdaq<_~tCe6w*J1G-hfzDy^Lqa$6ghbamBpZjHe9gJ?PM^Jt*`PJ+WbxNXo)>=ihuZ^ zBkX%B{SYX6CW6V6zdKkrRy?2Smi~7&fb&-rE46vRNBF%-!SpxM2&g0l{TKc3R^8wY zij7%}uL0&16s>_m9e2-epEpbeBhDp`Z8%)9b<$Na*i!b_mZ_p z>=6zR8)dXT9rNLhl>YFPN|S@$@Euy#jLR+?ML_As{Tupa75RUmt8*h|mlaGV#RIZ` z7d8I>*8i{&{6F&_3zPqZ{D+s5>%Z=Q@bhy2yZ`a8lK-F({xknkuqTrv9_l(eJ>E=V$Z#iw|E?m<~&;TYvCyzXkeh8T?TWRgcQu-3s~% zoaAx^?IDbzXOMF6ZxCBLLeF_nuq3>YUh#l3@z`k?1G4muYVsqcGk~DpLO85o99__S z5APmI3tF20dc1szIvrXc!2OF4N?&;HK01_Cf->$y(aWau0<=B4MN+DHYM*KgD`twp z9nE+i zbxnDWc~02yH=nhMJOA^;Z+fnK#lUCqwUE~liVL~^VR)Uwn|=!U@9VdxZ@n*aco&&~&LZXk{C`3T;4SswZA- zwi{O)5gT_KO6M{Ze<*`=7GYea{+JEo(Po4(DWl}8%u5XgMj$b8*Y@PAr6Yo~50l67 zduOC@tUn*{B2nn!bNS;qryM}vs%du9@oUCuo`k%@z}n(y2*&VB6KSl0RVYv4srbl& zj@f4Y>rbBZ0M`qLb5KIfvP?eE1ydZe(AP$uykFE*M~2lf9?Nu0tYwfP4qf?BB}A!a zjE4E+d4dKPZz+oujWXxNk(1O?FDl`b06$3A4KW4UFVZ#2Ho>qnf76>Cf7qNsqLrAD#a->rE2tvXBPw5s7Gn#s?ZyD@$*p z3y}%&H~NU+MZZ*JpJ_}zkDlhNW(?!S(LX^u7un`oPyUKL^N2P=t8HE}?HO3MZ`qAz zbEb^%P60{@vq>q9ogxZp>0%Kb7uRD{5LgV^G_9LK(+m;>BQO%qmBnP+_$(py9|oAm zv(4k;Dz&lZ7Cp8+u=i(v?8ZZ7Hw5WlxQV{QT}6{6`qbV)AUZkz!Slil1>Oh(3ayz3 zTI~e+TQc%=>$h3@Dy|){EPpf&?ctNm5J(0#LHP%Y-R40G?e!QtilD?VW8U@5#Bhc1 z60xJNnxBGcuAN0{{?hT54!AM`W%jP2g%EONVcjCHsV5U-3=i*fuu+e(7-51_3lEuN zw_+-k3DB#~5;%5!50n(e@i_>$M=_#_;`_pO2pZ12M7u{=c|=zG3kdH;dNUA3qaF2= zt02m?Dw5OmzguMMm1|AAK{ApgkKBJS*ZfV4fP)@QUbrgre##;3hqpA*3TqxQkQWMH zn8XiWaFIZKW8v5kw$|UFU}{?g50M~=0sY1pFcQAG;HSV4P4EB6 zgig72+m(jX2h(jx@r}?KygYm;i#K}xTNK=eQ1i(j3x?Ab8woXj;~m==z{LPNK*Yb5 z7ozdOt^Z&g*}CI{a)oo9Op^fn{*sda#cOgc+O=)kWJ!N|)ILed-1N z^6kuLW}v_35=mA+0VP8lF77TCCto360vSFrt?w@yN7WBSEbSYqOxxGE4+unL^W)>a zU%o4PZbYh+lx)5Oz-wBnhtu`GAdkj$a%422J{v$SrtwersDg>r6P==5)kpoe6W?(9 z@hxUnStsyR3lH9PpYEq^^?fHM+O-VrAvmyA)uzvJy3w&Rhx00K?)?CDIbw15AheMh z+bJ2H?pydRpD}*=9XAyVH^MOFPWv+V48Idd%>P38SidO&L6fweD0e8aG+aZ zXGy}BE_}zZ5BG8~_+CsC?_MvZI7w4;G*>7I9ski4g{xamMaNq7p=e}lHB2d5F%!O@ ziF)crO`_-(rq_W@j*eq{hx_N4g*UP!$|Ap*5QXus9fBwR{V0`yKuSxaTHWpYx3r?q zt-APlk)e#IxHmViG~@hGI!>@luzZ>lf+osr`BxieWtkFsI7G?9HCWk?L)=DR9ufQL zjy+EQ`x@!kKHSHHe5I#YdR~>s+4nCb;z6^9W8m!&WB=5`zpQ%8xmb>^GZt2=QtcuCa0qYe3Ceniw@qyoBA|M^)? zzYkn{po=t!bnt|+YzkqfuH+4DQF_1T~b=%VNw_{8u+{On#UpKkc5`1xk^DrEddsj;(;Pp_katV$}8 zQj5iu>O6@9j|(rwr&Hb!+pO1PhW2z+yj0pCQgltY_~ixE8sE~qT)f(bc_50)6a29O z`?Q^1tyScxOQvBA>A^LkU)nq`_O(?5JS&c_`OrGXhM-a96T=HPv3xEN0>;RgPB{pb zvmy{~qasdH;zh_%{>n%14u`rv#!tWR#G+`Q$T9Prz@WVV+rr~&>CH)Q%dEECZTkIS zWAgfj(6a)wO8E)==XUHo5QQgJkdIVP;omy^-_U<1|MC4_;D5dUI61gE`Tkq~@%-C= z|0?IdrvB4^4l(*V-a~R6DK~N9ZhCVkuHkeauDE5LpvQ9ySx)pt}ZT(Rastc zi(SsFRcLfsk_Ww(ED0#US7+Jyq@{&FB~MqD4}mJ#c;OZ+ZM829#{D($?Qr6DHJb3w zje9SX^&@A3T3Rc*pW?7|f9$4e@AYjza5C5Tv@wHN?AQ1O_Ywx00LMl*3kaSR z2mexj*YGl`U;2k?(k}0zZuG@6$N_JQ4?#s*KQlM&Ek?A?hHbbm5E z&ab^}^z3!fcz<2m97&VuLl&BMi7EL8Y4CDjYm3+VaotG{Lr42fmJL(E^;>+0n#HQ5nif&{UwwaU`Q;`X8BywR?eWYu!PDEsqUu( zxL!La#uHeOXJIGl=Bk_0X7LfNFQ56yRQH#%QQw|N!(Z{Vuqg+v)>+*5E75gA>=$lB zZAB9?iqNkc?TAqHLMCw2WGdSo=5G>QQTq;^Bc9t_nwU8;?gq~39o(qvn;WV_+gxMNi+8IeZ zwhXMt53~)^hv3!>;zaIf$wQ-h?Ll~v)?DJ8+>th1-$CY!kvmm%A&y!JJUAb?*u5Q@ z;vkW6==eZ|Bsq!#<3?l2__=Vegt$!t$S1TNg%2LX*40D-Yl(NC_0tF z=pnoz4nay0sW25wC5s;qo2<)H7ttPfg4QkmD1tr${1@U##XT?SSBpp1G29% zoNr1d$G?a#6(5O5i4m@2YCyHD3uLCLVW`SZ3Y7oTXFRJG!)iWspG6puqg@9E_GeW9$XsD%c=GFDOM1epvlxTyOx;&CBf& z+ZnRdqgq2Q8L^>Eauq*YkDh?`9D%CWWt3phB_GfjtuKHf{6lqK^#;;Zz{N<@f>IH# zOS6hn(d({2%OcY#p$+$H9_G7^6{r&SHFCiO3Vp(Iy5z#@rj~^#F+=`tR=qQ5fD4PM zMX6Y^!iW^cVh^c;y#tma4AY1qGzI;FVp@w=<^zvVzDL}vZuG*^(va}Yp{2EJC|E30 zBqu0R*|dMu2L>~MikQqoyu-h{5>~Pn;Y0n=YLLpeNfc^=plRZzKfR(75c9)5fGN!h z<-tBu#)?2RdIrZV*)3k=W+bVE4tiah%W-(5?-TN2J)#i~Mxb|JbcXTFO`Xj$8aCaS z#Uad$$eUq}xbGTS2=>E`QS@lwrGgfCsIY;c+VJj-^1ng!OU}$mE18F3r_FShX_1Ft z8*TD!>U=o@&AIQeh78HtY z*okfiSSQ4qx?=+u_Es7t(W;CrpT_;Gx>}35Jm&XmI*1 z7rr5S=_PR1FKXsEz>a9aHga7~%kPDUVkzB%g8$sLk4;Y+8lMki5K^pJHe;M%P`?PP zI6ujp7WwW}+E@351r*0YIR|YaJdw%B$^BCOia}2_xEF~pX}#l_LelD?nS|R{?AL-% z*KB8P1{W%m)BapDkK*EIE`6*kJ<}?I2=m7^0pE*1&kHtQ(lV@H5jMP-9n{bwKuRW( zsSj_ZR>rdszu`^r$ykx@-jZ1G0YO@~Cmf}`%-LVPcW6Ye+wuxsi%qv(4RRkeluX1Np%i(cug7=WI%s>BBG5VxLoypMj5DZ zYm;UmHWW~XF}&(}ZKZn5rx!M0RuQ`*A3YWc6&P-pP>0Fzk>vAaG~PU>S{Km>rbDg& zgTso++n`n4%H$}+Thg7_qj=Sg36<#hvx&f)?9LZv8WqE#pa0tN?ITInIiQNkq!Eq<}TFrDk|~BKdkIPL%C4gXwrW7YrW+46}$8L$Jy3} zUE=GyAKFWLe9c9sit}T-o}2Pc`}GZhZR{D^q3`b*Zq!nDPgA$AI2zc&loR zG$jJ93X*HSXBuu1&a8P1Xf)(Hzt!hu2^Bv!^+RCMn-AM3sCH1Q4sx7m?P1gfJ>iJBbDSt#HX|;R9hV zu1gVyV*&l;9x6-)IF{~dq+dV+^gWgXqNJb{D2DA5@dgP$nmGHU=Z3drw{CNL6-EM3dFlv7p0281kiHRwwgj zMfI=A*c)|`4f;M9*4szuUxR_u#(<{7GNa+cz`lC%?8elr*PJl%`#ki8`xB96tAe|1 z@Ff)e7X;PChe%{rWwkhDi{p~|f9;%(gp4y$(@02Zn&>RN#K&YJL~@e` z)b~v^?Lj< zlVgh^V-3dSw=Fz=D}ho7Bz9yqNtPE&!E^vxTtGH;n5uN;R7R{Q8ss&sNATTp9LU;; zT^3&^xb=Xsxg>JC16MZ{E~26%{`JK551kgTsg-Q41}B+j3aF%vMw)|}+TAhqQ!tfl zIH-`A)5Zm1Mn87Oi+~0Ji5h|wSv+nf$vK864kiCi_a_|4EP-busy)B>1Vl20Af*W& z5Y3@;7)i1tRzsjQoT(;YU8a7C8bBn(p>Owtr92N!u?f#_>|j%(Zo}!~sF--Vi+b(m z-ZjJ`$E~gFBp|1AvZ`V=dpkBoYYq` z;r7(~)StaMlt;tH6=6uWre&~Ic=1e;B?5e`%y%2SCT7z@FCMZC z^O1PNxt(D{!%>q= z4X@S-bA2t+FJGgmYZEtw#!-Pte0-3sk2ZK<`}9F=EK(^KaHCe$ZI)o-ShQW+m@h+R z+*MAltmpKIsg6S@sp+!Jz;|`x6w7f{MFuD~AsCA$bxj4zr#p6w+v^5fFb92l~F{7OJ!a>*TQ^an|G^F0?j&RmZrQ6 zuN;k4J%g*|%MokAGUF$;ZIY${>FwzBR6@3a`!R)sMcNi?4*L`02q{I~LSi1AnQne3 zV;t9YosQ5WHjdE4J9y!4(G@S&uz@mJ;@k8(#H?FTZK=k3pCoY!@a0!E8rx;G%Qk& zXOLTZMZ57pR9NEqpe&NFz4zdi-@^Ot+*3jS+*ItIOk6c`_3y3AeQ@u7Dm zJzYi*S7ec>Yx$+dUu)3?&~_&RWZ=kN--&us1-)8UbuQ&Hgoj1>me&IlW4~vq(0C$d-DN;0L{OG8P z3eB0n6MJ8ptmHqL8QbY=VNy)~P>D#M&UxBCyz!(I>%4uMKA^x>0*(R34A2N6n*6Cs z9Tnw|PLLJ%>vf;2ai_pz;q{lET|y(Tn-$kd|NWiA-;=j~<-eD*a;|;D#VK_^fwgsf z8Qb2w2^};3ik3wlCeE0EO#=?jwo0RKyRyjIF76hetIsrlHwQKgKj31cYw_}vPYpd* z2YxYqq@Z}&Goa1_WVFT7!h8GFO%x&Z9(3HyeOiA#OE-F5SC};P`TP99U0wMuZtaL! z2-QskjtZmVTB)iI9_1_wfCc@vvHdjy)|LvbJ-jiEaH@_L#{6MSG>)o(`HNgur z{pUO*r>g2WCvr+fzG$A+wMF8y35Kf?bD^Ax5Blgb%-gGDTzfde11KK9tds*>|L!0L z`q^yn9BQz;39WK}L(c!GW)Tbp;xnQOaBG6GJ`?~R4e%mCNktOyjKpe}>UfM5*R3kC zfSF}i--zT(*wlPh*(m~KhrN+|K_0s z;x*AS)>zd)on*?#k;q(s~H#J=- zkkI=MZRHAOcjA7`b!2K#7VBOLYd9H-f#FOh^(4MX^7|boNfrdIK9WVz;+uSPS>(`f zyQ}3(gX^*%!oJdm)x1;I>cDey%$vTLsGrj|Qr}6PL@cD={ z+qzW6-AV!-`dfS`Oq!10xqMWNY@jWVa0;VBn_98r{7D3d?=IPYo}vVgPbe#Zz<`so zbb=`@k79`OVNJa+K`D}Z1{NXyRYTT#KwJ_jg%!gYh>|e7Q;By$RVQI9Q`36W=n<3d zVE(l{6(hE`yrITv5Pkq>{xmgQVF&PAhLyxMG>8$TOo58jCr5hXdBH=q2MNVOBzI}d zmBWbU$4qmE$(s2v=|gbte3N2|AEcA=XXO$?LL>8-%j!N7dVF+b7CcCe2+E(h@IU4I1cC-CL0C z>nm?~Q5=`>R9Y5O? zVy*gtMhC7Yr57#Fr7IV31^FmCOyI&9UjSFHLT~TAE%Jsbt=GbN#QG}T(2JCz_%yf~z zTu7V=_w+~@?o|De-0fBLb@E6^sCkwcs^6cG3R1}-3CtOvOtqK>_mL3$kMNaNUNzso z8EFE}5^d+mKn4Jb3mLjCbZp;5DQUewRk+M&t9zj@hDr{CP?Bf=E)^G}mbr1ZN~Q(D zCe#hqLK+Rjf}JMK+ssf@Q*+aYALRX&!adI4k}LZ@EF3|g2E}u+SXlMSRGq3Z0RSx)Ezr^F?p9j`yOBj(w-pPpt8qfTVAc z5&M99fP|8aW@YSv>-{e_sV`~%Fm-Y`<+P4Zm3i#9BRR2*u{#8zq!^Jj4OD$5g5AjF zP(S1R8Y3j^p8&F*0U3D~6J!3kYHU!WC?D$Ii$YmS#61958b=X@ z@gWH@*lUd6a}FmvK{aX#K9X-bWL_icd99&hs2vqgfeL(q#WXl&PAqVqM6!jiBr9X$ znOFla*}~~X0dl+J$Yje%v9dCV~R_jDa-)` zx3|Bo3vqA_Cxv>ZGo%zqv8_$UGh7I%7BM&-8Brm0EF%R>I0aF_fOuOoq3>bFZ2XU>B-ELKL(&yv`WFsk)ICD} zf~y3LT*MLQ-++N#eGN%&f8256RWgR$8fFJ=jsfCyQcyV%Ta@s9wmS z(MlwNmu^3>pFTm!M#|$0oXQP=zql^((P(LgB#fm0Coz_|oM(Z{T_tOJ_ zH&z!~POT=PhKEI{DaBFEeC`!I=ItUXQ$xHc_OXRiDv39>)}4 z)$`Y9W*{rhD3`cykriFMfQ03sJ>P&=UAJ}U^eI-~rYfb#%H#9zah2-8rk~!PS3M!0 z^4|O1FLwCeQLMCi{Jlcv=xaBf%rrTNBtMH(5)LfQs|&ew=5v$ElJ1XgJ-9M;v>>$C zNG^f89pE%KA~3tN`AYO)<^#8fw4M5_$UGi+JKy9^Efkc$Ln2Xm@+LVc;yG6qdy4)# z*gL)NEvjT)=?VF6e#U+nRGG}TVHtxXuP7e_|N%s@$ikwEjl$82u` zZZ{Rh;H|I_(fC~cW2YYpkyoA)kYnIFXT41H5&mK3E|tAA!`e(MimF8bJjj`F4Pbu% z4V*UV z2Ap41Vdo-nxXj?gPK+Z+^wwQe0bxb(Q!Z$0zaCCMJ9ifw08ZBWPgd92&-tRbNxgk8 zlHw+utlw6=$-fHfc+AJ!9o^u%x4!$nQ$em(qQ6V46|QMEXRBG@Ba)5o{rrzT`>SzF zhxgs>Utv$DwRZoj7nZa2uZr|-=)GnD?htIu-o(&cvbWy!ZzF2`G8r4r0O*?2OTi8b zjCTkCU3X%ZR4N9EwyCiXsDYWrf_W@~G|$xm@%NgA{R@j=cVMBKtzVDLE%K$b+YEEC zQ2%Bvsln!^63PzfeJnXB7XlXxaf`l{!ht&Nsu@A-4O4eivCxa|9j*P z|6Tu^{m1;re}exxxq1Fy{Ljt*Z~y;`_@7|>|Nj3o{-2IFvC_6PK2q-Pnt#XcPj~mhW$=Dauew&_WEGr9Yd!f|-#o$X&^d3m2g zvKksN^)vu+sP@Z%Llh2nAvWr=_W!}&TL#4ebZ@>h!{9o&Gq}6^pn*Ve2ojv&?#^Jr zH9&yi5(o~#-60U%-6g@@;l8_7yZ2UY-TU!hTXpw*Iv-C}S6BD%JWrpFgn$(e_~LA2 zx=v9!MC>FPa+gAxCcPJ^1pGZ0I?xYV*U7LCcadQ+k@pT~@Ov4rHID!R+aT`GBXKb) z8YJC_{@n_BZ(sD#YYa%@*E-+wLb3il(E6R&lNc>&3AX>Mp^e_|`vS@R2A{?~Oav6e z_;hgtLx707Xy)BF7zGZl`bmTlGRQZZmsd!xQ&RYRepssyRwDi_?zspTcR=wkq1ZuB z!PRN8i2BP&YO`m9tima;YECRfJjD zu;L6Xd5ip2HsVX}3zM7cj1a$D`HH3FfBrgoe9!vctX3mLl*GV;!DtE*P~J@EgwsUg zj?~V^1bi1vZw)PE`y?7t0wj9GI_<&yi1B&*+zjA-OOk#oZc zv-m2!FzQ|PZOl@JDwh3;xE>O zD49ASh%`YLWkZClhNkA3PYv=VBCP=g*9SXNG+)f`WQep10-pC=yw6D%>j^#~Ofkj2 zk$eggCijOzU_Kmm#aLf$Yk_{MKqkKtx;?`{q7Os4suxeHcu&8%!_20sxm84=gI|@t z>uKlG6E-DkAn%cgAtdp{rJhqWB=SujOAW$QWah)=iMo0aSfu>!86t3i2KhDWBL#Ui zqzIkZ!q@;Y%mSg$+gy}w0pJcmjt}XnANl+&fY6;O^lAdm$`Jy5K?w(KJI2Rz$LweS z_AHUg=;RwcTsRw|@}R$6`q*3Xv^BefDmTHj>T5ybR8ix7J(F$kcpJ4Gonoax-?#2G zpNOX5m&k7dmJN1-{hcffAGvc?gJ|6&KxsC~h7k_|KvFk+%(JlyMtL`1PW1I$1kKan ze@;L|0s<~mzE1(n$1C3(H2}-bZ(n1)cY_m_G2z9(K3=UBO+9b#*>K%@HuG(IiEbvl zSy!qfr#SZp(kuIUu}-i%<_Vh*w*VC>GO^-lO_&n_a(1Su#N9Mn-Vz5k&ImMU?eL2I zV*{1lRA!kxNAcKa0{=_wZlv-eljk4hCS9HNB{r(;JLAaf#e3zp-FA`y@~wh$iJkKn zbCTiIBOne-mREwo*G)O zDOUKV&llpvn?7#no=l05YLGK35jk13Mf3v5lh8*Ti`pMfw9~eoCZ8d zH0Z!bkGv5=dCLEJewACxh{|;nMX>s|>grjs42lmvEr!AsgJ1IjvFO}XK@JE3gB+G~ zG4E#H3WK>Gs26KUUa#3Ogo!!CFj+*W^-Hk+!Nvk2&Yur%KJmJVi-thEzZ5Vnf;xMM zmjd2siOq+7kcjZGLev(HH9c>EvtnLid%rAex7yLwn&~3dU3bR%OV)dHX0xsz`o3;( zUER#_%?e0;%CqCP7KEaAf+j$Juq%-QCWRwy{(ND$C2LE$BNOe3UD1@#chf5;iCxLeRvC(VD?g_V*b-@`kZ9Bu(Gzw_>hRG`cg zTpOy|?f%=F*o8*B0a3|dj5T1HAuOV=X5WZrfdP z*Q0ZP`R@EE{rf0xX&RPcpP-{ysY!3AFg$qV_%$Um9sbCeoBE+Ei{`_x4anV5>SZo- z_FTb-&W!5cu?k~pvHtb-Dvm++8CmXsM>RYbv!#Cv1^4NII%GB+K!+6I$velb&64m! zD|E>xHJTkFg^Pa9&(|~Gi&dmMZmNb4S>@tMX?b?pl4>>k{p+;;Q&pfAr(~yj_&rUs z|0}^yY7VkPI=jD2tgz0fy_;nG-(OKf?{jCzvoS9ZHQkDAyC?LK;c~2Neshp4KY1z< zk0_V``ijB1CtYnF$v*qi2x?Q{=pW8H=f~e%M~*@#)(S#3ySc-McE596QP)==P#h5P z5{~|~8z5~XkSs9D05ZuXIG{;PgqyI=))uxF4>E#3DU15*gheVbs|q7beAz%?J9;g-%e9CNn(1QO$EOj z#2gUhw)G_Lthmst9k8+*NxY=a#9ajrZ%E$Q8)kOhvTjm;C#{(Do(2V~4* zrMFXzifHG1DRuo(!NjYuFDVRPN48T3qcDg8s;ijg0yuGUk%aVIY0?BlQ~J}svma!q z7I8e#fcPILucyiQ#IA5rO4CElMRlj(;{=OL_O!b1gB^l*U~D?p?`ROok?qOoK8Y61 z0EMj;sbe~!Prt4B`YAkb&z1rKe=~xpI}XX}3RMO~e2H&2gXvneG}MT_mDS1J^sSIp zz*wu*9X}B-#9ZwJ67_16kEg2@I(Ui9Q>EylJ?)j@OlrmSdHP*Pxc%uhl{i2QD2Ty- z1RqA%4=~l%q0aNhufR=-FMK9nZz^BLhJEwwHMpWU6;HqkxJOh@U=eZ#V4xi?VTP>d zF#&72T;!zQQ&%PY-s56dbeG``G!!>F+3&vhtf7m3Op-F_g&4%Nvs$NC`zES9r|fJ2=yka{Aa)-VEPbYd_f z6XbYOtgbv$8U;lolAf;>9di(gAXC5;69xPAz$v`1n`;mT*F`IUL=HhA|7~TgF>^qu zq0W4`4b+rCMc5?a1}B(agzpo~j?30-LWvlJLSquO$rO%u=FA?FeOCfODEQR>tLF-R zVP6zyE_~btj3UaUjHg8wAxR8h%66chn+#*tDg=5qHDFB;BpT*HxJv<{37iZG0zd_T zH7bHy<)eBpV3nNVz^sk5Hdq0yt)CU7O~}kjyWE1O;sVmv!eCNE0xMWi<0Xztv7oZs zC@@feXZH6L1Er131Oh;&3A^Pe@M8gH!ux!i3$G0z1BMboFRlX@F3y({8GofoTqL-Z zomBl`I^2R(_Uqw#XkAh$v#15v9s;rkUmj=Dh{__x2sKyyPR%qVKHu=xPcuQW7Ybn<&-;(1gqMknraxP-gc|t-ju_nur$z5@> zTzI(iWX9x2j03ap`+~k?^84k~zGqbJ#WJFd-pM2Lq%mlsUh#stp`p0fq zCbG#)n=yGg{UF|0_>H#i^;y=C7??_&|Z z+~jFZrC&D2H1gbY(&2bB`+2;m$NItXmql@EEC<`Ke_oOH6$E;}jCQ}z(TskKWP2(} zFE);9s?dKnx!GT^$DNs_b4W$C#=8Hv{`c}@qF!S4M5w>-xX= zMbdd!ry>XyV&+igsN=yu^p!co`WmjeUA0`tIGU7h$$o8)Z=4{N4Ht zb@ge{&ziPARb)?Aw-!L@i(mHG7w_OaR_WYpL%!!|F=}w&y1LkxFN|CO1M`^}Ouv#* zzmw7fi!eeRrzR6E0&fH;gY5V3 zm55(Y(X|pP+c{WWmH<&)&er(qvBXcWXYa|(?l?1p0@3z7M=(`iz6 zu;9fC7jkM2V&~PZS|&U`mGBw+6a38F1GrQ1rIh`9Xzx^X(>c4SQDqbXU~X^aMY4p) z#W70gheCxKVXI$c!36^M^oJCftL|$u&!?}#s{(s$491t{X6oP7)Ux1DXCbKOn}S~5 z2f2MI25N4S=F7hlCM%z%t8%ZoP)t^k62+0B^3MDU_gNcRy{DQZbLLo^jWNiYgjN&F zH4xqh9oJvReTj4`DW_dsn2w!M8||H0Z9{LsI%YFDLvte2gNt8j9kp=jF znDzuV8&ZH$%G5H*;MlsweER)?yX)+XWIfR`65H?SC(u&ga7PeS^3!pv!j1-yCn%7aQY=d7jJ(S58yn z8O+jYtoZojyHMa|%xb{xNj`OCR05>Og$*3u$o34V46*Gdj+-WB12AhD1e+u4mL?17 z4B>jt^1D9pbGq&>sd8DZi|C^deX-+=_?83jLEfp>9UI@7*oqFoFy|Ddtm~|&f-yvB z;(zY#-_q(5h?jixr88uqsVDf$C&q;rFO2zm&BRA<+MQ5i>`hMiXK&2@tH?p|#}xZ0*lxiiIFG{2J>y9iNoSNc?w9|I$q!7B<}Gi}bR* z##SDXbLY3yA?LTowc`?aPBNG`M23BHeXY|6aETLS=Sj%R^(gQ7_WJL4GnJYl79272 zNYq;9yw49dLVrIspP4RpBHaE3YC6HI4>Tno#Z=x-{9;KxX?+9O-IgPKKXJp4jx2@W(iCDZg)-F&eAoPW7bP#_jd z43>&gQ)|YRBT$ow{Pqr{40o+t6nXE$C(rN~Ids>rUA##oUHYB#w0gj#2Jt&H-qZZy z`=Yl?p{TH#Q!@oI<5(*g!9bFCH__bi_cPiz-N+G(?#4WG;pc1J`#r?N==ZN8L84yD zK?(eGN9sCQbKLRwHs@?yp71Y|5phyvan*?Ggk}VwbA-AoRT*>I7G>Uad~Xh7cBZd# z?!1G1s6}xadMPKqY38vfOvZ9-qtVMF@p3yVbe;B7(FM7j4@G?sRuuX?Tas8YscD3G ziulwED!uwm@jnt?*Bt@Y#r6)tIb9gyRvdM^xlEPn1E{4HaFhK0dtPqw$MgAVB+7tW z+WnwfNKauY&6n?2lfvC$p+s<9lMFzO?0MYaTxJ$LCJ{o7$Tz#7c=GP5aiOYu9o|+; zsOlu!wvwnUF47d*%V@_eiw2bdFu`?bzl3KqWedNIMNdc`8~fZR0<{g>+*eBc&emU) z`s)JRSM{(7IQ2Up^QPc}W!5J~X-Cgn7H58YMW&%4cI7B=jCFMRg3)R(50$|@fH5^* z<}E-{HbMc#RNFxYrB+7&Ogxs;sJVtv0hA$rf)|Uh7VHS~$(_d1eo2t1Q}vNMC@bEu zY;#Z@Xd@g@67AoKYA((yyKF#p zezRc~t^!)pDGL6iU`@W}`EHrxCFq#1LHbxn${I>fbDAUYo)B0}jS8jwaS$fE{AaxW zYJMuryHa^iKV$raf$!OPG2wn=wYs#o%Nzy4Iy-C564{E5j<3rv*HM&OArkchSnYvx zLh{-r-9Y3`JeXr`*Irrl0Y{|bN5fVS!R_k?^sRB3ta}~sKfB1AZ@}KY-%6AUU;dA8 z^#5D``TXDgpThqY{!alu!T&}7;phK9`p^F^{!hpM+y6HVHL*W8Q?Oe}f$%c8Um=>wpgpJe)Dj@Lt>l)@H z(xd`Q+3};!C#_UJ6{5$im9bG0Yg3X*zKg9@iEkx7UDcgsnrpU6W!t0v&77XKn0^AV>=aPFgjJDH%M9NVOf6FZ~i zu*8mMh)M9W+`$fV6Y6^5+_?w<@B-WbFf)vL|9rIPB!OEwrp`z6l^=})ANHKY z-x{hr8a+;y%fATcnbcsk4_1NAjXL>q-~gLu3QnGv`VVi37< zw3yDlLUEh+?Yv&SYQ2v>(!XsVAQ!$t3uv`(PVk90a~A@`jBYpXm!_PetkFzN1#t0p z-IDkz^`x8M1}g=PS}sQ7oZbc+>;$WgT3p=%92^{K8spbn+z$8j^s`uc5&0097@=-z z(ufgxh2;l{2YG0dXmUtGh$zInnx7`lSACNt@2>4H)^dis-ma}Ln*j04po*>Hb;+%{ z*O~kAfxDWM*I$d{frif$&nLgT*51M*N9elh!>_GT$S$d#`>-1wJ3X(+7OI>Au2>B| zc0J7Ql^Bs>JRL;0!_q!Gj{{|$^$62=0X%^2W9w)VgaHdI0w{tMGcq#}9ebC4lN@KB zRn6Cg8+ji+k8MkCb9l?Fy4zAX2-1D-0>V$<*0jgS9o$=AaOt>jooNVKyzV*v--uC_6=-JzxfdP?# zfDx1Lz>ie68eea36#O!R^q%zyh)=vSaOBa${X`9dW4825F?1eU=d7zNdvw+T6E{Ca zq_tF*9k9h*2JH%6WBIvlhRE#6S#+Qi?|)x({{AtiSn1>VUw{gJF$dQ?DwYL!8h5b;eS z7;!?Px>E*t0q2aGO-=hL0PKOLu)8SC=SnXcp@DY;zy>AhaW} zgO7g@n`5^Lo5ssr|CWNLqnoqgk&ochl9+DY!7p*nY4ftA*XotRFu1n0-u?Na@MFw4 zE*wYJWLpuj(X|j&lE3(yfw(?()sgIPO+-vJ!bEF_F*Fc%8ZNq?NzX5MGST@ShDKVC z@wtYK$gV>XL+**D;OcUYy7frJr1txQ6TGLDc6Q-x09s0E9#qE~5rWym!eYXti;s&l zgGaMZ`K!e2W-Hb^`OI)Yrvy~GXWOX$K}=BtPB&s^Ttx^o+5JtfhWC*ma`s#x+7(AO zPAJT553>+r@EJUlV_!faexf3iYL`4sqav@xpA&O}WiwR4C;}S;Y9wSuLM3ppP!8;` zJUQe);e_j|2QeiXX@3h(O!40$1tDZvS$;pXeC(grT*hrAu7+=Z%l!@e3D)ptt5mMGn_%>_W&_9(u)eL z3vMj)2`DM_)W*RrM*%z3wn;>&<{xDKbQ+e|Stp;RiDVYl%YOz{jou%m1YWE-8juBSwj7yB%jkxz6;lp?ab!k+X(^eT%y9pJ9jDYQ;m^C~ zjsR3oRZ?ZKv(sDKZE&Fu}NvSq4d}?(aDIIt@>N^piC)ab#B4!I)#=5;UKVaf(Yau$L^CFG`Ny!{Zjd)2p5=mp^N+8 z(EXzbAdN*DNS>%^w6XE^*JICEHhm;bo~2z(xc(ropj*{&k}z_a{K#=QivC5-jiT3A zz_x?jJAje^KTh#@!W|I4_Q!cz5Qj&IX|J0*tKb_!Fkj-r6cJWP>5GCxSmUq|npqO) zlkcArUWEj84mg6kvSJb*HF7>@G!Wg@ED@wapn{(vWC3v1#-}m07{E1umpF$7RiGeo zU|?!lQjhLvWFeIXOUsk&5_3dYhV&2bh*cLY{L+6aE=nhJAR_OTVkCv)vc1_aAHXV&_9M9q$`)C#|{z4 z4H75FKQ8q}U{m=&ZuYH3V4s~Fp9Wr=SRF`t_w&oRN43PkEDRJ>n(*vALLPSICJ!P-Vi-o%~mNXB;1OU^UuLKxFxe08anWv znI);)rB_y=fR$x-GPNLWwwt1un8aMle)z@|C&bYd{e_2`UsYiOFGVqBZ&p_F?J3&g zEnXH_;97NqWCg+bZKV#cLdpJaGrFdQg3x5#{agSm2McnG=t}wDXog#V{)_v%?Q;8u z8R+vf7uA`eI|E<^%KC2!6;PLw@l9%Io%p|`LGk~}|Caxq|M~wb=6~~X^Zu{zKe_%7 z|NrkY|9kp>@V`T>)<=@S)9i`0482>t#kI?+WK6Zr5GqMJVs@Z;%=Y_oZu)5MBKaVG z0d?qXo{d9@fSGbs6oUZf)cYFA=PBFF+ixM6*81<6SW$+1>-^77kB?U~MDL7p#ao8l z#4|dqEQ4@x_my+9+$PrhvJQMU?y}s@+I6LHHl;WOC?}_J^XOqp@H7BBP#;tewnk0t z571>xn-q!?sgcp$fpqXB-QC=<8`qfh zn0);BF^J>a(WnJaOx==wiNlKC#+}`+_U8;52Fw41OSu+{VQyAdyXV1p_SDtEgt3VG z;ba$3OS+kS=ZF%@n1nKS4NCKq73y$UX9X{t8v^nZ}YHF{UaiXPrOEs&`0t6qw&RzMwqzT6dM1NBkso$8ynjm^l$d3R|2K@BVo(>ZhGc5fEl*3)fdqv zz|HM)y4e$20!WFd)D>{u7v?p`lbqXJ;FeQ&Y9U^CzkdUlkyV$)CyU zd2pk`!c=@YT=I#0kq;rw{trCsK2Iltx2GFj-*-xG_@QlP1JPDG)kYnbL-7RU6#eRGi`KI;fnzYGth2 zbCvmDX=|<7QPF2naue@l2ki(OmFf0`cEsCJpH=?mw*qQ*!9UZWkXl{CV@gv zio$t;);fUXrked!N)O)AGr(+ zs5IXwSqBj;vTX6Jbx^KkaZ#b~ri)4L3(e1moS^5nFjb=CVr=SRBDgJoePHY+5~sDr zX`{SZCw1P}EKTt43M7T1`CTC9fm_?Azb#|d#HqB;(?{-Kd(0_0_h>Bd0ueVVff*P> zwnrMj2p1rH9B@UHZ2NYcMofIy(vAy476Z@T07t6lu2+hlU3?I{2ItS8ZojjDKgVkc z+vhW-*`f*XeCqw;NK)xBI$4}H6oG$;>aG_tTNQb~i)t)9-jqsT?+;M=8L4o;QQ@Eh zp$K`89dR|_*?+>B& z-pNAL;pc!}MjQw|_T9u;-t+Pi%)o&Bclve(~SoO#!l zN3dEyf}EBiUOQUuk42)!tdBu4&w`#8Bhk2%hHK76I$V`Nb>b+zo79qlvLJt=@rghn zm9U(ye;y7Rh^EwysV+(CB$U@#@|j5EXg=~poe0KA(edS!9wtL+0(C$^SPA*aR`9$= zw1v#!Zy~dNj2-1Gn>QqBr{o_}gULNuO{gv!g!(h?2%?1_?vtaQi3R+1b0d;1chg|* ztonukT$Zzs5yFN5T8|>wQ7#(+{T-f6nUb2)CSqo+qk?a2dA;4%F7yAC+>h|iZA;r< zk^k-|H|uY@V<*zeV5=?EcOL!Ko;>gCoZMu%h6fMo*$8pjS+*3s zzOEe*Sqd0=p?6U7tL(q1(G*@BP3!hD3?TS+Rn98=;`3bw#z=64`l!pA0XvyyYF`oT zVcmL7_GhnXFofd6XeM)TSQR8&32!I+P|CDxJ8Z!o(=JyI-Vl5LsTnySv$E>1sva30 zIt&7kYc+O0rTg9wE5*z6frgmt^BtI<=<_tjz8*f2s6626C-&eBk-vt66CN_9jSUG% zBQg`8*&$Kgx)c3wE#VI67eTwRmAxV*}{NX{#v zra|PsCe0`>Ol=*ya%toe5p(=%WqNlLwNw8bPfV-WA6EXrL{7Bx;~S1y!Tcrwm&zEM zYL7`+&WN#GW-?d$-)~OpmvF{S-Xed+bv9}8SVpO@b7X#mP4GXboQ3x#f?E+}8934_ zXsPTL&%cc8qZORiqgSzSsq@}FG-67@`)^XS7sjd(2k(GC`o8G-4BA~@RMxL^`76)W za&0o(*#)uEJVdF|zI`QvyUVvqfZfr*n+B4{Q(L28_VxaKuzs5YF4{@3tm32xkb1kAQKGUO$NO{2J%hqMpm&CHfxoo~sd_ ztH&s8UT9LkhXqM4W0S+4?(U-d@P8j&P<9ANQ8E6;LBgIy$=rY(hR8AMd79k07oLxd z4tLyxj^n7L5+}+TrA|+7%e03Bk5&%v_gIIWdv=JoZu9^A^GG*ko#!f%3P_&-emP>$ z*_gxwO~~xW^y%g$(CqT4*tVUf22`rn*6@7U5eQ|CT;JqxzAZ#j7dfzsa^hEHo02kRVODjQ;hGAyW*p}P~0VeRv>HlF~7 ze=Rrg2mJ69sd44!&aHf;6Fm)y?2+f*7awb}c(HnrwBxS;|9X=xsJAeb$dq!5 zW0(aIbeB_>C<+1t+qP}n)@|FiZQHhO+qP}nwvBlkm^%5&22xpCzklx}Ek||>rbGJ7 zExW*QXig~s*J^+&c(T)Nygr}E*TX*-_=*lyO@$uZ;-MDy9L42R`+8#+gErGH969EL z+=7-YlEAC1tQ_#f!SySCMpska9F#4`jHaG}3Z3*76H$p*E3z9M8>_P$L^;7!FBE=7 zG@-`G*}6ZaEo5Bc#%zE8xcJK&?9cg57H2nDKJapi3B)UTJgMXLqc1%K+5w(y(QuDh z5;bE>CYB-+$Qx+nsC*c53y`cr6e4=}a?oF$l@Bbo90CC&GZkQ}H05MMLc-$AXO;N( zb(Q!FYpXdBG|W1aN~}|^LA!MC3`lAj=#W(w6w=q{m#%?Oy#%$#(hif`I+d)K(=S6D zHTL^TyJ6MEe<>(K4U{`{56e<<4)@Pkez=-xLQLVa3h}cnayfV=h`XF6mMKE>D6NC{ zpxfEs_iEoYGgmO=Yv&?!S0{|=QwzkP?CItKiR(8`5#pdbHj`MaqmU5Dkn7l<7F=_)G7s}1SVmwhYVnWI)Q^20Q|l{@J-oOA2Yx7m+Kk5w){q0n;VSr$uW!t zD(m1V&4L9wAcgoezcrIeOUuw71*hNg;wC8p$#jP6#w9HKueuFNJP~(j_r(5>nmb&Z z)=>Ra()-@fPZ)b0!)H7zg@>l>tY^iJU86?!m6R@rje9UfDocYSsUq~WHeH9Ka1#&#Xg0hXHm%Ya! z{Azz!DHMpjZ`zbQcAfwkM_;X)x>&0kJh&+B5!XCE+&Gn$<$2207l{SV@mfva5HhJn z7X+Ae>9!{~M%m!ajY}I%P^_-5Cle?xP{nZ>PZV@?aE3}_TB0E$z|!gIX_?%xq|#lT z0D2zV+S;5xG11h#(DK0Xk?*^?zuz)8Vyp-pjt)-3EsjJQL7ujc=e3m2z9j3xLHL@V zpSRqW7CIE4Jn15kW%i46->D{W$~{CTJZ)Zp;=rigB_9pug1@ymq;dsq={)y!SH9|g zLfCuG7kMN_B&QR7$s16JhE!l|dV2a1%?wojMo0)2&5g~?%HKpnLPAPcYowama(!mm zttI#BOI);6CDKAlkX9mj0gm1V(?j{3PBeNvcFiM0RBQQS5rn&7#x8|8$!=q!?4q|B zZy@v`M&7-!LE#;|4<^{3b)O#PFWa2Xcpr!}ac#CIU7-;1j0g>Y1jc$D!lhQ$vBm>- z04h8{JUl!@JZ2Cnp8(n3(-!3uUS6KXR%uDMx^RNwMSRQ)ey_KUu+*?w1Z%B{f0U;% z<*E}AsM>OITYmzkY{#S)jeaacHy_iJeQNOmFB4hheY4Ka&7kv49rB#V@BHs^I{3FT7P`Ij1hx^rxI5OaW3T)q9%+mww1!s)0(OTxBn zF;yq@*R(Up0Ks8jE(Jhfs0_Ay>D75ZeD2zD<5GfoUN^R3Giey7+-d9l7y(kM`s~nB z6#g6JB`pLm-iQsPz~o zr2k}%B$q*_N&@JA7gspLo3rOJo+%J_dX)`_zAadRQa+O z@Lq^M`*Okn@b*&*k8uQP< znnU+-YyOau(T}1=urYH42r?MRLwK^HZndGI)e7<#C)kBdPPEC7RG~cz*>t|ylt$)S zn)PLXC6VgM#D*pY<0>il6lKV{fOYF?%EtG?MFIeO`K90bx>ho4X`9Av$oe9fs!ZZy z%Ek<(cnt4Ty)m@Av|=hWtx_y9r(h$|-#?TH68YrXJkQNn-{x{$40 zwT849C=4|1ly4mQ54Zm!)vRF871ICk(5=VU*hHma`LDDg;jh4_CZ}v*?OteGZ%)!&)FZk%5kqn!A`dt2K@SXzfDM}Cm`jUhp?$>kwSO}_o#gBqTckorJPjKSZFA{0CCBSjC{ zkqS1UGie>BGusYYRxs=^qV@1x4{w|Mg?Z}~5IS{Y!(>2ZPf_ylwMu{a^a!aDAHDl| z9vmGG&|G#z9+1m=B60GzV9WuA5gMb~b#JLkeZJU&)jz?b3?0Ig64! z8g{M&${wx>-gb+!?WO7CFsC!{ufE@|)*Tk;br1p_#`7!wxkE9Hj22##Tc63y|9-z$G&Zw1QnB4Mm5h*ka*)kC z_F2ut;aM!E-U1evkib*Rw6*Hhkro}^7dR3dUS0g9a?k$+3rh(BTl#eLY05py@f}TEFA{v9DR4r2M)dgq z3wdL9+yVb~@-7Lj>%NoVbUu!FG%8#$ZiFYdo0NdBBslhIH|iX^9- zuKvm9#0(+q$-YTgOuEP(g_7BZD&lFa;{*~(%96u#Std_cdqW4@LQiUY)4%$;Qbu;( zfv9`UbC=cWWZ%Xr4(v&*=-@VzBI%@UO^?H#I?p7{vp_2f5*AYHU?>u}fO7dAtL`DT84Aj;W<<9WL6!(Hz=n&7Q}gQK z^HQM|qfNu0t1_4V3`v_r->80oS7VmQ^pA=d+sda-p7Jt0( zEl>Cr-L#@m<`%$ZL5_z9#};u0Y>Rj|pemE;geGWSuc;$P30~;jED=)$hmigcm-_m+ zSyy1*ye==E2)|9Euki)i@9ubTdvfILmW~O77r8MVMm{}wb8)@OrV_MR4v$Isdpn=U z4}fOGdj-MJyeiRCK;*hhzvZk-u&sI1kcOxsUXYV!p%)Ai__T(Nw6Ew91#stfYG<>u*uGk}?u8-+kJuY8*)#u;k;TU~OChmER^xYz8UxGn~WXc%QBPqk(mf z45)W!pvKap_{4ue96^vCU&R}HCd4@Tx|2+m-H}o~R`$MA*fnG*3Gr zD7+b|`1#EV4$T-a?=9Od&cE@AJ@JHJre9RUu^cFJ%b5R|mg#FMt{dXLz&oArFxf-| z&nQ#Tl%V`}vgVPNA*}4shkO;*jQXt-J2R4SNwcE@9Q_Fo$s-zwV+55g3@L{?xj9J+ z0V&h31aq>M9KG6Kmw0o^N4_I@)<%}1U@P*^Q4|g$F1r9TB4mhyfArWw%J3WoyTo>V zMwFTyK?q7Rf_b6Zfy0xQ|J0+&kr8ca)(Z6m)hhU2c%K({!DWfA2f``U)IkIVa0X8M&>;HzMyl{&i!fn-BA`ARBYo z6?sr}Y*v&;Qwls07u(b*d(~{4gjj^tVe55m1VinSLwgn#V&k`<$tWQJ8aBbK6Zq$~ zya59ebi5aIdbwzG!YKlB9yIce?5I+40p<6Gg%ipqLuC2YQj!O&Puduy^{<|@&&}j>N z&TlMJlb-pXwpRQU)#A*8pYv{FqeYTI+fz^ z)8EOc_=VH8;;{pmHnjJ1!gk*MKXzAb7>k$kRIXFEf>K!AYI2igS<>NFR4|eKGc;)> zTd2ER&FgQvgtDB|_2osx{*fUO3b3if8M%00i|(e&F3p4~B}AZU#*zp`h>qbbNHR;p zxJOZI7c7nms?Z>!i{SnlmJoEQzteC~;D4YYED{?V4)k(v-0Xg4WFqg7!q`EFzvrC) zLNXf0b+ty7U1rP{X!xxciO!g24gi#V8nXgHyLm9hKX8Q-HTWG#lRJz_tal`xgENav zRZ-4w#__KB7fm|1ddrjqcY;J@5KDoE23FQLVr3CgBs+potf)OaLzPMe7$8yIB!k${vXj!fc)CYc^5EY`F90<|DoR19}6>$G_7euF!5uf;KYEp}q zS+ArYLC6c+ce&zPHNVh{s`rS;*)ifPYD{mz^1m-phDGDy1K9GC#KBYFzh|R`Sn86W zn|;JgdL-a{jLbKV&b@0B4jIPhFm7sBG}VyGvF@Tu+n)Uu74@D|T(osy%gb=n43=sD zVyfNYSu{i@{xxk|rCYl&$m7j?-lLG{9y!>D;h)E|>y{vjUhn>1|lIg!SO|xg!L`gdHeL7>U^Jw39qk!#{E4U1zMHdz>aaKy?DtcpQx`0 z7$dnF_)Kc$c4GKQQeT~_1v2oYiF_`#*yMu5H4>FNt=VlSA2i(fSxnDzW$wFceA|lu zonOebC7yKmxG6N=>b;jb^$cX^7+N6W@;_sM`=5uLRMHMNwX*oDBcqy%*xLfvi5Sn= z8U#jtB+VX(A``2&%2PN7yRR=%LTZc5SCNym%V#=tL|h(ZujY8eCevP$-kgsI)L?`Z zDu*=&3tjJVft`N{S9QG%r8*DpC&nn~$hdJ7)*kB!&Z(`u?|Ne%XM)TXT8ybN6#=}? zGsK4etbMz6edRmgbWAX{#uqv(7UX(kF*9CqR8x#(VXa~Nc-xQ}<~qfCg%oBa<`a51 zm+7fel>!rkBweR~1$KRP?L>0A@8<`UMx)Z2jP9YH#_u~OX^djd4B#U!dIY>tJU2FR zv(JNpD}2Ss@;D2|{t#u&wF*vdLx;mGwuwWLq|{I(5y}L;pWmRrN6ZyCRFyfzyITxU0K6^q!TjC~VhN^4rs! zE2d-fP)LAUA6*qG%K6m)g6S!08vhBx=(hFDn-?Ks)sUHwp#ZC_xD zNk&Nfc5;iK`tS|@Bv3YLMc;i3irm<@kHK9d;*}dNeVe)}xi6%;LUc7H{xWK_4dES6 zTaKa7jSw^~1P#BZR~#DrY@1(DP=SDmU>xJr2nqVL!jbayBM;=Cg{zv7&wzO7|J*Ux z6t%bxi*cSy<-@|lqRwSonp6+e2+%~lKit$i3O%PhRB<5nB z$;ICA+OM{xtkSO2U2*HG?VuZojVbD6T`M9LrA@7*$9t-&C6@8=u%RX%NlJ{VCA-u| z=szZ1Ye&xon73c!E*%f`ddfO+m~MJPCZYnhIHh+)G5>mLz?wQJqHa4X`x zPmiu25|hM#)4vL$B23D&8vLm11M`Fw^int%lGt4q+8I-f=D;&3b#NQp9&MkoT}nRr zY0MhmuwUI92K`6>Es>e?SK7T-o(QNEkX(iHH2hQ=^7aIoe;tRdUB#Fl7iz-r{@%$o zlNQo_etrfjrRa9rnYB(OBUSn&o{KPrF9#{^CseG%$ru}Vh+5Jm|Db}hEdRi=`^C}G zSu%X~0Uru!M0+ZA`*~gs5O$R=b9mR?i=nE*4Nhw0Cm3t*aiuX;kLfBIhC?mE)N6b) z1Sp%YhcvBwN(iW3lL+PIA!^!7d2LzRnG^rfvm_A zcoSp%iW1!5t^2!PBzytR=;sdVi^54J9s@~%5h07S1b5F%wlY9T2%}FB$R(y?^Vaot z(v*hBO-qaV;2Yie#I<~A zU`LPcFQFt_Vv=$)b)3tBTBHXU6g-1A7A#Kx;JaZv1?au~1pIweaYodUzP{Ak`*q(` z4xjjsUs6>URw@2NUZUgZQX$39;@~SCG+6Z05P)olg!JChzVeFv>QHS1tlwT;g z^5QF%oeH^4tMK^<$pV(O!i^6v6YYg^Q8HvZ`Hcz zF|xqa0f?|q1p%kLJ*5dBrToWW)~eHr-FO&snhLy_2<{TteB$L4;r&+|vWPt3UafYZjiO+IwAuo^Z-_;8(JJ?0g_YQY<^DTci z3ZZIEClbkWpn-SLz(~Df)#^77RZ?yraQzoiLg$u*az`Y#xJ>7ud3e%r_7zZnE)Z^ zNS6%bCtxccIaopmGLR*_2#8w1Lbz@4FHOpVfDm(@KZ6HkF@Sziib)fZ%XyvO!vkU< zXq3dvXtgzBU#c0X-=OYhEHXOdpE|6Jh)g>3I}N2U1{%-#v$GNQxS&-;$^3#{xF2CW zawMc2IKU_K6!UZ`ak9qt&v0$r_gKN?sS&P6}RpzD*+(-$xJbiw}PuZuzHpkyNMw zvPDpE8E^vPsIKDio}2>?wqe+3Iu5;GW2;XNb8BYbbF7XiM7h+dP@d)^K)8YPIH=`V z&&?F5!3K%4SaJ4G7lm-M^>1d6J!*1QP6{8aB6#R^$((?9-Y4A@dcj#OpBbZz&Ij}l zN#za&{<5-a0`=wpP@oAk=RM1wYHoe4W4-U3=zccqe$5+LesM|1){}u<(#?5#tvNL{qy=rru`NB+oEV_QL=RI@Q zh2qLl@$!nv!f@V|v5-Uo*qOkkgW+Lfpjr|oXJQnG)+BaP*x!RoOVSs!@q;!JjF_JO z5i}YzXB*BXNG_$;$!OYbE#iQkim{yD-z+K1&YM(YD1N z^_`Zq32$Z4iHOc(NuV;#;e`~Yhyutob~grdZwy!8#jsAHVDh#&P0s&_8=NPHmq&!$ zo9u?$o!3ZV%l%P3D|zTJ2eOi?d67sAGO^~A!W&v*bB~+}$EzSOY=wI-?r!q>_)z9l zY?j_NW~3=bP98*{f)u*yEWyAWUJa~idA4FYykoHC$2=THMQhZKj7P>k2Y*Ff}C52U!hfOCvxD^z5h|nAr$ojag22PoyLNJ9tV9y zIW^33xEuyoypJH!&Ftf$dt}&vCHbnpS$ax*Jk~vbmWy}}t__@1FRR}o^RF5gx2zX$ znDtFZ;_qVUxVJ`4)7O?S^!yGz@%?vrOm7zm#P6<{E{NisD8P;DEHW`K1hDUkDM*lx zHRJ5LO+nENna&yNU6Y!VFHemy(WUADr(5hSWK}v=$w@t7kU?2E%}L_ z6Q@SFb4uCuAQP^X0paExTv%tUiER>bS6Ll$+|ExM+aRf|+gmthIN61P~SyC|gOSS@4uS z7&}6xxyjH)&Sbc1we2VEavOH-9r?A_=?+FQH>JIK7D@}JIk=Qy2#l?;vPM&>4}?Sn z&{S(mqTuuVajtRYqayO9FGQDc^6VC{Z?(IqqsNHXV?N^ajr2YPK-`m+rVmZN#!5dB z>S55Rrba`R%vY31!*VjAq9Ki_=w5%hLzwuz#@7Vu?;kA9=sN}*$XnKTq}rb%eE)AO ziSNh-$9Nl0?XK&XubZqeSfLb*ZJg|w3S9zw@+kYEhNx*Gt7KYZ z*X=FtC=;tDAFw(t7gq1}(TX(7K5Kg8zRkh920@Vo0NI|ZSS{52`M$CE^+o$-Z6A?~ zZ<=2A`{Nz5NH>(L+;*Kkuw5>KBX zuVRS%4_5C<5nntB7e@sry8vHFq8;>=shu$MkdwV^47j?T3{8LFxj18Vz-iRzyu#>w zx_LyJ9)G;|r6-^i4rt$VU=G=rr1H$k6F0yGj$)sRI0hYmlX=+e1g1A-erW{H<9L z->CRpKYzG`C=hjnCu#lgPlA`Sc1Mgmr95G0rE5i~7-m*YCH2V}va}&KEXD$MYa^?A z2}GwOrt%7SdGj*NnkrCrs=yf8m!ZQa)Z%s}r&y`1N>~`uby3{LlhIqg6MTM|XT?qw z$dCkXttye{g|^nWOL!fF(x0*DF;uP{~;p7JTSPIfINQ3t%RZJ zZ&{PDdaLc&9inB%*9=!O+ssnK5e-bo@Jdr{PX?o(IQ}Ox@;~LY;fornqGSLYl&xBs z9eFB5joqw|ZWyggtr4Yp;$q5uCO?CPGH@lpI^oVBq$c8`i@Au}o44MZz)+p`+udV3 zG0#_CI}e>XxJ7M(V{wiSmu*1=9)>Z#D}n%{kWI0D%1A1)y57p~9%NDDEJTKx>gJR@ zE1zl_SljZB>Ca=3o(#HoIDo(@CABDb03`z2;Y@Iu~`BvL)i_YLRHE zD^1F9_H_%DF*QDoOpl-So0nG}h0Vq`r!L;q&UM~3PaoQ$8` zQHPHo9L`8mNU3;2qbtZbC_yWKvwYEE4rn$z<0Vk=fgqOg&KPxHH!-m7%w;#r{C#$zKt&c=&4`yai3v(igX@LPgHLxjYvfEZ<1L|fsZ}1DP zcL6{N1rcz_>t$RL%>-OeE`1@Ko(RgeV863x$2ZHVq`#jp?2aE9C6%B%3T(GKj}D&x z{BP@)roYdp2hBUqI38y_fB_)1qm=fglLz6*Yrt)a6@6|eOZjg-)vsxa40J!l_1}cbZn?tOZ6mfN_XCYpn@7{gGa!nW=IFa`|c*kbf=H@@}4EWv7;r6Sn2!o)KqQQ0VW1!KT7Fq=(F z+=@X&(G(ZYxs`71NDOx(%uNh9b!p`@Y~`97S^k&{X_4`x?`YkHR-*7g<*IZBj(KC| zsZRxeR6b^$p(-5cfKdujzQ{ygoMYs~8(4}yAVv0+kmwihm?AZbY@5dCjq@=)DKfdY z_XBgn5vx4FO$(AQ)=`A$j&TS9Np(0XvukRA*4Db-#+J%AUUz(GrMONOCn-QA>CA0d zEAE!B$!tW3Pv#jvG_wbzt#^HLgFqc}lc-ksO3vhA;_RA;yh^4$WH{MC(}cm^*P^u$ zs#{bEqiAIf;A|-(qV9^nU9nX;yMrAVUeg7uMrV(YQ>%OOWJ-bl?wJ$$a*j^*PZa+c zOW%$x4cz%{kbuBG8YuVuCtMZ4vpP=gHtFL=l}skUijPfu`Cpk=e1siehJgpCB6aEO zp%n_T@Y3&-ah8FnfTwO73LMz9{-_AU4oxZ~n1be*jE~f5)=QlRo!S{I6|3bKeU7u3 z&GQ@114ry_8anHG(%-)M-Cw_@3`aZSQ_-e#eqjzi#F5?GM+%<&F~fgxPVpJq1E%g*k;ty#)1Iu&={KH4Myat3xYT!y7Fda?Lcs9I4f<*dCf zm{soNxAg;@nt_kDrTpUV1-y@ON{P^O$`layzzi6AR4vKQ46Z_cFO5#0e_rZ`* zo_En4G<@c7p1hyGxC9vI|9sK=)+J#x{+OfsxH)E%Ij7U@LFwR`y}!YhMl)xxy3!i2oU=pW;^hNFoF5^qg|y(^yEm|5u~>Gxu;jKwTi0EopVy41^Dc>n#E_Rx>b1@Y z_h@%c)M4_Tgc&25E*6A6zbpcLbP+mHlaW-#VSe40S6T4U= z6|_lLld+(Jub0JkQSu?EvU}H!xPGhIF@8^N)Qy0f$DWjv?KqX%A05fay`^gvGo>1{ z%Urk?&Yx0d@1n9?=XEa=+T1*-9@v;iFyFKxB|xj-)-u(AkxjkeB6R)+?W>iolulAA z-YY*EW1EsozPEChL_WT%>lMgc#<~yecej)d3D~@d-}fbCgtd@z)yb>_`_mJDoGn?GRWQ z@%I>gerBD#`*?LUpC^mGn^$v24`X91bpc{GTb!SeT6~cuEGNxkrYZhHS=`=otOXwo zwEO$*&ISz|=Et-HJXACph0bJaMBJM0(GqBu<2?SyWK@}tLa^whK)mht(@Z=*o(z5i zB~ZvKclFqyL4&RVmNCoz8}q9@p>s)>-7`18wru^dL_0n&y>7L(ez!aare=4Ze<@$E zX$qQqFHuL8cawKxyRahrWA#YY`qxVtYa%UeEr6M}E@XMUJ95MY0W#F^4S9i0H*km^ zkrm|ye`K~JG643pSne}E^CLdOJ1+CjO}R5V?$;RtwiQGeEYcpRX@WoZHv6T>t%mmw z6tM5}pb`~cbsw3=oX`Z)>E!C=tXGRm{3+_=*vfwNrloHOn?^oH>_XhGn>=cJ?Mcz83L7M zhB0=jlHi`=@grnnz;O8g2D`n`i&}^cO^=^*0*!3eJ!4#Rd*_U}@z@ zgUV1ZPh!07Y)0>f;+xogi#ltPTWxR>eBTrj&3#$0h|<>ViN#-=c(DC}#vvNQ9Fold9^P*+U+1 zUXTzTX09SpJ$_HK%Yyj1@b{*q-m*WeE0-@{`ihM9S_7TzwK=8WBy|Z}m~NAkI86)W;6p4={CxA?MWmv)jU0w88v1Q3w?26qnH2q&rEU#|MpK*cfwvazL;!&beT^<^bunG?Y1-gM77LQ@5 zLmTT3?Z)$}pd$9&ed(BwaXYhdNJGNfJg!e<>^k1Cao>0*UwH;xh8EB?wXZF0>xc1 zfzu+5o|h2kBDG2+AD zeU!p2UhlC_dJz@~OA*bI3-iEQfB;88xW7-b4t47mxG}8{_vt4D76u+BXj~LS0W=?1 zOqu#U6duFrv)Y7@n-jfq6YMGcu3J$1q4ok#2m_Zqh^0+Fh5lU@_S_JkG1$S{ zCOT0)u%vT#_nr^>=#|O^E4f(=3-;lM_#~MpzGz80wq1UAyy?av@Qw1HW!kZ0h>%@= z^&SLo>v{a8fE$`238H%LIL{8_i8?WyL`y((8+hIBG7DV4m_g^n$D0L<0u>QR1S+Qq zYiq9;87pDIS$A|qccjj+NNLCju~tKqB7A3qSS((YtTPMOMTpTsNce*wK^mh-hvsq^ zsQsSM0N>J^WpcPt*2K!DIY5HeO!^Hwq)$6Tg1qEDzN-0jj4Mv)kFd=t;vp%L$DVj@ zMmEjxIUq}@DY@`NVQ%v0xz~Na+9f^70DU{8gK8~+Jf2*25jEVhL*xD%pbR=T z1{QKXBTX%`G?UKB595Z0n$k$P+$1*mEE$`eT3S$l3C#L2Byfro4!{xZ7&n?)_!1#+ z7x^3tfOG9Et*D)!EWgJ z@ofzGnuenmdE=TB%7Ouwr#3vMM^bREivmMr%ilU8SS(1@Miw_0z#ipETrQv^toeI> zIl}_l)u#3rLG8NZ2bbE^iImz~M}&vg-AS6o>bxPX-2mx>6dIb&(fR11^Dd)&q`;Red}X#<|4CC(EpW`@8k{&B=4RRf=k9 z*<3RJ)icy(G#~|HqPs%N+}OpSz!YEc`3BmTw-X9WgT@92t8r!cW%jyTpD7evl`+r} ziNoU$Tls9-%VbTjb>FL|uVqtl;F1YrHFm%#MP4jK|6VKC`h1&{YtGvA-3C073+4Xb z_}^kBgR;j=^D?NPB&EFCrgrVtnk9E?1O=1if(Yk%z%YqAFn|jK8iUb&`SvTwpg!V` zy&MQp--p43q%W%5yIqVx5J}G(&nOSw$m%_|z2lJ9jyQSGh78+GO_ks*!&-;G_n-QJ zk^;FniSB?hH7SR0JU{^HRxPJn$VmFQu<=drFj@d+zPNJun6o#1_j#pJT$A%?BR?ye zMV79SC97NtzUC>wtU_yf#%PSd-Sg04@Zr1es%U+g@nqZ-_sSx(0$L@H&c z4ohlrO5z)hyBQUMxPCFpD^0IrvVDb1;jMa7GNZCKk%PsP zgaW)U7jcC-P0Z{%K3-59l@DTC-Jdkk%>(u7j?06_6v}90aJ@FIL8PU_P%#w9@F?kC z|MIz@ieOX}BX6A{+pq=fP@OBGE==))qDEr#UyYU(u+bEt;SH6E0@`Xn-6|hHbBa&i zd}pwuw1NzeB^}`&`+c^8+Vav6;^t2-_Ipz*=`sp0OGCWOPAXF+%pW&z3p-xr@X*P5 zL&!WqXfx!O|8@umZ+;)|5A~dmEHM}XuvEaoKR9URfBKwIJ;-`C3f+KbrF3{6UKk>I zD7d78S75Bpc^pu_F44~8I(DE4EzL0#hXIpI6{b_Zl9wKcQok!f1H)mBgHb4*dvc{i z!%PYk0Kx{e_Qw?Dha-;tMc>5Ab^~d75hc2zB1As?WTN>sYZqiR=6t{PtKxoR zj;ct%Jg!>Sr$VI4^yMUtDsst?wIpuj!HEHxopC7RW(RQSzjLO|!G7+F$oJ!j%tUZY z=wwJlu%RM>gGh|Cu6;gCNLrpPnwAekHXA$w3{1g(nodjeL&kbkxdZcDf*R{LJ(2Bgs2t@vFOxc^Wh-@sJZzboWBIMYjJL_OyD6T z6u?n3lf~1=ChCHtM5zjD(3GWG zS~llBo|%w&b`lR6SX!?I(dzau7;7Xdrzl!&dt-Hlgd)d`jBnMIommjYXWE}7XyXB@MX@&s++GB;&s{5qI5x-xK(JV{vH zt!~p4lu2L&reNF#jd|sizF#OoYYI|4N#dtG5Eu(0$ zSd6i9kZeUhRM6`WLP8qLoek&p$)LjI<9#5{aEaCYNc+RZGxkd?O3n8#B#A^s*2wOC zx{;|rTk^eqLbIzk@#SMB5Z#6C$G!)Eo#cs$nW4MgKK9FdM0|tv(otSA_H_jZg1k2f zJk$BEVWIlyd0C#^r>1_JgBLn?J2^WiRPw4F#4_9_Oj=WNBPEhLMJiD9Lrp`-K~&71 z@(pAbG8_p`D?5@fPay0YwYDVPV!FEBq#8ut`@;-|9sNLT9kUEVvH*z7u5(;Q7W;Zb zXvt5zjFp=0@|T3OhmgTPx~sDU6OO7a?FP-zu=ORz0(YodCM3@Bk^_VC;INv|XdY9S z?2-kQ9n9^k5eoC8Hyf9q{(bsMfR|k;e0GcRX%BFLyrn#Hk8tJ_TA)Rq^3ISGM#(fh z#YSt4h{O%_2`b^H(ckT&0=|z5it5EuIrrVa6|knagU3@nU$i*Pn-F4>1pL|2<^K4w z{{_W_y!=H>?)}Yti^cvq{n^$2t^6JM6@HIR{hj`?)i0%uV*RxSN^8?VH_QZZ^BuGT+M>*gJ;5nafDFcfw^)8MxVe;6i@=Y(2{D zuc9+k4CB&|+R|6#_D|ey+fM~qN%gBt{#L! zW$>XSdPNtdcUs0<%6c9!O4{)W5M18aF`BzlFw4-b!zb7NrRPGT={!Ou zeXI#Hi0j*i-<2Ttb|i{VopK8yd$u_2;R4k#*z-&7uydq>AxkF@CE4KjCFq@FJ9)l- zNs#_V?Je<>{+e@C)rP9|wj`!fTB8hc@dtN(xF>DPd-r!Gdf)jOHq}4YTm!$8n#g%c zD=>cP=OCV)=Ohas-Vv_$+Sk{jW_E{1Uv&7LPFVX+{l}w|%>4FdfD#uGpmmbLo=mhb zve(~lZ8;L?!h4~H+$cs9`!vOP!-nnEt*G66c;$yhHlT9;aO1Hw$XB@{+{0h9=Z=J1|4jv->s1Y8Y%QB`-Q) zzrH-R9}jc;Jk96f^aik;$MLE+dS-Y;GMnd~ksQAHH0OK7oXO0N&W~zQF6zfoOC;pp zq6&QIwmu8Xt2(w=Qs2{e2qx|kjRL3_35!Do{{W^lpj=(elT9ED9 zdV||u+2PS{w1mZuh|PAe)1)-qQ|;mxsv=HQS@hGJRXDUCs`U%d)x?DKrT`)y9xA$_I-RrZ4nT_?L*>B%_%^r#VwdPh z{00aP2H*xBsn|NgT)+|@k2ZvxrV_;^M^`AHNtLaN;dBb@i-U@1+m0v1CbwKX>sfwO z4h~D8F)(+ju;c@vnE2jGtZ=7*LDd%Hw!aW8ngq$g<$3tB91A29=USlnsyjekQg;33gJBqs zT{owN*{)gdYF=0*#WnmCr$9VfWKFbVL*-;8cIc>v70@M^@_F&0vFrIC z3$27UM8+FI9cEqpo-lK4ZG*zvkk$}NjHH>b{j3u%8ubuG0}yOw0Ory{Vj3IbLtZ`M zo=K(#a&5pwJ!VOJOzayyZ9$+DjiV`jwN?P;ydI1Pv z*!ng2s-}I&mJDrH16$=p1&RaqZHuFni(Tir6M#lg%r=j~ z-fg*008kA`#+t^Rc|{!yU4LT z!p0qvCvX0w1Jk~Zurs@NoV0%}i2$tKB*NzlcFv1*)zWxb9?aM)5CG6aHxUqw82w<+ zY4#zNJ6N6T=(MOk1Dn^YG!r}pK{rttL0e3gMu?Fnd@VxGyx{duK(s$o3C zV}u}-6I-+4-!@u+<1WLgh2rw_?bVfn00Cyv6jG*KOU%=yF=fx0cK5)jGowX*Wz9F1 z@f7L9I`V_$*mzC{!~Yp(aB{!YO@2t9>PQa6LsN$_ZH$Eh!=?`FztR)hSOxnQEFg@8 znPNSt+1|ngX3x*lbA_h1TVALoR%Tr`JVR)0 zn2q!ik1DO=3O&}>WF3|Vq9_?aPzcQXdK$YOr0d%2`Gn8MG^~zzISO~&rom|Z)hhoP zw3Q6}L{QF;WS{yW_h3!wuSF_x&|jgS5AtTO8?1#d(jR`bzihS;cjHhlI;k7sX>z#w z5svyROPOZTg@v3Zt9NU-jg|G2mut3Cc=4ZYI7p6QF2l8$jmBN_>Lyx_$F7!*XsRvg+d6H!R7*Bf* z#cq57K}oLQ$WZv+vA#mMb9NXUpV2LDwt$in{rX^a8DRp-<%diGtK{gKTEG77zIAbj z=$^^_6_UxBjDg;~J>bM6_$^YQN1h^weYI-Flgbe&!3brmRc35=)(0qFxGhvwcS~8V z`fARDP5C$75OKokX3cr~7}Ms0jZ?7gI`y3rnOTia92e&3sMQR3_5=;WL;}%zxZzo$ z7j>dx8$(70xwqBtGnhOifa9GJ5GcQ!`LS%AI)ty`e?o=rN{X}G22hK&5UO9bJHk?p zv7ZZ-S@AJ7d$gaLtak0$m5ICt^Rdm!!-+qc*v^dOBAL1O#573gu45^k2ErKuupE~z zEEO|1su9Cj-&k6zj~Ja2T_GI!Br4VgniKV70{exBNdv;{8^ zqU8dkr{k@)6eb6#H>pPj+L`{Cc@^N-=o0Hc8{0H8?TeYcfnM?H2bP3xbH zRYAqIrr6PwfLXU(uWE@=vydL-FI91G4g5J9-&+#ATTh;6lYy|g|72UOKoTKL01z() zGiwIbIibiGx$n=U4LP}*?B-dwq_zN_tNi9=rz{7M{`p1RINkCcOst(j@zrJkP7fd> zkig;6^9UJNu=F!%IH>}{MgY~>>PHo@=nJF|8CvHX*Pmy3-}@50vk3LkO!p?Tu@9Mj zGtH(WOX*`E#EcLts29~^q?2e*#E_7LS5H%*3kk}=^l5ZveO%Sa)>U@qO0k?vsx9M} zaz1i&=>W-=nT)$t-tyENPJld|ZUEd9w}`EUoGo>LUL^D#bu!$+S#el9_2_Ivgl z7~mpv>;}abHeOO6Jr=?6si(W?8dW%N5b~{WeQT`xz}1?(*>zJ6z=w- z0AQJe&{YH(%`nLxKB;_rbEfgl`fs`G;V$g07k0magZm7!tH+LVTSN`cixnDQ3Rwc2 z0{w7v^dYS3s~_N}4AeTNf4egabje#}{8WFyTs)P$)K9$i>H0bU{4J}TS_E8k0Uw{` z9RYKy9X?OT7+LrWIVwcHGvxSLNvE&A{NdpBTXla;fs&d6LKOqEEipXNNR_6|UA+2tXd-i_wb*X+K6 zQhXqreg!qUWqsJBL`$Z(ec^~Th!=WV0_RK`dEGJ&sa4nwJ882A>;dLAf((x0?is8@ zrmT<)CyKt*16n!5iEj3ORjzhJmlOk14ef;=8@}?&9rC&LSUjdiX(V@f4Bo za-wJE_f)%PFWSEVdytoH1xajOzaJ6<^}&f`ku5Eq{iWvh9zC)1 z2F*4{w#W3>Ry`KKt#aeDU|%66$E+7)F!tScauyT~feX}vP&>QR$Ww-Wl8=dkjCu;O zYkIYoo|{ypfz`a_KlIoDg!;-mG|`lfx$qj;SJGN}4_GgKST3K#hl!nw@h2 z4y|TcI}BXLAXBmpBtUfRPg+qy0a$KYzM3v>(FIbIjL4FZMKm;%J+|+>6Da=nm=fUQ zBFg+*+p4D-lJ`bI_2O-V$f8qS@hg4Jha+8($p+1UxNo<<>Bw0;V?tqMti|LsEq;DF za9c{q1(LHJz8Rz^r~(LI8N>~+`m5!7w0WYJAMd3@#J#ZyB}fv;te0kqw5t66 z)b0ta4P;l4mt1Tu-Jqtb)Zq6@s;4Xedx59nLJ=B(9=0z^E6= zelsV;=KX}EXwvO_6KaPex;8iw!vqc(8LYo$7G8cJUdhq%7eg?~;^)hF` z20(sP;qssqvvB2dL(LBb!{4_F#K*?~sMmuooq@1YV71Or0PxKFA+IX|hOH=IV~_ zw|voMexGTmH;;1{>8jk{RVFfef4uokJj`tt9YiduHwzQs9Q~Rr1JU9Rm&hDWF%yde z?YK<0vW-PDXG6_2bokZ{Z0QI@7IT0xTi?5;SKW9|##&(4-@$01A3)JZOq5MZf{BnA zVo7${K^>+QxfZY`W{M735p@?^@cE)$wG6fdA@P28eaLR7Fx>i5d)lOGT43>N6oOp> zD)GimNkG(su@ zB9+A}5$L}xV0r-jPPXt3$pjh4oapwAf>T9jDTq<@AUuC3MMPM1w7 zM!lt~rOFM1@2q#y&fv5M?p``a;B?lV$Dm!iN#Nd-@)NBuTR%d+O*&_^Oqy46Skb)#mnOm4^7GFtE>!sf3pb|PA)n|Kz94Fj&FSo zQZ818G&3Bkh5OKc2#l~Et?Jr5mP-|Bjez`B0wD|O32LR!9qW7wca2pIL(NVw@285T zGjh;DGs4H}9BUBp9tSHMjUd*F4wzU#DLWqtpqM5G8#92?G)Wvoyu@eDg5#|V&D)8y zXS8wd0T(!;lC9 z$O?X>>nQCg4%x}-YxbXOM$^1>a0H?T5xw;;yl;S+r0HT>Q+mqqk8_p-14}i$|}SXv%wH zVvPSASofrb-v*FJWuU{;2J=Pj_vxJYkfyeT9O&c+H4W3A6VTmtNF%7=!Eg#7dW_q= zS^&bEd!(hts5NsSyhhS3vhbCl4JAr93>z9mE6-+aRxSgc}O z#@XEkVL`9}smhDOKIh_rqXrgikfz8VWsGrov-45_C4c*t+qvXR6N4}Kw38!xjX@mq zc~jb&il2IhUAOYQ8$}lpKE_7ilC9Tu1?3Mt4Hh-?Tlow6qw^WNaK9ajdZ8j9@YxP| z{TcCOj`lf7%ijL2>dZZtd(U2Q=IU~^cwMtfES~3mL7M72L!;3fi`PAr$FCWR#QzFf z;|!|ngDF77cI<6u!cVEN!|PVSPaJcB6m()>S>?$$FEuLg`aO~B?qx_Wx^6gWh54tl zzaVYH^r`15bIzNfk4AJ==VAHw3&zk}t%a$1eVy&*{aio6565$K)s>qikGTP(nh$~c zom??zc#?D0VGpo@3}?;f^Hx+NDS*1(Q_M)s(g!2nuyb2Q%-Jn+e+r5c@DCK1r33N1 z81O43YaIn`Ata7#2_Lg9Yrj`cuON+9gl!RS;721Dgt8xs3YrqCQqybkkhBRmHov}z^(k0j z*CW(FcZL?>JP0YY81w>WEiv3W83b{D_uKAz$3$Lx;EVn}V*m_a-`>qFPzcN|Y#)yX z1d^m321z?eDt>=pXD3L?-VF%EZELSa)5Bp+_xktB*5>o2Lg`F7him8O!jAt(c;*?E z+ek5){+GW9!5vHD*s-k8tnLDg4F?LuacHWSWAdV)q={dZFvi1@4aAQ~wBBX6-DAdr zOSoN1Fb+JQFiO!e0kbn*BT#~zIViR9xcS{?!&<+4!D6@0z!Y5UQAOYuhnntzL10d~ zVa}1{<$YAaM2smeC64j5m?cK)QZZM0zhelnjNSo}k~wwQSduHd%W9IXouNNP!#T3l zmcDE#rx9)IA7u(*KKqWV+Ki?r+<``x5RLv)GwXL6PyrgEBYEgVF(g?GPG#Ghc1!5J ziG9uIV^M=k8M&QLIpt(t9_{Z-G8L78BB*hwQ%L%lQ5ALBX?$*%$S{ktHWRh6#g8?4 z`abK1i+ff4n0QejOyT3pilHe63jjRanrLF@EVJ?KbHO=Y!p(*3>(=@=32$y&pDnj@ob38$>#%ks^dgh%E>&4oMtLr{pV^R7k!o3 zk0yA=gCT|-PNDSL7DNyL!W&8W@mZqAVo-%M=ACR}*@6F#ge(5jz*B{TH-fJxN`~&Y!vjzW+eb$T)2G&7CIJO+7~GG5#FW()kF;&!9Gj$25w=edG$5^X zI&^fv0oJ_tOCEPeUae=|E*3f@?jTTrq0o> zsrq2(8;Iq_5WU!*K`x4{B(zz(VRtDByANkhG2k(_VgD##FxOzxP^ONawePa48CwvI zPZ_jB;NhfCXj|ckoJGkCz>RHJYnlhi@<4e*SO#l`mjMvkya6Wj$(~a(N1Do{3VDG< zY)~kDhf4I7W=#?kz1G~kzF+tA!yKns=AIrQB?ye`Q)Prsf)-+5M*@rk{9j5cY;$SW z5!KjE`x2B=*lu1I2A8n$@VDGWTZxA5JJf@dw`Ps&q=ONHT1RnvyRqqX#Vmq^q+AVh zhiKwjAB8c=F%TA8S${R@)EM0I~(tX$3I z==0%PjFv_XDLDx1_-CU5TG6r5HiCpi^mpR&@gY>UTj__cRG$V0xAZObkIAgm@uLPI zoDkR{N}`PQ5uFdfSSei@)KT9{kag;3vSb6%j@f&gHoE~I^DhT}_r=%3b?>QEAz|nl zrGbQ0EEMm_9%-^3gDVqcPWQ^0-tOMP4tSJ&vHfX=Hr-8|U1wy7>&1GoHR95vncwVj z4s{cUb8e=sbF>=Yz{}gX5))-NXKXm^HlrnlC|>FGQxmFB*&&9I{Ib9L4F z%7w<^Q9EBeBjuBf488;XpbDbsX<4y1q31)@%f1Cwh`Rz-Y@EUbqWrx2X;-@Rf|jnQ z>GN-I+{SYX?T!h>LYWml@BY`#9zXp#dq*7byd;qx_uWEbXP*rJv{?7ed>TEhtn^7U z#J9b}Jq|1V`CF)KFr-uv^DNc$9GALQ@A7BE;ZsNf+=$Xrl=U5EKlfnWCYZmzipO;2 zK((#?ondc@ynB(X!Ll=cDW=`hK963Fc0)qF>{WY}jq}|j0fO0)TDqLwFJM=yV8e28 z;2CKd@S8^IITvyQ>O`)HDOdZf#QB2WW`DmqBgivl?HT zChtvVWj1lhKkh+7RhWQ?fD^0w-oWBQ;1l+YR!5A)gNlz>|NGrj-*Lb*jjs2Ra}*cb zFs$0rpbNh)9Gtjv0Ts3JXuyJ<%K;~(8=GT~jYezC#222ck^aaqzO#bBfCsRTsKqA8 zLLf1w_D2LPMi6lZ9HxxSI-6?;z2N75dq4Cmha4RnI*{^Pv*Ya?sF)$2OvLG9II+CC zjUs0AS*Td7@i2eFfwwk-Y(|405QU-TF95^emR$|cA}Khdh1R;9WM$FH$^Et7q!+tW zCk>&N4bv_pj5Uo9yHuH08Z57l5~d$J4oEnuxvVkaJMG_ADMb-!b0zA#l7*>#n^ZE57YS8b zqdc6HvcI(l5(-BtV}kbho(CpxX0=mkwidvD#Fj^LqCdWW7F zRnQQ)^;)JP074I9llE(l^DUz?C#T_EQ_I5zgXT|7Uy0TQ*=J0xzvPKcK|dqZ4kEZ3 zef}?Ki-+e?B&w$7neJ-}XZ=Gw6h(`Uy$$Iyk_&Jz^I~I_qS{Bu#KI|M zO-e~jr}v7+oeSgu{WSwWurxS0qoBpa1sC6njbFeDp7cr6rbjAGk_kn5bEJ0U$ARt% z8Z`YjXF9wQXlSXD)8^$|opJ{?tz75zeyS9M(U1%;=!h5Eq9uh`kmyu%!QNnNw1C8{ z^1Xjpi~zu?)v$7sYCuDka_1Ht)e+26gLMi{A|-34CdD;@_(z+}__FVMK-RnAN;C>5k(Dt{h01Jtd$ zRTfxs&hFbJ87HLnQS}pVxb#UIxYuG-5<6%73AE_>9|=3?pc=;s(7)t=rM&TerCX>dIcHWS*149YftKTJZrj&0mrU2-M;x*8uMtN`5@xkGW`;#M}ULq>R#e*0@E6nO{Z^@T7q>D z!A}G(R@2RJh3uXKE4)9529{}4h7it01nL*;j@9bi4G|~B{ufzkQ;_9xnCGs2SQ$XW zqO8nr)&j1oeSvuoI!DFy`L=(C=5Y+Xxa6?tOdUiRBgsB%=>nOp%^=-GfDr?>EcCkC z)4E<+xk4U~22Xz5fiaCGN?NQ@1MdB3^a(G35=OHzDUn_I&f~dF61D{ z!{II|BjyX!#`9e{vCU(WFooOK+?VD;%@8;XlS7l2aUn0|5}<;wME*Tg!_NkVdjSyL z{opK8Qu!6yZ$u!Okj$Q@2BZjEv204e%n7ImqPJ(3%2=ANSv6WM*NZ$ZcJpk7X1P1> z0I;fZpik5qrdFamXw-dwSW}G1$tZ{!O0Y)Aq@n)vwemv8$#fOQ#0DZ$cMv0k@X zA4>;tPF^=h2e}%t5jNeR`g2l4W(h6v+Kz7wxLP^ko=H;9QOn%-` zUu&C;7HY938JL=`M;oE-@*(PA=GnV3ho{@PTs7y}^TqHJ-7r!!(_ppDN!9dc(X=rh1{AWF5@Y;N zpJLg8z6a6%Gms%|BP9P+T1OlYU+H+lkS!%|b8X8x5WpSEru*G!qdCKogF>w%BNNE+ z7L!a%amcS1+XrRy8L&DBF}#g^%{3hhx44kT8;xVJ2DDLj#ba2LmMGjp+u{8Dc42|Ii~?oDA&P?PVmrn(;|$0TdI~F$Gt5G>Yh; z0={Y{YFzJPrk)pZ#}x!(-9!$&-TQXmskyqwI3@;9azcM`ao9sJW)zgDh{LM)_*PjdJ&|+kz=l+*+kPV>wslWX zPGapbPXOrG-mPeRyz$ntOmJSlJ0k>IhJFV}G`Idh0ya3e(Te{tLN2`P+0=Zj`t8ThyAlB7Tm*&lMkd0WGmojo@iUeT=J;by zN*h4qTq5+a4Njrgen=+72o|ge!Q-yA8?Ztu=vvm)4BOcKG|174A8oHKV@nQTn+&a) z+0hT*92_Fl5|3VHxlH?;52~Cc)Bev2?Dux{<%t|T0&PP}T^xg@0M)nm^2zh#LE<_~ z=&-oB`C04NYzf|-I<3>D_WeqZ$tJCdE;gV4TDn0{e&Ry{aF z*u_>f`*9k{P~-ZNzTu?PF3w7|W5mM-V0l3G3C;|b*vT!ePfm6~`u*{r759k8K){S^ z2ctcLZSVJ40p&$_|5s2-G%zSo7uUbu-)aKo51(KrQ8~-ZG^IVbXoMhCZom!e^TuuX8kQ4+PZX}lYT4CP|gz@j4 z4G)U-508Ay9ruUk+o0aI5GIbc?0XC8S~4XzN64cF`R9tNilP;#{Hqg6!*1p#Q>XB}0?omhbf+knX`ofavl(C$N@n5a@hWR={p~7UTPxd>a|B9gx+_gl#8l zhdK(+sxF&uY*5g@z45qj{I5Abjo%}`F~9eZkM_ThIsU(oGycEtv%J6Wr#!#kr#Zjh z|5N^D{SF!Z=%xG}{Mvy$@16L)|DO2$hCSpx{Mr1$f7s3a`}`+f< z*~b-9;B&26$%|5(sx6J^>D_h9{=BzsTAkrl zSlWHN?J-nkJn|8&vOn?{N#?pE0Nt7l{Rd=4oN&dl>~!y(2MHz3&SQtIC91|DnJ{$i z1wsIMWjY~KVeaZKf!*q098g2w=AR{Zw<5fQ{mpFX^H-%{;D4}4s&Xt8<8tjYKD zL0PFSvJRw3>5ugz-`R;%Sb?sZWn?YJIgrsb2=>C66zNn(HKCGZ?tOC7q1P*je!3ef z$mIFjLh;i}xU-F%;{<|zGt+3ti&B}Kl1a5OmG3vPl168=n2fF_>)rM={Q9k8C}Cwk zum<{d6QMV~30?CEne8s+K4Te~p|d~t8=}O-X@3Rm<~pTOvitREL3Vi@D9G;nH%luf zCS>-UJ|_f@F*<`nSmm6%calCPIE37%!inDXBTX!=qs!6ZDFNFyml;w>21@eC(UI;p z_4sl5pHG1>eda#~=;d(^7~R>8f*p2Bx?N(*H&JG`883&Q)r=;R*E6(nz= zeOleTf=!Hw#@Fcw31J0Iw6QQds8Y+4{hB?6o&)2nRyCg@uVb7`r~4TXb07J^pRPPf zt3YjZOfiG$EDbHQ=9Exi@(|+ls;LGG$jsSQ(b!1@Ntb`lxIH{zOBocd0cY$}$?0a6B;ock4Fc;gCId{VDM!jrCGiyqj0#FfaDr3oLNyBHSen;&| z*u?0j`m>|84rMrkbGwIvz9}96EFp6j2f{=vvM4k^$AEyyR5yn;UnqXwp!%aMC~_;K z1s2H6H0GN5iJ6U&w~olj(s8?IqusX@9lfGCmyuLTW?{YptbO>!WB$pZz}RGTzx!(% zw7Ah-RazIO;ime*eQIU=-^5(8&EIsshU}T*(a$HY7C%WJO)%-ac+oUJt6RfK@2?2M z%OQdQSrQvgta>R13;<xmMj&`Ig$q`y%?^mcnqCEq%sE^^j^3WF-< zsa|SvzqU0oJC78uO}QcL%YA-ypvKo}%%#_7E9#`9l}VUfMir z9J-lbPDSNZu4HE*4dd~fX=8I>hhbzhk*dMjhUEd}lL#}U)mS*(`X2Kq0&scDf$5fr zpenlzhNN-X6;wvlx9&3AiCAZ66($;H78WwPbjFd|kSnd~pzz?WMMlZjNYLt~%rt&` ztM%#Mqt(A!Zd}=R$}mHDQ^bAPRSMCPi;`e7p@fB#cXCC@xX{7jQJ)Ul{3pdiQ<`RS z1}oh*$J28HVI>!OiO6@2uEP-Gf+3&Fy#P+bkjItF{N^aT%YoMb9^#pzA9Ivqy}$xk z?KE8nJ!|zge$Q6b=cYobbLM=VN?$Z83@FTTDr}=#hf7W(1P}y&k(H0e@XX2B9sGUe z<(^4yq}KrcWlJ8R8=Z(K|HCPJ(y=-(b!Zs0I~!`fYP`#tc+GK(Hu6c(CesUYEr(+2JIUdMx_; zxs@5?t3V6F)JraCo~8Fs$41^Ib5CrY`xsqM`oLs3agI zBQ1vN$2_rp=e?eM2~3nLU-BsPHQgx^*P zOKHK2bM%H+9U=oajZ`pAQzydXK(lwJLan-e0SS?w{X}bW5)@UX9_g143NW39!y@A= zktC+Jvlp$QXP~R*$G1{Vniw7I0FT2^7C;g$EB=a^3S0Wq4QA-_fQI;jK$~P6Y98gcpR^tTd8&hdu3XjFl@O zRlrvz&BraD_u(Psw`GIHtoaABt0g+-8$7i0_bm$o4JA5YHr)23f!{FW@D3@_9VfYL z13gHb?rDFVF$VFTcvL@~A(qcG?c7@A+@|gaJ#4CcGnMGx_aqN%O+At(-Zrry%7 zEi-C!z|Y|gR-RHDfLgYs5etM9xvZ4f@croJsf-Y$JT-?M#V;Qtva5A@{!c#DDjimN{zQ62ZE&DwHc3o)9D!7X2^6< za-Nm%cwKR3xz9j~BT+c)7IZ)no(xq%9D}2+blZ~QYNd0)Ck3&)X7&3YyYlUt)sNv# z+vQf1umFx~ROI6@-ZtmfxVi0*^Iz~)=Afh`S#9A%Fwj3p`)L^Rz zSXQE|i5vKv)Ea(vhbqv%&KhjXlnyu{fLMi5PAgGWF>To}cE|3R4f} zuZObp;X<~M=xCNLEL-6_0A`l+!@JAzXqYm=^ZL0qM7N`dqO(Z?6kZNPj?l&@!vH-% z!oQ%E-Mt8`SHa9^#ko`E0#Mf$1(HLjtDzWLsQ_-c3<6(tU+zyNO&q zHb~a|Lrguuczi>ha#J6xLrKz62xN)=0CAyDAUkhO1v%N_R9@(~@SWN}NhS&He0V=c z{lOEJ;)_Q;h>~-rKZ30lPPEEoQES4jP1Nrv1QAd$Cn{-58npuvBkx6p3*yB#+X!FqPh>Xn6z+M+JsX>W$ff~z|l{KCW8#ZcGoIZaWfyf2)Wm&*F zgwt9UJPd*KifM2{h9&fari{mZic?HWl_F#_5j0@MEDCNuuhIkZFwG zXQ3$&r$w$y^IWHmIF2ipd_OinBe=c?BKW79IKmV7`cqYRF7WbsHeE7Ua&Q>Je>>VN zoGhh+4p~D`Q}Y7Ue9OV4KcWGNMnw7wE)DE1nTCSPbv6%6tq}tfR^uL}4ZI?jE#o81 zCjvkgN$Ic+eOaFYKEJ2L zm28hm{%HZJ3nS7q8~;7TpvThg7#C{&QxuTJgb@;`55Du$LZ(O24!_wRg%yDR^!VU- zn_--iT^(r~R))3J-fIqDhn8APC+wL$hBiJ>$XkeZ$X?D`=Ig@pU(JTgAvehmOstNc zO~1U8LgKRU6ruY3y3U2YSmW;JF|JC|5jadN4@-Ke6^4>G?SQc(7-B9eF3~(kT^|pf zG`n}rV1L!zl%B-%vK!*FG^{%ymlNUmzJBI1JlinGaS0WgdZZpg!052 zS{wP|8*<{+>}(Z({fBfuM1_7X;F(Qa6aFq$CWCxBWJi~N1u^ZsnJzGvQd(GRI!{x* zoByc1#xTdpdO}w_%KDcDq466Jml@MQK|XlK*|~vcCFAOw3}hiT7QC$!Pb&U9k~y$7 z`dS0#L8enSZ~8OnAT2T#(o43R2^6$3h<<1Oo6WbNp7wIsGx|{__~d~tU|**Cok$x=gYt1g2%+`uLYM2L zuMYpc_Wm)@ckhbkRxwHvY6Nz({oLpCaZnso{o-{x)=O&1D^?YJ1A~AmH79w<7Bnqq z5(4u{K3p9g@eK7s0&E3`Gn2Ri#kc-@wrPFVz4<6Nn%4F66pN3Kwpi*BN(vr_CthNQ zZ_fbV^AUa?&C9b}c*cPXQ;3E7X?0QV%I#0=m8E1J2^*KZfhjp<3XIkhO_4U{C{7M6 zW%Gf4F-_cKap^L**FETDy?VmT;xM|JQlvksx?ih5^53`rzW(Rl6Th$TuHQ$U-|ySp z-|xpB|KHb{-{1FL-rvtt-~TJ?e)>-Ry8ldG`Z_$?-$8%Bp7P%RKKA|ye#71#``+;_ z3maq?qyBy;Pt#=;dynVr96Gkcd$_}$_Yt!t0xLajsXlnx#&!RkIL&ziqzMt_MZrvC zq)2hiT4D1Iz@Nqg2Z0D46Zd>A(vJVMsZrIpcwW0!mmSc#k&GXo2&`?+W2X@u z?Y)LlmhPh7HiG5i3|Xe?o}Om|O02B1q<}29@kjU2tK0u=EWlK!Jh|b@A1;lE-<0j8 zk@iV#!(~qea0Qffg@4)()PC~%Z4}&5VcO=+yPet|AzTa5l6Ym;RiFJh`rfW~dg)bj z6k4Z~{c!$fZ}21c9NWb^k;;tcTiUg-VhDM0{@chSi}YI@WAi7Y zvS_HAdUO4JTzuYAWcnez^8TSy@i6U+og~2CHH;#xZ@>Q#>spt2)hk^QTK}Dz4%qKK zN0TH6YLv2^l)5*BPK@GHlEg_HYc-%7w?r%iQ!@Oip6s`ikmpUP*?(crjU7VJy%LO4 zMVR?WSImTK!|6Xa{KZ{VuWx&)(|Hb7z{7WVc)V0pf(3FapyiiZdYt&B_v zg_6Oof%C{XAhsyK56uucFE5$0!`|x?RMG7|jHFC2J8pt?#xE>HZ0|(Y7Gc3rAhP8% z8?`s}n~@(rVi09v+no;pg`O`WJV7rwUrXFxR8-x~+NOuh=Kl^1RPBXl9ijuw;N~x} z1>?QZnzBJmH4K^PZh8sYQEPy~23EKsLP@ZsCi1%hL@miVa5goX3f>Eia>;9)>yL>1 z&nJx7cIid%#ffZ1N<@eTfj4{0?W!Vnv|fQe*YVnLxh&oNKZr6v?0nW=b#+NUc1Xj4 z29$LknG-Zl8FtwkpAt2(cT8jid{hoLMX3EG#)PR_(qP-bA zupnO?LZN!MEP#Z3_~>6tqoO+Aqamrkj+Q?QfDsbhU=IrePY*}Up#enGVZ~V-+LH8i zhRHNfJJ39;z0SI4fq_^6-~36BHgMT(NRQ)+`MF`N?94rSFhgAY_1KrySDNJa=fevi;6}7beehwRO8K!7lkTXN6;>^pK%0qk89gnGVIjzakX4wh zc=`{e4e%nHc8a;nn>F;wq_QC@;9Fp%$BDj<~A1-Y-BUOo>6EN!BCVDrf)Bz z3ntPh+#Q`#k`G+M4}ohRt7ZicXmUNJ8OEz2$|q2{=}(!!{~4?RGkZT(CdjEouv{#Q zzuaQ*?p1K!^F|3?iu-%#T>-wdP)u^mjg>y@7xD`nxT`NXH<-SU!r9@VYU7r&8mZQ; zDh1s^h@axnfs8VqjJioQ?9ZuMunL=!DtyfF$tEUc83>=nhXk69FyFd){~mX5Na=#1 zyI@><_SsmVZ#DjnVDoWJj|(x446p6NwO}rX4;Tw9$Ggq9$AdPU783){NBmme9D-#% z)g%@{Gxt+E(X{V~!#>(8`~jTR=5x0-4!fU`gILy%Bq{H;kv3nYpIsuwy}xre3=9LF z75Y>N0RRid9E1eXZzf7}yCP~2Xff<*O@1K!3nWuvTtc!B!?LR^cJJ&)@zb|I27i<< z<>yPmmo!D&MA$ea2zOwp1%Tv%MEll@Av=#$oC#dCenh=zS5+TM*-J>=qrtTdwPQsZ zTq|m7_m}7+uwe%~xf2D+jRHTe97=yU@-NubL-_OFY=!+b;Q=Z=FRsqJi-P~wky#F# zQpT$jkFJENDKrIdiS=v&X4pMcQqU4#toN3G8ALm~{DKH7ApD_HiMH&?f!zS|HU0Q3 zk$e89LQ`HReIEpWmBT?Nv2_)NOrZBQw!{|_poeShqM7JM*i8JWZnj(a6nH5*4CV+c z0JLv(WUfLbE;$u%oZo*OeqhhHHJ52k&;+h#lSDjW1^}~WX0@W8qG%M*-&trD-3WQ9$T}hIgdM zR$_hlJ6(8BKst8AP_lT++9sZMlIH@dW(37Z`KeiWmB#c&DB^~JXirX;10aqu)pC5k zWn0;D;L2-e=S9({?c6(z>T4k-mBVMQ9LlI^eh&;)gIT&~@YgY#J(hl>WGGo8sx}CZ zgS^D1k!*k0rhQv3^TZPw>-kk!#v8f(;u*1uCixGvQwce)*M=4J7^5V*_4a9<#?qGY z6U?#tETxmG*I@C4S8g~fano`yX64+S_2VexWyq|DjL%!>l7(}&|J#yiZO;=7erD7 zzYmg8k@6LYhN zQhxQ(!{9% zS(ZkoeoWV*8{`dls7po~74>b=aTH0a`&5*ed$dC@{4$Ni38y_37nxj~h=N8&*fYvH zjbJw9Yc!$ChK_x$hT*};PHSsk7o|=J*^mwWqO6G*nu=seT_qWF43`xTI)+PdA;GfV zP3W@dlvUUlQKG<=Nwp5uW=MmEMPd1cB5f%5zI{XV zS3D;G>hHz7%b4AjV^5~DZcp;lK-LRjX$7zD1_U6P&-Df)9Gs(S_mqFx3iz0n=CA?gvoW1KDf_>=;E}#KuUU0S3)1A)OrKUGj zE5e8&=y`}ZUvVZqv#W@52Kv?Q2v7TUu6$1=1Haf8KYfxJI}Et?g$6)#I{b;73mRoI zztVgqcpgg8?QBqS9pLxTzJc-FdFug@Ye8+mR@~QAP$JWE=T@B ze6iFos?(gjurW5rTSW6b9*BKd3CD@TNU4X<^2Njhr|4jiC?+tH*GO>(8iT&|#z4Or zGZ%GIw0=z}`L71;Ko`@ue*Q6|bM<|QqDTnI44K^IdBs7XL>L5dA%SuJiycyG2fQJx zz7NRXqu8Q?1wQ&&vCylUnUDXNq0 z=LZS6q(;hHOa@YxX+djLB3KB`9MP1(Ec~dYZOZu@>Q&Xyz*Zh$!OX1`G2|-(15Fq# zXxXUi<57>{Bg?mmdD*-~#k}b$0Js$!f6P|hKPN_j|+D=K8Iy$L=SwvUIaDGLTbEZ{+AzdcoE&Dn$%{Of-m0F0i*)IaJ#` zLKORxS-_>UDsCo2IV-U;`!bm!CJ1&P@LZ132k_Z%4^j2;*zUdiU#jA}-~dw*8haSG z@HDkQc^NVg0;?NPWzbN>Q!BEwcQ79*dK;^Mi3Wl|e3Ru9J`IYa!-5!?;FxtP*#o1^ zq2`i7R8)asRVeCsu^=7N==7KPH%2nTKbGVMSOU0yl8zQ{=Sk8EGDt7G{q~rlW#Sh;1YHL(yB9AL|0VF0DiFAmZK`sCpuWtyZMr`yqudi81uj;+wrwH%tf(Fv;kaxVc{z8Pn8Jc z4A0rbB2QsXe+E`X0&2=}I5khbC=)tfbZEM|Tqmk8r_s53@%rRXxVHOwl%KXb6H@Qh zK7V%yR=k172muZ}K)b>R%IM>FsEE(YIEHU10x;~fEN=nQ0bx{%=E1`6{coYoa=KLJ z;KCP2KN|?o=7#8&Q^(ej-Ulvzmtp!znBVP!pDb3q z#1+N4gYyzK>G@zIbg@#IN0y=IEyAlR{xya+W~Y8TrpK_=GWg9b!8LqR^KKUq4KPzV z-Uxe4iKh?+Sn=dQAG06d)MyFcEq+Zot04DPMmCZY$WDRJo*-Bz!GS&ylqf#auSneh z{NNLCtQq%y)Wmr_I%l7QJ$Z?mNLtQo2<3*uVe9}+;8cVxnD$iy8zTNFI4-i@&9yT3 zZqIj*m(FH%XX$d>at@u-r3$+o9^GRBbxM4YUK;4Y`CvgU3C|5S7YSkHS`o6sz3ga& zYjL)Oy?<77J?Qwu(^C0LTnNSR_Z>qd5kUh70{qnCE6@q1T`%8Ue-}^MI+3I7zjt3% z*i5+8Cv*1%QitYB3XZ;Aa&v!#iYU^T*oPG|bfB0E^+X>cF28jXH8rgX_P_7hS7@xq z0lKj@r(N%xs`}@`2t%%k8Y~u2uXI@^*}%P^s12tR%Nd#V+($-T2#{>v>Y+?O^Ld+9 z=zgixn+cxO`et_7O_+az9$w1`4DDir|j#Cwzc6O*anp)}TG7mBT& zL%&<5*SY(O@;nlumTKeqq&Tmqrx{$aB-oUV#^BT3GS)|70wkUNq(&=7<9*YJ^~MBd z8-MQ|1_L{l?Gy0Zp!q?5s}A5NxboD z%}K}>4)x;(&w!*J)9;(OFR!PcTbw#t7|6^X+2?g%{TR)wM{T9Oo~WZ$c&TE`F4RMj zLDXhYrd%uw3==iVjE+tSYXa5ntmT#Vder)IsK+%b0n|5QLR@iV(^W!QEcO(S09|{o z%zAKDY0>jF4{S+Wb_ab|VgBrIqP%%;W9NB_vgk7w3%-yc>Hbd#3F;!9Uf=`h_pI+t z79~MFV9Kx=01edi@78b5%&*KTsOT~fySwI!5&xd#qrbL&8ob-ysZRj&+|j?1prFH} zqQ?gBgXTv8#OG&~Ae;a6rSw#ct$h5?z5&6Sy!)+lcus_?-2J+BOA&gBNdB%6B>aGn zR3F`f_Y)W0QV1zba6QY-krSyK^=HYoHd)L0`|$O|7qFStdg3~52v0!(WKh34ubIfW7qu z6hyi>0%pvUZO!Iz^_*kLZoC$px$wni#U9t1Ns;2}PXL;$w|EzdE2y33i$09fY6~MU z^avs|R9hXwV==T6Cy!t>7T7p=*}1f)ht6-=}0uCwW4XqH4mM<|L+=sTc=@T$4^6jQ#<`w5gX5E{&_(a&C)c^9N* z95w+zcQx`|f#!+-CO#NeAl(Y+L8|M`01cpEGc8MU!yOtH8x%&$IX(AMj&kRNc&Zen z+o};DNYtpG0dA!EHzA|i8J@%rV=AZ)%&FGQb;ygoZz?6bp=Op6Q*X_BiujR47m*O2 z)d3*0j4-Gj{1rH-HT)M7VLkibdcpsn{Ga!~F8|BT^WUHU`EURK|1ka!A^l(dKPuD4 zbI^a{k=*rfMf;H$8RZU_T^BQ*ARlTRe=ZD50`C`oj(Ww<;JlwK-x|W;2DuRwI7qpY zLYk6H0SwfrsJoB=816@^KB15MHJ^^_+ZXHG_m4+?<{v-bCLK>5d)V;zxsXk*ADl1L z%z3@M?)$!G?HiUCvviIS`8D4ABlskTjZXC*jsIt6s6+FTHUNDWsTd~Z;ieAI=4)tZ zkbAS5S-2Qm*yLL~{%ICNZ?p67HNvK0<<+5giPNu+cu`5fTn-C7hs+QWAS2zaH%q5i zZkm;@n7&=!nSOL{ik;uME{U=fVy4eQ&i1wW6=UqDlGNc~g5$?;j0&Pr=gb6>fs-5I zaI(iuo1b*m1qPAT{PbWRWp&0GJBwAdkGE_5q;mfHQ_Hg1H>d{*Z}m;FQv6FdzBh>{ z0{ISU6r|?Lk9M&+O@@j0uWI)CXv9VkdICdj1Pk92Y_(W@5H-IW)~8tD8=vS9=(#!B zM)VWt&p|P5;Y>Ok{^Dw|=AzzN`(+sUYS_v?a3$gtI@XflY8}_~&cfMDi1J~qwMPWUxvO?YJrkY-8sRLe;)I_$cot67>X?pVAhP_4sEFso#q?GyX1gZ~#$P$`JR|6X?MbEckbv9+PU7_O7J z?sdmb81dv$_Lb(umD8CDw#J*m*0(;mQ&AW76UPPGSSzcI?}V~YT?2{Mub(zcvj>+e z1>-rNmf6g!QPds(1b(cL zo3YCw(MlQx9is7l>(yif-_yvQ1mEX!3F8W37G|iuz$G5>h{xQ?AyT<>7DoT^mS~{a@Q|j%S!Z>+_6EbzO@Wb=%?i1ZU1P z6$2xNBZ;Dj`oMUPc(;zR(^GY5NyDkSnQy!Hot{E_2S^aITfCwk{nagtJ!Vx66OeIu zO;xvlAcK*ex5Dj{yR@|TkA`M2K$JMJZcy=bxDWA#2Ml|_IrZDP`jDJQRyUC_Z6FX* z^+5qQ(!fByR5g;Q+pf3HFhm=GSgfPzat~M*#*)r4!J}9e-Yq0T26nvF&CSKT{@K4{ zK~Uo>7yVsCvydgEAWoWDAw6Ci_5R1;QUV&0rJ;3Pp(?thlw}6%WEFJ;d&zFt?bIzs zteA#n?23eef9ivF3{#-sJLT4MW;(kht+{q0!60O=LU-4R4#OexW65B*rd%i*@_J+9 zFJ|rWfbW%i`CovCfg%0E?4eeybz;B@#QvrGnhJt%7UwFz5N>?~v#coMfM06LREsW4 z({uH^Bs=_ica7Yi3p_d+^SRF3KoAf`#^1D^)Af5MyS@4=dv?{x9C)c4GM}gm@_V-_ zK;kS0;^(@f?^CRFzduDQY)H{S7~pGN)E3yTS}kY!$LXs`fbn#WD)VOBYf4 zI;uq_Lu#&($Q1ioB$OMOg%`CwXl$U&&xB$_rHXb}$? zP3*HS(_37TuinWk9>E4!N;RlZ?2uQQC?PCdW~7Vk?K-BsIS4F-_Ag=Fx;NZ&>zSH% zX{q%+ZH=S;5OnR4&5F{i=a<7Zlr{+2tqWs1z?D)*{P{a7tt8Q7!0qO2b zj09d{UH_|;t3BPR&N5}lyLh859`ns{TtsV=pcxvF?I6bF0Q$&*JSHbwi~5MB0}sp#O72EAObB&dK5(-1*W`;m}nr1}?vh%$A;1GVa{Q`b6L*E7tE>SiH zN>)G}36E%fHlfLd!{4X%!Htp`rcdJgSv3^Enh>BzhkB`vYLEqXDd+?mIG2P&AH#EV zTsGawlcRT4-QY>{^;@o>u0@x?nh}0#CPuT(;6%v~Q;3_4GcT7LK!jybB5@?Kl_8^8d9swn@M`Z*(naz9zN06QFJQ_ar1`N66uMo+!JR zOH53uB(-QEWB=+!l=7jg6?kBL$bfLxFs5aOR@(FWVs8F-nNAptyRUXc9xtC$2#tftb0Kz54fo< zTf4ymKANvp&~qMwC7C`Q12X)Y zvuUXB14F~i@^hso2~->!y2rsee16O+AUBH4oo&jdZ2yiMHmpzcx7k~zujhh|>m3_>AXdXm9qOg@yOoB6rq-ew)+r-zqj!-zO z_NTq+EH`ZFrRVHJbs#i~i8Y93y~9yp|78k-{juz&K~0|Bo%!-LS5I!9GB;u~?M zht(!uFz#d|RfXV_W1q+qg@@xbxT97|C3s2pHlprk1vlV(N^Zlg?El2xTlU8FZTp&4 zWoC}qE;BR7RA%OwnPO(Zhf#!H8EJo)J?JsV(BQ5`X0gF8mOo@@2zg$wh(W}LI|?pL z3)Z3C9cqF%T%0u$es%`!coRE&_>8eSb&j>y%^U6XtMr<4$0!>WQ#G&BLs|5e+p+1b zki;(MzWrFPALpfw0`Tf@HeUV8DfdjNFfN zA3QuksO9Cwp%xdvhh)79_fd`U>12^}ETUt11^xrwa1U`Qchum@Qd|4g=P-EffQ{4@ z|6|rC2JQf+YPW1ojYBA<1ph@j0Ce*Ek=`h#gyOc)!p(m7l#`W;xjE@T$O zMOnF`_&lX6N{xZMoogshy$J-f+C*dI#zGO3Aog&!gje3MK@?blqGlC~&@AN&u>pg` zs4W8RetSzJvWEqCGb+gvyJTA%hTWuFLBRxQSgzjvc{<<2Ao9|R;o*oBB9`JB{dy#| zeMSbAvSyfjO~D8|tA19@iIgc)8*$vwPz^x>b1HKUnyzYY z+@CFs&b-IScHIgeZG1k{b%A4Nt$hAI7G~YYB)0p}rsd?6oRJ9=FBMwoN}pe8GVg?F zlY_rGz=|PKGQ<7)ZYfNotjpIo#&>G@{+j~66>a{=sTI|7+J&a6RJ?h)8mwVkPAWZyw#LF{9Q-%~JZ04*pc0kdUi%zhtZ$43} z`tZ{y{1OJF?^ZBC5GvdR9iosgGBAdW!MCPw)P`y<+7F+{gm&38Xk5_8?q}$6 z+}BG)OvMp#i`c|c>@aa~@bh(DctZ?hlv+_ShE$COHMJhad`-nQ(Q=qcMRJK>mD1Re z9q6xb>_AgWm$KM2#{&L0Q1A*ooZe9xTG?pHw9g?#T@8KM*ogb|X z@6KBQ7}Z9th8qRVD4W-zd`F<&2>b=>vS|MwIru-!|8f88{{OnPs`Qd_d&9ec#{k zJbo|!Q$;1EBq~g2x?pQz^OA69XUBE6n^s*x*$eIV1@X8O%!31<^Y05UAmLB%AAxtN zj@{x)>mU=$LAMLw?gM2F4KnGf`6qN4^m~Ug>H9j_4-KeB$wO`VKks75zNLK3<09Vn zjoSAfykw?QKp`&VAX*Sogd3KT@=}R*J5D{mZ4Jr?uwv`}#qn;e`t9oI#Jp-q=4cca z8-mfq5jEi=Ma51g2{Fto8n%cfym#M%7GjX1Z8rug-A-!cfU3}T%7eR}BOA1ojj6D2 zC~)CoBwlfIubDrp2*7#G5v`cvZy{{(gL`H|7-W|@~(BIW({LSGX#AouXw zIF9(Z&idwGj+zZMb+ zmmqsrUdf{SLau!4QJoHKA^g14T()R*8!xkfwMlDlI{m-=vJzxEe#3h3BJMbW+h`|y zK{AaF;n9Vd112m#LwYV{A#j*Bn)&;tEq;kyxk`H{Zn`rBb=PNhru&FkTeHl>3C*jk zwy~!$I#@@o+Em>DabuB@E@K0^$@BsLL*>OrjGm7_ubAYTW64Bf-|XqSN7!uR+XKh^ zkP_zU2Vi9;yy-Z57% zcuGKLW&QBFS`48eqyVXWz3|*q$N0ak549x{yLRt#AqKOplyQ$*}ZM(iyK4eHV3w5M8dHJIZC@D)%&oQ0iVnOm$dezLk0noSm_Easm5 zAVGdiFp#;M!{?P+rufSo{;P^wh*SA+e)-^GiY&{jN~#5UqewolY{D-mn-P7%`^c|gLloh1U@5$sNqg3D(~)r~*>0Y$Ne z0ORn8^-0uK!SNY1_cM94vVPf|SUtEHPlkY!QF&hKL{Q{RDme zzz8LpC9>BmWLjWv?f^iD|F?vW zgcUsP&D>YeXUugv0+O9RjE;mC6yw1TmGz!Y1ah;vGZ)TrwUvCwEOELAR`4|}L>;I+ zY$~e;sn#iP;IESx?$?RW8tR1Zv^S8Mrw0s=gm* z+j^g1eF_v&j^qknUJt(6bMYrPK!9cDHpFg(1F=Kla5JuKaTQQ1zSguR@G1ldIU0y1 zttm|G*YkCTSMFzruWP=%2i>YiACY>o2h6a{{yr2M)qAopyAHXTGd-IOb0a| zJi>m2{G>!ymMCJO^bQwyW0r`MCuw`Q{d(S#xukRsgD}fD>8jS6M!VQj4chE>d8rgK zs-!u*`EcnM{!&VuxbhMj<9SZKbVty9Z9KPhD}b)7jTO0@-|-myxe8GajZ+M^v98c( zuH=5R{0JV_Ou_&SiB3UB?ghIm-D?%rU8pZUmE#uC9QTWAkUh$-pra-0Z-auXIW~5e z+g!DlTdtw2#?jdhFVU0*V~N8%6?1fQ3)b7`^TMaqb2F^isl7#FbR~Sa6SETNZ5OBp zEk3~uef7x9j6J#c4SWaIS zqUkJ;Rf0_=Oh`?Rc}8Abd&t_BqEhU7&W9NE#IMI%sD=n7BsPD^Xf(CetR8mV+;L5# zyU(NTS5z`1_X%@;_6%`alQ`@7asfZD?)PA7UlFeyc_3+*-tdvD0|G48iubMohUzm4ztX@i1~ZGT=c&`k@QH^-wMi;2+Lx#e zF#n6IH4^>LWV}d{jV;q#M9RGWknw9lwXLvD2;ln%YEm4*bLnnSNH=CdELw%t@i1AL zhK4s3z>37G&^zi=2|?Xyi4ofG!g{(Bk%LNMV!KgLTtcu1W*JO?4m9)d=?ts@c;e-m z{nuSh0`nwZFE%)bYpw+k!q=`yB&TPg7}f{nC0DsNb*~U3Y}nE|9cQ%=y>DAx02R7z zQ&Jdc9s|cRHKL9+d7fKiFT)iVyTI6taq@#BC!^6SJ$kO{7g}~)5vv+2Bqj?T)bo)hk*RE#Zyldlyo}%0PKOTy`k*UpHRR&sLcwbQ3!mIM@F%pafKtbB z7&ncSQugV?kFkKms!n!B>V2S+KKy?9yS#7QA*frDK7`h+)H)NO-jjNBsSBZTK-K|+ zZo6%V855^r(6yLO;D_nqEg701bUku&$X3j=FqBJ4UqzzzTLIYlJ9@5wv-9>eI+E%a zGybk2Vq>9B9p4nG{d86vtKbi{O`4D?ADW5g7nO%>zV@WuJg!U!KW;5*4?M`{m1z(r zBxT%=#sSaTm?2#}-{-Y<@=qlw`2oP(uR_RoY<;VAJaXfZB znt_2?R{D-meBF=F&*>wB10qASK>=TO^O`PqQCDwFvGeMJ;O6EDbkh3hroWpn1LP0l zF?|BdO#n>b;hqQdzai@6e-%KpUQYS-9&{sOdtnW3#<>QmC>^1->{?y*eMmL}ztK#v z-PUo(Gs{2}iE7TWR_|8lTO0TtyjI90-TmKpHwFXNt&ZCMD&(i0FK_ydIZqES>5`PU+jEkFEMSqs>>n{fz%Z402t^3S~eZTbaHzoWIJc3)ZMEm zx^ja*Z$Oi*kN!8R-$+kiJ&!0sypJ`xq6&mCDp*akf*s=>0kb(D>ujq-~$jrOK zo6|PUv2j4?6#PZ5`6l30Bx-6!bqa$lHavAxMD|2QXM%{~QCvK1#AXO~vWcJps*8X@ zZ1zTL4Ku~x7Gu4D@xOjb3M_L|48P{og~H`5bIJ^#ru-V`pXc@Ls%8u;B*Qu_xr3Hp za)C&+QNu1c%u^XC20B}epFeKc#It;0-#`#I2e9dnIGu;3(hR(30Qndid@FjD@T$wj zQ)GdaP%1!Pn0W|2fE^ixMyNAWfw<7KXE5ru#&Crb!|sUllBIr&hmN7BZJ_=u4 zfhM@`O>|15Dj%xeRuKg@s|k#{WTDuAA;fP9<_)IZ{IMEwe1>I{?he25bG8S548zLy z!#og=;wy5|zGC4^fdYeJM^@jZo80WIxEzwaoobsfVpIb=J7jT9y2%RTmCdnWe~9j2 z`ToNi7gilB3%s! zZ_G2%DYFeXti+g|nB+rKB{j7QtVW@q7_eb)L>>T<3zfyK6)Ba}^?Hlui!){d=d4LE zQe2SThlt*mZ63ED3_pj(PYY5?gN{-UT6{+*0>vLr&TGaH)O5+qflSa{2PGi4HQbU| zGFgi$e01GJ{>zd|lF=(rPpci@>e#a$VT*l%ex9LNOD^68t!d7540X(}gz@KHzUQX@ z(Sqog)tc;Jwg4>j21pBup&qgv1_*}okJBf-*MGKve_yA7mMpbaeBHUfv4k%9&qNI; z>J3JZR=CubJLU2USb~ss-=MPWpWziFEqSWz)y0+|bGHj(PUPLI>*Cs<#C-^l#$enX{DI9c zuA>Qol7H4#z4x;tHIc<7#J+-XFe`&{I{JSy2tuC9XVkc?pd2!1>ldH^gf(%1M_=Fw z)>rDOc(Rzk`hEzSxh?U*t>-_cgNaNJ^Q1SzInZQnwc?{xzWGwK`D47bJm*vMe6q4# za9rYb=x%)`EAc;rf4V;@-i_t@`M7Cb#M%m5$P-3ko-EtdO*{IM;_~*+rxpmEL!O(8 zetmmAh$uDLe)joA$mIkaUpR}p^YS!ZSdFaAl@}wiV&BVOOwkUEorO7;wF+S5@y@tL zAyO^l=V`n^rN-|hcJ-iX&eN2FL$$c{Iw?5WBv-w>OxU}h5YE}w)3-LL{dzH#s~&jh zS3|>q`=K8G)2CkRB4(w-m^v5HOC;$o0#4C)jwOZuW74=Hc?RLv(T70r^{n|p5yD4C zG}!78g3vGu?=_PX38Lg5ZNyG9^1AeMLOd2!4{{vev- zR6`;@eTL8NS2F13LgdeVYz(5$sJ_NaiW~aw{vzV2)OFv7_2;FZyv_^u|E5CP!>0SH z;pLw|jM3~)FX=hAnc%mzC^#(obiGi&{#ySJ-fM~QKRl7qH_+^u?Ezo;p;~$Mq4mEh z^+Gv(8kaF7ncH##3}J-lTsaonNgIe#XNypB}j_q)&A8=DwdS^8Kc#pE2p^MM-z z6XQ>kd?=H}DG4hH=u)6eM@?s2gRb}!uOYA|tm@VA*_-T77mv0cq9|qyXGU+#&T-sd z4n*^}y#76ZC5E{VL>Y(xgXYm~)R1xWzMzUDLjZ@TQtAwSdS=wuGuod|wJDCb10JY2 zVDRn#g8niOARiuqiW4WH4JL|43X0}Hm@vdkghVhTb`voRwyZW|ly6>K3T{mbpDTp4 zyt(;W;PdPpWnzNhdTT^|ELe&YK&aafro2Q|MXr|?MAx#b*1QSYrFBRk z)?C=*0sxcRzRUWH!BAcz_n~K+j7E98Qvyj(E$+|g1gv*PHPh zoG`jijp5*|5q71?6wb;;cI(r?Ha7j8w@e4=TvV?qt4^rc1YOWfNo_4kISi)cpfPki z#_vGRB}5Kc0>V5Y{M)@iBCnGlUVo6WCxi#G2sNfql)LV%4xVr3EIiN5ja5V`@~)Y* z+=1*B#o3RN1XK1CIu`qxNpI2T2?MAEdCAhB$I4{Jgvnxu?9yeCbSP7=2r>82WT_L| zpBLNj!G}T3Uo4HAk_;2x(iWw5J zl@3Ea+mW3MLWLrSKZl_JKS030dJ)`cw#2jidUa%6Fu04s%w{ZRsGE@QWeQp~8&4CQ z88%<=>zvm`-Xufb99pLk&tVm z=+XJY$P%86jX8;jci@iHQt|;wLN$4z;L92aOP*tP(Ow(BtN=R%@Qu0K_+5XAl|QvC zS2$WjA3xoB#f5pPBRk*=zUjJ$P?5#~SduC3Hb6D@%jp5wW$EzK`_@9NiRT$OwTHTd zCpO3k78|L4UZ+O37FRPz8jWa+e{sB$f<+#venS*nl~TT z90q+l51OyMYAG(~KVS1%k_Da|Abd5ILhu-T*gt)MxFmmO*95i96Io1yDstV6!lN?) z-O%t4qUP-kJKfk1uMsWJ95*rt+OGQgyf7Eckjd(e9Vu?i&D7#Y2?-dnGTaK>Z3_9M zG>%Z8j*0RL{mF)FcHz~Qn`*@i1x)FL+ z3$z7o0_|Jm=~2;b*6t$A^OWYUL6eKHjD+tz^E@{X2O%dhpYuc8w*wf2#Bs7oC|C43 zJX|%VF_Aq;(TlwMO*#Z7F6=a0RZYqBSqnYDnx|x!1-&9rwEL}HRW1BM*WQcGiEr~v z_yIZ;-59;O7+tYN1HQytX8`|Ywy4b$Yer8uev2vjLq{pb|CNvzwMM!+IAQOUW)$8h zNjbkms|~i_f#ByuEK`RVv1)~36pX2pXcSqQjXSlmxWw_F^RdkDiXoJDF6r)G+pJH5 zwr5YC)FqeT$a#YZMwZac8WODP$Ijn$5>I8nezt5z$l4#sxZp2nynMjyhe)yUe?W&3 z?m~jEN9^DsfZ$Sr^=2-AttUeBcR@tePz+e8*UuCpO2wdv-}}Y|u+roC0Kv9(gscjE z!Z-p3TWIV$3}w+qOrIre?YSShQ{e0I3*te;hAXu^6YL~Juo~-u=R#-_!5T6=9G&DY z<4aJ{^?5_egbqw)HEoloI*KKQn)cAM7n*yWlyEVX>GXMsYvMx3gQo(w<2PEOZVgEH zK43QBzPrWaW+F3^CD8#C2HF3Ee?5QNc&&BzPVzLJdZ0pW)ty60v&S=83J|-;6w5ZzqoAr|h~&-_b% z<)WVcQmEB`GEDgUN%D|UFKsz^Te6?WbI=9S(?&<%tULa%rC!cp@s!|B3} z6OI3zOrM8A-+EHJXgc#(YHx0VA&fEc_mJOt_zF*kK`U=g1{zwE*GlkkyO!(Y?)Iz? zi4+#C5HkJ&@FR+0*O0a`sml8b4*`hPq~BVy1j1-^Q=O$3eTjnS#cYRzER-vvLcIz6&BRHw|x}NkgI+G=QERljw;`oWB6B9 zc8@y`pj$1m(mj}cJ+S(j+R2pZt~Eh_!Jpb-?SntgKnNgQ&QJTI!4f27mv0ogmO4|1jt}GaL62V(oxNp-s2cC*q20Khu zTYKcNd7K1`D-WR7>l$1+K(=}NBUiEqbC*Buw z3R1qTc@8Dl8Pn7@c9WF;N>Mrdx1t@kepc^N}^Na}ag9k<&@R=MjYN(SBn7F54Sbsk({J-4!{{-ZISYlB!15 zB*HCx0X8XZz2kE4Y$B}KW+etE$#W2;$WyepztGTwultE(BMBsyd*9<>WP?jNU~4C} zCZWovet=&+2jC2T?~RDbt1gLp;TKFIRmZlO?-NATR# z3uPUsr=jH4`a@bJE2qBk_GHUB=j60p5Aib8#QPR;8JTF()Tcw`T8f+3qhI>-S5Ptr|( zpV66w#$60}_5SwNNrT7Up35XNGEc*~`E29o3sdOAZJpYQNI1^vu$_&HCNBj=l{lhn?sfdssvxhGeuiFUcx;EqX)nCJgpOS z+);7^11Mdc3q&()fuGUH{HHF4er@!?W!N2Y|0n{c4#Ik%)`|UzA{1$_w5bleH6o6XSEzNYIUGI(*e1~pm|RndRgClhoRS{%^xE-+N>42-f}&wmHz`r_)X}# zNnMgMPP%vP^JWfZ%Povo3tfZHEU4+Md2>PZLi{|7%AB4y1cXiU6rM{5q2$V z@Wx3ZSdK$pNLp5NuiH9|&zoyC;`1v# z!=$$FAp(sy$2D#kPMfi!O^5flH2oZ6dYycX`Y%>ivbl`q;+lJO6v57;o$gRAry>PxIH!I9M7i`s$Z|{b*uDUzn{*@$H82B z+0}GxI`GGL5=uDa&@#M1ovC_?VE=98d%!gPc3$12LQjMXM)@ zY+-G@=K0TghlGw0HPgbNodu68creS5G7*u1^F7af9sRPKZG<)8*W77N9dQ+==Q*yn zhOzrC1D}8326o%szJ$*)k(bb^xISNnm9OUCo8z;uEGORrFDUYb#7ZMJR;Z`S6vp5- z|DNO0u{xjBY4h_g*PmmG{yjZwO=!8=URN1=L+YAgWHqkqnb%BF+);FF*P1s-JbQG@ z=akZ-rKK(mWu{_F!lc@&Ug!I$t4VLQBs>zh8M=f{)M!|By7P5;X3sF*;T4$o)vx<~ zc;Tm#<|oz`y_S1l3UaC)tKSFW%0k^I6#aIw2^wTn-*rc2!)4+U?e5E0TZd_?G?oKH zqopO5$KGo3(NRrmkN$4s+0rl`=P-;45B3C>X;{&+sg_+EdtL4_+?|>d;Vj13RZ^Gx zxT_?$QP%q{c>XL8Dp@-5bl}6WOhq>cX-HOT;PjCe>G&=aC}~6?Z6*2L?FDR?GbY?v z6Sj)ra{%UQbiU$>Rl%VWDx;_;-7&Y@C2VjVa4`YwDpq`*V$~hg6^f13IiO-nf&@iEk5|}Lm6uyA zeR7fj@%&RtSP-n~LmfoCPI>A?g&P+AeAi*&x|#1{kYr$g$Q33U?icN#N3c~#*u*>E z9EUhNCr7O(+6>Rz?bztb=&Y15e#KuGxk3^2AE448t^wH`u57jb{%_etr1KSLv+2EM zvF5=9e!j{@phDQhL{;2Z9Dvl9&m#g-b$<^TJ_rMGsYkM)i{J1CuVU7UlLyNbbDVs* z)$Y=`e1H^%b4N9&-tO)22#}-F#Ut|EPwc;FV8`+mdIe!{cFAiGIUS7My`%)yQ?zLzknK#FY=evDG-y z@$o#SuFt?-f(1q8bFdP0d4ZTH8H5T+Uq9XsV$jE>Xg@z|9yEb_E|37F&5~Hr;em;B zALkTGB`qUVczg!<(#aO!&V4Ange2LCfJ)4p>IRSQW(m$}2UM1%_#@fSu&`p?n1;gD z+Iv>%-zLR{Eb6xC<@{8v1mJH}>HqQhsB)dy%O;#^T# zS>$g8@>`M@xxbe8^~s4erZh7>_Q~AVIKq%W5?hUua@n_r7x+A(eErryT5ov6=?}t= zCpXdj)~0BGh=AnNza!_k@+V+oW6gm~16>p{Xd@*~;xCqQ8!u5iiXoUp zQY6FaMK9*LBp2h<6G3dC6BmNrIiNwzDO=T?O;M`{RHJt-k=KQYt5SH3f(+(N&_yfZ zOba)AZd9brY_t+Kh|@wA1{Bo`I{1L;D=zy0`fcTZM7wrD{AB%mkgFCIs^V0*MmfQf z`AJoBeElcNXJ^>GU{qkf43T=(0zHPr(?GwA(5~gm3(fq(jmr+*$^-A(6`G;*A4@VC zcw-wx+0Xz24+Qu8aL&M6olc=q;n8QdZd=y`npfcn;8mRqhjqza+es+d1RRVN%Y zcXdc6cYvg1VqqZ1PnM;YXl#1Ed^M3kZDi z=(v^ZSL^@h8HX>UW~fh@NkH|9QmzCqjPKa+_ekOi6SZpyxb#^$jOZt3_pBum+(7)! zh+NVd$@Q^UOK3E1W=Ot)qksjnWRWv@9iqt8n5jwSGT66abgN4 zO14lKC03aTbLEszt)BiqDl*UoGm$-1dtMjFZktdjghGwGN<>GJ6R?OC85CBZ7QaEl8vXi2gh_cdF4-C!`g5V>| z3#{}_*uc|o{#z>E8%F3P8waSsiKU(rkCr?=%D7sXh-^^kI&z#eB>1r?AtkA;(-e!a zC+K2@C7Ve4ksip>d*H>%4+sWNGZdznA~B86Od!YfO1^%*xS%>&>kjXQslL`?{Ac}( zawT816u4+UN+C*9<#)AsJn0B11+#m*lB^xxP&<0#C1mB9>4rfTq8Dcg_v&lssoDv3+4t7vp@wB^db4c6sV41&MI^LB5Q9wm!bPjPx|b9uYltrlwBm zvBQ%&%6mdU(A7b+ZfI~7uNA680Vn?1T|RB{&xN2U63=WzCv%c?=Til|1E1egJPb_J zrRj2zOED?2*5Y)z`VbTr^}8QM$A2`=K#9fA3mx z9y+EZ1Ql7cf;qF&@k^X6SHWFtRe(;LV`|Vc=Vr!GjB(k{4v)CW*ak3R8?NYSmx}oBt z2vbV)-qj-xvTFAdwOK;Zir4t1HY|w88R8ZihHHbDUAB-eIMh4v^1M!dwZ=wPLyp2w z9Kd{TbAid5`_%2(eo2MzdpNHd=(ifCFi`eMeut34{m7;BDw=ZIx~8db6Hc_vZ(g*` zp-~^8L_&0E?nV*D$XkGlSL@~A`Ip9=)mYzi$lEc1L3>!JL$V&ZA|+fxCWFk|WXkY- zeLDxfhRG>N-p0lo@JjKunhYl=jd?>=z7(z(hJd7xTB~p`TFlUDGaEp_0__%yHAU6@ znx*eo9Zths^7R8t$~(}ms%c6`CQtJ}lVbnB;D5e<8UOR}{lDaYc>k0C`FG)el$igM z|A{62U-v(q3tH{1-0iJ;oIFq(5B}Mxm)lw5U%`&Vq_Lq%j#1B3??V7ff?yFlARzg# zU#1~=r8dRX&@#r-%rZGtAo5QjU80F=4RFA*3{$Xwt-4*}Hzz-xZq#Uc5oY66|^XFhVyqw(Gy)9*k;173v>~^ zna%$N+fb}fYV1w57Q;k;TPdZDpjwPfKSn5piv62?jH9PC;2|vL==+znH4wJjfAT=8eP^(E5U@tirz9^x{0cVXPw|5=pcQnvU=D;H zxz5(!tF_-~G2*|n?7p{ z7kwe2y)(;s$1W2H@nqWg1o099Lh=Rb2mqL>W+qQ)J9ENmd^wWFPXbT-uJZ|w(xl#` zGZ+=L3m)}AeT~L0mZ0JlG?*_m1@FA!t6+YH}v8wOI^(`AikNoNAqQc2d+S{EpOeAW!JR|-?1w=othzKgqQ2qYEwV~Nf za7E!MulR=k#JW+>*)mh<|8;v$LF!uXD=2&}?Ufk}nGB(?#vfMjga4e69S8#=UsC!> zSc_Etf#Hdt84LVJIu}XBAUTfeHw8ls&Z8|ilmakmvuCyqb44|*CK zjVkUHSd&ZZs3&3-ugS>*Se%2KBr`&Z0tFLj?z;EEw811)2oE4T88L`^3`~;aA9W}F zosF@JOfN+t*>xU~`6RbPnC`C+sh<;HL&hYor=uWZ{_Ruqwe^fgOD@d+becz68H6Z`QEP_ic6E zU_D&SIA5+;PePT$=H2V@;vth^d$12^s*6!PyN)3)^vo3zamffq_})Cn^|h7eAi>7x zadTiD*Cc!kFlnoJ4PI}EL=E~O3a}k2YL_b|9+c0S-}QmLGzc@duRg#!Av9KEs3D?B za}rpO)Y1W>Vi(5QbdiR3A>d$Un!(6%bXgE$MoJaaMUz9A z07R4U@wasE@0W#`pwIAM`{epVRI=<5O-!&6bz~KK={I<~fS*XBeb|r;o5>@lwe0c* zKCW3c$-z8y10UeK_=C9h^{Rsj!tpAjllbYVrBrG-($vZ#EHuhc6F0VVL*lf>n~~{V z^XV!1NnY3dV8k@owVEV2Zd%i2 zD@bb|9^#*VFlg*U+dEVB6&v)1HCMTu?)^j5*x-Omo*hrQ;V20G6~5z{U{>SK_B#?0 z0o>Z17YbUQNjyk(M+h8mPqN{$QA;d$@l2}aA9Tj@?d8k{s^@ECrEwt{1=4^3u`YtT zNOQs6zt$T+WZv|t_Q`T$P(n(J^4RNcQhWzBfF)2M-Ug3}iLkv&E<6bZz4ykO7=y5?LY-+_XygH1Y7McCXZaipl-V#TLq>K6`g| zLRZ=IMgb46va~aQ4kSj=OoxI;qQ6?y4JiJZ#2{8 zGrgB)$db@@sZ;<&O=iO`H=RDGo+20p68;YS0I%I!CmPbRcqk4J>)?GLp?VrxDMr8G zfIS>M??Uh_eBx)yiY`w2g#zEKoE9g9oa4J~mt@x(cmw`9lOB;!6QFf*PYw&s>1z+< z$ngR7>?}%dO(}TQ*hN8gE@6R+PbYFbCO^ln$9RpA1K7!;K*d8PS*}4wU(aTf(z(OT zevv;-+V^$~{L}A+o@fQvS4VP+SIaSmH*8cF2g9A8Fp;Ss7AM1vOYFR3Ir06^)2IXy z>8msTR=cR{Cs%nVP}bl=emV}2DdOq(farq4ib9SC5OmMs`JwyiBcG>F+k#tH>7q!H zKqET@S8OC^zl&P*+!`i>jw^32`kZ9vj?Gs{Z@zpIG6ypd9rS}g6RRrt%eV~48L4jjaws=Eg5h#3vuUhNs3lK2Z0SroNran+YlTO7S+yr-abEC)=$a|W z`53ct+~y-{>ghDf`0;v0@O-K*V(3c!4H9jHyN8Tu7;| zw_8ZAFlSHpdqAvd9tEX@k8uVOP|NepnN{Sqi?MQba)569mzzxkYEFP9da-@mx2VM^ z)Q5ahk3zJ->tX8krx##g2n|3Qxt;gNS4Nl-0Dc$D>)bbkj>_SFu~ZM9NE({RWD%4M zLjtUE=~xmJ@6!faw$*?{LyEIFb%%R)Eh2Kt+iSvLH@$l*FIJ_{7g= zZA!eRSi>h%7xxpCO%FpeUMWHVa>!$#RC2vS_}JleTXk~-{r?Q2|6Bg!{}=Kf5Bq=R zKc4^a-@gn0RsHYtUz=DdD-D8aJPEP>LQ_Js+->-3vRt9)FVKEBgAvpYnLQ_l{=0NNbwSw|4L( zbgeM9a$E78iA&FCuRvXjGPJv^rodGNZ}oAUt(C5#&K$n&(W-Z3?GaS9E_^yzNf_su z@;Ow93Wb%CLrp3sIdD^RfBx&S+w0O(*824wTZsx$LXFae5?{pYjKg`Se?sa>rj_G& zA(m|RwM>2POH7Pdk#=?MaH%Dk!1m1kvtz(O>daOjlJ|&P zPs8(vm+Ni?1HU1%z0YY5>;Zo*Kj*xuS1{%N;s|Q6x2>8yz~oe6WRSO1Imyvt6*X}_ zQJ4?BVAv-Qn0;ZsZcWR)OO7PJuJ>T+eEeNiQn;+#m6?l!ZuIfIPTO$v==C}6oW0Sj zyGJR=_DHuenTKJb&NHi+(* zf--CC;i<6_hEqDUdfa$z2S(fQ?1+ig^d1*Q`}ON;)r*&@ZRbs|iaec&%zcw8+D}ID zWc3@1%3w@Rb?`)S+n-tBW{fer$Euxs;MGEd=$-f&`5Ij(?9iO%Aq+(rez8YC(M9FH z&)m1?75~3vcZzk-lQS$Y^Q&3yDla{!;$CX=Cy8EzA9o;$KCaOa%A&#M=i+lRyz}?4 zla__0I+6X8c;fKLK=4`qg2#0PufN3(cGGRdq)^*JYL3g`Cd~8S_R0F^?`$LU@p9|F z36oj*Q(_mh)M|G{W=h_7$A8k9vR^Oa##!;=*{;?x9{c%}{mz~{b7Fi!7qQ=|{JaF( z*hdt{Pd4=}|75sNw1&@<=%%D43bEG0kHw+_u`COiy*3(`#krQ#>Q1cI8uGh0>dx!( zZ6ubt#sxyy=FuQj_b=}_>-k&@(=A8;7kh6RRL9q?`>usM3kmM-?z(W7;I1LK6I>SV z?he6Sg9LX85?q5j!QIdQymj}zA9n4k`{nG~r|SLQ)jfMYHD-_B?D>rG^?2g}@d=xJ zGgBJZ*~Xs;rNw750TNC2M&FT{G_=KsbMNu(2EBsl57Ti%Xzsb^M-NRxw#!#8Veun*X5eO5%5llBd zmq8ut=q)atVKPO}rt{hS44XddXhfW>^eQsaSt6P#ft*U3fD8dhZc;CAYvcRc6m#IE zC*gy*8;d~qQtiGl>NA0w!Q67rOAfStND@H!6s$=OB16#6hsBH{(PS5R*PYs; zBJECREeLI?!QTQI*>L9jLj>Q$EAEhnv1VijtFqSJprr^u=bDvMD|r(sf0{iiOXNr+ z+4p!)<6WP~lsWp=DuO*ETUIg5_#QR3s%zT+~?8Y)OZN zR1)L@BC$OWNNRr)X!{rtwY%#iH*yU%_)aKjNHtEvNK#P^7J6!yps7*d`tHYZ)GF7`XM@tZn4Ht7&D=8ctwdC&N={9xAs$X zSy)~5*h(_Tn_mHrSP!qLBcdukM#Q(;%K^|b4y}=9y-suff$d(hHPdzd@69X2Xk&P3)f(cqA>P{sd}%XOLkHOhNsDmk;@g_(omn zXMVpYSuI=WzbwaJyaRzfjM{g9my*<*nE(#<)}DW~Q==Z2 z#Zq-U&afES*uJk&WCiholeh4%yLA{-b6GUg2>f1T zFlzY+LUoUAO1|gz>mQ_U_X(Jq6q*`|jbH3zC3;4GZJ1+8k&)L$!&Q{p1`U9yzELzH z|A?fxdJ?oICj&xpVAEZ>d;zq*DEQiT9h}smaa5aC4E>r%EC+!ShL6~-(aR<9i0NIj zh!4EER2>|^P(P7RhR-Mlu=_)2!C??z67#`@p#jOYt%Fe*Jj?zFYK~aL(UaiQB6%A{ za}s1(1OreU<{6is0ayc`Vh1L?kQob5*j)-{dXkI>5+IZ(B>Wy&ZzM1l9q2JZHvq8$ zw63bkltec5^hUV*?C$}xqw|>#S8I-@KNOk@rFHA;6=HEeSZXq_^EmgcWm02Ie6XG(@+=Ti{ z(I3c@0$*(N9S)`aD)NjI^74z;O z%1}v*ggB0zgL|Z}SE4+ICUZ-x?Wd|fM`--UFmXh-u>p(*_$@N*XD^%o^kUz``A$4* z8Pwh=JNFc1GV27=-Hc(Jj7E6algz#;9 z&Uo&?bb!yatja1>_iRFFV0X~s^q06qfPrKjOe!d;7)xvT3s{`@d`kF$loAT+FewE0 zGzijuGl6qfATccrixmY9+&^muT~5q?=r7~cT7&R)b!6dQ$TUqES zoO4Db)+p)t>b$*IB+OiVG)<<0=AvRrf+%flCR8F~>)xwwR<{=iR`@|2 zdJu=80=&${Udx*#I1KJo~C#uT)rg{Q`3wm`NyYf z@-*995oH40HeVsr27AZ9)1bjs!$SF)cEuVcsS+kJJx`zgmM?lMOK3)&UfReunHgNHCgr4Au-d( zCDEb8N&5={p-(+3MK&Vw`}a*tuh{T3q1VJ+qo&$pj2yXByQlO_P(N_uby!6E_1)j` zDe_OAsHjqz1SP4~C_)|qRk5rtYSohYlMs5|wge}9EX^;fvuCa@ldU}sd!+A|v7)+@~Q3bWRi{^P8*x zEcK{=M`B2o7V9(A7)+s{ZKNm6&;|Utj_`RpH6e&7c(#MsrN5;I)T_|bj*7C?PF86? zka@yu)ubdzUjP3<;(y71{QrIaf1ZC}??3V1zx%)ZkMaNe{>T46p9E?Pukiebm!B`| z2mYojhG`ak3<$p(AqnLs^g%EUUuNXLL?cyPJ5(2cze-c<{A^^F5+(ghQmR7oSBPY= zJc7FoGo|_uF0J)u?Xl-kqW~Amyd? zlxSK9umqcJ^mMiL>Txf39Au=9fP{%@)?mao?mUFdS2W0{N8nf^$N1Ei7qDqCo&V@` z-OJ20kQBY;V=-6h0`m9&alFQ1=6#$>QPM*0B2ETu(di8VnxT@By}GLcq;f|_5NlT` zWi15E*&vI3);W6iNNgBBHPu%5o+5 zqnhZ2F1UhFDKq+z)KGeLK>MvhNS@(5Sg&7l_paFWKDv^h1OBM^9U7gqfQ>c2t3>JN zr9>W1v>W(!oi8`+Ahs#<)DWWn^02F?EUQfdK4+(GBz_JPaiT6+>IR4-H?b3Ch?fz7 z1TT@s9pQm7#eT8@h*}R4{E9DDzE2J`BDeN7<}w)!0%+E$BY&1_DX;!Ui&moxwf}_~ zCCW#bdg=ET^gXfR9Nell-Rhjfe_zy3m@!)SAdw7cBoyX?wTGVy7LD`C;0Eb_(G+!= zp-(Xiz_4wx`|A7a5W)Wnp;RbDMkSW}DJa6A(3J_lcjWJizDi?odOjUA3O6(yZ|?AK z^o=kP?~F&k%|J>{)floyRRl0h$ZjxH<<=)ZGpM&~vDX@O%+4nY=>u;b)^6ZR1C};k zf%RH?fa3H9(yPLf!j=-n_Q56kIX|V&+xidx1TlTn+jEbBck85SyI?h#p)GnuFh05BLv%LzUv?rwqu*WoXJ8tM2}CbyFU3JUJITxhJDNT zf-HgF;;+Yog{?4!z&pmqdb4^OC@lAr4xR=_Q6DjErVQ~_*T?ttnU}O^YrpHY+w@;C z6Ya#`V9t%WAeena&}s$W$wS}$zo+Mky_R$o;swEWT2kXFGI-q-i5}$np<|U7RANU< z)joCMHdwm}H+TpM(&^0R?Gj$lta_7#5?&O~W)-U-r8KY}6M$DF4^tu|^u)J2f7II& z-785L19RNvql#g-J|AF_DaL6hGH18#G}^M&z<>yL_^&-YC}Z)kGGPl50Y=<4Lu?3Q zAa~_d@A)4$fztO@7ZnnwyL#V!DpQIglIZQue9H!$^FMcF@o{HE zQDO^o`b@6dVNJ)Z_gh?~{W%gRW(^^jrE!MP2nBcmGZdX*l0324AlEM@gP;x?-t+co z(sRFrQAAj#LijOpkcoTc`2JyMSj`d%a)ECCKD6j7Ex{yB3y1=8lb04MNqh!ww>w)g z@EH%4yND1t6xJA|-Ts3-8dqXJ<1 z$SBy>!bE)Rs>ayhY|PbjUPoB>>WuEt^cD!tw4zttP%-#v1lLS%g1ndY=1Zl(C(oG0#ygu`Cc(3qJSUy+;M5_?# zP=|Y4HDk#A0TkK-ki^3l*R0whEIN-l;wywacQqD&GPAuH@Yp+dDj9X71|(jVh2Mom zULFJ3wDM^{efZn^wmdf{JGzP&LKD6=J|lE0v_}atT}hNz6$(?%6_&tH!7b(y!c_9K zNRgKAjl)f1LPqA&=0-1nrd8=v`xsN0UOukezjn8zFHYE%88=BaZG`xnGyn$6SQx^D zo)E!fM!7NzhcsZ|g|OU?03m6W>4Rn>nqOR7bi%c3UG*_d7%C_JdO95 zoezq;CkN=9=X$2-qrX$w_d*lGFExC-dx8-IevZ#C=k%Y%&+&Y#8twHO;$71~kKy#3 zMf}3X$v%`2#DYR5H~K7jwdW*$0(CS_L-tEvIE#q{A`q_6h99ms_qResEWjF1G6O$* zXDcoFDH+}Gll@QxH__{{#QN3YrpZ8WB;T&JM%7?bQ4XImLj0iIx!tonLsYyVv})O7 z36yNeJhiaSHVi^J!wGH=4CY0|vE5!nKUaR^+R+^}V1jLk(Wmz7uamnkTlZRCRXyoJ zb!0XfiS#XLJWe7b5wS7`F)W~Oa!Il6vw^aUmg#`bgrB2HSPA*Soxh)#4%JhaXE+5$ zeQUkvepoXP4Ik!@prf6c(1$Hmo6YX)D-CsphXTKds#N`=2LBaU{|T2+@qJ~qq=Ln2 zcsl|~YB5&-wI!EJpE)W$FLL|12z*y+pORnB{(6e|)o0x6Q=L^co!2~L79E2;+OC|T z08vLRaOHj0+L@HXDdL74o!O z3r)MPXyx(r0>8#}7em(1^1yl29u2@2fIBGPdbxDKI#QidEX?R|t!@pr8|GCONX zrPMK{Un4mad5Pn(unMG>v2u@K;6WI=ZKMGflBFN4Judr@ReUKXpU3l^Bo~K2##g@P z6{NG;nHz@%={2v)8qOn3)tO*SxQI*1p=mVCuwfF&`kq&l_b<=G{9yGnS0v>9g{j*UJhbiLOCZDFDRQmhru5aC6m1mxiva?~ zve_M`#Hd^0-SnYvbr2u5pyK1nt6tdm5j2_($gl_8T*Cs`&@Y>2f|sSCoP+A9BQQ>` zu+zs=bB5U6IVU^XWAidi!HMF}kD;vaLMmD}!^2=5%ku_u{>M0D+NWn0B&IY`*y zBrkv9y!T=g2zH)1{et~X%xIOg^$@fDBA?NRsTR>ow`2Nz38Vez60SDj56)`VZ--WE zuCMH7vIdI$4D9*HEe8EPB>n)xP(Vr)?02hLs;!Nlp3G;8oustqEJJORjt2EU(GeO9Sf+T9agewQ%A9orC{RF$$=|Czm4hU zVt>O_6B`bhp;#x5X1et}rgv;C{lLy(3Q0;Q>JlhG}n3eU~o383jW_ z)2&(+-oZ80P{h(d2SH843<$ps+Q|Kp5~KQngi++7aVc9ZpwBw!&m-v|n;onq+~^8G z;!Y$n>Vd-$Df(H7+X}%7zZ>BCAQwXv0vXQNwPs@%0b1WZ8;u!O#Q@>UCm(n#A*c0Z*Mc@c>DF)w)>< zn)P?rzxO=kaF?D$;^NWlt2NOAP#L~Mvj({#HD7Alb(=3F^%#-=N#;CLw1jn@WgSC0NL8iq6mLU|B|L`hi? zSqhuo%N+XL^Z3#gQ*VZy&2?5(0mV^JlS(+UuJ9jjvVp=|6MAkT05ua#+QvJ@FATk3 ztJ_#QQ5&VIlzJMNC?o^ouR`pGQ`4CS>b60 zqX?-O&vTZ*@%TA37b6a8FSKw9V)q-U>4oqpIaxNz&pY~nN29rEQtFDtJ350~0_AVc z*BJTp>l<;Ntt4D3MzW9c1G@<_4^&A~i1Hy0J_BcyWd2(>AoS0BlxL_V<07f`JiMT!{PpEFGJm z@BpV+)kZ-?A1+jJV!iEd$0Zd2Aq;{k?$}*L{WAH&MA{ovB&hqmaacPdLE4q-L=!f8 zuqKxRGjjP&8xsflO9B;|)MsEU6J|<->gl~^ zGCugi91*NCZe%7|an`w#6dgx`gj*5WrusJ+LWsdB$3?Q})c5t-+nMV8`A-P`Ls$v% z^jrASm?PS8>r%OtAx$N)j&yvhbp2&(_BawbE>uz0U2jNeal|``Z&>rgG@1M^Aa91w zL+*696T&`<>3NodYYkknl4QCV&lyqU5sfNkybz|r_7GLn{l0Fg5$-*mX-rLIpr zC`_zuE5+i0c%l0^efxQESa%KT@mNDu6m&n=DaxNRYP;_V@)(qxn3n;~D}DpaIoB&o z^+XP9EJ4-kDMV17*x@_#Shln01mNIDr=a}SI+j>?gb+(8M`|BSF*?;AOWI#E-meI| z`JJegC7nL+$_X$k*`A%Y0M5Z4o0mN#S~OOYa1$K^RS1j>^oaPXId?UJ4tcnC=gslb z(T%fIFs1E6$WfkispFqG`p}Gb%m|=nb1vwjPVHl+4zK4*najb9;gd$HP^QpvrsY&D z!B|`^kZ5tyu&H@-W;UY{n`{C16%(kj7+;_8GVM*fT}WS#!EYdr8InV|IgfE3rq0VY zFyPsXEn)DZZ;DYg>N`Tq?pXhvI6}QzUkZbp^9Z1zjS0fvI^SRm5OwPaXjnlx*O9sy zMxyR#B0c7K$ADGNWLAHB_Iv!ARI(Fsf|eedK7vUVCo}D1?5-sy9=$0l2fE$j)TD>O z+eG)gbThGIr6{KR;|zvscIL8TFXa@B6L3d0!Td_%`h&GDwVRMZ?K_!RX+v97O0?o; zLvW;^KhlUEEeaglKBnR4a>vck?_e4`N=0mU`OLpV3Fa1pDM?19tKUyfiM|P*EZ?P< zNEO56y!LJVWzDlz@!c-R-?9P$XT*#CNUo=?z*>%lL?%Tz2h6@{)do zqH&9}`1m3%xd@dSji-ClXma+V(jtM2o(#v(hFy#9R`uOjq=y~&kXZs=sB;y|6`P%zBF!hMSClKgRy7?LG6m5xP2;Qr&z ztc#pNvP5z-$wpc1%lqWn#s-|IihoaK3m^@hOcb#Sg7m>#0UhpQ>AwQF7P|#VfD=Cm zxtd@d!(uk6AfXS4)CB;T5ii&YQ8@`@tKyeeq$lG(?l(kjto4ZhL$-I+cg8$e5U;S0nZ)Dr@>}_Mpekzj_nv;z)27;7&D&+)VFCS8~ z)npQj`Hbl!rlyYCSNz>f<9EyOa3y=7mJMN13$>9=r$jV`_o2|IRoBe@aV3rxeqV4Fc zm-TpNbJDCgIUJ&w<*7A>jI?^za+bU9=e2zh|L3@SdA|VmGSIbOiqt3dp_at$U^GF# zOa6y=Rszg4gA^6((U)ccmfWnwZ%f|V9+UZP_q12G&-HsC-;cCy?INpdKaw@H)%@8C!$niFrbR>Bw!-5+cF&7 zkJ6AXZup01!uL4bN7BZiaSHTTia9Rd7vs7cZoDSu55J^$L5nzPExSFI>&J`CvY#$; ztePxjv6~+TjP{PDCu@v-&0G=lN$QkhB2p6<*DK>0{|(0wj7{v?)3z~KL)sEB9WqAK zk++kWOR^z+{AwFO(0ca=Soq60|01j?-f1E+yulmNP-JX&N4<#ww-_1ktF-<^dEk!V zl`TXo$&Q0&fgX|og0^NT<%Z)ykm>I4rPsFVd{jF5cQ#8CFDGqWo4`)C{Lj*KJjc)T+|Z?}wZs_PMS$FU3CwV5*D z+=*#04O0u7ZZnw8#JG52ENqD?mdC&l7KV}oi-Yqh^%AJa<>;^X4FxNZ7bHCclA~Sbh`z{?fLjCXBWRYNd0J_RflKF}!W(^T@ z%f?je16wF9dy>-%A8nolBLx(B;p(1@=uT;lcl3bMFrch6pmPi@xzZY)lyHx1WWtZ`4f1^9R6~ z50*$A3CO}P%3~2MpdTR8AyMy=28eR0k4XV-ocMy0m3^?mzh(303W zRn_YBOv=y)yX5k)pVJztEQS!Gd+rm&yD15Mm^;sSu~UnFwd_&h&ZH#n+FBc(r#hx5kSabLLm2CKLVv% z0?5P~RU91`A_7tLMMs~T*im{HjCcN+=RD$7*$Q1-FZu%^49Y&}@kRq_cg-|U_f*<{ ztVlkdK1;iv5MxjL7{f$i>0C@W{fQ6=5Ig!{0?k+_dEhAX)ZCsg9+K|$B+^%G5#wHM zlLG3!Qj%*AP)W^+ibQvj9d|71;J5CyUH)>TtoLKHco81ve22;RCd_}=&VoR3cTzab z(1$cUkssX}?8uXbo5!_{CeVA&y|3!)ykXKjkdY}KHqIg2?m>23C=j%+*k`6?C}CXe-vRKDW$Q#-#$N>d0KG#{Y$$bnc2r~%z|7Mb|&V8sZ$qb2m|rN6dT{)g1H<@ z89mJ)w+v-zEuNpn;$*L@b}Kuf8!?nnxw9HSDUC?D;jk z93AoU(4PaKa^I>2V~bc}$Z+OWnIWA@db<&*^Kf)7P)R8VRC6i``#0-pXa#gV@(KHj ze+vW#duAN2ssIc*^ zLnDR-qH>h8+x?m?5fD<8e~|`Rz=B;%wNnXxm{vl&-IJ$L7eNYO1YJwn_?jjFP(DtQ zT=7I_W7h)g_YBikO36PII3u)vLk(eyCKQ0Hlx$fOv?}H+7Jd3ca{7JGJ%JBOY^oB! z^GDxxwd~pAQTPS$bG7QC&@h0An1fPKbkDG=IG_|TK(bkoOE3e@4 z0{)>`+(eqLAk{QHd;_JL;h)!81v-zV6OL!8LMTIx&u{?#Qq`di-EL<;{4e;JYgc5o z8{c6*?mu@2AP38W4gx+Um>~f9;V=LVAF*n;!mw%l&;ZQdNkmZ z4?v4MT9eIUiK%&}Ip!0;rS^VaaV;k#a2!*{$RFcEPNgJFAyf+8spYRm*96pv?1gj) z@@dz=H`1_Y_}?GtH|?!#;RF`?x+1^?GlHIP45ZA^phQ;J+!8Eji)ko7ot+ngQ$9P~ zJL+dP3MQ9E7;vwV#$x8kb^Ph4&QDXn%-WevL^hX)u*w+`@{N%b3NxnG3Eegd^bEwEaN`Cj~U(a!=`yM z&gVnb^cPw_Nz}WYG(kfZ=43GHNLFnpB!5yojH%nhKEeX09S_RZApmD~V7}n#o0ISw z4BxujXsTql(~NXxi9V76Y~k>Alp50KzlVU2C1+-gxFGH$=M;>_@8fr6z0u)E6EivV zb>0`+%YRA_jyYowxavBR?umdufN`YehqFL1lee;zv|y{{4B-Bo(C=f)E^X~luXcPDo7;?x zit*K!je=EzuY6D5Wsu{qzlW&p+_$Eh(>5!BvG07>VcgGvw+JkOZ#IZPu>h(AbsZr5 z2LXncSeZoAP#*mQsnhGPA*kiC+eLa_hphXtZGyX$VsQc?R(c9u>8i1JYqU0Er)C{M z#!K%&_qYB8UbLkgZ3Q{Pkd(bAns}kImE?!zkTtY6Q-=ybmeoevBz#@dmlKK ziy9GT+MXh6IXT~!lY1x*aSfes=0=|jvP>OP|B#J!LfF!=!|dzeYN}53-KZ=pi3%oU zi(e{65*s!*M=N>^pCr5f?3bXy%r|c$AM^BX(o95hyWZbJw!}{(rv^7c3r73`vPELl zXPUAId4!UKK};8#O=EjZ@#i-e0Uf_&9K6SsCkF96>O0H&442)u;5+W7RP67wIEPG7F1??yi|S&9re+|};Ma$Wkiw!TzKw|^GH-jYTN#utY@W!rli zLvbI%Qt>si70dKuB|Q@S)C&`GY2W+lYs@keHr;zsDj@8W4{rHRk= zVB&*&iqL5TQlSj!tRv0v!EF16r}M;fIY@Uo%U6Gj4Z>`$GZ!f1v8fU{dCB7f55hy9 zu$$cH5s9d#a%h@~6@vG8PKvst3U%V4F7mJ7s30p6;By2}8p1Xw(#z>&w zxmUR) zSb*`RGbGAYC;XvFdS?-{VH#brJYHxp&QFO#mZ>jWZ?`Us2BI=vhTn4sE-CW(V`mKL zFk-usSy$4Px#V*~dj~4WZpmQ?SoF)?qVC*R&>2Pja|3o0{>jVO9gZ3}$v|89K(jZ;anSm!kgBqm=bD^xX0#m&0mpmH}L^cEK4ACEyjyxns z)5O4sF6n&YD zKmbwIS0S}6PZbhp5W{|VU&!DJ%k3jnlkUfK=0d}8&Tj^yJT4{M;ZSFoq{?)JLic7c zxZ*m+NKeX%Y$8pZ08h-PMllHHXYoPAFy?O23i+HS-x$!H=e?Y99;#96O*WMQ7lSL+ z#LFiQn4Nj{-qN{`4enX&GYs+HPbG8Kmbe8P1I->d;0g_Taw6i}qMF(iB(&hlA?#!N z!ROhIjxe=~wB4junxD?e^#W6mPoSrlZhv}q(0;z`_BVj@jFENzWa*p^XFWCyd1>BJ zYb*j!N!rIXtPa~L{XSc*S-5h8OVCitUkI05_m~jv!xI<01pjp3VLG2BV-7^If@Lue z;$h}kg+OD~T+*4r2Imvas8VGG-U*yr08p#&-I3D=$yBqbPlkQ*$fox4SW#ywl)6#L zX4d@)XJyn5ID`GeM)HXp#pkwHs}*c0M?^BFAV&IP4E{pMRCcy=%r!u9@1Z%K59WZA>CFprXrQH7(w7+WU2QSAy)Ma?x=IN2x~|26vUkqGGhFz z1&#}7eB5lkWCrIcMv$VORXjNdz^bnuNsQrM{UP+}M=v$D+rH#Y9K{VB*B-)s4{gPC zXpEQ6p4=D97C6=0CG3tl{CWm;AL|61x#p=k04hEYQWblyKQ$dc(u>?gEfH!j$&dm8 zf0Ji-_jDp_@#iHA=zTs@IHGO0+W`f=35e54it@Jybvv&4se!xRF0sKSpz9C$Xu&JL z*Vp#F8`H($uUoR~QHOMwn@pEeYm1vGo`dMT)`>LM$-~WXTu{-gT#}j9BE4Nd4!jua zc?-KGQ4=_Uk&IS~g0cK#Z+K(0jgq3~g9KJ^yF%M@5ZHevXZFaVx02`3F8{z2(tmqM zPWZggTgvrqx1V84p``av;uVJ`n8L&X(dmtRYtH{sE}AP7Sk;N**|@;%{i~AK7dsQ) z{NAd1%zxeW?ZYs|zK8#yRDmS)0H7k{k|XFw0Uv#QMO=jlb04 zc2ZG~0*3b5W!-5YEX!6O9?G;CN(d2wY@^z#%iMR}JC}#_3}J*w;CNC1A75%6zjE|G zmvMukZsN<6$}*wco}z_tQoA|W66oH8A zGjz~GQDlFNl(~Mt!OFe87x;fuw}il8uOL)S9l+yRt9{7VQRo1LR>+`*Sb{5$Otl{N z%)=p~mB!4UzrtPK(BdDis%=Gi)WNNYz#%vEF9Av_;ll&<4m$nCq-mIkPDFrR9Ri*;1cEs{`AU1MPRWD^F%{Uieb=V4uaS!!|4Yz zM6hJwA?0R_=%|l1OX9Lw#j!8wrQ8KDIvTqno$3T8^hAZgZyYRRfcpT&kt{W*5UXbU zWECzf`@EBQU65kaw3Rx$G~Rw2|@m`hTX zN8J9ioSGzbCHG(_O1*L1Cd|1-_LWi1jzP`SXK84=FM6?vUm#qv(Omn`H-5s{s6dO@ zT6Nif0!_8VS_1nq1IjDsMe2T6nvqQnh3VEDqR4`30(q7Tj`}isA@SK%)Uc{KG?tcM zf*e)#1t}j6;RUiVbnpAY_Iu#X%Sc?_3Y_`~!v3>p6KxA7$;JGw3jLF(P(&qVos z$%<^%t88-bUtr`FMLd&V!bv6xjTRZL0zIg^{z+eNmSF#LJv>(lsN0y^}d=D(gmT@SoRWky*U7{oM*mgz^`|Jv*C<3ojD z1gvcp>=vZxb&2ZAES;jPo$-U`_f0)qC0M89f3*r5`L@F_wZnpHWdDXTS5|4aqMPxR zF7arX3fduiu&HB2N=W$@STtyY9dUKDT+iHm4N1^Oakgu0*%3MBl{5l~^n)=B74&68 zsBl%luc1g)Kred6PRN|;=fFgd2Py}BC2WiiYlL>DJ2oe0PX0x~tNk4jYv_;w;EinU znt!|k+f09oO?NcjCUVY!yG09J=WzQAM?%Lxpe@w$X}LbMs9&UR%bgmQ~qYwl#4Z0C0rRK;u{ zr6+`>18M?Tkd6UNj=L?G8K*+v6~O z5S>BkuJ_@Q0rf0)z;W?=HOcUfm`~V%_Lr%CQkr{cS2QROhOgoKsYS#cq=~s&b z>#YGQS5Y}`Tmm_tE*3q+PCXc*TR105=LLuOo{6KJ)$*F>a!1bJYxeA)^!Zb4g`KWq zUgqXE1ApZMwM5XdFXnTLmEy5Nx|Xr)fR$Ac;e}pzhkPu%fcU8jrSxZ=O(gLKZ1sjz z^WhJBWe-Q9Pd9Sz#F61G&=T-=6-4B#6A2^|>BP}G|H?i!QHIne9{!Tj@^a3`_3;x-d9 z{og1hGePo-#->!0@MYyiWt{XIr=1koNJAP6Z4z5;9&GZsgr-<-H7PtLxC6ylUUWqi?gd!Hk87NxnpF-j~`bB`WPim2@bPIi=-qu~0MW8n3ht ziL{FpfXe}c`>Rv*i1kFbtg9Jm%^0FhQ#6-;oVQ(t2UV7>jeX^Le$9{9Ke>9lzXG0v zT8wW#Zw04oeXRX$9}C`kM+;EUQn`qj=mzvh@Vw^YIX#Db5Eu!2m#*esoH(Z?-uPDY zMqUu)C@x6=F=D|WbMay}Kq~v+OZSN|=yLHf$2E(tkaR_5&;8uJECLD*Pfp2?J5zlYW0@UvvyKZ z{03Wy;pJ0 z#n;Go<45I}US0I9wCHi|7>!B8-GTd^D}O}Zl$0yd&Ln1D|0JhNq9jUV zO8@PA(`{-{IEI8Y8Ug~O{wFrq3*y$NI+A(u4;q)l?o5+YbgW5YvmH{AsfLm6NjG)A zmV%iE{8o>~1IPB$<6$gIX2^rFUYC0@lSf|DjKk)9_#ZwiuRr>mzlKSljUS&ZBYIrX z{Y{}ThL!D=W}*Tq}B`RJxm%4FM4h& zRtGG7Nt}KSmGH)C2X`2?79xulaPX+@y?O+MjZd9gU$kfMjTS}3Ctw>ekpR%gGZPU( zcaKjJ%{^B=h%H7#M?YHCHr(j@(gR@GnHg=SdD}XE8U;Mpc1=3wHvmL_pWRR{tb1&a zz-#ivrmi^Od=&Ei41OMH9k}&JU@~K}f;;DL!UT)ONcl;+Y@N>I($E>cnYwphC{N&u zMEnNTuVLNR)*gDiIeRPd{Q>wNaL~txrB3%aET6A(L1OHgoZct%i`eQDhnE~AzT+2X zz*CkVY9^5JBew%`*Ea9!v#+y7XYX#kZdF7gY-BKhbnHY-dvtwB3JBzA0W>!s8YT(% zekuhIqiLnui+TwT6)MelzjuI?D01-z#mOQ*O|@W?-CMO{=sCqbOXQb&ztxp(SOr{Z z%dxc(yBgl;Y>q(Udv*Z++dJL1EofumBk*>7DJskE10Mw!IZI8CKUByavhLMc*=|(C zXHNhm4M?LaL)v0pV$?DpXd{$IZ;zKYAp*eM{YuD}WE4Crm#KO-%AyERT!d>5o)D*TMhsY<@ymuq)_4NSyxU|L92n?S7y|ax0&fpYay$vR+@JX zSBHgI3EOT_PSNs(cp%*%T3;w4UkHJxw`!zHK?0C{_#FHX5gx0v1nMAfL znWLDAUVYqsoaGW4HeG8gp)3PD<2NsInL%DR zE#II)7&ld-I_-sOTze8S-)>k|u~fEaP~KtMVX|ByW+(+pF*g}GQpzwX3kjcyJP$AF zM6{(00g(8UM|VpL%|XO&&4JXaEecr}kj_x{cf$)GHMr}S`_J@xl%G24S-Bn+MtyL+X+lse`?qi zBKXn=-zE)B`h>-S-3f0Vgrc{!(T*rvik2vNk(Cna(wE#=64TqD2~9`aScN?f7J<~O z8R>OdFC~&qByiyW^RW;2hF_%;5c#$E@r2)E;E8&*L$u+e3Iuex1L*b`G$#~;A2&R< zY`-N4eP-@&)zZqfWxVnw9&b`0cgxm69)|K()Bata_K)U!hc?A_`>-oNz5=Fx!G?km zT|gnQ-`fYuk@(OlR#4+*iqHlzPRuT&qG+8FDIJ$3k7pHneNr~chRjf!arrMzf|fur z@Ysf9!Jg#SK6V{}-hp-vQg&!A3d2J>mn0gWQ&Y$-$VV4sSJb4ps%#CQ`FawtTmp;z zK)j-%2$`8M_N_B~!yPE9FshO;q>Qy9;iwagdbVd=xL1(_!0$oOofe@Qz0kTs1!y_o zB(hwdVFIdjiGC;wck34xiSZ8MEFp76$NMdO&-k7td&-&7WQ$Z|1#O152F4=|@ zScEC&ivh3R262(ogDGhLvqH^<-8GCaL`Rs(KNMnY;Y_+xViKr-PDDD%A2WpQv`Z!3 zQ)N{(ipxpPVt2ynr0v6Er~UH#Q2;D~A4AlnH2D(gJPC*?A1lXzo%GLB`#Purq$syyWhf6ai7(Xh?2!#`;B!gVRWDoy~NTB*6_v-k=S1#xg-8Bkyk)vg7Jmt)U^~MF zZMIYw;Hk{q^xV=;l)(Y>3Dyl?M9U67CeeaVvlIRf3C;knBdNsF_}4fe2aDP;H}sLD zcX={hgLWqaTHo(zw}q4Sk1Z%4Qs|=4<`2LBgghIP9z53-7 zXI__x876=5Q($0&IIv}2XwWR!`EM#gX^s!Hmv#p)D zg4wGc&W`mHD7ex>*J(?|KkZ=VaP$*WH6xZuKL{1(3J0)%yZ^}y-4Mq{=^H)aZ(UA+ zW-RaR*seCy0a^@NM(%ziEf*YysUbfsbZG3FE{-HJ>s+Rgq8dvsrkrFi9w<4Nf9QCO z`s}z1s#9Aav1~?z1~(b{qXi_K$5E>doS4rLR=Y9gFDvPpT?+FB6hbf-6WzBJ9{0Qm z!cjJcGU{U{<#_NB7WtooGO#wX>;D&fXBkt6(=7bM;Q$ABch?p#4hMI4DGtSpyBu7K zLveR^YjKC-?oN?X-2MIE-23gx{d)7f$@5{e$!4>e*=!~=zs$@AjUq2=`k<_e0}LtU z@;2yBpZ_uK`mE?uHp=5e0o^WaZC-UO#NXh+(J*8DSYV)G$6;$@{|;Ii^3 zZggPL%+Q3SPP=nM+r@d#pV&`hdhquZrD#2($(}^0Q~Oz&a_LY#Rv6cubU8Z1_3iE^ z6G*@h9SvY*h~=wnLR7q~jd_(PAk!^(;Q;oHayHFiulS*?b{U)F<`!|SN}pk|6HYBL>5 z-QiNEu02ApS1pJ4v1jXYsxflva5fIX4vxkw@diyt^K412)Xxupe$}V%Lw*6rOYJ&^ zNj|R|nO&vp-iH%2-Q6R@CG>dr^{|9e+|XIrBbFgf9}$=>fH~`4HIz{!Y{N0z@47U5 zEsBl4GN@l0s)r@R>HK}%DXZYeO!qmGIXTIcyW4bD-AouGw3F=xFT(a6%cH0^_K&;7 zv0as%R+ScYj>vC4a4Jy7{aomG2Tn4^q;Rxvd-<%=OZ~9X&6~-)^0- zYO#(VnwPT65sEf4vGrNY^}vt+?Zi*2&FgYeYv`KG<93Np7cwez`pfodys+VyUPzF9 z-i+1(elmW^M%TPgYCb#*;D)Tn8COAsUD2c|@$W~tD?WCVNC+P*I0$IU`ypK{p`4!V zxFrB)N>)uU9zZq<=LxzAF~L-6}ygnah~0n$A?1O-0QYBohZj+mmvu5W_l4*h)^B|-;qSl4;=s1 zrQED&2l-AZm8r?DoW-@>iVQ%K3ueqSTFY609o1WNf0Bc@<>HJD|7!iPj|#%CO6rM} zsX4P!GBwun(s}(q?6*h?C7V;rl?_yCFhfj~p|(c&hW?L`2jatM5I))+a&ZAAI26(Y z9$5h*Xi#d&P!+GpO?5b1ad^2;`QDU=qf7hz!L;9Qt5}@6(6&rbtCo%ytP}AzwOoIn z{VuyBF2LU_0RJrHXF+L%QKd*6kz?XXslTMoZ(qErVu_aw%Q>puCA9LkzBinhN_7NC zf&`OUc${x4vdXo#pSG+~2= zp51dejpfXsWux-ZHQIdO910KyPB9bab8+SaioxsEY^#f$K#;qOwVr@LElKub;WOPH z>)Z9^w5iNnhq*k>@P}%mflPlp7dlrO2zvn8*5Srh~AV3cnLa+O|3a zsITEjxL6u2dk{NC!~8hn6#8t+hZyX^>BwXyY3nAFk{rQj=ZOuEx-;@+o&`StGFey^ zW6U(wg$K>|+2ja#zz(fyBr3f~ zI|X0V)QZ07wWAs1G5A`MEZ16k%iCe`RA^J?&u~Ul!#I^OURh;Dz(f}}-DeoQqp1o? z1QkR?X&_SY?>x56uS4P2ck2bsW?ua%({=19#a1ECco6ESCS0!){+!4Zm*Fq`XQ5`u zZ_5VM*2;8ECzzP>QH_mV0A3+Q=sSP|jFqJ%20;D~VgCPx|8lai{onClZXS;R@ZW!5 z{);X8Km1qEC!SO@{oU`-_5QT0)~h>l-25uU+>3^WA_xl@1+@8IR(EuU2Nw32>BEJo z#`>JABdl8`R{nj~c?E0Zv$hQ!W+-mII4}ew(HKjHE@@bSgVW<|U3%+G_;Bq>hyeR>;9SS5QB4%RTuQu@VgeE;|UkC+4dC>KNgQi4-P*_$`i%4 z?jzWWoSjze@Yj5(078$3u@1B9iE0FwuBy0ycx@srVOKLE)X|Cp${2@q40E+fi42go zqqN}wu1_*NdIO=0l3zOMld$OzIm9g0fHiQ-c%oPoaDia(_b@a0zZGToGbiC)z4xes ze)B+xt;Zczl3#B7^pB2aNtC7{xLLIL1^^=*2u2JL(oa=}79D1xE?0coQaA&PrEPTW z@8R&4(W1pSoq{{UYu?pD3&0xX2k60Om}#QSi^YiPQZpR;5%kv-q517vr;W3_I* z>3NjeosWRqKJ_Nn?~J1q?-JBXLihl3T~ft;q7&Kzg&6vpWvzKZstWUGyW!6~q}K^|rgiK4(&uh3D_!0YiQoq}5=4dO^K9rbsudpxusH>GE+A9X= z^ke9km$37fv$?bVOhVq_emVIO*BvEiBJN2(HP!lFPtO{!gh|7$GyKu0jO{K?+Qj!;Jf&wPmVm)R6Rx?f2B)H~*EBnBfVPv_pE&$sA4M|*qQkx9mp zv~~4>M7_v(n8I;AWvaZ=`~{`tg~I7SvWDG`SKpBX(e63zKRY{B;%mE&LyDlIQA0U1 zWjKG)KJGrhH(k2^n%<)LutlxZH08#jbLKVcWSK!FD`P{)Fc^VD4Yt>)B$3p-<;w0n z*Dk9d-wAx%V&m+#BZDx9D|w_8on>!*(XT#EyGe#G@r~JmMJoRMX5nk}exD;^e`Xj$ zQq!=S<#DKQ@iCRo^Allz^?;)&FAWOB1x2Eaz<+>2v$VNLHCy97Tkovq zG~a%UTnAfRtyRhhnzL8PUQdyjb?tjL{2uX-y-w5E*TF@l74>uUKhL}z@QDo8QQ(+9 zfP4_Lm=vs6>dqI$LBVRqrV(z}yUlm0diM_^9oyxpA3<7%-dYtK{^H;0jmO%WP*0qU z76`~ATZ~=*Bu(kFW_4YhoW0EBekR5G@R8Dj{8N@(-+oo}ESgqO_P2T;#_ zF9Jfp7x1KFmUV|8 z$~2~8uqkRIz-YxuQezoq-GRQWVhj813sM{!#81kdqj&prPctYmg(BW^ADpf7qJk`L0x({cG&L?euEB zMN8$IHi8%=g4buhADa~Kj>$JnX_;?;7~!ke41nND-{ttxQ0NX-D6`32Pd9+d6D5wc zgE(#LVZESQ-dgtHDb_vEPL0m?(?YStPo1J4=L1l(aCJkx_E zr$HV~wH^sqW|!;H5B#0Vhy2xxc&Vm)+!&zf`i7yd&R&TJg&TK&<2U^1%Yc%L63P4R z$Wa{{j1IkatC*mWqdB8fC54y~Cc`T{2y$Mnx@0+HoNTmG^8dnnDbA#)qT(LcH z2IUJwG%l4yyX}%t?&W-I=Qlh%ebH~NH3hw;co_EXIrtH%$POqTi#4RA-&F3tBPzr6 zG=i?YU|fF%l(e8$H{JtM@$|!9c;O+OzTFP0O@Urs)5bk7^s8)X0<1|&y#3}VpNgF= zXkJJ^&37%#UxcnrLMk5^@bqh`Q}rMK<{A^U^MXB(b;R86sWm*26_Sw9r8(=VDl+96 z0ee|T`!tjUH*iw5v(t2v5P47c)Ff=tks`dH><0NTN5%58Fa0wPvl(jJ)bHp5;9dBZ z9nxx$eJ-Ti&%-joNA$i=<31};!^Rga?ar+zYyO7mS09BB? zv==!n?p25!?2yeQ38q3_MEM4Fl>>Nr@q4$9=aK?|)=}-n<_%*Jz-nWc>y-HtGkZiC zu|$sMV|i-QcRNcFyqfI{ zlRsoWWCI-}Ql(H)H_4+n>{CS3e)?l+`xDggozer?^%fo71h!t{hEQ>7;J3gg{&VZ$Och_92ifXJB%GA}@yW4bDy`fH4 zU6r+Z7~tso)!vhe(N(8^z>Q842Dh8|=2E`AL6u?mhhXcVd zKvZ1EJby^h`9v>N1%LOJXuSTGh5+MdyNOr1JHmN+i~?q&r0GZ~*UVeV5)6Z$Qnu^L;R(Mb zh;F(hf}ya09htFZxRx=31rP3>4WF$o8cSQixhvG{j_!T6TW%!6r5ZFQy~aSZZUick zwg`_JWRVC>p+T|GLj(K9k!65(;Q(U#46}$Hn^;v;AaqReQ==#VtG`(l^+*>sk1V<(nu6n)!O0ppdnM5} zjKWow+f$eZZq@X)mor{uqjjQVh6b=kjjgqxxPOPK|0CTy`z5VnYmnRlCNd~QJBSScK z`>ymH9bGt)+5|_LjhXhhzycqUk%rF79^Vv))&$NkNL10ajr;W1vT(oL8~uxzi9C@RfV8yAN>082-JLens;)ebjB_ zV$9OjgZ%neXCplHaXg|!`YW1GAt%%EPfU(Gpmg4>$=c5P{8GdjfAC}0l}ipYhS0^w zSjVw_itZ0bbqVs{mXSfEK-hTWYlt0Nugto$#3i6bBO=coL44WBN8p+<=I_?tXGZ?N zldeb@uAa`Mii~*}uMdOd(GP>U#@)B|&W1Hr#M}IrV~4XLk-~>GIe*^-q0Gd+KBv4h zr1%Bves0ZMj}p}a-0B%_u_HJbPe>JZD9fR+f8dkv1J>dV z`*Tj5b<(`9{ zL<<+7tTKr9j#ZQ8x^{hdAD%*OmK#^41FM_^2-h>FH6)-6svTC*jLWa`k41WCy>`{I z{+L%Y8~_<^3)ot<&h&yoBsd^vW(ZlUSYy}lR@^|2BLTR+`;Jf5G~#)=tm(0cN965? z9VUy_@!YWQ2ZVg1-+1Y}tGvGvMW*0nEBFPVOEcoRq|ZHFy>Mf3tsQsQr5n>p%)?PB zV@SRS^&I@7C8>IPOX#394XHxdilR-=<$tZQ8k1XQKh5CJ*U>7Af$yo=hQ~qkoyFM0 z#4Bj$IQsiU2fr~km;Fg^7MLO#_V9~4bTk;#)Ao01TH7n>t?*vN7Uu5J{91jbyM3Jq zTMc>GWdJW;ezB5cCtBV7EBN4cUHt6HC9dppQoM3{=^B~Em9=&X>pBOToLnbtW}_DD zvEXi6;3*k=*?12<5Iep#>NP#D(5Q{^T@5npk5FUtYB!iwF{5O|+6)T{;G}vtJkT}F zxFRD7NqqwFSEGM3q|Y54-8ZBPN8JB4xa6+=pyBUkvgBbCYcL&#xH2v;Xu^ceIyw;-@>VII5tPrrYto zh`X3j6vwEz{E?`l0Gb%3vZ&m@)UGnOmVZl7#3IIsPUBo>O=-Xf)@FeyHK|JVT+*!L z^tyre^E(6O@>D+B9Bud$_AiWCMhED^$Tajn9^H1u{Fr>vs0?kQpBRm%0WwUU=O6!e zTb~L?;jUgKF$I({!_b^CQLu1u2iX&HzfeU$Mhyd_kV(5SVEUUkmd}lTy{sC+^e_V< zYRM=RW&vb=XIrYN;^lU}fxWVFMj3=yE`nwn-UmEA+aWQdZ7q3iyjaPAB!y9QHt;YPUnw{gbQi;9}^yvT68iA_^_P`z@)t5neVS!f99(u zl|k&GjHl@d88!hdKk&nH!~6a&tZFI15dw>}krMm}fBdXT_~0*)W8?U0Rgd0m=9wq-N1`?ZG;bXC|u2l|9$}c zf91dbhxxy3?EhN-%k`i7-+!C_|BL_4e}AVdM_3-aZ3Y}>-EY=bJWbs+NpTj+U@Ov$ zMVjxifZ%??#Tgbxi) zA*AM5E3-0YuaQN^IXN{oPhIDm_gQ-;lVj3980$1?S?7f(ers)Y`TaQb%Donx(%0rl z>YiL^Q=uw=!l(^nYx1E@jT>vQ=VjzVv9~9Arv!DI0f#-X+k%`+!-S3?!S_*R|10UU zt?qy?-CJKhgKQdC{+@4kK5rM2za9kuyO0FY0Q5b`JUGQZ!6)NOVJ=HyTYoAl{S@W&j4 zsM2`xje+LBYnZ4}a@Gz(i4}jWL?@M-s0YhX!O`eY>tG8e=7>(2qdF!=1L;_S6d0MP z9DGy$yQOXS%}Z_1o2X-6(;~0W9oI%L9JOyZQ;9hv4c(AO7=R|#-Y=ah!0zRnq)rJ$ z!`eFr(~8PYfv-p+7PKqT#dEEp37J&uz*&dMGpp;xG4Q3>s ztAx$#p>ee9Q?)e*m8fwwQHCYBDt6G54ssqNMi0S4P&>VX?*iW9fAfe8GK)OCb{v)l zggtHrkO-*0El&AGhrj>Hz2*_QMHYPZ=t3~`kYh=+ z@wl5domc^&jCLC7ss^Gkk}82XlyH`b!WI(&G?el9MYb1k0M$vM04eITgxm~p{0?y{D+cQB1~Me&TF_>6tyGR9>$sU8Ux zMtB3eM9{}+!6cC>6x9KgTcOLrRNYCX^sf8Y^~d(}!{TX%K z&fI|5aOvTPJCw5x@$)WR_TB{XZ7ke@{B$UDBVE)iwNse;Oxk>!MlBEU%CjK}*(MWz z7=R_$G#+mu|8jiD7jUb&`vafXfA|}>T*)#Qbz_kGG-CSKIbJbIj8Ofp+g9DKOSeS} zc>zD@dYfbc4SNW_3>yV5O$gnz;*l=VJpIlAgo}!P^#r#bIZPP$70)$ITn~(6gO~ z^!DM?_4U^;qdij|BL`qm22&tai|Cp{1Z7DPM5>fEd!9l`Y5D8@{xPHX6WC!Rq!1f| zZdY{=FtCDVrWjW`iGRmVsI={AI6EGbJ14b`MKOwllH`FR!^Mq`wqE$(q{cT8_OlOl zTH-Fq>b763lzxDNhis6?z<+RR{ikOt-ih! zJGv%qkOw5KpN}+)!&3%H=aE&duvOU!XAj~FW^wtrENB}YGgj4#&fxBcu!Ns_Wb)+p8P z6x`vIdHWZq#iztS?l{J_rJUU+6R|&i;0SV~&w3ML|6;jK}P=v{3*Jr-YM-E?bvp&KdErRXL( z>8l|FQLglJh{|b}7hw~e!_xHotBA+Y+2>z|D0j@&$BrnH99wou3Sd3a#B7Uhvnh#& zIwQPw*m@eOO9gXXc4C;)i6Tb7RtUHSbmAOqK6@aQX(A+5 zXwf|_nO+k4L-%x$hZu5sBmt^cj6f{ffyoI>GiI=U^< z$utRkEM}J}R=GnK3gR|F*IojYRtgS^nK7x;T!(4UVUS?tMT>?c=K(Sl z5=V$yJ3+W%V+ag&=3@98Ili+<=cMB5m+|7OJK3|KtM%M zq{&2@p1AbKbHCmtG;mok?MhNK1gc@yFvLa74~Tc705nIz=mfRoaUMXhG->D9lg~PX z(h%Aj|3)GF%$K>@4A%qW<+nxhAAC2Z%4tL~Nx3lpcgW zO-&*AixMQr4>He8J1}nu^M(qT8)U;+%4O0WOeolLmgR#2DL5=0$Ez|DX;3E8N(s5! zAHF5)c?Du>kLflXwD@3vA}DAI02&TyF?dmj5$%Z#F$21Sfc^|Bm;Qsua(k=macB2F zS65$D{IZ>jg*lt)aW?e^1X(OZ^TnudfWG-(sGsIQBfWnJyo11sxR|}L-ZUuNm=w%w zNxyMGT(;)HGG9&uzoE0ig6KFEP(($0*-EVYO59^k*(96K0;O~n^K?*l46UYl z@j5j}lCcCB5iZ8rr6k9I`e=wM0F4N&)O=Qm)?1ohq0jIjyPgG{$$p@ia}IIlgo5X= zhSeOmGeFeqC%6EK@8g%cJILpmAK#ZM^A)Z1i1PKqRd8we2{04l5{xjyHY0+xkx=4( zQP?2(tdC>wpc1l(1{Ogz&2m;VrSbC>V=R{ddD;=u<7~;v`)q{?A^e1>qQ)V#O&QAy z)hv@y?Pva;GiNZ#{t|S;TIe?Wi)RQsS2)pf`H;a2c(zR#hR?VeiguR$s~{FGc7=U! zQ5oZLCtW-a!y%-n5u$`5gPyQip2m7_BypC@y!N;iVI68lb`nZmp@>xm+(HEyN=>#K zis=0B4>YjEKJkk-pamjzx5%uAE5Ll8}ZdvTM#JTSl$A2}kQp zB&TEO%AuqD3O=3=Bay?AMVBU7EVh!xrqi^dwd+$6M539ZC`h9$;A&KZ!#7_pmM)$7 z;|0ay{WTvlVJSAv?(ap=KHgI`Q}y{XtW-aUBnTPN(yRqWGfhK9RWQqdx$?_5Or?-! zcX06UEfjkDr!T1Y`&OJIBmFL_~ci>3+n={;~zGES|jX8GPqlg(rkmX>91VeW^X3MW_vDgOB_p%NIOvAZe0OvlA(P2XTaq_m-W}6r(Bvil7Zr>cN<8g4oDlc`neL#10XaRa68e6)vR6 z(mh7WQneegX))|D<#XhGLi#dBGnuTqsKg(In8cEJ%5c`1Grj?LwjS7XQLJeqnU$>Q zk!nTE3JxGTf-+6wW)j)!AAk%ngW8!cXnru{2KqMyNr*VcMuY0tiL3-FDU5Z;j;MSd z)mI>g266r}9c~7ZaZd%sDn@gE7{ZKPu6UeG1Z6{FP-&wP{?i|Ak3byJ4l>Jp6;8M5 zUwZ!s9W0tX=yUuPLLUp5XCoiNQkF`qHpPfuI&EkmmwDZpk0iW+T zNI!}FY~XNyP_Z`gY(fx99FR71mx;`@u;f%uYyO3HEP*aT&@TN!Rl!74eD#;P6!A40 z^r&}9wnzSP$#IbkkoO&~fG}vgvvJG*`1zDuI8KD$;(nXk`#gea1qMdF0_e>zy1RkE z$uOg_hfx|wXKB0OdWk4nR|23uB@NO(6=fox=l)=XPOkqY5R`IOwK+2zSpR5K1~KA~ zJKNg3X@1rw4{R0o3ol$j%gt8Xoqk|2g@*k$dBY^^LQCxJ09o2{!KBwvU2~E|NF1}m*fAe|054K57)o`|H}Cv{`+sje*uV&GP*7R z03Pjs4H#K9nhO8`{p0^Mh0OGd{;cgcEOMCTbG~M|X-76?GZigVKP-PUnsl`=|Au0BKRc=E?wHGxMfD{kf8(@~FP7w!0~g&5CTIkW~@vVkFk@(0|@=*=m=*&zX9D^Y3=?zyJIY`r7ATqu4Rxe-Eg=^$VZ^ z2bG*ZzuQLh%{sK=e{}^2B&)r1@$x=Ya&mIotu%xlA6s7u9*!hXPmNDbc0I3r$$cHU z1wlUd{}34aeO3QKzvXXwRu;{aOV{(px%1nLS5(3F#8-cpEo^1M%aVUW!E>0cjv0gE zeXq^Exw$!qsT?5(E31*muJ^X&EAsDZ=&57Bt$cmgQBhEMw+neps~)ORi9fY<`rQ9a zNWetsxJJ7Ff&GAWfw~<_>~N#@D04VQx~s4V0~WW8|V~5d3pPZU>yDET{vTG zV-t0{*7}adcBxim97(Kkk$PTK`=yh4J88m_lh5Of{3m7)kdS&S*_i#r-ff8vwjFD&Q0M+Vs@q>cMqPdw5r~{ zT;`o%!5y@`Mj$99a4%j<9DUO}*^y8Ecq*S55{!Tzo5SaFkUGcZ*TxWaq4y=@Yh}#q zX-Unc(1s|w*vV{xqIVo-fVU8A58wSt0fW>>gEmK>j1m$-PshK1R~of7`yvy{BU^9n zp2FKDy{?*9w;bb`?R^XXY`#i2*Nb#o8;_AYkfh^%w?Pkd8?b&((a-k2!5MWq!Ryha zFwjK&3MQ8QF?-)NI#d1iwB%&7X8k!hrr>RHG;s8lc-SN2PY<|4tzSB?L1Ek?=D1KI ze2E*Hn->zkDE0tK;~6>gOX}y@;BPrmvPmx@Li*_wc0@!nbbczXSt)ajX{CtCP4AJm zJF0GexX2AX40b%4&Y$7@GTHG_Hc@&}%rn?XWLo}qp))wM++iiiVK8ETd%@;m!%d?& z=)$k4rHspj(q^+I_YOf>yuJpeDv-^0r!Um6^31UqYg6a!HHJ)6VEZsu&4{&lf_h&b zb%aZ_IH*Dk)9?%YsRcYS&oe8I>@ba?u)NaDmtDa=-ehetcwsde^L$DN1pI6FSDMi;wa9=CNBBTKG;yBd#}t*e{ePW@vd2Df`xEjh_RSxy5S)ohYsIN`@)FB-Jp2;eDcs*A=f z_cq@(r7vU;z{g!T7-I{e2N~nf6SOPY-76Qr1Iw^R^jQ5>q`;Bf@P*uTN{&uqZYP#a zZaB#DGB~sM5N{b+CbU6=#nn54%U2P3z^3xt<2N(TwUk0vX#sgwo4kEEVtl3zn_1#H z{V7(ajdsjqA6~Od8w}oWgZcdtRt{*l$6sEFUO@B2nZ#Z^^=*hSQ_){9nJi z`cE0n3D$pvX+q{%-dealetV+OwQ&;T&^#+3yPJR%4GFRAXXoK zq>_VKuumFL78Y-4g8V2YKmJ}e&%?GL^vh-JG~h?vLF{u+jR1ZdEmq8%&D6R5npa+X zx3J6t$djsv(s7cq2qF`S0Sp&sij2o{B(P9y4P%7J1e+D3-|9B=l*4>%^)1>3;QZ+*{#c18CDRNAG2`9!BEF&O19;tj0GJ@>d zs94^O9N?MucNSywUI-B1t)gL0q-1&d6mMz*}IS)Fc}byIn?gT(F43!4y<@(y90>=CiLhH@f_zBb@2 zxP}sbQ^?rHjflO5ExGj5o~HaV!_aR&DSU!L0gQPj5CkzK5lo_ozb_kwyrxk)^uq(nb1t#WMzfkPYbZqAiVh-+`g-QcBe%8=Fr6MB<1CdEgFDd zLu%?0vp{6V4OaOjUNZm}BEg7GPcnpa#4uFMxNxeTHlLT8Ap??=F~H;evU|KYfZmY| z@ZT-0zn>L~H@yYU`^0Cb6hN zyxt48@1rIWrgn)Y&AocTupw#;j80-zAgNF{cy%0{iBE=urTjvY>`Og^h;lOKhILlE zuW?wfYh&=+pwZT|k{b*#aDPHbBgmlw^btaZDK@Lx2$B1NwbL8M{#Xpxk>k(AnTaVG zhPbxe(PI;gjVBlx4>T|BRsq_6kjyDeB~FI-VTg-P6yk}S;Ld@qp4-`&%odUKzO(oS zLob_2FGJQDyv>O^s~5Xj?D$KZA`3u|5i#av#1w+nMnj$Z8K9Z}(}h`$*N%C>I;Oeh z+8k0n1RJP9CMH|OokkO;@44AVsZA7W$#`|_bBln9O zD1n5MBB;b>BD18p2ll-&#kOFXJoaA8xB-pg8z!(gM(rcSVfx*Cda(KC+gOrzktMDd z>4>&+>0ES}FGy~ZucJ4_GOSTjdhuz|X#(%#sK7NGi3bMKwXdtw54TKPlW!{purfBW+V&6H?WJ#JOSkEj*v@8}W zK3f3>?X#6DGYvtRI@xlBt{rt_*1S2-R+#tAzOt%Zz~~HfD<@EJ88GMxu;ZPJvtJnzF$>SgHT<#ynN`}l6uVDX9M^yx0VnbQ~s ziU}t(zR$NM(tRJ`lTRpW6D;O$Ml2Vy3c=xDac;!^qLkok`x&6q%$h(?A3@$liZ+#` zWKNfaA76XQXT{mrQE<}O z`fvy31a)NN@s$&Oy*6NUV0U-TB*=f_-VZd$eyLKD zPG*;Z$f8@5lweX-DSMfc=&Gi<6Q|;jd@pyQmj^54&zNM+s-PD?!4Ir+sIG4MAUsji z*E%&nG{Cf>Q2G7QY!YePU%%Iv?C3wXgAjg8#G(a#RHFO@qNXkj{HQQLG=x~Cm7Lti z#4pMoTV_X=zyIrKuz0m2_SK9=dWjnVoikRB7pzAB0X6 z;XrYY#;ZgBsDp$zavo2Qk*Q2Qg8**ISdWq*SOcqEkR?ShN(DD=b(+_?X6M6@e4%ut zu={5~n_!{B>aa}gsmnocs9@EBm+v=@A2-$FA&kEsKzn;5KjR!)DVX`?E@(oz%~fUC zmgPOFQ_bDoEtO5We6#iimQbN%^5?#n442|QEYkQ5i}2af0xt!SK|YR_WS-bv)O)j8 zg3KZYev6iZX&h?>w>faL0Y^8NK;u-4urJZL8=SEs>TVxqAA-Zo!B|X3^UA?a2tIw8 zdzcYv9v6EQHW9WI_)tYIv6OK2_x$ju{1m-HeY>!3*#8MvXCob%+p)rh z)_V0~io~h4CRb|AhyKCnSGsr#J^!+cwVEz$KMh|`U zZl*ojukD9t{@VEDd4&h+uU|(PDZsU8N6p*@BzH0^+ETK`o%^p0fXcgw$OGY;%v^8# zDrKq0cb-4R-akKaMO87m5)}L#Q&mY5nS->^6#hYJ z#lo4QXs28}zTo2EfYZJ@a`o><9u}zPv&4-5Q_Wp*|BBj;0xjp-o4izT?zPJ76^7B;B52sJ=^tp@%;j@M?Q-aE%-Y4e*t;q;$8 zt-v%|yC(&_fZrb{hFg6!U#mvXHY9#O1Wg=hKXn!%Z4aa9bpg0NZH4cbUUuJb<#dsI zstG;or4U!5u(;xDfL_Xeb|uF@o}N=b`uc0au-;9~-~+`C;i5WBr!oS+G5bFr3Upo3 zqWf^eRsFri-D>CFHoU29WaWyDION0AZbQ}fr89yuSAT!kqcu3js?5}fJ&}Hr^PfC@ zhv_W7{SrS7Vg7f6ZT~C(;ru_W|K{TS*ZS}O@SlG-{)3GDUjqh^kwx&&B88cZnj!$; zO$z`(g8_iY_kZT&f3EW%&Hoq!0Q_kH0RGoRqd_SE0PFa_S|v3^_1~wp z?MCOvXH_&bqPiTM##k{_6l{6$%q)W-N%(LvsjPHUN2xKQo(-brssa`XNjO3T0|KN_ zb_&q}8f->(F|K$&BX8MSueHwmaq`1;k8_`6F4-rMS6CATY8Kpq+_i$3z#b}51}hF+jD z)c*L3);baq3rzWM7a8l635~W- z+~_JPiwW@*q}3Q>fjyR+>m=?R`ML7iBCYGPu_40p^zOL;fqY!s;T**$2XUX-P|QKv z^FIg2tXa03ZjiKk-4=hkBC_^|648(l5F;17406cXh#a5q>tZ^~p9$y}$*6M1UiK)b zo`yfU`tE<(&X-%x3Kx|gYW_J=Fju9+%q#G)%ZtwkZAIg`^2ujx#vUvkr@89=S1cz3 zd7il^>cv2>*=H;1<(WEs#a+T0KcNL?XtYOVKKRS}OK8hQ;}@{u7BLjpC76F&Jz=Vp z#s6XS8j7NirUj)VfUO!t8ux`M#w-5h<&iVJaxSTIHjQl95(sR~_+?)exrXqIEEZ zR*|Ijact3#mVTv>u3AY%Oi6f&4@mQq&9R^fMVQu3p5eo<8DkP|0_e3uLn^9JlzyX^ zs)Ww=56H2K*2{+#w48bN#K|yAP2^yqYPobP3q@E^aWn`|i_2$+&zJ54=gFt-`6*X$ z&Sg3eC%>B0!-mq}vP$Hw04_ByaTd0(Ez8%7Gz87u#KW15nZAvs$q*BxDT@aOUXxjc z?HkB+ERHH?tquaE3L-HOIiZf~29=$LYxIKcUXH(`N!Mvf`R*d1mdW>cz8kw$*jk*w zcZjFruZWe>EGbEt(5Dm3ORunK74y)0?ml8McQ>W?o59j>;L5D}-u(Ho?jw#KYrorFPeHk#jO3Zb zX0?>r9!+g$Woib)@ zZOA-7R11-|_el{(W6W57q!{wF9nPXfM5x4r5(Tdw%}jMhmQVEu6n6+)-)JA4nJa-< zzalN_Wq?e#E5}ANjJ1s{^K<)YJ98_T36#e6XK6@8lRyxW&dORi&r~{MI)zj>B0hE*|sSP5Z6 z=+Ow5L8*R^>~JDurBr_s<0$UovagkF*b33|iWvC`%7CJYMKsm|OsrUcK&RfOQ0d?!z zOK^90cXwS_ai=&GZJ~IfxGdb=i@Uo^Vc}Y=xD>Y*cjy03vM|_ z-sc%}RE{TS4X?Cp237-q&REyflUT{=_#09YHHxnd-w$|h5WQ9F<3-2?|DaJhLjA>a z#v%o2osq84AFk4AzEB!0Z!38vedQQ~_Er8`H6gGPA9&_=#EE8@t7Cq-k*bf25?Lj; zux$`%%b;10sh}|6MuX^m?bez!k*=Bv{^YfyW%{Q(n7z(1FvRGSH!eYYZLVrE8FO#t zm(@!?j)zBa8=23KcX3K1FcUPKYC`p*|+4||;Xe1*N*)XX?k@Cz0OO&>zsxz~6c zsracJy-@_-2#Zk}*mWDcsgaJ05}fzNhkyCj6#pJW_?KLO>+D&TNR-)_uJU^Ur6#Ad z<|F0!^+33HpZX8)+(!b`y+RJ((s zs=AVyjiRB3ligt-r7?{G5v^(x`ypRbwc3;rt7j@Qp=!zZVOmSJSC~Z3acC;FIdS2f zJ`b2IYxDJT+J3d$MDK?c8!`=BXGTwo#Irw4d)mRw)6+Oy-$Li-havSWBw|-Ie!C&k zcn=GZ@A z?mJ7ZSaPj;5k-DTMdPZwpGlqWQNk@RA5VX>>TnY3~I}TZOE)(Rrp6rU(N@KjsvkOJ(EC{4#TlHyH&m+B9(`aIQ%tk%i{pm)x(n% z4#Q5HLHcq;*@+;XAWr{l=BGt8(8cDo%EiAH%Y+}~xVpm;8oq(DHmp?uT^y}nTdl`4 zS(C1A_SvdN?tv+I6ZrnUUZPS9I{sj6_9X-9vi=tDA-DdmwDXyr>D?oJ665HzRu;tP zIoo>JMM-74{!yaXIsIJ%La`cSLXN%IS6}zH$PI3GAEMvqe8pR&k6=?=Ly5&J8w>GTg_jCobtp6e>@MH`v&C> z0tI~Cc@3O;P0dz^M@&$^0;q0_$Ak*AzD{SEm*!TC!&1f?L!ams+jp-m2a z4dSg-N~O2sBrun!Y*CM$LJ~W_c@lRTvn*QqF8+zFJ}fa2F1|Mfam1oHX}hllKFX?4 z+BTo&4+lIQU0#n9WwD>1GxCu4E7Q z=$}`dbsfCaum38>CmS`Rl0yzmPYp{fxA4u`z+<%9hR}$2rjT}9E33Wji=K)K+&NTg zCtGg=odjLyjV0>DIR#dGht*Kw3mAXB<>}?mz0ZAfMqA7E3{200wqbi z4LG8CGj&guFbX#*IWoT#)*uuWN!$J_q90aFJLeK%ng0} zuzZgw^nmhAnYDHDGIe}{gR4`SSeI7C!?WakEczSnQEhaeD)GPv^K|zDT4rK1vum`; zpOMH;)d;V!ZwX-PQ=46s2-c|uAW^(OntvGi?r+4*T1in_ox7Mg%0nu~hF&d)>EG~~ zk1bRqW&v>i-bXd^QsD*5YKIWw5y*_^f0YXa8^5dOJQ@(Zc*Rcj|M(1R`V<_v#ITYw zhvJ$pV=GPD7O~Ke;Sj0?kAqCKhX3*VUzG;pB!{h!)XAYiD+j#XXwQP($GI7aiHXS` zfkL*<_Hyzb_+o)6K?Y4R0W7;9H4;-Fl0`|lUOy}Z_p247WZylo0l=}FW#DI9Ny`qK zGN*6IkmfPu<4(-k9^*a6?CuEw7q3I9_UkB{cAJ>hu-j9t=m{YFA# zC4(A(Ijv{Lh$VrFcO)$X-S`MYmR@0$FjDorRf;+*(MbaoQ~0Q&dZ!H?9fAvC?;EB> z6?R5Scs7I5p$#B-&E~4@Ds=5xk!%gauIE1oNqrN%3tnZx(qQ>^wl=jhr_8xnn+Nr6 zb>U_j2BrStbl)6tZRS5F6j_t|1%KrwHKze(O)G1EWI~NPj?fYGyyJHHt17y!Z>a1f&vqh*OpH@PPsgoJ*}By`+IJi1yP^ETgVjk z5b*&^K~b18GA%WIcqpOC@t}_8Ek9*=4Z1`e<2wxNyS+eX6YVmz32l&ZdJ%0A|2C)o zk@I6HPL!1Wt-LJb?`M7H4UC(;5C)oNQg*py&)cY! zKZ{6gMoCmzcx9CE2fymQUW}T6M~-ctN4a7vF#HE5eyfl45)(WE!IDC%3%0gcQw7*61N%jN~FvT0Yrp24OBJ*rh z1jWFxW&i%o{!wgvPb&N5I3-QJ%#)rH#eC#GnV?G7_PiOcJ; zS{X0@*+lr#n=H*SHWRo}|HW@Z@cP-l^=u*en{M5&+F*+Ccr={kiYfR~op^exZ6zuQ zk^;Rf`zsl_&{rIxF5S(tN_{@m;fbW5;UIhEgl5va7o2ZCCENi0JNK;3_o1S{eV;hL zEw^r3dg@&6bgH(fV}$Y)!^26)fP*zY(y_O1k%iv|RD!%?`q^ll)((F%*Q%IcW*lC; z4E%7PI%)PiE?{U}0kA|>)%g;-5>AFyQZ{r|PN$zwx<22Eux+@=~Sx&OOO1EAglH4@aPDRE=e&H*$ z>!e2_OwJb((kxWAld1sZn`DyuBOZGwv%!313xsjE{#}F zV>T%Qmt@~&An;+-gAMWt9 zQp*$X)?}+;aIeL3ETX>w_&*;Ab)Ze3 z<&k%C(+Qj}LsuO?y>5C{`}dZ9YxCtAdCHp(YpkP<{}hTG-}D*gis^P-JR5dMc~aV? z+IIV|?EK5^X3Y;CG=Voy?SOz@l=!sLl&6~wk4h_+D!}*SxsWK;{o;}F`%l%5&*4V+ z`JX+ITdWFdV4BNKc)D%<81WQ-P^FI9d)73%kJL`g5O#y3a^VdUxx-tbzc28m>{UkQ z-&t%lkx9Rgh0eBf{A4O&bA7$1G%cADKNrJKM{cih#FVupIypZNc&K@K=Q%w+Wz0j% zK@Nze67ofOSz5l(QE{erCg%Fb&hp~8Wl%DohRaNa%m*H8D+ehJk1Hp$Y^l76?n+&} zBLZmAzQST#To(SHnW_9g@?XCHYy6i_kn4Z5|C8^3`0sxc{!1MBU;n>-ysGKHd_S!F zTXkDIv3Bpj@#^i=wc)t?9f+oC!37M8EQFJWqM3yeCr+Y82FcRVSZBoO2LlpgGxjh; zB7(ux*g^=Lmb>Vy8>fF>pHA<4p8s?`n|{3hU6J&1LLk+n6l66nQtAEiliy+X=3|a) z&y%AOY7n4zG(7Ip#Q?<3=0_=DIYnqF=}TR8k^Hg7-xPt&^Pfo2(MRfW6}PzU)bD&u z|57GqJ1(^VJ1N98*Wm6TOrF=fnMYQjGgDD7K+YxQ>IGkpYy26_^iiJS3ZK&&s_4=d zPo~1Ky+~f1f@%Ubr3z;lZP_Xyedt~Uz###ae*{$=Us%^`V6gY1QhpmHl5=qjz79Qi zK^nQ)8k^h}Cl?uEl8wQ8H8E`ibCTiyDt%}KZFvb1lNlLna(n{`l^e+`~ zw3dLaIB#-7mMgRVJ%LMgYiNa9iDV;JpHMt`BEvjnn)b_DZhR|%{w!*?cJ7mLK{v%A zD)7ROvbDhMUnjIszIMR}ju{J)_8t6}r{X$FR=#HKL($6cW500sUcJ>gD-etPs}FiT zx>0r;IU)o8&~b*kysQVFN7owuVY35v94=eQwHFo=ScI=z4NC_pYF+uqXTIQgsAaQS z_?vx}3~@c0$yp-P1yYo{3FzDWZ!#YC&zTm<_0p)Bzw;%QG&w+aWtp$A3pHBGkpyw}Uq6c!w=9no0$`Ed|GhM8BBen;ig5zoHAV zkd%$B`}1Xb5RTlM555=3T;_HIX|b?EReK1eEAkb&#Nww59&#BZUQ%|yfT=oagO&Qr z`4v4z8q8332aIDc{pDw+3Ot2s<#*9UNVhSDkWYBtOLVJtMQ%!Bp5Ss`v-( zHgh3QN`#|(PV&djlL?8M3f5LX_odQZdH}G0>4-4*&ZB}|%{@L%-FvY;`?;xf1!N)S zk--m5?1?*@7S)W86H6o8>{jITq>Su8o}-v8}U8xIqR|#O2y>TiC2y)ytPLs6zElj4 zjpq^}N>p<75uagp+UT_a-Yn04CIxr+bjndeLo3fi?Rt6#nklXjifnojACU7yJqTh? zqpt}F`7%0p7h>&je{9VSp}=St(Bg?K4kjAK6%aLPH+PdehFT);0~OxD3H+dIokBdp zR3WBYNFmrfLbc$Xr%hIv#EzH>5H^WDn%(IJmS;v=PJnu<*#xxw6`)x+2|q(7k;D6~Y#+GpV^NuyD` z451REyyo!)ar}6<89(-V3t0b@u>-lV+P3whMED2oLu=IH(JtX8N4@^?aHYBp>dI)p z5=sRtsi+dJPFwE?eX3NJB{KgIJHBSJXRM6pEy1-TQr_&N1yGddo?HS|V3uB$94U%@ zS2fJD{?M_CN8ZiO-2a#YoxSlsdI+2cL9aCq71je8u1U*1ye)#6`Qgnh`UB%Onp1U= zB5tI7|5hPzA;Q}}1+_bvsS8ld8l_uUYApV6=xAjpab!hfB%@NokDWVt)M7PORvf%x zTH*)EJfX@QX{H#)RF;H%#0WhHY5A6vjISfFnj0uV3~Jhj5Ps)#goxbl;Y4UsmZfoL z_r8;C*#_bfM;Bg;5b`z%W<^x`DLm&AnzgJT+bR$3GRs4EJxQ=QKB<}x9{WnOv@wKT z(p?)i+Aq>Y`7+FUILKsIUYfiycjh=dx(J-rz+-u-)m&qb>0beal8Xgu^HKf4G&@Ya+7La0nQZ&#ICRrWwrn$9OB!ESKVB z+2w}s8#bK_Fu~h~QtgpCxWHUeW_%9KK$aC5vQW1)ix2f!Ga6YRR6ko@Q4c661hTdf zE0Ux{5pQYm$St<{PI0FJSQ9^{xUDBOeC!!80%07Y95$!2`J`8(A4}NBT7Vs}vxLf) ziD-jSn!QTq6D+!Zm8HW&_j;{?Rc?;C$(h;9al~`Pcd=#ML~SMI*e>`D({F7_o`3{Vc!hgCZ=3&mV?7G6(OvTF} zQgT+q{ntW}IV;6B&&(¨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≧1n?G?KetCizUB==? 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%0DO zdY=GB)8+F(TKIaAX}ZF;^N-0rXWY1Fle$G!Dd~|ubIgHvx<^6sGKDY>MF&wLQg?Z=0Hmd`kg^ub|4@BQy|K6 zrTJ9qF!&I}&Or~(pwSq4ff8~Jl^p3Wzwkt{AFxW@xE78eko$!F38vJ765g23XVO-@ z+U84hyh7@&RnIVNd(|P$d3ZJZ1cMvxZ*&g;TqUS#mCPnug077U90j6j_hlUBB>lTj zHQjXaK6|1LBRH<)Mj<{yv9f-h4%;E<-zJ=Z;&d6un{TIMc8L7%!pJ|+<{W=wTixk= zV0ijhAd|}`xi+dslgRIR0u3B-#lL>9Xv;_hb~}{NHx(KvALFcp1<2wAjG~`8GRJo@ zZ!f;^DUhb^zd9ggN+`3cc)Z&{0Byi+=H?uA zM-ar#E*qzEFZ#ZyOCff%0jhjR(5fBEukI1V;{RN5wJr_FR_8S?dZDjY2sJJ~CVgB> z@B!obD_`&^(8+8R-RFkpLvWG0wbceO2Iu+{PQyA~_9%-IU#%Zz4*md1*h8h2mg<_V zGN|h5BhFYTdbyHJ${Pk{DT<5EhZ0y~`~Yh82K~(2Yn&=+Hm#7)XGE4bqK7GY9J%Ng@gKD{I2B&PYP$>5YbfnslHh5j zieKg3)uzYmJg`K0fb*uXTCQro;{_rEUjz|zZ+;b}RWj_>Zbw;3hPsO8kW=Ki2jK8} zhrsJIf=HJla6}-k+S$>ymP9D=l{t0NR;;Rhk~_Sp8l$kVdX71EIyRgEh;y5+I=lC~ zDR3MKXtV^U?Y*HWSbp(zS??A$-VL z_M3$~is-dOIH+O)XIqAmr#`0&nqy}^QTO?C8-UW+{Me7O`U+!w0u&01)P2N_*qlj? z*jN>BcH|Q)yrokSFi!_-BxWx{w7L7df`k!>xdXp{3S$SGKKfgFm?-9q2C(2*;XIYp z^G!60TzapLMse@oPwV^fTe<155%s6Mz|~O&8si18Y0zZ@nyLWY(O|K`NAOHCs%C-+ z9_pJhPG19@v>XVMfB+0iJLndOJB56yDS4V5kb%Rcvs|oFA6W5=;libQT~*0TI26RP z9u4ZRt{!pYfMGHmAkh=s@M=c{NM?!jds~Hqp(IOWrcm0{TtfBV9dJ736A14nKz2I= zaO^ms*x=p0C z0L@(68Ykr11drHt+Mo-adm=f|kx4YXCIyJRDVi+U^{k_YeDEOot!OHqBiYBfMGkk~ z4uj_8uNW?zWlm*=0#n+oVlL(&Mm+d28ipvmqlCtsHHF;y^DA8);h3AFZY&`jMue&Y z5nXLxE-gk6(t7@Kv*wBOEzt87k221|7xo|C{J)C-n*WdSUlvwIrvJ`=|I`2TzlHyz zkNSm)!QZ}iXbTL`Zfnyd}2oQKb0EBh^v)Avt_Iq)U zrqeo_Wk_xadW=`CK5!JFaM$m3$7i+!Ayhe%V(%0 zW4v}*biA3--ZoIKHXqgxLt7~V7YgcIPKXvnOIw~r!bLFQ2#Mp5|myd#|ppeK2`ly9A zezyASfpe!LLEjLD8{pJw%&kp2ng%<6JgDCe*tWpRZxlx@%2Oy_WN)5H#gT1OUit&s zba}@H{>tU*=>?a+HagtuyKds?TH2PZofoN6mMB|#+T!s8!fcp9K=)hk7bfm3S*hOr zfGF*;y2nG>0XBw4R$fRpmzRlTU}@H9E8=Np5`_B^GJsCJBZU^YPItLhAz{c<1n(P! z@Zh@-zr-D8(Vz%I=fYHDH$SinbPO#zNN|uyu@X#~I3iT&pmt3-MK`?PgKV>4h#OY| zeESP=tz@DpV$mcJ3P(av$~0(AJslBpzHkwk2uA)SaY9T0n3%$Kk-A-BX1%mF4m4)n z05&3C4DWs}IYT?)B(Y}@1f-&aYGclniMc&?1Ux?In9DpHUU*&6n#zKGn-XQZ;&hvQ z4R?Co1Yr9OCTS}i?Hi*f83F({*VXStuZm4(Yv(|MpI~(Rg*z2)-xX(HKgPam+nmIZ z>f~<*(*lfNj#25p0wPE*5LdP|;^M?7V z;yos2oil*gh_|0+yZ!^j$V99+qES ztY%ZBU3)b6u6N8)tDuSV)K#BF(C|spIU2KVfUCQXAcWlTw{;qN`FNRiun4gmpMlu~ zOEylycrX8Q(C742fQ6s`q2rwAekP-2GMH#jCy$i^H)!lAyu50Cb5ocTd312lEpl`) zkrXN2Oyv4?zLG6*=AWaz6-tiHPQBIXd0&sP4w*&`_;`wo0r~AH8lwvj z=*XB4sg_`m-q7eO_hueFFFwO$8Z^2BgUS09wt70dX4#(Z&Oq2Ra4W}_!n3ufK-sb> z>W78Y*F3|xNALO1dI?GIx<~jxKt*z>2@V+ zN(+@73zyYr&1x@N*VaRGJwhenEAlV|rDB^Pfo}@QI^`8Z0jwMxZ4ubGlOxo~=aq4J zkNSX>nn6&iGW8BqKiliC&IRi>%xByJ%&~(Zm_N+*xjYehJG7qpE|t_QH2cJNpT6?s z!<NyTAfVJFdY;wIPY(&+#fw5k1#&w%szw<#N-vDOk7O#P{6kx)uNTpw0!(76z>ce ztsDYZ?p;|-2hZM(j&F$axtvjHX=nh{1xwVw#Kk)|g2S%k7w!8~%4MG~{WEGe_S=~0agTFJ9jIoxi!ONP^t#-kVs8!39(Ji?( zYPa#goIYwsp~%5wY!tay+wlVOvC8ySdxk6(lZ^ycF)NG(EcM0Hb8o`#cV$9Z{?cz%glKc=-~wA6lg|25i(o|;^4SUtvX=V6_})vQ8)+yI~8h`J&nch z{06x=0qZ&xXzhLgGu~Anh3TE|yvs0`bbB^>5rF-0?`cds$$mrJZz!l`H~&d~xfQ}4 zR#y^-LHMm-Oo_Y8+;H~k2$l$X9|`p3P6)fEx#?oScoo91FG7eL=<(LFVOywNMaah< zuF4E04URbv#2FuWBt`9u1GW5{-KvkmR$03+HZ1i3*3$F5^(;+;9_y*Ki2#@%0JPeP ztkFJgVmJRQJHJJ8OxP5Ey5+Ag7&~>;x?_fqBfYEgTs%PcmqbRWS1{V6`5S6iK?0PS zm1V@d(fWVbd#C40pnhF9nXzr#wr!(h8=a1=8QZqeNk<*qww=t_wmRp#+2`V%+O_Xi ztzEVLf^jkGH^x)%GwK~bRejr_!SG;3j>|C8MPvpklF1PlkEBghIvC*~mMA-AovfF9KGkTG`@0SAaQC=f$DAX141;L) zs2k~!C1Kv42LSZY&+0B)94Y=An0I9uOO2u2X(9gBmp9F%HZ#bCna6RU!gtIOsmrD8otM zIS#eDAg7T3g{_RRkG5krIub}DI2b?&2lGHl2)}+AQ8#Y?%0gpaZWw&`k4>mRLk`QE zZme?Df!_RVRLScbuUHMxtl96;wv0Ue`j?XKVDi25B~j#xo4q2_pl-tG=wb(mlEfq~ z2ws!LZSaD;o2QkQrodHtw~`sX?d|>;3)!dC?ZXmfXfoG(#ggDL#gj&1cB=!4Py2Qe zd-)NMC7UN9oO*QrS*RFIiTyRmWkMWWZa;S7GB{l@)Hs@v0dLtAEW~N?VDiz@33DgmZ76!thgr7zm3>+j~u!6boAGU zep}D7a94ZLV5rospjZEXy_t+TX{^9eF@O5xbMrBLh7s6CR?Za!Ut~vxg(8g=X^&25jIlnr7Ox`mXJ4^{)@R8|Y{RHn&QWblcTBEr&O> zbog3XTH?j|7tDG9Qfu^{b+1cVQoIy{`?zw{A@R$(g3y^9~ zKd<-h2X8zjG@US6fNBw@`Via068&P4ZHS7&qZetvD)j6I=9oAcw)f<2%-p>Z7%F%o z>?=CDZFfrQ7FhP_LFn{b0#YhID2XsgSFblX_m&pa$*O|CfU1bJP~h$c#GwOX+=Zw1 z{=D2-lSgJHS0;&;;DSLL`eUd#BD!bS;*Hjo$K+kRG&=A=VrD=VHMnm7l~OIm#V>-c z(_kUo!d;E0UpN)~4ul+>yxR5;mhs!;Ngw?gGr&~?P(-}OiKT7OHTu`f0^_=E>uiAY znqB!QwX|*(3_w^m8djWlNV-JUy<=^C{6ByWz(n;P*#e=w?LE6_=+r}iWxx8yic>IG zAuFP{WUDeS{G%wwA;F-#rsDTo1`tcEu?d@s=zE#Ft&Nj3e;F8|6Aq<$%Ww?nXGU55{;7rf&91R_z!|QBj!; z^unRf+?gh&KVQFWFZdk2T-c+SF-Gjtw*DuuKCxOPaWdVCJq3<(u>>~!>kcx zaOb-h>7{Q$8T%@`v_~IXplT1c$euK=Xu_Ff!V$i_`~wr-d#PHor z;~_zu-ouVw&D)uLJF!xH94Rhby?2iT${KA<-|%aY)ddg<6{i;FHlqy|f&eMr>DK4g zy*rHP$1qcqXvQ5mDc!yY%w3N8!K)-Krk0;D5BfMS`8=$6KM>=mTPKlq_LMNr1Qe#c zH|K>Ctq~q~!wSDr?q@^(7%!o|fJ|>w&aen^$Ka^4PxZhZVb?<$H_L2dmJR-HLH^74#h$2ilw^o(>~NBN#Tp_T zD!e$yMCh^Il+jC3D5mm7RHEf zIU%HH0^3FMh}e~Q#7D)XN+B2snsnLg->|N2@;Rm1Phgk{WchBZ@g&I?=LWRml@kA{!Wt| zE6GcLdq`gL%b+#yB^9M+mUKWUFWQrnkb%Q2pr-r#_!1U}Y;xKy90|l}uJwl*t105` z$oBk~{2(G~&AIQM4-eS^q#_+L_0Y6Mb}@iHLtkB zXi-vvMs>lG>_M`OW6-42R+DF(ih1{hC%OCtBiRrH!)8HjYJFtN*aQ=p_f$V?Zwfd2 zzF)sTUMc;2*+A01Riiq{!+LJ%l-1;oM z%-kTOBmrW*1z&#_&x)7rO7yA+<`73T!GpCLW3J)||Juhr*um`v8VaT~y0+Cx5n-&p zd#k03Lc*Cy|1z$Pfc<3z zzm-7cUAj=xoJ7)$=EC%}8?zR$#&_Quu06W|mC+I;Z;*YGqun)Gu7O#CgNcL~zj!+# zG#i|{b7ppoU*0%zj=9OwVwzF#{J1Jv)hI9)svJD(BDHVUqs7U?G5>-2*YfgLTGIBZ z;0i6M#x0_@x0YCbfy!=Owj}ws_X~Ht55>wx1>3vw5Xt$pGR+k1;*O^f~q_CePM|jAK{7b~g zAIW&R~-)!LuEhL%z@5(U{nN}2hl-)G|##drW<%&2r+BiT+B<%~YRp$1A5Jk6Ns4BX*(esQX7<>}P9g-L$@_wjoMk=;a0hj|Y zVmBzf1(FV_L4w33IqFRv_qCbxIeM5OK)7XQ=r01PY3hA*q-*@dUFzLnsumYNKu=lV zf;)t)#i;v{zoy}>wlg9;o{=>|N0*;E}sAKKmSeq z4-WhP>VHG{W2NoB8)$#yKl7IVBE;c&J+;O`JPUHZS{v!IUv;(zv?X#X+p?jA*vpiX z$x*aM=|?LPs5L`1H>JW;H7Nn?7SV~T)YY>?qa*6g$njy}aC7i_?_y8fjdu@n8(;LE z+%C?eS11_GWi4M7^ml0t^O~Rk)twlf1ejTUk`CS(?nOX;CIa(TCrw_MzFH04MsF!H zx?G<%W;^YldksDnI7m8f9R>rNzfZy)_1pb#Cxq%UsPf6Qex3E2?CMAK)_hGB6H~qtF!Bpivg) z^*49t;Sp(%;HeGVQvPoD>bn%b*@iJ<^Slb0w9?&KwmuQh*cR~pb9pAx4sGCdmpG_B zdBh+o_@q_|8YZy38Hlk8{OVIU>FD%$rW4XZ2ZN{Kg;0~>fn|V! zUJ}7KHgqi24+?zoe**6H&j@J6BgTmFkivphnTW!Yl2-=d0a1t8c=TQR(vuhtj{ zeU87iBL|}bcx9x8Irsm%{rF1`ej_+2Hol*D|h$;n~ zlsN^HlGT9ux7MfqtB2DJ1Apfr)>qJ|Z~xT&!`~}4F!J!1^l_QB_RiUzUfwR(*_yB3 z=RX*vJo3#h_BZ7cjs;(NLaWpMZ+}-Aze*Hpvulp6tx*Ta)37 zEjt0sq%{ZYYb+uGxHiEcp=~15j32|pKOtCLoVgB$`C!tc2JrxtT#ONbatnXBt`Oxt zom>V!x8-7y`-w7v7vuKZ-shc_Z@f2x{Q@;CRJ8Sn^nbluo`X{?*F6?}p9XS2_+^oc zQI+7pyMPR2QZ^Vv+!&<9Q*#58D7$G4ZjbJjCV4z>`2XprsE9ZKB!}v{+Fz<+ ze&u#L-1LKg{p#x^v>y-6{41paI0;n+zP$NjvT}@tm&Ac2gjtERSL!dRQvD+!-?&kn zh}LoB#Sn+^`VrWIY~y{$_Ku+Z;FQ4%9pX|MBZ%_Xi_E>`On%8c{gu(;4sg8L#qWA) zV2R)P6=*l@NojI6D&QEnaNl~>?Iqev@5Gm{28Os!?+HI1yA;e43gXmPBpt0KYe_>z zLYuRQq$h?oBy-y$ZV4)Io)qT&c`=thP7SVn3p7RT18)dRMGD5#?~77}oE~_RNIElV zr}eK8jjeX7=!fjd3_M}c`DVP9AjmT;D*ai~lk`LD=m94i<~SQ_s>37k9TZ%hf0*DA zXprxgCfKCl{duT;*$T9Li!CllTzu{P?#w2s*DJ{_{a<1CjB^4TrD*m%*SH><0 z&Yegt^RnYyb=+B@38A3nE#}PL12rm5+&|;%VCMUB>g{V1CPpF;Jy)R#J4?DqE|K!W9rpKhnph5Dv}FAjL7}doTw_JE z4RxVXEH#t;3m2#TJ5)>mHwRWaf@M$RVqleLbD-LdY$3-1U3Ud)LW+T&0jt5;EtV=S ztjXpMDKTUjZKx61BZG_xERl7jxTaJI+H|IJoR8fr>7!5l-`mPQ*|_Ny+-2$5LV6Rh zXe~V07*c$znjV9lT8?!iYK3s4k0gMK#Lr0_;q() z%vO#-1jII$%KA&HVFU}5F)aGMDc6ymsTBwbOVri2O1@~^im5;)dFJQV} z@DL0m7h@@O8rELJ(&0~R`A8ERXE2@qPDJTtR1bO=24v7BT4}mqG64-W4SCLs4E0MH z%c-4@y?^i5x@Q-{nuG_omx8lo07HIL>zPqE+12tdy~ofAOKq(}sJL)?9ag7kI@0tT zSi>N^qK&h&S^i|+Vr>IqHf7S6FCZ*wCR_s>wRP(J_>j$ZrM-lGJ){n`@e~={5Q4A; zd2R;bcicj*7Ii`?N6P5p_S4y8(V6z*=rkjEE)C>N!c3YAZ|c7=sa2ADqx8~3lTHW- zn8Hm%JP`aX)#Ed-hrxOLWp`7XhtqM`iJXdv(A>5 zP>#vG!Um*}l~}F*VrxADf`l^~;#ZT0o$s3+gt4au-7Yn&CfG!4s<}*YTg}E#w|oL&p)rI~o-Q?yscr-2?C*yAi7W#Ch}o+< z-7I*PuC5LP0MC!cJxi4xbQanU#&-~c8aE8g!bXrjbizm~u@Z%UpWgN88HUzG)9Ky* zFpkG{Cf^~BL4@EaL@>A+?k1TADJ?2gDZ+!yXVQ{pK_|#Dog`M{Bl%)NFZVy=txdpV zPwyK&L6lfal(=B%w5Jg6D=~VNs2&ZfA(g8>nAw1;Bii9Gin|ec`bZHWJvci7_9OkZ zZ(04QaLv%FBe`Z`5OLE13qG2v1~XB!-H@%q!s*xS#|s#t#V+LFw1OX1ge${E9vl)~ z%YV-OdWxljgueGv=LP(muqYQs?(es_Xl4n>uqaY&wox(=7O$ z7Uy=)P@=Em-|=?4_zZlzm}Kz0A_=fKk_wUF=%g1vVyzIphC;MqM3aM!uYJG`&nzy^ zq#RAcuOfQRGHJDe0U+Tpc_m}H zTZ1&c;GH8mP|K*<#iC&Q`I5^CKj6@TaB%&ooIaWo&tPm_v|hths9eEt$Dy#PJBwv~ z2W%MX!8RZ?{{7bf%v*Vr?Ia^Wlnas3Xd_Ekfd5MhgfpW8#+P-ux%)A?uo@VO4fT zvFbh(m3F}gU?AP?Zh;TwGeB35f34Tt);QuXY+<6RorazUrwnl!Y#3iLU3hVFrj3PS z4C!NT$$;A8LKPqw;DDY@IkaMpB3qd4qJWqg#1WB=DrGx_dUJ+X$v2X%L(}O=3Ze>1 zauwa7h@&Si!i>le9IVf6t+XQY`W|>dCoS^&@jYN?t>(RvY2Mx%GDZ-SSD!pg+QJkDGZ*Fc~pl~%XR#%*C=*ukRi0qW#dl@mXM!uK{20;qDzK)cv z+Y-bpAM{644p+=Y+|5f5y#{cuhK>=GYSIOtviL4K-`H+9GRxEaH=s*ye+nrbzTbLa z2=16ju0I!TNu$yBs9*%T{5JJF z`e}!#Q#>g$>ryP8e9&A27%qnW9W)ei1Q|V_8h$2x8QeJGd|^%8(`ecm#o6&*&%WW2 zqVwQu)W}M&Uhf7Wk87xYDLf{!-z_8>IVzL>8lBfuTRQxjYcyYmWYs?{w zrSe#fQd@HOJk{lEZ~eW@DISfmmD_Q&6MYl%3EBq?Sw z!xjjMo=Qs<)yaP^^e?i>*h^~;R}V^&RjO8%M8>b-K3NrKZJc%y&;2^>K1jKvDmjuB zWhJ4F0kFuYhMH+6Gim6Xl}3dwxI*=tSR}28LMDqP<`!zYmaphVR&N=D(yIa*DCs$^ zuOR!5DFey^ z{bq6$Uec2Y{+6||dF88X(reLqrY?nGDI)OP>S+ZYw_bj{GLkD~C_iE^NJ0$`ba~Da z^LP-UpjNu-GQ0G#h)q}hewGMq#(Cc6=jm8+1l+* zr{|?q4FWD2p7K9RsZjN+;N~n!M41=>u6b<$@8D4`?!)5V7SyxC3gnR2mMaLX_)*Ue;TL*yBRIz@I&D{m=}95ca37>o}K8p}5Ul*iLXQRC?mT)|oT z7<_Nqd1`TgsDz#2__jsV21{*Qx;dYVxs+>e<$M zG}1Xp1Qq(+#CCW>xT^YJnf`qI&I z>xBnusR5dPU2;AuyW$g}NOOe}5bY8L9eZ??b1dh<*!n2JOhEU_+2Gmgxx0Uzkll+= zNl+wFV;z_yBg&)@?2QIWp499dd@gJ_+B&qEP4I7g<`x_E^WW^k#909fHwni3jl)0o zh9R|O^Pe=dez9uLLEv-PS53xz3kJ~kG@imfifP*91w$~2=9yUmAvF4&n3fhL4gbT7 z6c@&IcqI0Yj@OOGfm+n!D)8?-%f_&)^1c2{Ve?d~`U>~pCoOcWu?_TW)ZCm!-8ofGk|*dx!8Re>CwxY1@m>S*fn~{BG>_GJDWTR zQ~Ti9a!HIdkL)$xMb>vKi+hvzm$%#5eGz%?#mD%0wO@?yj}S;oM|ZWuZ#7?sr5RJQ zc0;8$_OZ&+BPgS49LFNymF0_9ybCK)%0CtgswWo45rWJu>IBf3(+iGvj?K&Ir<2j? zix>stR3LAhkpD8yl{SszCXgRQkRO=e?O2uee*Qs`x~km9nJx8#N`fDJO@iByMcPZt{IReO@BzxYU1vxCsVqBU@%;+Rcjnmt583vHXPCon4FA zXSsi|P}0BWk=2d1f1-oOe0&$WvwTDZoBX&hdAblRd#LcePQ%pp=r+j?;6f3b!8>W7Flqa z-Ho`sk{BHW=HpYu9+WoqBf_FZ#s_BMkqQ)*wf4iUU-+}_aW)4M$l!5n^;o;=209XL;X zT(t>--wIKi5d0;_+0SH!ZgW``_^zW{JZ9aR_b^D~!?iVD_?1foR``3-F+q7{$(=lj)udjh;b6a?!L#en_X-Il zK)CZxvazGxh@(nhT1mn@>iRl)PyR&6m4&w8JD0lex;5n~>p8~0V&qT!Yz>_KB3yHm zX6M)3OEk(Pc-Db$Y+nII_Vnvn9L6HaBHthkIFyD&r|P9ghR4h+3K)-wHQb!u4W7_O zVn;M)78qirbTlcEw_(FBNgT?Vp;h@TAHeLenlK@7t+q^;4vd1rw48n6x0w}-HA^qV z*5C`6$mboW$l5Cz_%{JLh#?YxPRIDay=nU2`X9Fcy8pkqINAUI{)gj#{Lg~GkmW7ra(M;oIE(vW%Ld8=2S7%2JE=F@+hPqf3z*4 zAs}QKmT>jauaKk`?S9BAUXrZn+lPz{=|vZYgs^h3a-8JeD$iY z@bxFj89%e4c^!Rhd|8Aq4l$I0;Vi;k?px;e5^7IxjTrJkA)Gvy^W*Ues)q~etO7ji zMNOCS(;Ya9J{`iXmU`CF!zD}%40FbrX;$or);v_eC7-p+=5f?{b-8tUq@8=Q{J`TB zVot?H-G=MTR?C4QP)%W1SUYJ+FpOm6)j3R$%8Xf!6X5&d%+wcmqVzd2^0bJfG&_xY zC?v@(njK8)z#)`g@BP&gBRxyl3eYU;wKm;`jC&%0EnktS3$th1lflAA$jLGmky3i& zAs1!9&lk3%-7C0j^=^UC*I`WAx61) z1;EY#@5v(3WCdAhKZ4Kt$o$@}50rsOPoQaz1Fm8*1h&)t+#x)K4NxMiJ*?=0YQ{oFXF<` zE|+3-R2uiCB|zDMLP8K*o8T}pAM6Zh`WGd3bks!9JrSrNAqE!rWtf2=4b|8i7*VMl zLQ;|-7%%LFnsGGNpnF^GHBq7#m5DgSkPw6U`sLkls=#%lfN~V33hRWfi#Pfk)}C>x zyf3E6$;(Lg@&j_vGr&=d@pGU;6f`PeSEMpO>)cKJOB~q1dyy!I^apBhFJJ=?8#>R< zZ?<9|N&pzrJBLP!DL|c)D36<1!^t*HeF&wDqjSXy)m99gckh+)uz<5Qp+{Dgzw$HE z0G0E6j>Pd8-rcio`@OZ3w4Ln}2@InWQuzH=RwylA$Q)7_nV+0IEgMX<CZOR;~QDzw=-n7-09OUac#PU&q$Rwn zpwrfGHC}1)Wy^c7VOEDcEzsdQxe*(GWY*;-8c$L9uS`D#UPlcHl;7%_2} zaeuW61iUR_*bhW_p25Yw$W0{c702%!ZN)#=Yn<-0?KDc)8{F5cGv9_1uY_fMxrs9Lwz-g{vfEdK(r1TNItGl=J%s3NCvwhcENMz_oWUv3?6>X zc5RvAX>rIlXTC%8o=A#cVQ}ytdGg%-2&q_tGxD5$32Y1eQShY7!BL}JKzqS1pmwr^ zbg|a31{zQrznCRPcs6cqcDcY3r_G1NiH&KfBJp}+HL1y1GaCPttIcm z&Ct)~#@q&Fy|;)D|=@5G>nC9Pc##Czl9fZ^{A_F1cjNB1|M|m zlvX)2+m|-T-ZS_~0>z4J4n_<%a(jM8%$=hk?y6(F38xJXD zHSnR&^ID|dZ~0#u@zs{;qA>e~TAcX`%bydf3yc6)vOhPuk-~TBN@;1urT9N0i$izpVw%>6j-aFk+`ySVF}IQPN+w}xvSiH!&-N6;T#V9aK*?D)lbhT> zdYaAI--qhzP|gKbX(X5%mqw^>p@kG%rK)r8ofr=ONnBM+3llC1n!I#RdI~w!zm1P( z8@_L_pFTEJPrk~fZCnyo%r5geQXe02EW6HT#s<2r8~n{d2mQH`3W!7}R;C@0hY+b^ z*STP|ai`VarE}viZ0w4bNLm_6qL+qGkVjR2@{@wYP4j=Z=(<@wwm-Sbl;`ztkvIQ^ z-7Ac|&E0*3#s7P+p;?$>rt?O~WwntV!|$Yfn#cds(i}&-V(>03ihhA_YXVKuJ$K@f zUm2ef%{RWi%9474r_21}(Oyrliycwxg=;`p9Lw~M6*;&xUSi(iWh@3@h->2>6#{J2 zg0QYvMy~`$@s^sn?_%XtH(q?bPS$1C6tw%3n{caXrk1e@1w~%0HB;B_ifLB;X?ov! z@$!7id#UX{)6Ihy>C!Uj=DWMj&WDS#gZsNV%$1Qi4%sZ7*M!Te_FyX+KAbP)%EuL< z<$kr%Kzk}Jri!Jt$BDalI~d9uGH5S@SBghqMP6KrOdHFLs;qV=u_ERCayg#zk5+A~ zOZDl{k6bsy%L{jZE=|IkuTfE8tyDh#ShjbNVtfB;_FWH@{?S>`V{Uzr{xn$~6Ga1O zk7VEpG}4#&of%C+3Q@p&Yokdh#B?}sbXPQ&Frk`0Fi2Lvl8y}REJ+nR51lNJrHX6s z1Up3gSrU0CU*_BQ9YT!JPp1YCp3vwrOh`Vr8TP1N<)b6t_2 zGCWs8^g#2G^R^rRp(IF2Uu!xIY|1H#BXx=9jZ~FaOQ3A9KC_Jx4btF+nBni+Ckzdc zMGulNgIDlg401(Rd6itSHfJ(5WFke4@8bYcv#3joP((u-IUwegxn(PbZ+W#j)cMX} zOSB5keRY!5o|Pmtb9q;XDZo@#%A*dKW|eF&N3sVB0ayyrMnh?Tf|ELp?7>G6W#j3w z@$($e{zhV=l7aEw^c9^Kp0a?)YHL1&tCrR zVc;c{=`ciY-Td?HgQ*t+F)_lO8fTPRlR$uvtY~^#MmPN{qNE1-i;)6O0^d0_Ing>> zi{;41x-Vf9@1+Kb&+TEGLRk=^5+&d^L=eN^J^rHSZNA&L9D3wx=uU(v0~L@8MF^QfDeU9tB|{OI=D)s>P}cZ}9rG zlTCAtz={8dQ@9}VII=Y96ocGbx(XnPlUVw7p?ySoE>Z}P1{P*D0v2wN275;T?SRgG ziB&{K*a~BT=KX0m9oGURy>I0LoY(a$&sziN)cK=cnCTd#L69e?;`B0tWLzzr8!`Y75?o8S4lUtE4d}g55e6kB ze{YwkJ^%Jfepdpwu*Lw_L77`VVv&)UmB(yrpiOQd}+gGW=^tM=(>2e+|xMLXniog1%D&?1R=O&JUIs#QtsTSH2H6RE@wy+v%10EeJO52LHedf$w$;u$>1xbYTo-%K%Ftk4d z`eLG9`m>dcF^IEtMHRsho#yNa>WZ->M;Dz0fKt^X0WWuqV5YKgOQlYVr09wG$5zI! z=z_2XluyvRyY8--2P)XvU4N?8NV(|J**S$9?+b1Sz5}u+jQZOg#iwa<%*Bi1{rT}K zu7)5ePNfEb*G`qlub`YcD+Uxvp^2%RJItT>?!DsXM)wrtYb3a@s-Wpjitj`r0 z9F_(bGrftGQA>Q^i4r(y#yV0YC8mYWh>IcI?#zpzXWzs$M@{7ph@s%(tLf@Xfj=XZ z*EtUw2H2YF$|Gd!&KO9|Evni?gfHCHHVAGtR(Ee1y=S1H^xXYH4k-cD>0mzi69v#S zbWLKLkB72UdIPK-&Te&1(`-QoV#j?ta;E)cI`T|P4shKIu9(SFX=EzDAUAj!AYpClZw|0oawLC>Bk-XbCF+0#he zMa31_O-TdxNO|g2lO)wmYlg__2rZQ7R^w&VCH5dWdWx^Z9iT1l3dr@-Kq)l}{Ey6U;3OQ=*Wx($_>YVKI zqm9`Mf^+nkaHGDelY)iN>bF=ERpTRQZ}`P45onC3}ocG zxoY1}(3mW5SN+S3N~xauR_nwo%3%idg?aKX|3tns$7;z-iy^m1fC)oW5 zvz6I{?)MHaM%zQRyb=t2Dws7{t7Xxe+(D5hc_zU__}O zJ^b18{W}8$Wxjup!!t1ZLr89ym;E9fU{Uuq5&a?a5644mh&;OEKJ(dRnZILK&sF4K z`=|KfZ}bbDo}N-BY;E{CrcuY9nORXf(A{(Ur|0Ic_L{5yc=yMj>nMbT+X6-Z*cMs^ z*BA(e4klcI81i5t0-UU@v?mwWb5S(FvJ?SYM$9=OG^jC{k))1$!2_t^Q3Ob`D?@(@ z54;GZ)DKJ+)PT1WTjigh>cDRRSI^-Axn9c7|2+@P|F`)c`+r^kJ158g=d9}d!m`}g%EyN}KL*cuWo;@ulMBHf!>rDTvZG1 zo?1LQ)uP$dGbK`qQnqgbU16O{6m|p}qQ^AhCf_;1+NZNk$rQwg;5Q@$M<(f-jU&SQ(Sa07%qcVFzLJr5n~m*E0Abs|eT z2{?VRJ4aIpv*LF>mUj+&1=#aGV}vN8WS+6jXZ`k`=N}LK=Xi^l zQ_3ScdWM4v*je~;teqUwSe+V#S#s;6R*Rhp)8*G&or@nUs#=0Rvk@}a?@Mf^y%dm= z>eP_YL>RVHMsYI6r)rxmXHQCq4AS&Trj?17cI2Z$hJ3ZT<0L|?Y43W@9-lBTTl{`k zbzQ*BN$Z1Oq2^MD=xoZ}UeWU1G9`ZpCidYGPSSPts#Nvt7i=I;$0#!*8yhpfruRk9 zi+X)0XIMTb;M+d7_s2wYQ7DCMJjL19d0}We9~Dz1WJY=2q@w*l&=qf*a2cUX4~Pg` zP)#8i>=IG8B`40msuOx?zMFGUVutE+!6cj%nCbpxme{zFqr(l~*+c6X=2mRUCyi$w zJ}^sAu$5OdPF+vBzK+3a6A>JrBe-9sK?NMBhI>x8c`6~5-SmEp7(8oB1KUIg4q6x4 z5`)SYwGP#j`{y}3BOvnqoa00VXxFKd!R4Rk`G;7^2~`rud1K?sGV}02Yei(W0{pK* z{rzh^H=m-y(^MvR*bnn1v6Mv5J}u>ot8FcmIj*Yopt*mH6(k1xhxboYhzg-(tYJ~M z!9kFw!9{GWsBB`+ePW5C7pKQIV*XFaWWp}JE9VY4w?!9H6LETg+yxi$az#Z>rmb9S?Blt&irk+<%WuJ2!qu0$+_?_~VgK(w){I?_|XVNx3LisJvS0oJq6r z>ZT{+XH0*+JmKyZv1)MjY*+)t#lgRVii`a&igVoKI>C3v|2``Mtsmd&{94_1H>p7! zJe#XfL0*B}2(-J$T(U~?^fsQH5)fq0vy|%SiNXY zII1z!QpjGGGfxPB@!}O-ut(%xL}tFPDy}TvQ(8a`+*e{;9PI3sD@ZguwDx{#5?pUhGSo!6jV(oUq(n!Ny@6x!@}C$o z3DNNcgG}4IA%%gv8<4>|Wq2R>M&n6{IisHsRN18rpddJrXt~(O%Ny~@qOK!Dywf+# z91A%SFU1T;w&moiN$=0!hM#=q_37IyvYu)5wBs3ei;{(FT9Kq37#mqa)04~`7-?Zr zw}lwQ%q*7+^)eQjD**pDt)C9u?Nvrp#HSieP@z5xu{nFzuc(VR z&f6PrEcFKIAuC+=%a6pw`X3x(3V-o})bUMiI%*PCeF(E`=QW});^WZX-2nv%%blwJ zpYetIJgO6-AQN2fBz9G_$4=_nqpi2`-HEUDz*n)aHy*XV;Xr@(#+b%4EdVUbNTE|nG-=_6 z_dOw^%SG%vMgKO0dY(ac8SXblp0>gxY5LXiA-&g42N3oM!~KiY^FuaTca@d3dEAB= zdB(;gHuN!da9)TSu0+LBf-RK;Z_=5PHsiu7&VgW!C#ejONF;cPf3Z%!*!@(c74 zJOHGIHMPo4RQ=$_sfVyq#~t3n7=F^6zFB0!-4Mc+;*? zZ6{a@MxB{dOcE7JwI+LLDp7GuGz@-}I}1O=(cd!+W7c;n@BDrOZ}|SNRQtKABd=Qr zx4MsHc#LVzTCLPnqwLU>js^QixUZ-mNx`zti z6|BEp?}@sxk+t{s(U@jIKx4nhv^WDoeFG!T>fLP@!Vzy~xLKzySqZKfZhQ|JcO39+&jD~(C46TyGqOn&hzzhXKIZBo9^wjJ?l0H#L z3bhIDJz8tBLjB^e+I8a(?RFkY(sWSFVu-~9ohaOjd~^$ojR)es$B-&|IkkB#)#g+l z5+AFB$ylTx^gT1`U}kE9;vx0=Wx@CHKZO_f0bpP;dN01h z#=DoIjYwiR+;)H>%3;L9K1lwWL|26DA~RX~GpAw2+_)pCm2)~o&Pr4)S&Pa$xJd?$>f>eTJsdpVj{B`Ga&r=;_wJyGz^VyshKx+btP_U%4>ro)Jt@N4a3tW zT2z4VBs=>{IgR}%jsL}c7=>}U`20(LQn>Xp0bQ!3nKW`fW)Tik622m{cM8o`8xlu+ zZHpg2@MXyOk)iMt1eTHV%ES#O+o)m0V&}=viDa3lP)877%|4J&VlA*iaqa%+EfZPQ ziF#vS0Ly}j#ixIy%8M{q*5grSKee?v2}Z+E5A1qXKb1wKjo_fLvtLc`lB#sI3@DZe zX6oToF4^g>6PO%Hn&%fF7I7=gbQO}R-aSFbDGIo#!SS$C;#*P`7>&Gkjk&8~h7`+d z%cix6VIeIDyE@wXSZ4$?M*w|dYT}pfP!Ad-!?hhYLXJN|7&3_dC_9W33UEy)PJNo7 zA#Nn8>CYj71LkB3MYypl7KpkQCl*mF>A{0NP4@a@h3h=lKS<2yYYY+qQwL4Hpjoyf zM1>614G<$GS#TZqJk@gZP~T~@Ks(biA3W1EzS(A_E#5auPKu(QxMe+ZNYJdftFeTIq|`6s?Xc#pEiuhTm;hXj1n@sHF z5|sk2B}>H-uY6R`TRWJ^OstoA&@F#+w;?7n*5aVjZ_f)@DH2soA0A#cEN(BzJ3pqe zk~y)W|3tL$t1U9;hco$Ny389EvAhAVXT|9pcv91iWb;sHx11LIwhI;pa1e*UGn&|c>U!Zy)r(7XQZ`5A_(bPY+k{*tju~o9 zjM<#KuwB^&5F^jFIlcEz#OT)8?w=b2e+weObj#}|&20xt2o)Og4G-~T+nW;74SiP^ zcHJSNKX9%5MzZ2h(h!_SC26$%GGCz@u#OZVV9teJXjcozfL5fODuiKAD{iZc#!v{t zJM=jt!=~T~rMWY$Z2@t?9X(3GsB;W`1j`b6Z;LQq_t<2xm#~WR{t8Rx-1CW_2*1O6 z5=neD4nZX4#)7eq)7IXn7t`As>;#Tt)U6R%MO8H^e!1rhxT0ELVx^e9qee0TFzW@? zTcVC?4v2#uzSzjrJN4q4%aY{BpfhI#krINbmN^hh@Ocgua&hK;C~!-jKDJ6&4d6um zX(;`@+Xg$aW$1;#v!N=mE9bj1@PC*&M3x;7_EE-~-PU~rMJ*0ve$zowhk(J*K- zoT7AGC_*uGbXLQL@VClRcsR89gcIf~U)^f0t7LRw2j28cW7i zaI2K-hH>;>q{5ps0bLv0Pd_=0d~8Cuj%oQj%dbzdCY0q%X7V=A)XU(b(U%Jf_=`3UkR1%?FO?{f-y_#8Fm zZ&JC9u*>kS3j0-Xm^XBOQNqc{~@t@v?yXuNT z*&}2t{v{)f{>y%5TKf3$v-{t*@Mo;OSGN7?k?CA%4(aU#xXgvNm5W<3R5(Mx?~qc2 z8VzHHoWWb#PdaiTwW?t&g7~{1`UrS50XHtC-Tivd=B2y($BEPK>t6Vr)YZaBNQ%+l z@6$;rZ5XyP)kbL>d}0XhrU|39H$�mQ10#m;#4QUt@C&xu#?kD!XUBeP|k9WC}| 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

          )^JH0{aqaaaKckc8o>c`Xzy60{x;8 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

          JFu^Z}0RU<9he z;b?+CV>EOJHoyHkI}w>OI^)P@ypXI2WU-jZw`&$CBeoS6uwCQIdgGC3XcbDhA~#<5 zbM>c9*BPEA=O~hKL+{D{H&Q z`QMAZj?c>S9#{Sbt}7!)7CJ`vo3r4~KIf(fMhRo+h~w4yf0~gGfh-$=`GL8C8l-#@ zQ<)sL{I;nUH$0RR`OkFV#1h(>{9boM{9pa>Os(~%Bd|w znn{0y-}-Q!q4J~x|IqcapQX(By*)ns5-nh!$sWaSCGIU0UOnNfHV|+s7Jr@fJObV% z8^l&!Q8^_9-11E$fNl|>3X4giiPzPth%I}`v>Qq!gq|zRkr4)Bj35V$u^#}mH6gF* z+$uTg037}qS50Ldl`vaiVm0|s$n}ytQ!r-Xwe3QG!yDOT+1#mi20@F-bTZKv!qGXf zBuR^WCD4F2)IOnVF^K>r+Vah)x}_kM7MU9P=Mf-w<4n|LnZKV1DW=VtInOTp;#?l zT=&`k;hf_=BmpNWAEQ|nLyNd|@46Kc{m@5S^jjS?OecIWHGB$-moHW+PL?gguKqh- zlM|&mX+R}W#JA)jK)9+MUv6->#dP*r-w4#y3y5{$UgrW(l96LWkb(aPrH&a_-53OB zRZJF5Y5AR&OxOi^F$2YA$lNXukXJG}J|$`KtBos6tQL?`!Ymb zCjsTjzHz*Ooay_=-8JqS!zdKzk$W`fI;>Ao=*wxD+jmI_0*fE^1BuEv*z2% zTc}z5YJKPhNA@&T{eyXC*CE;Ls=f_Y*NU^N>baNscjVn}ZOXIQHlgj+>&mGc`S zxj`6@^TcLgEadfqp!0;b}$4?jXKUN~CV8PF?0=c$Z*Z+g{SYs9DG9iY($ zC{Nw~niWGPNZgAtLIPMph1n~+%+?1E@qA-D#fizPx2}}Q^DdN2QleK1K%%_R7)Zws z;amG8HC@XF?5O6`EWO^zs?q(E3p^D;wr}Q_FtBsqyp27rxGmL!3MSlJS1iNUEGbRH zELjDuJy!!%1Al}W`!L1o;Jmf?cftqUe~wRVqb1$mgZ27yWrwiX1kYhpXRGVTX9>9o z`EIAPwuOC!42RCJ5cvqIE3VFPu*1=8BD|5%673nmp?n`nnO$>p^Yp9!|c}O@GPNuYD zCW!^)YCmQu?Idy2e-Pyl%w*_dvk_nG$rlD4vuc1AXn)gHDSlFZ+Z3}D*V^psWgZI; z%M=G2k46a2)29lQ2{Mrn2ZgXuM@u~VQts0G4?4WJz+J;tCU2EQ+6JB9+h8lelX-Iz zaY-Z}<#EofC$X4c;Gcv+$glY(X609uH`|8_W+}_jvLVe5ckKQr%!X~iM6Ik$Q~_J zHI!ihc;E#yOlYrJ(ht@BHQ$Z&W^9!0vVf}%k7iJj3gj;c!P;+s1cXkR#MP|@s^&dn z!B8}Pw{hu2|q>`=XQ{uxgs=Dy-(&%!K4KsSQ(*`;Q$&?;H7=W?4_!n%_t>Or!u@U94u{kf3d@0&z+cS_o?_{ zi91H%t(}vjm}bzx4fnyVW}L(@6P_O;xv?z{lX~PGeLPtj4t%6rfAr@zc1lJJQHNSi z`f~zN9Vz_Wavt;^6!gB0ZKzHSF5As9_|B1(V9tWa*go0I{A=T32#xFWWed>jX`iN` z)%IqEbCD%q><^tnJ-|byE{xCaw@^Dw_FIT6g@J1M@X?ZCnO;B4dI4zGU;%?A{DYG@ zQKOJy)=mk;z-iy1pnmkqT6ypsSAJ>7FxgkK$D5tLHcr0!(#y&NuJw_pb>)5B`V zShnl+p&blh3;D({{rN}*L8?Y6jVYh;t5g0;WOgBT7L(>~@42==a$ge-p!~07!bVU> z$-A(E;_>j1VP2f+W(B{LFJHbiZOU!&N}HYFJi-&B3Y|p0r4AWeXVW;*&gad39^S7T z`wM*DYk%5wGCK@8)5%ch_XEUX57g>!+hhQX&-DeuLM4c)w30SBTdSX+WmRarZ4?&s zN{s2Ek4M+*enRX@J&2vdK^)AVzIMJUMx9Ob2$y_-WJvLONO>@sZ|YHj<>O3$))Ov^ z{XRd(vA2>rFUa+Y7kEkC!t00=7nP_-s}JIuextSva=zQy{cVGIlK{J?=xdrV^VO*! z`Hm?~p+_PFRY=@jgWD4ID;`(Zieb)xrI6$3cW*hvQ@H~zj7a?C%=oEk0VE3iBHS&Due_$fDDCt0yfAr0U`BL+K^ z20_ICYv_%E*yM~Ra%ujA=yI+T!S5aHOZYbCw^TFj7Vo8dy^aIX^9E}1ql=3<5Uh3l z@xua{(Zg$pRDz&b@x0q^E!BPumVP4f&!8*;Rm{e_aeg2&JFE=^SavCla%-r4zEu=v zOx$`C1$1oHg66qyvzc6j!yGS7LNaykNaE&O=34hoxW2Tuv~eJ}2*@HInQhhd#^>5+ z=dF8(o+95BgolUcS6y8l9o&X2Rtx@#F?%oU05hp zpv&ZOJ;n{%)>Bb&R?@LvQ#Tm6c<5(W0F&PZvKyk7PJmA|pu|ZUm7qi9hUL`n)dk+l zSsFbezD9dBo={3j9xv-(tz%D+ {X4Ae%z=>Q>s-hV3O*E{#g9Fzd89`=0(qY0xR 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 z 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

          cHcYmV~O|8y5^Mp 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ò^& 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

          QOwvLj(@Af;zm}INe!5<~co*l_#$NsAQx)dqk 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%0DRltkIB z3(h$Im8+e{ieIb;YEb@x2r!@o4nOyJeV(=0@V*yPy$hdyYz+3NtG1zp|KrCH4lGEp zvQCpV5;VNtTmhy|5<%~N$ayBK)T)lZO5m8Lz8|zCKj9)OC}{ZA__Mpc-ny9G^p8KI zE|gv8E2!g&niLs&yV~LnkrrVQ;$voG@rrZA9hj=lcQD5&af@)U&8)=z`=$~frNp5u zopR^%w>0HV{)v5C+x#9dF%VEEIM3l?_MN>Q7xRqh+akmtB}xq@9r7^qfC>)}AAy*N zL)s&Cxu&{8j77O?h`b*@eB>XaCCz2T=YKwW2z}6aURZmYO8?BO-Ftx-?Gs;V)>jJ~ zwKYl>Ds5N7Qc%S6NV&X#lql_esp@|^{vCd&)6+xUpAGVf7;5oE(XZFf^k0=%|NpE1 zGXFove>m9w_x`W{nf_n==l>4=gK7Og`A@dzqOMxUvHwSmYvp-%Ura(KnGjSk8CFmN z1{9c>Is7EoIFS=06ijnI+xZg4N8!Jy{Gfc_MBRQ}7}3FukeD4lM76S+ zc5i?0+!kwBO|7k$55u?c%a**B9Uiq4&p$8RH)|h0Exjnp(%*UE13Ndb!vP9#|8oFD z{~T)ig>Y@Vc5F^K=A6u1;v`7l`g#QgU=~I|`uFJzOpY=2HcRH%ZRnnM;+=W2VS^;0 zeFkjT52^_FGir2Gt@zO4JB%6`zk|yR%Pf@MAAWlJ810o=>UwbDH2_qn%P{}BtP6b*UnlNg_=uT=*n~KTc$1AuGNhvBemG#wu@qW~ZA6SB*ASKf-z(z@XIni# zns#^Jn0|-`fX;O0GY+d3QDZ4q1Wo3=)4b#R3Bh|R;fjJ52=2O$L8~t3Ak3*saf!|n zT;lEGTl=zmUVTBCsL=(%b zy$-SC-RpTN=*kTy@YU;OFJ;d!7n{yNU@h%0hDPw4DB83$j6&Ohu#!@ScBF%zVk+Kd zbpm&CMgIG@_j@xYLk%1e4*2_qNwb4twjx?IE(;N$S5oYD)VUu*D^Ek{G3<91sq8f6 z03HGk9}5w8F}Grstgh^&9(5342K|>3PFOi8&?wr+S;^{AI4p!%b+Q`7Ja#?c=nn>^ zeD2`1FGc^WBZT8F@=Nw2x(eI^5jqOCXi5MRk+9)7SRz=2vSd#Jn_K`D`sWiptn1R+ zwz1=Kg8-*K63QaJ zMW}t%eF+e;;r3A$_S)eFASxcFwij4zECl8sJS1{r`lyo!PWIa>+;Bkqr35>j9+K14 zh#8$|lFFyOe7!;wSv4Rst0Xh1jJSs>fC!B$rl6WT>Pq?KV}V2oGzmz6 zDHT#JUe20=TwE^h3{$!RdBa2HM?}InA_g^*-bW+pd66a;VNpzLe`Z3BrZEEEvny&q ze#i$*u;y$1#qWVY{X`36|QTkeoSuV@jY*3OQDW&BAGI8#9lA~;1eJf$U=6X26I=!i%G7(z*^NTJE( z4F6k~3su4;5=y2_ltPoF14Wk!f_nEYpFP{BMk`PRO{N^2aSOiiQ$1{;?6D38y8BlB zIf#eW?3y3Iqi*Lmdaecw_?s=q(6u*R_`s;#yoHUGSeEsz||{Kkj# z#O`o&K=8m|XSyXGZdREPJwxSubZ^w_d_?qcGQ8=e0nfRkV)_=_Vr$pd59)O4@g~=@ z>EoVw^I1JU;A~>wJeF#7t2Xz(V zY<|kJT{EixHh|1v5u6)KsK1N}cw#kS_>hN}z{hDkJd7a66#EAY2MXLBilc|{_Zcv= z$(~p&4dDu7L;MH<-XLbefg{uwwCtB8{gYT>I!7p1^{{FOQ%XuGPBIcK(Ur_@3d$ z%Id66M|JVtvc?e;Ep|a`Fur6q{RRn}i9HZzMoiWR~u69ErX+o#+~j%{${-?pXDE0RGlEV?nG^w5x~Vv3a7*LY=DM zlu);r|98XIpp($?&o2Z241=zU#T=!RaaCVDKxJ8VQo%DI42!_){HBfWEwZ&9R`7_* zs}$Pz8c_s)jPgP)*c@+$xGe$ad)w&T7P~yuW`6G8f^~x1qC(+ zQRMHZCm{)oY78P&-gG@*8PJ9KASSTg0TqRHzK^WGSsz|!z6H^c*Mz&>b?>r*6h<3U z6w$NRyY-&T?MTni@U~p4_&VL)fp&EnvVt6YK~uhd-m`!n1^0$y%pSgv&c7-O8wsGn z(_rAd!Db@Fh_l_$cKFEuxo!f-H=yF*Io0K`t$sx#AG~t!zQNs~rAqX=RFVKf41Bbv z_g=p^UgCe3E}+!a-JE07McHdx=C|(~98H*Ps3Ax+)7*`j8XW7F*Gw6nwyd-_Gr};B z01CV|Hp8c$FFGEkFc?Xpgd4mL!{&O7Ur3u~b zYo#r)&)FbWEw{3#1dd>y8uwSY;R9ea{ccDUpJ(3!y5<#^>pI0Vcz-H)mKhxkOjqyrLQZ;1DKzf25p2&mx50#Fhzx2TeOa0@P`hwS1PnN(3UTk}y0T1F#eHh1T`f8Uz0Fp2B;LK}x{Kg%a2gb41)g8~qBJkC|qkGqCG!b&| z5b!VzIW6UbpH|RD)1Uv@jYvkgSi^25DyY2xtD#2x$OW(NvhDO;zyBfEa{`PEM#$3A zI?y_hESgpbfTc#nR%th_&(jaV$Hqy)1Q=F3vg3v8ecRBE%fNIfoOfJp4ygFcTtWIa zTBn+c60mhZnBAgwNm0O<9j{q$nbX#gYm zM1cB@h$_a>lpe|m)J+i3^??q}J-?k+{FK+d9M{PTfTma%b$`0>O1( zT~%kXnQjZPioz}qQe*Vaz)+<@dIG`#o?5J0)E*q}{82w$O7cD5kw5KYha5FD>X_yT zu5x|apCT(aP90YUZ@z~LJdcq-9~}oqb}%z1vZ8(Dlcs>dNKYaiU>zWQA8|4}`JrZ! z*d{DOP|R`#0yk25K3ir(T^J+cjf{kWOrp!z8#`!x_2N#O^Ro?CU+_8pd!Bq>6y5d9 z0NjXYCSsd6>pN^)k3Fs6GR{Ko)}A)tNQFK3#B&=sS3q@MvNRHiHLT+O-ar|@EhL=i zqIVvr@8W-4#2GEX>>O53;*+TY0>?-4YxY7N@W#v616ymKK*%b)5Qh+&*e!QkcU*BMp8|AWN-DKm{8&1Q={lHOQ78t!9f0`O?*G$`QgN=rQ$vN<O zmRjB46JH69&gJe`JgbJ6CF5vqpF32CA-Kt?=`+OT=8DU%1)9gP0w+1-cCOtT!I4FlXp)HZY$tinoJ~cLASOx z+l!}TG6N7J;LIVaa7bAIuS_No|LXv1Gjp)np*y|cFmyMDc{j+|YZY$#6XsVH$YV4; z#&u@|zclHl@V@*bpoWsd@tBe~YI`D>Lfu4<$eI0qtp%&vsk?qs|KpuJ9|CGrW*Sf@dwU|Np>>&F2Nq1f zJJYP}EK5s!l2j^Ch}G7j)W5u4tF2Ax{+g|cpyvicaKDIH3j82I$Itf95GWtq-ekr< zzp>nq1K9AyUvHf9-@LPG)a?Mo3Ff6otV3kQ;MoKhSbmMx9HlC=z^1H>-WxKC_}{~= za1ihBXP4*3SFm+=Lk4_eNo1l*Xv=Ze!sAGFYjH!ORez3;ICo6SRSSE1qKP6hSUgE6 z>G{Jh>Rw5Hd@hdAPPQkWJ5w+1-#I|v$jRIUXmQFRafsyiUKkloEX|)R32)pkS4^1YW7YnyanN zm+?PPMNm^L2KY}qAj*@1>uDWiP{#H@M?;(JR(O!pxxcI|GuY&)-+--0#+ne^ItiMn z5j{<(aq?xX=cBRPg&EaFhTTyI%}MGswm*iXHCqCI|FUOksE z5K8nxKrwGWbR!J0QK!>h@_K@}``>6kYfywRAMzniIW|Zbs%fyeC{aYZNR`AgDdRQ$ zSr?h?J*v&b1pXXHvAXp~D>1feL6V2VW=O2BRsvs#XJ z$PgPg3NT;@j)H`QY(Im1xxEZqp+4kS&fNd_2BS7RvE2>30wBMZkLafw>3 zzOK{fyp*W4A68yag;H<`)WRjQs3(js&P&a+DM?1|Yhn_FA}f{1&akY`%}=!XebRDt zzhi_N=dnpiB^@GmzB2Pc8)qN4SkX|Y(n1ki01<%hf7;m{ZPxvu_GvZX1f$JILc?9RVZ{=Q%iT8WxN*0p-_I;GzSSI z0xDB0g(CeT7S>earlFCDli?3LxnZT6w=)Fl){OQ9u_!8pohjdpIS$>xX;3rnJf7b}TrC@{Y8 zKS~gMy;x8k>QQiT?s8+40v&PuA7b7A8+-2*q}kIY{61ydwr#V^wq4a_+x3)f+v@64 zmu+>~wr%VCzwgYsITPRQ#GE)2v17-+$y~~nxgvhCayNg+*W)GZzK|h$d)}4Yj#J5F zE9%>!Fr}N;9V9ay@VIW->T!i1a&s#nt~WE=X=WR(#s!7u5oiu5S7b8h>c;WlB=~-> zF2Xlo62sGJ+dz>!mF#6`O)8@%N)-CzA`A%s$n1aDZLV*q4i3vIx{538L%k%}Y;e&zBu(gg!NMuC1+~UR)HEci?S5SB@qK`Ck)$y)6l1XO%it;_`l>52BuaCp#ZBXW4u`B~s)3$08-@#(CV zvD1M07e#+_2Qb%P#ZDStpPvi3Ys$VK<#y<-uFjRgTbhQWHo17v@ueU`xYJ&2Z5G9h ziM6!cY$Pi>txIeEG6@*C3L5;+}gafw*PUc z?4|y@Reho+t$FhE(=T8D`R(ZZMKO-$)828muR*av?zXA(m>}Clf8LEC$Cl4Em%dqE zE)f*tBT%G2FQNU9?0&)^9Tl+m8C*boOjvNx+I@6+i3C2KoCCTzggOeQNNK3v04s>O z02N%i?Lr8ne0KAEd*g|F6}uY5wEtqYKQ|$pk0`n=&58@B>~JkE)x*{$?PtWmqHjTZ zLuDn6imKs{?i$EtI-_G}VhZC@IVDP&aR4NCmNM8#0y=rCr^m%f` zJ@QkMxUKUF-#VvzbDV_Odfc1(y%+I(UM07Fx3(NVD+8twLY|SnKlA`KCvXwq_4`|7 z1AfReg|hcZ)?;n=q}Isx7LXQ`Nw9(?U1vF?%&XF7{T;guq#%DyExM(m=(GdTi)ziWU%jI~HI5`c9aSeG>pMC#b4On?HB`ZzE>^ zH~z!M{NKlam^uE-|9?3+{+Iv!PvJip5C6e`4z%@S^wlv8eDWKnSC5bL_&n?b3dkV( ztW|k&)TIeGiy&3b46;LiTkk%Uy?>c6G~lx!yc~Us|)N?OGNrqL+OO=sq|E*se9w z>9j2H}gL)WHr}3PeSaC09E~y8RJp}%v@~uk>qhlbL3^* zb19TCi#9Z+Rx+lKF}RPnZ5`$w*Ig>ZKd@Xy|E)kY0a`0?eiWa$w4Eu6!>XEQ2}N8& z&2m&M3_d6ECw8gBc9YBT#UU;d!3;$13NL*9_W#L{9eK@q9P+>!?EUg*@Payh(NN9jNlbA zN8aUh^|Y$1Va@+03gs$7<@%pq1j2F0PJrayEYob0k;FoC17I9uhDY!YB(oyJ3X4V) zFuPZN&~?sW@fN`G7UE&|f>PG?f#~&Gx$^X4MY8XxKvQA@OKL097O3TI$Zv5(Rqxqf z@vCn{4NriK|MnYPMlU3kBS?87w~@8=U+ilLQCL)d8N%1URJ+o7$xYmpGzct6E^5ly zZ*+N}CvXHa6s3#R_?XOr2#7nN3Omhbh}h{WFd+M(>N~IGrIOS%N}3hD7Ktirb&qPC zY-|nwZQLip-7_Hi3QYfU`S9?NZHSS5l@J7fG%QUauxom1XDK}oWo+BKb;LE{?(ML@ z0O=nWBov^v3q?U(+?j4@Y=d|SmcXVBBr?UwDJL0~CP|8WC-GZ}MZ}JWiV!`d5}rHr z!eGa!8*2`L*jHTx`;4GJf~18rFj6I=NXto?q*q>hwb$VoCgQA%c=yL$Ft7yxBu^b=r z63h;`ebp6kARGw^UTZmm!d&O2m>K*&&?=k<1I)!iM|5Vbb4H61@lER-;!xo~B1up1 zkB_Mw@kAH^6TXE2=6=EOS%^c4s6ODGLB7m9=4T;A9ve^7g_0r~=1UCP=0; z|49O7>O0c`{vK1UgN5tIitSSsCFs9S+n2XeZj%=GpNwv4ybG4>%>s_oenLI=mv2l- z$hZJewXu$pxvjO-lJ~{hjr)xiEkC=CE-~vZDjdtd1A^xo#__PIkS*gYJ4UU{<;pw& zV?VQqS>|3pHqlM@Y|#mI(}y}c{FzJaKX!9gqUSZ*iaOyPiIv9XJ53!rj41u&%<;Kg z5sg;ejrQ`%v7L^E;(q&sdb*pz1+p(R|G5OoT!eY(kscxaLO9(fD(D%Sspq|;&kZns+rrVGI{qDfTTAPz0xj;Qmo7sRimokUVUkVl1v38@;)hQx=U|BnA zgRnjNk7Vt1ep&4CH@> zUz<}|j~PVG<#h?0$`z2M@|GpHM)_$ar;M$HZ9S(fh7uBAgSt1r0X~h=!jex$B@c#szY1KdwCB6qB|z_#C){ghS3CEw>H%I1HFSkC(SA*}`#XMX%o+&t?*YZ7 z5nS$9C&+i=GbvrL5Fn7QgtnlL{;AG^xqsdItL)c9hzn@6OVF|G@NMceR7sO}SXW=N z=H=qbo14wH_=!)Fbl^s5qDw$;oy2OuRega%#}6(=g}H+Tbob~fm_>CBf*s)#*U(f8 zaW7xF?qSDPYs8Ah^JmlU`_Y%L(lw$ zW%7-tPYM?|F^#9qnK)}7r_)Nc^M``Ayn~a_s2WxD5iI1+F%AUCq29Q965X(a%1@iz z(o*3lRKodageADIDy=l}i9^RfOeF2{yD>@`U~#eG=Pj+hv%YS(e2(r(P|Z_6wduDt$D{n=i& z!J#NDQ-U}!hHXu3Y1SCVvPTFv#$IiPd1WhCM9Fu>a9@wES=nsTiOzVmUw}InYb0_B zqS|rYaHmcT$&Cfo<~BEcbjU#be-HLG5-m zQ9T5^c#QA)7W67D;Xj@|D)HLe9pZ_*ueYTEq*>MXygmnRJy{>l2rzhmiS(f9CuiRgI%#dSc}Zzq zS^lm7BEMrFq<@Y-rhwOj|4{&mmDpH z=xouU-P_BEzFuJ74jqtY!X=hf-}4LeKdpOMn4QGYz>=w6HcMQBj#%;ZY?{`{TMe7R z`k6i1rIGIv>Fh9QrY)}FO!h@0goJMUV0dr#t}TzJavNLggngba3N?|wBjdX65%G^T zAeJI2WshX;Lby7?GF+< z12ELN%e`T#ya1e618SEhfoY4=Hjleb1I^I51k`eNc;ACjl(h~ICIVj9h$8YrB*lF9 z!#awrL6#(<7{`${2-3mspGS$0a`~$N6kos3N6#gtM%LuQ=k3o}e*4%Rl@+Ei9!sf| zEe1;DI$uW-?8rKJoY377=lKZGj9VwVJZU~dgenh$E9UW!4G%eqm4bd-_5JsWXki z|0!pukd|Ued<;L@*yB;#?FQ44^Fw^v<;zI)x~-&H@h zMV?0y>2h*P>!;&>h`Q$lwsM!$u&{zT;qn>n8&x%vlby}T1(LJd&5yBPx|Y=+YqksVz-0!mrB#n5zvU&m!`7|c$TsWYjuqpYhiS0 z9bepZnQlAYxNpZY&kDqjFnynPup*I{PXtfZL=QEyg~2Fvz`Of`-}{6gURYWr$!-9I z;&d|mry1DU+4<+x>}P9)Ov3CW;9xm|w#dY@bE(35rs4E37$O_(=`X>_y3022)im^} zd9{Vw<>1)enw7oCAMx;!z!Nj1mO=g2ID6gOcRkw3ry-V(841%1pu?oZN372uJ~W?W z<7L1ajmm(jxpvrUjQqNNM(T4!-?rU#uwd+VNE&R#W0s^wZM)0^-qxpu^aA93P#n67 zI+lQUmTHrjMGdwJP>zk}zdAE3GZXQ?F{6i0Xv(9*E)9z$JcGXS47_)5P|xTGl+dIt4yBLPSHu(PRM>d)Vgb_aTA2U_*O+;N?_Uy&gP6J9rDS^DC@y0HPOP82#zLL0X7f;Mf-p>1>_4bol{_KcZ+CTrC}lJ};nziV{hnWZ4j! zuEan}PWvcjtg}|s086U>lyo&F@9gZHO2?-0PEo(bFnF0y3iAEG!(&v{IWz)X?C+8A zexL>cV$Cyh7rhE0kQ(M}ebpgQE{2|kKay#XRckEnsro2ZJ7t3(MyXS(oFNs%1O;oO zhxR{Qc=qn0aPh3h2Xu``X+s5sg|@Fu@WnBApZ@s1+1&Wgzm8VEMS(|fVV?4P zrNQAJkwE_uGk5>t#-YBv;HU-LpTSatmsS@#1x6HJ$iUpEXIx`O-}lPBu&JgMpvvVkJLq?ul0@OlmpAU!Xe8T#eIMkn5%O2zuhY30`o zOn;M6DjR;sGEf@jQN4D%*Pq{zu!UJpPfUJ;J6V5oTu@_#1)$_2c*VrPFR(&w z=_nhWGfiLU%%y@T+A5Dliz>_GIDNAQHzj#Hfm1Uj>Y4;9;@O~WNw_|WJID`mI#`-t zQ4S=DdU4M;vGIaM8CermHX7JkV8SIqC*srmrD~~mF_4Ohy&i=bq6XTa_CySjp9hJ7 zT$qPwdv3_Wy1ICltJ3FHOAUc?6|}N>RvM~3==>Y1%IpPV2BLTO^n13WVHIBYl-8bg zi3cU3i9_7^bHaRL6%%LF_;GQcmi1u8H2p%rizs*#G)!>Sy7*%PhXzRoF@!Q~JM!lUaYIJ46Xic&!B zn1fGL?lC1l`|!Z7pYa8ko9~@XIjp$zB}4@LBfsMd#_;aKnBu%P;W9-0lOodyqs1tX z^dbBZ86&v)*BLISzt(wh(31~iK7S&|a zaddqA?e(5<)j8-^R#KD?LAFHbk{O+=+p-x=fv43D5_RVrC9z~c8-51DQ-g^M#A6@;4gl`b1UV3p1bb>^QVR4i04cdFh)&W6GEh!L zdzkbkUyy~T{ys4+E%6gka{G3FWIIq|3IPG3X~njA?%N7v(0Vr*wiVaw;b1JFO`nkq zHFbEq=XSWNv@%6STU9-gfkBYn!{y3t`h)bBu%M1k(Bkv!?Aus0#OAYn4SwWJ5kws@uwaIBCmFa-L|ki0 zLF5GtK!Kcx!#c^lpV^4b?vYh>-(g!+e(xcEVnKeEA%A9!rr?3%BA76~_YnJ1Dzk7M{Ot}8MTw4su+DM$6V}*)Js+Q89 zOu`8wWmGOqQk(jADG|d4s1Lrtu3q>xHeJH0L2-qJbDW+HA)WL`O8?T+lopRbnQOxj z@3PgJ$GM$)5@r(fym?G_;<2VrUh?Fb;Fdw)ue>^3Hb*xTIuRG3*?^ZrK5&COq*UtFwzzTJ#RbbWqU@p$&% z++6-%(|m*4pXS*dW(#KA-$@v6bv;dTI{b^V|Mqwe?|Ix^9+oqV(lOwlYNie!7uN$JiakP)F{Wos*-cu>$-)KHhFnvW+9D+PwVV-ktwn z_W!W4{P*!6j{n;K!@2Ve}|iQ3iHc*wBO~YH<{9601%#lKO^t z0xCr53r`%MW(Tk9t#y}aA2uXD8knc$*t_4wF2_FG9#_{NS3JjgEn1$}w*jvS*Q34H z&@TiaJ!D3QGR8IB<-XS(SWEs-h4)oldQQz5k>4bey{OC(wjidxYfhl%l1DLD?Ox9@ zgbn_~4=1{tn~zkrZFO%=NS$;Bf!}3h69mlQ^dPFen9PvB38;vd-Y%TAji-J?%VMQE z4v#Hqbp#sn5Y31ZQAN#=P?vFTJFCT*2`+K#Z(M-u=Vw#G<^?0fGoTaCJX^_j2E3=|DF;gNi5f{#=BZ#Hc?G4I2 zE|jL?9ZzL8AO5=kOEm06*e6kkVGFs=4mC|t=xINog^gwkhYhv_Y%>KPydNz?nI|JF z3=ys@QDUH5po8T|T7ia!@>Hx+imvnYhbYg}(ynt=eoTwkQ|Y<<VR44r?=z#RwsTPeNEX<*$qv z7{CDfggFykDXEdP8Uy{5yF`+{z$%BFP*iH-jL!H}*lnrzW3E~=*YLBbU|$FnZ7TFS z>oW}2{4{L9w?@#!f|#8c0~51!HK~D#~>uT z1JcmYyEtmayR$O*SQTG5PJs7S#ZE<}kK60Vt;DhlT_zcLt(P)n?9ahc{q$$~WzFf6 zSmMzB(TroI+O%N#I=gF#%CSYvn812KOsoh<5{pL^ppt|FJScxDQ41A`*z!2Bgd9_K zPKqCw0jal82iB_+c?9L?S#wsw$&K$(lZxh>vw?{}1~L+;EQlOrK29QypF>5u9%x1M zF*TS3J>5;qgbiovY!rhU#NrVHSjUVE_2~1oW(#-QOOzp&C(vQHZz7<~BHWKf*YTRj zVw_z^D>mRz8t&y4pBmQ#rjXxnvw-M;COSo+$EJpcP^{Ao52NC9r|j*tQoI*f0%(`W z5FSSk3-g&kjZL#bYrFs5w|DAqyoOAxeGvNn-;RS!`>*wspOiaV$JcAf6T z>_%DVG4~hT&}1t8|CaKeKRo!+=1zoBHnfu}I%?|ff9kul&_`P)UzKo=;;I)qhashI zax9K)B_)acj}`H2egbgmj_JMc=r<*$AxM>b&y=}EW@xD~kw7oMAi(&S>e zop2};>}&3Z{|XPkcK2J**_On5AI!-6o!Gp|DyYcR^5|>b9V8{=4=Y4J13!{tnn3op z`%E?f43QTjG!zqgF$((siH>XO}e$R(kqlQrm54b<+0g6nI& zG$yYuU%EV7DEvkA>QZ|veSD}y`v;+zP)LeK%YyNz93jv~zX`f=%?1=>V|4LxT`D9n z$FW8(_}LstEBFt7I_l7(BI>)RY37VXi4jr+xe*dTNUPjhfRb-SP&YHA22w_v4!JC! ziS?5P|FLJ|>>t(QQ|J}5ZXx1Md68i2+tG_;%xXoK#jY;I)&kJ59k0$xLxD3>Q0E** zP)ix1WMZnCq372#Tz$Dp1T9503Dc-#XfPQY#g#N3K(1xW zu0lj4&UnvxLC~NFGYMO$;7jJxb?Zh@tCY;}A5|m;aZFpqh~dM;h2aRGw9{b@6uUe8 z>txFF9wI`oi=Q}Kq)ruG#F){!jY_~j<6&Mqve zXUv|j$lq+i`!D(YdW6JeG9b-dD(ZzVO%ioFd%MkB5fbuJ92)Y_U9!G<@!y}R7(!$P zB|xuPm&S|_89RvPD!dH9v1oq5q@^r_YU#Qt45JsH~XT(aBby|_1dPRtFAAXQ?{ z0_f4X0-f3Gt`KIA8nl$z(D^fOi6;8UpMfjjpsm>QJd7c9&^LNxt0d4!*RAv8y2hzI z%<8O^FpZ)2g2ptX(%L?T-1(6}aMLmS)KqZUULBqSMsPE)<%O_Vo=K*G~%CI zX_zFF2Cu|-40J+2o|;!6T|oKiZR#kUq^}w$-4a=Een+z;4MOLCHfw( z?GEbTyy|;fWV;Q;QxtXZhy*Go6-blIDhTiT=6&Zis$fEe;kBNgGnwo!aXGHOX}@eB zxF|)6G^^ybpP&nrfbWy-LK7Qb0PF=BL22uG8zy#<2635bv*n1P5K^(oKnn2%?+-U$ zj_ls+eTOPb^850@)^7%wn8HKCo*|KGq-Rhw*2JUKpKA~z!8xU!J`Le_r`|`#mQG*h zCf8qOuCImo@PcgO@}u}cgkgH6{7nW`Xy}Ih_56B$G^71Z?$B9N9Q;NZB`B%#blNym z6mABe240>B-W_klq8&%#yW?$YyHGvsH{xTFu0t0PJSF#Zfi}tH^sn693UlDLU@9DS zPWS%KU&QOgx@PyHzVB0Do_m=r)B|otveQE^IE5S%3_#l)TRkRd~c#>W( zbbZE*JlBVbSRAme-?uE>%17*N$9X;p!w!yab@>I0!l3?Xbs^YK*+}sH0$d&Lm_)Zopc)kF~X%=zdgNa`y`Te*- zT}9C#mRGjs<)#kuES8X-MUiM^6lL@O+w7^RMY(eO}psz-O&i=sT!Ci zXPr%a@%GZnziOpaYleoOX!cp$2+nvn+Qu3>jv_HlVwEK;;imC`VvTz+DX@gSy^+gW z>L{#0Batk1Q&SV_Qf5xhVYfbPFq*X+2Gr3Djm-HQ(Oa+lQe_1>IIFcV;>0@UvVP7{ z%yo8&A7jG6;D)}mV5TcBN7xEmNu!C7TtDt3+=3=8F;E8aCC8hqe7;M18%dLD2-NVQ zPsB@&XoNwhi5hV(+c<{US(%&xBHUl5#>2CE8H9jh`v{p-kC@F)7QLW&VW1MRSsI6X1a$1Wrb8H zK_V`efHaZ=iaK)xZ0fG?xM&3K>m;BsvtBWC=IMiPdbSNuKF5-AGAyKyq+Tm))oT@} zN~Ms=ZQ^4j@E_%=RFFwoQKHg8{(YIR;=kHj2vUaemZcGNH3%VB_Pi=Zf7J05kaYTv z2S#EI6Kxv*%MxL0zw8pxFt0}yy4_A|=XW(Wn)eNtzKI(i2xCz*AZA{}g_Q2V& zzW!ATdQzU5-^e&9CHKsKKt?-BKqDQ=Vd6uTkj(}4@X-qGI=?qya@yPqFN;z=V9$&DcI><}74ha?QENB<`nB(5YbY2>g3!At(uar~uRdf3zj~U84Mcif=wt6{Nu13Gp3y*8+(X`I zpA0P}m_g4=1mXL8gZ63e?Amkj?u)-c(sWfcL4kOOr#y9uSp<|=HBcoh`d28Ey*;$B zY%dLhWw0|lNGN)}0&}$tq5{-4WH=RjX!oG$bXf#xJVtO>&N4Um-c2LBST}geUP3%Wl8H?BJ~nPjA?<$LLYc^}qyarUIZwo1BcOH4#s~ZJ z4iV*SkeEjDAdROsjzUWjT+<$iPGhjug>}nZ?W&2PLJQ0#aV0~ujO`9In<>a#VBx)D zo|R%&n6svmng_pJxN~2(OtRO~I<}-kZ&V$8xN?pm5@HX$-g3*(?9qFy4i0yEZx?wy z)-`wtaM9_hNOH&;l?z}1c{M%U<&b?iG!VA;7yLYV!)SNj*?CE&Vq#SGr~5FQ=SC!K z=D*$fK(ObyucwmJW4ovbxL_&2qo;q4Dl7p zGYyX*Ai3PnshNJ31&xN75Tz9%Y2zMauTkGGFaFB4Qq*Ub{U#P0TU7C^4>5? z_Q`as%0uW$F4-Z0@g&~UCMKrW=AB-JZf2XVQnD^X11vP)@AWfwae*t^(nti|=1Z}S z!H`AID<~qtT+VERPu@UzO---bQ9&lJ7JdjaO^iEx{CKuCqf}oj%Uyj z^va{PC|}^==uQ7tcH`wS$-^N)VwpjiOQ3BaATVd!79JDe`LvALmuw#K=JNh=(k^a- zkkZ``_xyH5^1iqzJLpTZupEOD%;xjYHX;~o9=&ejFYfncD}I{T(`^k7b1L;G&NS3n zTNM@?ccdZ}K-CH-wh{RF$s^o#+WChLzhr zjV6&Ub4z+^2+Er~*>|V;7Ca!7;P)*y9Oh$@PG!ODliG=j|90INxhHBkru5b(%WbU2 z2_k`=AB{dW1;X*|jn=$@dZZD^Cl7Q+m~4+FzmCr6Il)F*HQ&d8Lk9w6+7kSU3sS_x zZfm4<_3v)@@O;~?ME`u}GhUJ#mgA4y)bIJZ#Fy)$ciP4&OOsPgoj2FMSP=qdQ@ zQY7aT96cLh@+lYOgA9F&UwM2hM~-ug%R9tMa7yALti6?}qBIghLdb{{M8MfEZal{Y zlFGi`t;WCVR+aEN2g?DsD@TO~Y&Mut;&T;DB}-on40}sW!R9~c(uE$}QF@a? zJG%wlPBjTPPm#idNWrarP~V|C++Qi9f*FH{KD4SZM8_a>-t8;R%u*^ObaIewdg$l; zLy<92Ny;I5wwKjY8~0Gqm^o*M3ukYf2M*|(K@mU9PoD;(EG!p2s3M6JyKFiZ2<|jG zH)JlKpqk$`E1(52unl6dL{PMrP&^&K1$_P%ot{YKIjzg93n&C^o>)h)zC{o_q zp}JeVsJq~LcAfsxkn$D=xjC5$8bmsYH_@MKw^L&?tP1l<^Gx8$OBP;BjAVa3kvDCx z3Ixh43LLJ#AjCI;nINltred}J9EUsY`Hi=5EouF1zjoNti2%|G;m)%YQ~l#BkPRyu zB2gt@7R_hAnCW%dDQCn-BeGOff+*h9OWf?BKsiW}ob#ZKplGIBzxB!E%5P989ufZ> za#EB31I&0=g8{QDwfE*I*Z<^X_!wHd3Hei`Ry(L>G5BseZCW^X+D&Q7AnHxr;`F=4 zSp75%p=tub7+-Mzo*-=z?CyCiy~()Km#~b;FOO`edTnwDRG1W z8+IQX=4PS%na!Qb9XHMxB(J7mJR%uow3;D|!Y5-pdwLzOK@rl+2|W_0v}ovHe%!?s z5U~0Axcn*M5^>ULa1C-p2>ACaz_p54|8ds4K%b9rfd;|ioMV^Ag^||*Ks}M^V!T<^ zJj~(pO;g$Swtat8Hi^;k^!FYT=>PtKgjEfvv1kitrJf$gT4vK7Y{?x!+Pn2t-|4kG zLgjba*kDwg<=6L&Cm8$l>0ZL-97-3lk>%@cMb9RRX4Q8LnX&Oe?Ij-bWB@XuA0K4icr#kv=R6sr^!1Pe z1i?;D$I@q2TDQR+_qnl4Lk07ym!n~sj3R0&)Moyzt!E7P=!??9YAdAiEg7`HQoGKg zzp7|m261i0p==D8mF9M0srpy6gN|`6tzq8ei=S-L$9bceWx_k-y9=o^fz{ytLQYMR zj*mS>HR~FLI^Y3dbYB5L$X^;mxd~O)#IuviI6X?qG;gN>8JzkPZ9lncIaga&;=k3> zi$FZI>I0p3^XrdS>FY~PQLed(_b(r{0q)~?T!1HXki|-|Lg_y?YqN9pa83~#Y}*vA zMhz-zUdg2mZ=W9a?@~wye~R$;M<=vPNkZK-=$?q*UWiq=XS7YLD5CA)Wb+ufHgh6wd;Ux}I#f2VE7TjD8QfIb=;mXFw zN1=J;>)jL3pz4&3!pZh$@FM=N`&A#r9);txSqC>)E5jSt^NRF)clr3l@%-2)wGG$l zihM#X^nzUY!9NLMtPb`c5Y(YL-@)Rt_q8ofS+;u%IL?j!^+pCamKxS?G8$Rma#QTz zl0WZ*@{bO^YL5=f-U0m`N#o3&9KRhFOG|LPMxQvQe@*RwHR&H@JS8&L^3M`3LY8C{ z{$8*f5#@4I-QMD-xTaRIG)01_(r9-Zm3|N7ch%e+p)o2K-*P|Wn)rUxQaTU1eL*~U zZ|$(VlAd-~Be+~PmzOtm;O6;gld&}iC`k_s(CVNr%$(Vi*-8Cvq_9EhRME)#0y8sr*3!YZsO1BM-%s_G;*=kN2VNDk+pogi~C} zG_ACMKaakhUQ7%&$6;1}`GavSrCB9bm6U`-AQjQFm@vMZ<6y1{1Jv7RvWn5{unY=2 z!(yd_sX?%yy&)CTrE;Txw}+%=Cd(ddGb7p|TKAC-xeCruMc# z{kW}KHWg1b>hS}MrxroUVpg;-;f%vZ?%ULB<}Lnj#l2yw@i|gz%!8jr_?rbx+iQ=E z?L$RJt_HKk@AE`UhFbaGXiq6QLHsRb4kFoJLh|*yQ8CUC6O7oJk=sq z-9^nzys2{2jyW}Nvy`%LZvh4`>#!s!xPvYdxwKMy5aF96dsv6_(y2?ogY}i60JuaS zKPa!I@G&oaApJb!A9|-`m!H7Sb3PhZmzaKCZ|cUj^mhA8vXa+ zK3avfaYDg`oB2;P5MJgB)2p37nN71<8G+oQ24hn9M0k&trb2r z5}7{X6<@0qY5}$|rPoz|`dExpI#(2$Qw9H+lHeM>v?D^6CxgPv7^$Z4+YIcnt;1f^ z)U~^lS9&<4u|6ZI9IEc8v^ga3+FunqPRa4nBCZ*_%mucmBQEf}ZhHbY`e;#kdq=Hi z@2Wsl@6*HlvcSz)TK99(MZP?gv!`cFav$)AB%<@N3-72#Xq<=@33R=Au78j-{YiEj z6#bi$e6jp$%pUGb^th>BFjp>Faf>Bec@qiwNc2m|Bp|Pg01W`nDN*UM4Zt8GEZiMQ zzw??;@o|i3Z>AcnUy#K6g}A2aGN0S|R~{c@YEk=|QZxTt8;8iLPZhi4H!_|fGSB5Max=qol3ixHz&Y7=7^BRV ze!;~q$=Pal;TD+oUxLcnndE4i@3Anc+}j>Km|&bvLO|~^meol^@&txy%3(y*HPOy! zM3P%%_+RZ%`zamn?^yOe0&=|1`NoBZ%y!LW+YtCHTe-G1EsdZ{ugwVKUgql@5Fjto z@N!s_x7Fwqc+9l($uT0*fajA^&p{KHnj}z?J0OL|-{?^Lu_U96wRN4g(Vk!fVE2)SRW+rzPO||F` ze}>ZhXMsGzOEVVq-p+#Z5udiIgSlUKVL#4_jH^|m{X%qy;I6}97{<_3yW4ie&-kqIdUj#-6X zHC>g>)PvqQ&8a==6uLU*(bqTQ^(1LYz7uJE6$S6kXQ~B!x9cKke@x2RkMt9z;M>h( zXVnq5{_5HO+BG8aOf55OFJ!3w=K3LB84kA_pEv3Gn+tdJ0vaq^?~Sew^Di7zuy=5g zjp=UT)sn{vYuP7rr;Sb0+jUK^r)REaqR9mb_R7#M67kOMpuRZD+G{x8#0QM|8!=D0 zuUQQ30W=@Y#*M}pVJD}8ikvC8CA zh*}e&au|VP-AEjSeT<4L)bdTo-<<2Gc8Q#iCM8nu3eb%3DNkK%;Wc=fymv0 zPkDBs@e_IwayW4MO*_`k;QDHWH8Vv&lNVO!rSI3Xq=;Awr@-VOo9RiZJx#e*(_coL zSf#cy6=3Znl&=*iXY{qtjvmfCOXK-%`pxkFB&gLVanf9>n#g36O9OWLw_ySO254;U z`s2a158LWRfl$`Jm%PW?c%^DMM4-{@xcZSN;`GG426+1KZ~35h>=0Lt#lY@`)g48U zprgkzTmdy6x1YA-{2|>1`@Bn#R#0QP=1D&;l+*J{4A{i&Wt3jhxSjL+Chr7T>HSf` ze?~&wqOazb4F16X8J|+|v4YL;^_Ny=Qfd-o3pbk*vVnc*+Wux@DOGAr~U)HV9bJoTHwl7l9npPztx<$q>J0U>$AkZmIp* zbZ2xhk%IiDKToBu)z@d^Tg)4ST$n4MRl1SCOzr0pDHAR!eZa@Xky|t+XrS1wzak>MLlNAW^4yLN*9u*apLzpy5n-(?}MW+t^albCmV+FfGU#C%!ck#lJDH>=% zgX>AYe1Va*g9g*W6F@#C009X7(7^}<#;*e%%4`eGC%B`7&2uvWUd%ypj&>&j-)AHUuyfpKqKtN$iw+Z{Er3=8a#&||}P3qydslD?@-d`VM^h^2kMF(e zj;4<@wVFeVQO7J}{hY&)FRA@&X1#Lzwa&nDS=e0Bj5rA@Nd~dSoI3ZEZ4LcR&OZ&P z3$p;EK@Z!VtE+mJg*%6bfm1I^V!=#D9EFX+1GurFLm0?w1586oZMY8T_(#;qr$|=9 znL{*D(x7#LVEf!McM+7nOkCUv(_Yv}!or>a>5cIwTCuyjT>5DKiKkou_@Z!%7y+I= zHf#ROQEB;N*IR6sy`T8u(z-Sl_WJKI%p1J9kIBEg_KRK!`Hx92`kh4+12zKE@$D2d|U#(`3O5EbCm`J}NWS)q*=pUuBD00p&l zX4QgRwy| zj`9J4A|2PLVHw9#pjJROv?EIaX3#%Jr1d_&rp}7YEEI3705?F$zx2EP z`HBp{uxI%lfFuJ149%^i2%hWya{+-sCi(m$u$u-ZPRR8-c%?xSTnkX{3os#|Kw;)g zKOa{{L)eiX{@{sR`mmQu@fTnwC*Fqrm}sTH(6zKq$L-K9`!OOy)1%F(n*-#WqgOf- z8cZrwgN7z72MD?Y)JL_mAnU1)k8+yGhyW+~@Lp7NLT16iz8l?3o;}Pa`09K})YV^C zLx(Qz)=(n`a4X!T8R9?y(x7D0@SkF*m=AK7ENnKa8SYJroYh^n3&85%tSichMGo^A zb~Ku55mbgPcja=a)5+Xc{Mg9BnbA>C+1z%}5J2GNFtkfOyG6ok0qq2LFt9p+|NAMIa#9#Erdcxr?VzwbR;_7YwFNz zWJsZARh1lug%_vz6j8<50P8rAN^L;+SOTBbnclS;jA031)MDHZ0#AdV47h|>OAL)t`hznL3w<0<`-^11U6?1HPi->4iK zn9@FOoNT*LTwZaJ$(q*ceN{?Z>&V@#$BDneWfD{KMF+Pn-gTZ(GyKdbktXMJ6gs^9 z4ZkxMS*L7m4F;je)T|f)GmDEzH{i-2(@d~o&XtMbeGXm0e4h|Bp3iPdbNdt1a6iSw z>TD{Arhv`4_Va-Gfvv>0BkvF=g3moaO@>e;QRb{xR${@57dhS;fw^P0wgaM0rtq(N zn{65DLhO;s3I@;?{LT6hy@A?Br|k{&9LF+Gr1suPx{-Mj+Li?Xh&Dt-NNXD#kMrtFyrqV`Qydq5IdCo;qqPvI}XcRYG zrjah`HuKV1If;F@;$D5L04c#QXfFWQj8Xj5N>9%;{lzf)?IbXGQxhc&{icNA*^=n!ZGMXV@1a z6WWq$_ZkEm(!5`Dh9-4_j#li+ktGZx31TM3uoD27Bpgj>`>FhF6$1dQB=%k453K8N zHU>{zl1QSWZ9`XB#}@eyJ(VXj?xveojdUu=`a}3Ti0w(gF?{^8)lDEPZf*4@@7(wV z-u>4TTPjn6DcBwBAO3CTu@tE2D?^p=6%syVkmPC1JX)ieaMbTMVb>h4!Q|$WZfzIhR#;Wsy}ThoQy*pQw0Ucv zsl66ap>`F``7Uy8CcmZARanwBaDWOuoyD*%I?PcoaX+ONy(~#@x-&L!Tn|C?n5)Ad zh`AGSqZ`=MK3>(>E%c}A>Mh1$xp$;OXaG&iX#c>@btW94vl;;e*I`>x|MzfmY9LM3`P^HyYC;ndgMx3>?3raM;nnvUH zUwv1<1QmxJ4S%DWLkZ=_%BXjIjwwEImpVbO7BmqU+edqOFBD~-u8Eg>50832^x`!& z!$WqRJ=~)yBosR3&zRmx*f_#Z9A9&mVnqna!4VSQ3LhD74u4ffGT+sYBxiItV1W90 z%2t|KB>P3Nx=-Rt@WJ!IpCWZcKd#g2-u(qq(40k3axcQn|VJ}p`Fp7GLc%$wsSmVqeh~>wTYwWqlsX_E79+I3noFl>&zZ3vQ zCNbNcp(t2Rl0R^G>I(Ai_xsy7fS0G6%x%^V_587#19M3*cB6a8x{~w_4f-h#m;nRa z|D(|`9OHhgty+u+_Cn%Ow&zNL3zX=#0i8IEy)3=gj?AVa5{IJ1ZiMZCfDxr4iIzNDA<2=8;pOvXcf76*< zyHGt7Jkl?K7G-3o+zI9g&{xo#RP)oCGb4z;-13Qtab>+LC*a5ROnAvGo9quA^WCAo z6g7POwSqakTO;?1;()GBm z&gFp_Pi$xn#0pcqgYI{4YH3bEW1kV-AH|2U0|zuq0v$i2ns#c!Ij6C@bzn%Bkb5c7kkq6SV`_W5XMB_&mau2V-ZipurzNkD{m4}CNje~I(bqsYRdD3aS z4{n~K67~)XXBGz07E=aENX4YinK@5J6yJ<9;`FPAP#K9v97N$}=gPPh&wzyYSh4sE zjp%30=Z@#ZDJkO~N8Hma#{x_vVw>Hl4)ec*Jr6U(NN1LMyw1YfEXyw6l#;tfFQHRE z-yy+wo4cJJ-Zw70{MR`o?P59bu&lWK6#&E0p&#*% zeDUh<+<^}^M@b7mfP~b&HMBF2@oTQnAuM*F@`XrPJaTAlIw=(l(Exa72%180EYDg< zefY=A*|(eP`dUM8@aLDS9bB>E@XNOftC{Qw0b|cs=sdLPlp=iFv%It=A?%OsJQl-` zS{7{((un3JmKBSqqtQRPjfT33kjoX)7_x+3StZjV;sDmD^F zy8l3gTBJSDGoK|tyLWph(l31?(OKi0@>g8ny+b~XP=CK(8Nj8uQ3CJ_B{}2^k|6Xb z=;351v1pBKbylz$)}WMrQ7E&7m)eJo&g16vHTt^qAtfGr0{BlC`UGlZeVKx@_M?iY zBd6OLgKw(e9F}loK*9C+Nynm_)!+@(YHqp6@gGAZcB-;5tXB^qWk!HI%H!lQUpY2>$k4A1) zo?BJgJcb}T)_AH#$F{vBxAvZ%Umc-Emw_t5mJl=7(l{bGt9pmeyCE7Uc7^@%M)dCo zh}r&io}GM#sN&Ejp`=7rv4AN>&U(Lq`+q~v={_`GUZpOFid~uf8=_4Mz1tP|&F9q{ zt-GZPB)k;5+qMPG%39gwWs_gDPrYn^Y6YBy^Z38SEF)TH3JPf=POJ4DDH3%Ih4gsC zH}{vtWd!u-VQt6L&m;r=#=(n5h@eurxz__rb9FOcuxk`25pDZI%3 zayaUge~r@iZL^w?5-YU2y13b@+^l63YAI{5Ct8`(jUT(YxBgP?Fv$Nqw+V%a!3bzb zJD}UGx)dFS)_;0p@H|!@XL0CuV!2d#4V;?bG_$cAWJ>UZM^&;@-(%zlIzm@Kluupq7~0qw4rgjJ!Z`q?d3 zd5J1@s+`!Hr0s9|;Wt|t8n8HpoUGPEuAcyUzjs=uBZ-PyRNS>Yrr(}gtgpqZtp1zT zyl+RS>LvD~F5Aw7c9$ItUEKs_fELfuS6VX$y6t1n>Q30H;7yS?R*S!|CHLxDqTWY2 zEgh+G0-ZI$R)grRhr2$T%TRTj2=%KzgJH=$7sMDgv@EG^m?B__MHYtD_KsdaOe9gf zsqbruaTxcKgWvSDaU7hjkJAOO-R_5Tdv~|TQ~dz19IN9yW|KiNd-a|rz(^|2bo0up zqHYn058zjp1C|tWU7`=x2y|{x(PcBJ=(IwIbxTnicn?upt%}v>t^o;tJ-K*zc*H~5*Ue^Z)BzWPyy2dvq zLur1A3!KS2*&;@*pKd%ow%rk#)_?hGh@PhHh(53U-RJ$VB(T3oGo5#^ruJDVdi#MX zXpsZZ(}-K7#?3bshD^<?e7{wad{zDfn!Q-6T71k3ts z-suW&fzlooj=CFsbmlWV%jN`1#&8-iVHM0H|c=0iTCkJ?UZ2Gc`h#s zxRBX|kdw>OdutE_f(a-*>exDe*I$}2_RVLI&z)YIFCPcI4Z1A^{$}sV^GQXNY!jd= zASluR+DWau1ZvIWg_Ty=nC5Voa;C7Q#^1V8r9OAC4PYU~>_x)#<5?>pmtaViV0y>| z*dmg?#d%`kRJTEfL)0Rg4`Y zIuA@*g`lc=U{yvO)1iaFlna7`c~#+W5G71O0X%S~B6Hf@?7~VJqac-ik)B4JLIE}D zAF4zhElwh*0NSEeBBv#KL{mqcb|2Twrn;(Ibrh(a6(C2sg`tvnPr7z{K0E7{yfy7e z2~8R^5axpt2p3-kurfY&y}((}8RXV6g!#)52!=BzghtXOa}#aOvB?ZgL10hJl!K?5 zus)#AAEylBJYmgeOTz@Jv%~XzlDg?%iNhDI!K?oL zaTdsm(RAetq&&VmJQD@$ddR{{;o!9Ig(9HUiS#;<{AI%DV;i4@{0qNcv#~Wt#?%Cf zyXPhUS!!gZ@rixrRQZ0f0x6%A-9qXt2~7!Yokmf$mr=|AAPg)<`EvL1ju{q|n*W1< zBj41VU&SOuhtVx+Pi?ZemXoc) zs$g0^OHKID$3M|0o{)Nnb@K41Ib9+_!#7gKj@sQ2T!yX2^Q{f9!dB~h&3{7iME{r< zAI_hAU1sm7LKF0^gNzhZ>Gaj5O_kZ569RMs8xt`p)FdK zOakZp_g&n5>Y+s|&G8AZu}hn(pABfn4ot+5D@MTMBqiV);T4?+2e^uZ!21RBAhPF| z8e{Tbsbl0*KvnC3!u<7UqqXl)cTa|Q242_;`hHLu=UD_qh(mm&Gypf7KtU#Bu&5#G z53+x>Gjzc|RL*5}h4TSghi5@FLoP^)BJWp2ahkObD%knmv6jw;Se;34-4~CzwN_aC4MoCc&Qn_%3|4o z3KSoOO!fQTHJTddOhxjkVULJH*bJy|1)W=v#+jOI`#Jz?!Mmc|*_Wwe=gP~@1-sL4 zBrfjkP4ItWmvirDgf9Iqv@)y{^s`hVE4KI}3n4Hj2<&lnhk8b^Fjp5MAFSLCE1?0e z@s~RvpWc87;y2>&lb=E(nUTevi!z+jL&p?ynG8|SN%D+nrwUBas%e9-_cb5BydMi2$Y;>dP^?2nKb2{rnuu6?zz0nwTDnTJ z1CXxM85=@4UAdBASWRhkF3NwAw#9tiYIa2VSU~>x)-=_Pw4nmQpdzd!sk(9)r&0VE zksArYyXh&#e{lqwlz=FODF-=Z`b6F$On&wk86zm_8}n{%bA?JO(J-hB9Fu44AEt0C z#nK8e0TE^ezr7}&`>UL>oA*e_DyB&7Ik`_FBbSqfFgZyyQ~`LLO7|MdV2iJ%HxyB5 zi&Z)=&33Bmuh5pmD5P*{o%;i{%wJ=zJuoDzd>K;2rat*SOgLHNtlq=Mgq76I(gI!W zoqPUKdy0kk9W=Z7A9h!qe|DYIT7}+nDFK-z)ZYgRULu`Mr)u*S3(I2$y4dZJ#_AC8 z=E;g-f1u$3p?{prS-VG`)_hV+2l%t>RG|N^?E<7?pQ4pin0&wGOOHd&O=e>Wr$GG4 zy%;WO7AjDOKvgWugelMWY_Zse`{{!brbo7qRS1DCSyb6>Zjn_gqW(5dh$!>u`|+HQ zFurFer_$9;WwDR}bn|OWOh}pNYQ&gO%yM+-v#Vt#N{=}KQ%fIsgvdyc_*mu)HnJLF z6>`#AOs4@bYnD^ctyQRd*D@9600x!2XuA8=?pPAAnv@f;D})~RbVSiS(%AueTTQ2W z&&j;%vY~d4vVUK421A>5v@qDg0C`dCQk1>*ZS+DR^c%s zljW!y?p|KEtXAQoTSdK7hZ280jC%I{X0=Q*aG{v1#qFx`C;zjJDW4@B$PSN7y0-wJ zqT{_^S}I4L^0%cgi;x9gnGvNr-a2za<8X5{Lr#jGDx(VNx?pY1h?;M4s940?zp`s5-_|1QkE#l({ z^6~&Vi1%CU1re>b7(EsV;?L< zMY&6@S))EtD?`Yn-t;OKILS+ZLAC%1dD~n%1mjS#Ck` z)&P_kFVXH+Hrk|BX!0e-w0pkjUW#>tl~VDVQHzuHbO2m$2+DWsKnUj1=5#~*IM zsy1vGyL4FE`Kj0cY~39U_ju`3DJ;0lO}J8`}f|5mg6`q zz!?W)Ak0Q>-!n>^!XHJ#u|7Oa6^2G!&#)0LwcsWfQ|RTb)SurNz3yJG3k0}7qkV14 zR^cyC<#h6Pk5wwF>cCtlI@f6~!ff6Roc(2iQX-wBONlMY9{Jke_vc8={-aNsGA9Hx zNzCw(_i02c5S}v_@NanqF5mwqpy!6bTST;sG!%(R z?F3E^%V6mj533MYP-LWIOv-8^jvQ9Bu;6CcE^ozhT_(&T&X8Csoj(0c0$CJ?51X=f zU<0J?>`g-s3MsasH3`W|rX-DxYnMB;rS!7G9 zAvtC5=FO1~QOGBrC>O1JjIMokP!n#@9r7cS&!N@A<=cyUe9nSr7%q#!GYa*Sj9^b) z9|watykj57q(BWEnY~UN;84pJ3Fq*5ZD>HG9d{~*t2dm5Gk%G&7Fvro1UG8=7H&H* z>zgTQj@2N$azU0-Xf=^xWvBBQX>jCBME}ct{^jRXt)R26VdC=pUEC^gZDY0L*D9T| z!C0$%1=Sg%gGqXrbAqA75)Ne7m)SjaIEl`zPlD1KuVT5w8-u(XPIKq$XCk)ZA`}A_+3prOPJ#iHQ|rr^-)7JK#oR~fQPA1^gRmJ*P@cBqOAP{k zPj*X-rRQ)+lJ`1nf7Yr^7R7}YeW=*S9nB<3IqO^`b<@lQKshLIE@nVv^QLstjip_D z?8p*NBO+<#mvO<7;^Rjh;G)OQUUILOncFOe zsl&8KxHVU1%jT9O9dbP!x{z5`0g(}CIl>rdd-aXOedxMqBa8AjY9`lW`U#vqDrBMC15h6u)hkx#4qt){72RGp%wWIZb% zq(N_kPdXh;o=VLruZEAlv!JSr7FL%@MK$D=i#L_svbLWy=kw`PTVr@Vub^m*G5M75 zGkp2<ZVE7TNiGv^ssRst%Yv@N1sJj(qs>HE{%lt{4cD6184gB2W#w< z7`dTX2Us~(BrCSwu5|)jK*tb*-!1714}1ztFvSqqVm_GRkK7SG?iw$UKAj_aOdm+* z$mUMlfV@x#BVUStOzM!Dj+YXWQahtv&!)m4D*wF5kPnbKvkWgZblH|iY)*g>(aT8k zk`R(u!2rrrekqthDlKqp>PUOpR6JFgb<%$k8&_#F0tW`{TQ!oPYM9tGY6}dR$*;J^ zq!62g;i$AamTF!Qv>8b{VSp`+Y; z%&TYLat0eL{rr|}U^L%B|_2RRdda{$`uTS6K;k3q~C>#Y77ZL4+^n)7MT) zjlyU)ms&O5{0-Bw?|=uA%3fc8KwghW#jW>Qv`taqzUch4fdB@u32@Kx2j-@T`t0EJ z>L{nLP02aKLb&m<4q}32N>hT(Ruf%P5HQkUAOn2`B2I|SecA`RPKcl(*!BB=MelWL z8L)x3Q+R&{abr~bZvUX77Hc)QJa?4U*$vaSuLF$U7qycj5QDxC_Nx>tk`<&#mm>jr z_Q=AaXLbnV22Fy1AmgpX%=osXdPi&Fhcpb<4cfN@(JtpNeTi2ZnCS+*aYk!wpuj{1 zr;Ov_u*3L4805Am%r8X!f1KeDors6dviPZoUar=L*A*> zI<;sDtTx(h&~Odv=z(~)<50FyD2aY86G)DLLu-W}>x zwGViiI_vi5_k4O_vc#askKWJc5o0>gSIOdwq8?q@*~~#wDjKy03ckF`_5{%uf+T?J zBsy)FZGQB&H2Qk8_)*xAm%%p)k`Ugz)vBCx`80}{O1buplhufAkirH?%cyM{YMbzh@b1_IWm_9*E9pkwC1A`n#l z<5%zERjP6!xgKgT8+|2X+z5oQPxxHc<2+jd5X7>!WW?~M*?B7gWg&STZ@Vnrhh29D z5e(T9l(WHm+K-(zsoF2rNq`s;)mjznnAWY0*awknTvL*Z+vzgV1aYv_C18EY*>vLY z=*yPwJpmqO$u3{w$M*3=L3gu&F8Py))7J8?37;wm=st|QWDf!NK-^e=xUk?*tpfK| zLs2|&g1ZD#GY~rlFDdi`>k#Z@JFI;caaWOU6A8rT51Uab)}nTEc??y{;V;j{FH>qt z02_ES(Y|fTUu^izO!dxdG+lMb5!6a@a;%Xw(`XtrvQS;Pz3q($z(Xg!N8-`0+Ia3U zNDLTKKI~ALeAbDT5Uii)>TWbzG^^?CPfeLX^N*ez_7nz7pExtr4BkG&QRM_NMXa)_ zjpk?Q-bSyLecy#J1GIjf!){p3V9%TpIs}itSk-OxoJg-XN$#)P`W}V;d zSw}=TzK?!)=*+e-(tLFJpI|G6C7g(ay&IQ~D3Xipf$IE?5GN6v-EmZsf&7hn+==Ed z7H7w(P-HNKqjGRBV<_m|9-ZOJ8AoBl~TOQ)m^MHZwPMsyHOP+LJ zf;G?SkV6y*n!ccimZyK*q=h*#B?YliGpi+yv^Q@gdZ4ak0ls8(Sksf^ffg(fW z+4*fMNJ6&8i(48JUY_b;Z?G6&#cUMu`f-eRCNfRwnn||T#xosnwFO+A%I-EXH9ZM( z<8hL)x`4TBBYQdBUpu!z^};t`>3yl7ACf`fb=^Zdz{%ou^&+kwW|rA7gXEp3=5! zHQ&-Ox?(k561Euj!07QH^`A0|Ig?zzmTwGDov^`DNCSXG{+!IPYrK3i zkO#@icW!;lF3i=ltRW!DZ?~KC)?*Xmh%S5ZWixFJ4Yr$;t4^Q+*CuX~JoTrjzv)?xmA$M&}q`A@(y{>xSKK7Ga)J4&`C07NT%j2dj1V@;=qGSHCa zmw$7$l|;isqgPs|08~oVblMYjKb-sB;T`hTOZLk3*5VQ4`I~!qP*_^=n4I4s`CnB> zs50}{F~QS)>8cnN5b_&CaMIaX7&0G3nk5K44$WYl*LYXecay-jM1y>{stZ@|T`oh#D+Z6FI*a<5<=~RxO3l=3Z)}ub-1A?*Lm;zxRTYi^W84A>{q)n zlhy51=^qPq&j%_amAo!SoeETFL$=S57W7UrAtfWUd6+QT;3jHuK_e-AjDqC{75XKJ zqs}r={zEOSq!LvnotIl$_E+A28rare%Bd z(;wj->ODbir^x7omKRsWB(RYa?B4vErJvV3#|#rxs%u)YZ{}DSEg`e|bbYEs$h#Cu z1)Yl_*Ju1qK1X^54$|;sS3zXFS}Nwdm1OhOUFtu`m=4QRP4Id3a!(*14!`EJDKh=j zsOv%3D^Esha^wlN^DyemR$_#3h^-%Xm^k;}3JvD7KTe9Y8(;G#Z`M&}BCD~DO-5xJ zkCT_U@Gb5Z^)oVPEdk?!Hn7g(`8hnLZ5(EcsMsK*|Ky0h%k0pyHtQNyi^UlvQrxAb zrC?v!hyHQlD2ZC32rJ@GSo$WiB)eoX?ymZ^=-k{Np}sX@9uKHQP>5JW3EXy5kWgO@WyC=1dk-8s?`@4|h}4b_5*M=?Fh{lWLJJ*I-sTXa2Q(a%}dXp&G*57SG!keI9Nim%AwRa2_Xk2ZkqH9k?_WU z$Z522v!cD;dx09KTv&wZ8fl#XBx0y=tqJ4T!NuMBfHq7=ZvcIq9!$B)To*a{%|o)X z`K)+&V_rkb0!m7$;Q6bVK6T@PTFwPOI?wdZ1@HoRGpETR|5xzzGfj{tuEjHf}l19`YU=uSxgz;&$rsF9ibtQEtDxD7Qrn#o!=N>5~C@W?hL zocfAX6(c4Dkv~pemh4_S>w)vFm$E3mQrKH`Zorg5vV_rwxp%e+;?>S<=G}pKcZZhQ zy;mj)un4ww$wWK)Cd7%0%O=7TANK5xrJt^>(pe*8lc1yM$%7;WUXGAA6EgJMQH7|+ z9fVc5GFVrGNx_0Z8jKQ3)R8d*T?N&`;vK>-(7y%9_}2l6xW4MZ^wgN3aOII0B{cNs z3w3i#9@1jgk^8W}({6S;u4}{me#sVEqAD#oty1g)NUZt2e$cSIK*DX{^md)){&88CZZHLu zP&0f}+nGgqX`Ttj zzC^U@OOx(_s5q}7LTVmaqB-oyj^R(&cr42GV~r=k&;E3uz;I>up_{M-65{9cFc|#- z2*aNfe_uxwzkm2^MTm4vv%#d`>HGGh-+D*i1iZGF4_)kq180K{eO{ba=v%wixnC3G zI{*b^IwA-e`-=7;t15_u(aT?Hf?M)}54%DO;(%S7_zlc(HXtlDr}ugR5GQ2&xn_

          2wr*K7K>v^2fCo107z2K=_q;Xz!X4t<{sp)9j;0lJD5cE@+g>1%I7 zKHoi&CT>s0-}6F4kT8oO7qbJv8I?e6Vc;dqn7)jZTFsu^GGXS(8<7xM0=H%x*fLX& z0lDie2%I=Ah_scIDDAFY^{?Gf_L*7l3Vx`yIH-By#GRs zZPQ9#(V}fIo2wNaFQpl4{k|q?f}Lm*|8BskmERNF@n-1{&^h0ssLp+2_&e^ z0a6TK!{p56I$&xc`OlUZwrX3|?)m%q-&7!1r*ZBCeRQCW(6j>dI_W8_SmvKHjn*A7 zsd{gtNqOn2LAVORQjqk5DaV2v<>o1ndJ3A3kJJAm!0#gfI0WQeA^De#`2UVf{y*|R zuK#KLkDY__fBgUXpXGn^zyCG(A6C`>#s3gvh_&564&I;gUk!a04Mi|k`_Nb`MxbVY zqRSVmhzDZLgH@=k70@Kn%P}-ab#*n7;Z+A+O*9QxX&;4uz)J8KT76ydkXWqBsu>OBoJgQPw#BkaR!v%) zz}!4muKm~&O@r|YipTwpveZ`bfWOXK^Js93KgGo~#ci_8&nOWgc9oTeS)ll14%!7N zbR8nbBSsTb?12_gl1&-F&^PsvR9MlqRA>F>iH zjx~M{R0_Rmg|p$>_5{ABKR0_!c8%dF{DgzRb;Mo|bnd~`nuN_LmGbhgWC6jgEVd5_+NyFwpm5dHy@u=&LSnLNvnY=zWMhIei)5 z*eGn5nPvv+l+%jVz)!K6eC1bM545rM-YGuH(u&dMqlGg5Y0p7akx8bkQKV>`ZBJKf zbJd7ZG7wl}msSJ!=s;3s$j{gK{V`g)_aO1*VcXw{MM}_+%K7@YT_2g(Dh9xNmgDBv zmp8yF7Xmx&Rs*(tcHO@wq`g2<_b5bjT;-UfT?a^C! zCwX4oCmi!ah&6WqNj=+{(T#sB(sgMSvVccY%w^pX`Y`Jf3aAk57bqAGc-3EAv3BJ& zvNm9h&tPb_`W^l$FpWPEIa&xP#2qt+E!QLh0~CW;UM-0q@+x`}tyjkeHW)iIFbl9Z zSjYh*oWOiEXL)wlxNq|GI44*u+yWU#Ly2zTddO4dat(t@Ih`Uq>bG zia|amy1p=N-hFO!2;WzH5u&+@Zcdf?xL4rW6k*fp@Hmyt=iycx4&P?)tc-t`(Nba2 zqd$iCGNKY(4K*VeyB%zwk{Tbx5~s|pXOcBhmkhrmcR)V@=>*#8qOc&av%z&d6u;p2R8lf%|F9jeel{Q0aVywa#aC2_P+9 zRgOH*#@-4)H>{3N)M$LILT)`p?mT`H*4aI|3!@?ht*2KcE?kR=pT&YZP=IAtSW6+h zlA|#fXor_%O}7J{E|nPOs84K;ni%s46EjiGP|gmlboks_+iveMX^m17S^gDcT=mJW zkvzfMUKbkF4z)RBLKnZv2N+11W=6tIocfLuRdftH_;;`_N>~8eAQ1O!K5sp9yo$D1 zPF0REzMA#KBuQ~BrYVC1&MG!+n3M@W6Nq_5x68Kf!C#cyGJ=>7oR*E)Dz zqt(TdR#W-=biTU@71ZpxC3B zeQGMe2F5YPurH(TZD3}2=KiKP?CgyRhuT}m_zTv7&_G!HvV-+6IU%A%RQ6bKsQ67W zpwUC?vdKlqFW5{xo=kea0KMr}KB9C3bOHPMQF^!XoBogZ>_xk&&c@$4Z8 z_sIps^ygVNFRv$>Nz3TvSwG?nKZ`^hqf%n2%NJg)3{`UCbgh?g0JChu_6=TGH)C-P zue4$!w-O?b`A=$zDB0h~<$>J70s$)a2ef^njKPsh$_8-YY z>F)@=plv-F(nsw6+e&#+jT)NP&6BoskCVoe8nLp?V>I1a`7zcDjWkR}Q>2K5JBXpg zUAcA$C(Ui*JB}`RGcCdU-99z1Dcbz>D|c3|CL<4i4nI2RhZHONY6bj{T`U9n97$+m zKvtyXbec1L>J2zB@Y3{WPw=9?Zzce#y)dPghKMd|G; zl*0}muKL#K$V2wTt!sk0&e~tU5A(-{)Piv!CWhLX2oqP|>p#{Rv*QPSXvokf{@Z6? z7X9KVP3Uf|LGW+eO{FH5VJk`Si=X*7(d+^u{kN5ImD&~P3;_O5`Iux;`_glS5Mwgx zJ`Z_N5$%U%$J~A|iqCY{9EqK?5z-7Q&a?L%uhf?ilF(5 zTs`Tkg}X6_h4@QvJ2;7rkb%Ek;hWl{99EdgkJ#*HlUe{=zo3p*5n=h&qWHg_$tWtU9$D@4x10ZkaDfhARZS>0^?-{i*gc-UN2uJ1iQ1?h$VI z4B#eOR;+R49FQ%##>AAM%t+-HWxI{&4+53g-$bj8E~GhDWc5n)MR-NRVA;^3jrq?z z`d&-ZdRp37yp0{}Bel@_o2z&7^cPxoNkvpO0%>PBP(SVf#NX`^w7c$Yec$aq!%%&< z_z8vELsu{T2`$2JZHQf&hDUTx&!u+Zg?sAQV)**Exg=?^A31+s8{I7ds z@~GacZq|GF&6Fd#^2>PNnA*g`*z~;wk+Rn%Me?i@7eVXw5CNNjkEHPDQzD&rkxx5Z zZ7Lf;63#tR8Nd#ANDqr8dGr;%aLhUvWUT_hO5^Znx$0GXb*{?xkKQiLVFDpzIOehn z)?+a{8XV$i8}nl;Dl6~&*EojacwvN|wc*<;(|sF~ENU}et#2ynM?W1iL)>z~hV)Yf zZRBBiZlZ}_m=r?(V*tTgTnf71>-1F^jT)9}&bF`zhX=+Gk^EWqr#PznjzjN11#%2u zoCu+;yhb2#24&Ih7IF4|vnekDA4@L$GUTKzHEO-noPAfF8%XGZN@u%g@VpqLtV-j5 z`UV=oy2!yCi<$`nE%8Njw(==U%}ilaC$3P34y&Yc)t*>W$P3=}Pe^TPX6E)QbN|hN zzp9Rq1|;W^S>3n3LQ1L3$t2<_qrxWy5A)c7X4o1(QE(ijsAy8RT#I9A{2w6ti%hOT zD@8S}PZoD6k)st7Iy$^V1Zfli@y_iAZE|q?wEM`DtnKYDubqMJoMOke@Wn9*DHhQ@ z6@P`^!InOZTleM8F%8M^8k>vkbtxV8+q?`Ej~4wt2Q}%9yroNV^MX8_YjpeNb(ypE z2|WH*B$*hNS!+*J&&S9ry60*}W@hQI*46dtMljK;^fWw$F1s>>uPEh9l0tWO5)ahC) z7)6_Hb|l>{!vjaE(N1e0bve79uE_s!t^XeNEq@D7OaJom2!*Zo1n>mwj2Wq>qjfDY zIM6%rOz(0~8-K^1;FQ}-tPb~jj&t$d zi{A`IG;&A5NzWEH&Dk5bN;K@gR`?9bc5G8RpVD#gaGn!cr#^hj)gQ34KpKuhIl;)C zpWqYB_#QkQ@M7ls`p_|r!ok~2$4zZo_PebS;~`TpjuU@^gE}y3o@h^>&}uMCDT&LH zEMF-p!3KwT?UAzkHFx#uZ?cF~8Z^>&sGTb|L#%Q)^<2}rJnk_Ow3%$`vOv@&Rs6jN z@qZ%p+!6GXtn}e>prz-YY3;VxOxC1-$7{Ld`^=~?6()um8K7|CH z1o_!GpTBme{-_F}e7d0O040Fhf6Gkn=Ah7{Nbqh9;o`l;1!IfUiXehoy}ErIMjrq$ z6(5MTiBchnC8bdb!S-+~4KkFx%CVew9v=p^)a;k+Lf1Q9rk{>=GkpCJ(l&|`X?wW0 zc5nYLksYnYACs6Uk(?(fWg^YHRZ}oWh9kJdxRL6>FRL&Ew*h=BHon!nSuLRkNn3mJ zN}zvxF0F>0hl^@pzOPxL3enJ3x2t0QQvK{kw& zN;R4med>PE2|Y?nU~T7=%guaQHaQq`+7epqO(|>}_q$M@$6S0%$k9Z%*~7*oRC~}{ z7cqvp-FCTML;he>^>9+}>qdCrG*O>%%-i~J~Y*%+WVRR0E zqtB#vY7P0ErT} z6P^U6*V5zj3jFZXO&eMzSU>UqGA5&y7Vf;$rg6#DHoJU0W42zm+x;Kxol|fwOtYwC z+qP}nwr$(Ctra^f$;!%#oxFKt+csBh<9z@A_qjXg>QwF8b!y*C-%Za$zv)wN`ZQkTVaT)$l1c@}!{T~BbsetVnDdeA7KmZ_Ptc4BI);V~e6rl~ z7V|6G#V?5AS6fu$`koIWD|?zt9N5O!)?ZIP{WhCWJ)dsyTvbE2;6NM4ksAaa!Y$v@ zzkGTdB6Jt*O|%6OQz^99D;I*}>YbWEcm~`!?<5g+jnuc#ruhDRG8`G#e>nt-2GQ^~&3+|&Q3sr;k!OtI)i6;bbsUo^ z{XtWS%2|W_!^B*&bXGh>IeX3Wy%Q$8s7QK9d}`oFd_%Ux%tP4cx%VX55;jV%LDi?^S=$G z-j$YX--d2A1$N%`j-$tfp!RzP)?B)&BF!;XJ|DCpa-{ z$Xe?UUKHm7NoEpcuxJ)C10Zc%zQWy8*X$&6XtW*o#G2CYWxxEFCdKN%wcqS-6$g&a z73IGpPISPPz7A;U6dFzdjy%>AI$u#MtmRnsgz%Y;eO5ahkqB`}7AY2)gAjxxjX$J* zBcs)i|pMhxTy(p874{ z?MNKx7?81KI@HA2zRU+^0sVKh3*hqO{Z-Ml>-O27Sg`#;?K?e(o%*27%V^{=INUt< zB%2r14IN$TmL1`8X6y4t{X4s$|Cg~f7+iGH_l@{}h~k#Q{G0(>MYA4j zQaaUkDcDCc<5kC3oh*x@sV+_7$2Ck~4tpDp;PhS6_sPxlEB_Stj%kl!-HNM08jlyk zBH5~J3`vP-$1fF1l;$6j{+eV+ntpwVcA8a@@N_K(4;7SgX_>9q8EO<{E>#8?Eu)k% z8a0M88q{3dhSaUk4}{3<3*YZH0$uiKRVu|xXSaZ&o;Ba^p6`3W41oQ;*HCJxKKFT5 zYFoyAVCwFcCGTiu!@I!9W>LTBLGXHx1Yy@#h+rkM(E%qDl0=$MIkkdaVHiDOSRCO^ z9APBAi66f@_+x!yN0u}^1`4C#Jn+fQ!TraimHjDNa5budhJ8G=aHEEd;i-4HXqpbb>&@TV{E4Zu=bCA zpDw3h@l%X+ni8`<5+dMz4I<$ELi$5s&^LZ3%D~82*47-cU7AGH*-eBMcgn<6I%1wY zGPF&WiA>Nd`ZZnhL!8I$T6WWQ-<4wGxl~_s_Mh{4zWPiJrwya9HaHPaZUFH3edl7i z`$y!eIQP?Bm0pZE{@xue!}dK)W)`wZ!v zvqV=ahiN90#-b;aMwOr#p?+3T<&toKgeOVFGJgXLF%80Qe!Y3PC>9i%NdAkfitpM^ zlaN9a8&S#V(UIpEfq&YxeXFe$U3${Qun`YU0EVm|HQ@$GJWeRm0he@e1q;n3-a)`F zFcUs;FMuanh69jNnOn)Q_tw)~9dmWarf1{+$1J6?&8lU~Z|a=84|B)YT;wO8u93JW z6py2#r>gC#rNYRmTsu)(3aOf5=L~GsM5Y1C(bOj64W{(?<68BONi}STO=j(JR5zXD zsOh_%al^hGq6nz$=NzR48mzww4mLp@*vqlzDAt>$YBcS?s&HK13Wvp8W?#EI4OT%% zU<44sCau^Xwz^c~HyGRt8bZPX$9~I$NZw|i_i{{uY4tTT=pZZ{r<$HMR1HL!;??uC z{-9In&?JOoO0GSZ*VLp(Jxj!@-euvO6m^zFZ;Abvn&tIxZ77^5)3>Di7O7t-?7veJ zXSquhNb+XtbE4|cqE%rF$j*f_EH+G+b9@oauzJxdLga9u637nO`x5v0b4A=8SjVkq zVLA$>$pvv}@wsUy?2sHEGJNzMJ{w7<;VqvqP}D;vYMPldCGsGAR&Rd>mj z#p$)->l-za(x`UdHwz!Q{$ZgcI|iRH-ChOJ%<|}!{+vjuP{tvrpz_u!z$X_yi3ugd zZa9$C5p(N7m-|c69-~IDX}K0Rhzwk5Ys*LbP@niuBp{`(msMaS#PU#P0U^8rmRyev zKz?M)E}uEwPMNbn^3Pet6iWrN$^yTuA_MdyX=Wt0m5=#*p16lXwNBf8BWTMl-Z+&mW7LJ0;zkFVD<>Iw6`hU@Q*0Je!nOUw6Y2 zN;i~pHAsimB3KeeVEle^pMXUHeyGJZER70w#&cJK)vE%jVxj6^Ya%yQT7b}hXO8Rg zy_HB!A9^MkS~`)*fg>%Bi*@Yb$CGbnrLilWdbLU>v+G>r4SMjBI36^kQz-t#2ztSO z=0(mBugak~P5T2I0y6>Cl%p_~%kHPv9K$+ixYeA(H#s;GAsb*+vnU?M&{P7c>H3t( zi7Y(GW=zM;9S?AVM1=Qz?jkfcH)icT2n*{+rzR2(99>|H-a?0Af7ZwA0k~ zkC7Z(mSY@j;mF0n$g~aJ`U|;Um2NXUxH!9Q>xS>;h9pD#t#zr{l(doRo1FKh0YTxU zO|MJT;?ntSYK8Ur1Bow;P$==&f%Wa#+Rn&C@O@r;e*=d^8(mZ$g1)XAXh+pA+bG%=)iRrMt2reo(>aA) zMRs5nXoFn<*Mnof{*9qg{vM6E(m1;~6^>#HsJo9TX05$E7K3yj!^F-yq`3tLSPFR= zMAl5gJc_s^4)BZ3=xrVy=lV|{9NMZWJe@6&<06e7EY-T8woXK>L;p(@)W`l_I~Lu0o0u5n5HqhFUXsVkn!u1nu9-E9RInM@ zUk0pa|6yQK;Sb#`8pT<2D;h<}fSt~0Qo@_Fju}$IXH#F#*B%4l$()J{9U($(5O(#> z8+mpT^wFEjcv{Sc;1gwfpa}zBl_rNeKW>C%Hbx@d|e4)dPzY zAYn>j0?q2hB$#~8{6U#tPue9;6{3e!yw-)Uy}~6)o>gU2;blq^&jOog4SSxj`t$+m9= zUg!{L8{#PcgiHD0H6YZg3tDlRg}X9*lAw?b4~{@sam6cCTk!3! zP-`r)dOB+EMIY;WL6~d~PWT7d8Vk#*-o^57<++;dSx`D1uc+lEjOqplDnQeH);-~K zZmtF)+r69H=h7uR5|{uVpmNraO?O3cJd=(mSRE~~-=WWVtVLN?GKWyZ8|OHV2BD@M zVEJ}82$TR?L!TKT(GIeJ&sX6-Ku^@KIaI|Or7-c4?eIs}F#E;HC>bbIRH{Z;a^1)d zj^5@w=pzXH`pL#~d08h1L>J2m@#j(7{+0MP-q1gS8$i!@a^|gL5hwYYpOns?`%>ap z3%;3Hnk*-(Y|PTI^NKJ-R;`KafzD z%ryEz3cS!S`FCQqxePZqiQvRtwNbcCn@J|Spn74(KvYDgXVYgq{wAOJ9IfLhy+iO3 zirM-Ihn#n&Xm1Q1TwdLWi?cfl+%_baZSaR6f1cHu3lQ|V3t9VHCaf$NQX)xxa+>ya8dnf8b0Pi#kctnH=oz3?$p7v`H_n{%x#_I0 zVL>&*psz*D(PYDet7H&bRB|h-cN8I2(rVRRn{3S1)gqH22)x{_p39w3w-0U$`j?~a zl_>`hC=1{J0qlR>?F2&h+=U{~GfP|qd{ywOYt9pLl0 zA0rg{9^(plKM~)ol3({tB_i^+WgGM};8DzPSz-H8eZBTW83CGy>_4CigWlkMuFaDV zE>?P?kOct|;f%c?lH`5zX4i?#v4J$wGq)~RMbn@m7t@7) zXSA>O$RMoZywku$)u3uP4`UV#wFRgY`Bki&OJWC5l|`;h`wlsm+k&iCUaYl{Nk&5W zrajLycO1EGQNE-^tENa$+)*+G3v{VQxcfr5(H_41$r&9g5nF-2!KoV5{z(4vF21Bc z-l3Uy=r5nhK3G#70k6Nm(6E^dde6@2THD%=9H*=6jIairHs0eyc@gWo{Xo-LZCFO^ z@o7Koz)xn1Muy_C8(LZ*sqIW0?c=td>4rQ*)UqU>83xd%fF}b;XinS9C@TyJ*0^sR zq5muco(Q)PC&2;28mltevx(LdDkgribYa-R}#IV8w-vM7hs=| z)O6?OmRr8^CU=76N98q~nrWIn`$-E$84gmkn_@Xt{c|p}y0uv$dW(sS`;;l2Z;#9r zZ>b!(w$Xgs2JLajg{_SU-Q*Ek`-5I^pg<1LSwAZ{I0^rg^-Ud&RvJW=$5GD`%aZJ{ z9QMxZX|%xGj13po0Yh@0`t4Kb%5Q=hehnNo~P7fONaL>ep6oeJK9X+JY(EJ_J2mMV$3-GVA!6+2Nhkr8@1 zQ;|U!Yn|+qXXhkv=Ka(6>~WJ9I;Ndi{37|4LVLSXar?QW?j2b8+_CfSo8&@Dy;s3Q zR~vT^2`!Sp+l{+E7uSgYCD+#9{5L}Ab!#9zGx$>=p!duye4$_LQ)6wV%yJi`vhYm$b z=BJ$>`kQW$l$F#%qJrDY%j|kVc`wKMdE%+nE?M}A#>ub^>92y;RTluyAeyJXp|}Yj zUi+yy;Hj>@)^TX6Kyh_@A*w7mN1_VE*7)z`VB<1`TPO3uaLK>}Z|so$mHAE<$y_Mi z28JY*5ecZhouS9TT2s#EJ6&8-qUC+=X0C?L{ zw|_H(RPqfJ0tDYb_xk|6J$d?}EGkvk zUYo{s_kr%2#+wFYEms85dJuiC=CU69DnL8OLiEWyjA8sx8dkHj4@7KvTQBP!T0RX` zn2v)c*Mb*MYo4aTb{#kb!9}~d{-@nnXKk`X{|KPCMC-Z7MUyd%0}s)nDF=ST(BWI_ z#5zauH;?RVUSkd31sWB-XpPSHJ6NN5of{v)z~n>1X)_x7Zg%37jZru3RJEV#NPm?x zCJJpN8YuW-G~F2-lTDXP`+foG^!tj#MC$7WPb*I!Hs`NCFsaR~(1UiaYcaAEdkonk z?Q)z*9fE#GH{Av0BB8|8JyL{31aprE1dnb8`jJ1*vYe*__|GPndBk4LG6G+Vg zZ=}u70Tr?dd7-#&$R{>y;N}50eReF`WUoRQ6BAYB_lkBoE+t zj-_qSPMbZR^a^;ys>cZ2X@vN*zm~meedgC{!;7h2X{ac0Tr$EoMMm>7Vb>8RTFHj? z;xJhzj`^;T5u_$(VFx0PvNbtr#{9r`ut`+nU}97f(t;EVJ;E5`p^e@e7E$%|^hlt| z(PWn@!;cSk`?Ohx5Ym*;&43fG0r~G-Haf+KRmW95kHc3B?x@s7QPBzvK&cX+2XSF8$QxS08VbY;u!q zftzlx%^`uWI|KYg8MapRIoh#CA=2|=tElY}mU?kKrm5{oVpS1fm-JZjX7`%>q-l6T z)RMNBTDZEkDOsKcNTjGac%^UyDB^=O8)OdByRl*htbAD$CC(F8W0*9whjJXbDxV|I z0&&|@d3~%h8ds<+0~jtw@lCRN!)72f?&^~HKj8t%qYGU9EQyBW$JKsPG@N%&Gp|oy zZcKU7TzQmk1Psu(JhG!0s2Qqs3$zhc$K<3+4VVNLcaQ>&_S8mv59*msStZ@(v_TK! zq8IDk=(=bPl#L!#q)L?IouJ(cvwL_&`lVp;kc#;~tVP^-8)OL#mM6N@2b{n6gWcpV zUS_KX{MIg}T}!A_6s=RntW;D!6*7@bG2|pf$5hDW&V~AEliks7l589`I@4I*4?~gVLG)B_KUT8Y{KiH%(KvH4 zQ-rtDV(jA-aKL;=HIUcB)7|*&&0>d53x)|8h1>mAB{}8ug{&@4{(k)Mi(#kUKN*q0 zxY)k@GDqR~F(=0(N-{;q(g|=k#FgmLBJAk|20j3eBlM;pu$PQ<#pZMfJ$VVU;z9Z{ z=*M6bh<~;B{q|+Cw>Y;$%E>WGHqN`vulOs=0tS zxfBc{$hEUeV_9iEam@0}0@sSPOKcLSGNJc$n4s0#I0lTq&VM7ZB zLlOe=uO_6Lw2m+MU5m(3TXQ?uTF4vdJeil45&;AGLw7)9FmgE#Ar1}#a}aXrEUnZ~ z3k4oYroqs$#Pc`0iDbA67*@TMstPDO3K*$XNCXPojnTG8rTaDR`^HX3)&|33CeA~$ zUpn)OjBV0>=fvh2o%UZ%WWx7K1{!jJDOyVjpSDxJu%?= zb_d!R`X|O$M#bL|;Nwv%ibA9 z>~}HPOCKb$Uz5}6bsOV}XR9L?2FpgHO4ZWM<|GDyM^wmIqE#hAe{x{DlZ7#QR}m)) z2~OSuWIrYhhBb26UoqmRRC$!2W2T0<)C$Woe~eiJh_H>S3Tc4wpSzbzSB&6S#htGe z|KK{-U0^w}(7{NSQA3Bd#Yx9TJ0{M`T>aZ(A60?w3$T}M{vF%8_6KwC$7$lOuHZhv&`~OC#v6=DJ#j;= z`Br94whb36i#L-LHsc^j=mX4Z5XPII>czEaZ6$PMA=_O!nOixU+oBy%N32BSn4J;> zT5j~dV?Q7CArT?W-PEE_3?V7e46tvy6*U!uhFIyD+_Q|hAz zpe4ergVq3fHVha#_lNRdex4z`qZ8;=0l zc{NAP+TflqfD?zkCwp7rqXD2RM3%t=ob=Nx(IY(9(jYvj%j;$*fg3KEob@hl!~QYu zLDf|fVBtz2z@0*I;kxc0PjQI0=&N_g{vBT4R0mq$BPACctAcj+6Gv}QiyH-(6k&km zFU+bPU$Q4>9a3U5c5iyJAnZhgDwT5y)T$H|!g!2l332)}cYe^lr|`Nn=w{#^rt}Z! z33@-6?ebSVral{pP#i?5lgD$e{)&z#)pOssM)?}nEmd+P2gvOf(`+mcJJ~iEF?13K zbdei-k+h$K_OYnq$>f7TCa`(LG`kYfuSByk0y=lfTaqUz*5w7lB%xOxIH4I*1d7^t zhJ?lDG9O4*g23acm6}gQoJ9NDj$>{JK=MN-)Og-FxqE^FD|3Y%E+2JLC{HhxTn}ng z>1%*-&X<7*)p-TgWd)Xr9+g6tMJ|Ms7MX-7iH&^XXLridj=S`#pgRh^a=D*RLUaV8;i1bkD&IAd4d8BXDeACyY%_!@#bP1p(K(Aq>*jmuBpx}hD&&{EDA~7 zEL6>eEq-7nhm3MMMr~+oNywnqACTCGg4Is}f(5bIxR{MFSsA&}C{sLD9N^{dg7RzD zcN54J@FgzKPYTLdc}h;C6lzR`EZ3QJM)-A5>dil=>K8I^XNY){H>OYCy0-()`1RU| z%cRCc6bq%EY;ZxVKi%STAm`$wS<~1rAVH zEsp4aEPqzi=CO5@GI5p4^i9OF3?Vtl<_fI9CTy8oGTJ(ak>2X2O`4+qw9IoMbmiR} zLMFdheM4yGK{JBYyJf<`z>1VLeXjv~X=DE;(<|jfBVo*}WCQTiG~fuH6*8maC>mum!b!T#Te(&z6$j#d285 z+^zoO`JA+6qha4qU#j9m4b@l5LhAr`;Ed60qI^5;;9U3D3U->!a-T;I1vLO|D0}r$ zKuR!4A~xQ>=0vww;2ipTzY>6%anpv}wbwRP;QDgZ`BZi5dy~k6%mugN3kT z_pReFT4yH}hbKuhwsDrW!iN8qn=dd-yqGs7dDWRitDu5#SI)X(`9T?BR9;;=Vp8 znU3t+rL! zBufXAg|3U%^lFU5H4ybAu2I<#_^fbRAl@DfAm3lh@xq50cajS&l+ku^)>YGsXq;d) z5jlT#!$kCuvmxpjL?%;rOD@s78RMUuc(>V0NU!YlMM~xMx)S%FK9hRq-4%z)+8wZ3 z@#s@|BlwoBP8}kN^~2cwO|9JEV8HhbSwz@kOw@5OwIVynLAL9K%~o+mLQ#XNYKm(< zv8Jky%H*opPRrN1VU4I(x_;y;r1dgoifA7EO~en?0ueM0D}*6oE2ByCNgMnbf>Cu3 z5yL@}v^uPYc1|#{s}oDSUp19SkEJWY{av3*sB7+cAETpvno+!rvpST*{@w|*=HLO}f7jtFH}#$&aEtZ<_fliJWj zs5SXoH1&4>q-{G%oA4RWX33UfD`Vv`-D_da53M|R1@`N9iQe_je_DE|+Wae@^y5RG z+uXqiBXLa^q`-&ds`!O0$HfrZsEo;?BgG$YB*`OP{U=VWCW|*j2#Z}+0gjsZR)!KQ zCwjC{X~oE*+8#UXU6PG3q93e`-JQmJZQk*uG@FaYx}w1~<|*Zs(o5>zO*<(8sP2BoeGGzSAOW`}9whU7))VySc`zeUT5 z8m+1{y3yef(VI?N^5f6!5#R}|mf01QXq~2XHyfh5sZGnzsFgIB)SWb>rE!EG>7!m* zwCmhMkb@WGKYtXS?}ru%hA3_n_3=*&Vy_qka@sA?IkoRWZThXaF&MrP**tds9K{aJ zs>s7k@pe5A-VD_%3!Px!E>_9{2Tp?kjqFz22Ab-sl zU%q4f8t_Go5RI`KK>stii78UHX5ciPP*gJn3dSrCiet7cx?3h&om~!T;r3~`L;d$o zT7K#WdZ=Dk@Fg8+(|N~<%h3;QvwiZpA*gl{f7?}Ed>3PL=%mYH>N0k>OOP}VgKye z$>k6D0TLg&n>=t{YD^F_k{B@AKux_NdcUZn&OdYf=-wZ~Niw~Iix|7>s~zstSAcsZ z2~~(ZSCg4-S=bm^dO6N5M9}wTn1b66n3?M>_^y-zb!EXw$BkCfpEoJ4EYltdgDF9J zBbBKr0IFWatuT9CAFJmCuvjrF@c5MyaR?P>PL;=8^hYf>Q)!U)w^V=nB0ZNg0q5EG zu#y?Th-qXQ1y%&8mzFiFPT_*Z)+L;eAZIW*8u&Uq228IS6}kOafY6KQ4oV_rA)m+AB93R;h;{63?^jjnz{Q)X19C+8bJc34SRuhSftRAr z@~(Q6?*mTLv~~rM$xdGIMHFCUf}UIB4AVSTuu*Ss z4UwSsCN3#V4cJkZrhj4Uperg*!9=w;3>TS!nUnQ1RWCQ%&b`Bxyjsq}RKp{zgHM0V zlcd#ZJmJb02{DI2N-Br2PY&+@J}%#zWkPrHN8DdZ{$UM~=bmE?TpIQ^Y$Yi#Br>uH z!cTh{Zw()J_AbLG z!lb*7c2Bj*L3s7H+fD5Il4=~3r#j^pU}c6Ve_LZ$2OmM6j6s6k2aAA#9wtfE;|c?8 z^Yhr3kjj-Fl6I{PSS7M4BZOWQUV%qm0uS_8ON=@Rb925o)Kn2`N{h)b8Hy|43;hyz zo$Z+VMfkPOzL&JCt_L+b?~_=ab9<-w1XA{XdR7;M^Bg$i4G-2YXleo*nU{13D|P-i zPoHQaf6h+@Ss<*u2~2 z6truP#JZNXP)2iQ9GU9%TwHFqGt}Lb2#RUA0~yXth}-eUaG75dLMdgVXz*%6I|$j= z^l5dJX8~Ci2A$neo<%fNASTE#hxaM&5`>hPg$VGTJBaigWY7+5iTlIJBE&l_07OT} zP!haDrFZN?@)%Kq+}dxklK;Vg+(6JVI6=g z{BetXyK8RG!mrU^l9ivl;QWHX)Ok?d?(wSF{*Y7$f2&hl5Oh%aGU=O5NPEyXqJ7YF zWgM!g&*l0D4onZE-(+XWoNV!EXx4}60}dCh`O!4;h*DpKir5m?;2hAuJa1Db0tcRJ zBZhOzhDik@My$@hpz}P)=a82(n2Mbrc`(hZZj|U5Wb+pDA)?nD*wza$=Gp(j6VrSM zXj09~8T!o+Og7&3qxQO9Pb5#~0qY(z(qZb{aDa2(pyUq_C3g0qsqyo z=1T*Jz~?(%e|B47-`Gi!#|%g;Ex6*4!I72dkoi!c!$~&C#3jh=H3g0!T`1+Y@5UEN zvt~(KE@(;kTf59$dhcEfdo!-UcI~R5n9{FC`zT)B;`(L=Y8c}lgfSZ=3pPYw&IrY8 z&7#ewbjZrW31zy6A;T6riUGxmpjERkYD;d@AYC?+q6LKEo?jq#-~y12Cys4o_8|fE2|0gk$_`$uX&Ii|lStrTYM{wHTy3?L;^ zC_;az9Mr^(;;Z6!X;Ib!5n%<$Y~+k+$jBMNs#?$Poa)E6)@JQRsnxq)v8wJj8ZU7n zJe98`jnrdC&T==;KUSsR?g|r*+PQvDL4gU&oG8eE35jM?^rQF1akgZD$RPI6;yk@S zwi8FREeRma-^`M*%sfL{kZ7UE^}-JkO2DH{xN*`;*I=p>@y_h>s&ui(Dh|DCL?QDj(#r2v^HCl2yNJAl zt#R+1p!`PPG4@yL-WZkxt$DvbIH}F-0?0VOnZ`J`)2(0rJedAt)GNz2(+zWc7B*|0 zJO4k;M07VLH?s(l#I%igM&suW1&6+SjCsTzjy>{w5k2t8hHhIPHBVy+=lu=rEQrnp%0;~Kqqbz@JCk*gn+&MAXv7Xhs`JaR4DcPf?f8n6JhDw7I5@u_E_ zN|q0$_>w$sp}V#$z}Xku#HS6zi~Fw>Dn?t60r#2xEPCyO+mYo`6CR$|8}bGp z3!siT0eH|)17_4B=RwpyZq+hREqhLlYD@*~YMeT)3MW6eqb2A=@iDt5-?x{^hk;Cn z&cp}uNC8?86x~#bfcRoQXGcFbNCG}L6gdS`eedhROwaR%yAtW$W4BY{3rS-6twObq z&l(bnCWR)U?EL(}?O0k4+y1~cfg}R`h{yqRoTKr2jnV2-sT?3gp9m;2cy13f(8#jL zR&UJ+%k%)lEKz`X_8MZwIN)Ijd}w|p+RuMZnK9E{@{nEkFdu=f6>)=NY&)L{6Bqnf z_7Otg&J8h~DWr7!j z+NXUGZQEP@&bWA{IjhJzW_edwC2Q9cbnDGs_i+sRsqw_GPxLwL8=ve+Q^zcodM7H& zPth7G4gzYhk*Z)q39@QMAkC!`2f?L7W8T-BvWPJyQa&p}r#Ko^NP4JO5pcTOiKL%q zJ~58OXHiHKYf;uT22_}8?4hnOt~0%Mh|DeOlW2MRx^^;poXWbCpDT|hx~~XJ@Aj_O znfI$IDfQd?^+$x!`UfUT2w*^&1XVxXQ(mumkmC5V^?2c|;T=oY$i2Lug>MHfwvANF z&$*{L6#=7lmou=_3K3IpRU=Z!I7jjK<8YpHpxqR*(UY>}Os@BXjPf?HyGMlwm_MZs zqkDKs5NQ&R@=G#}_T9aJk)uE+jp?*mF`3fo=1FJ=Vla-Qido{Ep`YT2tDmZG;X+^W zmBL%fwnsJ4r*psOv(}n;>(T#H>m_VxB#0!>^Q(kgef0O`N&W#D^$udY%P-L`a)>f? ziaFo-gutEfiH3YBS-k`3n4f?jHpFi>k*JZg5`r)m;m!NL*>`qEWkcUG1UFbGSsMp5?g!&p1#1&5Cvqu!m?lEIk^g;ffDTS5mh!CKAeR$BvaZ#$?sr;c7e!m*l zOio#O3Auk8`R4!letVV%{ZIw@Mhsom;nV-?%KG0O8U0`R56^#H{a1E2?*GaE`R~hr z&C7|4nL{VK4ZdQ&K@N-f({Gbxso4=X1RS1F;Mpe3;YvXzES6% z<5DM7Au$80MkF4I0ej33BU{8hxL@Bp(xz+7jB8ytJ(Oww6s@BM5jn}EO(u*OLBg*@a}GS_&z6GjPFTlcOZhx120trLGa zjG_JSe~*hXe7(SY@8b~iOJMu~{Yg|UhDPpx(jX;*p_Hh%{Vp9kvE3-xyFLHPR`nXD zI~BvEKX{Qd(2O1f8Ovxz3S|xgi44pd7!-${)Sbj6oK#bIWj=4m=9+Cm1!>&uH);^^ z7(ff^?(LZk4-JQrL99p*0Y$kX>QOC@3>Ui{AP5c+c~!#>wjwwS91`4q-*06G?NB|g z4-j2PJuby+L|Zn7kSf94V@&wE!}(&6#WXJA!p z{joBR4q-vMj-2WD#_94?qONs|Fd(%aCA9N_Z$A6CWgwkG&38LL<$Ifh@MjIMSA2*GmfC+pZ<1v!5UD$18rNLcR$1ug*a=d&S*N z;0(Y|9N9zcS#eTiM8JBpru|Rg-sMVkD~IOq(2@n8aF7KbP>_XQNR$OXIjXCxDK4?* z=1`RcLCnsPQnVm+4X!D3A|=kI!_KA%4#-Fe{mb!cQ`irYIDhMvR7|mkf&=#`;J`xdcL7__CFH*ij=EQ5BvmkPItN9Xm5a!DQe@$U@&5u#Y^m>iE7C1M{uMv`hrTSsYu27 zaF)W+@my@>!^QlS@jOZULP@&)LL3o?Mrt6BN zQmkL_Q&Gpti zF(@;Teuu$D?ju<_JaFSYLW4-SYV=jJ84%a+L7#SEp(4wWuhQz#=w+S`mPAIYp^}>* z>_c?>#v*c?tX^t&RoJxuTHcI9Td*_4=5dY(y}K%aUg+{FiqSf`9t=OW zyle*}k2cu0a;e%ogdgDzJmbLMLhL*@R4VdGOqWh(?Fa<*Uqef<|Ky1z>lG&|KIO1e z1+QbdT?*_w6eLsve#rf2B-ONc>5W*&gw{}f#N@^(J$fqm`|eegf{%>^tfEW-cDWla zI}v9N!8GOX`y){y%8Ib;B0eo(FTB6OBP4%>N$3^JP2&Xr6N9y{$72%>Xk}!E_<%FyqIyVv>w3sA?^g zbvEb-ayz|HcYd*w*`~Z?*l_LtV^MHMMU7+9_bfd+jg>Zp0!k)B-H$967oBu~R3q*X z35i9)d10lp=B@pgy*z|fU3*%rgnj^KA zg&bv=k43FS!KG+C9b6HU5aE#)sHfGl9uDz~1fjQqN?WO0qCpT$AS}&Glqiw;i^9sn zP(d@7NMJbOYM)M=6clhgz0wV_-o_L(?$OBqJ6&%>Y(oT%Jasqy7n8$JEFu#~+R#Gr zL{Qg|9gLvbvBlw;R$=`tNJKeFDI$d8ysD+_oN^i&I0`6NB!D9ydDy%;ytnlGR(uiO z*Uxuh<1A3BxE?F9bEsyr7(@vXiWm^Jc-%Pdd6? zE9$vLED6lVxEN8;K@wCO7V`Mwqe_}o(+AGo4=9UkqmN&Pqh7Yz`RnUT?Ly|&s4=;P z&Yi`n$z0c@>=%*lLu?y&4!;FgKrm_|#nSWS7|38q!^k`lL~SNHV)Qtc^~CW+kG(A0 z7=k=Le4d@B7eJ5OV8h74mltcCKx`rWt@Qk*vZ`VnF*j3=1e6P=9fKuHY#)aq)*2nS zx-0gUVx*go?M2M1IBXo~O)A%Sv+zllx68F|mPxc&hC?7^M8vH!dD!dl`&h(d+`WU9 z&3`!^tFEzOVN5RjmO8MCS*vqP*$*v+<7l+7iITHN77uTGZc`SUX|Yr=5hb96i>myL zlUYC|%HErDsMh0(bml~uR5!9hiiYD=dBNy4#4X49nu{!d^ znRTF8=3vekc4_4(TtpGcn@XXBGs|63j6i8)B82_fN)*+aWJtJVi+Rgl^ge}@z7{yR zNU${HRbI@Fy$^s2aqwz`5hJ%~RYYZJic*Dd%PR!_wOd;9rT9oKS34~WMVyr>*_Wc6T736~k1hN`l87zo^Q zNXT{8%~=dj!=X}N(YF%{W8hA7f2zyc?~;H+&hZmJP1hnkj%r9YcQ^{W!I8w>MG>o1 zFAejcIHd@~oT5_1c-qG7UNHm0CQCeBx&9N*W5x(xM*WkVFddSH#4%0^i3Jx{5h~7+ zO;w?t>h>PR|c_&e5 zH*&!0=wr%xOb#$IaJ_TRzCk-;5Jo~in%NfCGr6QTdjNHxRjbp9#92~3)>`9RZeop#4bdo_lg>Uh(gI^jllkTvtXqJD zN3(J4v{AvnLf__UDo(hwZl@N{@sDcZW`(;XUnD{zk}ZN|_f0<`I%46ipg?Z%=}+3S zJNq;|2MeG593k$V*}dhZ?8+W@IR2Z9SaPO267uo@SFx{qQuA-T!0Rz~@wtYC4b&sE zu&o@EOtTLUgXs~PehXevNf4Au3-!<#G(@;bJ*2I$JB6fzq$X3*P3^RXN=JoAiUx@s z(SrzJn6P?z`GDLvUe-uJ1yH81?m7vI-F(_ zn}|YyvS6A8DxL>iy6SV+IK(@boAh7U#S~rP!VvQKrOOZ8tUM*(O z%uMpnQ1yOZG(PDs`_li#&RNA)!Yc{-oG>#pGcz+Yb(lFFX6B^B%*;ur!_3Ug%$#(X zIobb?X0_7p+iG_-4_B7`WLK5!l2!gnWt!7caAPo1B9R}6Cbg`Ta*RQ$ShNq|3P-sn zqKbY*$A915>Ks1t!g8}5?lgsQs=a!8;bpMU4oN?6aQ!HL&s6s;wi}(&O1|-Z@A5Eq$2%v$bf9XY6u^@KVI;t1!yC$sfaY-N+%{hD z#=(~VgbvETsLl}-qWLJnFVLAawj26~T4tOZ%lO{J;(P`cGPxqVMc>IEV94CvA?fW` z0ReM8m4exNJr73K55&xoGGalL^|1zgs!m>#gMH7FC{H$@)<2LqpBI}eOv^;z{5^K`Fvok%^bSDK09vh7SU_`x}- zJhc7fX@eI#DTeL2E4i6BAA;~)kBjLIGlyc+sC&{%>rm3Y(eLE(8cM%d${g(_ULPoVTOtvEX^rpPbGmZfi+$hZu`uyW_t~_&!G2z24tSUE>P2-EKC22pNAI za*?&0zcx=}R!Kb5BAn3wg-^gl8=w^*D@PSg)u8jXk9r*)!H^y&k6g%o)PT|F&SvE~ z!pdgQ64amNKf`jB1!%(}J7a1+UBqPQ#8_T4>H3(A&v%D=@Gw+5{hYduN&=lGa6JU= zdnEqrIZnO#Yea+U7WCWVJno_UBlT0k;RN5=J8996^lG$67L#N?Hr{m-O@-JB)=DRW z#c~D~R#wDfyS~#>%2+ke7~PmX91@O7DY6XENtJ}R+)m!rZBbMa%^^c!5{wI-RKRjI z;4z?Br0!UcTQ7&s}B`7y&XkRY;?;9b{&`w*2%5=fpzEC<1KI3XAZTu5q<=#yyb)wCj2#c{2*LqD7!18HPnw$%CPd&9 z5L};+Vt^JOm+Z4S7|22ZhMLTm&U9noduA`;Uym=C;;Xv)jjWXsl_VI;@@m6l!DFQ( zr7e=p9EwDaG}Hv0fKHa{nJMtzBZQsbNeZ(qlE`Vk+AF*HSZErT>!@V@S#r3@ZPZm(o%_-RYl$aOb;*dYA9$ zH-Ekd|A*U_$b(S9Y#&_f9>ZR6(Emh09|poIt@KYfvD^Rt^6CF2|K z|7HI-|NU>me*w@AQd-Uc00#NLI#61L>;?e9^ZgGfyndOb6_3B-x#MqfepKB6iUo%O z0;+U~1S=ld@jJ8>W23Pu(I$mnJSs=i4Uaa`j2HccxOt*{JQ(#|ypCRDEJZ9r^$tZ# zhAblyZ;pgKAejmV6iFA5s0rDynZfIReVNVYvXcR%56q_%BvaO4zcM`D-Z**Bvw!vf zuEF(l_}G2vyZyc=)}PAS@p#^9&^|?sOC8zKDqkv-4OB#Wu{<+cNER-e@ap(9uGx5B zaP4@jV-$E=J-QwtIXOP={48Sa(S)`p#KOnt#t8vxTdC|x?E|-j^V~WX&RmuSHV7UB zo|f$Kyf5BidgqEHC7U%U1pOS|Cl#-9(~B`ezykYVq-n_Y6oZ&OczWSgmRGXq7#W?< zHlqjy+wS@q^LSiozVu`KS8xg5V(?Wr{Jr0&t$tL+6^O_in}{VU$>0$nB$$&~jeGg` z_Wy+`W5|79|2h9QG7^i=`}qv98{@w7+`JJSG1F;xLcpq5b&w*GtPVx)2*q-OwQHF; zPlb(zJ+LAWtPnOVlhk05Ypvhv^wl@R|1@OZi8HYC_12=Ousq!3anpN|FlM_!wL(Lt z6|HB_G8cs{jB2PXLJHPOM>@f>FDz2DaXdBz{$+j?YT*0uvhwxWR9#g4I6~NVS^fMi z=XyMIz2PeqW1l6oLOUvhjfr&wH*J}$jz#=iyU)@>X!$1#6#P-S^dF;)xw$zZp4WTT zrU;XnT>r0&N38GWj_uaxUuRu2cmiG?&(nIWYQvIPF3Z35Iw!aNhQptjhlzX%&#`aV zra4D@C0_~9511=N5Q@Ka<|FQ28Za4szJ7q-SUcBvZ-|<7eEB>Fg8sHW82yQj{sL8$ zpiNvXA`_7WLJ6kMRh*=@k5*SNx3ZE%$n_S zbXP$@asunmMk#hm?R76*j>0>#;fFRLI{NZ`bBc3YjW92r=y%E)9X-?AgVtZa3^`i7 z{LoSOR1{@hTw-Ca;<@lik`yrF-yqk~-rsIcS5J(e+vWCrUw7wY*Nx#>fA;d^rtk(g zI0CDa=ZwM^A6z5qdvo`R}{; zoL}wSFS}1~yWHarx5z71t4k#c{4*6rB2_HBqI!=d%9+6+I2kGhl(<;TD&_&cU8O%d zMrErhZNTVNbp;)y$NgruyZn;#L)do*{-ub$QziU?uXvdVOvJ`Gm62>fOE$H*m2H3m znnOXV0j#Z4fsW36hrl$IIFuyzz?-M}sUs@NA}P(_J+Nc@A@maxVfmbteNrmpWehcW znx04oy*L%BHRyI9#1L81BHh44p-g?6NUIF|SWc*~eZzAV-)WB=kLM)1&I%rIkUb$&4oU3ZwoTG`I9$qAs!|Jl z>nOdCGJT>gEfN9$Ap96uxwkaG6Mp*)&oEaf6ukMhBlhdNZOhLJGREwpv)Fxlmx#3X zMagkBNMv=|N@gmZRspn*3XbR*QPe>uT{1&<2DsTKl%=6(Hi1^?kH$npW>o#>S@M^CF1ylq{#CArDg>dGV}OzZMo=r0i;xMs+68b z$+CuRxDNt%V9`GPhUL;a1MqY zyNEMCnV=nYU9woAp{cJ`vc}ar`q$4z6XcwuzWd=9p3n)maCo6iz^qmR)xFZ3jC?l< zVs8+VxbZF9yoV>)C?ByIXc!aDKAC|Jqj~LOX-;lw`#ZP9xd3^MNIv=SC?0@XNrfm> z6h`?XX`pSh3D3}x3pOHjQF~skuvknsbd6vRs$1T=BB|z~keXNGsjY5cng0 zeK%b&+WZM30$rETCaydXIw~Ej0;1=WRs$ZG3MQj+2Y2vDlXGfasqYnAnG`<+ZIzfH z4$UDg4a;C$6jHomQQNH0vF7o>nWpGk4K38L^7*-(0{ft`BF(F3!$uTkGA}HKF=QH? z-ndoLQ9D^u7x1>ob)*8#Uk9lu>vJ?KLllXRt}|YYl-1W`+w4j_);;afWZxtLbpQQhd{8V5WjUG-e#~vKx`wmt9t|siWBX87jMui+=lP zNt(j6|I68k|6}_@0B;)Or=lvo|Kjt{+&j4|is`+?gw0uck9Ln?SL1UR^EX(Oqb2~cx7S{>BwLdU0E_mFsVKVByrNjw59}@Z~X6|CH zU`%fwr3lc@pW@HA*JBO3EH7JbwT9j1EU5JZcAlAYg{@;yh=!l~2Jwt*gEV^rYNdgL z7z0BXLe0ANqjT9?i7>wilsp2R5l+CS>-$KmP+h#NO>>~bSs-LJG}|4P_1c`y!UW$o zIR#(&qY42Ax_Y`VgqYJGSD;^(ls}td+1%_a)a-c&Ez6^?!#r~Pu!84t$W5p3&pRAg z-9?oo-Kq}_SJ6U1s3Z4TUB3H|a#mN3el@m+zr#aM+k&tZ&mkZwB(5REG(l9Et!ZiN zy%r7KTibs>V#enAkiY9A2khNu&@%dcj_T|<%?#qVY_qYm$RNGFaNOe(qZjK598JtFgwa!4oITs4KE7!9q z@IFiMe`+!K&S0#`Bh-!4TLJIoCH$BJMf^OC6LcKd+~ij^F;N>}@k^Io7*6khDdfjb z@v2l#B^D;ee)rBwv)weU}wfi>F1eM$QQ5w zo|gXZ;!HinjI9x?@V5sLv_He!=WV&~uJ(OGN>EY`Q)^6s83iyCNZ=MHwoy~_0bg#T2iSV`sdw+*i3NZqqhe7G z>r(i8Dvt4enVL8pdqeE@d0&6-;XZFYw0&}Jj~*V99eHIiQSEsONZ_gwOCg+9d8}1h zkq&XE1;>*Up;hw)Z+TL>nGzQIVtdJQ5pyPOIjnHH`Q5vMM#H0*{)QO%Ym7e+-RK-| zcD=@-;%)3#a{o~Qu`A!Q<9%@PkXu9OF=f5l?3<`vB|!~$>q9uhN=2Tag8tdEp$n*< zJ?AW`ukt&uM@u7rrHH#4iX{-E%L(#B4eQs|Ama-owf`A1$_{fL3A0ySojTC0ji&vJ z&a%bLu;`GVbffw6*#a{w=A0lJAg4x)c)cY!u{!wAEt#Q$wfjm?I=kfrdXLUc>!_LS zl3qJ#S*4I^{t~EIwoxL8m7h#Da2z0=MmbK`7rO~yt&yzx)W~+pg5aUDinx}x*^h@= z=A{lc%F2{BU};W;gzW| zASctb-3}jieWq?rDMmFR>>w&Z`Q4Hdnmb*yUHk2LpCP^__s7#s)h-*`raqr&{gOA) zO-#s8u3X4+-8vqAHknZToP(wz{DL8TJ7mRzE=a&7XWDrb0VIf@+oA=QQH5qYjWMY_ zawAc6>^QCHeZP4D;}1&ab~0Bv#7ndbR2U9kagIFOwtmZ@j~Z)*-nf-oJzR-0H?xeBCyc6&Cnf3vYN;M=fFymqXrLFV7J{fTRL}!@ZVeQOXxkyPGRnoxqP-ub_xCj8RnL7lqMV}QxlEJH zZrbc{{tt$ziajYCkK6r5E}0UP9iKbsuYK0M<3LEl!;55g4cYvU^aLK~i1+1`X&(DNVUejC zs0CFJ@Jp2R%(+B2=;)xl9lgL3Ozwz)R^qz=ZQSg&3jnSZV>1RRA-saG~6fq~&wS-wb!ko_ZMA1X-xz}m6+KM%?s~}6 zSXbzI*uY>xD}<=HcB}ZVRM=C3w-Y-+CnSLZ109 zcAcZ|VD#eKme`^#E3}ymh^lNquKsX%%33vM(UBRr{bD6{a-sAy?B_+;aU5U=uI@hA zHF%>gqq~D2Qm^xbO}+k=SU@RbhJ2nuc_s}(QlmjHPJZCQ*LOaM!Oe5miE2gHtcg|? zP{_>2h{6kLyAY-s*8n0=V`#9XWk`&*~ui zMbj|!quC@F84N{CA6(bi^P~zDsmj^WF(V}ff{~ss`0|#NGiEmS0>cDfoI8+Aq?Fl| znIr~TI&PA%py!!^rOc@sEM?bi&&H_w5W}y1B1e zg!9StoQ}@%PM2-w+E~1P@*WGUR*0OJp=u>{l6rGODy2hd>W{aBe)`efS)EIZ%Ypd}A0-qn%!$Ur zTgEud8Ayz*V7DokFavWJJ4bwnKZ2~dBmS3cyCF}!vJ1>A1Qn!=mMp1de#cXAZcvy7 zjSN&b)$XO%)sxCxO9HQKP+6>H$71$!?q`#xjV^ISQd|!SU__D6bCPk3wa3KlNU2SC z7>q#sgp)9EC|_CSSQ`MN2SpXVem#;c8zoD2bDCO4 zbxj=pAA?CF)fM;}vk)sB!pI zmvVMJpC54sOGa3#O20_uR!PE`kFXqln!BECcpWaG6s}!wJt3cPGVymZm%`{WsqTTe z4F>AS7(^1A_Q{S;xiJh=Ay?_f<$|rdWwUl=W#vC=!QXgzaZf_EW%f{cq`%(Tt)gpg^KksLG}4L#U)Vll83WgUP0^PYE8@xLJdd zB87WIH?NT&y#^ga)L;&$g-{Y@J3wPEQsgLXtQse2hNI`jnVj!TSmD;sb= z(Kl?HBa$Jl=Q3vs*VM6|*VI4$2u*8kY3KZ#_gUhU?b(a%I6=JFbe@>jW3@Cm z2+3EeW@6`%=u#Jj8cS(Hhj0{YQX96}?8*oWy@i)K-jy!O$Xu7Gub*6_?8yj=XOY6Q z%1kt;_Kw3V;OL5)fQ4P9BaT63v6enaw^^0emdvDZdH0>CGkaep3%ospf1|6as;#fj zyiXr>GBXN1!JN+XIb2;q@crja&?bv1sE?2R`s%h=^&75qm;&lEAas}nc0$&rT~DT4 zu}hbHLM8Lkb)Ig3>YwnyOfVlOfOM0383#-3B8(ZFuoB7Dv&Y-Z zN;>xo4vjGMWv^5q6`bOHvOvl_qq3sW&gvHLrP zCR*b>BsWg^XVM+!KrC5==NE1qs_S~OwAkX=tbNOACA(&uPlCRGZ!E6;Fwck~6A=NN z)B>6jJ&trf8;*F*&e7c+iENBnJzEJ*>S$szCS&fwMF}ihrgbHUy5QE|${q`!pMQAR z*_X8R^{4gW0sFHBqVL7Ya~~fc_a>x|Cz(0bV~H2PlrO`&xb`Re!P~bGib}KvNRuPU zq)*+w;R+eL?DG1EC}I!bF(rStpP%aryu(eK7b_3uuaq=(OPE+Cl&@uBZL~$%b;!3Y zlrEgjp1D}I@HTGPYUdyX3lp-0F@l-a*1CjROy`-{c17Tm(bZHpW8lydo=bjyKU5`A z_9)k^beNeu(axMVYgawAJN0(^zW-(Hyb*Et@><{EV7{$hY_p%5nVH$~db#O{UM7U^ z+C8q*?&A1SeS8m`G2}xek2-;jrqMQvBZ7kNkFP~Tc>!j)X8S!LFEjRtmFS8~S-P(; zwp<_Y=F~{O1hGY)xwk*OBP-8S#-h{<%Osa@VJ4NPk|~5Agm4kmE?+NLw(wl~eV;Fz z`9B`2D*D>ExizcPr|qDZouw({@VNTf+1XtzmaA5*e@|twS`?B> z#(pF_E97uF?kfTvN9KwI8A9KncRZf4i!2(KyOrBp$rX4Mt;hYel4;5Rq|hvRh32dE zJ%c7v9rrKXvtcrj1pIxna>LIS4f{nFd*Dt~!uw}Ws&qm&?Uc8)WhAo{b zA)TlndGJ!fF(L5z@}ZgsUSA}6a)qwYvkZM}kn8og{CIC5Z091ogHKTKd(u@S(D(gm zi8f_io>C#3i-VI>gL(MFCDm-?_~hiI2Uh>>AIJDn)x=O{wT?mpfdw5@o(R3ILJ!`f z#P}mFHdqYKNd^Lu6Ec`QAk$f2 z!#bzbibqgz2V(v@v18b$%Ae2mDgyN%&3sOWqq?bP{~Wubek%cB@gE!A^ZwbZp|-X* zW|PT{B(m2E)w1gDw$mko=PlQj9QMoaEbX?3C$ExU^ZI=Z&Su;ZDB4>X)?3>r9nudQ zarlCM7uWBNYYC*1+d#hOOMCzKe+jkl>e4@-%wVmu24Ujo*K7BAb@F#}Tc%BsdCvVu zU4_uyraqN$5b7=ysWGW-ET;93(9}F z#y2BBk=F!$%SHRum=bPb+Q|6#QJ6JH7Ok_hGl3viwZIpmQfyiWxIehkzjOZozw-Y^ z|AqBm?Ck%0{-1-DoK&4!qXq^UQ781m-5voZ4^qa?OSlHr2N^$LPO509UJ7& z&4bx`({DAJbpXam!r_1WCv<6IV?*zEnj}T;faQ6*@`Bxl2&Y+Wm06S*4zwo;K_>W8y|B z)Q0&wt41?y6j3!o<2aAu7^ZkOGXBYkbCfL(rPf98$%{M$aIoPVPvL^fxEwkSEi>-Pv`yRMJ`rUI9qx8_I37hJxC7I zj0Rd#9HP=T_){#M_k(La28vX^Uz1m;0=e_##^zzYLlz*S0}11(D}rXlCh1nt$H6Gh zJzghLA{I9p1K#rz)8IxOL3B+hs5M0fS5fw$->Sux;B^xEhi4hPzTd5h%&L%~Tbkj|D?%oi? zuBkj7kyJtKZcB?i#X$5mXG`<%GOR zt{jxs2@m;JWy$=>!Q3dS9skjhb>_l(!v%uT{{?uCPc^t`S`V2c{~sk#8_CXg+`< z9FP%w%e`Y2*2*Oqhr7}prQH>)QXbvf4h)gUG7%oHg%ZL`q78}hwf&i`S1Ze_5K!dZ z&!`v^LP^1kb8rdt95WzN0#k`MqRWRzVsesbz%ll0iwd2XVSS}Z`Z4Q>-$f^q3TjGB zPYwkoJ?I>Q5RgOOyQen?IU*S}LdgSDM1SSF{n@}ndHpZFZ z(B$%21(w(fhCn!?AD`P{4=;rNfy{r1p}x8_9NBCr{n=mbVCA1^@s1Kz6VPh zX7>Ir$+kAhXzET4LU*B!ItO!sjYoW$cF0KTKcaDUQu49S!4MGGTGsh?RVu}x?Z@YX zg3JY!1;SbLM+zgDLS8BpFJcEh(5TxTY8vQ)^$C^3X+gNWLulE>lWhwuuls{BJ^kUy zPduG*!GW<&yC)B2fkhH0LtX*RGJ!QZXWm?JkO!keCz^*?pBy;!by1CKdc?!kgMc-J zCUL3~yGrNdSz7jg`vdJ@s`&7wkWOsr$~%))o+8`zq92U?yZIPeI(Fm)5&;KU>$ml)>* zc59fh5SFa)Y^1Y;fPE;I-xk8bplW!?m31Gw!byQmFrL*tVq)mlwojy}yMdp#*E2Ea ztw)8|G=6g7B1DU;7tfIaT1E~{yvA$RkGi5mU%VH$vau3SC3&b5hAL=HBJLTT zdO%kvMm$nzFQM12O2l4{l63Z?-Ux9rcFJHMx*m$!_}_?faTC@VZ#3QCmE}adKixG5N&2OqO(S|9sUk(J{LV_!M z?v2CKj-5k@4Sx+OFS`j5u*pIG5HjM0>Yjpdq7f?}q7)_U$2APWxG9srmZu8({D4 zXlWlCiW{Y=bIvpR)~$zKD#14IA`9=(K%Gs5)o%Rz7afEboOzHs83R<4y9mm=x~}|U zZh7q2E}~ojgpKaVb36h zUiR3Yb_vJ1hIV+BLd)Fo+-SxgM$Mr5Kqn);jiSQ2o__yDPdE7RF46r(~ zaJQNGAK737Ge|fxxNVH#C?fR*NDxnFyeLGm2kyvoqFsxfU`YbrcS;`lc;|}OIEebJ z%k#USabn&26k~N%AVEM+E*lKSb5d{{iME}zQy3%b%3`VY6VG^<&qX`bUY>eT6%o(g zq{=*cE3H|j{6Ii}+iZvwvq;#68<6b{eHo*Gpl!$uHvzzfLYd5mvZMOh6XnIJ=JR3Tz&OkG3iiw8$X zM;(sJM+dPj08LDWYHIHSh#ii~POwm5ikD@4TuH}}QD`WW|8<1p{)+UNb#X;N7vVc4F+UQtu3lJgj>Nh$5U zAgy)@#<%K-6SP82KZb54w_{Nezxm9M5%vwfzZNt*ToI%zfeXRx)OR-U6z8CDtWwDF zPi6_7ph6&wAE%-&C{8Hp|# zNG`2SH51rK!HMao=Ccfzzp$#XAbRnknCAL2GKj#a`^!}2yM>`>5IWP zir^JnYrTb6qk6?MF0^BHWceu&o81Du3A|YKN00@bF38q%I7W|Al*=Wp2$#Gdb8fff ze6TUv4qNNE?UmJ7$G3W!#Mx(B>PYSd$Hc`664RP_KG{sUzFvyM)J> zQ$^C*6YvUnn#$}kzI(xa<`4IiFv^PUqmEEk!p98Es?Du&Zf#rrb&>=_);l*~SNtw` zG3uzMDyCX-RXNamL0o_{iHeGfQ#+dgwGbvcQE=w)Y+2Cwc#H{H&z>2x%L0B!$jxpj zn0mJF!}(0Fhhr3C7}j1c&X?;45cx0siP6gZ87Wn2Q#tJ?KHSR6Cx=U~*d_v|hHD_- z>mski$D?3yc{w#0j!NG}xf+dG;H=?34HOUtqF7V{ zCZDL1T;3G1fgSxyE&z7ra_1srmXRTZtt_SHYAYFBs&TXbZvfdH1*Dh6Xw=d>ca1m1 zJuI%rEz4{fKvE&Q-#ga>MlzN!T)PS^9q#iA#%mcyn1X@6g{V3i#bX*>4cJFFUJY-V^t7a0V zQh1n{2&M8GlQ6Ssa}CF+e|CU}%Gjdqac`oyU!~X$3i)&mt{h8%s;#e!>HYlf%ZUks zRvyL#hb*2De%E#Fi)b;OjVye8d~C=9nuO^p%m;#_iTB4Lh$h@yd9(XBejxV=6 zqik`;?@2gG-Q&l{$0>ef?z?@!_jC1be<-XSV^g6nLli(P;E^ga7m_<16ig(S8BgYE z=Q(9{3EUf^R~2s4dB*oTceCUB-sC-8FW&GvmwVIuTDVb%K4P=US|d~{VMV+cTcmyC z62seb`g+XE(-S)?DoW+@)nY&7_STUN2Y$?70k*D%9fQMS6*wk8QBk-w)-44}dfn!j zh2v1B`L~+C#o-gi?Rq;#y#koj@YyD%*Y1Jrh$q{PVOvQwQw)n{7cbR76zdU3`=OEX zvU7LO$a-rrGCaJ!X~PlfQ=*cvgZm3PnWPtoSZ!73xC$KEY7YRk<%iXT^fCj{?Qqzm z!z}h+*6v9tBL5cp6_t)wD-uBR2EG^cu)dxtI{acy@qyj^ra_MgH(agP5%jZ3`$Heo zR~YM!k5E6^E>0jHd`Mqtpql7KcngL#f%5p|#K179=+SEnIgzT4Dijdf1$&M;*fadD z*!3_k>pvuR_r1qpoO#I*bf>+0pNAFDB+;&bEDyAV)xt6KNC1%)4bX1`$oZv&n`i7= zx%GAECERhqN4cq^2~sY@^5wbBna@@4a|Dkm)F%~FMLvFNhoJ8>MP~;Vd=_vb3N5$$ z?uB>$hSw3RtI-SyGDYn5<}&d2H8VSMELl`!F2#a3nf!rqvIFo5rG0C03@cKvh;g!| zX5QV?TQ-$j$M4YNG)DG4!|91w+tR&l#78fOwXTEjd06-#?ot( zWA=nGQPC_%r;bYCMLzsHm5xs%RJM?D#4u|fKaGvF zpP`$gb%NG5^IfR41lQGpf~zg>7}xEj zc)-eeZ9TQ+m0z{vW2v;`Ra<4hwvyRp<$e#lVvlJ5_h0x)E93=5Va3*h#~s+#U?M zNyp}JA)(CJHV{R9UQ_oE5ccdyjN3T+?PgS+7Ax&I%Q4Gy1PBSd0;#AGY-0(u@Q_4~ zyIutSZsBthu@bbyh7%nwg~tlIEe%h1i_Qvw?FxS4YDe9=4RlRXyfScr%=wY7u>!3t zpX%Rp>O00p=Pv7!;ioMf32RMOto*r3(Ycpni8YPc55$|0;9loBEGVYsJLF%`K5?~j z&)38k?^jt;-R}A@SU+3cZ4FQj`GMF(5iFQpzY#~214N6#Q3H~3KBY{QxuJX!{fdC( z_(ZO?)yUhI$iIJ`=PT^Ph6Sp+qrvnVmOglpJRW`OZlOqjM$l=D`U2PB3UFOrR3c2d zgJ{`M(HIgML5sCw$eVysM(zU_M{)X16OZ#KXMx|TAvEnC!S-Mx;wp{QB6$X zr38g)(t00(mr%_eDmaPgLIKV(ek5~eC#Mr2ru0Ze2SjK=;lWU~^EMaUm3)@9l+-_2 z|7q`S!zg-#Vw=i1^gDeHTcTL4Oye$keK1Jd7gU$w@J;FH^)3^S7Fp z^|7z5lS81qL8t9hK$!YK7!(Md1a_xVFLKb9BJL~#Q3`UPer8b?RkuawQ4xAO6ko41 zj5RpO;z|HSNE1O^Q6Eh5A0;6M;85hOREY#<;^{DVsY!$~RHJSS6fYzj16CX;O2KRt z>)m<)lLgai7XB><;G{I5{aSac5;>whifd(7TX?{1ah{ndkPot6*CY@?5#nRII^r-v zI+66K2b@8@(QD@G=#~w~FM?8IEP?G;0m)D!J8oAJOQdBRy$g;Ado976d0-(^G5LMe zAjwUjSx{{*7_dBVXf_#=!=0^)z{PjP=2nBRX>bqT;Vt;X0j~^D!QN3xwl7`EglQ)C zb1O4oEK5L`NQv|=*MO?mS$=bXDuBPg03(3-C%WN?T0d1I8Y8BZ^N=s-jM31v3+o`h zv@~PDe9$N+w>SWT)Wo(u$Z-+Wy=(7ow>WlM1{ed8$wnALn{Oy21%e1wvUV4tB85`# zlkBLl%7l`y=Pp0l5F!ERc@6|NF(5O2@2WjL^TXSs_okLDJ4^F{b1tw^Hi-m?=9sSD za%GqDQkS+<4?}<~?xGn{1BUjIVdxS? z`wt>Aky1kzY+cwg{u3S8@#P+zd zy$Vg4B^pVoBv^>Qx67%Mgkc*dZ{KhC0P+V< zVk~T_Pnzj2y|?z8IhN2fkvg3gPDgy9p(&WcJ*-g3J$Gn?R*{H|qO_T-^{U|`Ir(xyl4r>f_*OLa>PU(+WT6qJFt80BdPU2! z1{hN{Qlptr-Hsimn}iZi@(f}ld>9Ivg1LTZMmsCm1jDyDxN4wbZ=1NEEVIivzuX*UQ42o*cD+17ki(q5dRjLVN0Tid$u&QAhr{sOi9t6ZtBlU5Wesyy7h)Xy zvJyxJABXMp&QOT1 z)TPqX+qfq)NO65YB}JJ9$A#3gnD@;v2MdEGdIG_H6wmAmOHy|tk85Qb;CpV zNi!$F$cCgau|C}kATk{t+Ax04$F)P(>lP|I$H;2$%a!7ZS#2+B_IorZo4QaR(HLe$ zvOtPpi~H2D#8f|kC&T1J#Po^_jv3YBOhUZB=0es^Du~;YtmNTn;fAnJn}JL9VR&-z zhe7`!!xpgc9&60c886n}xK^7h{99HT#8zn>0ztN$>{w8xkxq^yzIW7?o)?1}{0h#C z?ByZsjxzGOA|b!(0Xe-ngA|P}k?do;V?~PcTS{FlgU^4&1vs|zBS_|D8(o`$w!dFB z@>7!E1!`!_H#h5f1H0r)}1=72oxy~5K z&~tL+zKHaX!xWbO6*@z-O`%ni3IeFc%&Uqg`=2&E-=xg6qU_gE=2f;KAh}2!$C0~> zv0Ek3O6Nj%xe}sOXz$)R=!R?WRh(RQXI}vf1Hogsp{IB<)KcE7Bq>vjWaC~Mul2HI z!Yr*=CLL!+hDA|)6ZTyiQ| z{WWsYoD3vc#K1?WaIygN!%A%gm?*p#3*GueSg9 zj-YP$W7|tx%Z}gsx2)fe_>`coAX=xd&FYBK#F4E9R(gaOG6dZZy82!zt6dhgY?kvh z=(_s$=?t#umeq0ABq}r`*~4rxZRNM<*;;myBVvR`wF`$u-LC?~uY{K>_s-{?8Es$( z=aK;r50;P9mP5c?DL2NwQjI4Rh`>>Ks!$>e0=;+s&kQC*^nA@#(tpM_vz3{YfslpG z#MBh3A33;xSjgnOkF`}j!<)yrlm7Ck^!wWTpS&vwTq8N0x;l*Xo{YxK+QlD9+gQQY zC1QadO~n8;`vGAh=0I%?hNrt@*etOLOLHeC!vdOpxz)rv877s`phoC9k$t}1wcu5A zhWPZN&gM8O^*qw(flU3G2~Yv&5y`Lg@yRshp^;FD2J=eB3#-beuko#JJ*1bL0jiiW zj&qR62z0R&dCSFQJGzqN;MwsdW$m2?X?Q@A4C~D;7Ov1*osBeotE*JwkZJYA?N4@t zRy3IB>V2S%@AK~Ta!2_t@qSQRN-yQUNNuv6xfHI51Cb2~9B5yj?V2{YLMykjmmk7x5z?|l2m#4EbX5eL_aT(Xa4$-qOh0@YNwHgtgL|wWp~V!04GB zNX!<30fr#AMxRI{s2jcI!F$AY3!z4|t)MXQ%46VS7uD<9k=!z1T zdvU92;CZtVjPTUKd#(L{C_dt?V<>=Ks zgMAE+!*@jZ*a8+GMvQdsY#(&yfCq4#TsiIVQeh55CL1wb^whava8sTBmybbbI1iI! z_1o$l09Qb$zrr6n9dc6m>G5X5o17%*fPnLR-m6wnt!2pF1Dz34h$1!{W7YT{Diw70 zBQUywkP3sFX~Vm9mU0B|9c3u2X_q=U#W2D3Hiz)IGv}BxhISRl02vqC84NzU>5OXo zl@}FcKEz~(E6-9=WCXZ_x{+8Tr#r^l#>NmYZ>$B_#DLZR!OmL+xBWHQqLP`Jnc0q+ znc0q+8DnO)<(Qe7DUO+$nPQF|Gcz;8&Hp>!+*9XHoyR*h5A(K5Dyg?t@7~>Osr%R6 zE}N-B`%rw6oUVz{?a@x&cKQCe8D}~YTd;awC}}$FN*Qdf0LhA0!F{Q9rXdhQyU0v9U6_C@wha-zx$ozJLfS`)!9CoM1Zj z4`{j?{zA?)z0UI&$>>%@=bdg$qA%@AbH7O_BJ|E*WDtS+)wdcN@@m}y8aHDc%-xbp z)FVhbRaAMfOiWTsbp|s{2_|5)=+V`y-}S@n`!@!-OwL0mF9MCHSSZRjagMT`>zE+V2u0SIgmk(rH;jYQNH4QYz@Q(o6aRIh@AE3=xzl+AI=`lInugxvB1adS?9&ENt?Qy+r%3j}sYq;z?vU`$Lj9C(wl>9ct{SGZlC$;zw zYBrd^#}ttkilDpNNpV%tS^}rhBa1A`x zb=E%UR~_%RP&Ph?89o0nX0iO4oK>Ps^bbbN@+fSwpub@+JNTvA7}{dAyOO97AtIYvRmGQzfwr^b> zZvm%Gf`U`n50$)wFsg&qtezQ#10^^=`}FJ=8qAQgW$a0tPE95!SV;L|0|5|)*QIze3vHav`oe=DwPEq9{ungf5J2ZQZhbO*W3vw z#qu1KOT^|);4h~?=Z~7TJll zuU0e<5Lq}P=bu$)wk%0|k*T$U!;&l9zW4Vy1O$C~{wMfPPeQ)P=<__h2|@efB;#67 z-hqOA5}ST!^P2-wLiY-dVSl#DvAZB_q*k@`BIBjaC-zcgl*Tc8n2n=@Q&^;|`}!QU zV{d(wa$}VQYHk4;6`L25&*b-bLO!Oa+z%}@{y)Y?R2}-!XQ^Q__X8E=`6?4_FKIhe$%uH zn~#r4Fr8l?``#nBxbD#UvQYI~3 zr+yv*PfCJUa@D)huq~C4tyRKSv8MVV;H+g&w*H&uuefTt^ah_bowfvq?+3_^C&x&Q z^6@`teIyg((@%@1HM(72VFX{GxzG|!j+0ebuT@KP^B;%wRMao>XhZntj}8eg2~NAT zOcKnDSw_xG{Lik(o;VI&=?Ii0!z{iE0i_&NBLAqQ-aHCX@$)0Lcr%ZiWfe@@p_LBL z5ulMLBM7}G7!K3>zawSm#%+lXwBXXHf*@**i;XX~b-Ej7f_}rTBwP^=DaG&p{*7TW zgf^PaeGw&3j0;H-$&hEh_=ut#y&Pxd3>#+39ldAP3QkK z*aIli=(R9|6aq_aXKBO-i{0TR$+$3DU*QydJ#5+GXjzYVWfV4WPK!*#9W~5&`A(dgmEPkiePqm(Un4pO2T6-(LxDKHZWEUftIvtz&6>Y$K zt=4GMob z;MtQX*DTD~hM*{id+Ymt4kBL%^2NEx_dFtY)LQ;=Z`27=j*TLsC5crXRqMMCgeDRU z9m&fLLh=8a1fqau?N~le8uT--|G18>e@CBxuj%bJ5QbE%ck_Fl6J7OMb2@dx>vMardDgK8e+#W3 z=iU*e*9m?5r@5i9u&G?t#YUrBrN4N2bkc(GI`wzpaF`7a9syK--ORC3y_oU**yyBc zma1=dcEn|z=`*FWSN>B%puGq=h0O6}ayZ(HXx->XmY59d3~FsLs`;^&W<1-JO% z9N3f0dnJr8Cl8u5EQu7uXbG1YZu|=YNuwWOJ#Wg7(1(ayr8OYg*bBRw>yw}s$iUY{ zZHj@27QEF(WFW?V9Ts9YU5DES8I(dBH{(?T__~1|OfFmmUuv z7njREd45xuX<_1fpH2KETRN^Es*Hpb*rLBNWa4&nDHRa>6@A~6tSdy~Y0fZR+moa?mCXGcVcmyBCTYj-;hH>}cOil3nC zsVuvVmIzx2v$r*Z&su^4*XrFffnZy@3{E2uLkOz(-hB*b%g-S$e-493TPjixuT+gQs?)t@!A@fhkE zHkp*PCT6`4-P?9G-#uzm;vVBR;0$P;a`Vo{Ale$EuNnd1(|e&L!ysy3*Aao}mGxoj znY5>U@88X?wnT1Z9cv-F-s(HA`r+p)ER~L{LH^~v?QZ8}IehNQUOJM&p^?vXjeKVBAYQ}oW8PrW?kxXI;1M#bB%@G<5L9K<&sj;l70>C!HQ&Z zEyTxP>ZfY%17I-+B1Rjz$)qczgV{EHX^6!8T|plN-APs?6*e}CIzY*O#{mnAOIFkU zQhs+lFXjE`>PrppX*Rw)f(jmK#Y;JyYPu!gZ9pEyhCRX8^ATeM{=a+x!O8r6fifS#@SCWx zq3*d&*;}I=_4A=&C*$r&OiG>U@Xxy0o0rp?iJ1a1#CU8&->;H!c#QA|jDW_BjKsQi@v-6W zG4&P;-xhLya7r4(|LaID~+0;u1lyOel^17 zTFt8Y3;IV#;|pp0gFulK?tvJ`h*UHV>9v#79?!PoPxQIr>wz%jiMpbZ=z&tjoJ2Ou zsnM2A|5MfO=L7uUR}zSNl9-<$7?rSaR_nT(s1!6}{5U&i5Tv{jIJs8e85(oLUsEk` zyn^c*%Y>%R4Dz_d1<#UCEa17gME$B_-O9}ltJOSRBf+FJpgX_ZS?_KwH(2h! zJ>N<)>9uZ+S8Yz`@QwJbA#0iQqXSgFF8Ut!{n6Q|cghU7dzoT&XVj=8oYH(}1RxJqD)(C<=T^}sbMzmM0ml=vb)|2OB-DA@$LM}K4jth?g zRw|YtAt)2=H>66HaN4i6Y`t$_{{(66_ho&g(#2p>YV+bfw>T6cLB5T>5MteR zVgo}MM^?NUZN;M3>Dm57TGya~i;PhvW$z*s+|L+@xxh?edtKIA~EKBmsPi#H3s*IbcMY(=8h*oIf^c* z9P(pnI;$sS@QOYJci+~mE@9Ako-)Rhr&vZpy7ZKBJOKr^wH^S1I}PCRfSTP1p(Y`k z($tG)R0Q%CK9r6V9vLMfqa_7aE_&5MubsPdLzx%#_nXBux7zA4w<;kfMeP+c`hqGc zKC5mysCpH^&qR2;hK(7!D}~S4I8UABmCznu@KZtQK2Ag^-0WsYdD=HeccVNV8{oZI zf*l8&U%*KIPy#yK)s3th-+>dXjL$QDVxI^P9aJQY930=gn)Pp*BaSaQ?pSOsH_?= zSKn$dCZIiGZBsACpqOp$!*a>&@1PQGIWv3N@tSYqAnLw(au?%a%t>13C<5|7qdW*J z%a1F2YGMHA5kHVF1S7B+X^Dn}>{!ZbTv}BZ`3h)w5e|CX@R?S6yyqLERCGFe7-hkK zskOK4RRD6qg(vp+i_+52^wRpbu=(odY*p)b6t}i&ZTP?19sjAx6PJ`6|C<48&(V6t zN#c#T6dK2keyDS<9zvGgy6?=}p~vrBzj=@CFd!EB_D9sRMo#3+NRa@TQvuy+Ker>$ zsbvR35r=Y*pI=|)lmzu$dBj?V$?5RM~tu%;X0ye;n-Zw}s5W zCCCKVi!Q5esmUsp)mCDl9c%fehmg29n#(S{qfRDcO? z>o!3g5xrXeO(#y3B?$I`GB5VJPn9fOkn%?oQc`TD>ffbW1?|_k2{?By00KnFNE$pu z*SEJxmU(^}8Z`!X)Ikx~bm6}lk#w&i^RB9Nzz%-=(if8(o5hlYd)}K8oHCuEG+Jr2 zo@=yL6~zR#>;j(8iNckI%H1|%z$m!6ar8LhdM#}NFTNs4Yinn8nEu8ze#oSQ4Udfc zcB8%W{g!~oY0F5-({{gQ`w~VXww8Jm=&?H2;o+dlP(?vWxt@SDiUb1_pPr7>g0zGg z$R-iAPL#Vf4|b18OixKdN>vab`69Z0{_b|XT5;&a`DO<}!g&T`iH$RaEV|O-5T}L- zDIRC%LOS@zPXn2E_FST$ZJK}J<_yhf9&pwy!6|qQj@>sR3p*1tXqNTq4L6}8&a_OJ zhYifSJL>qGD0imx{$`C|zZ&h=b-=*Efk*Q!aOR4NNK^QJj5>{1?O}CC!q|Vm*C60- zR_ZzDW%mc*ZwTxLT@Nh+eJhhed&PUt3<0iR8Axrt&u%PpJj}0mhIV*2JH1>0E^2l! zw?qQo(iIw2Pm`7~Bg4aquRl`Rzx^KVn!*__1lK>>q-$h$O{&|Gb{+dIpf z8lBAIau_RDuNXD=;4!aM0C&A1#1}k;rBBoci%^UtTe=1sUcqjnnd~P0J(Ntm2bwD| zvwXJ*u?Crn@%kjPUt_h0gJZ z*M2PNh)1&eZ9kCO64W?g!F5Crm(9`bjmyg}?h!MxKOFNJPaM!`J%pBjzZFVBF}V4V z+m9tYMYp!x0!?l-0`1#Zx;L01bzL_;sq8EN%U3jnje`@FSxZOfTTyQm1YH}WK?>~i z+sA9qLZ?uPB`D2l5gQ1zXBFuyS)q4+5WZ{)ZB34D>;CXhD(uDf?Qi+!9#kx{7e&iv z`A%I^as>ecwXEz&)!QBke1KBqtxYiAL?$tOE-R~-xBN)Q!166?K%q`h?KdBPMW^)L z=^;C~Z7f4gOiU)B9FmY7L~hq*DBeLwMA>eNBvCC@Y)S(Duj&!1<9~UpoDwu5ea%uA z!aR(X2=(1yB^&l*U+Y&C1ci`L9_KZM>}_q_+B{SWQ?VOHk@zL=1T`GODZmc4{E}PS3A!FF1KSo!E1|i zoBMgB_UY@x3DY`nvnF(h?B&I}FWjHj!~G2b5&$V>^hcY^VP@6iVwJA`2Z3l5MEdTBRBQ&JD_}OSc@Tv=$eaQ!8%? ziZd})0lZlKc6hE`BA@Fqf55Yjc2y%W~0H z`{%QQn26`K3fN(27N`B5K2TJt55tAX!62A_5?qzhWb>vuoXA^`J79|YHX@f;WhTDe zU-HbO+6noQHS}+uNIPLjL7NQtKYknLFQXo6hbX0Iqj8t{BBAvPU73tL-njn$#l$eA z&UCb>eLN(WFQzzA zNUqmt5K|`L{|960E)Do{bgTtND@+C5 zazfN8FP1X?%f~;=v)l}Z=bJ&~ueteRccmuDr(X_wyF?e}2&S`vOscbK75@R+HqyV0 zJf44%B-@Dd{O}-_vKW$7>Pg4Qqw$UuADy*i1Fvj@`kg4DjfZ&36R!pxX+F|?ej;B+ z31R8Ej=9~i>qz^U$)XDfKilUsawN_*XbPY8ZI%3A3c!QMYgWM+I(73Kv+s@W{11Qr z&!kZ$&S7zhv|)c3>Q=UItxRpKwe+!UHokC z!IP7bw@%}v=3p`vc`1{?!_;n9{IbCRALzXcy;{1+eEk|@Njc?f(@eep=#pr8`LB0< zt~`SNB?EzjedOL4X1*3kS^#l${-?qF{}=t&?7vR`Wo7%%{oib?|D*r@chP^1{@wqr z0~=4U;PtV2dU2eQle4}orgQ$S2~G3}W~WwyL5%=58CHfT4P6YAsq~CBWr7q*kpNAa znMN@m%|w*BZns!^JjF;)!$Nb@brT8WV<0Le%0;rOSD#nZd3t6-nlcp7-wk$bD9P@!KeR!Ds9KJbt9# zvWHG!w{SfFw1#W9&4fU8j#IFCf}Knv4I?Qc+nOY>R3j1$GZ7Axg5t~7n`C}2GKD~q zjKC@huMQJO?pp?*zs~`qRIkwcM_`n=mM%qazn@t2Xtr1`fh}v8HaA?LU{+73?*sBYcTKYzUbQ^kA~A_q-Hy-%In0 zUQtBp%HhSRg81WHOGKMWSQ%4g)pYbIgs#MtY{Z7&(>C7l!$4wPxDd=&4)0@@HRtg+ zoSNh77A3FVK4l#>Vd9p7G+C7O=T;$@AP5l%(F&^)Okv|+W_qMgsOFWZbKj-AEpJ-C zjM>5Hh|It>wThQKdu3*274fn|=v<4cmj$H->~QrAig%(yz~~vaA5VKAd0<>j$ephD z*I5}Eq2D{4QGcbmGQ$-{xrz+&2fw|)#-X4L3Ki#6s)Eax0sO@H4vCaNuo{TQlRRcN zTF(}o6^>Gsp@v8{^((vJcz(Y4J)X|^D(3oR4)M>&5OFQ|`&ZQ7ijOPe&xJ4dJQqS{ z3?1=7-pGg!KlGFm0&gR|5i3LM7I?3G_P}dZNGYHQSc5i2_{U) zwhZ&lw9#<6$krZzavBznU2B%Xv0e8YSuZ;HKAi}?FKKGw8+-u*9NrI!*Iiul_I*{p zzl$nyAvzFIEoWG68GzHlY@O8t_?06uD8S&qR+y6j;O=xNOozDWD5Df;{i#c45v+nu z8%!qygQK&^!9?J;sE0?aos3a;q1g|;S`4l&xi(;Zw{0jveL~I?rS|LbW9t^Zhf(_M z?Cj#Wm4JQ>^@?FOHb*GLD{IrWQeku7tgC{|QynksYMTpH*?JN*6LvCavYR#nb0ab$ zEE5xx@8zKoR$JCJ?pNh}{+CJe{VNcSL7yiI9tJ{tSc25slWc^zEBu`y1YBZn#9Q?0 z@ms1m!5DZWiuQ{7>b)API1O9o@Y56W^jjDjq>^|`@m7xAT zSUJHRlbtNn1u|-HbY>l%LEM$LxEl*t`4T4Rd>ZD`+!Y7Vv0xbAH@YM-feu@{mGuh&TZa~w z*7n|^zSBjb4#NQ%tGRF6N-5npjmYf8gnk@?|g7 z$?^FBcZ1p)jj$LZ#?bBc%$&RJZyA-J*v(1<%Tq!Wh0|hm^gJT5j{%Q;_%*97#uGxi zgiP8zX(+cmSOeQYS8)R?;V+CT09DVAfZQK!Nl6Nv-wFq-J-UOuUtf3%jwd{Z!Z85j z9OqeNhB7WG5>SGCKA{G_FV^LnHVV6U$VhX!@J!J#B6#-jW0#eqEH`8eC`3UzL87CN zmcxQqHhDdVB1RhY)*!y*OaC4)IJuSL5;G$a9A-~UpVzi;8K=2kH++qb7OAa0%1M#x z4MZBpqq|CTkZA<@xw!@#`(uNtF;GmFcuu;KKPYGsQzZSY3kLl{v;dJwbl|GG-z^Ms zNQf=GK8B#JfKzSMhT-kEm~o_#P8s2Sp_w(p-zLyzA}Wr|z671z(!p%R)7+%U_NtO! zwO#zaMrRjt2^FXd4Ft%pOYe+wKUn{!G!FA%mfJcV(SfsJ`neL|aMskMp}^ z4xws7n&c)OMUegmU%|i}Yj*%@>y);<+!(^k5Fvcrg3cykK~0YXGZyHzU~Wci6#kW-H&kbuMp_^!!9aFjW~GJmF7{R)c{&JyGk9Vx-@)Su8rOIBtY}shRu=fv zs#aURW`svRPo>KtCg_2|$C=fxJKw)D0T%=0ehI61FXP|pV^iW*{zfZ_MW$Kms1J_6 zRxPUZF5jLlI|1w3Qy+^$BgoxC{mpT;QMq!rL}TMurWf(LW&fNj;esot)?;QXFtdhr zo%8CAX;MS_BNE=5n%Q+}@O^G)1 z?*Z@=#v9o#DE8t-!+d!)HM_^GF}*9>7jjhBRCO6Zc% zMDvLJq&#FjPElepZ*KB6&9ZU=g`@;4M;52@yHXKD!Cb~L{5}VsygkR=^+w@BwNCML z?W|6sP-D(e#e?M(MS@x#*5b^tfoXQ+18phh%F`aN{RB7KG$=kAGWv&BETCXk89Lrm zNhw;$Ya$mjAF{&P2v4rgLQS>cKtF%RHfh4%P2C#}jYC#NN40R=z%Ohxs$|~1SRn+( zsfYIgl9p3-RS_`a*{XpV4_DhBYnIQOivwqXI#Q1gvo~`>Pp+L+I2o}>ikv&gsN?dH zY+F^E_ye&nm8Wr-G91X;JZZ;cCZ^?N8k#&tPU2>yXZ2|xzRDJ2!cH2&IDP=+#Ma>N3KnxIQEm%ir*2KRP{Cl&t2rNhI)D^^uS->cdNw*{S@TomeY$|W|Ef?nr@D-+*{3nlQ- z6GxLKxJe42w;fXl@iHyK5}`N|@$?An&|Fn+1$JTmV21PV$7^sZCs0ucva-A^44v4t z5rsa|Ny#k}kDM!q$Op(>@0KmOd9=^RPvRw;b0tzu)ME+oLlh2ybn1ax@>ZAx&61MM zvk)*dHsXPuFyU2(5RyS|+K4nh2G))3j!z67pCB0i#DYoA3el9G zq)J%&^RX`ObHDE}Vwjk!YF{EZ?yKK@z3ELB7AHo=Em-Hc2%H};Hq+ccBF&+BS`dB#)VNKOx~9% zmp^KRuDKc6%N4e!*V*NMt7QQYJJ|LeAU!T-}yd(uXs!}(12O&fxTS)TdJyp!FUJ1E40*VFp+DhxGJ;ec;zk;WU5-rYz zzYqmxX2sQvNkaP@`<`Ir=%g#GNQ@~-%ghZ#zoyVV-}4Ia`@dZ%3B68sL|7$q%ISHKKZ@ChQT9iugdq6ZlkE;>?m~Noc5AdKuf=?t-h_4k~S66tRlj;+^Cq_#8k*P(j*kV z6^xR?MkKPiSMK!~dW;hEgICwrthYSr6E~Nv!INK){}$>SPg=9hepFweWD zGSf$ayPF0>$^GQTmCu51L^wSfxOl=IpAB>3o=S&Rx4BB+Va}0;S1rVg9TEE`G(SR;OUL^)pjeI0RvFKObgVD-gL z?|Fi;g*13*{+5rF#P1P^E+fSTTVM~Gg_rxu|(32S^bhED9k1jFX^Rx3^OCOjac zu9*>39}RfS2ucarIj|Lo?_KOSS=xga4Ds{x;Oq$dJ9L73^i-5sV#_>N7+3!4#um^ZR2eH0pfc8=Tm6hwab zxv2fTV*ogaaO}h!EDsYhE7))*FhDe3tz^+~6+}*;NmTth>(7LBj+P`KP{9?_8U|ok zZMiARHV{E5Kr@vdIhfy0qlcIJaJtLr@v`^7fhEHWNj8{9rqHQuHu*2xuX-eR2r&&4wBYiiCDmFt8-FNdOpXVMY3`Fn(%vNB|au%39!sP^L5GjKJ+~8V)Fju=^*xk7+qAZ+1Rwf>1H6R zV7_6~q9^?c9I}>m{R_^NvU3hOY|TPN)6ik8nq{81=fR%o{6Yx}882c+MBtxIP~KRT zj5v`>c#iqy4`1V_x2eD!-G&gmthKk)7{w9knj}Inq$p9s3O?~IrYR&!gL+z8jLy0K zPWZ#OmqF_uUfzYD(J>t3rb=HF1ccPJ@u&-VM)}QPRjeUDhS6sfLu2|wT$xGBTq&IG zos3%Nr!W#ZJDi6aVmR_TX5=1oc5fI>WFZ{`DPB#MEUSz(_U(jZaXXtBUwYinE1lUaPG19kFo;v8q@^Wtg+SH`)K@x)PTXAF*B$Ewt&s^ z37abuEdkV6fX8}gn#t3bu{3}Niik4#oT_i2V?qEzay$c-_6o?gZrh*_CK1x)`%pzQ zJRpw2KxG@HoOw1`GNE3ft81QISRzr}$P&boA1ZU-yTTB)2`{3bxG{mz{K`oD7aZ$q zX2K{iR-uwEiI2V*uZlP+(OHbh20`>W-#}r6XAkvg!~z8 zVFML63D@R6@P#x7ND-}@R*~+8^n3#CWnIi|_W>iY-tDT5mN+fjj*=b{v)!ScX;7rR zOgwg=9UbtsAx91T8P1U6&U%n99mHeyiglKy`RLwdkV?Ikq;Qm|%6GV*lKo{ZxRDxP zj@a!=Gq@enCc(htZnLDu%V_fI0fqo4fXdCS(pK^}TMB{g0!Xb{>}tFnGe#O4oEVxz z_HMuY#!}=>5^ouf0ZcMyD7R@qpu|)IDH(*oGB%C?9jMg|bXI|%llYDqofX9m9`+*s zak7)cmuuE9JaRHFZ(u$fs|P@ix6Uu%;$bds)U;Bb8HR{Lm1+hK)$4~E9O*SlI?`K_ zlTcxr+_^z)wzb-fBy>$^EW+3U^ue>k-r%k-IX~^60c+l>&#%0Fk^mTU4;!5=1w2_#csh%<3DdcNcvP6m-2$vRNZ z1iakpGp*t(j}JfasjVTmYyI^4#=HuTaR0Tj_`oCrafx7vY*(mvEsbXb4<$R;xFsNqOLGixU}oi4)+&FzMduGCjr3xVU{z zm_wTRV#O4GRgt)1?wNrjL_9f93fn{9iU!jOJAk^n8N=cacO+mlJ#~W&xQc^UDy7Y< z!2FiT4$T+Caw_-NWllj`^07(A%qzNFckTi9D~1v8wN<-p(tieEt2$8M2EdLjjPBlU zHlX6p15=wbzpulo1@QnWmj@tNhZUv)L%nNOTrj-^Av}?4SL70#U0x0jPCC#u+bh4S zu?~L9_sk$gU_;XGBCYbXvTONXRWHLo$7sHAr>#@MZbM%iMmG)H1C+R^k75@gqsV+w8i5s3Qy1(0PghFa zoG&`r&U{@kbt@J~8cN~U$MjII@YLrJ(Svn<9BSu)oDelgj6l@BxH*Onze=^0Zu2Lj zVc3_75cr$f?RPCMoD)I;vLA9YTjVXu$FJ=sD%%SU)K`{9yX1t|UZy{goV zAfv{33l9`gE)}0(k)bCui9~+t(Q;>=TP%v7Jf*dgNvAH9N46M(5Vr3cE~_|wnsDzg z$ysF{IPc>!h_(B@C@s@A=jdyuFd#&0(uw*Cq>J6Ea+NuX-vEVCMA$G zfiu?J)smQDEmr*j)h`H!@F@=={i_?UpGia!i1WrB#icv_w4xE2^u}yH4 zBjGH=-*}iN zwei-h{YLC=N8K6$WG&TE9BF}m0l5JQkww!g_9Q1BCw>i| zy125E^R@j;$(1+lq^KS1tBTAauF3#-L<2E>utKUJtSguilw;?23NKf$$5_#2$fYJ% zZKMzmlt1ZI-S+_ru~wq*A^`s2Ug)fJ z?UvMM0V7;Q93#Jb2F){9nCe&VqL9lkt=5%mMBI$~7T<@=)|ol{VeY+%omv4+VO5IB zo3G9;ne#yS4O*)ZBGFi3q=UlKix&&g}@x@M_7GNQ4pz9w=C* zXp7o*6UX#SA#v|fnAlVgg1FJGsVd-Nt?6C5Ef-KI6GP1Pf$+f5t20C1oCnT?-i^kF zeJi=p>s_?TIyPzc(Y#-hUlJaGdA(sp#Q0;3#z8bW&@z>wMnODG-p_(qaT}XbpV8`I ziJ73;PdB`qkyx|=ydfquJj5@g|APGV;rfSohF7QG@`3nE<(6%1kg+a%p5f-|{Z`{9 zB$2glJ57*blxGZ&qD9Dde;5|ivb%xdbb&QtzFA(2$Bh<`z z1S@>>bj|}X^1(QZJe(&Rrh}-{c4Zng%kb_FV@!HL76m5)0VfR0tZc^(`4b8Zof+&? zehuavS8f-ZQYiX2ECE=1vb84G-@>I6zZFmiWOo>c-Jrky(g_*JdXw<}WsvlAxCfm2m+~C$uVmcg+%l3D1oo9KiVlPX3ar0lohW>B$KRfe(S^oz!JI8;T|Ks4``k(s$ zze)X%a{ur7zf2F`*u&M~JbrC5Gii#1QLWN*)naypW2-khJ{vT&5{*jF}DIe9%~!WZAoD*@23iad9O*=Yk#~5M!fV7TdV0g zQJ(|elX>%h151!-+=R=(WeJr}Kq}Dx?@OTl`36g+9{=|jfvXuY9#)Cj;q9f?T zfI;B5%F|lofo{Kxw!^)umW{+Vm&5TeVt*RBR0fvr>0AL_gMfE8ubVMy^Q*1Ctc#w{ zkFx+d{^mXaynHQTTQ6d)V+h-t!ylmM%4r`oakijwKSTzLX{hhtPt+R^KrOeql%6d& zNIjgdTKaC*nTGj3@2A~dj}T8}Ids#Sj>LBTWMen*n5@QIAbO zOO&U#+iCNuY@U9E`}5Vup#WL_=Gq85=3X##Tkc*+MaLj=y=?>!_IyYMMIPavvv$`5 zg$z~+!IvZQToIipbse$jE+J*y=2-pHWSDBbL^$uts2 zoW^E3g(DpB`QD<}?kdA%*v+6>t+(BA{Tc#~jc{e?{|spqj@Q8P_Zp6#KjxI96u8bzaI*>FOp#PvqZF~<9oU%pL@FZ#HNTzbLQ8Ce|u#Um9Q8fi2VlU~c;^CR^ZXo?f{uQ5z4bf@{^ zbVX)r2n8!KavcSNk!1%3fs*XAjjpU>u>25D8|qq!fY);_G>nPqtIoy4TQ4uKx~a%R z{b6RTe~nQx4(jp(5v@efS7yRB&?o9PYD${@uZOS)@y3F=T_9XnU<2Oov01DrDpTk+ z$Kk(plHg4%)_`r8Bbe3>Lq+VgKV(E3u+)`W`vp?XJfvHot#-sPEi2=6=2cnM{%E;hDw~Jrvr8<`4#tH}jpUu>iHo3Tpc9 zsbN~^v$ImCDblmglz|Ig_)rsg-4gKWU*wd*?NsP`x$(Y{NYKmIIe{~5GGOwM;|})M zF`Vp$n3JL4b8~ZR&(NM>$z@GGMb zKV_gwr-{ynGI!cD%){Eo+Eb%!x1pXjYEOlhMp+U$KwNW_Sg}gl8>S!h18&lade^WtHEIkLi1G;(Ne@!DKzn!*p$X3Bb~}f=WEV_u`3)Q8=BgRo{=sVjhMKU5*ZYJ) z@vrLC!A~hkh5_#jXvx#kg2|0CNmLOQo7Y%KMy$h1IhkJ=Gr2fyeag67J?T>Q18OvD zVx#fd_KVNG_ai58wd>%m!^K0llvm`r&`|W9gI1ViiMfjIIITdO!$hivI92R$rxZp6$CCo z(JaeThPG|YaQzfaA#j5yHq35f@qDu{`FyleRVp3~Ev<*?QHHlo8;A)fAjBxN`E9w5 ze!%N)C%HdnQKoi2&3|8@Vb~!mu&(>=%N00&?^fJYaVH!z(TaKJ-Z=>}*H~G@HeGrubo}Cl*u~)fY zKnKOfHsggo6O@6T9svt|oX`h1vd}G;Ae)A%c&!2*U0OXJQWH9QWjPv>Bg2HHE$vuD zY3G`Hcnwn#VCUjR9v=mTM7=^|0S=XPV|tAMqEnj_Ug8&Cy8RWVu_M-yjn(E&Q*G- zkN|)^g0j_mW~r+q+s^_ZAJC%^gpx999F*Ffmzc9@mAmKWf}I^)ZZ=LeMxe`P%b^LL_Aq& z_(>;x&f()YbqG`RtbsH-RW6igPJsI@4ey#LQJg!IY<;bIcV}k@EYD`)wAw5u+7r=~ zaI@8-eBm2AI_q=0eW&iZ=iXbl>ZKk|J5}xfx*ld*Yt7ci=>50)Sd&Hq%Us0|5Ix-+j9{@+ zZ}D$aVd3X@CAxfh|CCC#J=2%3G~;rG6Uw9IXC4Yp+S+Lk4-fkHK93dMTHy?|d><*k z%EyJAeIcqYZUiHwC5kSM<7SuGRaN;t-*L>UQO@t>sPa^Gs7KbSts{ysaJE%=NS zCimsbm!0dS2gf-o?Q54^D#{I`T}JP58+$LumjbM!_Yxe#R;T=UX}xAUzU49CN4*vj zUyopd1oSf+w^?7Ry7KQd{bI~GFu_Itw2Ua8E-Q2M<1K^eoP1|VxRY6O#S9Cr1gBq8 zgiAFoS;+0GF~8E08*TCJZlo2TOC({Us`u$pzI>DZL%=L%3Tkzc&={R`pn%AXely8a zva`r+v?ZV*Ue!#oR^Z19Mfu2Z$QxzMA;FTbu)u`R|Fw+MZn-u+88(C4eznpzHAag< z+<=NnS)7Slf_+YKVCuOXi$OghY9ds%!P36&XA0XJE{S!bWqMb_8k=qch5hW0oefR< zw!N+py^l0^7@6MedT3CFE`@t$!HJ$(_qyB>)0Y5KQB6Ff0>6a6eKB zn5zf|Ws|t&6;${3uZzbu^^`ddConx3*x15u9ahbV(`<0d!1jZdc84Ns|3 zlcQEQF)K|4*X_Rb1#_w}r0PO&+_-3Dd>a+Y5qw5w#Njj#(h!YPL>%gv3pa3aaBvEW zPevN1gcud-%Vo^L4Vh$0(YBQ0Po;7#F&MK<{YHUfGO1b8_-u6I-iM1Aq&#r3<#e>M zBn^LgrF5A1GU$Gvq5P7ic5EX)Z1_ifR%LO@Bw8rKhAYRToJo%CQR#EG|c2FJVD0`WU5aTZk=rL57F`Vt&PcJh&D5)wdi^wT*?K&NTSAn+nC4@OFiMVq;etiv2>nA@EJEwL0QX=fvgw?@GcX%tWxt z-By8|Z{w~P_8tIjbLL|m(`;~Tez3Q6SdD=$43U&;m?r}mF)fA z&2Uu(Im?X)*?OyI)VwOOc=wzJz&V%~k2-cjR3PvC_H1ctp;|h1DBy3GeJPUxyH+Tw zUGeCk*50_@_3AgdXgr>9lolC>O!ddVg^!AVI!9Y=m#ULrUVL@8Z)9X-xZ1Mmhk$pd z3l*hT%s-ocWwwkyx#f_T!yjND$=BG5k+|Xo_P!9X8r; zRR_z8Vk@vvoem6!jnw1^z>6x_^a63gHlPT2HG@Asi=w;ZSK#vVoSg za8Axv7v_F9%#$5)RBJg(ii*`WcdyxS3=1DTzI2#I#a z-1z@(`GrO-duygsmwC`fSnH-Q3$sl;51IlJib`!~N7(REwMAsx4=n5h0xhirj3{W| z>B5W(>ojk_{QkKS3cLRA_QMzoSF+bV(gSgD3SoR_0sZ6esL9E9m>cu!ir&$$II{By zW2=}%6^%zm)|c3j2C#n$j3HXYEGEEC%@j(xs*3kFpzkizGv5fPVf-Vw?aKczhEe_& z;~#e+V0qZ`6>27CE@EtK+$0%IpfK0|SUL&7&lV7hX<1q0pfuO4?nbH2%F3EcPfxd; zxY4HR(vt}*5&T~t9MP(^Ft9EreCmq68XGRXhn}83dSUrlH$(AD|JTn-ZX@RfTl9<{ z+_c=JZO_yN`Q=>ENdeo!+kg*t>F)ot@os=kC9A;HR~1AZ=&}Fwma^-(1$k>3rLJv# z>&G`HO^8o4CRZGO`EwM4PTSVAQd$)5guDFu#Ra(;fCMw~_iy(j^q>2})eqW1Jemzi zVg6r%!}3u8K%-_pa;q5N^Z)Nq!v7=xWB@pC+?h z8@E19J^N1G`)}bhIuq@EcvQZM^m`EoK1l)}Znoa^WiltvwF({xL^g03#~KlnDDo=k zWQk2$;WhY*LuP)~Dg$ zDI;?NuocirqKATm0M!>B22=0TZk?$?+CHayZ#!C~0iRG?h=6G8K4+wO-iJz&k1w={ zk3`oxSS2=Og=f=Tm_5=lcvn!UwTK8fmx{Ltyrh0CO9En(E3JSH^1M+SO zOXVG@0~TwRwPpfl%|p$1;~WQL-5=x*w7Oj`7g_ASz@Wa)*moz7pRyQmtG)K21}z&_ z6mb6{8#$GLOH8ILwvm(3GZ9d+ynLINz@NjS`c7q^NsixSgQ?v=xpJbUuz$1l z^F3#3tD7Fu`o0~w#faOmwez7GqZN>5nF8Sl>eI7H!*Cc>DVhZh$fHx~$+OYm<6vqq ze^6mK{Fd~?B|N|^flATjd4e;Ut?FuZ36=Qeh0@;n|MOQHWDO&_Z5G z!8F0BBW;SpmVi|rOQ#=NQ10}Tm=jmAP_1U%3;luB1rLnvBjEBtPO%5}o@hCpha=WS-wI+_ugP!#$>@P>&TCZWyyBG} zZArM=Kmw1bXZPGhL_ayb(}_(?qo}DnJ$CuEn!cBM3c;n`7roM&ZT?MNpUn|BK$S2Wli5WtVj-SXm9!>*<19`gN4Lmov%ZbK+RXvZ^u}!bRNmRDEsJW2B^ex#^~bV0G%O54-bYlIUKC+V6))EA zqspyN)Lf2zYZ5o=a@(R->v_E=Y4xku?{IZt?SgcrO@-^bt}wkQBDhX{3V*srENNbF z8rAZIlc#jK(I|7Jsy~H?+czwCogx12xRzD7PWd48DZC~3H7CweRp&40q+;M` z{5Ovyo`$@o-aSe_zA{($1g?$9DWKQe}%kbc4K^!<)9C zg}(s^J;8*sB9#&z^<#5jL-t&9r^ML{rW`4Ay|VKTOom=eZgxp3s0JIGeHj_~XA8Ov zMN|s17<0NZUr9EIqK1l^=>wJ1PL-G4&nE)&((=nsN+XluOL$c5?Hb@^GA!&zSK0RT zY^)A>l>|Qta$UI(Dx3ao(z*+741G|`j0BZv5t*P6ntOK4(@T9Gyq5{|diGG{$n+H* z9oj4(50dtzS$1l6cGFh;k2j+zT)j0!9e%5vQLmhzMmrQm+8ufvn)2zlQ>$6quC#~D zn#)7XN#a}q*ZSTGSvUL&@%dE!AdxoR-~|U0w;kl_5}DKAY8uJrU*=a@N)#Q-Am!kD zOOB@yq2^k0k_Yz>E2_EzD>>zhrDx8HR33#yv^}+!MHxzWY>OK)wjp z-2Wwln87B5t%`lE|EZM*Cm%)?u%Ij{E&&%eYFTW4zNq!+3mT&($BK$(4(a2aq|Ppt z%FrOl>7k}@zTRmiiS|(-1Zt_lMWK?DC#;B|$bc3k?8k4zN;#!|fQc(&r|ASqf-Tof6%r-7=r#&gK<_#dS#qHVz)5q|ShK%L`9tH8$TTFS zMaVo+%HuF2T$V8&C&IiW$7(N%sL5YZsC!Tf4#<#KoHGKY=gBPWk5|ZGO@q2DdYN#G zkz@KC2BN|oiJO*v z$&<}bu8@!6R{7!k@Vno=6OFqO)pHl&qEZ{x!vPXUB{GjrOGQ=eM>jTIuY+mQS6-9v z^~Mw)9zS|8G=V;g+G!#Y@en+LXHya0_tGO}Vk(P`{!kx`Jbbg`J)=k1Nr2pL@QgEj zyWEC0MGFySq5@S%vR8|hidxx_gXSdP$a<*fcLr#x(n{>I zKw`%J-l00Bzag79Meo*~8(v<8kjvC1fvM$YEdFXnBN{MlI^?$@f?*3n%Tls^&9q1U z34tufnsT+h`139t(**I}D=NDsuC#%_uk8LKt7OC_k<^z!`FviO3tkfM6u-OWQKSn8 zI$)CV-{YM&EcQ0jrw0eDLiuLNUt)3V+ILUtgc@g{oaRU&ZYrrRJ7oE|qe` zE?kDq7_(waT?DgCtscsc9oVf8So5x4>NU&J_$dvHq#cy~6lQqrelSJHhT->RT2_f*mEnyA2 zzw=%ON&`k4wae{?|7twf-pxF#Pt-q%1qoXc#xjbACW@ZeA}@KEBsv92HCW|({$1G< zhDW#K1x~~TJoV|?dUf7@thk_Ja3UJ5RqZ5FBJv?+>1u!ut!ChvO2DYwH{!;X*C}U9 zntXweZm=?kkE`TZM!sc9zpoUk=TsGrNcRe|y8GFo>F7ZUZ#?{od7;`V;QW;%*2710 z+#SJiyHEv*i3Ca_3PzXplNwJ8FY+QpQ$;w-|aZkc$lT*`((TcVY|_gqODy#3DCya#y$d z+t(~l1oO~<9Y*y;$BJc9u&}B**`*DRB#adJFji{#mJu^B%W*86k$T zA#h?waJb*Vs6)=sySj<#n4ov8ot!9hZ?}lf^dW{ach4GKSzPTr>VBLctbsX3ZRpm)h7Jx&mRhVx8Eh#n!IQs`i79HZ`V2CcN#Y{P#3gTm z+bHC0$U@Uu#*jsJ6WY7A#n1z{?eWE`425-hyYFHFpG;eL_E;pcZY__(1k^=DVBn9w zIux>xA|K^_p(69@&cy_dHc$FU)@AvhLsY1cnUe`$p4?tzstsF!u>EtVAMaWw!m8@q%|w=5PYh_&NdTj~NWACEvVc&~2MXgfKru=VElFM! z44XO63LP#+2%B}$acN}Ef#p%1>9SwI6LfXTje-z`1P7ywUc8A7fk>xxRJ91VKm28V&NKwJth+?!%-k|^DJTqmYN$>l$QwYGmTq@T z?tO;RiTLv*aZo?!e4ug@{#CQ`ht%KVZQ?WFJcVqVLyO)A*JoSomx;e7E*gb(Ye!6S5s(O*5(s98UHtvxsRgyEU+vWt7wVM?ls zt{TGRByaV(4h#F5weGHAg3xc?zOoqg&+_NJ;M;a&lGN zkcehvAX5N}B^I0b<~n;J8>}H16em3?r~>U+Hb46wDBZo~0ojyXJ4J|OtSSv%*MNt^PSUnbmt?YX@7Y>~$jDMWd<$)A)|65@ekopzco_0t;Q}1xFsAKv zYSyX=F_4#OGAThstOX|M9p*W`KJ~HISRIx3KVdI7teuN*rfd#AIMTzs?VXTzuKl?+ zGR3uk*y{ML43V5;JOmC*|B*^}ym{0t4VJ8kZqmG;`TlO@;6V5O@iTyu_viZ4Ps<8I zZe3zla3y1X^AlC!g>>K?R$<{B8oT0jv?bx$EltWLLg(w3C(@~R^ENL1TYEm3*~&IF zp}Xs))Wytzwnp996wRgD4ozBV$=7djXL(U94b?8x-&+teJ}=f@rF^B?u9-ztn)too=LPCI_+;S zvyQ~NoTGYq0ptC0zSQ#sN4?}BB$mUvAD+lsEqzCMY0D<1e1O|5!dL zxaHC1bKa?;P#%%UNnr|jnnlX>d-;*Osr|j^bF(|m6O#rNq~rd9mGQSypy{W)QNvs| zzRRuW)GEF1E4243GeA)}2CX&feNSV(Oc zvP_nW9Y(@=fC4?QoJa--nU*<*ONty$qgfphOi4dpVD8YgN`|ezBrJ+e4u!;-UGl;N zi3PJ`@utjtXAk9Hoc$P>>ErY0iRWvJVh`_P8i6R1j3X26J;pN8#xQ~EL^dvNE$dZgz&z?zxQX2&Dvia7 zW+x|eY7q^SJ!eE^s0J4+rKDyFr$nNxJ^|bW8q*zKGG$Xz8URECpVrHLhJf8u#>OKj z4xyNUtH+x+<*G}S1BQ)_S#!PW?a&3mu~LAgqTnRR#^hA#I4CLMxDd6g4MZ598$NUc zpsUK%E=1v3?2(u^Dxd5+dNvvDutjGg2K6=MK0|fPsbO>xqviGa=+i{um0}Wx5Xd$O*8FZe_Z_xm_S^l9}OsLpr2!4YE?gxBSssi*O zXBvuW)o^lSTzK++RjeK-s3l?qqJ)KN{vmshX>d9TKcZ_0Vj?C7xg}X^F~zo10|jlm z2)j%5SLSd)uzmxQv>$w3~M>=feC{B2w%#;EJ6iSWW09bRvmy91>l6mGr8Cq zBPxxV(H$cZN$&i+z|t5_Z?cmmomAwKs(oP6y0HsJh7luc1v9`+#00tYP1sZHTG#~@ zNf2XR_c3!__T?Qi0oX8cPc`A^wE=a|Z}f;h00Tf{6bKw&Et;iesU%Nk%E|+(H8uf- z!Hi&NRBlT&<9PEL+ABhwe}Et8dNxN96M3DP$=wm%B~)W!;$XvY<)A_FFe;`;NrGzT z7np|&{EKUH5`Yyaf|J9Hi%>AFd`|D!KrJ&^Q_z<@;)^~VOxi%0ii^5rYqVOm+Hl|G zu0WuLGW3rB&-s|_s#@HKYhVoa06K1u0F0>UcRDkgxZuNLNeo_0c@00}!kBN_GrhA+ zK#gc6;l|aw9~Yt_GRsJOT=NYVpizw0AC@3dO7vivz;ICtb-w3;d&~=dg##O}>VBPi zip?5T3o`dH>ImN~acH}e>{VPH0JGfD*P z7vU(2yJPHfL{yL|OeAHlQ>w(0v3o9K-VfzJo{dWzPLo(!2zBTXSWYzn@t|1RkHQt^ z!4a3uJ<5&q!}#Z(*J^0B5>J|y$bbl;WR6Vs=9Fm2Xl~djRhb@fenxUBBH$%~iRKI$;RBGm1Neoa zIwg8GgXacJH$6SQ%9ky%&3?fuMoteKr!j8+1Wk}^}B3Co=8 zE@F;Ml6M}pr zXi2tw^J89z7l@3i56h2U0yKI&06~Qf?8}F?@nRQ?Oi1p1xzgjrK4jcTV<$p0KH%Jw5JDiI4 zcE0p>*rfHYgnjvaD&FVT!~aex_w6OPrZU&)y{h48%1^T)nPdHwT$&KhLX%5|qxJ?K ze%lgh|K}RaOveXP1?AcKjyzDWoAQ*#l+KjFk@Au1k@}Il5+rY|>tX+9%Runw9g4kM zd{y@6dT;oXG5pqZ`c}oMa%Sd0Dtu|8w1a8JR^%T6!OV(` zhMYB*GS?rj-iM|Bhf_c5eVRdCw=Y)yem8xmH56wBP3?x`bC{HtbQpOdvI(_+rhLLY z(HkCrgRK3DF7H_ajGK|dc&O_tEud9JEHROx z0MnFYm39+$=yQxRD5O3l1RR4Q>+FuqJ#7)c){sv<@#o>sMc7AH(GR~84-p%e^GBl1 z`#0l4@GycYLh2`HTm+rren-=!-AU06VGW#M6Ud%Dlw(Y5$1Z~MS9x)9Z)w}~iSSXZ zbvRua=Ao&qxr)l1|LsjX#7ZIrXTCbDo(1_K+R6*TP>}iLp94$cmg9oTlqbM^F4(Pm zZU98sis<$zYYE%hd^(Is7&3N>sE`gAAp+BmIjQ8r1MgkLhu*j2Er+em-gBQd-c~Q9 z!VN)rglD=?*ra|~>^<_nuMxhSVmi@_=w=WJSb+9TI|uOVh&^BG;uRxWQ$5pRW4M9h zFr6gA?RrYTwc`f_y%wgHH35N?vv91-!@FLiPG?t-RyQ-kwGTCB7uQ_K)s7~f4HWx# zAEPR$B1S=b{-kqnT^Op0w7)V?L{$E1CclbI_g+@Ae*ExPnJ>~Q7RR9^B~@p8ULf+( zSa<&Xh8o&(DrRTqWL7ab=(5`7jO1wd2PL3U@MRp!2*z8d%5FCBzT{C9-EVEJMq;I zxuvDfwTi;GJ62ml%{V=kE)vu0^V6|$$eVH4d%Gas>seE;$7Va1|AC=?sHEdL$;+*< z!OG)C>Q>w1(>?PBUWeNwKeM4PS}L=_;6kKUo!_J2@AJRTZ3HcwolzT%TCD4nY=sGaM-GJ1+jL0NX_5*8u3?ZZ7$UVt*_f?l{lb&@0rxz zt8MzOBcphhFZuD;_x91@Pl<$4CClri+Y^5bDjli|Te@P*EpV8}w-b;jkXffZAPZ3T zDHX+`=4v#DKgREp8jpYUTK#>d_PzX70AvMCEjC!vS0C-O#S_x7vOe&Ug4LXCm8t>BGx%K^9Ms?5Rxdq0M&rDn zAZ5#w99!~kD9-$8oR;OF+7!ohyY7*WE`J4&jHFvPPT&g(vf={olJi2#Rs|iGV4Da z7&>DudY!|%`{o%Y%v9H%A;w$Y+^dy4}hVSKjx&T@%sDOVs4`DZF+Ds1X65*4yrqzX2eaAEQ)ztNe2 zX0_2*77j=4HMUhkw%I6AMD)zjDAnv2SA`xmf>w8iQx|^s{Lfi@xQn_kOy39aV?F}( z0L=h9;4(}toH0@lF7&@&cz~^|x+%@Ras26Kc`p~Rv|;9Waqe|h)Bf|K-NO4`gO_@} zOYf)8`PV7uDYx#MACqt`ZD!j{LpnY@58tzISke=F{p3vcvX6d%!x4eN{Y7KrC}z9c z+HVi=crbT7W*GWQDXN2FZEUJl&Z{{f{UDS3HtY38GP=J`MHd?Ppe?cgk%nk5_P8!VEx|LTc%L&QT z7zi`3eUKOOJTCdMaq+VvU|Z^l392N2k+p%-*zNDUuCu;!Y@7qo<#~H?_+etw|QT@xzpr|+T$h$TKeiCTub}Kpq<0P zj5$Y)(SgG9`8zOLEkQCwRXGSfq=1Qr?MHhZ?hrZvXAF=Rf}V!ZuZz8?uUm8n%sG4d zUR5>uLn|;hw`)5Fsekc%${wy|A8rDfn1~F4CB02Y%Dy(7$T7A;(TmXgjjn(0bwnKc zuKN6d%kt1S=NoY?#fz@JtW&7)X;wi0XXj_jmTk9Wy-QQad6?-%F+vo201)ySq7AkM zkh4N8W2&0uLo@6M$J!n8P4V*yhqUJv{`Os4=G^$a^Ln1xI`TocB2!s5lN--B756yQ zsl*-28lf|s=g8`lweVEG1o-xve6^pw?+(u@qlH7O$iGqS@|iNhq5KWHK9A*2xqnx? zyKZpAhn@|(-1I5_O{T_~`ZWTs1Dh}@&r0ZMD05OoaWK=JG_2U=tonY`H4_B2K|+E7 zV=i_~VDf=RDv-uR)#pLKtp4Zs!LCpKa)1fy>xOamF7K2>%KSW&_&HxgoWxX)Dr4#f zjxnaRCIHhq_ZNUXcI9{yhe8_@if@Sz_z%F^+CfS=1l>f3tNNU)VhX19L;>M)ZFKhi zC#$r>?+Eldur=ODlc)^?p3Y21k+V}~2~gdwE;>&n(byjadfVe$*osV67D%^+F);*_ zbR`0n0685Qs?S7cjhh)M#0p)O03Vt>pNj>8A13+m^T}a_^Cwyy;iRL-dOTpIup9DD z>q2*64gc=;^MFCv4fV4}(=Nz?afkrA)K_XablBGLP~|inj74=f+M~vct!p!3-ZMZo z)<*hZk=MHydzKC4fKl^7PYXriMiRD-5Gi<;;JqP1;HLi4!=uYX05rQt=&d9z>Bc@ch)&g1%*{x zBk>SFwtER7_S@qH)Z}Wy%`)|ujm0yDo0dTAas#vfh{!hux(AUV`aZg;0D`fbg@ZQm zL@NKH-D}py6iRTF!5V|XyS#aq_pI?Gn_XD<2yzO zRaU_zF*`x*3?cHgo=)#-exbJCsg(A{J=5R7LThBk#$cMZL2GG*!cekGmXOT3j%eZQ zUh5qIRBwtGY7~CxxLUHS#~(B_F!0iYm&8h!Hhhw{M>MGaLG7X))2F%(Q|`l`A+MV? z*0quoORQ{7q+c`@GJt4FSRnaAASZPrQ-2ydd?7~Yr_CpXCtex6@45b{HJ`4Hc(0Cy zDyu3@A^;gOgcv*DG+}Dv(4Ab*#!hi3Z;yE*lYdU)L5*S#g}E8~Sz6CNem(riS{vFX zk#mH13NskvC2#PI)VlqFWq3A*I4w70Nd9NAVrlTniH&^S^)D*X;HN97qwAP(jX2=d zpR|fjQtES>t&-XB8cW{{+8ZXS@DoV0>xMU|pLRwSBY{_v44Z8G=-P#P{ z{K2#)5J6#G_3EzNEn4nb>HhQ2uy5D*p}LC%R^-kkbdV@7sVB=~O&1Z1a2ILt#ksh* zHC#A$T(7yHv+GyakKfu-U57ouI{_%$r)AH>925_}Y78edd44}(b+s!M=_|YKA@2E+ z*AE!KUr*84j?rqny3Y3%a(XZG4i67m1q31|)e)+6`nta2yLW}31lJh57v)DmafkYM zvovfbQcp~tdJ8GnB2-q5FGfidV2vPWm>>9iXUQJ%T`J z6h)R6y*`7kHYOyB)nA1~+{~Jxl%-meFu-|w^>-s+lU!Hpo9Jbma+&R#SpJ`CA8_Rg zrc$aOQ48GUfi^k@GogaA8wCy*X-2GY7OPcWMTx770Wj`p4e!0(IO2Xn$AX{@P z$4wStLe-N%Ay6>gS&P!6$UxU!AUMkySVjA6(_G2P>8gU;1rGisu6uxYf~;dfZbI8K zA?6|s)Wp|}AUd0Ptv|*Y^8NM2b;}0$n>dSie`RO>#iLWXQDM|>KK&$`j#Xi=yatj5rTs}T!h&{%eQe=Hh~4w2EJF=q6cPeWziv(eE2@a-fkw>;i7y}F)~j#(-E7F|iGYZ*r_dkLg14va z>~G(VuUf*1;7vf8t1h>5Xn#q1Ph%nq2=jLRE55(FU*l+=AWVwN){( zDqhC%x8iU^NVA23fq*40b++aXhm`7j1gq+~k=23L^;M$OaPZn4s?sO-h?Y4R?feAY z>#N?Y&M6dbp_lW=LE)v^T;x*^O9lCf&_yy_5iv7aOqc_PkD?H`odJyPdT4PGyd7C@ zZwYGJ%X|;39M9LC28?wUpgp~bGQ+Rl{q{*BG6E7De1%d^KEj~f zkbKqBIhfi-TzNP~PICvfUnJLm-)lNNpM8D`+)H37)#BHliGz=Fkt^F{K~ zRGj6bW4&plB06-qgQ zaHA4?==eOk;9GUp)LDWkM?)zAR`aen4 zq;*gbl|Fv3dHeSDVc+%SDOYe);7VM+pvb#APk3Pq?i99CSsYObIac`Q!j@&DHlXop zd#(_L2(Nkvd~>w}zbNU4Jewb2l~%{^l|ixR-m7m;FYBOXNdMOpIeU>HR@p0B#X(i_ zfZml`lApj-q$>I&i44)yyfdZ z|Mp7kT+sX-a##RTGl^=Bm{uk?#UYEs3w7g$<(D z@^bv~IS8a6;l>k!jY-zp{`1VE<=YG`ZlC$RK3+bdL8zs=m1w3 zICHoDZhf#p^d>_xZ}XSjPM`M3H|dd-jIU@>br$d(bd7v$%?n66#iRxmL$SX}tA$)6 z0_zI{V)t6Z_7XMpKkVAS`?mmCxv%rjBp)-Y|AmPD%kUqr|HS+c z+yDOmFK&*1@t^-H{0HZM%>S8x#u3uEzw3NGKk@4O9U+(Unvah0ISfczA<7m3!HmXK zm==i&0f7Q4-<$#iUVsww!m{X5n1fPZ5Au)u#5`@Navq-Uq+r04i=rW$4I zEeN*!wDN9Np*&mP&s5WBaaeeq&rdsUVxT5Jbe%McL_8!-s&N9z88R^ZSRy1BKO4v^@MNp%?z#B!1>xj9H9@-V~ z89rG=K|gvoLP;RP<@RS<;A0TYs}~u-pW6Vc!_3Cw&x?WG7N=|bNHkS$`r!?nWS=IZLXC4vgx zT}HM*zD-AqN{BzR^Z@w)<-!$@8?lcxM~DzX%H2G z+)cT$7+pAJPgReBXBU4+&xi`!yzyw*E4(&^z%fm8}XAbvI}W_Y!!8^%c7Ri62UbsHV~f7v(7>Xt?1i! zyCGfz!pXBxI@0|S`Cb0rbL8NznX9X7lM1B?p7WC1R%jOsO8;g3rUHt9tZaf|ufD_kExSo(UJSr;38m)T6lS7;WCRKi*;b$;pYhR1A@g zLm$|bSZS)K){62`blZ>YokY4c)f0Zeb+#bN@V70DH+(PkFH6_0GI--}V~;O5Y8V?_ zxDZ(>XYHmUDV$?{;G;L5lREMj1Pc;y2l6A#eq@iyHeOT%K!>)VnZ_|+5toi!5U!2* z-UG%e=u$B$8Z8PQT}cnOSG0_bj!=h+Os}uhf+8cf?~L*G$-c4IVlJ+NY#*PxSTw2B zmqw0$t$@2PpkSdW!)~^~ZVr>TvJdbF8f`L?`SF-}#GnM3JUuP%Z(1@LzqY8rj{<7Y zcQ4cdIWg7rxR}|I(iJijkU@qUX1yc|{p56v{?fS1GALP!k~&_L3fsC|zvSea%04rz z#9ob~v5-^FQ7KpUXavGPJT_OYp3yA8oSbAeF9D(!^`{h5jlcNF^N5`X79h(M_a1US z{@NIz$sl);M9t5^^;y8Rq0wwteN{+MoMSJMlS{K?v=5Iyd$?$w&(5&!`>#praerIL z{!pZuIx{x?pAxgB&*VxW_MY=Mf?t}~=C4aHtG~ zUd3~#&S&#ikK0H|yA%LGVAC z2pWS-)NV6Fwm}qM!g#qk9ulcBzSsXzCW%k-h<8U{Y(^;!JRZB~aFBau;m%x9f1no1@zG6@#CnBy3ADL2{JSr6#mk4;=c zw#V59ueOK9S;fZ1tvIJ|SdtztQ!T8Kvuzcpb=yXa6KIjA&Q#vq7W?Ub&`&&?SXJKZo{{a(HYxwennA_Xfm9itT?_@p1B{@||gnujXrz zKZ7ngTl!=S0k9x$RGwoLnQ<`0lY(H|9t#L>@`+|;FXt~GO3if^z^3PR-LsN%O0|2! zX>;N-YJkg=Fy?4arggLI02F}he`cD_ykV};9}l=Qft=F0EN*j$Ub7IB@>@pwTN1;Z z^oh&738wraP@VuVBSBIGWH!4_1K$d6r0o68>t0{rKPiLNZb^?viBtHQ=sfbnf*#f8 zyLc+FAfrf9wtwHCYYN1P0S%`gH7-aaZ2i<9q8i#k)8n@I%{>k%?TRl)!d|UMvI3xA z`)I?$8s))6XCum>wC2tLe@<;Y?DpGpWj+)C&V^KdSx&ClEd-D<=;tIr2yjz>=k7mF zx9oRnXRQZ1@vszA!I2L>#fEcvnG`Ahjh%aI+(sTKQ49!OFg7So5bGU7D{rKSg?jR{ z?YKpuSHJU<+RqbHyE|mt+OzKxAB66cKezrBfd0Lf*O`pQ1U94Fj7A@SF{NDV4Tkg; zWX6D4k0;1v`qxvlE{t?Q;&+w&Ga_c-e2UbIbu zqEDiXo=?Q;m`48@!1{NBRic=rP^w+~B*MK99JWRv2!nk@clv~Of?}8Rm)v7r;0~fK zOi<88CufP`Y`k$a<1f}A9obdhPYD&Ao8ZJP5BvJRWC4!7_9uS&Eft1}p?-z@V>HhOuZF z&{1~yqr;$0E&D{PJqg{={HZ?-*|2#V4&B`AfM8)oiJYT%l*JB-sYS~nD}2!m=gG(A zC&*XvT&r7@BYJ*?yF zuAI~qvJfgyu&Pu~k3Ea=2v*`5L8$bo=Nmee&k&DZa8IDo4^euI^V6=zuOKo?s+?4^ z3&!h#{WX$3ks2e#9>C^YwB!vhDqg8CNsTf-kE^i{Jn$Pq=-m{vEJ3F)@@qW8Q3%J|7 zS~$hwwL0S9TXN0^VXF|+3`L>((e&!g4!9gs)<81ZVbz9MhgfaobaiEE#xblLFaTXk ze7*)%OV&TyVVK@`4}}FU_rcvb=Pk1?O;5MqWDlAK52%Hf9Jw;}Wuz-y=@L|>S0w34 z2vY267rn$MjBD@tCZdOLMIiy$Cc7o1(&u{Cu#J0Yp5 zQ*U>-kAs6OFhcy>uu|QBuKLLcbKf%d?EHk%WUpkcq%^_<2^vUe0q;+si?*N1op zxe{0L8Rv|JR9lH+mr+KrUc3NpUucH>&2KlZ686sFbb5ij~Mp~*fRhG zho>ACiIK;1F|dcwj++D?o_Qnpe*Wa2W6bYfcmMZru(IW0!>3aeb`>tw1vPv=i}R0^ zKQB%>^~1m)57oeTdud1=+Z~#Bfj9Szzu~m(k4Y8J2#?a67Rwp|T>Acu>5?T&=wuEt zd+KinPE^fmqxB~262^)?{yo1xtn}F)RKZ~oZ2=aDe|1`+I`KIvS!wmqN%8P4{;ApA zA*8(;sA6ztzU2Eyj@9D9g}-Xz>2p6S;W-cQzOS)PpZ*7xt}W8z>b>iJw=*G?KCSpF zRyGR$4$bB*o8!rBpW9PMEE~mI*5S2vijK}n>3r(x^5tDeabTY;Z`Z!4 z;nVJYYFpuYiAc!#6L8RdT!zoF@qDnYiI_Mz#9NjL8DF^^x{D4HJ$pWTWj~0+V-SO+ z`}gMb`BHMifoJwV+6XiCz5nC#7MuTDF`YG$uNTVqY=)vV7@jn)%)P4An^CjD7&H@^ z0%XE>X_h3?82OMm)1QylighOX=%nGN{GQc3uYXNpoef~&O(E{A5SdF~8eSYu#v=ZU z!VsV$6xNzh7T<(_Yc~JC)PH#X+w>nEE{^|8{1^AX^`Czc{RdO|zx1Ds|GfWc5OKO= zxYtoz+rip!{_6F&I;|rDaS$!dHf=I23H^eGMoV?*6}@^nVX&MWNa3PX;%}59z*0HX;y_Y_S z376Gd{@x^YPsV_|<&>^gz$)_D8+et!)9ES_?}^UZ%josr<=n^bEqn8JbJ@H{?Fb5_ zuHm#et8f-3ho$I?fw3VinfS3(?A02_SwC4o{PdCmNogJz*ZbFn>dbT+tUaV}+O1cR znhrH|I(Sn@3eqO>HDBlHGUw|K(d15atq+(~_y8`W6n%^qWO%l^#uB&)4O_p-MT{&6 z16t#k?IGAB+@|_9?{)QgU_=HB!tnR`hJ?}L3czl+S-b=!wWhC}4D)ONg;><%fp{qG z3-&mF6M&c~BA>WK4@^B@i^PXI;>_Gd!pI5Wgd{{{cO8rW4w0W;wg8E7a=@97LGi@l z?!oIlz^;GlrUj`ly+lj8P&-$HQRYPf-Ci^YsE!xXzRY|kw*a|Ouyy;~f*Mgs$8K~* z0P3AT-=L1RNd+<7ZWmLb;?WO&(VBHmxi)(|g^t#6q9_K*@9)Z=Q6i<@gGC;$0u7z| zi5IRrf39L;2DxB;SP|^vwE7J-Y!z0+L{6|&i1nrXYy`MF5nXLUR0cFXjNJM@wD>um z1W}CCDcL~Uto@k5?`^xdz&FWJ%~7OXffN3)%N2ItO{)**z4yam0rjj~Lo2+;K7_vp zw^{43&}iy*>aUBpIh67#x{P#;>HyfQ?tc8edci1^0sJji7;jemncYv8z9>l+vz#JY zSz?h)V=Z{tX5chq1n~GFT|%ysKBa}HF$$a&zvYRJfaUOv+n48LMa0#wTVe0LL61H5 z$XYQ~JE7cf{A*`&$oIogLye&Nr6DGqg5^Ihr&z6yjch)vV@=-up#-WylKLpDgEIN5 z@Wes!+BP7`f<)_#o59#Fo8rta+gj^&8D0GD%cpNq+O5JHkKHPiz7KP!m`O;qYxr;I z6Mpdx5gDly_Dc{-_DW+W%KV(~mJkul7~7$FU#NpZ3P)RRP-RNxXtTwadHu?sd?kd< zK*sqX_IR=0n#ld+Pfft>j!*UD#mZv6%j1nAPt2d&398P`yX=MIj_pjU$HUuzoh2iK z2W+^(344$`Mgnu1VVCo-`6S(WH;7bVfe{ln7S?hN5|bGNAD_m$dKWcyvjlFxIk36y z$JV4O?yJw!yA_!=R?CFZpH?HLreYQw{8-$NR|6>o8;*as<$q2QL&TX0T6cJkjWa%I zgQ7VvOMcvns5^}D zbdDdhj-S|(fAiTjpfpYP&EdMsW5dZ&IFhgW-de86#q3RH)x+xapSI+&52k1+B+SCM zwe}jz26ACyKvvqCD@@43Nxn5Y6muO9od;aO$_p;wNT+2+w*BlhS--htMH004VWnxp zR7Uy~nd8M8IWH;a%GDf_I5!@=Q(B5d{~Ag0^P+?}8k%iOJi)=dC28L#KpH(cXx~f) zesvNERb`3SEnj_#msUF>#F~heaAiYkFzexA14ke4FTAf-{P=t~i6Q!|eNcvk@wRrd zwIjMXF}dM-;P2lHWjj<>c_9V(&^Bq7EoAi8!n`zr?j0{Agt03G&cR%%=RXY1D_%A%EhJ=z*SHy4&?A!(vGsS>~{ zSEym~u!NdB9?$V`E{Tcz^Q221;^-R{ie__e)j!=nz)!>X>y~Y1Q#jlIctgZEr~%Vl z5!Yu^2ZxM5Dthtpt(_nGh*L^-*Lelxk!FO&Q>B)kXVi7s`bnUOaSYr$O8xrR8TF(u zmviaF@T&b86M$W&8C@*G`RZw5kcc!+IZG(?(ptIjoe8o)2ak|SBck*<@su_eGalAW zjM<-O?&*(eEaanGY4+Lu{MWYFF3zl|RFXQSMLBlYY+_-mH6?ekWpho9!Owo$qV=IL zRam)bd#mk*#0iP;V*F&BR5+3wt? zSY}QgbaZ`7A~$ZT%Jqly`V7hNue}x*lH8I=7c&Yl4ITIf@Cp}<6L?yvIiy*+rshAv zKDdX2wcRQnq>5B6r%(It>9;*|CZ#FTt=XAVv1%fm+o7LWyU z90`l`0>0+pGg+e33sbV}ZO0%zGM3JwmDZ50*pNu5D!12=csNko1y#CgBrS1q@r!s1 zyF3Jjb@2t)vGV-}{gI&f^af)F+KPI6?1Y|=mZwm5{JZ`-(X{;wHhHEc0B*cNtRXfX zyAB(CZ+ZAwOj(-_?hdmRghfs>aXw(afoqQ8nD7XhTf0EsB^3?O;f2m2Xac7-<)+9` zX~R|x#pFuYxaE5d@2m33Jpqv-^s=#Vmv-Q^3j(&4EX$`DGH2e-{I#H{TYM9M4-12| zVTl=HVgqzWFNASA_UJGrq*mV03bXIo-Y(!CxY5>s24T{I^?|-?;d}QOfJFdLcl}?k z`S0xPh2kFxFCId}p?I$?f)&vQ66TZ~BqIT$A+-1Y&`xogAHT)gSEXvFqy!5pj-TB++xD5X?xFYWviQd5^gvvzK*qwJ>6p9nE96m>tk zn}G6AD8;5r1uy3w9LrtyDy50L4qYe9QcauRya#phFPIC_Lqj>?->q-miALt=Sx3jW zo@TkrM&6N&w4brU_X})-oIRiV57?E)SVegK|6&dpi-y(c828@URc+0l#?AyDfR%HF zU_}{wHXW?@y z0sVABVXK2U(MTD7ow7c$xXZz{xO0qQewVZX3@dW!SQ6eOww&5gWE04Pyx9ZH5UCT# z&68t4ptt#$SBXJaO}3oRrdRZafVpyL$Jlyzlz;EA(K>8WLJCO~wnXu{ z-{IKd(nKH?LbcOt=Fhq=n?{9k=06D%xjDNU^j&x?<~Z}`!VK11bK7VE#cqMXVt@hS zsA*F9kAz!N9VPOed8ku5h=-V)ISLYB=V$MSRMF?0VD1%r-|NMEBr1Nli@u}uw~Wra ze{6SIm2(AyXZE~&x6QJ=wpqu|uG4FuR!dPos0cf4Bi&BCN0?RoHoTj?Pj@`w15$}F z^n7G~dKg`mCl~gH$WjT73q?pW#%@iXTQni|)!Gh;U0nOV+6%d3hEwqc(lJu?oNF*T zKjou3Z=Z>ClU?UN_ucDe@_1u`=tfG*%8;tpmWG0z$WbLA5K5ZQ z7GXefvLFQwn0kR`1q~AcU_mmWEZ1if&h&EZ7U>=WSaYFr;9;ChTZ-DX#K(_8OJaF- z*MYjx3g|^4wxjMPhMwmUY*UBrc};?)YWnnBWA4_Ut$}S#bYQ+7ex1rBwTcwA*E*`K zArJ*=&mCwFvRE{Q&HKzuqr`~>Uz-Y5$`sY#wWwMj&X?3(WQ*YITMKJGmbs^og{?z; zPO^NoQJ%C62qV+?K&u7Ibx)8oanH5kUEl;bBDy479V|?%G0sp1v>+B6B2Y!4u8}9* z*#;elR)5{@aSl<6yOvv7Vg_Y#&y_0B*S*hA4&oHRIOPjdvL7@9$G7I4>odi7GTuo$ z0sGo1U#`cNFN5MJXsDIlbOtyr$;Ih8laf^R1M5%<(!P?&EDD~W!HKOc{MCm0exD`| zEMqKmevm$|!H>*~C~o6Ax~8IXZ;4|FMn9?= z6x~2US10q%sSI$XEDzNG`wcO9?8doY=P)kVfirmhQ}C!o3<@xQVS)h^keCa9$%K%3 zLY|=F(1InK%?;Uc|FeVJ+`CO>+mQYK(Cbs7MbsBr-~6MT9Y)C1)^ zdmz?f;-*jla*F1=kaRlP>XsJo^S7tMZ8z5JhF%|9F(%*tMcruZ{d^rn6yhXA)PqA^ zhMd;6%K``j)Y6z9P1z7%=&4sk6ddN2Vl_?K+8mIf zR8*q8m$oPCs%3K<_rO10_5I4kKf_MV|MUk8JQ=04$=MVUY>K z|5Kru>vb~i-)mA|uG}SU5Z{r?T|UmjwLK6Ca7g{tt2R+38PHa!Nu0Xgg(DOa3g|Zv zM0UzPU&&qK0fDJH=srA^A6l5w@Ifu%eB+Zzio{hfYof2a80QPyg?8P00`4oj87XpO%NYl5|iHR#dw3(P~w?`G2yJnN-&v~)stg>KC~zL z@`AA}4yOhM{%lps;Ow(O;VAqX0nD3uAA$?uk?rO)wULYm2(4KFu`wX3ncvOU0`(&N zA6b?q;0$yzoRc!$@xT~B;k$BTGBhwANHvlZJ``nz-JwFt2X!(8#*0HAc(535PbCYD z*#lmF-98U!W58#<)mX49T<-py$qjIja;!UBaOMSSuId3yFSn+Q_slUNXB5kZ>9C&; zpKCNF98@SCu_>iYuW}vR;hJn^nvx?&m1MnV@6ruHQxqXXFk(<&Hp(v^724dp73REJ ze~ErH@K=ZWkvXo686VE6?^_ruFQbm1iUA7hEx03K=hwK5%;xE|R+F# z3`{lWoTr849UjdElj)K5Pk%96WcqNZ&_ku2Pmn^zu)_r=IUT}=1vyPy)UQG`n)3*U zGr}C^9MsJr(W6cf#lfJ6)w?K16BJ<~Ru_WnW&bAZJ<;q8h$cF7 zoGoj9bRZ?BnKu$cAc-`_NH8p-%}~rzI5d`4N{vhNbxm$Kr~7HODn#vdoVpp6Yt=2I z0Rvo(<#0vRsAH~&?Ss`0&nLEuy!w_f_iuw-D8$hP!O~Z#h0dnMFs{%fJOL$YRKGrF zOngQjrY{%960eyE8ye<2ILZ59_kWnMfS^cV&}ZEG55XF=i-;pxDp9WqWa!sdXC4Tj zL&XaBJp+tO9Zu0sI7@2f`qGnIowj~cd&4K&##WoE%H_^SH*Y^zSxj0fR`bbYi^W4~ zD>MNu0K^g^pvKCuIrO*8EPYz*FuOCXzu$^=)o|eY$Aa_al2V<%ovsD*;UUFUORxP= z`SPZ1QW%X{=4%qh2-GJLvZJfQ7w>PuFC0D8%1|tPxx#$8E|wJP!WVY?WO&HI+h9eO z=O65&E57%if4E%6b>2V7c3$qz?d`34`y5RFp*PI%!Kj)r%4vO?w_-I+AG|({(ls{h zQHUzEv_;FFF+~Kk z%X(Y*RlH(^ZV(EGX;7BAvRV0*?E`}XP6g)mpUzI9 zTO)w54CeX6Mx%vZ{El2QWtLC^ZR?de;Mp+i z<;G*r1o=!~WFzJlMGDra+qL@u5L;=Fa@7IfsTZ&&2Tr4e;Yv{}GSH~~<$=>k-iM6b z?`ctztO%i3yMb1l2|yevS39h@*i zY*O+taieK0{h9CqiR`r+09CTm{=U|eA3yI$PxYbJf=ZPpvj7{N0G%{yaQrb-j3aKk zJ&x(eg#bPM#4ndus1afeo$I*N&4EWYPRnvIFv8~y z>uZJd*VyP4xv|qWX?QvGv%4RdxD>ze-TRbF4(^^Vrq*qWBX?lD?b1}ko$VP04{3xw z)jARS@yZJ^Oi5Xh1*y1Bnrv8x*42~6cHx^?!E~lP9-Ta_h`wHNLz4`1>6j3(G$tL7 z^3{-d0FBr*9&Q=w-|>SryJxx8xa%YPi*ci%So2J9-8(Uh_GQVcg~0`5-^=6`W2Dg^ zj%&Ua)g7_gcCRXuaU0VK`PkkdaikcL10Q5~57^$Ud5@p}`Bq?zGl?FojLL4J?=N72 z_M!^5&qPoVN^k?-zx7GuAj0Q#*d@eu^KeGjh2ih?jdC!WCm5}v@8KVF_JJ*yO^j$2 z-2E8kq)592YI|7s{xswxB!ymZF3_ol3gcc|{96(D*WrJ@|33cbc*ptg_>X^G{s*8r z$?3TO0EG1ak%02*urmMvWBI>+3ZJeQZMmQ~7_i2_SE)6p)jqmgvqjvmV4j&b6pIBy z11UtbQHw{$8*{l}?I*-{Z)jv5{#!Tf zL-iDlBYIxrXb0#-DB=V-b@gC-;ZTVbWCgEbHT8neT2FWC0iFnK%+_ z-^oPJj1)yvt_dmi_4EqXPA88oT`xkoCx&PxGho|Z;j5-%yd!;ajZ|%?u{$OKkIN_i z8<&jAe%J4C)+;W`oZ54d~bCI8ZK^|VvfRssNIGv>D6^)1Ji;HX8T<}Y@iM4$I# zf3gm$QZUqm{zZ2t43(vml1a2;&Q@07orrkX*jnbj-5Tfaf66xKJ=pR2)1gMyD*$JF zz)SO-%F5Ea-q}};kLH$T*iTM(tAdQz!~yjP-bazl4%&jgt~y2jCtK+ zOUvna|Mo&oGsnZ^*bwMqQN{n%VDOO4aXb|z+&ehA_%oNW`s!^EUX_*;SWiO!sJ->b z109zFmqfz8K(ZsFNWip!uZDrAu-N}}aeDYdy)knzxc_B?Tj?!@w2cJ>Km#@GS|T+t zD8JTplh)II&p^kcz0mA=j%Ph?Z0ca>w|m;*yKBS??s9w?5_X)jz52=&+4*heaQYV) zZJ{bi#x7|J5+vtR$^@N?z^j{&V4|&vNKE7A=~I)+`R3{^oFK%gsNsrNI0JSd07B`( zduTLJkmu=neZN6e1x3G2-^~ES52A6Gn@}RJjnKE{I8ma{nFzkeMP7`q(HE%OjJ3C7 zxGsNNPhO`O?}XeYq>zkJ8jP!2KnnSpTe2j~I2|+{IV9EhwYx8jNoi6(L@FbXTl<&{ zRE#$H9T?9off~Qg`HcO`Jh!}4uCY^Y{`maK<(vPbpJ?8kiQhRH)m;i`{|eO{mjR^GG1?2&vmM}?%$>;HRmR(ePA!=(HCvL_2X{v4kiGJ2<%*igQqQb%d z#Q6CjPRQ?NLkC1%-;bSm9`TEVMq7e-a1k~jRT2n_(Eff?OeW3L)u;-tAW*i2sbe+q zNeprh+qf2q)mJb1g!sLsF+>dlPnOUSw=iRPf048MsT^L|NEyJZA8bRu?w42jQO3Z) zu-P^J(t1MVs`fT)!vE?3yN{mz(|G^3Q3)H#BGR{CaUaapquk5bbyO z*GDLQ^InCS+=OIGDJ4a=5*hS;&e6&mnxuhKG5R;+khf}HqL{_tHV_gmRDgL2(7o=J7Nutl0S68&H+&#SFM;H1WNeNNN2hdOxrg%u9LT zakB4mvE^kRD;4QaE-PH&R*4|t>c)W!;#DC)oO0Ge?=kCvTW8QKdj1QdrqvZsRxTJjkSgowyvOdB66tOs~XSV z8odg%EeVwJL2oiv&OxrBlCTN>78@GhXHyZ+9q2hhaVjLkl2xHc`sOF!zRT{@Uz~Pw zI686tMETOz$2A^|tvm?@bPV=S$}<0?SszMcL!ReXo2!7tJtq8j{gRd$g5!M5Rbp7Q zL3oppxTb>HwN`4#!@M@#ui_8et$io^#;(6LP1J7W=bB`1v z4YWe8U%R9>G%^3IDu`bhU|7W5CsoQ2HG1bu2L#;Jl5Lrp{YZ3ksNq>}W8`ZTd=+%7 zx_}j3hC)_J`uEx8^g+dToq`~(@+VSRIT=*(_fdBaOYhV#ri4 zJqw6UB(E#{V1Iuf-WYkM8FnV%D|rnP?>HuDNXNmOZwi2*k0t13wytM^-s*T|q*9R8 zcP#26)Z>x_8(D>wAIpBG`zM}X1LdtarIBg-#(AV8=c$hqGSnl!w-fIP&+{_RF2pXSXl`*f zu%eAiz>5~>6!7Z4K#RXuSP7BWbTo`V6l=}TH!Nn&=6by&Fb(|mclYeRK1Rv=nNom@ z@096B5^HQ8a^6x9az^<&65m4Km+AS%vXVc{OktAlVVOx=XbqM7tXIDXANp(~W6f2A z>SH&YMjw*3-WWFx?cNNDo*zAkjuA%lA_2tCXAffbPCKm5n%{n#X#eK}F+9J?R#wIv z+?UI*mpS}yWQg15`0&uu@Xt!v@11-4L>-TfIX!F+;Lq;(jXaO%8wW(SEz>KjzsEz8 zFj~M2r{kID{k^z^ZPHoy{GuImQ}Qel2_XmNf?CaeB$*i9IYE4M2%iO${3nOTLz^`RHL$X?57_-17|`J zIDij|&Td`gB67gM|ILT~&*CHDZv-gp-Yid0N3rVkOUxF zAmBV6)e?OeW3LF*J#aeiRG zyISD&M3 zo(#z&Z?9{0uNEH49m{774rfkWZ5k~$yYRh3CrJ$i%Im)?eBI+uY)85=@d=)CLNts1 z%LrzE zN1xmDtggnlKTkCx&Zs)h&8VB`Ab0z8)*g>~Kbza@e+>-4mA@(d&{7ooVqPEyHOEaJ z&<(D59bL(xP&hoT64kRalfFbn)SFtV{POp$$;-q9h_rg`vbAdhan^6myL68F#`w>N zf1IE0bho97XucTvf;0}yzjTqff&Xwk{2j`VcUF3YTT`CaLg{~l+c&zMxSK!JDb=a> z1TrWmb9#S|#vj+EF(^&tTI}%(J(E0?qRvWH9+saT4@>NAHxm*1Gd7RPF7nK4axbv1 z5(8IxnhgE6Ao$DCsKxbb)UA>EtaU?6{B~?RetB%VJ;tf_dJ+2Vo%(&HM;0#-0Q?kqp5cb0 zKI@MQ`iIAyKV4iPJE=b zjkUKqznpF_e$F^5cFCTYoLVj0;rJB4WeH8*KaKAAd~Fc$yKmbOaTlDsy0r9A>_gd< z>vFr=yL3Y+UlkkyV}OEJxBAC6FBMt73!};f#vw^Dq0K;}={Qn`mgwRH_rxJWlpCqs zE5xV1e%Wr=TDAqYK(%Q1^}3hJ#JszGoSesHW%kEk_5Py!SKfW{(H=P$o9*{E*M|XL z>COI`YWvm~m(&xB=Snt#Or!$kNF1=7H~`}88^V^LYO-~1Obzzj5JwqOT?flCp9Pi+ zuMHV;<3KxTEKj^lOz6lVhtO4;O$akm5hgXHLl7i#GxXbte{l0y$Fl&njfTL?sN*B>V~7;1kd+`19A#5Bh{d@=;545_O-ZcJ zA?vtTTkhJ*chtB`ZZBX~t*%AsYiZ-x7Y9kcJpDf7aIdxy1tQX~&JdH#fcP=6 zDL)>+&7YMS1VIXkir1HfZb(VlQn343BdQSB_c|SQt)e;6=$R~Aum6?}rRv)PwDdIe zvN#9Q$TDM0_{ySG70ta1tENPxWzPlI)n9qp0qB0FdnX4`6aJ| z%LtkZCH^BXF%dL0kBuuDGEFG{;p=fib#nd7i{08wBeJCKYnvxD6n4@R(n1W=rFbV= zpc%Q$vU~=fEUp;=Z7;M?JLJpxC<| zIF1;?Z|}H!+4rXTTkc3ftU-1vJg#4^O{|rFk#*1w?9EiTbi`H&=XbdUZd-R*`(o#(kZG}ZG;4D+|S=njkg<+FrPLxgHOqf5aNK zJ4)=!HDVAzfC>~|j$V$PJKZi@^}#>ww@*m5?jGDUdVSc>#NiPZJxtBF!X8x~$}WUX ztibW#EoDFJbz&dJ=$In}+}lyv&&Kg1GTG5Sq2o`<8LyqScqr}6XJv*B^2`}%X(w6j zEU7t_U5KW@y;h7GQ#)?{sGafV)L{XY7c6JrZI1D8G8qbKlGcfQ)ZGp9*{hykFPCOf zn$rxfJ&4vbHul??TiKBR{WuGm9M4bgu`y!TBx`%+_Qwv@E0DM4poKh%RDK0Gu7Xiv zeC%iUkt?)(g7PT{y_}QS2tR(}!}~$}lG=-?EpLRV)*p4W-Qtd%iHp|ZpOoq!9pY<2 zB;bg$9v_bRAYKSbkQT%aH=BSRS$kH^M=GA@9hLfKn?o3JC5a(l*1V0D+75E%g3BE-=DRuGHl35EneP z{X4+RYmY2SBa`-~N zpZ(N--yYZLvi0rM_!Kd!U**>^_i0KQzlV<&y@!Eh_O(;P>c@JXq%w1!3gR(zKR>>Q z+KKk+OJ-Bl#ela7>&}vy%91_$Z$&Xu9>`Jz*jo9P0G5Pd#~!(-ZFX!itMf{Qtut~t zU-JoiXrMhLhpx6qb8XYD(pFU_6gpLHb-X@>U!Q^17}0C!$fH`5jsVactiy}s$SHZBKa{v4C(C)H}z{V}5Qj9SM^dBPJt*r#SSp-<)- z@4)X#>Cd$BstuP=6;~=uRN*EHWiDHVyM9eY;7;zE^dEBB?uR~QqOq%CLSCb~PG0(3 z|6g}n+Y|p>l&Td76M1?r`nM49{~Z6D{de&{Cnq=O|8f4$^Oob^{Qs}a|9GwclmGR~ ztq!!-0@msVUG_*HwRLnnUfH%R5nGH-nlYqU$cBXHama~phRQ`u$$f=v2Zqc2ijt-! zAYhiG8Ag(dlz>14Bbc;REqNvF8BiNDbIMxFPAXa&Pe^X=l)M%n|Fjqx^;UdpJceD% z8|-EIOo;eYAs(vgU+nzIC@W+Sr@ZU_BSS3HcNh}A$gX*9yw6AtSRm+cgxNmS#ebZ; zeU9mH$T_t~kRhJ7avw(#wScFmHUHgj3*%Y$gWtwQ+`Zjgg1IMf)i=wFvnTi$+s$s> zs}Otl7431)wQG+(mmWEYsZ){0?ENS6h-n>ngi63pA}=9g0dVF*)%-M)`bP8--#XVf z^4G3F%V@j;Z3uOkSRJLoJJy@q=JSVSr{kSegsetmCkwqx{*?xU65@k#%0!8D^9h}1 z?SbND`!mAzho0||j>!G+b(Iakf1@`Qv9og}>arM=gt37C|a&YvpiuREy4%~kk82)%(NR;b0f!dhc{Jx_(avW2gxh{c;9vH!i zCjkqA-v&bZq=Tz6HfRULK0*|5t@>KwhpfkS=6iDso*T7@!~TQ%Y{!RUmG+K+KV%E1 zvlnsxkBLL?WqA}OxxfwVkh;4{!71>z{MKPWd+0l^vcMaH| zCT}!Uo?01mn(gNsl;f2Yl1O6Eb95V_Ncwiu1=P!i^rT<3(JKff(2IxFa6dg{GK`_XIpDeeUDVFXLnU1 z&mFg!F~_wq783nK$+*|dlW%B!qNod^g5t?w)X7rlU!dfqIE`y@2Y?XbjsPOZeu#Si z1}|K zgb z=zg54S?tEHYO;e4;D2N=;b>o8>DyQI+ha%XvzI!dO1Y!Gi2G+BgDl@C^4|lm1!ioD z)gDgjj6vt0<_u`W6uzjVTVU$tyiF%aO_*7pI3FfMJUbwryb(k2Y> ze=x}L^>(p4TwoV@%-Qa1c6raE{VS3n(I#3mO^U8ajM-}<ESlz*=1hvD{_ScbYJta3G#*f!s`z&_p`H!Isux4w65jd4eUIq-nW5 zTu{dEq?7rIz=zxO2(T2m1fyrnuLwi3l8*rclvl@aCG7W3HiXY6+Q&!*9*Vd`khmrfeNE3+)1u+aPj4)f76w+kk`xP8yxb}s5La~j5sy>Z0v9Itz(L9P40rkmg zcd>D@f>~>dKd0;fXGdH&yt@L=0n^U_H#^vgY9MBVsUG%=YnXPBN!l#IF@Oo6o}8sJ zedV6YqoCs(0ukWchxwU0P})a`_1y|rI&_8m?5z02%N6`2*Wv9OkHzW0LTn&)dzl0FSXaYoz6$TRdDeZx zmV}pw3)Rzms?H#e&v_61Rt=^!#PD zUpV$R3;I55k57=tI)yqq#Ow~?Oa>5RWab3>t_9xSjtP(aN>ESWo=}BE(x#Sjt-0C* zqO~*C6{u+?h@(CHtH<<%ZjoL|5}TwB5;IWlvw5mS_r@%*7L4k~NC>@%OOZ-SnJ%Mb zA?=~UPo2lrUuAGh+KQ)?Sf+cQG%2XQ-j?D}HY%5NrBK6`uXfDrF2pSNtR0L6;Db29 zLAQ$y`9FvtrKm{Qna>s+)Zmb$KIr~(3NdXRg-yFX!K$}9<`5?i6TOhpWQqZwIF&ch5`}a&8F9tb&WOU?%_WR z{KQ%8XxGQrOh3S@VmmNRWD&BCHa^Wp=;{z-2!i(19OGCd$()ut9^+?8eiY{0GhVTZ zmZL!dGQuR#BY*Y5Bq{IyApH=7(45cX8LGGvmeaRvxEQciJE*{D&4sw#y`a5kBA7@c z`@+Y*vB$^p;4g!3K;e>5-1G68H03Yj*aKAUHy4j1KEwiVlQ@|wzJi8-h5Ui7`Idj0 z6pTAHu-BMrB$0vRLE8)UG$qllDA`eh`_yrzu~9QQ!3CFh9fdh6HRCvCrdf9)nu1W! zxM0RTrnOHU>88oh6hf`7**=6uC=_5p;IO7q{z*0IfHxK!=hjN>wETEErK9v9Go{0! z+Cj-ghdYXYT)_M+_^bcH`PBZoR-YR0RZ73B3>2L|w$>|xj#ZePHcC3wad{(yX4PNV z61=rXGnzzTQ+n>Fl2Gz~cyl_g?R4}Wl`GHIP)p~XgVu~ShNhDZ?UeiIH;s8$nX6c< zt3m2Dq50VL!d`>$Q~keXG9T`tl&fn~eVy<8*OrK+d?QBpFbp;FqwoS5BJ*bqU*^?5 z^smd#m7R?j#F(k4;3s~+1yubZf=e%)j+N9hT0cI*@FX(xrC@bfGY47r4iw9?Qu*TO zMM;t@JeFNFFYUb^?;0vfGs1dco_4706xh(zjawHoPH5oJI~XE<~iEI;#29raIOKK#{Gcby&wOsc0VC`eS}n6Cs@N2@E*gS zrAHLzrgh#;rRBG4eQruW50i`r+c_&qny}flQf{$UIzWG^{5wZ?fj=qkFu~Wq z%;N=HOx?`ZGWYL-UU6}J02}`~5ei}qlXFTjHINGFI7XXF#5sO`q$B`2TTcb}CTOoQ zN)(a`Vq@-uKDxt)(YKp$e;)OP5np*)*SJaRu-ka6%nLsBlK?+Jz`uX> z3Q>nJhg%Ngl2W0kd#1@rLQH+^7dTJJ$9$D_*i>oqvc=`xd?xW|Vjt-F!W{&I-1tr* zPJqTa7m$kONJ;H3nRB%~qQwo`S1yt(OY)bMoiBD^5(xE{bYqyP` zk0X1S_)7zYpT^WXta-1N%EBMJ-=VkyBmzpzs3;M2)An54>r z?S3wh7O0?j*v(onY3*S?{KZIbn^BND%?(Z=EvR^%A+1COQrgpfk0a+Rl@7KVg#>vY z5L|uz?>g!D6p?32qa&=jGHf~d~gFc4J7?eh&2wIrrI=HYp_*<+YHf`RwbSopcFQ=J=@ zI&Ki74U$|)NcEBSG2q1)0ndDVo4_rp&~MITq3w~|QhT-Lz-k=Bxr1D-tV6@`C-NP~)G9(2MF*)+Rc0qn zrlVgw*2dui_b$H<4pMW*SRjm;PgaxPQ?l{8wCzfa@KqCoO{2kk<=!?)3U1P!%!m;C(* zOw|zlE8&^YEdjj4`T;+q4TRt=qLU5h@0A5(KUKU_EHR6wbkJUrDKL$@SF$DNuU7Q? z4fJz%g~s>?$2}!485LKJ2C|NhU=|Qst1PA;i06b97wa_+1f8GDuF%G{dTrX`gH>_H1n{>iupwj}K&h5;%lXuWyi9uHGy}Am6$kXf^$D zmq^myV@TsHrOjQWZ^YTzCDwaLMWD$8`$Qja8r~y+mAqZjX#L{89sHQsue@B<|ExWZ zHS#sF_$Q|{eL`9^LM#Y-X<6IPW%rb}!${#GFp{_c36= zyRit(!9YRFu6CHmuNEgRb{dlE@p=jYhrb+aS_GJuAV zmw~~`NVMuOqMm|`2G8)K23-V7;wQ^eFj^Vc&j8^WCgh)iL#!B>;+QCbRrOyZBaSyn z7dM+nA~hX8F31eDecam3ABzB6MgzVbU(6Q2;jLDcJd#Fs7bq9-T*q{?J^?8(2|}xk zG6kbMems)ez$mV=u5Vf#M)Ne^yxf1w@jBo7CB1v<&37;g2LMcV>8cwzm-#*~e0(gJ z+Tqa9^zhA46G%+6>UMi70eiowh4pq*IeKI6x0hUcpGfw9jA!V2o}+%;oK*VX&**!b zp>#axd8^)KRV_L&eVm^(uA|fO+4^zX*oZq&(DVh=qjgmPCNMIIUIOAD{MIV1SF=6U z>-|}Gi?WU#e0FYMAx@l~t()Qu2KIm*TK(pG195Cf!|^Lw4ygjqf`*1nJuH16_`Is% z-0P((b^>8jVDmxPrRQ~{e~OsEX zMYI*F%@%wfE4^{B+dKA-{Fo zWK3L>prld#|8G(h+4O-92De70cLR$RleHL8}TsJm4Z-pOU1s`t(FWtWgP`;?`vOs@O zZm~cgbpWcW0;qD|ENHfn$>Dy(DL@)10!E>pFtn~q<^j66-J1a+{vObduFyUKvZ}lC zftP{dUEiP=lvK0#xb3b8@d`w}SoeCHKv#%cqXcalCl31EYT#>k>27`@vl7_D7DzMk zg%qE+Cd8)tKG+mNd>^XPTBt!RJjMGq>dNL~hyG5A1#3)6QAbWR=P|)*o2iA?>yL-B^aZ-jaYSbnc^a-WQgcjy=1)tRrjA zp_*rhl`ofvi2DIgiiLCzqybzGk>W%u)FT%;xhMDDW}%`<IZm&+P@swZD~Du(c9f08L@z`X>mWA4`x3= z_jU>1w~^^zq+E_;>TW4c@-@;!lKc*h-N-0}hS#$!Q1{xDv4q2>?PSQ^jxGvUl390+ zLby{hD|4UUisS)YIc+&?Ho9YB>*)2Ia{5Gkob2BS#xfZp@JHkwyQbxcyT|D38B9b# z%-Sh)0L>MRcZY35h3*sKt_2sKvD2olmwp=k%k$0&Tf`=7iBtHW_7j2GfWQu6^;=E? zFNoWn2Bu$z%soyTWv?~gZdsie`0t&wPK2J6*ZBMxbNB-_)B#tLg{mHnw1)Pl^)EL? z>$tl+how!gcc`#KjsnaWTEe!jFR2HYdT^I=CXb0AWdole)ipfsak34YzingC=Orj7 zMoxVjSA(I)2*2~FC9w}1lPM{Am4L-t>I0rXPuQgpY+d9>V!RWtRuE$tV_=(^XJgKh zr9#KNe{^rFLT})Idhi;t-~8!NEESIsv6TE4LWs=&6F*3- zn6r8FQGS>7UOnjXw_FDZVy_h8M0?yNt%J?!}JROo}HaQ&vV%UAazM5)91GeS>Z`$0(Brx|UQR*Nq6vUm+7`bJf z_~6=RvCe#_`v;Fn2QTV~@ixMxSVugGg!fnjgEYPC*>W-LlJ#eWXs68Oukm&0$$B6h zct6Fq$^mJ5pX+5XEmdQ|Aq?^F2cIaqPjEg;-O%!h@0O66aM{tuS38*%%a`@tGmy1} zIfz{ayNy}(SeBoxJzlq@OyI5TUg7A{fcSU=6B;b8&96?pDM=JP_kES(TO&P`8^3Q* z)lc48dB%1qdg*|t4&T2y(6-U+>ZStL&0omUy$JmMosNG?T+>i*-B(JG-PA9HH!YIX zobTb*=Vb5wRN1wQn(dQ2Km}R&iU=GSpNK#AGmYs!hYkTO6Uj$MtkJ!05x?= zXIY}|G4136?k%6QEPT#?Z|fw`{XD%0OU^9nFnle2UU_dl_Lv|^(}XoDYx}OSm+tC= zX?TVT%#PiEYIaTh>cb(3`%%v?@}`cNyVE#?ODpv2ZAoW%%#cmaNb-a9n|1Kv6=JiC zBg}G?`kn2q*bulV!zp+@srY2gP}WFowBOUr92ioSrq8RbK47`nu7Vdq)s(QsAn#qB zs7$;oxq;kZoP`P>V(QRjRmL16Dp-EP?zkMAH2@)>v%?RY4+9m0LW#W9Sj?`oHb^Mq*d&HU^k!d)-_QU zszHFHuPe;(Kr97lzt9OLTDJb|d&>-bQdaA{^ z*^)+CRpCw>ke{B_&Q1JT@S4YRfpjhK+j1{K?ixR(&ae7w^wvXf%pY-XMbum}{J8|R*9?cBF zC5|HV%gAu{!29Rwmugcu96WX=>Li-yxY*~Te8~cDEADEOKq>TOtwDm#dA%=jAoA{a zxFaBzohbu`L}bP8aCX+L6&}uo7&+}Ri|Qp^^YQA&7unXa+g*K|IGAW z{9@4bN7?uDSMAv2Q?HTU)?+I_UN^K75#wHJ*N;k*w&6`{pOukoxr@O}^LC$rPN)(I z-RN#ErHVuWEZIlLpgZVR$}IvGKrjGn<|UuHOm685fqk)y%YD+Nvk+4TY4N!U{B5}$ z#xNdQMS9^~B&z^scar<@%Vz{a5d(hIx{stR@Q@Apxv@ z8NN69u`;1XtozjZ=?7#ewi?lZn)J2_yRbbZ`B+#EEh-FsQ6*iE~Em=l5 z-l!$HW1atX!raID!+d z+b@7RT`BqJ_XKLsBvl0to&}|Fe5(6y&1XJE0*|tBVE6sB&vtvVWuLMI8q(nJ z&SyGvBDZsAY$(1^gRh}#F-}1pVv_m$(HJFLsxg+#sP$ZkPLwV@ zRk7qpxHsGj;4n6!d8xG@_fS%`B>R*9BsQ8G_=Mi+)TkWj^(Esod@&%LA3+ox}E_r90Bn zMxj;n@O7waF7s^|rC*790q(?R2<4M>fMGAd&Mk@qqqp)lbe=5+mbM$?1V;JUK)IX&HBF_5Q~Z&NuJ1?bT$*aAo86;jwdR!qArnvi9F?~Rk5 zDsE%3$4gLlA-r$@fK`q`$i}SAh%VN-@~cn=3$W{Xf!lkHu{LRC^Amd=v+##ZGC_d;%a^vsK(ub2@&s|@01llb4cK9O*{xS$?AQjLf z753T`n_qH}X?qaR*pTdKw2tgX5Kp`-HC#Z+crW?Nz9DZY0Aw(+uIT1tk=(SVZ=8I4 z{gI)_ppU`KSK)K@FZ_nhE<<;h(?)xrs2XQJ2cF6}s$`OeD4c=CBv1Sz>Uf&*8zoL< z&DOXdnlxwi;WlAZ{ZwF5K?}QF2l6vyUGM=OazKyF18F?pl1P zE>xy_R2<=DZt2pr;h=3aEssi|QByNQ{utIwDZ_MI>D1`Weut@p22TxZ+^2w?S3c+` zYEFwl5BT;keQ%mTP$c~#3z)8-v>Uk87Ih^WUGLy+yru(>Kic1!HTMJs1}G#FUJB;< z^NfN|Yd6&?yCPAx&_seA7j+(f9S@Pua1>8lV$O}NFd;%c7AjRpIG`ca~1LxX;)`5-jJT_gMLch`s~MKyyz6fV!I~M+iNWANe-*~HfTXS zkZS82DOAOU;o~-PE*;zeB@J0Vt;fq(jFz;2Z7B}{>WOd(Q>*AVW*mEX;g^t>oZk;8 ztluMRb<7Y6Y0r=}Zy{coPkG9dw1HFrlhnZvvN%rBFo?5C1rQU_&?!L3E~8YxAY|~) zZXQJujuaZM+hc22n%k($1t5f)ilLtQhm&->Wu%VNbzrl0H(Kd@*tMN(XGx$SkQ+i*TTcx3rSy405)tq2U&qp|y?5e*y zl~%yl@zHl%zM&L5@-JnYRybK@trs`}^V>9xA6)-b|ZZAfB(&hC7HW;R&5$ftY56y)Y~;6)|+Nnn`KUr@5%zGnVo@CMOMbD zL8{eAdJ&VTH6XlDaB}nFvppeQvH)MaPy|CB=_^!TAQ zRwxu$jX(~yO`e6*OjRdSd$kQJWN`bu?~o=>beBw4KI%gJu;HVXj%e;39DQ7qJ@^+l zIxitW{f?6(F8KEaxf`QAD^S?-tHH>|cx7uPgax0GvrKizCk=v-EH^-oiScjd)@?QXaKT(DAy z-Crl@kkwAOh@reOJ9#$zO-0zH@X!vtBlqMGD`1`mRL>5}p1+M--@?VqxKK{$b!TO*1-~YM%7nAIN`G2P&$C;}84s^Zx+;zNXrd@cRn>_S0 zR{+JZ^(27!VR>Pn;*ZLTFr&i5HNp+Cx*W zZpmimZsx5eZ4U06((aoVuS1Z`R=u=z+hm>nvpUN~KUe!pLF>-V=MTuOC50^J8+TWq zn*EkLzz^ZyV&7_f`SDG^?sDU?<78&ge!c6m-l6N}?AFf)uy*yP_llf+Q!?tjnk~?1 zvRHMT)n=fYn%!||rNJ$&84W1a5G35%+lZR$c zN0DEQ7#dq6?ap#s zHXqlOsB1qO4tiSJyy<|TObB@!k@7r4OFARC6dWyazr+ibV< zg-Sq`ryTVb7v9(eZr!rO_!rF&uho<^WZD~z&UMSbb`{23ZXk4+FhN8l6!8Mp)b6>3 z@#>FP5#h(!Y)pWHcIR3{U48$x6ZY@hU!Sq!B%m61N3RgYmd>G#fZEuGmJABBU^6$Y z5sq2N_gypZfiK>Gynx{71V-_B4pwAI>_McfH|CSiqerefTl8QQ$&_3h!tWu(#Z43A z`=8`4h0dWki6Mqvi;+Qo=(3pNls}ez0w-PSje6^e@LhzcjfN8QP8iq;{xC$%ma)2z z3mCXuAS>Aba{Pa@by>S#)SaSw#6!KOq=c$)dIg(^U2i`-g1ZPhhnJF^- z(2i0s7U|Xqnf;CfI_e*2BeU9I1R9G<)S*wqGR_8=n&uM0>$oACjDK>G3n@H~lOTwo z6z5PhMW!e|{A26J|L_WE-)WEsi?IN<+gEMY{2+ht(La2SAD;X7Yu24GM1$?Mfq&z? zdXT)%aesgDNTZ`xT#RGmpo@wwV6Q*kcWApg*37CR$`c+YgWkYH(-65i55?VRsA*nv zY-e7@65~MOOy|}q=eiR@m*orwfHB}KQ=n$q*@U$N)5bgFX-*noz!X3LZz1>aYYy$o zeSyu z2U>>W2?fmX$bnwvbGGz-ceQgdgl-f7yL8Y0k{xNuyGI`f3szD8-3tHNAeTB-Q|K6~ z{r05eM4(#OVUUTX?JB|FE#2d%%@MOC zO$n9Ys#Bw-Q>r|Ra23pM{~Re$U5H?X*oD#;`hX@u|JMUm&zI9=CTEKnr7wROP4g11 zwAEC1p(SJ`*vsB|DLAwxdMV{ZL(&9j9Xp)O*B=yfR@-*FcVUG$&b* z_*cbJ9k#G~j@D)yoekCCfGfpxQ@C8~y5}ao0 zilezDuJ4d}D3POv~q%;c}TM{gJ1cnqv&N}tML#ijKp89+)A-u>MT``)rW?+MK z)CqMS1uh&2N#-X~FQ;Ktw9(NkP!Pel1db9AUwF!Zw7UyS`RK*a$U<|+Zv`MNqi9*X z7H%1~>Kc`X&FS|7ksm#>QKQ0(8)F1kT=|iIW*3>-lczDIA2F{DQ(#7>Nu&TFVQR}z zu-<}$U@=a~%2479@d>eCKJpeNt7oMqt*|&kczSDxZ=5&3_gCFQy?Ka3wckgO2*8TA za3bvvpE76L5bOLVJ@Z;${iB$yPlq(!e0pzOvReJ;y{Fa?#NA6Bk0V<{9jN%P?IyA| zQ!8q&7F3ri6%03SL5VzB8q!u~!pg6@(uk)P=hEocI4f~0tO%s>?vv3()z7dcV zW^2P}&fa3o(vTBDa73d|lgKS{l|$%6~t09{KK+q2-Al7b3n;iaU`iO(|GmeIlG4wu@ z^HRgBLT01;W7_NF=FLTZguPd{RRUq@$?=kcQs9MBN(T(&qkDwtLRh!$I#4?1{b)Le zgp`p?2&rVbulq4R7-N+7OXd`IFg1AMi1j<4eP6BxmrbXOIGQ-N7@5e8b z9fFABAeee-&$O=-*lpH+np=d3_38j2}8dC)V)G9aJ--z5rQCt!t4 zG*R5#RKkYL;S4P^H@7v`8_jp5Cb3E`8skJ_b==QqQ@uDP0uto&;fdg#jL+KY&jX){ zS^x0bP7VT=egptI_4+I41>V_Pg#wtQoi-K&0N1@&@fo#KM_Yo0Qk2fhs zgc`VY#kbK|>gz9QBGcaXf*7!UPSEM(cR@WTQUD-&<;#85rk!h>9!d~Ye!%+NRfjMO z0#gB%56cElsHF6^jX5|8dC-VXh|E*;%B-Sysl#LBdlD-wsSwVk$zZ zLW-ZFfRbIbSS~LSL!nb1RB}o?^l3xz9F=}#9rabc|0f$`Yc~$N$deSG-1UZ{@0n=H2C99CqS^I)hPhhKW-#bMdKoBk+Maaa^wl0WCz-{9uyFADB zuae8A=;af&ecuod^6o#=5xK2cLj z-58Qi$%7kEZFPZKeDf2zscs_84Lea9agAF*!9{eV<%9SR-s$HoU$C6^0`pHx= z#F}91(Ul=?PvNRg**(Ja&LJ!1o#%&swOsH3hq=bEDHA@nbMI8%i2@;ZLWQj04P_ta z!KrFyp*S`LTIw^Y7Yeu>u5F`RZ1%NIB%l{yJ7+{k4HrAlPnN~3o+F8>G^F*3Q$3J6 zJdO^PJvyigoTSCG=pp`DV?+#lP;D%R`uY_xL=7KfkX_TLYdW43NrXdQvHn;*`-Sor zDBcINaW{1<*!(piTBGe%X8f5UfRuhIu2;Dg<});1*V$UBdrp_dX^!2hGraj9d&#P= z!S?AO)GQ0mPm&b$F;-E{7y(2-h78%lDVv=fdkceU0ZxL}g1R<2SeUQAqEn%ZZZ)m# zQJyPeB3D=Om;O%(x7D!9v`QCJ8whu@9o0fQU3P0TIYwrcc2WbTL>TrmCgz+UV?=3U zCXBLcU^&6_i$dz3AViw9!32vNqb z9FH5F*k(<&fgNJ5Q=EUyU@E&)9w-MdVKp}ZC-WDQqbQ0W{nsmzRwt16C-oY)tkwWk5xns)8@z#dmO>Y!aKW$-+6!X8ERsjv@9BUBKd# zB@Zq2Dd7unXlPBRfOw3MI+KWl?DhZ;4Z#-u@2}46L4b#)z{lSo$QRox=MHoM*kU>4 z&431oU&TZCaL~0NmC4yx?2vg*h{>^#sImt=kov;gSDegBC>XZDi>yC;tfZ|&G@$dc z;Ix$*y=piA;{FmnfH|ONxE=dm*4hEMzm@O%ZDa03ou+qOIRy2Y7iu&rW zL9B7K_6Kn_+k^#)6ZXv!`tsT1?*}0?0CVZChnB1NCOimKb5#hHi!EU~1e5FQzwx}` zA_|G1jASuYwCDV`?1PqGC2llY$aov6lHW~Z`1Q5aiPRYr2E-A6J?FzoE(sI-gQ8z# zYx*%0Ei>lF&s`Q_t@95{&R1I0?ibbO+o==pVR3Bf;T$R3tm0*)AHt0AqO-iP@uK9n zR3MvEiZ4&L)f`Gl+KXffsn1ZYNq|A8DSKDLCcUq#?`^gYQ&6me>SVF6)FpWNu7l#` zmmQbaFW%W&I^h~IECni+`Fhp2zFvz?Al7Hnu4{rRUe&D@eAeqn<`?EyQl8}A-3tLy zkG)lR5`YB`KsrqEyvaZFcJn@%-Za6YxtqL?Ggr>F1lwcP zxW$KtFzuWsYY*z+q6*I_2`h2E=#eMVE0-)LLY>ph(5hVh%`M>Z_d&$3aM_=-67rM; zz)yw_Kr2=J-sL>kd0T>9iO#4&q@`VIluXWvC|14 zB>k9s#k6(aGGC=S@tWV7>%|w=FmFMQw4A@m|DEkM(Wa@h1O<%LgD@qxzv0^V!6^E) zh4new)YA+{9X@{``szpIx^2GMYE4=?_X;Wz6L&&-IV$u*H$z%g!ZAajpuXKsI1W*$ zrcS7T-Bjntsq`5-)KP+u-1b%yj0}YfRD&9DgC}++N0@c9^LnVRgSTr9;QKI%RjaEf z$%G@iEoGyy#u{$iIi|RpO1m4ocy={)y#RxNd*=RrIB8uiP_yU9!X&^G5^%o~&^uM_ zYB&RhEhCwrKC?IDIlF-T32B848`Uf{kD>09{MI*%_$;_?bR{EflWtCwZ3Ls$bM)Bx z_w7I&THY&}4sRD1LPa8n(D2;HY!`qk5I(?%A+a!iPtWA#51ZP$##}O=HfBTuFcL(k zLj1T(ee5CHK6ipnR^9R*g2Pe<6Q;J?+py{`U7xeTyeo@H9@4E~p=Kt-FZ)TB+NkiJ z?5VJrs(8*LF8#6y;B|cRgO)1*JE(80gnfpZ?vx^GteRs2y8;SS!R5yf&_Wi2&#j7A zz*I9@AG;ljZTJZD=7-io7gxaQmfDuMR{AnC_QoQ>6j@EN4kr80IPL$B=6_B9+xRa# zD;v-M&VT>o|M)-J{{gG#|M7pYsW3bAT=c&*TYp&b&Usz4jTO44ajR0aL~{K`1I0Io zB--#7x|GWxE(jVGFCGY+97YHgEm@1j2S!} zYdKq8v8j9<32l5xOWaKxYd%3)GL@D8c9`k9;Fkk=6`X`X1SgS2TK!z!k6s|pn2#^W zBJX!pyOp+g4x`rtIr1Yt=K9z=K+$hJuf_U)m8B_=lV6bc#V)t%g@Ow%fRd2gwnJ3Y zACWfS3ti8HH@=pR`tg+o_}*#DIGld0z^gN*E|ZeyaR-CBIQ%YD&V*f1bu2{2}fe8UUXI6N}O5ftJY}0e_O9qL8qJN<9%DpCtnsQnY)(Ph;}WqB)A{O;7)Gv zzAQvKWabn^Rm?UQ$)G)U00BLHc6V01(TCp37tAS!hf@3N&MG`WbWK?YnTAGHzA%9t3<3*uey7 zCW*-Ysqg5pPKgPYuZ-8wl8^kA7V3<}CHKRgMDH$l8= zek1vG`q8_%10Fhv^64wEXJjKIG#rc+n1n<_6U^F~aoS!2AeT^TyM9m_l%d81p4iXa z3ynju4LJTKD(KcRo;joynq!hCD)r@yohq@6%vdHXV^T@Z>Ql#4 z7tb$v3^M!?fDWDjzY}o_k;dAV=R{AHIP2)R2s#Rn*hjS4xw%{V(c@ri;gYIv#qzJK z)e|ev-$(-{MQ*WvO`O?65~p7X`whYAMV3X%a+D$D5kQ$B^wb5zZ{q6>^O3Lf)lj%s z4psp8{VM}oTf55G0h1d_T1Bj+BpFyS#3Y$1t00-yeSDiz9p`iZc0tcPgssZYA&_GO z-<#c43-@g8)wNt=)M0o6*#z=NG0XYsJk=p;QCb2q`v3Y3H|LQF*WGRg_2fPIW?I|X zcst|xT$dxI(kKIg<$?o1JD)qQubB|LMP5U4JQpXHv;5mzI{Gbn^XcU8 zRzP|D_q6S&dyY|k_~F9jVgXy^@F@%L%v%?&{2fFr?`sAxLoW+yl?JOVj`nt(q-rTJ zcfZeC!K##E?RgNYzOCztoh-ORU{46dZ~sc3_W05{=dI6>V^lu*cjgfXfFRk1wUSE_ z+nEP)hS#O@Zh){gt0a<;)#7m1fBU!z32eMa{n?vf8kg4yj!-|RigDi@1OsCXnez0F zf8kV>#ro~!UH4A<-RWKWZiPSkDVr@PZiLElhK27w|#i1DEI$LS2qf#Me)|HH$F z6*J%EhI5Cd;~n{~w;Vsn$+^v)$o466&dU=Xna9(%!P?4(sUS1Gw8_jhAQ^~_NkOv| zpvC>Pb+xg3LNo3&;^Gji33()|{Y}W+{yK=C-GLrU-Un0-_zI*4u~CA8LBI*DtX}>| zE20zYVITHw$II3nrB9HHt#7kk_aUD(S493G_*`K5TgO%7#3CizBGX4MwU$+tpCXL! zCA0YKkDTq*LtfOBASeBUr0@NW_pVX}6#b4e?96d;u1ro(}&uFPK&B5 zypLX{zBwkSr?J5eO?z83k#8u2UCJ?wq+}R>-402 zm9j2;{Cz||?|~7|1`?OcD8aT8%g13GK?k^_b^rF+x~#gi6>)v|%g4>lLoY2pBPcBw zV=^HST8X@{D21}P&}5b#UxX;j2S%^|a)LB{DY#|p&`$0leTR0*Sfy`_=lt&-%5=6e z;1wdnatT8mkxIWhxIT8$!DV?x=mE8yGij3mBtpEASGe0km9fJlhXGyB@$TriM$g0J z=Oo-s+}fK<2e0ML8l2|B5D@Bs9V~&Qjgi=?0Rr$;MCMi zHr;%v!9+yjEFcV;!i+XQ^YkTbU}^#9b~$tSLU{Ha#w`}N>)Ie^^Zi}e;pb{-fQE=3 zntVilF5N$IlavcdNoXGFr2I=KEps(Nl>j>fo9FF^=Mp^$fQ=1{2T|3I`oJz4mqmDa z4V_&Dtgri)ne~Q>JXm<%30+bxrM&;Da=aJVG;Yx%Po|^{$7s+f^o-D;ciKno5a&I# zJozcPS|_4+^HON!aNMPd5;uSI#Y%a^y+~Usq4QwC{{~Qt|U|FTb--am7$5S=jMaQsb<&1dY2C^AdGXIR4xIw z$jsr5>6;G;=5n~6mJksyyhJeg2oE3TY3d%*&gF6X8`qiC=gnzCD7OYi9Kc}V6wbmwvc_2B=@=sj?sY&TY{nv zg4sOx(^6?@gx!2!Tht#OZm|Wi3}aL)ae%1GpiFCsN4vSYDNOD|&MS^mJBu@5m`=F(buN-mu`$<* z(0>p>N0X2UKM0UpZx5RBt%@9!%JCp~o8jqGPkHFLImKmZpe8{faIkZFdM_vLa7(^- z#=9z(;++l6ZZ~R48f0L9prrdbwR;Ba*;R^(CCwMP`9rmZ+I}!zIn}khP0OVuA3Vr1}8o6Qij_UC5 zeL70)2onVNd&&HN8uOa6rAY& z7v0;=e;S{84mD`j_kY(ozvlsf#G}}PtBh~2f8zD2S&%6Fvdg+2lAx3XYm492iL8O8 z-C==&ThBeDhGe}xIwxi3b|#Top&L*PM&~;MaoQ`sR##!&s42j_%K}%f0P?LYgiE%6 zd5KFJAyn71a=QPre4_-{)5#oTR@C>9W^H0hFe5anEXdN6R-_GrLwPUKij*c#=c_-Q_!iK zKc7Jj@6tb6$Xa%hT2C(*v2A#O2V}Z)^Dfd5iG_Yo7Xum!!G>OaXl)|Q8fS_Z(TCZO z;Yj`}3TfWH;gLgKCSZnBwNCm%4^L2S&^95z`SuBK^O@IGjbfI#=>Gb-$K>ER`jWWx z7GOa#(J&VP6oBi08S(7$cly+u_~M*BZLIgPilytO*DJ>XkjrLn9Hl)dU<}+6!k^7M z*TqW_yQ8txT>2+LR_SEOpGrB!fcYh4KG2jdq&|$*IC3^FDJs}7{|X?;Y0Dw6px{Ug;sZ8jheAgEQV}3ZVOTM|&AG-NI3*LI#_O+@7S@7_rZ>r> z2nL<&F3+3*Cl#JeJ!V{ydB)EQ>&CYiGLiglugn)>j=Y!G6m=CTOOB`%I2+zB8o3FD z&g=N(;HVF+B^jEyFBFYZr@_>d^isRK5xbVPd+~#0Gy`GvxTivYxbSDAC!$?>@vbED zlPrt0$O>)g72`08pzF&zuIej&-WFL5{Pz{1SksttGDsA&vlKri^(Ju6h5;C+dFr0a z?l@5=IPpzVl|D&O|7fLP8a!f@EIE$eitLDp#JKcb965;{W+;-qB|bzM7OU@IJJ=?B zB|lyvv|JSl#jBdxB?RZj*ZU#tPp|0NBp( zuHS6&_trsme;lb$@-r8toPW{U|0g{Q#u@1+mVfK)mb?69>_~b&B{k57;l*e2kKD9f zLvu|xdyW$<9?>jN7j%4pPjrrKQ{36lE^>LC+zc+CFyt^zX6%Y*;#}TC3`xFd>FlO8 zr5xw)99fRo*7kYwbgVxI%>tf8+WEcDVGhj=nCkWpVKG+cq6SQ67$s$8fu!xHp&*=l z+W{91Htj!W<8I5DECfk3R>I_;zt1pI%_B0z%jALb%aIBmU2IJRT2>btM&Zc}Rhe3D z&K;btXL^;Bej5kOwU+eaz(|Opkc15=Ya$=a5+JmBpXslf=&0Y~J)RueySE>30?=3u z{H<<61mpb&be#RzGB^lROg$H$B_)CywQOn?#q|~$%YItf@#!|`w&<(u4c}TUBK#T= zB-*!D6i4spZI9&Z|2Y`FZh|Kcr>x;FT8XSRfm<3Q9mJlc4?Z{c!PPWrf_+IQ5go zt!{ORj(g~eNuNOMZT1SU^)8=I`j6ffpVJeS*Zon1`%9redYS%*Y1@ecW-leuA$}DK zv-gZDGV>(S@stn7zW_`?v%itctNbw?H)aW?&4@<_^40o(4-Mak{?=m}^wbiGEeKmXF_v#thscW-Bq#F%&E)*zw;?){}(Utvg$W|v*4Pcn+Y zm!e1jiT{qu_+s<;axa$C6zNxUr@0r; z%YH6L*fW@UG7Ek|XzrKEc85PF zjqtNXLQusH+z1s_k`OB|fQHmi1_1Q33T@}#_L26lg}B28o!}Z~$1Hm6yjSsDnZswT z1;A@PJlaj-ZCv<(zbA%_W&j+&KPq_zoIpf`?wNg&9eAyHOQH-q1lFiav-~b%Vi($% zVKAF)K${o-^YrL(Oiu6yP5;66|Kb1tJO4NP@8tjgFaFPL z|Kb1tQ~W=s{@48XH}48FO>M}6&Z}qkWAl#1^Y{18$EJs{I>zHy&%`_5j(0!+8NiTaFF&>eQW?3&i5tmj z5chQgJE?Jo?t0f!HMqc02xT^M`nUVX2gi?#&+CvuvgYc<$TzodEe^P1Yx#_>1x0gQ zDGB$gNCt?*mwE3h@fJxX^!-Lj)Z5glDAK39*H2^A5nc3!FDIxDofiG>r+*kmy{eE@ z%+1mVoaiE)AmaWnQ&)0OON)pf6G|ISWee6HUX}BmB^$PSyNlM5F}p|GqYl3%nF zl(7})@MBB6*7YvjUt?Wg-@7^?*UA3R{}+4T6s1YqZ26YnGP=wz+qP|Xb=g*zZFku= zx@`L`+g-M8d%pia=UmL1b?#=(nv0WHd6g0QJUjM|jL3{E)b}2ip1#?-Sh5zpbpPDw zzRIoD&9oUOA;+L5cmMvGN=er5jjD^e=6@&*Y_c7jIPrUEa+jXrt=!DU&n`;t59nymVm>{(Edkd+U zv6AUt5d349hb@ewab+bfKUeXjUIdZ>^t5?ifU>`8FyABTj+|z|GomN~Rg#&s6&nu= zO;0}WAs(j_)3fJud`(!qfAum7AHU%<2HyXIC&Dp;tJ3j2#biTS#rDPri_dQcGmudCGbZQc2WtCUT)T-iP2eYpTs8cS? zfX}NBj>+MZF0t#%*2>1Q5K4Ss!F|c*xwKWro3g1d9ZWdisB_%`ZgP?}`1tBfu%B|+W zMD`Q4+DVE^92^x3>CslFhK$S#+!d#6c7x%5pvyyRLpxiL-GW zuZc~xK#*&tHo;`4we`{9glrx1omizWs+`m`IXFNBXP%1YWIP+bq9YL>9j|E#p_rPt zwsfoHb5&eR&@Cm9$iGLEq-7!WrD@cGU!}R<>_>-R5?nn!LXk{sC;L z=@I~i#|zx2FwQ*Qit{+EWjnwB;T`$a^83CMN(eQiE%!$^+W?UoX;H2yS^``C-kyI< zRprd?ojGrGh?5{<&S&|6s}f=@$|;Y`j|tkD&&n$n%JGPopKy(NB5A2HBxa@P$)`W( zGM!t>dg^2-ui7(XwmhLT6^vwcQdJF;7a9+$aRN+6y@1zhx87W4^fwvwVp)SjH=o<8 zJw98}$Y`@p&`?5P%wb(F2iIg4zb5D&p>}^v4a3StG<3=jN?GR!8DqCe_8ZG7u^ zu`{eRdX*)pHMwm`Owq6YCUXhr`-ALSX&*_xB8Wyl(sDP`QqS+166<^{z$_09Yq-;< zQKK}+IPjs33-{+p;Dun<4wa})p!%EzMiZ~3z%vH@>&<&LhKNlQ>weQ28tH!n6jN!O zhcX;p9!y+nNVVnOqxHKVR1%pzu6vA`6d_GOchRr<-q06{Nu$g%$)&wS;`Kl4Fn%u4X!8;QU}mJ){<6&iQ1iyg=pL1@ z@c?{FI%JPrp`{4|IMnfGISX6CJ?L{X24BRE{#p&voEvYh8DXSi99G@|adiGCLkVT2 zY#v;naKOc+*)%jpe78xNFq74;Fa$*btydtZ{*SqQMWeo|qp z?}fVlw*{|;r+;q=NU@d`Z|qIiikt%rtp+YRmjM3Cs-5=jaBLN9i(DW%UMjBgZ&sfn zs+>yJz5(^v1_h5)_)OF5moz!Eq-}d&kjTJaWB4lH{4uCk&aogp+*8(I@-*okyQ;j9 zvfxTIQ$VB*jnDZ!m}f>sj&cJNwFc#BNcY8L)KUGUCl01zur!@;dwC!(3 zhQDi6*kxp(t5KUpuosG?v$0A;0?-e5d=}*-l}!tuSJbTekiDEPs%W9p$nn8fi2p1z z${16Sj7oc?j6Oa6=2wxMhFJupV^Ort`9cuE`!EKLP)vLZQ@V4dcJcrm>cJ!(;Wjh$ zm$`DsVxo65TgT1ft+dV7RNLf>7lTiJiL8||nSqEMHAzz!!iMoHH}G< z+sT}X&EUR8g<1;(@9SA8$FOx0Rg;FyO>wBeTX%vxWWUi&P{FXLa2)>tqZ$@W8~ zN=!=9){`lV@IVWajc)ZNQc~PgdOFFo`z{@FCv(9;Hx?K`C1jS{%T%XRyJFv}-C>`z zI3=Jcsi3ErHk;I8Y$1WI%yzEI_uZ+7xT4Q2gSp|ykF-0!v_w)l{6Tb4_dT*gl)reu z5!gWJl82QFaHijhSb?+QeWPO55X0&KP#Mh(@PH!egjsSzX0C~sb0*Sjy zQ>N+)|0`@hb5s~De|I#sT~WVhS?3oUN345HKTL^o(Avs6yxA3jb@D#Lb?X`_aydml zSX07?HCvi=e$j7yk$Q;abT-rmj5LQ4;DK*6FE=;Lx-#6TzT3RK^HRrF(3uYEy17zP zUD9AqR;ktWk71IaIHO5p8E_B`C24+#6w289`UJ1vX*A{K^Lq8Zu{$LR>rEVByJqq-l9NTxpVx4$C{G@8%`?nO8Zf~oi@?(RYcm)ZnVW0>#+m##Vy ze9sC16(P_NPwp_L;seetKPJ0fk9AB1BL*2@&nQ`BDZq9Cah}pYmeRV#L7b_wm?T0~ zm9E1}-`Hur!#D>429W7_Uw z-IUl@^d%42S;Fg#A)+76=;uJNXHg)uO<09wGEZMxPA~R=tEy#h;OhbXVu@PzIGUhx z3rQcyS=C4}0Yn(v#ScmkJqY6mqXUh76+7>Gc|^!L_^3AF<~~z%^xmQgJM!;j;S0C3 z<)`^~m&fKrCcrEMZK%T&^%&(o-8@hPUF}%kUlqj$y{^V0b4AH}n>7q7TX6SLiY9j| ziHPdw4IBVKhpGVLphdv)2z(rlovN{+6v?CX$pn)u9-ghYlHQ>G;3!ZTp%r&j@B(fKDWb9lsDNnn3#S4+BPI4FX` zPHgfSEqYz8?fnO=5t<#!WsLr=noLBvo)$zkvB-uh6Z9DUN+RhM3=yAPv zW)8>-_Kt*53o?y}9G>3-I;8M7=wT$HdecGmeTmns*ts-HSYrZr-13H zm|BwjQ5G%uTHx^5)oXCo;C2Q=vD%x9Xbia;3>f^|EYGMG=qO}`3=n_Fbm%g35{{nc zbG<|sFesxS`@qygc9yeaa1L*j%f&b6GE|A_N27s}XcM45aG>oLjPcC-MSdt?cwS3d<>tt<3WNO zq>}R44LC;@(UCW}f)Hw#gz#44=v(RW+T9KF>#Y;qX`e!DhX0c^_|S!}m0b~2&31-Z zTn{ETg;DG;o#d_1oU4l`*yGtO_=oc6XLPtpiQNnR^bKzHg{GE|2E;8%R9q`Ojl>?? z@sMV#B(LgBQNgu;MgLnOsCh~A(n%hopU&d&60M=7>xsVPbGKc!s82T>>jKd=cmxOocsH8vz9k6q5IRMVxP2i7@7&XIGjyy zPYCE$h{EfnvV)m{3;<9nMkQ>A5z25z_W0V1Tad=D>Mc>#?XgAWnDpFwALymjw<+NYF29o0DWwMa-V1Chq*Q`9ecvR zgnCUz2GuH!In$5iI(e3k#!!=~R*907{=$%@0E^Yco&-GoOo(Zy5%d29h-i`Dj!x~N-U7kfl0t=h9|*niuUm&Wn%I$f#JIm z+s2Vxusis>zd9Ou6e`<1S%0pUhwVqJezF68d@_MW7uQn!)3vvagz>isJTw|u*M1yGLLa_OlrMh ze^z^B&mT!>qk3dugR3iPBA5Dsk$bSZANZnGSnU+L7j|HLqLZwW#`B5sFyP+{CLDjk zweQYAEjtNA{MQhWhhCo~v1s%QYS4sZlhaJuCC;`OKYG-V35*6_nJE#K?c>mWx&`P3 z@A@h4Pa{kKL_`UpQk|dgnLsibB+SKJf0}l>V-^pEOT6KN1jNOW98no~uA5c1(w4^( z-pzUQB$C0JM_H!S;Nt@78)4eO`iQU*K}uDSnGao2YpZ4(#BdO}P_sA^XG~nZT%yBt zzhys{sVA{v$}=*Frcm~n4!``FaS<$-(t?kghZONK0i~QVEfmE2ctY*UBk)8H*toy< z)=jvI3~OZh=~AC&=C_Vx2|e!LuLFmUl`KFFv_Va??tJ)Oenk+fKa)K+^KmL*J+Yde+9~>YwNXjMYx(-yEr_mLGFaT7!;{ zr!Vl%Cw)*_K)`g(!`Hi@{<(m(7_1#VlK6MPSWDQB-?PG%WIbC@RqV(e-&9av?JKBG za7%w>EBEgp{DxsqzNO-*2W-7Lj4ey?ERCU@`?)&qq zY}YS2uh*|FK3GsmkrlvL*{_4KL!_ct(SICR10d|p^OiH23hbvmoJ$A zGynR3j{mm)Z}$JJ{?E?I#PNUB|Jna%{>%R_^?$tR|9I8^AQP4?)pBdN#^X==qd2-T zb+LSklnH%3nwD6kO@4uhN|G3Q2-yn8nBJHQjml~fs&wX@(TjG*Mfy{^n^^`$&y(AR zZcdLVxq{QwTj!P2)KmBu`})$+=V$X-Hz7FStL9-887*m~7F;zUhUcq}y^TUFxcW^H zdb^Q1zTHB&dQ(dx&*s}p)r`N~>r6X1T7AV#5+6MqF>y&$IBwtbq2PC+?r+SU^=WKf zwd6C0QrojM;H}C}v4CYAL+R~a8Ss`Wm^|(8`mHo@(-$ zU7_tc62~Bv+Xd*wn*7XPgY1g7Fj<_W*)W60SDnY`wk%{qnFy~l<{p1cZmH2&Y(W6W zrqOUd<6Q?A>X#!~XVCN%q+SiN{Zd5dATRBblTQXiU74sxwCh#A>1kq<-|!!&g%PFT zsz{_r@nlSkxOhSb6Ufj#>-Ta&BEWNxUmhgK$Twr>zKvmvFN(J(Oi88=uj=R=$;w|w zFlzZ9s?MX|-qT^MjC9&!-rPjNFIy*PDC^Bc^AQO)-mZMXepOkz5RiGoIQifWmorF__1wJBr{V zoD?bdu}YD%^7%srMM`i~3yAe58`Q=sicX>d%(KTxL}Jm{*#pyTA-}(e3~l?&%J>^n z`1L2ehZ}|hTKSyP+iQ;6S^tpbP+a;MZoZbl2T&ewHkd&&Ir|8}`Nv28Nyops&utZE zJOu{|qmoBv&@)OMn&BnrKznJ#Nzo^;q2FOu z$BX{HGkn0zzlngQBi73d{ysyr3C;f7wjODAa)A;~_)bFpVJ`jr#FS}cT0&DTn+-4Q)`K3AN6+GVL25Gge9_0IyTT5HUfLU9YF}i$17%iE91<9QHX99} z|ELDp3F3V|7Qs)F@DhH8dx$V)0Y|$hlPsg)wd^;B6yjV`Pld2uNWZQ;CPKfc1?T)x z=LJX7FNeBh!MQHK0w!+?JLAcTMr`7MVrLHQHynmi1Og1%ti+yZ?4`1$>aMf;$i~`| zt4`oSKW*wz$S1ntDpk-QrPmr!a`q*+L(GNHnyw$vOQklEzKtj2MNvkx!E+>fIP*?H zXfaR&HWw_rW+m0d_Jj9#gHJ;;qqyAN|tSViN z#h4GBQa>xHh-nvmxxO6(EH}qNOBxKbdI<<8%G9BSp{R?*W@)Ga-m1HPy;<*KccRtA zIB&#&-107C`h(%H;x?S#k4l5fzO`>cZv;_$tkC((Zr@s|{hk_XHuuew4XroXF$sfR z*Oh2R@;H8#33u!f^!QqkRw~DrYE`h4cd-n8)Eqr;-J+<|R$C6RN4LcGf2^Z$wRsTl zzc2(LX>>tjror}LW6!z$jsSgB+9@+sQ2!vz6H2Fz&Nk-0Xridlrp!$hR@YNnwIOol+_#j zJkmPb8jAOsoYxgfP+H?G^V?m~X^c68?$%*{`2M+tT99mZ?WT$eRYw4W%g5OO^{-!d z9s_hXjUhPEI`i#oSZ(HW9n$n73k%|oiQitnez?&fWK?{^KBaE2pc;Vc#FE?St4`NP zl#}{SzqgdqeFc4L%LVYq=(}zJvnVV+{2h~Qa8WDcpT6ET_rY*Y#fg1c@+{=B?bzDx z1(o!Y(VH*M+AHjPo-0Yf=I57DSC|-fqey&>4Y^L_HvEgyGw2AstmCcfhwK&M+U(2e zyP-u_2veE1{l(cTzPrmIKxeH3mu9bvXnqZKu_7X)gX;GbSNCXRLpN1IDAG{|Mez0Y zIWgC%-D5?^P|?X(4qmM=?F?lBPP-ViSBUM)GP52N=`?km4MhD-1E95Bf$2`4?QOG{ z-80&&N=-JECVT}J5vQoZFMX~b?K?%BogfwsX;%J;4th!Zz+_yl4Ai;FaOb#A&E2E8 zf`PfUrneiV{XuM)Y5i$9<1?;Y&F|)1zX#%!iJw?Tc^IOAY=2NaiU>m|U4%bvZw1ru zRpDc!5FlR2&Ff00yk8X~%u%@McX)pvb*Je^`zy{$hYbIWmklPCVbK7( z)hfB9H^}WgDi*t=KFu200=~S%zhI>UkS?Ar5H_qS{8T)iwcTNV+$FH?w7_Bg=a!JE?VaiMG!;cfNrYILAhlUU0miLc*qT| z{p0X;$B;bB)JqER<&g< zk434Rg*y2-oKm!+XCL_Py4g^+M}&9l5O5X+P zn!&Xg=|qj4vAFfq!UcpP1_}9X-Kpj)bq=C?AN}sxu;nXkLUKZg<$=EwhYwl}KWO_j z;>&{7h3Azsd2j#G5RVS-)GM}#6?Kf}pH79-yrI;-W7WvZmP+Zwyd;;IIR{BK7-JVS zG{8q%#_Y?Dhw$l{6z%pRf&25-{b_5fEhdsV?#dQP0Zt^_Ll2%e^R`a9JxZZ;S9E*U zF#@H0{=IivWXGnnLRy+YJ^g3#%}m6ZduwR*g^)S_^csBnl-7175zI@bJWnRvqbM)M z0#e4$%Q~ezPT0&!ryV;K17_Y?Re5iVmN~9QZI5@!T)?r2^@>ApSvByQ$P0OszFoL; zn^&rx2wcH4Bd{t^sqN|gHz%VZiMQ}xeP9siJhB}h+1yPdaQxgMyQFK9S39B)J2;8~ z=E{W?!z$(~5T&AxQnd?H-#47VRMi8uQQiDDTPcK`^A|GNYI!dZ<69};HiB(2^NezQ zC^>iLnQVL3HNsosc%8Q47uwfLNHtU(!uaxw7rOo?K9@mlvfCWG>Rf` zx5RAf#%{kC@-an;R)tH5+>XZJYzmq0HB1dqx@$x!YGAdS$ag;DtFB*VSP-E+ zot{z3XPK8P)V2q3nq}@zR@-(}p}`HXWmFu`4f^Tf|FEG$uL%42K6}An7qS7bzPkpA z%9`{l=+$zYwUJ!uty5U=`N1UaG6RX>c~F*-mlAg7^t_gfXyDA7wOwx`kcD_-2JZW` z9T0;+(PPL8!60SM#Ds+F2V~1Fkg=}$U5^vET{9W(9A~;vcnCh<=q93|!LE&YUItF^ zAFnj*n&LdPW&>7oRW1}j&@vwptGIodcwYK@WPSLZGd|1vy<{1< z@#t?W71T=aS~+~~sUd-~8)_BJc_ML7+xfx@{b3Gohr4tgQv2OFHg4bScFogtXB2`P z<2$#ka~cUjG$lL&2V#S|WoMxD4KzM)cg zCJ+awL0}8^yr70q1A6n0qAz5FV?BExRg;}3plL#l&l#f0Z@j8;3iCY*%wYEw^784^ zoe^4#VX!}O{_SgjgXc5FHtY8!?ax>vQ+qJv3u%Q9aG}^Xjxz=N)fSaPQj2t%^nk|N zrl@PCJM0b*degV;e3)^SO)Yx&giGj}TJ@y?yWnv0TWlneudyeVkB1lOES&a?JUbL$ zvCN+m#$VNxA<&daGrr$C#G}5D+Uu%$<%RE`-58lU8x2p2cV}Jr!TuIpUv0_V1ZBe? zC_cjb_n%+c*z<*0yNCXaZ-;mM_}R5mYcN!uUO-AuQiZ-I8eJmtsAcQ!Km)0_2Q0;P z1mC%aGu0?0x*z7=68D?=Q~H29`IJ-vS-^QyVv6I-l zj_)u23Q%x;%HQ>!8~iyO2n-AJjOh}ddOX;!q!9RO04s%$#qRlGKGu++MEC2+I1h)i z=XK8g9FjAjrFX)eyl%&J+yv4uMw=P>atC21(A6(`@8+r0OfE(`=FZ>)f5+{o$T^R8 zgl1nMiUo(Hg90e0;IfqvefxM#MwV2otqB?M0o8|SgzcJ&?>FAFFFF?B1juEfH@oP31!CP7O^C810y!pvN zapJ<;a`q^5i)TB(XH8mj_n~ZcVQWI|a)Ll1;=G$4>wF*GE!_Z=RoTCLBiW~xH$&17 zyeI!y%F6yjlOYX1M8RX_G_TDXqT~yC3QwBP1p@LNDe_g*bF&O+N(+4n_&h!BK6fW3@i)fs5If>@v>Dq&ZVN*iikfsbPz z{!;G4Y3_iZITHj4ImkLt-?h+KA1GoY`sekzI$VhPCRY%v(EA92{R@JW+dHVm7=DJP zrjhYlyhYgaSYY3aLWBxy+u6+4kUsDQiPDD z+Io+{MXoahPl89)0^}4CVX0QSVREuzLOI%%4}+IdcZt@!?1a1m0&(l zf@bwmDhW$vkOPI_i_d((j@dElaXcv=hpZ~hBU8*g(u8$gncR?O0?8AmV8~&5B_+!Z zZldZ;*IdYUZmUgoVrLYHm9W+&U=G}U!(yixc6F{_J>e+C+RMOBRWFZW3ot_pZ@aRT zmRm$V$}+fcRyqAQgW|De%tnX`4vI*8_ky2{+?|aWudlfQ$g=AVeGvARvGkC*@{BFX zSf02hL{OZM)w}Hju2}@F_IW6^sO!?}fp;PZ1nHI{=h_f%Kwe!DL-M?^vTx0I`ZTa{ zvmanH{L~SJCX&cFjUai^TfKl>_KW@#dog1Bk~WMT1r%fQY3&-ePu=G}9DCjgFx*HI z>|lgy5pP9;08!*4|BQgrTp}xF?1)$<^9%hlWmzdf{F%EbfBx7+G@QpKW`S%E2Zj;M zoSh-9$u^<+6{%wbh2zqx!vV0?wXpJ+Q|PEo z6ciAe^N9m;q&hOG<^>pFTQU6HTi$oIHGh#es(9_h{=Oc28qBUJUnT#=n@x>0xagn( zqInSCqD z0qo9W`^oCYmec7`B%JZGLqox1k+SbBht<_3{>{OdF|Qt(9g1x%HyD~>X&t)zwxv>h z$9F#NZh~V~QY3H}h)^W7kDT(S={h5OP$@PFaBsePTQm>Qded1&62iOhvj8tqrTbS7C<>g0S2}0_Qz~PfX=vYyAg*?q9*a5@Nd=PNVo4|UAzGw ze&&*;71}ygR9YDqmOx~uK+7L_J3^cT*=Xn<$3dy>ROfTqkg3huGtFs-kkz(kL`u^9 zNeH$GW0HnUKd%X9=MfQvFeceg*zj9{l?24yeN0{7ujFNo=lucq-l_HjL@ZmHKMGEZ zo{WNP!_Lt4e-=4>eC@I6bL|wsUOI^rDg9yz0fmUF-U#F8?bf*{TAQ#J=lwpgmC=Yfm(ph>xyU-azVF#wd@Wmw*NTuumcw<)3_) z!G<}oT@2Yhz9*J8w==S?wDs~7DwMm36Q&!_Q+PYb;03VMMH3T<=b(Mu5Tx#j2HpI! z$=@gTx6)yms_F+?O>Y*6eCW>{muGL#%|$g^pPpJ)js1oJ&^uM#Q8s$jdA7|3m{wzKG~?e6Uj-6_U7Gkh`GiX=-x z6B-e)-G6)ma~PU~Vpn`OP7ZF_KdqM&8Ja2CEE>G=-fS7zpY#IgW`d+c!%eB*yWPE3 zJMsJrw4j11ISRuM4qL`P=&%fmO@VARk|NWZ4y5J9azgS*35p$u?`tJniMnusCj`1c z6N)iPlKJ3+!&ObU)m@5F?O!&6!E46TpKEEtcx%F-Dc@54=%+R&eaaaBP{y|q-6Af! z!gO%;OKL})^1>0V?KR<(#tcQ-qgHAZhNcm<&1bM=<(q`t9yf zPJj+{5&Z?DcCU;l;u&a;O&*_V&^2|h^El-X^K%YtTUHc%@DQl^R|hKon_Xrj8D5N` zluo2`2y{A_yL~zhbl=Tt{Wd7+&fk?1y1tlFcAAgxHc5 zuo-(27+i(RfFqdDzMbwIq+$px7jZXAXRIL~lBeYh&s$d*4UQJG{TboY%1i?G8J6cZ zv?6S;8x@c9ZQ;;JGq?lDjH&m%)(WsB$g0EdG3y}acK1l;0mejVHy4N6pZLgn8N2o% z5!^XuLrlB5AeM8g8t58-IA_TNU+B^SiWikKJ#b>qIHYj}D%p z$QIV~t{{v`0f#dLU)F^0SCjZuA-MCy9-ysDAQ(^tj(k#w8NL`)G_qZ4DIN2;QN+Dd z!qk8h7hKGO+Vi^OoL+Cmp^hR-h1?jr2Ca({Ovxv=0*9>XlZTmTX4;51Q;yc8b%(W4 zwzq!rcWl!i>)bQ?aU2Z$nTS0wdZ7;?96M30Woa$RJciK7xQ5JeOVN!bI71FX|D0&4 zJY0k-hu3V^Pm#vN@2Kw=t}4&D1$gk-DosOT-QI)QP7j5|5AkqB8=q`C5;fl zO+}yv1rim2|9~mTLjY%S9d=H!owLWU{Yi9!t-JBzy4~69e!Z+n<9}gL z%;4+CPSu6o9nBEh9{;71xc{TQeB)CuBuE>?l2{aJSnbTbo(&?v6=(&l{fS-1u3e`a z|CQ67S(Pwn-pnJTkFQ~;<;KXLCi81}KARPq+C5o3wCZM?flzeDwmfvGxePba_ZPnL z^-J3NHu}Iis4l8)(|ij0V&XI(Ov`oUxI-lKt?^q-kETC68nj&0D&Ljv)Jc#t|6*zk z*F@K?#&{Ubba@Lc*N>=X(8LSMJNY{SJ4<4!7^D5--h! zZn@m6(8k03DZWRRWf!;RjzO~9Eb~S0jX`S4_6amjiZk?woyMn3Pl!M(U1Z*g5q}Dc zAc-(o2n1eCgU&Jh_%{;IG#vSZ7s}FW6>M@lT_qc?(&3TtA7&w@SR!Swz6Iz+jFyBi zjLZ?QN`VZCO_kHnHIxqO2>c`A1u&9ln9u|V0`(4jl6Li0L)hNik!i@2gtg05ER2?n z6jEc~bVx5IBjnhj_n@&cFinbaFXatX%kd85mT`>Wcg9g-{z5(u#P2AOEB-J zY6fc0&An4E-F=GnNH!UCPpnDKS@IJ{k!6~jt#8lzy%3>#jDse<)eyRfTZ%jCeVx@j z{z)*j4Y5TfS#c_8)he)P%-;*91A<-ehP8jj(Mep#;&XRo#l$VrqNx_2gT*?_{bTW% z1zXia18R5p_^UG!wxXzVW!r9X4mhg#wBAy8u($n&m7hlc#`U{-V)AWm0L-_gUuSc1 zL%PVE3Y@WGLJIk|5x?Q&Ns57Rt-&qouJcbs7FRjFbbd*TIQr4+($ajBXH?S5Huu!R zA^X2v!!Bu?Y<65L>hhRebcN*L@|V^1B?(x2{cY7DHnrH6yy7tNk)#IEX!2a+)uE)g z0EL^sFzbGu_XM@vHF9m}8ONHv)pOHy_gA^Q0ugvIf#mdOb&ayLJx$uFU~J6+y~V+G z5p$0?|7G@4O+QZRhq$!b6eL5KjmH_c@%`-<36HhL)8}j^9UiUS;M`q;TKPLiM&P-e zbq6hV*@*WwzKOX?B=a-qskG1(&B%|IvesXd0V8)nCxJ?EH3)RU@ zqnr(5D5R)2XgOv?qKJlFQ0Q*4i?UX6^`@S}E6%Fgu@rayQoPjAx-u!?Zq!9Pzcj5% z)pg{S%P72;;quTv+1P&KKk)YS)Qag+_B_DKMST=T=(!@!9bb@>C%^`QQ`8Q^`a&}7 zxJuw8bH*|ctL?`*GH_jr&j9FWAZ=%0sx}v2$-$fFj+`VP>tmgAWEI_k!Nl>&OVppHg4Y=hD{jHIx5dSwGDD|2I-o?=2X`CM?Zs) z?KC23XgT(_r7}%&7BWTb38|>JIiet~!l#zj4KDLqKdYL@1q{^6vCft;bCD4K@S1QI z%|+{Og(Q_@f0js?Ls#gS0@jixX-vd4lqzDRSB6{Qu8xh~w9-`>Ia=5eSE@%1Gm!9^ zL}Ib(0@1UAl+qCbLId=VuWGkm_T^@F58@@#37x6$X3<>mm*iRSTIKG8LU?Qp3qKLV z%!E7UQf)++?>RCphs+3Fi&wMU%XcroD!G!$PM}9^>&>J|48xBwklbVd^!O3>FO;% zCH(c-x8h;Dp8?oTdiW`or4T1F-DDTV_H$-9SIG+OKrkf1!nkrFfC(-`34Zr}Lj?G@xSsPW z0cQvcNc#k9G0e|WKGxi!#_>T;se zv? zkmJ135ojNq9tz*dP*)T^_55f<1Ln(erY|U()pOd^FTYi}DXP$39jFWZIjs&;)s?_* zx^7z^@It4}i@(Dd@R-MRszT2Rm^NTI%ov3l?)nGGWxrU5i7>h2;JM@R{>=<{AY#f; z(CEC4Js(%#zu7C8fqkMWxAYRuHrB&S^sJklVoMet04_UJZYO`EAs74H{+yI5Ygf6{ z!>~kn?D==IvFO%{j6E*{K+CH*2+Qk-l*xYYAU(lh0E^U|}u;Pmx}(nfr)~ z{U%<`jXq1y-u%}d(tE*u)ZdItr&y`?3|Fn#w&`Vk(0irxrF6oh653JROOpeqB%LD> zmLmx#lmEY#R#Z9)IzY8<aHUHZycdww5fS12Gq9c z;uvdaI&k*zT*GQ#TbDoa*I}e|1Cw?%U1f;*jj|_^IIrBtXsI9P58Z{!kDGTYdKBa9 z0LJ00!)5G!A%_19GY!~nkdD{{b#Pm8P+`(PEBcmk1JNuB&nCRK0D#tFH&h~FlWl_k z!tH}D$SM3iG>Ml#73_7-3LJ@9Up?e9%=;oIT>BZV)73u5R^Fe$C@9NF1RU=Ur&kP4 z{|1L5D=*i1lL z98PM|m$MgYgI?9I!f+c1PQE+F`7U%7c zS6lM~@*3^w;0AJa5&m?<+wJp<%I>r3l763d5Bo>kv6!pyBk@NS{FGb`cM8n*$xa# zn7Mzni8HN&%q$Q2!kzyd&N->YrU$z_l-E9qU%-J7ZzagsZ?0f%2TL>%5+RfaZge{j z=ZI-|Ph@u@opV9gQEu2l$ll+AH2$?|NsIud07RsJe3|sd^*5fupTxJXrr$S?^T{)9 ziS{LEtQ%sUft$SWLq29$j~O~GcddihG<;P_aP_xp3s|_(CGzU|80QVB*kVgHdVzw+C0}ZHH?%Mdhg-&B_zzn%gsFJc6N=NbS_C9hUJdX@^+I=t3;zeYpK6)` zwY~Y`*U&BAhiL=`U#MBV1h^tUGklTdXDBSrpM%1cAWb*0BK^&z_yDwfLRngXpe}})<&b?z5Df+m)B}8>{UuU@TVPi zAqZ00J8?&AuQE13FyBH^9ZG1#E$@)|=QY1cTi6hV9gNBHMC9B)G!gZsuTO;Pt?_tR z00sB{l@#m8NQ-|7#l%no{>|p!xB~FF0?$|vvkn`g{<%7AAf~YDFN^mLa8U4{1WlU%Y#Ox zj;(yC!Z%3sb3KVz#W!OFfot(7w&u2tIcQ)?_xm~LC`KL<|NfM8`?t>Yb3|Zn7|$U{+|a6+?RJ~PW$_2+heDL)L;0EU|PTa`rk~q*?4S z+K`82?_tzAT7(-p-@h}RaLIqD>=H?q5Fb<=@By+-O`bwtrO93jWNj7gFL~c7eIL!M z5zMPd%su#7Q!mP)ywNgT3e^AxUaV37OoR%jOt;a~V*}+4V@goGO6z@Je16#VYj|s4 z)cVc!WgSHlwer`}G$l_aVpZGFzxdM#<=><*f{0)MhPJ#7VA$R_FZ*EhglOjqs_-8E z`V0Opew@?4JaqPW)xKhVSelyt`RMHhpKr!S{&{LeYbe45n~7Zl-VClE)KKseh5Vw%oqP+^E-BBMq=Vb%8hg-iZ^xvV6@A1Ex)N7FFg5 zeoW@a5_P`j(Ukam=+4;GS<7uo@N(3_KdUV24+okQnzx6!w9@T5Kl_@yax@e{RTe_idEta~NwoHj+sP#mKC> z8voFQr;*uv1@iMfOB~B}qC{2?o_caJqCg!t@eIAnuW?2#=5$?p6r3z%S>SdY?Y}tt zy-*tOzcl#3q> z5Qb{{iOM=Ayu_7>kgxy6-aAEC0(ISjCw6jT+di@FRBYRJ#kOr%?4(k$ZKq;e6rvygT@a^!GoeOd`93!+hY|%|GXxi#YJ%WO6zz9%O z`d^@^UGys%|APN={P+Bi|6TB3%_PkQJ8jspk1_#~(0`~f`27_y@-!_V*>u2r-K*+;ef8|7 zIP2qKvGe1f%g=U-KfVm|OcE~UvS7rla>~qP(UjuNv?3lDv)WdLLBf*Rn9B_>I7RL9K zt<~nO^Q2nUy}Dz5*=28VgX;vYQxP>)RIYvfKxMPDWvONJL>~9%TSsVDzA%yN*AO*a zG-@(Je<&a_qECY1592egrJvL6pVI34(*0iII?Z|*ZXvesgglE2wt!F1`y1Vg@4uRT zzHDCp9v<;(j3ybhX3ZrwnR$8T^YMm8gdYPzK>>{?RRW5Br-Q`a&r*VKdr{_0qmwJ? z8`~zIT#kKliz;pY8HkN|?0j3Z-8buG_i;=!CBPS=Jm)Fq5dxn-BChkFEVjFK_*Hx! z`p&Nz|JvVynhJSlyxwM6-JY-OE*mbyfgF#9`U{47e}7g#1T@8e_4uiDyvpJpJ}NC^ zx@^r%1a%@i*zR~8r1tnZz8-wG2on4590vG3Fe9J7T3#=W#9aTo-Awqm(a|0p6mj7;g8EX(r~ z;-YX(28B!4&#$+*w{6Jc&E6p5lWcEwXjSaG=Uu_)@yMO7^k#D98V^T@1B!}14JBU9 zz0LLRdabc?K;4H~Oigg+LWv>MkP$;bI@VR+ElN5=MS1*Ws$3g}Nq)Wd*o%Trlt$Xj zdupHHs+2S1jq{=~m8)0d^5Q__;m73Los2=m+j8mi)kZ6QRR_6U%~XTC7%sW5SsGZ- zpVlQ?C|Tu{k;-c}{?uP8%`5XT*QjtU_%!s}?lLLJ&g&w6aQ?t0EBKhN>r@JB-~wi|ofk^~#t zca6F)VILt)(IF5~j##J!+9m*|I0>R+MQWr`md;nM;;&9G`)KKkcKOYz2z6X{OlQ0M z3d~HH0=k@9bU~lye}(V=WbN>|lM3?foF;Ndtj5ZmXX>6h?c1Gfx)A>rZlodJVYjBO zE$a1kd<}lZ@k>ORj=adFp295_mB!HyR)W^Ng6LY1?M|*pt}5TM-z$Xp6nLTDR{cCV z7&MZP{(*@J0EW%+QiU74tO~+@=xT&SBv?Ni`Z?XHB251)D7VHQ0wlgL-Nz8(#hgJ* z`e`9KV8T81l)n`{K5)ejgd4vr@2-pspZk{2=MKx5^H4n^Ut85y1=igwwsz27ahI;i zST|?vxA2KVBkQC4n~m>PsHphjEna!Z?0ZIO=XPY;Xs>db(?@Kl`!L%MY#9$3+kp=W zL{s26b1!UYL-cd(G23q$4L&}=Obq;`)$P2h+VnFcx&5k?q%T_5H@WooqNJ13z)fuX zr+KU!rE4|ZZFxRrBD!+FGv22)?eFa^7bz-5KwTmux?p*IO(UB{#D=JTh(y0Tf?o>K zVk556XhIEfNZ`p)VjSEJ`~=w=)i``jFP+Z*-Ql*tsU3Gr4q_T#ImTl_s5OgXagAeA z_{`A6y%{{=lhVyQ95dlFZX{gPiY<6~I=J5f=WgTc^0W4Ltk;AJq>z_MNu?kcRPb3D z>T|O9!U(Q*Si|2Qy8!7|Z1y^Dst~IUfJ9^hLrGkgE+$4A3!Sd*(+u_0zkCLMI%L5z zX$Rb!IUUVjMb$xh9uluJGq)^8;K#@~8f6$H2z=RHz&LthN#|uNP*XODW_wdYh^fDB z#T|$Wo=7j^NC26Q0AK`GRby!PUZcm(o=+05gu5DVMrMhIdHEnUIwN~{PYhV_*}lLA z>k#v1Jb$zoUO%Pk2}@3Sy=;GD?Etj+u95;M2Z)>PIKF}fd!K#wt2!^7JDK2TxL~ER zvkid5I%DVa^^`uJnyQ+>R$VZB)Y<~4LWCZYNLLGv@^g-E&$Q#nsI(v z=%>2*bGUMm(nBOg1vWrDRi&Se$6<{fbK7&LcKOQC$LtF#@Z#sh7eptszTq-k^4X5} z{ZZ57{I53^mU2z}i<@&9G-_MCT{V$3-@+xjkuK8!higxH!Qb}5=3>%*@KGd0r}%+Y z!KzE<78v*I)xp0;uZRIZ0ZSA8;AQUF-eSXp2kp%nfJoXlK5DeJ4 z`Fljp2+23q1H$B6%E0aKW1&qy{eREf9`4%kL6#zf+dhBUh1Ep}U&lb)fCKj)R{a!# zUm<~>`;bF$p=Oj7W^;0xQve_ip;}Aa{r!9E*bKFQ)vRMd3vp&Pdn$c&BW=Yj8i{M4 zmT@6gleKAIi~JqnX7_Q!?E8=AYK~-8^xVp5Fr@88Oy3aDE^qF6wx!*-nF+%c`6jT= z9&jF*s)xg>r7?2RpI_OZn(N-i#LX-%%n1(;>j!~x6I~Xl3J+#S7?M){x;gr9Lg02r z_bxV0OwGw?EO|DvqVO-;k=O{8=#ySLTd&LPkfS{EUHtT~L==9e#}fLtW3&fGJ0euw z^Y9g>ljIow^=d$?0+c5pqA^^hFqIw)A1v#=FqoUwd2sk95mU(`5d0DTGB;gJw`E;y zg9~9<1eOeiCXzG+%v1!46I&Ud>9=Y1-Vp8QRA6qIfpZ0mTW4Um_@|l(Nk+t87f9*B z(-bTM=C3vczX2wByl9D9^xUOZ^3tB%af22RuxCO;Ll13MU!=|{ul01<5E~2sS}es- z0lNzZh9TYunMty<5sjh_=9M>E_sDp}aHpe&47NP{XJx{k)F zS)_-w*3j>AzJz6A$QPlL013TWdQq+~ZSKW*->s(;RcxSao<|!v=mmx{B6~fbIy*Q; zwnP^VE!ARS-`uuugc3rvSaKwajQQ%nH4dIWo% zU~sC4Gf4=UR+FpIft2o6g#l34%I+8HfyL*yfgGYN<%pUB)Cvgg@g|5QH7HQ!iEhRl z%^=PyjOb`2fy}g_vxLyYApT5NB@r59vLDXESp?Tk7B2YAgnUw`sx@gp7JnvIfcQ_x zvHNxULPl%9F_c&#mgu8_l1ju%$JmAQp}vsbaL^PiOSS`lttABS*D>$!DF*a38px>VMSHRvtBCY6)^Sd2fUbl z!*O63F$13ZUe?N1Ets}i*v{}r1bRKnI7DF;;8cLC4C>%Q17XobRwapwqHgX4y#7$x zIu$dsuE81m94|YMaLEI3<%i#oFtP(nu&I+qh!qf00Z+BxIBIi5m@J92aAF~%zoF`L z0dDr_3m7$FlVxE@=t@<>z+gNmNHtUxI&hOdap5qAS2}6bNMV81ND?{~qS&>z%1K{S zY(>FW$e0+yV(Gt2C}PG3p&&K%VggU)RE7eB<{7e8#qALAe7lDU%1pcv_V9up=xs40 zk+I$J3BhQiYYpR3iy{r|;I2Z8qqw(O8*vdx(g-Wu(r6`cvQ&UHSPY!lfN0dY(?GmE zT;3B=zVA8iF+NK>Fjm@7CP1#K--x|4br?D+B?b2vL~Z~1*lC9mDYhR~NQ2(h3y?h?#Ty<1sM=!p5$IT`hum(kTn-VL8D$3Jq9)5kwkv`3;8)gN>2n zfn%uwVxo(wAP*W|$-=;9EAGWLDm3p2{PrNr74oDwjGN2s)^;;-lx5XPX@Yg6`Ag_L z`I#Qvu%ZvKss3^r-Jcm2XY=x!8cIlYys!(4^~a!v0ihCOnj|c|)tr#QA(WA2&1q0z z_hj$DJ;6}feMAI|Qb7eqF>u?QNqWJwUXhG4_>fST7zi|(u;7$q88l16HKc~HSvZVy z1_T2?nSq(OckRgS!D8Nv3Nm2VP+j|CqnCRZI07F4bl2H>`@Trrld`a9m%E}*H^DbJ z*$`R-u_a4Kyif*Z5EKv!0w+aXI&sp9yvYno2@J|vn?`ax&2)yC+2ydPGmFmyA`|?N z08(9-P+1R$6fb=Re1&!;Bv1kZ7GAbrYd|mFgi>l9%eOVI?Nx3O)_~+m`|eyMB(=Q& zQR!{Qvb{@ieEjbZTYRARq?;0Hz=wl@;F}>%*V(8iih-tv!*D1Nj}+LzNe+$%fL80P z&Aq|6F#{>#M81wcmwDd(4j3w1xVj`{4p!uOoxbP)cpTh(ff-%(?xgG?2?RjHHq8ZB zktj>!ghI9h8Oz$95CxHMW)i)j$}8ZR5J&@uGwO_r+jC?q!SWul`W?z}U%`8{2OzS* za8<#ofjE>5rH8Uch%Y$%6vC+D04U||(-*>HQ-$8llkuG|@D;_a;qa^AC_r3hg`?U2 zEAP&CM*7_jfw7yd^d?YAgoOkPU}phuGp>$79^OotGBwhCf_dF9;?XN;nhh?JGGm92 z4W_TX0YKA=R8??-WP2p2LlRVaqqi<2R#S;5COmlA+WU)K^;TF>E8U{Eh zHQYR4Ut9WkM~-*w@+MLR22+4|)GXeAtlS)47aZyv=E5K;W3u9?HED^8)h!&Aj@}V` zZU{u?nB2PuOfF$cNn0=qvUv91vEX(SOz;H^-R?zL^bAC@?=hW?GqxQB~k!gvbi3aq)j0q3s0h0{=)67d|EQ z4y*QdyP=?L32V7{_I38O#6T3odVZIC+T95`GYNEiKy`6Hxo_5~UaoHhm-S;)(pRV5 zx4G+a+w$E0+1b5PMk^=gRCk7D%mzV?q|u0^>w+9i^tp-4Q9ur@ZDP zAuTL~vx0#aB;n;4xMUgJjU%$hWrd}IyXujfy3 zGYX{`w z&)Jl?{kliA`ysQ@9z!ooYTdsYpLlD?GxEz2$6|JqDKwDy9&h>i3+{0odHTMk7rHGL z8|8EzGm-L)l{W*oh<>q8G#h@rtKmc}V0bd6{`T6$coj;Wru;LtEhIGrLfm=zGtUbusySR78m~b;yAb@0@ zGu}yTGD`TJGgCt60uVuRwPA1cJ6#r+e2}@J(b?k7x%*yB)d+%=f=Phl zBp_fYPVZ38>EF5MFNiBG9Qi*m9)S6My$SuRJ#y{-Rw44`;d;GCd?bwyoT)#_)_a(EULHy;f3 z%!SGw!+b%${f+Hx-ctPnOjG)z57%UGUE1s6VS}6l&P03{xq6X7kSy*5)Yu6LY@c+m z9+a@=Nxh%MKrl5;2ue$G{dE~@BUG|TvP1|O00&jW&z?F^6F6MXBJ+-zmvv%g;F)A$ znl3rWvJvR&I&r4W?T>80ccM5ma~q-9Rnj|aV+LIl;ir34XOon`NEtBdB#%=+;DmIJ zXe17#`<8Tdv200D)M8A)d?ww!QA>Q^^1K_Qg1etPeg^mt&Xv%5 zybi0Rs_kSehhY%P@$^4PH8EoB7(z!L=*U9#0Q1qflb4jpSR%1TAp~fLsQ5uTUGNJ1 ze9{6X3TG6u1U|e!E=S@$Ed3){+xUWgZpp)xBrL#Vf`=Tf4Df=IsO;^ zhwH!Rzx?mQ{}9{#kNGd1Ua_?+>c^iO?|D1-`Cc`zGd)CT8_v0_@#szjqcRXd0KyUA zDTy$cpr8&(Xefz5Vc-JNR-o`4VK`P0P>GBLl65r-eWNkN($H|H(qXHkwM_LSm-pai zrjxloH9*IiDyKwQbzz}SM%_}tc6HYEuXmVA^mm5P;mS%-0MxD_SlgB7AEyJAJx0gw ztFeF&F0OjtmpHCwqSy4C^x17c`-8O=qH6zr`_@{&T^IwOhb_&3>o~3!@qY#Qf%Up5 zZ5MCHidM4kjiTFK?TNoZ?BjPT5DORqoKh?9Dn_hNsM&qbV%~!+qHHriQK*QOWIkXD zcy~75up#=!O9yNr&oRw6x~dI4dTaHZ9-A@-=b(2!5yR2FHSIxgII-mgxx?ekzQ=ASQQ!1n+-nd1!dCl)qGK!A`ntAQj94~A zVYwkcm+dC|TQpAkitbbWe1 zNEk}`CNJRSJNF+1YpcuGg)RA@+?exczh1MLS<j=TU+D@G@dJ93x z74rO!aTX3>nIX14^q*{sD=?rxp*=)or=?lt#ne?{IC9pH5EYELSO>JV^QTFM%oyZ6 z{o}Na(7e5qKr3C{>JmkpVqw7756+u3=H)F-mUnb4AVJf{l996$+tUFbO%Herzp#1s zy>okx=&j@5Jrw<_JE;9|s#N|sOQGkW^NI=cP8zn!4=WCHz)OWE8V-&z)eRJ0&Dbg|>Y+}e9fgg9x!n^{a&;Qb3QpE}+z*n*|n z05zRFyjM25C;3IV%k^ZQxI2DO>2=RKz0)?I!nf``x?pM86!PGN zACBEp+RY9;5=?kS=*$gM`;Ick6ueq82mQ%@9=BNQeqXgo>r2q8z}B)> zU%fzXZ|fP38^xAcOjQ|&C^F_jUSL;t4mQs!2~0(!B|)?h7m+3yU5%d<@xkA~qL4M^ zKP}q8TG{j^7tJ4Ghs=)6q6Xh;n3u_vA32o_F0+=_CvksWUn!{hsDGa&_?Y`q0G4&% z9-vp@`O`3kHO;nTB~w_;Ie<8J`OsN~tcRl7V3#qw27mKmKAbEnCY0Y_W0t zh+raLtoF1)<$n8XdSz+*Z5dG5{l0bmb!TnpdhM8wP~ZM#6>_#@Xm60J-@f1Dg4cW1R!ot}jteoX*J zwK@at7bNYtjgHK?FRv7sGJ)wDbi8d+nsl{{sdifdE24G*Wo_Hcu}OFID+vs7)SWvMdB^|_GO3KG(_gk>Lt zjG$YEcCm`v+BI_9V;TA7rTaVwl03HF_NgjE2Tt9OrK_UQA$E=dnt>L^5~f=@>`C_~ ztBtatJ?=vnrVi_(N}Ni{66-0uC6U6Wufk!}1&}g)v2%jcg2hp`CQA;Y^c|=`0mMk( zsS}o}{e~cqO087;lIp`L!u^iBtJ!M-sI$fl7-W%upEJqYvl=n^6@qZn)}{tj&4=KLkeWLU;0J4-cnw49+Ulj!ROds4>H_2d$hehD*i|lFm!qQ_jJi%hZh;Uu z6s^)OjYI8OC$_IB6DB-{Lu(&=3)W$NfT01hL!hNxOQUiJf+IqdK#Rf{lelu^g8FuR zu?FYZelx_-+@Y35mHh}s!+i>;n`j5$hWJ-3O*Tns zxWy?ASdx$l=jO~y?~s3ODTP3{rUZ(SC;nVf!T0xeJ=6t^MVC1w zq$2CAr?DeDqL+t*-fs?$es-CFDh;O_0ybB(BJIL0!rgVwdoStS5lG|IAQLPK%O|D= zms41S8Izxu8MjWsrZ#ql9aByq5*d^K)PPo!e``~;z<90Uo!Li;TeDD@(2+NWelwlb zgus^r-#}XtU%WPLA!Nf&dJOfMw*Z+~hfb@qd~;2z>|~5dR+?jm;(DMJ>B@>uVGcQeOY66gpmbsk3!MKX){@#{(G200ELV=hC&bqV`d?~B$kXk8>*<-I0g_F zOrb9I7Cd0Jw8w)He^yY|{0x|p&zA;Q+uj?rWDgmAHI8qq+y`XH12_0!y;NnGaQG1^e7rx^vGwWi5LLpPo3CbCu{cGv!YR z9wcc7EjaT*ISMjqQw)eEtm&EXYE?~kQ3n*{$})HM*S_ z26_aTGKgBCc*?nS0Wp(8wuuN;{+(hTaj=qvJ?Cr2n(hbnoC~GLisEn22VTyZdecs( zyb!RuBc&P)Cx$$mwf8^uuz@-02-Km#*Dl-S<(wk(`TQwgJzZ0N6rdm-! z`9%Bgkc=o!D20eH8jQ9d{WJwK*&ClF&Lbyn{iY~zM9=q)jiCKZ0s0f{Dvyw1(cH0q zdSRWl#a7u3iGQ*oLw1I**A698#km>?&RlMp)F=m0I;NFxjra0N+mR}+9IRr-tOnKr z_9z)Y>ktsHJKLRm?RoL@zDMYzfd6$#+o9u(;;4AEVds}x-JW`O=sjHbmVK8Ak57Uy zRN|1Io4y#A)Y|tlB21+W`?N5nAW2eo*b!qf?Qj|!3fsRcm+7mWnTp=oN-5$pJx3R> zPWfL-#m!w)2PZ@&+T$!w`W8t_G;XBQY2YfUD%z&WXrY0Z zC-4hNMuMs|`pQ*pm-s#({p11Bl?48~5j!&+qv>9kx2n0k?m;xmGHL@(->mmCD13&c zN;=}SIE0r?y?#Oe{zAiSal&*XhdeR8>z-H{dS`DTBrNO*B(U@AQ1@n;+(Tj)yl|fo zy;HQ`kyV0L+nZ;82As4mdO%vP6#P^++fQSCg7UGHvlZH@muHWz%~J-Gb$ z7?n2T#$Vj)6SY=Spl@G#Ogf>-XsA2jc9-=b!3J`ryn7T|Lg_uP>Snzl_pu~C%6k8f ztwlKLw|1H1G3x5=fBx8gc790Lyw!dFX8AKzmgx$1qbIP4&|=*6I0+CoumPuKr5>-S z#2`^=sxJ+f?M=iri;Yhjsi}sQf-mi(leKZrkg`y`_d)rF`+N%Yx%NZ2{lZiOv}2n8&$@*xjP72Sw z3h5rj1PG#tsZ+7a7KcYlf|n!jv}8dXXOB!w7e;X(*vfQf>t}#>Q{2^Xx0yH^4>>vY z?HSz|bv#PHa4>(=r}q5H8h!l`OK|ymux@c7TDE~=zTRCowfh}Mg{jSk0iI>;2L-;5 zqXJ2n_F^o~zw_%5chl>caMS7eIaugK$oFCA{uxCm?8*nxuzZnF-dS8IT0C#Xu_GDNxc*V1Vl~-%Dt}1dk3hAR{P`-YW$zU9kwVCO`+RaIuqiP z;IzWSnUtjBc6 zBT)-b=JW|^50RK_pfEPz-G30!!sm~B?*FpI%eOp$Aw3FC;mI$F&NT%gkX1?K+;Wp~ zIpOGK74orgh>fy}=oB&rDzlD1x~~s1U2nXQ6s&%-|73SO{+p)R_?LGkDGk5<`0xr= ztXLdewn#1c7J!H#hmDA>0=CGq6=&&b^)C32_(MSVx8K{WtetDp(FS&fn!TMA44iU> zlZD{;g-XlJPbVpOTAqhs08POpy;CNkj8*-rV$qDN@AOPp3WL+7M%A181d#iPC)B7?Ozv0WbAYv zWuAT=ccfXyq*ej`&d}s&5L_m-81HX^8I)NU50`9&TV7?sJ|I z7sS>Qm;^xyZjf02p}Q+|0EcL4@og{wwlrT(b(kTN4W6NNEZczey6`HFl}wGfLoXW{ zgcRqyZNZ9Qt+o{#IwZ*cF2TgV3h~48ad|pc>2c=OEx#bCx*P-9I(5a4E=nF0xAxG= zBh)c93WH+mc!~@6yEMq2w~!K&ZU|ejho~sa=!9`%64}P0>GllgtcBb60{k&NMzh)3 z)q>MTGiri@PX%>^_m3|BdI5eCf5hW}8aJ|#r4{m`SEOj-vz_Dt&!Y_oy2PTjaP9d% zQk)#p-x!`cNb+Eky*ZPpNgpxs5@Y?w#+}23j>b%|O5ju{*kCQo6?Fsww=3N!M|3rG zsa`(21_c;yhV){n^su-KB=1^WN~?WUd`ucwgKY4)!dRFhWoA2Nd{GKk~SDT@dx^qk{mya7Eu}#&;h*wX)Wsp!LBYJfwKr#3sczDE?CkIj=rmKJ;Z3b}NKel$A`K(4rfSwekb9F~ z&yZ}M_0an61oJSLz4s28a7Hh$GtDHSSgT-+LmR+F%#T`q!ASj^&h4feXQFO`tx|H5 z!X21ZXeLe}x^EU=KbvLvXYNL33NW2>&?WcBfk&hF=oTSww3h}@GX5_7CEY5tHz%6p zGGDYpYz|;x)>!LWpo9fSuIJF|T{8X$qb+IWGGN3#*(Ta(WUjLA!RW%nS1rHzcm5$( z1}%(bSXAy$lIhVp9gGj#(+bL}-(_H}6xAU%hJrj=tmv_r2!A^62BJms!E;T+olAlq zqd2q0wG@yqdMH*TMn*!q2Hf}P;Cqpl3|xT1-Sj~v+8J``?1iuo8)kQWdS0xaSK|y> z(!W+Hzj2d>HBaL5nW}~<4Q>GKJr9-ME5o$f{cpY7O-STm^&^8=OWngfqLL`7dzf)h z{+1b@w%UK{XSW*QC6AWZjcoD=Y07wosH5#vTDkWnKWbBhcj%u%b$Bj}8%tDd<{ETJ zQ;Xjix>h(X!rUxLNrmE^R+P%9v@Dfas3&B_6y|LZc_)QGQKHKMVd>gAVdO z({la&@`GqGN~P4}qCjC)s=WHl|zJzh9%rre30 zLFC%z1^+80wU~0r*SBy?!1KaPpw4iq&dmIU!l@foP3>Q958tS`7(N0-D)yWsyP4L` z-?LVreoVY8qZyjmMzR!kXrbiQaADZ7<}ekSCKZvWROzxTF*Yv(y#E za+~KL;5Vxy{nuO0#c%iB{g*dsTOypORez%qp~>Gu;1H(o)PWjn9bHnrLdAcS%Dq30 zX9{*m{XSUt*o|0G8cZ24peDkXzy&TKqSa(DXepv8!nuRIApK#D5tUO#fu<5~c)-OF={QcmzEoB&`%Ivf$GY(`rLH(g6gG0i-5fGkznKJ@n_* zdz#IZ9*a7UZ^6|CbUvJ1`YZb{Nmyth#@~Tq8e!hm6TU>h|FlD>G&XerWbeLE{PSn) z1*E!39)f3r~c9gF*Gf4zNr;8+X_rq`GDe!b=cT$AX59MY-iq z^YVYav6Ny)wU!iVLaoBPNkp5lPSz=?p$vsb^;jx!b{>3ac2hl1nEo-OYd;RKN!54g zamX5^=TM=Do>^XCr7m^B9SFcV$q7m5J96|z@0i~K`0yK z7-o$>A{h)-2pHKmdbr1i`Tc#T&MeLEQS@Hm$Yh8;`i!AD;j zO=pr3nNZ(Euy%fJdl*QXazdd>SQii`QgmLd4UPx~&f1?rlL}tUZrdP2V4;lvh#{j{ z7{{JFN0JODwFNC@7NvMq``bx1-({Zi5%af#IR6j0kW`w;$S^Vx*$3!Yyjq0O@^#%G%Ae4b`^?yPaS`E78zmYnZSEeqi#hPt1j*188OgAmX=qK4k&n%YZ+Ny;b`AY# z`G`BzoO70l1rB5jeTz+_dOp$E-Ijy;z8(XYgF)=qA#%&LUeibi8WmkB*(eNF)j%Bh zMU_IxVI}gmmBS{%_lOKT#hWe_FsH*mE1W_}WoP)shq96(2}5v4-a&8sE}T0T*FSGh z{97O{kNInKpnmB{gpumP2>9PW3ymy}Q;qiY4(+2REJXh>UK^OOuCN=!-J2C#&jYJ% zP|*IJMTL%BdzADI@VP*T$3!YxI|XM2jCBY_$wnmPqA1Y`KBhX%z+8;?gr(^&nOs0AIQ#gpUs)nfD1MmzBqY3GMXC^&a?n@8?^xX4MJ+7cjnGYLb)Sw;pgr4Xt7^#{8^F8aY-2W)t+e$ zL>oa(ijG{&d}Xj`!(Q-bGJ776>@FvJvqV1@2m=iXOmpF1`^&5xf#t6eJOpuV`q$hZ zpYeZP%~SAp?BuCzoHwjindu(Jy`^?{qZatyko`p|J;cYeP6o<^sh~j>3MZlcf=vnS zU$XS-kbd6h{Ip6%5)3O-t--3yB+B@59(lloYpFH1&GInblvxenEPMBTaRQaeX4_a{ z00(5mHr;0G+qfbXXA~-73|Rp^Mg^S>-_L!G8;VOkzlAshD*3Xvy1KbabS9K*z4@QU zm~v`4tAAdUh{yrUBgG5BI!Nc`gU}MI7{am?(c&vHgSA+Zk;?8PZ_P4mPsMctzabHs zhT7u8=P3HQk9I`|w$b|wF8wLKif2(GHQ_@@-w@3Den1Yj|BDDj*>Y~aYl4{cwG3eW z{#vwLe>~xQOAWw1R0D0wNL#QpqGZ$F$nu6oi$6nFlHjMg77kiWg^XJxTcAs-7RXRF zn5Yy9>MYgl;Oj?jr#Oyq8QIAFRPC@NdzzsV`VvL17*&H5H+(K1F>o&FYH{_vvn*X1 z;}Zwm`^$O)nyBGgG5*;%xMj$ANl59;U57sWi%3EFlNnX_)!gV!(Z!6NEx#1R`P}b^7_aXhJApFr_E{i&h^}n=^}N=MKYSLE!V}={ zS>0xBy*}@h&V)$xP`^PN+FO`9-~datg%P0oanv5St(c34jAAerfRFTm*a?#L^lbJle_f^w`xQn>E zakIPq@&f;kj)sPt>zt=sA2Di4hcK>|2I=K0U{{#=*cM-h7WH_3bE;>2j?ob8{3X)%Bw-Z1DJ~4Gl zn-?D+f1OoE`{CcaO9DJPIx4{?>EogVG{|vodJO*O(BkUqX&C;i4aQ{Tfd6^Z^_82U z_=s7rjil-KZ=MyA8!ZKe_&^TY=JbLBp)NihHjAmTpfon{pgBjEF-1Mp5P>iYm+M@#`vUH@<-3}i7KVQ97Y8Q2?)z&$aUD-_{P zeWBNqr3TcYK?2|ruY%rDU<9c6!AC7C?c6Oajt|DD^I$18pui>S*To@xZ2|n>ANO8S z;wI+u@^RcgPc?Enz`N4@{e2fG2>60B@Z4si5k>(LKJXO4m?sR*V|~w?&Bt7kSg#a! zx3~@>+XFPDk&A)B_MIaVfQnp;!u#P=+24Fq^Vh##@GTilC~l4#fC7$E7Hm*EmcWS) zbQC8g)!NC~bc(=J zZDm0B9zGPnS*onJ&G)tG@`)@77K$nKB0w&C29bcQ=+`FocQk&jcaQOi#7FQU*(8NkR(XVh#s8Ir{66NjNS z6P%a*69W%dHzK1(g27SZ$NS*Fm-g9TXRj=xyY5C!P~-095P>^TVA~H2F7k-YPy)aZ z`#Wg7vepi(Zok69LL)pB@!q1MAm`bk){csbQwAtG7yw(F`^DdYLFMvTmHvMb!4xY` zdlAGAZdR)^^L^|rwaLlJ_y37#LnOdo(1$`E@30L!LAdtd=|_kc0H~2v*tV*yop7s7 z)l*hh_GtaUKI0a{vtq~7N$jz%#vf?IB!8Ix2%F||2pdi+5Xf^({UenQ>}u=`VS zcV_YQt>)EXUkoCZf)NG4WRI|T=q9*9V6e`AvVFnhQh_YL3>C;WK zP7D>D%mr#NY0{x(W^s-ed(#Tg*0u(ata)w5;_K1U>7vagqSuaJ;Ke+L2GnEY5CJ_E zWbPpgbmcRF?Z-yrhsjwKK)j1NexzPwK-cHf#=Th44T_O{kf$Z4(V1>slcpl6-bGt5 zk8HNJ?2VQ8=C{t^IXM4f+REUMBE(amCL3`h*J|faX7d>EP{U0ifYW{*1L_tD6Z2?) zC<;B6&2itgw!UK#ie&nchw;>*-Oc9|DxBK4%UJkhD^x44C&;*O&M4Ubu={yC=i433 zNUm0V^WU8?xt zznYJB9$e|!O;RhSAAMfJMryLv=d`P^bcb!|>nvIirq$_T4+eYm>w>IUZ)y(0AL=5* zyQbc|<{IAC!}K%%7<{tyL_VB|*+{e|9J|Ic-^5XPZJq`S*p%Y~1=y#;hp#U>n$6`I zJYtyKRv&Agu=PvexMX5@a*wzITmGVB7ADh+1J#~bGW=~bG1H#f>GHZSCV~i*508^3 zS&O7^$#7$|_*NHwsakonUfg(G+iv>VZLkZLo+5TdhfP8{VpL<O_W zztO_DF)2ox@F3W;8%3Qi!N#^?;!OU0plujZq*QL6tsXtQvah*}7bI?q8xB6MkUd_4 zy7H)Fwu2Daz7rxjK&x-zxY?VdcNly%iWpD8fQ6J?qvtQ5LP@ZuJe4ir^ZK7xldIjn1tCxr;L!W| zM0R;S9S9yvxq>t~W1$BHm%9uN{*0wgK(g^&{} zrFAqYb0AwQ$q0?=@_WGOl1yz{`I#x(B~hxyzyLKH;FZ*u90 z|JYcyQ6zUT9nB2?NblNku>CmwmEho zJh6izSpEv0h?ZgrO@GMWQNi62m!sA1y`xd=+39V5aL_3_%dcl zldoOGhMH@{gdKX^Tu1X9raR^NU*=3rHis(7$g6uv8aN~AdoUj8;upj~k7lB3c{JFM z?tk{h&BH1xdB^`ipwsfP!{7*|B^4bYK#v0D?uwG-r8TDb>Q>qfIGrclZVJdGkK#~& zNuESGQHTMgbp)nAZ>27B($zXz-bz+m-_d*I!0ZR*tCw!gyd9H?z-=5H{;?Le#1r-1 zZ(e!rrNtG07ZxeagpyIs-h2EX?7dY?9niP#yVk-MzVL+=cXxMpE$(hbin~j3cb5V! z?heH%R@~i6ad)`?L68937i0M@e_W=X|UW(sgBu1 zn6BCGzV2=hg7UYx6Qk7rHnx9<#t{&jC3(J3gcy>KTfQV7N6htASYv||#l8lUQ@{yA ziKr^Dw-DSX0YJ2bkH%&Y`dl)&py&QL@`?MLZ6 z(7M7)c$e*Z`x(buJAPaI4u*I%X;rmm=r*Giboy3$SXzNnL`6xZ115w^pQ)`;z?e{2AO46UAv_wTHrx=n5Sc&+dqL;a)RAS>ftl#RD>_>lNMD#;q z^9R#%L_fq1ioDd_`u4m^F)>|}Rq?+HU&8`MDUw)4(ZBbzRU&HCUn+u3D8qodYFJ>* zfjCmX^Ly%zGo-b;DMxTe#FeC{dj^#S^H1dJUpj*Y#;8%wq~yi;YGADNKIp85rs=N` z9|LPM5G{AVEo*n!xysO_TkRA-3QmW!GWybU&|$|^ceZfIzuI?GsVbqXvH7kYo(V==wDCJ+y{qBiLw zNooH@U6K4^ z!YonaI1*2+?Q>%`7{S`x`6t`3e;0msAeQ?nA*n|`@ds9}!;xr_^-Cz9LZY$6It3hxMllMxkq(l3}HkX*z!MP53^< z9Zu3xrELw%Oh1RGl}hDw)jX2VbvU(B+63S*`nuTKc3i+eWR@<{8m>+MhmE1i4;xwol?WK+6!(74$P3#9G#V9QdW<=%Pa7sg1Rd@&301z^k!N zLg%iwre*^c=l$tc=UjSpn5x+oW2a*KVITHv=ekJjJRNgXpA5w^zz{du_XBJ+ zHh%5dy|znj#8KV1xLnzgJe{mbNq|^<2ovQDKp9gE4H8B=eyu^!0*iX34#qmGrVkez zuAPme;xXMm#$5D%ybp3!{c?p5P*iiSs%mQdex0Z(j6{GjnkLNZH2Kl^P9N8j4c9&^X}Z;j`scX{e-&-n$+M1shB+j+k4d6xF= z+Vp#8$G`o{&hs}{Hd@cp^fZhzQAYw&06QaQ9-G?7fs0FpmvNWS;_tIElA`w28JGjU z*l=XL^UVg!@ooVmk!6qKVz)oJFNaSJU%#5}fYU~>(ExOiWZFpWlM~6$PiiIYW$mat z4;3;``M^Sx(!c{Z5s}M27@8!*-k8?9>G$WYt!Kj9_pB{^Zw3APzTh5N>F>d*4m^go zwM#mo*RD_a9MQ0Tf2Mom~#o9_^kPy2=g{>BWANRn^tHU+;}Sysx4# zC>n-i2@3!sOxWLkl+G^Brb=SL2H;85-+R>Tv=-kOgf1{{>HgTsi+qI1_z2OY%S=+I#$@;yahK@75g*)BpWu z2gL*)XatF&{v@%SlNske0P7GD53dr!4drAGaYAv3H`yzJ4!6VBxnH0DdxL!{3+>;5 z6ZHaa-#UoB)a%TuPQ5}2B1n+fGb$cypnpHtH<%Ceuqrv!waF9aXOvkH0HQNwo+(-W zEN#2*@9a_Rhu)+I2fvz`{ae*Osc&VIp;=(9dc%uL$vn)={%-YhhCoxk^p zlrNls(G`(YLinj)|Gi^><)L>VaJ~dRNEq;r9^`}vjrBj6`M>C=M>SQGPSAv2&I#F6R8%h1gd~}3*b+r=Vm*TPIY(*>fR*s|7 zHNE`C%BWHa)reA6kw;!J- z8#UOm*XExn367-`$cq~Nf8S5r>CF=l8m>lOR#d_RyO!Il0n#)NAAdL_t6JhQhfYsF z>%~R+q!~3_U8ie92&>f+e7-D{f8(BKtT2B-* zSl!m_IPRA0FCoPa){zLrxJGX)mHKF+u>lpr_5KfXOP{EIv?i)a(#rd6pdsHNbDl)Z zHZrSYrfYpg;+$H5=#ja@3aff(tK4_K3L5xZ9i)Sxn}Pwej?fszlDHPMQurOV&Bl3M za<%S%JvEUb(1}#&nj}6l3_u+7d4-!eCW2==4>o?C9T1ln8Q((VNgPkW6dR+a1}l#d z4Zg4h}bz13>j9R@EL0lq1DJ*QyOffWDQ1EZl>%T0G6VUei06I;~ z&4xfR?XGe5rpVyS_o~3tZy8uTO;2Gpt!&J{Br*6Kz-5=>65uK;+%l~1)I@nk!K9bH zw4@aRlM@CBXFfoHAGQKKTW_~SidZ?rSl7k7bdqI7c-E-a+;5vWYk`6%=Jpye~U-qZh%sd zd9foQRVTJYRCC$uQ`=2D<#mJ#j?wCfF{mV2x@oJoD9gwD@2!m_h}@>t)*_lr%aFX^ zT8nVsMOD$H)|V|*73EQ|PzszYF1N6mdHqMbTq^|iN2=NX34e#_0}%kiixZtyGawp zNfAm|zuxF1QfvH3=;W6EM=p+>Wpo@9hf`fXc4n~Nykf&7pk~{*JaFI$ZDXWGiSXEM zF2@KSIBz!2aKz%eJAs_KI^($Dl0?N0PX`B~^_NS}*q0JpG&Gxwpnf=AnO+_y)AIX0 zY8IA6<*f%9ivK1ZVUSm%+iDEE`6;O0uEMBRZIxfGrk=UxoL4NF67g=3wZ%3$@8$mM zK|9{)4eGw`{Db~MnB->&xx=Y#vrx)aSbXENLhcd9*!UIdduL& z#T(9KM!1(N#efL>t*RP4?PFmZ@z2P5$^U_kn@>*2h4NcJKWl%9l=L)$oqMRdP?Opn zS8WhVLzKCKBgN^DU;O&O!c-l5m&I+nVB*e)ukY*j6O1enDK_tXb?i_8&?XhqMoUgf zMb<e|DkeHfVASaxH#hx`uPENQP@|j@!=x@J4u&mc6tvAw zvE)0x7S!jSZ}WW+Hc%hYjcLZjO4B(QE9hhh#~p~v)Nd;{WR8i^fc;Qo=IdoI~o0< za}TuQkYQm#0_L>3XY6p~0Pib>>u~P9$4Pn3bK62#xZDm?u`+Q3FY{x=yt-JeU-0aiHonU%_({8;^o9i2BKAm;H#j z28&n91c#-!V@hJHoqQNQ!~fr81h2A{@GUlz&P+9JgMp}T3f7HG)@rLUFaEUJ^XGMj z9F(?TZ8P{-R~`9fBPg;Syc=|nk~>#N$Lt59uC+{vnvuADsJmV&+3!4u9G~1j6-!XZ zc`{|M+bpiB9Ybglm^{jzmyj$ec?9qZU8Fj>ft7^j(y859%n@pF{xdYGq;VA8GH~oLzJALr zUUgFy<`)!dD0$!kL#)9oITj&$lJPV3FctJmqOiQ_zPCpIb3JwkgeIkBjffao%5zMt zO|z@YxoinOc=-^z4KP<7E_!{R2|&lUR%3^`ZWXl;<&F=HwDx{G#{V|#on90Ts{Wcf ztMl{EcTpTZ+w@tb@fKOxX_3LCv+1k%*0Y_Zz+>igJC!8EfLuq6L`zH}%LIMHZ3~od zulu@U*_Mf4Qu)zi9KYl`uN+v0F${a>Z{pq&P@-iL7Qj`dOqt~Q;f?~t5JOv%J_rG^ zq2H3IJvUkg@p`T>m-vYZnltsVF?OAS(6hnErkt5cifCl?uQ5+FQ(bfx$IHA3=}vpM z$vYgzkNgRSzyD5jp^o;Ejf=>UJ1c8RC0V=af4N`8@!aT9v~QCu{}L4vol?^RNdJu{ z$z0%c3b6k57+H<_vzy}U589Kov9B#;BPtUvyWee@-%UdOWUskRO)LkF!pX;xX2}b^ z4r03E19#p#35d4v)Sbd&QP8iR3sw}E*s%-Vu@efMu!y_y6sTW%W@MxKMbiV)EiJ0u zl^K;?UmuCKjFMJpqAI9|PT_y$n=r5RWn-dz4U)ExjPt)-ks^h$KeNOI*rsvECY;k* zyCl{6e~66oGwlN8T&BcoG`|Ji-x%+E-CLgb{G3WUCSd+!1M?edMoY{)yb&W|@OIsM z6aCHP+%b1bVNlXEOg%i-u$8VH4^OJRV_EDGRx_oz+8KvWS&v440K<-kd-D&F_ku}- z3`_-gKU$Sm1BKDU|F+u5GwovI6B0uxuwN#6gn_2YZE~{iS()dXxmRwgLP0%A90zNb z%R0?Z+>w_$Amey|>S=ViJ78?yZNn<;Nl4uoCPo^8T}_OpqQdU$R+IY8aR&>8L!ahP`LS@Pq+%nS8B$a>UHVf*$$HY>Tej63g zJ>k^RRa$WrxE3#INXO=$8AbWExuz;Xqr3JETz+A}KDEEXsj;tqk4wpI=@?+-M#t3Q z+s3PXRn?~bVysXghSq1A_KV>7^dY5*oP$TaD7Y^7m-%S{RQian-DAG-=X$eqB2UkW zKT-EVoZtv?Zl{IrnoWsY-|d(uyXzVPKEJcTn!dp6_L$REb&UCX*DL(yiD3hdUTL`1c0DZKC_7EV;+PO!rje&f`dIQyZH&fV0*OQ zJj|Q0**lAeh4|3_VPky#Sf4N8n)fc$^Rl}-XL<1jzxS>+%ivjwzw+RkVfwP4L*+8f z8mYgM>JU$5jN_n@U79aFRyUrBKX%5*T7;w*^lYL0C=l!(Y98c;dZiQOrKByUdR7D9 zM^@b&OslyHfqb2-Ps#1-h^E*Ux@gbI%CYk5*)X&FAhUAp`G%*Zd^LI0JO10ccW@Bz z6Lrmkj^WzjP{x$Y<~vb&dV<0htu3p7fML7~`cdmA^1iWUVA0=Iu328j&yXtKbZ2F~ z;8x@#_<3MM0dbKakt`dAESaVykRtk5FnWCOXqoJ6cKtWHbH9@f9dWc%ksviaFqK^1 z;U%jaQDbBG(4uq5r1&==A)#RlH;3Je@d*dHza=8We~wFB>b?6U&Ny)3DR19|=vmTT zuWm(=3!-mNxhQR(5|C1eW8G%l))s9pAo`Si)0}Z9@eL*xARZwjUCAS(x~MwZUgUrr zp4vY6Ro=nrOQXL#Tq;G)QWTa8HT}}8cK(d?FzrY(8`=6o$*p_)BdN{v{%1uKXWUD) zM7O_c#0<5aM}q^Mn|JZE>MsgkSbSCN`SVgeeq^#A=?WWME*|8*Y^rS%1^z|py?*ED zdYdd?Av7#r7%Qz^#7tlfV8ow;&X9Fjq}P(9C?-rGQc}G?GH%BZo4ZJ-p7uWybS8Vl zt*UFzv?9o7j3Vn*Guxjq-QIjmj6K>OIyt6>tHiBHxW`XT*4432UtiPVo~Wc0y!mR? zewndz-`72Ox^<=V*wZMO3SdrSGRraVv;CvfJMpqjf(u<>$bgA#5P8n6?eSQp)2=l# zKloW-;q!(OKTUl~oMF$9O0NdxL%PT#Fm?0@%R0?*2sow0GdyV^(95P*W7x-_;EPLOJweV+)+Z&H-)6D(O6mE--8TDzYbs(;TxqtyR zZLy#QW;!pJ$`U@U`)W|$`7KP3yHG{<&)Rva{ha=4LvsDY!AG$4lYl{znf&~S^@`^| zq4n3s-idns&Hl>p1NN=yJrASr8|S~F?~E70f7PYkVyZ%%v1@t?mbW1}gWN|UVrZ&R z1~o$4<|_rmJq5+U2P^v10PE*o2|6X3$*5?q?=+@gp_ps^$GGMktuDL7fqlVcFO>;I zr19kUu}bX1$*SYpswXVJ--2hC=B%L;QoP8X^+gSG4n%FBR1be3tV45Toxd}AuQJ3f z-oU=2nmBovU=k|6Wa)R0ru^1Vqto`F0u}N@SfmHTG|B6F|KrFF+%H+4jG-K&-cZgl zINl8Tz8i9~v@$Y;{~U6?jT7V^?lpE{YAbY^kEbirMWj6@X=8^tb9fZ64_eym*r%MaW3lx&3Wfv_v6s@O4AkH*=#psUM1p zgE@yGuY#)`y7zP|2FYZYX=vCU=rs=)=zT=MA!E&Zbwgrukt85?{@47v zT3gq5N6c2a@P>m)y6lnjt$f6`u9=H3|( zAw>8bLeOq_H*8>Si|Bw(uPd_uy{+-r<2>bLk=m1x*o@&`+KBMf+{dN;K~*4b48;#r z2`B~6Fvc~(PYf~76L#IAdXXY!*OF@b7T)?eu}HF$AC|RmXF)%|zBOf96?FeI?Yu7cke1Z~CYN4>=z9dyudc@E$*GcZbrF z;0Gv1RrHHlE6~iR%%W>1eAG$I|2+!jwjH6b^g6TL`BeK^p(hpz#qPBFT zz5uS-HLLPW$3;f40It_8QXn{*ZuR3!-!tvi?F%r3B~eJGROgrZ9^3BbthFtZ^DKA~-)e;iAN4cKIM?h_ z7L@f8`%xWMUEK+abW9I5o=1Gu7-Q9HL0*~SGPAB&qCj+Pu_@^g;G{mv>^-7j%zZMC zD959MgBOdPqtniR)i?6G^js1CfF`kFpK&$abLgA})@oSbz>mgBIk<+l1i5OuxBlFw z6bMQv_J{D*B=1l%KpPf66R=U5G7qCGecF2z>YbkT4;;F!-(O*QL#y?> zn|6Mp9wYa8r!o(vQzL*!m!(}R zPjvjVjMQFx4WsYwfw+k+9f5P%jA!iZAcS~k4JR~=5%*Z-_SgNb%Uh9vC|Bb*S2xel zik3*yA3z`=_`}@`dtV(z>WN<}e=O5TrdAn!r<8a>|J3mOGeJgU(5FWq1AZ-pXmM(UEK4OirKeX z5@^-ziY-d67Rf96j@EV;tWwrkWjMnpb;WZhxL(S&MY|_?-yvD8lWEXQxTf@n7pmVa zv_-JAR3gfvdT)9sYWvs9A}nj-3~nnw1V^lLII$Euo>5qYUNM*j@8#IK*aYQsIT2yN zV6cQdtO*YPTB)$$(0Y#W1XJ%L8yZVbTv4`^=OSGL(V6?cQ8~Sbx0f=0)=@}gIHm74hsGub^U$uOe=jQ`*u+lC6W6u$$ko+PP91VF z_guoBu!zJ|=8>M|Q&RrY86BvYucVue71z~OLeo_%TTk@h^wxvGnZ)7Blv0<-wzBc} zdPpF+tr4O(wbpd=OmP{m70PBys)e|a<#Z^|$S&(%_*iZ;V!MoTty$R9l%x?9Lso5- zXFFu|f4OEbo)9Yu0go=5d&w#nR(vZs9k|F>1ArQWR8q+caAynS2D~4X8O)9i^)NLq zS$T2D%S~ixg@hPKamfnuHB4fo%;okdGh^6idAZ;i7x=XDW!`~O{nE2I5zuAfM_?qM zpy$X~Tl-N7T=M~IRr{ZhMN5kcY7yf#8+V@vRVX_fyClQpXc{hNxCduT?_^kyVrm#U zvbbLvjw&I385_GabT~?)jy?XL$6tq9bL2P?Li1E}4q-`dkIqtQg!zi_8faQ)Zy|Fg0F@BR-L=l}RW|4sZKOyvKs|KC2=aKZike)DME_sIW9C?8+MzOROi z>z73=Fcf$LCQZIXsVz+vPiw+C4%MpuQT#(JI#r~49zl&>D&&V8!`}o|Oubc6XELaO zhu0wPuVLQ%N46I0)2#Lc*ZUId>c)igW@|_CME^XbDX-&+yOpC;C;t%m)XS=`oYZ?71$pD8lsRw0Npih zhCHjZ1pgH>Pd?Ye&*uTac@!1D3x{NYFg=i6N9UX^5-3v4~6 zk(*3rbD5g%FFAd}Cw@B&7D7m30fUqDAct%m-b8zy54-;aoWkO{+&)jIV1mSiMIrEy z7Z%lbY3({K_D!oRrpgqj&Bfx^RO zw~6bkq7V0^nCna~Cyyy9qY}k-%E`rFW8XJJ6=V04(3$PO$$^B19-Hn1<5N-}{Zu-2 z7JM~Nuhn(R6hE}KbFVDqn%q5hyLq;L#Y_uE+O?+|u#^Z2C`tFueavtX448MT+@kp4 ziri#(I+pQyF=wY7Qlk(GKNM0chMmRY{Tg@dxRCV>40Nh@f_x#~plxa;&v25e5Eqqm z!;bN~^W7S``FLfay}y@$^CppkF-Ngd$?f}ljbY$5MDVT{sgAT}v>M`naZYpe#36cU z;>M*m0$bC0bknvUal$6V1qY2;9yBnf=b)NURx$fGN~Wl+NVIW#n&NM*2+Y{@n*O+D zfgUUA$V_k3c051NY%av4x1jB>3M8^L^+O}?3Z783;ta#~M$iUUfA9=YHnkkoIV~A= zz4tR@@&#ZwjwG1cU%&KtZXMYN?bN>u`@jpu6xha=@Y(#omBxm%VsQ6+Nk?xlH+u$r zvDw*0?UtbUdwML>Q$}n`HX@}g2ZsaeJms*W=;h_76k;1c?@>+q&I(?lqzZ;x8f^AzFyJd|{;zs)tvnlg0O0 z0PEQEKo*zYZv+Cru4306{#$dpAS4KAvUcW;^RgHCDo5GRT2G3ALoH3(4^a=VNM-o@ z55MoM_W?(82IWVYtqyUKUe>QG$sgh%Jfi?z^*@e-T%IC9?qm4Qe${&UawF*#+!NdP zEP-%C!D5mJNCMCbhZ>?uB`6r#)XX6)sSfjSPQ0(2d$Xmgv-ZQ-7hdL%+Nq3!uRw@J zKWV`cl>)VBsiw2KC>YM1QQy{zKk2+|*=wYmH^7fbCLtDPk(z5C_jS?uor`5Y>Z3I@ehMa zxOQnHZe06=Ss}RnlFMKUbE*mAyl#D|uYP|C>dqrNd8m^Ak@K}Sxsz*;iopX*kw`6C z6xj%%riB!f*V6~$vS3LUoM3maZI+(j#752PzfNyCW1Gj01XDrWZ!bTgfz~87AG^(e z^*Mv$&yCifMhm`dxyKQ1W5L$pdN zSfsMF0n*UfOhDwOK-ks8uv&H{DT?^l?BQ7ws(*TdiHAPzudOB_-y{}!3bT>%K7T7a zq6OllDRdF+BRwhNXUUsz6qlOJr>$Ti{s9!|h(zF+GqC!clMg0+SK#!Rdb_0n45raz zQCRjh_wnfyO2CWiWL!%Z9DDw)?|nJc=={|6u*ef&i{$23rMDoo{4yU>Ha;WtCo+)` z9}#kilG#}I{X1DX*N-wJvoDZCWI9rPSAcL73bX43((>TuMh`N=!>NRCJu%Z+b=`YM zjwb>WFWh(;y9E{73P^TrXn~CFh)o_yM_G%VC$tguqw(=+YD0y(=Sxn0z{^<#Y*Q-> zF%mMdemRZ8^0To%Mn($Qum#?GiUC1(pbsuDd|HG-l}THTSsN0j35Chne#}2bL@oPK1H#he^<8e}o{$pDCaFyAWv>r+UXN{7>1q8`h_2PagzFQ- zAOY$EWty17hEAyuBc1OPU;?IGk?CNY;xRt|uFw+4MuH2PhtStBym*}bIy~Zbxed(? zR%MH&o954CAAh^5@8N&OJXy$wpFzvxw1b4l6XViI)FdKBaFm*ip zc=7#A{jI`3n$yp^MI1p!x{}l+T70!rGJ*3EUe0a$QPbUa_HZ$HjXWJ3?=Au2{k?c4 zNFB{4;A@7dan%^!viPzZBQ=<$p#DJPb+T|)$1R@85p{VEL!Z946(+sv z@?8pyTy~uK>38?Bw=b+6Y`{eVBgehAkdjC=Gj`iN8s*%-_@@s3R6hn8JRCQZUO&{r z;QF%Y%`|+Lq|-XTfA?^BQ;qxc_@aM2>>3fl^4e%e^-Mpuo=LjW(G&aL-K~wrqQ9b! z0@}>_Wl8GZ!K|>N1CKe{jB^}@T=O?FwP1S}PsXLB;nz&-x|O{$)(Oh49o*G^QVU7% z^Jbcc1`Qe#J}C;Eq5)a*yWhX%wS zdh^E*-YfJLSY$rC;(dOe>mbh0+eWBiLCX(3nV2CqkaaU4FlBYNy^V`-wr!*!BY2#i zm}g0O_e?U(F@7JmqTlXEHfD{RLk5~04#ta|)7HGs++v#wgtADLqb>Zf!TyZ*btp2d zIX*+gnkp4k-k1BlYX>Vjan*3e6;wP0OK7iyxUPyAFfIrROuSL@XEDHpb z=VxNmV3`OZh7eN-grDAKN!uI45LrAICN)Y2g%T#wlOl=|q8_V1NhC^?a|@@>Ns_u7 z@gkD_8>^>76zzzWuOWALDDUoJt3)y(_6!mq3%8B~(0z7-z@r$+WOuL@)S`*EwM)h7 z?raE!l?vjz!(Ksa;pK7{e+K2@Rl$xoQ%|xYQiYy3%7~J7h9%~vIKzv{V&b99e)I8u z0UcLuDTm5cltk@M4x49oY0M5j8IhRaK(`zb#NG38K1#;0EMx` zbS=KX4`q0qFXT1pn&8_=14dN%!S;M`|9maA5P$Z0YpealJEk$#Dbp5v&eHhP4g~mS zD~Lj3*&#VNv}$XM`I@gNvD}K73S08LV&?0W0+LR`OWo^lUvuJuO>hOf@#Qd)few!J zz~5tPh14qGp~7k|*s-H#sw4k*f%Ha7^}i4B{vf(wVxuG{FG_G$-X$w zZm^!oe5lE>!Z*$L5S`1ZzVR)Y&+KxxrDUuuK*eHh#9MT z5|i4ZqzH1e>KK3>;>*9ZzkAFn%m;--6e0fzshn20Mh?v&ek)Es*0%lwG!(Gu6)jZrm7r@ zVY&D|*64Y=c=1j&PExs-oo9WM^sr>_9gtkcrzw(tVR>T_a&+km?0JW9C9`oU0UJ!< zv;66R=_1>u2}FM9jhZV@Zm37tvaUMN7(S3mx!1%PWgBO8A!=?iz;2u>R|SY9O$LQ! zUBL!5p~BNWTPOmE1V%Hf?iUI=d)xV#)y207x?gIO60=5eg^IG=XuJ&4qa6|>z{@K{ zaI`#tGM#`apCir#9;sZ0K&EHm8G}V2^|0oo2Fy0j?y{ZoEM-It87bpGIWxR4byh7D zu6l5Ek|;c-Q0)eav*Bh+y_XcfWCuSSXL1mUMj(7rIdD5mGeF*?O!syvd~;I32j*K|=kK8#bg6bB;YD|WIf1X6k;5IUh} ztc~Xj9PP+W_p1iN@Rkt@KJig2Ad>m_0)|OTO%x{;fR(s?h&s7Dsq?9v|Pqs2+cP9#Q#aeu_XeO(gVDHEe%GThV*ZHbAfPsh) ztZ8WqnFpd`$wZZ~|3{Y)=n8Ygnrz`y^~o82EB@CB(fM=&1qK>6!>NZSvYTj#iMoTj z)GGkL2c4QX3#GJn1k(3o#3)(FuUUN+E8ILVcuGakUbzWj{;@+7)R8F{KdER#x zW~@q;XTt1f3La&`!5mPpBYO6Kq^aUaYJ^6{cnU;5R5xE}yStAJ<})EoQT8N!coC4C z?U{q#(Mbi4a(S3I!2c5#^nZE&5BGl+|7GRoX5;>!{Gb26{1^4}|Kh(nTQQa^pGQRO z&-|ylTRZIRe45Ou(vCA(pCPw&6;QtgLE1;g$3m8O#E_4$gpg>`D0Fy4*xO$u3B{~X z6iM+!x#___5;@#L8bS;17kt(icb^}=pG#!hk;JYeXLUH7@8r(K7;W7d+WSAOey09L zazOI2llcSA+@wnr|NnfW7Twmg1`JUHQTl@6Q&uEu` z`{B@OKQYYN9KR3Wi=;@E>q?c6`HLV7O%wzaNCX-E5($$ear?(!1|>;UruWs%3u6qg zfPbH(r&Lx;xy(pV&e8NIMZeSL09|lQlFGr*?)G0$j)br z)pdJM`M8Jp9v-L2Ow1wp9k2wT^E}@4z9J=j>K+&AeIwR7LCDRo3F2B}sTuA0K0Gn@ z%yr3O$B0tTsxr-zfCdo9lO{(mXS5`L8uf7}akVzs8c__|u^qaxzPLmPyd4pI*_H^{ zIqC@txaN2rU)tK+d@6Tw1?@mHX)R4R10r++4Ty+gikb0vc&3vEk5^!@;iMpzK*=m?JKa8Zb7Ax5cUWtuuA!AD zeUt(Ge3@dcen~@*LeVl1qD5}Luqfu*hO7Ly@e)wq=IgFi*3pfigV)(zL7xx|zFMNd zc-I#=Mr=|H*l5uonS{v%8>p+E73$;b|KO~^quxXIM|k_DQk6G{uahi2E}V3im8Ng3 zFQaz;5ie0d$B3*48$ELQqDPS8KJl+NURstODb{ipf>itf3&vXoFj(1!0^+<#W2+ zf#o28A)@f>`$Eo`6sa@^`*;j@8CL=TOyj{*5<<|dprC0={E8N&g3-b&&=yEqp(<%Z zPBp?5eCI*)Sr##cXVL4^Won@<^72_rkh8k}SVT+-uusT1TG>-9rG*Y%=UUo(nqpou z%Zb)qL7t*4B#R75ecP7OOx)XK^nn17xpzJfcu>p?<@;B#XBsrYlFjj>&6>ywO_Huu zutiqo3PT5O{?-q{J{UZ~@dJn-CYp#3IC&5<6*lXkumhruu*AzC$l_txO;L;p1`pP) zn!pE(u3o%Pgy^-VHvBA8{;bBP!qmC}zb|G3gi*oA-i9=DZ>vIZM^Zpm#|<)?w>?JA z%86k)64gO{VY-~~l6gtH(}4av{V^h0C{9Y0UiJ-UrU1Q$0u~cFz+z+oFu<%g?@}sG zusBK|EnXR(s_r=qtAzpAh?M;?Z~yu&3kYI@HAL;8kx=G`kDVEcceLVE!Ni z3`WGCw>;*?76k#*m%EHu(9nVs77qcVauz5QW@2D2EdX`l{R=EK^Pu%Xx_^@!D;mT` zhV>)-6tR*NQOY``(>$LH>2Tm+2cNW)m4_8P<2uidLw6 zSDTWCn>dC@p?BRtAete1sZb}Ys9QQQ3=HN|aM^lsED_{TISdRe6&}$b2a#J@%wJgC z1N>grjC(*WvnYq8Cza#_&UU)lP4Hp>*zL9>1O$XWMnedW4^m?Gcb2vpEhd)LZlirG zR#vYcfp6EZFwOgH74@Sjd)}uPSf%@td41Y>?@&PB4iIt$KxthEfZgG=eb?-Y!J-?k zVNv`-0b|N}1+su!Bc}*-d)WDkHq^psvULPWxYhxfpyS|joOF0`oRqtw5u*ozil#Kb zg-HCtl#JkctfAQ;PL#B0^Dp?M_FTmreX+Ulu@rzlKX=E&%&^YAG1e10RuqYnn!8<@ zZ-lYHZy5mAf94badC_b=$f;*pIXlDZRAJ^_Y(!CINW<2*{<@C?B*@hNwd?5-x=Mye zy)|cbr-EojIKrGYLv1e5s{z@3bhR^QBa*dzEl&l(r@sKKFIn{oy)V2daQWJK_ikeh zaFSnUIH#dXtHN($`dl6fYp$U`5OqnJCL^+f=WP<^x!|O2cHX_51fhTjk%zIk7XY<5 z2VE@$2j!U^r39}z>>n)D@m?K?k}w~FQ+m$~%kJ`%orzDpx*^{+daPAz>f1Cw2g-s9 z_LbuB9ch}uifx2yc*z2gR=4HA=oXeT(V5$MSn8mu%=c=mpB%q{JA5!eJ!geTbAW@K zaA8HEO$dT$vxm|j8AH*b^&re4* zVT|is44g{Nk?<(>%eAN{0GX&s9sQgF!0+Tg22R%Spkn^dVZFr2;LxOKSshggzyQ$(VKLSgM9=}0f;+;Prm?}KosW@hpk>< zU1~)$KpcQHk!|kD-dA7UPVrf?09J?o&jB?`&u6+N4D1KJ+=qm( zbF)YM3o8#J1b1QuU1mB3V;jOBx%@4uPrW3AIYn2sXC(S%MT_B%V0cvo!6b%MI>q^u zQrcm!pV#P7*I)w=Gf_6K$t|&Grtv3$7?WC{YqA*9mpF7VovLOKbGZG6h_)dB1H+RY z;Flhv_p(!|c}&L&Xo^xGub@;|W-ARs5v&&d#|TKw)*JWkLoJ?q$zbbjL?y7BMk!Ba zI?u}esseOfCmNc~9YMv2v;>qg3?u?PMbGrrW3sWoY$%6U`TxtKgJ{+IgyZFZwHEDE zj=Rn@ccg{Aox*%v2rhF5ea41+2qrLmh_NvwRb7Iy4X2g-d;Z}ZM6Nf^(J|LtKz;#a z8y}UFv>w`tEY<^<3S(MQ9|Rk{(u0~<3;^%)6O(hzS?1FE73AL>YfpKM@|@c@1ZV-S z0cyYr1Z+5kEdFWIA}|U?0^#qj5*ZfLV;n9~O?yWARQ{w0r3>~llRxJhpAsnSmlV2t zgbna$4d*Ln*v>{))R6Nz&MVcH=c3HSy3y7RVN3}1?wOiHt-i1ls1-E=2lxe^al1aX z!GoO(LH#HZE-*G9(6DkYH9Yb|0U+sbBGkGt{foCKe|;reN!U7)SWICDbdadX>~kjr zD=A=^#;Nl(c~N82J}gxmQoD@$L#q|YTDtnuy8%kPFIQ0yS5>Lsh+K+f3YllXmhBhf z`u9*&#(HB^fuaiRyZQIo8f7WpDJG|bxNuFE6$|Vvb4V+n!$iaj_nKYvJ5e&Vfh0s4 zTlLm59#UcOR_lxGiS2HzD5gVFe`X(KZW7=R8(AXQUS^$OVB&SL7o{4$R`e~T;tI+9 zfWEj@>1KVt6nhdElT=bF3avqej~BrA<SW8(13J27~RRuWDFf!sDAT|f4!Od z_7C>Bu#D=Y=LpJ2@=m zkUK_>>>bQzx`+PKUkYd=2T<*D-%(qMH?aGd<>E<&zg>QJfnXRt-eaV7_Mg8>dGsti zKbIVcvHraI87Disu+ZzRXZZKE;o6S6btd!blOUiMd( zpN@Ue#a=ce4r@A$aGgY5FSnk>=Y-u3*FW~4ABbS+U;q$jxS<6rGVj%L@o0`OK~tnc zuLJX&13kA2ehI}FXs?f~^Oxb+xhKZHyVmO`!R1>&d@$7~T8e5Q8FKaA@qKrTrf$C# zP`(H~O)n4hG;6&5oZ1L!y48DtcND*xZqE_C_h&$_8u(21Q_8#A05#J6;)#e2N^58HcX4L&;+k{Rk%SqJ#jaD+Yu49MMtT*i= z8uTgb@7T}+p5+ebszr1=17lf((N~Q5qviAlwNagR+;2)B+Q;6}|{)(p?{9 z>v}>`SKta&9%!?*J1K19mi@TDe^&Mk0>jz_xv^uJ{Y8+;BTCS4aG+KmI0mT)T0M_l zrgHuh&&%{-!eGW9;o&gr!4$M>ilIzP*>!E7Md}h_w4z=OhF~5rB{Rkyt4KU0iY&+b-VfWK6ttDM!05* z?_CKH4yJxbf(@RF{HFW9vA#68|Ag#y^xZg+2=K8Do}lZ8(z}leK0W%6pfAV_T%dY{ zVjl|F!S>+-EM?2y7P{Ui2a%f>-Sv2Xqu5_{X1#xe01_s{NCX;j&8iTL75d*LCHn@f z0?2^M9FXje{uhC(?I5vz1bBu|v{|lzn<0ijFFolK^>=Hi%0|nAS3Mwr&xTqjwXpkv zf8)-`)fvnQMlKLb6Th<+o2#q>ij0qu>wDh4*3rXk^}b)pj0!QrNqDA;s4UrxL#};$ zHHwX#$H^a+=5mATgfLA5q;;O2s-ly>H>;9VS|4A zQ$3D{bchnvs-BD^p-3LT3adU>)(a zd{})#_~IW|{u?OhIQ)6MLwa-gO$$I=kPMlx3f**sO^L7N0v+IsH{3P@yP7jN%%R_yruFCxhZFrdNn{qSh5t~1V8G;#8BaDOd}Bsv8t9}gB$1qT)wHh0W|3TDHVfaTngs-iqn z-dZY%#QfGWrmn}N`MKu`bNV88>j$vRF!KQsN-Z&oM(BF|<+>X{Q7@{xZsku0E$Gq@ zFpMvg`_AKp#PmnhES=?BdBcV}VD-pTYZmx7m;aqg0nI0A|%LrO_XTW0Mv8<)Bo6>*KXheSlwDDzqSS}^r!LK zGsM-wRnFRvOQA#_&liahYPj+h12jO|qm$rFAq=Td^E?V!RX$G021q@FPT$>W5rwR+ z3NTG7?lxXs`^ts>H&0~a_dua{g^8VUv(5-KZ_AkeBBRCJTmY*WT>^tzw9*qrAR01k z&$xH`BZA*&~?`=~>i_fhKWmTWodr_&;DEZ08zD(CNO!S}_1zpv4>;q3L}N0gK8Rl|A+4;LU&OA4bdc!l_>v}r-LCu} z$7mTEdjeM7b;ND4jZ5KNnyOwH?ez$XZ}u5wlLy?1pk_GJ>tK0tMp7&SUuwt)Bm#7p z-oE_XjzKgQ*rYu@!`)FgO;YW}MO=W8`we>g)}`3<2P*bVJB8Mw@){FIGNw+L5Z0Fy zb@qrnTHUc5PWKQkap-3WCF+|Rc>Z6OcYtG6+9abtbAhUwT;WmYfz4FmQv#73sAy1 z1vDO&wO35mA_Lr3gx60N;OSczVSEv$Ka>@fv+WE&O5R{2LYIXg70IT8{Xb=f936>9 znNb>U5gEUkxQDaA+4HQ^MsgZs^|@&oYFo{}^1^IBugTezh1IH`>(&$r0A*71&$v$j z(y$6czuE!8!A&^wDNNALVDvvzE{H_XkSp7E5cb?N-AIVa!VvPQiq0&<;oW2>9iTyz z{~ZtAN7VKQ;D7>WqE#z@A~Kec^?>D_Fr|~d?3nH)8UHLERSA(N1Of~G)ozk9sko{s z|63&QAY;@Pa!$zh^}P5diXpRR0XKZDX4z>BP&C~`D)z3T?kar@2o=Rn-|NQfLa8?V zIsdFYW~Xq~9*zN#Jc{R8rw7q)^#hm*0XB%^JDhx-ct4qOKOBrko7!*(!K|3_;GnAi zp2y>ygZEjS@HDulIfRwlHoG!hCNsvJ>sWq6qD8l^|CQ<7vM2gU&(fR;__6L-R}Y~~ zW;{kgE|DW0&Sy4OEi884Mn0S3hvW`!Qb}LpJ`f>3bhY%$CSeSOPAXWaEPVW1Nu;pm z=skgRx7Q42*WOoP+51&x0?;dV-Tim<7vFKwCR+~Gdvdo9NNSX;){xh zqz@Dm0IHPLWLZn$80mKG2@Sqg4$})Pje%_3xkNEJ4ot3a+yMiCkyft-QpNbX|DO3UZ7Cl>R7Rsa{yYq=k1Jsy>C$QnFd?aQTa! z+TMXOb|g|*_@LkZO7E$(*5A}v425>sIL~|p$N~M=@FZP-pYM5l9QV7ccjYTLL!%wOa(Z;08GI)~CydPu z6PGldv@zfMI2XpWpJnU^*N(mORrIq4s4E&Y+%4|PK6>JcAbAX} z;txrKF2w@nwAmF(#A6Y?*a7pyx46z`ujs6dTf8qQePOksj|MB1a=YP!nAI$&l|FDTQTy#DNbf4^UytupTxAb(iN-n@t zOf~=W6<=?Gje0q2kZcKTLJh_mRNzQQO`jM`^Sktuhv)9?S=C?bY_;Q3GR%3agaXa@Noy&7iBOHN`Ax(*eg=N~FkMW!0i_&)2 zh+ss;?7VjVj5UY&hU5#9n&_*0<_+u9^82t_?R7+L^@(R2nv0>p<^aO(25Hsu)W!@P zHh*8z`z8ncr0N@|k@#eOi1+r=^@L+U^4{JaDaN`tTait46`d{a+$WwXksIxWg@tuY#Oja8Q2JcI;QV}3%Y){!dv@0wmE2+> zza(zs;K$C(nyz?JQPHfb_`tU$-;wp3v%vKCJ7X|H=fT49W9^!ynt1!h%WxM03jYP( z@N?MKnz{ht%-@e`T!|mT=AB^v1f&OlFLZMMjm=t7UdmF(>YtBOxKQ77BJa~j zheFK+GFB4r3xZSf;O=PkNXlqRwxD+p>7D0rKiu$2wcoaHP;M*RLFe(E1aVb0HS~)1 z9Y40To%#{76`-Z9ZQR{5&wS3v5$X5+Ic|;zPintS=x!vEp^FhzyKUdwG z#&4ws5~O)Z&=b2PFYr@M7V5OQ)AX z@6xj8YdQNaVZ-&dt@}u`rn4Zzwh-R+u*6uyII}J#h#%C9% zqucrYY;VecSJZH|p=EqDNrFjjRp|};J^XNoT<#Ywk82r7FcP`9g}T9;awGS{*)zf2 zU$ykCDh&pl){AcRp6Z8lfxrOUxK9q5whueE@#761WJa$Em^)pVFhlOg#xGoPJ#R>3 zu7MFfZa^aU=mqXpu7Mfk+N=Cw8?jZL_tgQpasDruV}_nseuwK_uIS<}Cc8RcHip2J zxBJ}N#{NY5<L9C|Z?A@cn@H_C%}-{vDpW#eUXpxu!jVh1`hAN&DCI}yAcK{kYv zko#%>be72L`YiCr@{G3uTGeVw&13CO(m$CloSNNfsI!=Al4FewkJ z9famFdLbMS48h4zNqnSu`VjkC9hy^*%i|M0w1*FkOzJBoB+52-z%%+A5_#@mdP=b* zKlY)|JCTQ)he$dmub=-S^e zZpSJOF*oVxVxj(<8V$99sCN#fhDc(XTnHe7%0X|5h5WlclIyY1x2~8-k*Ep|5uu4? zl$Xl~Dj%Z$C14$A5#pnC6bnIVXF+Zww6s1yI1}2DJ!E10Xvj0tr;DCYMhN14!njB~xi@}??owf*6kQGG$K%@+6xm7ShXU}WmK+N`qnVEI^ zGp(j6wMHtot_`Eoin>~U3QSZUj+7$`+9;xyIVF`q4MdG*wM%JKh7xI8KnsyPs7boz7`m+XH7v`pa=;eU)cWOva_A2lKhG}QNf)%s&K)tm z!(#9Le8W1QcaMed@>CxZm)yHsJ6W1IyDFY10Vj& z$(4Tz?Bly7oN-zDURHI77?-Vxy=;CVF%6MifZja9V_1;_dKtwOuE-)awSty{2|AH~ zbR_jz9>Or(gNuQqRO*tU)?h=H&5fCAumJBo{_VRd{-jV+=t>M#0;1VFhvRB z{i`P?sZe_(eWDKim}-@AAYfG%n@MK8o?6}=LrcNl?t^A3`#>9VU1w325OQsfM*Hzk2)_O2>7QT# z14ACj#RjwI0E4RmU;j|fmR?vL?i1S0v_FR!JcEx7-o%HL=`O)q8ZxY~bFLSAEF*z( zSdF(pizbx95XllnqRD>WK4y8Goym!9HiJPF^rWWix<5d)OMR7>W1>IBjBZazK3kw@ zXjDzAY^ez>7kW9vqEfW8b({)YR=xuqM5L()yCE&t@FRpQ!wUWC2G zcOnw>V_X=TjO*_REIVD{mNQ?yKD)!DHh&u``Jj}a$^c@Jqzzxs;?TwL_!brR2 z+Lf9J6z}?R)4nwk84nI~l(1~DPaMSyfl6ZjGlu|5$MEJVaUQ5*GiVbBqbeP$AsF5X zgjMg)(5s_@jiS2!kxXMp7U4z#SJlUAK=-t~v6&sh(ErRwCFjvM^vIh1WW% z0hNSb8F#5Tf|=wI_$1GcreOC=zfnFvKvG7!c%nS@X8uuxLy&;hO?Z=`7YQ=0uSmcgvN`a~b zg_wum!S&l9PKJ&jg}b6gD-Vdth&Z^K_2uX1(NFTO$l)GR8x%Oqlo5e{Lm)Mv zV<0(TbPt5?1?L#-t~xOMxJkL2Dm?v1@8y~(hd@rwBY2ZLVG3fn-#hGgNtd=i{rpUMa6> zOY8~BXrU$;ZHnfl1V6CwT*QijlvRn-_wUx+gE!aj++pdssosa?( z*E0N~Km90Y5;um^tKlx}ZaSv!tSq|zhcN0jEIEt&`uwxL5vJuy`P$)pb1*%w*?qtk8|KzHxr;veb>Vxu zK|If#jXFkdUl5|-J6o#@rX~H>qbP?DxW*vdhg4dfwg|Eb08|C}twSFSypBYQZNm%# z*)2^7dfYGro#B0N4HILWk(n)i*)5U-FjmVIX20njR+z|oNCo0*{mIGNpN(;>=V%$b zl^Gcn3(=JjH37iM)P?NiV`d5?RQ{?HK=w_Lya2QdqAoOh#`gs?+4h5Ye#28wCeM=whz(0%&W-T#05v=7ZU_YM8?493KDUj zxNQUwoR!0WWpK|gMr!YdZN| zhyt1V;k0u=c> z8*^=j|F`H{0+{WU0gQr836Co1^!clQ*$qxKM*~7G^Rxi(kOy`3gkyTf9|v+)x04Vp~*2A4KdRmTtA=Kw#?<%_*{iMQR?nfFz@+eT-!f_uhD5U2uh zh8}u_Ho?V!k9jc4F_#%0!+bvVevYMml?={EGN4rE$d>aWfob!YGsZoRFCD+0PYbkg7zq+@>z^^Ym|+k#*F`F!-aN zv@iE~HrqDm*(Q3}ZCe1RHqf75h;{bCLM_@Q6FlHbk>G-*YH{;afq*DX5>fU(Kdn?l zlkVi4{tkK737{UEpG5f@#vvyVkw>tb8IFMX5r2PcRzx@ER1})>JYBMl&)yr>MvMWK zjRw^i$#qG^z(pc^rAem#cn08NNI0NO(B0k+YzizdL7e5^DRA%{A%Iw!WV}z4)Sm08 zqW*~&lK3Si*KSK#%n;um84J@X%DLriwi!*x4)Bn?9SA%;>Z@j<@J+}wG&DtS;)ycK zgyWR=@`pl$Zq(2FwR~p2$=qI3vBgcFgXGa8=AR8_Y5WBADc!=F0AX0GX1Fs<|2P!41OQXUc&tXPG52t~M%j98UVIYY@Lyh6nX+PS~a zm!m#ec(TkXnNl>UL~z1$M(e`)3B&p6TKQ`8+%$2G9H(+=Yud8DYYWkkzMfs4g>cnZ zu80U~HF)Ax5ynz$n5*aA@%|2S%!-_wPNE@opQlU-Ju1v4SwE}G!g`8)FF5bu&& z-LzbpaM{`HT-Ue_2E&a(tMFe$&zr52=K`AJtdI#cxS^CDcQnUdUt3ZmJ4AOi;f_0HxASY3*etU?qodNYx> zpkYjXz88t^bqKczMQM$Efn{~hca75Oe=dTUXNFb>SM;4ibF7hvT!rSq$^k|z*fll! zivty4FhchP9-I8G@N_iEg?2(NbD6Qcc5;N!oA>XHD8i2@0M@f2wtV2rueKNQxUZTI zrBN5$;vMj9S8sjQV!bHNft-=@nRFj(j>6C9~ zW_9y$OH_1sW0XQd2_*fyECpc>SjjcfiLNqin9*R7#beMemSLI{eXtv~VglOAU{!rn z9{6A~ZaNM_W;fAy#Dnwhpqj2%mD4op6)EDb7^wn$Fo@U9BTLZ~z2K0jO z;Isa4%C{PVzM1*TFS3gvB-m!xeFHF+WDbUP&M!DU4nwkrmX^?C`nCAc0_>+BI4_tn_ zyI7wTxE(NPgE(AD-YbEJ2jU4Xudstxb__H#GgsTx(vvqM@A!fzz>iU1U0ujxM$Xu1L})gl0F~COND3pW zcaamIffwG$CqiH|}Q(}3oTW&n#r_G~eXDjWXVArY}B#*+T zH=jrWkC;4u9C##~Cd9TyUiTrzz<&WWj*D(o#_$&xE#TAyXtSqcb)$DI~8QTc)9o_f8$x;FdfQD1OKH8d$HY_@gqfe z9D+=%#x!2m4*=nKQc0otW@3hD__&=~lA$mE9|$fy6CH5exF`I_mg#9+V32WFkRs5C zir?|}+bIJhCR=x(--Cm{&~~k}=Bj3gDX+^f-Kw}iI^P?+^heI3XiS0OF}v3rg$86f z^Gy>0kiN#U8YXqk7LN^&)CUV;`eKP_nooTiW$>(-k}-3IG?ENU)2|pv6u?qnLOv!m zqV^GYiQJea9c|3z>`H`5UKM0x>F70tV}95aga~G9-7<@IZ4==Fm%-qT>y$_zD=2&Tyty zjX+8S`R=0<%zdScGTiufy0eH+9$?{GA5b5XG(8GCtEGIr7^3Wmf-*bkwEs#{eM!Kk z9rR}r<}NRN^g4bN;i8YEHRE>GPQeU&k;umBD~){Z4iE3i-l6htg;5TFmCoBL!d9XoKp)$TlrJkxj$R{r+uK|Bw2?GXEo zS=-PAdxUwll@xVINGuw1%xF(Ikcw7PH?~BFXfq2TvRYy;62V;(_Jbl;L|0yTVCldr zIQ&HvjPI?qy22Wv#pRKaaCUQo{m|%a-S1?NWnt5lOoHvM#T*w{LdcU@KBUm6BuNSGpp1omy^WUidE_V2#uFTKzw5k>kPv4PM z=yYy1P?xOuD^Yw-PmZ|Q%2kB+gA(cWZwuIIC%%SKJHM|2=KL^CD9x~#|)z0Ye7D~t>Oyv95! zZUTJbfZV(q+)mwi2~Md#qgAM+|$3Oq}Nf>6@I}(m%ZCc)5%tY>%NeQMnHK|MlHI68;!% zba+SHQQ`xwg8hGbwv7vc8d2t`iItX zwNpx@XP@dX5fBN_>&PQ0jmjnDJjvJ|DSL$qh~}T(VZab=Dd^MRpJ1;OzVOc4X|%Hq zAT5<0tz^KhB@<=%$S%NhoR#nE__x+<66$ZJx*l-#H_?ATcknZY40@%;##atWpq{ajz#kK_?X9TrZb?!+0<4cQExXi0)?#9<{hY^lDp~ z`uTx_-XxRWkX(c1ZNlej>5t@6AKeMF+05@220FW1n@*~+@5y&k*_n>?g;-bbFe;ZX zK5MukCwJ*LZ?1KdZUn)EqW>jl6zFZ3M9}kn>wZgHb1RGLAuBgE`m?uKTWewNk6Zcq z$H8a4ALx2)NfD_YUw!px#Z5C-NA0dBg#Z4;U!R#=lv%2l+5RcQ8 z=dHL%^*?fA`7G{DVuJ|!)p^nh>FhES7}Dj#VhJa zP0EXc-yTdH9Cxv8Y2f*hTmOkcm;+m~uw6Qt=HnTP zpI3knt2waM>b9CaPT>?hc~W47-)D!C{HWavo9kPMIjt7xbAL1I7-Jcym5L85b3$;f;2*H6V|&DnHP; zsIC^w6t5m9^m`eTl-uKKMhLL^>);&8e|b93G2Y|y6!u!xj+4h<`kaGAkS^7_)$7#k z&mcbmdrns)^e;YA6c%j+3DPC@a7=s*4-*~*#vud@kie4}M#0O3#A(C6kb_ z&^P5ke9p>P7GW|UKJgUHLcS8&mhJwU6(T}VNkqQCL8V(~4bE3D($fAWGeAG|_E-%{ zLBR#~u!}ryg`xfu2pbv97Ppo=kC1V@JV;VXrwCYmRF!oq%n}F<`6uCqY5{PA;3R`# zL#6#*h2=?1LtrCnAFzv5utMmt=6?5T*fJJglbi3J>I?AFtz`)R8s)l43Y$Z9eGm81A&i69ixoNn=xzxEpa2! z2%H@9u(mdtmjdqj)G4Aj+&}MeU)>9`uG}gOP*gA;y7flU!*N!-V=v28V5v4U0#Iv8 z-(#bL4nIUMIivT(+pbQZxF<4!#INHzHtC<8+?>9U$XL$L7s+E@JkZsD6-+q`qITRB zyM6F9Pu4#(vyRPjJ)=acsan#KUi%{Py9ajcft^N*Bn0Q9jBpii7l%rnQ4f|m@+N8A7U+w~zhhR1xBS z$;77hJEkBbvY$x6AhZ{LP4W|yJZXoypk;EJa=)5nbzu-4(1ha9q;WaMvO$u9Q!42}|6e#Rpv6K52k_l|1n|Q1nRLtU41R1>( z$7vm0q%67(Fl$p#rEEWAtE6?S*e)SkxY}``pb|$pwAXb6hP~{#WhphAW)Ov&CpWPY z{Sc~P)0?bkdl&Y~Fi5p-6qe-P``YrWP#Aylb?O7wz&e%tg;_(H1xv(fl=+KR!+IbUl3Wf+R8k)^2}p8dX_BFC zNL;fN3gPhETC`Xhc-1K+e>}FvxJ&tYt(M!E zW-zFi=ZrV+a;R2;m7SboD$=T61Svy8!y^8Uqi5ET<3rDzWoeCl0rv%W@$7p0-e=kY z4hSOY?ZYEP;f-p$!L`~`aiD>$lwRhZJpjz$@iGG9>jCZ`@nLlBtbH#yj5|Y z^=bZ-%HrocSrxZAh0N87>6lkOE0|dtDr-mQ$3pM#$)W*@kUnOP zfQOty*BG4lCSH+7+wd!{aBxGD*Mzma-@yo(FyB+4M6V*}dme?Hk89`JEFb<2DFbOb)|q(*;n=$A zX;~`pt|AVKzTtn%8g`T03k#r+4|@Z(Y~0G)o92+)#fH!Pm_djuV+5r8n;q|riN6om z*Y;F^1^$K?cIn?&zXqfJC3pN@64BTDz+kxF5(gv?`=O6UNoCJJ9-EdEm`QN;d1mUK zsLTvz+I;%G1HI>tdbGQ_|*Cwos6kcEjCd{-0D0;l4D{nzk!I^o;dV+48=rC%pJP@4u$*~623XAOOf^=6#JkhHwV6M_!pe%Rg;@Vt5#TOtIyXmrmJ&;_Ga~j@ z+~ap0jXk}#Y%#Sio(+1PzBZYedN?4w-A}I(>nf1jLNb6KYMc@sx?%VG{^XJfzT5^A z{Z>?!jJrKZ-{^u*OX3iFp!%qm&ivQr4*4LeB%`%?JN3KKNcFQ(0>D;w8nU*aX;Zcw zt-))lt5#lCDgOAFM*gydTMZ=dJUdK!yQ|F2VSj#3Lr`LwVCA5Nwz=vBZ;e6wsy8a=E&1?K$`kgKA*HITrDffxA3=B{hBp1l6M z4TRapgN^YM=x&|fl!lj|ciHV}y7V&S*mbUxpe*V4ZWT{1eA9sFwK-kuHyiZ~U9r~t zq;KN=#fB*ZD#1CLe<8Z=%>ht1zIKh+7&{<)@~yCxX8fZM{xz>4fmB?+edMKU$*)D8KrffNJD!SsiYp2sk4( z2zld!E;RK!zT~KZTDn+3Me_-t`ku4A9S`VkYc4ce$wZB5E{C)_L>T9&HZfv9kRU9g zyNm>NJSJFm0~0^qY{nt9y)Fm~8atTT8nkq#{V=p^%HQhA^$*@DjsHE22jwSk7w(F{ z9?Kh|+?N1^N-Dx4SeD&0e#h(%>)#tuJ|j2sKoWUeGgo`xw@V1Ich;G&HGr{DP zK;e*4k?7@6hvCHN+wy+S7N07=DP8Jnjqo*kZ@kr9U*I8%v}L)&cT&aB+s=0M;eY6^ z->)z2{`pjW)A?HCx#{xP1aFi~^7?F$z6Z_ek%U*DbrN5hL?Ju(Mt20NjpJB+Qf&y_V zFbEeG`Qjt5j&0;uGE{VggbaC@%C1D|(p;)TECm&zahQtZ<#hLlr8&qc0l6Ian&w#RN0o75eo>!KBoct{}NRtO~;0%T|#sidD z#Y4<&#Ano7fE-{+TxPy0LlXkJ*pd%+&u!-HB7AMz5tK1oh5Dv`gF6g8fkdo*QM=RM z1Yfk!l`#)6#%>GXp#mJ-U=zIG?)1SX@JzD%eSo7;7|uaLs`$v+01klhfAHQ`B2{2F@NJra12Al4|K|zn20eTP$AWk%4{CuF*8fI zp3U3rRWBf%!TA9>?frf|QQAGM({t~wn&U@@-}oXB8AND8kw-A|$t*UMfMCI#Z&=?x zo^MGYFg0!q{`*;^_12)3s^8m;&bdI<-w|`-_oP~gkx0zh5otVU-IB3{|(5(;5g5zp#A5yDzIzp8a495h`T)w3MVaaPxFE%e~VVHae zVf_M`kIXYL_iYlt2UeLjVZ(RPagJ=Uav3p3D8UvMb(54q7nDu!NEs0TpG!X4dB`A)#Wbf`g)WT^4}KGIP0zPGVl=2chymU#JdCX$>{)?UwKO zJ!gyvdY+GlUoK4=z~5w5=Pg-!6$1 zy8_k-gTT6WJPUdGK+JgYXIO1sGZDguCMWg}Q2ZboKvG^RpYZn`&Vj3s(V%fB4qs5# z*fe#zOhvn;Yf}_PRDCgnA`%kEHLE)6yu3VPo>eVx3gfZfJE1wQGHsz5sZ`DFnp6+wW)G%PkF?tSS@b(!o@BD!x94*; zh+q-|;27MTd&u3&xDe@cIMNxS4XuBx-53^G1)CBXy_;902x%*b&1 zW;|(&Pc-n@s?$vYN6Rr5*$D$CsTMW?xN%8gZF{#_B5u2g{#hA#QTiMG~&wXAYDRt_v0n;VdIPTAT>$2P3g2ef*@% z?cG~R4TmxyM1|71OGXNU2M|Ug0&F=CTJ=Ea7Zk5K5{x^x~ZOJE+~&V zJ(wwzKGFu(03quOL8iMLKz2phT1u&hKbNYAINOlkFeOPriOBwQ2`q{KzzUuY-o4j2 zmpYI~#~*jCq^qQ@1wrKQbO&XGxXSo}=u7ujvxB|lqC$TXb#KO_lB>Xdbs+I%C;%x< zrB2!s>hB?gf&1A@0P#t%OkF7a7DdBb5NU6gVyigs6{ z3f@Y@q6OwR`+CTz>v@8yKn1OX&;q79S6CAUN?8hi5mS0%nXl+h77lcFjnt4;pAX=I z;7{-oLdwm?Dw;!3?9v=Fp7rhaHGY?~^Sd)UD5Gt-N!}kvnyRT-fK~Ipw2+nwXUK|a zvf0`R)cJ=DHq-E(lYR%=57@I$M})n~)V)uG5MwmI^As>{k@OyL;1_x&T6lMT1l199-5=hl>?t--0{sBtMm2##D zXe?68703B20kG`pwfO{vZv_a&R5=>f7t2Z;lWXa$bP^fh%`M_pVs2s z?7w7jD7)%5ajrXC=)OtfvBnQ`l|%3He_i_h?sHs$HBG)0Ku-ZkMb^wA$X*ZNMa40{ zI2O|8HuW~uu^O4Ak-tY20N^{q*RTQmX+bV;O0uYHKci2#p4M_4PMj%cG36PYuTVzR2m#GJC_LS$uD%{>U4ny12%%tw*GNNBc&ms~ z8>wWAYJ-Do)3jQVJWJ{M(_d7!%QC-%DpjGB5d}mN-#)^)-$sHj-J>s?qye0 zYl7MRa(+4_t~3^FG9f`oPdMPy%$1>SEkNe9+4X>Xa1kzTCT)kT{_zsch6+mh(YccA z-!yzO;XrM0Iyp`Yj186yD5Fn~oN;c8CPpf;2#6_yHpmfzu~MYJ0Wwj*QI1p~MoMQ? z^u*E%W>T>)pB?$ELbcr>DC(mP?$sN-4W)XPbNJ@ca7P(v_S>H;MI51*^5_%I$rt5i zBn;VZP?hkFRkn`!5sKLUiyAC!CIR*(Q!@j+CA||~?ccPLfU90ngshYYDiX%QwH4;* zyYgY-goCfC@nG1oMR0UIA)O%H&#+&vIVekYzk(_;XOx>%Xu~hyeguwq(KL%(U%Dpb zcxn6Doxb^dUUE9CCkK7+-%DIX_vAIs0Giy=6=sz}xP<3kxj1xVslA?y|TS zw_=OCmEuy|-HR2s;uI*p(Bclo-JukBKmXT~H#s?9pPZaLA7(yICb={BHTN&~T;o?~ zx(Ks?4|q1jbA7-VNIGYxQB}xh9ycstR%Kn5i2q}n{;qi>Q9(7EN~gGp(SG?Fhk(JU zs%l)Bw+vazG0sBTzoB<=p}VCn@$5La>u&6?xWj&KG&VViMpY*=;LLV^EMKf?USPv_ zZ2kAxy-qiNAj^Uwpc4ts-ny#kbLY2ywWQ|1jrVplC5`=Z<#*ciHgU>zx8}8x|8&;# zR=DEa;k06f1fQ=l+}UH*eI9>2u6s)*<9F`dTX0_WedAj&esl5K2)IK5!0t}hUZ~#g z2j98@M-tBK4Lk3hR~z>tu|?0}-*9n^IWQKDYqh^vxVnNvo6U@T_LSI+yH(Oz(#KLj78fZDKTnrE^jl9!;}YX( z5_SmKJ(D!O5)%{5XUpP0eYq%-1>j`c`7Z1sz-OCycodrOljkc;e+JE#t64aE-ZH6) z-Dpq1F?fEFYB5WMEKfnIn};r+pRIs!_ert4jZ`MJz|*OwNoy1=a(H*Z)A=r*n#wm} zkH2?czfP)r2)tm5#M(OF`sMxbho$p+CRXs_GP;T9=24F$hnZ7E18@G@COkf=5b|`T=ah3CGgl#OX7b0PW^|^<)2D5RTUNTHb($43CWWC z&76b%6*^|8|Mp%Fn?7f->sG@c<r_%UiOkFd&ED>7xnr z)e-@#UZ8D%3_JqAqXuB04(W3154?>9}SZT08i8+s$Zs0QNvc}Xk4d6ptFP>I$Gux+~m@C() z`!+b%Z(wPF1wrLhVokzl3P*xfOFFa9i2mx6!fQgxau44|zq%S~B7Ya7PDa8p{}YW& zz-3_GX(a;9K-^<3n@_E}XDec(chXJP#qzw?xIUGk&^FprKe(s%i)tuBc@?Rnw z^>6P%?8`zJwgq9I805l(SFMY3H9-V}oO?yTaV`~l=}B9vf|U@AS)>_cYiNUjnCN+X z3Wn|ztx5@BeTxB>gk@i)am@T5xYJ?|QawJFT?1_+1VMU~{`)5n(|aW~tam zh|mF+$4X7Wg0p_2{Rf4_Z{fmXktO+sqN!5l$O`PVqeW?&BP3b( zfFY}|y%?N^#DJuhWN{;J{*0#?2%12tE?GSUVGFJ@~Waw+n@=xyxu}Y zlx@ZiZ#A3$GD_LsJuytAJ+qwSc)5_WL;a>)2TwNDyg9HtB-5JeA^+-fGnYlJ+a z2Sm$6V8qEGkng(RPh6{Uarux>io2g14>B=!Ka>HPbH`SkeV!($R=ba^+h1kFcl{B` z9iTYSuJ9W`SoYyfu+&1RTEQ)@(Xb?TxCl4CQ%-k8xRJ;Q_QLO7s zdN6_VWqI-hq*rHRywc`=ATs}ry%^iX=PwPhAC&nzbj3rR6F?b;J(*Njff8jV&WL4! z?=fIK)F4XoyDRkA)%*T%5a53j&qF=+q{JY7CX@*|+GG6n?^(3_lmFTC!rhmH$N!{j%C|P+`Xb>*Coycgcm3cIFBU>l zAf&QmfElgT5(SZ1#w6N#`+k5m0JS7alrjt!0+Lmd`ZwOJGdED>TrlpjOerOw&M3OyfcFfd1Y}ND<64H|*zusB$Z0}2GMbUy~SsgiB zVyc*kCcZE+-JVJK-|x$t+&k}Ja>4pH`Ka_YYn(`#bqaLO+l!hAE4#S)nfI+EIa8gr z+VDl=^*TbhqxvSAGCX0)9WG9U;W3Aiq?4-poCM6QsgxyUr&(nE-O?g=yDk)#|^5_ zs>8rxrttd9uIXRX^1IMKnM2?C`3yE-A>U= zl{|Gx7C=aUV}sPsDGaVCW&&mvBE%FCf9?=l>Zs2Fyi>A-av; zhR!$=m*8{~wtckQC`~)d5U&3n5vCZ3B9a+n8F%fqBr0;Wy41^)Tj2lPngKlS#iPN1 z5d-y8(u8!;LN!R}=7Lwm{aL?$3D;Gep`Y)~r>YB#da$!SSDi`-Fs&wwPG=oFu&4j3A0vZRf%uF|@K zPO9c8encHH=@QcBaUCjLeWu3-nyFqyY?-#8MYBi|LJ>=gwo9Owj22NfB(}*ai(hdv zp0V~bhyj1`aZMK=Kp4ZS4x+xp*3w%q{E->j+tyPG#FP?Zu_#!LEF9U)cLw|^MJ28* z)buc9ct;nF2T7e$Is%vA!_5Sy3t?GOPz8K#MZ|0ned!AS_Talc%2_m}LG|Q_m~@L! z#v}RffYa7LueMIh7+Msr>0>)jA3anGZXZWvYZV3$-)C}VX}5HJQ@8_dhJJ5-PpMw& zv6lhMfa~gh{=kVBZfv&dB5K&FHeR$`tcT;MZ)tS^(>v$<;DHmG#wqZLGjN6S0UE#n3joY6ht6?mzK)ab;!6hEE+$aI?M6t|ldX zYa|=p`B90qUI{o)ZT-M3 zDQ@IOheQa-v7`mrVa6B{YYhN|q=sfdF(MNj>UlITeOPZ1KP~V+4u8zuquJe`e?n!2 z-qTAxI$8(V*Y2iwYGrpFJzUI#_0#s)DOkmT>OzC;B}pU=c9Lt4qH8UL?ksgia-PcM zgvxh3|Fi{j|&b79Ak$ z`01{LInAmbUA5v*)jFV_VU%#*QYt_*(2XCk$1yiY8s@q$&_=JAGNpfghnxzg`lOa;mEAj85 z&Ob8K-$^^I45#t{FC!T(+}$Eb99;l}f_V+>XemH_n$BH2s%Rel#-KATP!HY5MyUQy z9>H+m7-bNCf#9X4FZMX&J-Am-1?o9t9p_pE+ziIIVYEI99<%h?lh_?AOD#iJa00}Q zV(zmT9->0m_`jrNKj*daGbbavGdW=z82jUfGM zo(~$EMYx%)Q*&a0H*l8Crjq_u%O-pXfd|%16q_IuCrRk-nPIG00&OdFerqI@Bd3+| zDcxPg`Js-6aY=(!uX|}?gEl_)#E5CT;+7^uGXfr^MM%Z*=XRJH%E|h3rFIP}NEW#L zFm2RMf2>@kgoyS^oa>c>r@U*Rm?_M%lZ#&tVaSVTwfW$roV;5?+sKRgkp_Hpf7yHw;A&UTjnZ8?DMISkewLEWd4R|E#e4FX*ALb$VjJL>v~r0aMvC^XY?&!) znR%&xxASfac*qym!0FcJ-=A>$KFV8tQu@5kBDd@p=m4x~7thzc-`9*W3SA*7U_NtJ zcE$nhi{jl5<&Gpa#pUvhWg#wh|=cc?V{zjX|{E0Gq zdbkzw{?AR@GD2K!TKXzGEj2S)b_=R6V<}sAD)!#Rq^m!LotF3H6u{6;<%_A->4NNBK6L}() zLHlNyc4bg_bsbD&tf$~8Y60>8UQy%EsEBc_4w*Gy_{7Tuua_M_#$;`vJkV)!%O(u; zB`2a1`uuz(Au*KOy+5cy`}b9aMK~T|xT+ytkK^5fGlk^CzS%ot5nJV06v2;1l7CFi z!=sv?Y-L8iGIUfP#`{aP{_~+2ix%<0RnDYgh3#FgD6Rb=RONSXN>epfU((Ja%KxT$ zw3E6tc4s2U<@PK(b?zO3wA>K;Rd$%8wDdmkM0u5ip+I=b)UaK!s+yU#*^*{U5{b{K zX?O;0kWQ&kqM_ZCMMpPIhNpjw-#m%2<)c9I3hYk@T|1?WWTg1{( zcvkYosk3ASc-ke=98sNE+T}ZPtY}_Rx5F_ztUH$10-oPZ(%x(Aw{VE%ZPs0up0fsY zA;Ap+&)C#?$rGOl|J3~#v>pC0`LD%)8UN+xXw%B^t?9wxMy3-%lWG<7dI6+ z{IqSH?|$r02yHw}czy7i!{ymocwjg`etE?gQo9e%?)l% z+LZI&`F*s-uhON;?h-sQ81?DnYlBkTk2-y3vFAA#v2)S46o>1~Dq!nIpr7Lj^sI&} z(zzzhdSP58!GiId^q6OoD#O$te0g{7Xl*StO|bf$|6Z{^v$?%+-G{`z+Yc)HuUo7l zXK$x<J0V;`I-L;}G~36!#xMty(NS>2|y(WmF;P-{rE+E{k4eA2!z zWRYZ8(S22*P92s~h@QnuB^KxX^fo*^`>pLtL@nV}$rf%J_&S@p1WC*jz8;y+yc3PK z$@f97qY~P3Hfp8RGrBOjzJ1?&zD0Mxj)y64Lr3u3q0?aHZ&m}u95g`f7`O9#UpPb z{u!Z|q3H9*2vPnQpToa-B0Vo77duS#_Wkg`!TI@5F5Uj_Pa=Ogd3r2bEC#WT-M{^O zoqoUSPw?e_X0NkWM8{y-+Vr{YxaG^uh0A*HWWd{p*DJ$XUBgUE=Ny+r&{S%I0k)@2 z>T@CM`yGk4n+!u>)E$;}&qcaKckuc-sC4B*T7J@M-HUTV48_TeG@ zJA#{)9OTS6=hdI5YAfyS7k^UK%ob|JzBD{3oK8IOGjmf->OGU8G2CqhNcf=+CM5X3 zXbBjL-QS=8VWRRqjLs_`WU5jj?!3URTfI)css+^=bc+rwKbc#3lHzI266a*MJ#Bg) zO*1GHt+jo+v5$+3+dML!6n*`(b=32Q6!*C+=Iz42(ED<((9FTJ<$4mp`7dFu#bIIn z8&j&{^^M2N+}try=>#j_AO90~VOMkbl0lprfl~F_q-jTEd4Sy;TxWa@bW>3hyZ`1diSP=P7wvCpmJSPDx z@^D`*_J-DpA1z|Fi>!#N%3O8=U_8l~hj;d+oQ73FVqJKE#-(c%;r4dUPxqVyg9B%N zIon3laV`^tN?G~&U9Xq%hz5YU0LC71alY{N^;32Mr;m+Wod9U{(6wTb%uNUsNhQO!3#^0MB~EwU54S6LH#ChL>` zIAC%bC3EQcXT{sThEYQZLH>chi3dKmE-t2ThO8?@-`oNEQIrVk7X$@95`f?4(F_;f z2oI~gXr-6I;iomcCkslywA#O@dKHlYL>E>h4B3jhio1kncdNw?0FbF+jQj48x(5hg zv1QH70Jo{BiJ4GI8hy$6>|{gNKdRoN;x-}zK5pYxes+JCKT$TFJ^p#lI>8+cI+i?>ftvscf2?*v zrA}9&rED6th;;7{KV6%jxqQ`r$3Q+P>F02q;1m!LZK-^06-)F!#ww@j@c5X*(V3+4 zIv1!;rt$s6Hh?il&cSBqBxYvLF{VTK08POmMYjju+%sHC#>K2w4yA0avms)B3YLQs%Tmh(HsiHIg$ zC3s1mma=aC2vsP)YF=u#49%^p~EGSgEsju3o>HHgY@GmCDO}*#kET^bq zZTOJPyWr<*P+<45e3S?mzA<)FZQpP0X+p&YR{*gsLojtJJ^&|)FH zB!as;1n@AA)@H=CGjtVuKcwy6Lh?Z+1RZbF0CNohkilTg{)JH6(}2uF0tNy5$)R>h zyx;7c)N!SxSgF!inTMi_)h{&Io|x0qF#F5_@7cisL)er>!c3nE0IxbrW~?PSO2jrs znLe+opACYVmKIR}sDukukqpC!%PcYGZk@=nL(9(N*FoaNue0Qbz(S$DB5hn)Kj0Wb z{|kaDM@uNrjT1>o$xDwLh?HN}i{u5wbZfxhAB>i21s6=w7*a#zS&+z;;i>rkShk$3 z^_TDzC=4<;A_H$>_`wJ{f&lCfVF7!tTiIVXepKk%lje({pQJ;pFlNxy#nTLB+5}@; zeujq8ZP|zaWD416@?Wo~2DIE*eO%$W7_ZC<4`Vk|MEm1Ww)<-V4MhAGnHr!8VT+a8 z9SZ9A;E@!{2$Ke>Wy6ueH2mP57puZk*5{FoSRu`LcyWW>(8UwO@@4AAL!V zTTP>vES}8Vkoa-PzuWVDqwmRy0`VNTA_XaouqUJ$>x2@tNV1dkm9WpS;WYN*f`-vX z*rgX5e^Dwt>Cn}iqKcP?VWq7hlci(N<%e7eOi$J;hH(#3ey|ZJ=sLswM?p|QPU)ml z)FAlJN+gMOaEiB$j0^Q=#(xr1J*)4H&e>m6;O6EE0zBo?tAt+t&v!vI{t+x7NZPNL zGy_k51L?)q*$~9^6^V_i#fc{QW=iBITJ(s9f@Uxyq<7IjAW3>s3P_J^ZA>Jv>d%8k znFHSvh@dWw^Vj)UTvLoEuzIZ_>UUtGU&Pp5#zqmXFFX6RP6%*_&aIuJ$V5jdF=L4` zLr4dt4JRq)7D_DslCkGQ=6Im~Q2yw)9fe}e1fFU1Z8#L`i45qV>N8)b8Y57_g?K=I z`%`CK1_w=nl?pn_QNFL=P~u-{1wk+yZ3|fP2Cf%b{xM*dm+_HSGzd7OrimG0Zkldz z11brY&`S&U%xeXM5uhM2+A_YQ_OJAq$kEyktjGZ+@9X49$>~g0>fthsTJN_=^*~4F z`)=?Q1H_dOrvv~}guYAfTX?;7;p9C92I9n{5>n$rJ|KvZpg1_138!lVAqnh~wXG-F zqx>Gv=fgw;>$re~j58c51)y2yc6+9gA+4E(v*4*8C5KTLDV6@6^X|X^RK~rLM9oH> zWo$E9{xoP$9lzON|9Rsu=$AtnDL_$0;)>J6F911b9)or^El5-N5UTZH(0M+BBPixp z(qa_U_@98I(6u|oF1s0)YA#}JKDnR*QWj~z5k-aa!v1(>$J_0x){?X&gJL3Yh{bz; z>iK#6dOr*CxHF(?4tVqE5%eKg?=|WE3XsUA7O?bCIQS(^wBP?>a*=z31B@oo_mdG( zu(rv(HbVK<6c;mO3|NvNNs`|Q2Z%Gf836ou>W!6c7R8mSct61~$bK9q_gIt)qQdXg z#h3Fg@7r^>jGN|Sp>zN%QVPOeOrl<5?m+ejGDGot#saqR>%zmXU_{x-8!D~@+dt)+ zB%ZV(By%-YsJ6(Te`Z4Xii41J=YDD~$;td4^VbD1Pjf3EC>O8FXnjqvRh&}KE*QhN z4$K0z)c%zcPVXD1YNK?}tqVEusb?c&l2hA0&AT%{p^XmPfnO0&gBd~DnLrSp$Q;*H zkY>;U%Y8S>$y3l}Aw%!o8f=o9e;fi+05q-_F$C+^wR=8|^aDQR5&(LCMn$n9$R0K! z|FDhAE1>=tfyF7!f~P`DC@nl|)Qn-&iZJM=&PJH5@|!wp>w6U!HE;0*cXl}<$WKq4-o2U_m=t}9Q~`vlT){G9SY_Ir((Wbd5c-f)ovg3R zVA#SEFsU}^pvaSK< zvbP>FE`Ob(480t7!{WdK^Gpw;3(!{_)dieX?wzle(X(~BEC-e-1u`%R8(pA9^8M;sG z@)t=C7JnS&&xOIeY1ksuV&6T<+(9ai0+ipk`=wN8FO2U{`aID;J~{&!*k1rxd7vfX zRrzUuhZGtbZNwEwXR}zPb!{V3Q~YErgk-^JLIK>bN~28068R0m(f)*>5sZE zPA~*nT<>+Cs22hTXxw5Vs-72egav-pkv)h2)@mkG+SU~K+lv%~xj$=u-5f8#wX){` zw2MFgIaaX)e}j{QTn5x-A!a2-l-?jIY0zXC0B;}TBL*=~FaO69tcmzS6RaSt=HWZ( zh(;{jftG)Qbb#&<0!tlk(2;sPQdks!JR~xruty5YLu++tik(%VaaQ!Y39|i7QG9KQq2Q9->I&c;luo5Tp3pX!C~xbwy$k_!6{ED-y{u%xz%(~@b zs=xpsFoO|>vku@=aWy+n29H!}aBgX21w=rl0cHum0wvD0Hrv>ubop7q6*hU5$#E5| zGI=zlp*s3lwWdwb@;Ji#ckXh4n9`Zlf?YBY2I)Ig{S@kotvaj1bzK#7d{QZ5I4^M# z<$12-tkLr9a}f~`#)ccJ02(K?3g7^5{YP?Wq~i&-?Wwa^xIE+lA12O^Y8{{7ah^`4 zxLou7GB?xi3iM-?O5C=i>+)9vEiAU+w z|IV8KIqQ`a2_uPj0C)5Ds;hVeK= zILL(|np?~ZGA^|)*@idn&@AOQg`46lIhaPv0gjxEFr-tEnl8|A+Y@+UlOYpJjXtuFeD6JCDTBfsd7X$*{-A*63`KCtklRci(f}pKi03GK zP#5(yfT?SE=N3QIS{s|oQ5LZDd)NN^E|Q>zf8a;S*+XH$0lZgI6ZY(B+|7)BCS$h~ zQu>c{K_!C=v&Q}m0VZyf@K(VYW2ABmL$2P*g`;EIAa{+>m@(#{8x?k9>uk*u_uuAd zQ>p5r#Zl$#xIT%$G5qtb3(Lx1q*#PdT|gC_O|KGfbBihSi_1Sx92ce*I9;8(4wR>D z{iY(`FiwKEfV=kR)v#SY4azZ}{pG4F5LZpKI~!;Jn2>TTxw4AA8WH|;$ah(d`_dww z_-%;$Ugu*|TPb_=MrMXl9Z(fS}Hyg`OqTLGtck3dvB8lRM zoZ8DY>>mn&F%U9*0s<0hoO?uV^EgyFX^S-VqJc1(XiyQ(E2l;jo`pYD1p|i*J|&Dg zMU>}RmiFQO$=K)piM%%Vp0nJpg^x4MUfu5n^5hNGU+Ya9&%`&xpK_bN^fb@A)HGeK zIiaI#y?0m^)Fa&U*O}^c??x{W5i#VrIrhzfYE3*jh#rj;aEPd4Ajwo*C-_&MS5s?Z z7!C}S4Oxpk{}J0T$jLss z_Ws4&klo6xZ(kZ5=84D8OUOA*_x}6)>zq8L$ioHQ;D>;(Zjm(D6;|LkIFSrThk6v-}-}-KkZ?~m(+#aX>)bDIG)YxI4%?a|_WYu{Pn2WAg zIN4gwZjL;1DUeqm8+~#GyAqxf{NIk=9?y1MURU0Wolo_<;=jkgU+cMXKWq2(Igfr3 zFqT-Utf zcDPC#M*CEMs_Bc3QS%RM8B6#kIXOMU7|F-;Q)UkfVYC5LFA< zQ!M*2W0IG;ATt_N&inGP^`fS@{9?RLB5I9wjgIQ^yWicbI^}ut#`D*n^|#CPwa}{H zt1W0YkvK>$o0UwIy=_|CxteY`t8XZ~2%i-VETsDV|MJ6Z$H;4Ryo3ePWn}COf zGoL4vvT{~7$M>9kD?lA~tbiM?dvlx>!pvZ2qV5%7B@e6b0cLD)I>2dCl?^@oog@uv zwIdSqyVN$r1U%UAT|KtO41ycv(scxY;5)m*CE-QBP|G_j-Q{^BiwBjtp2l8(=-xXL z&mgo{8NUVU1@|FOn5%Df28*q(X6JDDF%#&2iG&B+ltBBNchu?Uxoj~w0fdJeTt^S) zL#N5I$Oeh0c!3^!8fi=YUoj*UBhK(g(5Qi00=)>wOuvb313Bc1rBh8laFlRGR}EV% zf|)-1x*vKdUyF5}A>ncYH#UAYiHMyG7X9VCQ8vMD@JQfyc3E!DKG} zC}QWOJWqO__@g43DC*i!ZM^S;dII$akKf}ih=~jBaHLT8-XTJc@tBneCpR&R6hcby zG8aIr_+qSi#wa*Ok4@>+As=z}OMoTNI)V5HyTlIh^Rm|0Bb(QqSUpB+!?(>|ub;>B z`>S5pU%k4`y|BYbNr45Dg_A^Bo-Z7p0n8*2ah0(({Ncpu@Q$`%=}|*+St@Umn3$S$l#E8o zU<}cgoZEcR4k1yJ^)oA~FH3n+Nl$keoowAozkg3VI()De3a7ss|h ziD;FR*(u+6Xr}B*LS-96R*Ia!3YW*QM%K?3n|*n?>$zzDa=G*-dfh2nAkr%L_IYx- zt}Eb;mKW`Zlj;mZ!g>7Dw*l?eNXc?eU zvH@?EsXyPMF*_d#+z)lJcK>h#dFYe?B1rn1oq+6qc2+T&ID9NR!Lt-uEgEc6R$q>| zp}jf;ovR4NfglqpaOnxxWdX`#p%3Sql^hX^s;ax}!BMF(&Ky)c(60UZJtiHL|Dli;)EpYxJQ0*V z@p!v>M7{Sv2}JzzkEH**NlTpZ=&b7mgF}DXh(0kJ+AiZrP#j(wkX}>Ev%C_;ZUnFj zl@5zp!zfvD0NLeR7f2OoizntJ?JoOo#IVE}dJIs$JJM1*zX zznX-vpAzH>i-dhg^gOGm_p?Jo52fs+3ro7{N=Gp_KSHzApabJiXe3aNdtm-bMo|uP zr-U@P$)Yztmdb>vs+U8EN$~U%=b0+$+rwm2Ii*4W5UNb#Yl|yC6k0J9I}%>O2!f-hmmsMV>TbS2d_ z3!H#zkWa1|HlK^`g~D;^jlUc2d}GqiDi@3?(~_N&@7aNe)PoC@p6 z_IxJX(K%92C16*~5hUfr;ZM>4ShaB3v<#oBfWU?><1km+&{kxc%HqNsPD47O6hb1L}eK`B8a+{xRxZc3BQ;!wjx zSxwS-x<7frKGuc(<9dIBX0|8-T*Ur{6gc8yTFcH`B9eXWW#o@xj0s2Nk=DqbBgid` ze(~5I?6aZTmq7rSqtI`0&lILw%HtMt9r#XPV5K&XmP&a;=@g2)8a{XkGavqQs8a|k z_x#c-P|t2_g;ZTI%q8F{+4K{bprM`w`y)r!TS;BjCpq9=nBr>*FCl?^WsE|Gvf!i< zp6M6U6!p@Bs43jvFkO*k&7ZLw@f%kN10(0<~n;(vdRwkMXM>CbB;+ z)_Q|g4!_LjQ3QtRF)P&jcvJ72TCxm3V*;4EZJbF!aoXu&K+yPwNg_K=zcrQL~bwMP*e;vv5{gpOHwIirxk(^9B7PzW_QoWwS5 zb#b2_)h6kYmqX}5acFlRqPe>h8*kRhq2NpK9_{Cb-&yx7gIIy#V?aJW4Y!isN+?}W zAC5jrby_vMIiVGE2u1l%DlTdLvHoN&B8A2Syn@s|#rO-`_}oae&|ID%MX)>A>Vzf< z2bfKaV~AcT`o({Ow4op!Ie#os`K?2*#9IkK2MR3&xXfYld&h?2&d zulcGfMi5Os1H+_ou}x8s+9@gOQ^anQ2`W_lX6PuHIZ@3XQ~^!NH!^y;;-r!PiU&?k z|80+`-BIL8bOWF*+IUGfbUsSM;;J%O;!*cT+5hd>SG&nv_S*X+s4$tGKD&%hlRQOF z&=SCzWT9M+!<8~nb#jRahm24&96ifOJ30$9`f{L(k^q^*wU1PD8Ojdsl;epQHUqrY zKgY^_wIIZQn4866dqo{`#-fww4G-EC&es79H$x|0cJq=8$?;I5!&g;I9cv?%=l5WY zV>1F17;J6#n&VkWOPDQ6Ci{`(R>;IMil#$&g1oNOyutEB4AdZ>P%k?!)u=;H@~~9< z?~Lr4s#46kqcDX_EZcQzOu)gjOVDpZt^}(+#UJ)F2=0IJ89eiyxaD;SAG|k6p zi__mN*hAppLIdo7l*P7$#g14}#5g1T?*oWbg_E0N_$IYIT)O4x!`bK+=?3D z1c`m%-@gOm$u^_3I;FC~Q{zg^`MGrl1z#9kDN}dh`;;EA zZHjxu=LE=#45&$(4vL4LBiX=jnXA9z$YF>Y!z$kBDgK;%j_hg5Ab5nARK}j<#jPRS zcyGUKi_o?Nxu0MRwcrqSr3 z9+I^%fs)!leG+NZye31j6CFSMEkSr)YU!mREzTtej=}o`0QV*;!Rc8o+4HLces zrU2!;A8Q-$!5*z}ZG!?mqVx5_>j}zivE^!UG)GXE^~TL&;2bYLFv<3!Hk&;TzhfQI zQBHMZxEGM76vPx(fE>rL@I@UIkzAO)-5&N!Zq$>X^A}MVBSZ>sx-mP_xh0N==%Z+W z^OY8E1l7xGW}@g-NFdGSgh2PDyLgyaDmpWm_)jT&_cdic*qI!yciVF#pTfJ}W2LaK z5@L?{4UJ9>%r#AI&|uJ1PzBhAdybc+5i!hW*$yf?4&#~A*~U-HXxri~nvqR6R`b`0 zFNU2fsJ~8}Uk_|hi26Ie$iB(!!*fg@7?~bdOdgz8TcA~!HOZkq(gp;0wxyD z$9bh4xs<9hgR(lmg!BmrCo_II8L6tNxDZ>UNTod|q_K4f;q%gv6Acx|4_%D&ukWOH zmoKk65Wa3a7VZYGczMR!Z*iDzi&-7j)+nlH5R|p^?b|%+6Mv=wC@dQ33f_zj_bE*b zfGjIh^RlBp=Ibh(%{LvA5SUOk&oqw6MO|j0QCel7klImN;j4*zzV^;WVmm-zpY;P- z9@oEh-5fZ4YW*YopnK3z?#e6O_Mbw30r$STN@DmO5xr|vSYec-+`N{?{dCCTBD1*; zX`tnw+IZo^G`hIH9&(el-*3|grElafZy2u(2qv_f|M&C-z@fja&KIU@+sgQ0wwEibG9TbE4pZH%HF4kaG{y<{d~> z_DaUYH3(d5Jo(X-h}R0J7I z(V54s6fPKnh0eE66_DhdcfoIJllBNQzu))PjhJl2(KexJ#MJx}M}uepJ3z$0xYU8x z#U?)@Ab8WGg(SnZn5Xqo@;Dqxv53F>EG`zwn(CmwFv(ax8^}VLFS|Z%o}dN9o zOiMB0{NOgKXX(QxnEx18K|!!V&i?SKGl}+}ZN3i=_6jJ#3@J$OV?MIr#LOVAw-DX# ztijzwF+V|0McWqP5aWe`u0X5Lrku5t(h;=4g>C_HiW;~}62hJcD z^fgYhs|WWUJ5#3Rbpk?7D+%^OF~RYFokvIbWEv;S`EmL$cy@3rra~*( z4tZ3N#$Q@I??^g}_3=70LkI51s#yEh&YPHJ<1f!K)4#r4{B4*=sUS2q4&oGk-t4Bf@({nNet+9Y@aU8BV8+OS$A8B#%Y0cJoWV zBT>Q_?H*^-L(6uMYv)FIf_O$yjv!@0Ngcr?P>dQLH6S3B{f=@u(@c9{??AWhvtD}F zEc>nK^zOO&m?mrK+UQ{^Aq2sc3*RShUb;+f#4*2un@co|8%IoU>t79@l35rkVjnY% zgL3bw=kc{8s7Lq&pU~EM+}^!E$_8GM`raf+4o3#@68C!pi9TBe22}#AFg)t<2b>I~e6q$Ub<58I$YZx#&&Fwg5VTCU|hIT{CsGBmzSU|Dflp{jhyroO0 z+;y2(GG6nyO%-~hY~vF^EG=y?9n)x$X2@(1k_SR|FlqtYN0zjfC_$OL^FG(ov7R%Z zq;CPo#N%=!1IRf{154dLAxk@hwTSt`z?dR~Uaa*5_b4ze)*f3(VS3r2b4csYFx;(> zypD>qDlWfWaLa=cY;H34+M92f)n=Jt-U+7S6g-JT>O367cJFY)o(xbR`(aAph&50 z2(X^Zi(8xOPvKx)7VQkeGp*GFVTO?l)uEvqryS;4*{ZIjiyny#^3D>-7;xy+j?;TE z$|VWEWRPtDkqza7Mi=R>k2$w2afWt7cA}N1S5aIoAKg0PKo(_kwe`5QwnYnc|7qQHDw2hzv zJQP9^+wc8)5~LjR0a3+|M!g5KRN>5NU2ucW(esAd!c0HCb|Ah96F1{>d0X3Ws&#cu zU4}AnhX${yVBHfpF+O#sclHuO0xW=jGQ9IlIp` zUemPEc5kk6Lr0fPRw*M$#);Y%cP0Yf8UGiE7M{nPC<^C<*UQQQ^X1~QuItM&t*ExX zJ-!Y}j*avpN`*TC08?b2Yx$Ipzr43|I+7Aii7-{Ll64FnjD^a4bz~90A{(=ymy8sk zQn|9#p<^_yX#C=Xak)BD@Rrcn&=jf6%_#3K!52wR3X@vRF&!PfBqPIjc)yp#Q1%p9 zq?e0W5#pSRVe5>{F!rar<-Ya1rg(q)F)!8YQtSEd#PqreeXPO`r^OVm|t@MN!+4aqQcMHgmo|CXejLVEP>aPg?#an5JWJ|Khyo)Scqju|Hv2;nwq za=KDWsPsJhq9bZ)S3WG?J)C~c$)_6M=su5YhEt?<;vPOS+YF87s{wMx|}Q+?Q$%yshC3>8Z=T0&9pZwG6*>SXyCJA0p{QqoxCoR(=*hgIv%D~ z2*!(P22g5fQC8nVcdQfiD<(>}sS2So&HAMV6_9kALCj+&Q%mc#mj|+~PVs+C3FHE9 zt*#e;=9f^|oAd)07)-fly8dZlgCuYfBdo$2Ff0%i_XOevQ$OH*CA#+Kymh@j`_rCM zP#~n4-GcpbKPObXQlWKq=uaqXBO{%^ZWSJFk|fSS2dN5y;5}m%U#Kj*Wx6sk6pZ2LmMVX6J zOht>SNF?N5w74Exw%Ff6tCJj=C>WFPgi)xUpz3G8Yb`3qH8EwM-F`8oGk4+Ew(BeY zcwo)&Uk~9)8po9d>X*xrAV~<8)~txNGb2J2Ha>}chk`7-^3mOwtZMvS8naXuI%paS zh7-QQQt=@+m#0RwwjQx!cx%_5Uve%zilWlrkd1naXnV~RZ|i2UuW!KnmpE)i?_54_18sThAG0)a)@2phXi zk)cl+M!gdgYx`w^iguzZA5vO7L4SW&b=cu!(YI7+K-uoO)aq z7%(ehotUZ<5J$p@T>|w)aEdWIxy_^Xjl0Tq>zmnpN&R)rIXob;Mfl=1 zWF&#~{bIfh_V?Gds6VftY}3E@+~ihf_hgV>B_d*!`ke%kltj_&LB0_!4|!=qK@t{y zDIZqrs(;hW=#~*e!GFPEI-?wx(H2fBb(01wKXKDss8w@+x^hY^I=VmM0FHxzXdyM2N7pV;Fgt_v=No~Illc239}6jqH7Yno_!K%9zqnfio#bbk;RRTy?vpH+ zCz36g6n>~V6KrxDIL|(v2|Hb7_fBzN#3s73W!koErt7x?Q0Sz#tU&@TYg@}ZB66i= z$M@JLML2})l&1;yDzE{4BtcdcQZ_|-Unafuq!J?MHPbfj?L{49_o+{ZdA^54KJv^N z|3+9bBxed;=mzzMlS=Ro@DDP-XG#WRo0iDhaNDJCaYeYcTz=3~37>>-)q^f6-tvB| z&E9*s5b;HI3|Qo?Z9ka1y~In}ilzB)*S=*>2(4wg9NQ`vt)8aTjb78tSFzTpk!25N zMmm(C>T=n-;>lxmxjRV6XC+(s7b80}3|lZAUas}68u`BA)pkB3xE|UOzcjzV`=3^~ z-mKQC2E4Y^Xx}i?NhMMAN-`*OEJ@9kXpl&X`vl0#@v$n-RTG% z&IDxcqK>n&eMl=Q}k`$vrpfi<9QIAOBGN)8ZwlP_|bKN$G(5gZ}5Iy$?m<8 zFilQglZS-@X#3l;{(iFUFCV1_29}u5Ttz}mehIC29X$9j#mS=5rE^?y4y#2XekzwB z^r8!?AJ|W$M)PlR$TUA)7+jJqbDzKX?D76O?bv0#$*s~WC+1?i+mhh_iUhqTA5y>u zWz-VHE)gOmmw-%>S(4c+d=;V(iA2n1pnZXkYrz^QNx>j>Mg#!9T(ic(*`(%Nt7pJt zX}0HG*&u(eIvhZ(%l84Nb^U%8DQ#331sj4@<<65rs}m|Iq1Rsr!obhav2GTUkR=R7 zP=_nb_aaANen{4dqg8ORqOl_;5}XYe4}7>-zkIKJZ+)2}acsA6Fl2aK9hN8T>3g_q zo%m(pQO^W7pgw5TJfWsFhGW{fUa(^I1y?C{X{F1WYm+6G8LNk)u(^M4y)c78y-pXw zI(dJv)LJ&Dlr;PMVNIUsV2|{OQTL2pz#)++YxnZ`#_X?T0tS!7JwOv9NY~0!psj9j zdk6tP3tj1mo5x^;X>xl7fqdmb;N_me+|nUPyC_OI#`0Hb@%lG`i&R9!@TO z<~K!?y${jN!m5dSs16c?S88F`1wuW+#UzL4bzeg@2oE$1wQDshwXX*N>L}TQJFHYH zzHXiHA9;ig1O5xPyuSn-bUFM!7d8U}2$?d(k66SU&EKXpRX~tu^1u3Fvo>j?4{B4? zOWUIyfA$0mw2+x1B*okzAG7H1l4Bi6xqr^>1&v^EcGvN2=VS{PfdSMO-(znEjc#PAm~9;p$Ydmh_r5QWdEN7MYu&QN0gpV1*u|I$FJOGc{zPZX=amH;P_k z;lqEIM2Y|j$mkHS=5vHv2yiPDsX3yK){-e2sVJ|X0z2h9qiqf(}%8|k?HsG1G~m%}&EgFht}0&A}V zIH!)$<3Gu4S1FY}7QcYHT` zu2x}lp;m2Fj#>HAB(`eRs+U9D@P+291#qpa(IK4Yh1K?qUm=*J506~Jo`VfQlEB}y zK^fG+`x_yjk_O?A>c!Tc4_q!QQCrWO>H}`z=HpY`JH-nv3-$%m!p&x&Z_Z)c8^OS) zMweHrTkrqK@&B3rYx%#?fBE_U7ysq`pZA~tkMZB||JQ%@k=(Qn(|U@yxS46m*qv83`L&Uf6*nw2M_nCJbic zDwIJ)D^&o45M|V*-DQ1$zVC@2e)n8vWFVS}`tCcmKiTyl+x7CcS^YkLcXu~~srPz> z#P$x_$^$$~Kv4~*`jvk74GQ>r22ZBHhrs3Y@Y9W?rM7Ug2(#$aqTVqC{`9V|ukRBF z1E4Mj?bewqBuHq)2V+wd656h`-lDlu)p-Xcm!bd*?~0YpNCvJO}m#RMg5IXu!Mye@9egLWxvG`;JvaH$Q10rlL zwm5WfZ!e({6-sK!C#F_e0^r*)wgTuC+UsIw#TV=#v>C!2$P*Q9oO`Rq{z!7mblH9nu6yVmEj`&yMrw&xV#+9Nen>*Kz& z!oEfCeVXwLLO^!-qXY<&gFjUZur}#GU)PfRm;4~o$>XN!nYeezY z^e__W@p56=tdb};txDX&GFGM~GCm$7>4C~pW{AGZ#bR$VR#{28MP?*SM!)bEDV}1~ z6c3sBIOR>!>qln1J@cNdGbR58QatGZJ61;YFnPcN|DO7=e*~pVX?(!ZIJ_F z5IO?_HWP6n?sZaH<;WCe;7?ZrsPX;1mr6-VC%jbL(%gMKhE11qNY@7WO`V4?Pz8Vx zK?rpe20T3p?yj^Q_A6^k+9!;_r%|pYBVa>5e2rlIETa6{S|JnrJHnP<&1_t`4Xhiy z+3)lX6XcYT{_f1xqT<+Erdx!$`?5N^>KZ2`^k;N_LuSDzvn#G|Vcop=B0fGRliN7< z8~>$v?Iu0}BRhM70@ST%V|I23b4JqeY}}|;Cm1%Zh75{DBn$>}$sXO2LcUw`yhSk_ ziwE#!U-Z~g3fkeLEFmP8Mg(3SmtL^_TO}j&JHy>1BH<#IVw@tDjjwYUYw)R{Wr{?6 z;GQ>WjfIQBC{H>?s@MMu{uZ?BJX*yv)KvjBuxa)fFW|B|7{D5P)9 zq^4HJ9p=@l>yv-pf>urV`7kBuSC zj@XJ9#t>BD65I6tfI?^iY8EEA%tU=@`QV%aQ+;)sLHdr-`Nbhw&m^QV*52v2tIr+@ z07k;W-oE9}$Wy~yjRmg0E&JAL$0PFrZ{g#=?e_5HW(`n}iAiV|e)Z=7wSjjvwpIn#?>unM{_1OXb0t zaAlIqD=OYPIyz>gk;f5ptEk-{ZPzk|#$lo(52<$qsXY-D@)&hT2c84&5#|1AmZ{7x zR_at#R79Peo))~4q62`jrgRP8Cd-lVpHTpWv-tS8tGBi_Wf;Jpey6f^lG4ujgN`J$rEJT?l52z3aFdIYhNW( zmO1o?>-~HBo4;|Jfp8nw13_rGCp>K!rTFVzksP^ya5|fwyzj%A)Ey!of`CuA5jv=5 zJij~^6ADNLY5^rUL|@Ka7hR#xsd`K7Dm2uL1IeJ{$IXQ;T=w-u-UbI{1s=J#}ycJ_j^d^CG}d>q{Kbt;D{ zdvf>!LJ$2jVk!EOL`-i)X<50t`oo@SQPNG~@K$T`KX4(}2dGXWr=)$Gh>drR&%ZT2 z{U$HY&TS^XE(OAb-q=F4z|Al9kwZkHKDcD!b!B<%r+}FmVblK5kyiWFmXwOT)Wk%} zSRw!CCa{cbkvbud^PDv9^zWtG&x+NPlM5TODw%o?(NXdE0Y6w1=)lbF7U+^fJLEfX z)q0KL+!CnHDYU`$tLO9?;~$+S_x8-O2=udS=1$#T(X0WN-+kb$g zSd*G@8%rQBun$~T`poCAf}S(}LV%x?B01n*tk^yW9jkl+6S4u@)r=KCeL_0+dqWrm zsN)*8IRODh5s*|6Xk;!bLR^X&%`y0=@aG9hs)1mIN3XCoc*U|pfTm}ZTtbG zVQx;V^=ia4Dt7qz{?n)WW8i0C;?2L8%fMgP`LAPXEUp3+;yM}{I}uQHI|-P%QzBc~ z`?Svqk^cL&{+|YK9K(GhY6fY1P72ZY*V`tmS!#~tT>k?i7uvy+ zO?AX_i$6`)33r#9@1Ft$;3WWt?K$+|F{^};@$ldCqiM}PHCwlq3RJ~bVbBjoR7X=FJV6yc#73AdQ7{K@$w7w>le3l%$tfIT2Wr{c@s zlf?*K8MPFLptk&ZYo@;K{Nn^Ml}$r|1WuAQ=}i1ZdtTDeiFB(O(kdxCtl`SfXNhX? zB^C$8MBH{m{?E}9$#jYsPA0@1xg`w^8fro`H1Iv>kU?gA7kyH(FSM9CKR7SagH-j1 zS!5l^VIV%quueufXN}kPcc+q0-gw%>d4FVB6;aKnPoLIXO$Wlm(BRN|VV?-SpKdHl zy&=^Hb~xF&`xm14RA!NqDWU4BZ}%X5Fmb#X3Bi zgG^%V()UirSql)QhQYiv)F0G&9*u{EU88R{1MT|joSs>R0;h5W_so)TEH6nMyXvE? z12B;|a99v?%6C5wed}A?rttKW)FEc$W;u(*8!J^P_c6*BE6Zgd?vFEX85VHh@zZI# z`)lmDH@UbZ1`p^jxt)BvJ=CcOVsgR5nF{E_tm1RXr~L=y);<=>b7g-xBG3x27`9|q zherU!C0P!FCw<>(ClgE(=<+!GVDA{K@20sMdgFP<)B~vTo<4RFmj+QD|H-V%pY?72XLgf-a zOkwq5ne_+j1iIVobz}O^e+5WHl`j^V4) zyMFndUiHGsr*$a+Pq{miAbx$n>PX^^TC;rYR@gXT1iJRb2<_u(+hO}rSzT~$Y**rt zkbyq`%R7h%s$tyCTc%yCq+LVy$nBA?ykr#~94#`L!G0qw_woV)jIOo2dU7d8II~6$ z)!`YEANY-;Ec@5A*)mQPE0Yqci`vNO-=#>D%bkvS;umj^Vc0e;8;oL(QDpQsU)Gx()<0|1jDMXFz5`lU*lH$_P_a%`kr=8>cCyu7>|h>d{@ z$iX-KE6Wy&1he`ZG&3h5<;JBXhIGR>CTIajc{&}D0JZ3wYCK)?`+qfkNHeK(_LC$tks|2O^JT`)jbKi)UwH$M0{>U717kvlHug!EJv?=)#%nRHyUz2yhcwc)xoY zT|=fnY;=AASm`d5Y32ELsyuA?I(lem%xQ`!cO>+IrC4FTbah#gcmQ}h?%;e}!oY(& zrloo6_%*98VE*76U$$YFU$fard}9PA#ng7@5IP;8heNwaO?>fd#lIg#&)iJ$!~vQg zc=`D~u^oG2O*kgNu^fbUu(4K!Jq|pSlUwUz`JS@0d0Q6VR-TxH)BI)W^4vS%_$CQ_ z@ijDUSRVbc5wXEW&;7@=TD8<$+7D2YnS_Aj*a0UYf&m``m+*}Ccm^kjc1jVC#U?B@ zdMiR7@PfB2|AhC_Q~vCS1arZ2wCBMULDwKH=!&jXH1 zBf-!u<6s7-#B+5P9&wuFKW6DqmHy)baI@tAoyrGxMwlaT3-B|dgaF`|4b+mA$1CK~ zu(x7A^x3P=xV>palEbgXB-~<2^vPr1-PpKL2h={-w3QJ&iK}2s3z&(BbpMYS|8MYL zK92uw{>#Dtzvln)^8Qc$@BbZ)6yLb`UGWwk?w7X5lQh+|$@8V#W-Iipf?xZxK9siI zN~3QrPCI)0K}$NCy-fg7JveGlA`9(@eJXTU$L+Tqf+=UOyQ$9S5!k(o{0;%;F79rI zEgax7H5exksOwrWUn`h0lvL65c;&G7u8U$lwVuGQ{J&8;zv--sc-pq8g&ML-rH#)l zGT$YUKZ-wjnoJp#8=$7=31V_*HOix2p9oQ5Q=kA;tBgd8Ce;FePq5f$giGBP6~PXH zJ>lFzu0m;;8WIIgW)?0)#Y|fvUpr#s&3NW% z12BfrctAD6!=sms%;jOHELf?k2pDJ{L%<`Jdf|yw3YWE|0#uJk!PqeRH-AzX+2dLZ z2R(5g_J*qh=v|O^^M2D|H>wH)N^T-orn4wA`7vEq@F3OIRH5|%7-S;KY~~D^kj-@a ztTEAzv^ce&c6AU}?qdJDDP2Z?6WI~GBOEIdBi=o1SeYi2 z1~0ifg+up4k=p107n&8glWqUU;^y+dE$bARbWOGhp8%}JzqaV7R`9<&C}E`zdbyQC&*o^H@mIt|zJz%dysmsvQ`Eiop`KtXZr-bXj zufKZ@nwgaV{Qu4;MXO)&bLbjR+yWRe>2lyztH4^ z+E>P`okg;VhoV1!Ss1gFCPY!`4`l+$uSh7JaG{deQZ?0Nmv>~6aV1nGQt}eg@b(EC z>nkpAE%9IJnPG}ysex8AuN*KMQil1|k3}K-TtDP62CfWfOO-<=1v$0Qpa26o1SXhi zua%8#9EVRlMUZt?pS3vGmbJm%Rs0me(q@3%?@;(H0hJhy6CX)#d|1Ph7YQ5_-7GBv zl$W46C_uNFS)-k_4^YT8r;9klQv;?Fc4yu=IS!@(BumuMqQzC#|Ld?Pd+_k^I6+2$ zt#XbxI3)4FNpS$$79@Yr)6G+=mry0Nj>uHUyNv}Q59Z--DhH|6t$-u^Fh_1j3NdBD zC6d-=>5!P(&5i5jP&l<}ZI=K0chaw!u!JGiC|bFYlO+iwz z3NZ=+3=`sMNt9q=`z=8esUee}z=s7G zWb%qA;h^aC-j%$vzT=>p;Kj3plgF09haEq`N(+U9Q{g^*RT@}*+9f0>4=#wMq%&3d z0wLyAbu{?xJfhN{M+jhC^Es_nWx$SF9Z3fk;^HC~6e1ja(@qSo(vp{yb|KfAL1oOG z1Sts2xI;W1KTDqdTUYPTs@NOix4T^CH3eKPueQ5>O$MX`2nnP-tHTw-`_1RU$%%L{ zyti0<7!DU~{*M^EBiW^-g*gaX!6+vb4#5vua;50HtpTR@kK@1r!hA2gA3hPcr}cZ4 zY|S1y5C5|pp$3G}XN^lp`;hZUg6Xz!U`h7j9(G+r!oib+@>az00{QAY%=aOID+{yE zZc>1@^OjZF%-~O;nSch|yTwyUsV-7^( zX4!XC%r*a!2mZ|s!K+S0NSO&D@O5?>m!kn-0XU)$ZAT{2v!E_APlUshxT4xgSgQU| ze*M~a;c3E&Fgs4d58){WC;FcY3wvnsyRFsxQon`_PFvx}-B?fEc12X=F#_;@4>b;% z;%*gX&@+bvXAngw%C)z3m?exU@~9>xsnaCmdZl1sS_uibx(e3wL$Gsl#l>5W8JU4; z7E53mz^X-%XE8qwW z_d3Id$vvgU2M8nuQ_?0Gv(=>f9uRZt-tbwgXwr%<$y>d$MPrMtL*BA>gyCCr_fBU(%?`YS_V)3X#Qh;p*VLlyXR8A>h_ z-Ib)fnHK4~cR_IFTFf+NKsCp~L&cK03}he%jDL(~c?1^?H7wb*|0@cdS`AWceBl)C za!&-^A=}`V6N3A6LNb6k6g3orYk^f&1e%leipVTp7*iPY+b3T2dqYw5x2}Msh)0rh z{CCu2@be6CX}ToDPQAI+!QfzpTxysalmN1OI5bRnQ90-1oc3?RuK3ShXB`1rDEa** zTlD}+Dibw6SSV;to!SNZJv-%ObuxYS#ajCNR%@&9rY8U$QO?S%2@3%08|K}2@%EiT zEgoba8}Kq~8Ux8|Wdcmgdm+A(--7#qTQU?5J#I{vxwG*_(iUjW-6Rs=Fo-3H`UE`{ z85m)v9|e%fx)BY8szgp1var3MK4A4$Xl~(*3QW3`#m4sNvKCU~LP1+3_>?k_I6|5L zzHy&R%a0Z&0nQM@KGoVo>B9{1PxvN+H=8#GpN@9*q zBi1K{7yey4bc4$NI`7ZFdACb8o=$Wr49JSdf!Lbo7}bZ|O78lWs12%5f6RPgqhiD> z1%wu{;F(x~{}#yw(a6==4YRIw`=Ix@?5FASypz&u>S^)J=+xwAh|;P4MNi1@O?@1b zsA(rUoX(BoC1CHrPt)0&RnD%jD?w0}^X2e%yZh11y?Q(CXcTzui{Qj;(}$O#G0Z_3 z${2?fWt>ai8rEhCqYpG99)3+Hl?C_F0?0Nr`kNO~LNAN7DW@9B zN@Hs7xHKSo$^wwt<+8jUJ{N8=nlID>_vk!Ku^jP`E7eqA*@LV8aQ{R0h2CrTNXt)l zK>2q0{Vq0R?q0fgUcmyoL1@PEb?w+bhaKUl8VDQ=avK#6D9zV<=OxBtC6RO;^O&*A zOhsVC3)l4Rbs}<#nF&3pNArtU!u?dn6Ix+n*=Sy5QrDi<(tQ5+Lw4=O?=)Ms)xUd5 znM9M5NMX+tt$ga@GQ71aN8m5d8a+($S^LuN_OU@Vs-7brZ^`?K%|Dg8g z`{J*r@4ko<^I_rs3#WhQm;fRs3M;?Dmbp11$Fs9$nCa#;`cTFO!^oNDejoYYiGskv0QrkqN0Mho^!2n!P*l__h?qB7qdA&t!aEtdn1@TcQ*o?ryRVIzN@NW{#@TQp(GkdsnJKv-=gVgDvxA6sE^nA*C1!;@AVI3*mM16Bv<4v`yQr&`{woI-WKLRo_G_)Rl5;LplCI2 zxn(tzA_YZeG=`VNmJJ?7;ZtH%V4{Rd=7c^bVJi>o2=S3(m4zZw7Qw4g!?qsoI5ai4f(4JZLYUQ}-}h_}~%3mi`fO1I($-L3zS zhP@AIW|t5xvN$qT6i0pYKDT-dH3a(XxJa6n`8YlDGVN~;i^34e;ukeNJ`H&NnSZtc zJnq~be>1HES-ByatzWc%8|2*g<#2lhs~~>=o=ggOrBKWX#of+1U=-k4E+MWSh`A>T z9Du~b=V3bVrfd-*{(u%_?~ZqO2RcImJgzvf2pRw$oczvjJE=&z(7M%fl);rWJ_^;txAe%~v@ zti-fBHs$wdjO}Z=r=J4!$xJ@VKa9FVmbtB=8NpSd`)G+{%SX-N2PGUpVvm}Sref68 z4n)m0sLmrxQCI*1bJ;9k8m<{VZr&*fqxKiH(zz)Ojv7l3sHHvNptu%`s_wcn`_L$E@;+IJxu8cV~*VJEt z44AIrLW6oVk)q~W5(dY6;Y84U#2>*7W*`g_nnw3!ThsRs0&qk%&}hW4E>|+%{o#f#uDp_VbROC%9^HvT1`j=SfriT z*@qN^rGCsDyOJSA7&TU}*)%)o4D8Nq^WgxF5U9E~ErUjyz6^XI9`Fd^Y7zVmE8CId zT-Gd(xFmYP)CS?Nd$52jS|p|f^^`kJ;^P<5kE*sG-9F-^MgzXh9%z^9Aby!rKR?!Fc;e=)=psS@>`BMcO zMx}c=3Oi|r<0RZW58Lbj zVtaNv4CMBhU%Ly1b82{?X#@89`VH*<41jZdN0kk6y&D8eHT?h7(Em^W!-_C1Kv8P{T$F4w_ zm!9KBHzEuwg(4?z9<5o`)1(@!MY_<|dC$wr&2wZ3{v2<>!jCzJgk&1tS!$betL}%c83;X&@4)98c zzlXK+H6uXp6QUeMgIdLikrqD&f^CMTmp<#jr<)_1G@bkH&vUr=hR2~RHP}PQ9gqKz zQx7`r(_RH52T{>#Sc`}kYmj|e>_E4fd_MF)<8EEQ3OWSAv^&46kpKDUdJmzG!qTTI zhVvPw0ck*sQ?1U`7_|xYMW_DU(r>)9W4>*W9rnQK&sH~byIQ)us}Rp4jdq}ex;x_` zV5%bpY06?5>j+9#Zk~?tdi3m#C)L1z;i`s#-D-!du#(Y$!X$y_%uMfivPTTXkz8tP zb^w0G9TPu9>TXREnmYFwh8lZw(pqcW%I3D%G?r69GKp3u=`yzsyPcN_XwlS`^W}c=PwC z0pVZzF_a)^8*GT4Q(=K#G0XfIo6i;k3J$V)XBpwQdwi|tw`0x2VWUivj^Ew#CWo>F z_YOSpa<7wq<@!QhZ+=`Pqn=VV zcs__R^1Utd`0(#1A_O;>iV07{x@k!uJ|;Oj_;QXfxU3Y1Zx27^ymZyT-29xrzmKzO zG)fqib{&zv5q!SgL6v*Cg@*)&hOpl%z8OD{SF?9qeD}1=dkTp0o^K{dMSOX#xr*6W z*8lO3b^L*cK;O8>e|2Czj}WH8M4GJs&>~U+fts>1j`TekG>~Gj5)R+uj`OH%6*>0E zI9riPy?_mhcPYsT{0StqIv#e=a+B`HJ7vWc)lCUcJl{dJBBN!>sk)wa75| z$M>5z<0YWH*kzPk@$0A8Ui;6+Zw1*GkNr9U)Bx5W#tH-_JQ~a(6f-(~L93Ek6c-kO zIUd3!ZfcigtMsbuIq?9ZKd2Cmf~Euy6szAOC_!`SJq4zaohPvKCfTLWugcbqe}6;x zyLa)VNtRUno`Yl9x=U+?VCmuI%@Vn?d&7{Cm2{Vqy8YeOt_xIGR8)$tC$snZ-I33j z9EHa17*hARlxgtbrX|L6Kt9Z%@4Dq<)BqBI?SHqv0+>%@jB$2ZgAdLh)Y&mPW+YTF zE7++?wL}QKWDvX6^K;qfFM2jZ&Fk`DSVotVlNIhctS+3#K|N0xTE-bcK^Q#4aM!I9 zF|_qt%w^tj(|u>~4(a{ulKk7hYmg*eB~G2{}gtIjHwbkK*Ta(rUc@6M$}K#m2U6k?nB*EH6p<9VQK}xpOux+t#ziiL0Cy zt4d*NDZw`~_N%|Es0F^0_MdD0HS)&EK&0x;dTp|<)2(VI74wUnT|5Q% zC(_!?*nfaDXN=zBo)dt_q`ihvO8zaP)jkOZYv9?k=I(L`aP?n}LVBi*@$iTEH{YHs zjeM5?;1ZE`(zh@Ta0M{Rg9rLO=VZZCjtM_o;l1S?)mYT4DZsOF#pHR}A=v@PF5u+C z>;pdPQiJET7_?T828YSB`@13h&vbcpIz1MjDZy!)c;73MREj0briz zJQq1|pHEDa7KyojV^#Dm6i0{a&1E1jnbY~G5XH+Rg;G5CO@tvT%kAXWjkwX=I`lM+ zF;xycK2Rn4j-ZQobM*GE)Y&c%dA>_SU2Y1aned&ChbvB%8Z`p$X;I0rc7~qV$BmDe zj4YDoaK~GkR z;ju{>BCAsF)4yRYoX;uK%Pw3skU<&hJpySUi99-beo>0weFjs_>hB1^+1|Q;En}yY zxh!U&l^WY0VrP+H4uuHlCmjl|QmnSVY#>nt`nIN>IUy1n3o~jvZgyWCKMh@cscz}r znUJ*0VhcHo6YV57Tm19a%Sb-UO`(w9xm97o8sbhu>m0)q$KefKt5G)=kn-Oqlmho$ zm;5w!c0l20WFxTD)uuAnJITWXAbE&-Q$}kxtbK{4oRo+xi}P&WdA$4L@sL5$eMpjU z@rIMK?@rS`qq~GM5dNfsE&e(f^>eC&>9$esc;V3Jh9H z-?>$Gts=$kgmxX@daZAdNMWI%oo8Tovm?QA{k>McOp0Ob*iExT-BC8GWZfp~!{^X| zrPZye7mBVQjT{dJEVVt);eCsz9L~|dT${pqqP!okLtZGncY4nIXqo(RY-e)~7egHX<= z4Uosr!znqBJaxU-y~nh1#M+lhTjQIcI0EAa?~(ZRGeM3OpS^njJW;Vmx1Wh#aL-|b zY4`|Wcv&!)sk~Wv_3T@5h2&hQ8DzT^~IzI+~K^So!t?u0;@=iBx zh~gD@XA<%?$@|GWvPs+ec^HGUa|2?jKS1FFllriU{GkIzN(< z2XRwZ1X;+~g9+X{UE}A;PJwNW_wlpN9VXiB)HrFj$l#EUfkFirY>o}u!RYTZv_h>$ z>0`^~4J|VITE8UACK{@ZQX!JMyWK|RpxcLzcr}0$PZI1_CuLGSl(hkE5MfZ&%xb2K zKl3eg->UFu@3LR*VF)yFglx?uR|8uCRoI1UKj!ijEoqxv8UN%Irs7r=B%(@LU&jum zzrIc{?12Dh^lFX@Ux-zPYEx#k`q=Lg($B~Pr zm;v=5AOi$tXe*fiCSai=BAgKbrrFB$s~-3~WA%=-cnj1VYLddl@JzS!|4y z7~HI=kkLYAHED||5$Lit6O(6j{iv>EgV-JNx_tA`dfd++CEQyI1UbFIX97bSL~)Y3 z=ySjdiMs~HVhO?^jsx?Px++4XeFT93WCq6FXFO7N8E9+keB`CzvdL|1(`r7c7wflF z?QSE{-TOAt<3y8tX(4{O-;Og5-mLpfw*nKR|1F8Y0ZP13mI8vNKGz3?+uVGdk(Gs( z2#i2WhmH;M(~RQvNSX)?E`I-Dl}6dtRq80=Vs9A->KoSnQqHAf!fX?}_+~+k4Gb|GHYM$*Xa3Or9T+iT@&| zodAYhur{w};zJg?d&^VlTLtMA>z4{iDMnbfo=Y@`ZOJH022tX0O{(dpx#!AbIGA!h zdP_+~>tbl+Fy?LKioN-~hb6C&+C~)qjv}i~V!1(f!2}7QO-88?U{^*o7qrNCow59MSX5tBJ3aZ;2#5=;Sy~n z2oPth33YtDa%nl33X(#jBz^U(16GD;001Qib5~4s*Thp4y9G)PHvK3u-2$$pR-wt6f)F5|5l#TBE0?> zq{82Ex*E6pAa(_t3@Dd5VucBmME}kIBYh+ljn8J3vpqMSi#RM7tz%eM^BVovERE%5 z+-UJHDQTG}B&FfEhvs-SKNVd+^hSh6h1)JSxrE6%8QW8H^}-S<{)3wbUh``M@3oHO z`@?aF_#Hg<*Ei(YuWh3Wgp$F#2S@R}JCIbK)906dR3zxXC)51l2$sI`OW`;D!V>HP zkUiG$9^aVK#weHOXS>11zbY<+mX;6o{}+328Cyr!rEQ+$V~m-ZnVFe6W{T~YnVDky zn3-Z`W{%l0bIi;XGc)5nJv04d)YH<;Nb{=o>D5;Kt14A#Z`Homy4Stxo6nLuy|1`jz&ixXAf*yf+jm-iMUBiP|1HdVzw_Ud+4ZythLiWh4Vium3Fn9v;HT zr<|0*xm;@M!y<@Dlo4dP@yXFAgDMVUYE4a2?Ejbfp#L`i!}c%B|8TMYSN|_3H`~AS zKmSAWKL|trS^wo5ZnvZpmg`ad?j>|^yP3}aNFE`}YFAcmpqzUVNMEyL`vtNuY(_D+_+;Bk!fR#W^pz`OxS7ep(P`EyRZbIGo`3@0Nb8 z-x|#2@AHo^|7XIuAKQmpSHDaBo$nJ~H#7YA4*f=i9fuhQJB4pncle(SzTs{SxZQ@X zyV{1d_#e=(qiws1I9Z!SXl;5TzBg&9BBrbeX5RLVA|+P4oJC6syq^XCxqYE=JY0A0 zxldky+>qW+-<5v8Y1yDDt>r(l2Yvyceyw(z_=CvB#l_R?9^G_rQdLWM{=L?%O`&_z zakGmrRd>5}YPQXis!Pp9|!e_GD)|!IPy>J8+r!-!aIG(sQX}K(B7OjF= z%3p%q5V7GM4uHp6r2JFUmnh|Xk}(&(Me^pH7FG{J4?q@dEDM{4I|GRN?LrP1hS3B15qpHk zgNWEkC5meVqxyd?_Mo6BRp2lL;-%%kmKBH|l!7FlCumSG#sQEZz<4wl9@Wr`bqqu( z$tLAeXt{AYd;uO_jAsAjIxLUPgKMJL42F_dgqVP`0M(UDdZ5Zvp)6<) zDaw%4n8w-_ht+Zk==()vA-`3emz99RSbM%7Nx5HOLJy8-ZPlQOkt1ImsG%NX8CgC9 zUA)Bnhd==@+sZ!(2}2?p2k{(7F>QQ9mIYFX+b++J6tBEfbiy)IM&Hx#cr%mt7hj$g zx#4)t9)w2BL~7b(Hkj**e-}=n6a~T(Hq9DFf-{hA%ln;9@*telIK?%J*x&TZeD;91$)%4F> zhs|M8sfAaRH8W2_M3vzJWSpxF(dJx4L=-&^zV&!D_@{l1$OecdQW&P;r2!0KDF6(3 z){*YA^Sl>e3FQy(S+Thi-uOw-HAzUL$WKTWLClcAU;kY z47&tdq&Hly28LO0La|Vk+jEo)b6!nrp@C>Rd^k+cxH2DxSh%GvYCy;Lp#{(n&0mev zCcaJnH|JZq-A49Mw&CmQsq52~q+{$9w}3KQE0zL0Sf@xjj0K1VL&Dt0vXhMaWMF^0 z_viYT5w;7wyF3P9YQPs2QIk|pgs^b(_Z0+m=^0(pT5Q_ejO0Ng>C{Ty%?DrSe!VX= zE*DjDSGXiZ8nCDZJXupBYzQ#s+Ll0a=GUZmau~GGe&BE{63+a-^ugDjj1i9%UU@g9 zuOf;_fL>XoCnn4oL_2m-P7-4buiTFAU}l&-$%%ww(&1PH`_J;FvFkQ85=UK~0A>;2 z&^83fEErUfhOuq>*Jij0COi;HYe5kWw5cTWAG**WBI-qKZM-`nRxOB*tD*HE4-)HX zAcVFzzcV1Ge0#cX1Av@VgQ^?p+KW@&1o`%k)~A_of4 z1-gWXeH?(%AcBCNam{4nfkX|BRUS5mgOsbqV<4u54-NC7yZv%#S=4^(T|UA=?11}2X?{wSGn zll$Sd@f{@bEPnN39!K7O(OjEY=K7}2M_j|*$V~|1kLlVjo64qpD|jeq=mgK{ zmrlA;27ygp4#>KA^B$oDoQxnOWxEL0yn4xnE27A8^5yLo;fKw{md)#)-0$^-%1cmE zdpje`Z6sN?n2F#Kq)D^A^h-z6N%Cgo?YWZao<^1VZ&_2K2o@we<)azs!zs&|3jPN* z+~x*vF;gMKH6uu#NBLoXi$2{sUZfKHA^OW1=6Aoaq^t^u%Cq-AtS(-ea!Sp!JJhAew8YN5Sb>+dNiVZt9Pe@YEBfwR>sskE%@inPZ< zClzEu&(Q=Up*H>bW?YvfbS<@8GWd!|j&KT_IzNWn&iMHmXR(l*CAfBV4r-Geiy z`*Gc`4Vq&tq2nDr+N}tPD%)^Pt z#4WoI*9M<~f*vanOxH}*j$oxFp#(~G39hBZ#UCkVWpw4_GVqN?4t<;G2J|QUy=kKQ z^#VsTmGVDQf;@N#$l@#W2}z|`q@8neXnTB)yrfl9su+-PV}>0zabvbRn%KSf0&>f8 zSJtgQ&(__4+&zA7eq1~AiI~q)n!_`J1PN{D8|F8lnHP+}K$ln4 z)X+868InbZh6hztln@b-(nA-?i6XFzuced$8(>S)=wwciV)Fj7z$Hax3J43jtgwqP zU0;;$l*>S%;mS^iz+-Q!VGOotX}G!QFV&v^I=T0bi;*gf1C90IUEMb$5_|6`czKt1 z%ZHB+X7`-jB>gq+zp=|}lM(_7XhCP|P z-{x}Yb$7cvwhF>Jra`cB?f!0&>JR&T*gDbG zf=)>8Ws<)SH)6b#SJHrOd*oq$Lg+X%;Ln1EE@CdjWyP~Y2&S42orbgWGNLGQTY)e} z+g6pzQ-nH8_(EmYSNcj>Jc$y((tqIk%U3t&(18zsj6Y{>w8m|OzGK%j0oM$xydjhg z<}!o~bQwK9V}yf3CgIXJvutDdOX<|I$#nH*dEYibJ{ySEnlz5VA2m(^2gQ&ekry#E zz9a8}afO zX_fD&EN9g_3!#O#N`wK62SJKTmR1%)LlMj@^=wR0C*;y;v)cI^%6Uz&{XFq)Hhbgz zcKp+yzrp1OzC}m$1i&ddf8szSM+nD8J<%ekn#M}J8XC~stMBPpJR+@StoR~ z^R%?36WW>Vzy}3|`C3Vof{g+{J}NwO?wS6L`Lg}B>XFOCLpP)IbDRbL3zC<@9Jaiu zld<2Tme>oL0Y}Ks?$n%`wwO~0h4YOk)oQuBr3`*u zZXF!V_RYbXN`c>(K>Magzh52_NhkCIthiE=cD_mQ?eafchDizSB)o0`;cdDPCg+Sw zKVIzA->tgK(mncx3OWzqu34V{a-q1EHmcrx!!HosjEj{K(K^G!{#JV+`QteKqdvLp zFP5k;S1HvQ<%$26%0vgDPxxC!q8sTU@%6fdVD6fc$o$dwqj13!cMCMZ zpg9b=e6cYUC3*Ly-m@k2hfg_C_G9!V+E8m_%sjBaA$EYU+|ejcED^~ZZ1YAjx95>6 zI*fULY<(s6Vb$R`QsBHZ%AkinBRSdhrdiJ=R6lpJodEWaXLRS#RYKnZ$IzcY&Ly(( z@=v6%g;1IXF+t66v$t#I#z+!fXA&2%#@5yskZHx)rsNVI^iGpw9r{tzN21)M5P{^% zjl%dd%T>8A^M8917dt>Ca%OlSzGjtT-g;m9ouMC%$s-}U`QjiFTl;1&dKE`Kx$p39 z>K_fUG|%O}s&w9Q^cK(?U^Waq-6h?sI7aohJ&6lO30}jAY^>Hhn;%t|3-~xLl$*$X z-#yHjmZSHHxzJb6lwv?FMT(Zuwi7n+NE0XLN|u_8aK8Ji=XF@2K*NVp=!Wj>5q(f@ z0cQ)L2F=k2e}uJxKs? z2_ERQ9=`@(nO0`X4!o0IhO&qJt0rIt?>FB2Uk?;5M4I7%h~y4OXwOnji#Dz@36nJa z7z#}7kEMJ1JdDj}jjJ85B$H;wH9nGy_45;eKChPy1VnABOFr%sR)hbqY9MdqnYH8M zZjTx-D~ZD1q(dIaz2_$0wCM;fF!B5*jCE`y_iq*E@)^segn5m*t_dMS^qIA(jiY97 zF0h7jd|U!|d`E}*cm18`(3_Yg(x_WiZ~o(`r^T%DS&x<)4g_)OMBGZ;(f0_|aq~db z)I~#cXStB+bX5-fKyqmKGYK{af4TV2O`qF=%hy3mz3Dbmu8+T}_GOs4?DP{pLUNGq zH#R5&fPidbtR1Z{vxk&Crr&g;iIfGHyOyzk7*U2d{Su28y6y7p6}E!H&J1+zz1>Ou zyFI>7!bK=qM|M}`=s6XZ`ek;;jD$mQR&pvb7k+Cu6?V3%SeuQ#UIO;OXAw+B(4h=T zcCNjB>vK!YjJ4ZSHAr&h?)flh5MCSM{qO%={)5T+Pt?=3%sj*$ z1_g=bYXymtu)vyP>*7-2%hRou+e%8G8veN{O>}#*{lhoLr~PZPnL=J@HewyLWDJH>`wWh)`O`4iR?ogF*qfh@*JJi* z(A5@O*kiafa1$LK*c&^W!CYRvp)UE~Qgd)$2EIpAkZi5L*wnN&rCHhL2x>y8-rv{$ zymy=5`b4|*y~gGc{(vq%^++&Sk+j?O&~Cd0a9_L=j`439+nR&YR}_oz@mmUuo8}5I zQAU{GqXR$i;c33>iti3NBxJoJT+~x8OC1_TaehVxZTifPg)cZ5y##ITW-E0`b+m_S zo8A8w@slKz1NQG~b$v;$HTqawqA~alZ(xP^@FY-G-{$K?fwi5xEb@H91Tk27wVz7l z^mi1$0L?IJ5?8O>pg*wnba(d`n_#nqU&J|9a6&E`WzcxH2Gl$kFw)<_i<}qSS5OGSc-wt* zjNQh5Gt!>vhbjhyC81{?F`X)YJm6DZzK(TS`-{y^ge6ljM)RJaph2)x(dcLk ztVa*XHS{pc#70KnBZ81!HfB zMTp$=&GYa#rHfSQ?*K-1hce4vHiQOA<&p35cQE*Um8#>vxYFZpa7H4J;8`cmqz;oINAr02-?^mekA zf>0HKs`9Wa7E6GVZP3gaglfM`#V|prH4C}S^mVbgYSAWfSaj63aju6N2Soe)MGaC6 zjH(*=SE^KPsZ6>6NzNyvLu`TknE33ed$<%}SIgPvh%xz=6kcR^G$FVzV7k>MUUw(n z^67Gt-Zr=End&j443dSS(L+{I)H=lJt{omm?0mdnm>@vnTnF>KO(e`-dv=4kfD5NI z`T!Y1)`uxijXMjq8XT38PuyvTAYvphDv7J{+nG6(oxX~&F*9#&TP^&>w5%cZGptc~ zfTFJIXZZS~Xs-p$E34~qs8cLOqz-^F^dY@v-u?^C=&w;aBY(@zR#Vx!*=Sf31;vH!F_uJZBypx8fDUBmw-be1IELh z;7l$Oen%U-`R5)w#KRsYPKO58a#z^~l(rQ1^dV!uL#t~p97Z*u-T!m_h(3V1rkB7@ z6>6_r3;c7n2PcinD2nA}6v62`%u(2lDxm>*F)?hCAFhp2F}f2)A()khpb8dEVe`gJ z1#bH-nJME*d_$S2WI7sUn$qS(gytMKja*TCxqf*BvenQm^H$T((-g|FcZb%dNXRJW ztKhHTiaH6rx;RD^r9&$XCBiQuyKRtK4|wB#KT&Fg>ZM9H_sKZ_B%t&V>23FMZlaZ+ z&kpoJ5SQDNaopnCMwpceLXl>&$=^)ZEzZ1_^rUj3l=%T{s(|vXQh}vJI^<1shxFNg z`w*=nihUv0l?>!5+Z5~RX3GizO16vkZX5Sny&q9g-HHQV_M}y@*ylK zC3bWmr>z@0%8hDs(Zkyen}M$KOkF=7qdwWi0aQ0;V`6d2BwwpS?kwh%F!x|d>qM$< z36*cOmWSCHIHE5d{s~^yfW$Tk?7oJBP$M=bVWCxro_NG(Qf?%Y1Nfli`xhOty^cM? zX%`?uo)DW@-cUv7>x|HX1Q{%Ek5Ea!M#zXCR`#a*5cj4NPLp#s`Xu!lA3dfLGBbb$ zgQvOmIvnmWt>U4cN`(SBoBHIk0>5sbe=H}IWSWk^G_VXasr6aTL{9|_&K}Zl{`0{a z?1ET6rhg~AFsh}7*ZSa7NPrqS$2Ct!WTLa2w7n2RcpIQPs=zquy<_LazFbuU+%MRL z2uhj>Ar?0P%2~A4=amt}#_%BK;&pVOq?;cxrj2mCsP>JO+rIQM8*oU)B09geD&rFJ zZS4v|=}jZ#kKvRc#}ZX;!!@hT*x+Du^e?ORcs0Qg`ii=y_YMD?>_VBWeD;MbTc;oa ze>FMM?lUgLdBk%3YCg!!v;w!rI*1hM&(WV;dpV=-B8x^`5 z?>RZg2~P2UB=kVPGgzs}A{8K1R5TT7cIkVQHF~otci=~$+3^f0=uoL?P|56fm>8ic zBSV2OxFH)WfQCt)Qs;Ok>di`%Min8!i$g9CSoG~ z1)wrLY47aAd2jlPmhYriE1n#p1-xXHu0NJ5m57`Dm;GZn%WBd;{5U`?)1*tw;)#~B1CIZg^~yQSU*->YJLNKbSrI2G=}(q>c98b?QSVp4 zi=Et@U72S;`^^Cp6`^VaY}-X_i#~rCM-pjWt_k!ZX=OKeIjxx?yw?D2gVyXjIM5-5 zmvTahgDusur&Eq;LRc8`N^6N@P6)F0FE_6zDqA|Q9CYQivd=-}V2@muz`uyKp_Eb$ zs-Z4$d4hX=L>S($3D@jp$<#At3Lug6a3TLsC6D!HIzUph?=E&*w7={!JNTq;{a0yM zQMbky!FL*u1|8nNO0%0A6D`WgTgu(wi_@tKX4=H zdxWnSHhMPaNCkoFf8CqwdnvCU1Ck@&5P}$Xpf(?nMOR2#^~vlTFVi|ieYg|t$&o*6 zlFoJ7T$2x4T+WPkJJNBXQZQD@@q?CC4}k^7?@9z4{iMP&r)G6}0_6Rwi|rlf&U(C{ z-(1!JL`&;NR7=MiWz4{D6*H3Bpe|%O#)_IUs}}!+0Z2U4OPVSt4edRlmyIj+$#>3A-%0APqg; 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�&OkXMVfkKgK!TUz3399pxntJ%jVt? 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%0Aw@*?a|$99(pUgY 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 z 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

        1. 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 z

          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 O9tKqU_LY4u_ZJiFj7^2Mq>T? z(bO3ho)w*Xi<2txg|prWX~og=7lGaA2Ys3{#ou(k@ucwN#=BK3azvWiJBskbp}LGF z!GP3EV(0$vWp0(2cZP%NuVuiXB0r182pa|bh%~@qE^5)p1&L1O@&`*m2+~fd4wJRz z$-(~M(%(b7Q4R{7B5E{D%P?Z=e+H%6db2eW1su-)qIpw8%`R?>z&%wGsCW~2)UoXv zNYQ&*tj}C5DDqyj@LESe-|)M8-JfG6Gr@?3cyU$t`s^GWK zBFIYI)>OkZR?n9V6vdrT-%vHBJgdIg9i$m=L8jX)-OrAgx)SIb%u%AglZPmn+y;X0E+} z<%96b7uG-fzE7r}2R)^-pWy!i>Hfd?4>#xkKL1BfZqEP3|B?5<{onsj;XgR5|8xJ_ zF3x22>-&Y1&Q#mFsRs%Z`%8+IacXhxA49%28=;g`!GwJfC$t|ClLY+_VU#6#5^ zJA6nAB|8?W@dJi&Gp=!~X0uX^TJbnthDjUSW?tRmVXL3#A$0np*Fgm~m~KF5FpaV| z>+#~T$Fo=GA_>NU@YneV(wtl9XsHWHr%w`!d(LOV(9Zve_LyRvP|fT2OcZoU zw=WQV%gLr%9%O4*bPB)SxTJ?5`Tn+m$IV}-36USvDT?TDA-k3Mh{V-wY2h)qmBWq z$w9byG37LcPIJ0&acKmBHT1II+y&Vq9YmlBXl?}crqWeOe4Z#MStG~S1^BTKJEnry zufJW-U?AQ*Jwhw_{>1@mI|IJPc8VBsMa1x(!W)fM64AZ&`Yj_vhzPKAxbh&*2M7p5 z(44Mo4l zN0Ar)vozWx+pBXIw)TM8&u2T^q4tb`NKf1tcGe6T#A{{;U=>XeMw>~V4XP*^5iFCC{3Px<_e|i1K5D9gI z&iSQ|aZF`k?ON=rCG0DTgc2wpGB0E^30- z=aPCwdjFMuHFoW#Nj{UNosZ!VbpvFV@9od$gA!^(pQ$vF4iO~X|2x6{-%b!Ce;3QI3;Rh&K89nZ`hDo1dtT=;mxvT?SL)g# z7Ofd+V&0LUAo%bH)<I_O-2C1|J_59oC=n6BB2ECAX`MT+8j0sRwr;po zd%S>c7x3HS;I`V7cv?aGX|R*f)}MUY#FgrH(U zklTZ7tBLZ@F2F0z@*k2c<-z_>kv~#{DJqAWqvZ%gFT^p0tA5%AQ)t2wEu44Ne+K?<-X0#@rLo!@cuu9Gw< z1?n861WPAQ*)!P-Ic-}BAA-j-oPV$qSy zU|F|i4O6nBi9L%bBgkxF19Dgf_%0&jlKP-o&17W)Z zv{@D@%5FNF6O!bdW|0%+R%Mrg9A^68C*v~A;%0rY?h>1ylr``u+o6Nd5E7#)S%z|J zgyWh=K9nueCcUali$m4IKs{~~TMDZj%18;Qr;w~avhZk=X__aAA+~CUc=w#Iaa{%55|+p?}d#v(0ERGBanb1MG4)y;dXCyWRY8 zvqu41eV(|L0qK^NQVvyv+A(vd{%SjW zb`WFrAD@dvMWQ+%DYJf?ExQ(KPl%nr7NQ0)8rYKgUXL@fE(RB6^njOi^lQC_U>W23>7LcXzTIi| zdnx{{BAd-THu|8Z6EZusoYgfLWpFJF@M#$4khELMxg%sa@zd@bBz7XY66;Y0kv0De_@05nr(Ud-EwTCZL)u_t{0Vj88_oniHARo9JE;hQ}ne#j^%&; zjaVTyOfjn)zsXpUZ}?SL-(LGt(%E+V*?U$95@gpRuwJn-Btjh^F1!}`OWmwo2_1*m z|N0xA!0UE8hoR#1-{WjdO3d<8K%7>T-fvA@#xRYimRovqs2Ch7u-u`@ zW*zaUlVe&iH}%j80`sy#>FXkpNmh4LziaKy*B?)2w^JUxyg3H>NUxx zNuRE!Xb2iJ*`DYUxYo*5g#WJbTN(w|alz!jhawSN{Za444CY}agE0**uC|X4cXzb0 zVxpZf&!Zo3wCNM}BucmT`$l9R9c~|DocEwyP7_J6XaBh#fKLm(K9*DcU8=>)#ymk} zZ65H9$QvEq7`#$V1?Vv8zy%=ViOH>oIWXxa^onpt+!~ZiQeyWaxZI8Rk44YY8i|GmX6@~Kx zTVfM};*#eFhQr#I2*b+deBN)#wvsYLTtu^h(O^SDkEFcnKK7r)522S{uZw;GoR{+7U!kSuF29AtzX@bv6;a_F; z#MDSvJTwd4cWK@3A}U{kpRqpbn@?IXtS^sm`LZZ^rX>hX$|<%YwNA-n5?=vx(HOmw2PmOwP}PS0O=wTyhSKIf1) zgUB{$-tH8lBQoyR<H7sA$UCopDhi#LqxTqG`-orO-E^qw+-5rI-`phb0Kf? z+hY^crfzPo(4c^4yf7fVX=c8f40yRxG@6}&Z_KuBs0vzL=+1^<*Psfm^O1K?L}kgA zQFJ%mfka1F2_-?1Mh;;rhb6XlOv`Z1CVO!|ECMGP)df^C%Af8JU=QUP`l0-ySAuj~ zsZC{;j$5-g8{BFAlI_cWh2KB!Mw*aeWarex$TG9@gE4EBRS;t_jAek82shP|8`r*fa^fAXVNT_Z$zQU)TTu({sE9gs`X z>%V5KzBhAMo?gWfr%2BOeSFW`jWzeA@4@Hs-F$jwx{9g$X|0l`7?|7SvTB3}D0H=) z3p69Ah;Qi7p_cDF!$My*po78GE!n)4jFL?)uUCylIyzPz{Islx|AFnh;Cb^f^Y_3S2$2D*dSc-Sq+`XC=MCg9AaU;Yd_Zn5Z?v7cur`e0t#hB=45Mx$ ztz&-@$0x!w#V0T;>t}x`iG^c6TzXG_@URZnR}3z8vz+2|K`0tMMY|_P?>omwc<+Tb zs7K(`jUYTl?fRoqRVUg$Q_`eBWzmih>v#3W6)_Un$isp=V{pJ-NG!Tc2@2ct(D_dm z5Y+w|Yq(P|JY?Pt7xeVY=GmZUbWx9; zz;<>#j;M&xB`Da7CbS}7OqN0UK0X;--|`j;yVhDo5qG82TfqZA$-nL}eiklXH zcXf6HK9RG7G}p6+3Z~6^I=vy4c-1>pkB)0>-bW#c<;PW)ABM$?q-%$Mg`P{rjOhqQ zz8~x=y^dOtJ2v7I&BC1Cr{(k+d^Zz(gV{cJZ0nnR_OiAA)Cz8cv`uN@--@VU5_E*E zAu9nPI6B+DHAVA6JAO0)7f3xj7qdzQk`;&*8=Ejey%&7CzaeHK^gp&v?kL^l_5u?|`&UhFv5|o%!FS zV@32wPksb$&#$(^(^YYmreom_B1@86QGa9Qy1m$@Yv-&AD z0Ac7_|0o!MtA?OM7zM^agax5&6V5hS=FlT&!Lk01dlTjnxPIEVKUwB3-+B5k98ArY zCq`o2xgw6M;`Q#%yWJ#)86!#MdR5-(fz&NADtfp1@(t}5Tjq$UN7nk!b*~eJ*u_){ zV^uYiAB0r|uJV#R*t$${6Bev<6b{G27GWV>UTlJea3N%IOx4m<1K01Ff8NrAyAq7D zTk{qw^;mmS&2z=IC$m>?{$&yEel@JYnac&iOU92_A;}?)r4?c&kHbpaQ$)RvXAYUN ztC}_6M*{%hgJf6g<<-p9{SWv5aC&ph~WQwYV*J6KmQm0 z&-K5J|8xGo-2dm}|8M`t|5NxsmiYhV|3=OxtKZ%)_1|~U5vNs01vwz|#xELzT}J9yi9(#S+vuFQ zL)?d7IM9EPiN;-?-V2pxm9q0J)s;OmCVqgnu5Vc52(f2rA z5H_1&X8N6B<;AT(XJjn0OjH%%AwTSx5(^0jE#fy??+h82xI|yJxg3d*I-Mgr6wxyV z1B4;QO}5s+fIRn>(LqFnua(WRp!Pk_|7rnHx@HzQqbiVWvYq0UC}3}*vn}M z6wC_hRlxg`7k+`KBW?M?q0?lh)%Y=meZNR%#hVGDeQ{H7iE;~6J0jODRKe~(l9HRi zj|{5hd#0GM@}!7_bWCzVHw5o5%Fr=a|0pM&#UwmA>s*SK_}5tW7FT2gN9;zIqw9v& z2UJm<%Ol-;H{2dEQ{VS!DnU}g>v`SaIEXuWJ5IFg?%a3*S>8*BQ~yaJDx zEmchmIe~My79SS>(d?s-LGHxsOWfMGN+w;t2Xz<=B^a^0mVTxvYvo=S@grRq3B!ND z*n@Kkf&Wnk>OrC?Ik3&3CtM|`5KAOrYM2$l=Ykd?!JhN|RHPlkhcb$E#DEly)&swfy>ET=0(?)$7KE3kVwjI6Be%YSq7CUd98@-y*;H_(h>u2nb`r zl{PePk8RgLi{*rjwSF&~jHEJAEKAb^{-x+9|JkT!+%~twg77IX(%aHggXInk?7(d^ zHi3rr)ERmQ-?b<>yj8_6D*jciW!M%fRvnc=K$ycz)aKOPUlt2JI=3H{^g&hF>6NYe zlwS6IJ+0AKI|BeeAQWsDr$bpSCrM@8ABrGgsSqU6I#N}8e6an^=7xSFTV_pUEx1>< zwwU(u!Ca%;bHq_1B)DF1K?sK?<8uXo~(fi1~-n05g&7b%^ zXR>xms)e2CoS)hAmR;+mU_ zkyG8s+V#YTjg4Pnc_cVXDUTf&Zr{GcRVTe6K|>lPb+4AuLu~j+6%3+Ar*rE6 ztwvd?ug9+n?H2uMNChB8KkSv#sFTWv660rhAcB~gKi|>|XP2buX8n}ReZiuHK}EM@dYtS|N13BmC&?~{ z8)`0cB5qG4iJN5&Mw0sM{m}~(XVMNo#9zeB%nFg`Ew!}wyWG&kpno+f>^$*@_EU;? z-brZI0(9kq9gOT_!yAKgR$154hxRu;rag=zK#Ofiv7kYD!Z)NsMx{`G^+RO)1Z9w$ z82V=dZ9%_p@Gty6i*&~n6hd(VkqT8&$LcM6$uf{C@=Dz}+@#kNaH~aS{Zk3eG>uHUIbVICXJvXDpp5g~x=x>)-MvCMZsR&KDN4km4iD{7(VU%qP^OS@|kEd&=%e{Ot*fpWKU|(L@b?eVep{W%4GL(fD_QtLq&Yyqp*zkNy-9!d{ArgzY zcp&VUJIS9YV|fd`Fy0Or+A8--SE?_FwjfWh{^WGTo!@@cFlHio*Q{LSXfwNjF_9EO(3(E4C%F0TWh4SIG z*?!jxCSL(%8e^7TQPoUIcpc24Ps&6nMv~`*l!6sf@zHzedYgA;rIp%~w{le{K4%Ay z*Z>|j$H>@}8ImMS@DkWV8WVp|chGGAd4yHRJ)NoDMBvRsadryo}xe#hBfMMOMv919xj~WX%}t< z;aq<{wjMZ+6RWM0UGm=!Np7PjFLQ(?b-{EI9ky&SAG}^#6}zFKDivV@CGLWj45Al( zjtnhjNl8!I##YBaUVT**bqxpuYa!QGm?Tl6BpCsK5Q>M2w-dannKb#id2MbbOhWVq z@ZfwdqglbI#&(r9L2LGW>|TrO+&8Yq*OfK9N0PV`j}YNq%!FOq`Y$B7gh9Mt*JJ(X z9JaH%sgpH6)Urqw>d9a@?c(s@uj)t{LEs^Dw!InO_xjdQLWeIcsWWgSsadv$9S^O0 zlo%cVSJPtM>TBUlli2qh%HY0wF^!1zZRw`-MefQ^V>7nQD*>!2B?tXR)2Y`uXHtP% zPCi}(bWl_+B%eq)FBIDj>kE88wU1S((*H=b9%>g9S5rWH_zE4DLBN_1^^&1oS)XOi z^gZi+Yq#6s2l2u!-m*OXyME;Ql_^b&I~?kB(f@uB(H9FxIfgk?%(;g5W2qt?Y!Y5P+qZc_JW_>$inNfNoQ?qRt0I3=bjP_?cxE z=>HYILY^J_sg=lb|BNt;ovC+5&+sF{+pBH#=)Q`lgs>o!Moj;7^oPsd5yVazq-zD< zG$f{F4T~1gM1)D}a?d__GBOs8I8a>k+rar*HVdOgC##5ty*HiQ{4G(9o(U~byS)5x zN=oxjTHIe6@yrvO;Fx6#;8@kJvAaFA+dMxAO_)wv3e8xe4x)M&W8Z_LQFcG*9EV#oFmY=k>kEUK&4ws zwPmks4Fk$0c9`2$okNIDtKqtOHhSm_6pGt2<}YTz8uQeUh$0IOc!Iv#G6y}LZ-&8| zuZLW|Lr%eztDRD;kU@>ap3uH;?@C87Xh9EWC4wCRfYe14dzWabirxdR1cHWuW?tFHyg2~wJCs9F)Iw}NJP_Uu- z#N&+FU}B&_;da^^NozO8}ez&83(^ZYyuf| zsMzQIP2#QcuA^xEiErwpj`Ps1DVX5*uh$P<{*C1(>(vV!)3>g+h!U>KZ1iZbzq=eK z{1|`oY$=!D`Q}l$r`;t^)_TYNq6L3PlIg{(Wzp9mpF0c0=4xpwgVgJA+?xRS&k#nN z^d!^#7fY;?AbiXa1?p&uuwoaD4a=NF$0A&^$15_L zL?ym4_xQez98YUhDxGI4C6e^8%@MCEbc$A731@&|rYmb2P5uEmQSIV{AF zk591jWWZY~1ux4aWN#%3^+K=qH&;9ygp1u6Zf|H)`KBeAi@~Gg-!~~ZG|fctcUncj z4}0DX)~Vf0QdC)!{Z7mimt+dMiQPDqR1*D!TYuryiBdpg^Q?fPWQputd%!J47=~LA zu=n>(A9^upVAap<{_p=O{103IfAT-1IFr8t9|4z{ zFKbTTt4@9a1%wo9gwE(CYv{O&E{NKUj>ME=OD)PerIZ`8b>C&{l8(}<@$_^l9hDY& z9hH%lgCoEwxSVUFPoD}-TOUO~d)EuxZol+4T)yp)V8n{ujxr8XJ{t#+H+UcVT|WAK zyyVzwEBj{`K^Nmc2qa}s;lcVs^Cpgy(U}^a0Y~KCzv1{v=z4jenC}s%Cc9*E$}}TJJe%eQk4VSM%!s>+<4|~QGas3 z2Q&*uVN^W~1wJ;9MZu*@;oJ-H=b77~U?3-gfosp{{7eUmKzWxRpBV92$hUx}vb@tI z2MsIxV(^d*4=DBr#?Z?iH$doNL{Vk+ zO!%6;-ee;8XfGofFP_CnIYfMw%V+lx(&g9U#v1+2)6e~bEXM-HV%BeHoCH5v|Fc3d z3p@__XH=9DAy~UnBL=Yq!=`S7v5T9DM_2lF2%hYqL-2sMWDgSHL!}jT3mA7QP)nYXqVx+Y1-Wnq-3?ph1%zijYnoF=r6*3jr zMps6(SjPP)TnN>h7^^X*F*lb^eW3}S%|%mVM4K++aTNO2)~sp9cq|^tnx8-FYTen0 zeB{uSs~*(Dqoa;-x)!$aF$Kto4YyL3Y6#SpqHJf=fDL;KH(?ZTbmX8hQ28m7S+|fGHRU!! zLseNx1G0}D9wXDs7R(XwnaHHu>q=A|Z5FJ86kbBaSf|IDFz*2Cv(pI5Nw>jV(CrL7 zKm6sAnJ5-1fA!NRa&8q%#?YY1bU$@Fy!-~wtBiWMOi(9mN-c4ipC2{kJ1w`ysuyP( z6%mTHs4+YxW!b{jfN@BP%^D*yy$2o6Zc+q-w@J9HY-DWXWdFDaZWQ376;7eoWaLZa z>;04;=}n9eT22=nK>!6x)mn!oIWB$Es=FE+5m09d{(_Daoh}2#-J>0AECN_rO|B(6 zq7-H|a@Up&jMuCZ-d9UVlJPzLgZjmYhaiCLdVN0=oMewoCDwO&9=AN6YI`ommB2$| zbkrHqiqh5OtB#CiI`VLT%jG7H0y)s+UE$;;U`d|}7ZlozvX+7Af6b!}by0C+_K?*S zInI1hzH1vRazZYqLW`RYY;L40UGbuzMxko*)+&G4kA{lC(loXMV3YE==CVu@yr@;F zSx=Pyl+uJ?0+mCb28E(fXw#~Po0o_6@>3repy70vB1F);8F_w1GNWWlI70Ukmeej4>XNn!Avz z#kWx0ILEc_W(=`&E(texH+4UFX+2!!g3Vce9idQGt)~GlgX$!SRj4Bk9NZYaA2vZ> zP*U9;a6!X?RC+Q!X0s?dYdwBx5cNA$%Ipal6n#Gksp$8o;8x8UX4F;7CE0$>4rFpwPU!0ZbG126;jOBc|p4InMq zi2sNMrUNnSCHzeNMr(y7>c4|uYc?mBRu~(=Ab<6oOtqFvgQ#jbJVL`BZH)ud4Tls{ zJ9wKn6(WaEX*Ytaqj-cE@k2I$V?&3Ar~TUywZHodaj6y6FZ4p<-By`Hx2HS7>hgH~ z{xDkhq_2U~p@jy|l8PKpS5rFu0w2Qdce=meWH8$?8TC|i^BAGQBK#JRkK#c>o>_IRP+N(>KGD zzlNi=+ipouvX}o?@tcWC&aT!nlN5y z@v*r<;QQHYb`DKus-MFEpbSmmLu0#S*40Yg`H*TAa50@=*ea!{ zi$@tv$55xpq#D--5P9xV^*C9ag)+y1#HpxTLyt#gY07}(h<6ieaP0(=q4uk8<$C?}>F=gb!KmPl}N|j3-+}J13^VpS4=-upcdz{IeOT zrKxeRm3nBnOjtcN#vrIO}8$SB;$kBNtKmw`L|g9;TWgoLE9`y+42)`ieh zH%fLsGf5nnBZBbmD|kpt(rm_ms=>lY-InS>-TJVk0~Z%vRm2G_M5OFfG!48t=D2F4 zr{m|)vpVJqCrG-S$;oDRsg%Tfs1kaT6(vq{M|@HhO)ZP2Zd!hvGxg}t2C^c{ve+0~ z9jXQ7nRwglQl3Fayz*%#&!yV%D363{I*U)+XDQ!$WpYIyaqHT_1U+>B>ZFsmpnAG$ zaM>qvW_o&sjViNpv2?H$@brhAYBl#dMc*^s<;u&)4(_`#u;rdiFpq$sWL=;>Y|NZ6YlhPnp)k z--Li0R6wi%zhY>mWD=!=V$`3QenizeE5`uQk3M!G5lHWGfoMRJ)ogp$skN?p7UOxOi1 zf5xL(7k$60>1y)4^%yRp>NFxaO`jgI<7XS`5n0(wcKzs*=?53fG9@*S?oXV>J1$S4 z3cb!7cw2YG`}y}!HN?FEQJlPYw!-Gueav@bW| zkEsm`yjT44MH3&)wmITN`E-)r2VJxU%qw_xJ$?A?m#g=L&h5=`qWRdso{U>lOCJHo z#YT)SYlvFSbCdU96V$w%J5aB$Ys^9U1X;1%-M#m2k>4+@f9qj3Dv$D+BMR7Kqg?%$ z1!XN%aE}PX$k|k-iq1xTAf!GQF^|uQJpzjkr-8Am*?wZEkA-F?u_uvk}8h3Yh2_#qu?k>UI-Q6Ab+1;6| z*}0wbo;~j$P<2stO3tUg^>a=cgGKHe6!A5~Q@e)$T7F}#Jb3gkP!uCq{Q&`3jF^B$ zw}X2GO!@4f!3J3XZ~@Mw zIdcCx&HV9H^=Mp&bskRV^0cA6(e1d|=C>f5Ql4u)4&^J131EeC>hei;-xRAIeT9Q{ ze!AleP#d$U=5g{M#*i8~Bqr-zu0zMeS_a1DlD6zoL}IggV^LvwueH4E4qa-guY8mr z8V+S{kLWm%zdiL&Wx>p?4Yq;N=tC*qwYJmoF~w?`FPQa3Da&@liG)%Z)^KIJ)!-27r{*!#WMKh?Nw zh##KFHY8wXJBx##rlWmqGE~_s|LB)$RIAMvhjU(LwCmJ~>sw>+j7-k~EwL#7Ae;?X zu+vW#%}>H=>g zk*KRuS!lZdl*y(+JTryOth*H3Il+mFno|mE^O-nnzR}fe4=uE8&q@EiVnY&K_EKb4z(_Q z2t@ZsrKgsnXxV+!W;>Y>34`g)eV1?6=)5*Ha%iB!)4U%vH6$9Q!{F$;Gta!I zPG~xYlWIeDGNYD5+&L!~YvKX%>!NMR7L7q8KIdJv>tBDUVnsezIt&@dajx-{Kk&ZE zpY_M+zy2rh(?ipxQ9Gzmx3mS{>41~tx<`zm;6Me1=SnehP77QLlINHC6+cLh9#I#` zO!}GrISB1(FX32*B4l85)@~9jfjK+hG%fnnYwSqDcey6O9eJe5k_7R79ss&$iEA4g)TE>?c@cHmR}gO+pjs23sui z^00@F95-FPRS`DmCQ^YEqLr-Z&3y6qEN`9;tqiNtjP0T$VEQhh-l+n@iR@;1*P2OK zwH~y;UQ^Wg+(4770~-9dGZx>b>6e^)Y4(K|1G8cWJsfAc%f#o%5OV<_;9 zp(NnJhmhXF8hQG7kGqFQDNNal9}z2yFNLtLOEMIjpEY;v_)Q8LQ7{Vec_ewHLf2PM zQ;|Y5Vg*p0@D_tB`8aB63bS6#LL33|%=4&1#9>9p#)!9|rwsb7>6;<1MwlvHDZYFu z57VRjx4CEOaOJqJJ(t$AE<&@Ifz{SSR{PWA)l>z~0E)yDU6Q!L!UV3T{88hxsE=jh z=hik*c&&m)EN0a6NMC5?_2uDU*e4Z_|3^qlJ@%cI>$s#!Zg)l`b>I7SW8SIw^f13c zH1l+CBI_XbyublwGrP+7TQLVMrsOmOJ{!VR=+d<%qEzvFyPuqF6h8|9K_Ga{K!8f} zh`Fw+DFY2=l)%3}weN_+u*Uyz^@l4fGH579pT!Ho(2zynPECL=&dzQQVo4h?0uKI) zq3;t=jc=S`njz)#-|^G`ivG*-f3E%mClCAon*U_`Z~y%-;=ee6|LMOz3E!-|KRXU@ z3?BWh(k<}dk&uSnv4EHgDG3>p60ER)uVUh!BFIVt%|$g!YN zOlwVvP$-LnKy4C;Zmgq?i~G>K@z`cGu`lH3b>Qpk@5_^_ggGRf3{7#kCv zz#qb)Fyx2@c_(J5U+p#|(g7l5&!OJfYas2eQqO}Y`3J2J&mny}6=}~gN zRA!-boRX+SW7@E2xN_S^hbsKYJgPlH-E6+j66@df5u0`Jyvp?5w#qk9uBP%8N-DJI z`09j^Q!^0V4Wa$#0dIkPZ#~US8H`OPq`@Scp#*c<&CY=pGYj9FJ(IJG-RVe6z3UI0 zTg~!{rq1S5?u++1QPoM-TWc4vawzy9jGtL&D&pZlcTN)q{mQ$LAqW9|XB>p4JtIb$ zI%r27xE;xdoRi<%f5$8s_`OC%d-ezgbeY=%ZqKOoJ?TI7QF>nhG3zz`=F;B0u~vUA za+eHJ+EO*r3O-%%*v{IwuekCtk&Tp`2{VyT!0Y&FLcS)C2b}LA$DMTSA52BUkT1K| z-K2jY6%NhR`J%CYy2!cdo~%Mfqu}{Kwj%T`4NB}GPSI0PV{@UUv-PLc?7NuTKgWS^ z2mRQ=6***Osc9bKvh>Vad$`6DB*|_)^iM>PPktpLKQ@UXmw&tMIwiBwQp8Z6K#(hy znTm#HQ>ngV873M=Lp-lJ4TAQH>+S2w3jbxL{r83TK)HX8wmn0R=YceV9YcfYvRTNw zBjb{enFPiX84p~fa;DalQ8*;-?T42l>(PnR&iehPC77NVjrmYdQq$D*KYrYCX&U(O zr~O`0TVIMXc4rZGUWK*Jit7tb2HSU+9V*TSnE-AcH4-Z+w`O5D4MGuB%cl5b%I%RA z2MQ1aAHtvnNl~)ULtUYvba8F*czWs;d@p}$VIWOX2yz9wzB{%*{n(rPR^GJ8d<2l6 zKbY72%d!Yt^&K!DpLc=kB}Cf(!-cpEgbjcd!Qwzy%Fx>DjGY(OfOfi@!IqI1@9i0C z^q6HRzaD$Hn*N3d(b6iYkn3s9sE2F>BG_p!1l@;hFT$yjD>O&g+X%K3y0wu5q8K)? zDt_Ku3zIQ2LLcc)#S~kWn`mQ36*(;@qB^}-K5NhGgfrDyq2=}|@FHlAs$ujmOR0C$ zb^X(e{j-ZfEW{D(Eg59w8Ua#;7>7P8_|PFM@-B(QWGL)Xay#SdMPn8`zX=%zKtbXT zRv4*gX)TKwJamQ{*9S;6p55m(y_{(d7P*93Yy{9P50`H}g3odTQ7r98paVn6#*!a?+$hUbBbL6j) ztQo79+@t{8jC$h7+*ku>$uRAN7b^|$IKntSsCj)sWpYpLjGUz^^s>F^R?Hy?A+c<@ zG@>+_<>>tU&a@P1?A>F$>`fjnyjxKUvn~rPvJgZVLsMa5c{A3;uU6_f4u+eu)Lyl& zpEmz$(7F#@3nJS$;=ma(q2Rz;w!tEhs5SHP7QA*Ebhebz2Q3<^zUXF)jeaBszF}LA zEJF2tYqbh5q1%bo^!hXeMP9GY!h$J$;7ddZ?Gwe_TaNLnF|(6)CHvqG$b3Q*s?4It z!%pT{zp)^g15aG0ltpIi5gicJ(K1uhcR9`5DUY>vwV~N`HlPk0hpa@dl;`xGg=%+} z7k;ZwfgJO1Mwj#`E{IrKg?KP2HlAHP!fXa$rJ9}b=L;3Ng?2?TqU!9y>pLi6D*((* zQu^2Ks8Y8w-1zr)oxu%_aYmBzUH`KVuySkAJ-7LNh4t-r(#J#xQyeA)d-yx*;LZb@ z(z79X@Mt1;m!OCgpZ4Z_2v>BLGtI-^2Ox(ipNXmHxije<3!^tAvoW@_kb&8@M#9Go zr**}4gv07~AsN*SKs1VJjO8@4#qdFK+-fKG%~+$Cm&hm*#tnus<5&$L^%44Kk016- zL%|W_5|JVi)vPLQK?^OUaGF3=UtifA0b^pv*+4GqUg5RvC6I z>E-|~>Mz^jky)m|UItliN-aQBmk?zk%fM9G*xYf$J?C)PIoZy;@guSgZ>1Jr zo;y!26iS4eq8W}SffBR5bwYHM0F9pH{)Q5yR61~dYt53TBw>x%`QFXlz^xHzIpO$ z*|4WEH@359T-Nv20kklak(>|i@mmE#RlSSCecS(vF~ zw7b|vAh4Kc3dyb>9mFvA$J;UR}%(n_&lK5_k-whNBsx>R~_Gp_)9=;e7%@r_mwNTn^> znmtrwCB)!b5BB#Z`rJTT&>>=e$AJ4!?&@=e+_7L33N5Mo7 z7>c^*+y|E-prX(mnx6@l|5^WT(t3GFTud*xt}2Q9o9QUie6>!8trEC~&X5J6r=4Q< z$VcvE=M$BYvHW$%BQnyu{*^PW|M)gpri=v?Bupwty(8PexmfV06jeAM?hU5ph!FR8 zV(->4XKx}1#M@Nxr-O9-K2@?TTy~sV=m*{616DAeF#-3%WR-+Ks%m_Z>(M@enG+j= z4l5kk?1JVQC@I#|q(Ec>%6Lt)<?NB3afCAFCs+Oh-Frvt0YuX^e@ z`#Gv-LT>EpJ&0IW+2X?t%gC9_;l$V!5al=vmkgy(vMwi{#$O$XVqJKQj~k+JxuaZ6 zcw5==g5iDdRt2_V@KV9U2EklkITO1#KL-rjzjjx-{%6T=#Mu+2Z+|!n58_DE-4IJ% z*-!g6ZBU2hFFZGUt<1150_wD}k#cc<$S&cy9p7mv;b!kuS8 zJodVQ+&5*fja^u1pNpitq_J3D{JCL@)Njv1mqk-kSN}S9@iQ|H-my7)5T`5^Vt(7f zJG~zwCDq~Cg+FU>|I!}b@*aHL40n3F0}t8Sx(Ye?9m-KsKxlHuc?AR$8T7n=_}#A1 zAPeWo?Mk;jP~j@O=-245lL?LSU(tJ~rEpIo9Q4YbHQQ6^{v^tY?5{m7rK)AFI`a%g zCJnnx$wZ)}!e_68E=B*nw(D~=ngIh7jNLYp5_zuoM-&?H#fv$W2P*OG;&<#kvN3B? zuN(cStlLp9GnR_MF-_)~1aFq;DCaiXkL$!o2jd<8`x&+$!rvNYvGiXJ6lNHNu>LLR zP2^PfJ4Jcu`2|xod+#E4USF?P4`8(!^_*OUF8#P?hfS3s$jHbFRU>~zeB@|62@5Ua z#V5=(|C!5;Y_6~fBfq@tgl*L6C{P(ORai%Gc76^`tQC=ZsqR{fLj&<4*Mh0XZ1AQw zm_sEK30|)u9%{7JDk!Z+j1PDPXv{>ytW7WNwxJovDW#_BeZx3N0ArzYKweG|=jP^& zBYO8wE|fY&u%f6kWt@8rmNsItxtXnG1Ooivr@fNa`R$jh5pkxlLpxZ8^qJXvy#B7QvWq$oAXbHZM334)YivvXAaMa~sj zVQFQ$4cznHhw~iCJHE`K&z3TB7kT6)NKwW6sXYxA6xgy(u^+3G8^QL(z!s0IJwCz4 zQyTiHD7Mj)tbI`gudQqAHD2dsm-GHDu>aHCShM?>?uUSkxl9?#nUEl4{R^2GbE4#A zC5?7l1BoOm&FUhUpDlW1nO@j;)zYnj8`6(2^a}ej8B=7tE%?;2aV9_f#yMJfpJzA{^???e)gN1bhOax(^1Stn;zCKVhHD(88l_!tU?ly~0J{ImVF zb9}Wa^yVsh)k?7Y`PkwoEi;uPCGSVlb~9&};wmkec@STb|2h@>i`IyDDqJ1Ju8q+> zQR9b+!j(G3l`3(jT*2@A-lkmm80+tKf?XjVj_#cyrxo~X5y|OBLz_UKRIS&+A2h@3W$yv+$Di_dkDN6jOpbJwDHyAA8tH z`@dI0!vq2NW(NAV#^g*8x;^9zP2?+GNlAHY~B z)ngI<+_p!~L;jMiU&<9d0kU(5vP(CY?I%1#$!|B~IE=9x85p9oR58*EtxEU2suTS4 zN$(;2$hc6W9|R}doT__FzES4}h`Y}Z4gM!8ePGOZ42Y|(AIkZeE$6UyltmucSNDTK zHMEFL$@DsoLON!?6bEKvC^P*U*eLB$OW9 zXz}MG4LG4WB1H+3L4pl_+JlQ3BbHZ*(C-!;o%4@JRn($@6e)g7T5JDXis0GaHgsPP z4IjD_(|34#5Hlm5NL>(;z$QYcOT%+UqJ^*`sLCCMX{BK*UZZ4esloY z`1Rg)OY@?y`Vg%!PswWNmD^-s=b5j&y3|VKJyGv!s!yb^2xhzjf>)WgNhz=AGM=9o zy;UQ8D|SJtj1p^h8EBT^;MG5}%HG)A0TVBDEqLMmi88Fsiy8hjK9L}s5EEJ3Qy97>7+RrM?bbK^6 zPtgOd?>mR5v$uegFS@i6@_}GFSna82;?VgsE_+H8!5JDuiUu=L8#7+;8E9!K!8iGb zt}O(Md)WMCpa_JlJb6)NohPKJDo`Uo??x}a+iEZ@z75LrauD(8@JcXaEuU1*UR$4* zzkbg@?}-=W$1m}bBaqVRZoYmV6?vx{e#$0g=xLX9F8L(xyh9V&V@zb(e8Zu?Yyp>c?qXsNnc4VzB5xn96;NDOhtj$^If^3QLsr6`=y=VQ1K@}Si;t^)=9J1dYeP-xnvqSo zL6%A2XKm+n6B?c2f0$2*B@VL9TB)wIap>r%Z?%z@((H4o5rGfw5VMFyrPvrH%XT$e zHz}l64AvKp(>8DYLYVjFY;9_1W$kjuX%dtETGygRU6F!M!-Ptz93k7X;D5*5Y*rL z`g&bepk~x07WJOt(DVlGy(+x?%8cw-3Pw6RM&#FG69=$?lh#*JVGPGZweC?7G%r5j zN5**o0PbgX8E5{S?*IRuD*m_r&-s6@{sTMv|406t`@jAFzli^%8~#uKx3T+w>ObpQ zk|p&Sl;GOd{TeT1W=Q+pA9cQRlT_ktPhNdm;+_cmRkfgEb%j2GQZx|65_6#ZT5KIX zClA0=BragHE58P|rR_?k*^R9H3QZc>=BDQA)7i{^+~{bMhC>UcFh@PFOzdx!ZYG?7 zJa)eNJ?32IxXL2_<`SN?+`9e0-vL6EZG!A}6R z3sP_VYPfN{HdG}dc;YVujw@(iji`)wA675%SNtyfMjrA=rnM<8q|7j88<|Zq#G#t? z8G9!!fhB4F=pgsSs;{klrWdLLc~CgivL{Ex1i<3Us%_4TMQYn3pKAng^eabfi zoDVpBx(9zZ{Z{t8f0J0O$Kh#oe;7RXLbRj~>by|W@2H1kdSO4ZlPAZB?qvsIiSA+s z!2wHET~CM8zYiZE@^bM9ui23%O8Ri-ogGEeCT;TbWE#k8e_TEFXes%B2Xfo3awMFc z1hje%WZ6pwDQ->AF9&8<>&2h)pitt(Q>q|xN%tlr>YmCI!cr19qFXD|)_HiNIjq$a z;*`hv4Gq>k1}F2T$M-fAJC8-JbE4eZ^txS2Uv_cU(F20cRt&oCy%x7LS66*rSp@R> zEBB$jwjL<%%x8utQk4>=K2YEvglDnc=(&Fg>^zM&axFEq!hJs6 zP{hP2c7ql582_$&+QwrwINH{yf%O0EPSkj!8oC>mHBCm*&S(oS#fNvcLI(mLNHax8 zt_d30j3QaHy^STNui3Z`w|4ajvbEfA^76e*Lwi@Isw)8aB#K9j>7sm7C9ocjrY2X(sv4BAD#MUL8Nm0qLqU-Nidub~Z>Rnb6k^;yu9!P=S<}cf#L}rN;MQ znu$QT;gQTt?Lz88;c7u(#5o}{c6jZ-g*`;SUok`LqmNq6+isEI?#NKqY?J?9?No2qu!gh+O46L!>p#{p7g13`@!07XE$zdfaqs;gmi zG;2Q~+t-4o*YFPOEu^+Ds~B}G3jfls27BV2&(1i%eVH_#H^xgoSUA;(z>h(~rbCR( z+)jw=IW*TA+_|a^)}ze@M@vYBllubA%Va%hND+dj$A#QSL~kMW4(=jS-mvCfDX52D*H2hx{h`wnNccbb2aB zVVY@Dac#J@Q4cfO>48lrUA{$Rj2u!Lh-57W6;M1Aix7Bd7KZ<2QSfZp9fh>jj7e<| zP*`~I1B?P~V2|+DW3X5^Mr+DF>}3{{g=54`nyn;tWwp6BaH`^UMYvZPAU=6g)ysDN12E`Hv({lt)!AXiG!rR$ij`p@ZBKSbcADron^R2(1-{n=W={FS=_knbZDF9pX zk)9i4AundW zVK{e;HY7BVo{Pq>|Hy;{LhCXq-6~jsz`~wK>?qE1=b5ZJaM{2gDDl600a3GfCczfj zf`z2?dt<0=DLt_Y@bdCcY9?hWV%BSCbNYB?Hk5=%gRb&i@oSwS5f)d3<3F~ULa&!8 z#di-|XW*i3lRFjgMk`)P?Hm{-Ps4r(h6)w@g|#mA616!J{X>K_QjWmxV0-G0P)>{C z^{Y~_y_GWY#w1%oLml3!51PSZS9C?DLw=tzI%Q}e4Q=yrxh+b{DldVbH4qKSYk80D z*o(NdNWztRh`-lwDsQV55M>cQ`#X(OoH-`)`Y*PaQ#*rYOb4J0X0JE-FAI{bOb+cW zObSW3y7qvxs>^r$%$$LA*}!Zsw8idrtdsGQM5WRv>@hAl&Ba5m1NuCxgVCiH8yfLG zYJ?J0cbl9})Yyv`I5sU;ReDWr`HF!uF2R>yVOYgj`lLR2a0G)LUn69}Pq-lPGCwgR zF=4n;90ljww2)B{w}P*eFSfLD{O(nxGx5_E^Tmo#NFf)rVh?9P?o_k2_nlso8h(mR zEOU)>$imar9&e}5ro)|QDUqq~lSU)k=dN8GyGkCwTn#}`+%^Y4v+U5y+1Cpgt{itQ z-05-aan@qOk+LIUH`oK+3Ijm&-_5q>r0webk5xQ{t+QR7 zf0{Pyij^j7hiT*zDa)3%Yh3xPT}+j(wMR0ZGP zR=ut!PFuWMoyRnn>MaS7SkHqWzvdTn-~`(f`l3-Z15;um>;5VQ|I?9J!zQZ;nj^;} z8rT%MW$g67{btwvogh*NyFe_Ax#eKeNFd^G)r%8{H|PsAeL=_=1JaUXVA?ukpT_SPr8gV!&e zyW~jO=(U>1r(|zW-tZK>bcZriVGLyf&kGpHZk|{CsaesHnZTO?M&d<1a9!eKfsC2@>sv**Fd6C{d<=2V)KC1iDolUX5Gm@NC!NE{P84{Jxqdk%fl_<|$0VN^`_H z+;jkV;dxQUJay(*dQHYc*a9{!hQP?7@F#!aqVHw zAY2egE{w%|_q*M(6#$$zh?1(d5d?Y)mO&M!^S@oiB@4-KUQEBR;fYez1I)yL z^?#n5)cl^4fBvh#FSF=F$Mxw^<9;|0ExO>XNV%b#G}BLj(s22cD!!?%bXZUJ)yx?` z4JO&5Tf6e8up#8mk9S{?G4!}x6d!K_s9R-Te>mdRdP+1cdGaHJR+1A4O^6PJXv@t^ z_8$6>=6uI^KCbgS9Hh;oj;XYu(XJX-nozXrB8#WX1KasziV|A(qkb}5A|yE+!n@&3$KrGi9LciMyIlwGIhxHm#T%|8#9tPw0ee zQv2%v-HlSj{iW{s?6@P#P8BGQ`CZ)HP(@cuXwsW`_Rr3sq#mpXCt_dyGcX7NT}y3< z$Z!`%`0WSDUo}8z=Gkhg>u$U8#a96&rvmh51VM4+Dm4*(EgFxIN(vFI{Oc~YCrtsQNv&pDtYXw;N*&v$gj$Yxo>UOE zrS#GtNew{SVu63kSqXqf=JJz%w>W(J?;P-dCI934KjnX59!@Uq|Hc1!{yYEsU&a4W z@BfGYWh4Bu*Yq9=*wppmwaRy$%-!rRu+B##Ee^$%Y(Sf0492MvltNB`M;JuyLAN1N z?B^^iQ(T?nv=7dm%fggt;Kb&NHO_7tJAkGu7Xgrvi34?R`LJP;(J46y(X_({1r(>JrH$x@lJ|!4CL|E2*UWuH$AoMFG z44;g@4+avcXiXHjv%Up?0lIyAR^scPJ#Kxwe8Y!@9Wu)NW_T658y`?|Fwo`bl%Z&w zEH0$skzLrC&ke&1?iA#tE+4vkWgJ`Nz^ui|+AAhyiE)aZJe2mvjO{~Rq=c{cL;ioWgsDs0wWcZE1FS_!LT}?E8ko%=zDf3AmRi0Hij@!d%djbQtM^CSi1*T0LyGK-h{=5N z)iT^AHn$P<0m~y6m(>o}oBGHPC)mFPuSPA=>sL>sY=EwGg?pKRKh4}PQO)IHJ^xRDZeyVYlqljIHF0nRW`%; zLXQdP&mxAC&LWIT-@68v03kL^x_tk-v9|d)*p?~X(wd(ymD5E&(j9M>9$cUH=4k!> zGu#@tUL&cuW^rA}+WoRo`Z7*MyR}~F2|%IETD8VijCiM#jd)DO$GChAMp%bEZ^h*tY zJ2~CHe}7hgM)yvLGV@+C>K^2_I9$mk>=AmB+8rME@(%gcN3`O~Y_7UJms}vey64+2 zG-RcVWGClS*jaq;+Cz;itM-MAT$axzkbu+rKZBO#nDq>$Fz8Wdc-?R)ZL85@f*HKL;UogGFC{XgIa5KNJj6Bw5W8*VxZ|1KHhHAM|?e#epyg-X61Y=9dvcV!|U zL1u*`p|4hRBIl-Gz%=^&31cQYc=HnS-O%Il)OXX;}G~8*|G=P;zQMl{KF%3`6R&dOte&X0ez;e33q>?}}0}+s_ zDNMVr!M{VE={GhTccsY|7vst&uBUPk-3i$?>_(^&DmChHw%@oB1Pn#)WOI}n#yH7e z5wNhK>9?T7d_ABluBpYyD$su>_5&bn5wd2|_vtQ>5uEfz8C2TpS#`TJj~4u=wN}go zeE-3xzg!2w+KvITVYLY~TcCMRMMpS-y8|XV)Ij)k0(C3&99_iet3wn~K(!(UmN07} zH7rhK^MFU2TpOpR}%;zjIiU22d5FI*XL zL68iBC8QOT{+c4nq?u3ri9dkSjJ<#d^;^>V?yOKFb_3I zfO)3lj2J8h^k`0aj1ZhkgunL9j0wRRYzRPd0BwcCkhw9C4|NU(C}#}CFNtz(6)Az< zpLHYyFJCsEaZY2W&jYMa;Y*&ehm=s*m~}vxh^zMVVT%+|FH}1v^d|CApqsVdC(0<$ z)BO}hiGtOFN0;e=5l6uXFhyu8EHxzOFsmK}N-u^&1kEP2>%HJ3N2&NtPDh4lyMenG zD9$L2yP!Mc19${w82c&G$&E{4eoZhg({}zg{Z!?m2gTxI9x^hqe3t7By(dagDH?Q|RGADqmla3JP5b7R2SsGy! zo_?AcS&QhJwqW@#RyuAp$i=2?=4c9X<_E*G+w3<7Dv0oS0+QKmKL zmZ!+Yf_|YFfbNRruAM?qpTt`Kah!e?1x_{tQxHSK^1GUVNRod=4mOpakA zp2b+EHZj>0u>FfICr}E|C@8b|*rGW4u`;o0;gjzEIxYp<=Da^v!d<%iYP?h4TMa>i z_b3kznfn3`sosnEOD?&$?{X}Z%jUaC-|>=_uFSpgyh3C#_OZ@`s|&M&I82~5=J+nr ze?rwjCKrmhDqIbpg^w_sH9IRSPZvR+6$@y&OrNS>T=S~MNJ3nK5tA9_{8^;fH{peP z0i9O~TcD_|IBi(WbCCI#n&dfPRI4Jz_$7j<;BI=98>&(ax~5$(=sTJ9INstr?-{Ib z-AbS0ykV_t0m)R+*HgsbAX#K;6U7u_YYG&63jRW(F(9?{4*$<55Eqh}8oH|Eqw0r251!Y+a6kMjPSf>Ye8-e{M?~( z5%NKL(R?LqVBiU4^;dWlbZdMYS^48THxYaa855g9tn+c60iGK>8TZ*J?hK~?utsvL zm)^r7G72z_Lzzk}=WyyPL8*|E7h?)Xh5gUTUG@5PM9ZhZANFPPYQ4wsKnKfiBsZlYzfR)IBPY^|C|OGmtIk`;1{);N^W$xYH@%#*BsX{XRUQ_+vHlVQGR0qqAHG$6T&R8y48wdDqxqh@dDpP{M$IT!bKcQ6 zwMH>?2HTwX?jy;tuNuSF34!};gWalo1gV9nKa!Mfl|@@ZzWGeoi=B&g3}H=m|31Gv zx$I;5F&*>y zu###D7*(^qI5NN#7zHBo~p<2KvKji)h&lJal4t_mN#~QZ_EMWt==+`$YVq z7><9@_1}rx9^UBW@v6T4GHbt^oF(48#sqxAg(Z0z1csCF{r{V#{!PwETv;4p}cdH5~(1EOe6a28fh$EbEfD5@6|N%TRg} zFvDgjP^P-rIZ;&TFOUiF`9<*%p%tx+%V>i2W&psz1SnV_ZFD46J8dJ)a*~D4*zD?s zzjDCiT2(s_rcD`@fQOplLH29=`}On3f@?MYA@OIv$c!!4)+6lO2IRwbv(0@>@zM8e zW%c5H5aqJ@vyRBq?{0N*{W|fBL)(7erFPS8UhnAwWP`~A#lG`;vTIpOL8zmW<5kp1 z>t#ZdBva(<^xxXTX6DD({Q9y`u-`dcoH>&yL&H@ud9+<403Hhx-peA8sh zfBLQ^{q30kAVIc?LTRhA2*L)73h`mpUko+VyV57R+UGQ0w3@MJJ0|KA5Lx=n;xt}= zc=WALP=52%VuKxU>Cb`u82aM;2R0uZK<_KDzoXGLYaf_6jPpM-}=F7 zKDe#x4lcib7~6R3iLD`k4y$Q9C0likd~JpA-0Le(0+9t%%R`0B_zmrX9Q)W=I8V4Z zzia+DsZ}6}+lBa$Qo|0j8xwKSuu5;#V~e)Tbt5R~cD+}BNp%_V;g1sAOO_3a|B4`q zaYcIDZGcBA#-9ekt4wB|MK445C5OT^yAnh~zOYDlg9SILx7fY5ea6mwkaitJKO^^) zg9Odk4fz|rAiGQ8_hBBw68@e=Xs_@s16H{bn@W(=1ShnQfrTO{&1F!|EM z#=ANVgYEptpfafq*kMz+FXRqjXMN~z938({s*b9UW3}T>lXLJzr0@M{>jYJp993w& zhiR2xqD+HGy6C+0yPI~}uCi$&Wv%Gq-w&=6o@eL-{~hSnceJdLu3R~M|6-mnrn*v| zG{vbXX_zEAgy*`kOG-ROYph=4+hK?^-K2n(cM9dpC-}Hcf*L(mF@LAbV~I*+0(%wh zAUb(<{=8xOV6t*m?KoMU__&=cE6JtEDfn~-l#?{F^9r*O!$YaTjT7L&_mtn#c?wwF z2OA)utb0H8&u+ealYjXWtqUa4bNFJhiWT2*sJ{4`IC=Po!Z&0qJCP11v57>R^2L9A zQF5q>MS@w3;%(;-fj3&MAnbbYG}ff>jpy%Qcz+Sp#%I0gp6qT;Obbz-?FdKE4RKFd zuv`ToXab!!;)_JQ*S!?P0ylzot0AX=H5^#@(BeHBXl6XHeJPv&-G~oMl>^d|3Z6aM z(elkhUYzgU>v_vwYH7RCt=JwFMo>BpSmXxTWbpvF0Y;um!LfC41^A|quA0N5^uAeqOzV*KFcMg8b#`MHKEvd>5cgOyDJDBhx+LTFH@b5uP z6Zitl*u}MawS8R3HTWkZXFZ;M%@R5D?HF^JP<;bW;nzwlcjJiPXqDmx8et*WAzvm{uQ;XyMUPT=7_eYnV87tw3BRTOEv$^_M z*?iRKe$i1TBMdsyYCG!gv&~h335P^$`8uhBQk;qDAI40R0=4=97tte0eXjs-gOF3G z4j8l79c5w5taw{E#}+(e<|X0d*MW4At0Ti~HitP>HremOnNegon&j0ORJu6G%9f&c z)GQ`Y$0Yr$<|5GFNMi@D}z_I zE$by5_>zHSY@cqhk{9E}rr5Z7=1fERp{-_?%f{%PCW=n&Y}2^ZPAUnU&fLC`P3S$y zsL&*&Gf$cMG|%IDfJa5mkXDenY9pftik3hi5`ds`3l5rOWM+9gd-@+_qUoVpyj~tH zr*`>0UVhtLGx&JF`0{dOMoPSqy1AJmAK0QJ7tmJT={>zumFMoHOuOihv*Gr77_Nb+ zWJj^LF^Za3m{tzf|u=x^|v?P`&xPzh}yRW}3VECTLrv$f@j(muI<@9?^N z9__(^;?^@qU`l)+XE(kl?W(8DUV1NVPHLk>S3j&M`)kJ-JttU4P7)v8$sb=LBfi&R zYx{?ztc*s5vf+n2-wKce8N+;h$<;j4qK1XRaB}*hp4; z{uwBT#fu$kw^Zo02pEx8-nlzf)u>!bi3VY5q94E5dH@Lm>Qk)(28Z(bKa2Zm3-^!0 z2;ACafYvRnbs9!cKVF>-n^pCpoLbxiuY$~;g?ouFH`_ifuj)UEk{27U;$Tk3OQ_O_ zXf77e$;})L$Ro*`*2aq&SdZ+(Gcqz7AM^zV^`m#ER!J>IDnH9lOJ6HK%|L=b5jD#^=y|Q4!54#Q;2D`S7+` zlY&L6b>5dYP;L+aV|LTyr&nrW zOB7|vdVD8sqlQ3P^wY53hbmwAn3+dOb&=k;CP_aFGE>u}Clv7b@!vFfS z!J>gd1oC^|7#LuN3!MJb5qZN#>2wG-FlsydLifk3#1vFNJ|nRp*&@5EE@4Q++J}p} zBM7|0=wg8!z@7SvyZ_xqCN$OsPbn!~GY^Ep4=q zeHLf|Hn=%L4M@8@zf_W2-zTH`h~yEvUK|FgMgsa^=5SYg`W(P?A@g_5x7y3s^mq=4Zl3{(csVFO^I_@2@8a7lyZZ|T z?)8!mC*7&jU*pCd&hpCH2jJh%`y&b zJAT?Rf+Lm6>x1dC8Tb(znrOzSLpKd1k@oXjmfuI&Z8BRynztJH2)Jxnxr2H-tgf3U zc*aieDBf55m3~p>S3ooi=Bg{z}^7@QP5*&91zf$+&pXM6wet!;b6N7fW`k4if=By6EHQl?HyB^SjAFM0d z3dp4nH8Hs(eImkp-*Hu~-HfqeO&UZOa4lJQc@rC(BIyOAtMD1QeLa9gc{)zilIZ2a zN6}!qCdrH)#?rEJ>k_y#WXD9}*HuSb-}|My-hqxFA84)mz%TA6 zXLUgrr(^Cl%D;-$bEOqLlg4W$r@vi+veyxpW&s%4K#2w%_8D3lm%VFQA|j@JbE;4` zJ$CF4*x!d-pWsvCnFyqT%cCdthfc(woJUk&^u^Ol|u zqhiC6a;OL3~`*}=*xA!_bfPsZMb)E8eXrv z8s#J=SwcZ3|Hc$Gfu!d>6rW%by@uM?O^rVxvrDnN)+0*Cz5B&you3&jf#nlma9>c# zMI{+(c9xMX5b^%Wi+rmazD^aK{~^i~xGpP~5$tFk7CARkeUqkNKa}v9@O&ACO#MWp zTPxItun4wI2`_-8B(NGfrVS^3*Y!zp-tfl-Q}0ID%rgU!hLV9@Ip;`2F@hk`mgo!3MUk7?2H17Adt*pu+XLOA)%~mdd~nkXC4B;zh4z>+X<`X=}TOx8-Zfi%{v2B{?sF)*XHjFcfXuYOGiSX0-x!p9R|JtpwBe- zI}ttR@jkirJrq=#i%~(Dd1Bp4_dwJ40&Dgy`)mN-1|k6Mh+1>TF)$dC4l=d|an9DR zY>*eK*wR|V2si`OX6`^;Hqi6U-x_frgdflcD<-*iWlc7}T<7Bmzuwl9RBPQik>+!{ zoaG>gyNp#KX~sg=LEGI)LoT4ATcIooAzzXcQa;mS%Qlx-0l2X5VCrD-F;4r+CbSAu z)zD&TciJ4i4QXO$t$2}+$G@)@zXW-IDQ5Gq^qIGtdO@^-sI(UeJJ;0^Dkth!Ol3q# zY0#;{sBy@Vv0nScxE`Vv7(jd50pFn@0VP}*sLl7r8OV*!+8N>>9l#nnyC@oU=C^~i z(M+D>X^p!P#Ob%EdOJ7Fa-$;$CCqm*LTB$QZKpDthU zrU-z#tKIOs=9RWj8asNMCOi_EP_Xh3L8b6tmao&*9}Av-91TXFdPP2VugypbGNzn7Z~rMTAzP#o$G8 z9|?*k?|9@yaUiUlBH34nMi;>j`01B=zY%i^6)xk?9W4d_=R){b=aRV0Ri7LZ;de4a zSO03Cd}a;1_WfpUxZXdX8gcVp*If8+dv7+n-X}|{K zxtP;|S8fSrjGli-{){Y#^_nAFzqP;jSHIsycnf$|7s>EzM&G+cmr~JG?(8`vUGQDj zn4Ieesxx2m<3aI|+Z%&yY&Ltfkc`Py&eduDF&J`b*jGKIhVTI&(gD9VIMPFZ zeEgUcJ<%>S9iu;Q$A`({AVi8|3m$k`#=EUikdQp8lPycqqV7PC-x zFe`UKOH~p`M@8pw8*(Jtf0X6p*mc0;oB;>w88FHe>r~a z6?FV7Gc#08?#T%UZ1L?3_TMz&;Nmj+?s|BJ%p!hz)^U@TkdROp0|P*(tk&AR-Xs-z z*>B}?>^K+ADBS3_m^iX}ct5CrbPu{LUs=JcrUPVUW!3e1od-mc1|B3^E!XQ4LMOpw z6qbC&Z1?}H?Y2D9N$O|1d@0PVx6s~00chKc`JuQ@y7D}p0Nc}XH2!IwJXc9vC|f+E zaKzBS-){_q8S5X&EdP5P#<)0csXsKr>?Dym|zACfHH$C{mO0z zmeIzeAiFg})+LV`&T@JALHuIirNdnf5Eb>ROi1abe4jnX(l zK}+Fm-iN1c93e)o({}wq@#yX)oEW9p42GNl8Gz=0*PZ+Rk^j=wTm9WZXr=UP6Tw@3 zq_HlM)g=@c%K;?r6OIcab^#|RXTx92YW}7A-Z$80D9GB{+Jj;?xA5Achu})WLMqFH z+O+AC#V~-)fOATK1t5w5>FD5Vdz<3-k}76eP9ug4=W1VVJbid^Ei5esyGx+yizJZ+ zy9MfsP@45skgErnpR}i9ha?OWCx0{iM8fz95QS&de5C%R&G%Hzx#b2<3J;k|ga@OC z2rMH3ni51qgGU3D6;k1BI1k2eM(OBt0kX37JD0Y)JZ;3q1>r_-coU8013)FSzrx~h zatciVqSbW@g>pL^U6u|nU#TaAbh!XHKbQ@AU)Su=lIg2pCGqRZ1{)h$;n`E8qoe*}`_dVD6j zdnJcD64A7ewgX3rd-Yo##cwwvz)5NV@shHjG!9?AuY_E!1EXl?W=tN(Q-(veJIV!8 zivS9ns<3s(?u&WM6wDVi7hJ%K@fea`G2x2sa*gieUWC4rp;%=LW$H~#Io#j#PiP7( zIqLeDp9ldtCa3u~2#R|0j(~GV-Jmb-j{D%$Utlm&mq@)3vs{GQ+Ag&=Q#_Nke!CtX7hm%0Q6s1%qumTlrr0a7R+Z65s6N^+*R_n%}ieLCPW$}+8 z1jlKf1iR9KXCY<1nTp-(X~SgbiKuDF5I5-1t7A4@G_?T^B)By)W&x(VzNbdtFK~tU zKu{d`a&KF*7_Xux#SO)3D#xeX9+1O3?`Q7qJ=Q2MY1&V{tC2V(f=(5!Q2-|^Xd_ZQ zQc+1bFChmptu!VT4m@K%H0x`3qumO4e0s^WPwR=`ntC0L_%7qVZ02!8PXUw3B%sKc z1O`Ee;|x;E)teO5UzrDeoT^(ui^!c4@!gfwXRTp_&R&^ zl1;+EX-KpltWyIt3b_BaJ^!Jyw76qePyBq}XeKSqo{6M`HN19OeC{W>u&5*g93HzN2%i08oPy#IvU_B> zzshu$-T~5^+}TvOdRaRMKli&|9)&-Ob(^WB0^6LnnOlhk|9T3yLrLRstk6QZltK%> zp@z&9$Y9l#(F8~(-L(9cN_xH$ykGF7x3JZ^K*)EqxZ3L0_w(}|jU9$6Xmv$Y(C^Qj zW)X?agEzRy$N+GFf${Nfg)WZW-mf=KS5Mc2s9*BG9Yd8X=L_r7HN{ph|KA!MFDODV*pRqA@rrOjV)-suab z+`m!%E=iJe&=O@clHFDizLm>P3svsx=S%XoG)TDZe|wL+^Mw)Tm5?e^AupHPY3pqw zjfr1#pCqMXK?^LJ^o~TvNucl;y3oLw7IfL3@739IRar7`vIZuM9+iHf%P^UN^;dj2 zGnV#UOO=*3jc#mo3kV3X`gGx)6Ndo}4SkhOC?$&)amk0zHi9TDToJv{XB_k)+xn$y z3@W;?(CtbE4HE^wG@dKU+w5-Dv1J@C{Le?Tm9R>6Hv)|DfkdSSNS`MHymke>S}?QL z019jQ`C(#QaCL=^C?XKpV`Y0LHp|a$3oSf)9!hF6o z$ubI}A`E1xa2=wrsY!dE(ZE1xC?f=(D2aiV!?M0=YXBHFQW;?so-w+;8Z~bPP zeE{z3HzLsHfyNNj;OJ)x7^)36&IzWb--Jmz0X2!Z0!LOahfapgMTO}k#yxjjG{ z0WO?zu_X1Z9eXbcPcgpTtaA@Ymf6L^D-n(nEkU$~!>Do`^z5$+!=Lh2Iba*bwIHrY z^?M{?NalO$g!<3(XVY1J!K&(NSn?bjULd?;z+_`a6@5mILLTf_TVoN1OgTUZgFA=5 zx#fN6-vM5AGTj_>I}AP5>6da2(%&xCWSlTD&5bBFRT#1_q<-i6Xa(0M|K3Y)jr_ zw*I$>5~blgMJ5>XB5y`6QD%#mG`R*tUuuk`xg&lQ+$YG*^0^NmvPCvIFQ7|}L`F|m z5D#Y(&c`mLPAO_gLwRSTQmIiz0%%$laEM(+V*T9-u@Na+Dae(O*~N-g5d`R@8M=z_ z#ku5PBJskd#vqdcW)|-ZV$F1mG&ljN2IxPWdCbaQhhd?B-bv^Opmu{g4Ng%OjOf%7 zccKwaKpc`)pA5UDoQ=RfJzNJ;!|y5+5x!i{5-e)LX}=N5kZbvEMNW9b@K67|@CEGT zq$vJ?5^+kdewBvgBcw=KBFGfYR;Y7+PLc@=!Ss5SO3NSukXLB|N5`dWn(3-;=Fem!d^7Ya21xjp|Mw{AgQILRnMSb;P$bP+&FSa zb3-gtbMiK7;2``GEKouO&bki@c?Jrn0Rk(~D+3^a1HjYe9RLw^`k+y+A;+>PXb|kK z2CNwviasb96+nVIA_R>E0w6LDCTM`b5S7bb42H18k{L1Y(Ln=@bCi3Jx=EM1W9e5P-mr&sSL6KD#_&f)xa~9k`_CAAk%X zMgc$z5~7|W0yQMkmqIiH;GBU%`48WAfYX?u=|p;HTn=X}9wcw2vfy;Q3~OT;9T3A3 zO)zpFRsjTz2aT@+WZL0H4ms9=!_{5c7!dD+U;3dqs0Ba4DS(1iQ%l;118WHMfgXhb zRc;vJ^TY}2zOiTy8jAG)^ex=eW7N0~Fb@CjFz4J3rP&YV3>bUjL=)haC|KYZ$QW6h zhEDrpx}&K!exB?0$aM|a;a&AFSU@HbGr35#eZt?-xe}w?#Q#K)vsT3dQ;vgJ>DE`!(P*ClZEQ;4D-}XWuZ05z+fj;( zbq{gB))W`Iee9rdE9=qs90jUiA0CvDb=_=*ft_;~v{zbV9>hwznJ?q z89^2fCPW!mw1v-DWITlUrCY={Z>TloTt^919A1rF=&(mGjjSI-y7nV<9-q)|<;7~9 zV&ZxTRcgplCcVDS_-8fe0710!V)P#fJn5W6!OyK!a6M3PM#dplyN1m9S2c4%eiti3 zHbcQ~E$^qn-wxlttoZrEUkm&MAouvy)cx|K3`z{ABM_w;= z+8BN;BX&k6+(fsJtWwPC#LtWyowqlmz1REDksrA!xsi|c%vleU5G!J|oZv@8zvshr zL*L!R+z8}iyS<4*RdpNgPOS;n-`NR(!`$E(#_>bwFhC)KoW z&fliFGdaO@XRm?U`erdebWTOh*)nPmy(Yd2yzf8{w#3YJg(e@w`u4wP%U}MUY4^Nq z`aS%9TNB(4yc(FB(`Gu4-9s{9<8SA|Jzc-^mW?SYsU$V)-d!e{#2*ya@+ z&`DzTv5$xZru1cJpFhrRzERdvCi)nW(;_k@M$aka-}2eVNc)cD8jKr* zqpZg_P9RlkrX#O*{IevC%F=gUz(;lCv38W?g?I^l68|Z?)##vdXMnK9yaICtun-#PB2OjR1=D%ro9(Kg>c6epvay}A2pML?vIS!k# zg#--nEt8-U54njd9?a_chSXK27Ndq3$L3xH!X_}t3_`lDq0E|Z$>QYygITS+%IKwW zf^LK^Cr$fx1)0$L#qF2 zvv0+~(|j2i5zADn*)mmZAy1AKmBDf{pPxTyEtz_pswsN1+2bViu##IN9y5PeC){&V zCSUJ64Es576T9oKl_q1&AIgL=*5X&c#b_S34hd%s3fssa`Jpw^6s81vZL>Q2=7EKD zMDd5|f0zyI^-AF~w5Dc2T6J$Ux$KIXXbyYpOlZ1F+E1p;+l1X2lS$%ca^*A=w>Z5w zb7rt4p35Pb&Cc^zpOZx^Dw<5Mkb=?d47N8gX)$}jS>f4VA@IRLf%_xDf{}NqrZ#vX zyw-g+SRLP!d1VXvL?^C zLI{|2pv}F_grcrzZ!S?wD}_jR=wkKbTRjQM#sFU-FESywVy~y`59J&g^KX0WNHPr` z;dVqQqISfRpDXP|XTn(`%ton_PZ7Q($f_r;v2e2c-QI6)=awDfPQ-MQR#kOF4q=LX zz^#T}!$10W|7Mk*nA|OeMMqQ8&0~y(nWpaP#fqz>Cs05ill_KhsKjBXsP^ye7RRwE zA5qtN+Mjqho_OsOR+Zg1Yx<8&Z*bGUecVo zj9B{&&4!~V3OUDNYVDO%-3U+x4_MAbo0tx$@4~kXSA?l?q3M-;vav%99@3Rh`7R@Z zFH43U%vH6GIE7p0)zf^r)KT@;K7UczQPZ1#bm2A8@p=V|kN{-rr3tZe9_`$EEnk1R zC|~{9BQ;$x19b}Qle8O^o+6EUPT?~ z;V2kdRik}7=R;1hDgVw5yk>iUz`{#G*k^l_D>JIpj7o}Qk8BSkHJN?M8h~$f}BOp zI86Kp3Oz_JL<_?Vi3SPX1ab$(T+o=t_-RzrP*?|RF`=pIYTDuZes*;naMT7ZXCQLR zc@ma+jm_gl!ZX#=Ci-SPiP7sIzQ`I>daE&>l#&D{W-G3&DXn6VP&aESOy0BF-t0Vf z%^Ts$$jOHb;)ferhbpb(8k6TML~q0asTFjK?-2z|Yc^^5!-2dFIfW zXfBr2m3=qUtF#smRS+9+OrPVj$+P-$jQ=~dzem-B)|pnh4U6l+_o$3&W_eVqyU=XG z-W;n?Lt;GC%bT&z+B${^ozT1j?mPJ$n0Q#ugAccYs-wX3{fMEyGP}daC;5srzWHUY zsLdR2C|C&ph)6k6AXK5};1ed#(i@n+rcJFgRzb40h)gsK*h~RSYW5;hsyOXSys*aF@Tl8MsPx?5 zW>bx~=D`c=+*-X-E^mv!Vz%bUpTDPu56cH9qu7fJ674tTxLRPRTb*=B?I($azz-0^ z;(RE%AP5U~spXRXbQ)vn;azh#QJ!>)d?#{PDJQoyppRKo|DHF;r?*bgC5ba^@-{tXkm$jJ`A;n^;j>iCb!QTUd^~=NEhu#;ZOCf z{wPltD#8T35}TXBZ+nz6trUYn|m#iJ3`&or~ynOF7!m1j=9aqka^r}kSR zt1QSaVrCq*0BUM6`SGfbW0|aro%VfPgwDI$miEV8)wk839Zw3;o6K<;)x>T~45#5z zATV)wST|k@UfA`4#qgY*k)TdnBHUD8{OzsVW@RO};?(p8kK5&u9gXD?*XU-QZ4I@e z+emda5x;j*=*wfk`}-U07PO8LVA*431uEM`mEzBmNYokeuV|n1~S<5i$0D z;+0V@ntFK-OAl=sImOR%f&Q;^P8B`pco?m<}z%X3tzga8`K{HnpPB~d| ztujoyljmpierXi_PB=aj5^aVfd&ITa^)F|xE`q(MpmG`rs6oJlP`NRl_F^CR_x=Zc z0f^BG*iY}icb$;O+ImlU=qELUjMeQZfruoB6Hz*pXZ3uiSYn%OB!sGFlJB=CePD6bng377$!3 zc}h~x-1(Yy(}-aO&NFuCJ7k}jWvv~RplbgH=jAFOr4*LnM!I)qDbbR}VK=7HEvw|{ zl-W|1qT(+z?Juy65r>YjRX8LsPulAJh?LTGAy#QXvB@hczSEzEpWGOcVBh3a2#>KT zKB1Y(=eR4w{2Coa$7Ow3IZxu_fM1SWjA^E2KQ-f{m1CQ}xPJ=xq>d?=zF#ZY}do{cZXa6m*w0Tid@2G#*DHK-A!r5d+4 zF=CU|S~2RSBd&eDm%YW3f+LlaWds#oOU$9$DPqWB%(9?c|7}ijr=ciG1KC8-*>12D zW9J!&Q3*ze==ipPkl})@a{rlLTQmM%!6OxFjWq(BQC7w@+F~KbiJe>~PGd+5nthl|c}_(XDzdRDpfl$x&StS=b3%|+2j_OIZe^}#9p zi4=M8eZ`Lg2G?<|WSkHaTYPh-Pn<}46AdmkS_yNyUqTKgnSEztmkK|iuYX)eRlY>N z{FfN?KdJxl{-^0b9IV`||NZ_y$A9TR|DWnVp#SJKZr20=;6(oS{r|;GAA6$1=TYIS zU%xHtFYfDzX+0abd1yTCWMpKsXFwY}MnsyJz;6I;n~{pXI>Y&hPwcL;_eV8Mwg zUW_)|3uOJl>Q6TX>u^Y2abE)qZof^JO?8SqN_u4T``W@)c>_}`sZcdI7dI!mk3EoU zD&J<)9-wjWTUheZu%A*Tu)ofyUaPsi#7x~T0m&V^p64c$sW~-_0dpe*Ly=Qx^o(5~ z=)#Md(B|WsD`;+mt+wwy{0h`yC|Uf8I*dR@sf+@MgbLNj^>@f?RHuRZbK56`huyd2rMj}i76T0 zL5Z*+2*r_UpxTpjL#lTjr6rnO>8k)e!Vs?%k}&WOM{}G&IUVa&9OvTEIg;0BoHbrVBr002 zM0QhlTeoq`s4i-+1R)m$Q8Z?sHC@F_a<&%NeuoKtW6j64^*W!Y$e@nEtC;sv>0;RQ zTE1g+2wE=c8G0rLZ)Pg*#Albi=Fox8lYQsNd;!&^q_T7~gE280mM_r-^^g0*Dj9Js z4_jMKvTiuRZsfj-7ldF{Ez=wF{HCZ_yz+!nB-J6a;$m_iL+uJ(fX>XvMQ*QfJr+5cpMg~1cAx` zhAraYnavTth8b4-swV_hW2m2*Z@-FX$Bs)Zx?l}3D$WoDPD%&LzLEjgY)rngVOScw z5C{`AO20%HbfSNEuw7l1KqEF$mzp_I$ivr>F?QYy_jRs?{{7&9m97tW{0B!}BRO*x z7@W=m4{q&l7+z$q1S6z8QcXfxs92ZKk&UUBh|HFmr^`Ytdv@SG9bmO#3hJ5P-5q_; zWYq9d=~dJ+tQRnkc=KqX{S0v-KOHIyp)i0Dvc%|J_ky@|DJp&*fQZ>L6F&h#-=X#( zr?AnrKc|t3j`uZdcyyu<*I?H#7XY7kIPixqDcE9a7^TmzbKmJ$qf>G50m%m{ELv@l zwrkAgwXc+DXu>XTRtLTgLB{S?o0VN@j;7EyM`4cz);m@ZNfo)KC?DZ{K(wmagEt*! zXJ)jxHNlbe{ct9tpA@MM|2L7r)94I8>Z5LCMiENrw^wNIWbVqnCgWT2<{F?^r8jTO zRzawC<&H-l#VB|1;P3*rQvl1q5OD1HXAC8eYFOz-$D9dy$mY@L*75Q3`J3AeQ0J!8 z@6yhc`Q_S`+5{Zs%GoV2(Yut`<-5gC=6+FT@+GgKMVP-;t+}RyP3NTn4 zv~MWpu08=Ee$C-=atWhRzU4j=5lKT_PQQ%3V;Y@6FWOK_OFt=1rq)~hm>ech@eg=! zD%Lxs;KDfO+@cy#!%#TNtIa6hjzh`e3#^x}JEF`xs$XbCA{C_o|4IgwAT0hqo_@{6 z`COhQhhywLb%Pv@MplZZRz$*k3B%zH}1Je`3=a+dC?&JBohcF-y>?Y9Zjbas}Ij+r-au> zQr~~^(`bWA5}OhVKw}?eHDjEIgMqX(CS@eVghN++ZQh8o#Ll8Wt_eII25C5C|=kY%`E8G8_|GC&X|BL_s7uo-X zPyTQGzjl%BrGTSPF!JatSrUpRnnV$0h>oRU;0)6kaya74#CQf?Uz5Zt2DeAmbr07q z)A&T!}1Z7^I$u zmzN&SW8+MwH}K8;&%w{RR;TS0z@hO7)sy(!-}_}w#|<65R!1hqY%XkJVc`Q1E==&K zQMd2U3|6xetLdSThl};~%qCRGZ1xF|4-^y>aNF^j>r1qXgVc6;UCP+m! zwB!!JL%9x{3`0XlCuh=YNrFHCH`mu_`uh4J&S@DLI#k2tA>+<~<&_Ks2nvw$) zKdTJ9U>KNa+^Ue=+}v?wIN&$je_zSXB|uRfIO7K`vQj8+9exm{_LD6dVV5i+A>lg7 z`E<4z*5ozjJcwh{Jc<$#uG0hV7a}<_VUuhTZiTaTG+KX-C<0!3$&`_3JsN@p-8k(rs)>n-og%DABt)W3S=73k3~qvYsuE!rq->mEJQvnl z!$Alj7IW|(xSGu7F7K>PGPd3!VhE${4mK*BDy)8uJO!vk1^C6e3(1>xdR|arY>AL5 zBzT-JQG+~cuCAtiB)Ht7Dgi1iGe9&1K=5k*Rv%lms*}uqCZ6WE>py?~azlJFPypd& zWAJDQHaz4Kl9IES8ax$4Cnr>!9Udv@lu`#Ke>B$J0q$_lZn_<&vvG;xMWuH#Z;a@Hju1DHLxq8%@CIyXGJU zjAN6A4ceFo{TMdjR~b1zJp6e$k^b$oVaHI=_RycK{8PY59)S5IKQ&b&niD#q&7j*? zb9`dr@cw++_2t2Vo}RvtTL7Qm(>}^39}$U&=lZy&rUun&Dkqs%Id5#e)v2_qN{)en zp`@lp!AC4GFz|VyQk_x(9-`N5IVpU#-CG}5S5u>bw$<%NTW{2@hW6Q@jZ8X$s1gvC zPzIfpmWJc@_wIB&5|wm3o7>4+AQ2==57$9^aCD@ln88B6#Q{KDcR=4~#(R0Z+%)@r z4tQc03^6rQL6ei0xA=H}yDC@APP29gaP$lYL&J{qHgP*`r5;b`PfVmU+we%|Nhb)E z1_s{jg>Q6t$k!RPQ~a~^jw)aUF##&%@UX&1*Y3SO-@3m2^`H?>X!=Z`pqocYBu2)l zNs~w_{BH7ZN(~~x0zBTXDy}{RJ%48qOpYd!y4^8JidWiB3kUqw5G^>y!o>}eFn!G~ z1pLb4w0oN?m4~@hPNxA_q}EwY=c%S03%zxB9FN2kR`FqBWB-i9XQ#mj18Dd-r4vbV zTLa&G6AI)UD*zlZraaeAx`MuUGMj@3J`cZjVN8yGWu8X-1j56^ql`g^XLC7FfDYkN zNd#t)Unq3NcD!=!(QbCWO`h&VzM z9Z-MR{cmWc(k{g#YT|%`hQvOU%}po$R>yAvFAt4Fto@Bg?84X9ilBmYY0p>&s-vmg z&LK1aoe)PZo5i@4R%Ex|BSP7jyWLSl{Z}KB_NK6i*jT1sJlp)8HkW-I$CUbZJq5iWyYh;WTQ5kL_W_2D+`Pg?$ca_GxYpj)snbn}~b^c#>I3k%D+ zb=-aMpGPWLZQeI~+GB`0;O1Qu|9MKd!76X!6pCu7TLf_mPR@I)V!%v_*~-6vqn@2g zhZ=AGcq+HpBm=%eQLOlAz=NRz^hDm`K9LV5iC zZv~CXZkjzY|E$xnBPf+_(oZY*3l#~OK#5GCip7{yx6OICb7)8+NWGgQ{Pz~YZSU*cs&fziTn`ZWYkbkK{iKR zjQCA1J%;ZZzCo^B@%aGpSzJ_wZUM^{7%r}=!m$7^2k8)xRv|s1MZ6F76&EbVZ!uq(1^%r$6#FNMZ86~R0Qb&wt#T!kDDVEyaljr zd4E*!JJj&3j-m@eiS^_)+{Km(a!vk&*O^EiF`v72Vi+&*GCy=uud80l15h)b#jO+4 z05Q==MzcbeBi`g^EO2yxzKiW!l&Rb7HUwrR%fL^R|JfN?Z zo#8_|S78(k`wL3Qg&~thl&Qw3n3+XiuE}P$9YFQOa$^y}9Wxt#1 z@8cpo1s|yJFu-o~Z(dwHPCdT~kxw+aNkpJkD|Cq~JCK2#%NbCW) zdw5K8D9(S79%*W7FnnW4`6-a9RDPvIh4D(jT0~dm+ODu@d!HVOLfmoHg_$&Qc-cT) zJ|8!l8LuA}4pgm92tHPss5`T^csz$$!c_tRH!u+VAYx-t&Evr)I#BhZ`!_tk#;X(QP(2 zX7s6n^3K3l&M+r%0Yy(QoRw<^hqE~w;!>-i%TAo>|69H53yYwmUNn;$GNX)&SQ|n* z8dekjoDT6iL0U#5A|vHFMCt67YJBego;$7l@SU`kqgJO%We+8!gvL!@cS(UPe_CX~ zj*PT1c8-!G+l#?YPjSR+DoZ5dWxM{}JbkHD&dz=A8>gX2iLI-x89qSwHS;kb5h}@% z|MP;$d%*3{BsU44e}-r8Jr3yi7h1hjQ}dh$ZQpXTp0EG0U_zSKMV`7%A6q_ zB*c`_3)w59Z|2v95P=NKb~Um%#spB5Pdm&>4rVr;c#(r!C#P6d>z-hOO7g{o0B1w zbjwb0Hs}I7ULQ0-J+rx4`}=7EW$k`^Vk}H5A2Dh!6n4dt*tI_8e5J+eilokgu0Z0s zkUTtISutoZwTdM#NkB5CPO~Y;M8<+Z8M4h2Qx^RL-=W22p2lEZp5*Cz zup2Hfz?^Dbqkh>*V&qYI92!fKe>`*C(n^M%4>u9GZf|XNAun;T59wS#;KymmeSdVQKyF8)dEI z-g1Do`(sO}QbRG;MHj>}DxP1ASP>L%AGG5uq^lL{z7HR4hZ}tV@F4a>QjBmq1<%cKo&8AmMwW)7`1YoG7DGSrPo?*CNT-cQE@# zh?e-tHsC0}0onZ;xw#kO!mUfF>E$!Y)~)I&=c<@u z%P3bW_7|W2+s!)w7KBToHR!nWpq&dD7eV0D)7u*@A^#+_L24kl%cI+^dy&9`weg*u@M!TCdcIchhJBd|FGuY-Ol(hV+qUhAGjS%ilRKa4*1g}K`|H%H@1DQAcCG5})xB3g{q*Y1 zsbx1v;z7&#Bf8ItUmh)C+{|5TJXMXNF`9*!o#}_fW`PG-#7~hf(5|CaMHEID#)4H6 zg%IF3ehDKCJT}94K3f~zEpU@Q!zv@`M~Mk{dMf*0Vq=ujc7-A>BQ8ceiZr~R44xH% zfYk@X7ROU|JDmJxt%h%w!c?%T%^G%S5LrYps8ux^99?~W_)yOXEH8Lwh~)r&tU(qk zGYcx@awG}~8o=&qodOR}P-OW5>Gk(!kyvbyfow$~FqB^`HLGI6x*ED1&k0x01`MET zPU>vKxwGZF`yk`gzGFPpjr4$rEB2Bk0hHG3R& z0G)6j8y-9oDN+?4yqW=jDYhQ{SVI|cl8K!S@TpfOHu>A(mKb2%-7Q!oPs}Muxy#*v zkciXAFh0F+DgP_Kq8vkLCFh(932|?w&A$#oLA>Bt0}bm2LCmwi{|ylyIO-U=0jLt4Ov^ zW?VM(ph+;;zdJAxSAy*?<#9sjZ>>8vkWp`)F4{I>aki~i+w@k1fdP9`-HE!(-lgDy zpL5Gy0RJ#tbzC*<<4)0TFhQ00Yg-4-b1O}xvynNPyFQcS6a#so3i9deL=^)A?MQUoxbxPUBwh= zaSVZ=z@t$JI?axI?7QRXPEHtz2Okz8o=*NZp@TtaK7pet=Xjrl`Lf})B}yv z25VENi&rZu!&yjGz~Eh0?upkqJt?6-eqd{`%}N#Q=?r?l69G$a6yQgaZ5whswqgD% z@;I{=EIwLJUr(G3G?S1zUS3521WMuAjpLQ33ZFr^Q+i|}okL7%gvB2})i`&1h z>Oj{JgHS|vXJKc@e|KsJr?tiGb8UXDezS$(?~A;kFaep|j!a0PKTaT$5Yk2ZXX?pK zNY@&g2aZJ0GSj8X-#2#Y66-r(iBoU4=J(%_lzGAfo2BTmci*y@1+SkZ@;ySSCJI+; zhpN8llS2j;K8srAKkWe0+!0kD6E%?XFp9W&i*;4^s$(bcOr3PIaNi4`aupF8_)N+J zT;TZ9q=#H(C~1rPXQD&^g@uLtZ_f>a;Jc6ll3)Q$;>!>(cTI z?SnFGbZxcDTldYP&LO<$1kmm>;!92;5yAMdb&K^ntMwQKJpaJrfO~zMSE9VA<{40P z@}Y`RkS8Hgk(Re^+5NgdUp25TM1(lr{-B1-7E48$JR5B$eY*pK zj^T9YuLdtyN+<$E$id*1wn;E<9U#oFVDkVb%qp@wK}wTCFT+RVLaJEek@3ciIqior z5(0YS!2rL+ih0*FHxjQVOIRT)PHKEAH8Ke|0cEfsi9X5>gE5xwZ1lkRT1&0!vveq2 zFN|!|6LVj+6u&&`zbS2US}=-sJYa0}J+Ogg#);T2soWMmm{QjWMz%vUGbN+|@FmwQ zY0cMLW<$tm%=m#-)U(V)fRuYV30^-fj2@`+7)lrsD!Ezq6d3Q*g4)>kDJ6uC4P0E| z5*}x#1YSE3j|3gN%Aw4U!BnwXe#20u2v9G4qCUp)_gLpGTgZY7FCeU{y#*CXu@=Hs z3Zbp0gFLhRYN=s&zrc&E`m;A-A+RFiVKyQHz_CMy8$~hrSBof4dTUNcNPl;0E3!v= zG-Z?_)_n!mFiv51{jzW8 zq``p8h~#4EJZ}i$_kP64xZ^9JEx2|)TdDRN##G1Hblb4aXVC5Fn(y&_^ZQZ+WbwHE zt%ZbyTzI)h)0qg!<+O2j!>zxk2TYrwm60pV-tIgHu z@+M_uv@3uR;%V`#T>xx0za0h;IX4YBYN-Vft_rr?$dW)^K@5fnfZ_6)1pJygDAu6#u3KW=k&&Tt%Fj`p*kC(%=yAt_a zLa&Eq^-<|IL6qC0*<9p}Lf`jIFvUtWdgW#-)k0rnwO@Q7PR>^A#S+<#9rqnyv$;HB z`JUSeT8Z-73{LwT%~reYwPx$Im&?wpA2v2s<+`05>;4T&ra|mhOCFti-Ci6`;^N}C zy8BQ8h7Ao3QPuyddADNq6CxxOv-AFmJSs7Q#cNcda^>@z28jisIk36fLG z>iV{kk&)@(6FkS*nb1WgC7-Y{lw@Q$P(AX|k{Ww_e#lJ!B;tGl`0Hz0M&{2KN+K(? z$yDfdcbK|E4PawottUU-pDz9gs5`w%QP;Dq>AdWS`DZlWYiwkpTmfGnqx;qCo1q~w zfKVrlJmg78t5BQKNumrxAW<3o`qu&wRGgiaolOw@C~ZzG6fz11=nGWP(z1$R=H^}_ zBPU-AzrGnIl7B092K;)j=Ha*4$q-;wdizoNk(`VnQ~<`-?fo?4eUxF2HJia|p8Kdn z8Sv|G`0}r-lOAf9IGQHNXgqc+vqrONDGMgwJsy)$2tbHiN!(-gDencR-DbK2&d0X* zm21k|yF}`ePOdSe$r+7mMHgs5M*_aO04(5&GUEAFd9OgT)HfvT+`yj#Yj;_oM#xE} z(MMOA>@&*G7Kmo1l?d@M#>}XBI z67W*RPxS{w+iKw>K+&5=6Y#EpvHHDx43O{qp#iT8f`jf8MdnW~E-Iy5cX!+gZEHx+ z<^K!pVEL^U@Xv!oQRrc;LNuZ@nk-PKm7SMW)ip(yrRIJq{*hA9(i9d;fX~%*KWbSM>-*e5=AL5yZe)+7Nrv3?|N6N2#b%ip zfu%bUWd`g+&D915oCs~nlf%3fTK4Y5tw<+T=UJ~*F{4xbs8iivDp#gX`-AX!rO@UyC@K}flELT^H|N4>-S2%-l`a&Sgpmr*lewSw`QKJ8J|k0 zX;cbj4o(6NC{rs62rM`pj>)h?Lb5@iW&Y8h>^ zT!flN=|P#oasVDb>0O{7zYzYBsQ=n>-`Oh65w?fb z`XLg+i*ohAg}~$~2P2Kf{QGiG@Q@|Ie3JdI4hG<8Ci{)Ixg&CX)zUhtqJwV-_DZME zl4#l(n8{(wl0+%*H{*=IzBQOctdnOv8hh@Di18fAy0yv2$_ST}ZS)>D3uYbe0Qmw0NFu1Clj%qE0kC$YdbT@Uts^mDBD!*= zG5W4<6wwIbXDU=Hcf-ETqFL)y^{M^@;4uS6+?fF&hTgzbR2&p4&4pkzcGF%|Z)|}}iy*@e;1fIPpkWuRX;RV>UEi`Q6t-YT{vd=47)hx1@&@Yg@ z;73#YVXAg?M?VUY`5!!hc+XeA=H8F_pt*!68~WEZQq+=?5FJF_xHFGuzb2Zci)ir zTL=I>Kkn2kniFkTO&F(Yg-7kEKTYiJ-O}|{@X7N?4*N;Cn z7!oj1UZ=LVG@Vi7>J>-G&*B$*Q1OW7;>XxLEM3*5*2k_k{8Tw}G?jZ_QPs4q1tzPM zl1h)F!{yZeA!6!0XtI#G^!_d;w)Arj`p)`Y7DTt|p5*FZ6+k60dK?*S8kpqaJe3Im zazJo7A5Doi)HStkd(kT7C4GG#oRBBv9T4joiGRaG|cGzE)b6*TQCROZcS>EPJj+a_MUZm7!)1@PC&y63(r^V z=vhR2cwhl0rpcSTuD;k@*nf!pp8pW?eD#`ost$amjlh&QVMFjpN~TyZEoYLAGC~0K zK%ilr>Cf~6XqeyrNh_m}L$j6|3#h*;ObxWOWYJ}bF%fWkXBiuK%W9NaUy(UJbnA^E zeS>a{N1}1v^65ZM@ds>aB@|X}4lxR=)u=EkPNEp>E1$`Y60!Je;;zFG?aGT@4-Ha& z7^Zsz$Wlv&N}MN^F=v)38&gVt`gGgvA_T=B$Bm?7`Oe47t4+@Zo>5rN7*M?4w|0rS z&2SL}n2#Od&>X~VP!w>In^XZSRIFLliyvtyTsFV!T$p|0P)Q|zc>gUgg~Rark}O(p za!e{IG4twBIx^XxnVgtVF)Ef*)auaebfYK6M)KIAefK049^Ngdl*gb@tyL^E4U_A= zESwb&{>j(kc^KKnTycwa7cF3O86~a;Zi3kU>(mLkDIDrert#ylZ9i80)|e>WYDIA& z8L3^`V!<3{x@19GwKBsiBg3iK=m{*vwxI5*QdU2cG|X@J4IRv*3VpY$BY^E0*|N0R z+c9BtgYl0QEi13j$@RYs%)NTO&FzBB_e+k8k6ijLIE4>!6*w0^b92 z2g#O58~v(G=W!~UYqH;1=hq;fhsEY6H@oB1o>KqDF{k*etjg&m)IKDg*o3st<0j?PThs1 zyL5@{c1&Y>O?|DNo%==eQ(@;QR7 zA%`Te$9dGP(S7!E({iyShQS?Bz}7|dCHrSd3NM=!TN)GK{=KcM;jtY0w^T@*aNMj< z7c>fXZr-Xsi>!zeX5~wOQ#gy{$(R0XfiDFP985Y|@mc0{V9>`I=jl`Aebi?XVL1{?n=C8PV5tjgDH#^*{M;vpqpgPdx@gpk%lZq4J1_Q5rV$ zxst15g5KpOrh2af1Rem&k~N|LN4si}#vl0{s@LA_%n)}xc%Ev~@I{m7(a^{?vz)yo zlf(6pP$d1%Wr(d~BKAN9O*IrKkU=#7qyfH;AA?4fXEZnf#b-S>9+PKh`Z~x;;bY7< z9RnJIScCZPqH6{A3Qb(zqp}0}ef&Wt#7Fu$OzO?(gh~1?TR<`c?ZR2KV_~N-0A~_# z!~_DqG|8Jo8d6^FBdpZ5Lz~z>@=|!GU;527H>zCjE(+jrj0Mn*9UM5{deMWNUN_Cq z;%MJX0 zws!Fd4Lx4MS+_bzVW$5+@^ZQ}piozS{m>gx@tL{L!-nSaF*Eg=yBEKf4zW(*-prZH z@DmLI*l{JfnN8Ed)|T}o&t68eVv6R&xZqR~&mw@>DjSh%ul4rmWUigT@@zo(IQcLr z-}$X!E6t(0^4gt0VPArvwnA37CI73Y_y5oOpUHn*{|_tY|K9)4_FwhC|1|wS{r{u? z|1cBQCRG*dr?~_{`uv;%ghZ;*niZ`@KAlK;ic%4V1um8*i3l_*Gb;j|oP!XGi7d_v zkeFnQK@AI1SQA2AK>-3)L5vO(Lky1td{K$(PJpw0JQqp^9`bcxR_^lYsdL9^+k3`) zhX3j8YU-SmUL8O0G5%nub?37)YX<{h)hg{JRps*%saCAi6dIDeCpNqT2Vf=RuGT8~ zop>+GVY^`Vc2el7R&OLOC$YT%DB~yR&P@M3fHloyFA8O%wI7y9e{2++&Femc$8Kdp zE|Xg2B?Fd+MOzPtN%K2s4fnBj+l)B@yjntx-FmYv!S`{^T;go2lN039i3#L#U)A+* zxiMZ@ZzDDve_*Zl`=M=}lxTr0@SLYwt+hd&Xf}N={V|=WCPe&DQ3K-#A=W=JQ3N3$yt=7f47*C?NO&R-DDct$$b&?=8S~r)SF|j{ouZSRSO%h1~dK zqWh*{)XGJZY3cN5=T4QD7`-(Py6to(rDmmCb(Qn+%u2Vn``JQqRI|<6LP0?R2Fc_` zG%o9T=T%Rmy1uV#=;hs;0YqN&kkEO9pLm8o{|ug?$Ltq#`~&pWe?R{LDt z4wrF@wxKG`MmLBk$lrnst6H<=cU9t6yp@=$i&jfz#N|ID;KQ}lI^AreVq;s<({ao( zUC&mULqZ@j`Mp~%w!1gn&VL(fx7sx`_B;>BH+PHe21h2Z`{k}tF7()DZ(L-w%jb5FuebF^OSSl4_rr-4U9kUF!SkbK z`>B1lQf>SB{^EAMD{TJy_H%w0^YT4Cb8wGHAJ z_lz#|r}#gx)DMM-w^YjozFVCiJ>{212i6)eWwY7lNHtmzz9udV!2|$S?sm08$;V#< z0=VSz2)G>jBx3NI>omZ3#n}T&#>dAkYr7xuCi0(6A;lG0YS}%~01yGBJage#|MJYK zllel)aU(>bJi327Of=y&GE2Kn-o*}qM&^IVkdTn@M|VIxCQZ-l^f3>C5WFjNP`aXFtX zJRTq(5*~{z>f4N$^%ye52t8?+}mx7#jxA5mO=6n>9qnDjrHK zx1gW+sO%S`Zk3@t>2$dH>rx#)5;Cs(y461E^D7kr-pT5R)p+Il!*CX@lmA zLojsMuYwd>^_gnUe-Ig*%FpyPb#GSSt%`Ia4;+BY=ix9EiAf9CZ4k=yk&+7Ea-QW^ zN!PSDK&&Yna82IR2zfYLomH{hAaDVIXbNM(>FxpiW2 zOF5F$(M^enidNgKHBiMRVrVM-Qjh|Jz|nwIrIJDg8v+A~3xTYjLn8LhVB3{q{sn9} zz0P;VAL8{gJu6g=rJv7tnf5&yZ-2swe!(QA+i$aUxLtgA8rq9U#znz*XL4ICkxk9a zl-YyOR4V*IyMmP$c`E>PkoJz!R$({#b^yZ=2=QqyX-ZvWx?3;`y7L`CDP(TAhKq%BfRY6z> zkT$VBox!;Cxtz>B3+t;<+i?th#3RMo-eRVLNw14f0@w5WK*~S9^ zKwQwAbwxix(mgrem+fYp5P;#gzZ2IDQeFy6@cFeWBk88Ty-+}jxd7H4O~7dZMRXLR)Rh>wyt zNmXFrqo}=*7`)R5FGWpV&+-+dAy|(YTI3W$iD^+7J*fat_zD>XgJCeVJHFb|a-JX! zDeri&#smqEz~@1d{7AwC)C^ZIiQyV{t{H2^#i$_e~-KTdD} z+$8%N=>d{PR-E@utER@N7ZBQIVfHz}9SaWJZC%(=Pz{KEuAjn5Ed;Y(U+xL67&nEi zLe2;PFoOko*N~u|Ht+o1QAviJhte88lOJs+XbL=|*7q^8?4q zH=Tl?LF8)IvV`LGOv=>%`42Q&rYy=01j>)kKfMmZFNfk1LE0@g z8NhjnbOEz03@)fi0Kf~7hkSrU-8HITStouN#^qNHiHtlXT+R60lF$MEGKyP#h#3h1 zc=3SChfI2e3x_s4BA|rK-n)P1@!fqfolF%!BV79=1cTX|7-^0yBYWbk7Hdq2s!}3E zJNxphF8RXtB}zWbz)v7InYb6djWtDxTojeM_Z+ntfrh#Ta`V@OMqwT{bd8}A4?nWs zdh4ygm+ZVd8RLfS-Pf`DZZki3;dmGJVyg+&gJaXW@rr6Czc2QZ4TXlg`nxj506{>$ zzbS<5-IGz@r+uS5gT;o(ldw>JH5;0zV zZX*akd(fW2)VXTr)E-N~cX7Y@r^0*u+5h?cUPB5NpFH<=XyvyLsnpTiYQ)XZ&rWO4 z0XVouKkTh)>bh1O9HP~QHtjuHQ*}AW@rt5y;scy)P!|+Y2}+_3CfXNEj(0YdtHwvU3; zdp`TQyyK_b+FaSGH$>Q#Ag7xj680lx@Xw5S_XxD^os7cIE9l$*3*bx_OdMy+C zt{bQUiG!L-Vvrevu;)~IPu0g1zy04q(u}jRGlKAUPcOG+znagVz}*=09S>q7f4-t;y{JK)7*3?9Sx7lL05PO1UDAmZo+Snt28dEZG75-_ zmH`qDloAsWOuRd$Jrj6;Tm5{p_uFFMt;X(s;O(&RQ;ZMfB$q%4+I4(Buiv}gVv6_HzUsWZ_-Y8^Rs$y=UHjj4McCh zM=u3u59{~P1;1njy%y*{t6R6V&*BkCpyEo4md3Q}F;-ZwMG3_FGL0--O8MZV(1bAX zs+iM1J0+rH;nD#dhB1R$lHb-_Ngj1`U&rO&U*808KL^!e0mbii8o2%ia?{Xhv4&!I zSPl71YS~XC`$L9R{aTade|R#ch{Q#=D_sWO@YFDhV?k4V-oj{lFe)PRH$1s5(MGtB%K;~t_LuDJa4V@Qj>)nuKbynk%ll=tjBBNr_HqX0TGLaoHf{;HPf& z0zW?|M*=wY{qAPEGW@MnVyS$tK(NN_qtrISmNJ;+=6o8&;Gl_s@%8kZU{Ng7>6>Ho zp>KhO8_?%O_;U*22HC~ekgA%@cnG+0lF^jL5|zd)9IL+tdIx7h3DnfpaaBcs4(9u{ zxDfuJkRH++EYc}F?YPoxc-YVvfEv0j964B4WTrS0BFUSH*tHEj5&$;^$0dUeFAG4N zhy*2I=lCbQ4nuNQ(sOKcnc7)hsLw*Ymq|7kJt{M$$tA*mHk9Qg+~c{;^^o zHi9uxlCW-0N(`*V38xWc;N>|T!y$v0*e&8d3f&-hdwbht;7C{F)U;JAn^D0}g{IpK z5*txAkjXEDlPDw}OzC&RXU0S3_CLixCgPIu)o^}V7f8B+V-_zU!xRaia5+d83UOpF z%2?**KoA7H56OV#O>QB3D=WPKGlUSN%gr2BewC7MC;trq{f3YN9S@N-vFQeLBHI2f zGalWti)*09nUNGr8Z*XOLv5+U2rb3OK#%~JNMha}S7_d!7{t~T?Czgt+$zFLuB!S0 z!##HxOVR9A5@`KCj(cfgP@qM5{x$BM{c-_%x?=`gB*Uh zxLeQ1BdOE_ zj1BpfQ*tgEdCzq=jck2I6uBc8lx2UqxJqhbBCJX@HO97_YAlgf!`POwlRHUh#*>vl zBW(pFdECb_Odk4|HjchohPtN`?4UdmQ68G`(ft(jg%)cPv;2;b%Hc#_jG?rZ`I_n?eAV2m}Sg8ESfrRDzdmSXbHAFyo}*AQ;VA7oouF7FC1WE-tiG zv(SoNNC$*~EZ*n_y0UFmlK%R?2gmvB{`F-x*l6Q~G4nnxTJbGzLPfx`e_Lo}JBH&6 zEkLfX1*m1e&|C>+W1;4?Ru%eDvL&qbXKk!r?Nx#qXMr_za4R|t^Q^R}B|yw*Mzaqs z&9lM(brW7}4#60wrbYo%sZsKUqwfCpy!8eK_>;ZuQQUDaaKb0Z>#8@6sTEdza}b{l z$zjPIY$JVNivR|f2$pA7ha-kxAo&wtv10a7?suT zu}@~3KA#+ogScCKXd6N{Xu3(%lld*F+zwTpO+BdZpboK1Thfan8b&jB~{Er!O!tLQ0STvBmz#`KwLz23?U{LX=5m@sC=$}JMDpycMYas9hu^@iw0JhC(dkkL)L=#o z4x67K13=al2P^T3d7Ly7g%>e}R5bU{HyWf({RYkhnlkwXX(;wLGvyYC2wW)qZKF_& zz0N8Gpl6}h6N@AIyF$pjeaP0F-to^1(RIx^3@O$yYW4z&K_7@~zp0D+%uyrj$;(kXsFYMQOdhfy(v{16(4(sWv~u?=iD~+qgv?m3CH7xOS8|`Qpd*fJuUt!>p+3Am839!9aboa*G}Gka2(t^3!6fU<>uqcw?;n*5$lhb9~tA}U+L4(-wSUu zNP!H8Y_eAjP@d6#f)wf*g-9+4s_1@zqSaGWMbUw!4u(Q?r7DS*#yUn6*KF`~433h| zI=((ifZMo)cW?LIN8&ak12=5GQzx8y4QFZISh~|Am*-W z{Vf5BHQr**cz`eYqzT1Zv90!MQSed(;)*H>cEyXxVv!C(C?h8}>F1ucU@>7Ma6BBp zo4RE1I6}@TwA6B9^0-n(P(%>x$HI`t>`Z2nC6FeLZ_45l>pL-zN#zFK3uG0_60T~} z5z-Ps5kFo)^?k5{0;fe*^e@z{WbKVGP#g(KcV(f2w3J!~4EPM*0v9_7>(axDsjD&b z3T}&563BsNqEbq)iJ>)eLnzHGWOSMeb!=PFih=AiXTELt_3eYhd3iXbCdMcbuqe(X z@QrWaAW9NcRK-!|ARJLfn#i8zl*}I43&-=qGWrV#mOKHS>){>m)Rfco=0(~vDbqsK z$%5|@JYn&yIHlb15qch>biW2qSlTh+N}W+EPGZ+TwWPJbt z7zte20u^rmeYrRm|5er?w%)V{F*zH#t;^r8yuHfR`n7naqU9E*UXNTr$RJ0PHLL@P z$s)J`gmqCI1`d6U8mWA3+dLU$5xbB?3ja{w=Yz4%pC&Id(^YjAIo}}|n0Q-?qaSME z5HUTjYQTr$c^7G573*&R3GNsS6%GW9aOq_H{#Uy^;#h8_@kcBM?~wZ6sxqcWgcEU@ zDhm}c5)h8G2Bx?yw#c_vtqUe%+KZ@#B;&YFpJjUzK!8$C(Q&d4Lom)q4cM+s-L7+y zvhKn-IyHEJFvbB7LwNgS#&zhMG2q5Mv&}=2z)H8HgfVQv8YnYZA!G$n#3Yp|MPZdK zKVxJ&fLr}$0FeaYNF~DpdOFYyY=;&Tp@rvXh2sY^b{Q_i!F-;u6va#u4qDJV%}HU< z#GM=Zso4rTx-ONxIhp(y4~f^>u4P|qU75_%m0Wc9u7u;^r_KH4$~>pxXfPudzLdgl z8M|3-{wA-ROQ`WV4I)==M4k_LF}`s^$gx2hNbuQ+T9hvHLUK~ZQm9^Vh5aZ;e`8-Z2qu2Vn7lnIJ!KHID-Phe8BtY% z$p8cBJnIR(Ri^+REX8pbj#38(V5C|pC}2zo6#!w&?O)M|M{*zw2#%|Gi;$d^X1+dp z-U2dTj?M!wBn2FmhwxZGB#)z+kj;y2){6nqIjPz(P?(J4V5rue`%S z-TR=Elx1gvwA3Y|F%x+4Q3;GtW_m=XCneykqA%15 z!K$F9a1{4`WK~{!;4tGfkK|OK1(-?U(~=t^F-H*&`>SLWY3znES!ta9v^usvI$(Ck z_Z42fh3NAzc(~u2B3N}RqJ9QVL^3=(mU>49R@gz!71(fkw-o@Owzif56V8|;lDg_f z!jpxh75xEQdODZZH?b=tnHW8!$Do{Nt8H5=iVZ`}Tq)0$zLPKQ3V)-_XsZtzCenuc z<9(U4nNKtFqq|gwz*b*h6b_F(4_mU|BMyL7jpHR3FHkyvQ;8D~e9e+vD=?iaUdjdE zhtT$lmXV4LNk3JZd(&8AcU86?uRh~`YwW~dfj0RgncMkNtj!1;fbEw1aekN`=5IJ2 z^n`resiGB3Agj$-U3_X)p`j=Z79x;(aum^u^U5tc`{0csFEoqfwU`A>A81tp@yeoN{-o4L8Hb0DE3jsEWlM9Q5&TE6~IpCm)$UTY4J%5MNP%$vR6b>JWS%=2J%?-1A+~aTlbyX;XTgqOS{nM}81_7e$sRzc-+Z5Kg_ve12 zt6ZE@Y$ga7(>8}+SS?I>ir8a>nIzIOxscXO+kud@6^Q(2&60CvlCC^S0Ssn8&=OId zkU}t24>L>5nDrezoTfheQN6?5*ZA9}FM_{K1V}wWE)F4glORif^dbB0eCd3%=i7FP zS{*9l6*^g3JpGGoVdeqniG`{hY&tzEs9#gjQ^07fl|*;!Mm z8S?YRX68>nu+#n0VSmK6=1On>D2GQL{qG0F)%$I>xm_2@EbLKMXG~1k=XT_=`jff0 zziMlrk%HC;{`_wsDr8s#m2_e_ce#bC>VRn@TO641IXl4Ut4&st?4+5;DB49gFGlOA z>F??|NQLBw-lGLTGGF`RTgQA}8yl^Iw-OHm?iK z?%jif^iKE3w%0w?p7(cWo$edHRwR2zuANfE=|K0-T0Y;4DF5pUej0DR8RSUTLI3QI z_ij~1X2NQwY@0e~tFY>6dX5$OQ&#?E10mJaFiruBEma=3MDExUCzR!&)pmddKGwk*Y@ za>gPdw>NiAMy=`{tR3g*uCsPI>_ggJ?HpZu`E9RPI3uk7q;s3U1t_Qhsmt2N;`DNp5@GHj<`Ww1G@$_*b z0M5WYt(I?i7ty3~e?g2R^e0OD3b(9?1UHRQlTo9f{HLyV5A9#pvLJbR+ASL zabR%WzWK4{USF&_<@k%fPfoq4dY)`{yj|Q?s`>PyeN!$#blzK7&kLAqnS(r0>U9S= z*y}<-jtH6NJ1BUvo5~!*MK0{g820Y#&R(>9X^L$pIotKt0II6T?{AylA1H~gkCrNk zO<`gvUFJf>w9VH!6j$e5H75;Lh0jYzV41*RxKN`Zk3%YSv`lf35Q7s8o0_bsI`Ec$ z4y~)cXiFSm2R`|30Z>pqr(@p^3XeC7qe=-16NWMVLKs+VNOg}*nMbTS7UY<&uh3BG zPEo+I(oe95}d4EZ*K^C8UU;ks0lIQLIYH z-+G%6CKuQ9qzb*e@HnB(sGI&-IjZlRFwKgsvC%g6dgMuQR*G9|!;Hgd>k;{90&0I5 zkz$d0F^2l=8+u75?WAL9j57Ml*HnqWo1Nvi%1P(Ss%lwHU48Se208X$N{I5zIJPWW zYeroygA=bUpEDVE*q(#vX`at}<#B=@UbnI8hynBoH!eEwt6_{b4eib2CKqh98^;-T zfbi0eXmiBH4yQF31%t^=0 z(<4i@))|J`T;mQ`zn3kU$vbro{s++688XAH;Lyk;sZEw&dh>-$^y+L~bK|r%qkTiY z*5~?)hMOKHqQm0en@px$Yn1Qhr9ljQY3QD~LCLP+)md+71u`Nh@8Q*m)+*l$y3;Bt?T;eXPlBc7Ib zj|1I%_W(ob0-fF}z1N}G?GDF9hF*0B#$Vy57o9&!(IsfnEB>HdN#bZ5QURiH!iE!u zjCI6W0@Q(IFySz|6KsfcP`7`w;VxB34V_>WxrO;2~f z;&Ffdtz3bL2-{aHjOL2^^2L{;b zs{MkWCQrt^^Qu<(FNW>^5dP2XKaBrlX60o4-}%4)n*aBoh5thv_+RtCp;c7Xw}&c+{zo(huy7s(8CmD@=XH#UdvZ?1h7psSm8PXF%fwxjAidazfLI+YuVj}*Qv8k6Z zW~@KI>b)Z4tEENGx?Wh}q_nPmxV_~5YV?20xx4fvlLuaZX?-E?_5!<1BrR*Z?3cwpPvyw)#E*I|a%G6xa@sQIAWYz49r&3MIYREdXB?EA3~J%Wvl=N|O(c z`i;~$Hq7u0Sa-~uM#Miey+85`{@2UJ$4=1K+nKp5cDmi_Hcvcu4)s~ctsQ<2t=FT; z>w(uy@Wc3T4sRu)8EbkQn0iR0c!Z>RL8bSjB z^nF{kzCj*{Mp@Fj4pW|%nP;f5R-HcgH@n@Dao#r9KLU38@4my_+?@P#@ci@N_!nsT z7kP2VZiyi08l220k=Vns@MvVLBe!^_IO6&uOUk)WoUr1E_=X!PXRr6OOWQpE0&57n zf@Qqz_BwTYYq==@Z`F&P9t^h25wBD&{Ds8TULOVpK5{+(@%2A+WG`%p(GH! zts9gga$W*W;LyIgp10y?Q{yd~*$N5$;DPGyAZ#C$8+YR}tMfd`*d7}^(On%}SO21ClXQ{5GQo5=|Idm3=R(<5F&l#Qms)fU5t0Mf z!BWorK_+RU4OtV6BBn81f%)I53XC5A45zkUL3q&s$4=ZaEDMppnaKTj=Mm#z`HP%4 z;sI-r?II_1-Y23NYZZBzf?~Hx3>!nyPOCg3lO} zkmv?-t-8==X{-`O*`T9r`En+PVUrqOa~`Vw9W%0Vq6<+L7u0EYZ-jWB-=g$z_>g?x z%$X3(o>nI=vIMFJ3LjDY4*^oq`q~CytpGPLXF35PhT`GhJnD45<0yqh2TIY%}vP{ya*)N^*0e47@vRkp953A^TJFIs?37mE}Qi)M$ zQ-SZhW?>s3Ljg}VwRrrS_WU_-OYp}S)IJL<) zU-mxxoO|n>_s3WF)_v>!u~$`Btu=d$ImWahPtUm;J7K|ETzeIks-+*2kcir*il(3K zfc{L0!PVA=W73Beeul@Df5inn=_OxhqpQL2IKDbjXD*DVg`6sU?I%tv}INkFFU{y z3cbym{i}T+dX!-Bb$DjnaJCmMeZ9jh#GDo*PMI2|s>bU9z?Xr}EkABftksw2S0&!| zcsC^iN-s+GJLjTHLRXmTq1LAN>CAOL?2D!A7SE2VJG3p&k|uVg>r3cIQgzx6D9%3; zri?6;H^{7r8iKS|1;;KQ))(Cotzv^B1xfp5QcttD6&{wp!k_HgZios>b1Mul#H_9A-bnKm$F zUBt6ly5#H_t_t_mseW#v8dGHWI&0Nj`pkzd@VES4bF<8>8eSr0HZT2?_xMbllj)Hi znr8u{=U;}G0@_W=3r(q;O`9hEm+2th{8r?U!kmsbm}MMMOTKAX|9ylX^IXy^m9snp%4yDR%E=kQ zLm6}LZbpjIL30Y$xXxM7Btj*p{fdA+Y0>K7yDX^CNz5NM(1;9co-d9760sgo^2ldF z3YU2wqM^i$Gf0qYs8dAb@1Vaf0ID5Tt&8uLDI z_Ct~mhu=`2l@-n7yx(!&={SS8-M%l zPmihhD_ROS{xijc^`j@Vb`g<2yfSOao)CL%c>K$O*2ujN_9_+%G=4EDR>%AV0Vsc+H zIP=PXDi*rTm$)IDWm0TZlxa8JFXUlnpc*MA_ocdY&xz|RK7kmlqK9BA zf|S+_#iJ2`$@)Zmy?p*mKy=B=OmXtg3%%^R0$%d3-$+J_si3$na2=Dar0i(H?Z zd*yy6eRN%qP#DF@Sh4%wv)R9_rvJ2D_M1uQpQ1i|cmgI#01{q9(?JT%BFp?{*=|Y_ zo67Q`lD5nTVhn|;v?o-C1+s-QX@QH}RZ%&`7Z~lMT(H2%dBkXbj=T>HPSyee6@QMa z&0$5un?4;U?T0zfQ;G!SveNf-xcrnwUQIt=m-SI237wz(@9z7BhP9q&!S3zn#emKt z-KN8IO57|J4blNJq?K#Q*Zvl-7O}(C$@TM4xA)`>?N)v$RH=RbwEVL9=?X!s+XyC- z(j%y1A*SnOs-b6Ei`|kGZDT<~9|pf!0ey zflASL0m?J`L|fD?MS8uJBp<((zncI3<3V?VqdvVE?edy&T<*%*`|FTXC(NfslMw5F z8NY>OR5~JqJ-;_KpV|yiVmHpm2grcB6?tk4CRxpF7&`6|V@#uj4H(70*dNYve+8RL z5ecjWw^xP6)VV*!JXbzeizm@}=Bfv`V^iU(8Xb;bAUNhVvpaJ>iOZ#h-^BH6m^R8T z@93gm=3Pnuqi-3U0l$~Zr->p~mZB-3bEeMh@+dQu zY8`8nw2J7w7^j~$+?#rYR#cS@it6-pM}5B@JVs@)7k=nhUMF)ndV4sW&MJk}Zs)q` znkWqQ3Fu_RYwzSzK}S!mchG=PWCp&5YQoFJ>juk&%rLEvH?9|g+DkPHx1V|<__Bj4 zV1yjMvTjYY46#ItJl1*AE;z`kHZ2Mb<>SKM%u;53?BAu9ZtY*?H#K9hOo8DBq8%j{ zJryb0GRefrot9*v>z!SH)B8u48YTl}YIT_XxC{)MHE?NT)Sq~M{>%i58*>Rgc+~au z*$a#$P9$H3+bpnY35#s|~4qWf7IcrYb5GTwS4? ztueeee>+i29NMy+#}ASfVD#L4Ym^W&Z}((WcMam}@gzuji&fSkBr4EjE)eU(U_{3c z*!bNE47ls`shGUH-TBfc*`gL92^=yV{_33uYW3-#_w)q3(XOSOn@Ti-hZIFvMX9#* zf>B19_t+h4f`-)K;^X1%id*`CINq=IlvOuVzNrNE3M|`l(}9)mJ@RKfWK~4AS(MXk zA5UF(7bvD`?K*6PaJn`wGX4xUBf@h)WAZSkUq{;6Xg|VRCy;B=N~)>(nUe3*>R?u? zHeOmk+F)t&vzI?8kX#dusK+;Y^G6cTX53FyY`n^R<=6FdxHbQFNLFGvbTa%dcbDb- z$4u+NvBFN@N_v1aUg?*6D{7WVYrsQNmQrt`{VW3aD&Eal;k@{5cSuB5!mIcz%ZHwdKz`L6)aH5;lIreC;^uv^f8{ZR^*nPHOw?MX zoid9ol1xg-AL6C$Ex)srD`9d)(2oHEX#$a4Of=}8%G*Y@+=s3hd;F0_k}L^zj_>}F zdB~aqtGJF;c_jGiwH^lhO}|s(wZm-9FdQIq`eV)Gab__t@^uVN$X%@5&{(%GOC0CE zPx@DQ{d^2mh&Auqt58JE5E?(aJeV#0b*OoyzPVM5b(W)u*!%bltYSM>iFy z7w<)TT$R#jW2uOMYUMZvJ1qk}8ST%w@ozpr88jnV!~6c4pg*A`2=FN*J(NY9Nmf_` z%@oMoNx5192HM?#dE~^?PmMh}dW;~wWJ{Lav_FmWZ^y?NA+$KT>Htsuu{c5G0F4B2 zl_SZr%@N!-nK#M-WH3*KBB}bJ3X%Rfv8q}28>FoP!>dkG`^qK+OFz~6`rjt$k=1*n z(x*n?YuPfA>)1PH-b;tAeKbH5u;}ZZD~_e!zZf% ztu-W9Gccb_rjR7~?Ps#qX#pe51V_4m&<{u%7pYA*;M}mM2b`%DZ9WnWVPK92u6~%w zPNKdq-kU%sWMz*?}TJs+U zjGXYz;C;K8s-oaxXhb@3#6#wRjtSof&D&4DSF_n%PuM1zrYH#rn1MvRW!Eh z%-T*pm2D&18)osGW~z#N6d$ee%5^XPpMo?=!7}d?(st#^rT^f0luvrbD0oUW%j=QG z{TrVC|B3&yv;4Qc|ACX8^*{gros;!%{P%wd{)-&_*ZGeW&v2FLyI$d&krAfj2joDd z(CJ&IvS3?QfBn#;=%kt!%Ho(@Gr#K4>WHT&nUso;5R30MaWy|q_QKT68A2w^-lIts ze2BdlkEQNWfh;@LLQyJ@3Hfg_>@zZW>#urZ-vsfqI?E2kde}2LC(qw`Wt`ZLEDytz zcf8mIaA?o~(f~FvZAgHlqoX1`2949D^Q}P|=H^Q!%_f(#_4!JZm!|6KD=d#b<5m0T zw|QyjgE`WPB)ZLR)eKrS7N1s{TpRiM_|(Q-#!uglEiX53Jzk8i>I6rrI62F$ zSB0(*=R4Qd*3b+M4O=%vX&;^sMtC;D^@_FYzbeZM;uxY14-bcjhnJbpGF_jnwic++ zSq?D*1qB5&E7DhO)&ua^I5~}n(a*M1MNv_kj`V+ORt8p%3O&?bzgUtN2Z}Ij*PW^t zsTF_IU|{3m=sIl!TQ{G<+Y;F;>XBaTjK0(aRI$+jN+wg~`Hwh4yQy>YIQ^_ijW*L^ ziFj<1l=kpperlBaR*vu;l>EM|VL1@pDmh!*dq|2o8?-+g=|f==g5HpLq@H(SSAP6h zmKmT~`Ps4`37Yy8U&D^Ctl#GJa(!j^_}uPPqW2IPU;{08=IlZAtl{5Dvmg1upO;Lg zVdI?Xeq8U&^s%ZhB0)yB@yyL+tGnvj+wW{po%Qk>8~|>6S917@{v2j)yHo)&IVtpu zHSyNh!3NqI?E3qZ`X%qEa*8wN58|8vH-N~004EtbNgGVIl#^O_)BqN-DEagIwp5#q zkK4NCfe8tp8xn3PrAQl)II=2VDdAAeAmg|=XR(tuJ?-W03Yw?O5;b1m4Hd4)!g)fHKACBfU z%HW2&SXb~#a!sEc9dyfr_r6nMf>8k?gb|@QAH!kONdd1Az%!w_Z2)8-4I>!0<2A~9 z?<(om%p!f`70uou$J`D`><1ml{lqHus~7#OY;uzROST{O%qpajT{tBRfl{ohN5eEH zB;uWz9qif=J&qRVD_ra>$uLT!l$EfBxt1#(tLJ+{TF%vX0RCAfBuh(6896yCsUd5j zr_0HQBh8Z`Lc)hybYkk;eY7e@O)-ZbpbQaKcteizPzCB25N0oO4jmFE#0T(8B&m%$ z+b`3S{w#iRg*=iT6U4uY^PO;KC|UV+47K^Q96exajz^T@1k=khJ5ra>Jh~0TKHu2&Tpr5wkKM%sjeUBPn zE&xNph=>5e&%>=+zAugQJzivrd$dz*RKCCCU9k_@F#YbJ*8s&}#RWni0?Z!z4V%}k zcile%So%&+`-hTsvc9uK5D

          L8M(N&!|}m=pTXwRs%KO7Aqq1p^kmrNe0*g2I#u* zy+K0w9TUck0*#ZWZJh|NTk+(ja*U9xE4vBf#IXwfl?Ov+(zJJ$9OYcJC>VV&*ulS$ zUE#zaHrkj*MB7ZXHodhA$$V^4=DN-C>&I3dA+NW_6*2b{>##pnQAeW1jPL@<-_;Yn zN^B1Xs(1oS-9l)x=YA$91utQ6^u~Rg7c+Xx+7kg$i3~~Yc$5bw`byN}V3Ygcypj6u zXpy5Z@h)k-dyjSZYcP7sIRfVUn0OI-xGqQ!ufrIJ6l%FD_zfx|VjU=MgH38^h{!Ld z!x2+O6aZ5+hadOqT@eGQ3sDkT5yTz`)mY-BjRvr}Dg?*R)S(AzVu9g{(QL85cRT{? zcEw|&4}nI^2mo%F9!w466;Om-go4iy1m;)Lmyd>&5#HOcFu7qOr~rOWd5|~CeZ0Vh z^j6kmMGbmwqg{ZiJ;CRx1<%HRAA6Q7liY- zt49TWF^1v;e`Fgf5b(jjBD>2$RAQoVje-V8xApPBn4-M@RErR-YJ_8S07EMa$eJ2@ zltP7=N}R-&qb}e}fF;xbA7UIpU{XMfZWgGBRIrH(X&{FzZ5o z)I8(6HLNEP8tks>51mngXE5tP`5Um9{$tDN{LbxIqrawMU191d;MTg*of}#8m+=g4 z!CyQ*diC9qlkUq;j{RwzJ4K_`?vi0>gd)ACIR|U2NdDj~GgIRn z*sJ0SE2<8b<#j=#8=6q;on=N#l%2zMDYL@$JtG%HMTQqK`h} zIPr|M2vLyB51;x)3s{k9BMHcTw5Z1jZ(A^5v%x{6^Vd*(2+C&hFF~Jc#&deiNx1Wu zdIoqP@)wERjy#PJ&U%rc6T5lGs(uBq!t_W(FzdcYE;F|o${Vv}UStm3V?ycA_E(Be z$0%4DX*@0D;=-Yg62>6DMg5zwH$ywfV1ECH+V;+eSoK~?yDRC-ww4<@gvo(3-fw1f;a)tBjJTTacq22|2z5P>oCM|L?-@@0 z5j4(W6;_QDw)kwM&<@**N>@R6Is!q9dU}I>!n%Gss)pV;r<5hph30hq@U(Ez-TAHe z$WNT(TWx-~XLSv+&ElikRXZmt1=VenP)W+?l)fp1P0=&p6xRtM73YqMgsjr(R9uN% zB2akqcArb1I|~T+<%KT>ScO3i7p*%BGp5q%!U!-x>+J3_VpX(%ztZ{wX92uFNLocb zgcU*;gB+HIs8qN?UguC1a0;Vc$@{b=Vt|jz*yq3Q{t&Z-@Q(og`16W`+#(hw9U7iF7S)R;3PC-7=9X?09?P)SMdxLJ_+EWSJhfb|3 z_?-mttS6fqU++q08<1uD#j96I^lsW4VErUXxoX?q_;)t<|1SSy{cqg=!|`9_e{6r} zfB#eV|K$Ib|7jsbYj?XoH>`5bj*JYERMyH-NK3#-NuI1ld5Pa)3)j+jxzCEUj!XK{F(MaNwkciq z!4$iR14FdVulo&MC_NWE|0~QbfC}J)LOA^G z_w?Xu{#_o|66=9v>Erw5l(}u1mR^EWp z3HvO8bY;m3>X5~J7ydfYW=#Zc10Em6HJ1`Wjw;NK+Gi*$w7pi38NKOwp|JJNr+!^@ z8IDV@o3Cc&htO2D{;N(Jj(*>KR2KN|;5JhG zM$j0SiC326%DnK?mD!7^mU;y`k!U_ojk8uC=g}_+5ArDpW?U{mkQ6;$aHPyE3j6%_ zB_AO7W{r%c#J7ly_8HM(gC)Fywyi1*=ldfMbOpl_&*hSjOL*bc{M6~&)iel&Xz$NT zOp7E`JG$>ME@t5goa*5T$aVYTRNVec*@@AFxIE`GYmqYYzs_@nzo`pf8n$(+SANjL zP9@0Qc%0k(;4s3gjt=c`iX=Y@|C*5Xz0bUl3VpqAWJgiPh}CY)t&q)kFmXk)vv-)m z=7Cox-SzcMmr2FJ_gKT-ln2eJ?nW@f!>&&mJQ<3lE(%!K1t4hsh~EDsiF(p5zv6~g zq$VtXZOefc`Dw6rUYL8di?RG|#4g{Sg+IXp8PQI@EyM=_X4az*<4U#v1wjcR7Jo_7 zS-UF1O0a}oB(ZHw_ow_#u8q-b80}W2z6>x1@Tw>tutAh_$l~VQ3>{j>4!j<_S3DNqEQxFuk;>~OKT8hQQcZF`n5By2s zrJARGYNwG0^0wI8UHbivh*3ECQ%ikSeHfbu>(7|#CJ%=(+Ajb$KhHJoi#`;lgS{@` z<~>#)M)0efg^+7kwfCnWOF!m`%O&MnTKdQWfR^=)y3EHan`NX-{xJF987qBeJ)^_T zQMhcMpk8YtdanBrsk)uNgEz*Z6fP?0lU%iKm&B@9(tEf)-Gkoa>LkEYjexz@+Hrqg zrrXx#Xhsh|Zbroj+8paE{Xr=wot;Ol+3wt`>}+XKkB_jq9@~e!$2_B5%22L{PznGs-L%{+}jf)I;mMzr_eUI_hu4u?tNe)f5+meYc#!mf<%%Yp`6M zE`6v3xme^>RM@XCUB#5heR1T1u{_E*k077X40>ylHvTlUAHusnk*VlS7XRXBh+u%r zh{+?7&w^qcoi9qJdgtdpEJps)MYnN05tOuK^{{RThd;F$Y^QIvyq9<$ikDFd zX)P>CePr=rim<1SgA$7GFhocBy9Fh0i4Oak7wq~B%Qs7)jF!j88*8hghk2KD2)ZUE z2*1Ea`ZYTKBya+PUfDx<*K4if&E>ite%yd7+;Ik$;MP|?2QaW$wXcr(E2Mq5m7>pO z%BZzkq%+>C1G(I49rn~<<&{J@)R4{5D&U#>mnGw|wy(_*ZE2$q;XypzVZR+IIt=TL zc@8k%Hxnk5WA?znQYe9g-ESzNL{M!J36^l+%^UWTt(%(RqkVKP_5NCa%-|1e8q`wt zujvAi0kYdT&l(i(Y)J`n9kP!$dCk46rRr^EfY`G2^Q0vRE=cVX*wGi9upsc#7oYYD zi#R)1hCaf6=4xS8D2Z$3*#_TUHSTR8wDu>& z4Y~~c-28}y{A=>FZ&7G%iXlK~zLUlbTabwo!*C`RcG-z#PvkN!R{#)<>l zgoER6`TgZcJ!Y;FqrkZfa*ddvTjitcDjzb&eVnJxj+B-upilMMx;0`Yz0}}zjl}4y z=xNaYdQ{bJ%uJ8$jZXJ3d}aV)K%T!)lMu5swRAKLOsAO5Dis5XRg~qq_@VS4jcbC$$rpv`lRD!O5hA;YWCCmw5;Qo*s-4RGY4M`hvhBJFk{L<&iE z@^g*&_nze>#9#p+Q6b5@1^~=CK68id)^YA$?82MUtfV)P)kXg3xn>O5M)>FjY1nyS z+D^?=5E?C}xFmk1M) zQcM;TWuseEy=NTK{z?G1y{LwparJPo18< ziIw&rO?tiYL%G{)3O66zV-D~njzw?Yzev?me<-_6P2G#XF&5nn)l-s_6TKNT+;c9= zWr-6Nn#VZ(mTGBQUQjMhQkN#%*$6?~jje)WfTs?b*Lb*=ynfzANV?!HDK|S$R;^Kt zza>tQmE4Sl?L*U$Ani!mdif9qY;!gu6oxXE|8nvWUZ(KMlt!h<+=Jx?Eqop}i*x|h zSlq*hJ@)VF^vIc}P1%wubFv)w?L`N-;lNB{bI6!ApYEtvD4)`t#xhq*h=$eV7|(2e zF2PY8!T83a@~(xnmAN(YgtU^eoO7oVHyn1EIaXEXlWWVW9ByEs;@g}oc%))`Awgy$ z?i#B{g0Nq-kB`XL_1E)f#p^X{!enUg)gfKR_X9H=iH-T7WQ?+zOStmT`2F* z)Xb+})QtvOZbg$0k4bua@vAN(yTjA>wiiJe3?%V%VkEY?Z!E_UqiWDn**_6 zfq^}o_#$YLs$#!gpWOH7)5<9CUYCY6c5jSGrQST4Sq{%a%bM3Pb)P9xCEDo#0R}%E z7NO2Q^cnK)uLT@G8QD6i2&MHEx>^dntl$34{$%e&wQ(IiP! znthQihUL=X9pn=R)WqmF-&|*fL`s{B0M#vSs*nDG?gZ4%K5zMmD*f$R0PLB=>d2ob zN|MBXeqA2q34L}GoM&+yNK>$%)MKv>)~7_B{Ml9j&~Hdwr31a+Qs5A}=L%-kG`2!Q z@4-Q&K`0VHtW*KCW5A<@n*x#*P$kxp_XLu#K6tro&QCpe@(=KiLtuczc@FtP&C7@& zf^Zv_9|#V#f$-EEKUR4CeU>Sf)dj?EA}_jw)6BUY7?M0>vsme@f8+x(ZR>{|=!~Nk zD3Mgv4M2nj^QK<{k*0TG!GIE&j~MrYYDD$i^VIP_ba zEzuqTI_nQ(F&LxBYzS0=}Hg5`^pb~RTUxA9Innj9!yXZB* zG>8lb;FI=x$POkl9$^-nW!H|ZlP9*7UIefPnbQ7lMz9vAKZ%J=>PMgt-qqKJDE3e5 z@YO_DabW$~B_asGQh|5I`bjKs|R zH;=R|iTJTG4iXUni58JlG)bteoQKtXwp~)n7;4~N_gMJ^3u6EVVu$mzRj%dm*kqJiRBxn`KhLkL-8pR-> zeNzbTRjfO}cFTOV<*&YeJu%~7Yr?Wh-T!y0_`{n^Qt&Y`yRi{Qip zkU|^b1Jf&O^RRr>qBLL#IVhQ}LJZo$f%$!W_m$ZzDjv3bWR=;O^RyjW)oHVLw7LtZ ziQdEK;qI3>%*hqVu0I|gVh)%ooI#^F19e8-h8zw*^`Zt{XI7!^`yc0x+dq@~mh;_q zgc1daSOtC_xKx`(gBAdgB;WPbuTWr+OTLzYsG=n!eWlC`|JdkcGtz7>vSI;V3U+7u zRY-@Y+&zSN?nj||&UNnTQkM3hGcAiX%QY}!6NAc_P14AhL=5V}wSDR0 zDb@6v1D>~FA0WSIq~}a7F^|v1%UQ+%xBEbE4Ih%J_ISm2T|7K>+`7>_01>DOyjmrz zm}(y%!*7>@%wjSC~U+=#aeyj%*3MpGM9 zTeVD1XH6Bf$%x*DQkK#da__$7V<=*k3)}UAhMEgngyM(EwsPak&ph6 zqc2(UNfK9GiSMiIXgctsI4#BoPLc1{w_p+eh)1*+*&K|!-U&m)qX32yQj8N zWYgbjk!%<(EJVx_%HP_S;wkbtu^K+vF$~p**do$WoeFmgFg4x1A$XK{8IO}@N$j4W zTNkFjf!*_iWRrRi8I?K6ocFfEemL8(*ZBTz-PES7K)+vhbdu#6=62IM=&Zbl2F8QD z?FHtA!D70Ez|Hh;T=@SU|7H7c+yBGO!pi+0_%GMr?|=QDg8zajO+`f&Bt=ER3U=0? zO)ZQ80G?L?s;kzED%e6H)=EEcg~1x)L80BHs>)jRgapMs@RG4PM^d;sdvkP@n|$0M z1%wETdo_jf?mpb`k3h&gEQW*t85;a2_xbC#DoN!ax9Ko6Ne%W9>p9#%Ux5nx`i!`hmgy+S>X_SzPUwJ9GWt(k;ZOCc(^sKgx?Tp^l%%Lt0L~VI4-u3jMW8ONj7n^(E1%beUdhy`+IR+-=nTga?cZ zsp4h9S5JqP9dSLqV(b<86*%{Cn>-ZR2Qx=jcOv}q@hhr>q&^CsSx1xCl|S&HCu+A< zbB4Py`F+Z!YX)oWQl5p$dMUPQ+y2Xgl^>IbU?`%DTJwfCp$Jgns^X@6xZw#tZuW1u z=hEutRwV@@3neL`0FUoFC)~uxybVvZs57PXspfl|_^y~3g&Z#9r|AMI{vQe%Y;j%9AGidl z*!uhfItL9{$>k?rTP(ZsMs4)^hgaY=Gk#Od;qNWAY3(o95LTWCK9YW_JY*p>!TM3g zJ(qfjDBaH2jt+-xXUT^{H|a@xbG`YV104qo)F42Hy1uc7Z`wVyd61eF*kR3w7rN}4zuj#DzoaT>A0OMEoXeR zRD$8xcMDC(9yoRCKyslV7Ssk#QlTAKuW61gC@qwK&)L888Ka{E1R0z9ohUj<@loIg@J6y;RQt zYdKWs%d~kWCylb)fcqxiR@`ILV}$@=8FsxMNo?L`^XVbd^)TuaaWlRHa;2GUwL9Y( z2%iIk3O*fvwnwGgzsLbsb1^eESBa~yXYP_B&q+INDfkK7emd1!g>w2W$btR)uo(!qbA_C+fn z%kv2Hs+C|N@KnxYoBdlD!c{}_ubuA_oA5Epd}XT-#Cy`emK|!xU7$Crqcmdtq}&8A zCENu3dgL#-Cy9f(Ai0LD z0$9}A&KS(e#LC1*E`$sQg9Yr2KJzJwefW$0_md#`7Y7F$K4xZTXJ;m7b|z~(6J}Ok zUS4JvHfA<9#@`f-_O4bA1}=SzSkIH{j^NHFS8#q|osaRWE2#FY4+gX8~ zjP30I5XH{KF2MZnB>&Wl`QH@#KULVl^z-NcTH`;y`A?PqDCHBiwzRP`w*Ny*Ax;72 z|0w%+dQBx`dut2FKlS8h`-|a!FZ_1~jsJ>4<3Abx>u&f*>F?1OLjK)>|C~ue$jO`W zQ~&_Nn?HZN1a74cT49T02lhsaP`>t;C=+?daKWOvBdcMI^%i;l+`|HUc3GwjU9xYUx z3+FzYuM2zJp4!!Iy|`WNPp^(}z^t8~o{k#a>a`FipzC1~GadH>IxsqATKQ%Xq3!GK zfQ}njoiiJOLD+MK7Ti|EoL(KgmO}%sUB7TbAPY}g%I!!xf6-#CwKarAGAu=bu)_6Y zO#*Q`xTZ~BYxHI^PyRcKII3rp%h{)^$2)rw{N}?50GKtbZQZr3!TaTTe{<6)f@s&( z#N)$+KLs5kOqR?_Mr4oXVqn+th(T;` zD$0%4En&)FJSWpm$pyjBY;#H&$~fK!fHaxU05)0a3+ya=UJa!viz~&E+d^rrt$5-UgXz>F z@l*h&MTZAs3W&dReIr`eApcqo>t34OB&?LruHqnTMoQ`=L+xrimJ8S>0k}br`=o1$ z;0P!{drKp`(y7VR)(mnjT9HoS`tfq3IoDOZ z{5;Q|8oKWq@f@Vz==F3@09~K`A``~Ava*o*q_pI<<<3Qz4#;W;4HS3H z@!X4xix=epvq;TEm#EqjNl0ZG_Wb^!*35Z7QfQ7-}wWd+F%x^#d(W+Z2J`+jzowc*KXt6rmvJGiZ~8E@Ry?jwEX%qC@P^{G5b zV|AtOa4Kv60XGohSB3L~(e%E5GRXtIcU*9gO`Q4jh!6t$T?!zYg*(zdL;!fpSe-ww zg@b8gddCfH8_!Dl8NbQqSo~aAGBAIF2q2oQ?=|rq+^+0ZV_wKUz9a-j!^0}i{?fuI zN?1*t8DCwpjK13b{00c=xc5JX8x_Q=xK(;A@l+f802pHkAwqAVmRnTn9G)(CQsp(& zszCyP)^a;F1Ie&u#(sN$vqhcfoUoxfR`3nMznYU`q zEJ->50)t>qRm5lHT-qmeIrH<$sMxHCt%U+G0TeRE!eB1yyg!kSPS9!1+1rr^1U)!v z*N-T=lK@%JEu~?ZI_XpwO2WPzKumtG(>DM3&!4PcIbe_qX}`d1iR+pU;@|N$a$Z>~ zdfw(x3mYrx8RiEK>l|SLCdm9MY%d3zTib>N9=7*r)Z-`B?x+Fi86jUwCEY5(SBH)J zwbL1uhW54loWL)43TLldN2OJ|*pl4=m{qTXeE2I7aKv|6 zQtdoEdyxt#i|TmjnRnwb0yVtN3k+K( z7n~;_Mowfz)5p0hDFE<4BJXqoJBV}6)?wQwJq$cB`gOlrF~ql`);*up@1kNmPnnZh zfjoWmf~cdJ?#~>Dy}JXpiOrWzxqS$3EW8h7Ba#UN+V{Ez<7nZ z*WYN#-}uje;y>*FZTtUNSlIq^{~rg}-}ukp_|MpT)%l*wg4Nda*9g&-0p^KS>4x zKCLvn-`K-*fwb#v*7F;2cSh2+mYQ7cZST&v-V+aX+_`*FR)Xjxzt6L{Hy6B-vQci} zruWn@xY{00?XEN##U1JipVL7DQj!7Y1>wUMYpria(L3$dFUWoPzEb6`{=6geLRLb^ z$A9Gg>0;E3j*fmG`?x#)y?ZiGKC#kxBoIJEnJp4Iv@@ES=pNJ=G@`_(a9`!4te%UO zz6G}DdnOXFU5NRbH9|!4@>4{>T&zuBm!ZY;q2~5{OS;u~j1us@lfIlci_Lboo(;WG zl=6e1Cwlf&UL1gu2Aad6HxLMjr2`f!Lv!cZv*7IKWPVzCberO-8{g+SSYC@X@d-UG zEYlayVrD76jbDb-rhXO#>sDw0%#hmaeRHhSIU{8_>l?}*^tNQ{`uC7a6H^6Md+(S+dsANledE`Z zZmh`bbz3~@n;w+mxQr|Fh~{+7Wy|{-K7bHef(7626L&>LcypXtBghAwr6yc<1#u!} zWeCo@AMf11c@^DGX|iQ=tBD$g4*Wfk)+-zCZGqmWL&~cpZ%s}TdQ38>X+DcV(J4h3 zu(D@k+kyxY2QYZoxSDq(Qm*rVlr-4sFrxuMF8vJdnrTu-uePv1D|5M1dC#b;vxR9` zUQc0Wjr%K$P@huPseg`?J(wCIR6UrFt+=1(*1PY=M%UFp|4v_1Z;WOCEITK!6r0+G zI@BT6acFuCQh=VoGU+zedAy42_n<73rK)Mm{o!~N!ndCx7ibdbXcU3SQeOJ#^|qs^ zxkd^A$IwvVW3Fq)$I|jMDr)`W0d=R)^#h2q?S~M0)9S^*V2(AD?e@ICmCi#Jyx+yO zMC#jaKgbBE4O1tjH=AHq-2MF!L0* zObB6mROX$8?-_jT3k0CzQY3vJ84!E&VmYtW>@oZ4ew6q2D8f5$1|jizPh?0%*c^!^ zI#5to%HmdXzr3ra_`R&z#c`aUE8DK$vt3}<{7x`{2&b;GaWy?~y%EY}oapLEM>o^8 z7(I1tE#Z972)lA~gu-#<8lms{{a*Htl^ps5eQWu%OY+a3UzrW1o+B)e%1;h%A7@2^ zo`Vn!OL_wVA|$3rec96w9lf1?&aLGk(w|6yZgJr-nnE>m-Rc&i5NeyTs)D>xe<{}A zV&ZNK?(gH21tSo_G5x4wYRiI>?e1o|p%xun(;E$Zyz0L`fPTboY@IpjTSx|nT$wyl zUwxeI<+S#vEI#;7*0w_#%kvX%X{QZ)AjuIY^*RG}p8b1-X@(IFw6S{0xM)b39V= z2ur05tuM!xQ4b5GP83U%?q0`7edBUZ-!~S6pc{fGj3_13J$uSldn%}#ZFzZ`3l>|S z@Ha^2J!tX`k@H7?;KDbeTQ8YPAIx}}5kJ`rM#=$@Ko^K@)IU@D+F$VGfX&;)CZmPT z2KLmK+7vJ#J{J8THTid4^z3)Jj%E{!*hn)O`>LcBWKe%yUl}l&BgV*w@cF z5>|5mRh1`}skI#tTqqq`et%(`Rg+jpCk~q0FoupcA^mnjYh#m4xS3AIJ<|qlJ23Pg zmR*j19c<_~r%5x|i9zLHWA273cPfCV`=)rc1KeNqT@iX$1uecb3mrDzocSGd3#W$# zR=+Yuga6=sI@Mm@q^Vqr0{iL8J^=vcfKcG-1QZL|D4>SZ6Y^)AxMTsdU&?3zS`X`k z+S2o)fh2)!u)22muMb~)FP&i4+=r=MD;JTqiAf-zN+Tfm32~vAWASfo$W=7tm$d7y z&!E>(0iT>W0Y4pIVoFDs>w^$2M0tclsxWS@{Wi~M?~h~Z31A$eFQ<#t!-6nKnFu>~ zPJdOIp6oFC?Hw34jMDHwT2;axAN~}|{l(AsqrAkFtK6)!-Z>wN@rE4f>Q3uJh!lgH zD5UpShWP&3MsFC6e1^)Scat?@@GcSPLee(oS687JD)iTJM%^ zt?DxNwGF{le)s8bubo^;wzkn5uTN@3ye0DpV zC!hJeAjmw-+7Ep(X-^_>D{M?dkf4RrD;6B@9E>13fZ@Qh4%zp9YburA%ZZb-DBG{bD zjP|Gtb!PQqh8VLVd1w?&4q_^e53oytu2_sW*6RA*WlVEzzf%H$v| z@+(X2jGw|hJE{nJY`A+4pDUua6souSH_lJwe!pE9=h}O@R;%Thu=Y!x3bRRBj}{8> zJZ-#r`|MaeX811nI`w)#W3f4X?ib(v=!s!o_Q&m!&_8trWbd4{%6s4K=bTr%3M*PM z+s|tHW*(}ZryCeF(^wK{k%W*?&3`Ve=k~bUaPv)}%wvv8y&qgKYFtDJr>=Qdg`-w1 zLG-0NUoW<;k^8xyn7heOsQq%$)YbFep=WT0W;l*QL{Tcd{oVS{a*gozYi<&27p}bD z*K&^g?DE-RF7XHMm{|&BZ39ors^?KltAoPmAfH`o>c4b!Fka^N6jcy@eJaT1On4g~ zT|_=2V)@r)>%WVy9w+&J7{U<8whNd79-=^xHYCdRo43jIM#HD#doclP7=7zeyqG7k zYOP`R$6^YP{;S=Ft-Y+n8w|e)E1RgFlHm~+7IJ;ca@M5Rq|0}-kns<=SF;PUb15Gp zQ<)2>J0H>7qsp)5r@nI|BAV-xea^HGV&|3aK77<9qsO{$O1@39~`|8|SC3W{8*`7l_6dDXDjPs}I_z54#$ zOtl0^c&jWWBnkZGS(2^ne*Q&$XQu((kGPN`C=f*H-zBr?om~0{342q%xcZar=;<-U zfd{cohPvgoV!}W5D(y?u-&o8mq{yA$ZNd{)xPc<*?r_BDWHhmdn{}N|&c9aCv)<2* z&&hoUV0`t^;GXDVB>kP z*`Bxsi#c&dZ#ml^T)qaILxj8VzH_rvl6 z9U~SE_^Rp)782?qs;q0Ba`Fr1oEr~S0r+M$HOgAIkMqK>5Ix_AOU^M5m#FfJ-)K2K z5|;G*!Mc?!eTbL0=^6O`Igoq;v?S*W588fF@i6QDOEjOJY~r-0trvUn}dqF@*i zvz+K5V=mq~7ozQ~Z$PBpn~Z>>C7K(V^1IO|cOy`sXn$c6*-0;I#LS?atDkGW^0yI` z>6Acw=h`77>iJ;L1Y>$Zz`6dO2uC<(RVPUK{%!a<10HEIKE+W0U2p{Agfw`MXZgqk z(GAdQXRVIsZdB%=so^ONdgL{%Q{2@5q;pm*)XGVVv0`Le%R`Uc#1+0fZclDsQ!BNrtW?tTZAjWb*^xN&X~t*cqFGP^&dKfE`&+vh~7{lqXzV| zbB{9`z0O?CV$a!SIS{E2)M@ti_7~V3jI?lYINGvlOP{<3`qb4L|%L{C?!V@(Qwc!V63(5U7+YfSus!Z0$ISlAN)D5YHe zjk84FgbPsePuN!u7)=7&JlF$b+hh=pH3$0TO^UW3{X`4D8MXkdMUj^U;nQzM6CSVn&zWCq76dvq1gLklWG9C1QhS3+g413B-RiB8l`@D5m4ng#EeSb5~$9W02s2S zaa1J4rUBuVGul;iBqM7SEIfBr*`unqbl8oC<(k}lKqd4OI4KIzC=43UO^g#PWgJ$B zh^A1ZXsWvjvI^LO7ePJeb4Ly$!bSZ3skKlw60vs*|LPih;a3s}CGY+4XF6+!p3A4& zSOqi`wZ$)tEv~YtZa7_520vtaAU6PI5p@xaZYgjTE&Tcvj#D+wy1br@!ElsIq-3si zSugj6k@9F&5}*QWjUF;Iq@ZtjoQ@n)_IKAqsHj)N$^Z)wv^7t+$SaVY@&){eGgI&# zpkEilYGfAjai~pYh&U-h1x|c<4=ae#IIwX#E&^N%q0Fq)KEZdzqlo(z(}H!6kEND? z)8Ft7Pdsi7Rtj$EQxw{+;}C4I!LUy*0;LuQu5yboD`x)dXM(_!SLzTWdEIH(8zGbg zZ(tH0<#dY7G6P~|qxEHiI~j#kPDG+RUTL>)FT8UzT~To^SWXA3U5Ir;)7WH|Bz&Bs zfNo&U(maVzHU5l>to`#~%grXN+IPjIa*u?I|9MPD0W(0l$(??jmK~ur0kAOVP)3IbM zV3b?qq<2T7DD4Ilgh|4?`0q?{oEmZpYYG+9$|@CrUoFXMamVHu$hCf+Nxd90OhX0o z(m$0o931fzx5P+DjIVX?NTWM+F)>B)+T$F!cq>*W+boHED?M99LrWM1ekS84aQ={u z011molo+0Qh5UMJM$Sg2weNdkSur*|fyYt(_0k%s9)zbz!^z&zoi*=!5P0{Vw z_>%1BK~&IapDB$1WZ*C%in3_MF`r0!m1ZYi5F4Fi20Zkr+oDBba?u1+FL@HYSAjtV(V!XNcOsn zGA|l)6^c}wWwotjdroY63l*G%Yile96%RB7*srxRk14#ur$n+O3frMJ&7-Vj{K2$+ ze9_2l z9xLOY=d0Wz7{;Vu*01x}CedhiN$`vPa7gr2AaS6N4BQceE&TY$+z~iy(sKOsu^F9@WJW8C{YD>FUQ!$5*Y`;fJNG#J z7(UtI6T1~Y)q8c^*1Aw9B+y0Wr>DS}5eo29#i=S@>r=>#v@<8QQ83zG0?KEm(_n+p z7)GE=Ju*!x_UnoJ0esTFD=VQ$3EthS6Onf(O?TRGSUxx*{h#29Uc91UGt@y8aiH&^ zsuIkU8L7n+Pv3lL46rPTgIMZA?d_;no+?}duCWU@t{`Lsr9ZdfyH@$KeGYK<&qVE5 z_{cPK#brO$eLll71v4-7wZ?4}6HRDB z_c;N>*Y=@nOP2x6EL0&P@a)ZV%K@IWBX2tijU+}r`dKjL{i`IOT8zj4CUW{F-ZP+B zC(;+4LIw4kZ$DY5J#TijsGMclgPLlU{^*`JTP$s)-FfTN9|?8KP^SJuqgt()Eps_z zyO!_!yN;NV)&(VkG!m6l$uYi#^rr(bLYkX$HV|tMuv7@JT!R5h6uxgJ_Sx574gtrj z2F?4A3+cj=`kf-9^HraPw6_JD*W5pU!6_@vUU5#H_wk8fb(geOV;qSHdtFGRb#5CFsp0&L~@l`omzwZ`z)dZ=;C6r?}zCqTu0;tsmsCdXs-qwtG z+`cI(9B>i^nO+LPW8#Doh`- zh(4^l&IzOlbf&`;NoeXqVGJO4h9QpOgFqMI?{R6)S zQcI$GBpl)F-uL_#HP175#o{D&rq88gLsax=(0lerYN9jUeB$-n0T>@Pqiv^1hVzJC z3#th+0I7XYWeH_SQxzYGmoP|dhW`nJmY*?ttHBC6!c=TyqJlesj=ytl5g>U{5MF99 zb@jAML<6>w{^|5^ax%|2NVNoCzL9k(ci+C(r8UupwjIbL+pcbMgG^ z`fva7pMMws!TkIG{3i>gQeW0<;C+M7<<9whJikQE%P3 z%X#j==)K$iD1)U(>#^+sMzm9*5#iz4*!;BazZ0E9ss7A z$GhVRpHw*G4E5hpAm#E8MUlIy@ACrX7JnR)CcWkZ`YscwL7Yx zklrhKq17*qeV?p5!v@=wjSb~%>uZ}Nt(qZ(f#IZ|00Z(iVDw`_L_m*cEeL~l3N|9EN^Dly@;aEF$9p`8~kEo z%@@BVPB&<5Sg5ibF((2~NLa<32*3EQxj5fk2=CzwQg9mas?vH!eNu5<1<=9E8B53_ zV`6B<-!_umi?qePzb)T8**tQTtw4tnRIAb|cA0E13vOc@#iqH)KfebOvIp#D1xOS< zi}F_KKrQzMSp$DcpZJY`c^Oq9?M12i0z-^q0*e_2`v=7awhQX;IS^jcV+!yG8VdcC zzfHNmMZBTc-T69zl>OE@Giif+qzzbF1{?YZdR>g)?vVR#ej{cNxR_5vY1|MC=|pg^ z?sLazsSi1>>BOq>T-vpA(^GA9037(y9=gc|a<>6uSAB zZ4^VnP&WTdej3BT7J5LlS`^#4CChq~|Ms{KTL!Q_*zs9_GY13QSW{#-q}oJWAN_oh zY3NH9N1_*E8NJHUR!T&YY$Wg|t%;pG17HBtB2mcIg!+YYM8)9}ID1|sYWeQvb;iCO z?Mxnx)>e7WZMQtVuw>D%zqgipP$tXdj*c2gRZ+ftDZC?NKJjC9cqx`#Y<9%U8qdcH z3I_(-fagIf-@1|(_M7rK3NIZu z1@l>wG{W|n>;VT=vT*fzMmC*LJ)l3E#s2+H$pUH5nF!Z`4nm3wwK5!C$Sd6pcJ6YC zQYaLe#?@MkD{5(UXB7K$%X6;mq@frRi?Za%43nO3(p13f6LrAbrnD?Tu4_BHBP4#I5H;Q9&OLn`%?y9c=|+4>RR6i~mH%SZs}etE znq!t774Q|6ouWF@bsKc0$(Irt?-M4mDc%VDg4r;e+3}Re7zjblUS;2ZIR!Wb3?qyh zI3IuLc5yW4S}2@nRkh{YyF2Mos9p(e%uY;$GY(SgeHw>hPzj|JRIys?PBe>3GlJ>% zspb)J^+h38;RoR6Ybo@0x(!||#mb()q@nOaSp)X%94+<;EV-@=`l*wD-%(YI{=y(5 z)y5Te?&pg*30h>pL4E919dMn279X4_|$Y$>JYseW2mD4vJ}K(HiAA zhE$!}8X5w6yKR9FFlH5LV`Fw}aGPx7D*(Y49~2Rrwf>SUwI(Jho%XV}k4@ zO%THy63i$+_a!<7ei8<|NiBZSE|zcc;u=?DKi3Gnu1mxQOhaB|%SxDH-gNl8(P7`1Fy^Q)Cw>)vAkZ8*AZ%O!5*?d&s;VaJhTjLB+$f3Ysmz` z6YSCiTU@V9UZ7)A3P}a#J=6>{aum)Z*xFY4mu0--wS9&g`ju$2mrA*^QTFyjs1(Sh z(|!P-e|Nhn&@~FPL^9|OnJ*LrWYcRFa%`#Pt2`tNl2b}=``%8|IFQFi*BlmITGNHD zOXWrE*h-OLa6Ppymcjxn)ILuVG$4#+!iS+r;d%ItA^6^ABM@x(@if|{*bwh*SGFpgw+rSy(zGt98MXCVaCYjCBq|s<^(vko+ewlJS%f1hPICq3S85G3z{z!Ys_Gw0 zp0+wv6WFG*4U-arw_!C*zFuw^MPa|ckrQfXqcpzPWJ-!G@?n8MTHuE{DJH0(#y+|u z%d7=R5twfQC)(_XKByNCMKufh%mV(LKncc<;Qu&V0A21{k=<$V5E@;1` z?Hjq+N31B3KwE53gx;qlcVb-|I%zz@Qd)6sVS0alSVcV9bud`5b_hhgg#@_fZ8R)t z8*iz#rydqvJh|E-T z{MxnXD{DG@Gh%3g=p<&N3!~tctHep!E>0I%N>|9pR6b9MCTUi2E!p(X+)G|qaxe%J z8Y#a-5r!olt~3msWW1oBp}dVnX>;Mxgf+t9be+B#RicqXQzGM}cmObW%#UJH)=JTt z@$6{A5^W5~aHuKaoE%=D@nxEdNE@dC`uMvEXyA)rdS zF1BKr|IYq6E~U8QsE^h4y5}hd(Kn>XFw#wIM*hRdk)kl?Okm*^fmlW)Tm_M!)9|k% zx!TzW6B!FoJducl@U=jgey12jdV26kj#JSB0%)|}pvSgZLY5y&gbk(OgivXiWRn3U z;$=!=qKOd_Zc;H4lznTkP~`GgdN9MXXK5UaBFDH)ZqLMpT! zZdj(hXHEu)v}+YkSy~y59Vbjzr0>rYCFXc96SG@i$K^z;Y#KSzDnUUQhL6FHqwnOmMU>VQoigjL<_=1 z9(&6e|Fs@<4-P%|>zbnp8f1U2|Ee!pFW2=VB2JF0g2xI2HBnj~uBpp&{DZ{$?|`3$ z&E*rZEihDMM{vtA@@um+b(`#-aM9qghh9l{~lj|sfLGLI3JZB7Hl z{n#OXMk|-1-D9ySY$z3uh0Aa+0CmBLYcQMYWgTAWV=*^OM*ff;Ii@hju;R-3Ov5!@ zTx=#A(M*1&TGp)I_r2*k)IeHx_$JaCot zfm%~A6GX2aWHHPWSU%EqIT0BzVhyYKU5!h7kH;cle+vb}SpWuh6S6Hvwm5#QJjH4F zo47-`+zsw#tAfej7&jXiunch~>W;+a&RC?QyK4wxuTy%=9g_d^z29aMj~n43zjdCB z07k(`@Z2yA0Rycg&EWWqb8b_F;VHovy(6oD39YQ}BCcD>p6r8y<_sUT4EKEAJ4UJC zRH>g9X~1U-s(NkB-mt3h$Iy_xVpea;*r>S`uFo z8G}Z)C}3`_=Rgnv^&!&{;SCb#=n zOwC00CAcs`{SQl^c)Ke!QLOx(u^#H@1Y?q%RV0FZt+ zI6`>;G54vZ8+o{@yH>003D@^<6B(l=9oh!lYhC$gvLR&c4N-Y&s%Z^LP2(N+QmD^b zPzJi-bn;&Z4QkReoh0H$JPq6`%*EIB+pIg+G|CYXIx!J6(diN)=V%bfn)tj3; zV^f;S7mIAu6(+{&H!ph4R8ige6%`mie)j{?KpYW*)}*E_%6~n&tU6n=iqs{F(pKHh zgGSaJPy=+Y>qUSCU1xAfMk&U|l=2jyWYb~_aYenuzaPzi9dp_w(>ZC$$v3I@nOA=x z(P!mpS*cL9+e;X$C$NDvt35P$yc=`(a-8hI&J%DyA#h)gYd`G!`b_>d@n?b_us4hB!F$Ca$p5o43dLnv-Nw3R7?Tkf2^FtIO;upMd}ey%_BtEVtv=s>d@UQH>?83V=pJt{(noM4DA@s8n8iU#S_4|v z_odjVOIMhTJHx_2zSUszC-x167U6Kzg4cPXO+?i(vAwHqAHJVevNsP|738beFmRb- zPeZgT1%`q4?ZI~UL=C^#n-Co)dYV?)GXf8nAE<3*4oi8W$mxi7Wve7{k8qf*$Au8d z_k4G^qF~f-w$|uW(Iql|lUKiJq#bWmZ+PrPG2IaU)9cgmf1Ua*ie+VFiC1L}HDUBL z8T}+Hn*&-J)HWK8sPJ;Ot-(^O07*c$zp{b(mPv|;AR{Cl%W(QgZhc5rk5m4;VtT@H zNyd7j*Au9inAJ~<`i|u;`ATwWO@kTS$B>TQBmKbx314q1sCYW@wuxE)!~fN&X(b~o&${_b#V8-xk_~Z% zn&K!BwF|W;83ZlL^A^ef73suDH`l(UKCi9jZ=T>-xzoM-X5|;qkCyJA_Ly_pw;t$V zU9@8CLia_|^xd_6e4 zB)>X+2OjVTW%ha%)cz+6_@DgW|Mg$q|GE4hHy_u(_%Gjo{{QiBlmCPHFaKRW%`$M( z-}M>@IDgKqx4gABRnQyKvoIUgu6CoF1k5C0B}nXeO9* zC~f)ArlDQ6WJcLiy)-GLg|QM=QFZh4&^Hw$=Ok!-6@AKxb@>#B3s$d6i1=)QGq z1j!Xz28<7@sMKoa6!WW*w4R~tqxT5FUToxb3T_y-JS6JBcc~7n!_qvCU@{?eZB24b z)LpH<*XoKW9qvXZ9>2Y;eDCB1oITIHK3|3Q)a7;OGxN4F{^-A>?+ z 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�lI=2dehA`PsW}8*)TutBuUvvM+OOD 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

          *}7NSK^1Ak?simrO2L#!dC2n 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

            Al)MWeKY=f1>@g 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

            YDFpSgm6$&_)j}fIUPLg}S8;iXWb4N}wmfQk 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

          1. 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

            C@wZ(6L{UQ4&I;JX@1Y)1Prl;?g))iaQixWB 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

            d!2N+T@)U%bg5vNk4+ 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

            k#XBp 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%0Acyj(Gx9^y;0Mm7^t|N3k$`)EV?4*G^ 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 z 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

            KCfpmg0`lyDbuer5;b}W*JeTGu@;mhr+uaN$PTU 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 z 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%0D;(FD0Y_PflQ9Y?HE-)_r{7MRSY(SfpIYXx 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

            dB zOfbQ77*FA|!+8rhd-aCzJ!jS$_D?)tm0JPtAf8bFzIl; zu?%6`eU(r4P#M_Rn2m74TlE27F4TJ@zGHYYk9avJwz>MTo2p2}bI(|q{Yw1)z$VRc z&n2uXEz~6+-uav-{thss38Ikhb?h(IqRYPf_x*m|dHCqUvx>8{j)H1v_&y7G4FAN%rkb=j$;#}d;7hy-Oo)U?YO;us?L(?Wf->mZ?E1|T6%g?KHmg8E32=H zK;O;PRrCGb#pfqiiM_i{TDKDE+t_^EM|D>y9pmrdaA>rpymiIO%4?GerHS9YB5)#Z z=j-)+go}>O&dEs$u?7ec{5jBZR{;n_<|EXU0Du!0rqpC~(t@=i zr3}82^0+s^34j8Qzm0>fJ0#?N`DM!}m+pHAg#OPfna#nd3lmzR1jU{)f*{LKw(`Ae zQ6-0*G7*m7>~&bXf|IkDgWFR^F+y`f0tb%a2sf3Xe*;K>tqYz13Ag7whjolf>d+Yx zritYz1fWBLNAaTpp$tg)w zQ_~aIlx4REs?-U#fKOLX5AI7sL}sS-Y2l5cE~><(t7Q@zD^D+=u}XjnfC}4;3Bxy7 z8Ztf~V5A_bD00W9(GpBNH_9-v??N_6KbRds5a6g+bA&Xnl6j*iUh@V3lB^zIaBwkm z^f|8F&taYeaz<1dUi`OYNgLfeXZp+XT*N_Z==eiE`&H>hC?REmY@kMzIUR`Pp6OH^ zkCAcYMQ6-?o^a+S;qb8gVdSZ8UZP&t<GFm95nf3^_m{NGiRXr&OtQ!_f8=DuGslX(rqVxV#?eegRU_EEghxCuJ;axrH~Zp z*(H5aDm(mk?Co42$P~uIO;BI%-*#GGv^70`j^<`v#$mbg8xS7?`~U| z&OD$#HWD;Hyne=3w;md^{;_?bki zFU@`!#mPk^Q32VPtV`TC@utl+|zdTV`t{VyOCvBmhe$MsJ@_D2AYc#AgS!DBe3!28_f^Cc4L{6ReMs z1SW+pRxLg(@4~gO=JD8``AWtF|V-{5TL(2 zHY_YGV$)Z!;!JRuWtoGRKa@1KA6oQUe6;f!Cq<~(FcbhI#>6kE()pXdFr8#NPFC@v z+_{H*yCXa30Kl}nyW76N(WF#@AQpUx|J?)0TCw=)&^pX$p6SjX-yAf+XyW6#uurP4 z?+Z=;s$GQI>-}Q{4Gotmk`Al|D#0pce6wU)_C5mf(*mP1@abMy3y$G!ZnX{RhRno} zZySNV9}H^NR1cvKcm-Vb1@`=n1q=z2P(OehecjJKk|w|PYQ7EUKUpwh@aI2hfR3=( zCc`ErIoB(9kg|l7sQL$O$IZjdtIAo@_A)w`1GImb6oj>=Fy65meIQ_GCslbmQuq_O zsd<~eUa0$`B7>kbupo7zWXU%DxWo#XZN;P$mlh+*Hrp-Bldf;=6ri^e=}DYKP|KJ6 zh@1ykbptAtHF`>m%MuRwk>*#NDnzlo6haA*O%bEq@)6vp_=J)|1H7%MjI%4~<%5zc zT0gt+IM<7l)shl&sb=2ZkF%da1`t+cbMBZYs)GvEg{GQ!gT7MHZd-R!0ark_e1cc( z)s6ur%V2NA&*SsbNAV;kkeLWu{6>Dt@qKnxBtbVcoM_0;!nMPRfRl)^wsh%8^^sk6Bq&Bb0+8$VKxU95+r(uid-w}!(RBZ;JQF5 zg{D{~VZvom`bShsXUiY=dfHD0981QK_*^R&34PvQ3EZeVO~KB zD%Kc5YrKq=RnUlZ2)p2*J@Q$=dp-oX;B|70M330-uAQ4|%$Q{es+)_)P+)Jk#xS#fh`4tc<@-ivR z&RZqp_xT)IszUN+_~s%#Q$Kwx;nHQ@C*Z+zm``f zzjj^`YLPS%$6|t@iI36mWxs2mio#FK(-&=cE(_#CK-;1^WNuqt5vV+-9%yd=mk2|H z!V%9U3-)Utei$1Y4{q^JKo{Q3SeAN;<3 z{B`_|e&YAH|EHt;A%6+Kcz?6|6icgd63F~EvBa$1)6G``zxQat;OXFbva2lAof4*% zAyK|zFr5t;kQ=%_d4MozPNcBpq1xTk( z$7wyfvubN2DrwO5(V|UaqlM;Z_U@VXWskw7lCO0Oo4Cy`!V%InPP{v{8;{J-Fq<+W zwCZMW-{X&r4x*s)rrm)|XkeWpZ0Kx!22pYD)6-&G^qS*&TRp_D=X0S5>05Zq?>`^v zvB7t?9TFx?Cp|4WIA>5f8C2+5BrG@rk*R`F?mvqt)Mk}#hl?(ZNP2Has(GuR(3g>a zVCg}U?KMlN8k)MBH&%`e6fAZQIe4^gAujL`HJtn6Nbt0cikQ41S0}LMm#Q+C_2wZo zD@=xMj2c%5?xQ}Llx^ejXnNOt3SiZvLRn1R>B*LvdA>a;FDp<`0w0kc`iH=Gg{J(Q z7J@^5Lb0}m(geijDj2B_wa9@^6Ef-dn@FVPqKFnf!)6{F!#O6AX1tMXEqKUCc?f&p zHwaSt?tX%6K|Z~R*JY}zzFqKEA;NI$ zqaK*F6!?!}2WtE&5?r+`%R8}XGrAi|9b8JPYy4#M7~W$;!-t+>5%UKOLy2(i;*neg zoWiZLyIEBQHBusii#d4J*KG>cOU2prR}mkw&UR&n+1a5cww9_jA?ZKF`LG%Goe9v$}qI#B~T{O+EEd8$?gP}PbhCOhf+(4gy~gPkPw&Nr0ODaMd*BW zM`;@AQV(?IefxBRP-ohLDSZ%^)i=USIsY)P+5Tbt90}H^=T4;WtCemd9SG3Y%Fr|Q zxNEJ9p`RlNvsWsdd{1j`b-)Q8w9097-DW)owyp#ptkCMLsLX9fA=SJhVKPM{BzcH! zYT4*W7&tWKtibCjH(p@vS=;OCswTfUX~-IXKtIk+Q(nz!`g?>)DOblU9w|pwvzaiB zp^R)ZkO<7jp1=#5_Y$NYyxeor9wMgQt`OWub(9aYrt>?`88{gX03x1>EAFCm-atzpuzb#9EeuE?( z{I-}w>_|;)(m?Kl1`s%(5X+^AW+(DxT|qA8TwQ!_K;Lc!QBo!`@2OTKPoeyfB-nz@ zA}_zHv$kX_Ir?D@p*C@dU+S;g`tKLzDBOF7MUjYR9Ueb*QOR*HyEkCUdQS zWu81tle24mxO8g*uZiUKZ~@x@@J8P?|Q6d65-r+|CK4Ts4#TzWYVy^H1hZc?pq^&bVKmna1ool)>jUCow`il=b_g zcI;8i4s$RJp!lx#%UoZ$5@pK-5cF(A1=M?^`uZs_FDEj$TFV3~0cXDFoyK>_?_C$*>Kv)Z?lxb?x6;gD`|yXACl|?i zNl>!WxNO!RytKKqkARlK4|Gkgx_uslulte|I5urg6n^Fy{W11G!fvm@@tj8pHw1eo z8G4PBoorf#97zEy#{VH!2ma7^NPaYS$yqUdXgxXJ40fmRK>jVc*XM;2&ed8V^J&%o z%TsscmI)!1E3|M)u=-?|I3mTlexnJy3{2ycX57El&*P?+^zeu}iuzy-qn4;w-QQM- zR5Mg@-gpCoZ4UzxVcFSF1@N+Y)tVe5bu<6zu|KQKdDSsY$~}lr6GLhj@40v4Cpw4` zl%8L<7nNu-bTXf`#f7c$ctx=~?TAp;evPSJyHM?w`i#}6K)h!G=pg9XL6cioEE>yJ zyb<;W3==Ug#s7F9Ew+2ZB+hnqhqy9A7kor0rd!3ET*`2Fofc{*|G=rO$)WhnvYQ|o@RQT>JraN#u+r^Hs*Ql}DgKiw(NeGS{8P23%yTur6X+ryedU%1roJnX z5*!`ZO?x9FmbX#^zi}9@mB71F3T5PrS)h(TFsYHlHZ%4~fVC2RvjJ3D3#!(x--&dr zP`a|cG`EAl(Hk_|K&EI)g=L!Bq8E0-O~i!{S`!)n8Lz;tx#q-w#I1qQK<({|13&%N zzur+*(6R5||5}kfsuK(bgQT;eZe5z+DTLXH3z^BkC&PR&pgF^07SH34b4FhFvr56Dxd-YYGd@@$f3P@1MxF z?O3P|3oN{YUF`_tx7V4(HIYY9F}oeT^P8t#4|b7t_9l1FKH&IA+M3?&H6 zlsPtcF~ToKLf@+-b;H8p4l(vI=)NiR>EfA5tchhvvfTykJZecWajC-{L$G7TZ42E} zPrPPn!cPj8gN!vAVcNhe-3a)$69w@r7LQy9sy!J{qvp3L$%!dEeZ8u4P4BZ#Ux;28 zI23czviRQ9=yFI`up#g2+@@l^ACTaWXdVjq!+gWD|Sqb@K!586r#A>M5oMf0J|$Tax0fFe2Wu zm(NxSI93({7y^g#Q4!by654I+h+GC5)VO%C19_*+!gaNosigT&8T!h0|CsU8KS>e# z7FvMcZrp15)zDq;7vm>Z6H)$t)&#PYHd-P<$-`+;Rw^7$!WjX9oq} zmy@z^(OK#gjPe1c5;k*t*4nd8mI?h&KQ@&}b)~!+Ee0RXg4U~I!Y)s&p?;taLB*ta zz$S)<1bWUOo6o;<$ny5|SG=>XEkB_^-^5j92P0rnOc_)*ryipL&+zRekn8EOci z`$-zaoUebN6hNG}k?{oUFIh{&NnvLq-W8nweY@xX8AJV?-Tn#vHGkX%k`J+ zS;u^6WZ4XrB@ZE~mpoR559U@X>oV0tW7*4B^^0Jb=@rY#L2%F^yP>~mnW*qR(I+EP z9%9c2l!$3Kf+&Q7q;g31Y4cIyW@ue;B!k6$MT0lZxA63!CGAS&0JGec@!7EW9{t|>3KExaZY$2+iy6T^hHrnnx z#B0{ZUO$~y-vGTgv95~aQ=W=zOZv8*XN8TaZLZjN^}9&?Cv5r=4oH?)RRtb%WE~$2 zM`x+KN3AS>#^y7hR|zLhxk1SNCO#y*bk@}EdT9y@B|}0Ust?#Zx7Q5`CcAhuP;`m@~RLt5+H6zk$UQgt9iGnT2q8&vaAzWXX)rp-!aRzgTGr=1oqvL%bCSc2R`} z<}^+E15G!Fb9hmfH`f{rca4H^Vblx$Hp~u3Zj@2QR%Q}LBfZ?HBf_(EAFlz^Y28tU z6X>zg6&1Ja3A9kL6p@-PIX!(?56=$XO3-H%%aUQ;o1`LmN|5H_OvjHS?$k#?N)0DN zH09L@uSl*qeRCk>{nXkL?aYdy3KiHoVpdmEbkFoLp2Z}&L!by9TQbq$X1+m~wWqbN z7*t0-)i2){CE$pMIqC1T89H*!uoPP#;05Sz$_ypXD0z$3{Xhf(E< z3+^LAvg@Cwv01g&`btFreV;tXQlkedIwye@D^x!KB##@}$Wk(~F(*`Qw`h!c>WHu}22~1T}O>8zkXzcVO=RQ7*Jw@H=fjEDa&W9}#qwdr+ zpC^44x$3lQ{pC6{xvEBxilEdjY=!+Plp484PP~^4N0)_AxW0M&dhW1I zQ5hvyexu^QrVw29g3&x?!e%SwzrXsON{S{;>OS^~);aLa`%qOw?+P|PyvChUpGL-; z{^wxD^s`WW`|c3hx;yK1|AZRGgoLsA7T2hVrm>@&7$Jc+%yH{=hkHLTm{VZN$mPe^ zdHn=$1P|_Q$zB-Y!tE<w6Te`&|5iqfVMA)-r4G4vhH|e!;JMODbd)<`YzZ6C1P*CPzIaP1Z%K z&ekKsp>K>Ck=!a;1#*C$fMjyLG$BWXNo`#q?cTjNjg{>`UXM|ms~k+y#kbfLe*_A$ z-$ctXJZ$fzXXm%;an|yy=_TGD_}X*``zMYX4O4vn}-e}>PV^A#*^spFBFuN?; zM~c{lw8<5+F{YXs4tADV`@{TN`Z|GvV=Zq%q~&M!$Sz^cNR5ij=?t0z@ii4IntOSw zLiH!GLFE-yG}b~0Gj6b)bmHxM#7r=tB8!--dfF?X*Q?yBI5o;NDsRz$&fvwj{hfAsuzJUW=gzs&aM0mw-NCFKf26CtT=QMoZ&CnwzM?~#4USG`c5QfKWX^ol z|M|ivtdgjDZ}iNaePjmoh5ix=7RbEC5jYvn>+vhio2XJ8v=SS)x&Iu2j75-n4%Vea;ftx8%2IvSiX z?Q`f=HDE)ZXMi3C3RsFcTrDEL{VT>f-L3e9mv&L)hl`vbASjx$(-VbDhVC@Ou_{CR z;|OrV&b^@|h7HZAgL5QK0_Rm(eb&;9k^fL3F5uSqxA@o64Cw#Gzk2|vDfc@T`G(b} zWOls>v#bwt^+{7!cZN+d2e@?1E1+9gE!b!40ELVNFeifwo{nU=B<=@$l?796+*f2%R4m|kUe zrB+j|<-@@EOw#uX2xX5jXf#AqDP1txPIJ!#F(0^ksL<|F6m*$~fhmk`-NzSE} zlvbNMD^P7@LaQ&AI26_(qkdr9L*E*U%O+QaJz`3PRfy2O}wkQDK?RS6whr{^&b0_?txRC!FHQwL(NBh_LvG?usE#&j( z^oLIs@t;-sX8#{n``_j_`*r)D^RISSQ1cjx=tQxmD&dO=A4?3!Ied@9s-iIza!dq4 z#&P(7d_anG^YmnN8l-UNC7-oN*y-~XlK*5ONgeJTmZ9OnGo5I)1-<;Vx4*(OZP+i> zdc(!e#aQ~+%;i@~cJI=S37dn@20^qJ7-4~_4`_3cIw3F%(If_QAj z=v1CXRE~yns?B;&$Xn(ih0`CpVwBiTB(~kxh)YGOH$-52w)V=&$_3k4kQQ*jKC4ZR z)pMsy9F;P1CT$gbe*JQP+6xiH1wMvxF3iUC4m4>=I2R4u{FhFyMmNWUcx1m@KK)rd zazw%jih3>KW2LbMF7k5Grt$u|L5CLKr0QglS$=J8?M_V<3#k=<0Q?#UjSxEWei|a8eF%Zx6@27^m> zjx@6HLUkZkGiEU6_m-a}j*L zj!{53id(U*r3g0gR# zdEKSbm8X;>R8GSX$t4(TRhceoQ#UxQY(l)}v?A(C`9*Kt-RxNy+U&oWodkjrqpG1F zBam-tt}#Fqi8rMB&r*xTW?dbr6=&>qNcb7EQW6aPhqt3MS+EH6X`WhuI*j1%n{RNWAUws%gzqfF>xlJ)B4A%~}JDZxh| zGp@J)ybB&Zjrxmg!=f^QGm#HUzrTRw{W_^{Vj_MHXr7O${WZ$BxLlZG`ow80w4 zes*0$lm`{Astpnh+!3ZEr5xy1)Fm>5f|LC23hI`MrE)#&DO7&^AwOrI1L!Xk9*RSWCjY_5|cPf}@P8c|2nt z2o70^*+Ze-!*M?!RN&H#z}AODrmm-gMR}boc5d)pd3SH99$!${)xN*NOm5z$#!;40 zwYTo?O{QV$M+Pwla$Mz>0RX^+lr}0T-R^dOmkVb(d*}Tm*H6$B8;QJ0N2ZkzG0iiC z`vb+iJ8U(b^}Xq-^^K?C;^yxMl&0EL?g+oM2K)70^CF4;DK-gE7oIFzJTr+VdgaR1 z6ZJM7qLEbKG;ty7n%NyYFMqp8dD33>ZCo0I?glyU^v1QTar93jt8m9I9W6Ikr4*9Ev;j#sfgJd@HB#`$0&T}%H ztW1Llv_l~VleM`0*^C%dX1#0i}7j!Kk)U=S0sb@hROJ1}vgEqzqa8t9Ke6 zAwWKhMCz?d?8~KS>r2uPtVRgIa=_Q(-LHtuG~%2!(3IFN7zD2V>71y?=1ZT^SyB;c z-ja%9%9zYbln=+1lXC8HxScMhvVMqxUB44ei)|eM9B+D~YNf><*n5#&P2E2}v?-#4 zAXkONIQ>Qb!>Nf@M$ITszO9*e9SDQIt8G66m)hSqnKh*;0qJ3?vU+a`EhgFuRS?(N zQ*M%nVTcl6QRrUI(7ubMgRd`d2x@Q?3aFo$c=g{~sT`@HXv5Kehr0595lMaeG{jfH zB*RI3V>uDd8A!95DiBrw=n==?#C2{lgX<`0V1eWyq&IoGLzNx{7@=Q zJwglYp%iZ#;;pL{!ss2uB0kjbSuDk=$Ui)ZGTJXFwXS zGdp_VUNqrsw`Sosns-JP7r}j&Emw>=(q^oqg^q%`Wf(dg=4sV12;Q$mZ6tHrLZjZL zya!EG40B=Nd_ui3izhE!g{WF*k`ir$n-oGiVGTQL#soE1N322hV6r)RVi!=~!OKO? z%x*9!NL-JvJm{qYWF|}$Tpng2+zdz1xP$S-5UerJf%4-HX~(4Bt4V>HA|zV!B~ki( zU7Sh6&&6NjWVH~btVhc(@-m|I-`7pM%{igM$OxjUFnpCoGAa#Gfqv@NeSv|z?G@e~ z5yA-p6KNMDV&{u>jDv&1-NeWV>qygC6X~2wvdYKq)kOTw;~6>ATg&lM+p~63E|x;jV)1;+pt|B=V3A$-%7?1_Do_H8@(W4adNlDiDsWT)OkZ^b_XZvo;{j_7rK;RI4|zyACFf9s$5 ze=~mt@*#Nz-|#2?6o0}W_)~uhzu}MkDSw6k3##I1@5JBiZ~GhH(2#G?U-OTgCgy*P zf75^BuL=A+@VCBjb!^c+p0|;D6Q&dJNr=u6zo=1?FTUMZ*U)4C{ucT70OBD40MJLK zal}!`6q2c(H0(S1)UeKr1Ker*Y{C7L{VPo!9%ddLhZR_GMSOO*c z4xbA286;S@_soFbF(~>@&7PmzKflm?9WP(;NQqWI|CUTH9pfPlldWei>5)3m>gnx~ zYZDjYYe!Y&^N8`B`^(=k?_gh7XH>U3Su^MBetI&`l@1G4!3lh%{4yl*Y2$3n;tS`; z!$iP>8PHs@t0OQpE`(0}2L3OUlfEXbsbl`_^aW4q!&G3%2N`z2-bCz|Ox%g79x>i6 zvT%?uj%7|7>u5H;R)3NwyG{=v!h@#;}pfk58SC7@@ z7_rFNzfkfHwyAX{+8X1BaX8)UCZ)S$KS@AM8VKo#Xu_SlCxgEP2_oGCHP7OB9J~kl zu$Ec%pPs)&45Z2Q)i(eU3!+YN&dQz5dSEc6Dt)~byx{yxhSWGQC^gzb^FLpjVlpED zEVr)oCT{~Fn7(_ADFi9EdO2sx!Npmwr!@EnK2u^1J ztQ?4X)@=TfEHT5jw7n*kALYJWzYCe<5N49BP}{Gqfp_BLaxs?IbZKTB7n)YY&NIV_ z!gPsizubu=^Fkv)OMGyolRCP8F{?%aG@l8s-TN|NQUStwMZ1v-ii_u^TWbBMs}-wi zetynEYTX3R9tonRydtgLB`>F*;ow>ZaHyvVxO#0G-u+oQGYzzE5Vc$ACWdWuU9Eaw z?_muw#v}eb5a}?rtT_JjuEPG0u0;G`${g<|B;uW-&s3+NiQJIMJuHg~MfuY2AG7ma z3?pGcjZaT^Pyk&BMR3XYhKmam7jDu0Sb0830@=nQ|9*xn%#g8@>=ct4Ry0)~67s_Q zjDOrS>3j9M!VP&%QUkp@wg``h=)=_E20R8yf0TZyf*gGwm)hN+L^f96hTG{-W-Z8} zL^RiEuGc&n&`7X?Uz9f(=BtzW)iYt_U$A*|PX}$NI9p12_#7b!JJJ1)O!taOX>xPu zZi_gyP&|punay15jI=oc%Yk)%uF89w|IHjKZcF{yV}Kghe!L%USJEppguKL zXt^mL?jJ_Vrl~2|^0Vx`vNb+ypmIQ9MUWUKu$Yz+{`nx)0HZShBJ;g&4?`bak zbfE+MqLAZLC#bG)KjW}>XQ+Xjv?^QTP$?KK-5!#!^O8so&nF4r5959U<5g0>6Z$gw z9nL&gZFYXXL83zXXuxwfQ~7%q>tFWmS_M^8k8ZsD=ea6sPK)Ignj6CAl&YCn`wOqj z&L)uMIQNiKeL-l^UWM+apXr?siP%EjRg>%uS76OY&1(qim92B2wGdC|L7L6fzPjA6 zLukLPMTKh$s~?((cB7o>EVz(9BjLrR=o5R28Js#Mij3FEV4Jh}CSDMp{7K zY)P@as%yx=ks#t1r`WFX2ZD&*M4X5=&*v(k` z0f^2fh)s@$#wvCxxOJ9wQm}1hkJ=*kq&~-pVOHdbAx&WLeKQ;K>mDnrHmW{q0n2V` z-Y*U~fp=iv>A3pX`9v$cX&`=7AGY1Si%TitlaO>Y!Gv?(U8YjyMQ}8CZ$|V`HIrtW z2n2Ux@9Lm#DgK{~5q)aCSCZ zaJyPw$$&e5w;uA910RaV*{cO}&A;&f`<375-(blP{BNZaY!H?d- zwW6Vcz^$#V;Fif|@(^KeCjpc#C8FkH_>p@g5+`vQK;ZOkByX#Lv`t~ipW>g}R-dNf z@W^u%_ajp#bC!GD3CM!<$7-C38G2iGMq?Xw z4e1tZ)JBcP1t~vJ<-v}Po!0D|<+d^)2dtE9(1#flLlSiT^Byo^v_7eo$coA?FtYCK zv6=EIsm{>8LZCw>B^IMFsx9$;L0_YrCZ4y$OX4mvOL8spezCcS3^9-sO4B2UV$9^K z!zf`85~MuHL)#yvgK16sJEYE)3O1L82)adLB#nxf+7V%c^e0xY1k>77JP^3~KE=`p z>Ly=b{?+7odGTb=<|~N-kPEm^zYR=#&xgtW*qe+*J8xljKK@j_Da2=w+Qtn z0fiG^qyhBk`eLYK8QqhrJ6$pxg*6hu(-3Cy;Ju@EtvsvZ!4)f$1MBVVgW;8xZ}uQU zOHpIq=8$?O-%c?QfHbQRctNIsp0Q(&&@5935|ej4YL0y0-L-itEZ#PNdpCzQ1Q5@V z@6{n)%qg$je3S|Uv~Jnp&*OT=0I6VL^bNz0S`Wjwd)Gc-I3>rnd20Uh*;m~@&EFr( zRPObyuU=bb(sw)VBnOM6dYVx`(yBL_lm<%H{J&lxQ~|H=rpCTs+sWnyjcGDPu2OlW z)GI>O+vkrSyf<}q_3#Ab{smQ}eI*pYD9eZbaNPA#38?tNQ)V=V^JDr*uB1#=58DH2 zU~03tYlUuc06jSFEIAD3>Np2Cck`I>sAJ0G`b=;Kp7V2v^2C_mKk zMVW|7DdVlIu%<44C)%`bT566ZLGHpJm*7j@8nM}Ruq{d6J~v**g%1QE5v zrd|(b{wq65)qrC2LBh9Q2uxoLE)O;s7D+^`n-V|X=IKieZaE$Gjp?v&p|As1r+&3- zoK01TAGSXq8AG04(ENH^k5rDwQDJ{~dnwV%y*!g2)Fq^L+l_`7(N4YrJ0WbRfEh%*F3ZHe3+tU+C!~9Te}_Gf zx|#7#QX?m$6H62~*3TxC#LvRP<)6AtGS=WdhR0pV^Zv$xo7XCQMF0odULx$1%gHUYg|?~H z0b*+W^HF1-=D)_e>QfgAK(eG{XLXAg1xYb;@T|4zQgN$V*4WKHFS!FsgC+Kd72`p@ zbPek#obYp3rqbG!8I|_X>Ir|vWF9Dg8huZGh4+`YHh(dYM)XmAx-8h6={XuD)q^bI z+6e!7u=&>jKsMw~b#2O~r84kK?`l5dHWUtH96weJc1GvLZUj+u{*4AohS_X*D-Xbw zjL6e#=5_MyermQ$52;hg)1$#JJF64tl642-femQkx24WgFvli5rgl}~9x#7DU=_;g zB_Q;UP3YS@fcPD&#Cf8>=-A7@~3hi3Ai0jP8 zw#O?)%F-YK@=(gxtrbW6WhJ1RLFq`!-*?&}DLqLL*QhjvV!uUo zp7i+KZejgYKcbPtHvTyhx~;l9%obnsuI~MpC-Ftlv{k)iE6(2!YW{GmZV0O+myV?U zP>*-Jgtg?=i_~P0$Jq*&;??Y59XFGg7gsG}tn0f1Ld?^V0(T3a+q_f1 zfHC)vWpD!3^sw7J+m#fF3`$lK;Dq<$?)&}yJ*|Xe5_}C^qd`0V@y$~q1F;VOE<_|b z>>$ou9|2dQ+<9pzTMcw$ZTla)RCy4J#~gPzQ(kNbc)`e%tEXoMX2p(H#gG19b2d9Ql{K8 zx6DDas*PdycEG!R0Ak&U`KEBeQb@i7Aj%NYCL9pTUv~qdXzBW*xwfapUX=d06)05r z!s@r%;`_B`j2NUco<5H4?H~VhT6g^(Fe)P(F+Um@nc4pK@^4V^;@-pf5?YYFKT7iONc^GPUYtO!- zqN3r?o3vMRoR0zwUJ8i#fNY)XU@@tKai4Z~z<>nJ}ik7?E_&{x2(@Cx7@7PI)JU=Rjx9v>M|3=ETTcgIZDnUQP^Y8~C3@ zIcm#K%PZ2d&6Zbf6a_O?-X zGmeFqL8I*-G8aL)(p1ggG;%g3dy%jVTU*viLzsp?=-TT(%kzjMrMK~yK>5AQllU?h z;e;|`;Nb6g3j(_f3rSCL!eM|8j*gBKP z3EvnrkDsU6&;>A99Nhf&7FJeTt6w5_IBQ)Z+ZZ$DiXR(Le5KB8UiMeov=UMlq={V( z4FU>mXqYmjFX!B97+fVwRjtLvM+BBuURhJ}v<|2`Ap-558lWK91XJH~C1%6*@YIdF z_gZ1NWqw;7AIy_bZKPhui0_Lq(Y(=8AzyRwa^gqjF~Ud~z+wzGoZxbd`mgvwodtIh zwb#OIHsyw%Ln9JLMNF%dRUv$0TuuDVgR(aK+Wi|ltE(p6H{S?MOceL3t3;r6ofYMN zr&&p#kK~cp0ikGR%NKFFQM;rv6_Fbv3bR(pL%@EfuRZDvWwctRY*v+2^matW4=+}` zB_CgWedP5W*DsBoSw~q&B{h7ztX?7OkH47VBNTMi_(?v>Ywcp|es_|830^H`9h`8A zxt~8s;0!iiPzUZrXypx4B_;g+$NC!wTlsv&vQ{|UZz@S6CgWrTvx9TCw1IJYmyNM( zoE3E7HYD0n6HC^9q^mJ%HVyTOVIaJueMuU&oStV=u7PGMi3`;^Aw9oZbAl89jb* z)IfIhsTP=XuEy_(feGCfW51S_Px5e}XUb7Md)ZXjO9}`hTpndWJCZ;%-!^E%of>iioLcX^V7OI_J+5G~OpJ za$Px&*cA*~Ox?w^e7QRM$V(n?Ajc_6+RD~Ecwen2t%7SdPdj2eY0Nq6-Xwos#k4LAD>;130~=V-ar zGOc3C%uWfw!+nG4My4jhwk5y{WUu^sXPu*c11=tHBtV{IPM`4uGk=YLf1NM*f0BQ~ z`4GjY{RRIo|1y65>~H-k@b~yR{)812_Wk?+=m`R{{vP&9{~(?I_R1B)tS|H!U5@N> zf3a_A{ZQ@m-d>DFkwyXkiKJNA_7f!y&05~2J1>}O;^2o5K${{tW=ec!ey&V2OB3o| z{$qOVZIkPT$toQQ3{}p8S>J}o%ooz?jkH|m~s#)zLl_L`xcsNpT} z<@qh&-*#9m-SDojo6qiUSmQ9!jF?Oq-wUA3&tS~Qxc;LV$tMep3cR!C0T(0N&)eLa zs@cjUoDK7!>B)I&v68buK76;)g<)4_3{3_Wj$D7;BwhiFK@Sx-^sVlNJMFb?4M?Zv ztGU(o^$}IUku(l?J8umZ1enF&sAL5+)Xh7OaRRUrzD{p7uy#PEIQ}LKyKePlWDnw2 zAWVgcyP}SG^FE?Js>J>k%$W#Dt}W&>uU-f>1pp5)E^ZUQH&B+ryzWKUHz%6Hj`s9; z#nDqwbP1Lkq?Bj-S=8I*vW48dh25&= z`{(zY2qu9%x%b;LanMv_@rg&Pn%S;4@6)W~aO3qyXJ^U&VBlb}!OzJ#IxrZ0xn}bB zaK<`Qf7b6Xf9lB!VHn>}O~jZ7;Yh;+0GBO#)2_aaAZ(C}6a~Z5uEKt=ees{|isa=* z3(pPnkvk3NKy#-e?6m|{qvQ0HTuZQbvB>vC?Nwsmt@ct58H7EbOGbOHL-|wjxMiVG z@TPHEZ@^$DL=F6|iIhCtc(~ef0$Sn2qzf04H-hZKab8McsIod&@vl9@5Gdk>HjA261@5AIklj}`{M(u`VseCF8;W53%D#x9k~ z81Yo%nv}hiI-hZ8gk+Mt+fd@hv0O(eVHlE~KSL&?yfW@!gpiY#{RtrWRGYbrF^#*@ z^Wkf$Pq_+?N4Z6k`eBgaTL0*IcgVWQBSLn?s4>@1$#%TE#PoCJF5_^9z)FHL6WA|1 zvDv69l2k4=pajwnaTowb8(KA^9Zjfuqg5RNz9s@7V+jacm|!z`5T8i<1oyulGBZ~w z3IncgW8mT!W_5rd_R3d{&n6yz%8(s`^77PBOi;w#imoTx=c-cO3F`EZXU>2!Iu$K` zcpWbW@zpP?l?2%-3k0yM>{uF)%92Q63GB8l$d$d#1t>)a*DFKU+Hsr!KtR90W(Etv z#X7EZVbIgAsRG`h-uH!j=T7_!BoJ)WN3v&SvI?00dC1`R!a)WB7Ao0yvSJ_}+Q(fm za~h92&RL zTPeqp5>|QLS-UEv6}O`M|kbN|{WbUneoR7WOoIS&ybW-R@AL9jsh-ty?6VW2K?CpA5NW_?l^j(797e(lYo?tfonkjK7DD7K z>o@UJ;yW3892J!Z*)FOAM=3MI)&_|e9+Q5OAp$4uU>A6v)!jqMa%7oxvO&${=8iEh zWrw7%&^K4*m!!dA+FS`|SM`Y)6(@3lKi+6n%|ag9;w~-kXB0AN$3S(5+$UP2lE1e9mKVw8DCYP|M;5nGYdX5) z0a-LGaOh2&7%m^~+X*wpJc>0|iT4Zfy{Q^+6a(#J!|>f%YMq*|!@LxiFxRyoK6;hs z6Fmfn@St=yu5~b8$bPM{=WVE2!53#${z?mK*dF-HbLA>gqY32W=!3MGvpbSHT{QN7q}~i`6W~ zm{1-W013Z9S<2{MD<)9GW;=|!l+>IF634HL(1J{TCeykUt75x`V8nJJGDSBIkU%ow z5NRjYzW|Hg9BADY*g=A~r=_0#S*yA4c$_r_788a==de9iT!tO`Q;T89G7Sj&Dc4|` zt|g>cR?4%TnTVT0vloR5s1w#nL6)PH>xY@&(?`ug-sRqF` zd1*bLIUOL7zy`ZqGRee}JxY|a5TkPFvp!PUE0J@ImkaqcE5aRw#O?a4j~;@;{00Oo zpCkmLND*et=cxtE)u>u*Y#PKCBaky|?HLuCD41t-2bMlaIpgyEv4LX7tRJW|$QG7O zs+eeSKdUlOaj|rpA32xLo_QKuBWA9<)j`}FX$}x6X4FnV3zF#kxJ6jFK-9Rp^Wh6)n8q1lydxG_JI4yoSRdj4CZBbc9*5#@B zg9SsT=P5fbu7fmz_wX!OFBB>YI%k#ba~%4k%0-W4D_1|LkJ4NF3^r?NgWiHzbGT3f zk*2$-lQ399VrWzc$zZHxQa~e*PLzH|FA(HGd*xB#qN#9B8h-TBEabWi)g6Ou_pWux z<<_p#aOV#6FtQNk+xQUD64XXMOqNt1j8y;+?`a_fjXl5qaCc`zUk<(E;?cUalMbBM z;eSo795M7Q;pDBF(|BDPuKKbw)J|FwU%nR}poZcI{J6s-r93~HjGh~U&DCNMl*}T= zW&#!}eFqg&Jwj|>Xb*Z&CoC;<#(FUYLR{8ujNibE3V?%1AG<`W|m9IJeM;hCh&Q+mYAQNCqo7% zp}r&eLfAa-0$7nk+T;zuuJkE8=37S*>W-NR|Gct4!a7emGk;uZF zWnbPwmg?Ik5kkj9+@=^4z*ld{81{q>xbWYXBoJb*)+oSjYy4nb>*UPE!_1M(WJ}Cc$VE-AXXHjn;RD%Q zc%%G2d!}pwXUdPsfX|}qWMhAwGix&XW}d7|D5|<-5iDpD-(Cw%q)FfAKCxR3O=}R% zE}#IiT$GkA)t=ZLi2Q-&Z)aX+YShLR!D;pPvkN1^G77L^aXrfJha0P1Cu;zuFd#^ftS(o>)>U)h6Z zXqp#S(PpRscIz@Fe_UEn30KnSWY4u>kgK{+@0x~*$H*|YM4)jVA``9QmU1Zpg%_0B zn5aCT42&MYVHrPI(zvElc^52=&Dq5la`p+;br(v`lHv`)bt6eM z>u9bknyC4?{iUCHR=|&ZxU!*smn|p~kbq5NnXrXCn|p`O?Rysh z2OZ^@A1Qfrz19#C)m_3}+kGV?DyN41;2`W=q57)Otu!?zc}6W{-iV`<4*fh3CUh#~ zNxLm54?{qRG**(|X{#1%BMoAL)C1lft}PE^n#J74TJV0v3pmxjO}%Ur^+0)q znY__g)N9(mJ4!4CXR%f)oMcFrrP_^?R|#5SB}@ ze|;Ll2RW0a%Iz%a*2&k33R?n1PIa2V)r!%>!-}9y7_6oq-p)o380$Oyubv#_!$CDl zGYyRKzT_NWrhSIvz)o-m@lf#kGA%E?ZduHIPCm?{R+L;WwX=*{2%w>Q`i_AmH9{*GU934wF{)jx>G!tb;G=)aj?_`i*n z;rIo7_u!j7`0YEGTTu@U&vnB5hNgZcud$$GcW=b_2UKusk2VyQ^y$wk@vG6QPi5;| zdPj`Aqco__m1n&lII_iKG_UMp(c#LM)9g=m%(C&&{2)p!Y^pY9W#;DjyES=iwxSxc z4w(xsrM$Aug?WAYnY?=Q+b6v_ znT_pH%#ul?+Htv|4jJ{Cj|-f^@GkGu1D zr&hjJtnYTqjB!s72>gQF+`qww)b{rIW!8%o(;gdTz7ub|Esi?1$%1SWOuaCT$=7{A zNhpZNVccDFI;Kh24L{1W{H$C0X3tNS_2%LTbx*CF;cB(=^XSyf>Qlj;O|aO?%*sxS zgtcFyR7*!^YLu!fik+8{_3aFP_xKnzHcB%Q_r(z8N9-$^>yW(;>`5MT0qZLm!m)CY z*Ny5#M7@;}xys~G35}0)*|!*rN0Za|sVii=fgw%AQkKfIh1#sCrG<8Il$k@7xw%5I z@+>h_@YHao-$!R?9E{u@L-DF@yI)yZ>HJ?1QM%n69asvZz1Ck(IoU+p6bN%^5$(Y=f6qW07=Bqa#Z+LY(TU zhTu1lU7+eQ^cevFQjuqBB4;{hIt7|$63)N=9Uk|)QGf27y7UL$KL+_)U~dcQxJyd? z?o%)|ml&{mSZ7oxla3HTKq=WKSvHK-E6zEkV|gP*qrkM2d-mOoMNn?Y5ll0TQ&T() zfVxP`=NRc@#J{xO~!kWh)zo>P3QH2QwM!d(D$JgEN;%MXLM3{MsvU0iU%Dfc6G?$4A|? z!FmCw{Abp{cvnP-304R*7~4!UrCR2K=jjY807v11%Cr8j#UDJS_{h`tGqa6p7E4m< z7%y|HOgtH5t9+pTZ=nnKxq(4*`X&i3%VODhJ7vH@oSCE=e&B$oFt`N5^63GM+Qg4M zO^L-vc7T#GyKZXYdQxmS8j=F=7&MuwV8?_56s$DqM}?4R4d;JTzD5zF*XHu~%N|y& zro+x?`5>w|B=%ks~Lms?6_M2AgfNBN~uD-Vq?XjFXPWHU`Q ziX_Gw|5{u2gl?cyAny(Q3@w-L9CPfLgTW!FWIjUk_Z)UDRE2dDL!bkZbr(J3fwkiP z;U&}8%xAIjw)ff}WV2)G##a*sJUp1d))+KLq^NtC+xp}CEJG-Eklw%&qDLCD zhhFIctg8I*qFu_zZ{?OK`1#flBhvCT0auhmZXw(ltyiEh*=tl8DY^U7GSN^agKd8QW$dYB< zvs6vce&LBFx}YZrl<>WsZ2fbM);)a&8?_oeoy|-=+Y$`;Q#75}JKK5$$6Y((J{u`4 zEJO-T{O&tUBunLr1yjPB9l&uM1yw_04_8ox{cVZeLo#2M&M@ zH)YTdU+nK8Y*qU(bjCR!KEU=K`zO}xd#mw5m>0yPnK5;f9cpz_qRGQ)(z)?qMqe*nSduBSO z9eyN!?MC`;$DEt5oU$WLIq5p4Wx3W{2sOsjM{cAQ|Fy8bCmt*&%-r#LB>fOl@M(K= zxiIY@SkctD@U7opF-=>Ad~LAgdNzejNR6%`mdEQz;N{E|piLrr9=^eZcl@e<)D4GLJ@4`Rjr?PLA4p`%{?z4S zIb2|laj6RtdYj{zgNHE!>bTO2m|Rr=$ardFn@-IoP0rrGVyp-jE z|G6h$jaq-8>t+_e-PhyR{?!K`&)K*#4_+KoVQ}!uiA&}>enXiI%po#1g~midO0e%l zMt1p(9ggH<|-Yn}n!p9U@Y5NJ5998AJ!$JwO z(`7Hw5qpX%R;o^zh|@Fh;_=0kUlKaY?l8A_BTz2`>^Kw=wYO;($6&ALIrujBVL!hS z7gVyUj+)PW{&qU%6{JDJjntfYhV_Ag@sWwCk1K&4cN!?-eZBgIRcZ;B>Sf1t%6>pm z>KH1b4r-_SP}s$4g5X4h@q^!nnmk=DeYdXz_illDMeL3))=K=>lb-0l{PcQFs7IcF z8(X0!8v8s&6{kR_8{Y7e%iTg4M2OIE}JF4jHgx0VF^Kr*L4{pjgS zk=buiRU&re6a(IfVLtG&n4A$ZPsS5HGvnji%-$KghhGvGFM677|2%LcJv;3eZ?@po zt@hrzU5~p)iEOn7>JJ`bqDdK{-5#CJH(l^WkMhisI zS+lw8Z9=TAAJAg5{Cg6b^NLQ>iMzJm?t&uuFx0x`yv>>UV{W?MA9Uu&ljEM14O}ltbuO|B;x-129LMNI z36?N(q_e5T%pA4I{7qb{I2gpB=j;c7r0HMQ*=H}p^gIAFTlpS?Jdmx}!9+2+L5dF+ zt_Hg3bmrL=VriLKDG=C1j92IF$HSvn;jueoGIqwsOUBVT+Q2lboj?gf zaUyi!VP4T=axfb)0^aKv8~3L zxD+Ej4_GM4%s=aO#<5W2x)UB#>hU6L)2KdF1Yv7(Q)>PkLH0zT9TLy+5Mb zj9+eAd~x4eJR?pm+QSaD&kd+~ zrrQ1cesq`h*2|#s$l|wYmju|MiH=P>8WypG90Cjo5q7NOMD?|bL^Vy4n!;22EDv!W zH?I43c+5=~si4f`s8$KG0u1<`2cOo$~B&D5_NQ)8@h?pS^SB4pc$_>g3TT!x>08aWr{vYE z^sBm%W*bl@Ncc9q^xZso{OowY?4J0{Jmg%bs!7bU4L)FW#e;Q>bXUYXhjcr|*Zcdn zp_2|Qk*`)`4A`UtHX=!2+)UA;k}FfXsJE-k1Vlwrah-u!2ads7I1Y&%4DM9vEND8) zm{GzEkJ&}%VnS{Fc6re4SEKgk%~*g990};P?SPUSjSMtzmzTftUt1bnS`@FI9y3x* z>~WBx{7j2n$%$AUcr`)dv&!TcSdBf)2vr0EM8dX*WO=i4Z(l9@0y>IE$q@evBg-k? z(GF#FdMgGxqef=aH6`Zp{KdzbWNFW=&K%jYE!Uv_>Ham6RgJhrb`;FkDpt)#ux8Zk z3Tn7w)UHrkFOgXsVDOM9XEJYb&%(|T5>GI^|D?e}&TZM-kM$zVXem~q(lZ^@4B;Dn zu#*`Ge>fMTJSM}u>K$0GCHa;o_%QfDL#yc+iJ!f2yIzd zApT&iC}{y3l?>Hb9%anDtoFw}7t6S(WK&Ld($7qs;ql=X@ng#$(e-y;1bpC-*KQp$ zKbtAVv+gEeQ*M2S#HEQ29leiUJZM`+H^}ERPGB{AvN?BzVEF@6lNVHHIT9 zLxoh12R!UY22a-#DBjO&97z2%c)|?Py zyq{@{O=`>oMPImmEL}0kBwj#7Lq-9XcrYMM3c-c4Gn8kEe7wikzd_vU&j1A>K+r*L zl(mR9ll^1^k2PLXoFIrgzzks8V@byVh!OUvit}H*zI;}pr9bF%q<-B3mRMp zhWnxXa#%UG>V;8ElZrurke$9|p=Q;+qqEdokGA2i;pc(qy*eu_FtMV&9h_4|Z1C#p zEGEhA4?|3Mn>3XcLX|UIS_1(Napw659fVDIC}}HJgq%rQXAtVja`SEG@2*@k*oG2H zaLOYEJt@j+Y;NI*0>dH6xlE9?__#DR2YyivOTKC!M0)V>`Hy*5>2J8^nAq;xt8{0- zvZ>@YvjvZ**7}cUIfgk3GBvD&udKbM04zSF*(nqCW<1XN6Jr{~U{O$=1hB?Pa2Pxk zfXb0P$rqRMg(W6LD-;w3K*|Y^FX)UaA#gLBSlnx9B20(O1$vwapygy{JA8hltrKpd zkK3`IuzLAE_ez@mCt=IkJQ7(qq(xLBl`=na?2{8>w*!_zb!uh>rSLdm)r#ZLEigwn z`pzqu+Oz4W>s1y0_=qC!W0cJ*N&GL``8_BHMMWIW=qo}wl|YDaC`y1J+tT=20T7&` zh?DS}8KF_AO#3EcX8wXHHNc*ql%q_jzB)f;RcfhWYPn0Zk8fY`WtmuVC%mEx(&xX2 zNpt9SeKjI6%g= z>3H#8sy=}m2SUms*<#T<7W z5cq5V%#E+s>#mIan%2vYUgvIot6}|wM@lHMmaeyp%SJ4_FNDD2)9<(v-^R@mN~@~T zpyUz$p(32~hsV8dJ*)TM$GHCCZW~2AUu+E{5Czhi4I$*(`6|s_?gp|O>GeW>w1B3& z=&^*U4DfOIC{_p;t0m7rt(!9VHP4Jj8I%<0gW-u}8Z7U7FiG||$WS12vG7bbxE3~x zM5s!P<^bcK{$zs|ymE#&P7g0Iu*$xr_~vG5(P0kS(4eSz@&yk+q-SJt1OxyCNdp%@ zttVFZH+F28Ee-yB8?5q>CM_zd#3@FIS**|wMi(#%E`6Zowfr)8C3~|@x=wtp-7zc_ zl}Rg2muWyz)e49z4)jQVzD?Kllc3V`)0VApuhC~s&|GO!N9ARoPa&;vrtf0CfCW6=7HJ77k2NygDv4bpeQ6< zyYClp5P}jQ_k3)Z^PHPx)hClb(L1tz?-%yAHl8I&Yz#}5HhfDuOi6<5yN|_Ozl$$8Zkhk8@CtwOLb|R)T9j}uL5sj@2;dx)$~t4zu^HC@TsVQX zHRX#i_jCIl)SZUPJ>WnAmT3S>LFC;=0L}YV$YwR75Jdx#u1rF;+qPBGSX0BT`i6b4 z2nsNqwLnI#VoySS(EfhnVcmhcQ78KToqfVzT3GoRO=?4s(;_g9vA|EIrSM~NWB6Z5 ze&DmrdT#18FFJdh=_Cw+&WDxNwvLQVJ&7R%ybd!oV|y5!cQmrvj3#f{yoUZ`+q+rl zk5A6J*{Xfti2uSkErH=VH*Vk2AJQ@7K7-PQJs%s|;3(q{96t#8sN+8qJV9}Wjar88 z<2`x&8>r>z-qb--oBOp^i#bZu+SZsMXH3bcopPjrf`t1mj=V^V<6|91bYVb)fdc5q z{$fwWw&M|c=?B07D}LdfOOGrYMOMn*K_gySJ>kVD?c%D>HcSf-sy7$(*m<#BTtZ9oU={OkJ-3DP zkizW3Qsc4PPyIDa`*I)(*KyKMgW|B?3!&9BCV`T!4?sv9mx%PloW3or?iz9NcI%2k zJhP}P{%kUz$Ulo$)GoVdBK_TX zoqvw1VR3~ksUBCKx-3SP_vJS8}Q`(hwKdCtHu&n91&)6pvfq>0vYy-MGy<$zie-tf*I^=sFt*2 zasknvHw1?q4X*!#h0#Ct<98F)&a|$MK_MN^{j^o zKFAv|3c&`=IaB#K$3>PL*t&?U^PR4mh_chXTD=fcvcF=8;RbL40W7y9*zSqPH&(h> zHduNN4F=C{f1JWmG=R9EhPG}4*Q# zd;kN=;!Jb3$LSt~^)WV7f5Ti(?QhoSkC%dc-P1i)z#Nry>RGKRE(Hof^_ueOFw@jQ zDgy_BL*z?K=N&SYQp2zwpr9prT^1sHQ2>}|83KW31YckAeIf@pU9l_Dh75?|&P?J{ zeJf2R9>aoJCqMhwCFW;XR~MpCKgc)WhAfE#xv)79Jq_p1Kk>3d9geVbe1mS=UKXNZqET#YN}b3p&rNo>SW+2;7~hCDO_VZWD$|JgDVP zK4k73A4#s?-f6X9Aiw5ejVEIG-_Lt2-gz-7z%5I3eIx@!(7`A2x6>Q7L@-e?VmG?k zyPh*hkpRo%>;;haOTJ0+xBOw4Uw{x3IetMx&t0>w2@8~QV5N9wa)S_x%@ETHraUgI z=7&#MKjAM#V9)PY8)he;5s~(mx!yy;&~Pnmi=cH|y;KG`Arb$JFgP}tKI5oUlAOKO zda}(ds37_fk?ZV)ZTY-V@sm*Gm@k&Yi3=SVXAF}5Kt&&V7(f5#k23@*dew>JRBXr9 zEs`fJmcD@Nd|9q(4v|VWjdZXcFVh6&f$>IO-nI##Xv;d)4=WC(14AUz4RstWn5RRkEWWMSXu*G*hQ(La0f5TiI>K`H-ozW3Y3 z3Vb}N(gkQ3#)BoVUR~LJnGVN&uqeo*E-qe1;aQMQMIW zurdPvMThHpw`ri=726lKoAAAD-5aC%_L=s?A?Z9=RZhDb=|B5;7D;@miWVhFMw z)@Cz##-b6dj}E}6DfnlYiuPc&*RcUSTYPS6ykS`QA1c(T_wXf7I^iHYCzdxwH_)3s zTPD*|4Fb^qP@naU?lWWnjG^7Qd5q7G#kC0imNTdLWMuv~03xwc9Mq*ccp$(q?4d8X z&YcfU-onM-B5yHkZLW}#leD~-Wo@X3S65krcZ$UP{+E-lObP{LGSu49}R zdWOaqp2~@ zDvL|996|gr?l3aGu!19KP;J;ja+}Q3Xp{AK0&h7oY9%-X;#cIiVZ zpt({`gB;||-`auv-y_8g(SI1aZtB^dpWm>2%hPBrB{ZCXZi;{w>l$I8KyTO*Ssc~u zOj~qC=DOgRkj{9RBV9Uoga@^W%lTmJcD|^547f}c5S5n|ZF)Y2z3%o^!!JL9UuTT; zaYA8%G+v4gMkX8klgRGGV%0_P2(cED!8qT+aU?6Cu}p~Eq4ctIBDhf>PPQ@e_>5ri z2$(xZ?K4jBL?=H=Aq9zR1{a~Z{KPGx@Dy4lR!fhXzmXRW_Bd|2agM8D*nwSBffMhG zOggTLnM4hp1l&exfeMD@2hRDL?=gn*><(>I(w=<9Elg9>#0dX7$m9H~8L-{h zvo*zZJ7X0*haCo@>Zxg>B)*sW%nLnp=~05H-+G->D*95QgKPybAAf6nFCk$qGWA`F zW;tlUvGgKIwe6P;Mtm@_okMV<0J=wI`ACb6t`Jv;C~BhYN0$=+*~qUG!1kncaqX`& z%}-;}7Z)bAWC5Zw2cC>59h7xW|2*Cj&HK9N<~jvJ=hR2{>Ufg@-@6B2XUmx#`$M>) z!Hg-KG6GfUGvlYV&=-C4@@Q`0iFTvT@xwVj$1HIHNlx;}YsfbQR;Cz+U&WZM2QxYm zumWvQYv#K@#7$R~>%2281(M=|aiV~R;P5aL0Erv>lsngqs0-ajA0ZH1JZOB%pRT6r zPgoX%=%O+Qk6%SyGI_)cxA_AxCIM4qX)JUbY;YS?hSaRW47^cNzF+_3#~GzWtu;?m zsQ8glhevnw06N=gbF(25tNPeKs#_a0o?Ay>RWAie{?>3QZFN8 zvS|w}?L<2y1huQ&Oa&bR+U`{oF>Om#SIP0~?c#&SICqZposfn8t^WO)yyX3*{53T& zdawBTe*C5V`TdXa=XdiL{WtiVH%(1lt@p$CxATqn{fE0^rveIq|MwmCS64fBp56_w zN4Lg@p04Z2I;$0I%zywX=>G}^A)E|xDEexM6FyOyPPHrFgrp#tmVW|PErDp5FTlkJ zLAWG9GysF4KrWxXpa(reMGSE^`%T?BPEVxHn3(G&gD8e?7X)CMG+i^-2C+s@k+ugHauXNV?PiLuD07sKNPy=h`$&BhvuI& zg)bqcZ3xML0AimPW%T2O8aU#*L^#TP{VWh#mz4+zkt!u<#5%k6TSemN>s914l@r;p zVlUxCD77-u`c%V?ZKk^%Fc10zjZmDGIU3T?_Qx@D{Q{sVmJhJK*#SVRDue} z>VL*6(w{iKzq>S)!=zC#JkmkWH-K6>OPb;w6n6C!Mj#Ne%z>GQAEGPKGor}7lcHXD znimQ0RltvJh?uHMdu&o55(4+?HAJ&F8Hx@PhJ1tUS-F~_lta$p;8XW1N||A;mitjq znzlsauo}5RQ14HJfiXfDUxnqSTE<_YfG!KT>Lg75&57i3!ZDjRRQz1#1;mkeD7h-C zNs*OTag-hyDb3@s!u>F5qsdIBYqNy9^ML}5qYX0LvO0r4S4h^19RFGx+ zNP)1OuSRv_XTVy4bD!aeAaUdYB!^Eaj=Z#jh!gcJO9I4(wmMIlestC&G(q zmNaDSB`Bju6OK7=w0mRq@4>Ey{qKOlAO$g|Rd=v${(1eIk3)1V8f52+Iknv>#w8F0 z?LiDlM%FczzY~_`_6+BSA7y&7>!dNFU~rI}^I7anQB0IoGXk_Mn5zv;60o+tqOkBU42@Mf z*`F~K9OWsw{?ZpQ7P-$T{J6`-c_gqlKxZQmNAg>Dl5UyFJKJWP2;2+K{<&*Qe>?~9 z_2}G+!#UTEStQH`4+p#8Y;DPW>N8gt!cXLoQ(rn@f9%CV2ETvU`xSI)&20S*XC{I< zx#X5NYLjkK9Tu$8Z(B!*X4@_6IrZhvkvntwLL_quiYH6teOFlg!-*7uhAjvN8l$B3 z^Vs6lsbT`4UpSCECtHL|FgxAeJU^qMS!-sB|s+H>9}3r zB3`z|C8%~S3?v|uH3x?!Qh6mD>~kl7)^tD83!A@gKo1olxMMDy5Pv+Q-T!hQG-2K7rVV19_Wt0S#g!s#_2qb$06YxObdEy#r|;nM=eL@w$)gwxW zi?;A7mc4dH!4%mg0|Rame&uS+JXLAW%cP9(m)6jYrn3@=QgW%#HCg=!I+$K-2oNHk z__#SPYS4aaUnPh=sL7y9v}%{d?d~&e=+94edSsLS4cewI&gSz9;@<21sZgU+Gs=n~ zt74OMqJ~>E%p+R>5UOpRmJ+;v_z;?}CCSGZ?D*P6ks<~kw;(%MM^Nt5@YOmWUo0ty zRsnz&qsd?_Hs0}2$#&7yRa-x4_*Suuua#p4Q5JF_cq0t@~5To^AO&2w&O_E#R`MBcr;y%#A9fAfXK zrQJVzj0DepGk$-azj}Wnzh9SsFDZY$k9%srUz2`%A9qxLJ|}&3-*0uZe$@ZX;6+PE zNB>RyrK9&f?)6Fh&_xdZCH;{qQX4*iDFro=Q9hO_H8pahr8}sLi${RGA_3rcuG*_V zixK?vs6_YQ5XIn8@gr%&(1}+=%J-hQ0<(5Mc^$_M$uyR1Zt8^6nzNg$V_t|Cb2v40 zz%r?MxTviVu^?w)heFuP&%*T#xX3uPjI7m~*~zGEijTGl9z@ncH|Z&`it*IK$MPGn z<5}5~JV#)>PVvAM&h_+|*a2H^*{lG;d&ds;{NzI0^%p8VNI+j5ogwYhROw7$v8^3a zF5UM&5f(`wAtvw`R`S{+v#p)KPJ-(NyFLJ-K$l8Xt*o zv}l^Ja~4;ThWn4fe&y%R$9X=sDg^I%clL4(Vt9$0a?|v6wPteZlsNFj z?I#_?kTkKy4HdTX)nBh;li_jQF1^q0D^-5BS2^Ox48YC~l5)Ff7# z6Ea@;@pmTJR^mykn3mevJ$I^QuS#1RNV}XBHenvZxs*8bs!P(}l+45@M)W$<`1&D$ zsYad@NVqg|E-b0BTHfq?G5lAhC1l`HGN)C2kxRuS5gMBabFLoG=A7QC^+3V9btdgg z39r$%;wJ(qTTSC-g$EA41ZUzwQ5TC#D?b4bjxE`wULh`^l5kWrRx7A8*Ymw+SQb~e z%<16Mmm+*OMS_0ohB{ZbtIA?#2j%d4IWV|jI1ky7S&Hb0Gitx?DVN6f_9R-xZSjMi zcq&=ZA6eSatg{6`GhMio1re~lTkdyCvt`Y947iAtt{2Ntxf=BLNdUf_2>Fx)z1mp> zAN2adLStwO%jTnmR^BN*QlzFSf;|WH?=W5cn+R%=s@N{}q^}k@|1Vl-1hKs5PwRwu zMOhLBigW+}VcRGQgW?oHel0=LofAQ{txRV*)Rr>tgR zJ`4_tfxVm&fQXq*JtFJfI5i8t$uvbQFT1fMMXQm@K4gx;Gc;iGO@k%wmrczP+Y%4OFg>geKvXbalc#N%;4La>kY%zcdj)=TzFjsqD$x|ot{8a5Ihs_CPq-UY!j#=fZ+;xTzgG)67rC796uz*yI{9Zs}yK#lHBum?s z#ert0nYP@B=57T6T?-~!oT33OCg5ebvCUlhKI#)?_F(bW*=q^isdZCI3Rb~^lKic@ zb@Eh>8JnDdUO%NJIT__!L+PI}7!|Q;WQ5wzbD7Y(B|?(>17cZ^&t@L7d^Hl=DshL@ z&y%VqM#|{)#+p{A^QV)*()}FZrT5L;!Lp7>@Hiycs4H>LDeuj=Rohzz`!!*(xIkLg zj?Z=uj*_kf^R+Xk4;Skz{lYU^Rt8y3~%re8Ul8&JMa0WlT(iwL}T%_~p*Nx4$S2uPNB2h@t+>uX7 zuoi7(xXBIEofyD0Z`DPBVuKMkM*aWrJHuBr{y8GPlruPOA*Qom!%(>S06%wU^zy=? z^2+KMn{;MeQDEVZVD#C^Z&R8zx!CDKf889NCfk)gIyie^RgGfELJ}bd$iei(!e;z7 z!56y~X?Uu1TaidDN%%|_#xd|)3*__nSroh-Dc03x;Crcg{tz7pD5S~o15JuIgG8~f zyFbkaHh@!6Vrn?w2rM^_Lk^E2Gbs%80+voUSeL=en+q8wqD*wZTv1<-iEZZih#L+^*g1 z-aPeARlL)jBwBx+27W{yqv0liAFa~F`j#T3C8+Yr5iO8$FKDC}jqxu&hRV;CMS;U`%e;L6-0Dbn347 zD>s(YqmE?cTBh>(r8Y=A6d#maQ#Coz4xxvp2OpsoUeDeUVq1%F|?5gHUk9L!)T zu2-k!^MgE4tO**_oG2)8g%yct&jU&htkE=0ZFMkk$fPUn-kj=qms*QBG%Q8IJ!>^f z;-S#n)7*Syma(Lq|YJf5zR(XNqQy@_Bn z1ko@5pd;KBU}fg?M1GKOAte*(Dc)ohNJLry7%UiYS|69J*u>GC*`PhE3huYGx?o7t z^txfA-Vy&Nmce@N4Og^zO!#k3jRB5)=>!!gJKy&%lz3_yqjK2SO$ax^=1c?6QN%qjsN}~F z58Mg>sd)}u-oE5Jr2GVTfoo}_GVTD03Z!q-N~|8-J|?H2H@*q1Ks)gL6sXQoj>pY8 zmZa$16&D{T3u)S&Zml&uO+iT=9_iSrik14%UULb%yxoKMczd$YmC?~_1wOjwLp#XJ zP}j+5Pv0G(;+6PFqQm9RZIdvrp2f+Jo(h4woBe1qFeUE2CBjAc$o+cC=Ew-D5WybH z{!BNDOkIspfFlSwiI4fZQ42aWWsFHN0n|(qD#$F5a36An81j=JyA!~Tj}yZ!E+4<+a|5PwKEvGqQZ3M13ED~63OCiz_h zHmcL8FE+VLV9z z#xdKGWkS0UzX0%f?aeu@u{|epfgmaEK%a&{>v_tjoG0g;SjbI~r7kI^Rb?=i&q`G! zio~D3RFE*YOi3U|)pyFc`1xe}OoGWHmAS~!a)SFq*0w$$M=hM2&)euDXU;5$1%qF) zxg+C+04baznb@df6X_Ggs_|@)`XS!%xg`OZ-I1ij_Hd%3T1d!>i%8_0E9j%eTRqd08`!LW8VzHok(4>w_lNT;`)$1lR}aafvfYonxIwuVo1O z7Qm=dzi>nli52+8yde^m*@CR5%)m|$BN1Z;nFuk0Dg+e{Zj}2uhtbbx9}Ma?-Ss=o zP2q@S*8b4-pO!V^XaK7l1B751EY)VWfEXl$PD4FWRp|WvMAPz# zLG$``V;)jcPHc(|YYwahN$lM&*bP3$3~r;Q3AO-!cx7Z-&HPE=5`M{*y^*zs>LRKvf1kyk+q5uquRP6^a%H4Y{&|P1olwctU)!<1NxJjUP@Nq%ri;cM+fkPShSGW^3wlJcYVl7p2%t5~FUli`eQ z_zbHIjg)@t(K4mi2cqaEUJk1_6_JXPEBF zT_rN2fDt~8_W7}@nlhJ|2h#}c>)+@4=^6{zPbHMI&x==i*Uf;@?a~)#x80^3IYa|$ zq=4UDwc7YKq`lDbF z%-7O(jg=R%98&OUB2TAl9hxtZzJ{K&e5CsPH2Lb_L)&cRTmW$vg zGeFKM;~yAJtg6qIsXEVP9-m;IqrV!Nw7_ROjcG_`b`|={8?t9mb91M-a<$cuD)~=iQ{8&#<&#vyM zvf6Z0S1vql%Rcxd_Ngf@u3tfLh71kItI|rW+=E@XJ?;s7!X%(K1}_^R9td11xPb*c zzCF_{d<*zZAqh`XTwQywuD6>sX)3%Uxd5B@Ov50(xj417@@$xckB&`@p)fJkM@vg1 z85!@D4X!RP$YD*BoiU zmLRFKC)EoSB%^}&w0$WJ75iy{HWd0oydTh8q85;w##sYTknALi5MLP_((9=f(~s*t z9VCSbj?sOB?nXvN^6au|w;DIPbKw`Bjp=pdybxvYc=N<0B+%LBbRiua0-1p%CCS6> zCGd4WV7Q9eLpDLyTH_{*u?oAJV`ih78hhTqnF>2}{PWcan#;MAWw=qcva)7rM?p|) z@fjWs3!pG4DkiccfzLQeO#_Ibh}lV)9LUquY|X_7^)>|MtuPA`AND)~(s0g*9Eh*e zs$NFW>W}arz30GZN$!@~#+IhxWU$LG^X1G@F}LZX)A&bHU!^%yPyU8>bwo#AxZMZu zMt4}+LEPNP5V+gBK;6cdYw1{;gm5oSh1Z z!US60Qq#rB|EhHR(1M^rx5UUn+j*Xq7QZRw&GobB4(!qFQU>vHe;$K@tPOAwL6@ix z22BO+Pc*)dks@}n0>r}ErXG{yJ>>t$yT!ScEM;}1D35+4?{o&ScY1%}I%uVl| zPu^-<=w|eCq^8u|X*ZYri%q$12d9@n~7(`z?thc0)k7z zL&7r;3wezQKtHX4>hFFpn(>ATwgADCh@%(BYRk6`=tvD@MWeQ9NuQc%7gH{_3eL&V zO^Fb7SW;cOxNH9om#VczEx#8s4izVf#&+5k>%bTJktqLYEYiU?M~Tqh$ugZ76ch}Fa7uSFTvY%EC)@^_$+ zvxn2c1At@R!);9=Ng~D+K`;@ob##I}N)Z0M?5w}A=Z!`oQ z@P3+?h6BQF6B+Oo*@$Snv9N$^YFE}7PIjJJyT^F2;-^aygRGNDat`yXC?f<3`LSfX zk=*p%_==e0l;0P(V(}*)_B_>5nz+L*gMZZ(35cd7fbO!8drJ=mzgcoBH0-3cZH{YOYXSv`t zH37lnWN?rWZ8o(jw>j~BRr_4 zakGLkE%yGSFb4@!$xCi7mG2ll1^9%)5;vC#3n7s;g|=(jv+gRh2{yKUaaa>r>yygp3ABO>Uwf=a&DfO3IzQWO!gi*insZhBK6y? z`L0gyXa$LF+u^jBZPXHyHoo_Jyb&?Qd|kB;9}QkBUHmZLfcqI+pyqtifcB5iz@C2l z9?*lt9gVmds5%Sf3RE)j87T}x8x_HI(m78fJ`gOmEDhtGDA&QVl1a6vi9cef?U=?X zm-C?2JZIW8mp?!H6*p)}|MbY+z>^QTz{Z7(P$!(Ku$&U_`_@&r;_b@t1cl(@q(@DY zXmCvtOVU59v^5!AsNaNX;`xH16;u^DlF1VgN_oGD8IbOf@8ZwC*8}m+p+>)6JrhV0 z8q-?HOBG%{RvS=g+rExq^*94(sR+#;F`Ky9O1MAD7B_fsC zz(rcQzAP|se6E>L;mg#iPF`9si^(X!4Gw8x>CS!uOd#N&+&dkA`_Qp(S-n+6ip*55^uF0I_T&}jvquAAREj8%QBrh32ESuzwmJA^JVd{r&58K#)2=XGv$~50>6+S1J91sLGSIJ7CM?8y)sH32C*Hfyee@ZYeUS@Ab zJpg0E0A?ugMT#O1-u*M~Bn8w3rXa5G3;jA2A!5s{W!=g(XjzMO9*a1lCw4I7mmW%d zXGchbKrTp-7>qBRmEK7N0}rHlo)9Am$!ib=iSd{cl&k~pCd(DX#ENs(n)$*T9Pfhl z0*(@IG6<-sU*_9|s4Yo=>WlF12=>?2dw=la{I<%SIvaBO>?&eZtz_1qTl56F{e)k%%8ykW6Bsgu(&vMjU5Dxbh#pY{ZWs4%`xpAefq`_zO?d{&LKQ zeNA_Wn(tz3MsStn2sv_j82cy+R#6x&C&o#81iX>_Fs?wSk#CYuJd1mExOC>5e75Hy zn-xNj*yFh%#&D4b4-_DLb%%PwI`MsfUJ_{&NSa!p=8|J4g5Y;szM5pZbcafnsWYNJ z2oGb%y;emiYJJn3CSihvJ&h(&Zr1zKWfT3NF#sPNt?Kw=5RR39%PpI9x1*L|l?D*2 zEH0!qQ}{0n0Yfgfv9HqT7j5qO4tXY)VT1p8f>M>1yPj@cWQAV4S6VXy`xXyV(H<03 zGROl@Q+%6I74Ywn)(YD-M28%3g|0wPCXLYSVH#E-nR@0 zC4et4(Df>Byh7u& z{T%l>+&~F8gum7*pEqCVc>yE5efjMX&@cazFBuYLe43I;S;O#q{KIEvR&A6eo3fKI z8t7ifk+F}}azmAwrO?u7ZEk6S72WEK%5K!C-HDX&X!tw`*5{AyGr!)b+y#6;0gxS1 znPlIxgW@)HG2Gs7dm0`(>mn0{1lM0ETGo)1z43&JC#lUJ3}RQ>BSH=i|lOQOOn! zW@oqYsKM$R;_#D-Ma0c{$m=j-7x2Vp=%7CM@eYG%V>HwkJ?Q#+#`yh^Hl&>e1;IZN zCn4&mkX~*;Ol8jxI?na2IKScr0#H_Z7&9O7=~8B@G0Bvc&!$J|`cdraRUNIX5W*e$ z+@htMH%GG1Nz9#cUi%fiQe?bu;C{+^G@$2>_50rWC$q3(|?w$vd=T|bVmyJ}k@=81!|0&lJhqt@_iXqP@ zFYMXqa}4Zt4D)<-w(|$4WdtEV$4>NZ;P+QFO$XOLh-N*EDte};kR1!LFtj;4YR#0y z{rpwYYK_ZdJ@aDVE&k5xPF6V9X`&-@ie zff)d;@~xcN7D{+qKWUe#)iEW2P73dpkp_#_k$(gYGbEC-|sS{z=5lc1 zw_VDj?8y6f0DZEjajro06-RU(6vrR%DGoz8THCvm+^F-Ymif`pFHk&b!~s1|bS#MVrv{ z(8Q8YnlXoM_`Hk`UJjK82)zHRvehbWIl*qA=!ApOOC?e*P$%>51i zwX>_Y@BZBF{QVE`m-?6Sd-eKvaCp4``^Wb;_S^e==7;qsWcsQ1n^u5a;+D^P?YHQA zX*Fi+aO>Ln{h>T-fHlPLnw6NKfUDH?EeYZicS}l#W&j2VOBDYtghAPkZB;5o0RUSl zU#iT>rjcq$BCkSvw8n3>MRF!vRR-`i5VwlG2cDggVcbOOg?VHseOjkChsla|^P&r{ z>f)@Nqv8WT3aQ4y79HY$rg-7iL&y+sw@kK2_`M{;cY*A-q z8J*JlEtvV7N--F2<>811!cgBh)?w#QQlRYBOtj$jFxkJK2kp;)k(WsdY+o$@eh#px z)9=P(yjYQ+N`Rn4@1Kn#dP79(IQPL3E~I%J1p)vIkW8#a7`-Bdk`Nz1Jy=8zTfD?7 zY!o7?DF*h8U=KHdK@C(~P-FUoX)JZ#9U=)a>k`12L#xD485R8nMFzQHSQO8RPgz zBz+KexNHpmb3?MQ=1kh>6cw`;@c{J+(0rjjuKl>o9#}3gzE$ryzGf9O(b86OyQXux z#`Lvzb+Bd@8TGXwQ>TOYtp`i&-F8qPx#7J#cCfsIJJ%a2SgUs6R_9fu2nFQlsT*fV ze4~t0Fz>I>vzf5YrQA~|Ny~#4T*av|m~98oMM50c2i}-F8hWokn~s?cPwHbQHJf(} zssM=>h^t&)b8}6|C~!StB4%QuCA6TZaf{+F=zU_xv#C&<-+JVQGQKBPK3oINqa&~b zqH;)Ky8} z;tss=ahOpgBmIk=>%A^r@2AqF>spIXU^(k44)RokV00_uJKl*_czJrid z(VE@AS!5HxV;pHVF{8A7E-asK?{ac~V&nu1g2J8{ z0YKq|RRJ$TUR;4i!vlZ9N#tOn9#e$f>8qf=@b_Nc&p@~y3ru_{7#vz$Hv&Ciha`CX zL`WtmxIDjbKRV%PpI(@e4~Za#IR4*RzKXXn1obc(6AMq|$vZa=6)s(3Z&MCsP)q!V z>o+WX`0cunTOSF(KO+%73E&vg015$4o_ae5{=F2hJ5(bF+3zTqdcW}})z{;mL=UM1 zfF}=di1m3(>`k?xaRs9Wy@4ph9H@RAr@S7|mmJQuIeHnka^}G&@ANGt-W19D4|ogWDN3JXSbzQh&te z1f5Alh$~&41_GhCK+27b4%CiIQKtI&x8g+d8XjXjQeolSbf!bP>Gk#HZ5&aZnhh|E zTBCp3lNE?dq=1+ZO1rHr}D*z$x zfAC}PzrQ|muU1_cNZKpGpPuiJQmIEn!!Xh@WA~b^s$*$es5mMa*Cg4NNsu*8Iy^*J zb;fa%c7EaD0Eh{rTWQ{2amjk#MW<><@zWKdWGL8vHG1eicjs7GW~K&pOEs!nq9M~8 z_Q3lq9IUW5B+2v6MSd``&>}W>*&bf(BDEQ1xEE(Dcjn&>H8{(dzXQerHbHn$m^^u< z>ft?q%y$*ffq2B z@R2bnZwc}=;Nc6e%Lav%Ys3$|Jc~HR_617jqZmRj!pm*WKlc^ru>16iqB|4?q*Z$_ z!Vk**4vAkI_W1vf&QCm7k7kv30KNQNv}hS=^daA6t5}2C_^LC=VM$(To}WBCV?&Z0 zPA3)@-)i$rVJVg(XDfT&adVhJ<(d)=S2Dp(z7sf3Am1ARFs0aqMzI9$?sjd}_%aDf zM%WNqP(<-P^pA>h2@(LR^Nz0WmuV4xaGO@iRpON- zrS4*485k30Kt(W&R2nNWzp`p8F-mW1nZ~2|0|nNZDX32X$jO8HwfCo6d9^7Z z-^{bLQg(;c)~2IdR6N2QprwxB*b(CST^Kj*tlq#C!PyYuc3Ugcurt{`T zNij3yzcA76gFTPR(kePsIfda;x7ZD~-vb9Jp{gN-u*GKREV&fNa%H5ayMhS-5I`U| zQaC5cg(~Q#P-0Ia4OrzKTjq&E7B})8-V{Hw+iL}Y6#I*Fo6;stb!v{r_L7zPQF8Jn zZq5gh1_!=Q=lR0%h$_{~b;Dc}z#NDSj0_bP6jVtTO!<6dzMFhQ!ttCVg%EBelcm*x zvTYN`%T}vp7@+#8nk~&+UkMpMk7h$m-%>`0XJ!ibSdT{a<*J^QRDW5tmD`3mEbA8+ zBnsP)T5{o5LptWWqae6IctuE493JP2R$FY2+2_7dU8v2ja)vcS4L`hujyGZIyLaTU zQ0Ln>8QnNIzO0fu^^E+CE4K}nBXy2p?k>Bidd99KlyJ z9j*=lZCneoZy(!G+DS3-Tcp~%m)UkCOiZLOIk4At)Dkc*goflHV4;NNdtSe2mj}^9 zBk3|cGksIX&rg;q4cEcHU;L1-76cXEwnFak^EkD!M}J-0v%_G|wU^h(pREBQ#hCan zDxh2AxA_%(Ly{s}2c4twLk6u?*Z~$mKt;~RwPBF9hNl)ws~{~^XK_%WwSOSCtbguQ zwF9bOrLi%4Q?Eo3cSE|*D68gD01ZCAXKUFJ_7=y=5R~%{8Forh^iiWy5XORwvcRT^ zVm+P>jL4>u4yQS#FK8`Q>*!8?sNEYyS0^V&n<-0Km|0uad|i!bZZW6tB*VBL+ue^Y zgzwr2QM~ymNL^-0I#n}Ub>ExA8B2TZux3i=Vwa*D%vF$Q$N+~o9B=HK_av`Pgh~&@`AkP6JegJ^5>(}$1#MTiA+hvC3%jYus5j9CkAsPFLMeV8kDNpm^R@NbR|A%|x3xgKD#x76<4Tucg8=_WnvP=c}QlnY3#)?+` zU9k)YO>I>gO*wNVYA@WsIipI~O0`|OY(n^?m=OmXi+ZqG%47e`;?Bpxsb;PI{m7e* zRp2maL*8XmtK{x@4!SN|#%}0y;OA` z6}*#^TQQSawiepodAAf3c|hyNY#7&e^Uh-{wG+*z<$;b>QN$imAJAO^s{=hN2|2aWnnP}+1FjmHevRAi z4%3ckGQe#IYD*X`V(`5a2E<$UgXNZ7Vj5=p8AGk9LTywehWi6MX1~GFHS^Xenjz{o zxFISw`6vw9t?a<*&FRZY@Xhkh+)k8>_|`bEqU(`a{OD-?ZN?{9ibv^Qsx=M~FO@ z=E6ws6WM#%NYr|h3d2u2BIVfzd-i$J*(utZT2)i3a+zGPa6G~s7sX4+4oB6uE?2@s z4|*((`K^pxx^z!UCPPF!zLsKY>cv8h`ztD9xN>mHbgt7>^k&nHf|Jb>2S#s;cWtwa zL2Uss^d9?h+gUIC17#<+mpom8lAL$!z8;O1E z&|X&lT1Z0zB;qcUrS_{PMQ3^gMZ#54L020$$%db$6zbXLW+xyxx^sfX3;Zu5oc{K= zv4t^~txC1Qn&jK-ll#k8D$>7pZ={EtH(gV+-om`n)K5fUBIMH?@iC_1I8R#u-t{3{ zD~psPUNi%Jj~|)lk2rIlnv;y5>qpN^PAeAMSu7$3;>eVAfQcu;c+1ACyw$2+!B-*; zd#=Sa8Rn-9W+CYO;{K=~0Dfh8_pNm9AF@a+r%y4dNa&qo(gKpFFWH>>I&}*;+(trw zzO?N=yBcQ9jO)*m=l!S}bp+V_BOuOYF9_lMXo9d?nPpLQ83)R`a}I{ELPGVc@8fS5 zC6Rh*`%00Tyupp}*|90oH@RS4p}aXwR?;ed1Ow}i3OWXj#z<66!L2^1*{lnoxaJ_8 zc;S#h#}Lm;iRc~9&_*ug!d@BKDfXqClGB$Q zTy%Ii0qeEnth5$-e^C2+_<50dBv1yQNjF5>Q@7&GQx?SDN~d0qyha9<)O0%}HekS~ zizlRS=LE5?H5=YtZ<0tRDk2Q=_wF8P>IGfTFV}^q5A` z-M2WoTSr_3o%*N}m!YBq__PFSCDjb~?ym!?>ajY}isAwZe%A1x^6&Mi$haqE)aMn_iqea5j^cx=YM zSy9@j3PJ|x=Hun}UkXI`3^D9{f>k5*f=-LQxwridCTb!2C5}{F>IxMk4^193%#co&a3_d=D|98TKY!WG)Yn; zje$K61^S9Fi-VJg7%oa#RnBtw`oH(rB^IR{>eh=WQRNI_%kJ{%&3*vPv!UJPnj>i1 zh5{|4x^ViS6y>T5d@Skc*?CvQW0ob0fon8<@eRbim=Ae5Zn&@x@$j5_2WY|u72{`F z55bz^Oo;a#g=N4Z5VKHH~XkW!HKbPB1`sZD9c(GrR5+js#$*qfgbM z16F(4stM>_HymBe1FA>rl}9rG^rEt}+@g2}Rctyn(S`PvqiOYE7#FgCl(^(IaD|*( zings!(Mg0Jr~hu-x%3Mgt-MIsb{QN@Z1jGI{uu}Qb=GK0A@HkX0R@j-%08B8ho38| zf5@y5NkxQF)Y6hT?D<#jnVs8ARi|w@L6ML_==f_-MS<}v^P2<UdS7 zPK$3wjSnjl(G4>WLP&-jL0ln(Og<+IaXLQP4=Mbc4$eef==;StbVAPv5(iK2dJaS@ zMHpe6i=l};VSE-$oY(%~;Is-%(8MS`WWM+D2zW^&J`d%n~2=YH@AL`eBbPovNW51)VzDRBe=r$&N^omK!&7(3Vk zf5IPttoX|Iy{b8)*wu0qs{K*-`WL5{WmSSegUpT)jwTF6mWZ1US_I@I7%Cq*0tl&> zWj72cEp+TN73o(EEDnuYNg?3Q?*oC3pdg#_jGzmP%5OU|%yesVa#Fd2A`J?cf|%Ps zc2vML?IYx>u9Q-JYNK7S0+(X?OWCR+|EzA^1_ee7Y!nnJHiK0si zt4`>0P2q$SI}!jWp0rgx_v2}e_qjQYzl*{70i}v03a%RdakOboZGEPo<)lQ6+bw?C(EnsXgZ;-=cCrl)SwWFXbK+7Dp%a$jWEMa8x5 z&uu{v^iXWwfsF%`U+zea`zNm8C4w|0e<<1CV}uF94y7cu_!`_P$& zKT;#|PK~jLpc=j`$*q8OdbWw?YgMAs;3}Z0-lVz?`w_M;TQp4N{rS42z_i1r2YL zDj_03_VA_vlN27|j@-N*mphylnEWdlkt+y{5rNl=;7C&vg=#V(?;{Ip(op!z%B_Vn zu$@A7TR53(LvZ$37zAmrHKoqk5=&@7>Sy7lApkCIjL57pJbmU$qhoH-e>4pBEyeXSin z;*_0{7nI5;mOyP$2!$KD3-N(MZC7_R5eAg}c0FV7>OiPik?_ns3EJdRE0j4gXQ{o? zHlSBrtyT_qT2)sk@RTiBdK#Pn?F@~&g=B!q06y?8!Jq)W!Eojms8j-G5SS3pKYbusPVt5O}?jVX(Xz=v-y zNv3kJF0o>a2d2@ye>!>;`2}HdHWD=IKPec5t9@`P3lt+3CK}DS8*waU*tm+1H#-*- zYo|~QQVb=4^JlQlBHEg;gb z7?XkzW5@vIWl9UFeOMUO09_XNXquU%4_X%?jfU_i4lvk2#KG^8OEo0Gu>?3zE~2c` zJCN+HUF(2qkHsJ?{{~A~Kfy%JpYb^VAzhyK0aDa*&3tWC6G}@?c^^#J1ZjhN8^JC7 zrUG>@bW7g;5-X@kg$kdjlq#>V#kDIZ*;bt|Zx}@G)X-LlZEDn;ht>U=RNGp18lADk zgnWGD=YrQpVBd1LW%1;I>5IWCBwAUW>Ctw7*YgPKnHm7l1P!KU!6!aJZ2jd zqvVl>%!iY&%1G769D6dA`e8O2gw8uHt2+0{?tvDXSvcJ0NnAJWiVb$CPfb3MWG^J3 zySj{oc71ddNxUq_RPKr`X<%Ovfck0-11Xg55$|p76 zcq37VD8esm73nl&WvkWmT`RPYsQ3lYLT^uPnCVQx?yY=XulcRciiL7t08mm6W3O}% z;%|oNPKD6awWhE?nzH+(b32LtEMK`)_x){3mCQVgh&{ZI*{xtYh8|n{ynU;Nb$`L* zwV*`Frtsf2axIR!!nd!%a5pQ^6v6jPmP>krh%@OHcIA;!C23K=^5|Slb@hqb9Z%=< zjE(riN4>kZdr#pUAaq3|U@~#5b39CN4G(+lai(2U=A--#FR<<(aQu*mE2H$d(bB^y z*eN1&NOd3zh2jBU3SHsm+-qLgw(@ism!Ti6x6gYJWG zXR=6LY#0=}OZzb4aCefMNe0!7(o5*xv5jmhLmjXBrv~5`g{_*gDFm7|%0!&IWEBf; z3pBW5UP{nS9YlcD3vzoJ<$7=|rKaBZ=`bTZGNj`ftv_JWCsTexAx%J;;V@Y?tQ~zU zm*nT98JkL>Z-)~Ko1U11Y#?vDCrNO+$%{~xHy1PmBivLT+98Pvtu(? zP;Zr}FJ zo@50X8;%y+m<5&RJF4&8ram5dwrLeFlwQ4II~sif2?yn_6C3`?7(>iE;Gc9uoLCul zSN_t`BEOIQjq_->`tA#FTH5*|X($?e@*IX%9Qhm=?slu-aMYLtC{-1-fcdB78b+Jd zSZTx^)gwjsdtb!DtB5)0Sc&!42N!!#Q^Mj-P5lhbSdWvNZW0hK+E$!dO$G+L-s`Q% zCqk;B1tl?JO;9i}q_1l>!6=KAr4GPQ{wcG#-1+s4T*QS#w%dZ#%A))&o%9))c9ahL&xuVyLof8%l)p2!K#kkFsCccGHr(ULJn4rin_JD)J47 zzXI9z07|vDg~YM__uaP+_Tn4TcM7M9TcmAzW`r3qv^V2Oq-4E*8K5BW&p!^8b`O)9 zlre;J6voEXs>#*qzFq@8-p=l^_p+7Us@8~JNN4sVzLJCq4192_NjKYE=Xr`*?yf*w zJeTfw79?A8JPkb>Wbn9z-S7N~rE3Ye8f8lzLZw4=z`nLC!g6RG&H`4K44kL`8Cdhj zgX+Z@hNu2q$)jO`a!6B5^HAW46Qt4iJ8eUmCM+DDnGHu!Nffq6-?kg`#rrwX9cl>$kp%Dx*Cwus_La_98exrUhM*idBhTxG(HopQ8fFvNC zHw9ZnNalduLU|Vut~ZN>|9qo(6*8+U0P&?r#w?CoB%ul<4jHE$2J?Y;)9-YO8$e6P zyNZ5@S2qxJm#hTz0WewQ>otx>@RDfdnUgu*>O(oGw-nKWRW0e%YwzH;-6GP&j{eR2 zeLDEx$KqVB{C?1W=SBv8dVl}A{`$WDKk#Sqceek5cKbIq@R*nTXJ+KL_jlAc^NW}C zclt+Vwy9^NlBTWqLI?6ig@GRvAq>RdQb}JV^Z}yY#?GTEUXErCvW;5Ycc_ABeF zq@ZjZ8jQVhH4pJsnRmqFk#^#~B_F!9z%eNl3*BNHr>fGF`Ve--NE$w)GUqm($2OQOQzw z^EHqNdWTM1HQ%C5Btr%QE{qOFYzm`iSvWHs=Pf^TiSU zZ}TQr6WUqIa0mihWFi#MMLvP|XsNSGVSW6$1t;wbqPJ=LPnVpBij=Re7HYry&`j%T zv^315{YU0$-zxExZf1WTPzNlCmRfm0R^LkvxZ7}zNc+`lCV0%ZdD#TLTIYqig^tu1 z2h$XXQv?UhO9#lf3Y!N&Wo4EBjrfd$Y_Y7Q)Tt2k&NO+A(T8V!wGT%pVI3H5Jv1dg0OzRIm5}IijG-C&ce}X!z9Mn z>o>I7y%fvkR=208`=YVOx1Q07B(!SZ%|HMCkeYkr;1HY8IXM6vP6AZyD1@ve)C@5; z*cf%mCkV{**jC4sqfP|M3BC?It%{LU&2$)H!D13Wr_zX1m&R>-- zP^wu5?Zkoh?J|pg^aVdtx6l)_}t|H*yuL*KNF_g1rEq; zE_uUa>3~ZUlpmhKTp$hZ{D7i?8eV`auBW_B8q_A1S!1yL$(fc4H~lgzdwC4uzLl!8 zoLn~Qw2#cfKOcPk+Wa&jxKR0WFo%OCdwnuIVN_2`z9nwIkvb_}>XW00K?};Qjz9KS zSaw+^Z7R{_1eCRi?5&6cV0>#oofHN^KSENU@yLQD08v1$zZ{dtmU;X?V)s6WVb4`| z4_e0rtk=fzUA&dOx89#$i4c#ove4gtywj!M3k6&!xjhRkMAt^qiRjTZv*FAd^dRu{ zp5WSh02%vtN5iy(u^+Glq7*+(Ph-NnfMYv{^3yA?+R7f4o9b6fVV}U*fqKdZS-kj7 zhrA`o>pZ_GH;CmT%y->;dw8=qw6g0sR_$x)vFcyPH^rI?oxXskoY97y z9vWE*H~bzx^sl&3Es?)1`=3rNL#VE=LTHV|_`dB;`)+o5rX@r@gLI(`A(03J<>njB z)IsFjZnJe-2)0?>3maB$7*rDFW%{n%vkXr5I>?v1aL*&=bT7KZGw@8>)3l@xYNC!_ zQ-~YB;6S9? z@k-Y?+&{g--&pB{WcOBohbzwNf1I!sIs9K}YCo84`Ux$?l-4HIHZKD4cI zTbGEon;mb{HgeIbJo>!o0VI_%Wlx6Fglzi2Se9B?zqAX3>mOB@{?Mgd@kel`A(7mS z&4spjtG#GcLo-~ESvVPpe^3v5)#q7D9V+g4to6wX+auVfBny%x#LklVW=)8s;*0zC z!y=nLnA%uz7g^yNUDhIcvGg)hdHIgYEQO!PG{NCJ4gMgwwq0Dm!0N=Nc} zCivZqeH076CFbrj7#EI7zF!OPg(5ZetdcCBD=922ZI!Mix~+)~4Nw{@FO?@7cDdJ9 z7^4$8qkqVOA1EtrA6NQ%*9%5m1sj;@Hd{VR;Pw>DKQ(1Yf9%{U98J+zG!h+Ok!?Tv z(2ao$@#|z;z8)9lQcs215tfsvs7F$qGkHi?SEIHxody)2LUn#J_`GwYtVNmV7%mq&cw^+z zr&rPU^YQqBplP@H7jQ)Wz{64uzpfvKg6Ay}5>O6)+8nmqLM~ED+Y~uU@ z56AvKi|~S&i;R382fzlzamh{Mdt}J{A!>xuw!C{t7p4#P#i|^ENR2b>19A z$@lgzuIN#=s_BBUHfi@Vd-{3p&)xc7wsGJoGjDW=0y`Te05YQb$G>7KsZcx)+hk`L z^`J{b5jq!7TXUak7(uIBn6? zlVYvxH)BVv^M=TT>ig+&DOj{&g%YK~WvpnTtwX_Z7@iW@?~Ut9+O|rYo7#2#N^FH( zY2BD(3rwiY_;mK)w~aBb;2EQBq-6}#$(sG5BmJ>VszfpxCY;R?#u+7Gs7CyG4^;h$ zI4%0jDVn!Hg$QY=$lwyNe3Zl_oM<&y99%7isBDp3+7<-4tae^}Hk48?twFPy;A$M|alrtb`;N?TA=P(;|Q&fw?e5^-ZPw6?;1H|Vod-QyqMAj=^ zva>=U4GVdg#@zYQ$=Ia1kEOR`HX?oP8Ol0AnM#|c4oUk~%@g)nJ@Ms79ZsdK>Xl!@ zlxJo>9&pCyPkG7~K|!iJGaJ##Gq>BmG*(}Iap4;gNYr=w6cd_5k`B+4O1`WSL^lI8 zNG7gGW~PUs8Q!1Vd6zPu8ex7g+VO}`zciC*cEzowlBQFkU0yCCwM1bWk7S)?K_k=m zK2@!+y&nr(OnNWnPmWZK-Zs5R_I`ilb+j_(WdIjQ?bYBe+MMio!%lCM&G$B{3QkiG zG>-$2NrXYGUy`jZ&DuEo~V~)kMWYB z5ufW><6f*fYoQ9>xP?E5ulaRtUxr6?i#M__$_14hB*!+3CnKkiF2BrwU!%2SG1Hh^ zOX8TcX2PDN9A0*kcT?OFFt?uf04; zj%GVMDOvr?ftN-Io2dKdccQx?t7bP?igwojI1Cj!vRiFT-yK$|Voy4cp9qD`lO}yf z`M`AV%IpDBvy5KQlrr zL6kWJ^Db1&XnTq6ro-Y`gnh7}5L8&r4IP&BfFH|8qU6c2&>+~8I3nbkNL$HEM4k%pBV!@3W4!XMR0Fa zj!ie``GtO~XA5_9Mn??5NwWAmlNWS^MrTL{*{0yi(4jSCxsaq=`G}3q0S4Tk+xp>E zNxEy#voa6f)}BPq;HtwJMdwGy_u%QXMt5gA241+e?yOh-8UO>J|LZ^k#p#gbr><-bGCxNHX23&ITXqP9@4bXZ2Y;J2oFK9Y^W;Up~lgo z%tol3{dl9imxm_SXFhIw;I2E}u~hoe-YY$#d6QhWlwILgiqTeyC$q6nbzLASjB^v& zZOW4mjaRHN^N*3^4-OJ4W2=+>4f%`OlZacV!7xMBUeLi-N@CkXq1^nPv*LqyVe>3CF(vNXrdnPO)U=3!Em1Y1L=wLn2^q6g8n_9Gao!^}+Qg@1~zDO-c(($%#ONT|C-^ew*HlQNgh=_~9ic`E9v z1ujOJ(AA~?U9%N637P;Am@wTgcga^H4*St7_;{4N>S;u`tAc!tuy);k`|9-;_pc$* z>!E3|7YggRHhGvT=J(~P0xii~^&WjN7+!A$AaJ=LqHn`#y3>*O?E1A^QHe_d<_s8qs0sAJBtDB*WM~ABWS2kG zP1J1B7V+HLd;hiKk2{p6*iet%L4Bb)ymn;NJTLH_j}Me|h(NX7gQzB&Kt_($K36`c z7^iAN;OOj!i*O9_p44gx)>273y8yLygn#CrK68ohKAzwziN@EjlaR&7-8v^yZz*Lq z5O{j!uIvTX#ikAWIIy83a9$ypu`djH{xv37lmw7b z2_4Pq$#CAyofso+p)NH|^&Qum!&60<>Aarro-$r2@%hYm!#>jo-t~@(GVwwxsXme$ zlH30&acyXdZ5=4Lw7@|eD7UvkifVheveVt%3y<_$7P%$2mueASu~Cf&lr!&#yB-`( z7Q(+bK>ZeJ?2Wi6O(JN2a#U(~g;L{}p^TLy8+&V3{QbxCi?9c^yr%HHafiFIv>d(L zx0j3GwG0MEODg(Gt7H6iut;Kz*y^buD|&zmYI`G=)~hz(6#|~_a3l%7jnc5?6l1$W z{oi_e3{4`c#m;@ZkqPB9H3Jz}2W&($`-r&$fkk(f)>!KHRIKP$&8 z7yd|cVpEqB*zW;LMD~Vx-|Y~5aH0#&3hkasBb*in1T<{wfkZT+NJj7r7z|h`Tc zQtH_5JbpOLkD%RJ9B&v*G$js)PX(|!>t*a zk&?ACI2f4-PGeH>MYO}k!GM}yvuJ__g|qXRZR4N7&4`<0JaLfa7unSHijiRZ?}XXj zx-ROupBQIh%~o;TSeJ@G>chF15vQL=X&ywtTNTcC2_}G4IKTNlY>7v(|41+i+St%M zHDBy1>@43psn7aK=ZSjs$1K8CDE~C4D_(G~Y#21AC6X8}Yiw}A>Lk=Ky$t&Xeu)G; zdHQoZ!)sV6OP>}YfSmA2_jK^>N%J~CTy5`m5nk$FY6Bm6_!2PvI0rNkZ=(opG$D0J@CN|*A#Y?6l9ML4UGs7)FdQa~Qaq9= zt(~o3Fb{hZ!=*x#SMl7H;Jd%CCD@&TSmRWg9Nbd9F`&M#0*R-yemf)_W z(ic$h$vL5F>c1vNkI4@xSt?NMM+JU)^DHJxlf3h9EonExoXu6{txjt;{fsvX7U{Md ze7tqjL5L%ffuQ-_`L^TT*JSHvUUt!DGjh&TU8$J6_0xj{+^W60rrciXoF6$QsLx)^ z{HwC+@@@}e#4ctwqK}0?^kh1p{5S!>?)AxFe4H~@i2j6qi9PiRcqjb1%5kDpwBzr zdQRtKaF! zocx^%ZA?wtLvR$=ifxBddh<{&)aHA6Kn#PWXTz5138WAMQFmrnW5Zi_3dKWm&@x(U zJiM`1nQ}@CgHmT5ngod3+_pm#!4#cgw6}0^I4E`nbxJQT&5nBw1fJkBvaByrz{q2Y zZvGAa7D(PE-OWsLh7JX_@d;mpJSw(XxBhe(I4!miEI-ktt(HhbiUgRl!CdbEOQwX@CL= z1B6&E2TLnXrprDgz}Tx2Ae1-^`$aSpNid!GOlkO07kO#C0XPFGsTpl3OycJlAG&oxQ1*AQ6dBmAN~9?n_U#!L+|6LFT_CG(ZH74FxReNMLZ z?SU*-)9_xN0-@fT5U}d^3{&4>p3n>De$@4z`~h?qj+|E$SHo+SL@I5t!3?O-q{feABDu=9TpwEavA`0Nc}zY}35uEbUIJZD>mGx8rg~~m zm2(z3RbyF5-@*cg1)ff7Lab$*J}QVUAaAR9I;bWeOl7MK#Ay$d7Lkgr=~4z%FMR~iJ7_s>DuF{(8OV~-x#Zp!mfjNN4TT6t6kY)UVEH1 zdwW>26SN9M9?EMCf{At}aD9X>>+dBFQC z9LgvhDSiBG7ZXRAg)h@`z_%S&&U`0TALWbX$KjQ81~5L-0P3HR$9thr-QvuN;o@-A zNs-zg%E2)!H_43Sk|^2^RaLDqfmi0d@5+U9mwI;p;4HFI0IuHhPR_{)g7i8_ym2M3 zB4v|?7G7O;dDmb!?%3=_=QJhn6{#I z%y)*Vx0q64a?#0_2PXR}ydEYDy6tiD`R~`g<2;aW)`vaWlp`r_?SfqmP;SOTs4MP1 zc_Qb(V5;koxCnSNAZHq5#s#51#A3`-$aRbrm$@{Tt4q{_E7t;e{^r|9 zUAqi)EcS|TUXwd~%UmeWt`dW-5C*^zG!1JC^5KJ_WQSl6biIz*YYZv)ELzQ&WHluf zSLp8R2U?4ZnI?60iKY?vlOW74w`>%AnDrMjFTLZnV@>=M^dHG9{SRqoV{mXd}pU&ItYerc`!)d?(5&DReU ze7jR6R;IBNXDa?djLNUY3-_4Jmtow4SoC(eRl947IzPBQhWWp7=t36(e+XXsPiziJ zdZ}o8)I13P0xA`h;JKki1ua+wV|D9^y6M;vJ2!SCuzcCxK4o2%+Tuugb;hG`2$MY) zaRTd_JHdMe24Hs#FB*~>Kxd;Es9t5X52}302ywy4m3^%!$g!ZC9M{n&G^3K~*n2{? z8wmEME=tcas1=-TMXLL*+eQ2M?FWx=DfVIT|}inY;5;lz~OV#xIG(ST}wU8wf$; zR{@TmH*~6g{rZufZ_O6kqy3|j)c4VwoZiAqN@b#$a(ls6$x_t+@=XPMMeT+vz8_Kr z_=Y46>K6gZ5|-)B>0A!O?Is}q=fH=#TEf21SAIws@*D~j1~AaIdO9$KvB8+Ct0s{O z76bme(8IwX*@gG0xn&Y+<_?h>q`u#;7+zySFC+HNwL*VkjfhOxu>r&n*=!=FK=dPD z&iU&W-Qf{FK}bVuT1Lo9O|jno0mMiAPFjP)M3GN1SX>-!TzH10cJz{-FPM7}YWR*m zo7*T8kR|iH33r8?t4YQem7ep3?Y~_{R@e95f(*#eX0E@kg-X>En5jM?A=Ms%u%}F+ zNGA+hhl#XVK!3_zo)$bPEDPkWT=#U+2nq{Co!j<|<+d4uQoSuu7y)C5X8bGx<6L~V zgbcp6XzltEj9X1CKz?E;xTz)N#E^m%Ki&c#qf*pC>VsC-zsmTV5#Ajxv$Vk3$nF%6 z`MV&VFE71ueQ)K=ER`0sL{Y_R4hk;>CPBwT6CvtA)7k`|oqPN)PI|FR&u-J77u(w> zox$LVcDc{m;4yM%%#$qTf*BoD+S#i+BDzpf1nrQYWZElErb9Q<&^o1Aj4M=eI%9+%sVA$#*I`zTO2+VM@7k$knbcbNh+GaMWbdLHgS6E4zx~ ziAkCgPkZm@TK>6#U4t)E*VP6VP1H#?;q7rX;VYkh1ynZ$+#5`L7? zs?+jXL-_4+%$NebEHSC?Z=rRt^g=)qixwa;92DMTbEzTFX6(!^wk$YB4{}TA`j6Zc zGm;L+Yf#3ZGBiJgc;qH6$+n4$xGn!O)A!Ao`Xu(jE>!4bAN)#1pcpcr+DLG}M&bt##|E-}ez; zy-@YK`#m%lgmmJ_z{C`4DKB(+*dn-TI6KNX^{p8;AToGKi6c{2_U$L{ZY*GUe*qgS zrtJNjsojn}sU4a1ss5KJn>5n+u|gjAOV3(E>DlhegAwNedckx+ZZW*~BpI^37&L>Z zq<}x;mU7UQN3->$RQJrA_Kt$m4^E!2 za0wJv8E|BAzJPiB?o!3L03Mf*6#K@9l)iyDm)F?^t@7DVtwKq1a`*%+Zf@~@LRITV zJ6UO;RFfSL^^F_1^wg3ErPu(tO3|52#l6F4E)BHbZH+yaM+Pt6RUcIy^Vb($G=Pbf z&)!o`kKjKH7$iEAb#de5>vR!2o6#S|Bg`w7E5x)erV8Xsf;3;rp&rHo>RP%NG=(#j zUAbV5?OgMJ_ZZsz?tJ^Sr|jn2vAE3*+R*(oJL|j~`!inp5oDl9{E;^j?DGjuHnJ0^ zKh4A09&P>0-C`_6WI@bgU|O&#bcM;ys$p*-E5{t<_+iD85QrpkGSIYF$Cmq6x2&Q3 zPk9-3iBBbTZ2kC(OJO7@E0C}#8OM~v_3~z%xsxRfq4)+cj$ze$MhZiUXrlleFlT>H zbAQ`bUdawB8-t^lr)=4&Qr%0%9b=*K_vZaT+@?b^K>OSJXQ9AOqkR<A zQpJ;?9X!9M-(#q%dPeIU%orr%$D_)H@0Ak1+8iL zDz4A2uZd{RN#9A_nn!T6sg7$a*OsiYU0ILI`4KEJU*gOf{Nfb$#^-!NYHLK8R5L_hkr?RcA>INm1}?gTPF9N}Ix0)pVM4NGYgU@C zk~}o-l!82#Z($7Ty`}3BX{V@1jKyeeY${|cDO9e}*bwVoZ=#IK&p5#fyVkmhZ}i%Mgu^fG zdnIg)MF{RtN9S&p=5JrUa|;t2p0|$z-UQN|^>he!nZEY9Vl&aweo9JkR2@aHXBG1O zTW!;8xESe_IO0cocNSc|n|L1w18=fp9nu}dyd{v@&Kl`2h=($t77kkt5C3>q!l%M}{C*5omh(>L%HIWNmty%Z z)xp9j!%hpU5FwxOJN+NbX@F$Cq&R!Zf+i?@g}+R?@drxb-_d!4#%xCIc}Ll7u>?Ke zt02Rt{>j38vD#r~GwvV32D)}XS#>*`4 zKv?dk*}$3R1#e0JFHX#%Sri4v*4wsi+qTZOZQHhO+qP}nwrv~l4*Calzf|g*C6kq; zRt3Mze_c4)H$?xaB1&!CB(^b)m9FKyBya6P}t`Y4_=;d z3VzpDZYF}CZVT*9uM_w?@G^FKK(uPcFyKH$p?;B0owLNw@Y?@`wc-Q4#^$Q|2J@6e0)asL$(_U**mfJEPPOp}~(lt8t#Gf15SwN`Q_N+N9JjK>F zqeGRj{eQslmX8<0vSAu^jRJ4N7{eQv&?4?v14>pmrQgx7SCa`tf@8~`*yeF^REIC` z-eN38;pbhkV8rSnc)&a|Qy5$bjOm^)cLWhOL}JDM+QerJDJgHWh$E@@*rCsZ0KkXF zKf3|mVDOqhx^ES0xkH`NhV{ECbu&w#aw;uar=9tZ;l0zcCQ&3)D_YSQ+b;wy_Jto4 zG#QB1Xk_W8q4l@Dq;4|?4@cmnjuHJb4f*|Bt@3SGdvDpWhlVJ;o$_8y@+8zGg5hrC zGP~Hsm_~#qiweu=1-HTihLAOuiIUwr#bi07-o-Nt0MbkaBxL12IHz%JyO&DdNy?s?GgEt*=E;G84nMtgaCp zej|(Uo2_{;Ri-*Q!`L{vupq&3*ChY$p&%`6Rmh>2^$v-kcNM=Ylbey9&f_fy1?B!p z75ZQLpupTJ+ZGWW%p$m@EXnR=)RFmVEotjgwVKfI#i(CA>$|PL{&>dg&>6{c`b!D) z<9yAfQ~`vOkY+Q|FR0e4k`zHKdtk2e$@FD?H3;yKH(UUp)o>ElAibn^8SRE`c$U~x z@gE}U%Rq=}_V@Y0!=N#ShdMzQwkg7RS3Xf;ouawQPTyR7j8@#-k{vrPO1(ZMma7Y- zeP46kux5otkkmisQCHf(4`)uPiLu932?|AQ)#IKc`^|io`mEho4Q zIj4HLw`k8g{g5zB<92GOYJU05p?11_qQT5-Bd82RR4j4_`MkK?!4!0}x>o zuIlS}TB-NPMmS(=_2W}3=DHe?ktXTcnIW7o1g+&yr`ckVR_}*rmwQTkW5mD5c^NEk zteRzTT36<5D)C8#Vt}U_H@J9>uEnVXP5@)ahDpTOeyt-mvmU$Su{q#(edYB7qbiN= zfQMN+w38&!mK9BE{D*6xJ5w0P44SVUF4!Z1Q5z1%DEcZ3fd)OF_ zHG+rg91%v(GsE;;46lG$2SK7?JBEL97GwSS2*cS;@aFEdgabpOa^0BZs#;kJR?w|_ zlS&;B-EG}f%=S_;fj%Htv1FmFH{2g%WrTzlSh1C)4ta@6z3yCRs@|bejxMEvJThy) zug_X!YkJI8SbJ*}9W5%iTwRU-gCyx7C^wdF;toeF1~(@dogzO%b_GF0O))S1YZ(O# zCt0AGAQWMtVUy;LlT~A>iIAo}(Gp6f=_v1%e)Iq$5mj29CgGYyK)I_L_nfjs!e*Er zq&T-K)paeCs3OEJLS30vE$MgNLOL*oF6e725{n&T4KrDOcvIwMD5spW2njS{7X_0n z55xcl^&4z--s0fK76+j!KpWrsLZ5iyXaITW$G{d?TsJ-{GE19y8hfO76PUwV$0YXb zQf`yWT3qGxN1yji8-~YEEVRj%D68NkEqYi4E$^}_oOSKrv=p4hX^7W3Zq|<!IQ zQpjEusXU*Wr?AA_Rp~r_z8qzkVFMVjfz7Yx>n^;sN0PhC0hd?EA#5Q6mih*WyqMC@ zWldKxsiKG9=kVI;_UGkflp>SdS>OIf-js||?;Yt6x)a?c(>EYD1gj}>5Cs-3W|70} zA=$5b1`V)My_ZP|ZmqzfeZ1`HxV&N&*S;hQuMa@miwu~8p{sKE*Jzwb6}BP$4MGgR zPj-dEIG_tk1ooJ4w7{hFmGKd0Ups%U*V8G{TaPSSDH&`z<5*obx_Yot%}pbg$jw4S zT?FsIIF6{BMnWoiq02wKI|&CCIETJ+@o4a@FlY|~Kzm4w_ohQrILeCdCJ}CLx*1#N zMmiYiJIoN=?^tn!`h=p5z##OSFJOW{uo-RJlp-3p5I{uEXpqHj1z^BpPRMS9epZW` zZgEAhRC5XRDs=w}rh;Hi1)k;LY{JB3rO|wW&Bzhr7E5L^ha(!+FJbM$l|2Tk#fYG- zxS~Y5XC9#;_uNwzg`RqKqp*3 z(C*VlS`tw1;1VerHsTWzVH0NYb6(uj&o91UtSC95S$tk7Dci93p|Hvz{+j65LWzl1 zZ#FPxB5?~&NEM)E+opmE<5*!1R&S_jV@`6_20 zx>Ox(fZBn6$(-FN&A&l=%AO>8R5AuXwo*R5kkecuF+dbHXfPnAQ7}ATED-FTh6&CV zfPhhz_zPv?xJFt^t%#LpUZlf?{&gl)@kuTT3fDw{`IpLb7{fRRQlx~{6 zCTHJ+ih|F91jmt{8I4+3EZO^>&W-z^nnIE(dYt+P1?o|sJV0>WyisMAb!p9I4H zj%x>oq$nK=ld_?|MLxn>eLvK0AN-D0`gU0mC@&$wt==bfKc`tjA1{jC$;TmOi+cpH z-?e@H-{049yK)VEZA}cW-2x9ETdD7Y?qtvr{=-v7Sq@JZE$~H5bYIVTofQWRjD__G zluk$?TgUi88w^E^sgpHY1u@$l(Op1%PtB0O8JBEH=NFCNzr2@<*`3Lk)*O0SG6H0w zkIzPb@q;p%WU!t#Jz{*!Z@<6qqZFUz%ag8?zlY5qH}-u4F3K!>@*U`&RR;h24e{SJ z)f}`wZvApF;Q0sFTWhx=)+Y1-?-?%#d*SsLSK03_JD;nVD^P>|n#gBJ#1Y>w!M(nP z2TRWV057JP&kNYYhfl^n+QQezj3cD8x_pJ7UMwArGBJwPDkXui-`Gg^x0?*ag^9WF zwOex4F;}H)VVn|T-?-YEm1jKu)4V>tNlXxLeM|N}MaRv~sN|u*XhK5`OcdXT^AFRA zID`z=4+5M+E+GQsPx)78ZwAbdz4DG+BDxw6`^@Vhpa6}z{YMn485kH!xic;58RNMl zFo!2Bhnw?MG@<5K1d*i@D|=HvgFC*kB<;pkR8v0< zKhD826+(Df z?Z$rA9kuG#_RO}Q5bR;$9Q3-(OoeT`fi*>{CF;vSvIS{1{SuNJW}}n$ZBs2;?q1Uo z`v2aAPBHQ>PHp`&M)r)|E$KNpfU<^+O1H=2DZO4z1)CGrrqR^W%_?)%JAUJNf!M^( zo6*d=0P`lM8_etHBF1a78eZ8v!{sUhp(uO3VRcW|yyImV*-cVKpVP1O2KW-2-q@9H z6-2z3T)a`UCr-289wF+xZDhfQ8w5nbo--s?(aIhuiineC_=G8qQc%tvaUHdK_O#$9 zL@(BJvGrVZ;2KK6F%X6K@_y^nTSzm1C4m|XP@`XWXL#H68-`J?sOBdlCN7_yBVOb!X3)aE|SS z=VT8T!5$aJ!ClM0eiqS0Kc*W@tc-# z>#u5`vSAXYyXb^MG(-tnLXac2*xi~|y`2Wg80;_PU`F>Yuo_mwri zwHgE94Q~+$iPqQWQ+i}lq$NuA`ga<}}e)#{2{u~_aeOCYcKKIK0eEygCN&Cp#=%f1^8-2(-`Qy9l`|EngAD!;| z!q<*Gty>=RABw>hoyDx?MHYvI1X8Re^4roF?|?xL8G#86u@61u97A{2;O;Ue1!_G# z65P!kxT{tS-*+O2CR7FhNFg}-Cn)&LFI%F;$2=$2ktwT_8KNAN?nR!KJ0%vEUbcf9 z#>*_k_Yu>XEF)zntH{o~;YUBvC^Ml=ZsGXB{`F3lNVolO|A^sva~^=J7buGk@7cp6r9uNm?9aI5T0jVoZ*kvrH9qJN^zWj>ieq)T{wkgihMGV!g@fc@gMmvg;?Y>?;PpWuLipguKJKU>7GJXLDV3Az)#pSW zkD1UL;5Ns%u35}E-Rt|3n3_;>`ivjpL0;&wI+Fq_chEJU5(AXLilPOlCaQ&)h=-<~ zFNGEmT3nBqpPBN}YNSI?HX{b?ORz*~3DFY(LlSwWc>Q~an`iOvOZ^4N@WGXOYXBG1 z1AX}y08ZDmL}w}6Gzu>MPm`9Q7{V^C?1f!kzI?vT5Uv#XBref9XHa&Zy3l^l3sRg@ z2e0+sU~kn}T#mRERpN>zz-7)t3PJKjlT>_PX_#iMGYO^Rb=IL!tIFO^yeA|i+Hlsq z7f?p?q+rK%XxzFLWOu$N3|=j;xvF`n+JcACm(8B12$8wN#$R!XXk|tL*1YQZ=0A6K zMRBVbAE01~C}tNJ^`6{rwVEBsn!1BJ@q(eX(SeSQ8tni>)O8f(cJqnqgt-32sMq23!nb#H zR169~Gx;Ar;Swu(kGR3vewliLJMWGqBG2924?Z(-1O~8);j7V7Jo)KuGJ)aOq|`qO#DoD4}H9Vlu2{M=$Bg9OExVkD`d;Nbg>TS9hGidQZIK!}o^-@BI{j z_Voh|hF9(@6q1gT)S`Tk79TCW3yIInVKFhPYn7JZnlH0HQ?~G#v2$}eyQ3T9bU3tDQQ2M3PhjV`^>y*3a=KRvS{OzpoTR`>OlcR!mq`u#s^ zYDCdhxC|)}U7$b!0&qCvAOP`SC#SSx^GGly_YkE&OCSl!eg?5T%sR!5Woj$`_?mYU z&BzQ8Jrf7B=o6b80vw1uGyS&!R2Fci;I@LnCL5&x_}2J3Gr$-NKJ;m{{`i=ZBLTzK8MCz_R=68c=#2+$+*n#V~WNu6a#6m7wJMd-=A`5 z*!TQYkN2-*9xX>7RltMve)iqAQ|Wp+f;G@Gqq$k&*hu5^nO(O~dTWqtSiOzB!3i^D`kmw@=P9m8c4u7#5Kx*p_*#5BxuBst-&1p+YsR zOM|3|y_c6_+R4RY;=7!-^?s1reavGO7TxE>qStR!)YgGhM_Eb>K-0})IX z3ZB(1cvz%KU>jRwX=9b-JmTbPQ9(TGf%JZMIN-T+K3-amq`@qtD#Gs!e>F(qh$sT) z;^)30;~egF_=T1F)pg?9t7Bvd>#9@!Eal7_V3(B$ngUx*scwYzGNT!UfAn?M;Ctox zqr&I8#?carZkkEoxL_xAgQAF@4%}$$6CMWgYe@V>LLas;q7#H9by4)Rf%9d-x&OTN zctU@ZNs&CK?f2xSGFhg+xmLNojRsgyeweZD&>CHkHnh0l zu_o{4N|h6S&4CB8Dy`T6JppF-9X8Q`0R7hQOjs5I%9JzjZB;Wo@n%5`al5@$H!-suNhTd zPO>Nl?d{gVxB=NTZe>}2+(8EL??u@LK~M6DpU5Wjpk0A+$|rZT1E-h28!iyG3$h`7 z3ZtmT$fwOUeRm0vTI;96)z&}(Dl0jWvb)651Um61)IN?^l<8TTbmlz&Fw)RG8KyU8>O14CG z2HkEm=X}zB{mOr)u@hqlv%4Y3c5%ug93!eHtrNp}Qz1cjp?%sX>jIh)YP=d@g-wyX zT7(D)hXSM>7w_k;Lw{Iio~YlW(_>GtMN}iNv8lU|jk3Z^isF-Ug8o~k8@hw4nG{Wi z6Wx3qv2PFulc!fUBzn9Q|JUlcH3VXqtd1vZi&oWl&&-3rGZq%+K(H}#(STEq2Jr_| zo7VGDGTskxfN5kwf(GzNHYP%dUewD10uCAI`>GW~A|1~ys* zG8A{gYkC-&a=HPX2SX=OEIOR@!zqny%px&OO!G>f+ zO~ND*@}p0m^Ry2)gaNgSWUx|zL7(uY$-#|{(&;81O!AwNX8RNDHVP(rZ!VHyBLcW&`(N1 zmPhS7XVkzf8xSZ7Ay(0NMS%NhAS4)Tfu4d_jPj9C`c#6($tkeTR*V$&i0dj{xvy#3_1gd~IF*4@~+#^Oy|HoOw?%f5rrrb6W zg88frq2mD;2#}E;znBeNL?}nY&!RK7)uhLLbZ$qO- zy$Do+9jO3KrFvsHN@eu{3UBVPF;wX^(71sq~p^-zlk~WB&tDaNB9%BDde$H}6;U>F;ti%nukX*80p= z8}88Syb6cMTx&gBeNahJW$E1GwzdqNO9GU9{T8(_=PRPN-O*Rs8MAT+IoV$S zFdqZ!T&eV?G=ejp%e@qT2HskuOIa0@uzR;1;$evA>8*6ExirnQ8!D>RKl;oDq7!Z_CCpi>wbjCj|4vCxn*FAqn@| zwk@ZgormqNYjl>VA*{IMQnA8nQp@iR7y!xpADZYvcr@vH0W<^lG`5=~W&G-;{g5IJoyzC4BHnJ`b1FjDV0%>YMJUa&nEHw~SrbVa*4 z>*C{d0$xJP)+VChFGn4!IM589+|W;!CcF{FY%QR&3DxT2J?F`aloMweHqzQhIS8Yg zE!&T2S!nj(q%j|>;!~&)(-J0ba>h|+XoR?+;%1r+g^0ee;Bn(~9&V-@pAZzd@6mSj z?7iv*)A5DLzvNS~La6X8&efw;DFUQ@ot-0^&iatiLS(r{c+z{umTwmCC5#F)3p;1I z5L|t_;hu*zz$%NXH+ZXt>&^f{K)%1Ie&5z}-XkeBDgelt+ydzUc{ci9sn>yp1a0UP zS>PWq&JGaRH$bFNFl%2A?4rgtgk^nLS-ibn*f0fPX)6u4NLXoTsS$LcwIj(kN{*+w zwDDEqTMz2F>coMEIty*RS_lsz&HG=OCryPrl4bO5Zf$Q4P24AUJ@fcmQgZvhxNp2w zv?CR>CX}Z9ibM-vSQx^T3JZ#-!XxpbQz=ifwWK#%ntdA}q_+px;RFB9<_RADmUF@x z@BdUD#=h*nOd&hv`F9r)VVod%xKNWhxaFn5VrEya!gDuV%;z#sK4DN{ggY0nE`-)S zio@-P+;C4We(UUn1P!WZiY0*Mc3Vz+f;pi zhebd8pH5qT{!8n1y4-?#O*#sWJ@1&17UZFJg?erDu3{$VxG$Iy791HPfSFj%;d?xl zlBE|{Cm2NnI^;r$=s9PttkkV4n|d_Zon4T=7F1b>$O=P6Vl;X240}^qJW%%DapPl# zA}LtVFC;6Jb;pvfI}a2QLs3>lY5``29So`!{(jwJo`SWbE=4ii`z|Ah4UhNcsH=1G z{sr=CgqIy7ipf0KEq@k>9Ma#txXM1 z`DdfLR+s+az2fn55=G^UW-pvw3GH+SN%D>$FLfc1Gn4Igo2|v(m~Oe zpJ`DTSz#JPLX65b&OUd?%Y(JkF;%w?U}$JVU4n)b9uy*MqR0^)s8MTG^v`b+AXp$7 z&S)gE46kZA+}A=2L@_d)qaIQkQux|IKwG&x)a88y35-OS5+EN8zYFUchqU)xP^-Uc zVc4ZATRwG2<(dd+NN{B5i8Ogn*r%5a8+Jh2Og9;)T8@hi%A=>iR{+O0%fuBUKTA?0 z;Pm!s(g&U>9dy1@$BI*DRra{|7+y1fl)Fn2&?LA}0AmN9X}+-w-@i`guYEd~$Aord zYM@JKN6tB(&Q6bvmsp`pFH&UOxlQA>%GwfYvwn_(!AMq}l_^9yr8!IAfYV+y) z&{C%~vC!*#e}xR+9i|WUGEF3yr2H+#=ua2*`k7!WLek?@ey>5tQ5;$9I(-X|HHv9D zo{k14T!G{f4X6(X7vnuH2a-lJ$&EFv1$-<-DCXfhK@WFO(&mZfu&KFIoupEHrCC0x zFa0Nz=xhY4YdgaVQH!JJT{5kE{a<*R`hksw_lmpN`J?ZZ(4uKqM(>6||A-AWIza7b zE`@zq8M-Ev|8|#pu~&J6rS8yuNu%^)AnR@qAB%J_OiKG0G%>`7Br)wtvGsth)9Y~~ zasRi?UZx8+LYWylK;XbQU|=4AK7s9WA8DFVot5IFvN>n>=y)>OGM~* zlKr4%pjlrxs!DWTh^6U-<#=44<7#+}NjmS4eAQ{uTccuahSm9o)h)$!*t!--X#l1+ z;?KPK0lIV}DdhAuxvaN-zNaPy<{mLRjc4kc5XjWxi4ugX(*soy4u)4TW2$v?QW~M8I+yy6!|Jj(EkY(){FPb5hR_h?lufc{cCa$Bu@Z$hO>n~FP!=Kek3tIu!sCSjilp4 zm!K5@tU%P-I6Q@gw+Wy@`PmEYA5miqfW9NubI0SRT-Ayyk_OdAYyZgCj?&lV2LD&u z+ES5sLaN2jukv~`CW-*UmRLfq{BH~sdg1Y%hBpJ^mSVWJr~Q~G%%hQCZ0UE7(7w*r zZx9r#(_P86Z)##Cz-Xo;9qw)Ztz%qig+Hfrqx<9G@7^!)wO*E`0Fo5k%`4arJ>A07 zQ`g!&0t}$X=>>mGx1yk?tjYhCM1s|n-cF&{O%S?%DxTo3G2Gq8JVR>EYM?!Ai;3O` z3QFB0X=R^!JiOeIHf=}wMVg&h@I$k2TE?3%-y(TE`DSpWOPyrW;*8_jbp_H#CPgdb z@9hHWQipc+X@Fvn{dP)G?&h36S4IN;%>}{ySr(6o4CR3`p0uCvNS+ZJ@fGb&DDa+@ zJ@zRk16o=zu&>eU8nU-HdPSC~!)p%@E&QRHAUu3~9u&n14yE^rTY3bqBiZSK3h#8rbQNX1HrA}N%v_PeO}>fpdn@`W>$)y z8Q2!ZdaA?$Ykkw*>$=4mK(PO#Y}N+EHTNuOx)ObZ1TvKm&8HP}or*}7fpt8?owr?| zDMYsNf%`QnB}<_|f~?H#$wthBKxln3j6Sm7*65ms&So=|Jckuo52Th0HIrFzY;A32 zB{Z1Qd+u{5I3sJr!#}Y?-nWeVs)de#lG$vV|4@IL|`xi%n_1{I7C8TvUoU(k|o*sES z-;-w5lr5KI8yHXFsf(tflbmY_4?a~Qo>s*zc#ww3yXFbD+`7zp&8pj&i;u~vTqN{; zCC^U|LK~yHACo z-=;+qyUNx?F5Pr&BMEa z;>UM#H;GWmn&lH%l+`9X2y+*?G^68wT1?iWttoojmQOk3l|$v!A&XFJAuc|A{bU(`X2}tQCQ3DYTfT98nFS@o{9HEBQFvXp=87tvst?+-cCU~ zNZ;_H@K_L$6Dfm^-!UhrH;q2QziQ5A2%sWy2#hyIEE;?n%DBzT%oSZybfvfs`6flP zC3{!Jv#s6Jof0Gu$~i^cATonY2G|#SHk`T@T=FWgtfvU9O%E3E%msy`sQc*>4eEO*i zBx2r&k9JL~JS3+F7BcLL>Y+^3*3ald5Lbvk9wGSc32imsj>?}f7Y1&PP^121G_*)Y z%AL~szs2WJcl=JWyPKFm~Kx9j-cgd!Gi>*Kf~S8LE4 zI;xXnz~(@G^5B2Nzuq!Y%-ZT;I3LA;V7a*kc6D(N&ky0)$$}ANH3c} z@VPH(c^}7-n~-M1%xC2%F+*g#E+1e)E$S#Nqr1=7%sIeO6k+}CLho@<3Z-^ZJxky) zwqRpb?o+N50VS@{{+@aoA>ji&g$EuDi?YCHam?S4*d9?d%KaS0_8DC@x}6-n!*kf9 zxxA4*m2E}}Z9@2dY9`cw3hvw-^oMaL8w&-`%mhTRp1Ydb&fCjYV`d69k^#Sz1|1H~uH1nP;1mRl7d1nN2WBVouMOw)}LaUVUtK!|v*=Htb=7 zMIJvunlRac^v4^+JzO14-)XUD*$#ITJCi6c%CF~8o>fWegpWa!BrAFz`ta?J`Agd6 zyvt8K6>3YsCfza{po1aCeb!_%NP+-`%^4WujuyIa4CD(#w0_|7q-!NJxamGf^ zNK-M1nEf0(l-vyo!*R%k5lNktHR~9}2{1*tTPMs%Tys729=2958%MW7xbq-dinsUQV&6lkreS;?zv znC~v=j7WiufXZM8uJu8ay$644L{P_mfv0$@YyUFY1M7%~*ryzI{a`g6RfW!@GVlK> z3+&=t$kEU#|6Hbh+nL9Y_f|J0gIg`=F-+yviS33q+vVOVHozGtn+njNGiKi>vU7o=>6rcXoh zTStZ62I}x>_|`woO=?pdzV1dPv;G2j)N?M20VA?QSt`Yq_%`a#c~IOTWo;*g1!-&bi&7 z(Rv@JKG20?*|CwMEjj#>E;w|_>x)=t^o<1tra}O-rHqf9oGzYME?7oc)E-)CBiw9! zFdhUZ1F-fD$?diz!soOK)gQRpV;`C`qYa5lgs1@u9HjywP)K)O``XZh1Kjf{uQGE~ z;nm+U`ati%_6c9yrmpWg@?2r3J8-U1#h1+ZcQ|Tf;drcJWhrs<)~Q@%$u8`B*R65=$Wdd$kTgq-ox6_; zjkOVfFyX~bPuy@x?%c&G2W*zd^fq4PnFNz@a}I0QMX<$zz#bL^#shZV!sBZkA_E+E zY8391un%L(@iTs&3|i4?!kDnV8ZXgKEq3dcNu#f-kxaImkXr?TcP4Q4EiURN%&4!lV)EXuR(1>rcG{(82XFG7d>0nPtuP^aqwCSc$?5; zh2UgkiIUfVK=B={8eW}k4+-v?Aj4(4<5+eNAbN&Ps5vq@E?kAcee$6@H~TFSw_3?!7>j2pN-quD*Y z-%0279wLsL3)a6We(zUT&IEgKuh3AU$hqF3)8^9?nHWCq_&Fa6WLi^4oK$tk3}T9; z2Et?pA(j2nP+TN=dex8axztram9&M~n|y4lv};p>un&Vfn7tiFI;8xrW?y$PGR)CC z(>8KRB_w_2?>tKK)k|Q3U-D(lxIX>nuqra-pS&X21eSap$TQJW1FUEyuILf@4B%T{ z6T_cvG}T)?*)9G=Eh^UCa?}6gng-n}&~L*hU~57$0hdkb;`!%`ZM8WT*0RnQa` zZd!19_x+xeV`h7{DXX@pXr^b+Yv$r6bbr=}wE3*aEf%_`z3Y8WQSn-|Q7j7#5C-!u zvGx3wof39zZ)8y*nD2MjeKJ|(agAdnJUEdZrAYl{n)t-jLyz45_aW)KP!_ug{l2PG zf)QWm`@R0!IVylEtsi@-W9CejN$tq_O)iuE!3t>!28V3Ue!KeO0pttR4xqrWw{88i zfwKi!*frP3NZo7~A=miHf>(DzMK8PP5JVgwZjRX8z73RavV#rtIhRgQSQ>gxHQGlz zT`ln{WQ%(YjVK=@rvJ#|<2CcLjZt9CxhIL%@(fInJ+90TVpQIf0=gG^^@^92XlQzS zO8mzlTbPTWMm>xva2|=&{#W>NfW79YEsZ`XGCW7GImGNpH;>WOb&Gjj8r4$U+cx`M zcrk^t-euHESq5NY%bR8)-=FolM%Le%UYm%!7~HZ?vd*{$Efcy0lNioCLRfYXPgI0r zMT)$Q-&F%b4qj6g-U_EG@2l3BK7BV`wwM1mXC;3>bDPWCvDSp6iV|W2L}@eN;~Ht) z{ZLeh<)Z;CG1O&tUIF@9cshoWh6$S$Qm&fhto!<-p=(q*|KbV;C^@|Hdk~2J$aq-c z2=lQ7@#allyLlPjq8|nq!8rjorR@?1dPHs3_MH;ou$VQ%mGxcr&WFn1+u%mfK(I_y zzkhd(lwz^P0{(u`&6mPnoANDBh{9KG2e4S=JSByNAPhDixckWVdo;@xI6D836d4-4 z@q2WFdZmgFQDaoa*Mov$pmC0~tW>Lx9Py)~YdCs?oVl8u&yY+}kaV72&faJ~0t{!P z<8jo0kAuz53iPDL6${54!(;P~$LHasmoR)p_)M5QpwH%s?pPZq3wK7jsJRVW4_-K6 z4jW!X;+2*_)OGej9a^;V?b~))+S*)0)Y7n~lM%M@QJ=O}Tat2IVF25o5EjCAQ)!V@^qabFsfxkPo0~{Yd{#`npbTmXeZoMMO9RNEaArD7i1SzwDtbP|Qq^0k3VCOq403 z7@#a77e%2`^_S@(r1b{vTR(1sQnC?}<44w6W8k3Spc~=cE%`O3vx73~?hCXxXt_`dk=%;v=WWSARSB_Rax~Eo2$p0`> zi2!1ph3}hlILq=M)K&YKPud1xYDUSSqjmP!O(1yTaJ?zf9PZ&TwOl2bix)^KP@Y-0524>yr=Y4_idmPE5R^dE(fAqC3?D^V|;_Or@)Fq#2 z+2e~GOz(Ng_ExA~vc$#99AK43DVS-w1H?+yGjjhepXb$2a6=zfpN4*z3rf4ns+>s$ zW4d@c)n{5W_!%$t^Ak7snHe<{nmmkjv~`2#cF_-NNAo54{n#{)%#~2vLo4-4(+yUI zXK#4C3nZ3kl8aeflige%#6EC=sS+1j4F+xi!`&eN4M8h!qxlMC`!b8&6RX-DbpMod zma8kArWcIvI*G~Jpi(oN>It6P9 z2P)tA4<)mbjxSm~u+E2S-H>^@V1M9&SCzBan8^AlkO{a%S8M zWbW+I)|ah8v39wXnfq7EKgZ}EE{-hIaZ_!NzByG^1ypZR8!wZfT+-AT!hG6((?mc*{v%v6cR$K+@WxHQK@vU<7Jv_hh} z<&R6UR?H^v6JAntkPNzd?EV1slTZj;MUn+kzC1(6~I$@FA> zflEPDbR6{=XaScJ?vd?CX!3o*79aBJQkLgXF2_q}Xj?w3)beanKT8} zW$D+!ba>msXsJ2f&Y2!UP@iBT!6RO6eh1l4EO+psdSX z6W0$^Sx>N`koZ0}4c{2s^&`RrIryC|24z~z01;qI)Z+^GiVr4Y{X4xrvu`9Ac_}!qh)LcMhZ5(ELKQ>Xq zNXP>c+AR~Kr|-u|V-D_PaqGVTf<_BbcENPid9gM3?PY;4zu_qL9h`=_7Bn0@z=2Lx z{v|aRJ@#|eP&MREbn;?rQ8J)%XOa;{*ex(sD>ydQvUw#eYrd@BcKpwYv8}14;Vj$e z7q0Eec#e8VdZ=w}4$^tghdQrK&gFEgNc_!rL|WirVOi$S9~|mXr2NnfRNolVgM4>0 zfhaZkWkz4!$5x`dI4N9)8}?@79jc{btVMycO3&=d&$dYptE~op&G3`{=-W12~AaPy2(nI@O7{B=lQ1A488E zE)_|le@xY}2ypGzk4q|enI?&U%g9Bn8cmeUC&Tge5hu*u5WU$PZh%Whx5IgLLF5lc z=yPrON$LpMKN3tJURb7p=WFPY=~pV6hVcnkHbj?*B>D z`Sy2@a0HBrct$j-b{-BR!86arMii9~VU2z~o8vFq2n5FX?VZ@kUh^7n3pa9E85rG$ z;pwmp+!^uKQ%XKzh=u4X0^v5&l?Emm7`C`CC~;a$Q+Q~$Cj5p9H(U?alAbwpowRLW z&5Pos^o&4Mv~JbPJDCNCe6nwGLX3VkVu(`3jVIz{e@1`5gJwxu=&(r6X5M|#-#q+TM2D04^kTLQ;s_k6gH13XN8BR)+8z7oAj&o+rFhk(2u=_1^d2<0 zo~{1^1x{kpyblxEX8qzd0xF;jfZR-n3AT=HBqoWiy}Dm3a;Cc~!YtKIiKl zzbi%5&kY%Pvqd5W2+P5CWBa3>uQ7xZfv~3@qpD)VR?WoU(q2_H$~Nlni@^b)c~vfQ z{Uce;schZu)-A4Ff{!6{+I#H@NSWLO zZCG5+GJN*IhA<9>EDZE@qQLC%QtFyi3{KI}4$Y<*+b}&q`+MG3x+ol=vm8HHlq$>+eMmLZ zg1qq9bFc}Hyr^(mo(5ozOzu{->m|(eFPud`%=Eh@w9dXQv@pYa5gU7l9F7RS)u{x) zh;!W#%3ihwwudVu7K)}0G*o5aP_XpzCT6!hYWPZ_Ad+xXN5n`0h2DJsaq5(x$sX;NLmjg%}H8S%+^k3dY$ zrUr*+>qaGS7q(|_%Sv0n|LBGf4ahAss88D;qWv~S^BVOk4Hv*koWPO7BuD`&U2ATY zn%`K?Uxh2e!|L&*e#BvYCEWO^=Y`Nr8_PnYz6R*$@vGU{HYSPFjyWg?3N%v59NW+2 z5%XGf3i#zSm}Wv*Vy*UP4s9(iN? zM1w)dk}rK|DJoC%0ptx(en#6SChYkSFE$f9OyDMTPpV`vd_=bqXsv@I>N!YxtmEmp z7$sr|kUvAFYJN5dZu;xSYyAO=M)20h#-?^>qKGcjo)kHH4|@v3bw}IbY5|`V64;(D z**OIrp|fK&)i2=tY%T-_fw<@x>!=NLA<3`!bl?-7jlSnV~3JKvdxgm zp`eq#Q@&T{bf&UgV_HAgKTGnHx8HFdueyJp?7+wk(UqyWmI3jU-VFW*`l$eG1 zrDdGLD|K09x|8a_T*`eGQDoU1hf%#TrE*&So=ml^IO7ufcw#lycdyaoC&CHrpWr_T zs44A&SndlMW|_=8*Ylp_hBNuWGdF#we8DV zj}kB*3nKBj#hI^5q3Wg0(w2{XJyx)o7)S-2F^^m=@Sp=Rv#PiPtn0r1_K5VYJX%d9 zZ`38;k+mX^uQ?GyZt5*`oM|U>zNbLo`8kAmA)OF71_dp(fAT_Y0<5jPK4(P1X&$bG zU#35^;_15Thu`$r5n)XkQPIZYC?sgL@r+<4HmmF|qlXgvg*!GKT#4RGuF&K*TB}qO=_G7#;FdY9(<(kn8HL@@DC8Pr z$7R@H;thOyvWLO|S7?s-RK&K}`HJOVA*<Dmlp)QNWGRx z{|FRaHwEI2KQ}4z*>nFPSN?K;SVbS5B-^8)gp@A}s<#n$Xs%SXsmB}cih2fHhAo$ZzM}5uhN^(rZ zkN&eWwFwrQ2!O3&ko9od>P%WO{U#K}RFEHMe|@O+p%`%9*hO%FSus2)M1M#qb4_&t zn0J0D|E_0s8WW!c9<48#B!4H&$0>*}Mx;5c2+k_EKTVf=<12q8H3e8~LzI}hP6+vI z{hrr1PT#>tk^$yqxg*p;TkW$Pz>j z#Ek*AAf0;1BU!>_Y+b5&6OpbMBcr*bhF;H0 z=ZoZVxp;3b`YHPuGBbek@-tDzAE3_4)u)XKj)_2wtr9ZQw(fllH%$G_#nlnV5+qRC zJ!)GrS3m7Ovx9JL$Hrm@V!9vJ>x`#7d!e%|DNU>+ZHFmg(YJsV7j%D4vY)d_Sduax zS~Sy8LJ9lut(LP1r{i|=b{jfA&TSvSIgwCqRhCBZ|39L~)djHBv!AJNVdo!T4vfoq(Y7#Ul0`bRYOc z4x5jFmTU(v^oj+-fzxIaW@cn``0g~cZPECt^;&nr6&_?!^P^~CC)#e4rwa>Tld!RC z$$M?%@%zb%P2{;uW~#S?;is#ydo6)sp;MsKaeH*twK-UsCVrD4**O$7$_4TCi0x^| z?{x>?81KHDDGXnF9o2x**M1E48N>H|^&BR^;MPC`p{r83I5w2E6&w2D@^x}__!CVB zkhno#L#~KNL~bC?%)k>&5yAJtq9Yv3$aOnYoKNt|PaWx}M{V7){jkyNBwACPW?*)v z^Se$|$^`xcq7i-Zp<$>3K67Uh z68WE~Nyv?~g;!C~I8Y-zRaj&t7zL!jA459xIv}@<6cW%~mWgQxlV0}luut0>K3gtc zDDNqUgUv5tYk^8Rmzk^b7ud|_SI5|U$5jvJUlzggDAyad>zdp7#K3*#T-=^wks2>n zLt9(foatcjJ@hid#?p$rX^v*}DUJcJp^tftxP3zyo{0fna%vfjf#R_gglTCjq|pTu z47Be7i-pijwdQ`^{EM+V9F!r$zpyaO1n$v6Y27gDlB;n=!{D4e0SBC`E?UhmvC2oX zcF8Z($blJ$tn({2&5yRSFxgJe8dZhgF{fe~OH;O}0&*!oShin#$wqdGjh1|y@aKtU zQ!soJL0vXcEZ>W3TVJ&G>pq@7?+Cjd{0Z-$fu`S0!+d)wzyeN+$ypp^eoJMDf-D2D zcQWeQnBm0B>+SkN*1$NRML9TGE~^$Z-+J#|JpT?q_ndZqo*?(ut_1g9YFise{s0Y1 zPlwwHj)b7v2&h&jqOWuw68I%1jcSkvK<4$3avGyb&=*nx5YX(|g3bHg{SQ;SA4emb zLWwJ=K9KIkd`CSR+v+8+7i+zX^VKG=nQ#a`4|(lwGO~|hN@%_xeOuuB^?MetpyoA) zg?c=q^h)8-VboK?dL{w4$U32|>%Nrky763!G5z{nVuz2E{CDkxJeA2tcZ%={URGBC zbtT(A>{=mbo?R_8c8asmF&o~m3ro-5mzKL&sv*3h6wmK4AxphN!xuYK5%!+E;j<1Rw4xXrHNu0kIG%!6+j<#cad*ayp&J;3h3|Zeow`KQ%K}=D8-8Z7 zGXI<>#dKB@Xsh*4pMN#>&&Tz;FhrWGpBVVMOk7C9$mae@j(eUkH|<{t`TM%mXm|x= zxpDWHyhAU|USS*ht+#~NqXl%+$sITLQ$2(3i;Ysd%@@H24FvIf07oQNm9<`%scy_G zzSAw_b;cEzx=jv@{P~yPu>rhXISIFfR&=_tqnGsT#4v7x^zAi&@yUKueY@9=5EUR@ ztu%-KNHZ}AO}=^5@~83vv$-Q?Hoo5-%9gS~SeknOs$?$sW0(vkwx}<$8?H79jqrK_ zIbtvAphJtDO8uKnl7jpjapLbY@FvtosWz$yU$k8A%-v1GHcGrk$tM4p~W!TlQ5d$_7-M`5HI1 zB;=nn=-+8%$kW|2$aKDyIoe(lo!vf92R{1{18+lo=7T#xzeUQfh{ZS0WBBnU>||{; z8D*ON8k;jY0|kLP3rT}CnNq#Lm-tX9^B!Wfi(`oAF|GHybQiV!5dS@WqY=fN=@mYi z&s!j^+jTlZ`*j;r*7Do-9{E=<@Yi8FyiWhI=DrIeEDrOttq-rfL(b|d97gS*Gb8+i zMO_a~sT02{S2YPkPV5Jw61)BZ{70I2PMON>c`7+p-<8u=_PWG2W4AeEXry&o&ga8* zI|1N9zTE;^k4)3z|GfS=;LMJz)eh8j4vqa7yjSFOZ>x+=0qgcn0<@Q-wyVz08kI8W z6?-8{X1LlOEr8)`A*;a@%7DEA@p++Y_1%Yw>r5=c8@#kO50-Pf#S)~8#@M8FF=HbR z=VTE**tP~WZZiA*w5putjI-Y%ycGt*`2G5qi!n%?Z$MXxJ|HKNiW%>;8u%0pR8(6r zK=jT`XH<9<5dDO0S4RgG!Gz)&;ILs$E!Rx)!u`ldNn3D(;9MQVQOSgIQ~F0Ej`K;h zLHdOPoM;x-egt<7m>^KiZ(*^o8A*34k)nR{nlGev2YQ((A2J;O63gELHPl#oKy$o2 zl(lNUNqlgp;GusCGHxy|$|nIO=JcHpjK5vUJOj=Cr4>^5 zZ%L=ouV=JnA>j$|Mvs;1-YrJ+61X-7P+H*2fU!sfg?hWzww2nl1|1d!UTC3%XGmh_ z^F%VyAZYyIG|=BOX5G^a=6Zl0-TfVWFqu|K3ELlE*ibymytyJrfvDZ;8A(ln#lt}K zP%Vkn(|F@-Sj-@0FBh>QH=nkJA)?wWVUC9a=KR$CD$gGNJfmp%7U7ri3ViE1n9%g2 zW%i@zpes5uiYzhQG3V{C{((S$?D7t-`q%W|E5jS&;#_8!07$!0 z*%z}1!n{wUo+YFx!{)a(GOmuP$N?g|(UK79U9uGfV8cEwhk#Zp1yT()vK-AMu3Tf= zCZ4md6vauHaXgi{Zx@clm|GVopIG`%XCoOcmRZgZn@QY2fM96Ni}Rp(b|`Oix< zOLLd3t-;lWwZJyPb_81<`X52qQ=RBxSkexRPjWUXAM|5pI=--!P|6##5RXI~d`r9} zaZ`#Kd2VYM*TNBH6Pyk6wWYTbr*5s~^L{{X-XAs0W5xoAf!1HTCr^FP6=G*_KKmpa`KVX$7{5fJ_2TPE2dM_JTOL*l ziU2IvLqOebefA03s?qGq!tf2h=JPJ9tfxlL^j|Ji>c{KayR`ln)yJCDkA_R#H~NeK zo2Nm)P_iFQ=AS!)Zkq3tPa`um2OhJzT$rSPS=?)2LhwB~d8a{_0jm(){h6-Sib79p z*%fe4lBX|lq(p?Gyl~0>Gv{I&A_n}iiPRwNZ~ERyK4lO7SsI61?lN9^SEGX-XuH%f z|0=hE=W;vM?G=y}vQ5x;=g9CIliIIt?FRZSAX)0yCX(KuXnV+#4!sO;!MOQ9QiZP| zehhrZud2=4`1Y#!Ke{<6^iFvE&_^o4fNH(KOJ%3Ndg(BaqjlPsHSSep^MZQ-cD}NM z&R9wVfHQwI-88a!T+ORlB+191-DrfX)!cZdkB2!2Bk+5z%ygW(xcl2JVe>~ z7ni)@$=Ke1$|=>-DSV-QRGLRIB|HAznh)5;7xWt}eDpe@&>C8?A&WqVz-RDIE?4z- zuruhb4fi=nS*f_dsX{0melvTSOIxY33wdv)X0^$^+#;x^(&3mQ?KClnPjG-xG-^{` zY|tkmm8Qo(ItuJqc-OKCL&uTqLC1(9*`3^!&Up6okivy<{#2D2yBjY$qxX=aOZgH` zlB{b3e9$M)g76I9YX>moN0ZllfymG9@v9=}cj!opGCJ_*xo!8(u%Uj-Cxc)DHR~=6 zS!;V4vwnrk-tuFxGP3L`OtbarV3UcrP%IS|!_3E(L5nBFVoZ1X)dEWl?W*#ORAdbw zL^4liRFo+H#x-5IMyOk;tCSGpn2OPDc`tf1^J>|;edN34K|2z{M*%f)Z#RTVg8Z)WB=jeYygzFFIgTV$acr}1?#73%cAd#?2LapPV0zK3O=LeYbghtF5ojmZ~ji;C}i<+;w*88eG^Q$FNgl95F3e9X6A7 zP#6}f?iZrK5RO-Dc7k$^YD3u9wI)B2bgVqxRP%*eQ}^Dg%P#OK-Z*_TZeB%vp8lgD`T z7f{X{sIv~|N(%%&2IwyJ8qA1Up2Z|O8C(BqrS4Z`v*mh*98%aN2~F17gm1P>7pt$M zNcT9WVk|C&PW@n_({gAxuc5bmXs0&rdtkbolt@ z(1343ePo1pWLcC0->|^s=#+Na$w#jLf?W@&^~)b0am00|E3!>kq4*uZjAH-?*t$&F z3W_jcfc=2_5tdi@qoRZ=g@SRmcKXYdVQaY%YuQB4sm?foR>c^T#)oYX7WVFbTM)Ij z7U2Ze2UbpBCzR)G8rr0C0Q7Rm>%4+tt_y?>9YKjPkzeueer^oy{Bf{M8+&|@5!rYT z%;4E)$8spY+;8D=ot6dM;4sL*vu)KL68@QLcfbBDa_@SxU0bzllq(m!Zg{PXSVJkAQDmI8Wg!H zFTacSJkoYHTlH*588VDXGz|Z=<@|nUq2}0-Qhw)Nn}Otq=aJd={jil!%#LY~)*Y=; zd(y~slkkdu)re(fXaV@fXxi5?rrCY{ur&M3+pD#%OL`+?{&T^-SWHB9H^2XRMPnC# zkpj}B*C^W@e@ZKt*LEVEoqXXG8iRo<^;Js!lpLQSy}EOLcIVgi$7EXTe^6v%nQDPw z7>Lg|QU)dJsjyU-oW0Rk)Aj`>F+oH=mba{g0SS&f_v3$UJ^J-B9K8hI4ERV-9y<#c z$|n}u)d%KVql*ZO(-a^}Fp$QyHTR{Ek2SI5ez$~Uf5R*XAOMSsN9gj|Nz6|Nr;1-Q z0?uEFG&cvGQ%9ufEf!d_fipEn;Mal%k$r`rx71wQV~S+LYI=_Dt(Y+v*9CXlEF}*; zpz8xu3h~zu)@(34gf2Pt)PKoqR~XoTizSRhiZ(QOJae9(4)=AFwf^$$I0x3D5(or8HNSi+R=ju zAuAyT3x!6$p~4V{zM)4;@W6^&Yg^gnh`-9WTU5DQaxT&3i{g5id-PDhXKy&3b^P9c zzPg^jH(*zhCxu*pZT`41@F3?a%1zjmcPB0Ky%>B7Mo5wwxzWha@4_Yz1)InpmNbNW zI)mhRDCkf;^xU3ZgThqyJ^^?bj&?ikdHO80Hx_xHzamiMm@<%1s$o)`Ao@sstldI% zBls<>&m1aho{h|cA_efpR+ANb_RLCFCRfZfNEt_I4L6FHi^6|57w?k6l8rrxL2EN+ zygM~>-x|CA<%~a}+YSC>j_odLFAx~2|B@^XdSVYU%o!WV02dlwAZ1wUgd6H*+4!)# z88O7y+O*$R6HYEE)x0u`sUra@6@VmK?D+1eDIl+k?m6QmN7&yz&Vp9tD6akV%8-C0fOjpA(8E0wSHyYcj5jM``q zi6_tCUs|rwsbPRH%3%97_lA680{&+_pz*=d-JO@`KQ?#}-TDs6uFPlCzs@Stu0Lw; zM-=~L2ui&dw=k}t=rDwGPOh%Q<%zBUg zHWSj0{;z`^j>o3q^L2961=(^XRIrJehn>kOzeFYHVuNV2xroYTbJj~sG6YUeFfTnR zZ6Vj|OxEPVRed}pu4hfxCt~WMyTrZ$x5s4VD@jah^*zih4HKyiVYc`A#BQiH{R=W9 z*MSn*J;fKFTf5_{pXp>(ji{tz>C%;C1oiCusHl}%Diiz6jagd{xiAhR&$BmYUehDn z#+qk#x@^~7CJ0iM0}eHB^BO)Ubsyb!!|gAzp|ajb_j5b-^bCYF7TZ9iMBrHOY~0TX zW3ojyRRBvF;u|?g zR)qGhL?nH><0F;3@iPepf6hdQ%ae+21|6$2N}$zx|0X6AjU4 zW|E0`Tjz)PvX-dNCetiak}Bm6O_bSlZ{=XsKp7t9WyOe82ytUxYAO%W>)c~;C0Cg~ zsJPJ0V~M+QZ=svw!;nzXhpRMo%ML5+s&3BxkcVK1!muP|SAtzJRQuPGjpFlK{@o2n z=?qtYP8%*qi3$Lh!ZGXm+Y|a_&!Q&t7LiNV5~m6<>`(O8Z7z0M);}i~s@`;#T1}ht zF61Rx6o0b>HdLjx{Eg3=UbfTBIj`e!?0KMY($}ku#QZIrn8>Tu5JRN9))zjAp}m0tKYel% zEO`@@%w%;fw87-??4`4rg~Q8R`LRA)IvG#$JcKia+82wtKQ{B^w%@^%(rBGPf~8t) z93^i;1pBS|`V+MC+tXP2kw`^h8=SifA+{5(SI(-I(|wMDQ0T4bbeL!NnfssB<9AS5 zH>Ni-P@x1%XrKg3$16NQZ|SH54haD~-)UqJnwPxhrWC&O^Z#K`dtr?BEDM2a%Uz}N z-lXTTaDS$??Q+^uPtU9CVrQx=n+Cb=ZX`>G2FH60$JcobG&^RXTFWe1eAbTFwzk9Y^Dg;Ra1uE5+?Uv;bY9)Jt*II1$C7lZi#0>VvA`wP~}>-TX$A^y$<#TmM!ETHxb z4&tU1g{3Cwe|~PMC+ODH zFbV2AujLUu0cL5pnConRf+i1wk;hlq>4h!viIppa3Ev%m7fOA%x^7J~cBB&mIWZlTothkZntB)njUZIkzdyGokL1vsaj)}U*d|75JB;bLTVE?iNdIH*1A z*FRrnHl9**3Tz$mE-(?M=>yBPBQMw`;MbnF$46p{K)75WtHwtU>ScPVB|`0^F9)+= z;jOCm=krp9IrIDR0<4dlMR|Xx$7NdxZgUI4>Yqk}JnEiRZE?>76XyE}e`0G$4+9gAN-`mONw9i>^i%h zm5S9aIOTaTAk>3gYI==8DuyFmi?nNA^i(+~3hXYwe-iZ*!9Zl%{LU4mCR-KhE9%_4 zmH8+t$~LhY@ROZ27(Q^}^YC0-(X)O>kbNjjnL2 z+We*B2EVy592xeAcSw?mz0}B_Pi20pm@on2`9Tr{K;?1gBjHg-`E8@5Hr(O5esF!McR53@UU zN7CRLW&Y4yVJKgD?4Jlx+sqaS?I|1M55r36 z2=_-$yM(McAI0b$eY`OaUf6C(VaHH@Yo3qO-dvZYpHxjiUK!&J$s1@4$BPIVeLe;= zfjHwmAUDsruh1-^m}rtsK0`-?(8yoNr!rGL363x!uX{*Uc*63yb`Zq8TOZpOMO>F;59(8?Ez^53 zXEQ-h0uhBjOmwy?wT|y!Or9a>zm1ptEiSXCl3Xkjd@LfiG2>(z&^*aPgdoB59%1NF z!cDQX_+ruuaLS)Z5Mbicb`uuJjhSx&2~HB`1^_W0Ws2d#;IET{Sb9jnmX*=XiA(o_ zK&VC&Px;o8EP`DCBrH9EL<|*unOAh>fSSCXYes>9&m>krWQES3{qT2_b(FFWb-)gc zVqllzNR};38%|V~lUwrcMhUwdTzjX{Yo*K}Btg{XV@{SM1IokndLV3moGEo{Glr{b z*U5kh-mgsOONLjn>wd5*6hk#0(rRry$T!_|%9x21E+4tI z>+=D6BLT)}3r-ooS>K>CItKcby4^`PJNed5+4%=qOf+!cQzv;w5Ld>w(!+3q;hE{RiG{wpfg+cdQO zIm%gT*Qr^XJ$UuSYcYx1bks-@`NY-!!LuBJhPD$g@n}nBFywbk8Fu;Sn$h!d89Brh zW*WB+YPzwI5k$+xhAyTo&#mPMyd1dTh&;b36_y)oEn4lxx)nQr?1}RE4QEV<144X z^7y8t@amPNE)?_7y2MGDVT`*pSm@v!7UChmg9Ua6!Gt&a>K#tg=Dm!Vwhe)aYUVn0 z@kWAdc<$LTYU^y`4U4mrG&xd=Fsm{D-=>X&D4?A@^KPc zB;%mj=IbAVU%|4Z=*9pfw)S|6{(@+|_fq`5HfU^wfZY~c!x02V)Fjd2#6j2bFcBTu zN_u+XF#YzDonTk3x1jo?;K3&7*eLL3)5?AyV*tFtp%tN;j#GBq2MC07;|mBovuY_W z0c}I9O8R%=lVXER=lWbdTe=gr-P*f6|G@TaI@*unY0ls(0_X>DazXPhsUyoBbn&*8 zY7{`606DrFhZL1#h9R!1?hOLM=SLJ zqCG6RBP5c|C}K>-qVJQ&GJ|RE50uwx*)U0zQ4fIFy;lpA`8DrA2`i+*m2j!n4#X2# z^-^lA&M8_DPs@=J@-C#1ho&69O_H1;$W6ap z{x(hexV+DPW!xy(3oYMU4DpH^@Jrg}0+nZ~-X) zE^Gi2Sy)UxaDNsm^%FI+1R}S4$K{4Qx7fo>gm~J^H-5ipsj2At`77Re5VY5j#vpVVoY zYHgTmjnPr*vVOkX%eg&1&6d5*dg>$ZXxXh}UG+YlPAAUu9&;ZB0T}-s{frk#sI2B; zvidT;%*DBX^O$Cms~qo<11I^*JmI$4O>qm&e8P zn)B&pB*&?wp_C+QCrN6Oo(#=1-EK(xRH^;x#?$BAV=3kOB;SLRO|8nXlL!Q9>uw>W z>R3x5@kqrtMw|&!T$bRuVG`J$#*ImA@`nrsWY-X8J&wVcI3pXCt{sY~Altp=Nbwr! zXGI}$Hn(AD(n1sdWf7iDdVHa%L8Kx2cdNFxA-l0%&(Iq0AcC1uh~1Mi4gnKUBy@vv z#}yo8TMi3DC$}q_Mi$b*yY}|)|hCaMeV3+b1;U1iTlD4VBy6Z zq0Dj+z?w)m1eNo&Yf0dvTbRHbX9b!7CCH-%ZXbSy%i?c<@Sj-52=NFN z)zO(gnMbK#Y!BKzcUOZOCP>{1nX+A^M<1ZYDG5U=s;JEm6D{@;@>rK4uM8je@5#G7 z-!O-G;_UU@#}l$SX0cvIq%#_q@JNhIGL7zykP(wdG(f@pp%4*8wW}K55MZB6>i#Yl zP+QbVdessZfpz$#5$O^hbpx)=oq@FmUfSk<)Zaox5du_ESdCalmo<@B#>P6DDk_Si zB+^xPYQ^$o(lPXB2OckfD!aD?#6HK}P*39-qgrq2=C?QjV^+c2G*&t?(ZojK>X2^P z!8>vO%nn3f6O0l|7}4k? zplZ38r~Xh@*(nA2^fok6k)Pq>#o^O_$AP}Xkp+K*Z z1j+SI-n*`E*)ZZShKDD*nuMf*1<3=1cw@96z2X(gCv6L+cE98^wk4aj?+%)+nq~9| z%fB59t{`*4(opLPwW0jZ4yT~nX2=+d0F3X(_H>~b)c&OX;D^LwBFL2}CrEqrCPdx_ zo1*wFG~w>g=LkZvZ=Ub{qK*wkJYFR>ZRd<|p=)gFpzsNjRjQGeSPCk#N*g$Thw z2Jp2>K?q&Mdf8>(g5}H?Net-*T#D;NbC5(lb%dRES4lPnq?OVZ_{m^G{*QWV%J~fb zJ(-_GCKJEfz8Vc`mOWC*O8A)YRpaAiP1~~wkQU<0K;-CLizVVI+;s5-B5X-H?pQjiDZDd5*ge-6?rl-ltEl~uGk=SKL z1(i@>LJ{-NhmZi31D7!$9Q6rvt}38Ggk#~!q=yT-mUX!;zo^zjPP3OOtbZ&(?M^(c z3P*i2MaB{tDM4D%f5JDL4fv&=)!WZ65{fcKg#NOJ^bJrBnS`9FFMSI?ABvtZ=V$MN zAXWb+j*y;FVYLLo8As^^`hbehsMGJ|^#^4}$LY&(_L$e4HujFIRJRn7{>36A$6BTM z3kg|vLQs{agWW3~I+e6{&qg5l+USERY86?XADR1D@0@@_)VxqnR8lvZbwo8Xb!jUJ ziwpHvxs}!c;RLSxH|j3H=m^H^p!J4ss|ZBmPskW3nMWO9$4j$M*q<=xsz+k;WB)9k zW4)lCz1fgXm{XW0lDYYABk0;?=foeT<~NGd zTyx8@;?5qdcOU2iWXdZxT$_(Vs*C}KWnkKeO*2lW3|zjy%Z0AYGIZ}OH8n!hJm{Ih z&(}838=0rxN5ennlub?`;RxEMG?GL^SYcSOSXvFg;PD~1PyRKU88w3%E@1ZJ)u^4- zPP8G6Fu;@ix+m!&vC4I(0?YC$=~IRpszHA}q-gn~@{Z)IHnr7-{rf{RzdqEq7{q z_|U;-c(jphy$c9EsrDu{Z%e_0Ts)5<%@O7%IW~-b10S*F2Ct0}l#d`5ObCCfKdnkJ zvK$cvK|)i0gd3=~m4RalHs`L#1oqC*?V8eX9o}vsH09?Z2&iP!9DhO--OCt$vG_K5 zKw8F_*^4qJerj&3+nm;gEh{ItIZ3M02?RMN1o*Dz6z%ox3av zS{X=$`yRXpu)_}MkAgI(gWE^%s}Y}-vtnCUEtj=rBC}HdRe~I;nmHTR`gXvF&5dG~kk1Zs- zI0B01TuTDkL>WH`>@LpO8W)ZRYwR9i%PyH+^T;p(wB?_Wdo^|OW3{|!U6z#9^a^_^ zv_sD})29g%@3qq0a}-%U-ABssy-9E0_fa%2Q`Z%b`i*7a?VnBrVi}jgw0nvsLBLFy zLRYN_SOgHMhetU*oqbdm@7cJe-` z&E#Pxu~^@3F4@0l5L^AAHx@X3nqemaYF&YEp_EXhe4C^1-Ci2FDf72Ld+<9seLq=V zh+z5)G&xfs)KnG?(gGnpsI}z_5C9Im!Zrb27I1O?_`2}Qs<<1@2gKTu_wKu|XLT-V zkN*;W>^MAaxJI$g*5y2T$=vqt!yFfKS?W`uhHwKzWE}U5in4_U5_bfEWpu=z_gH|} z@5yF?J}7-FBZTu%BqK2}6D zK?_@Z;B;R+I3P?GU{vdC3JOlRqaZ<$fqX*?fP=A*fsG+h9Bgu`d*t~KN1lsThGE>K zMcmLH{aco5-sX%i*xmDF{c)%Q3ywO@&2Ntq=VWBws<>V((4uCXsE&BN3W5_T z#wtkgS!a9mh^^r83F(7_Ig_|)mYj>5L6b%6Go;7P^fNxQ8DQ@D^+a*KIzZl|TuD)i zT@|hfS71TH8G-d1EYx5pKnxAc1BOCKP(SZT3H>XizW!!ey{~Xb%k?{%f>zgULmx&M z5^E#W%${X-Nxc($un1B0@v48F`fIL64zN50v(&>+bURu6=EHxsduahkdv9o) zHOXD;swxR?5+6kTvLTr!1IyLldn?H0k{e>sJf(fZ zZ(UBLF?tcwmnYV5**S%!V927#r}k*p!?_kyzF)2lw@3G#t@;2vKFJmA`1D@Je+>2^lBP0!NUNU zLd5 z9@FN&TXj1A_C|>6|LUSZ6*|f1SB*5ws`hj!QJRGOtzYkh)dMLh@?Kt^rHC87zb5>4 zduNgiFmC!CQ*~BfTrh3v&n4<)B?%|yc$ekt7YYi(;H^bzONNP$QRS}41ZH7po1YoE zH*TiRMsPtD0$7`hBK z##F`X)wCSeI%Q5vm(B?}vhtqxKOuP2aubo29Gx1TJZ@2?idfml#^xmr$k#VY2nQ-cGD8&emZwBaVBN$ifW1!im0lC3iX^9DzruR{MNe&yA7 zh~@EdVJ!z%%oZle0mja#zd$eqsarmQ;!n(XfXbujY8)BQ*BJw?FqO1ep%5Y=KimL) zSy&8N=!xVsmo+H2{J^V+}OgxEPIggKzRkCnNAd3>b*@1p}r3)?4~yqJe?Q z8UrK9viX;Ft*o13kH{kk?TPg>jI^#if5)dkBzWBXE2Aq@B8056B{8=C)MHxpDIf4A zXsL*-{OHCEmbJZaF7o6)GSsjaLRfMBIaZ}REswHf6!DpyY1OZJDtk;Fq^b!`VfJVE|XVF*S@_iH$7RS`{4WJ)-Zvt9#YgWc`YpIL~}2F z1!-M@#}XL2c}}z_4fU|D>JhedQ{_VGoBN z!9;ji-L#2lNsX6;vLXPylwVCe{Bigaje0^i{v27uwtirr4!)a+Q! zo>C^6T%LVtR&_ope%3d~;(8iaW!`A^X6o4d?$s|ijc5?NzxEpLp6*#1f7>=Lx^8Cz zyhpaPKGYsOLA)wrGuPzps_ z(1an13J4XHYeYoakX z{ZtNNThJHLb^A-Wt#fhPGZ=0NR$s6Ogun_!oPvTTfC$(xj>l1*FGAotA8If2HgT+d zo7|lqon^p4zwLQtI&M>C>Kxj90^-8utPGXxxT8F>#AjU|S(YJI1mW3{BO$}x{7jR9 z&?12#p%~rfw?I#6oCW#V$SPm3C9qWozNHG%tlj1Q}PHUmkVoFfZIOm7ie`y=0+62r{ zr)@bd!O&~jUsuNb^tdtDSEa12wgqMii6karB@|@zC1f%a9WoZ1+GS^;r$n}~tM7M0NWfBgIJTbr zoD=FM(&(6FmmwG!?wiZm85W)?ZDfSWhqs{ahFwpX4BrR{wb3HVD2vwx1OX)!%0BDEY7`aLB2RPJf&L5w%06l!v_p#N5WMy)gn}}f7dDVi4G9!GCOsdJoPU5tR^;iw2IP$ES9LJU9f3-|VeK(JO6sSf@(tEn>Gm^V!lf?%K+ zWOOl@V{eAeWbnKOj_nBgUkIieoW|wW4rRewc8OsQUeH5vYKhrf|kW#ffq76 zLDC=vK{VWigvg2Bz$LOpLaBx~HXA`#d^Zu&h>vL<` zw?%Sja3^jKA|nb=D1^fylPe!yg9mX!|1J$+sy$X>V&KA#Lof$PU=7z}GF~BY3mYDQ+ZfMc?#;W3=vOUP_+Wc}Q9rc*2;fop|8W_6%qV*YEG;p0!&;jj>%zH{ZET z7r(Trn}^YH8VE3r#Z{Q9089dcen!F)2;g56qqjZD5C#Zh{uBFW^c2-Q^d;xa7@y3&(7uyptb2udO7j(LRmUKgN$%fh_|lUu?TR(#G~YMk*W8v>!NU;m2xkz}Aw>i2Y#e z?kS^p7yIyYK}=>FYYJY*vj$AJTgQyS_ZHjXeu3M>g(Qn09NQFy={~{%UIziPOwiVT z#g*fbE9m!T{a4wfa>j&e(Ucv4FgjhCx#urSCL=>+??`~&*G(}a?1}q}6&ylVleroc zsx{(r$MoEC(Pa7h`>5&vcXW&zBGoTK(&mOLvwngD*lE;<0g(VE$kh>b<9@Xa)Py@( z0Axm}={zuwgaIT3d!m>8Wlo6Fu(Jkut+jdlU0UWGMBOKESNE+v3a3km-A?rxhpy5| z=gpQpRN|fc@cE>V^p*sHR#wCaeLO(L7N-Xl3P7G2Ym_s8B%m_F%3~->>95Q-0~{}1 zj|`v;vl1WqZnd=b@=ms7%xj!{>A2`gV|YI>=TrYr^%Kp3nCGR zAPCviTy0!%(WJ_)?Q^Fwx^ZoYq!8*hfodCQFre0H>JxrUV1W|ANEVDI0wNfU0gW~3 zwk-UG4zjN5HZpU!oveIMCr#zht_2E|(hm*@0z{kK)t=b%nQ)%u_y{8$vS>J-qk6^l zjGqAlVnR$*G(dsW)+B>WI$$h~0BAu8lpn=q#l|@?2$?aui<7RN&Eea|#`SoUj#;1m zH#ndm!vz)6*(<*H&HnzuGQ+7-2^_`1S*ltDaGDDuQZW@s{W;Kp$`4S=JVD%3YG4om zIW}pMth_g5AhpKp=M)I{3w^|yJj6oWm@$|^Ks3)CG+6 z({4dz8eMbRPG@B+B^X%dfJm5+uP38o%Ip?Yf69KwP#R{01_fdWtOq*m%sNum#~DuIxMqdSL682 zP2xHmu!`zYW!FGpS?a9jB#_L7qY0X`QwMQ3`-zLo&GcpT0%n$N(RsvFO+Qb8rPpnx zdUoKYe_leLPmJ#gs&}4$=ZOl)pWalJkfI~(Fw(>>9f=lRC(+(w`Bwz-C$3b|3ax9r zP(YO>2GElW4&zQzrm?fh!qr#rrEQM>;qC&u291 zX9!&T@{n!eK^j2YXydWLtm~42CgKJPi8hlW0>GXbDg;&`QZ%GZe*n`ady2>8Q}%Gw zg17MFQ8D|=$%f34V{}w)H*RA7pyglc&O_}uCbL@sTKS!+R5f;zo$QMBG93mq;X)(< z8IpyvCTa3u>zl$*Ff-oUBLlRadYn4BYrJ2Xw}(bC$ZyAx4=(2Eg+!66NRH@;(ZD*N zm?+;iz8;zMzc8ZNNW>taMj{J|jci}LhuHByw)kwIj=I|{3uSM5)5YuA>uKZsfIrun z%h+y9j_mdgqWweNy^Lsc@?eOaVSyJFXgfS6f)t7G_7~DX*FBLl3_iWeu@%3e# zYhN}npJrdmHf@NRk~~RP#UDWERJSlNLV=<@p3(KNqSzH{Xkk2d$&(r*3179IydEbI zq{Q*C5rNF(8d)6P$fk_16Z(1KS?V~UE`AJizK~$1umP&2Qn`#!gKZt8T9uP}yD2tKc1Uyi=YsMk|v&u6ePE_ zq5q>98TaPh&-d@p4)aM9t5kUiS z50Ea1%vt8BXenqYXd6&Qm}^^YIR%l+udls+Di5kW)#tSiN}QyWld=_zl9h4*y->;* z4GBq5N@W5}{5+ufi~s%8livO12>-Hk+@g*U=zOOtr_nVcG|-tdadTzf)L*%s;7N5I zkD3oVE`&2WC9FIZCo(tG>L}=dD0&9K69^IZJpDjn&OUYru6G6>6w!&NzXlC)?%x0| zN*s4)jWOffme{Z{VKClV8nm{J0Tu1;5Q-<47MvHy=STPXLRk$1?(w>vSm-_jc%no= zgY*KHPK*Um022Y%+t6x`8J(1*MkULRs%se6^H(xxCMRoqMMn8|gvvKR78-a}Y3}z+ zfGmNpxt#L#45ZA6J}9?7l?uXLyzTn}q-{hTWCEzRJ-`FCES#c(b`09vF9wn(1TuX< z|457gAOJZY$#IDAB}5Mgh?zRyXZUWp{rDIBOJDQ<{1u(~ANJYM#MJQrejWAw-%0)- z)Su}m`>FqiCZ^wG-=FUfdgrbG7rjf+rPF0|pZjmsopBQfH=v?DViE`0kxz_BmHAAe>yF7k8WBhExBu!q_124rvRHHlql$% zs)^(6iwi92HaF}}IH5%=5rBpNQK&+Lg|6FvZg+_COMK#miyOv|^2O}8CE$X(NiUp4 zsCRylvP#bl+VQHjG0Ynz612qMFBGK}`eSGDBiad9aIlquFyrKv?}dDtc?3W+Bo{5I zHXdW|4b&MCnequ<(!7iaIEcbVXhM92O&pvYLOWd23ezwE}pR zTRfDNUbz;?YdAwrtYfhUBDnd4aj3ncHcD@sjNMz<#9}!=9M&Y{J^fF>u6I1xIB5Mv zKo<;sb3F84Q{#nrB1mP+7&1Q_&sREux2Q{vMD69ft`kkBP8eu(SuwzS!yrIe0?OyX zgxk>@lf{%)jAz_W(DCuImoISCUPN3YP$t)Ce;y&gXR|;8Cg39%#;zFZjJ|cHQir~- zZau$8Zw;S zYGEkjkO?#A7TAEftNX1T~UrHwG^~^uGUEeB7AYjpJC?FvbR0 zL01suL(IBz1&BHaIbVL9g7pJ62TkcouX(eyY~uAR@k@KJB$2Bedv26cdrp*8g`IOb z_t;}ituML04{p$gI|8gU?qyl5K?!JL-}8DVaPyR6Su-SL!dWsmNUbMIkxh&B#>po>C3UqY z5;=jw?ehr-sq?2B+2BGxvFZDb1iukE84ALk}hy(+uaQ0gVOkj zvYrgN^6d>*zy2k=cJ-^?hQlzA`)(5~S6_=^MQOs0&bYIabn|Z@hK`NJg=qf_xU>k3 z0I5kDIbg)ueEu^s9%{uTHOD-oZUc5CRp*5uUxwmi8x$~_VRmr}Vbudq?3gAXMHEGo zS|6ROIMNCt6jD>fYJF}Ha<|K7%~NW3L?S}_(Pg9Een7y6m93(RQYdAqpq@y!Z*Z>M z^j+Z2AmnGm6T=YiTJ`Q11dG%614N!>5YO79+mz)^7}8wZKLL{A!OpIcTZfXe&Sxfm z6fgfuNQp9-FW@Dt832<2q$CV5h-&H#Q`~?Uh~K7h3}Sie*>2G;rZoJK-+4%ToR$od z54)megD9`m#{&{_Ngw5o%l*qdPR@sXq|vQYfwhmqvz{3lh!3LF87%;6KS z^uEMFTaQW-)sHV^3zILap@6ez zA}nf*Bx|N`k-l}y!n@18aytbyIc$%ROxL0^K=Oc`B|NDPN; z3HN5XN26iP`}9OUMe5XOZkIt(qMuleDPUd(FywtLga(vW^#W0EN)nN${Py z`wZKsg?<$~^RDl7r4>pI8hkcx<~75jbE>#YaxR(`s8Ac@jrT;vqu=H5&4n{>cR@ch z3;zX$-Y{>+erHoaK4UwLPG^r_u_#Ra=T|D~-(KSRcLQ^`a_9oKCt}~DOGcjkwW6H- z^$%dy&`#a^*SUaGHzLQZ`rK0O#&XJ|4N+l(`9gaghLtC-9_Y8!Dph_=+ zuBKjoCT3G6+~`;T_~Tn}=R8MuGX%-S9Cs#D>9%xX6+NT_IUf(b;KVhdq#gXCUIec@ zoz(f(gr64{OiQpA^obIA_HsMxNN1j2F#cW;a1glp_PYFpb6An=#4meZ0bAMBk`#c@ z8GZ(bi8mJ8vG*pT9X7?|#Rx|j|L2AdO$`@$m``GP4@H9U=tKMB<%O6(dtG*$J%@(g zW(gULNE7Wx?!oHWKkr+tgJET1(;Y1_TiFGrfw}+E6-UE1`~kj zAP}%;>#{}$N7IU&&{op*+5jDpHuRF1?-U3XSymAybsBsEXgmNlHs#B`vupb7JFojx z8_S+)4tSynttt4t0q&oy`RMxizn@8`GZe#+jG023h<47Alb23OA>(DadJtTx- z*^;MkAG2~1&}ICjJyRD|b1J-tpr5!pK3JZNp9R0xd08+iA9)^52S0dEpwvC%Me zo{Owl6m3AbknhEImmX-#<>%@09l1aA=ibMTeapfTk!-r0ol)xu2V+ociKuU5H@d4`2ussBh#}*}qwVsGOBp{gaU!;fb15L> zI539l9iTZr0Dut2wf_ms4r?86Hd_isLhHr0X%wdzT!B*A02E*#Z8yK>Fp&#YcBf4| zZwgH#n+~{=4PP=~OXtI+&%#`;|F9=ccNGh6>xzT2(JPJ6bOOT-tdOH_S8KP zPH4>a7uZ*oC;{K1q7{Km3!g&;klIAUk;+bHa2;u;gaFSOF_nzLp)2+%sURd`PCX?K z6o3L`&1#5)pZz2dxcPg`MoTJxZF#b&U|O06IW=exM1w+<9*~eiw+io1o5N#R35ZDF z5a_AkMNT$gQZ8B8ut`>k7gFG{34N{_a(jU)B@Lml zONhGmkrE(8$dx7@Zk3jAJt@yWb~WjFCJv}NjX9lAZ(j8 zN7)-Oe|1vhE5fi#{1SsB$k5C)1qPSXVuS{%PizTdQ-!;ob6CKgyHhlD<{Xwe@hOdV zaxE%OLWRX~(1LOU+~ee3@DbYkUJbv}r`Ztc_>F=EYq`JDHO$fiwi|j-*KM4`J?93z zW_OHc)~uMvkiWHCjHd4$m>`DwZt%!kZg-9BSHD?9NGfRR*vfMo z78$MgYNT9N61(}xhS!1*dY|scSCw%RIBa`(D-k@o4l+kjO%3ZQt|AjNLCO=B+iJJ4 zIn>dKaBT905d3N?l0B9Teo5si$tK~y4*RK^k=zQhyi6gX1abuOc9p3ze z(Acgd!i!HeW52R#Lv((1KeMgXXTQm7N`V?$79~{$j5@bbmT3HBdKCYBT(yozJddIx ze8^bsJ#1}Fn=0p|q#%=JrnYY9E$kCJKJ~KSGt%vll+qauOvTpBeSC73FoXN=SB*cI zd{Y2Eg7-e?jm9a3od;Gx7iS+V7CPRIE|9O{> z!|_LVuvZV?K_l3v->Bs@@EtO$E9hV>m~pqQlt09;wR2A&GG^_A zs$8{_kqP0?J9q+u)LN~Q!*st0b1cb2`hwgxL@Xlaw~hWSNnhUu!^7e4kEXQl66B8= zDcGR~(jt#h1u@*mfRXhSJ!n(cN9*T1r06(7`WPv7pmGn7 zQW_{v5G5M>atuXj0tf`zcFkN(_h574Yc#%DfBe)j5$D{izuY6)%j>7Lbs&iYOkws- zK0;i!y?6{$x3L3!ivhe8*g(-%EmeKtes{TD+wt+^_9-h}8qExWYs-QrJS|c405`a)>6aW~8 zWuUcT3b3_b``ZQptJBMLP48@w(@SJFz6_m>%a`~>KohKG1K{Z6@5aF9T(v!J^@x19!LG2_<=|Jax{L?7=yx+yUi76f_9hLasv^&qDR zn;J4`tan~W5J?YP*$|(3mRpUnIr=rm2**A|uLUcQg zj)VH=t_@5{wAJ)#Kpdthu~yj_IcvtqiPVbl%S*kVg47l|h|t+sExQXvaI0jn5Ru>F z8!+n}B;*crq(k(~UE7R!?e&^@R(_|^Z?qHG2er<%`5%|G5RAk2)el8tj?3%K_5r7e zo@sFEFo@)ib!`mDF&qaZQ%d~FVcaB+^xQU~!3i;4Pp!?%&{%ITiqc@$DJFn8()ehA zDLesr^HZ4Sdz54QDkTj(D{iW>AqXTah0-v%0emaMtr{!+X_3Xao;Tu6(--HPSI8~_ zNZv>l83zKUAR7b^7zjC8p-)DBr8~mhR2)LncCth)P9dt{N$#0SM(EXBXDmxWe#7Us z6t8(QqE+BBY_!FdI-tq0D+Kz0hcM|BPSV{EBU3O?ViExD;6WBp)<{(v_ivjYj*cEk zI1scCZ(n~80D}P#L-Hy<#zT}n0i-C}XUXHh&>y?fpa09Azwz%I|L2|j@7tKa|M&l$ z^iBF_{`r3BgQ=;N<$vG#AN}gb{4M#j*R>ERE2Sy-^?v46xplEf15b${#%P|4jB=F7 zz|CuPV#FqeFyox)FwM?NFhMYK$}uQJ!x@t>VmuHfiM~-gporiown53v&79t_G;8H+ z|MUCs^K<9%|Lm@&zq0N=Vo0ElPtogm?)dZF_1k^$z4gtjsp2YFWBGu%`Pu~aF_q?Y ze!}65QEwdBZi7y3CR+*uWX;4`5?!ij=gurw+EZ_vyDQ zF8=bHthQP4VZY+3tadC~F~~apDzh8pEuCsyMmP9`X2wIoLSF9|VB?Akl(hX$jkzk| z6sV3VlWLxAtyweL^xEUKob}D(%zlneOo8@fBxN3A;BTvnkRsKc(Xji$X?6XFioCwA zKt`69C~50rMe9rfaz^IL;GMR~SQ_r0c*iYkWy2e6qt?F&d|^Vxy!_dPKHQ_mT@o$J z-zD7#e%HB$$Z!S|d&0vB96+3=ir+-7 zUCohfE1JO)R8=qoyIQ*f&o7}&+vZ8!G}>h6e%y%lD^^6iq7i?S?aswhL$9<&vc(h} z3uk6vfSs)}X2Ql0oDXwK6A%Rsyr$$^MVyzQ^jhCf;kUvmiOqG-&m z7kA!cgP^Zuy3DZ9PpG~`3QD_}@omnZR#*#GCtPBEoI!e0ZlnLKD;V|2_tF>Zs|MzdbQbUe8JwSg2 z9a?PhikR3`3{%*O>t;p)7F2QAR~;~u0dqxys;D9uO<5*1L(BacZi|bGTk`rTIKCGQ7W~ASre1lBP*ft?RSoYGS zBPz(Kv6HN8ifo*M5RpVWDwpW-sK@rN$CuK_2UCB6e|_c&a2xE;L8DK^;*7ZWsI%Z| z@Wqw1=GQClwS#k&y$gz_FW31NS)84vAn{*N30s@CcG0(faAwRN-B|w$`VFL^cO4-s z=C&(#j}62QPn3q71eF8_S|kE@PylE>=XQ^}!*0>__Tz|&KlSjb{*72ib0ZuU+b(Sb zkHOl?P-=Y0KyxD&U(g($OP&&|O)oJ|<3rf(>A!%!5O6?A?T5d)^7P~VeC(uHF5sEr z75m{7`z);)0?ScC)2oC(gmXzlP1Qm|VhTws>U9;g4QMGwk2iN}sW&dy85{D|TwZ<) z3x~y50@SNc(d@RtW23Y-aIW@pJ&f%y#Yb9RDA!w zbhN*NgqM1Qw^3lxVfCiCf7MIE#3g7ZmsNWwfVX6s7K9F@1IRXRFp zfkff^^=5pR9i%*sX14;^G=6!Y5{>pxflc%G8!f$j3-OC2!4G5jeS2o)j@kB|X$#m3 z$_){-ul*_{O5(G_yF+@Y6q?!!5?)m92cOkm^pv-|GS`5s0_d4n=%*9(VD|}_i9w=f zRAmrq>!z;imyZNKS~;8Z4V@#-KkSz*sF@k7;dvTa7jfV&f?qZi95bfEs@1Mg`w<#e zakYnlqT#e>8SrW+8;3tz>HxTW@gi^(`%%sqq~T?5j(pnoW>FwIt%LMHBiHNj)RHU{ zyLyGK1rW_=f3m1?T5=adVv9qGrEeyq5m?dYK<$^h4>c!wIoL>f_4n<2c8}ZUYZUQW zB~II(vhOMWp{eEOz>cK6dF(j{g-y0uvWp|tM>yw8pjIuw-eFT!kF-5pH%Jn(TY%n4Oe#$QW0 zOkPvCndU{bCG0e8oBFgI_>wc&NdhdmJDQnZ9u&bUmo5p~GkiRZ)8Aeh1=gg1^`_U{ z7$h5OOCy(WJ~0FFO9$g|vtT5!qv^D--s+HW`sFQy;Y*gj;peaUT9s4$86?J2HF)qi z@@j*BhcjXF)s30#IGm zI)^5`JJcaz=;8(N+P%%tMdf%*4DjPj8-c1D6vqpwDHl}|h?8e2Ab)39*lXL489*GE^Rv)>@@oR35w#9^ zB8X-i{>dU46f@LKTPDwJD~cgo$SMJKV=xk+ZH?eE^Ty<73$!uraiZbQOa)^OfHm2` z0@YXKQ2iL2)&>d-VpA?!iZnJlO@?IK(Zu@#38qSlT<}`yE}%ZJ z>m0w;?$))mr@&g?l+6DKsC+53QcR^bShTE*=lO4G+WT?FO$ zxT;AgxivxtBs$4Bh(~y^nh*{W;2+v>rk5@DKy*i8$AUA=HyrZnnSIS&l*F_PTE_&g zZ^L}yL9cT*R;B!#^$XXe3}mPFEU3lMoU2XhawjKYeA!TbXc_bDy@{@Ok8S#0;Xss3 z2^%?3B}}{kuZj;P?I-@LqC~uIF2yRouRs`QqhWw8_G}x+iUJy!+Q&};UxaUAQOwRR zAMGBa8WG>|+b=zK1_zM<41~xfvPFQC3geH5d|lQ7sAwg39~6HO1S*r?7L7e*R{d!E6Byw9!I(zMw>5Z@I6AVw7<>Od--mAcU?o84rns zf22gM)VcsR6(x$E4nzq|W;S0P{S26w1qOR%kJ%$U@fknwo|Sn& zul<3#YPM#mwic{<1@)d-;U6v%Y~ak$JcM6q zf2u3C)iU|j2VYCu_MnA?T*Nw1R);QWfYU#j&sv?{2{g&_dK~;410KEGcRvx$h%E?r>fh?g-)pP{82H z6V#RoYOSEyyIpHcXV*2sg;yZZz~HT*?}GuN!Ln_9N!^V3Mzh?YG@1W7u=@*8J{q4* zsGx^=D$=+VRW75vuWJen?&y1F85A444%bXU6zjMqciZ1gKOFJbse zuC`9lnI4LXwK`!l-VD)gRvDpC2XL;33P&nti>Gtu+pwIx)ru-AzpeWcuS}&Peobt` zrI^8W>pp$thK9t~H z>N)fPPV`YM*&J%L^3{wKy;PWK+DuEBd50%DvKZAap&0YC(z(9T+@Z*NUt(Vu!5=q8 zzZzC=sz7m0N}jLYvo=-4o~e!)IoPfIeL`rSoqQc)62?j&M_S_F`)U+Me;}S(nAgZq z-E~;7sN7COA?AljhccL#I9r`G^dc0S%>W5xf7rraQQYIVzf1kf8?@ z@8i2QuT*;-L5)!rM|XmxiQ}-scl^&okjz5p?CslMbh2b#$9&F+!G_Cow(oSnwnJs7 z5YwCj^mWy9%t~Z&5o*hlSG|!@-pV|Ju&K-DH}UIzSyySQDPe@JuA%1LsNp8jC&G7r z(1z1oE%uJ|6wjUV?^P}*ypM3D7ky-jbqACoE_Mn&ln_A+U4A<7^{K~U5x95s-ZqTv zp5y>{0fTh&0=251(-i#17rOn(BErFQeIoWZ?(5C$8JLNA0J`tSQpN)ZNv7x zV&B4+z-62BwzTo1hwjl2vh>vu-1PbKz@K>Y?b}j)X(m{D{aX}V?9g5;{)jIo1bFIu zo~8jJR&y@~&~39uVOrqjC3+RR9cQlNU-KhrSaFx*@aVa@dL$b_b4O~`L43~bZoheB zJiC|184`$myuU7TDjhnP%vISRm1c@}0ywYR)paq))t7%RP@TQuS)|k#E|kyzf$Dxe z+CpP*(bk)qn+i3)xUVeD0~@(|4N>VCLK`& zR~!AtMHXZE*SHF-+i05STNV%#5du*3es)A3ABqQ2wZr_KwqS^w)(7eF1MSLi2U~fh z5UhYG(DKMFc><*UmGo%qRVBT%R{p|c>%%?0tKnW3&Bt7GS7<7?8=#*i(vaeFn5FZR z3as}amAh%G8DZvmH^<+)Lq)SwCjFdHxj%3`=N%aQVQD(Jn%o0?)T0d)qa z8K=Qg2K&J5w@$IVYsSliAwG(ZVc_AQd`FHtC&pjCMqT$`G>ykPQpEW8PH?8~Smsgb z+y$BYj5}*qe$*-Z1JDK)ed1tifk@dW28U`ZAc85CW;7h{)u1b3VRe>6vzxwT&qh}# z(;_ueOf%{cVJt>VhX*g}+7L5JB$WK?kbHUQ!{!@|2h_lgGMJ(W4hHjWKRzA`w%7Bv zyd!ye!v`Z6yAjFaQ6g3-t~#S z_oTneM=OCTCa5p-!&?VKN)Rl2{Afvep5B(NwltQJAf90)4W8NmA_4ERjY1M`ApE$L zu7QW#yuQwY#ukrk_@nQyA2ev`1#b3xoBTdV_xV-qA)j3uyW=|f`pS2RUwQUJfo}~6 zk+S$5NB}iau-87^Xh=hoLu|asVPmEiAv|_$2aP+1b?-jg`2^yIu5DA_2YUFqho?n| z3^7}j{nUvz=vAATH}jn<-rn%^rb9WTk-;b)w%RZ;P4i0|2~o`qR{Y}z`VgmgEfwXD zB7Q36mqS7oZx+hGIh|ZhIA{&Q_ zic;nAYgBd6KifQYO1ZjDCbpBbs=@cvd!gR$U@!SfaAiqL3AzUch**kc+0}5ZK>G~= ztxFh26qg+|1dYY<-k=rK!pQ#9Z4N^+u2SlufFdbXE0t|t3%j|!&IdcB?N1=T1pW5H z;(k#fgq38D+3O0VwbBre|jA~%rHl3ld zSjU89I&4qq53-QO54ukV-Uocc@7j}V0{kH~y`j)NvVOC4%!y}uqi8aM;b6CRXXi*v z5PLW9LE-DgL=mS=PE^N8>eG1QpZ{*)b+{S8NzQL1$^NT6uN zoA(mJ@3SWjs=C50sGuzf(*QCV$SNk70;iGICg)6M1p?o<{wg6GH7qlB#ejxBDhs`( z+(I?6G`f<$N75EDfJZ9zhzg>N0CF2Xz`ZGMu1m0cAj9~*WuYgMd60BJ8$*mATj;d+ z8Uh}B1??O`CYf1y<+qb4kT(`Tr%%#A0wrLmobWBKO4`Y?TRgmK)foaQ77X65YeJQr z-qB#2Ic`Exk#)d}TAg8;NM->g3?^4NyI{Da1J@IXrZ*~dij_ze)WJ#&AV}`Cs@Ub^ zJfRzYvOoj!wPkj1n$>nlKA8Bwa-eQ^>P z@lE8GM?&u6LaWyW5MG2%2{16R^dJ_02~ia_pA3Ka4Ol#AEHYq~E`ib4lT?_jhMI2# zP-b!*l~^*|7EYSl7pDypP4PZVZVIHfwLn?gYCq9OZjqe^o>#)B1nK{BlMj)kInz6$ z`=J66)4VQ@c|B<0CdW$a(nrc4b*@c50I%a4CpdRUB_$pLcOhJVQYA>$y<(N_OMtYR z6^xWn`Sp>J>?~VGhOfxFb_CnBL}sTNe=^>@i_a);K7SmYf&V#25pyuuUJ^B=Gw??( z@hBj==rY3etFPnv@+s^XTtzT6?}x4w%;NfDIy@15Z2;r0 zG^ihOnG6GX@0R%YvhYg`?_&fxL9u?690hHPyT~fzsrqq`HITcfhWhd6v;9?Z)OVS0 zvB~gDZD@jmUO>cf8f`UcW6+qX*VBAAy=mqmq82SwkQ_0m4+0!uCwal|IEvSDL6u%d z>22e&N{P81%adyE{9vE-r{6KR3)&kZ$1APF=%*>^4lXi=)Hz-zAhd6=i}lh+mCQo6 zNgS|h5y+wEa%y$Qr2&JMz!i4xw~S$+HQb>mr#l_)u2sfr||wv0*eGMr3jzbqCQH ztx__~FOzW}r?lN6pxgUr!O8R0j@P};9cUHzW=s%eOm3ldd%>YLTB>cjQJy-Gk{BN} zV#dmb_U;!TDemTPvrLg@WeIH15PA=74Z?&aLQ<=!^YUP#Xc8L5j zpYLhk-1l4NAK%lS`R~`X|9>!l+TZ5S9q4V!epX2Z1&-_>0If6xF6l14-^OaY% z1t+oG1k-SCfwX#pe1vXo1=u_wfZC8KDRe2uPSq@7J%TPUAka@4bqzQ^aaWXWQ$R?x z&74BCy8|nE+1G46#bFWP6 zUE?H|QEX%XWCx*@Eq0Ms5jS58Eb|;+bsv+qZUqInQMR}s>vYJoIxQ&2m~%JF2KpN# z@hQc9`P3*;tb%MFqQ$fRVA4CAEaPRVr(ZC{PprDx7K|xPnDxodz@VOB&hW!>$w>GR2vuab9wuDyb zZ0ftpPY#Wree+Jj7Fn?;Kk%?=5V_AXxdb_L<~wctAzMO3rSzmPuk3=bh+yr`0DXbU zn&9y}amSydF9i?YR$<^hP`1>y9tE|oQ4z?bQ)Qrmj~L!~5wKb=oT|`bxlnO=6auIn zZ1w?9PkY^Yh8mT9_FJ?b zW0D*XesXrdV3Gr{e=TRRQJPrSeXf^uDr+fj*xC=}=ppSQ$5YS%+MXd;Uz8YUXlmK# zxH?q(bbjIn;VfBn=ir4|GCR8zhPI2lfyi6Ue;{cW$`gTe975PdDQ(-3;B&0EA+J2r z=_wk-P}1Q=<cym{Lfv&LSv@kIv@O$KGG1U!u=bY|rB zTEZ&nG-||!U5kQdZ)*mZ*!C^{ zqI&@)u%PA~Ga`z-aHwCR8`*AGUXVrv`&iH zPZ(q}oQ51zrzWc?xf06~F)%1;u6G4NIY(SPofTA+Wr%6H*Uuc0xNMs8$**J7 zZs@E*u(Gt}ciVhwA^rn|2&a||Qy)qbPG7Dc?OY>>##@Xq zFx_AX=^s@~@p}`zkt2J7wX4N+XOUCay~aTk{->m`<(e@`cbitqnveD_va>l387_7C zecxh&CmK%jYc$yv)0bAt5co=6;B1Jl#k@|nO_zd6*_#=DIi?+Av6WMz5Guw>dfQW1 zXS7aYsO(iw_3gxDQroHn=JnOg-E9!BQnR-SKuN$4Da5m^U!Nn?v4#vY2g390n~4$DvGt!pQz z17ESi;4KV&D8sL!6~db{-AH88oDD)438V~(zHa~Cn`?Io&5hN*LOA3}l807)cV-;uh;^ulsBF+SyQyE{xKNsT3T4$p#9 z5*G2)Z=ri9JTK_h(K6k6Um!jP6fEn^hM`r5bbCUk|pm^7e z2D+v7^d}nh!3Fkbt};KJt-ltK#Y|8>YYvC4t%~5UNjq1NzTW+3Gz8GC-%`{JpKMqN zj^v<aDRd|Gr~3oX>xS1OyWHK8g9qW0K zE=2~G19v`U-2b%xbDrzJU+v$o?Z1cr#gP7Am)hdb{p0xU{Ea`lyXkxJzy9w+-}H|j z=ga@N&zP6j+l6u(53Z~xTZ4#ANLX^!rE=ZRPo^IN!;-Ky5rR??<+CvphA-CI#G#6p zQuGis1&VUA5rnc*1YgBKMUtdNR;8hg;~b!pLFe2--@zA3lzNtIi%@RxqAAe+1ZgPO zXz;b52RTo6C%x1(&@?t2SMM$V38&F63cnc~w84;u9C!#q?>ezJ1zMBsf`*@Q31=U?^7`g?RO96PxDT=>Yvg(WAq zwzf8)P-%D5MVZmuweh>snqBdYN?WBNFb$gv6u18DWe zHak0Q?aBy$-5h%tU% zy68zh**UR8gXvVtqo1vN*B=Q<9}(oXLWtI;zCdj9w}5C2hifQXTcj+f!;Qq-I$W;E zdtlBOB}u|9Y6wkSEr=UV?$#@XLd`wN)Erro)9V$v#O|vBADWAq6}I=Ab@T8i5q(i* zXKxcZ1NbjiO0baq1RtuYB7ybLI-QOlxD~|2)glsvY96QI^^2~)4B8p-pOiaBzC}GD zw9Apv>UXQ=YmH8)R}$gbmbUIiK-OhkMUV4+W3twe4uA?@<+kJDIcGZdfxNo++iCvZ zleEHO7BhXhhTM+#L5H9ZBN@}ZBQ(DB@wx7;1#ObtVE;ec8;eynk~hrfe=%>Os*Hna z-)?pdkig%XrGqA!XsxFbHBezybPeUn*-M8tMiJ=nWE>UfK>#MBCqS3vv z0x}IRhT7_<-@cdwAAERbR0X58_H7LU?5*Rjz1}}Iuzn^e_pwsU za<=W7udtQ)C)oAzA5EKbaGo6kcJMgbwTf}8C@MnVB+hT8X? zC{u0F6YyPoy`Zfk)#rMCA186?mO9!B`(P{0vs_fN1;w&j--w02Yg98b@a@g}a%L01 z(a3w&HCd$qqw{p_<+&#K>x9gb!=&p;T7U%!xz?6g#b-yys5e<2ks~jzs{&HX6VuP~ zKnNXG(4agFhQ0d|t5ULbkPZfzkVg(e7vM5j;o>iX&hr*UzO6 zY*}TY98+7f(=ec6NgUF@s=mGM0=_(g)~r7FEyiK&c&(s@wM*l0kr_Y6PdSmGRq~0E z7Pw5x*e-rY5khN$h{~~$l425Fcq|2R+>mdXU0Eq|9Op(dw^gz5__B59yLM1fow494 zohZ+pFzn=mOR(u}z#h`@a0zSi&0lfRx>9l%1lsn8kV!*p2blLneT1xozE1>Gfs}L}`!|8=+!x=@BnLjJ^s~%_QgFqI6FyS^Z ziZ0{j+b|mz(;d`uy9!(sw}BL`Ci%FHMQq{F84(p_zb#ae%y9J+8NcU3XvuiTZ)_=$ zyR5scv%njMc;j}gs6IPYIF###zl(sFA*828L%iQ?IQiG(2z3yESBdx)Jpl^16&n=r zu!j-(%sK$AIPp6qf|4l?@(uH3q{=C2SKp6<6Ip@)D5f5t5YD{wME0YDju?&uBB>!6 zt@Dx|4_CuPQaesVp2k&p))lGfeoS&O$jV`)^SD!e#w@saB8 zUCi>ZbYD(LsVFiPGZqkc!Eyk@Wk1caKY&a`814`#E+tHgspkM0JnVr~imO>Bq;yAk zfa_Kc5RAy`lEa~mL1cuQe;SLfEus*KNIK>-vJ8i(YNYBQTDI1Cc!mJlGhlFbxhXrz zw3Yf#r4!oQ*uonvs3)FZ{ zl0WizN`dO-iDgYz7-{RQqXokMf*2V^^$fe2%G^cQpO0IebDZL@y=703BuZouXP@g%gZjXN`9jV@;-96v;vGp8VU70N7Pu@XvHRJZL~H(X3b7pGv;XW>Xo)81kn%=_7`(J?=FI^X#xH>$Q7wlFapgoR+k zZ|@13niJg16sF=Q<@6(Y7EPgwVKr`ej3fP~1oOD>&*=Q)%TkSFdpxGRq`X68h*VWG zGXnQS>YN>6w{b+jt*dsM=37td+U0~mQ{R`AGAw&NWkl_{bvfE>o5D;VWX)_-0LrkiWawL2RNxqC?%uSYl^_HKpZ{MlTefc zPuWGAMOwjNWwT-`@%cF!F`f&*8O(?= zOi(gS0eL&NQ7gye3x7lgGOuni6B<9-!_%Q_Q)N;0jlhGTUQZU&_#8w4$B$c57WJ34 zWde9cu#bgRs2M)7U!v%?BxnY1b=rI|6Fc#%ZQGh;Z9eDwXg%~+ElX*KEouL-7m24& zSr8V~;GchuuFb>6p0`)~*ir{Cs3zEtxG%W4aeBbWf=<<_!U<|L;bohY; znp2`-Zsv1JtxM!^nP`x4f^YL43nou3?jmJiqi}B`wL*Dj4_G49(Esb*&l} zit3i!d4qqDuUW66P1bp%1;)1Gmcm8X774y;|-w;LSVeSvYTC zP02b9Hsx}};fZL4nIPU>JR3{Il}+Yta#8Vs!4YC|I5u!|Q9s`8Bj}Rv@whbhX!NZ9BHw?!j?T zJxG%ROn+Z$9!ersP{#vc;I(Pmaz!ktWSOhICc)T^Jg?LQB9)#e1aYa8mu{5-jDLH) z*m!HbZi#JaQ99AdV_S{`(>5X(kB?wtvzkyF666OD83`o6cEzD$l-&6s0+y;;wQzm1 z>gw_`L+eNXcBEvFansnHnC>9hGlK8{K0&F%!_$-fH;%WjwJ{JH7PDxF^UBId&yV-i zo5q!oi|O$5_0=s+s5B&F>c%NRH9_5~^-($$gAVOk_WjdoM0f=8Budc4LzFI1Fe~gV@kYwGb#2p-B9FA-1U-(lSk|L0x))!!fZpJP+AlkexrgEBhv21}<36Mc&aBW+W&MHx%7v zd<@;|9XKY9}mo14>?KzP&l z`xyVM&l&ZlQXc`MKn*o4H4Yw|Ba{SYD{Z(DS%*OqJm3rH4WU9vz>S!N$AKM6M~Mk~ z#^0dD#Kdx1TUwsKe|~l{8mkKj1}LbOsbe|gdAnRRn46BmWLJiVhXDeKc=Xo1xvn7q zT82$MDj#4Zj1TN9<0t&XmsUHs_@w1B_XL?$^1hzC9OPY4RNW3qVb-RRoe z+kwMh;g~*WbUE-S@-o=Hxj^7{syLYRU#WQeT+W}Me2iH<+M1icCL}&#oXPi0QF|B{GSkqHL)$RVhy7{H$bpVBMDz zdrQGyKV5)F$syXTGQ8Nl$0lt|6I6!-Z@1=)MGGvaoUrF!A*v8yqUJohjb z5^MH@p0s=nalurrwr4!cf;!mQF!A=_=7_-V_6o9bJTw8P&vxtUKKm2*WV^%5LH0!A zUTvhumgIlAa5{Qi1?%9>5}Obqi&oa{rCVTqsKbgKytHDkr;Syc5eX`LYJkzZX4N2F#ZLZ}v~cra(tZJbBXr>@)=pJ^f5;x&8gd zba5tsxuN~2@I=Kw(|-r+wuOZIrW@ctNo|HUe`?D8JU?vIWB~E(UX6&k)ZSPEpwD@_J?CcUm<-H4^qkC>zt&krDHN= zq$NQ>SpUP3SF~>(>6aoZMx4vqX9r9I2flG~x^DCZzUA6k0R-nAU5F~2xTi7u*7i92 zq^(1Nf^>YEt~FNeg@@KR53NX8x3sq5@mqWVP6I>jr1O%;*Hz0H#~&SE&i3IT2olXg z%kJ-t!-lwN=GflZ*zhnJmorD-$;_teYML)AI6R}jKJs}3HheH(GVHK&#@6KKZ{zI) zxb;^{JtG!ZT2o23&p&7Y5w$EwlsFVj3rxTsJOPCT%L86NeqB)a-t#23aVd+9>j+Iu z97T5H4!8EUKY~rPY7u3q(|TVWA1~JXfaK0}=GKl@`ecT(A?xFfZ zJPCJ?X!2vO#OBb(yI;}L6#SWLyKj1ggLzD$^mp{1UtNHSmb}7e2FW!bze|XUElckL z9C2P`}) z@8)9!a(A!RHYs6RJ)lV`K?as5kUjj}G$!rC;e{FY-Df~f3^L-iqePXkpCKB6>4$?b zmh~?dZ%V~7^&mE+oRkK8S2^1%k%d*>>t&;84IY{j2GC9j9F65Fvx_K`p z;rXt-+k{OZes(fK1l)*jdsG>j1*eV59peim`)E7;1jelH_dOhkSPe(R!=^%HYOzEd zJ*aPxsJ<8KO+cz|;ObhLDR7`w0n|=gH!)4X-Va}=cSA8qsFdJdN_M0$E=}Z#0D2{K;b*(PFQ2E0 zHn!FKR&|FH>`IZj&^Pk(fkf$P0gE!qxob7as?63vzi&WE%s6IJl+$4*naWC_1gJrS zYImPnpK}P!?Cyn>dUJ<09!s9n?H~5i&tZ-bF$EXwd(KEXEasnaY->)=Bc#p_edfDC zN6Ot{fUU=T!^;2(NrB)vE!qYeLH6+RK`pcABdd9c*ml;D1D%Z$S_LQg&W$>CNW?gl z637B1JCFDBpaee5eW>{v#L1ANr8IFA`!mmeYt;&lj(lrBJv*{zTXJz-mh3bk)}Y>( zj^308kx3fYJtN)wefB49)+b~rDXkDWjOL#uIw)T%n~huA#c_MxB_Nh(Fy2I)^#AjF zaG8qO_CP&+fVge*EyK=*9?MP1b56mvCOlmu*lRDYXv{_tcd7>NC|H!rkd&=+sF=YX zV;bWIa_04TA+BqL?at-xnhBwXQzG|)O~08!i$Z4=Sa2DZ1Zn?=N2_*VXsBF4wgUa9 zcwM1DPhf^wq8FVEU&V$c-!K09FmwGv^_a0U`hxBQc2Cw|&?sZs9v{Rg+;QZpi2I3s ztcRU{R=?J+1Gpy>)QX08E4D@EU0XesOn3GZ*x5(?FFfxK2pE1<_}TNzF=AjJG89Np zpL%(6ke!`fos*M;Wl&Ty#>AwEOnx6>agux3=1JQ2-SNoA+sjL%O5Q!pxFH8>t|8{3 zG~TD-G+^0Tq7t&Pakf5ix@;~mf^zxv>p;#Rr9Xh;{QF2o0W;5$pcB20&4WsyVUFM# zxG|=ve*~ik_Y(g6A3igqFbZKw)nyAUf)Iy49G{}rsZ9zFfutT3iN5>~z=B$ad^PLn z$fu6<=ijdX-~RWW{~JCzH}%y2Hs${RDE}V+ji3E*Y+_{cv-9sxf6X5P^Y7!2|7Aag zbsN%~-P&EwQ_jCQD7rdYD8lX9aGLzBbC>Rk&JEKe&6eAwwwOh=W__tPj^)z6TWw{2 zsFmiu6F0eEX^A5ef>`((3|u^2y~W|*wVrCHrsyvhSxV23DE|xA?<2;0!(TAB`I`Hi@ytVE^xBjrx5NXW9am3}ul?iC&rGhnciPVMGR!0Z-sx!?+I;q` zm7`x;Mn}kKc5#qf6TYL2y5d7ZIKUQ$M(2B3ycs8wHvHKGkr^ry662iD$Uk)iz)bOB zL+k{me7zXwE%1a!DjFWmU(Yd9cA|Xr{o~V@j*5ZoW*hWfcPZiEWh&Bxdb5os|wT!i1Ry$0Tv`t*4COWwBW5m$pJz>q|8l` zpxfcyJ6D2|zCFQ!o?<^kb&JMJYyaoG2cuE=E3n|>04^AIKQ;B2Ez3HLue<;!Sx-*S zkJumrf%QvL0d|~)0@;Xv8dehQKogahV^+G1sH6cfXhTF2&|{h$AFfN8M5A-|=6qS; zxY^wR#tA}K)&_`S*t}oqxsHhl4@ypu`7HAhYwbMbKxz-fJy{^u(<68I)D~o9CCO!q z(4S~zWaS=HE&g*nw@~M6o;c!3y=$gY$=NPBW$Tc*U zYnksj6kzm%d3O5y3$iv@yVKl(I~GZ`gFafjcN)FE@A z;UrwHJAzsQ0)${Bd^{|!LJhL`*)ew{N@>9ta^mS-sRypc_&*+{v?Ef5F6+*(G-8^O zQd*KPFFS^+R)YA3<>W#T};;$nJp7$yyOokGcrqFEx?)&g3CiKqz{f~PQNdzJxsI9Ytv4^&XqGOq{5>n# zDP3@+Ll{hg4{G%Q-=WqHaaQa)M^lg?KO;T$*eY1@UjV&{vH=njAFMa2JTP!0Hc9kMWzb`xO?SCG$cPKISAgoMWu7Nb@E2Ke1eb1^>G~Z# z7GJ6Tb#*M_OJQpQ5+-}{{##WTmoOqKrNrwBb_^;oUI#ibXm6R1ju#x@MhYJt=>oQhtb_m89rQ^P!Fxcmk_UvzQ?R_uP@#ftxxGBa$o&J=;Rx=i720c8*-*f1+ zP|qjP#RQ|>9ez$t5izlJ;V36#L;7S~Gn19_piA(gi4s4!9~2htSNT^2)kkNHC2RdJ zQLB0~uo8h`5lCT(;Jg!JtjCUp#Hyb^iY!t_8BWW#y};o4NSnmTKGHiH!!5Tpv~G%g z)B$*C>P6y3r;c54`O&XDG4j9#mBmgF@ZX_M#0AjWf`T1b%5{h?HhurdBJu z+BQh)*piT6K?VH%@UDoyzW>7G06aj$zg?SUMINUX+FR=Nd}yZJSb1>BTUJ(Y8|G3} zzx$HI?~1)f%po>$Lm$2`2~1X&4!8sqW8@H$f>y zT!%PfUpl@7DBm1(J>~N<4O5ryLo#X`M|5hVMMJy_m2-sHyAZ?bahzm{37^J3nzy92RBz?-q$2z3<*?A znnf|8l)*A&mR>VB}xa*jkE1WgF~c+%4S%uKk2*J~WK93T^)e%~IXV0_eIp|aLC zgl@2?6ErOPuMWg%B}r{pYdtPaoVuC}_M+EZrX_S~v{9xus@Fn?l#jk|4Qw6gij(P2 zGjZj|(uh!=5P2S0?l>)zddtUGE;l;5T(NLW56((BdFoE_`tN8*HLA``4#7odfV^7RGdJqAo!%x zA?OL4G2SBmz1Rzuh*nX8dD$9O7EXiK6Qoprd+Nz<5VNGzp)lq>dpiFEh8+QFVZN#G zRtXoXNfudLGLOfGsmHWlSfy;dmZ9Fs!vhWn0ElN^`+j+5x6}o!_UP(Jy?GiD+~d*ZTcgd596O|_jIrM?ZNO2= z(Y>zK71j-cL>;fnTQ>KB!0(05-5#@jYiZmt%kIFyUs8Ff{f9>J9 zapLUjnd%IZvcnR0;3wZhz&_q5(PKPX}_hLS3V9&${xh=w#D z9NEjd;b!+joK9wK;PkNjJ|bHQTcJN?{fpJU zNMyIqvX&F2ImYGsVU^@SU$}+=tfPa{kslJjYe@`4NgYFr@u&!oF&jxp2_4$UaP4A)&-seE^3f-()D-mw?unGLmYCnS=Rmgh*({-cCwHT-C;tgmm9|C*`( ze(ED~32>NodrP9Qd9jn$Q86E)txTkyb+j)mfL0q~VuIqLp|g#vo*+q6s3B9SHz<0m zPy6yuQ<6t`+4O?>7`)kPsV0lX7~@8*bMIY0A=B!%(_RYWNL^9e)1_-xK?d7lCuqXl z^D(4{k(EdOaK>)lQbzCl;Ef^s^G0Hm0V7X2*4R=TE2N;N^ryQ#o&QK9I(RraWh|&c}W+%z~DrWCvoISRHVMgH%an;a(jDux}hgwZ;THfNs zJpQh%t?z(^{NW%ZRu?PlSQ4lo1puc%&|d`l3(&0GgQEI5v`-aw}-Mj zf3cn7;1RBWmL6@(M?OewKa5**!yAU7eub!;_(DwN0%aMh(kJp|H4AM;4a4keZsp;B+SllX}_a^r4@>m zd>Ib7(y^P-u;&{ShPJyJUrVg1zfJ#sLT4Z($D>S&LM+4cIGElqI4==$KPyQPmm$k* z|5J-{xcU0sWvxno`=)>Fy`4tTIXE=lx=%w{<~!iZ}`rRzL{Gb2-is0Y#r=Ih(|IUmKjDGv({+b&d{(Gc9{1+kgcjAw6rUJXX zZ5vDJ@3|WDKwF!vN5%e#!n`J8%#i4DCV?uJ%6IN-Lh@8VXl!vG$YE*cdqi=+Kkc&* zNK8h&vjz-1gB5$OQlX#W_WV?}M@PR`JFcixu4fw1MS7-6fVtDR%N@(p2hMO1%wvV) z6ezfv^e-5cr8~@Zk`Bu`zs8h@v1eF)Y#GYMV8S*A>q7sIeN+YV_LJp%vj`_?ndXl{ zAI6z~W^){An{5%o2Gxg-6x9y3PD!s(ErmK4MX?MF{mSCK)k)|rEkUZ zr@$hTA_|F&E*Ws9?}C!sH?Wkp{zAw^a@Kv zv)g(Y54kAEa>1b4Q2?kC^608Z?|G1r!2xegN0RNOGB4=9u~rAdqOaD1!u7DH;RTdf zbS}cLlpmzQBW;v%oQr{&8xj8O&3GU3As+eW_f-9m;$tig+Z1ecVcY{^h5X(DF5V=1 z5VWfB=@X&2{{(k?E)K<~P4R--&s#B%7=b0iYQ+_8Sv?P=gHFcIzD6+M2Cd?{q( zA0FXQYa|9mmvW&Hdu}N{S`ZYM0+WF4yfb+l&1Iu7D|@xo!rAT_lBe66q`Fe&+zCe2=`j+J6;UCJ@o{{dQs^r>-C0~6*QD> zlU2fHE>3z`JIM(L6ci+!GCJCbicKTj!Y)Cs3!LUylac$+y&$50Nb(s^&jG8Y>)kPS%gw17clR^P z&L&ThB@Q=9?Cl_VA`&`ORr5|Do6FX$*>vf=(#03Ip#MlPDK}(Y#r@3q@6ffxOMbpE z+qVTRjB0)+tOJoU(1!zL4`hvnM712D>?CyLBMLMDZnWRh8S+ZlEyFs=NF;uzbZ(V9 zU(&q)aG3%h;$T@ZQiENhgfjQ!D%)o&XZVWWA!KbG-QZm0YUyn0EjN7Nbb&-x^_fGn z!wT{_wdN$^1oNhQg!3ia@>9A!sQt~97Vb7J%sQMyug{7=mvN!;$6b|HhPkT5C8;@& zb(%UuNNkk?`SwP_+2ONI_VNWDpuWPFw*?Owy;`(599O$~#CV8fbofv1)1YeJ(fjCm zq(;XpHh3BBV2KDMn&joMx7LQ-Z$jj$c#|%qJ9E!ZsQff+Gh&bL?4Kq^TMqZt;t>WJ zoa->Dpk+B{BU>=qY`5D#Rqyd#^mhH6lNUYjH#8OIkP`O;v)^d>?!d`x83NL}<|=*( zPq<+e5%KUV@fS`sq3@J@Tr`3SOls|9x(Gu0hyrCx>e*;M0LMN|xq_v=@XI~yP4 z`oF{_+tqurj=-$uKSnAhyib1z%@H4$nRl2y@*P6CdJ*2eHP7PSW(A=?vz|1D%9IYG zxkmQpR32RrN$lf*+g=F4bzKpAglLhUL>xMH2nHeyg@brS(cm;%#DkdF^xX1r3DKWG zG?zkQ7$v9iZ6Z?tX>fn75;z?`Xp*^<4ikC6Gv0(^cr*QToDtqptRDEXO4_ig3im;zb>YTpt;OXh=i>cW!!-YNYv_ z*{W8)UP+>!-2?*wKMbR_?Bn2##N>g2%qHU5RxR?gDI#Ib#Hw6|#o<^ejK@00H--jP z$*2|)e#istKpz?Ml_N^ zs7$z$Twpy6+cfMrDqSDAk)ml{%XI3Z|6bwQ&hgjnU{yRA&tPpIXa)x$?%`&&6PCAV zeFYA&J%zx-4XfkQC)X+UgQW9t}bZX^ss%01Zm&DZ4rp>My}}) zc7#HKLU9i#7{Qftq`tkCdpNuusMT=v&v$?IZhLd@$hW`4Tvaq%%_2z-KJN1S*t=4T zv9kTS=RCSRrL$0N6nG^bM*R>R7CO&n_!B~oSF9AKtjp0RdCL3ZHVhB?lHT2$T7qLe zaAB|?2`{kcwa>cey(k>-KBtRIgs#X+%etxGRStL5D=CEdz18WkcbO#?7s#YS4rE_-f#b7@6;M8=5#p*} zJ1G|G+a%*$Ywpw_r>Pjk74uZ=#iVTEVz(WOn#bfic=fiBFF4~NA>aIW1v44 z!kXJ>lQv?!VcyX*BG;Qlh*6|H9n7Dxc%1v``0;89fox4VPzX64=Pq^i7;J1bizY2p z*CY}tkJ>m=BN=V7GA<3k_fuFl6$)!<>ND1daFi1^!V5niiQ#=K@goyOkQ3@Av>tTa zyvycoIu0Q9n^Av)*K_61W7px`)Y}!U+88SOG~~jRN;iXv877m<%6Tyq&RTl5uF4y* ztT4XN3KXn8;u+8LO~!WdHTD55-L@+@BF)w3Zpqnsqcq(TWi^qQw$m5Gi(rcWR^h&n zM&bC%ev~?RLpQUjwLJdDqbaxK|B8t85yJ9brC>A=)-O|AE!M{S2`g-bb1jgRvg@&g zl=I%kW;*LITjnMs$u-Tbyq7ZXo$a2&e2q=Ugs|PNF#xdYjvv<7*@1WnK%JKdPY;O; z9z9D1R+ktyd@xDUjYWX-MAj6V#H4{^HDF@LUYeLLsJCZqUV z4w)ZqzO?Jo%RB6#-GSE9KIs z4wgZD>-%rQ^2jCc#`}xoxHmIIJ8z-?-w1g-b@zBjT;6CIgWJ0*VAvSZ)VDDa z_dOQ6aKR+NlW==26E^EC5S_czNwJ?Wb;2gN4W-q(|eMj@d(nZNKMo3Mfl}cafxotyvB8HhA0cIai zIEs{>^@;spqKbe(zOK}ow-0gNky2R}1jYC^V{^e?b_e3Tmaxah0l$sLuWiQRVP+vG z<`vf&z*}J$tGyg>n7m*`P30@&A0$7@t*(f*bkcHb4bSBVq@=F`74Y?SQ7AD@^+tZtaqCiNwkH! zo;RcRc9;6wkMuqvj6XdPFKGkfm(mAomk|Wu#tJw?-ipw3fS-Ns&5EX1apzt0!7PPx zc6s>oIljvJN_Ts@Jx2A5D}N>p3jtJfNsqR_5K7!#uu@6uRgw!!ppL~CJO7jFC*E_h zKz+L8`HZeJ3-uM^vv7V_{j2kR!tp7_Nfb zlY_nEuLdT2`hY)wr0&FCye{P*a`p29K~N)z^SBF}j49n`m|TMIKI5{A>~EkN$mcnm zzP)^dfG*60+WP*Jz-7w!6;i+NJ+w`CuFo?Ka@Si8`{%IZE`*dznGlzv$XQO!cgFXszD*}{}#fHD`9o{X(8Sfu8=_?lB9}Db@`LYMnNA$@SA{;$*9Obnd9j$qre**UQBNKJR#SWbw;{rg8K*O*q-KN(+T{_V9Vm zp>7UH6vwfW-#=EFQ@oo*3y+tMq!Hel<2B!qY#XhWHFUIWvyM zw3*!(tAa%>?J^r7ecsR>QE3nJhs>>k`iVk13HRX=tz!d%A^p!Vc{jPWO#`*c(Z^{lUGB|ANUpe zlg$-q^6Z0ilo2=g@h#;t>(NtS3Jlp{Jp(xkA-FYDl)yz)^6Vz6eP~hA&LL$j*LXTh z3m7Xu_=1?a;O?@qP8*PJt`xh2~D#M`jC^8pmzqcn&0ueP)LF&8ir{)xv~0lZq_mh-EVa=zdf8&|2{-IP1EYUab7{3ROdq*w?8?OAh>m5pM$ctm&6xKxi>Q>NWWU6kiWP4d~FO?({sek#?5?H7f2 z8z*zW7^>phjkyX055K{_$Ll}j-HKPR3LkHz-NW>80g;`B?bCfW6w zIC+?&_DzmOIgx)tKtG6tyOkXW`GzTKhc)9_5xNc$Hj*mi+hF>Z-gUn3XKL@=w^HpH zOl@WFZ}e?8G}zmAoo0KK7!Sw+K`j4PT&i%9qAUU`BCe5cCzvo(Mvn`W7@WKO@b;7Mfu}59yeLz39zb> zwfnkr5to)O6lgc{h?C^D+uvl~z;ZRHZs)s?XCC`G?^)j_-ko4LL?WX&J?_-&Duv+m zzxUvslQ47YoT_?|S}7FbJYby2_K@qMg^q7D+FbB;geB4kMWepE5K8Uq>{|}>+n;j$ z{NZ+p_6Hdr7rSTbi`-VC;#=cD!~F|q&KLBHMn90Y5`H9_76cSWPp!sE-VyWYcF;I( zRwind_^Z2}1QzPXHncLleDaA)K09>JWCRb^>DwcF-txnaxp@H0*Ah=AGMp&7#C*(t zbw3DRxb?@Q!g2xps3^U-8g~iGKa9`75Ezk(@K6$T6*&En#8K|&K~__oa;fu#hGsAp z5IreiOs<>YANHk_Ef|#lGH1aG4)7xGeG^%Y#ePrA6Mk*|ZFT1#>z1Z#?P_Jwa;oqkYV7WVRv;Q zT$A|?sm$;P{l!2H>L?jR+ISCNc4vx-;@DU0&r-!pj5ZF-WXs?82fUH&{53Fzm#7A< zzKQOq7ME*>E{qD5Oaww?>W-?44PY~hL7snOFah%`)Ere=T{`^I8pjP7*jpWsRhX+y z&WW?m#r7#%g`W@z-BTN=3_~Ux`2J)gPKk~ZSnLxkWif{kD4fY)5m(oEjLzfL*H}VG z^b9{1rm#&Fzg7&jjfRW=1V)F-z#ui;rQ`ZA1xIGoO!}$)-p_F%tJ#W~?ItXb6s7YsTBfD53Z##exK;8i3 z)B$u>$3nV%oGzh11?i*@0qU^PFb5bNX>n%{K=O-O-fkcDIKSPU9V>w`=O)Atu*eWA zph}f0s(2c*@!dk_Y^mwSv$7QwGVf=7G-tJ90bK#*)Y}jp6_I239ee#G>A>hljOg{3 zdvx~YD1DjVP!Gqo`=s&~7Ey1$y=zjW?If-F1+eCW%fmEwPrcBYs#gw>W>P6CzQR$R zJPR#r&QqRkBIlG^(6-ibtKG7^mn_G1H9W;l`U(|h6Jx3(E!{K)5aVtG3--U&u0iHS zMk!%X=~w0!C5ap<8B{vaz9p72dfL^(4N@E%@Wy*CxD>gdS_XLCT@I;DJu?znb{X@# zV$`QC$w;p+XaxbQ(;o_U$#>hoCUr%8wA|fm>fe`i!1>Mx?5bAQ8yK!AdPkl+q!Ni0 zS`g%bn3-R3o!ptp?!4^U$f?7Yy4f>z58`|lkOMHiULGgUl?Np~d8NFJ)MaYalD0~D z@1A~59%fWICX|J^%-(}R&~Q5>3nAIpfbNPk$uctk_s0T&?c+zco*kchi`zT)z!&#= zaz(N#z7=9r4X`5`ku>I(io$JIqv$#xRTz?S8({M-WF|7iXtAgO<2-Q`l!FN3)}Uo} z$9?)9LWBR$rsdxKL;1jH1zYsGESKe@h@u7$DnxZ!+?{=B*5Fi+*e+EvQZ!%`9AHTi zt$2~pTuoG>I|Ol;?-Fn*+cs-VlL9O6e_sU`4NXLHE-= zZ=)b4ulX{HkxFYRAIzFVI>1*U;{TieMomm=-MQ4{kCH`|>l_O}Hq_?X1ap(3qEg(u z8w7JJoyfR&Q0a(D(rMlsg2+Lm1B#pXZv^jIVe_lmuHC-&H0)_BaHONcr~P9VUwnSk zjTemOPjt0=^T(cW<*2lyI|;mp4P%7@Zwwt72=^j8poo-sI3p%81B_s`JhgP4IwU~E z5#8Ta`uBw0)!X7lyzh$9A4~-OM<4S-A@fl_9tUG9q6$JH5&aiYpqvJsoMH}^V(%=B zwRmaH;?MX5S>g8vlu(BoQd~a@z$9r*FBL)J#kKrF!THy}ExxD?Ojo=|QNI4?gW30R zbwW^JFMWxoopT|Ch-E0reG4l@az|T00L_jzB;ckjA-E_FFqi5j?gRAkIM{}7{mYjPTM8&e(mghQ&oG|}V~5~tiYxVzDP6RViwRFY=d zX|=}%D_nLGdGzre5>ZERNc<~{9FJP2ph(f#O68Cby4MKC2^A9o#LL^_=f0KjcEo{g z%S8*mj=r0Tki^et;G{|5(A%Egs#_l97@UMhoZ3P*NYdN%*(#TQyuFR(Dd%$<+e&|u zYVeK{&w7A-rk*isvoq@4vu+sBBLKC+Rj>w*UInzU$COG9u5hmA$}c{`qsAUUD_P+? z6`$slCKod23}Op;o0bva-)T&Ndl^pYkdv8`{boTawIy5EInwU3Y}E99vv!*yyE%a% zD5PlSyD-Cw+u~ZFDGz@OF>Jza%HE8U|)z7D62e^h;|AF20Oy@g~ju&t;q-tF*0Wysg!4^>)_bO1ej1eqi zD{((@t&Tvgqp(Pw%D55lOn6z>nmK=#+L`g7J*Ax34xRJu=LM9|g&Xi@uY!DkKRi>duIE zMvxC-T9_*4kcAAK11Vu>hV4o;8E+rh*HDwP>Yy0y1Nv=d;# zKKDZ)XE`66-9%Z@V7Fh#6pGM9fBVl#u85-sX^cTLd;>&EOvK5AA`DeL%C4Gxw5@0p zF-WSO2rm+eex+PA0XO)UbrwA~6GT~&$u@_{>kcT#1jQ597fv!c5D$lwKg|8qo8|jH zNtVt4C4P6k)a^IUShJLWG8hS7Vr`INXu{#cdXl1f&Zj*Z*t4V`f``93p{$nbu|`xL-Mc&=qML!T+5QI}g>9wO$QE_g=Qc~{ z{OX;0f6|!#0T<&OXZ{k?0ak7NPv2kT8`4{f_bja6Oh>$xETe@K_MJ347KjiBT_~U$ z-SUs+r<)+0DSJqTh<2gd#GFn90&g5OQdulKQRheY>n<`OtpIVhq#z=Derzn~Uei!( zujrgL=lFKk<=+gt`%wzAJZ3k>uD=rZ7igrpbuz>}QmR_;i<$xvs-h4-R|a4J@cv&q zR;W`e6GHVTV9~mH2bqHnP~P#ZAd&_s6m$70U!-AtA&r8-f}&kF}Fo| zYRha3*5=+$p#G_EyV$5#a1)0wWxgRykR`0NNq{6h1dH z<~}U>xzb8XFiE12vn1c8LH8+~C;3;_wo3k*kRCq*ayzRqi{-*M&2rGPi|#f+#oyHJ zo8EBOCIEEN{;lVy=M2M+-j|7VMLD;z|HG+&_C+DU>7ijM&!UdwuJxV@w2dbV288zGrW` zLv@@!knd}ny_how7UMIe5`s}be^BY1FB!v1P31?c#yP3ro_`-Ol@4ZP*)d6kkTk?& zTo{Sr8M(P54RH9;1W&WD{DqOJD*Z1`Tg%9RTv?)h+_FU8RMN>faJ`X ze`=GK(69)w33Imr3wMQ5gc_-NXXBVwPN3;?1)Yl5AJvC;11gFu;sIR@KsUFFVE!P3 z(JVDQ1wtMTHy1$&Z1p%QgTvT~cIb_iLFGuwTOlN`&H5>!?ueBWUZm20CenAm`i;=|)p@Vkh7bY5WYLCcoCOm@nW2c#rF zDl?-(6YiL!qs@K`#J6(kxgMLsxK%Jylu|Ivx4Vjl0XX}2C+xwgA$tbzmcKGwkE&wX z^$B;0Qp~~f_wIFdgeM7Lb4VO9m;SYRUkM)dRv0SlHw-74fILHrpZ<`SG|7><#JE|^ z$rlcUB(o|S?oOfdCo?o!vQdR!MB`PJH`JffrY+bMQa;argk`#W0DGD&9MCpuqpRy5 zjK>9a%dTsIvwSq9@B3@EMdzRHP77*k-f4D;^>m%%P`~x#1QXy6LZs1Gt=F(f`2<7) z4P$N|b_!g%(l-IN&0PbHHiPp^hCSR`p8kA&IUMTcxvNuBWV*1C>M3=>j-^L{2v*8v>>cji(659iCdvM9)|*NWAnA8#8V_Ju()o z%eVX!u^ZGQq?#vv3~HH;Z8uS|rUuh!2POndWOu+wz(#m(%8Qy|B1BJR0t@GNjq6C{ zQ>obQ(cm3feBfm;gdyLpyD9fRk=I?T#-R$teQl%0cY(?<49n!NF^r~M6(EMCi^xP{ z1M|=zg)GSF4#OO!@b>+g;oxX^{jkxkft-_`6DR9;Id+{r6&UA6E6y#(?iw7e1K;P{ znvxC&ja|pjMd_6mC}X~4PmR5ja}0K7qywc0kFoZNtQ}Q4#2X%hXzp>AUR9_-=Rm8{ z1Q(aOc7WMq(=M;5)hR^o#^}}7B{R^|dfx0(1p_IAjd+Yt@W9wDn%^+lh4K)EzUB#S zbHlrXFZH6h?N@HYt#uIF^yPh^1!UYEU7JSPge!Fwc-WlDTno~WNi}fxM&z<{N@nm(LM>eu%`)hMdPiDXD1Pxphc6M4D77}4I z?-r-BtoU6;2pzi+=YIasME4E!nq4*UNtULo z9R#%+PjS8#i}u>@bF;V|ADzAxFLfDR8))9?_8Ti=JF$=Ja7y7dGPNt~KTl$fz#46d z7H99^>0w^;Jm;dhVeqRIBwD%*`VRpU&gWn*{-e?B6RI6&B>PSr)L!kN94JQ=4^8FG zR*C4}f8Og@f3jM`*~4j1#o8}ctxsi_0A?Bml@b{4t*u+jYJx5dD&v>ymJ#SIU(L@L zb%A4r#!@90+lxWFpnOI-xJ^*Z8+vmU81*BoVR$(L+bnS!^tw|$V!$NVh$mZ!$W^-Q_n^ppOp1XV$c@}#M>S5Y zpo`a7dH7!r!oo`1X5R35;&s$g~b{Bp-leZ!Jz;>E-m5d)Smqt7DFRD zJ`Ib2a9JmgfLZeeO3zP}&lgDF@9uCe95I6RLylq|M5^hsczRhcsOfEy&rE zuKYIA;Pk6*x_Z@kn>fk&X9XOt?dT6HsF5N*)+U)ZkNq>QT!L6mehlokI?($+pBmQD zVK1@SR@$Ig5Q)DPBq_uc8g!swZ;DpMi?_1NJ^@ax?ilUCbX6{i)xaRp6R3*t8^MUO zjh=P>?hgznr7~p@V`X1cXZF?y(nd;9NZ+kanl|42^W^+0h`{ZU+2l0^O02tC86u zF(DO1L)4sB(duj30*ZGy@j0XpdW#qC6n^iGFsN6-!U4T50%$5FOcw9_y7?DDs|C_2 zd1VbcONyoQ-H>LySKNOCgx*4S-`fet)sg<0S0}e=K5Dur_%Ul6mNAf6MkNREdj_On z`x5>8i2}C)tTWIr6A|k}pgLO1|DpJFrZY znEZ;+Vt7P;lRgwlT09z?K$*S>f5Py|YX*Zxh$C1%)a)JM+_y3cYpIafy+en!oe=>c zI>PA{-TQt;Ly#;O*@mgUdXb+q-8lueMmxdsG5ZiC0I+w0YOu9IcGT z>OyF6jX_>|5=AIUYi#K#%;X5kQuR6{FO%CdA!Rww3!PJK0kV0U(WWVGmmMoJ za#?i=XS>ml@dC^tQ4~|zAUW}rlx?vmcU(i~6($C)!-%jJ;SXqgYn&p85tU7EKn9O) zd}nyf*;N+2N82%}^$^=vRN3Wc;t`Y&&Bt|ZAT69S{P$ge^WJm7nV#SHIl+kZU=^u6 z43b7joiPw_zhf*_rqFwkrj#~%ZF#VMDWwv%H8n`D(BGclt4=d0v|sho?|@Kk|I+82Fs|e-GBx?1X%) zKAaNSf*<^F%0}+Z84Ur|QlFZ0sx3SkzpiWz;~hqL>5u%sL$3-!2|<@5tQ8Pm2pgXw zRzhU~6R=Bp)re-B4bTE$Pv`lFF!4|LF>sY?PEw^16RczR8zJbwAD?uy=mQZHsG95k zuInk!*c;H@Tz1~^2n*Kjh#>VXzst0ZW-|#RQ7uRe+)h+0)E{OW{wdkwl~+z{Y{+(j zKEjFCZv<}Ii)PZBC#by+by!-}vb_Dtl6a*ud^|ebRAyLmqiSJdovQ`wW(0cB;!7L2^=^Ux&0SLmR z1?}%MKAVg8$|VY!xnV8*mmi5zoiyi?=|u60`tX;`L6r-lumBb?bn|F6vhd+JL2;aG!~zyGClF#haVc9EU#>y{kt3cLxVuY!-G|L ztOqIm&&-`9mn@LR2d1CNrHaBO44#3(#0ml%hi)?3Mpm;xk?n%#Etl4V_veyS7rB8D z=V*tS>BGpeNhPPl_qQFlZL=!2wv1#JtLh<-#0N_*~{gOiq}EO*LSo90`&tvz*`ekFGTRw}|l zW$5D>VoO#TC;jYnmK04>UmUIK%GMMPqgx>Vu168h^novBlW9~EHl69V@XZ)?Xi4%e<djRTyc?AWwAg6B4-jEcu!&BKu(b({H4u0Lw_O>(4J-&27AvYkS~ z)ajzzJI7s4bkQv)la3>ih!7!|5qB&5Q}tsxbOeue{%F%26um^}mvqIgz2pY5X1!f- zA~n{0@G#N=$0jxz-pno8thfeYgvm}{U1>MECKSp`%)s@ZCvN5U`@s$4QpxO(vHaHR z(!2!x2hMM4(aooF7>itg6)mrLHdY|PglPxT!2h%^Y7lKFT>F^<4OV_8f*wGGaLkJpLf%fwUrKSFHWHhVo^*5Xs zO2N*hesi*MMk|ZdzGZx(1`TUdORY&kKABUxjd?2%NZP5P{)+zHX*cOlkjko{Al@Dz zq)^)gyBQIbkix|^mm1pGx7%g2d#>>Dh`~M$Wr%bI6&@CcMl?u|lHT|vKC=6ef<$nN zllbYeTtD@#f%LP{@OM0rw|;IlEwvQ}TQ*NRDLXCw z(SaXXKQwBSFj_6}Dz0o=^jW~*iamt?oUAp0imU?cdXA+~-rm zQ!$Mm=(`KMev2?WrZjp~Ng#BBigjcCHxcYN)n;*Jl*;rse~K}p(*q=|jS)+4=Nd(a zKt8?FO6-L4H#H&RWhoO)NH2gi>71(x6sHX+qR{U|{um7VXmz{`cASrnS0Wn1wsbPj-V1h4rElv?rjZC<>^1$LK~Mf@k&w_PdO;Y0#WHxb9#v=$;VPiZV+CY zpQRRaKcnuArah?CTr=8dkB7np5eS#gVb@CwU6X_AREq_NcK<6h+h)AOc{o9Gv;=nF zl&2N>j~jemy3AXiEaZj8`HEhgngZ|vH*q9fZ)@?i8qPwhlnNP4)mHEj)1W`gR(6l4 z8BG+Vul^vbZ!lvef&=8S}U`wv8H~g3cc6Q9}sw z=;KYdKQxwxgtf?=ASZ0KR3?>s-a_lrt|QR)4=Xg$1hcQb7f<(0rU`z6^}{o@BKbXR zKu!|;HKDARgSS=O@Gl^1hKhzG&5T7(8P8pr)5`uvJpGb)pWC5#C@p+|4=K~U>j|!T zN9ohBL2sKzG?!kGgn+~{LCDoIqC`0Mpa}hAe*W#%#x=I(U*F1d@&HXtj?A5U3CNzx znEoCLPOCHy<>Z>SHv)`_rnf3-I~A{?(3m=*zeYs~q0-{8KwF+9iSneiaNB&#iHbg- ziDa0Yam*RKvRC#_$l1d@gi8;C{p;J4ze!M$E9c^ejs)Brs7x33NS?q4MM|XvMO0c< zCImqReLM%m>r?JGW;63$he|z}_*0TxZ3d)Io*I~_H-oK9L%c_ zTv#fQk#XXWeIbI8vjK6Z?k|jw_u$9g=^w|5mjXM*8~i_pqTbJAqbm2v1Z- zW*dLFe?#SW3(DFI4g=Z43hWhvvEMG>iaMcS^x>wp5Z__6bsVB^&Qn!t!lz6cF0og z%IEM(E$qjV-oG@=HxD_bSbjypS0l2PP_&&^7(#@Ec^?Den^6K^Wu_&+&$s*DAPzVI zf-sc`;u->39t@LzF&AleYb+tpHRNu4^q@@u8bvE!gHeNLIe4l@BQQw{2)}tq zt&7wGR6f8nqg(VJ?ADXK8iS>d!>Q!UreX^l>@Jz=m&}G|J9AYj#@^D%=nzWWn0_KE z=PVrn%W(9wpv64E37kuntOHyE3;Jm35wUB791nAvv3l^ViCUW`|;;P}-qw#z0{j zZfLx+yQPjXf!St%(&Q(Bi@zs6-SY9#Pv>2=c=y`~D|p&Vq7aL&(HS0QY;%1t2Cp=W z=077&7xCz2!*%j!v2U=rB8utPvlCIC^q{sIt2t7Vh|s%T$6og^=yoHyM#jVd#MafW zs~(Dn8r6o)J{Ufvqo-KU(JN-jhOQrgh!g>U7G~TuvjmNhq%SO zTwcje+mONpstCvw+n6QN-ad+mkv%ATME;n$FCzRL53Jrv^*M0-vXc7fXw!O5NV0T7 z>9hb)SmmngPx&JVZ{SU|LuU=mj%`zucDXj6wg?aG%l=G5y9TfX^u5{;GxZsnUOwX( z`0|W6IDJ9x$T_gbNOyD6e-ng&bz)=6<9<}=g%<~C`S3!Ze=MG?Qb;`B@fY9pak5`? zf{GE^U2OSFsUtaEPM$w;mP`QCqk~Wz&aFdc_{wMv*8bFoMwLN z3%cT}=W!^UH}@3BkfGvOJRR{*1~g(W@d9iQa&$h_3?$JVskEs~7mA2FBLgtKR#`eH zJAeWXfwAhRc<7HPI{DQZrtGBKLMaR4*zrG>_gdyZQ;RcL$tK%Xu@Y@AM~DR9D!hT+K1;W=<|w+b{gzEQQ<$@4vRi zZlyJl1Gv4kVSQ12iep749q?P~(HIOrtmrwnq}4WeNmal@1x?`mBcJiud>Pmb zM@O2HK5cA|WH_aQ(t+w4pcuv7X(t9ew;AZND=I4Dpt)?j&{-cj)JcoT5!Z28Veb>h zVL|=rk}6)w{GHF4%4DWWmZ3nJBKo}{{wh!QJ>zPp8HUowxMEfjf1+la-jbLUEs#$4 zw~)vt4Z^9ekBS|8_mp)1V-ezYT}!@~dMHJmmE zJkz}Fhxcn9wC&+5l*zIx4_$6)3TbZjjYi)ro7JKetHJcFO9GKOh4J=!f6Y5y0wyz{ zt|9q*&SVB6|?iKw1XCNtFUn_8)U8LM(Rx!u*-El6Y9h9OKTye8a`xp`(!+xA9e zh;4Qg^LN&go2Gibw-G`x>QrO)h5%W6Q*%n_u4DXLKxEVAvGDX8vCKplED= zqF>Wx#3=->?A&r+%Bu)jBD%M3Tzva`Lf#cT`NHtl4C=EtYjS-pA;>y{C16{B^-aJ2 zA57P*0;Qs`KIZ3-gC4+Q`t|Mx@NV!NK)~>K?Iob@2halOdj+ih0yY5#UjQ3GzzyJk z7ZU)lzjMELKY+QBfvMk4z#d@xHv#S^;YEPQN<9f8`yJF@y

            7PRlFd`y)Ey>Hdb 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
            KC-F>wV*; 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­@lg`*xPmkLy)yt1hON3HN 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�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%0D8Y{74D^BPjXV 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

            )S*^}nZFqVLb%pILfu7l1Q+SGb#qKP- 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

        2. {eZhg0trM%(3Kd( z8Tggi_l>|xO5R<}OUp>0#u{MenDVNq_FRM50o5?Ex_1b9k8g~hGtf)K_x`h4G=JCI zOrFD`So!wF{Z#W#CNc&ZlXA$EVJyTz0RTL4f*P_^s4Kd$z^UwX?SSDu-(WNC5($sW zJz@<-gal!UxELIW;eh(G>VS!HGNJllqF94sB*zF9q6^Z}bD`!GLf;StqFuD}(}aT$Y?3bF zBz8z_+o07!n@AMJmeRh$7ReYC1sm`%pK-1J%2{x-0m7i)ldEl z0aZC~LV~?aBJpkwW#RjDp?S=eZ4PP*>1dsm4eueRI>BDfxf2!M{laPjtt!B))+T_iaH^?RWT1vJ60_~y8eG~e#_d7oW-hs@JS`=A5S_B}25zprgA zA~YUR{L4agCGC;In?Zl^6yc~LK`&dVsOK~I)+@z8gj6H)M8TqHw@sO69cPOMA+^;3 z1tSySt+V~dG7!R-GRhcSf~d19An-wet9~;!?rdV>NChM{0O0^nG!-07_}LuayR5$F z1H{eK4bCQ+8NsUGr;EaG4DEAc7X?K*-n}Z*Nwb*F<+o%yHfBXdILe?N1_$kZEFuyZ ziz`5CCMl;1jW|Lwi%I0q=-Dhv1axJNS(#vS_n?I>5OkqiG~pkh7PCe_cyk&Rnh`E> zrils)FaRNFsMMg>#U`k~^G6Rt5B}RFN3;B0BEj3Vfc;sW;m*G6%ZLs;&kET9AR^|5nq%9B16oe1k|A* z>a}t)A+G7nYCVHawvjRCjK+S9uH&=W2H#t*%7qZC_8|{j6y@WXIo&7ExDh2YG}YRL zlF}V(RK0usVNu@l+(LQZlkneH>-?uXg3q|g9&HYl9NW`%!!S(?qVA#8ESHYZSmWXc zfHQJ|;4BUEAF^x{LbBHC%$%Np39}ImaQEEO9685SLodT1dg~xcAX4VI1Y%m)~|Gj|3t`h!B@EkMHYK{ zqcM^ubhBCEIgkp5&y>H~CoJk&l0CThgg7PH=oAZzyBZm*Figx>%O9htS@!Xmr6jW8 zE;kDgAqRodSDLtsU;(3?hi*nZG|u@hXl*~y?9%*4!ukGPZZBkbx7FvaRBd!>;4x}& z+Wu{Ucr zR!VW>APwYJ5?*{=O>UTLE5F~tY*SMIV<`Ktu7N&}wl{bDzSrFR)DN(u9vDv4J% zNd#IWa`51O8MsdNkWZs+x7c}wIF`vB5Gr8pq84%-SaUGN%wbG8L7G7?{;jR9MpCO$ z&a?T{QP23cxOY%zf7fFq^_^zF(>Q&PLF>NypSq8p{;SiMKh?hpslPr;uIj#R`uqgy zTgoog2~zXjcEGdoilfN{Rhrs=@9Wy@#Y+m#v-?@1K_E0R zgIGmNS`aD~_l~yzi@moBiUVr4g=dDr-5mz^;O-J6xJz(%cL{^L20{o9!QCOaLvRT0 z?(TlS|F8RY>b{;j52xR|tNLZ{u3oFx>Tq3~-Vl1;Mt|Gp{r&azdhCeR^g=igGcDWX z;t>n%oY}SZ_+GA@>9aU~w#$$ZQ&4PBJnLlmZFjrV)FCudawcOLrPwM_4U?Pl+C&M1 zcsb@ww=M(CvXD7gM>UOGoCq82Iv6+9R%nO*OS+32rEiL7dEAKi`)k&!GQ#F{;Oq5C zn%`4G?4AWJz+=hD$E={%oXTTIUCVdlIwgYa&sOcmxAAeKr&p`*J;uNDEl~zBX@Qg~ zoVY*hB=`=pWDaLAXiZ4zOj5Yaf<0fF(S=VB3)0yyE*dTF>dK9-Bdo{~fVNJFexMd1 z43Cjs;RQ-ai}^GS@ZBX@Z0dGwYUtg2pWJ5owPO{1FQ|_ zwKx@)bXoPh+(Gj^YwUU3Ueb$EQtI8%J?Zj;q*~dP@PYJX;4_n`3!ZZt)BOnzWU&C; zO2_A;+uc*>(n2?7uAGaR2pXXwhlvwj*p|mTqgaqpr4QUXl5zBz=<`EgA~W|$J)p#) z)TphKV@efleDuQ}3cR`LdYN0%=B=BSL>p_xwiBGizVM$Q=JBfE@Hu4?c_-|?Xnc`} zg8IqY^yh)O_laybezHH8ETsDVg5ziSl$Z=)Con-h*>giMMYCU$c{^{}o7->99$p8q z(dl^oC&x!8%PUF0^Jt5DZ9MWib(%c=GV=(Vd>?~X zfj}7aVDxLPK=l7vq=)|}{?Gm2=l{;Z%kf|J|Nhti<9`bNj~Dd+t0=9xAgvzRlslRt8 zIA{^2&Ba!SN5whcsNYu8jJ`b~XJutM6xm$20&)aT-Jf|JmT%XTX@GYg9#6|NSZnPr zA?qDJ-{;xZF~W86<`x#Tf9LqU9!}db;h6RxjL?N?V8z6(<(1saf& z(s?KrWR#aTz^#V5Y(M%6DIptPRCb=9ckz3kE*>al^Cj6G3RF^KZM(tJGNXau;NdrX zZpL}Lo{?q5JU#Docu56PESguCh=_FigI%H!HE^2cXskpuT zW(*j)Z!Zr{zQ*9)z1{ZRJKrVwpZ&h*OlGMOv#4oQ#Etp6h8s~_99Syipgd>cIKI!& zFDYmdeas9DKDR*_P`yvM-QXJhlsqqA)zV;~BwL-!HFsB_7natnq|{bCM$q%4fO=Z> z)I^qG*NYf}wS(jP5Mgr$Y7aGAkq>{NpOfQ5)LoF_pgNElbUDD<)ZE-wkiR>ufZl5K0bRw0 zatNV0XP%fuBc|uvskGZfZ>R3ytnf-quPH@eIIC4SM{b8HMW6Ryots4CCa8hT`+tee z*zgXVA*WpaviH}=Y$H4ALlN_P>zq8u_?eRt6E(;f?6V{6iiXPKuvoLj^q|UNOb zBE&y(E#dS@uB8eAVCn)VM42b6gQDs`C37`T7~R`eo2(jr9=x?;;(iVoa08RzOnRy) z#ELOHL8GFAsl}yUAG!WPr=0Cbq_1Q(-jtAyy<-c`$V3%2ZCn_3DvO_9aulMDr8OzYA|~|PfRl{q6uUo86@~YMa7*U6%Ed2 zB^j!YfP=?QeYp?V>qHRi`gkn;@gub~3ehrSH11YJQjr#kdD0d~_+X2fJnSHBYg7>E zExd~6WHifw)kM#197Yccl_W@Gi6)TMk-Wj-=lj$rNzet`O<#psNl=VXg_*vv*E?GG z=w*ht8Nq=f&zLBuBLg7u`u^QoS$m=K`1tr@)r+vAv}(e$pa+`70EO+8~`kRi15Bc}V1_f2~4|;GdytUl?i7W# zme%}%C>HSP=}CF{$3gd)HVr}VRHeUEzBrAVDO!N?~L>`g?r zSP!@xyVw(x?KeA!Lcc!+PRg8&2}JEM*ZGbh4DR4}w8W248_FZfY82`lNe(({@6L8Z z<87;2YeBc`-7f#%9Q2;XFTTFPI))P0Hi`+??QCQ!*XVvf=vR?0(kP;63dtErX-7rM zW4Bc)exKlEqN_NM$>-UK`WbYf%hJS-skiw5>}~Z#q5@O4SeE#vNFZQh3{l|J0!U<% zND2<|f8dXML}5;-StQMEyR;1n3JOGxwH3y7OF+CRuwP?*?^=VsrFzjf*qJ)V1kD+4+cNvkGi*IGp3Xq9leOPg!Wu zyD@fXDm9iVV^=<Rih4?M+g^%NaJnHTAQm#dZ41ph7HweydU$xS-blm8 zT7k^Bci18e>pE|tXo!a37frK=g}RV!Yl2H~33L#-qrx&nZZyzrgz z($3t&XV`YYY6n>@Nh>)taUfn|vF^b{Nb=OgbaLk21pJ!O(VVu|`{G{*+>W7#l`R5N zGneln=?*VLpftqc8j|WFM+~GYVCG&n?-eO;@aX1r2TU&?2K$$un^|*Te?Da_V{7?g z%p2wxmGtkybC6N~a-7~8XbnOtvdWiH>d!3_KWDrll#=3@-8_H_z^Vh|A0}XG>YgZ{ z&nur|e8Mc{VldsD1PoY87ihvZ&dwLZ=afx7O1n*-4FYPxpk!WsFHQdSL&BLry62?# zQN^(<6q4^4JGM^9(GD~b`i?;Y)|H@v4rZn>nlH(SqHd2PKqWryFG%Uo=z!W-> zDjf!7!i%BR#Nz+`1_7-2+-)LL$0~ukVx>Z}5vF(t} z-wE0&qFr+nlw7&$Prc={BJmb(=o91TR40{&iBmEZD}Z#=g5O5&^;pIg zC~>v~Mw}A92V8`m&=xdF2AacbS29F)VEu@i9UJg8Als{s3dbuQP}^cxQfl)@oBVP( z=z7LE8SI0^PBo5UC6ePlom6>qJ94yJx#)jMbaDiXx11}qN zqcJenC&9qr(6cw3RnBfQ-b9i(%S3SBKx6FA<$GvaEWk*TK`cCFP4XELKP(g}@6((S zJuDQu8;{8vqnp}cVDL}p>(|F5y{(wFwTL;(P{zR3F#ySmDaWOfbq=I^0)f(mQ23IX zwnC^2%}s=7rh%XSC(MP_of_NM|1>S0mm2_M4w0$3%@~v=zfCNSRc3&u<~JK*9zbgl zk;GAta4CJi0##?kUfYKx)50T;hPV1OzJ7htCjZj?U0LMmDg4hLJ;{ZO6j7^XHpyfR zcgn99qKA!P5JBNIP>V^sea$*nwvz#?_g-MP+cma7cz{LL>dAgujw;?>XF^PmB zwBpY08^QR3F%5g^0_ZeAJwf;t^AhYfMJATXXVqoOLG6#aPJd7#`h zasNUl^bZmzLj{H%*6;2R1LG^*gM3|Gc0!Pp3``~?q)h$FBZfB5&G|?O=}4ul>D`Ei zr)W(uTth|b0g84@+4OOULX48c>BMY8EE)+7F<4xwu^AtZ~BQtlV?QIM#F( zN1O%({EJxTKk<~ObrG-0=={6my@zsksZz7b5Vwwm#S;>W0*Ge2@s-_}mVp~)izfXo z-m6E50@I-8txnxb+1|9}Mjs(>YC>)lGuNP)A`cJ_0m2f{8I0%vI6%k0=P}e=&75Fr zcKoXpTp#S>68K^)&aRZ5Cq1y%qgns0y; zF)X&32)Bux9Ds;Up6tOH0was7pZDiKX+^f8Ld5|nCrN`_!v1jAzk`Db0i7^dPuw{$ zuCZo2nHZWmL8^ltw*n~2ZBCK22zg^e!p`PVp>Ur%W64bY`{A9e5~91mX?dw%sEeu1=VSc z=p;XbBm>Vn5xX62D~oJwHHWE7;*xMMrF}P8PaZVQJsds5`Q6~%{3xy*IXHe>Vd9Cw zC!n;Wmr@D+vEaZRPa1x23Fn6yDfiUzNE=xwdr^-=Ki6|RC#qSo=|B4YjroH3_%t^(hn)M*Hcg>aKa{_b#PAULH6*(KbNy!73Miip0_U8S(rzw$A(@!aH2T zTVrIp#NCyKZK8nP)pz*vaZ!bU2KPsk3#Dc;!sf5Z?xLaNyl^-t3!kSK@8gueU%nvl zSE_2XBz*2pDk}PBFx$!ws;StG!@>yKmt_ndjaLi0#t5OyAqn{AX#YdMPS2M@Pp>XsQ{sYXmQW7$^2L^k1xZIrKJ&11L zwn`yht%{QQ6&T)gc~epzIw;5Gfris}!Ia+T-8fKqPY?a);MVAI(CheP-123bPFhS{ zyyrozcR8v+ru6I|p@h=rZ#7lJZ}p{DQ>daEx%V6Swp~+PK~to1YTBb_u&IkFw!1FZ zB;R{77+1Y&(oEP8tU%5u8F5--I<7mjYfGOaKgj*nz-+FruJ1g&bj58D*2&bIw1sdP zb0hKC0BoA;m&8@Uvird~#V?5KiIK%lMTezXlwuBf|J z6VWT{jI1slMqk_H)?4{k;RF>dcvi5{cXhYUR+>c_vv+VutUj;Ffl{=wN@c965yR7$ zmkgSHFjZTrJKEQm)~}y`->mW<_c**D?$V$#s*X>Bd{fWkl^9t+ZTWtPAuML3-q8qQ zkVeH!$cwC3=_&uHM<>(0eM-kk%+*SEZEX5BD!R!p9wWcowk{XE`p1niojm2g{_LpuMWC|gzZy4x!`VWBj&m#ywB+k zeJchBf``s#RA);af&g^k7^~O7z9zc`Bgv|ZQ11*yBG{UwZQ&~dr2vOBzd23KsPE(B zkiHRf#y%Ia1E5S`*W$m^$FP?nSx>Eb(F=NJe|UMT)YCzpeKnW@u*1%n`t#GB%y@mtoQZx)QAg2kiqNp{uZm4 z@hv$${i*Wf+^zp0FgI`$LtGPsY;VOW!sN8-^%ei0kHk8Cy~kW?s{8#Ip<$m_rm%c) z3MnkCVdBeT@pWKGZ=1?+8A6iFF2X@KfZJ@rW^y8{LuHh;IETp)W(BFq34P`MywD&l z%t_K>=xRM&`Hr0KiZ13fpowx~aSk_CLq}y(X5>$~Dj_i^nP0%ppy>MbvYpY3=*{GG zEK2Ce4;IDr44$*`rMf-4oHvhqPSE?qmC@(nkY8WcX8->0!RUV*{=@U%=l{;j%lTjL zKiU2l|M{Qd|K9t5{oj9mjis6M2=D6fGMH$*DE9NM8gsrvnGl2Ocv2_-9QI_^jjAEh zrA#JgmT}FOqIUt+C1P_WMY4k7W4qx@Py5-m@^yZkE&_w&U=#^xypHq z5cKu>_B?;G{<8j1X2b{}f8B)taC0?19qDrt(&@TQj&btdAb;(Azjfe!+hRopKwIZ` z*VhCO_-X?2yIc?bT^^@;+TO3Kl;2hy$N(CE<$pUIpFPkw&jlS@{ah>7OEf{h=8)Pn@s0k^I>d zYw$Z*FLru6Z0x%F1I`U?@$hwx^<|M}aGu!i`20n@gNU71uO9QWf{RsSyt4#|(&v7+Y-wo(w-s)@n!zRkazIVo^LbROL zVPyx@QNQ=ksug}bxxrUGzN;tEryINK07cF2%0RDO2Y9s8Hv6Kjk{NO9nh6!lPC&QH zx^5=nraOEFGnMApzn%w3@h9_&jtbh7I*+pR>ejPCyYD~970x(1YV0HeBGgp6z^k5986b8^w6blMhRu90(iKg$GE^_YqPYl3s@DP z2w)qr-JjuB!1|62L=*BR`AK4hWxot-QaWz<#be>C${ne(nnECA&Ry*j+>CqaK=74s zXn*GpH_T?3nal;hzvB(j+WhXH;0L1ELBEjLj8Mt?t6Pfgd16GOw(h;f9wd>Aoog~B zbc-2@Meye@nwAfpwEIw|sus$hIXUYL4x){^_;zr^HPT#e6g&9(BfDGZY~LOO{ylVI zYdV;G$5psMDe{9`6OJRR$e;a0dxAPQh$b-XALgrBwc)=z+}|Vu>)5(?A==?|u`asY zXvZsPS!@%_9a+Fg8HuU3-42@-M7U`mKFjdwWLrPF8SmnHTwOe^SfWY1$pyqRG)xzm z#mN+q{dTmoA^7LA-zo6=`-i}y7K`)fIPaR<v*|-bi907xn7G0v(<;1pP zcrz>GP#cPsYx`UVasH%>-j1SLL(maxaJ0?2AJcR^Z(dxXpwa!-$dx(v)*NMhvkHmaBc@_=)1=nt6^7 z&72;1spU5=Y8od?yc3)}YKT*^-KB(e$^)o4+CKs8o>hV|B(VNj#n=zI;p1Xtdg)|s z!jBreI{yJ^l0Mi+*B0AGSaAHUS{vz}5G?j1%%N88-4o!1cmSu}us{i9yuu ztG9magIwGC;bkrkdjOdg)~zvO1#FsAQv{1LOu5Tv+;qiApR~Ly(7$x-p^ryRc<0$9 zDo)B}`fER@^K>4t zgOEyEuzGdN>%%TB-3z zPg!c-94IoOANwIGZbHPoF3?`1q7*#fa^S|M>ry=%>pw+t;#Hz}ZtQPuD2-}AZ>gaP z7e=eafA_PM#V*K9SyaHs*-3#YZYLNJ3Ic#PWfszLmki=xT)xu>3Nei_lygtE21DPa6Tx7*ko+lKC0C=y z!&{4JLIN1QsD2CzJ83U~lT_kLTiA?b1-A9XaK3E&hOr?<5%2Wh@#jAashXjy?tT8w z37#hS0t+!$#nkg+J7N?#N%m4Up80&;LupeitRIrc)f!&m6e$trLNVxF!F@X;wejM8 z9aah21o-$0w>_x*=#np`Rb@uN?c;_-4`TC);bu^%`D#FF z?Q$j+UeV7l*=#5#~+tFV1Ly1bCET=Ub5i%wY+DY!oj8;Bgu! zYGDuONSs0FGdH9VM04e>P-MgEr7L&M3b2$1rp!EuT68^~)>?GA`bRMznbm{Q5x|iE z-P21d1POYi7(0lKIt`6!t2(1!cCo8#mLHDc9*5XLh$KSw%hg8I+ z>x4eIDN+65Z*BQ_qDfY7yavwBBouZQh!K3`lzjkJ4u71@b}64)8$-QN598-eSR7ag zJ$YUb_oL7dF^nFSNB9hX)!M-$r*J&kN#FUb#xC7D7QJeH9iMiNZDV7y{m9KnRl)u(lfERLr)9BSd)) zP|8{~b{TNBWY~!iJ-U3HUf;%MT^xmen(}L81VG@`#1s=E66Wp3nUpg*GWB!1Mbp$1 zu#(@g{2nIR`9Bfn{DRmb^|l0avs1=mP%>6Y&e2X%i=5T}X&IEBblX0}QpHJL!Z=|n z5&yzn#-S-s4$J@@4ZqIAbo)7lVIV>zx4Jw^XsR=FN>v@i_&O3!cW)l8LDMC~_ugeFqjV zIY<`^6f6zXb*-K+om!(uff24EF2o%ntCZ^>;q6O?3zfi*pTrylbzOl|(+xshQpNOo z=^?i9I}159k>>0+Xv-l37bJVIqOoV-Zs4DlaWeLF>A7FvAZi4r5;keAV_6|_4;0O~ zM3=Z+o~T4L!hvBiN+wh=oMy%{NimaVXlMz)u10JHH@hBZ=qsBspa~VqLG0O>A)5FA z=S|l`gu%`i6;l2#!=#T&W(P&wR(U5lmjP(ZVb_#(o#-Bb zj)LEW9ltdllPmopTDhRwCb;H_MEKpif|AxGZhgtnYaNOsOOj1crzwTAHNzcRhJ)dZ zwenRu)Wh8>?su`S{A~#Ar2|5@usfIN^x02NUk_5%9BDApf`P;^0%qLScTFh|q9yCC zKSSc&Vw%obu#uqMM-l%(Oa_n&rifyXRmnWrbsSH~-sx?ZP!FiP2@F`gn|m+NElw!; zhZ#qxUl)u|!FPFtR3{KsGQM3uSEqRV_%0{K6;`3JZ67>}ov7)5fs-$S$U%LvUs2W2 z1@qGZF_&4s{?B{>L|GUiD4KDYz8n3|V+A^+gp?vcN@w6s`%)J_Pbgm`0v}J4c!#N~|}0s!&_ITPU|-a$$vRR#`VLTezxBFdO9$W+Jff=zrM&2t}!(I(EG(16$7 z%_Jkij^Tcd)S6@p0JrC-st2LEyLeM9_wt1NGR_hT>W+IH+w&~%6KA>$8O^W8f&=S$ z0WrJ(C}kFIA`Fj}J79hPU8{RKH3zF0INb27gPhrNKu0dF{xK^{g$DGxyH;*vkt-(dv8|g z0s*SMX*X#ArS)~J6QIorj^{uWgKD97_*R+CMZBF)p#QQ!{eSNNc>nwO-&`DA|CRs! zzxr?gWBA`I|5yLb4>8tY&gbKz>Y~%bXrHCNW9dxS-YmA(tlJ(Kj7S}XBVj#jnO73T zsH#``_JLcbRhdGcDuJV^2^;z&1sn{Dl)#cjln2n!+Vc#KE{2@xu8*}p?4PX!Jlwxf z$6w>5Xbec&C6gQ-uKJy~T6JDLymfByA56rWukd_Ji;3Mhy7mKnLx)Cx6kadw4$}pT zJmmBXudlh*0xMD7OSmb?hCh)`(JcN7ZgR-8OxMa=_CD&rDjdRaU43z)OCSr_;Mm;1 z?Z@w|yILJYoAtU#^)-EnSLYGo5s5ls6~fm>jop&qjxQgiyA;-o;S41Lxn(6+h{4u=HbrS&F&0RIzG}-2xkhOv6e-@lP>2lT07yeZs{FOaa z5KiDl2||WUMO~U`INFPmU#PFzVf2e1tu|Lb4R2;Nvffmf zEd_l2dMFc4_(Ei^L3s~1j?8ASDtLlCJPASU&Ie;%2xvqN`=JBZmu3hugM@avc}cjn zyW|0uuS;`khnu`?IzMeje>Uc&iLSsV%5-<=%d8gnB%GQtku3u)mFE4J%=h1A z(b0mh%agPj;gXi%=S>*Y$NW`hYPo`^z`XJkA@uxN!`T_orG}O9X?1ZYlJ~onox_~U zs4!<6-8v_r>g3F$DC2zxKkRun!*}*S!wr{WM0$C?dSy>iYDOS?z^Oot_WDNCduU}DYAy9qXy zttmrwM{;P$z?DUVFB?)8L&bpSVDB!^Z`2Xb(gHs`0`j#lLPZEZ8;=s;G-IDN3Y@?S z;JOO1BT?MMY4$huLU+`9Z@t&dtX=WD(OY@y)9B~OSr@NC_g?ysfw4<{!5`!slkMf4=3my9^K z6LiW|)8vlO#Mtw9roI6AGES*C?H9-gv0f*5eFNqrqPd41Bg|@uZ&M{w{2RDQxera= z`dM(ewXEcjV|f>c1M{c5LCL3{oM;Hy9aY(}HsZ=^(4~>LBsgVBnm^~OuFqYoXtDA6R3_s0ZQHx9faD0e$pbcw3od(rj*czs803T(I^6 zSk-UwAxj)%(u8$L!zScJtYZ>qF%tK_CM%>rrTp9~rGi@kbL7GGyyC_!Q`g4`MtmWg z_v1Q9quzJ@lP3RIs5`Pn0GH$X?MyfqsC=uA8Zq2u149dU%$Gw4IU8+0wvUHO+7im{ z?gW2=T!+!?KmQ|-G;`cAd=&1xG^io`v;PEAKv7zN_XqRP@o3tN*5+d)*Jd6uK`+2UpzO?uWET&mm5A$9*S@!Sh|?sBS=ue zI1?bH)N$6-Gx%gFS=8ia{l z1Ur3)%y_xz51?@#S9#VR+@)X@SBxiD#6KHx`aChNm2fn(FdZmFM!n}Zo@RM1mx-8^ znrJeME-BaiIP3oB@Fz`}%K}2T^;uR~d&kNTs$i_hi_H8z2P^`43g>w^=H}zeEN&!z zQfXs)7%Hr=Ku8cYt;&F1M=QpfETUB}^rWs*rH^756J4dYwbwi^#r*I9CI7n53ZO3C z;w6}Q##TmG@2u_%mRsFU@m$(w>}_~WqY_}WfvJsY-q};hAHr9b>Dvs)j{F(1TB3iBD2wO!S@p z^hq0Iw#b-tG*6vbGCaI#G_=VB=Zp?rYz9ZRlr1F{7pf+Q_Rvj07_@tx>v@d|Aqdv+ z>c);Ue(FbT0Rew=_F0dL{qDlIt%$~5>Am@ZZI*=Kl&kV-ce(=a!YHls(xag&yf5hk zKVcy0T(JlHGRZ~2Hj8IpI}P(pIiCfHmIJRix|DWX^8iVXhmt|pCBgu5v(&PCbz$W>KzpL*KxGB345sCjH1_oZG zY|h2m6R*(|yU-VR&la|96n0JK_^VT{_*?P1030`2klhI_!P~9lIBY3x4?)36bnG>9 zO15|iff_89V+l54u6{TXV&2tqj5X;}!e$|PNO?25)7zzJqNq1P*?BkP=jQdYT9%SI zMr&e5G67AgU;WBj+$n!Gb>_Gi>tB>AkO9&8hL{OMvJP1~a4>wH zuhhqu@Tm2u>OZDAlf?^EWqfD3YJUe|v%cZPkM}vF+)7^CPEBsWT1>)$MFTif6hNLn zgkO{qNSCSpxmD--JX&@CLX`QiJj@sbw#K`j^Od!J-qq5cPPV59_p{z7iP>^=zAa-i zH+h6owg(+U+UmkxK=-WGov-sAPt^0@BMU7w2mBogLq@2nqg207i;4^u3-m|Ddq{LB zG$0rGPL=UY+4I!4w?J>h1J;}to*YNe`O<9#~FqaUHXbui3 zg)+^FRQz7{<^!f>r-2YM61{!vi-81Nn>bkyFtu<%jggmUGbvE3zUm|`{1O&g8>Lqs zwL2z#D8l-s5Y+yab{g@xW>(z#z$iMNriZpBrIahT6;h72=&yvppNH-kv^^CvV_$#Uu4!A3(|*9VmU0U7G0 z*7#=Jj#^rWJOAkNcaodSNEqSswM6zZk_`vKi!tIo+ggPFVTBfj4Oz>lPJ-4|M859@ zi74=Obo)BSBXD$2D?Pk90k}cdteO9;n(TMAkqEAjF3X?`7cxf7?WoUvysa?2Tbdu05&$vu2q~9FrwIM^w+3>O?7MWv~)5+9a zXK3@XwQJPD6JpQ;)bWFm5K03oyaswy1)>6MP0}a=978Gr5AO{Yb z)&!6lTfzMuYQ_|!j-&#nR1&3Zk$KY&Md6CHAZ#KaR&e3~qR={@JLslez>z=`F;!J2 zO=GR=$NoY=6{m*WQUN^V!pZx4%cc%HIB)m2asN`O6t`R|V3avJ4hZUD?QM=Azl6)h zaN!XRO|VTLm#LnE=RgReKe26`yAQ)w`mf#k{9U4jvO_EhzB7S5Od2l z46bBIbRbTSn6Wj<=7tMpwCzVg#?$)~AAx2uz0!~o; zKD_;-u?rNfqdX&eWQW@^qh9GS70R?z89FD0MsbIO>(` zYUip4W>daBc&#bBmGeD4BQ2l7=}oB`=t)C(Vv7S`QM8C18c^u+(^dJfJ(#WPht_cc zd#+ERD`#Y1;^QevVroHsm6&rQ!$_Z_w1dN%_op^Qp-3!om7d6$aB>S2@>r{#00B$v zby=K0Ta?B2)@4Xh`$Pt-_@Go*eIeVXv*HHk~wR;H!0Z6jaSP$?P<8Z1PArqpEePAIAbtCdhoW z0$B)6pMYA4DdS|N!X)u)KUTTJ4IIi1brG(u58>|LCJxA%XNFf{Lg$Jml+O338k7nI z0))0fx{Q z*>F7S`=AKYKDTbs*E_7{>oC_GcF%=(79vC=-@oJaBWwTaBki`gYW^K9)!3JF4-&KpW#U^)a~rdInhb9s zsB0_S>|x#SqIftRKrE>Vm?hQhw1jzVWxFLsyK#d{ZiE3eUqmu?O+Eyxu1;1G^Z_^h ztpJNIo%;aiL_iJdsSu3X%lkvu$JMMb3Zj*$%=dR_=>(jsc}pGUYP7#wtG+!#^M4YJ zVYEGU4x^00fA;IX$wEF`UJ3uJ@E2d2+-mT?Oi^Zik zStlMdhAM8XaRe;AzE8yzjwO6^TII_IywFuY_Gi$R~FW&9O!8*lZ%Q5-~E}3}#tn1hnTdh(8HTA(+ z%%Lc!SqVbd!^P8@N@lo^jpe<{=bbO-2!suayZpqXaM5<2`uZ`HC>MY5xc0qTaVNu` zZ(dMPnuG6y&rO+OC(HV|uOJ>O5RMzNTiky$h{nOXah^}U>P{KpA1ciHgd{+H)p9a{@w zR3`v%ug8cS3b$Qxi_X|Asc-FO=2}yYe59T^C~cE4tI>D*2nIjsKO9VZMb`sA-fj*V zt(XC8dxOMItHuO_G`p{#8w6MT7$h8;#i9d12YfQ=S%Jy+^>u!_6tOe!m7XS>4 zp?FdyP~ML(g&0U-Vim?bHO6&)3SRGkK0%oYzmFK!PMv3m=Lp33>rWK%63G4Ga=&5O zVS~h=OU~0yYk{$eH*M+9BmwKvZiRlHKdYa79_}InPXMyiSk0HkT<@W@YGNdLNA^9F zNeZ-2zfQ={*E?3A^cTFSE!)vdGYzp>iVY(0-T%Zsy4{Tejh1(=oRK2YX}0NEnx?jO z##2S@s#%!FM2(!djI{GkQi@80^}`k^1XySlno z{nqMrQhj&x+IwAWt+K@B- z2L3MSVq$I{dMv{BbNJ5z2Q>{%gT)l~@ZK%|Y(`-AM&H-NOHj~%#07q#wQu3gED8}6 zAF%$Wp{b}Y_5~FnZPrlF*j}dh*oobp? zF>Gy3XC4Umuj><5hDOkBv<9Nf^AaK1jf85TD|z`J5!MGSvz@7bxdY32PyvWJWKRrE zDlN#^>P36zm8=*3F1lW{y#ILOR7!@M*za-83h_Fo=7uU=f3Mtc4$Win;0CRQwa61y z19pjYlOMnWr(h}?MBgUo-X~u$t?Cp#NoPIB|f`~}@*XR|~XH2dGImFK@f z{+s9jn*YPb$)bI z8$-h-t~!X)!c>yV?j*=cs8kvM<@!qGl9|$k146ct+cU0n$Sjsb<&KgSjX>{1JFQw; z;?DK@y=`2bUlY$HfBeKhCGZrGUqdN#qV=MBjMQHT|I7)* z7N3a}pqPzarBeYteziaPJyqE~eLbJ{`J9*QeOY`ZHGQ|~$ z=Np-zn-DN!M{&-k$+YM%?*n&2;EUQ&Ne+31AAbj5aA^~kx(9Uzeiuh11oh-&q_mwZ z#|_<7cOqvBT~U4bOV5&nmY05b+R7Xk5MnD0mjv{FMs(QF%e)qi-Id7*U;vK~OmhD7Kbs$_t`iv;wTQfJ%uj>o+%ACCye!tl%cYmW^ukT#X>Cjy8_BVk~4 zXIma(d&i!&;})U;GaO>&RWQ&%@cn-OHcswokqG3i2RoMbehNo;L__39$zX_u_TE)9 zh1lFs(4goGzFhSNQX2IA`F=1yW1a!Xu5mE^OSRDmC<xr{~B3rwx~$~94uZQ-}kz3 zyYF;0j-AyhujyG>l06}^#z+T<_pUqFmRj(t)`L%!=+=8!ZjE`!Qz znK6+vF9&VVQ0?rR9y)_0HOf$>jJrMSFBsQodw(J=VCz8Clxresk0mX!>xJG8oG=AK z8STF*b$mSXK1~WDC@fC=1MIsJ7D-;>4#l+e0Up(N9esII<+|j3^Q!IlBh+_=Y|UI= zh~ZZp&$BrtRL$J{e)GrGj*7jT1_ShC)AhEUQSf73L&I`Mcjz ztz)TYzh;R|7!qPgu>_spSf??Sr~W$PpYzK+oU%m%fG~t`ZB2Nxt~ors==2u%P4Ry1 zfnjVlI615T%Cnn8&ofE;gHMu@Fx|%9w!K-le=Gb~?hr!)=1=YsZJDCj{>_s%m zbx2paBIA<>4;vr2g+rQ(UurYi_PDIH5ldwi3U>YKoujbv;FokE=%+I`7H3i^k?FXM zlxdO^>$2Y?l_9Jj*}cP6%Tb{rC*_nctb*TxjE;Nq_6g8hL$Mw8A8@KI2oi&}+55vY z(m;Jk+uot%IC>}w7e7{5T%6GiJ-DEiNpHX|=v>lfw$&(d`}au>oR`J7#wXzZuhy^d zXH$=Z9>9nUxoTa#V7R@BUW_bZV6bK3x@q{60|eF2R-->G>?Z4t4y%G&r5?{KE*{d) z*h$1>-H*^wf0siw_3L^b{Z3B9Q0M)Jc&M5Qq8~qZHmq_ufmj@MtEmm-Wbc+_*CCh4n3d_kXT^gHP{8L zoLXB^cvQ&jg-uOh7`vDQNB25FiP@|<>@rMu@>bWPX8?G5BNi<5ScM0)PgtkBO_aMD z%V<`u247+iCVlxe{j||n)POTP0?p&z``q%s5zEY8fhMS{-9GFN>&;QJVq;FOMDaeq zpQSYAbJo6(Xlm$R@#znpk5@w_MLlHx-EoyRCWSQ9qu5H3gsnY$-;p30u~k~2$=L!)W4J-N!}uC4F?r~QmVOQq9Xz#H-C}Frd@WQg zvLcd)fT`a^-apvl@bSa$P0g!~@k+OyK4q$@h3IDxB1HG42*(?olYFcdl(Rp-dCYny zHB6Bhz?7s#y8|kU)iE~c7g!6Uz(j_JjJ&y>DMJT;A&sti5D_~CCTL`~;}|l zs1*@{ZAL%DddE#bBESd3goXQU4Yu!QucEl_`lZc^_yyq-@BOw~z*wLl)Bj=H>3#J# z^a`^!8WmS$jfycpHLCLk9U`T-vjzX$lyPu?>gXO9bBOR9t5ecc8nswr#U9I+XV&!H z*zN%FP@yUNjW{f0+Nkz)dWc?|muE;lIdnh>xwL)c@UeT&O}sK)Y-xrqa{jt6Q_&;h z5B__Ft(NpYHx|RM-{)OCc(dW)EzX#%&(o^F)&}3xLD3$zL)+ZMM+Pjr8CliX#D3S4 zPF^rVCK@t}j7QGX=larctv&15342TTk>KG0cmq)3$~$#Q$|XYE&^DYk4&s-tpY%?V z>VR0ME#Wy%D&z8&B^U(4L_s8~mg6409U{EMA$;5DY)4XRmLTd8nDPzis!E9rw~`Q+ zn(O}7=XLxM=)2b!_*-bXO$dlq<*^kp9yG#0L9;reK}`l*pka-rNXxZsEq_-s=?!F# zS(YaP7#~ayFguy3(6Cs0GmGD+EtAh^w(YLB$^sa{E$8|~XQLdi@FmQ)@@G4L`H)d2_*J2(9T7OLT$8M`VBv(#gR{2m5JwDcXaaK(E-vSj*e zb>uJ~a2XK7vfeQ<;9*}JeT++&+{gkDde<))o{irJNAQ4iZ|0CtdT>|0ZX8E7iXyOa zcz5rJe|$2Pg$eKs;}b^hn(bS`#VWj%^wDiE*`Ux%lALZ=8Y6fIKaK8^JZtGD4~|)) zOL4e8VmvXB6|b9(1_1opK%cYT)LJLb1_?i939}Ita{ZK916+kh){6kFuub;}10(U@ zWGo{dc8*Mts@xOPokVo_Wq0$onrJ z1B7f`z0I%d??T(_(DMe;!n}e*i;CbU6nf9;<1?h?kUKYcsbzJ1fhhlXsJhc%0ABs| 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 _d8XWQqbKi7v4X$Tp0q~G-7J29*RG_Y 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 z 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

      9xyz57&L#`_A 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%0AGx_S?;Ce~{tQ37kEJrc17h#-}4y#awbmR6nKm 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 PKUy==gvV`yxG)L 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

      Y5d7dqEX(rPnmEuZ@uBh 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 uz- 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%0Av`Sv4>JK@&8m6^FecgX@ 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

    2. - -

      For Users

      -
      - -

      For Developers

      - - -

      Tutorials and Use Cases

      - - - -

      books and articles

      - - - -

      plugin documentation

      -<% docs.each do |type, paths| -%> -
      -

      <%= type %>

      -
        -<% paths.each do |path| -%> -<% name = File.basename(path).gsub(".html", "") -%> -
      • - "><%= name %> -
      • -<% end -%> -
      -
      -<% end -%> -