From 29dd13b34512d994e35a181dae85f9ff5679dfbe Mon Sep 17 00:00:00 2001 From: Alex Skrenchuk Date: Mon, 31 Jul 2023 22:48:40 -0700 Subject: [PATCH 1/5] use patched version of agraph v7.3.1 --- .github/workflows/ruby-unit-tests.yml | 1 + Gemfile.lock | 14 +++++++------- docker-compose.yml | 3 ++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ruby-unit-tests.yml b/.github/workflows/ruby-unit-tests.yml index 0d74271e..13dd5c3f 100644 --- a/.github/workflows/ruby-unit-tests.yml +++ b/.github/workflows/ruby-unit-tests.yml @@ -7,6 +7,7 @@ on: jobs: test: strategy: + fail-fast: false matrix: backend: ['api', 'api-agraph'] # api runs tests with 4store backend and api-agraph runs with AllegroGraph backend runs-on: ubuntu-latest diff --git a/Gemfile.lock b/Gemfile.lock index c2745d19..5e749fa6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: https://github.com/ncbo/goo.git - revision: fb203b0396d03c1df61abfcdbc4070787010f052 + revision: 8e80a4f842331e874055aec6a507ca5e3be4e3a4 branch: develop specs: goo (0.0.2) @@ -26,7 +26,7 @@ GIT GIT remote: https://github.com/ncbo/ncbo_cron.git - revision: 8c8ddb6c7f9f1d2584a5fb3220f1d2aa37b66cb2 + revision: 1f81bdba54351e990047cbd6d1294c96ff0a8c6c branch: develop specs: ncbo_cron (0.0.1) @@ -53,7 +53,7 @@ GIT GIT remote: https://github.com/ncbo/ontologies_linked_data.git - revision: 13bb138aa40ca72bfafc91a1a7416c162ba8d325 + revision: df675c44c81332a0f894b86338561b51c7f721b7 branch: develop specs: ontologies_linked_data (0.0.1) @@ -223,7 +223,7 @@ GEM redis multi_json (1.15.0) net-http-persistent (2.9.4) - net-imap (0.3.6) + net-imap (0.3.7) date net-protocol net-pop (0.1.2) @@ -234,10 +234,10 @@ GEM net-ssh (>= 2.6.5, < 8.0.0) net-smtp (0.3.3) net-protocol - net-ssh (7.1.0) + net-ssh (7.2.0) netrc (0.11.0) newrelic_rpm (9.3.1) - oj (3.15.0) + oj (3.15.1) omni_logger (0.1.4) logger os (1.1.4) @@ -283,7 +283,7 @@ GEM http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - rexml (3.2.5) + rexml (3.2.6) rsolr (2.5.0) builder (>= 2.1.2) faraday (>= 0.9, < 3, != 2.0.0) diff --git a/docker-compose.yml b/docker-compose.yml index 0997779b..76c65de5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -114,7 +114,8 @@ services: retries: 5 agraph-ut: - image: franzinc/agraph:v7.3.1 + #image: franzinc/agraph:v7.3.1 + image: ontoportal/agraph:v7.3.1-patch1 platform: linux/amd64 environment: - AGRAPH_SUPER_USER=test From 060b39328ef50a3d4f5f3e6b9504ee5984e0e7ee Mon Sep 17 00:00:00 2001 From: Alex Skrenchuk Date: Mon, 31 Jul 2023 23:12:57 -0700 Subject: [PATCH 2/5] unpin faraday gem --- Gemfile | 1 - Gemfile.lock | 1 - 2 files changed, 2 deletions(-) diff --git a/Gemfile b/Gemfile index 615847d4..6e0d613e 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,6 @@ source 'https://rubygems.org' gem 'activesupport', '~> 3.1' # see https://github.com/ncbo/ontologies_api/issues/69 gem 'bigdecimal', '1.4.2' -gem 'faraday', '~> 2.0' gem 'json-schema', '~> 2.0' gem 'multi_json', '~> 1.0' gem 'oj', '~> 3.0' diff --git a/Gemfile.lock b/Gemfile.lock index 5e749fa6..da6886d9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -357,7 +357,6 @@ DEPENDENCIES capistrano-rbenv cube-ruby ed25519 (>= 1.2, < 2.0) - faraday (~> 2.0) ffi goo! haml (~> 5.2.2) From 7c6c25bd01fc1e6ba23ba654007199af9a2d6b4f Mon Sep 17 00:00:00 2001 From: Alex Skrenchuk Date: Mon, 7 Aug 2023 22:00:35 -0700 Subject: [PATCH 3/5] Gemfile.lock update --- Gemfile | 2 +- Gemfile.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Gemfile b/Gemfile index 6e0d613e..7b76c8b3 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' -gem 'activesupport', '~> 3.1' +gem 'activesupport', '~> 3.0' # see https://github.com/ncbo/ontologies_api/issues/69 gem 'bigdecimal', '1.4.2' gem 'json-schema', '~> 2.0' diff --git a/Gemfile.lock b/Gemfile.lock index da6886d9..7d544bfd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: https://github.com/ncbo/goo.git - revision: 8e80a4f842331e874055aec6a507ca5e3be4e3a4 + revision: 20801d66769854e254ec85ef5c14b5d87833e210 branch: develop specs: goo (0.0.2) @@ -26,7 +26,7 @@ GIT GIT remote: https://github.com/ncbo/ncbo_cron.git - revision: 1f81bdba54351e990047cbd6d1294c96ff0a8c6c + revision: 9a57e5373be9b147cd36e370f5356e6efb10e077 branch: develop specs: ncbo_cron (0.0.1) @@ -53,7 +53,7 @@ GIT GIT remote: https://github.com/ncbo/ontologies_linked_data.git - revision: df675c44c81332a0f894b86338561b51c7f721b7 + revision: 98bb4f71a0714a31c13de99646145bb6af5d898c branch: develop specs: ontologies_linked_data (0.0.1) @@ -103,7 +103,7 @@ GEM activesupport (3.2.22.5) i18n (~> 0.6, >= 0.6.4) multi_json (~> 1.0) - addressable (2.8.4) + addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) airbrussh (1.4.1) sshkit (>= 1.6.1, != 1.7.0) @@ -170,8 +170,8 @@ GEM google-protobuf (~> 3.14) googleapis-common-protos-types (~> 1.2) grpc (~> 1.27) - googleapis-common-protos-types (1.7.0) - google-protobuf (~> 3.14) + googleapis-common-protos-types (1.8.0) + google-protobuf (~> 3.18) googleauth (1.7.0) faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) @@ -213,9 +213,9 @@ GEM net-smtp memoist (0.16.2) method_source (1.0.0) - mime-types (3.4.1) + mime-types (3.5.0) mime-types-data (~> 3.2015) - mime-types-data (3.2023.0218.1) + mime-types-data (3.2023.0808) mini_mime (1.1.2) minitest (4.7.5) minitest-stub_any_instance (1.0.3) @@ -257,7 +257,7 @@ GEM rack (>= 0.4) rack-cors (1.0.6) rack (>= 1.6.0) - rack-mini-profiler (3.1.0) + rack-mini-profiler (3.1.1) rack (>= 1.2.0) rack-protection (1.5.5) rack @@ -348,7 +348,7 @@ PLATFORMS x86_64-linux DEPENDENCIES - activesupport (~> 3.1) + activesupport (~> 3.0) bcrypt_pbkdf (>= 1.0, < 2.0) bigdecimal (= 1.4.2) capistrano (~> 3) From d88b121bd02e18a70f91dd10b3d50450b2d0145d Mon Sep 17 00:00:00 2001 From: mdorf Date: Tue, 8 Aug 2023 13:07:43 -0700 Subject: [PATCH 4/5] fixed an issue with the GA4 Analytics migration --- controllers/ontology_analytics_controller.rb | 8 ++++++-- helpers/application_helper.rb | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/controllers/ontology_analytics_controller.rb b/controllers/ontology_analytics_controller.rb index 8ecd77d5..829708c1 100644 --- a/controllers/ontology_analytics_controller.rb +++ b/controllers/ontology_analytics_controller.rb @@ -28,7 +28,11 @@ class OntologyAnalyticsController < ApplicationController expires 86400, :public ont = Ontology.find(params["acronym"]).first error 404, "No ontology exists with the acronym: #{params["acronym"]}" if ont.nil? - analytics = ont.analytics + year = year_param(params) + error 400, "The year you supplied is invalid. Valid years start with 2 and contain 4 digits." if params["year"] && !year + month = month_param(params) + error 400, "The month you supplied is invalid. Valid months are 1-12." if params["month"] && !month + analytics = ont.analytics(year, month) if params["format"].to_s.downcase.eql?("csv") tf = Tempfile.new("analytics-#{params['acronym']}") @@ -39,7 +43,7 @@ class OntologyAnalyticsController < ApplicationController years.each do |year| months = analytics[params["acronym"]][year].keys.sort months.each do |month| - next if now.year == year && now.month <= month || (year == 2013 && month < 10) # we don't have good data going back past Oct 2013 + next if year && month && (now.year == year.to_i && now.month <= month.to_i || year.to_i == 2013 && month.to_i < 10) # we don't have good data going back past Oct 2013 visits = analytics[params["acronym"]][year][month] month = DateTime.parse("#{year}/#{month}").strftime("%b %Y") csv << [month, visits] diff --git a/helpers/application_helper.rb b/helpers/application_helper.rb index 18163099..2e811c32 100644 --- a/helpers/application_helper.rb +++ b/helpers/application_helper.rb @@ -261,9 +261,10 @@ def month_param(params=nil) if params["month"] month = params["month"].strip if %r{(?^(0[1-9]|[1-9]|1[0-2])$)}x === month - month.to_i + return month end end + nil end # validates year for starting with 1 or 2 and containing 4 digits @@ -272,9 +273,10 @@ def year_param(params=nil) if params["year"] year = params["year"].strip if %r{(?^([1-2]\d{3})$)}x === year - year.to_i + return year end end + nil end ## From dde48c2887750e6383bc6f1f22808be8296d7be3 Mon Sep 17 00:00:00 2001 From: mdorf Date: Tue, 8 Aug 2023 13:48:06 -0700 Subject: [PATCH 5/5] fixed an issue with the GA4 Analytics migration --- Gemfile.lock | 20 +- config/environments/test.rb | 2 +- helpers/application_helper.rb | 4 +- .../test_ontology_analytics_controller.rb | 240 +++++++++--------- 4 files changed, 133 insertions(+), 133 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7d544bfd..822d5816 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: https://github.com/ncbo/goo.git - revision: 20801d66769854e254ec85ef5c14b5d87833e210 + revision: 6c9dfd4747297e12d9bbc1360fd148ad316ef209 branch: develop specs: goo (0.0.2) @@ -15,7 +15,7 @@ GIT GIT remote: https://github.com/ncbo/ncbo_annotator.git - revision: 3ae6bfb56dc59a670b5bc1a513ff4929f8cf3756 + revision: 9fd2649b66d3bd6ef7666729d9f91087aa406266 branch: develop specs: ncbo_annotator (0.0.1) @@ -42,7 +42,7 @@ GIT GIT remote: https://github.com/ncbo/ncbo_ontology_recommender.git - revision: 818be7ee0d6b21f52a13dc1d6068505e6e17e0c5 + revision: 42c7a5b242ec9e4d5d784895a27ebf377400b7b0 branch: develop specs: ncbo_ontology_recommender (0.0.1) @@ -105,7 +105,7 @@ GEM multi_json (~> 1.0) addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) - airbrussh (1.4.1) + airbrussh (1.4.2) sshkit (>= 1.6.1, != 1.7.0) backports (3.24.1) bcrypt (3.1.19) @@ -162,10 +162,10 @@ GEM google-cloud-env (1.6.0) faraday (>= 0.17.3, < 3.0) google-cloud-errors (1.3.1) - google-protobuf (3.23.4-aarch64-linux) - google-protobuf (3.23.4-arm64-darwin) - google-protobuf (3.23.4-x86_64-darwin) - google-protobuf (3.23.4-x86_64-linux) + google-protobuf (3.24.0-aarch64-linux) + google-protobuf (3.24.0-arm64-darwin) + google-protobuf (3.24.0-x86_64-darwin) + google-protobuf (3.24.0-x86_64-linux) googleapis-common-protos (1.4.0) google-protobuf (~> 3.14) googleapis-common-protos-types (~> 1.2) @@ -216,7 +216,7 @@ GEM mime-types (3.5.0) mime-types-data (~> 3.2015) mime-types-data (3.2023.0808) - mini_mime (1.1.2) + mini_mime (1.1.5) minitest (4.7.5) minitest-stub_any_instance (1.0.3) mlanett-redis-lock (0.2.7) @@ -398,4 +398,4 @@ DEPENDENCIES unicorn-worker-killer BUNDLED WITH - 2.4.17 + 2.3.15 diff --git a/config/environments/test.rb b/config/environments/test.rb index 4bcdf63e..6f3f0c44 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -5,7 +5,7 @@ GOO_PATH_DATA = ENV.include?("GOO_PATH_DATA") ? ENV["GOO_PATH_DATA"] : "/data/" GOO_PATH_QUERY = ENV.include?("GOO_PATH_QUERY") ? ENV["GOO_PATH_QUERY"] : "/sparql/" GOO_PATH_UPDATE = ENV.include?("GOO_PATH_UPDATE") ? ENV["GOO_PATH_UPDATE"] : "/update/" -GOO_PORT = ENV.include?("GOO_PORT") ? ENV["GOO_PORT"] : 9000 +GOO_PORT = ENV.include?("GOO_PORT") ? ENV["GOO_PORT"] : 8080 MGREP_DICTIONARY_FILE = ENV.include?("MGREP_DICTIONARY_FILE") ? ENV["MGREP_DICTIONARY_FILE"] : "./test/data/dictionary.txt" MGREP_HOST = ENV.include?("MGREP_HOST") ? ENV["MGREP_HOST"] : "localhost" MGREP_PORT = ENV.include?("MGREP_PORT") ? ENV["MGREP_PORT"] : 55555 diff --git a/helpers/application_helper.rb b/helpers/application_helper.rb index 2e811c32..b7d26990 100644 --- a/helpers/application_helper.rb +++ b/helpers/application_helper.rb @@ -261,7 +261,7 @@ def month_param(params=nil) if params["month"] month = params["month"].strip if %r{(?^(0[1-9]|[1-9]|1[0-2])$)}x === month - return month + return month.to_i.to_s end end nil @@ -273,7 +273,7 @@ def year_param(params=nil) if params["year"] year = params["year"].strip if %r{(?^([1-2]\d{3})$)}x === year - return year + return year.to_i.to_s end end nil diff --git a/test/controllers/test_ontology_analytics_controller.rb b/test/controllers/test_ontology_analytics_controller.rb index 67ab5529..b8e36dce 100644 --- a/test/controllers/test_ontology_analytics_controller.rb +++ b/test/controllers/test_ontology_analytics_controller.rb @@ -3,195 +3,195 @@ class TestOntologyAnalyticsController < TestCase ANALYTICS_DATA = { "NCIT" => { - 2013 => { - 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 2850, 11 => 1631, 12 => 1323 + "2013" => { + "1" => 0, "2" => 0, "3" => 0, "4" => 0, "5" => 0, "6" => 0, "7" => 0, "8" => 0, "9" => 0, "10" => 2850, "11" => 1631, "12" => 1323 }, - 2014 => { - 1 => 1004, 2 => 1302, 3 => 2183, 4 => 2191, 5 => 1005, 6 => 1046, 7 => 1261, 8 => 1329, 9 => 1100, 10 => 956, 11 => 1105, 12 => 893 + "2014" => { + "1" => 1004, "2" => 1302, "3" => 2183, "4" => 2191, "5" => 1005, "6" => 1046, "7" => 1261, "8" => 1329, "9" => 1100, "10" => 956, "11" => 1105, "12" => 893 }, - 2015 => { - 1 => 840, 2 => 30, 3 => 50, 4 => 20, 5 => 30, 6 => 10, 7 => 100, 8 => 80, 9 => 20, 10 => 90, 11 => 200, 12 => 50 + "2015" => { + "1" => 840, "2" => 30, "3" => 50, "4" => 20, "5" => 30, "6" => 10, "7" => 100, "8" => 80, "9" => 20, "10" => 90, "11" => 200, "12" => 50 }, - 2016 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 520, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 730 + "2016" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 520, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 730 }, - 2017 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 220, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 170, 11 => 750, 12 => 730 + "2017" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 220, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 170, "11" => 750, "12" => 730 }, - 2018 => { - 1 => 2000, 2 => 220, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 120, 11 => 750, 12 => 730 + "2018" => { + "1" => 2000, "2" => 220, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 120, "11" => 750, "12" => 730 }, - 2019 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 730 + "2019" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 730 }, - 2020 => { - 1 => 2000, 2 => 210, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 730 + "2020" => { + "1" => 2000, "2" => 210, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 730 }, - 2021 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 550, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 730 + "2021" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 550, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 730 }, - 2022 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 990, 7 => 340, 8 => 320, 9 => 610, 10 => 180, 11 => 750, 12 => 730 + "2022" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 990, "7" => 340, "8" => 320, "9" => 610, "10" => 180, "11" => 750, "12" => 730 } }, "ONTOMA" => { - 2013 => { - 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 6, 11 => 15, 12 => 0 + "2013" => { + "1" => 0, "2" => 0, "3" => 0, "4" => 0, "5" => 0, "6" => 0, "7" => 0, "8" => 0, "9" => 0, "10" => 6, "11" => 15, "12" => 0 }, - 2014 => { - 1 => 2, 2 => 0, 3 => 0, 4 => 2, 5 => 2, 6 => 0, 7 => 6, 8 => 8, 9 => 0, 10 => 0, 11 => 0, 12 => 2 + "2014" => { + "1" => 2, "2" => 0, "3" => 0, "4" => 2, "5" => 2, "6" => 0, "7" => 6, "8" => 8, "9" => 0, "10" => 0, "11" => 0, "12" => 2 }, - 2015 => { - 1 => 30, 2 => 90, 3 => 90, 4 => 50, 5 => 30, 6 => 20, 7 => 80, 8 => 90, 9 => 250, 10 => 230, 11 => 120, 12 => 70 + "2015" => { + "1" => 30, "2" => 90, "3" => 90, "4" => 50, "5" => 30, "6" => 20, "7" => 80, "8" => 90, "9" => 250, "10" => 230, "11" => 120, "12" => 70 }, - 2016 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 520, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 730 + "2016" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 520, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 730 }, - 2017 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 220, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 170, 11 => 750, 12 => 730 + "2017" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 220, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 170, "11" => 750, "12" => 730 }, - 2018 => { - 1 => 2000, 2 => 220, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 120, 11 => 750, 12 => 730 + "2018" => { + "1" => 2000, "2" => 220, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 120, "11" => 750, "12" => 730 }, - 2019 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 730 + "2019" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 730 }, - 2020 => { - 1 => 2000, 2 => 210, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 730 + "2020" => { + "1" => 2000, "2" => 210, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 730 }, - 2021 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 550, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 730 + "2021" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 550, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 730 }, - 2022 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 990, 7 => 340, 8 => 320, 9 => 610, 10 => 180, 11 => 750, 12 => 730 + "2022" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 990, "7" => 340, "8" => 320, "9" => 610, "10" => 180, "11" => 750, "12" => 730 } }, "CMPO" => { - 2013 => { - 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 64, 11 => 75, 12 => 22 + "2013" => { + "1" => 0, "2" => 0, "3" => 0, "4" => 0, "5" => 0, "6" => 0, "7" => 0, "8" => 0, "9" => 0, "10" => 64, "11" => 75, "12" => 22 }, - 2014 => { - 1 => 15, 2 => 15, 3 => 19, 4 => 12, 5 => 13, 6 => 14, 7 => 22, 8 => 12, 9 => 36, 10 => 6, 11 => 8, 12 => 10 + "2014" => { + "1" => 15, "2" => 15, "3" => 19, "4" => 12, "5" => 13, "6" => 14, "7" => 22, "8" => 12, "9" => 36, "10" => 6, "11" => 8, "12" => 10 }, - 2015 => { - 1 => 7, 2 => 40, 3 => 140, 4 => 320, 5 => 560, 6 => 320, 7 => 210, 8 => 230, 9 => 220, 10 => 10, 11 => 220, 12 => 880 + "2015" => { + "1" => 7, "2" => 40, "3" => 140, "4" => 320, "5" => 560, "6" => 320, "7" => 210, "8" => 230, "9" => 220, "10" => 10, "11" => 220, "12" => 880 }, - 2016 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 520, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 730 + "2016" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 520, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 730 }, - 2017 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 220, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 170, 11 => 750, 12 => 30 + "2017" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 220, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 170, "11" => 750, "12" => 30 }, - 2018 => { - 1 => 2000, 2 => 220, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 120, 11 => 750, 12 => 430 + "2018" => { + "1" => 2000, "2" => 220, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 120, "11" => 750, "12" => 430 }, - 2019 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 830 + "2019" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 830 }, - 2020 => { - 1 => 2000, 2 => 210, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 380 + "2020" => { + "1" => 2000, "2" => 210, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 380 }, - 2021 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 550, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 794 + "2021" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 550, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 794 }, - 2022 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 990, 7 => 340, 8 => 320, 9 => 610, 10 => 180, 11 => 750, 12 => 738 + "2022" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 990, "7" => 340, "8" => 320, "9" => 610, "10" => 180, "11" => 750, "12" => 738 } }, "AEO" => { - 2013 => { - 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 129, 11 => 142, 12 => 70 + "2013" => { + "1" => 0, "2" => 0, "3" => 0, "4" => 0, "5" => 0, "6" => 0, "7" => 0, "8" => 0, "9" => 0, "10" => 129, "11" => 142, "12" => 70 }, - 2014 => { - 1 => 116, 2 => 93, 3 => 85, 4 => 132, 5 => 96, 6 => 137, 7 => 69, 8 => 158, 9 => 123, 10 => 221, 11 => 163, 12 => 43 + "2014" => { + "1" => 116, "2" => 93, "3" => 85, "4" => 132, "5" => 96, "6" => 137, "7" => 69, "8" => 158, "9" => 123, "10" => 221, "11" => 163, "12" => 43 }, - 2015 => { - 1 => 25, 2 => 230, 3 => 330, 4 => 220, 5 => 650, 6 => 320, 7 => 840, 8 => 440, 9 => 220, 10 => 110, 11 => 210, 12 => 270 + "2015" => { + "1" => 25, "2" => 230, "3" => 330, "4" => 220, "5" => 650, "6" => 320, "7" => 840, "8" => 440, "9" => 220, "10" => 110, "11" => 210, "12" => 270 }, - 2016 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 520, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 335 + "2016" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 520, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 335 }, - 2017 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 220, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 170, 11 => 750, 12 => 732 + "2017" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 220, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 170, "11" => 750, "12" => 732 }, - 2018 => { - 1 => 2000, 2 => 220, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 120, 11 => 750, 12 => 734 + "2018" => { + "1" => 2000, "2" => 220, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 120, "11" => 750, "12" => 734 }, - 2019 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 790 + "2019" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 790 }, - 2020 => { - 1 => 2000, 2 => 210, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 350 + "2020" => { + "1" => 2000, "2" => 210, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 350 }, - 2021 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 550, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 730 + "2021" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 550, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 730 }, - 2022 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 990, 7 => 340, 8 => 320, 9 => 610, 10 => 180, 11 => 750, 12 => 730 + "2022" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 990, "7" => 340, "8" => 320, "9" => 610, "10" => 180, "11" => 750, "12" => 730 } }, "SNOMEDCT" => { - 2013 => { - 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 20721, 11 => 22717, 12 => 18565 + "2013" => { + "1" => 0, "2" => 0, "3" => 0, "4" => 0, "5" => 0, "6" => 0, "7" => 0, "8" => 0, "9" => 0, "10" => 20721, "11" => 22717, "12" => 18565 }, - 2014 => { - 1 => 17966, 2 => 17212, 3 => 20942, 4 => 20376, 5 => 21063, 6 => 18734, 7 => 18116, 8 => 18676, 9 => 15728, 10 => 16348, 11 => 13933, 12 => 9533 + "2014" => { + "1" => 17966, "2" => 17212, "3" => 20942, "4" => 20376, "5" => 21063, "6" => 18734, "7" => 18116, "8" => 18676, "9" => 15728, "10" => 16348, "11" => 13933, "12" => 9533 }, - 2015 => { - 1 => 9036, 2 => 430, 3 => 550, 4 => 110, 5 => 990, 6 => 320, 7 => 630, 8 => 250, 9 => 270, 10 => 880, 11 => 330, 12 => 280 + "2015" => { + "1" => 9036, "2" => 430, "3" => 550, "4" => 110, "5" => 990, "6" => 320, "7" => 630, "8" => 250, "9" => 270, "10" => 880, "11" => 330, "12" => 280 }, - 2016 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 520, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 230 + "2016" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 520, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 230 }, - 2017 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 220, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 170, 11 => 750, 12 => 130 + "2017" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 220, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 170, "11" => 750, "12" => 130 }, - 2018 => { - 1 => 2000, 2 => 220, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 120, 11 => 750, 12 => 330 + "2018" => { + "1" => 2000, "2" => 220, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 120, "11" => 750, "12" => 330 }, - 2019 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 920 + "2019" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 920 }, - 2020 => { - 1 => 2000, 2 => 210, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 130 + "2020" => { + "1" => 2000, "2" => 210, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 130 }, - 2021 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 550, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 930 + "2021" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 550, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 930 }, - 2022 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 990, 7 => 340, 8 => 320, 9 => 610, 10 => 180, 11 => 750, 12 => 230 + "2022" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 990, "7" => 340, "8" => 320, "9" => 610, "10" => 180, "11" => 750, "12" => 230 } }, "TST" => { - 2013 => { - 1 => 0, 2 => 0, 3 => 23, 4 => 0, 5 => 0, 6 => 0, 7 => 20, 8 => 0, 9 => 0, 10 => 234, 11 => 7654, 12 => 2311 + "2013" => { + "1" => 0, "2" => 0, "3" => 23, "4" => 0, "5" => 0, "6" => 0, "7" => 20, "8" => 0, "9" => 0, "10" => 234, "11" => 7654, "12" => 2311 }, - 2014 => { - 1 => 39383, 2 => 239, 3 => 40273, 4 => 3232, 5 => 2, 6 => 58734, 7 => 11236, 8 => 23, 9 => 867, 10 => 232, 11 => 1111, 12 => 8 + "2014" => { + "1" => 39383, "2" => 239, "3" => 40273, "4" => 3232, "5" => 2, "6" => 58734, "7" => 11236, "8" => 23, "9" => 867, "10" => 232, "11" => 1111, "12" => 8 }, - 2015 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 710 + "2015" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 710 }, - 2016 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 520, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 720 + "2016" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 520, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 720 }, - 2017 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 220, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 170, 11 => 750, 12 => 73 + "2017" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 220, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 170, "11" => 750, "12" => 73 }, - 2018 => { - 1 => 2000, 2 => 220, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 120, 11 => 750, 12 => 60 + "2018" => { + "1" => 2000, "2" => 220, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 120, "11" => 750, "12" => 60 }, - 2019 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 70 + "2019" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 70 }, - 2020 => { - 1 => 2000, 2 => 210, 3 => 640, 4 => 540, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 790 + "2020" => { + "1" => 2000, "2" => 210, "3" => 640, "4" => 540, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 790 }, - 2021 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 550, 5 => 270, 6 => 980, 7 => 340, 8 => 320, 9 => 630, 10 => 110, 11 => 750, 12 => 70 + "2021" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 550, "5" => 270, "6" => 980, "7" => 340, "8" => 320, "9" => 630, "10" => 110, "11" => 750, "12" => 70 }, - 2022 => { - 1 => 2000, 2 => 230, 3 => 640, 4 => 540, 5 => 270, 6 => 990, 7 => 340, 8 => 320, 9 => 610, 10 => 180, 11 => 750, 12 => 30 + "2022" => { + "1" => 2000, "2" => 230, "3" => 640, "4" => 540, "5" => 270, "6" => 990, "7" => 340, "8" => 320, "9" => 610, "10" => 180, "11" => 750, "12" => 30 } } }