From d5a8b8b4d965981ddf92ba83a3de113be7388bde Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Tue, 20 Apr 2021 12:16:58 -0300 Subject: [PATCH 01/13] Update metabase docker image to v.0.38.4 --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8c2ea1b..8a247c9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '3' services: metabase: - image: metabase/metabase:v0.35.4 + image: metabase/metabase:v0.38.4 ports: - 3030:3000 volumes: From ef60c3b677798d135f4cca8457d6b863bfa844cc Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Tue, 20 Apr 2021 12:17:45 -0300 Subject: [PATCH 02/13] Add ability to fetch a single collection --- lib/metabase/endpoint/collection.rb | 9 ++ spec/metabase/endpoint/collection_spec.rb | 6 + .../success/returns_a_collection.yml | 118 ++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/returns_a_collection.yml diff --git a/lib/metabase/endpoint/collection.rb b/lib/metabase/endpoint/collection.rb index 3e830f1..08dc6f5 100644 --- a/lib/metabase/endpoint/collection.rb +++ b/lib/metabase/endpoint/collection.rb @@ -11,6 +11,15 @@ module Collection def collections(**params) get('/api/collection', **params) end + + # Fetch a collection. + # + # @param params [Hash] Query string + # @return [Hash] Parsed response JSON + # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#get-apicollectionid + def collection(collection_id, **params) + get("/api/collection/#{collection_id}", **params) + end end end end diff --git a/spec/metabase/endpoint/collection_spec.rb b/spec/metabase/endpoint/collection_spec.rb index fe4b328..645ac5e 100644 --- a/spec/metabase/endpoint/collection_spec.rb +++ b/spec/metabase/endpoint/collection_spec.rb @@ -2,6 +2,7 @@ RSpec.describe Metabase::Endpoint::Collection do include_context 'login' + let(:collection_id) { 1 } describe 'collections', vcr: true do context 'success' do @@ -9,6 +10,11 @@ collections = client.collections expect(collections).to be_kind_of(Array) end + + it 'returns a collection' do + collection = client.collection(collection_id) + expect(collection).to be_kind_of(Hash) + end end end end diff --git a/spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/returns_a_collection.yml b/spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/returns_a_collection.yml new file mode 100644 index 0000000..242348e --- /dev/null +++ b/spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/returns_a_collection.yml @@ -0,0 +1,118 @@ +--- +http_interactions: +- request: + method: post + uri: http://localhost:3030/api/session + body: + encoding: UTF-8 + string: '{"username":"mb@example.com","password":"p@ssw0rd"}' + headers: + User-Agent: + - MetabaseRuby/0.5.0 (ruby3.0.1) + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 20 Apr 2021 15:04:23 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Tue, 20 Apr 2021 15:04:23 GMT + Strict-Transport-Security: + - max-age=31536000 + Set-Cookie: + - metabase.SESSION=30ef769e-b3d9-4b79-baee-ebae57682a27;SameSite=Lax;HttpOnly;Path=/;Max-Age=1209600 + - metabase.SESSION_ID=;Expires=Thu, 1 Jan 1970 00:00:00 GMT;Path=/ + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.27.v20200227) + body: + encoding: ASCII-8BIT + string: '{"id":"30ef769e-b3d9-4b79-baee-ebae57682a27"}' + recorded_at: Tue, 20 Apr 2021 15:04:23 GMT +- request: + method: get + uri: http://localhost:3030/api/collection/1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.5.0 (ruby3.0.1) + X-Metabase-Session: + - 30ef769e-b3d9-4b79-baee-ebae57682a27 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 20 Apr 2021 15:15:11 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Tue, 20 Apr 2021 15:15:11 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJzbHVnIjoiYWRtaW5fdXNlciVFMyU4MSU5NSVFMyU4MiU5MyVFMyU4MSVBRSVFMyU4MyU4RiVFMyU4MiU5QSVFMyU4MyVCQyVFMyU4MiVCRCVFMyU4MyU4QSVFMyU4MyVBQiVFMyU4MiVCMyVFMyU4MyVBQyVFMyU4MiVBRiVFMyU4MiVCNyVFMyU4MyVBNyVFMyU4MyVCMyIsImNvbG9yIjoiIzMxNjk4QSIsImNhbl93cml0ZSI6dHJ1ZSwibmFtZSI6IkFkbWluIFVzZXLjgZXjgpPjga7jg5Hjg7zjgr3jg4rjg6vjgrPjg6zjgq/jgrfjg6fjg7MiLCJwZXJzb25hbF9vd25lcl9pZCI6MSwiZWZmZWN0aXZlX2FuY2VzdG9ycyI6W3sibWV0YWJhc2UubW9kZWxzLmNvbGxlY3Rpb24ucm9vdC9pcy1yb290PyI6dHJ1ZSwibmFtZSI6Ik91ciBhbmFseXRpY3MiLCJpZCI6InJvb3QiLCJjYW5fd3JpdGUiOnRydWV9XSwiZWZmZWN0aXZlX2xvY2F0aW9uIjoiLyIsInBhcmVudF9pZCI6bnVsbCwiaWQiOjEsImxvY2F0aW9uIjoiLyIsIm5hbWVzcGFjZSI6bnVsbH0= + recorded_at: Tue, 20 Apr 2021 15:15:11 GMT +recorded_with: VCR 6.0.0 From fd322c18acb11b8dc0723e72262955a3c427d89c Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Tue, 20 Apr 2021 12:21:27 -0300 Subject: [PATCH 03/13] Update GEM version --- lib/metabase/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/metabase/version.rb b/lib/metabase/version.rb index e5baf56..8b6cf7e 100644 --- a/lib/metabase/version.rb +++ b/lib/metabase/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Metabase - VERSION = '0.5.0' + VERSION = '0.6.0' end From f7e8385c32dde2bcb70ad09f4aada159dfe378f0 Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Tue, 20 Apr 2021 12:48:48 -0300 Subject: [PATCH 04/13] Add ability to fetch a single collection's items --- lib/metabase/endpoint/collection.rb | 9 ++ spec/metabase/endpoint/collection_spec.rb | 7 +- .../success/returns_a_collection_s_items.yml | 130 ++++++++++++++++++ 3 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/returns_a_collection_s_items.yml diff --git a/lib/metabase/endpoint/collection.rb b/lib/metabase/endpoint/collection.rb index 08dc6f5..fe75caf 100644 --- a/lib/metabase/endpoint/collection.rb +++ b/lib/metabase/endpoint/collection.rb @@ -19,6 +19,15 @@ def collections(**params) # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#get-apicollectionid def collection(collection_id, **params) get("/api/collection/#{collection_id}", **params) + end + + # Fetch a collection's items. + # + # @param params [Hash] Query string + # @return [Array] Parsed response JSON + # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#get-apicollectioniditems + def collection_items(collection_id, **params) + get("/api/collection/#{collection_id}/items", **params) end end end diff --git a/spec/metabase/endpoint/collection_spec.rb b/spec/metabase/endpoint/collection_spec.rb index 645ac5e..e3becf2 100644 --- a/spec/metabase/endpoint/collection_spec.rb +++ b/spec/metabase/endpoint/collection_spec.rb @@ -2,7 +2,7 @@ RSpec.describe Metabase::Endpoint::Collection do include_context 'login' - let(:collection_id) { 1 } + let(:collection_id) { 4 } describe 'collections', vcr: true do context 'success' do @@ -14,6 +14,11 @@ it 'returns a collection' do collection = client.collection(collection_id) expect(collection).to be_kind_of(Hash) + end + + it "returns a collection's items" do + collection = client.collection_items(collection_id) + expect(collection).to be_kind_of(Array) end end end diff --git a/spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/returns_a_collection_s_items.yml b/spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/returns_a_collection_s_items.yml new file mode 100644 index 0000000..06cc969 --- /dev/null +++ b/spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/returns_a_collection_s_items.yml @@ -0,0 +1,130 @@ +--- +http_interactions: +- request: + method: post + uri: http://localhost:3030/api/session + body: + encoding: UTF-8 + string: '{"username":"mb@example.com","password":"p@ssw0rd"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 20 Apr 2021 15:47:50 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Tue, 20 Apr 2021 15:47:50 GMT + Strict-Transport-Security: + - max-age=31536000 + Set-Cookie: + - metabase.SESSION=32c048f5-a0df-45c7-b121-7c9abfc110be;SameSite=Lax;HttpOnly;Path=/;Max-Age=1209600 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"id":"32c048f5-a0df-45c7-b121-7c9abfc110be"}' + recorded_at: Tue, 20 Apr 2021 15:47:50 GMT +- request: + method: get + uri: http://localhost:3030/api/collection/4/items + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - 32c048f5-a0df-45c7-b121-7c9abfc110be + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 20 Apr 2021 15:47:50 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Tue, 20 Apr 2021 15:47:50 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '[{"id":13,"name":"Days when Products were added","description":null,"collection_position":null,"display":"bar","favorite":false,"model":"card"},{"id":12,"name":"Hours + when Products were added","description":null,"collection_position":null,"display":"bar","favorite":false,"model":"card"},{"id":14,"name":"Months + when Products were added","description":null,"collection_position":null,"display":"bar","favorite":false,"model":"card"},{"id":8,"name":"New + Products over time","description":null,"collection_position":null,"display":"line","favorite":false,"model":"card"},{"id":10,"name":"Price + over time","description":null,"collection_position":null,"display":"line","favorite":false,"model":"card"},{"id":4,"name":"Products + added in the last 30 days","description":null,"collection_position":null,"display":"scalar","favorite":false,"model":"card"},{"id":6,"name":"Products + by Price","description":null,"collection_position":null,"display":"bar","favorite":false,"model":"card"},{"id":5,"name":"Products + by Rating","description":null,"collection_position":null,"display":"bar","favorite":false,"model":"card"},{"id":1,"name":"Products + Dashboard","description":null,"collection_position":1,"model":"dashboard"},{"id":7,"name":"Products + per Category","description":null,"collection_position":null,"display":"row","favorite":false,"model":"card"},{"id":15,"name":"Quarters + when Products were added","description":null,"collection_position":null,"display":"bar","favorite":false,"model":"card"},{"id":9,"name":"Rating + over time","description":null,"collection_position":null,"display":"line","favorite":false,"model":"card"},{"id":3,"name":"Total + Products","description":null,"collection_position":null,"display":"scalar","favorite":false,"model":"card"},{"id":11,"name":"Weekdays + when Products were added","description":null,"collection_position":null,"display":"bar","favorite":false,"model":"card"}]' + recorded_at: Tue, 20 Apr 2021 15:47:50 GMT +recorded_with: VCR 6.0.0 From b1c65d157b5dfba050a4aaaf865382be3fd46807 Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Tue, 20 Apr 2021 16:00:12 -0300 Subject: [PATCH 05/13] Add ability to create a new collection --- lib/metabase/endpoint/collection.rb | 11 +- spec/metabase/endpoint/collection_spec.rb | 7 +- .../success/create_a_new_collection.yml | 120 ++++++++++++++++++ 3 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/create_a_new_collection.yml diff --git a/lib/metabase/endpoint/collection.rb b/lib/metabase/endpoint/collection.rb index fe75caf..e043d56 100644 --- a/lib/metabase/endpoint/collection.rb +++ b/lib/metabase/endpoint/collection.rb @@ -28,7 +28,16 @@ def collection(collection_id, **params) # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#get-apicollectioniditems def collection_items(collection_id, **params) get("/api/collection/#{collection_id}/items", **params) - end + end + + # Create a new collection. + # + # @param params [Hash] Query string + # @return [Array] Parsed response JSON + # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#post-apicollection + def new_collection(**params) + post('/api/collection', **params) + end end end end diff --git a/spec/metabase/endpoint/collection_spec.rb b/spec/metabase/endpoint/collection_spec.rb index e3becf2..16ea87b 100644 --- a/spec/metabase/endpoint/collection_spec.rb +++ b/spec/metabase/endpoint/collection_spec.rb @@ -19,7 +19,12 @@ it "returns a collection's items" do collection = client.collection_items(collection_id) expect(collection).to be_kind_of(Array) - end + end + + it "create a new collection" do + params = { name: 'New Organization', color: '#509EE3' } + collection = client.new_collection(**params) + end end end end diff --git a/spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/create_a_new_collection.yml b/spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/create_a_new_collection.yml new file mode 100644 index 0000000..6b4c080 --- /dev/null +++ b/spec/vcr_cassettes/Metabase_Endpoint_Collection/collections/success/create_a_new_collection.yml @@ -0,0 +1,120 @@ +--- +http_interactions: +- request: + method: post + uri: http://localhost:3030/api/session + body: + encoding: UTF-8 + string: '{"username":"mb@example.com","password":"p@ssw0rd"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 20 Apr 2021 18:59:05 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Tue, 20 Apr 2021 18:59:05 GMT + Strict-Transport-Security: + - max-age=31536000 + Set-Cookie: + - metabase.SESSION=c1ae5692-7585-4753-be35-456b361f3f67;SameSite=Lax;HttpOnly;Path=/;Max-Age=1209600 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"id":"c1ae5692-7585-4753-be35-456b361f3f67"}' + recorded_at: Tue, 20 Apr 2021 18:59:05 GMT +- request: + method: post + uri: http://localhost:3030/api/collection + body: + encoding: UTF-8 + string: '{"name":"New Organization","color":"#509EE3"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - c1ae5692-7585-4753-be35-456b361f3f67 + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 20 Apr 2021 18:59:05 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Tue, 20 Apr 2021 18:59:05 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"description":null,"archived":false,"slug":"new_organization","color":"#509EE3","name":"New + Organization","personal_owner_id":null,"id":10,"location":"/","namespace":null}' + recorded_at: Tue, 20 Apr 2021 18:59:05 GMT +recorded_with: VCR 6.0.0 From 8cc2052729c352388625c2d15180ceded936f2c9 Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Tue, 20 Apr 2021 19:27:16 -0300 Subject: [PATCH 06/13] Fix new_collection expect --- lib/metabase/endpoint/collection.rb | 2 +- spec/metabase/endpoint/collection_spec.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/metabase/endpoint/collection.rb b/lib/metabase/endpoint/collection.rb index e043d56..278a269 100644 --- a/lib/metabase/endpoint/collection.rb +++ b/lib/metabase/endpoint/collection.rb @@ -33,7 +33,7 @@ def collection_items(collection_id, **params) # Create a new collection. # # @param params [Hash] Query string - # @return [Array] Parsed response JSON + # @return [Hash] Parsed response JSON # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#post-apicollection def new_collection(**params) post('/api/collection', **params) diff --git a/spec/metabase/endpoint/collection_spec.rb b/spec/metabase/endpoint/collection_spec.rb index 16ea87b..c44e107 100644 --- a/spec/metabase/endpoint/collection_spec.rb +++ b/spec/metabase/endpoint/collection_spec.rb @@ -24,6 +24,7 @@ it "create a new collection" do params = { name: 'New Organization', color: '#509EE3' } collection = client.new_collection(**params) + expect(collection).to be_kind_of(Hash) end end end From 691765ac5ad41a9d481b4743c9705148fa3f9fc8 Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Tue, 20 Apr 2021 19:28:16 -0300 Subject: [PATCH 07/13] Add ability to create a new card --- lib/metabase/endpoint/card.rb | 9 + spec/metabase/endpoint/card_spec.rb | 10 + .../new_card/success/create_a_new_card.yml | 197 ++++++++++++++++++ 3 files changed, 216 insertions(+) create mode 100644 spec/vcr_cassettes/Metabase_Endpoint_Card/new_card/success/create_a_new_card.yml diff --git a/lib/metabase/endpoint/card.rb b/lib/metabase/endpoint/card.rb index 263cede..89a5868 100644 --- a/lib/metabase/endpoint/card.rb +++ b/lib/metabase/endpoint/card.rb @@ -42,6 +42,15 @@ def query_card_with_metadata(card_id, **params) def query_card(card_id, format: :json, **params) post("/api/card/#{card_id}/query/#{format}", **params) end + + # Create a new card. + # + # @param params [Hash] Query string + # @return [Hash] Parsed response JSON + # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#post-apicard + def new_card(**params) + post('/api/card', **params) + end end end end diff --git a/spec/metabase/endpoint/card_spec.rb b/spec/metabase/endpoint/card_spec.rb index 465cbbd..560325d 100644 --- a/spec/metabase/endpoint/card_spec.rb +++ b/spec/metabase/endpoint/card_spec.rb @@ -46,4 +46,14 @@ end end end + + describe 'new_card', vcr: true do + context 'success' do + it 'create a new card' do + card = client.card(card_id) + new_card = client.new_card(**card) + expect(card).to be_kind_of(Hash) + end + end + end end diff --git a/spec/vcr_cassettes/Metabase_Endpoint_Card/new_card/success/create_a_new_card.yml b/spec/vcr_cassettes/Metabase_Endpoint_Card/new_card/success/create_a_new_card.yml new file mode 100644 index 0000000..d9e197f --- /dev/null +++ b/spec/vcr_cassettes/Metabase_Endpoint_Card/new_card/success/create_a_new_card.yml @@ -0,0 +1,197 @@ +--- +http_interactions: +- request: + method: post + uri: http://localhost:3030/api/session + body: + encoding: UTF-8 + string: '{"username":"mb@example.com","password":"p@ssw0rd"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 20 Apr 2021 22:24:22 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Tue, 20 Apr 2021 22:24:22 GMT + Strict-Transport-Security: + - max-age=31536000 + Set-Cookie: + - metabase.SESSION=6dc86eda-7056-4dae-8c46-c14ced77a193;SameSite=Lax;HttpOnly;Path=/;Max-Age=1209600 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"id":"6dc86eda-7056-4dae-8c46-c14ced77a193"}' + recorded_at: Tue, 20 Apr 2021 22:24:22 GMT +- request: + method: get + uri: http://localhost:3030/api/card/1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - 6dc86eda-7056-4dae-8c46-c14ced77a193 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 20 Apr 2021 22:24:22 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Tue, 20 Apr 2021 22:24:22 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkZXNjcmlwdGlvbiI6InF1YW50aXR5ID49IDUwIiwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MiwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiJJRCIsIm5hbWUiOiJJRCIsImRlc2NyaXB0aW9uIjoiVGhpcyBpcyBhIHVuaXF1ZSBJRCBmb3IgdGhlIHByb2R1Y3QuIEl0IGlzIGFsc28gY2FsbGVkIHRoZSDigJxJbnZvaWNlIG51bWJlcuKAnSBvciDigJxDb25maXJtYXRpb24gbnVtYmVy4oCdIGluIGN1c3RvbWVyIGZhY2luZyBlbWFpbHMgYW5kIHNjcmVlbnMuIiwic3BlY2lhbF90eXBlIjoidHlwZS9QSyIsImZpbmdlcnByaW50IjpudWxsfSx7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIGFuZCB0aW1lIGFuIG9yZGVyIHdhcyBzdWJtaXR0ZWQuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkZWZhdWx0IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo5OTk4LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTMwVDE4OjU2OjEzLjM1MiIsImxhdGVzdCI6IjIwMjAtMDQtMTlUMTQ6MDc6MTUuNjU3In19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiRGlzY291bnQiLCJuYW1lIjoiRElTQ09VTlQiLCJkZXNjcmlwdGlvbiI6IkRpc2NvdW50IGFtb3VudC4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0Rpc2NvdW50IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo3MDEsIm5pbCUiOjAuODk4fSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMTcwODg5OTY2NzI1ODQzMjIsInExIjoyLjk3ODYyMjY2ODE0NTg3NDMsInEzIjo3LjMzODE4Nzc4ODY1ODIzNSwibWF4Ijo2MS42OTY4NDI2OTk2MDU3MSwic2QiOjMuMDUzNjYzMTI1MDAxOTkxLCJhdmciOjUuMTYxMjU1NTQ3NTgwMzI2fX19fSx7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IlByb2R1Y3QgSUQiLCJuYW1lIjoiUFJPRFVDVF9JRCIsImRlc2NyaXB0aW9uIjoiVGhlIHByb2R1Y3QgSUQuIFRoaXMgaXMgYW4gaW50ZXJuYWwgaWRlbnRpZmllciBmb3IgdGhlIHByb2R1Y3QsIE5PVCB0aGUgU0tVLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvRksiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfX19LHsiYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiUXVhbnRpdHkiLCJuYW1lIjoiUVVBTlRJVFkiLCJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBwcm9kdWN0cyBib3VnaHQuIiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6NjIsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjowLjAsInExIjoxLjc1NTg4MjYwNzc2NDk4MiwicTMiOjQuODgyNjU0NTA3OTI4MDQ0LCJtYXgiOjEwMC4wLCJzZCI6NC4yMTQyNTgzODY0MDM3OTgsImF2ZyI6My43MDE1fX19fSx7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJTdWJ0b3RhbCIsIm5hbWUiOiJTVUJUT1RBTCIsImRlc2NyaXB0aW9uIjoiVGhlIHJhdywgcHJlLXRheCBjb3N0IG9mIHRoZSBvcmRlci4gTm90ZSB0aGF0IHRoaXMgbWlnaHQgYmUgZGlmZmVyZW50IGluIHRoZSBmdXR1cmUgZnJvbSB0aGUgcHJvZHVjdCBwcmljZSBkdWUgdG8gcHJvbW90aW9ucywgY3JlZGl0cywgZXRjLiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MzQwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTUuNjkxOTQzNjczOTcwNDM5LCJxMSI6NDkuNzQ4OTQ1MTkwNjAxODQsInEzIjoxMDUuNDI5NjU3NDY5OTMxMDMsIm1heCI6MTQ4LjIyOTAwNTI2NTUyMjkxLCJzZCI6MzIuNTM3MDUwMTMwNTYzMTcsImF2ZyI6NzcuMDEyOTU0NjUzNTY1NDd9fX0sInNwZWNpYWxfdHlwZSI6bnVsbH0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiVGF4IiwibmFtZSI6IlRBWCIsImRlc2NyaXB0aW9uIjoiVGhpcyBpcyB0aGUgYW1vdW50IG9mIGxvY2FsIGFuZCBmZWRlcmFsIHRheGVzIHRoYXQgYXJlIGNvbGxlY3RlZCBvbiB0aGUgcHVyY2hhc2UuIE5vdGUgdGhhdCBvdGhlciBnb3Zlcm5tZW50YWwgZmVlcyBvbiBzb21lIHByb2R1Y3RzIGFyZSBub3QgaW5jbHVkZWQgaGVyZSwgYnV0IGluc3RlYWQgYXJlIGFjY291bnRlZCBmb3IgaW4gdGhlIHN1YnRvdGFsLiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6Nzk3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MC4wLCJxMSI6Mi4yNzMzNDAzODY2MDM4NTcsInEzIjo1LjMzNzI3NTMzODIxNjMwNywibWF4IjoxMS4xMiwic2QiOjIuMzIwNjY1MTM1ODkwMDMxNiwiYXZnIjozLjg3MjIxMDAwMDAwMDAwMDR9fX0sInNwZWNpYWxfdHlwZSI6bnVsbH0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiVG90YWwiLCJuYW1lIjoiVE9UQUwiLCJkZXNjcmlwdGlvbiI6IlRoZSB0b3RhbCBiaWxsZWQgYW1vdW50LiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MTAwMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoxMi4wNjE2MDI5MzY5MjMxMTcsInExIjo1Mi4wMDYxNDc2MTc4NzgxMzUsInEzIjoxMDkuNTU4MDMwMTg0OTk3MzgsIm1heCI6MjM4LjMyNzMyMDAxNzIxNTMzLCJzZCI6MzguMzU5Njc2NjQ4NDc1NzEsImF2ZyI6ODIuOTYwMTQ4MTUyMzA4MDV9fX0sInNwZWNpYWxfdHlwZSI6bnVsbH0seyJiYXNlX3R5cGUiOiJ0eXBlL0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiJVc2VyIElEIiwibmFtZSI6IlVTRVJfSUQiLCJkZXNjcmlwdGlvbiI6IlRoZSBpZCBvZiB0aGUgdXNlciB3aG8gbWFkZSB0aGlzIG9yZGVyLiBOb3RlIHRoYXQgaW4gc29tZSBjYXNlcyB3aGVyZSBhbiBvcmRlciB3YXMgY3JlYXRlZCBvbiBiZWhhbGYgb2YgYSBjdXN0b21lciB3aG8gcGhvbmVkIHRoZSBvcmRlciBpbiwgdGhpcyBtaWdodCBiZSB0aGUgZW1wbG95ZWUgd2hvIGhhbmRsZWQgdGhlIHJlcXVlc3QuIiwic3BlY2lhbF90eXBlIjoidHlwZS9GSyIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6OTI5LCJuaWwlIjowLjB9fX1dLCJjcmVhdG9yIjp7ImVtYWlsIjoibWJAZXhhbXBsZS5jb20iLCJmaXJzdF9uYW1lIjoiQWRtaW4iLCJsYXN0X2xvZ2luIjoiMjAyMS0wNC0yMFQyMjoyNDoyMi41MjgiLCJpc19xYm5ld2IiOmZhbHNlLCJpc19zdXBlcnVzZXIiOnRydWUsImlkIjoxLCJsYXN0X25hbWUiOiJVc2VyIiwiZGF0ZV9qb2luZWQiOiIyMDIwLTA2LTA3VDA1OjIwOjQxLjg1OSIsImNvbW1vbl9uYW1lIjoiQWRtaW4gVXNlciJ9LCJjYW5fd3JpdGUiOnRydWUsImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6MiwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6Ik9yZGVycyBxdWFudGl0eSA+PSA1MCIsImRhc2hib2FyZF9jb3VudCI6MCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDY6NDE6MjkuMTIxIiwibWFkZV9wdWJsaWNfYnlfaWQiOjEsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjIsImZpbHRlciI6WyI+PSIsWyJmaWVsZC1pZCIsMTRdLDUwXX0sImRhdGFiYXNlIjoxfSwiaWQiOjEsImRpc3BsYXkiOiJ0YWJsZSIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGFibGUucGl2b3RfY29sdW1uIjoiRElTQ09VTlQiLCJ0YWJsZS5jZWxsX2NvbHVtbiI6IlFVQU5USVRZIn0sImNvbGxlY3Rpb24iOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwic2x1ZyI6Im1ldGFiYXNlcnVieSIsImNvbG9yIjoiIzUwOUVFMyIsIm5hbWUiOiJNZXRhYmFzZVJ1YnkiLCJwZXJzb25hbF9vd25lcl9pZCI6bnVsbCwiaWQiOjIsImxvY2F0aW9uIjoiLyIsIm5hbWVzcGFjZSI6bnVsbH0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjM2OjI4LjgwNiIsInB1YmxpY191dWlkIjoiNzA4YTc4ZWMtMTVjOC00MDVlLWI1OTAtZGU5OGM2ZGRmYTAxIn0= + recorded_at: Tue, 20 Apr 2021 22:24:22 GMT +- request: + method: post + uri: http://localhost:3030/api/card + body: + encoding: UTF-8 + string: '{"description":"quantity >= 50","archived":false,"collection_position":null,"table_id":2,"result_metadata":[{"base_type":"type/BigInteger","display_name":"ID","name":"ID","description":"This + is a unique ID for the product. It is also called the “Invoice number” or + “Confirmation number” in customer facing emails and screens.","special_type":"type/PK","fingerprint":null},{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date and time an order was submitted.","special_type":"type/CreationTimestamp","unit":"default","fingerprint":{"global":{"distinct-count":9998,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-30T18:56:13.352","latest":"2020-04-19T14:07:15.657"}}}},{"base_type":"type/Float","display_name":"Discount","name":"DISCOUNT","description":"Discount + amount.","special_type":"type/Discount","fingerprint":{"global":{"distinct-count":701,"nil%":0.898},"type":{"type/Number":{"min":0.17088996672584322,"q1":2.9786226681458743,"q3":7.338187788658235,"max":61.69684269960571,"sd":3.053663125001991,"avg":5.161255547580326}}}},{"base_type":"type/Integer","display_name":"Product + ID","name":"PRODUCT_ID","description":"The product ID. This is an internal + identifier for the product, NOT the SKU.","special_type":"type/FK","fingerprint":{"global":{"distinct-count":200,"nil%":0.0}}},{"base_type":"type/Integer","display_name":"Quantity","name":"QUANTITY","description":"Number + of products bought.","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":62,"nil%":0.0},"type":{"type/Number":{"min":0.0,"q1":1.755882607764982,"q3":4.882654507928044,"max":100.0,"sd":4.214258386403798,"avg":3.7015}}}},{"base_type":"type/Float","display_name":"Subtotal","name":"SUBTOTAL","description":"The + raw, pre-tax cost of the order. Note that this might be different in the future + from the product price due to promotions, credits, etc.","fingerprint":{"global":{"distinct-count":340,"nil%":0.0},"type":{"type/Number":{"min":15.691943673970439,"q1":49.74894519060184,"q3":105.42965746993103,"max":148.22900526552291,"sd":32.53705013056317,"avg":77.01295465356547}}},"special_type":null},{"base_type":"type/Float","display_name":"Tax","name":"TAX","description":"This + is the amount of local and federal taxes that are collected on the purchase. + Note that other governmental fees on some products are not included here, + but instead are accounted for in the subtotal.","fingerprint":{"global":{"distinct-count":797,"nil%":0.0},"type":{"type/Number":{"min":0.0,"q1":2.273340386603857,"q3":5.337275338216307,"max":11.12,"sd":2.3206651358900316,"avg":3.8722100000000004}}},"special_type":null},{"base_type":"type/Float","display_name":"Total","name":"TOTAL","description":"The + total billed amount.","fingerprint":{"global":{"distinct-count":10000,"nil%":0.0},"type":{"type/Number":{"min":12.061602936923117,"q1":52.006147617878135,"q3":109.55803018499738,"max":238.32732001721533,"sd":38.35967664847571,"avg":82.96014815230805}}},"special_type":null},{"base_type":"type/Integer","display_name":"User + ID","name":"USER_ID","description":"The id of the user who made this order. + Note that in some cases where an order was created on behalf of a customer + who phoned the order in, this might be the employee who handled the request.","special_type":"type/FK","fingerprint":{"global":{"distinct-count":929,"nil%":0.0}}}],"creator":{"email":"mb@example.com","first_name":"Admin","last_login":"2021-04-20T22:24:22.528","is_qbnewb":false,"is_superuser":true,"id":1,"last_name":"User","date_joined":"2020-06-07T05:20:41.859","common_name":"Admin + User"},"can_write":true,"database_id":1,"enable_embedding":false,"collection_id":2,"query_type":"query","name":"Orders + quantity >= 50","dashboard_count":0,"creator_id":1,"updated_at":"2020-06-07T06:41:29.121","made_public_by_id":1,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","query":{"source-table":2,"filter":[">=",["field-id",14],50]},"database":1},"id":1,"display":"table","visualization_settings":{"table.pivot_column":"DISCOUNT","table.cell_column":"QUANTITY"},"collection":{"description":null,"archived":false,"slug":"metabaseruby","color":"#509EE3","name":"MetabaseRuby","personal_owner_id":null,"id":2,"location":"/","namespace":null},"created_at":"2020-06-07T05:36:28.806","public_uuid":"708a78ec-15c8-405e-b590-de98c6ddfa01"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - 6dc86eda-7056-4dae-8c46-c14ced77a193 + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 202 + message: Accepted + headers: + Date: + - Tue, 20 Apr 2021 22:24:22 GMT + X-Frame-Options: + - DENY + X-Accel-Buffering: + - 'no' + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Tue, 20 Apr 2021 22:24:22 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkZXNjcmlwdGlvbiI6InF1YW50aXR5ID49IDUwIiwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MiwicmVzdWx0X21ldGFkYXRhIjpbeyJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIGFuZCB0aW1lIGFuIG9yZGVyIHdhcyBzdWJtaXR0ZWQuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkZWZhdWx0IiwibmFtZSI6IkNSRUFURURfQVQiLCJmaWVsZF9yZWYiOlsiZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDE1XSwiZGVmYXVsdCJdLCJpZCI6MTUsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjk5OTgsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMzBUMTg6NTY6MTMuMzUyIiwibGF0ZXN0IjoiMjAyMC0wNC0xOVQxNDowNzoxNS42NTcifX19LCJiYXNlX3R5cGUiOiJ0eXBlL0RhdGVUaW1lIn0seyJuYW1lIjoiRElTQ09VTlQiLCJkaXNwbGF5X25hbWUiOiJEaXNjb3VudCIsImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0Rpc2NvdW50IiwiaWQiOjEwLCJmaWVsZF9yZWYiOlsiZmllbGQtaWQiLDEwXSwiZGVzY3JpcHRpb24iOiJEaXNjb3VudCBhbW91bnQuIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo3MDEsIm5pbCUiOjAuODk4fSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMTcwODg5OTY2NzI1ODQzMjIsInExIjoyLjk3ODYyMjY2ODE0NTg3NDMsInEzIjo3LjMzODE4Nzc4ODY1ODIzNSwibWF4Ijo2MS42OTY4NDI2OTk2MDU3MSwic2QiOjMuMDUzNjYzMTI1MDAxOTkxLCJhdmciOjUuMTYxMjU1NTQ3NTgwMzI2fX19fSx7Im5hbWUiOiJJRCIsImRpc3BsYXlfbmFtZSI6IklEIiwiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwic3BlY2lhbF90eXBlIjoidHlwZS9QSyIsImlkIjoxMiwiZmllbGRfcmVmIjpbImZpZWxkLWlkIiwxMl0sImRlc2NyaXB0aW9uIjoiVGhpcyBpcyBhIHVuaXF1ZSBJRCBmb3IgdGhlIHByb2R1Y3QuIEl0IGlzIGFsc28gY2FsbGVkIHRoZSDigJxJbnZvaWNlIG51bWJlcuKAnSBvciDigJxDb25maXJtYXRpb24gbnVtYmVy4oCdIGluIGN1c3RvbWVyIGZhY2luZyBlbWFpbHMgYW5kIHNjcmVlbnMuIiwiZmluZ2VycHJpbnQiOm51bGx9LHsibmFtZSI6IlBST0RVQ1RfSUQiLCJkaXNwbGF5X25hbWUiOiJQcm9kdWN0IElEIiwiYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwic3BlY2lhbF90eXBlIjoidHlwZS9GSyIsImlkIjoxMSwiZmllbGRfcmVmIjpbImZpZWxkLWlkIiwxMV0sImRlc2NyaXB0aW9uIjoiVGhlIHByb2R1Y3QgSUQuIFRoaXMgaXMgYW4gaW50ZXJuYWwgaWRlbnRpZmllciBmb3IgdGhlIHByb2R1Y3QsIE5PVCB0aGUgU0tVLiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9fX0seyJuYW1lIjoiUVVBTlRJVFkiLCJkaXNwbGF5X25hbWUiOiJRdWFudGl0eSIsImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJpZCI6MTQsImZpZWxkX3JlZiI6WyJmaWVsZC1pZCIsMTRdLCJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBwcm9kdWN0cyBib3VnaHQuIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo2MiwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMCwicTEiOjEuNzU1ODgyNjA3NzY0OTgyLCJxMyI6NC44ODI2NTQ1MDc5MjgwNDQsIm1heCI6MTAwLjAsInNkIjo0LjIxNDI1ODM4NjQwMzc5OCwiYXZnIjozLjcwMTV9fX19LHsibmFtZSI6IlNVQlRPVEFMIiwiZGlzcGxheV9uYW1lIjoiU3VidG90YWwiLCJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0Iiwic3BlY2lhbF90eXBlIjpudWxsLCJpZCI6MTMsImZpZWxkX3JlZiI6WyJmaWVsZC1pZCIsMTNdLCJkZXNjcmlwdGlvbiI6IlRoZSByYXcsIHByZS10YXggY29zdCBvZiB0aGUgb3JkZXIuIE5vdGUgdGhhdCB0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpbiB0aGUgZnV0dXJlIGZyb20gdGhlIHByb2R1Y3QgcHJpY2UgZHVlIHRvIHByb21vdGlvbnMsIGNyZWRpdHMsIGV0Yy4iLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjM0MCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjE1LjY5MTk0MzY3Mzk3MDQzOSwicTEiOjQ5Ljc0ODk0NTE5MDYwMTg0LCJxMyI6MTA1LjQyOTY1NzQ2OTkzMTAzLCJtYXgiOjE0OC4yMjkwMDUyNjU1MjI5MSwic2QiOjMyLjUzNzA1MDEzMDU2MzE3LCJhdmciOjc3LjAxMjk1NDY1MzU2NTQ3fX19fSx7Im5hbWUiOiJUQVgiLCJkaXNwbGF5X25hbWUiOiJUYXgiLCJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0Iiwic3BlY2lhbF90eXBlIjpudWxsLCJpZCI6MTYsImZpZWxkX3JlZiI6WyJmaWVsZC1pZCIsMTZdLCJkZXNjcmlwdGlvbiI6IlRoaXMgaXMgdGhlIGFtb3VudCBvZiBsb2NhbCBhbmQgZmVkZXJhbCB0YXhlcyB0aGF0IGFyZSBjb2xsZWN0ZWQgb24gdGhlIHB1cmNoYXNlLiBOb3RlIHRoYXQgb3RoZXIgZ292ZXJubWVudGFsIGZlZXMgb24gc29tZSBwcm9kdWN0cyBhcmUgbm90IGluY2x1ZGVkIGhlcmUsIGJ1dCBpbnN0ZWFkIGFyZSBhY2NvdW50ZWQgZm9yIGluIHRoZSBzdWJ0b3RhbC4iLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjc5NywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMCwicTEiOjIuMjczMzQwMzg2NjAzODU3LCJxMyI6NS4zMzcyNzUzMzgyMTYzMDcsIm1heCI6MTEuMTIsInNkIjoyLjMyMDY2NTEzNTg5MDAzMTYsImF2ZyI6My44NzIyMTAwMDAwMDAwMDA0fX19fSx7Im5hbWUiOiJUT1RBTCIsImRpc3BsYXlfbmFtZSI6IlRvdGFsIiwiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsInNwZWNpYWxfdHlwZSI6bnVsbCwiaWQiOjE3LCJmaWVsZF9yZWYiOlsiZmllbGQtaWQiLDE3XSwiZGVzY3JpcHRpb24iOiJUaGUgdG90YWwgYmlsbGVkIGFtb3VudC4iLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjEwMDAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTIuMDYxNjAyOTM2OTIzMTE3LCJxMSI6NTIuMDA2MTQ3NjE3ODc4MTM1LCJxMyI6MTA5LjU1ODAzMDE4NDk5NzM4LCJtYXgiOjIzOC4zMjczMjAwMTcyMTUzMywic2QiOjM4LjM1OTY3NjY0ODQ3NTcxLCJhdmciOjgyLjk2MDE0ODE1MjMwODA1fX19fSx7Im5hbWUiOiJVU0VSX0lEIiwiZGlzcGxheV9uYW1lIjoiVXNlciBJRCIsImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsInNwZWNpYWxfdHlwZSI6InR5cGUvRksiLCJpZCI6OSwiZmllbGRfcmVmIjpbImZpZWxkLWlkIiw5XSwiZGVzY3JpcHRpb24iOiJUaGUgaWQgb2YgdGhlIHVzZXIgd2hvIG1hZGUgdGhpcyBvcmRlci4gTm90ZSB0aGF0IGluIHNvbWUgY2FzZXMgd2hlcmUgYW4gb3JkZXIgd2FzIGNyZWF0ZWQgb24gYmVoYWxmIG9mIGEgY3VzdG9tZXIgd2hvIHBob25lZCB0aGUgb3JkZXIgaW4sIHRoaXMgbWlnaHQgYmUgdGhlIGVtcGxveWVlIHdobyBoYW5kbGVkIHRoZSByZXF1ZXN0LiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6OTI5LCJuaWwlIjowLjB9fX1dLCJjcmVhdG9yIjp7ImVtYWlsIjoibWJAZXhhbXBsZS5jb20iLCJmaXJzdF9uYW1lIjoiQWRtaW4iLCJsYXN0X2xvZ2luIjoiMjAyMS0wNC0yMFQyMjoyNDoyMi41MjgiLCJpc19xYm5ld2IiOmZhbHNlLCJpc19zdXBlcnVzZXIiOnRydWUsImlkIjoxLCJsYXN0X25hbWUiOiJVc2VyIiwiZGF0ZV9qb2luZWQiOiIyMDIwLTA2LTA3VDA1OjIwOjQxLjg1OSIsImNvbW1vbl9uYW1lIjoiQWRtaW4gVXNlciJ9LCJjYW5fd3JpdGUiOnRydWUsImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6MiwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6Ik9yZGVycyBxdWFudGl0eSA+PSA1MCIsImRhc2hib2FyZF9jb3VudCI6MCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjEtMDQtMjBUMjI6MjQ6MjIuODA2IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjIsImZpbHRlciI6WyI+PSIsWyJmaWVsZC1pZCIsMTRdLDUwXX0sImRhdGFiYXNlIjoxfSwiaWQiOjQ4LCJkaXNwbGF5IjoidGFibGUiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7InRhYmxlLnBpdm90X2NvbHVtbiI6IkRJU0NPVU5UIiwidGFibGUuY2VsbF9jb2x1bW4iOiJRVUFOVElUWSJ9LCJjb2xsZWN0aW9uIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsInNsdWciOiJtZXRhYmFzZXJ1YnkiLCJjb2xvciI6IiM1MDlFRTMiLCJuYW1lIjoiTWV0YWJhc2VSdWJ5IiwicGVyc29uYWxfb3duZXJfaWQiOm51bGwsImlkIjoyLCJsb2NhdGlvbiI6Ii8iLCJuYW1lc3BhY2UiOm51bGx9LCJjcmVhdGVkX2F0IjoiMjAyMS0wNC0yMFQyMjoyNDoyMi44MDYiLCJwdWJsaWNfdXVpZCI6bnVsbH0= + recorded_at: Tue, 20 Apr 2021 22:24:22 GMT +recorded_with: VCR 6.0.0 From 2c807ee5240fed2b9c45a7671fada8193baa6e18 Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Wed, 21 Apr 2021 12:29:29 -0300 Subject: [PATCH 08/13] Add ability to fetch a single dashboard and create a new dashboard --- lib/metabase/endpoint/dashboard.rb | 19 ++ spec/metabase/endpoint/dashboard_spec.rb | 20 ++ .../success/returns_the_dashboard.yml | 118 ++++++++++ .../success/create_a_new_dashboard.yml | 222 ++++++++++++++++++ 4 files changed, 379 insertions(+) create mode 100644 spec/vcr_cassettes/Metabase_Endpoint_Dashboard/dashboard/success/returns_the_dashboard.yml create mode 100644 spec/vcr_cassettes/Metabase_Endpoint_Dashboard/new_dashboard/success/create_a_new_dashboard.yml diff --git a/lib/metabase/endpoint/dashboard.rb b/lib/metabase/endpoint/dashboard.rb index a6a974e..b689b4b 100644 --- a/lib/metabase/endpoint/dashboard.rb +++ b/lib/metabase/endpoint/dashboard.rb @@ -11,6 +11,25 @@ module Dashboard def dashboards(**params) get('/api/dashboard', **params) end + + # Fetch the dashboard. + # + # @param dashboard_id [Integer, String] Dashboard ID + # @param params [Hash] Query string + # @return [Hash] Parsed response JSON + # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#get-apidashboardid + def dashboard(dashboard_id, **params) + get("/api/dashboard/#{dashboard_id}", **params) + end + + # Create a new dashboard. + # + # @param params [Hash] Query string + # @return [Hash] Parsed response JSON + # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#post-apidashboard + def new_dashboard(**params) + post('/api/dashboard', **params) + end end end end diff --git a/spec/metabase/endpoint/dashboard_spec.rb b/spec/metabase/endpoint/dashboard_spec.rb index 59b2ca7..d5aeff4 100644 --- a/spec/metabase/endpoint/dashboard_spec.rb +++ b/spec/metabase/endpoint/dashboard_spec.rb @@ -2,6 +2,7 @@ RSpec.describe Metabase::Endpoint::Dashboard do include_context 'login' + let(:dashboard_id) { 1 } describe 'dashboards', vcr: true do context 'success' do @@ -11,4 +12,23 @@ end end end + + describe 'dashboard', vcr: true do + context 'success' do + it 'returns the dashboard' do + dashboard = client.dashboard(dashboard_id) + expect(dashboard).to be_kind_of(Hash) + end + end + end + + describe 'new_dashboard', vcr: true do + context 'success' do + it 'create a new dashboard' do + dashboard = client.dashboard(dashboard_id) + new_dashboard = client.new_dashboard(**dashboard) + expect(dashboard).to be_kind_of(Hash) + end + end + end end diff --git a/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/dashboard/success/returns_the_dashboard.yml b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/dashboard/success/returns_the_dashboard.yml new file mode 100644 index 0000000..b8ca720 --- /dev/null +++ b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/dashboard/success/returns_the_dashboard.yml @@ -0,0 +1,118 @@ +--- +http_interactions: +- request: + method: post + uri: http://localhost:3030/api/session + body: + encoding: UTF-8 + string: '{"username":"mb@example.com","password":"p@ssw0rd"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 21 Apr 2021 15:28:20 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Wed, 21 Apr 2021 15:28:20 GMT + Strict-Transport-Security: + - max-age=31536000 + Set-Cookie: + - metabase.SESSION=1ef23d46-14f0-48c8-8b84-b2d34cf93df9;SameSite=Lax;HttpOnly;Path=/;Max-Age=1209600 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"id":"1ef23d46-14f0-48c8-8b84-b2d34cf93df9"}' + recorded_at: Wed, 21 Apr 2021 15:28:20 GMT +- request: + method: get + uri: http://localhost:3030/api/dashboard/1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - 1ef23d46-14f0-48c8-8b84-b2d34cf93df9 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 21 Apr 2021 15:28:20 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Wed, 21 Apr 2021 15:28:20 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjoxLCJvcmRlcmVkX2NhcmRzIjpbeyJzaXplWCI6MTgsInNlcmllcyI6W10sImNhcmQiOnsicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU0Ljk4MiIsImNvbCI6MCwiaWQiOjEsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGV4dCI6IiMgU3VtbWFyeSIsInZpcnR1YWxfY2FyZCI6eyJuYW1lIjpudWxsLCJkaXNwbGF5IjoidGV4dCIsImRhdGFzZXRfcXVlcnkiOnt9LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fX0sImRhc2hjYXJkLmJhY2tncm91bmQiOmZhbHNlLCJ0ZXh0LmFsaWduX3ZlcnRpY2FsIjoiYm90dG9tIn0sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTQuOTgyIiwic2l6ZVkiOjIsInJvdyI6MH0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoxLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MjAwLjAsInExIjoyMDAuMCwicTMiOjIwMC4wLCJtYXgiOjIwMC4wLCJzZCI6bnVsbCwiYXZnIjoyMDAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJUb3RhbCBQcm9kdWN0cyIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjUwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41MzgiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6MywiZGlzcGxheSI6InNjYWxhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjAxIiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wMzIiLCJjb2wiOjAsImlkIjoyLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6M30seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjozfV0sImNhcmRfaWQiOjMsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjAzMiIsInNpemVZIjo0LCJyb3ciOjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MSwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMCwicTEiOjAuMCwicTMiOjAuMCwibWF4IjowLjAsInNkIjpudWxsLCJhdmciOjAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBhZGRlZCBpbiB0aGUgbGFzdCAzMCBkYXlzIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6MzQsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjU1NCIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiZmlsdGVyIjpbInRpbWUtaW50ZXJ2YWwiLFsiZmllbGQtaWQiLDddLC0zMCwiZGF5Il0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6NCwiZGlzcGxheSI6InNjYWxhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjA2MSIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMDY5IiwiY29sIjo2LCJpZCI6MywicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjR9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6NH1dLCJjYXJkX2lkIjo0LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wNjkiLCJzaXplWSI6NCwicm93IjoyfSx7InNpemVYIjoxOCwic2VyaWVzIjpbXSwiY2FyZCI6eyJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMDg3IiwiY29sIjowLCJpZCI6NCwicGFyYW1ldGVyX21hcHBpbmdzIjpbXSwiY2FyZF9pZCI6bnVsbCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJ0ZXh0IjoiIyBIb3cgdGhlc2UgUHJvZHVjdHMgYXJlIGRpc3RyaWJ1dGVkIiwidmlydHVhbF9jYXJkIjp7Im5hbWUiOm51bGwsImRpc3BsYXkiOiJ0ZXh0IiwiZGF0YXNldF9xdWVyeSI6e30sInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9fSwiZGFzaGNhcmQuYmFja2dyb3VuZCI6ZmFsc2UsInRleHQuYWxpZ25fdmVydGljYWwiOiJib3R0b20ifSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wODciLCJzaXplWSI6Miwicm93Ijo2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJSYXRpbmciLCJuYW1lIjoiUkFUSU5HIiwiZGVzY3JpcHRpb24iOiJUaGUgYXZlcmFnZSByYXRpbmcgdXNlcnMgaGF2ZSBnaXZlbiB0aGUgcHJvZHVjdC4gVGhpcyByYW5nZXMgZnJvbSAxIC0gNSIsInNwZWNpYWxfdHlwZSI6InR5cGUvU2NvcmUiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIzLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MC4wLCJxMSI6My41MTIwNDY1MDUzNDA4NTI1LCJxMyI6NC4yMTYxMjQ5Njk0OTczMTQsIm1heCI6NS4wLCJzZCI6MS4zNjA1NDg4NjU3NDUxNDUyLCJhdmciOjMuNDcxNX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo2LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6Mi4wLCJxMSI6My4wLCJxMyI6NDYuMCwibWF4IjoxMDguMCwic2QiOjM5Ljk3ODMyNzQ2MjA5NzA5LCJhdmciOjMzLjMzMzMzMzMzMzMzMzMzNn19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBieSBSYXRpbmciLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo2OSwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNTY3IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siYmlubmluZy1zdHJhdGVneSIsWyJmaWVsZC1pZCIsMl0sImRlZmF1bHQiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6NSwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIlJBVElORyJdLCJncmFwaC5jb2xvcnMiOlsiI2Y5ZDQ1YyJdfSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTE0IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xMjIiLCJjb2wiOjAsImlkIjo1LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6NX0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo1fV0sImNhcmRfaWQiOjUsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjEyMiIsInNpemVZIjo0LCJyb3ciOjh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlByaWNlIiwibmFtZSI6IlBSSUNFIiwiZGVzY3JpcHRpb24iOiJUaGUgbGlzdCBwcmljZSBvZiB0aGUgcHJvZHVjdC4gTm90ZSB0aGF0IHRoaXMgaXMgbm90IGFsd2F5cyB0aGUgcHJpY2UgdGhlIHByb2R1Y3Qgc29sZCBmb3IgZHVlIHRvIGRpc2NvdW50cywgcHJvbW90aW9ucywgZXRjLiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MTcwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTUuNjkxOTQzNjczOTcwNDM5LCJxMSI6MzcuMjUxNTQ0NjI5MjY0MzQsInEzIjo3NS40NTg5ODA3MTYwOTQ0NywibWF4Ijo5OC44MTkzMzY4NDM2ODE5NCwic2QiOjIxLjcxMTQ4MTU1Nzg1MjA1NywiYXZnIjo1NS43NDYzOTk2Njc5MjA3NH19fSwic3BlY2lhbF90eXBlIjpudWxsfSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjcsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoxMC4wLCJxMSI6MTcuNzUsInEzIjozOS43NSwibWF4Ijo0My4wLCJzZCI6MTIuNjA3NjMxODUzNDYwMDY3LCJhdmciOjI4LjU3MTQyODU3MTQyODU3M319fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBieSBQcmljZSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjQ1LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41NTgiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJiaW5uaW5nLXN0cmF0ZWd5IixbImZpZWxkLWlkIiwzXSwiZGVmYXVsdCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjo2LCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiUFJJQ0UiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE0NiIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTU0IiwiY29sIjo2LCJpZCI6NiwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjZ9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6Nn1dLCJjYXJkX2lkIjo2LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xNTQiLCJzaXplWSI6NCwicm93Ijo4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvVGV4dCIsImRpc3BsYXlfbmFtZSI6IkNhdGVnb3J5IiwibmFtZSI6IkNBVEVHT1JZIiwiZGVzY3JpcHRpb24iOiJUaGUgdHlwZSBvZiBwcm9kdWN0LCB2YWxpZCB2YWx1ZXMgaW5jbHVkZTogRG9vaGlja3ksIEdhZGdldCwgR2l6bW8gYW5kIFdpZGdldCIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ2F0ZWdvcnkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjQsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9UZXh0Ijp7InBlcmNlbnQtanNvbiI6MC4wLCJwZXJjZW50LXVybCI6MC4wLCJwZXJjZW50LWVtYWlsIjowLjAsImF2ZXJhZ2UtbGVuZ3RoIjo2LjM3NX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo0LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6NDIuMCwicTEiOjQ2LjUsInEzIjo1My41LCJtYXgiOjU0LjAsInNkIjo1LjQ3NzIyNTU3NTA1MTY2MSwiYXZnIjo1MC4wfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlByb2R1Y3RzIHBlciBDYXRlZ29yeSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjYwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41MzEiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJmaWVsZC1pZCIsNl1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV0sIm9yZGVyLWJ5IjpbWyJkZXNjIixbImFnZ3JlZ2F0aW9uIiwwXV1dfX0sImlkIjo3LCJkaXNwbGF5Ijoicm93IiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ0FURUdPUlkiXSwiZ3JhcGguY29sb3JzIjpbIiM5Q0MxNzciXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE3OCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTkxIiwiY29sIjoxMiwiaWQiOjcsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjo3fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjd9XSwiY2FyZF9pZCI6NywidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTkxIiwic2l6ZVkiOjgsInJvdyI6OH0seyJzaXplWCI6MTgsInNlcmllcyI6W10sImNhcmQiOnsicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjIwNCIsImNvbCI6MCwiaWQiOjgsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGV4dCI6IiMgVGhlc2UgUHJvZHVjdHMgYWNyb3NzIHRpbWUiLCJ2aXJ0dWFsX2NhcmQiOnsibmFtZSI6bnVsbCwiZGlzcGxheSI6InRleHQiLCJkYXRhc2V0X3F1ZXJ5Ijp7fSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e319LCJkYXNoY2FyZC5iYWNrZ3JvdW5kIjpmYWxzZSwidGV4dC5hbGlnbl92ZXJ0aWNhbCI6ImJvdHRvbSJ9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjIwNCIsInNpemVZIjoyLCJyb3ciOjE2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjksIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoyLjAsInExIjozLjkwMzk0MzI3NjQ2NTk3NywicTMiOjYuNjYyODgyNjkyOTEyNjE2LCJtYXgiOjEwLjAsInNkIjoxLjg5MjM3NDQ1NTgzMDg0MzUsImF2ZyI6NS40MDU0MDU0MDU0MDU0MDV9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiTmV3IFByb2R1Y3RzIG92ZXIgdGltZSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjEyMiwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNjIxIiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJtb250aCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjo4LCJkaXNwbGF5IjoibGluZSIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNmOWQ0NWMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI0IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yNDgiLCJjb2wiOjAsImlkIjo5LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6OH0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo4fV0sImNhcmRfaWQiOjgsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI0OCIsInNpemVZIjo0LCJyb3ciOjE4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJSYXRpbmfjga7lkIjoqIjlgKQiLCJuYW1lIjoic3VtIiwic3BlY2lhbF90eXBlIjoidHlwZS9TY29yZSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MzUsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjo4LjAsInExIjoxMi41NSwicTMiOjIzLjU3NTAwMDAwMDAwMDAwMywibWF4IjozNi4zMDAwMDAwMDAwMDAwMDQsInNkIjo3LjU0Njg5ODQxNDI5NDE1OSwiYXZnIjoxOC43NjQ4NjQ4NjQ4NjQ4NjV9fX19LHsiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlJhdGluZ+OBruW5s+Wdh+WApCIsIm5hbWUiOiJhdmciLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1Njb3JlIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjozMywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIuMDc1LCJxMSI6Mi45NDkxMDcxNDI4NTcxNDI3LCJxMyI6NC4wODAxNzc2Njk1Mjk2NjMsIm1heCI6NC4zMjUsInNkIjowLjY2Nzc1OTIwODQ5MDQ0NzcsImF2ZyI6My41MDYyMjkwODYyMjkwODY0fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlJhdGluZyBvdmVyIHRpbWUiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjoxODYsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjY5NSIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImRhdGV0aW1lLWZpZWxkIixbImZpZWxkLWlkIiw3XSwibW9udGgiXV0sImFnZ3JlZ2F0aW9uIjpbWyJzdW0iLFsiZmllbGQtaWQiLDJdXSxbImF2ZyIsWyJmaWVsZC1pZCIsMl1dXX19LCJpZCI6OSwiZGlzcGxheSI6ImxpbmUiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi5ZCI6KiIIiwi5bmz5Z2HIl0sImdyYXBoLm1ldHJpY3MiOlsic3VtIiwiYXZnIl0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiIzUwOUVFMyIsIiNFRjhDOEMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI5NCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzAzIiwiY29sIjo2LCJpZCI6MTAsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjo5fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjl9XSwiY2FyZF9pZCI6OSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzAzIiwic2l6ZVkiOjQsInJvdyI6MTh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9EYXRlVGltZSIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoibW9udGgiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL0RhdGVUaW1lIjp7ImVhcmxpZXN0IjoiMjAxNi0wNC0yNlQxOToyOTo1NS4xNDciLCJsYXRlc3QiOiIyMDE5LTA0LTE1VDEzOjM0OjE5LjkzMSJ9fX19LHsiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlByaWNl44Gu5ZCI6KiI5YCkIiwibmFtZSI6InN1bSIsInNwZWNpYWxfdHlwZSI6bnVsbCwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjozNywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjEyNi4wNzk2OTU3Mjg4NTI2NywicTEiOjIxMy44MjU4NTQzMjk3MzQxLCJxMyI6Mzk1LjIyNTE2NTkzMTA1OTg1LCJtYXgiOjUwMC45NTg1MTkyNjYyNCwic2QiOjExMC43NzEwOTY3NjYwNzM0NCwiYXZnIjozMDEuMzMxODkwMDk2ODY4OX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiUHJpY2Xjga7lubPlnYflgKQiLCJuYW1lIjoiYXZnIiwic3BlY2lhbF90eXBlIjpudWxsLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjM3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MzYuMzYyODg2NzU2NTA1NDQsInExIjo1Mi4wMzU0MTk4NjU5NTE5LCJxMyI6NjIuMjcxNDQ4NjQyOTkxNzg2LCJtYXgiOjg3LjQ0NjUwODE1MTIxMzg2LCJzZCI6OS45MzgxMjkxMjM4ODA5OTYsImF2ZyI6NTYuMjkxNzcwOTc5MDY1Nzl9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiUHJpY2Ugb3ZlciB0aW1lIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6MjAwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC43MTkiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sIm1vbnRoIl1dLCJhZ2dyZWdhdGlvbiI6W1sic3VtIixbImZpZWxkLWlkIiwzXV0sWyJhdmciLFsiZmllbGQtaWQiLDNdXV19fSwiaWQiOjEwLCJkaXNwbGF5IjoibGluZSIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLlkIjoqIgiLCLlubPlnYciXSwiZ3JhcGgubWV0cmljcyI6WyJzdW0iLCJhdmciXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjNTA5RUUzIiwiIzlDQzE3NyJdfSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzQzIiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4zNTgiLCJjb2wiOjEyLCJpZCI6MTEsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMH0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMH1dLCJjYXJkX2lkIjoxMCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzU4Iiwic2l6ZVkiOjQsInJvdyI6MTh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkYXktb2Ytd2VlayIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MjIuMCwicTEiOjI1LjUsInEzIjozMC43NSwibWF4IjozNi4wLCJzZCI6NC41MDM5NjY1MDU4Mzg0MTQsImF2ZyI6MjguNTcxNDI4NTcxNDI4NTczfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IldlZWtkYXlzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjg0LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42NDEiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImRheS1vZi13ZWVrIl1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV19fSwiaWQiOjExLCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiI0VGOEM4QyJdLCJncmFwaC54X2F4aXMudGl0bGVfdGV4dCI6IkNyZWF0ZWQgQXQgYnkgZGF5IG9mIHRoZSB3ZWVrIn0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM4NCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzkzIiwiY29sIjowLCJpZCI6MTIsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMX0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMX1dLCJjYXJkX2lkIjoxMSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzkzIiwic2l6ZVkiOjQsInJvdyI6MjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJob3VyLW9mLWRheSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoxMiwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIuMCwicTEiOjUuNjU2ODU0MjQ5NDkyMzgxLCJxMyI6MTIuMCwibWF4IjoxNS4wLCJzZCI6My44NDEwNDQ1NDM5MjM2NzA3LCJhdmciOjguMzMzMzMzMzMzMzMzMzM0fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IkhvdXJzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjcxLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42NDkiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImhvdXItb2YtZGF5Il1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV19fSwiaWQiOjEyLCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiI0VGOEM4QyJdLCJncmFwaC54X2F4aXMudGl0bGVfdGV4dCI6IkNyZWF0ZWQgQXQgYnkgaG91ciBvZiB0aGUgZGF5In0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQyNCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDM2IiwiY29sIjo2LCJpZCI6MTMsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMn0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMn1dLCJjYXJkX2lkIjoxMiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDM2Iiwic2l6ZVkiOjQsInJvdyI6MjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkYXktb2YtbW9udGgiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjksIm5pbCUiOjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MywicTEiOjQuNDY0NDY2MDk0MDY3MjYyLCJxMyI6Ny44MzMzMzMzMzMzMzMzMzMsIm1heCI6MTEsInNkIjoyLjQxOTg5OTU4MDI1MDEwMywiYXZnIjo2LjQ1MTYxMjkwMzIyNTgwNn19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJEYXlzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjY1LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNjoxODowNC4yMzUiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImRheS1vZi1tb250aCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxMywiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IGRheSBvZiB0aGUgbW9udGgiLCJncmFwaC5zaG93X3ZhbHVlcyI6ZmFsc2V9LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS40NiIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDY5IiwiY29sIjoxMiwiaWQiOjE0LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTN9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTN9XSwiY2FyZF9pZCI6MTMsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQ2OSIsInNpemVZIjo0LCJyb3ciOjIyfSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoibW9udGgtb2YteWVhciIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo2LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTMuMCwicTEiOjE0LjkwMTkyMzc4ODY0NjY4NCwicTMiOjE4LjE3NzEyNDM0NDQ2NzcwMywibWF4IjoyMS4wLCJzZCI6Mi41MzQ2MDg5MjkyNTE2OTQ3LCJhdmciOjE2LjY2NjY2NjY2NjY2NjY2OH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJNb250aHMgd2hlbiBQcm9kdWN0cyB3ZXJlIGFkZGVkIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6NTMsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjY5OSIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImRhdGV0aW1lLWZpZWxkIixbImZpZWxkLWlkIiw3XSwibW9udGgtb2YteWVhciJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxNCwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IG1vbnRoIG9mIHRoZSB5ZWFyIn0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQ5NSIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTEiLCJjb2wiOjAsImlkIjoxNSwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjE0fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjE0fV0sImNhcmRfaWQiOjE0LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS41MSIsInNpemVZIjo0LCJyb3ciOjI2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoicXVhcnRlci1vZi15ZWFyIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjQsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjo0Ni4wLCJxMSI6NDcuMCwicTMiOjUzLjAsIm1heCI6NTQuMCwic2QiOjMuNjUxNDgzNzE2NzAxMTA3NiwiYXZnIjo1MC4wfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlF1YXJ0ZXJzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjM0LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC43MDMiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sInF1YXJ0ZXItb2YteWVhciJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxNSwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IHF1YXJ0ZXIgb2YgdGhlIHllYXIifSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTQ1IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS41NiIsImNvbCI6NiwiaWQiOjE2LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTV9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTV9XSwiY2FyZF9pZCI6MTUsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjU2Iiwic2l6ZVkiOjQsInJvdyI6MjZ9XSwicGFyYW1fdmFsdWVzIjp7IjYiOnsidmFsdWVzIjpbIkRvb2hpY2tleSIsIkdhZGdldCIsIkdpem1vIiwiV2lkZ2V0Il0sImh1bWFuX3JlYWRhYmxlX3ZhbHVlcyI6W10sImZpZWxkX2lkIjo2fX0sImNhbl93cml0ZSI6dHJ1ZSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInNob3dfaW5fZ2V0dGluZ19zdGFydGVkIjpmYWxzZSwibmFtZSI6IlByb2R1Y3RzIERhc2hib2FyZCIsImNhdmVhdHMiOm51bGwsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjE3LjA1IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImlkIjoxLCJwb3NpdGlvbiI6bnVsbCwicGFyYW1fZmllbGRzIjp7IjYiOnsiaWQiOjYsInRhYmxlX2lkIjoxLCJkaXNwbGF5X25hbWUiOiJDYXRlZ29yeSIsImJhc2VfdHlwZSI6InR5cGUvVGV4dCIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ2F0ZWdvcnkiLCJoYXNfZmllbGRfdmFsdWVzIjoibGlzdCIsIm5hbWVfZmllbGQiOm51bGwsImRpbWVuc2lvbnMiOltdfSwiNyI6eyJpZCI6NywidGFibGVfaWQiOjEsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJiYXNlX3R5cGUiOiJ0eXBlL0RhdGVUaW1lIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsImhhc19maWVsZF92YWx1ZXMiOiJub25lIiwibmFtZV9maWVsZCI6bnVsbCwiZGltZW5zaW9ucyI6W119fSwicGFyYW1ldGVycyI6W3siaWQiOiI1ODU3NTQzOTIiLCJ0eXBlIjoiZGF0ZS9hbGwtb3B0aW9ucyIsIm5hbWUiOiJDcmVhdGVkIEF0Iiwic2x1ZyI6IkNSRUFURURfQVQifSx7ImlkIjoiLTU3Nzc5MTIxMSIsInR5cGUiOiJjYXRlZ29yeSIsIm5hbWUiOiJDYXRlZ29yeSIsInNsdWciOiJDQVRFR09SWSJ9XSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTQuOTciLCJwdWJsaWNfdXVpZCI6bnVsbCwicG9pbnRzX29mX2ludGVyZXN0IjpudWxsfQ== + recorded_at: Wed, 21 Apr 2021 15:28:21 GMT +recorded_with: VCR 6.0.0 diff --git a/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/new_dashboard/success/create_a_new_dashboard.yml b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/new_dashboard/success/create_a_new_dashboard.yml new file mode 100644 index 0000000..1916225 --- /dev/null +++ b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/new_dashboard/success/create_a_new_dashboard.yml @@ -0,0 +1,222 @@ +--- +http_interactions: +- request: + method: post + uri: http://localhost:3030/api/session + body: + encoding: UTF-8 + string: '{"username":"mb@example.com","password":"p@ssw0rd"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 21 Apr 2021 15:28:21 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Wed, 21 Apr 2021 15:28:21 GMT + Strict-Transport-Security: + - max-age=31536000 + Set-Cookie: + - metabase.SESSION=c0af898f-beba-4e75-beb1-899b74896a2d;SameSite=Lax;HttpOnly;Path=/;Max-Age=1209600 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"id":"c0af898f-beba-4e75-beb1-899b74896a2d"}' + recorded_at: Wed, 21 Apr 2021 15:28:21 GMT +- request: + method: get + uri: http://localhost:3030/api/dashboard/1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - c0af898f-beba-4e75-beb1-899b74896a2d + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 21 Apr 2021 15:28:21 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Wed, 21 Apr 2021 15:28:21 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjoxLCJvcmRlcmVkX2NhcmRzIjpbeyJzaXplWCI6MTgsInNlcmllcyI6W10sImNhcmQiOnsicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU0Ljk4MiIsImNvbCI6MCwiaWQiOjEsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGV4dCI6IiMgU3VtbWFyeSIsInZpcnR1YWxfY2FyZCI6eyJuYW1lIjpudWxsLCJkaXNwbGF5IjoidGV4dCIsImRhdGFzZXRfcXVlcnkiOnt9LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fX0sImRhc2hjYXJkLmJhY2tncm91bmQiOmZhbHNlLCJ0ZXh0LmFsaWduX3ZlcnRpY2FsIjoiYm90dG9tIn0sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTQuOTgyIiwic2l6ZVkiOjIsInJvdyI6MH0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoxLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MjAwLjAsInExIjoyMDAuMCwicTMiOjIwMC4wLCJtYXgiOjIwMC4wLCJzZCI6bnVsbCwiYXZnIjoyMDAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJUb3RhbCBQcm9kdWN0cyIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjUwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41MzgiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6MywiZGlzcGxheSI6InNjYWxhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjAxIiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wMzIiLCJjb2wiOjAsImlkIjoyLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6M30seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjozfV0sImNhcmRfaWQiOjMsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjAzMiIsInNpemVZIjo0LCJyb3ciOjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MSwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMCwicTEiOjAuMCwicTMiOjAuMCwibWF4IjowLjAsInNkIjpudWxsLCJhdmciOjAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBhZGRlZCBpbiB0aGUgbGFzdCAzMCBkYXlzIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6MzQsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjU1NCIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiZmlsdGVyIjpbInRpbWUtaW50ZXJ2YWwiLFsiZmllbGQtaWQiLDddLC0zMCwiZGF5Il0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6NCwiZGlzcGxheSI6InNjYWxhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjA2MSIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMDY5IiwiY29sIjo2LCJpZCI6MywicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjR9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6NH1dLCJjYXJkX2lkIjo0LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wNjkiLCJzaXplWSI6NCwicm93IjoyfSx7InNpemVYIjoxOCwic2VyaWVzIjpbXSwiY2FyZCI6eyJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMDg3IiwiY29sIjowLCJpZCI6NCwicGFyYW1ldGVyX21hcHBpbmdzIjpbXSwiY2FyZF9pZCI6bnVsbCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJ0ZXh0IjoiIyBIb3cgdGhlc2UgUHJvZHVjdHMgYXJlIGRpc3RyaWJ1dGVkIiwidmlydHVhbF9jYXJkIjp7Im5hbWUiOm51bGwsImRpc3BsYXkiOiJ0ZXh0IiwiZGF0YXNldF9xdWVyeSI6e30sInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9fSwiZGFzaGNhcmQuYmFja2dyb3VuZCI6ZmFsc2UsInRleHQuYWxpZ25fdmVydGljYWwiOiJib3R0b20ifSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wODciLCJzaXplWSI6Miwicm93Ijo2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJSYXRpbmciLCJuYW1lIjoiUkFUSU5HIiwiZGVzY3JpcHRpb24iOiJUaGUgYXZlcmFnZSByYXRpbmcgdXNlcnMgaGF2ZSBnaXZlbiB0aGUgcHJvZHVjdC4gVGhpcyByYW5nZXMgZnJvbSAxIC0gNSIsInNwZWNpYWxfdHlwZSI6InR5cGUvU2NvcmUiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIzLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MC4wLCJxMSI6My41MTIwNDY1MDUzNDA4NTI1LCJxMyI6NC4yMTYxMjQ5Njk0OTczMTQsIm1heCI6NS4wLCJzZCI6MS4zNjA1NDg4NjU3NDUxNDUyLCJhdmciOjMuNDcxNX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo2LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6Mi4wLCJxMSI6My4wLCJxMyI6NDYuMCwibWF4IjoxMDguMCwic2QiOjM5Ljk3ODMyNzQ2MjA5NzA5LCJhdmciOjMzLjMzMzMzMzMzMzMzMzMzNn19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBieSBSYXRpbmciLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo2OSwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNTY3IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siYmlubmluZy1zdHJhdGVneSIsWyJmaWVsZC1pZCIsMl0sImRlZmF1bHQiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6NSwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIlJBVElORyJdLCJncmFwaC5jb2xvcnMiOlsiI2Y5ZDQ1YyJdfSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTE0IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xMjIiLCJjb2wiOjAsImlkIjo1LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6NX0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo1fV0sImNhcmRfaWQiOjUsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjEyMiIsInNpemVZIjo0LCJyb3ciOjh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlByaWNlIiwibmFtZSI6IlBSSUNFIiwiZGVzY3JpcHRpb24iOiJUaGUgbGlzdCBwcmljZSBvZiB0aGUgcHJvZHVjdC4gTm90ZSB0aGF0IHRoaXMgaXMgbm90IGFsd2F5cyB0aGUgcHJpY2UgdGhlIHByb2R1Y3Qgc29sZCBmb3IgZHVlIHRvIGRpc2NvdW50cywgcHJvbW90aW9ucywgZXRjLiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MTcwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTUuNjkxOTQzNjczOTcwNDM5LCJxMSI6MzcuMjUxNTQ0NjI5MjY0MzQsInEzIjo3NS40NTg5ODA3MTYwOTQ0NywibWF4Ijo5OC44MTkzMzY4NDM2ODE5NCwic2QiOjIxLjcxMTQ4MTU1Nzg1MjA1NywiYXZnIjo1NS43NDYzOTk2Njc5MjA3NH19fSwic3BlY2lhbF90eXBlIjpudWxsfSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjcsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoxMC4wLCJxMSI6MTcuNzUsInEzIjozOS43NSwibWF4Ijo0My4wLCJzZCI6MTIuNjA3NjMxODUzNDYwMDY3LCJhdmciOjI4LjU3MTQyODU3MTQyODU3M319fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBieSBQcmljZSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjQ1LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41NTgiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJiaW5uaW5nLXN0cmF0ZWd5IixbImZpZWxkLWlkIiwzXSwiZGVmYXVsdCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjo2LCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiUFJJQ0UiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE0NiIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTU0IiwiY29sIjo2LCJpZCI6NiwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjZ9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6Nn1dLCJjYXJkX2lkIjo2LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xNTQiLCJzaXplWSI6NCwicm93Ijo4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvVGV4dCIsImRpc3BsYXlfbmFtZSI6IkNhdGVnb3J5IiwibmFtZSI6IkNBVEVHT1JZIiwiZGVzY3JpcHRpb24iOiJUaGUgdHlwZSBvZiBwcm9kdWN0LCB2YWxpZCB2YWx1ZXMgaW5jbHVkZTogRG9vaGlja3ksIEdhZGdldCwgR2l6bW8gYW5kIFdpZGdldCIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ2F0ZWdvcnkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjQsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9UZXh0Ijp7InBlcmNlbnQtanNvbiI6MC4wLCJwZXJjZW50LXVybCI6MC4wLCJwZXJjZW50LWVtYWlsIjowLjAsImF2ZXJhZ2UtbGVuZ3RoIjo2LjM3NX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo0LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6NDIuMCwicTEiOjQ2LjUsInEzIjo1My41LCJtYXgiOjU0LjAsInNkIjo1LjQ3NzIyNTU3NTA1MTY2MSwiYXZnIjo1MC4wfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlByb2R1Y3RzIHBlciBDYXRlZ29yeSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjYwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41MzEiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJmaWVsZC1pZCIsNl1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV0sIm9yZGVyLWJ5IjpbWyJkZXNjIixbImFnZ3JlZ2F0aW9uIiwwXV1dfX0sImlkIjo3LCJkaXNwbGF5Ijoicm93IiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ0FURUdPUlkiXSwiZ3JhcGguY29sb3JzIjpbIiM5Q0MxNzciXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE3OCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTkxIiwiY29sIjoxMiwiaWQiOjcsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjo3fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjd9XSwiY2FyZF9pZCI6NywidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTkxIiwic2l6ZVkiOjgsInJvdyI6OH0seyJzaXplWCI6MTgsInNlcmllcyI6W10sImNhcmQiOnsicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjIwNCIsImNvbCI6MCwiaWQiOjgsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGV4dCI6IiMgVGhlc2UgUHJvZHVjdHMgYWNyb3NzIHRpbWUiLCJ2aXJ0dWFsX2NhcmQiOnsibmFtZSI6bnVsbCwiZGlzcGxheSI6InRleHQiLCJkYXRhc2V0X3F1ZXJ5Ijp7fSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e319LCJkYXNoY2FyZC5iYWNrZ3JvdW5kIjpmYWxzZSwidGV4dC5hbGlnbl92ZXJ0aWNhbCI6ImJvdHRvbSJ9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjIwNCIsInNpemVZIjoyLCJyb3ciOjE2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjksIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoyLjAsInExIjozLjkwMzk0MzI3NjQ2NTk3NywicTMiOjYuNjYyODgyNjkyOTEyNjE2LCJtYXgiOjEwLjAsInNkIjoxLjg5MjM3NDQ1NTgzMDg0MzUsImF2ZyI6NS40MDU0MDU0MDU0MDU0MDV9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiTmV3IFByb2R1Y3RzIG92ZXIgdGltZSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjEyMiwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNjIxIiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJtb250aCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjo4LCJkaXNwbGF5IjoibGluZSIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNmOWQ0NWMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI0IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yNDgiLCJjb2wiOjAsImlkIjo5LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6OH0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo4fV0sImNhcmRfaWQiOjgsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI0OCIsInNpemVZIjo0LCJyb3ciOjE4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJSYXRpbmfjga7lkIjoqIjlgKQiLCJuYW1lIjoic3VtIiwic3BlY2lhbF90eXBlIjoidHlwZS9TY29yZSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MzUsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjo4LjAsInExIjoxMi41NSwicTMiOjIzLjU3NTAwMDAwMDAwMDAwMywibWF4IjozNi4zMDAwMDAwMDAwMDAwMDQsInNkIjo3LjU0Njg5ODQxNDI5NDE1OSwiYXZnIjoxOC43NjQ4NjQ4NjQ4NjQ4NjV9fX19LHsiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlJhdGluZ+OBruW5s+Wdh+WApCIsIm5hbWUiOiJhdmciLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1Njb3JlIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjozMywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIuMDc1LCJxMSI6Mi45NDkxMDcxNDI4NTcxNDI3LCJxMyI6NC4wODAxNzc2Njk1Mjk2NjMsIm1heCI6NC4zMjUsInNkIjowLjY2Nzc1OTIwODQ5MDQ0NzcsImF2ZyI6My41MDYyMjkwODYyMjkwODY0fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlJhdGluZyBvdmVyIHRpbWUiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjoxODYsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjY5NSIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImRhdGV0aW1lLWZpZWxkIixbImZpZWxkLWlkIiw3XSwibW9udGgiXV0sImFnZ3JlZ2F0aW9uIjpbWyJzdW0iLFsiZmllbGQtaWQiLDJdXSxbImF2ZyIsWyJmaWVsZC1pZCIsMl1dXX19LCJpZCI6OSwiZGlzcGxheSI6ImxpbmUiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi5ZCI6KiIIiwi5bmz5Z2HIl0sImdyYXBoLm1ldHJpY3MiOlsic3VtIiwiYXZnIl0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiIzUwOUVFMyIsIiNFRjhDOEMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI5NCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzAzIiwiY29sIjo2LCJpZCI6MTAsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjo5fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjl9XSwiY2FyZF9pZCI6OSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzAzIiwic2l6ZVkiOjQsInJvdyI6MTh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9EYXRlVGltZSIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoibW9udGgiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL0RhdGVUaW1lIjp7ImVhcmxpZXN0IjoiMjAxNi0wNC0yNlQxOToyOTo1NS4xNDciLCJsYXRlc3QiOiIyMDE5LTA0LTE1VDEzOjM0OjE5LjkzMSJ9fX19LHsiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlByaWNl44Gu5ZCI6KiI5YCkIiwibmFtZSI6InN1bSIsInNwZWNpYWxfdHlwZSI6bnVsbCwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjozNywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjEyNi4wNzk2OTU3Mjg4NTI2NywicTEiOjIxMy44MjU4NTQzMjk3MzQxLCJxMyI6Mzk1LjIyNTE2NTkzMTA1OTg1LCJtYXgiOjUwMC45NTg1MTkyNjYyNCwic2QiOjExMC43NzEwOTY3NjYwNzM0NCwiYXZnIjozMDEuMzMxODkwMDk2ODY4OX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiUHJpY2Xjga7lubPlnYflgKQiLCJuYW1lIjoiYXZnIiwic3BlY2lhbF90eXBlIjpudWxsLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjM3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MzYuMzYyODg2NzU2NTA1NDQsInExIjo1Mi4wMzU0MTk4NjU5NTE5LCJxMyI6NjIuMjcxNDQ4NjQyOTkxNzg2LCJtYXgiOjg3LjQ0NjUwODE1MTIxMzg2LCJzZCI6OS45MzgxMjkxMjM4ODA5OTYsImF2ZyI6NTYuMjkxNzcwOTc5MDY1Nzl9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiUHJpY2Ugb3ZlciB0aW1lIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6MjAwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC43MTkiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sIm1vbnRoIl1dLCJhZ2dyZWdhdGlvbiI6W1sic3VtIixbImZpZWxkLWlkIiwzXV0sWyJhdmciLFsiZmllbGQtaWQiLDNdXV19fSwiaWQiOjEwLCJkaXNwbGF5IjoibGluZSIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLlkIjoqIgiLCLlubPlnYciXSwiZ3JhcGgubWV0cmljcyI6WyJzdW0iLCJhdmciXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjNTA5RUUzIiwiIzlDQzE3NyJdfSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzQzIiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4zNTgiLCJjb2wiOjEyLCJpZCI6MTEsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMH0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMH1dLCJjYXJkX2lkIjoxMCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzU4Iiwic2l6ZVkiOjQsInJvdyI6MTh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkYXktb2Ytd2VlayIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MjIuMCwicTEiOjI1LjUsInEzIjozMC43NSwibWF4IjozNi4wLCJzZCI6NC41MDM5NjY1MDU4Mzg0MTQsImF2ZyI6MjguNTcxNDI4NTcxNDI4NTczfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IldlZWtkYXlzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjg0LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42NDEiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImRheS1vZi13ZWVrIl1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV19fSwiaWQiOjExLCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiI0VGOEM4QyJdLCJncmFwaC54X2F4aXMudGl0bGVfdGV4dCI6IkNyZWF0ZWQgQXQgYnkgZGF5IG9mIHRoZSB3ZWVrIn0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM4NCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzkzIiwiY29sIjowLCJpZCI6MTIsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMX0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMX1dLCJjYXJkX2lkIjoxMSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzkzIiwic2l6ZVkiOjQsInJvdyI6MjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJob3VyLW9mLWRheSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoxMiwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIuMCwicTEiOjUuNjU2ODU0MjQ5NDkyMzgxLCJxMyI6MTIuMCwibWF4IjoxNS4wLCJzZCI6My44NDEwNDQ1NDM5MjM2NzA3LCJhdmciOjguMzMzMzMzMzMzMzMzMzM0fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IkhvdXJzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjcxLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42NDkiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImhvdXItb2YtZGF5Il1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV19fSwiaWQiOjEyLCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiI0VGOEM4QyJdLCJncmFwaC54X2F4aXMudGl0bGVfdGV4dCI6IkNyZWF0ZWQgQXQgYnkgaG91ciBvZiB0aGUgZGF5In0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQyNCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDM2IiwiY29sIjo2LCJpZCI6MTMsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMn0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMn1dLCJjYXJkX2lkIjoxMiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDM2Iiwic2l6ZVkiOjQsInJvdyI6MjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkYXktb2YtbW9udGgiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjksIm5pbCUiOjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MywicTEiOjQuNDY0NDY2MDk0MDY3MjYyLCJxMyI6Ny44MzMzMzMzMzMzMzMzMzMsIm1heCI6MTEsInNkIjoyLjQxOTg5OTU4MDI1MDEwMywiYXZnIjo2LjQ1MTYxMjkwMzIyNTgwNn19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJEYXlzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjY1LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNjoxODowNC4yMzUiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImRheS1vZi1tb250aCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxMywiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IGRheSBvZiB0aGUgbW9udGgiLCJncmFwaC5zaG93X3ZhbHVlcyI6ZmFsc2V9LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS40NiIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDY5IiwiY29sIjoxMiwiaWQiOjE0LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTN9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTN9XSwiY2FyZF9pZCI6MTMsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQ2OSIsInNpemVZIjo0LCJyb3ciOjIyfSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoibW9udGgtb2YteWVhciIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo2LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTMuMCwicTEiOjE0LjkwMTkyMzc4ODY0NjY4NCwicTMiOjE4LjE3NzEyNDM0NDQ2NzcwMywibWF4IjoyMS4wLCJzZCI6Mi41MzQ2MDg5MjkyNTE2OTQ3LCJhdmciOjE2LjY2NjY2NjY2NjY2NjY2OH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJNb250aHMgd2hlbiBQcm9kdWN0cyB3ZXJlIGFkZGVkIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6NTMsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjY5OSIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImRhdGV0aW1lLWZpZWxkIixbImZpZWxkLWlkIiw3XSwibW9udGgtb2YteWVhciJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxNCwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IG1vbnRoIG9mIHRoZSB5ZWFyIn0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQ5NSIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTEiLCJjb2wiOjAsImlkIjoxNSwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjE0fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjE0fV0sImNhcmRfaWQiOjE0LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS41MSIsInNpemVZIjo0LCJyb3ciOjI2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoicXVhcnRlci1vZi15ZWFyIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjQsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjo0Ni4wLCJxMSI6NDcuMCwicTMiOjUzLjAsIm1heCI6NTQuMCwic2QiOjMuNjUxNDgzNzE2NzAxMTA3NiwiYXZnIjo1MC4wfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlF1YXJ0ZXJzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjM0LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC43MDMiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sInF1YXJ0ZXItb2YteWVhciJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxNSwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IHF1YXJ0ZXIgb2YgdGhlIHllYXIifSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTQ1IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS41NiIsImNvbCI6NiwiaWQiOjE2LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTV9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTV9XSwiY2FyZF9pZCI6MTUsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjU2Iiwic2l6ZVkiOjQsInJvdyI6MjZ9XSwicGFyYW1fdmFsdWVzIjp7IjYiOnsidmFsdWVzIjpbIkRvb2hpY2tleSIsIkdhZGdldCIsIkdpem1vIiwiV2lkZ2V0Il0sImh1bWFuX3JlYWRhYmxlX3ZhbHVlcyI6W10sImZpZWxkX2lkIjo2fX0sImNhbl93cml0ZSI6dHJ1ZSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInNob3dfaW5fZ2V0dGluZ19zdGFydGVkIjpmYWxzZSwibmFtZSI6IlByb2R1Y3RzIERhc2hib2FyZCIsImNhdmVhdHMiOm51bGwsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjE3LjA1IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImlkIjoxLCJwb3NpdGlvbiI6bnVsbCwicGFyYW1fZmllbGRzIjp7IjYiOnsiaWQiOjYsInRhYmxlX2lkIjoxLCJkaXNwbGF5X25hbWUiOiJDYXRlZ29yeSIsImJhc2VfdHlwZSI6InR5cGUvVGV4dCIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ2F0ZWdvcnkiLCJoYXNfZmllbGRfdmFsdWVzIjoibGlzdCIsIm5hbWVfZmllbGQiOm51bGwsImRpbWVuc2lvbnMiOltdfSwiNyI6eyJpZCI6NywidGFibGVfaWQiOjEsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJiYXNlX3R5cGUiOiJ0eXBlL0RhdGVUaW1lIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsImhhc19maWVsZF92YWx1ZXMiOiJub25lIiwibmFtZV9maWVsZCI6bnVsbCwiZGltZW5zaW9ucyI6W119fSwicGFyYW1ldGVycyI6W3siaWQiOiI1ODU3NTQzOTIiLCJ0eXBlIjoiZGF0ZS9hbGwtb3B0aW9ucyIsIm5hbWUiOiJDcmVhdGVkIEF0Iiwic2x1ZyI6IkNSRUFURURfQVQifSx7ImlkIjoiLTU3Nzc5MTIxMSIsInR5cGUiOiJjYXRlZ29yeSIsIm5hbWUiOiJDYXRlZ29yeSIsInNsdWciOiJDQVRFR09SWSJ9XSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTQuOTciLCJwdWJsaWNfdXVpZCI6bnVsbCwicG9pbnRzX29mX2ludGVyZXN0IjpudWxsfQ== + recorded_at: Wed, 21 Apr 2021 15:28:21 GMT +- request: + method: post + uri: http://localhost:3030/api/dashboard + body: + encoding: UTF-8 + string: '{"description":null,"archived":false,"collection_position":1,"ordered_cards":[{"sizeX":18,"series":[],"card":{"query_average_duration":null},"updated_at":"2020-06-07T05:41:54.982","col":0,"id":1,"parameter_mappings":[],"card_id":null,"visualization_settings":{"text":"# + Summary","virtual_card":{"name":null,"display":"text","dataset_query":{},"visualization_settings":{}},"dashcard.background":false,"text.align_vertical":"bottom"},"dashboard_id":1,"created_at":"2020-06-07T05:41:54.982","sizeY":2,"row":0},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":1,"nil%":0.0},"type":{"type/Number":{"min":200.0,"q1":200.0,"q3":200.0,"max":200.0,"sd":null,"avg":200.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Total + Products","query_average_duration":50,"creator_id":1,"updated_at":"2020-06-07T05:43:00.538","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"aggregation":[["count"]]}},"id":3,"display":"scalar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":[]},"created_at":"2020-06-07T05:41:55.01","public_uuid":null},"updated_at":"2020-06-07T05:41:55.032","col":0,"id":2,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":3},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":3}],"card_id":3,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.032","sizeY":4,"row":2},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":1,"nil%":0.0},"type":{"type/Number":{"min":0.0,"q1":0.0,"q3":0.0,"max":0.0,"sd":null,"avg":0.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + added in the last 30 days","query_average_duration":34,"creator_id":1,"updated_at":"2020-06-07T05:43:00.554","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"filter":["time-interval",["field-id",7],-30,"day"],"aggregation":[["count"]]}},"id":4,"display":"scalar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":[]},"created_at":"2020-06-07T05:41:55.061","public_uuid":null},"updated_at":"2020-06-07T05:41:55.069","col":6,"id":3,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":4},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":4}],"card_id":4,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.069","sizeY":4,"row":2},{"sizeX":18,"series":[],"card":{"query_average_duration":null},"updated_at":"2020-06-07T05:41:55.087","col":0,"id":4,"parameter_mappings":[],"card_id":null,"visualization_settings":{"text":"# + How these Products are distributed","virtual_card":{"name":null,"display":"text","dataset_query":{},"visualization_settings":{}},"dashcard.background":false,"text.align_vertical":"bottom"},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.087","sizeY":2,"row":6},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Float","display_name":"Rating","name":"RATING","description":"The + average rating users have given the product. This ranges from 1 - 5","special_type":"type/Score","fingerprint":{"global":{"distinct-count":23,"nil%":0.0},"type":{"type/Number":{"min":0.0,"q1":3.5120465053408525,"q3":4.216124969497314,"max":5.0,"sd":1.3605488657451452,"avg":3.4715}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":6,"nil%":0.0},"type":{"type/Number":{"min":2.0,"q1":3.0,"q3":46.0,"max":108.0,"sd":39.97832746209709,"avg":33.333333333333336}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + by Rating","query_average_duration":69,"creator_id":1,"updated_at":"2020-06-07T05:43:00.567","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["binning-strategy",["field-id",2],"default"]],"aggregation":[["count"]]}},"id":5,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["RATING"],"graph.colors":["#f9d45c"]},"created_at":"2020-06-07T05:41:55.114","public_uuid":null},"updated_at":"2020-06-07T05:41:55.122","col":0,"id":5,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":5},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":5}],"card_id":5,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.122","sizeY":4,"row":8},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Float","display_name":"Price","name":"PRICE","description":"The + list price of the product. Note that this is not always the price the product + sold for due to discounts, promotions, etc.","fingerprint":{"global":{"distinct-count":170,"nil%":0.0},"type":{"type/Number":{"min":15.691943673970439,"q1":37.25154462926434,"q3":75.45898071609447,"max":98.81933684368194,"sd":21.711481557852057,"avg":55.74639966792074}}},"special_type":null},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":7,"nil%":0.0},"type":{"type/Number":{"min":10.0,"q1":17.75,"q3":39.75,"max":43.0,"sd":12.607631853460067,"avg":28.571428571428573}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + by Price","query_average_duration":45,"creator_id":1,"updated_at":"2020-06-07T05:43:00.558","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["binning-strategy",["field-id",3],"default"]],"aggregation":[["count"]]}},"id":6,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["PRICE"],"graph.colors":["#EF8C8C"]},"created_at":"2020-06-07T05:41:55.146","public_uuid":null},"updated_at":"2020-06-07T05:41:55.154","col":6,"id":6,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":6},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":6}],"card_id":6,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.154","sizeY":4,"row":8},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Text","display_name":"Category","name":"CATEGORY","description":"The + type of product, valid values include: Doohicky, Gadget, Gizmo and Widget","special_type":"type/Category","fingerprint":{"global":{"distinct-count":4,"nil%":0.0},"type":{"type/Text":{"percent-json":0.0,"percent-url":0.0,"percent-email":0.0,"average-length":6.375}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":4,"nil%":0.0},"type":{"type/Number":{"min":42.0,"q1":46.5,"q3":53.5,"max":54.0,"sd":5.477225575051661,"avg":50.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + per Category","query_average_duration":60,"creator_id":1,"updated_at":"2020-06-07T05:43:00.531","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["field-id",6]],"aggregation":[["count"]],"order-by":[["desc",["aggregation",0]]]}},"id":7,"display":"row","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CATEGORY"],"graph.colors":["#9CC177"]},"created_at":"2020-06-07T05:41:55.178","public_uuid":null},"updated_at":"2020-06-07T05:41:55.191","col":12,"id":7,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":7},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":7}],"card_id":7,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.191","sizeY":8,"row":8},{"sizeX":18,"series":[],"card":{"query_average_duration":null},"updated_at":"2020-06-07T05:41:55.204","col":0,"id":8,"parameter_mappings":[],"card_id":null,"visualization_settings":{"text":"# + These Products across time","virtual_card":{"name":null,"display":"text","dataset_query":{},"visualization_settings":{}},"dashcard.background":false,"text.align_vertical":"bottom"},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.204","sizeY":2,"row":16},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":9,"nil%":0.0},"type":{"type/Number":{"min":2.0,"q1":3.903943276465977,"q3":6.662882692912616,"max":10.0,"sd":1.8923744558308435,"avg":5.405405405405405}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"New + Products over time","query_average_duration":122,"creator_id":1,"updated_at":"2020-06-07T05:43:00.621","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month"]],"aggregation":[["count"]]}},"id":8,"display":"line","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#f9d45c"]},"created_at":"2020-06-07T05:41:55.24","public_uuid":null},"updated_at":"2020-06-07T05:41:55.248","col":0,"id":9,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":8},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":8}],"card_id":8,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.248","sizeY":4,"row":18},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/Float","display_name":"Ratingの合計値","name":"sum","special_type":"type/Score","fingerprint":{"global":{"distinct-count":35,"nil%":0.0},"type":{"type/Number":{"min":8.0,"q1":12.55,"q3":23.575000000000003,"max":36.300000000000004,"sd":7.546898414294159,"avg":18.764864864864865}}}},{"base_type":"type/Float","display_name":"Ratingの平均値","name":"avg","special_type":"type/Score","fingerprint":{"global":{"distinct-count":33,"nil%":0.0},"type":{"type/Number":{"min":2.075,"q1":2.9491071428571427,"q3":4.080177669529663,"max":4.325,"sd":0.6677592084904477,"avg":3.5062290862290864}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Rating + over time","query_average_duration":186,"creator_id":1,"updated_at":"2020-06-07T05:43:00.695","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month"]],"aggregation":[["sum",["field-id",2]],["avg",["field-id",2]]]}},"id":9,"display":"line","visualization_settings":{"graph.series_labels":["合計","平均"],"graph.metrics":["sum","avg"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#509EE3","#EF8C8C"]},"created_at":"2020-06-07T05:41:55.294","public_uuid":null},"updated_at":"2020-06-07T05:41:55.303","col":6,"id":10,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":9},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":9}],"card_id":9,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.303","sizeY":4,"row":18},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/Float","display_name":"Priceの合計値","name":"sum","special_type":null,"fingerprint":{"global":{"distinct-count":37,"nil%":0.0},"type":{"type/Number":{"min":126.07969572885267,"q1":213.8258543297341,"q3":395.22516593105985,"max":500.95851926624,"sd":110.77109676607344,"avg":301.3318900968689}}}},{"base_type":"type/Float","display_name":"Priceの平均値","name":"avg","special_type":null,"fingerprint":{"global":{"distinct-count":37,"nil%":0.0},"type":{"type/Number":{"min":36.36288675650544,"q1":52.0354198659519,"q3":62.271448642991786,"max":87.44650815121386,"sd":9.938129123880996,"avg":56.29177097906579}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Price + over time","query_average_duration":200,"creator_id":1,"updated_at":"2020-06-07T05:43:00.719","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month"]],"aggregation":[["sum",["field-id",3]],["avg",["field-id",3]]]}},"id":10,"display":"line","visualization_settings":{"graph.series_labels":["合計","平均"],"graph.metrics":["sum","avg"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#509EE3","#9CC177"]},"created_at":"2020-06-07T05:41:55.343","public_uuid":null},"updated_at":"2020-06-07T05:41:55.358","col":12,"id":11,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":10},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":10}],"card_id":10,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.358","sizeY":4,"row":18},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"day-of-week","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":7,"nil%":0.0},"type":{"type/Number":{"min":22.0,"q1":25.5,"q3":30.75,"max":36.0,"sd":4.503966505838414,"avg":28.571428571428573}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Weekdays + when Products were added","query_average_duration":84,"creator_id":1,"updated_at":"2020-06-07T05:43:00.641","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"day-of-week"]],"aggregation":[["count"]]}},"id":11,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by day of the week"},"created_at":"2020-06-07T05:41:55.384","public_uuid":null},"updated_at":"2020-06-07T05:41:55.393","col":0,"id":12,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":11},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":11}],"card_id":11,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.393","sizeY":4,"row":22},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"hour-of-day","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":12,"nil%":0.0},"type":{"type/Number":{"min":2.0,"q1":5.656854249492381,"q3":12.0,"max":15.0,"sd":3.8410445439236707,"avg":8.333333333333334}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Hours + when Products were added","query_average_duration":71,"creator_id":1,"updated_at":"2020-06-07T05:43:00.649","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"hour-of-day"]],"aggregation":[["count"]]}},"id":12,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by hour of the day"},"created_at":"2020-06-07T05:41:55.424","public_uuid":null},"updated_at":"2020-06-07T05:41:55.436","col":6,"id":13,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":12},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":12}],"card_id":12,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.436","sizeY":4,"row":22},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"day-of-month","fingerprint":{"global":{"distinct-count":200,"nil%":0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":9,"nil%":0},"type":{"type/Number":{"min":3,"q1":4.464466094067262,"q3":7.833333333333333,"max":11,"sd":2.419899580250103,"avg":6.451612903225806}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Days + when Products were added","query_average_duration":65,"creator_id":1,"updated_at":"2020-06-07T06:18:04.235","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"day-of-month"]],"aggregation":[["count"]]}},"id":13,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by day of the month","graph.show_values":false},"created_at":"2020-06-07T05:41:55.46","public_uuid":null},"updated_at":"2020-06-07T05:41:55.469","col":12,"id":14,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":13},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":13}],"card_id":13,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.469","sizeY":4,"row":22},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month-of-year","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":6,"nil%":0.0},"type":{"type/Number":{"min":13.0,"q1":14.901923788646684,"q3":18.177124344467703,"max":21.0,"sd":2.5346089292516947,"avg":16.666666666666668}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Months + when Products were added","query_average_duration":53,"creator_id":1,"updated_at":"2020-06-07T05:43:00.699","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month-of-year"]],"aggregation":[["count"]]}},"id":14,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by month of the year"},"created_at":"2020-06-07T05:41:55.495","public_uuid":null},"updated_at":"2020-06-07T05:41:55.51","col":0,"id":15,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":14},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":14}],"card_id":14,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.51","sizeY":4,"row":26},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"quarter-of-year","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":4,"nil%":0.0},"type":{"type/Number":{"min":46.0,"q1":47.0,"q3":53.0,"max":54.0,"sd":3.6514837167011076,"avg":50.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Quarters + when Products were added","query_average_duration":34,"creator_id":1,"updated_at":"2020-06-07T05:43:00.703","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"quarter-of-year"]],"aggregation":[["count"]]}},"id":15,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by quarter of the year"},"created_at":"2020-06-07T05:41:55.545","public_uuid":null},"updated_at":"2020-06-07T05:41:55.56","col":6,"id":16,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":15},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":15}],"card_id":15,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.56","sizeY":4,"row":26}],"param_values":{"6":{"values":["Doohickey","Gadget","Gizmo","Widget"],"human_readable_values":[],"field_id":6}},"can_write":true,"enable_embedding":false,"collection_id":4,"show_in_getting_started":false,"name":"Products + Dashboard","caveats":null,"creator_id":1,"updated_at":"2020-06-07T05:43:17.05","made_public_by_id":null,"embedding_params":null,"id":1,"position":null,"param_fields":{"6":{"id":6,"table_id":1,"display_name":"Category","base_type":"type/Text","special_type":"type/Category","has_field_values":"list","name_field":null,"dimensions":[]},"7":{"id":7,"table_id":1,"display_name":"Created + At","base_type":"type/DateTime","special_type":"type/CreationTimestamp","has_field_values":"none","name_field":null,"dimensions":[]}},"parameters":[{"id":"585754392","type":"date/all-options","name":"Created + At","slug":"CREATED_AT"},{"id":"-577791211","type":"category","name":"Category","slug":"CATEGORY"}],"created_at":"2020-06-07T05:41:54.97","public_uuid":null,"points_of_interest":null}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - c0af898f-beba-4e75-beb1-899b74896a2d + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 21 Apr 2021 15:28:21 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Wed, 21 Apr 2021 15:28:21 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"description":null,"archived":false,"collection_position":1,"enable_embedding":false,"collection_id":4,"show_in_getting_started":false,"name":"Products + Dashboard","caveats":null,"creator_id":1,"updated_at":"2021-04-21T15:28:21.293","made_public_by_id":null,"embedding_params":null,"id":5,"position":null,"parameters":[{"id":"585754392","type":"date/all-options","name":"Created + At","slug":"CREATED_AT"},{"id":"-577791211","type":"category","name":"Category","slug":"CATEGORY"}],"created_at":"2021-04-21T15:28:21.293","public_uuid":null,"points_of_interest":null}' + recorded_at: Wed, 21 Apr 2021 15:28:21 GMT +recorded_with: VCR 6.0.0 From e50425601c957b5ccb6a669a9f91782cea0fb4aa Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Wed, 21 Apr 2021 18:24:37 -0300 Subject: [PATCH 09/13] Add ability to copy a dashboard --- lib/metabase/endpoint/dashboard.rb | 9 + spec/metabase/endpoint/dashboard_spec.rb | 10 + .../success/create_a_copy_dashboard.yml | 222 ++++++++++++++++++ 3 files changed, 241 insertions(+) create mode 100644 spec/vcr_cassettes/Metabase_Endpoint_Dashboard/copy_dashboard/success/create_a_copy_dashboard.yml diff --git a/lib/metabase/endpoint/dashboard.rb b/lib/metabase/endpoint/dashboard.rb index b689b4b..f708106 100644 --- a/lib/metabase/endpoint/dashboard.rb +++ b/lib/metabase/endpoint/dashboard.rb @@ -30,6 +30,15 @@ def dashboard(dashboard_id, **params) def new_dashboard(**params) post('/api/dashboard', **params) end + + # Copy a dashboard. + # + # @param params [Hash] Query string + # @return [Hash] Parsed response JSON + # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#post-apidashboardfrom-dashboard-idcopy + def copy_dashboard(from_dashboard_id, **params) + post("/api/dashboard/#{from_dashboard_id}/copy", **params) + end end end end diff --git a/spec/metabase/endpoint/dashboard_spec.rb b/spec/metabase/endpoint/dashboard_spec.rb index d5aeff4..e578fd5 100644 --- a/spec/metabase/endpoint/dashboard_spec.rb +++ b/spec/metabase/endpoint/dashboard_spec.rb @@ -31,4 +31,14 @@ end end end + + describe 'copy_dashboard', vcr: true do + context 'success' do + it 'create a copy dashboard' do + dashboard = client.dashboard(dashboard_id) + copy_dashboard = client.copy_dashboard(dashboard_id, **dashboard) + expect(dashboard).to be_kind_of(Hash) + end + end + end end diff --git a/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/copy_dashboard/success/create_a_copy_dashboard.yml b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/copy_dashboard/success/create_a_copy_dashboard.yml new file mode 100644 index 0000000..d9844d5 --- /dev/null +++ b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/copy_dashboard/success/create_a_copy_dashboard.yml @@ -0,0 +1,222 @@ +--- +http_interactions: +- request: + method: post + uri: http://localhost:3030/api/session + body: + encoding: UTF-8 + string: '{"username":"mb@example.com","password":"p@ssw0rd"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 21 Apr 2021 21:23:47 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Wed, 21 Apr 2021 21:23:47 GMT + Strict-Transport-Security: + - max-age=31536000 + Set-Cookie: + - metabase.SESSION=d48d43e2-cdc1-4045-871b-4371422d1a42;SameSite=Lax;HttpOnly;Path=/;Max-Age=1209600 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"id":"d48d43e2-cdc1-4045-871b-4371422d1a42"}' + recorded_at: Wed, 21 Apr 2021 21:23:47 GMT +- request: + method: get + uri: http://localhost:3030/api/dashboard/1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - d48d43e2-cdc1-4045-871b-4371422d1a42 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 21 Apr 2021 21:23:47 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Wed, 21 Apr 2021 21:23:48 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjoyLCJvcmRlcmVkX2NhcmRzIjpbeyJzaXplWCI6MTgsInNlcmllcyI6W10sImNhcmQiOnsicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU0Ljk4MiIsImNvbCI6MCwiaWQiOjEsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGV4dCI6IiMgU3VtbWFyeSIsInZpcnR1YWxfY2FyZCI6eyJuYW1lIjpudWxsLCJkaXNwbGF5IjoidGV4dCIsImRhdGFzZXRfcXVlcnkiOnt9LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fX0sImRhc2hjYXJkLmJhY2tncm91bmQiOmZhbHNlLCJ0ZXh0LmFsaWduX3ZlcnRpY2FsIjoiYm90dG9tIn0sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTQuOTgyIiwic2l6ZVkiOjIsInJvdyI6MH0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoxLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MjAwLjAsInExIjoyMDAuMCwicTMiOjIwMC4wLCJtYXgiOjIwMC4wLCJzZCI6bnVsbCwiYXZnIjoyMDAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJUb3RhbCBQcm9kdWN0cyIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjUwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41MzgiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6MywiZGlzcGxheSI6InNjYWxhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjAxIiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wMzIiLCJjb2wiOjAsImlkIjoyLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6M30seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjozfV0sImNhcmRfaWQiOjMsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjAzMiIsInNpemVZIjo0LCJyb3ciOjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MSwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMCwicTEiOjAuMCwicTMiOjAuMCwibWF4IjowLjAsInNkIjpudWxsLCJhdmciOjAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBhZGRlZCBpbiB0aGUgbGFzdCAzMCBkYXlzIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6MzQsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjU1NCIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiZmlsdGVyIjpbInRpbWUtaW50ZXJ2YWwiLFsiZmllbGQtaWQiLDddLC0zMCwiZGF5Il0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6NCwiZGlzcGxheSI6InNjYWxhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjA2MSIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMDY5IiwiY29sIjo2LCJpZCI6MywicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjR9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6NH1dLCJjYXJkX2lkIjo0LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wNjkiLCJzaXplWSI6NCwicm93IjoyfSx7InNpemVYIjoxOCwic2VyaWVzIjpbXSwiY2FyZCI6eyJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMDg3IiwiY29sIjowLCJpZCI6NCwicGFyYW1ldGVyX21hcHBpbmdzIjpbXSwiY2FyZF9pZCI6bnVsbCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJ0ZXh0IjoiIyBIb3cgdGhlc2UgUHJvZHVjdHMgYXJlIGRpc3RyaWJ1dGVkIiwidmlydHVhbF9jYXJkIjp7Im5hbWUiOm51bGwsImRpc3BsYXkiOiJ0ZXh0IiwiZGF0YXNldF9xdWVyeSI6e30sInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9fSwiZGFzaGNhcmQuYmFja2dyb3VuZCI6ZmFsc2UsInRleHQuYWxpZ25fdmVydGljYWwiOiJib3R0b20ifSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wODciLCJzaXplWSI6Miwicm93Ijo2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJSYXRpbmciLCJuYW1lIjoiUkFUSU5HIiwiZGVzY3JpcHRpb24iOiJUaGUgYXZlcmFnZSByYXRpbmcgdXNlcnMgaGF2ZSBnaXZlbiB0aGUgcHJvZHVjdC4gVGhpcyByYW5nZXMgZnJvbSAxIC0gNSIsInNwZWNpYWxfdHlwZSI6InR5cGUvU2NvcmUiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIzLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MC4wLCJxMSI6My41MTIwNDY1MDUzNDA4NTI1LCJxMyI6NC4yMTYxMjQ5Njk0OTczMTQsIm1heCI6NS4wLCJzZCI6MS4zNjA1NDg4NjU3NDUxNDUyLCJhdmciOjMuNDcxNX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo2LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6Mi4wLCJxMSI6My4wLCJxMyI6NDYuMCwibWF4IjoxMDguMCwic2QiOjM5Ljk3ODMyNzQ2MjA5NzA5LCJhdmciOjMzLjMzMzMzMzMzMzMzMzMzNn19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBieSBSYXRpbmciLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo2OSwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNTY3IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siYmlubmluZy1zdHJhdGVneSIsWyJmaWVsZC1pZCIsMl0sImRlZmF1bHQiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6NSwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIlJBVElORyJdLCJncmFwaC5jb2xvcnMiOlsiI2Y5ZDQ1YyJdfSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTE0IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xMjIiLCJjb2wiOjAsImlkIjo1LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6NX0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo1fV0sImNhcmRfaWQiOjUsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjEyMiIsInNpemVZIjo0LCJyb3ciOjh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlByaWNlIiwibmFtZSI6IlBSSUNFIiwiZGVzY3JpcHRpb24iOiJUaGUgbGlzdCBwcmljZSBvZiB0aGUgcHJvZHVjdC4gTm90ZSB0aGF0IHRoaXMgaXMgbm90IGFsd2F5cyB0aGUgcHJpY2UgdGhlIHByb2R1Y3Qgc29sZCBmb3IgZHVlIHRvIGRpc2NvdW50cywgcHJvbW90aW9ucywgZXRjLiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MTcwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTUuNjkxOTQzNjczOTcwNDM5LCJxMSI6MzcuMjUxNTQ0NjI5MjY0MzQsInEzIjo3NS40NTg5ODA3MTYwOTQ0NywibWF4Ijo5OC44MTkzMzY4NDM2ODE5NCwic2QiOjIxLjcxMTQ4MTU1Nzg1MjA1NywiYXZnIjo1NS43NDYzOTk2Njc5MjA3NH19fSwic3BlY2lhbF90eXBlIjpudWxsfSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjcsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoxMC4wLCJxMSI6MTcuNzUsInEzIjozOS43NSwibWF4Ijo0My4wLCJzZCI6MTIuNjA3NjMxODUzNDYwMDY3LCJhdmciOjI4LjU3MTQyODU3MTQyODU3M319fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBieSBQcmljZSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjQ1LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41NTgiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJiaW5uaW5nLXN0cmF0ZWd5IixbImZpZWxkLWlkIiwzXSwiZGVmYXVsdCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjo2LCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiUFJJQ0UiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE0NiIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTU0IiwiY29sIjo2LCJpZCI6NiwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjZ9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6Nn1dLCJjYXJkX2lkIjo2LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xNTQiLCJzaXplWSI6NCwicm93Ijo4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvVGV4dCIsImRpc3BsYXlfbmFtZSI6IkNhdGVnb3J5IiwibmFtZSI6IkNBVEVHT1JZIiwiZGVzY3JpcHRpb24iOiJUaGUgdHlwZSBvZiBwcm9kdWN0LCB2YWxpZCB2YWx1ZXMgaW5jbHVkZTogRG9vaGlja3ksIEdhZGdldCwgR2l6bW8gYW5kIFdpZGdldCIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ2F0ZWdvcnkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjQsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9UZXh0Ijp7InBlcmNlbnQtanNvbiI6MC4wLCJwZXJjZW50LXVybCI6MC4wLCJwZXJjZW50LWVtYWlsIjowLjAsImF2ZXJhZ2UtbGVuZ3RoIjo2LjM3NX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo0LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6NDIuMCwicTEiOjQ2LjUsInEzIjo1My41LCJtYXgiOjU0LjAsInNkIjo1LjQ3NzIyNTU3NTA1MTY2MSwiYXZnIjo1MC4wfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlByb2R1Y3RzIHBlciBDYXRlZ29yeSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjYwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41MzEiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJmaWVsZC1pZCIsNl1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV0sIm9yZGVyLWJ5IjpbWyJkZXNjIixbImFnZ3JlZ2F0aW9uIiwwXV1dfX0sImlkIjo3LCJkaXNwbGF5Ijoicm93IiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ0FURUdPUlkiXSwiZ3JhcGguY29sb3JzIjpbIiM5Q0MxNzciXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE3OCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTkxIiwiY29sIjoxMiwiaWQiOjcsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjo3fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjd9XSwiY2FyZF9pZCI6NywidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTkxIiwic2l6ZVkiOjgsInJvdyI6OH0seyJzaXplWCI6MTgsInNlcmllcyI6W10sImNhcmQiOnsicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjIwNCIsImNvbCI6MCwiaWQiOjgsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGV4dCI6IiMgVGhlc2UgUHJvZHVjdHMgYWNyb3NzIHRpbWUiLCJ2aXJ0dWFsX2NhcmQiOnsibmFtZSI6bnVsbCwiZGlzcGxheSI6InRleHQiLCJkYXRhc2V0X3F1ZXJ5Ijp7fSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e319LCJkYXNoY2FyZC5iYWNrZ3JvdW5kIjpmYWxzZSwidGV4dC5hbGlnbl92ZXJ0aWNhbCI6ImJvdHRvbSJ9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjIwNCIsInNpemVZIjoyLCJyb3ciOjE2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjksIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoyLjAsInExIjozLjkwMzk0MzI3NjQ2NTk3NywicTMiOjYuNjYyODgyNjkyOTEyNjE2LCJtYXgiOjEwLjAsInNkIjoxLjg5MjM3NDQ1NTgzMDg0MzUsImF2ZyI6NS40MDU0MDU0MDU0MDU0MDV9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiTmV3IFByb2R1Y3RzIG92ZXIgdGltZSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjEyMiwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNjIxIiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJtb250aCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjo4LCJkaXNwbGF5IjoibGluZSIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNmOWQ0NWMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI0IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yNDgiLCJjb2wiOjAsImlkIjo5LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6OH0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo4fV0sImNhcmRfaWQiOjgsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI0OCIsInNpemVZIjo0LCJyb3ciOjE4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJSYXRpbmfjga7lkIjoqIjlgKQiLCJuYW1lIjoic3VtIiwic3BlY2lhbF90eXBlIjoidHlwZS9TY29yZSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MzUsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjo4LjAsInExIjoxMi41NSwicTMiOjIzLjU3NTAwMDAwMDAwMDAwMywibWF4IjozNi4zMDAwMDAwMDAwMDAwMDQsInNkIjo3LjU0Njg5ODQxNDI5NDE1OSwiYXZnIjoxOC43NjQ4NjQ4NjQ4NjQ4NjV9fX19LHsiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlJhdGluZ+OBruW5s+Wdh+WApCIsIm5hbWUiOiJhdmciLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1Njb3JlIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjozMywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIuMDc1LCJxMSI6Mi45NDkxMDcxNDI4NTcxNDI3LCJxMyI6NC4wODAxNzc2Njk1Mjk2NjMsIm1heCI6NC4zMjUsInNkIjowLjY2Nzc1OTIwODQ5MDQ0NzcsImF2ZyI6My41MDYyMjkwODYyMjkwODY0fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlJhdGluZyBvdmVyIHRpbWUiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjoxODYsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjY5NSIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImRhdGV0aW1lLWZpZWxkIixbImZpZWxkLWlkIiw3XSwibW9udGgiXV0sImFnZ3JlZ2F0aW9uIjpbWyJzdW0iLFsiZmllbGQtaWQiLDJdXSxbImF2ZyIsWyJmaWVsZC1pZCIsMl1dXX19LCJpZCI6OSwiZGlzcGxheSI6ImxpbmUiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi5ZCI6KiIIiwi5bmz5Z2HIl0sImdyYXBoLm1ldHJpY3MiOlsic3VtIiwiYXZnIl0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiIzUwOUVFMyIsIiNFRjhDOEMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI5NCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzAzIiwiY29sIjo2LCJpZCI6MTAsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjo5fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjl9XSwiY2FyZF9pZCI6OSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzAzIiwic2l6ZVkiOjQsInJvdyI6MTh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9EYXRlVGltZSIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoibW9udGgiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL0RhdGVUaW1lIjp7ImVhcmxpZXN0IjoiMjAxNi0wNC0yNlQxOToyOTo1NS4xNDciLCJsYXRlc3QiOiIyMDE5LTA0LTE1VDEzOjM0OjE5LjkzMSJ9fX19LHsiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlByaWNl44Gu5ZCI6KiI5YCkIiwibmFtZSI6InN1bSIsInNwZWNpYWxfdHlwZSI6bnVsbCwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjozNywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjEyNi4wNzk2OTU3Mjg4NTI2NywicTEiOjIxMy44MjU4NTQzMjk3MzQxLCJxMyI6Mzk1LjIyNTE2NTkzMTA1OTg1LCJtYXgiOjUwMC45NTg1MTkyNjYyNCwic2QiOjExMC43NzEwOTY3NjYwNzM0NCwiYXZnIjozMDEuMzMxODkwMDk2ODY4OX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiUHJpY2Xjga7lubPlnYflgKQiLCJuYW1lIjoiYXZnIiwic3BlY2lhbF90eXBlIjpudWxsLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjM3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MzYuMzYyODg2NzU2NTA1NDQsInExIjo1Mi4wMzU0MTk4NjU5NTE5LCJxMyI6NjIuMjcxNDQ4NjQyOTkxNzg2LCJtYXgiOjg3LjQ0NjUwODE1MTIxMzg2LCJzZCI6OS45MzgxMjkxMjM4ODA5OTYsImF2ZyI6NTYuMjkxNzcwOTc5MDY1Nzl9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiUHJpY2Ugb3ZlciB0aW1lIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6MjAwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC43MTkiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sIm1vbnRoIl1dLCJhZ2dyZWdhdGlvbiI6W1sic3VtIixbImZpZWxkLWlkIiwzXV0sWyJhdmciLFsiZmllbGQtaWQiLDNdXV19fSwiaWQiOjEwLCJkaXNwbGF5IjoibGluZSIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLlkIjoqIgiLCLlubPlnYciXSwiZ3JhcGgubWV0cmljcyI6WyJzdW0iLCJhdmciXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjNTA5RUUzIiwiIzlDQzE3NyJdfSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzQzIiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4zNTgiLCJjb2wiOjEyLCJpZCI6MTEsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMH0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMH1dLCJjYXJkX2lkIjoxMCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzU4Iiwic2l6ZVkiOjQsInJvdyI6MTh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkYXktb2Ytd2VlayIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MjIuMCwicTEiOjI1LjUsInEzIjozMC43NSwibWF4IjozNi4wLCJzZCI6NC41MDM5NjY1MDU4Mzg0MTQsImF2ZyI6MjguNTcxNDI4NTcxNDI4NTczfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IldlZWtkYXlzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjg0LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42NDEiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImRheS1vZi13ZWVrIl1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV19fSwiaWQiOjExLCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiI0VGOEM4QyJdLCJncmFwaC54X2F4aXMudGl0bGVfdGV4dCI6IkNyZWF0ZWQgQXQgYnkgZGF5IG9mIHRoZSB3ZWVrIn0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM4NCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzkzIiwiY29sIjowLCJpZCI6MTIsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMX0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMX1dLCJjYXJkX2lkIjoxMSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzkzIiwic2l6ZVkiOjQsInJvdyI6MjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJob3VyLW9mLWRheSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoxMiwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIuMCwicTEiOjUuNjU2ODU0MjQ5NDkyMzgxLCJxMyI6MTIuMCwibWF4IjoxNS4wLCJzZCI6My44NDEwNDQ1NDM5MjM2NzA3LCJhdmciOjguMzMzMzMzMzMzMzMzMzM0fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IkhvdXJzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjcxLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42NDkiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImhvdXItb2YtZGF5Il1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV19fSwiaWQiOjEyLCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiI0VGOEM4QyJdLCJncmFwaC54X2F4aXMudGl0bGVfdGV4dCI6IkNyZWF0ZWQgQXQgYnkgaG91ciBvZiB0aGUgZGF5In0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQyNCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDM2IiwiY29sIjo2LCJpZCI6MTMsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMn0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMn1dLCJjYXJkX2lkIjoxMiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDM2Iiwic2l6ZVkiOjQsInJvdyI6MjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkYXktb2YtbW9udGgiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjksIm5pbCUiOjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MywicTEiOjQuNDY0NDY2MDk0MDY3MjYyLCJxMyI6Ny44MzMzMzMzMzMzMzMzMzMsIm1heCI6MTEsInNkIjoyLjQxOTg5OTU4MDI1MDEwMywiYXZnIjo2LjQ1MTYxMjkwMzIyNTgwNn19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJEYXlzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjY1LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNjoxODowNC4yMzUiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImRheS1vZi1tb250aCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxMywiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IGRheSBvZiB0aGUgbW9udGgiLCJncmFwaC5zaG93X3ZhbHVlcyI6ZmFsc2V9LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS40NiIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDY5IiwiY29sIjoxMiwiaWQiOjE0LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTN9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTN9XSwiY2FyZF9pZCI6MTMsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQ2OSIsInNpemVZIjo0LCJyb3ciOjIyfSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoibW9udGgtb2YteWVhciIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo2LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTMuMCwicTEiOjE0LjkwMTkyMzc4ODY0NjY4NCwicTMiOjE4LjE3NzEyNDM0NDQ2NzcwMywibWF4IjoyMS4wLCJzZCI6Mi41MzQ2MDg5MjkyNTE2OTQ3LCJhdmciOjE2LjY2NjY2NjY2NjY2NjY2OH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJNb250aHMgd2hlbiBQcm9kdWN0cyB3ZXJlIGFkZGVkIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6NTMsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjY5OSIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImRhdGV0aW1lLWZpZWxkIixbImZpZWxkLWlkIiw3XSwibW9udGgtb2YteWVhciJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxNCwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IG1vbnRoIG9mIHRoZSB5ZWFyIn0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQ5NSIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTEiLCJjb2wiOjAsImlkIjoxNSwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjE0fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjE0fV0sImNhcmRfaWQiOjE0LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS41MSIsInNpemVZIjo0LCJyb3ciOjI2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoicXVhcnRlci1vZi15ZWFyIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjQsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjo0Ni4wLCJxMSI6NDcuMCwicTMiOjUzLjAsIm1heCI6NTQuMCwic2QiOjMuNjUxNDgzNzE2NzAxMTA3NiwiYXZnIjo1MC4wfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlF1YXJ0ZXJzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjM0LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC43MDMiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sInF1YXJ0ZXItb2YteWVhciJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxNSwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IHF1YXJ0ZXIgb2YgdGhlIHllYXIifSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTQ1IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS41NiIsImNvbCI6NiwiaWQiOjE2LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTV9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTV9XSwiY2FyZF9pZCI6MTUsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjU2Iiwic2l6ZVkiOjQsInJvdyI6MjZ9XSwicGFyYW1fdmFsdWVzIjp7IjYiOnsidmFsdWVzIjpbIkRvb2hpY2tleSIsIkdhZGdldCIsIkdpem1vIiwiV2lkZ2V0Il0sImh1bWFuX3JlYWRhYmxlX3ZhbHVlcyI6W10sImZpZWxkX2lkIjo2fX0sImNhbl93cml0ZSI6dHJ1ZSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInNob3dfaW5fZ2V0dGluZ19zdGFydGVkIjpmYWxzZSwibmFtZSI6IlByb2R1Y3RzIERhc2hib2FyZCIsImNhdmVhdHMiOm51bGwsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjE3LjA1IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImlkIjoxLCJwb3NpdGlvbiI6bnVsbCwicGFyYW1fZmllbGRzIjp7IjYiOnsiaWQiOjYsInRhYmxlX2lkIjoxLCJkaXNwbGF5X25hbWUiOiJDYXRlZ29yeSIsImJhc2VfdHlwZSI6InR5cGUvVGV4dCIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ2F0ZWdvcnkiLCJoYXNfZmllbGRfdmFsdWVzIjoibGlzdCIsIm5hbWVfZmllbGQiOm51bGwsImRpbWVuc2lvbnMiOltdfSwiNyI6eyJpZCI6NywidGFibGVfaWQiOjEsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJiYXNlX3R5cGUiOiJ0eXBlL0RhdGVUaW1lIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsImhhc19maWVsZF92YWx1ZXMiOiJub25lIiwibmFtZV9maWVsZCI6bnVsbCwiZGltZW5zaW9ucyI6W119fSwicGFyYW1ldGVycyI6W3siaWQiOiI1ODU3NTQzOTIiLCJ0eXBlIjoiZGF0ZS9hbGwtb3B0aW9ucyIsIm5hbWUiOiJDcmVhdGVkIEF0Iiwic2x1ZyI6IkNSRUFURURfQVQifSx7ImlkIjoiLTU3Nzc5MTIxMSIsInR5cGUiOiJjYXRlZ29yeSIsIm5hbWUiOiJDYXRlZ29yeSIsInNsdWciOiJDQVRFR09SWSJ9XSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTQuOTciLCJwdWJsaWNfdXVpZCI6bnVsbCwicG9pbnRzX29mX2ludGVyZXN0IjpudWxsfQ== + recorded_at: Wed, 21 Apr 2021 21:23:48 GMT +- request: + method: post + uri: http://localhost:3030/api/dashboard/1/copy + body: + encoding: UTF-8 + string: '{"description":null,"archived":false,"collection_position":2,"ordered_cards":[{"sizeX":18,"series":[],"card":{"query_average_duration":null},"updated_at":"2020-06-07T05:41:54.982","col":0,"id":1,"parameter_mappings":[],"card_id":null,"visualization_settings":{"text":"# + Summary","virtual_card":{"name":null,"display":"text","dataset_query":{},"visualization_settings":{}},"dashcard.background":false,"text.align_vertical":"bottom"},"dashboard_id":1,"created_at":"2020-06-07T05:41:54.982","sizeY":2,"row":0},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":1,"nil%":0.0},"type":{"type/Number":{"min":200.0,"q1":200.0,"q3":200.0,"max":200.0,"sd":null,"avg":200.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Total + Products","query_average_duration":50,"creator_id":1,"updated_at":"2020-06-07T05:43:00.538","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"aggregation":[["count"]]}},"id":3,"display":"scalar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":[]},"created_at":"2020-06-07T05:41:55.01","public_uuid":null},"updated_at":"2020-06-07T05:41:55.032","col":0,"id":2,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":3},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":3}],"card_id":3,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.032","sizeY":4,"row":2},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":1,"nil%":0.0},"type":{"type/Number":{"min":0.0,"q1":0.0,"q3":0.0,"max":0.0,"sd":null,"avg":0.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + added in the last 30 days","query_average_duration":34,"creator_id":1,"updated_at":"2020-06-07T05:43:00.554","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"filter":["time-interval",["field-id",7],-30,"day"],"aggregation":[["count"]]}},"id":4,"display":"scalar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":[]},"created_at":"2020-06-07T05:41:55.061","public_uuid":null},"updated_at":"2020-06-07T05:41:55.069","col":6,"id":3,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":4},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":4}],"card_id":4,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.069","sizeY":4,"row":2},{"sizeX":18,"series":[],"card":{"query_average_duration":null},"updated_at":"2020-06-07T05:41:55.087","col":0,"id":4,"parameter_mappings":[],"card_id":null,"visualization_settings":{"text":"# + How these Products are distributed","virtual_card":{"name":null,"display":"text","dataset_query":{},"visualization_settings":{}},"dashcard.background":false,"text.align_vertical":"bottom"},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.087","sizeY":2,"row":6},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Float","display_name":"Rating","name":"RATING","description":"The + average rating users have given the product. This ranges from 1 - 5","special_type":"type/Score","fingerprint":{"global":{"distinct-count":23,"nil%":0.0},"type":{"type/Number":{"min":0.0,"q1":3.5120465053408525,"q3":4.216124969497314,"max":5.0,"sd":1.3605488657451452,"avg":3.4715}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":6,"nil%":0.0},"type":{"type/Number":{"min":2.0,"q1":3.0,"q3":46.0,"max":108.0,"sd":39.97832746209709,"avg":33.333333333333336}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + by Rating","query_average_duration":69,"creator_id":1,"updated_at":"2020-06-07T05:43:00.567","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["binning-strategy",["field-id",2],"default"]],"aggregation":[["count"]]}},"id":5,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["RATING"],"graph.colors":["#f9d45c"]},"created_at":"2020-06-07T05:41:55.114","public_uuid":null},"updated_at":"2020-06-07T05:41:55.122","col":0,"id":5,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":5},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":5}],"card_id":5,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.122","sizeY":4,"row":8},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Float","display_name":"Price","name":"PRICE","description":"The + list price of the product. Note that this is not always the price the product + sold for due to discounts, promotions, etc.","fingerprint":{"global":{"distinct-count":170,"nil%":0.0},"type":{"type/Number":{"min":15.691943673970439,"q1":37.25154462926434,"q3":75.45898071609447,"max":98.81933684368194,"sd":21.711481557852057,"avg":55.74639966792074}}},"special_type":null},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":7,"nil%":0.0},"type":{"type/Number":{"min":10.0,"q1":17.75,"q3":39.75,"max":43.0,"sd":12.607631853460067,"avg":28.571428571428573}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + by Price","query_average_duration":45,"creator_id":1,"updated_at":"2020-06-07T05:43:00.558","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["binning-strategy",["field-id",3],"default"]],"aggregation":[["count"]]}},"id":6,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["PRICE"],"graph.colors":["#EF8C8C"]},"created_at":"2020-06-07T05:41:55.146","public_uuid":null},"updated_at":"2020-06-07T05:41:55.154","col":6,"id":6,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":6},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":6}],"card_id":6,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.154","sizeY":4,"row":8},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Text","display_name":"Category","name":"CATEGORY","description":"The + type of product, valid values include: Doohicky, Gadget, Gizmo and Widget","special_type":"type/Category","fingerprint":{"global":{"distinct-count":4,"nil%":0.0},"type":{"type/Text":{"percent-json":0.0,"percent-url":0.0,"percent-email":0.0,"average-length":6.375}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":4,"nil%":0.0},"type":{"type/Number":{"min":42.0,"q1":46.5,"q3":53.5,"max":54.0,"sd":5.477225575051661,"avg":50.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + per Category","query_average_duration":60,"creator_id":1,"updated_at":"2020-06-07T05:43:00.531","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["field-id",6]],"aggregation":[["count"]],"order-by":[["desc",["aggregation",0]]]}},"id":7,"display":"row","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CATEGORY"],"graph.colors":["#9CC177"]},"created_at":"2020-06-07T05:41:55.178","public_uuid":null},"updated_at":"2020-06-07T05:41:55.191","col":12,"id":7,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":7},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":7}],"card_id":7,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.191","sizeY":8,"row":8},{"sizeX":18,"series":[],"card":{"query_average_duration":null},"updated_at":"2020-06-07T05:41:55.204","col":0,"id":8,"parameter_mappings":[],"card_id":null,"visualization_settings":{"text":"# + These Products across time","virtual_card":{"name":null,"display":"text","dataset_query":{},"visualization_settings":{}},"dashcard.background":false,"text.align_vertical":"bottom"},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.204","sizeY":2,"row":16},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":9,"nil%":0.0},"type":{"type/Number":{"min":2.0,"q1":3.903943276465977,"q3":6.662882692912616,"max":10.0,"sd":1.8923744558308435,"avg":5.405405405405405}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"New + Products over time","query_average_duration":122,"creator_id":1,"updated_at":"2020-06-07T05:43:00.621","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month"]],"aggregation":[["count"]]}},"id":8,"display":"line","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#f9d45c"]},"created_at":"2020-06-07T05:41:55.24","public_uuid":null},"updated_at":"2020-06-07T05:41:55.248","col":0,"id":9,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":8},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":8}],"card_id":8,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.248","sizeY":4,"row":18},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/Float","display_name":"Ratingの合計値","name":"sum","special_type":"type/Score","fingerprint":{"global":{"distinct-count":35,"nil%":0.0},"type":{"type/Number":{"min":8.0,"q1":12.55,"q3":23.575000000000003,"max":36.300000000000004,"sd":7.546898414294159,"avg":18.764864864864865}}}},{"base_type":"type/Float","display_name":"Ratingの平均値","name":"avg","special_type":"type/Score","fingerprint":{"global":{"distinct-count":33,"nil%":0.0},"type":{"type/Number":{"min":2.075,"q1":2.9491071428571427,"q3":4.080177669529663,"max":4.325,"sd":0.6677592084904477,"avg":3.5062290862290864}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Rating + over time","query_average_duration":186,"creator_id":1,"updated_at":"2020-06-07T05:43:00.695","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month"]],"aggregation":[["sum",["field-id",2]],["avg",["field-id",2]]]}},"id":9,"display":"line","visualization_settings":{"graph.series_labels":["合計","平均"],"graph.metrics":["sum","avg"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#509EE3","#EF8C8C"]},"created_at":"2020-06-07T05:41:55.294","public_uuid":null},"updated_at":"2020-06-07T05:41:55.303","col":6,"id":10,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":9},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":9}],"card_id":9,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.303","sizeY":4,"row":18},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/Float","display_name":"Priceの合計値","name":"sum","special_type":null,"fingerprint":{"global":{"distinct-count":37,"nil%":0.0},"type":{"type/Number":{"min":126.07969572885267,"q1":213.8258543297341,"q3":395.22516593105985,"max":500.95851926624,"sd":110.77109676607344,"avg":301.3318900968689}}}},{"base_type":"type/Float","display_name":"Priceの平均値","name":"avg","special_type":null,"fingerprint":{"global":{"distinct-count":37,"nil%":0.0},"type":{"type/Number":{"min":36.36288675650544,"q1":52.0354198659519,"q3":62.271448642991786,"max":87.44650815121386,"sd":9.938129123880996,"avg":56.29177097906579}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Price + over time","query_average_duration":200,"creator_id":1,"updated_at":"2020-06-07T05:43:00.719","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month"]],"aggregation":[["sum",["field-id",3]],["avg",["field-id",3]]]}},"id":10,"display":"line","visualization_settings":{"graph.series_labels":["合計","平均"],"graph.metrics":["sum","avg"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#509EE3","#9CC177"]},"created_at":"2020-06-07T05:41:55.343","public_uuid":null},"updated_at":"2020-06-07T05:41:55.358","col":12,"id":11,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":10},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":10}],"card_id":10,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.358","sizeY":4,"row":18},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"day-of-week","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":7,"nil%":0.0},"type":{"type/Number":{"min":22.0,"q1":25.5,"q3":30.75,"max":36.0,"sd":4.503966505838414,"avg":28.571428571428573}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Weekdays + when Products were added","query_average_duration":84,"creator_id":1,"updated_at":"2020-06-07T05:43:00.641","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"day-of-week"]],"aggregation":[["count"]]}},"id":11,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by day of the week"},"created_at":"2020-06-07T05:41:55.384","public_uuid":null},"updated_at":"2020-06-07T05:41:55.393","col":0,"id":12,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":11},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":11}],"card_id":11,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.393","sizeY":4,"row":22},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"hour-of-day","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":12,"nil%":0.0},"type":{"type/Number":{"min":2.0,"q1":5.656854249492381,"q3":12.0,"max":15.0,"sd":3.8410445439236707,"avg":8.333333333333334}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Hours + when Products were added","query_average_duration":71,"creator_id":1,"updated_at":"2020-06-07T05:43:00.649","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"hour-of-day"]],"aggregation":[["count"]]}},"id":12,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by hour of the day"},"created_at":"2020-06-07T05:41:55.424","public_uuid":null},"updated_at":"2020-06-07T05:41:55.436","col":6,"id":13,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":12},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":12}],"card_id":12,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.436","sizeY":4,"row":22},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"day-of-month","fingerprint":{"global":{"distinct-count":200,"nil%":0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":9,"nil%":0},"type":{"type/Number":{"min":3,"q1":4.464466094067262,"q3":7.833333333333333,"max":11,"sd":2.419899580250103,"avg":6.451612903225806}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Days + when Products were added","query_average_duration":65,"creator_id":1,"updated_at":"2020-06-07T06:18:04.235","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"day-of-month"]],"aggregation":[["count"]]}},"id":13,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by day of the month","graph.show_values":false},"created_at":"2020-06-07T05:41:55.46","public_uuid":null},"updated_at":"2020-06-07T05:41:55.469","col":12,"id":14,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":13},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":13}],"card_id":13,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.469","sizeY":4,"row":22},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month-of-year","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":6,"nil%":0.0},"type":{"type/Number":{"min":13.0,"q1":14.901923788646684,"q3":18.177124344467703,"max":21.0,"sd":2.5346089292516947,"avg":16.666666666666668}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Months + when Products were added","query_average_duration":53,"creator_id":1,"updated_at":"2020-06-07T05:43:00.699","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month-of-year"]],"aggregation":[["count"]]}},"id":14,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by month of the year"},"created_at":"2020-06-07T05:41:55.495","public_uuid":null},"updated_at":"2020-06-07T05:41:55.51","col":0,"id":15,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":14},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":14}],"card_id":14,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.51","sizeY":4,"row":26},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"quarter-of-year","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":4,"nil%":0.0},"type":{"type/Number":{"min":46.0,"q1":47.0,"q3":53.0,"max":54.0,"sd":3.6514837167011076,"avg":50.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Quarters + when Products were added","query_average_duration":34,"creator_id":1,"updated_at":"2020-06-07T05:43:00.703","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"quarter-of-year"]],"aggregation":[["count"]]}},"id":15,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by quarter of the year"},"created_at":"2020-06-07T05:41:55.545","public_uuid":null},"updated_at":"2020-06-07T05:41:55.56","col":6,"id":16,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":15},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":15}],"card_id":15,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.56","sizeY":4,"row":26}],"param_values":{"6":{"values":["Doohickey","Gadget","Gizmo","Widget"],"human_readable_values":[],"field_id":6}},"can_write":true,"enable_embedding":false,"collection_id":4,"show_in_getting_started":false,"name":"Products + Dashboard","caveats":null,"creator_id":1,"updated_at":"2020-06-07T05:43:17.05","made_public_by_id":null,"embedding_params":null,"id":1,"position":null,"param_fields":{"6":{"id":6,"table_id":1,"display_name":"Category","base_type":"type/Text","special_type":"type/Category","has_field_values":"list","name_field":null,"dimensions":[]},"7":{"id":7,"table_id":1,"display_name":"Created + At","base_type":"type/DateTime","special_type":"type/CreationTimestamp","has_field_values":"none","name_field":null,"dimensions":[]}},"parameters":[{"id":"585754392","type":"date/all-options","name":"Created + At","slug":"CREATED_AT"},{"id":"-577791211","type":"category","name":"Category","slug":"CATEGORY"}],"created_at":"2020-06-07T05:41:54.97","public_uuid":null,"points_of_interest":null}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - d48d43e2-cdc1-4045-871b-4371422d1a42 + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Wed, 21 Apr 2021 21:23:48 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Wed, 21 Apr 2021 21:23:48 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"description":null,"archived":false,"collection_position":2,"enable_embedding":false,"collection_id":4,"show_in_getting_started":false,"name":"Products + Dashboard","caveats":null,"creator_id":1,"updated_at":"2021-04-21T21:23:48.24","made_public_by_id":null,"embedding_params":null,"id":6,"position":null,"parameters":[{"id":"585754392","type":"date/all-options","name":"Created + At","slug":"CREATED_AT"},{"id":"-577791211","type":"category","name":"Category","slug":"CATEGORY"}],"created_at":"2021-04-21T21:23:48.24","public_uuid":null,"points_of_interest":null}' + recorded_at: Wed, 21 Apr 2021 21:23:48 GMT +recorded_with: VCR 6.0.0 From 9bcd13134518082a74f43c52350f6c451e632916 Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Thu, 22 Apr 2021 00:18:59 -0300 Subject: [PATCH 10/13] Add ability to update a dashboard cards --- lib/metabase/endpoint/dashboard.rb | 11 + spec/metabase/endpoint/card_spec.rb | 2 +- spec/metabase/endpoint/dashboard_spec.rb | 14 +- .../success/update_a_dashboard_cards.yml | 220 ++++++++++++++++++ 4 files changed, 244 insertions(+), 3 deletions(-) create mode 100644 spec/vcr_cassettes/Metabase_Endpoint_Dashboard/update_dashboard_cards/success/update_a_dashboard_cards.yml diff --git a/lib/metabase/endpoint/dashboard.rb b/lib/metabase/endpoint/dashboard.rb index f708106..b98d429 100644 --- a/lib/metabase/endpoint/dashboard.rb +++ b/lib/metabase/endpoint/dashboard.rb @@ -33,11 +33,22 @@ def new_dashboard(**params) # Copy a dashboard. # + # @param from_dashboard_id [Integer, String] Dashboard ID # @param params [Hash] Query string # @return [Hash] Parsed response JSON # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#post-apidashboardfrom-dashboard-idcopy def copy_dashboard(from_dashboard_id, **params) post("/api/dashboard/#{from_dashboard_id}/copy", **params) + end + + # Update Cards on a Dashboard. + # + # @param dashboard_id [Integer, String] Dashboard ID + # @param params [Hash] Query string + # @return [Hash] Parsed response JSON + # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#put-apidashboardidcards + def update_dashboard_cards(dashboard_id, **params) + put("/api/dashboard/#{dashboard_id}/cards", **params) end end end diff --git a/spec/metabase/endpoint/card_spec.rb b/spec/metabase/endpoint/card_spec.rb index 560325d..a3b17ac 100644 --- a/spec/metabase/endpoint/card_spec.rb +++ b/spec/metabase/endpoint/card_spec.rb @@ -52,7 +52,7 @@ it 'create a new card' do card = client.card(card_id) new_card = client.new_card(**card) - expect(card).to be_kind_of(Hash) + expect(new_card).to be_kind_of(Hash) end end end diff --git a/spec/metabase/endpoint/dashboard_spec.rb b/spec/metabase/endpoint/dashboard_spec.rb index e578fd5..d03f50a 100644 --- a/spec/metabase/endpoint/dashboard_spec.rb +++ b/spec/metabase/endpoint/dashboard_spec.rb @@ -27,7 +27,7 @@ it 'create a new dashboard' do dashboard = client.dashboard(dashboard_id) new_dashboard = client.new_dashboard(**dashboard) - expect(dashboard).to be_kind_of(Hash) + expect(new_dashboard).to be_kind_of(Hash) end end end @@ -37,7 +37,17 @@ it 'create a copy dashboard' do dashboard = client.dashboard(dashboard_id) copy_dashboard = client.copy_dashboard(dashboard_id, **dashboard) - expect(dashboard).to be_kind_of(Hash) + expect(copy_dashboard).to be_kind_of(Hash) + end + end + end + + describe 'update_dashboard_cards', vcr: true do + context 'success' do + it 'update a dashboard cards' do + dashboard = client.dashboard(dashboard_id) + update_dashboard_cards = client.update_dashboard_cards(dashboard_id, **dashboard) + expect(update_dashboard_cards).to be_kind_of(Hash) end end end diff --git a/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/update_dashboard_cards/success/update_a_dashboard_cards.yml b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/update_dashboard_cards/success/update_a_dashboard_cards.yml new file mode 100644 index 0000000..494d52b --- /dev/null +++ b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/update_dashboard_cards/success/update_a_dashboard_cards.yml @@ -0,0 +1,220 @@ +--- +http_interactions: +- request: + method: post + uri: http://localhost:3030/api/session + body: + encoding: UTF-8 + string: '{"username":"mb@example.com","password":"p@ssw0rd"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 22 Apr 2021 03:17:57 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Thu, 22 Apr 2021 03:17:57 GMT + Strict-Transport-Security: + - max-age=31536000 + Set-Cookie: + - metabase.SESSION=7a213ec4-dc05-4f35-8d16-98977e2b81e9;SameSite=Lax;HttpOnly;Path=/;Max-Age=1209600 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"id":"7a213ec4-dc05-4f35-8d16-98977e2b81e9"}' + recorded_at: Thu, 22 Apr 2021 03:17:57 GMT +- request: + method: get + uri: http://localhost:3030/api/dashboard/1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - 7a213ec4-dc05-4f35-8d16-98977e2b81e9 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 22 Apr 2021 03:17:57 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Thu, 22 Apr 2021 03:17:57 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjozLCJvcmRlcmVkX2NhcmRzIjpbeyJzaXplWCI6MTgsInNlcmllcyI6W10sImNhcmQiOnsicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU0Ljk4MiIsImNvbCI6MCwiaWQiOjEsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGV4dCI6IiMgU3VtbWFyeSIsInZpcnR1YWxfY2FyZCI6eyJuYW1lIjpudWxsLCJkaXNwbGF5IjoidGV4dCIsImRhdGFzZXRfcXVlcnkiOnt9LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fX0sImRhc2hjYXJkLmJhY2tncm91bmQiOmZhbHNlLCJ0ZXh0LmFsaWduX3ZlcnRpY2FsIjoiYm90dG9tIn0sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTQuOTgyIiwic2l6ZVkiOjIsInJvdyI6MH0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoxLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MjAwLjAsInExIjoyMDAuMCwicTMiOjIwMC4wLCJtYXgiOjIwMC4wLCJzZCI6bnVsbCwiYXZnIjoyMDAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJUb3RhbCBQcm9kdWN0cyIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjUwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41MzgiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6MywiZGlzcGxheSI6InNjYWxhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjAxIiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wMzIiLCJjb2wiOjAsImlkIjoyLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6M30seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjozfV0sImNhcmRfaWQiOjMsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjAzMiIsInNpemVZIjo0LCJyb3ciOjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MSwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMCwicTEiOjAuMCwicTMiOjAuMCwibWF4IjowLjAsInNkIjpudWxsLCJhdmciOjAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBhZGRlZCBpbiB0aGUgbGFzdCAzMCBkYXlzIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6MzQsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjU1NCIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiZmlsdGVyIjpbInRpbWUtaW50ZXJ2YWwiLFsiZmllbGQtaWQiLDddLC0zMCwiZGF5Il0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6NCwiZGlzcGxheSI6InNjYWxhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjA2MSIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMDY5IiwiY29sIjo2LCJpZCI6MywicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjR9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6NH1dLCJjYXJkX2lkIjo0LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wNjkiLCJzaXplWSI6NCwicm93IjoyfSx7InNpemVYIjoxOCwic2VyaWVzIjpbXSwiY2FyZCI6eyJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMDg3IiwiY29sIjowLCJpZCI6NCwicGFyYW1ldGVyX21hcHBpbmdzIjpbXSwiY2FyZF9pZCI6bnVsbCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJ0ZXh0IjoiIyBIb3cgdGhlc2UgUHJvZHVjdHMgYXJlIGRpc3RyaWJ1dGVkIiwidmlydHVhbF9jYXJkIjp7Im5hbWUiOm51bGwsImRpc3BsYXkiOiJ0ZXh0IiwiZGF0YXNldF9xdWVyeSI6e30sInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9fSwiZGFzaGNhcmQuYmFja2dyb3VuZCI6ZmFsc2UsInRleHQuYWxpZ25fdmVydGljYWwiOiJib3R0b20ifSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4wODciLCJzaXplWSI6Miwicm93Ijo2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJSYXRpbmciLCJuYW1lIjoiUkFUSU5HIiwiZGVzY3JpcHRpb24iOiJUaGUgYXZlcmFnZSByYXRpbmcgdXNlcnMgaGF2ZSBnaXZlbiB0aGUgcHJvZHVjdC4gVGhpcyByYW5nZXMgZnJvbSAxIC0gNSIsInNwZWNpYWxfdHlwZSI6InR5cGUvU2NvcmUiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIzLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MC4wLCJxMSI6My41MTIwNDY1MDUzNDA4NTI1LCJxMyI6NC4yMTYxMjQ5Njk0OTczMTQsIm1heCI6NS4wLCJzZCI6MS4zNjA1NDg4NjU3NDUxNDUyLCJhdmciOjMuNDcxNX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo2LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6Mi4wLCJxMSI6My4wLCJxMyI6NDYuMCwibWF4IjoxMDguMCwic2QiOjM5Ljk3ODMyNzQ2MjA5NzA5LCJhdmciOjMzLjMzMzMzMzMzMzMzMzMzNn19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBieSBSYXRpbmciLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo2OSwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNTY3IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siYmlubmluZy1zdHJhdGVneSIsWyJmaWVsZC1pZCIsMl0sImRlZmF1bHQiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6NSwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIlJBVElORyJdLCJncmFwaC5jb2xvcnMiOlsiI2Y5ZDQ1YyJdfSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTE0IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xMjIiLCJjb2wiOjAsImlkIjo1LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6NX0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo1fV0sImNhcmRfaWQiOjUsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjEyMiIsInNpemVZIjo0LCJyb3ciOjh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlByaWNlIiwibmFtZSI6IlBSSUNFIiwiZGVzY3JpcHRpb24iOiJUaGUgbGlzdCBwcmljZSBvZiB0aGUgcHJvZHVjdC4gTm90ZSB0aGF0IHRoaXMgaXMgbm90IGFsd2F5cyB0aGUgcHJpY2UgdGhlIHByb2R1Y3Qgc29sZCBmb3IgZHVlIHRvIGRpc2NvdW50cywgcHJvbW90aW9ucywgZXRjLiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MTcwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTUuNjkxOTQzNjczOTcwNDM5LCJxMSI6MzcuMjUxNTQ0NjI5MjY0MzQsInEzIjo3NS40NTg5ODA3MTYwOTQ0NywibWF4Ijo5OC44MTkzMzY4NDM2ODE5NCwic2QiOjIxLjcxMTQ4MTU1Nzg1MjA1NywiYXZnIjo1NS43NDYzOTk2Njc5MjA3NH19fSwic3BlY2lhbF90eXBlIjpudWxsfSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjcsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoxMC4wLCJxMSI6MTcuNzUsInEzIjozOS43NSwibWF4Ijo0My4wLCJzZCI6MTIuNjA3NjMxODUzNDYwMDY3LCJhdmciOjI4LjU3MTQyODU3MTQyODU3M319fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBieSBQcmljZSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjQ1LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41NTgiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJiaW5uaW5nLXN0cmF0ZWd5IixbImZpZWxkLWlkIiwzXSwiZGVmYXVsdCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjo2LCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiUFJJQ0UiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE0NiIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTU0IiwiY29sIjo2LCJpZCI6NiwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjZ9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6Nn1dLCJjYXJkX2lkIjo2LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xNTQiLCJzaXplWSI6NCwicm93Ijo4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvVGV4dCIsImRpc3BsYXlfbmFtZSI6IkNhdGVnb3J5IiwibmFtZSI6IkNBVEVHT1JZIiwiZGVzY3JpcHRpb24iOiJUaGUgdHlwZSBvZiBwcm9kdWN0LCB2YWxpZCB2YWx1ZXMgaW5jbHVkZTogRG9vaGlja3ksIEdhZGdldCwgR2l6bW8gYW5kIFdpZGdldCIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ2F0ZWdvcnkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjQsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9UZXh0Ijp7InBlcmNlbnQtanNvbiI6MC4wLCJwZXJjZW50LXVybCI6MC4wLCJwZXJjZW50LWVtYWlsIjowLjAsImF2ZXJhZ2UtbGVuZ3RoIjo2LjM3NX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo0LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6NDIuMCwicTEiOjQ2LjUsInEzIjo1My41LCJtYXgiOjU0LjAsInNkIjo1LjQ3NzIyNTU3NTA1MTY2MSwiYXZnIjo1MC4wfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlByb2R1Y3RzIHBlciBDYXRlZ29yeSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjYwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC41MzEiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJmaWVsZC1pZCIsNl1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV0sIm9yZGVyLWJ5IjpbWyJkZXNjIixbImFnZ3JlZ2F0aW9uIiwwXV1dfX0sImlkIjo3LCJkaXNwbGF5Ijoicm93IiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ0FURUdPUlkiXSwiZ3JhcGguY29sb3JzIjpbIiM5Q0MxNzciXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE3OCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTkxIiwiY29sIjoxMiwiaWQiOjcsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjo3fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjd9XSwiY2FyZF9pZCI6NywidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTkxIiwic2l6ZVkiOjgsInJvdyI6OH0seyJzaXplWCI6MTgsInNlcmllcyI6W10sImNhcmQiOnsicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjIwNCIsImNvbCI6MCwiaWQiOjgsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGV4dCI6IiMgVGhlc2UgUHJvZHVjdHMgYWNyb3NzIHRpbWUiLCJ2aXJ0dWFsX2NhcmQiOnsibmFtZSI6bnVsbCwiZGlzcGxheSI6InRleHQiLCJkYXRhc2V0X3F1ZXJ5Ijp7fSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e319LCJkYXNoY2FyZC5iYWNrZ3JvdW5kIjpmYWxzZSwidGV4dC5hbGlnbl92ZXJ0aWNhbCI6ImJvdHRvbSJ9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjIwNCIsInNpemVZIjoyLCJyb3ciOjE2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjksIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoyLjAsInExIjozLjkwMzk0MzI3NjQ2NTk3NywicTMiOjYuNjYyODgyNjkyOTEyNjE2LCJtYXgiOjEwLjAsInNkIjoxLjg5MjM3NDQ1NTgzMDg0MzUsImF2ZyI6NS40MDU0MDU0MDU0MDU0MDV9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiTmV3IFByb2R1Y3RzIG92ZXIgdGltZSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjEyMiwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNjIxIiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJtb250aCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjo4LCJkaXNwbGF5IjoibGluZSIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNmOWQ0NWMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI0IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yNDgiLCJjb2wiOjAsImlkIjo5LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6OH0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo4fV0sImNhcmRfaWQiOjgsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI0OCIsInNpemVZIjo0LCJyb3ciOjE4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJSYXRpbmfjga7lkIjoqIjlgKQiLCJuYW1lIjoic3VtIiwic3BlY2lhbF90eXBlIjoidHlwZS9TY29yZSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MzUsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjo4LjAsInExIjoxMi41NSwicTMiOjIzLjU3NTAwMDAwMDAwMDAwMywibWF4IjozNi4zMDAwMDAwMDAwMDAwMDQsInNkIjo3LjU0Njg5ODQxNDI5NDE1OSwiYXZnIjoxOC43NjQ4NjQ4NjQ4NjQ4NjV9fX19LHsiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlJhdGluZ+OBruW5s+Wdh+WApCIsIm5hbWUiOiJhdmciLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1Njb3JlIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjozMywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIuMDc1LCJxMSI6Mi45NDkxMDcxNDI4NTcxNDI3LCJxMyI6NC4wODAxNzc2Njk1Mjk2NjMsIm1heCI6NC4zMjUsInNkIjowLjY2Nzc1OTIwODQ5MDQ0NzcsImF2ZyI6My41MDYyMjkwODYyMjkwODY0fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlJhdGluZyBvdmVyIHRpbWUiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjoxODYsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjY5NSIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImRhdGV0aW1lLWZpZWxkIixbImZpZWxkLWlkIiw3XSwibW9udGgiXV0sImFnZ3JlZ2F0aW9uIjpbWyJzdW0iLFsiZmllbGQtaWQiLDJdXSxbImF2ZyIsWyJmaWVsZC1pZCIsMl1dXX19LCJpZCI6OSwiZGlzcGxheSI6ImxpbmUiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi5ZCI6KiIIiwi5bmz5Z2HIl0sImdyYXBoLm1ldHJpY3MiOlsic3VtIiwiYXZnIl0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiIzUwOUVFMyIsIiNFRjhDOEMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjI5NCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzAzIiwiY29sIjo2LCJpZCI6MTAsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjo5fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjl9XSwiY2FyZF9pZCI6OSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzAzIiwic2l6ZVkiOjQsInJvdyI6MTh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9EYXRlVGltZSIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoibW9udGgiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL0RhdGVUaW1lIjp7ImVhcmxpZXN0IjoiMjAxNi0wNC0yNlQxOToyOTo1NS4xNDciLCJsYXRlc3QiOiIyMDE5LTA0LTE1VDEzOjM0OjE5LjkzMSJ9fX19LHsiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlByaWNl44Gu5ZCI6KiI5YCkIiwibmFtZSI6InN1bSIsInNwZWNpYWxfdHlwZSI6bnVsbCwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjozNywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjEyNi4wNzk2OTU3Mjg4NTI2NywicTEiOjIxMy44MjU4NTQzMjk3MzQxLCJxMyI6Mzk1LjIyNTE2NTkzMTA1OTg1LCJtYXgiOjUwMC45NTg1MTkyNjYyNCwic2QiOjExMC43NzEwOTY3NjYwNzM0NCwiYXZnIjozMDEuMzMxODkwMDk2ODY4OX19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiUHJpY2Xjga7lubPlnYflgKQiLCJuYW1lIjoiYXZnIiwic3BlY2lhbF90eXBlIjpudWxsLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjM3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MzYuMzYyODg2NzU2NTA1NDQsInExIjo1Mi4wMzU0MTk4NjU5NTE5LCJxMyI6NjIuMjcxNDQ4NjQyOTkxNzg2LCJtYXgiOjg3LjQ0NjUwODE1MTIxMzg2LCJzZCI6OS45MzgxMjkxMjM4ODA5OTYsImF2ZyI6NTYuMjkxNzcwOTc5MDY1Nzl9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiUHJpY2Ugb3ZlciB0aW1lIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6MjAwLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC43MTkiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sIm1vbnRoIl1dLCJhZ2dyZWdhdGlvbiI6W1sic3VtIixbImZpZWxkLWlkIiwzXV0sWyJhdmciLFsiZmllbGQtaWQiLDNdXV19fSwiaWQiOjEwLCJkaXNwbGF5IjoibGluZSIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLlkIjoqIgiLCLlubPlnYciXSwiZ3JhcGgubWV0cmljcyI6WyJzdW0iLCJhdmciXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjNTA5RUUzIiwiIzlDQzE3NyJdfSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzQzIiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4zNTgiLCJjb2wiOjEyLCJpZCI6MTEsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMH0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMH1dLCJjYXJkX2lkIjoxMCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzU4Iiwic2l6ZVkiOjQsInJvdyI6MTh9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkYXktb2Ytd2VlayIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MjIuMCwicTEiOjI1LjUsInEzIjozMC43NSwibWF4IjozNi4wLCJzZCI6NC41MDM5NjY1MDU4Mzg0MTQsImF2ZyI6MjguNTcxNDI4NTcxNDI4NTczfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IldlZWtkYXlzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjg0LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42NDEiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImRheS1vZi13ZWVrIl1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV19fSwiaWQiOjExLCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiI0VGOEM4QyJdLCJncmFwaC54X2F4aXMudGl0bGVfdGV4dCI6IkNyZWF0ZWQgQXQgYnkgZGF5IG9mIHRoZSB3ZWVrIn0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM4NCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzkzIiwiY29sIjowLCJpZCI6MTIsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMX0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMX1dLCJjYXJkX2lkIjoxMSwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzkzIiwic2l6ZVkiOjQsInJvdyI6MjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJob3VyLW9mLWRheSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoxMiwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIuMCwicTEiOjUuNjU2ODU0MjQ5NDkyMzgxLCJxMyI6MTIuMCwibWF4IjoxNS4wLCJzZCI6My44NDEwNDQ1NDM5MjM2NzA3LCJhdmciOjguMzMzMzMzMzMzMzMzMzM0fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IkhvdXJzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjcxLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42NDkiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImhvdXItb2YtZGF5Il1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV19fSwiaWQiOjEyLCJkaXNwbGF5IjoiYmFyIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIueVquWPtyJdLCJncmFwaC5tZXRyaWNzIjpbImNvdW50Il0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiI0VGOEM4QyJdLCJncmFwaC54X2F4aXMudGl0bGVfdGV4dCI6IkNyZWF0ZWQgQXQgYnkgaG91ciBvZiB0aGUgZGF5In0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQyNCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDM2IiwiY29sIjo2LCJpZCI6MTMsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxMn0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxMn1dLCJjYXJkX2lkIjoxMiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDM2Iiwic2l6ZVkiOjQsInJvdyI6MjJ9LHsic2l6ZVgiOjYsInNlcmllcyI6W10sImNhcmQiOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiY29sbGVjdGlvbl9wb3NpdGlvbiI6bnVsbCwidGFibGVfaWQiOjEsInJlc3VsdF9tZXRhZGF0YSI6W3siYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkYXktb2YtbW9udGgiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjksIm5pbCUiOjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MywicTEiOjQuNDY0NDY2MDk0MDY3MjYyLCJxMyI6Ny44MzMzMzMzMzMzMzMzMzMsIm1heCI6MTEsInNkIjoyLjQxOTg5OTU4MDI1MDEwMywiYXZnIjo2LjQ1MTYxMjkwMzIyNTgwNn19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJEYXlzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjY1LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNjoxODowNC4yMzUiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sImRheS1vZi1tb250aCJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxMywiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IGRheSBvZiB0aGUgbW9udGgiLCJncmFwaC5zaG93X3ZhbHVlcyI6ZmFsc2V9LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS40NiIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDY5IiwiY29sIjoxMiwiaWQiOjE0LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTN9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTN9XSwiY2FyZF9pZCI6MTMsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQ2OSIsInNpemVZIjo0LCJyb3ciOjIyfSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoibW9udGgtb2YteWVhciIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo2LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTMuMCwicTEiOjE0LjkwMTkyMzc4ODY0NjY4NCwicTMiOjE4LjE3NzEyNDM0NDQ2NzcwMywibWF4IjoyMS4wLCJzZCI6Mi41MzQ2MDg5MjkyNTE2OTQ3LCJhdmciOjE2LjY2NjY2NjY2NjY2NjY2OH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJNb250aHMgd2hlbiBQcm9kdWN0cyB3ZXJlIGFkZGVkIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6NTMsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjY5OSIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImRhdGV0aW1lLWZpZWxkIixbImZpZWxkLWlkIiw3XSwibW9udGgtb2YteWVhciJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxNCwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IG1vbnRoIG9mIHRoZSB5ZWFyIn0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQ5NSIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTEiLCJjb2wiOjAsImlkIjoxNSwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjE0fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjE0fV0sImNhcmRfaWQiOjE0LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS41MSIsInNpemVZIjo0LCJyb3ciOjI2fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoicXVhcnRlci1vZi15ZWFyIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvQmlnSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IuOCq+OCpuODs+ODiCIsIm5hbWUiOiJjb3VudCIsInNwZWNpYWxfdHlwZSI6InR5cGUvUXVhbnRpdHkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjQsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjo0Ni4wLCJxMSI6NDcuMCwicTMiOjUzLjAsIm1heCI6NTQuMCwic2QiOjMuNjUxNDgzNzE2NzAxMTA3NiwiYXZnIjo1MC4wfX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlF1YXJ0ZXJzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjM0LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC43MDMiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sInF1YXJ0ZXItb2YteWVhciJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxNSwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IHF1YXJ0ZXIgb2YgdGhlIHllYXIifSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTQ1IiwicHVibGljX3V1aWQiOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS41NiIsImNvbCI6NiwiaWQiOjE2LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTV9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTV9XSwiY2FyZF9pZCI6MTUsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjU2Iiwic2l6ZVkiOjQsInJvdyI6MjZ9LHsic2l6ZVgiOjIsInNlcmllcyI6W10sImNhcmQiOnsicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIxLTA0LTIyVDAzOjExOjU5LjM3NyIsImNvbCI6MCwiaWQiOjczLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOltdLCJjYXJkX2lkIjpudWxsLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMS0wNC0yMlQwMzoxMTo1OS4zNzciLCJzaXplWSI6Miwicm93IjowfSx7InNpemVYIjoyLCJzZXJpZXMiOltdLCJjYXJkIjp7InF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMS0wNC0yMlQwMzoxMjowOS4zNTciLCJjb2wiOjAsImlkIjo3NCwicGFyYW1ldGVyX21hcHBpbmdzIjpbXSwiY2FyZF9pZCI6bnVsbCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjEtMDQtMjJUMDM6MTI6MDkuMzU3Iiwic2l6ZVkiOjIsInJvdyI6MH1dLCJwYXJhbV92YWx1ZXMiOnsiNiI6eyJ2YWx1ZXMiOlsiRG9vaGlja2V5IiwiR2FkZ2V0IiwiR2l6bW8iLCJXaWRnZXQiXSwiaHVtYW5fcmVhZGFibGVfdmFsdWVzIjpbXSwiZmllbGRfaWQiOjZ9fSwiY2FuX3dyaXRlIjp0cnVlLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwic2hvd19pbl9nZXR0aW5nX3N0YXJ0ZWQiOmZhbHNlLCJuYW1lIjoiUHJvZHVjdHMgRGFzaGJvYXJkIiwiY2F2ZWF0cyI6bnVsbCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MTcuMDUiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiaWQiOjEsInBvc2l0aW9uIjpudWxsLCJwYXJhbV9maWVsZHMiOnsiNiI6eyJpZCI6NiwidGFibGVfaWQiOjEsImRpc3BsYXlfbmFtZSI6IkNhdGVnb3J5IiwiYmFzZV90eXBlIjoidHlwZS9UZXh0Iiwic3BlY2lhbF90eXBlIjoidHlwZS9DYXRlZ29yeSIsImhhc19maWVsZF92YWx1ZXMiOiJsaXN0IiwibmFtZV9maWVsZCI6bnVsbCwiZGltZW5zaW9ucyI6W119LCI3Ijp7ImlkIjo3LCJ0YWJsZV9pZCI6MSwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwiaGFzX2ZpZWxkX3ZhbHVlcyI6Im5vbmUiLCJuYW1lX2ZpZWxkIjpudWxsLCJkaW1lbnNpb25zIjpbXX19LCJwYXJhbWV0ZXJzIjpbeyJpZCI6IjU4NTc1NDM5MiIsInR5cGUiOiJkYXRlL2FsbC1vcHRpb25zIiwibmFtZSI6IkNyZWF0ZWQgQXQiLCJzbHVnIjoiQ1JFQVRFRF9BVCJ9LHsiaWQiOiItNTc3NzkxMjExIiwidHlwZSI6ImNhdGVnb3J5IiwibmFtZSI6IkNhdGVnb3J5Iiwic2x1ZyI6IkNBVEVHT1JZIn1dLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NC45NyIsInB1YmxpY191dWlkIjpudWxsLCJwb2ludHNfb2ZfaW50ZXJlc3QiOm51bGx9 + recorded_at: Thu, 22 Apr 2021 03:17:57 GMT +- request: + method: put + uri: http://localhost:3030/api/dashboard/1/cards + body: + encoding: UTF-8 + string: '{"description":null,"archived":false,"collection_position":3,"ordered_cards":[{"sizeX":18,"series":[],"card":{"query_average_duration":null},"updated_at":"2020-06-07T05:41:54.982","col":0,"id":1,"parameter_mappings":[],"card_id":null,"visualization_settings":{"text":"# + Summary","virtual_card":{"name":null,"display":"text","dataset_query":{},"visualization_settings":{}},"dashcard.background":false,"text.align_vertical":"bottom"},"dashboard_id":1,"created_at":"2020-06-07T05:41:54.982","sizeY":2,"row":0},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":1,"nil%":0.0},"type":{"type/Number":{"min":200.0,"q1":200.0,"q3":200.0,"max":200.0,"sd":null,"avg":200.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Total + Products","query_average_duration":50,"creator_id":1,"updated_at":"2020-06-07T05:43:00.538","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"aggregation":[["count"]]}},"id":3,"display":"scalar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":[]},"created_at":"2020-06-07T05:41:55.01","public_uuid":null},"updated_at":"2020-06-07T05:41:55.032","col":0,"id":2,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":3},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":3}],"card_id":3,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.032","sizeY":4,"row":2},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":1,"nil%":0.0},"type":{"type/Number":{"min":0.0,"q1":0.0,"q3":0.0,"max":0.0,"sd":null,"avg":0.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + added in the last 30 days","query_average_duration":34,"creator_id":1,"updated_at":"2020-06-07T05:43:00.554","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"filter":["time-interval",["field-id",7],-30,"day"],"aggregation":[["count"]]}},"id":4,"display":"scalar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":[]},"created_at":"2020-06-07T05:41:55.061","public_uuid":null},"updated_at":"2020-06-07T05:41:55.069","col":6,"id":3,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":4},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":4}],"card_id":4,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.069","sizeY":4,"row":2},{"sizeX":18,"series":[],"card":{"query_average_duration":null},"updated_at":"2020-06-07T05:41:55.087","col":0,"id":4,"parameter_mappings":[],"card_id":null,"visualization_settings":{"text":"# + How these Products are distributed","virtual_card":{"name":null,"display":"text","dataset_query":{},"visualization_settings":{}},"dashcard.background":false,"text.align_vertical":"bottom"},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.087","sizeY":2,"row":6},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Float","display_name":"Rating","name":"RATING","description":"The + average rating users have given the product. This ranges from 1 - 5","special_type":"type/Score","fingerprint":{"global":{"distinct-count":23,"nil%":0.0},"type":{"type/Number":{"min":0.0,"q1":3.5120465053408525,"q3":4.216124969497314,"max":5.0,"sd":1.3605488657451452,"avg":3.4715}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":6,"nil%":0.0},"type":{"type/Number":{"min":2.0,"q1":3.0,"q3":46.0,"max":108.0,"sd":39.97832746209709,"avg":33.333333333333336}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + by Rating","query_average_duration":69,"creator_id":1,"updated_at":"2020-06-07T05:43:00.567","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["binning-strategy",["field-id",2],"default"]],"aggregation":[["count"]]}},"id":5,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["RATING"],"graph.colors":["#f9d45c"]},"created_at":"2020-06-07T05:41:55.114","public_uuid":null},"updated_at":"2020-06-07T05:41:55.122","col":0,"id":5,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":5},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":5}],"card_id":5,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.122","sizeY":4,"row":8},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Float","display_name":"Price","name":"PRICE","description":"The + list price of the product. Note that this is not always the price the product + sold for due to discounts, promotions, etc.","fingerprint":{"global":{"distinct-count":170,"nil%":0.0},"type":{"type/Number":{"min":15.691943673970439,"q1":37.25154462926434,"q3":75.45898071609447,"max":98.81933684368194,"sd":21.711481557852057,"avg":55.74639966792074}}},"special_type":null},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":7,"nil%":0.0},"type":{"type/Number":{"min":10.0,"q1":17.75,"q3":39.75,"max":43.0,"sd":12.607631853460067,"avg":28.571428571428573}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + by Price","query_average_duration":45,"creator_id":1,"updated_at":"2020-06-07T05:43:00.558","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["binning-strategy",["field-id",3],"default"]],"aggregation":[["count"]]}},"id":6,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["PRICE"],"graph.colors":["#EF8C8C"]},"created_at":"2020-06-07T05:41:55.146","public_uuid":null},"updated_at":"2020-06-07T05:41:55.154","col":6,"id":6,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":6},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":6}],"card_id":6,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.154","sizeY":4,"row":8},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Text","display_name":"Category","name":"CATEGORY","description":"The + type of product, valid values include: Doohicky, Gadget, Gizmo and Widget","special_type":"type/Category","fingerprint":{"global":{"distinct-count":4,"nil%":0.0},"type":{"type/Text":{"percent-json":0.0,"percent-url":0.0,"percent-email":0.0,"average-length":6.375}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":4,"nil%":0.0},"type":{"type/Number":{"min":42.0,"q1":46.5,"q3":53.5,"max":54.0,"sd":5.477225575051661,"avg":50.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Products + per Category","query_average_duration":60,"creator_id":1,"updated_at":"2020-06-07T05:43:00.531","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["field-id",6]],"aggregation":[["count"]],"order-by":[["desc",["aggregation",0]]]}},"id":7,"display":"row","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CATEGORY"],"graph.colors":["#9CC177"]},"created_at":"2020-06-07T05:41:55.178","public_uuid":null},"updated_at":"2020-06-07T05:41:55.191","col":12,"id":7,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":7},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":7}],"card_id":7,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.191","sizeY":8,"row":8},{"sizeX":18,"series":[],"card":{"query_average_duration":null},"updated_at":"2020-06-07T05:41:55.204","col":0,"id":8,"parameter_mappings":[],"card_id":null,"visualization_settings":{"text":"# + These Products across time","virtual_card":{"name":null,"display":"text","dataset_query":{},"visualization_settings":{}},"dashcard.background":false,"text.align_vertical":"bottom"},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.204","sizeY":2,"row":16},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":9,"nil%":0.0},"type":{"type/Number":{"min":2.0,"q1":3.903943276465977,"q3":6.662882692912616,"max":10.0,"sd":1.8923744558308435,"avg":5.405405405405405}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"New + Products over time","query_average_duration":122,"creator_id":1,"updated_at":"2020-06-07T05:43:00.621","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month"]],"aggregation":[["count"]]}},"id":8,"display":"line","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#f9d45c"]},"created_at":"2020-06-07T05:41:55.24","public_uuid":null},"updated_at":"2020-06-07T05:41:55.248","col":0,"id":9,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":8},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":8}],"card_id":8,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.248","sizeY":4,"row":18},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/Float","display_name":"Ratingの合計値","name":"sum","special_type":"type/Score","fingerprint":{"global":{"distinct-count":35,"nil%":0.0},"type":{"type/Number":{"min":8.0,"q1":12.55,"q3":23.575000000000003,"max":36.300000000000004,"sd":7.546898414294159,"avg":18.764864864864865}}}},{"base_type":"type/Float","display_name":"Ratingの平均値","name":"avg","special_type":"type/Score","fingerprint":{"global":{"distinct-count":33,"nil%":0.0},"type":{"type/Number":{"min":2.075,"q1":2.9491071428571427,"q3":4.080177669529663,"max":4.325,"sd":0.6677592084904477,"avg":3.5062290862290864}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Rating + over time","query_average_duration":186,"creator_id":1,"updated_at":"2020-06-07T05:43:00.695","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month"]],"aggregation":[["sum",["field-id",2]],["avg",["field-id",2]]]}},"id":9,"display":"line","visualization_settings":{"graph.series_labels":["合計","平均"],"graph.metrics":["sum","avg"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#509EE3","#EF8C8C"]},"created_at":"2020-06-07T05:41:55.294","public_uuid":null},"updated_at":"2020-06-07T05:41:55.303","col":6,"id":10,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":9},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":9}],"card_id":9,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.303","sizeY":4,"row":18},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/Float","display_name":"Priceの合計値","name":"sum","special_type":null,"fingerprint":{"global":{"distinct-count":37,"nil%":0.0},"type":{"type/Number":{"min":126.07969572885267,"q1":213.8258543297341,"q3":395.22516593105985,"max":500.95851926624,"sd":110.77109676607344,"avg":301.3318900968689}}}},{"base_type":"type/Float","display_name":"Priceの平均値","name":"avg","special_type":null,"fingerprint":{"global":{"distinct-count":37,"nil%":0.0},"type":{"type/Number":{"min":36.36288675650544,"q1":52.0354198659519,"q3":62.271448642991786,"max":87.44650815121386,"sd":9.938129123880996,"avg":56.29177097906579}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Price + over time","query_average_duration":200,"creator_id":1,"updated_at":"2020-06-07T05:43:00.719","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month"]],"aggregation":[["sum",["field-id",3]],["avg",["field-id",3]]]}},"id":10,"display":"line","visualization_settings":{"graph.series_labels":["合計","平均"],"graph.metrics":["sum","avg"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#509EE3","#9CC177"]},"created_at":"2020-06-07T05:41:55.343","public_uuid":null},"updated_at":"2020-06-07T05:41:55.358","col":12,"id":11,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":10},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":10}],"card_id":10,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.358","sizeY":4,"row":18},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"day-of-week","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":7,"nil%":0.0},"type":{"type/Number":{"min":22.0,"q1":25.5,"q3":30.75,"max":36.0,"sd":4.503966505838414,"avg":28.571428571428573}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Weekdays + when Products were added","query_average_duration":84,"creator_id":1,"updated_at":"2020-06-07T05:43:00.641","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"day-of-week"]],"aggregation":[["count"]]}},"id":11,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by day of the week"},"created_at":"2020-06-07T05:41:55.384","public_uuid":null},"updated_at":"2020-06-07T05:41:55.393","col":0,"id":12,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":11},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":11}],"card_id":11,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.393","sizeY":4,"row":22},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"hour-of-day","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":12,"nil%":0.0},"type":{"type/Number":{"min":2.0,"q1":5.656854249492381,"q3":12.0,"max":15.0,"sd":3.8410445439236707,"avg":8.333333333333334}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Hours + when Products were added","query_average_duration":71,"creator_id":1,"updated_at":"2020-06-07T05:43:00.649","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"hour-of-day"]],"aggregation":[["count"]]}},"id":12,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by hour of the day"},"created_at":"2020-06-07T05:41:55.424","public_uuid":null},"updated_at":"2020-06-07T05:41:55.436","col":6,"id":13,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":12},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":12}],"card_id":12,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.436","sizeY":4,"row":22},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"day-of-month","fingerprint":{"global":{"distinct-count":200,"nil%":0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":9,"nil%":0},"type":{"type/Number":{"min":3,"q1":4.464466094067262,"q3":7.833333333333333,"max":11,"sd":2.419899580250103,"avg":6.451612903225806}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Days + when Products were added","query_average_duration":65,"creator_id":1,"updated_at":"2020-06-07T06:18:04.235","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"day-of-month"]],"aggregation":[["count"]]}},"id":13,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by day of the month","graph.show_values":false},"created_at":"2020-06-07T05:41:55.46","public_uuid":null},"updated_at":"2020-06-07T05:41:55.469","col":12,"id":14,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":13},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":13}],"card_id":13,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.469","sizeY":4,"row":22},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"month-of-year","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":6,"nil%":0.0},"type":{"type/Number":{"min":13.0,"q1":14.901923788646684,"q3":18.177124344467703,"max":21.0,"sd":2.5346089292516947,"avg":16.666666666666668}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Months + when Products were added","query_average_duration":53,"creator_id":1,"updated_at":"2020-06-07T05:43:00.699","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"month-of-year"]],"aggregation":[["count"]]}},"id":14,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by month of the year"},"created_at":"2020-06-07T05:41:55.495","public_uuid":null},"updated_at":"2020-06-07T05:41:55.51","col":0,"id":15,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":14},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":14}],"card_id":14,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.51","sizeY":4,"row":26},{"sizeX":6,"series":[],"card":{"description":null,"archived":false,"collection_position":null,"table_id":1,"result_metadata":[{"base_type":"type/Integer","display_name":"Created + At","name":"CREATED_AT","description":"The date the product was added to our + catalog.","special_type":"type/CreationTimestamp","unit":"quarter-of-year","fingerprint":{"global":{"distinct-count":200,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-26T19:29:55.147","latest":"2019-04-15T13:34:19.931"}}}},{"base_type":"type/BigInteger","display_name":"カウント","name":"count","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":4,"nil%":0.0},"type":{"type/Number":{"min":46.0,"q1":47.0,"q3":53.0,"max":54.0,"sd":3.6514837167011076,"avg":50.0}}}}],"database_id":1,"enable_embedding":false,"collection_id":4,"query_type":"query","name":"Quarters + when Products were added","query_average_duration":34,"creator_id":1,"updated_at":"2020-06-07T05:43:00.703","made_public_by_id":null,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","database":1,"query":{"source-table":1,"breakout":[["datetime-field",["field-id",7],"quarter-of-year"]],"aggregation":[["count"]]}},"id":15,"display":"bar","visualization_settings":{"graph.series_labels":["番号"],"graph.metrics":["count"],"graph.dimensions":["CREATED_AT"],"graph.colors":["#EF8C8C"],"graph.x_axis.title_text":"Created + At by quarter of the year"},"created_at":"2020-06-07T05:41:55.545","public_uuid":null},"updated_at":"2020-06-07T05:41:55.56","col":6,"id":16,"parameter_mappings":[{"parameter_id":"585754392","target":["dimension",["field-id",7]],"card_id":15},{"parameter_id":"-577791211","target":["dimension",["field-id",6]],"card_id":15}],"card_id":15,"visualization_settings":{},"dashboard_id":1,"created_at":"2020-06-07T05:41:55.56","sizeY":4,"row":26},{"sizeX":2,"series":[],"card":{"query_average_duration":null},"updated_at":"2021-04-22T03:11:59.377","col":0,"id":73,"parameter_mappings":[],"card_id":null,"visualization_settings":{},"dashboard_id":1,"created_at":"2021-04-22T03:11:59.377","sizeY":2,"row":0},{"sizeX":2,"series":[],"card":{"query_average_duration":null},"updated_at":"2021-04-22T03:12:09.357","col":0,"id":74,"parameter_mappings":[],"card_id":null,"visualization_settings":{},"dashboard_id":1,"created_at":"2021-04-22T03:12:09.357","sizeY":2,"row":0}],"param_values":{"6":{"values":["Doohickey","Gadget","Gizmo","Widget"],"human_readable_values":[],"field_id":6}},"can_write":true,"enable_embedding":false,"collection_id":4,"show_in_getting_started":false,"name":"Products + Dashboard","caveats":null,"creator_id":1,"updated_at":"2020-06-07T05:43:17.05","made_public_by_id":null,"embedding_params":null,"id":1,"position":null,"param_fields":{"6":{"id":6,"table_id":1,"display_name":"Category","base_type":"type/Text","special_type":"type/Category","has_field_values":"list","name_field":null,"dimensions":[]},"7":{"id":7,"table_id":1,"display_name":"Created + At","base_type":"type/DateTime","special_type":"type/CreationTimestamp","has_field_values":"none","name_field":null,"dimensions":[]}},"parameters":[{"id":"585754392","type":"date/all-options","name":"Created + At","slug":"CREATED_AT"},{"id":"-577791211","type":"category","name":"Category","slug":"CATEGORY"}],"created_at":"2020-06-07T05:41:54.97","public_uuid":null,"points_of_interest":null}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - 7a213ec4-dc05-4f35-8d16-98977e2b81e9 + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 22 Apr 2021 03:17:57 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Thu, 22 Apr 2021 03:17:58 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"status":"ok"}' + recorded_at: Thu, 22 Apr 2021 03:17:58 GMT +recorded_with: VCR 6.0.0 From ec07e2c3c460aed632c16dd1ebaecd6de410994e Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Thu, 22 Apr 2021 00:39:36 -0300 Subject: [PATCH 11/13] Add ability to delete a dashboard card --- lib/metabase/endpoint/dashboard.rb | 12 +- spec/metabase/endpoint/dashboard_spec.rb | 11 ++ .../success/delete_a_dashboard_card.yml | 172 ++++++++++++++++++ 3 files changed, 194 insertions(+), 1 deletion(-) create mode 100644 spec/vcr_cassettes/Metabase_Endpoint_Dashboard/delete_dashboard_card/success/delete_a_dashboard_card.yml diff --git a/lib/metabase/endpoint/dashboard.rb b/lib/metabase/endpoint/dashboard.rb index b98d429..e2d155a 100644 --- a/lib/metabase/endpoint/dashboard.rb +++ b/lib/metabase/endpoint/dashboard.rb @@ -49,7 +49,17 @@ def copy_dashboard(from_dashboard_id, **params) # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#put-apidashboardidcards def update_dashboard_cards(dashboard_id, **params) put("/api/dashboard/#{dashboard_id}/cards", **params) - end + end + + # Remove a DashboardCard from a Dashboard. + # + # @param dashboard_id [Integer, String] Dashboard ID + # @param params [Hash] Query string + # @return [Hash] Parsed response JSON + # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#delete-apidashboardidcards + def delete_dashboard_card(dashboard_id, **params) + delete("/api/dashboard/#{dashboard_id}/cards", **params) + end end end end diff --git a/spec/metabase/endpoint/dashboard_spec.rb b/spec/metabase/endpoint/dashboard_spec.rb index d03f50a..2d4c932 100644 --- a/spec/metabase/endpoint/dashboard_spec.rb +++ b/spec/metabase/endpoint/dashboard_spec.rb @@ -51,4 +51,15 @@ end end end + + describe 'delete_dashboard_card', vcr: true do + context 'success' do + it 'delete a dashboard card' do + dashboard = client.dashboard(dashboard_id) + params = { dashcardId: dashboard['ordered_cards'][0]['id'] } + delete_dashboard_card = client.delete_dashboard_card(dashboard_id, **params) + expect(delete_dashboard_card).to be_nil + end + end + end end diff --git a/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/delete_dashboard_card/success/delete_a_dashboard_card.yml b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/delete_dashboard_card/success/delete_a_dashboard_card.yml new file mode 100644 index 0000000..e5eafe0 --- /dev/null +++ b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/delete_dashboard_card/success/delete_a_dashboard_card.yml @@ -0,0 +1,172 @@ +--- +http_interactions: +- request: + method: post + uri: http://localhost:3030/api/session + body: + encoding: UTF-8 + string: '{"username":"mb@example.com","password":"p@ssw0rd"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 22 Apr 2021 03:38:52 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Thu, 22 Apr 2021 03:38:52 GMT + Strict-Transport-Security: + - max-age=31536000 + Set-Cookie: + - metabase.SESSION=f976b50d-c359-4d9e-bf36-212852f0b513;SameSite=Lax;HttpOnly;Path=/;Max-Age=1209600 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"id":"f976b50d-c359-4d9e-bf36-212852f0b513"}' + recorded_at: Thu, 22 Apr 2021 03:38:52 GMT +- request: + method: get + uri: http://localhost:3030/api/dashboard/1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - f976b50d-c359-4d9e-bf36-212852f0b513 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 22 Apr 2021 03:38:52 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Thu, 22 Apr 2021 03:38:52 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjozLCJvcmRlcmVkX2NhcmRzIjpbeyJzaXplWCI6MTgsInNlcmllcyI6W10sImNhcmQiOnsicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjA4NyIsImNvbCI6MCwiaWQiOjQsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGV4dCI6IiMgSG93IHRoZXNlIFByb2R1Y3RzIGFyZSBkaXN0cmlidXRlZCIsInZpcnR1YWxfY2FyZCI6eyJuYW1lIjpudWxsLCJkaXNwbGF5IjoidGV4dCIsImRhdGFzZXRfcXVlcnkiOnt9LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fX0sImRhc2hjYXJkLmJhY2tncm91bmQiOmZhbHNlLCJ0ZXh0LmFsaWduX3ZlcnRpY2FsIjoiYm90dG9tIn0sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMDg3Iiwic2l6ZVkiOjIsInJvdyI6Nn0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiUmF0aW5nIiwibmFtZSI6IlJBVElORyIsImRlc2NyaXB0aW9uIjoiVGhlIGF2ZXJhZ2UgcmF0aW5nIHVzZXJzIGhhdmUgZ2l2ZW4gdGhlIHByb2R1Y3QuIFRoaXMgcmFuZ2VzIGZyb20gMSAtIDUiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1Njb3JlIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMCwicTEiOjMuNTEyMDQ2NTA1MzQwODUyNSwicTMiOjQuMjE2MTI0OTY5NDk3MzE0LCJtYXgiOjUuMCwic2QiOjEuMzYwNTQ4ODY1NzQ1MTQ1MiwiYXZnIjozLjQ3MTV9fX19LHsiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6NiwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIuMCwicTEiOjMuMCwicTMiOjQ2LjAsIm1heCI6MTA4LjAsInNkIjozOS45NzgzMjc0NjIwOTcwOSwiYXZnIjozMy4zMzMzMzMzMzMzMzMzMzZ9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiUHJvZHVjdHMgYnkgUmF0aW5nIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6NjksImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjU2NyIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImJpbm5pbmctc3RyYXRlZ3kiLFsiZmllbGQtaWQiLDJdLCJkZWZhdWx0Il1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV19fSwiaWQiOjUsImRpc3BsYXkiOiJiYXIiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi55Wq5Y+3Il0sImdyYXBoLm1ldHJpY3MiOlsiY291bnQiXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJSQVRJTkciXSwiZ3JhcGguY29sb3JzIjpbIiNmOWQ0NWMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjExNCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTIyIiwiY29sIjowLCJpZCI6NSwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjV9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6NX1dLCJjYXJkX2lkIjo1LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xMjIiLCJzaXplWSI6NCwicm93Ijo4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJQcmljZSIsIm5hbWUiOiJQUklDRSIsImRlc2NyaXB0aW9uIjoiVGhlIGxpc3QgcHJpY2Ugb2YgdGhlIHByb2R1Y3QuIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBhbHdheXMgdGhlIHByaWNlIHRoZSBwcm9kdWN0IHNvbGQgZm9yIGR1ZSB0byBkaXNjb3VudHMsIHByb21vdGlvbnMsIGV0Yy4iLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjE3MCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjE1LjY5MTk0MzY3Mzk3MDQzOSwicTEiOjM3LjI1MTU0NDYyOTI2NDM0LCJxMyI6NzUuNDU4OTgwNzE2MDk0NDcsIm1heCI6OTguODE5MzM2ODQzNjgxOTQsInNkIjoyMS43MTE0ODE1NTc4NTIwNTcsImF2ZyI6NTUuNzQ2Mzk5NjY3OTIwNzR9fX0sInNwZWNpYWxfdHlwZSI6bnVsbH0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTAuMCwicTEiOjE3Ljc1LCJxMyI6MzkuNzUsIm1heCI6NDMuMCwic2QiOjEyLjYwNzYzMTg1MzQ2MDA2NywiYXZnIjoyOC41NzE0Mjg1NzE0Mjg1NzN9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiUHJvZHVjdHMgYnkgUHJpY2UiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo0NSwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNTU4IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siYmlubmluZy1zdHJhdGVneSIsWyJmaWVsZC1pZCIsM10sImRlZmF1bHQiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6NiwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIlBSSUNFIl0sImdyYXBoLmNvbG9ycyI6WyIjRUY4QzhDIl19LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xNDYiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE1NCIsImNvbCI6NiwiaWQiOjYsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjo2fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjZ9XSwiY2FyZF9pZCI6NiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTU0Iiwic2l6ZVkiOjQsInJvdyI6OH0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL1RleHQiLCJkaXNwbGF5X25hbWUiOiJDYXRlZ29yeSIsIm5hbWUiOiJDQVRFR09SWSIsImRlc2NyaXB0aW9uIjoiVGhlIHR5cGUgb2YgcHJvZHVjdCwgdmFsaWQgdmFsdWVzIGluY2x1ZGU6IERvb2hpY2t5LCBHYWRnZXQsIEdpem1vIGFuZCBXaWRnZXQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NhdGVnb3J5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo0LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvVGV4dCI6eyJwZXJjZW50LWpzb24iOjAuMCwicGVyY2VudC11cmwiOjAuMCwicGVyY2VudC1lbWFpbCI6MC4wLCJhdmVyYWdlLWxlbmd0aCI6Ni4zNzV9fX19LHsiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6NCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjQyLjAsInExIjo0Ni41LCJxMyI6NTMuNSwibWF4Ijo1NC4wLCJzZCI6NS40NzcyMjU1NzUwNTE2NjEsImF2ZyI6NTAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBwZXIgQ2F0ZWdvcnkiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo2MCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNTMxIiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZmllbGQtaWQiLDZdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dLCJvcmRlci1ieSI6W1siZGVzYyIsWyJhZ2dyZWdhdGlvbiIsMF1dXX19LCJpZCI6NywiZGlzcGxheSI6InJvdyIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNBVEVHT1JZIl0sImdyYXBoLmNvbG9ycyI6WyIjOUNDMTc3Il19LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xNzgiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE5MSIsImNvbCI6MTIsImlkIjo3LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6N30seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo3fV0sImNhcmRfaWQiOjcsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE5MSIsInNpemVZIjo4LCJyb3ciOjh9LHsic2l6ZVgiOjE4LCJzZXJpZXMiOltdLCJjYXJkIjp7InF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yMDQiLCJjb2wiOjAsImlkIjo4LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOltdLCJjYXJkX2lkIjpudWxsLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7InRleHQiOiIjIFRoZXNlIFByb2R1Y3RzIGFjcm9zcyB0aW1lIiwidmlydHVhbF9jYXJkIjp7Im5hbWUiOm51bGwsImRpc3BsYXkiOiJ0ZXh0IiwiZGF0YXNldF9xdWVyeSI6e30sInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9fSwiZGFzaGNhcmQuYmFja2dyb3VuZCI6ZmFsc2UsInRleHQuYWxpZ25fdmVydGljYWwiOiJib3R0b20ifSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yMDQiLCJzaXplWSI6Miwicm93IjoxNn0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0RhdGVUaW1lIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJtb250aCIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo5LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6Mi4wLCJxMSI6My45MDM5NDMyNzY0NjU5NzcsInEzIjo2LjY2Mjg4MjY5MjkxMjYxNiwibWF4IjoxMC4wLCJzZCI6MS44OTIzNzQ0NTU4MzA4NDM1LCJhdmciOjUuNDA1NDA1NDA1NDA1NDA1fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6Ik5ldyBQcm9kdWN0cyBvdmVyIHRpbWUiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjoxMjIsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjYyMSIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImRhdGV0aW1lLWZpZWxkIixbImZpZWxkLWlkIiw3XSwibW9udGgiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6OCwiZGlzcGxheSI6ImxpbmUiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi55Wq5Y+3Il0sImdyYXBoLm1ldHJpY3MiOlsiY291bnQiXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjZjlkNDVjIl19LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yNCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMjQ4IiwiY29sIjowLCJpZCI6OSwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjh9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6OH1dLCJjYXJkX2lkIjo4LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yNDgiLCJzaXplWSI6NCwicm93IjoxOH0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0RhdGVUaW1lIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJtb250aCIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiUmF0aW5n44Gu5ZCI6KiI5YCkIiwibmFtZSI6InN1bSIsInNwZWNpYWxfdHlwZSI6InR5cGUvU2NvcmUiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjM1LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6OC4wLCJxMSI6MTIuNTUsInEzIjoyMy41NzUwMDAwMDAwMDAwMDMsIm1heCI6MzYuMzAwMDAwMDAwMDAwMDA0LCJzZCI6Ny41NDY4OTg0MTQyOTQxNTksImF2ZyI6MTguNzY0ODY0ODY0ODY0ODY1fX19fSx7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJSYXRpbmfjga7lubPlnYflgKQiLCJuYW1lIjoiYXZnIiwic3BlY2lhbF90eXBlIjoidHlwZS9TY29yZSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MzMsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoyLjA3NSwicTEiOjIuOTQ5MTA3MTQyODU3MTQyNywicTMiOjQuMDgwMTc3NjY5NTI5NjYzLCJtYXgiOjQuMzI1LCJzZCI6MC42Njc3NTkyMDg0OTA0NDc3LCJhdmciOjMuNTA2MjI5MDg2MjI5MDg2NH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJSYXRpbmcgb3ZlciB0aW1lIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6MTg2LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42OTUiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sIm1vbnRoIl1dLCJhZ2dyZWdhdGlvbiI6W1sic3VtIixbImZpZWxkLWlkIiwyXV0sWyJhdmciLFsiZmllbGQtaWQiLDJdXV19fSwiaWQiOjksImRpc3BsYXkiOiJsaW5lIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIuWQiOioiCIsIuW5s+WdhyJdLCJncmFwaC5tZXRyaWNzIjpbInN1bSIsImF2ZyJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiM1MDlFRTMiLCIjRUY4QzhDIl19LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yOTQiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjMwMyIsImNvbCI6NiwiaWQiOjEwLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6OX0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo5fV0sImNhcmRfaWQiOjksInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjMwMyIsInNpemVZIjo0LCJyb3ciOjE4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJQcmljZeOBruWQiOioiOWApCIsIm5hbWUiOiJzdW0iLCJzcGVjaWFsX3R5cGUiOm51bGwsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MzcsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoxMjYuMDc5Njk1NzI4ODUyNjcsInExIjoyMTMuODI1ODU0MzI5NzM0MSwicTMiOjM5NS4yMjUxNjU5MzEwNTk4NSwibWF4Ijo1MDAuOTU4NTE5MjY2MjQsInNkIjoxMTAuNzcxMDk2NzY2MDczNDQsImF2ZyI6MzAxLjMzMTg5MDA5Njg2ODl9fX19LHsiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlByaWNl44Gu5bmz5Z2H5YCkIiwibmFtZSI6ImF2ZyIsInNwZWNpYWxfdHlwZSI6bnVsbCwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjozNywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjM2LjM2Mjg4Njc1NjUwNTQ0LCJxMSI6NTIuMDM1NDE5ODY1OTUxOSwicTMiOjYyLjI3MTQ0ODY0Mjk5MTc4NiwibWF4Ijo4Ny40NDY1MDgxNTEyMTM4Niwic2QiOjkuOTM4MTI5MTIzODgwOTk2LCJhdmciOjU2LjI5MTc3MDk3OTA2NTc5fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlByaWNlIG92ZXIgdGltZSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjIwMCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNzE5IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJtb250aCJdXSwiYWdncmVnYXRpb24iOltbInN1bSIsWyJmaWVsZC1pZCIsM11dLFsiYXZnIixbImZpZWxkLWlkIiwzXV1dfX0sImlkIjoxMCwiZGlzcGxheSI6ImxpbmUiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi5ZCI6KiIIiwi5bmz5Z2HIl0sImdyYXBoLm1ldHJpY3MiOlsic3VtIiwiYXZnIl0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiIzUwOUVFMyIsIiM5Q0MxNzciXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM0MyIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzU4IiwiY29sIjoxMiwiaWQiOjExLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTB9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTB9XSwiY2FyZF9pZCI6MTAsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM1OCIsInNpemVZIjo0LCJyb3ciOjE4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoiZGF5LW9mLXdlZWsiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL0RhdGVUaW1lIjp7ImVhcmxpZXN0IjoiMjAxNi0wNC0yNlQxOToyOTo1NS4xNDciLCJsYXRlc3QiOiIyMDE5LTA0LTE1VDEzOjM0OjE5LjkzMSJ9fX19LHsiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6NywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIyLjAsInExIjoyNS41LCJxMyI6MzAuNzUsIm1heCI6MzYuMCwic2QiOjQuNTAzOTY2NTA1ODM4NDE0LCJhdmciOjI4LjU3MTQyODU3MTQyODU3M319fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJXZWVrZGF5cyB3aGVuIFByb2R1Y3RzIHdlcmUgYWRkZWQiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo4NCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNjQxIiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJkYXktb2Ytd2VlayJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxMSwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IGRheSBvZiB0aGUgd2VlayJ9LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4zODQiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM5MyIsImNvbCI6MCwiaWQiOjEyLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTF9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTF9XSwiY2FyZF9pZCI6MTEsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM5MyIsInNpemVZIjo0LCJyb3ciOjIyfSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoiaG91ci1vZi1kYXkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL0RhdGVUaW1lIjp7ImVhcmxpZXN0IjoiMjAxNi0wNC0yNlQxOToyOTo1NS4xNDciLCJsYXRlc3QiOiIyMDE5LTA0LTE1VDEzOjM0OjE5LjkzMSJ9fX19LHsiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MTIsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoyLjAsInExIjo1LjY1Njg1NDI0OTQ5MjM4MSwicTMiOjEyLjAsIm1heCI6MTUuMCwic2QiOjMuODQxMDQ0NTQzOTIzNjcwNywiYXZnIjo4LjMzMzMzMzMzMzMzMzMzNH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJIb3VycyB3aGVuIFByb2R1Y3RzIHdlcmUgYWRkZWQiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo3MSwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNjQ5IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJob3VyLW9mLWRheSJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxMiwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IGhvdXIgb2YgdGhlIGRheSJ9LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS40MjQiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQzNiIsImNvbCI6NiwiaWQiOjEzLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTJ9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTJ9XSwiY2FyZF9pZCI6MTIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQzNiIsInNpemVZIjo0LCJyb3ciOjIyfSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoiZGF5LW9mLW1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo5LCJuaWwlIjowfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjMsInExIjo0LjQ2NDQ2NjA5NDA2NzI2MiwicTMiOjcuODMzMzMzMzMzMzMzMzMzLCJtYXgiOjExLCJzZCI6Mi40MTk4OTk1ODAyNTAxMDMsImF2ZyI6Ni40NTE2MTI5MDMyMjU4MDZ9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiRGF5cyB3aGVuIFByb2R1Y3RzIHdlcmUgYWRkZWQiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo2NSwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDY6MTg6MDQuMjM1IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJkYXktb2YtbW9udGgiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6MTMsImRpc3BsYXkiOiJiYXIiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi55Wq5Y+3Il0sImdyYXBoLm1ldHJpY3MiOlsiY291bnQiXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjRUY4QzhDIl0sImdyYXBoLnhfYXhpcy50aXRsZV90ZXh0IjoiQ3JlYXRlZCBBdCBieSBkYXkgb2YgdGhlIG1vbnRoIiwiZ3JhcGguc2hvd192YWx1ZXMiOmZhbHNlfSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDYiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQ2OSIsImNvbCI6MTIsImlkIjoxNCwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjEzfSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjEzfV0sImNhcmRfaWQiOjEzLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS40NjkiLCJzaXplWSI6NCwicm93IjoyMn0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoLW9mLXllYXIiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL0RhdGVUaW1lIjp7ImVhcmxpZXN0IjoiMjAxNi0wNC0yNlQxOToyOTo1NS4xNDciLCJsYXRlc3QiOiIyMDE5LTA0LTE1VDEzOjM0OjE5LjkzMSJ9fX19LHsiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6NiwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjEzLjAsInExIjoxNC45MDE5MjM3ODg2NDY2ODQsInEzIjoxOC4xNzcxMjQzNDQ0Njc3MDMsIm1heCI6MjEuMCwic2QiOjIuNTM0NjA4OTI5MjUxNjk0NywiYXZnIjoxNi42NjY2NjY2NjY2NjY2Njh9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiTW9udGhzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjUzLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42OTkiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sIm1vbnRoLW9mLXllYXIiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6MTQsImRpc3BsYXkiOiJiYXIiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi55Wq5Y+3Il0sImdyYXBoLm1ldHJpY3MiOlsiY291bnQiXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjRUY4QzhDIl0sImdyYXBoLnhfYXhpcy50aXRsZV90ZXh0IjoiQ3JlYXRlZCBBdCBieSBtb250aCBvZiB0aGUgeWVhciJ9LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS40OTUiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjUxIiwiY29sIjowLCJpZCI6MTUsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxNH0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxNH1dLCJjYXJkX2lkIjoxNCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTEiLCJzaXplWSI6NCwicm93IjoyNn0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6InF1YXJ0ZXItb2YteWVhciIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo0LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6NDYuMCwicTEiOjQ3LjAsInEzIjo1My4wLCJtYXgiOjU0LjAsInNkIjozLjY1MTQ4MzcxNjcwMTEwNzYsImF2ZyI6NTAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJRdWFydGVycyB3aGVuIFByb2R1Y3RzIHdlcmUgYWRkZWQiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjozNCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNzAzIiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJxdWFydGVyLW9mLXllYXIiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6MTUsImRpc3BsYXkiOiJiYXIiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi55Wq5Y+3Il0sImdyYXBoLm1ldHJpY3MiOlsiY291bnQiXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjRUY4QzhDIl0sImdyYXBoLnhfYXhpcy50aXRsZV90ZXh0IjoiQ3JlYXRlZCBBdCBieSBxdWFydGVyIG9mIHRoZSB5ZWFyIn0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjU0NSIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTYiLCJjb2wiOjYsImlkIjoxNiwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjE1fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjE1fV0sImNhcmRfaWQiOjE1LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS41NiIsInNpemVZIjo0LCJyb3ciOjI2fSx7InNpemVYIjoyLCJzZXJpZXMiOltdLCJjYXJkIjp7InF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMS0wNC0yMlQwMzoxMTo1OS4zNzciLCJjb2wiOjAsImlkIjo3MywicGFyYW1ldGVyX21hcHBpbmdzIjpbXSwiY2FyZF9pZCI6bnVsbCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjEtMDQtMjJUMDM6MTE6NTkuMzc3Iiwic2l6ZVkiOjIsInJvdyI6MH0seyJzaXplWCI6Miwic2VyaWVzIjpbXSwiY2FyZCI6eyJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjEtMDQtMjJUMDM6MTI6MDkuMzU3IiwiY29sIjowLCJpZCI6NzQsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIxLTA0LTIyVDAzOjEyOjA5LjM1NyIsInNpemVZIjoyLCJyb3ciOjB9XSwicGFyYW1fdmFsdWVzIjp7IjYiOnsidmFsdWVzIjpbIkRvb2hpY2tleSIsIkdhZGdldCIsIkdpem1vIiwiV2lkZ2V0Il0sImh1bWFuX3JlYWRhYmxlX3ZhbHVlcyI6W10sImZpZWxkX2lkIjo2fX0sImNhbl93cml0ZSI6dHJ1ZSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInNob3dfaW5fZ2V0dGluZ19zdGFydGVkIjpmYWxzZSwibmFtZSI6IlByb2R1Y3RzIERhc2hib2FyZCIsImNhdmVhdHMiOm51bGwsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjE3LjA1IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImlkIjoxLCJwb3NpdGlvbiI6bnVsbCwicGFyYW1fZmllbGRzIjp7IjYiOnsiaWQiOjYsInRhYmxlX2lkIjoxLCJkaXNwbGF5X25hbWUiOiJDYXRlZ29yeSIsImJhc2VfdHlwZSI6InR5cGUvVGV4dCIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ2F0ZWdvcnkiLCJoYXNfZmllbGRfdmFsdWVzIjoibGlzdCIsIm5hbWVfZmllbGQiOm51bGwsImRpbWVuc2lvbnMiOltdfSwiNyI6eyJpZCI6NywidGFibGVfaWQiOjEsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJiYXNlX3R5cGUiOiJ0eXBlL0RhdGVUaW1lIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsImhhc19maWVsZF92YWx1ZXMiOiJub25lIiwibmFtZV9maWVsZCI6bnVsbCwiZGltZW5zaW9ucyI6W119fSwicGFyYW1ldGVycyI6W3siaWQiOiI1ODU3NTQzOTIiLCJ0eXBlIjoiZGF0ZS9hbGwtb3B0aW9ucyIsIm5hbWUiOiJDcmVhdGVkIEF0Iiwic2x1ZyI6IkNSRUFURURfQVQifSx7ImlkIjoiLTU3Nzc5MTIxMSIsInR5cGUiOiJjYXRlZ29yeSIsIm5hbWUiOiJDYXRlZ29yeSIsInNsdWciOiJDQVRFR09SWSJ9XSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTQuOTciLCJwdWJsaWNfdXVpZCI6bnVsbCwicG9pbnRzX29mX2ludGVyZXN0IjpudWxsfQ== + recorded_at: Thu, 22 Apr 2021 03:38:52 GMT +- request: + method: delete + uri: http://localhost:3030/api/dashboard/1/cards?dashcardId=4 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - f976b50d-c359-4d9e-bf36-212852f0b513 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 204 + message: No Content + headers: + Date: + - Thu, 22 Apr 2021 03:38:52 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Thu, 22 Apr 2021 03:38:52 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: UTF-8 + string: '' + recorded_at: Thu, 22 Apr 2021 03:38:52 GMT +recorded_with: VCR 6.0.0 From 9275344f42394c049862c6e87e74ae0024401d60 Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Thu, 22 Apr 2021 09:28:51 -0300 Subject: [PATCH 12/13] Add ability to add a dashboard card --- lib/metabase/endpoint/dashboard.rb | 10 + spec/metabase/endpoint/dashboard_spec.rb | 12 + .../success/add_a_dashboard_cards.yml | 251 ++++++++++++++++++ 3 files changed, 273 insertions(+) create mode 100644 spec/vcr_cassettes/Metabase_Endpoint_Dashboard/add_dashboard_cards/success/add_a_dashboard_cards.yml diff --git a/lib/metabase/endpoint/dashboard.rb b/lib/metabase/endpoint/dashboard.rb index e2d155a..86e73e4 100644 --- a/lib/metabase/endpoint/dashboard.rb +++ b/lib/metabase/endpoint/dashboard.rb @@ -41,6 +41,16 @@ def copy_dashboard(from_dashboard_id, **params) post("/api/dashboard/#{from_dashboard_id}/copy", **params) end + # Add a Card to a Dashboard. + # + # @param dashboard_id [Integer, String] Dashboard ID + # @param params [Hash] Query string + # @return [Hash] Parsed response JSON + # @see https://github.com/metabase/metabase/blob/master/docs/api-documentation.md#post-apidashboardidcards + def add_dashboard_card(dashboard_id, **params) + post("/api/dashboard/#{dashboard_id}/cards", **params) + end + # Update Cards on a Dashboard. # # @param dashboard_id [Integer, String] Dashboard ID diff --git a/spec/metabase/endpoint/dashboard_spec.rb b/spec/metabase/endpoint/dashboard_spec.rb index 2d4c932..f05048f 100644 --- a/spec/metabase/endpoint/dashboard_spec.rb +++ b/spec/metabase/endpoint/dashboard_spec.rb @@ -3,6 +3,7 @@ RSpec.describe Metabase::Endpoint::Dashboard do include_context 'login' let(:dashboard_id) { 1 } + let(:card_id) { 1 } describe 'dashboards', vcr: true do context 'success' do @@ -42,6 +43,17 @@ end end + describe 'add_dashboard_cards', vcr: true do + context 'success' do + it 'add a dashboard cards' do + card = client.dashboard(dashboard_id) + card = client.card(card_id) + add_dashboard_cards = client.add_dashboard_card(dashboard_id, **card) + expect(add_dashboard_cards).to be_kind_of(Hash) + end + end + end + describe 'update_dashboard_cards', vcr: true do context 'success' do it 'update a dashboard cards' do diff --git a/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/add_dashboard_cards/success/add_a_dashboard_cards.yml b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/add_dashboard_cards/success/add_a_dashboard_cards.yml new file mode 100644 index 0000000..09e9e00 --- /dev/null +++ b/spec/vcr_cassettes/Metabase_Endpoint_Dashboard/add_dashboard_cards/success/add_a_dashboard_cards.yml @@ -0,0 +1,251 @@ +--- +http_interactions: +- request: + method: post + uri: http://localhost:3030/api/session + body: + encoding: UTF-8 + string: '{"username":"mb@example.com","password":"p@ssw0rd"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 22 Apr 2021 12:28:04 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Thu, 22 Apr 2021 12:28:04 GMT + Strict-Transport-Security: + - max-age=31536000 + Set-Cookie: + - metabase.SESSION=f83156c2-6b5a-4945-9470-48475d18dcf0;SameSite=Lax;HttpOnly;Path=/;Max-Age=1209600 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"id":"f83156c2-6b5a-4945-9470-48475d18dcf0"}' + recorded_at: Thu, 22 Apr 2021 12:28:04 GMT +- request: + method: get + uri: http://localhost:3030/api/dashboard/1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - f83156c2-6b5a-4945-9470-48475d18dcf0 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 22 Apr 2021 12:28:04 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Thu, 22 Apr 2021 12:28:04 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjozLCJvcmRlcmVkX2NhcmRzIjpbeyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiUmF0aW5nIiwibmFtZSI6IlJBVElORyIsImRlc2NyaXB0aW9uIjoiVGhlIGF2ZXJhZ2UgcmF0aW5nIHVzZXJzIGhhdmUgZ2l2ZW4gdGhlIHByb2R1Y3QuIFRoaXMgcmFuZ2VzIGZyb20gMSAtIDUiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1Njb3JlIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMCwicTEiOjMuNTEyMDQ2NTA1MzQwODUyNSwicTMiOjQuMjE2MTI0OTY5NDk3MzE0LCJtYXgiOjUuMCwic2QiOjEuMzYwNTQ4ODY1NzQ1MTQ1MiwiYXZnIjozLjQ3MTV9fX19LHsiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6NiwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIuMCwicTEiOjMuMCwicTMiOjQ2LjAsIm1heCI6MTA4LjAsInNkIjozOS45NzgzMjc0NjIwOTcwOSwiYXZnIjozMy4zMzMzMzMzMzMzMzMzMzZ9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiUHJvZHVjdHMgYnkgUmF0aW5nIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6NjksImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjU2NyIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImJpbm5pbmctc3RyYXRlZ3kiLFsiZmllbGQtaWQiLDJdLCJkZWZhdWx0Il1dLCJhZ2dyZWdhdGlvbiI6W1siY291bnQiXV19fSwiaWQiOjUsImRpc3BsYXkiOiJiYXIiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi55Wq5Y+3Il0sImdyYXBoLm1ldHJpY3MiOlsiY291bnQiXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJSQVRJTkciXSwiZ3JhcGguY29sb3JzIjpbIiNmOWQ0NWMiXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjExNCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTIyIiwiY29sIjowLCJpZCI6NSwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjV9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6NX1dLCJjYXJkX2lkIjo1LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xMjIiLCJzaXplWSI6NCwicm93Ijo4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJQcmljZSIsIm5hbWUiOiJQUklDRSIsImRlc2NyaXB0aW9uIjoiVGhlIGxpc3QgcHJpY2Ugb2YgdGhlIHByb2R1Y3QuIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBhbHdheXMgdGhlIHByaWNlIHRoZSBwcm9kdWN0IHNvbGQgZm9yIGR1ZSB0byBkaXNjb3VudHMsIHByb21vdGlvbnMsIGV0Yy4iLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjE3MCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjE1LjY5MTk0MzY3Mzk3MDQzOSwicTEiOjM3LjI1MTU0NDYyOTI2NDM0LCJxMyI6NzUuNDU4OTgwNzE2MDk0NDcsIm1heCI6OTguODE5MzM2ODQzNjgxOTQsInNkIjoyMS43MTE0ODE1NTc4NTIwNTcsImF2ZyI6NTUuNzQ2Mzk5NjY3OTIwNzR9fX0sInNwZWNpYWxfdHlwZSI6bnVsbH0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTAuMCwicTEiOjE3Ljc1LCJxMyI6MzkuNzUsIm1heCI6NDMuMCwic2QiOjEyLjYwNzYzMTg1MzQ2MDA2NywiYXZnIjoyOC41NzE0Mjg1NzE0Mjg1NzN9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiUHJvZHVjdHMgYnkgUHJpY2UiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo0NSwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNTU4IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siYmlubmluZy1zdHJhdGVneSIsWyJmaWVsZC1pZCIsM10sImRlZmF1bHQiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6NiwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIlBSSUNFIl0sImdyYXBoLmNvbG9ycyI6WyIjRUY4QzhDIl19LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xNDYiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE1NCIsImNvbCI6NiwiaWQiOjYsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjo2fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjZ9XSwiY2FyZF9pZCI6NiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMTU0Iiwic2l6ZVkiOjQsInJvdyI6OH0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL1RleHQiLCJkaXNwbGF5X25hbWUiOiJDYXRlZ29yeSIsIm5hbWUiOiJDQVRFR09SWSIsImRlc2NyaXB0aW9uIjoiVGhlIHR5cGUgb2YgcHJvZHVjdCwgdmFsaWQgdmFsdWVzIGluY2x1ZGU6IERvb2hpY2t5LCBHYWRnZXQsIEdpem1vIGFuZCBXaWRnZXQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NhdGVnb3J5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo0LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvVGV4dCI6eyJwZXJjZW50LWpzb24iOjAuMCwicGVyY2VudC11cmwiOjAuMCwicGVyY2VudC1lbWFpbCI6MC4wLCJhdmVyYWdlLWxlbmd0aCI6Ni4zNzV9fX19LHsiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6NCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjQyLjAsInExIjo0Ni41LCJxMyI6NTMuNSwibWF4Ijo1NC4wLCJzZCI6NS40NzcyMjU1NzUwNTE2NjEsImF2ZyI6NTAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJQcm9kdWN0cyBwZXIgQ2F0ZWdvcnkiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo2MCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNTMxIiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZmllbGQtaWQiLDZdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dLCJvcmRlci1ieSI6W1siZGVzYyIsWyJhZ2dyZWdhdGlvbiIsMF1dXX19LCJpZCI6NywiZGlzcGxheSI6InJvdyIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNBVEVHT1JZIl0sImdyYXBoLmNvbG9ycyI6WyIjOUNDMTc3Il19LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4xNzgiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE5MSIsImNvbCI6MTIsImlkIjo3LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6N30seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo3fV0sImNhcmRfaWQiOjcsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjE5MSIsInNpemVZIjo4LCJyb3ciOjh9LHsic2l6ZVgiOjE4LCJzZXJpZXMiOltdLCJjYXJkIjp7InF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yMDQiLCJjb2wiOjAsImlkIjo4LCJwYXJhbWV0ZXJfbWFwcGluZ3MiOltdLCJjYXJkX2lkIjpudWxsLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7InRleHQiOiIjIFRoZXNlIFByb2R1Y3RzIGFjcm9zcyB0aW1lIiwidmlydHVhbF9jYXJkIjp7Im5hbWUiOm51bGwsImRpc3BsYXkiOiJ0ZXh0IiwiZGF0YXNldF9xdWVyeSI6e30sInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9fSwiZGFzaGNhcmQuYmFja2dyb3VuZCI6ZmFsc2UsInRleHQuYWxpZ25fdmVydGljYWwiOiJib3R0b20ifSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yMDQiLCJzaXplWSI6Miwicm93IjoxNn0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0RhdGVUaW1lIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJtb250aCIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo5LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6Mi4wLCJxMSI6My45MDM5NDMyNzY0NjU5NzcsInEzIjo2LjY2Mjg4MjY5MjkxMjYxNiwibWF4IjoxMC4wLCJzZCI6MS44OTIzNzQ0NTU4MzA4NDM1LCJhdmciOjUuNDA1NDA1NDA1NDA1NDA1fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6Ik5ldyBQcm9kdWN0cyBvdmVyIHRpbWUiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjoxMjIsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjAwLjYyMSIsIm1hZGVfcHVibGljX2J5X2lkIjpudWxsLCJlbWJlZGRpbmdfcGFyYW1zIjpudWxsLCJjYWNoZV90dGwiOm51bGwsImRhdGFzZXRfcXVlcnkiOnsidHlwZSI6InF1ZXJ5IiwiZGF0YWJhc2UiOjEsInF1ZXJ5Ijp7InNvdXJjZS10YWJsZSI6MSwiYnJlYWtvdXQiOltbImRhdGV0aW1lLWZpZWxkIixbImZpZWxkLWlkIiw3XSwibW9udGgiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6OCwiZGlzcGxheSI6ImxpbmUiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi55Wq5Y+3Il0sImdyYXBoLm1ldHJpY3MiOlsiY291bnQiXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjZjlkNDVjIl19LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yNCIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMjQ4IiwiY29sIjowLCJpZCI6OSwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjh9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6OH1dLCJjYXJkX2lkIjo4LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yNDgiLCJzaXplWSI6NCwicm93IjoxOH0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0RhdGVUaW1lIiwiZGlzcGxheV9uYW1lIjoiQ3JlYXRlZCBBdCIsIm5hbWUiOiJDUkVBVEVEX0FUIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSB0aGUgcHJvZHVjdCB3YXMgYWRkZWQgdG8gb3VyIGNhdGFsb2cuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJtb250aCIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiUmF0aW5n44Gu5ZCI6KiI5YCkIiwibmFtZSI6InN1bSIsInNwZWNpYWxfdHlwZSI6InR5cGUvU2NvcmUiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjM1LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6OC4wLCJxMSI6MTIuNTUsInEzIjoyMy41NzUwMDAwMDAwMDAwMDMsIm1heCI6MzYuMzAwMDAwMDAwMDAwMDA0LCJzZCI6Ny41NDY4OTg0MTQyOTQxNTksImF2ZyI6MTguNzY0ODY0ODY0ODY0ODY1fX19fSx7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJSYXRpbmfjga7lubPlnYflgKQiLCJuYW1lIjoiYXZnIiwic3BlY2lhbF90eXBlIjoidHlwZS9TY29yZSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MzMsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoyLjA3NSwicTEiOjIuOTQ5MTA3MTQyODU3MTQyNywicTMiOjQuMDgwMTc3NjY5NTI5NjYzLCJtYXgiOjQuMzI1LCJzZCI6MC42Njc3NTkyMDg0OTA0NDc3LCJhdmciOjMuNTA2MjI5MDg2MjI5MDg2NH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJSYXRpbmcgb3ZlciB0aW1lIiwicXVlcnlfYXZlcmFnZV9kdXJhdGlvbiI6MTg2LCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42OTUiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sIm1vbnRoIl1dLCJhZ2dyZWdhdGlvbiI6W1sic3VtIixbImZpZWxkLWlkIiwyXV0sWyJhdmciLFsiZmllbGQtaWQiLDJdXV19fSwiaWQiOjksImRpc3BsYXkiOiJsaW5lIiwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6eyJncmFwaC5zZXJpZXNfbGFiZWxzIjpbIuWQiOioiCIsIuW5s+WdhyJdLCJncmFwaC5tZXRyaWNzIjpbInN1bSIsImF2ZyJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiM1MDlFRTMiLCIjRUY4QzhDIl19LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4yOTQiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjMwMyIsImNvbCI6NiwiaWQiOjEwLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6OX0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjo5fV0sImNhcmRfaWQiOjksInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjMwMyIsInNpemVZIjo0LCJyb3ciOjE4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9EYXRlVGltZSI6eyJlYXJsaWVzdCI6IjIwMTYtMDQtMjZUMTk6Mjk6NTUuMTQ3IiwibGF0ZXN0IjoiMjAxOS0wNC0xNVQxMzozNDoxOS45MzEifX19fSx7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJQcmljZeOBruWQiOioiOWApCIsIm5hbWUiOiJzdW0iLCJzcGVjaWFsX3R5cGUiOm51bGwsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MzcsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoxMjYuMDc5Njk1NzI4ODUyNjcsInExIjoyMTMuODI1ODU0MzI5NzM0MSwicTMiOjM5NS4yMjUxNjU5MzEwNTk4NSwibWF4Ijo1MDAuOTU4NTE5MjY2MjQsInNkIjoxMTAuNzcxMDk2NzY2MDczNDQsImF2ZyI6MzAxLjMzMTg5MDA5Njg2ODl9fX19LHsiYmFzZV90eXBlIjoidHlwZS9GbG9hdCIsImRpc3BsYXlfbmFtZSI6IlByaWNl44Gu5bmz5Z2H5YCkIiwibmFtZSI6ImF2ZyIsInNwZWNpYWxfdHlwZSI6bnVsbCwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjozNywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjM2LjM2Mjg4Njc1NjUwNTQ0LCJxMSI6NTIuMDM1NDE5ODY1OTUxOSwicTMiOjYyLjI3MTQ0ODY0Mjk5MTc4NiwibWF4Ijo4Ny40NDY1MDgxNTEyMTM4Niwic2QiOjkuOTM4MTI5MTIzODgwOTk2LCJhdmciOjU2LjI5MTc3MDk3OTA2NTc5fX19fV0sImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6NCwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6IlByaWNlIG92ZXIgdGltZSIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjIwMCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNzE5IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJtb250aCJdXSwiYWdncmVnYXRpb24iOltbInN1bSIsWyJmaWVsZC1pZCIsM11dLFsiYXZnIixbImZpZWxkLWlkIiwzXV1dfX0sImlkIjoxMCwiZGlzcGxheSI6ImxpbmUiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi5ZCI6KiIIiwi5bmz5Z2HIl0sImdyYXBoLm1ldHJpY3MiOlsic3VtIiwiYXZnIl0sImdyYXBoLmRpbWVuc2lvbnMiOlsiQ1JFQVRFRF9BVCJdLCJncmFwaC5jb2xvcnMiOlsiIzUwOUVFMyIsIiM5Q0MxNzciXX0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM0MyIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuMzU4IiwiY29sIjoxMiwiaWQiOjExLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTB9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTB9XSwiY2FyZF9pZCI6MTAsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM1OCIsInNpemVZIjo0LCJyb3ciOjE4fSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoiZGF5LW9mLXdlZWsiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL0RhdGVUaW1lIjp7ImVhcmxpZXN0IjoiMjAxNi0wNC0yNlQxOToyOTo1NS4xNDciLCJsYXRlc3QiOiIyMDE5LTA0LTE1VDEzOjM0OjE5LjkzMSJ9fX19LHsiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6NywibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjIyLjAsInExIjoyNS41LCJxMyI6MzAuNzUsIm1heCI6MzYuMCwic2QiOjQuNTAzOTY2NTA1ODM4NDE0LCJhdmciOjI4LjU3MTQyODU3MTQyODU3M319fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJXZWVrZGF5cyB3aGVuIFByb2R1Y3RzIHdlcmUgYWRkZWQiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo4NCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNjQxIiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJkYXktb2Ytd2VlayJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxMSwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IGRheSBvZiB0aGUgd2VlayJ9LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS4zODQiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM5MyIsImNvbCI6MCwiaWQiOjEyLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTF9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTF9XSwiY2FyZF9pZCI6MTEsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjM5MyIsInNpemVZIjo0LCJyb3ciOjIyfSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoiaG91ci1vZi1kYXkiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL0RhdGVUaW1lIjp7ImVhcmxpZXN0IjoiMjAxNi0wNC0yNlQxOToyOTo1NS4xNDciLCJsYXRlc3QiOiIyMDE5LTA0LTE1VDEzOjM0OjE5LjkzMSJ9fX19LHsiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MTIsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoyLjAsInExIjo1LjY1Njg1NDI0OTQ5MjM4MSwicTMiOjEyLjAsIm1heCI6MTUuMCwic2QiOjMuODQxMDQ0NTQzOTIzNjcwNywiYXZnIjo4LjMzMzMzMzMzMzMzMzMzNH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJIb3VycyB3aGVuIFByb2R1Y3RzIHdlcmUgYWRkZWQiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo3MSwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNjQ5IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJob3VyLW9mLWRheSJdXSwiYWdncmVnYXRpb24iOltbImNvdW50Il1dfX0sImlkIjoxMiwiZGlzcGxheSI6ImJhciIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsiZ3JhcGguc2VyaWVzX2xhYmVscyI6WyLnlarlj7ciXSwiZ3JhcGgubWV0cmljcyI6WyJjb3VudCJdLCJncmFwaC5kaW1lbnNpb25zIjpbIkNSRUFURURfQVQiXSwiZ3JhcGguY29sb3JzIjpbIiNFRjhDOEMiXSwiZ3JhcGgueF9heGlzLnRpdGxlX3RleHQiOiJDcmVhdGVkIEF0IGJ5IGhvdXIgb2YgdGhlIGRheSJ9LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS40MjQiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQzNiIsImNvbCI6NiwiaWQiOjEzLCJwYXJhbWV0ZXJfbWFwcGluZ3MiOlt7InBhcmFtZXRlcl9pZCI6IjU4NTc1NDM5MiIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDddXSwiY2FyZF9pZCI6MTJ9LHsicGFyYW1ldGVyX2lkIjoiLTU3Nzc5MTIxMSIsInRhcmdldCI6WyJkaW1lbnNpb24iLFsiZmllbGQtaWQiLDZdXSwiY2FyZF9pZCI6MTJ9XSwiY2FyZF9pZCI6MTIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQzNiIsInNpemVZIjo0LCJyb3ciOjIyfSx7InNpemVYIjo2LCJzZXJpZXMiOltdLCJjYXJkIjp7ImRlc2NyaXB0aW9uIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImNvbGxlY3Rpb25fcG9zaXRpb24iOm51bGwsInRhYmxlX2lkIjoxLCJyZXN1bHRfbWV0YWRhdGEiOlt7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJuYW1lIjoiQ1JFQVRFRF9BVCIsImRlc2NyaXB0aW9uIjoiVGhlIGRhdGUgdGhlIHByb2R1Y3Qgd2FzIGFkZGVkIHRvIG91ciBjYXRhbG9nLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ3JlYXRpb25UaW1lc3RhbXAiLCJ1bml0IjoiZGF5LW9mLW1vbnRoIiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50IjoyMDAsIm5pbCUiOjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo5LCJuaWwlIjowfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjMsInExIjo0LjQ2NDQ2NjA5NDA2NzI2MiwicTMiOjcuODMzMzMzMzMzMzMzMzMzLCJtYXgiOjExLCJzZCI6Mi40MTk4OTk1ODAyNTAxMDMsImF2ZyI6Ni40NTE2MTI5MDMyMjU4MDZ9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiRGF5cyB3aGVuIFByb2R1Y3RzIHdlcmUgYWRkZWQiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjo2NSwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDY6MTg6MDQuMjM1IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJkYXktb2YtbW9udGgiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6MTMsImRpc3BsYXkiOiJiYXIiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi55Wq5Y+3Il0sImdyYXBoLm1ldHJpY3MiOlsiY291bnQiXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjRUY4QzhDIl0sImdyYXBoLnhfYXhpcy50aXRsZV90ZXh0IjoiQ3JlYXRlZCBBdCBieSBkYXkgb2YgdGhlIG1vbnRoIiwiZ3JhcGguc2hvd192YWx1ZXMiOmZhbHNlfSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNDYiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjQ2OSIsImNvbCI6MTIsImlkIjoxNCwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjEzfSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjEzfV0sImNhcmRfaWQiOjEzLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS40NjkiLCJzaXplWSI6NCwicm93IjoyMn0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6Im1vbnRoLW9mLXllYXIiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL0RhdGVUaW1lIjp7ImVhcmxpZXN0IjoiMjAxNi0wNC0yNlQxOToyOTo1NS4xNDciLCJsYXRlc3QiOiIyMDE5LTA0LTE1VDEzOjM0OjE5LjkzMSJ9fX19LHsiYmFzZV90eXBlIjoidHlwZS9CaWdJbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoi44Kr44Km44Oz44OIIiwibmFtZSI6ImNvdW50Iiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6NiwibmlsJSI6MC4wfSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjEzLjAsInExIjoxNC45MDE5MjM3ODg2NDY2ODQsInEzIjoxOC4xNzcxMjQzNDQ0Njc3MDMsIm1heCI6MjEuMCwic2QiOjIuNTM0NjA4OTI5MjUxNjk0NywiYXZnIjoxNi42NjY2NjY2NjY2NjY2Njh9fX19XSwiZGF0YWJhc2VfaWQiOjEsImVuYWJsZV9lbWJlZGRpbmciOmZhbHNlLCJjb2xsZWN0aW9uX2lkIjo0LCJxdWVyeV90eXBlIjoicXVlcnkiLCJuYW1lIjoiTW9udGhzIHdoZW4gUHJvZHVjdHMgd2VyZSBhZGRlZCIsInF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOjUzLCJjcmVhdG9yX2lkIjoxLCJ1cGRhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MzowMC42OTkiLCJtYWRlX3B1YmxpY19ieV9pZCI6bnVsbCwiZW1iZWRkaW5nX3BhcmFtcyI6bnVsbCwiY2FjaGVfdHRsIjpudWxsLCJkYXRhc2V0X3F1ZXJ5Ijp7InR5cGUiOiJxdWVyeSIsImRhdGFiYXNlIjoxLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjEsImJyZWFrb3V0IjpbWyJkYXRldGltZS1maWVsZCIsWyJmaWVsZC1pZCIsN10sIm1vbnRoLW9mLXllYXIiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6MTQsImRpc3BsYXkiOiJiYXIiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi55Wq5Y+3Il0sImdyYXBoLm1ldHJpY3MiOlsiY291bnQiXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjRUY4QzhDIl0sImdyYXBoLnhfYXhpcy50aXRsZV90ZXh0IjoiQ3JlYXRlZCBBdCBieSBtb250aCBvZiB0aGUgeWVhciJ9LCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS40OTUiLCJwdWJsaWNfdXVpZCI6bnVsbH0sInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjUxIiwiY29sIjowLCJpZCI6MTUsInBhcmFtZXRlcl9tYXBwaW5ncyI6W3sicGFyYW1ldGVyX2lkIjoiNTg1NzU0MzkyIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsN11dLCJjYXJkX2lkIjoxNH0seyJwYXJhbWV0ZXJfaWQiOiItNTc3NzkxMjExIiwidGFyZ2V0IjpbImRpbWVuc2lvbiIsWyJmaWVsZC1pZCIsNl1dLCJjYXJkX2lkIjoxNH1dLCJjYXJkX2lkIjoxNCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTEiLCJzaXplWSI6NCwicm93IjoyNn0seyJzaXplWCI6Niwic2VyaWVzIjpbXSwiY2FyZCI6eyJkZXNjcmlwdGlvbiI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MSwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIHRoZSBwcm9kdWN0IHdhcyBhZGRlZCB0byBvdXIgY2F0YWxvZy4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0NyZWF0aW9uVGltZXN0YW1wIiwidW5pdCI6InF1YXJ0ZXItb2YteWVhciIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MjAwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTI2VDE5OjI5OjU1LjE0NyIsImxhdGVzdCI6IjIwMTktMDQtMTVUMTM6MzQ6MTkuOTMxIn19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiLjgqvjgqbjg7Pjg4giLCJuYW1lIjoiY291bnQiLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL1F1YW50aXR5IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo0LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6NDYuMCwicTEiOjQ3LjAsInEzIjo1My4wLCJtYXgiOjU0LjAsInNkIjozLjY1MTQ4MzcxNjcwMTEwNzYsImF2ZyI6NTAuMH19fX1dLCJkYXRhYmFzZV9pZCI6MSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInF1ZXJ5X3R5cGUiOiJxdWVyeSIsIm5hbWUiOiJRdWFydGVycyB3aGVuIFByb2R1Y3RzIHdlcmUgYWRkZWQiLCJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjozNCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDM6MDAuNzAzIiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJkYXRhYmFzZSI6MSwicXVlcnkiOnsic291cmNlLXRhYmxlIjoxLCJicmVha291dCI6W1siZGF0ZXRpbWUtZmllbGQiLFsiZmllbGQtaWQiLDddLCJxdWFydGVyLW9mLXllYXIiXV0sImFnZ3JlZ2F0aW9uIjpbWyJjb3VudCJdXX19LCJpZCI6MTUsImRpc3BsYXkiOiJiYXIiLCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7ImdyYXBoLnNlcmllc19sYWJlbHMiOlsi55Wq5Y+3Il0sImdyYXBoLm1ldHJpY3MiOlsiY291bnQiXSwiZ3JhcGguZGltZW5zaW9ucyI6WyJDUkVBVEVEX0FUIl0sImdyYXBoLmNvbG9ycyI6WyIjRUY4QzhDIl0sImdyYXBoLnhfYXhpcy50aXRsZV90ZXh0IjoiQ3JlYXRlZCBBdCBieSBxdWFydGVyIG9mIHRoZSB5ZWFyIn0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQxOjU1LjU0NSIsInB1YmxpY191dWlkIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTUuNTYiLCJjb2wiOjYsImlkIjoxNiwicGFyYW1ldGVyX21hcHBpbmdzIjpbeyJwYXJhbWV0ZXJfaWQiOiI1ODU3NTQzOTIiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw3XV0sImNhcmRfaWQiOjE1fSx7InBhcmFtZXRlcl9pZCI6Ii01Nzc3OTEyMTEiLCJ0YXJnZXQiOlsiZGltZW5zaW9uIixbImZpZWxkLWlkIiw2XV0sImNhcmRfaWQiOjE1fV0sImNhcmRfaWQiOjE1LCJ2aXN1YWxpemF0aW9uX3NldHRpbmdzIjp7fSwiZGFzaGJvYXJkX2lkIjoxLCJjcmVhdGVkX2F0IjoiMjAyMC0wNi0wN1QwNTo0MTo1NS41NiIsInNpemVZIjo0LCJyb3ciOjI2fSx7InNpemVYIjoyLCJzZXJpZXMiOltdLCJjYXJkIjp7InF1ZXJ5X2F2ZXJhZ2VfZHVyYXRpb24iOm51bGx9LCJ1cGRhdGVkX2F0IjoiMjAyMS0wNC0yMlQwMzoxMTo1OS4zNzciLCJjb2wiOjAsImlkIjo3MywicGFyYW1ldGVyX21hcHBpbmdzIjpbXSwiY2FyZF9pZCI6bnVsbCwidmlzdWFsaXphdGlvbl9zZXR0aW5ncyI6e30sImRhc2hib2FyZF9pZCI6MSwiY3JlYXRlZF9hdCI6IjIwMjEtMDQtMjJUMDM6MTE6NTkuMzc3Iiwic2l6ZVkiOjIsInJvdyI6MH0seyJzaXplWCI6Miwic2VyaWVzIjpbXSwiY2FyZCI6eyJxdWVyeV9hdmVyYWdlX2R1cmF0aW9uIjpudWxsfSwidXBkYXRlZF9hdCI6IjIwMjEtMDQtMjJUMDM6MTI6MDkuMzU3IiwiY29sIjowLCJpZCI6NzQsInBhcmFtZXRlcl9tYXBwaW5ncyI6W10sImNhcmRfaWQiOm51bGwsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnt9LCJkYXNoYm9hcmRfaWQiOjEsImNyZWF0ZWRfYXQiOiIyMDIxLTA0LTIyVDAzOjEyOjA5LjM1NyIsInNpemVZIjoyLCJyb3ciOjB9XSwicGFyYW1fdmFsdWVzIjp7IjYiOnsidmFsdWVzIjpbIkRvb2hpY2tleSIsIkdhZGdldCIsIkdpem1vIiwiV2lkZ2V0Il0sImh1bWFuX3JlYWRhYmxlX3ZhbHVlcyI6W10sImZpZWxkX2lkIjo2fX0sImNhbl93cml0ZSI6dHJ1ZSwiZW5hYmxlX2VtYmVkZGluZyI6ZmFsc2UsImNvbGxlY3Rpb25faWQiOjQsInNob3dfaW5fZ2V0dGluZ19zdGFydGVkIjpmYWxzZSwibmFtZSI6IlByb2R1Y3RzIERhc2hib2FyZCIsImNhdmVhdHMiOm51bGwsImNyZWF0b3JfaWQiOjEsInVwZGF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjQzOjE3LjA1IiwibWFkZV9wdWJsaWNfYnlfaWQiOm51bGwsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImlkIjoxLCJwb3NpdGlvbiI6bnVsbCwicGFyYW1fZmllbGRzIjp7IjYiOnsiaWQiOjYsInRhYmxlX2lkIjoxLCJkaXNwbGF5X25hbWUiOiJDYXRlZ29yeSIsImJhc2VfdHlwZSI6InR5cGUvVGV4dCIsInNwZWNpYWxfdHlwZSI6InR5cGUvQ2F0ZWdvcnkiLCJoYXNfZmllbGRfdmFsdWVzIjoibGlzdCIsIm5hbWVfZmllbGQiOm51bGwsImRpbWVuc2lvbnMiOltdfSwiNyI6eyJpZCI6NywidGFibGVfaWQiOjEsImRpc3BsYXlfbmFtZSI6IkNyZWF0ZWQgQXQiLCJiYXNlX3R5cGUiOiJ0eXBlL0RhdGVUaW1lIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsImhhc19maWVsZF92YWx1ZXMiOiJub25lIiwibmFtZV9maWVsZCI6bnVsbCwiZGltZW5zaW9ucyI6W119fSwicGFyYW1ldGVycyI6W3siaWQiOiI1ODU3NTQzOTIiLCJ0eXBlIjoiZGF0ZS9hbGwtb3B0aW9ucyIsIm5hbWUiOiJDcmVhdGVkIEF0Iiwic2x1ZyI6IkNSRUFURURfQVQifSx7ImlkIjoiLTU3Nzc5MTIxMSIsInR5cGUiOiJjYXRlZ29yeSIsIm5hbWUiOiJDYXRlZ29yeSIsInNsdWciOiJDQVRFR09SWSJ9XSwiY3JlYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDU6NDE6NTQuOTciLCJwdWJsaWNfdXVpZCI6bnVsbCwicG9pbnRzX29mX2ludGVyZXN0IjpudWxsfQ== + recorded_at: Thu, 22 Apr 2021 12:28:04 GMT +- request: + method: get + uri: http://localhost:3030/api/card/1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - f83156c2-6b5a-4945-9470-48475d18dcf0 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 22 Apr 2021 12:28:04 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Thu, 22 Apr 2021 12:28:04 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: !binary |- + eyJkZXNjcmlwdGlvbiI6InF1YW50aXR5ID49IDUwIiwiYXJjaGl2ZWQiOmZhbHNlLCJjb2xsZWN0aW9uX3Bvc2l0aW9uIjpudWxsLCJ0YWJsZV9pZCI6MiwicmVzdWx0X21ldGFkYXRhIjpbeyJiYXNlX3R5cGUiOiJ0eXBlL0JpZ0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiJJRCIsIm5hbWUiOiJJRCIsImRlc2NyaXB0aW9uIjoiVGhpcyBpcyBhIHVuaXF1ZSBJRCBmb3IgdGhlIHByb2R1Y3QuIEl0IGlzIGFsc28gY2FsbGVkIHRoZSDigJxJbnZvaWNlIG51bWJlcuKAnSBvciDigJxDb25maXJtYXRpb24gbnVtYmVy4oCdIGluIGN1c3RvbWVyIGZhY2luZyBlbWFpbHMgYW5kIHNjcmVlbnMuIiwic3BlY2lhbF90eXBlIjoidHlwZS9QSyIsImZpbmdlcnByaW50IjpudWxsfSx7ImJhc2VfdHlwZSI6InR5cGUvRGF0ZVRpbWUiLCJkaXNwbGF5X25hbWUiOiJDcmVhdGVkIEF0IiwibmFtZSI6IkNSRUFURURfQVQiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIGFuZCB0aW1lIGFuIG9yZGVyIHdhcyBzdWJtaXR0ZWQuIiwic3BlY2lhbF90eXBlIjoidHlwZS9DcmVhdGlvblRpbWVzdGFtcCIsInVuaXQiOiJkZWZhdWx0IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo5OTk4LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvRGF0ZVRpbWUiOnsiZWFybGllc3QiOiIyMDE2LTA0LTMwVDE4OjU2OjEzLjM1MiIsImxhdGVzdCI6IjIwMjAtMDQtMTlUMTQ6MDc6MTUuNjU3In19fX0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiRGlzY291bnQiLCJuYW1lIjoiRElTQ09VTlQiLCJkZXNjcmlwdGlvbiI6IkRpc2NvdW50IGFtb3VudC4iLCJzcGVjaWFsX3R5cGUiOiJ0eXBlL0Rpc2NvdW50IiwiZmluZ2VycHJpbnQiOnsiZ2xvYmFsIjp7ImRpc3RpbmN0LWNvdW50Ijo3MDEsIm5pbCUiOjAuODk4fSwidHlwZSI6eyJ0eXBlL051bWJlciI6eyJtaW4iOjAuMTcwODg5OTY2NzI1ODQzMjIsInExIjoyLjk3ODYyMjY2ODE0NTg3NDMsInEzIjo3LjMzODE4Nzc4ODY1ODIzNSwibWF4Ijo2MS42OTY4NDI2OTk2MDU3MSwic2QiOjMuMDUzNjYzMTI1MDAxOTkxLCJhdmciOjUuMTYxMjU1NTQ3NTgwMzI2fX19fSx7ImJhc2VfdHlwZSI6InR5cGUvSW50ZWdlciIsImRpc3BsYXlfbmFtZSI6IlByb2R1Y3QgSUQiLCJuYW1lIjoiUFJPRFVDVF9JRCIsImRlc2NyaXB0aW9uIjoiVGhlIHByb2R1Y3QgSUQuIFRoaXMgaXMgYW4gaW50ZXJuYWwgaWRlbnRpZmllciBmb3IgdGhlIHByb2R1Y3QsIE5PVCB0aGUgU0tVLiIsInNwZWNpYWxfdHlwZSI6InR5cGUvRksiLCJmaW5nZXJwcmludCI6eyJnbG9iYWwiOnsiZGlzdGluY3QtY291bnQiOjIwMCwibmlsJSI6MC4wfX19LHsiYmFzZV90eXBlIjoidHlwZS9JbnRlZ2VyIiwiZGlzcGxheV9uYW1lIjoiUXVhbnRpdHkiLCJuYW1lIjoiUVVBTlRJVFkiLCJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBwcm9kdWN0cyBib3VnaHQuIiwic3BlY2lhbF90eXBlIjoidHlwZS9RdWFudGl0eSIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6NjIsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjowLjAsInExIjoxLjc1NTg4MjYwNzc2NDk4MiwicTMiOjQuODgyNjU0NTA3OTI4MDQ0LCJtYXgiOjEwMC4wLCJzZCI6NC4yMTQyNTgzODY0MDM3OTgsImF2ZyI6My43MDE1fX19fSx7ImJhc2VfdHlwZSI6InR5cGUvRmxvYXQiLCJkaXNwbGF5X25hbWUiOiJTdWJ0b3RhbCIsIm5hbWUiOiJTVUJUT1RBTCIsImRlc2NyaXB0aW9uIjoiVGhlIHJhdywgcHJlLXRheCBjb3N0IG9mIHRoZSBvcmRlci4gTm90ZSB0aGF0IHRoaXMgbWlnaHQgYmUgZGlmZmVyZW50IGluIHRoZSBmdXR1cmUgZnJvbSB0aGUgcHJvZHVjdCBwcmljZSBkdWUgdG8gcHJvbW90aW9ucywgY3JlZGl0cywgZXRjLiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MzQwLCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MTUuNjkxOTQzNjczOTcwNDM5LCJxMSI6NDkuNzQ4OTQ1MTkwNjAxODQsInEzIjoxMDUuNDI5NjU3NDY5OTMxMDMsIm1heCI6MTQ4LjIyOTAwNTI2NTUyMjkxLCJzZCI6MzIuNTM3MDUwMTMwNTYzMTcsImF2ZyI6NzcuMDEyOTU0NjUzNTY1NDd9fX0sInNwZWNpYWxfdHlwZSI6bnVsbH0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiVGF4IiwibmFtZSI6IlRBWCIsImRlc2NyaXB0aW9uIjoiVGhpcyBpcyB0aGUgYW1vdW50IG9mIGxvY2FsIGFuZCBmZWRlcmFsIHRheGVzIHRoYXQgYXJlIGNvbGxlY3RlZCBvbiB0aGUgcHVyY2hhc2UuIE5vdGUgdGhhdCBvdGhlciBnb3Zlcm5tZW50YWwgZmVlcyBvbiBzb21lIHByb2R1Y3RzIGFyZSBub3QgaW5jbHVkZWQgaGVyZSwgYnV0IGluc3RlYWQgYXJlIGFjY291bnRlZCBmb3IgaW4gdGhlIHN1YnRvdGFsLiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6Nzk3LCJuaWwlIjowLjB9LCJ0eXBlIjp7InR5cGUvTnVtYmVyIjp7Im1pbiI6MC4wLCJxMSI6Mi4yNzMzNDAzODY2MDM4NTcsInEzIjo1LjMzNzI3NTMzODIxNjMwNywibWF4IjoxMS4xMiwic2QiOjIuMzIwNjY1MTM1ODkwMDMxNiwiYXZnIjozLjg3MjIxMDAwMDAwMDAwMDR9fX0sInNwZWNpYWxfdHlwZSI6bnVsbH0seyJiYXNlX3R5cGUiOiJ0eXBlL0Zsb2F0IiwiZGlzcGxheV9uYW1lIjoiVG90YWwiLCJuYW1lIjoiVE9UQUwiLCJkZXNjcmlwdGlvbiI6IlRoZSB0b3RhbCBiaWxsZWQgYW1vdW50LiIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6MTAwMDAsIm5pbCUiOjAuMH0sInR5cGUiOnsidHlwZS9OdW1iZXIiOnsibWluIjoxMi4wNjE2MDI5MzY5MjMxMTcsInExIjo1Mi4wMDYxNDc2MTc4NzgxMzUsInEzIjoxMDkuNTU4MDMwMTg0OTk3MzgsIm1heCI6MjM4LjMyNzMyMDAxNzIxNTMzLCJzZCI6MzguMzU5Njc2NjQ4NDc1NzEsImF2ZyI6ODIuOTYwMTQ4MTUyMzA4MDV9fX0sInNwZWNpYWxfdHlwZSI6bnVsbH0seyJiYXNlX3R5cGUiOiJ0eXBlL0ludGVnZXIiLCJkaXNwbGF5X25hbWUiOiJVc2VyIElEIiwibmFtZSI6IlVTRVJfSUQiLCJkZXNjcmlwdGlvbiI6IlRoZSBpZCBvZiB0aGUgdXNlciB3aG8gbWFkZSB0aGlzIG9yZGVyLiBOb3RlIHRoYXQgaW4gc29tZSBjYXNlcyB3aGVyZSBhbiBvcmRlciB3YXMgY3JlYXRlZCBvbiBiZWhhbGYgb2YgYSBjdXN0b21lciB3aG8gcGhvbmVkIHRoZSBvcmRlciBpbiwgdGhpcyBtaWdodCBiZSB0aGUgZW1wbG95ZWUgd2hvIGhhbmRsZWQgdGhlIHJlcXVlc3QuIiwic3BlY2lhbF90eXBlIjoidHlwZS9GSyIsImZpbmdlcnByaW50Ijp7Imdsb2JhbCI6eyJkaXN0aW5jdC1jb3VudCI6OTI5LCJuaWwlIjowLjB9fX1dLCJjcmVhdG9yIjp7ImVtYWlsIjoibWJAZXhhbXBsZS5jb20iLCJmaXJzdF9uYW1lIjoiQWRtaW4iLCJsYXN0X2xvZ2luIjoiMjAyMS0wNC0yMlQxMjoyODowNC4zODYiLCJpc19xYm5ld2IiOmZhbHNlLCJpc19zdXBlcnVzZXIiOnRydWUsImlkIjoxLCJsYXN0X25hbWUiOiJVc2VyIiwiZGF0ZV9qb2luZWQiOiIyMDIwLTA2LTA3VDA1OjIwOjQxLjg1OSIsImNvbW1vbl9uYW1lIjoiQWRtaW4gVXNlciJ9LCJjYW5fd3JpdGUiOnRydWUsImRhdGFiYXNlX2lkIjoxLCJlbmFibGVfZW1iZWRkaW5nIjpmYWxzZSwiY29sbGVjdGlvbl9pZCI6MiwicXVlcnlfdHlwZSI6InF1ZXJ5IiwibmFtZSI6Ik9yZGVycyBxdWFudGl0eSA+PSA1MCIsImRhc2hib2FyZF9jb3VudCI6MCwiY3JlYXRvcl9pZCI6MSwidXBkYXRlZF9hdCI6IjIwMjAtMDYtMDdUMDY6NDE6MjkuMTIxIiwibWFkZV9wdWJsaWNfYnlfaWQiOjEsImVtYmVkZGluZ19wYXJhbXMiOm51bGwsImNhY2hlX3R0bCI6bnVsbCwiZGF0YXNldF9xdWVyeSI6eyJ0eXBlIjoicXVlcnkiLCJxdWVyeSI6eyJzb3VyY2UtdGFibGUiOjIsImZpbHRlciI6WyI+PSIsWyJmaWVsZC1pZCIsMTRdLDUwXX0sImRhdGFiYXNlIjoxfSwiaWQiOjEsImRpc3BsYXkiOiJ0YWJsZSIsInZpc3VhbGl6YXRpb25fc2V0dGluZ3MiOnsidGFibGUucGl2b3RfY29sdW1uIjoiRElTQ09VTlQiLCJ0YWJsZS5jZWxsX2NvbHVtbiI6IlFVQU5USVRZIn0sImNvbGxlY3Rpb24iOnsiZGVzY3JpcHRpb24iOm51bGwsImFyY2hpdmVkIjpmYWxzZSwic2x1ZyI6Im1ldGFiYXNlcnVieSIsImNvbG9yIjoiIzUwOUVFMyIsIm5hbWUiOiJNZXRhYmFzZVJ1YnkiLCJwZXJzb25hbF9vd25lcl9pZCI6bnVsbCwiaWQiOjIsImxvY2F0aW9uIjoiLyIsIm5hbWVzcGFjZSI6bnVsbH0sImNyZWF0ZWRfYXQiOiIyMDIwLTA2LTA3VDA1OjM2OjI4LjgwNiIsInB1YmxpY191dWlkIjoiNzA4YTc4ZWMtMTVjOC00MDVlLWI1OTAtZGU5OGM2ZGRmYTAxIn0= + recorded_at: Thu, 22 Apr 2021 12:28:04 GMT +- request: + method: post + uri: http://localhost:3030/api/dashboard/1/cards + body: + encoding: UTF-8 + string: '{"description":"quantity >= 50","archived":false,"collection_position":null,"table_id":2,"result_metadata":[{"base_type":"type/BigInteger","display_name":"ID","name":"ID","description":"This + is a unique ID for the product. It is also called the “Invoice number” or + “Confirmation number” in customer facing emails and screens.","special_type":"type/PK","fingerprint":null},{"base_type":"type/DateTime","display_name":"Created + At","name":"CREATED_AT","description":"The date and time an order was submitted.","special_type":"type/CreationTimestamp","unit":"default","fingerprint":{"global":{"distinct-count":9998,"nil%":0.0},"type":{"type/DateTime":{"earliest":"2016-04-30T18:56:13.352","latest":"2020-04-19T14:07:15.657"}}}},{"base_type":"type/Float","display_name":"Discount","name":"DISCOUNT","description":"Discount + amount.","special_type":"type/Discount","fingerprint":{"global":{"distinct-count":701,"nil%":0.898},"type":{"type/Number":{"min":0.17088996672584322,"q1":2.9786226681458743,"q3":7.338187788658235,"max":61.69684269960571,"sd":3.053663125001991,"avg":5.161255547580326}}}},{"base_type":"type/Integer","display_name":"Product + ID","name":"PRODUCT_ID","description":"The product ID. This is an internal + identifier for the product, NOT the SKU.","special_type":"type/FK","fingerprint":{"global":{"distinct-count":200,"nil%":0.0}}},{"base_type":"type/Integer","display_name":"Quantity","name":"QUANTITY","description":"Number + of products bought.","special_type":"type/Quantity","fingerprint":{"global":{"distinct-count":62,"nil%":0.0},"type":{"type/Number":{"min":0.0,"q1":1.755882607764982,"q3":4.882654507928044,"max":100.0,"sd":4.214258386403798,"avg":3.7015}}}},{"base_type":"type/Float","display_name":"Subtotal","name":"SUBTOTAL","description":"The + raw, pre-tax cost of the order. Note that this might be different in the future + from the product price due to promotions, credits, etc.","fingerprint":{"global":{"distinct-count":340,"nil%":0.0},"type":{"type/Number":{"min":15.691943673970439,"q1":49.74894519060184,"q3":105.42965746993103,"max":148.22900526552291,"sd":32.53705013056317,"avg":77.01295465356547}}},"special_type":null},{"base_type":"type/Float","display_name":"Tax","name":"TAX","description":"This + is the amount of local and federal taxes that are collected on the purchase. + Note that other governmental fees on some products are not included here, + but instead are accounted for in the subtotal.","fingerprint":{"global":{"distinct-count":797,"nil%":0.0},"type":{"type/Number":{"min":0.0,"q1":2.273340386603857,"q3":5.337275338216307,"max":11.12,"sd":2.3206651358900316,"avg":3.8722100000000004}}},"special_type":null},{"base_type":"type/Float","display_name":"Total","name":"TOTAL","description":"The + total billed amount.","fingerprint":{"global":{"distinct-count":10000,"nil%":0.0},"type":{"type/Number":{"min":12.061602936923117,"q1":52.006147617878135,"q3":109.55803018499738,"max":238.32732001721533,"sd":38.35967664847571,"avg":82.96014815230805}}},"special_type":null},{"base_type":"type/Integer","display_name":"User + ID","name":"USER_ID","description":"The id of the user who made this order. + Note that in some cases where an order was created on behalf of a customer + who phoned the order in, this might be the employee who handled the request.","special_type":"type/FK","fingerprint":{"global":{"distinct-count":929,"nil%":0.0}}}],"creator":{"email":"mb@example.com","first_name":"Admin","last_login":"2021-04-22T12:28:04.386","is_qbnewb":false,"is_superuser":true,"id":1,"last_name":"User","date_joined":"2020-06-07T05:20:41.859","common_name":"Admin + User"},"can_write":true,"database_id":1,"enable_embedding":false,"collection_id":2,"query_type":"query","name":"Orders + quantity >= 50","dashboard_count":0,"creator_id":1,"updated_at":"2020-06-07T06:41:29.121","made_public_by_id":1,"embedding_params":null,"cache_ttl":null,"dataset_query":{"type":"query","query":{"source-table":2,"filter":[">=",["field-id",14],50]},"database":1},"id":1,"display":"table","visualization_settings":{"table.pivot_column":"DISCOUNT","table.cell_column":"QUANTITY"},"collection":{"description":null,"archived":false,"slug":"metabaseruby","color":"#509EE3","name":"MetabaseRuby","personal_owner_id":null,"id":2,"location":"/","namespace":null},"created_at":"2020-06-07T05:36:28.806","public_uuid":"708a78ec-15c8-405e-b590-de98c6ddfa01"}' + headers: + User-Agent: + - MetabaseRuby/0.6.0 (ruby3.0.1) + X-Metabase-Session: + - f83156c2-6b5a-4945-9470-48475d18dcf0 + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Thu, 22 Apr 2021 12:28:04 GMT + X-Frame-Options: + - DENY + X-Xss-Protection: + - 1; mode=block + Last-Modified: + - Thu, 22 Apr 2021 12:28:04 GMT + Strict-Transport-Security: + - max-age=31536000 + X-Permitted-Cross-Domain-Policies: + - none + Cache-Control: + - max-age=0, no-cache, must-revalidate, proxy-revalidate + X-Content-Type-Options: + - nosniff + Content-Security-Policy: + - default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com + https://apis.google.com https://www.google-analytics.com https://*.googleapis.com + *.gstatic.com 'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' + 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; + style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; + connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self'; frame-ancestors + 'none'; + Content-Type: + - application/json;charset=utf-8 + Expires: + - Tue, 03 Jul 2001 06:00:00 GMT + Transfer-Encoding: + - chunked + Server: + - Jetty(9.4.32.v20200930) + body: + encoding: ASCII-8BIT + string: '{"sizeX":2,"series":[],"updated_at":"2021-04-22T12:28:04.748","col":0,"id":75,"parameter_mappings":[],"card_id":null,"visualization_settings":{"table.pivot_column":"DISCOUNT","table.cell_column":"QUANTITY"},"dashboard_id":1,"created_at":"2021-04-22T12:28:04.748","sizeY":2,"row":0}' + recorded_at: Thu, 22 Apr 2021 12:28:04 GMT +recorded_with: VCR 6.0.0 From 93676be9a08a099d1df64b150e8d654bb6019d83 Mon Sep 17 00:00:00 2001 From: William Pavei Antero Date: Mon, 26 Apr 2021 11:12:57 -0300 Subject: [PATCH 13/13] Add SSL param to client and connection --- lib/metabase/client.rb | 3 ++- lib/metabase/connection.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/metabase/client.rb b/lib/metabase/client.rb index b2da345..8fa7365 100644 --- a/lib/metabase/client.rb +++ b/lib/metabase/client.rb @@ -8,11 +8,12 @@ class Client include Connection include Endpoint - def initialize(url:, username: nil, password: nil, token: nil) + def initialize(url:, username: nil, password: nil, token: nil, ssl: {}) @url = url @username = username @password = password @token = token + @ssl = ssl end end end diff --git a/lib/metabase/connection.rb b/lib/metabase/connection.rb index 2d497e2..b9799e1 100644 --- a/lib/metabase/connection.rb +++ b/lib/metabase/connection.rb @@ -43,7 +43,7 @@ def request(method, path, params) end def connection - @connection ||= Faraday.new(url: @url) do |c| + @connection ||= Faraday.new(url: @url, ssl: @ssl) do |c| c.request :json, content_type: /\bjson$/ c.response :json, content_type: /\bjson$/ c.request :url_encoded, content_type: /x-www-form-urlencoded/