davinci_dtr_test_kit 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/v220_full_ehr_suite_run_against_payer_suite.json.erb +19 -0
  3. data/config/presets/v220_payer_suite_run_against_full_ehr_suite.json.erb +76 -0
  4. data/lib/davinci_dtr_test_kit/cross_suite/fhirpath_utils.rb +52 -0
  5. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_base_questionnaire/metadata.yml +212 -0
  6. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_q_package_bundle/metadata.yml +39 -0
  7. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_qpackage_output_parameters/metadata.yml +30 -0
  8. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_questionnaire_adapt/metadata.yml +17 -0
  9. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_questionnaire_adapt_search/metadata.yml +91 -0
  10. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_std_questionnaire/metadata.yml +17 -0
  11. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/metadata.yml +403 -0
  12. data/lib/davinci_dtr_test_kit/cross_suite/generated_profile_metadata.rb +22 -0
  13. data/lib/davinci_dtr_test_kit/cross_suite/response_selection_utils.rb +85 -0
  14. data/lib/davinci_dtr_test_kit/{cql_test.rb → cross_suite/v2.0.1/cql_test.rb} +3 -3
  15. data/lib/davinci_dtr_test_kit/cross_suite/v2.2.0/dtr_conformance_verification.rb +21 -0
  16. data/lib/davinci_dtr_test_kit/cross_suite/v2.2.0/multi_request_message_helper.rb +35 -0
  17. data/lib/davinci_dtr_test_kit/cross_suite/v2.2.0/questionnaire_helper.rb +162 -0
  18. data/lib/davinci_dtr_test_kit/{dtr_client_options.rb → full_ehr/dtr_full_ehr_options.rb} +1 -1
  19. data/lib/davinci_dtr_test_kit/{endpoints → full_ehr/endpoints}/mock_payer.rb +9 -3
  20. data/lib/davinci_dtr_test_kit/{endpoints → full_ehr/endpoints}/mock_udap_smart_server/token_endpoint.rb +2 -2
  21. data/lib/davinci_dtr_test_kit/full_ehr/fixture_loader.rb +37 -0
  22. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_template.json +243 -0
  23. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/dinner_adaptive/parameters_questionnaire_dinner_order_adaptive.json +104 -0
  24. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/dinner_static/parameters_questionnaire_dinner_order_static.json +291 -0
  25. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/empty_templates/next_question_template_empty.json +1 -0
  26. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/empty_templates/parameters_questionnaire_package_empty.json +9 -0
  27. data/lib/davinci_dtr_test_kit/full_ehr/short_circuit_interaction_verification.rb +73 -0
  28. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → full_ehr/v2.0.1/adaptive_custom}/dtr_custom_next_question_response_validation_test.rb +2 -1
  29. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → full_ehr/v2.0.1/adaptive_custom}/dtr_full_ehr_custom_adaptive_request_test.rb +1 -1
  30. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → full_ehr/v2.0.1/adaptive_dinner}/dtr_adaptive_next_question_retrieval_group.rb +3 -3
  31. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → full_ehr/v2.0.1/adaptive_dinner}/dtr_full_ehr_adaptive_initial_retrieval_group.rb +5 -5
  32. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire → full_ehr/v2.0.1/adaptive_interaction}/dtr_adaptive_next_question_request_test.rb +1 -1
  33. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire → full_ehr/v2.0.1/adaptive_interaction}/dtr_adaptive_next_question_request_validation_test.rb +1 -1
  34. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire → full_ehr/v2.0.1/adaptive_interaction}/dtr_adaptive_response_validation_test.rb +2 -2
  35. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → full_ehr/v2.0.1}/dtr_full_ehr_adaptive_dinner_workflow_group.rb +7 -7
  36. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → full_ehr/v2.0.1}/dtr_full_ehr_custom_adaptive_workflow_group.rb +18 -16
  37. data/lib/davinci_dtr_test_kit/{client_groups/custom_static → full_ehr/v2.0.1}/dtr_full_ehr_custom_static_workflow_group.rb +11 -11
  38. data/lib/davinci_dtr_test_kit/{client_groups/must_support → full_ehr/v2.0.1}/dtr_full_ehr_questionnaire_must_support_group.rb +8 -7
  39. data/lib/davinci_dtr_test_kit/{client_groups/dinner_static → full_ehr/v2.0.1}/dtr_full_ehr_static_dinner_workflow_group.rb +7 -7
  40. data/lib/davinci_dtr_test_kit/{dtr_full_ehr_suite.rb → full_ehr/v2.0.1/dtr_full_ehr_suite.rb} +23 -20
  41. data/lib/davinci_dtr_test_kit/{client_groups/payer_registration/dtr_client_registration_group.rb → full_ehr/v2.0.1/dtr_payer_registration_group.rb} +8 -8
  42. data/lib/davinci_dtr_test_kit/{endpoints/mock_payer/next_question_endpoint.rb → full_ehr/v2.0.1/full_ehr_next_question_endpoint.rb} +18 -7
  43. data/lib/davinci_dtr_test_kit/{endpoints/mock_payer/questionnaire_package_endpoint.rb → full_ehr/v2.0.1/full_ehr_questionnaire_package_endpoint.rb} +22 -7
  44. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/dtr_full_ehr_ms_questionnaire_package_request_test.rb +1 -1
  45. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/dtr_must_support_attestation_test.rb +2 -1
  46. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/dtr_questionnaire_must_support_test.rb +3 -2
  47. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/payer_registration/configuration_display_smart_test.rb +1 -1
  48. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/payer_registration/configuration_display_udap_test.rb +1 -1
  49. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_expressions_test.rb +3 -2
  50. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_extensions_test.rb +3 -2
  51. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_libraries_test.rb +3 -2
  52. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_package_validation_test.rb +3 -2
  53. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_adaptive_request_test.rb +1 -1
  54. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_launch_attestation_test.rb +1 -1
  55. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_prepopulation_attestation_test.rb +1 -1
  56. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_prepopulation_override_attestation_test.rb +1 -1
  57. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_questionnaire_package_request_test.rb +1 -1
  58. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_questionnaire_response_conformance_test.rb +1 -1
  59. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_questionnaire_response_correctness_test.rb +1 -1
  60. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_store_attestation_test.rb +1 -1
  61. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_prepopulation_attestation_test.rb +1 -1
  62. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_prepopulation_override_attestation_test.rb +1 -1
  63. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_questionnaire_package_request_validation_test.rb +1 -1
  64. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_questionnaire_response_basic_conformance_test.rb +2 -2
  65. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_questionnaire_response_prepopulation_test.rb +1 -1
  66. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_rendering_attestation_test.rb +1 -1
  67. data/lib/davinci_dtr_test_kit/{client_groups/dinner_static → full_ehr/v2.0.1/static_dinner}/dtr_static_dinner_enabled_questions_attestation_test.rb +1 -1
  68. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_abstract_adaptive_group.rb +87 -0
  69. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_abstract_standard_group.rb +59 -0
  70. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_suite.rb +145 -0
  71. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_suite_description_v220.md +254 -0
  72. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/full_ehr_next_question_endpoint.rb +391 -0
  73. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/full_ehr_questionnaire_package_endpoint.rb +206 -0
  74. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb +108 -0
  75. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/interaction_wait_test.rb +177 -0
  76. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/ui_display_and_interaction_attestation_test.rb +132 -0
  77. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_additional_questionnaires_interaction_group.rb +74 -0
  78. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_questionnaire_adaptive_must_support_test.rb +45 -0
  79. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_questionnaire_base_must_support_test.rb +43 -0
  80. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_questionnaire_standard_must_support_test.rb +45 -0
  81. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/next_question_template_questionnaires.rb +21 -0
  82. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/request/dtr_next_question_request_validation_test.rb +85 -0
  83. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/request/dtr_questionnaire_package_request_validation_test.rb +89 -0
  84. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/response/dtr_next_question_response_validation_test.rb +85 -0
  85. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/response/dtr_questionnaire_package_response_validation_test.rb +77 -0
  86. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/workflows/dtr_full_ehr_workflow_adaptive_group.rb +24 -0
  87. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/workflows/dtr_full_ehr_workflow_standard_group.rb +21 -0
  88. data/lib/davinci_dtr_test_kit/generator/ig_metadata.rb +21 -0
  89. data/lib/davinci_dtr_test_kit/generator/profile_metadata_extractor.rb +57 -0
  90. data/lib/davinci_dtr_test_kit/generator.rb +117 -0
  91. data/lib/davinci_dtr_test_kit/igs/davinci_dtr_2.2.0.tgz +0 -0
  92. data/lib/davinci_dtr_test_kit/{dtr_options.rb → light_ehr/dtr_light_ehr_options.rb} +1 -1
  93. data/lib/davinci_dtr_test_kit/{dtr_light_ehr_suite.rb → light_ehr/v2.0.1/dtr_light_ehr_suite.rb} +21 -10
  94. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1}/dtr_light_ehr_supported_endpoints_group.rb +5 -5
  95. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1}/dtr_smart_ehr_launch.rb +3 -3
  96. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/communication_request_read.rb +1 -1
  97. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/coverage_read.rb +1 -1
  98. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/device_request_read.rb +1 -1
  99. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/encounter_read.rb +1 -1
  100. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/medication_request_read.rb +1 -1
  101. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/nutrition_order_read.rb +1 -1
  102. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_create.rb +1 -1
  103. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_update.rb +1 -1
  104. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/service_request_read.rb +1 -1
  105. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_create.rb +1 -1
  106. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_read.rb +1 -1
  107. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_update.rb +1 -1
  108. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/vision_prescription_read.rb +1 -1
  109. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/supported_endpoints}/dtr_light_ehr_supported_payers_accept_header_test.rb +3 -2
  110. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/supported_endpoints}/dtr_light_ehr_supported_payers_config_test.rb +2 -1
  111. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/supported_endpoints}/dtr_light_ehr_supported_payers_endpoint_test.rb +2 -1
  112. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/supported_endpoints}/dtr_light_ehr_supported_payers_use_test.rb +2 -1
  113. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/supported_endpoints}/dtr_light_ehr_supported_payers_user_response_test.rb +5 -3
  114. data/lib/davinci_dtr_test_kit/metadata.rb +13 -68
  115. data/lib/davinci_dtr_test_kit/requirements/davinci_dtr_test_kit_requirements.csv +216 -0
  116. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_full_ehr_requirements_coverage.csv +1 -1
  117. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_full_ehr_v220_requirements_coverage.csv +1 -0
  118. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_light_ehr_requirements_coverage.csv +1 -1
  119. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_payer_server_requirements_coverage.csv +1 -1
  120. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_payer_server_v220_requirements_coverage.csv +114 -0
  121. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_smart_app_requirements_coverage.csv +1 -1
  122. data/lib/davinci_dtr_test_kit/requirements/hl7.fhir.us.davinci-dtr_2.2.0_requirements.xlsx +0 -0
  123. data/lib/davinci_dtr_test_kit/{endpoints/mock_payer → server/endpoints}/next_question_proxy_endpoint.rb +2 -0
  124. data/lib/davinci_dtr_test_kit/{endpoints/mock_payer → server/endpoints}/questionnaire_package_proxy_endpoint.rb +2 -0
  125. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_form_libraries_test.rb +2 -1
  126. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_form_questionnaire_expressions_test.rb +2 -1
  127. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_form_questionnaire_extensions_test.rb +2 -1
  128. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_next_questionnaire_expressions_test.rb +2 -1
  129. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_next_questionnaire_extensions_test.rb +2 -1
  130. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_request_test.rb +2 -1
  131. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_request_validation_test.rb +3 -1
  132. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_response_bundles_validation_test.rb +3 -1
  133. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_response_search_validation_test.rb +3 -1
  134. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_response_validation_test.rb +4 -2
  135. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_next_request_validation_test.rb +3 -1
  136. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_next_response_validation_test.rb +3 -1
  137. data/lib/davinci_dtr_test_kit/{dtr_payer_server_suite.rb → server/v2.0.1/dtr_payer_server_suite.rb} +13 -10
  138. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1}/payer_server_adaptive_group.rb +13 -13
  139. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1}/payer_server_static_group.rb +6 -6
  140. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_libraries_test.rb +2 -1
  141. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_questionnaire_expressions_test.rb +2 -1
  142. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_questionnaire_extensions_test.rb +2 -1
  143. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_request_test.rb +4 -2
  144. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_request_validation_test.rb +3 -2
  145. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_response_validation_test.rb +5 -3
  146. data/lib/davinci_dtr_test_kit/server/v2.2.0/client_simulation.rb +297 -0
  147. data/lib/davinci_dtr_test_kit/server/v2.2.0/dtr_payer_server_capability_statement_test.rb +73 -0
  148. data/lib/davinci_dtr_test_kit/server/v2.2.0/dtr_payer_server_suite.rb +322 -0
  149. data/lib/davinci_dtr_test_kit/server/v2.2.0/dtr_payer_server_suite_description_v220.md +37 -0
  150. data/lib/davinci_dtr_test_kit/server/v2.2.0/interaction_test.rb +97 -0
  151. data/lib/davinci_dtr_test_kit/server/v2.2.0/log_questionnaire_errors_support_test.rb +57 -0
  152. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_adaptive_must_support_test.rb +47 -0
  153. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_adaptive_search_must_support_test.rb +40 -0
  154. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_base_must_support_test.rb +40 -0
  155. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_package_bundle_must_support_test.rb +38 -0
  156. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_package_output_parameters_must_support_test.rb +37 -0
  157. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_standard_must_support_test.rb +39 -0
  158. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_request_validation_test.rb +45 -0
  159. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/adaptive_questionnaire_endpoint_test.rb +98 -0
  160. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/invalid_questionnaire_response_test.rb +43 -0
  161. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/next_contained_questionnaire_response_references_test.rb +46 -0
  162. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/next_question_response_references_test.rb +56 -0
  163. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/next_question_response_validation_test.rb +67 -0
  164. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/contained_binary_test.rb +58 -0
  165. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/contained_binary_validation.rb +128 -0
  166. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/cql_library_validation_test.rb +58 -0
  167. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_design_support.rb +65 -0
  168. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_expression_elm_test.rb +81 -0
  169. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_expression_language_test.rb +63 -0
  170. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_prepopulation_test.rb +42 -0
  171. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_relevance_logic_test.rb +40 -0
  172. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_operation_validation.rb +440 -0
  173. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_request_validation_test.rb +42 -0
  174. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/adaptive_questionnaire_response_contained_questionnaire_test.rb +127 -0
  175. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/adaptive_questionnaire_response_validation_test.rb +61 -0
  176. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/contained_questionnaire_response_references_test.rb +42 -0
  177. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/dtr_server_no_custom_extension_test.rb +184 -0
  178. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/dtr_server_questionnaire_not_found_test.rb +76 -0
  179. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/dtr_server_questionnaire_package_contents_test.rb +89 -0
  180. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/initial_questionnaire_response_test.rb +132 -0
  181. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_package_input_type_test.rb +110 -0
  182. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_references_version_specific_test.rb +79 -0
  183. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_response_questionnaire_canonical_test.rb +89 -0
  184. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_response_references_test.rb +51 -0
  185. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_response_validation_test.rb +63 -0
  186. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/source_data_error_test.rb +43 -0
  187. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/value_set_validation_test.rb +90 -0
  188. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_response_reference_validation.rb +133 -0
  189. data/lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/small_value_set_expansion_test.rb +120 -0
  190. data/lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/value_set_expansion_test.rb +51 -0
  191. data/lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/value_set_expansion_validation.rb +58 -0
  192. data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_authorization/token_endpoint.rb +1 -1
  193. data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_ehr/fhir_get_endpoint.rb +1 -1
  194. data/lib/davinci_dtr_test_kit/smart_app/endpoints/mock_payer/smart_app_next_question_endpoint.rb +12 -0
  195. data/lib/davinci_dtr_test_kit/smart_app/endpoints/mock_payer/smart_app_questionnaire_package_endpoint.rb +12 -0
  196. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → smart_app/v2.0.1/adaptive_custom}/dtr_smart_app_custom_adaptive_workflow_group.rb +17 -15
  197. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → smart_app/v2.0.1/adaptive_dinner}/dtr_smart_app_adaptive_dinner_workflow_group.rb +5 -5
  198. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → smart_app/v2.0.1/adaptive_dinner}/dtr_smart_app_adaptive_initial_retrieval_group.rb +4 -4
  199. data/lib/davinci_dtr_test_kit/{auth_groups → smart_app/v2.0.1/auth}/token_request_test.rb +1 -1
  200. data/lib/davinci_dtr_test_kit/{client_groups/custom_static → smart_app/v2.0.1}/dtr_smart_app_custom_static_workflow_group.rb +11 -11
  201. data/lib/davinci_dtr_test_kit/{client_groups/must_support → smart_app/v2.0.1}/dtr_smart_app_questionnaire_must_support_group.rb +8 -7
  202. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1}/dtr_smart_app_respiratory_workflow_group.rb +3 -3
  203. data/lib/davinci_dtr_test_kit/{client_groups/dinner_static → smart_app/v2.0.1}/dtr_smart_app_static_dinner_workflow_group.rb +7 -7
  204. data/lib/davinci_dtr_test_kit/{dtr_smart_app_suite.rb → smart_app/v2.0.1/dtr_smart_app_suite.rb} +25 -21
  205. data/lib/davinci_dtr_test_kit/{docs → smart_app/v2.0.1}/dtr_smart_app_suite_description_v201.md +8 -0
  206. data/lib/davinci_dtr_test_kit/{client_groups → smart_app/v2.0.1}/must_support/dtr_smart_app_ms_questionnaire_package_request_test.rb +2 -2
  207. data/lib/davinci_dtr_test_kit/{auth_groups → smart_app/v2.0.1}/oauth2_authentication_group.rb +2 -2
  208. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_questionnaire_package_group.rb +1 -1
  209. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_questionnaire_package_request_test.rb +1 -1
  210. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_questionnaire_response_group.rb +2 -2
  211. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_questionnaire_response_save_test.rb +1 -1
  212. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_rendering_attestation_test.rb +1 -1
  213. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_adaptive_request_test.rb +1 -1
  214. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_prepopulation_attestation_test.rb +1 -1
  215. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_prepopulation_override_attestation_test.rb +1 -1
  216. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_questionnaire_package_request_test.rb +1 -1
  217. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_questionnaire_response_correctness_test.rb +1 -1
  218. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_questionnaire_response_save_test.rb +1 -1
  219. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_saving_questionnaire_response_group.rb +1 -1
  220. data/lib/davinci_dtr_test_kit/tags.rb +2 -0
  221. data/lib/davinci_dtr_test_kit/version.rb +2 -2
  222. data/lib/davinci_dtr_test_kit.rb +6 -4
  223. metadata +329 -215
  224. data/lib/davinci_dtr_test_kit/certs/InfernoCA.key +0 -52
  225. data/lib/davinci_dtr_test_kit/certs/InfernoCA.pem +0 -35
  226. data/lib/davinci_dtr_test_kit/certs/TestKit.pem +0 -32
  227. data/lib/davinci_dtr_test_kit/certs/TestKitPrivateKey.key +0 -28
  228. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_next_question_endpoint.rb +0 -30
  229. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_questionnaire_package_endpoint.rb +0 -31
  230. data/lib/davinci_dtr_test_kit/fixture_loader.rb +0 -21
  231. /data/lib/davinci_dtr_test_kit/{endpoints → cross_suite}/cors.rb +0 -0
  232. /data/lib/davinci_dtr_test_kit/{dtr_questionnaire_response_validation.rb → cross_suite/v2.0.1/dtr_questionnaire_response_validation.rb} +0 -0
  233. /data/lib/davinci_dtr_test_kit/{descriptions.rb → full_ehr/descriptions.rb} +0 -0
  234. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/dinner_order_adaptive_next_question_burrito.json +0 -0
  235. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/dinner_order_adaptive_next_question_hamburger.json +0 -0
  236. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/dinner_order_adaptive_next_question_initial.json +0 -0
  237. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/questionnaire_dinner_order_adaptive.json +0 -0
  238. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_static/questionnaire_dinner_order_static.json +0 -0
  239. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_static/questionnaire_response_dinner_order_static.json +0 -0
  240. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/respiratory_assist_device/pre_populated_questionnaire_response.json +0 -0
  241. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/respiratory_assist_device/questionnaire_package.json +0 -0
  242. /data/lib/davinci_dtr_test_kit/{fixtures.rb → full_ehr/fixtures.rb} +0 -0
  243. /data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → full_ehr/v2.0.1/adaptive_dinner}/dtr_adaptive_completion_group.rb +0 -0
  244. /data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → full_ehr/v2.0.1/adaptive_dinner}/dtr_adaptive_followup_questions_group.rb +0 -0
  245. /data/lib/davinci_dtr_test_kit/{client_groups/auth → full_ehr/v2.0.1}/dtr_client_payer_auth_smart_group.rb +0 -0
  246. /data/lib/davinci_dtr_test_kit/{client_groups/auth → full_ehr/v2.0.1}/dtr_client_payer_auth_udap_group.rb +0 -0
  247. /data/lib/davinci_dtr_test_kit/{docs → full_ehr/v2.0.1}/dtr_full_ehr_suite_description_v201.md +0 -0
  248. /data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/questionnaire_must_support_elements.rb +0 -0
  249. /data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_saving_questionnaire_response_group.rb +0 -0
  250. /data/lib/davinci_dtr_test_kit/{create_test.rb → light_ehr/create_test.rb} +0 -0
  251. /data/lib/davinci_dtr_test_kit/{endpoints/mock_payer → light_ehr/endpoints}/light_ehr_supported_payer_endpoint.rb +0 -0
  252. /data/lib/davinci_dtr_test_kit/{read_test.rb → light_ehr/read_test.rb} +0 -0
  253. /data/lib/davinci_dtr_test_kit/{update_test.rb → light_ehr/update_test.rb} +0 -0
  254. /data/lib/davinci_dtr_test_kit/{docs → light_ehr/v2.0.1}/dtr_light_ehr_suite_description_v201.md +0 -0
  255. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/communication_request_must_support_test.rb +0 -0
  256. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/communication_request_validation.rb +0 -0
  257. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/metadata.yml +0 -0
  258. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request_group.rb +0 -0
  259. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/coverage_must_support_test.rb +0 -0
  260. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/coverage_validation.rb +0 -0
  261. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/metadata.yml +0 -0
  262. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage_group.rb +0 -0
  263. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/device_request_must_support_test.rb +0 -0
  264. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/device_request_validation.rb +0 -0
  265. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/metadata.yml +0 -0
  266. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request_group.rb +0 -0
  267. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/encounter_must_support_test.rb +0 -0
  268. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/encounter_validation.rb +0 -0
  269. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/metadata.yml +0 -0
  270. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter_group.rb +0 -0
  271. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/medication_request_must_support_test.rb +0 -0
  272. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/medication_request_validation.rb +0 -0
  273. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/metadata.yml +0 -0
  274. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request_group.rb +0 -0
  275. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/metadata.yml +0 -0
  276. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/nutrition_order_must_support_test.rb +0 -0
  277. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/nutrition_order_validation.rb +0 -0
  278. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order_group.rb +0 -0
  279. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/metadata.yml +0 -0
  280. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_context_search.rb +0 -0
  281. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_must_support_test.rb +0 -0
  282. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_patient_search.rb +0 -0
  283. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_read.rb +0 -0
  284. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_validation.rb +0 -0
  285. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response_group.rb +0 -0
  286. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/metadata.yml +0 -0
  287. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/service_request_must_support_test.rb +0 -0
  288. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/service_request_validation.rb +0 -0
  289. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request_group.rb +0 -0
  290. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/metadata.yml +0 -0
  291. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_must_support_test.rb +0 -0
  292. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_validation.rb +0 -0
  293. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task_group.rb +0 -0
  294. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/metadata.yml +0 -0
  295. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/vision_prescription_must_support_test.rb +0 -0
  296. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/vision_prescription_validation.rb +0 -0
  297. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription_group.rb +0 -0
  298. /data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/smart_ehr_launch}/fhir_context_coverage_test.rb +0 -0
  299. /data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/smart_ehr_launch}/fhir_context_references_test.rb +0 -0
  300. /data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/smart_ehr_launch}/fhir_launch_context_test.rb +0 -0
  301. /data/lib/davinci_dtr_test_kit/{endpoints/mock_authorization → server/endpoints}/simple_token_endpoint.rb +0 -0
  302. /data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_next_response_complete_test.rb +0 -0
  303. /data/lib/davinci_dtr_test_kit/{docs → server/v2.0.1}/dtr_payer_server_suite_description_v201.md +0 -0
  304. /data/lib/davinci_dtr_test_kit/{validation_test.rb → server/validation_test.rb} +0 -0
  305. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_authorization/authorize_endpoint.rb +0 -0
  306. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_authorization.rb +0 -0
  307. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_ehr/questionnaire_response_endpoint.rb +0 -0
  308. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_ehr.rb +0 -0
  309. /data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → smart_app/v2.0.1/adaptive_custom}/dtr_smart_app_custom_adaptive_request_test.rb +0 -0
  310. /data/lib/davinci_dtr_test_kit/{auth_groups → smart_app/v2.0.1/auth}/token_validation_test.rb +0 -0
  311. /data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_rendering_group.rb +0 -0
@@ -0,0 +1,104 @@
1
+ {
2
+ "resourceType": "Parameters",
3
+ "parameter": [
4
+ {
5
+ "name": "packagebundle",
6
+ "resource": {
7
+ "resourceType": "Bundle",
8
+ "entry": [
9
+ {
10
+ "resource": {
11
+ "resourceType": "Questionnaire",
12
+ "id": "DinnerOrderAdaptive",
13
+ "url": "urn:inferno:dtr-test-kit:dinner-order-adaptive",
14
+ "meta": {
15
+ "profile": [
16
+ "http://hl7.org/fhir/StructureDefinition/cqf-questionnaire",
17
+ "http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-questionnaire-adapt-search",
18
+ "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-adapt"
19
+ ]
20
+ },
21
+ "extension": [
22
+ {
23
+ "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-questionnaireAdaptive",
24
+ "valueBoolean": true
25
+ },
26
+ {
27
+ "url": "http://hl7.org/fhir/StructureDefinition/cqf-library",
28
+ "valueCanonical": "https://madie.cms.gov/Library/DTRTest"
29
+ }
30
+ ],
31
+ "name": "DinnerOrderAdaptive",
32
+ "title": "Dinner Order (Adaptive)",
33
+ "status": "draft",
34
+ "subjectType": [
35
+ "Patient"
36
+ ],
37
+ "date": "2024-05-06",
38
+ "publisher": "Inferno"
39
+ }
40
+ },
41
+ {
42
+ "resource": {
43
+ "resourceType": "Library",
44
+ "id": "DTRTest",
45
+ "meta": {
46
+ "profile": [
47
+ "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/computable-library-cqfm"
48
+ ]
49
+ },
50
+ "language": "en",
51
+ "text": {
52
+ "status": "extensions",
53
+ "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n <table class=\"grid dict\">\n\n \n <tr>\n <th scope=\"row\"><b>Title: </b></th>\n <td style=\"padding-left: 4px;\">DTRTest</td>\n </tr>\n \n\n\n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">DTRTest</td>\n </tr>\n \n\n\n \n <tr>\n <th scope=\"row\"><b>Version: </b></th>\n <td style=\"padding-left: 4px;\">0.3.000</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Url: </b></th>\n <td style=\"padding-left: 4px;\">https://madie.cms.gov/Library/DTRTest</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\">\n <b>\n \n official\n \n </b>\n </th>\n <td style=\"padding-left: 4px;\">\n \n <p style=\"margin-bottom: 5px;\">\n <span>66399d1c633fd342e6fbc547</span>\n </p>\n \n </td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Name: </b></th>\n <td style=\"padding-left: 4px;\">DTRTest</td>\n </tr>\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Status: </b></th>\n <td style=\"padding-left: 4px;\">active</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Experimental: </b></th>\n <td style=\"padding-left: 4px;\">true</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Type: </b></th>\n <td style=\"padding-left: 4px;\">\n \n \n \n <p style=\"margin-bottom: 5px;\">\n <b>system: </b> <span>http://terminology.hl7.org/CodeSystem/library-type</span>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>code: </b> <span>logic-library</span>\n </p>\n \n \n \n \n \n </td>\n </tr>\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Date: </b></th>\n <td style=\"padding-left: 4px;\">2024-05-07T03:17:27+00:00</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Publisher: </b></th>\n <td style=\"padding-left: 4px;\">MITRE</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Description: </b></th>\n <td style=\"padding-left: 4px;\">Library for use in DTR IG Testing</td>\n </tr>\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Data Requirements:</b></th>\n <td style=\"padding-left: 4px;\">\n <table class=\"grid-dict\">\n <tr><th><b>Type</b></th><th><b>Profile</b></th><th><b>MS</b></th><th><b>Code Filter</b></th></tr>\n \n <tr>\n <th>Encounter</th>\n <th></th>\n <th></th>\n <th>\n \n </th>\n </tr>\n \n </table>\n </td>\n </tr>\n \n\n \n \n <tr>\n <td colspan=\"2\">\n <table>\n <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n <tr><td><pre><code class=\"language-cql\">[108, 105, 98, 114, 97, 114, 121, 32, 68, 84, 82, 84, 101, 115, 116, 32, 118, 101, 114, 115, 105, 111, 110, 32, 39, 48, 46, 51, 46, 48, 48, 48, 39, 10, 117, 115, 105, 110, 103, 32, 70, 72, 73, 82, 32, 118, 101, 114, 115, 105, 111, 110, 32, 39, 52, 46, 48, 46, 49, 39, 10, 10, 99, 111, 110, 116, 101, 120, 116, 32, 80, 97, 116, 105, 101, 110, 116, 10, 10, 100, 101, 102, 105, 110, 101, 32, 34, 69, 110, 99, 111, 117, 110, 116, 101, 114, 115, 34, 58, 32, 10, 32, 32, 91, 69, 110, 99, 111, 117, 110, 116, 101, 114, 93, 10, 32, 32, 10, 100, 101, 102, 105, 110, 101, 32, 34, 79, 110, 101, 69, 110, 99, 111, 117, 110, 116, 101, 114, 34, 58, 10, 9, 34, 69, 110, 99, 111, 117, 110, 116, 101, 114, 115, 34, 91, 48, 93, 10, 32, 32, 10, 32, 32, 10, 100, 101, 102, 105, 110, 101, 32, 34, 70, 105, 114, 115, 116, 76, 111, 99, 97, 116, 105, 111, 110, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 34, 58, 10, 9, 34, 79, 110, 101, 69, 110, 99, 111, 117, 110, 116, 101, 114, 34, 46, 108, 111, 99, 97, 116, 105, 111, 110, 91, 48, 93, 46, 108, 111, 99, 97, 116, 105, 111, 110, 46, 100, 105, 115, 112, 108, 97, 121, 46, 118, 97, 108, 117, 101, 10, 9, 10, 100, 101, 102, 105, 110, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 71, 101, 116, 77, 105, 100, 100, 108, 101, 73, 110, 105, 116, 105, 97, 108, 115, 40, 110, 97, 109, 101, 32, 70, 72, 73, 82, 46, 72, 117, 109, 97, 110, 78, 97, 109, 101, 41, 58, 10, 32, 32, 83, 117, 98, 115, 116, 114, 105, 110, 103, 40, 67, 111, 109, 98, 105, 110, 101, 40, 40, 110, 97, 109, 101, 46, 103, 105, 118, 101, 110, 32, 103, 105, 118, 101, 110, 32, 114, 101, 116, 117, 114, 110, 32, 83, 117, 98, 115, 116, 114, 105, 110, 103, 40, 103, 105, 118, 101, 110, 46, 118, 97, 108, 117, 101, 44, 48, 44, 49, 41, 41, 44, 39, 44, 32, 39, 41, 44, 51, 41, 10, 10, 47, 47, 32, 71, 114, 97, 98, 32, 112, 97, 116, 105, 101, 110, 116, 32, 70, 72, 73, 82, 32, 72, 117, 109, 97, 110, 78, 97, 109, 101, 10, 100, 101, 102, 105, 110, 101, 32, 78, 97, 109, 101, 58, 32, 115, 105, 110, 103, 108, 101, 116, 111, 110, 32, 102, 114, 111, 109, 32, 40, 80, 97, 116, 105, 101, 110, 116, 46, 110, 97, 109, 101, 32, 110, 97, 109, 101, 32, 119, 104, 101, 114, 101, 32, 110, 97, 109, 101, 46, 117, 115, 101, 46, 118, 97, 108, 117, 101, 32, 61, 32, 39, 111, 102, 102, 105, 99, 105, 97, 108, 39, 41, 10, 10, 47, 47, 32, 69, 120, 116, 114, 97, 99, 116, 32, 117, 115, 101, 102, 117, 108, 32, 110, 97, 109, 101, 32, 101, 108, 101, 109, 101, 110, 116, 115, 10, 100, 101, 102, 105, 110, 101, 32, 76, 97, 115, 116, 78, 97, 109, 101, 58, 32, 34, 78, 97, 109, 101, 34, 46, 102, 97, 109, 105, 108, 121, 46, 118, 97, 108, 117, 101, 10, 100, 101, 102, 105, 110, 101, 32, 77, 105, 100, 100, 108, 101, 73, 110, 105, 116, 105, 97, 108, 58, 32, 71, 101, 116, 77, 105, 100, 100, 108, 101, 73, 110, 105, 116, 105, 97, 108, 115, 40, 34, 78, 97, 109, 101, 34, 41, 10, 100, 101, 102, 105, 110, 101, 32, 70, 105, 114, 115, 116, 78, 97, 109, 101, 58, 32, 34, 78, 97, 109, 101, 34, 46, 103, 105, 118, 101, 110, 91, 48, 93, 46, 118, 97, 108, 117, 101]</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n \n </table>\n</div>"
54
+ },
55
+ "url": "https://madie.cms.gov/Library/DTRTest",
56
+ "identifier": [
57
+ {
58
+ "use": "official",
59
+ "system": "https://madie.cms.gov/login",
60
+ "value": "66399d1c633fd342e6fbc547"
61
+ }
62
+ ],
63
+ "version": "0.3.000",
64
+ "name": "DTRTest",
65
+ "title": "DTRTest",
66
+ "status": "active",
67
+ "experimental": true,
68
+ "type": {
69
+ "coding": [
70
+ {
71
+ "system": "http://terminology.hl7.org/CodeSystem/library-type",
72
+ "code": "logic-library"
73
+ }
74
+ ]
75
+ },
76
+ "date": "2024-05-07T03:17:27+00:00",
77
+ "publisher": "MITRE",
78
+ "description": "Library for use in DTR IG Testing",
79
+ "dataRequirement": [
80
+ {
81
+ "type": "Encounter"
82
+ }
83
+ ],
84
+ "content": [
85
+ {
86
+ "contentType": "text/cql",
87
+ "data": "bGlicmFyeSBEVFJUZXN0IHZlcnNpb24gJzAuMy4wMDAnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgpjb250ZXh0IFBhdGllbnQKCmRlZmluZSAiRW5jb3VudGVycyI6IAogIFtFbmNvdW50ZXJdCiAgCmRlZmluZSAiT25lRW5jb3VudGVyIjoKCSJFbmNvdW50ZXJzIlswXQogIAogIApkZWZpbmUgIkZpcnN0TG9jYXRpb25EZXNjcmlwdGlvbiI6CgkiT25lRW5jb3VudGVyIi5sb2NhdGlvblswXS5sb2NhdGlvbi5kaXNwbGF5LnZhbHVlCgkKZGVmaW5lIGZ1bmN0aW9uIEdldE1pZGRsZUluaXRpYWxzKG5hbWUgRkhJUi5IdW1hbk5hbWUpOgogIFN1YnN0cmluZyhDb21iaW5lKChuYW1lLmdpdmVuIGdpdmVuIHJldHVybiBTdWJzdHJpbmcoZ2l2ZW4udmFsdWUsMCwxKSksJywgJyksMykKCi8vIEdyYWIgcGF0aWVudCBGSElSIEh1bWFuTmFtZQpkZWZpbmUgTmFtZTogc2luZ2xldG9uIGZyb20gKFBhdGllbnQubmFtZSBuYW1lIHdoZXJlIG5hbWUudXNlLnZhbHVlID0gJ29mZmljaWFsJykKCi8vIEV4dHJhY3QgdXNlZnVsIG5hbWUgZWxlbWVudHMKZGVmaW5lIExhc3ROYW1lOiAiTmFtZSIuZmFtaWx5LnZhbHVlCmRlZmluZSBNaWRkbGVJbml0aWFsOiBHZXRNaWRkbGVJbml0aWFscygiTmFtZSIpCmRlZmluZSBGaXJzdE5hbWU6ICJOYW1lIi5naXZlblswXS52YWx1ZQ=="
88
+ },
89
+ {
90
+ "contentType": "application/elm+xml",
91
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JWZXJzaW9uPSIzLjMuMiIgdHJhbnNsYXRvck9wdGlvbnM9IkVuYWJsZUFubm90YXRpb25zLEVuYWJsZUxvY2F0b3JzLEVuYWJsZVJlc3VsdFR5cGVzLEVuYWJsZURldGFpbGVkRXJyb3JzLERpc2FibGVMaXN0RGVtb3Rpb24sRGlzYWJsZUxpc3RQcm9tb3Rpb24iIHNpZ25hdHVyZUxldmVsPSJOb25lIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUluZm8iLz4KICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgIDxhOnMgcj0iNTMiPgogICAgICAgICA8YTpzPmxpYnJhcnkgRFRSVGVzdCB2ZXJzaW9uICcwLjMuMDAwJzwvYTpzPgogICAgICA8L2E6cz4KICAgPC9hbm5vdGF0aW9uPgogICA8aWRlbnRpZmllciBpZD0iRFRSVGVzdCIgdmVyc2lvbj0iMC4zLjAwMCIvPgogICA8c2NoZW1hSWRlbnRpZmllciBpZD0idXJuOmhsNy1vcmc6ZWxtIiB2ZXJzaW9uPSJyMSIvPgogICA8dXNpbmdzPgogICAgICA8ZGVmIGxvY2FsSWRlbnRpZmllcj0iU3lzdGVtIiB1cmk9InVybjpobDctb3JnOmVsbS10eXBlczpyMSIvPgogICAgICA8ZGVmIGxvY2FsSWQ9IjEiIGxvY2F0b3I9IjI6MS0yOjI2IiBsb2NhbElkZW50aWZpZXI9IkZISVIiIHVyaT0iaHR0cDovL2hsNy5vcmcvZmhpciIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxIj4KICAgICAgICAgICAgICAgPGE6cz51c2luZyA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5GSElSPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgIDwvdXNpbmdzPgogICA8Y29udGV4dHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iNDoxLTQ6MTUiIG5hbWU9IlBhdGllbnQiLz4KICAgPC9jb250ZXh0cz4KICAgPHN0YXRlbWVudHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iNDoxLTQ6MTUiIG5hbWU9IlBhdGllbnQiIGNvbnRleHQ9IlBhdGllbnQiPgogICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iU2luZ2xldG9uRnJvbSI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2F0b3I9IjQ6MS00OjE1IiBkYXRhVHlwZT0iZmhpcjpQYXRpZW50IiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vUGF0aWVudCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMyIgbG9jYXRvcj0iNjoxLTc6MTMiIG5hbWU9IkVuY291bnRlcnMiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzIj4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7RW5jb3VudGVycyZxdW90OzogCiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMiI+CiAgICAgICAgICAgICAgICAgIDxhOnM+W0VuY291bnRlcl08L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxyZXN1bHRUeXBlU3BlY2lmaWVyIHhzaTp0eXBlPSJMaXN0VHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgIDxlbGVtZW50VHlwZSBuYW1lPSJmaGlyOkVuY291bnRlciIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L3Jlc3VsdFR5cGVTcGVjaWZpZXI+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjIiIGxvY2F0b3I9Ijc6My03OjEzIiBkYXRhVHlwZT0iZmhpcjpFbmNvdW50ZXIiIHRlbXBsYXRlSWQ9Imh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9FbmNvdW50ZXIiIHhzaTp0eXBlPSJSZXRyaWV2ZSI+CiAgICAgICAgICAgIDxyZXN1bHRUeXBlU3BlY2lmaWVyIHhzaTp0eXBlPSJMaXN0VHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgIDxlbGVtZW50VHlwZSBuYW1lPSJmaGlyOkVuY291bnRlciIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICA8L3Jlc3VsdFR5cGVTcGVjaWZpZXI+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNyIgbG9jYXRvcj0iOToxLTEwOjE2IiByZXN1bHRUeXBlTmFtZT0iZmhpcjpFbmNvdW50ZXIiIG5hbWU9Ik9uZUVuY291bnRlciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjciPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtPbmVFbmNvdW50ZXImcXVvdDs6Cgk8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI2Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI0Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtFbmNvdW50ZXJzJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjUiPlswXTwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iNiIgbG9jYXRvcj0iMTA6Mi0xMDoxNiIgcmVzdWx0VHlwZU5hbWU9ImZoaXI6RW5jb3VudGVyIiB4c2k6dHlwZT0iSW5kZXhlciI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjQiIGxvY2F0b3I9IjEwOjItMTA6MTMiIG5hbWU9IkVuY291bnRlcnMiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIj4KICAgICAgICAgICAgICAgPHJlc3VsdFR5cGVTcGVjaWZpZXIgeHNpOnR5cGU9Ikxpc3RUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnRUeXBlIG5hbWU9ImZoaXI6RW5jb3VudGVyIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgIDwvcmVzdWx0VHlwZVNwZWNpZmllcj4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1IiBsb2NhdG9yPSIxMDoxNSIgcmVzdWx0VHlwZU5hbWU9InQ6SW50ZWdlciIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjE1IiBsb2NhdG9yPSIxMzoxLTE0OjUwIiByZXN1bHRUeXBlTmFtZT0idDpTdHJpbmciIG5hbWU9IkZpcnN0TG9jYXRpb25EZXNjcmlwdGlvbiIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjE1Ij4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7Rmlyc3RMb2NhdGlvbkRlc2NyaXB0aW9uJnF1b3Q7OgoJPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTQiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjEzIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O09uZUVuY291bnRlciZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+bG9jYXRpb248L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwIj5bMF08L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5sb2NhdGlvbjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5kaXNwbGF5PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTQiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPnZhbHVlPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTQiIGxvY2F0b3I9IjE0OjItMTQ6NTAiIHJlc3VsdFR5cGVOYW1lPSJ0OlN0cmluZyIgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iMTMiIGxvY2F0b3I9IjE0OjItMTQ6NDQiIHJlc3VsdFR5cGVOYW1lPSJmaGlyOnN0cmluZyIgcGF0aD0iZGlzcGxheSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSIxMiIgbG9jYXRvcj0iMTQ6Mi0xNDozNiIgcmVzdWx0VHlwZU5hbWU9ImZoaXI6UmVmZXJlbmNlIiBwYXRoPSJsb2NhdGlvbiIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSIxMSIgbG9jYXRvcj0iMTQ6Mi0xNDoyNyIgcmVzdWx0VHlwZU5hbWU9ImZoaXI6RW5jb3VudGVyLkxvY2F0aW9uIiB4c2k6dHlwZT0iSW5kZXhlciI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjkiIGxvY2F0b3I9IjE0OjItMTQ6MjQiIHBhdGg9ImxvY2F0aW9uIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8cmVzdWx0VHlwZVNwZWNpZmllciB4c2k6dHlwZT0iTGlzdFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8ZWxlbWVudFR5cGUgbmFtZT0iZmhpcjpFbmNvdW50ZXIuTG9jYXRpb24iIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZXN1bHRUeXBlU3BlY2lmaWVyPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjgiIGxvY2F0b3I9IjE0OjItMTQ6MTUiIHJlc3VsdFR5cGVOYW1lPSJmaGlyOkVuY291bnRlciIgbmFtZT0iT25lRW5jb3VudGVyIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjEwIiBsb2NhdG9yPSIxNDoyNiIgcmVzdWx0VHlwZU5hbWU9InQ6SW50ZWdlciIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjMwIiBsb2NhdG9yPSIxNjoxLTE3OjgxIiByZXN1bHRUeXBlTmFtZT0idDpTdHJpbmciIG5hbWU9IkdldE1pZGRsZUluaXRpYWxzIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIiB4c2k6dHlwZT0iRnVuY3Rpb25EZWYiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzMCI+CiAgICAgICAgICAgICAgIDxhOnM+ZGVmaW5lIGZ1bmN0aW9uIEdldE1pZGRsZUluaXRpYWxzKG5hbWUgRkhJUi5IdW1hbk5hbWUpOgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjI5Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+U3Vic3RyaW5nKDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5Db21iaW5lKDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4oPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+bmFtZS5naXZlbjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+IGdpdmVuPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPnJldHVybiA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+U3Vic3RyaW5nKDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjIwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+Z2l2ZW48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjIwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz52YWx1ZTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjEiPiwwLDEpPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+KTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4sPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPicsICc8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+KTwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOCI+LDMpPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjkiIGxvY2F0b3I9IjE3OjMtMTc6ODEiIHJlc3VsdFR5cGVOYW1lPSJ0OlN0cmluZyIgeHNpOnR5cGU9IlN1YnN0cmluZyI+CiAgICAgICAgICAgIDxzdHJpbmdUb1N1YiBsb2NhbElkPSIyNyIgbG9jYXRvcj0iMTc6MTMtMTc6NzgiIHJlc3VsdFR5cGVOYW1lPSJ0OlN0cmluZyIgeHNpOnR5cGU9IkNvbWJpbmUiPgogICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjI1IiBsb2NhdG9yPSIxNzoyMS0xNzo3MiIgeHNpOnR5cGU9IlF1ZXJ5Ij4KICAgICAgICAgICAgICAgICAgPHJlc3VsdFR5cGVTcGVjaWZpZXIgeHNpOnR5cGU9Ikxpc3RUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgICAgPGVsZW1lbnRUeXBlIG5hbWU9InQ6U3RyaW5nIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgIDwvcmVzdWx0VHlwZVNwZWNpZmllcj4KICAgICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSIxOCIgbG9jYXRvcj0iMTc6MjItMTc6MzciIGFsaWFzPSJnaXZlbiI+CiAgICAgICAgICAgICAgICAgICAgIDxyZXN1bHRUeXBlU3BlY2lmaWVyIHhzaTp0eXBlPSJMaXN0VHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxlbGVtZW50VHlwZSBuYW1lPSJmaGlyOnN0cmluZyIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICA8L3Jlc3VsdFR5cGVTcGVjaWZpZXI+CiAgICAgICAgICAgICAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjE3IiBsb2NhdG9yPSIxNzoyMi0xNzozMSIgcGF0aD0iZ2l2ZW4iIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxyZXN1bHRUeXBlU3BlY2lmaWVyIHhzaTp0eXBlPSJMaXN0VHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbGVtZW50VHlwZSBuYW1lPSJmaGlyOnN0cmluZyIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L3Jlc3VsdFR5cGVTcGVjaWZpZXI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbmFtZT0ibmFtZSIgeHNpOnR5cGU9Ik9wZXJhbmRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgPHJldHVybiBsb2NhbElkPSIyNCIgbG9jYXRvcj0iMTc6MzktMTc6NzEiPgogICAgICAgICAgICAgICAgICAgICA8cmVzdWx0VHlwZVNwZWNpZmllciB4c2k6dHlwZT0iTGlzdFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZWxlbWVudFR5cGUgbmFtZT0idDpTdHJpbmciIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgPC9yZXN1bHRUeXBlU3BlY2lmaWVyPgogICAgICAgICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyMyIgbG9jYXRvcj0iMTc6NDYtMTc6NzEiIHJlc3VsdFR5cGVOYW1lPSJ0OlN0cmluZyIgeHNpOnR5cGU9IlN1YnN0cmluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmdUb1N1YiBsb2NhbElkPSIyMCIgbG9jYXRvcj0iMTc6NTYtMTc6NjYiIHJlc3VsdFR5cGVOYW1lPSJ0OlN0cmluZyIgcGF0aD0idmFsdWUiIHNjb3BlPSJnaXZlbiIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdGFydEluZGV4IGxvY2FsSWQ9IjIxIiBsb2NhdG9yPSIxNzo2OCIgcmVzdWx0VHlwZU5hbWU9InQ6SW50ZWdlciIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8bGVuZ3RoIGxvY2FsSWQ9IjIyIiBsb2NhdG9yPSIxNzo3MCIgcmVzdWx0VHlwZU5hbWU9InQ6SW50ZWdlciIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgICAgICAgIDwvcmV0dXJuPgogICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgPHNlcGFyYXRvciBsb2NhbElkPSIyNiIgbG9jYXRvcj0iMTc6NzQtMTc6NzciIHJlc3VsdFR5cGVOYW1lPSJ0OlN0cmluZyIgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IiwgIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L3N0cmluZ1RvU3ViPgogICAgICAgICAgICA8c3RhcnRJbmRleCBsb2NhbElkPSIyOCIgbG9jYXRvcj0iMTc6ODAiIHJlc3VsdFR5cGVOYW1lPSJ0OkludGVnZXIiIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICA8b3BlcmFuZCBuYW1lPSJuYW1lIj4KICAgICAgICAgICAgPG9wZXJhbmRUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9IjE2IiBsb2NhdG9yPSIxNjo0MC0xNjo1MyIgcmVzdWx0VHlwZU5hbWU9ImZoaXI6SHVtYW5OYW1lIiBuYW1lPSJmaGlyOkh1bWFuTmFtZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L29wZXJhbmQ+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjQwIiBsb2NhdG9yPSIyMDoxLTIwOjgxIiByZXN1bHRUeXBlTmFtZT0iZmhpcjpIdW1hbk5hbWUiIG5hbWU9Ik5hbWUiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI0MCI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gR3JhYiBwYXRpZW50IEZISVIgSHVtYW5OYW1lCmRlZmluZSBOYW1lOiA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIzOSI+CiAgICAgICAgICAgICAgICAgIDxhOnM+c2luZ2xldG9uIGZyb20gPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzgiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPig8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzOCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5QYXRpZW50Lm5hbWU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiBuYW1lPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzciPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPndoZXJlIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjM3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5uYW1lPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+dXNlPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPnZhbHVlPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gPSA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+J29mZmljaWFsJzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4pPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMzkiIGxvY2F0b3I9IjIwOjE0LTIwOjgxIiByZXN1bHRUeXBlTmFtZT0iZmhpcjpIdW1hbk5hbWUiIHhzaTp0eXBlPSJTaW5nbGV0b25Gcm9tIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzgiIGxvY2F0b3I9IjIwOjI5LTIwOjgxIiB4c2k6dHlwZT0iUXVlcnkiPgogICAgICAgICAgICAgICA8cmVzdWx0VHlwZVNwZWNpZmllciB4c2k6dHlwZT0iTGlzdFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICAgICA8ZWxlbWVudFR5cGUgbmFtZT0iZmhpcjpIdW1hbk5hbWUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgPC9yZXN1bHRUeXBlU3BlY2lmaWVyPgogICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjMyIiBsb2NhdG9yPSIyMDozMC0yMDo0NiIgYWxpYXM9Im5hbWUiPgogICAgICAgICAgICAgICAgICA8cmVzdWx0VHlwZVNwZWNpZmllciB4c2k6dHlwZT0iTGlzdFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICAgICAgICA8ZWxlbWVudFR5cGUgbmFtZT0iZmhpcjpIdW1hbk5hbWUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgPC9yZXN1bHRUeXBlU3BlY2lmaWVyPgogICAgICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIzMSIgbG9jYXRvcj0iMjA6MzAtMjA6NDEiIHBhdGg9Im5hbWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgIDxyZXN1bHRUeXBlU3BlY2lmaWVyIHhzaTp0eXBlPSJMaXN0VHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxlbGVtZW50VHlwZSBuYW1lPSJmaGlyOkh1bWFuTmFtZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICA8L3Jlc3VsdFR5cGVTcGVjaWZpZXI+CiAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbmFtZT0iUGF0aWVudCIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgPHdoZXJlIGxvY2FsSWQ9IjM3IiBsb2NhdG9yPSIyMDo0OC0yMDo4MCIgcmVzdWx0VHlwZU5hbWU9InQ6Qm9vbGVhbiIgeHNpOnR5cGU9IkVxdWFsIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzUiIGxvY2F0b3I9IjIwOjU0LTIwOjY3IiByZXN1bHRUeXBlTmFtZT0idDpTdHJpbmciIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjM0IiBsb2NhdG9yPSIyMDo1NC0yMDo2MSIgcmVzdWx0VHlwZU5hbWU9ImZoaXI6TmFtZVVzZSIgcGF0aD0idXNlIiBzY29wZT0ibmFtZSIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzYiIGxvY2F0b3I9IjIwOjcxLTIwOjgwIiByZXN1bHRUeXBlTmFtZT0idDpTdHJpbmciIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSJvZmZpY2lhbCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC93aGVyZT4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjQ0IiBsb2NhdG9yPSIyMzoxLTIzOjM2IiByZXN1bHRUeXBlTmFtZT0idDpTdHJpbmciIG5hbWU9Ikxhc3ROYW1lIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNDQiPgogICAgICAgICAgICAgICA8YTpzPi8vIEV4dHJhY3QgdXNlZnVsIG5hbWUgZWxlbWVudHMKZGVmaW5lIExhc3ROYW1lOiA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI0MyI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDIiPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQxIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtOYW1lJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0MiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+ZmFtaWx5PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDMiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPnZhbHVlPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iNDMiIGxvY2F0b3I9IjIzOjE4LTIzOjM2IiByZXN1bHRUeXBlTmFtZT0idDpTdHJpbmciIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjQyIiBsb2NhdG9yPSIyMzoxOC0yMzozMCIgcmVzdWx0VHlwZU5hbWU9ImZoaXI6c3RyaW5nIiBwYXRoPSJmYW1pbHkiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iNDEiIGxvY2F0b3I9IjIzOjE4LTIzOjIzIiByZXN1bHRUeXBlTmFtZT0iZmhpcjpIdW1hbk5hbWUiIG5hbWU9Ik5hbWUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjQ3IiBsb2NhdG9yPSIyNDoxLTI0OjQ3IiByZXN1bHRUeXBlTmFtZT0idDpTdHJpbmciIG5hbWU9Ik1pZGRsZUluaXRpYWwiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI0NyI+CiAgICAgICAgICAgICAgIDxhOnM+ZGVmaW5lIE1pZGRsZUluaXRpYWw6IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjQ2Ij4KICAgICAgICAgICAgICAgICAgPGE6cz5HZXRNaWRkbGVJbml0aWFscyg8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI0NSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7TmFtZSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4pPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI0NiIgbG9jYXRvcj0iMjQ6MjMtMjQ6NDciIHJlc3VsdFR5cGVOYW1lPSJ0OlN0cmluZyIgbmFtZT0iR2V0TWlkZGxlSW5pdGlhbHMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjQ1IiBsb2NhdG9yPSIyNDo0MS0yNDo0NiIgcmVzdWx0VHlwZU5hbWU9ImZoaXI6SHVtYW5OYW1lIiBuYW1lPSJOYW1lIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjUzIiBsb2NhdG9yPSIyNToxLTI1OjM5IiByZXN1bHRUeXBlTmFtZT0idDpTdHJpbmciIG5hbWU9IkZpcnN0TmFtZSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjUzIj4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgRmlyc3ROYW1lOiA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI1MiI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTEiPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0OCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7TmFtZSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmdpdmVuPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MCI+WzBdPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MiI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+dmFsdWU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI1MiIgbG9jYXRvcj0iMjU6MTktMjU6MzkiIHJlc3VsdFR5cGVOYW1lPSJ0OlN0cmluZyIgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iNTEiIGxvY2F0b3I9IjI1OjE5LTI1OjMzIiByZXN1bHRUeXBlTmFtZT0iZmhpcjpzdHJpbmciIHhzaTp0eXBlPSJJbmRleGVyIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNDkiIGxvY2F0b3I9IjI1OjE5LTI1OjMwIiBwYXRoPSJnaXZlbiIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgPHJlc3VsdFR5cGVTcGVjaWZpZXIgeHNpOnR5cGU9Ikxpc3RUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgICAgPGVsZW1lbnRUeXBlIG5hbWU9ImZoaXI6c3RyaW5nIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgIDwvcmVzdWx0VHlwZVNwZWNpZmllcj4KICAgICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSI0OCIgbG9jYXRvcj0iMjU6MTktMjU6MjQiIHJlc3VsdFR5cGVOYW1lPSJmaGlyOkh1bWFuTmFtZSIgbmFtZT0iTmFtZSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1MCIgbG9jYXRvcj0iMjU6MzIiIHJlc3VsdFR5cGVOYW1lPSJ0OkludGVnZXIiIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="
92
+ },
93
+ {
94
+ "contentType": "application/elm+json",
95
+ "data": "ewogICJsaWJyYXJ5IjogewogICAgImFubm90YXRpb24iOiBbCiAgICAgIHsKICAgICAgICAidHJhbnNsYXRvclZlcnNpb24iOiAiMy4zLjIiCiAgICAgIH0KICAgIF0sCiAgICAiaWRlbnRpZmllciI6IHsKICAgICAgImlkIjogIkRUUlRlc3QiLAogICAgICAidmVyc2lvbiI6ICIwLjMuMDAwIgogICAgfSwKICAgICJzY2hlbWFJZGVudGlmaWVyIjogewogICAgICAiaWQiOiAidXJuOmhsNy1vcmc6ZWxtIiwKICAgICAgInZlcnNpb24iOiAicjEiCiAgICB9LAogICAgInVzaW5ncyI6IHsKICAgICAgImRlZiI6IFsKICAgICAgICB7CiAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIjogIlN5c3RlbSIsCiAgICAgICAgICAidXJpIjogInVybjpobDctb3JnOmVsbS10eXBlczpyMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJsb2NhbElkIjogIjEiLAogICAgICAgICAgImxvY2F0b3IiOiAiMjoxLTI6MjYiLAogICAgICAgICAgImxvY2FsSWRlbnRpZmllciI6ICJGSElSIiwKICAgICAgICAgICJ1cmkiOiAiaHR0cDovL2hsNy5vcmcvZmhpciIsCiAgICAgICAgICAidmVyc2lvbiI6ICI0LjAuMSIsCiAgICAgICAgICAiYW5ub3RhdGlvbiI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJ0eXBlIjogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICJzIjogewogICAgICAgICAgICAgICAgInIiOiAiMSIsCiAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICIiLAogICAgICAgICAgICAgICAgICAgICAgInVzaW5nICIKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICJGSElSIgogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgIiB2ZXJzaW9uICc0LjAuMSciCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImNvbnRleHRzIjogewogICAgICAiZGVmIjogWwogICAgICAgIHsKICAgICAgICAgICJsb2NhdG9yIjogIjQ6MS00OjE1IiwKICAgICAgICAgICJuYW1lIjogIlBhdGllbnQiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgInN0YXRlbWVudHMiOiB7CiAgICAgICJkZWYiOiBbCiAgICAgICAgewogICAgICAgICAgImxvY2F0b3IiOiAiNDoxLTQ6MTUiLAogICAgICAgICAgIm5hbWUiOiAiUGF0aWVudCIsCiAgICAgICAgICAiY29udGV4dCI6ICJQYXRpZW50IiwKICAgICAgICAgICJleHByZXNzaW9uIjogewogICAgICAgICAgICAidHlwZSI6ICJTaW5nbGV0b25Gcm9tIiwKICAgICAgICAgICAgIm9wZXJhbmQiOiB7CiAgICAgICAgICAgICAgImxvY2F0b3IiOiAiNDoxLTQ6MTUiLAogICAgICAgICAgICAgICJkYXRhVHlwZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1QYXRpZW50IiwKICAgICAgICAgICAgICAidHlwZSI6ICJSZXRyaWV2ZSIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImxvY2FsSWQiOiAiMyIsCiAgICAgICAgICAibG9jYXRvciI6ICI2OjEtNzoxMyIsCiAgICAgICAgICAibmFtZSI6ICJFbmNvdW50ZXJzIiwKICAgICAgICAgICJjb250ZXh0IjogIlBhdGllbnQiLAogICAgICAgICAgImFjY2Vzc0xldmVsIjogIlB1YmxpYyIsCiAgICAgICAgICAiYW5ub3RhdGlvbiI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJ0eXBlIjogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICJzIjogewogICAgICAgICAgICAgICAgInIiOiAiMyIsCiAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICIiLAogICAgICAgICAgICAgICAgICAgICAgImRlZmluZSAiLAogICAgICAgICAgICAgICAgICAgICAgIlwiRW5jb3VudGVyc1wiIiwKICAgICAgICAgICAgICAgICAgICAgICI6IFxuICAiCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInIiOiAiMiIsCiAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAiWyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuY291bnRlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIl0iCiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAicmVzdWx0VHlwZVNwZWNpZmllciI6IHsKICAgICAgICAgICAgInR5cGUiOiAiTGlzdFR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAiZWxlbWVudFR5cGUiOiB7CiAgICAgICAgICAgICAgIm5hbWUiOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9RW5jb3VudGVyIiwKICAgICAgICAgICAgICAidHlwZSI6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiZXhwcmVzc2lvbiI6IHsKICAgICAgICAgICAgImxvY2FsSWQiOiAiMiIsCiAgICAgICAgICAgICJsb2NhdG9yIjogIjc6My03OjEzIiwKICAgICAgICAgICAgImRhdGFUeXBlIjogIntodHRwOi8vaGw3Lm9yZy9maGlyfUVuY291bnRlciIsCiAgICAgICAgICAgICJ0eXBlIjogIlJldHJpZXZlIiwKICAgICAgICAgICAgInJlc3VsdFR5cGVTcGVjaWZpZXIiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiTGlzdFR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAgICJlbGVtZW50VHlwZSI6IHsKICAgICAgICAgICAgICAgICJuYW1lIjogIntodHRwOi8vaGw3Lm9yZy9maGlyfUVuY291bnRlciIsCiAgICAgICAgICAgICAgICAidHlwZSI6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibG9jYWxJZCI6ICI3IiwKICAgICAgICAgICJsb2NhdG9yIjogIjk6MS0xMDoxNiIsCiAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9RW5jb3VudGVyIiwKICAgICAgICAgICJuYW1lIjogIk9uZUVuY291bnRlciIsCiAgICAgICAgICAiY29udGV4dCI6ICJQYXRpZW50IiwKICAgICAgICAgICJhY2Nlc3NMZXZlbCI6ICJQdWJsaWMiLAogICAgICAgICAgImFubm90YXRpb24iOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAidHlwZSI6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAicyI6IHsKICAgICAgICAgICAgICAgICJyIjogIjciLAogICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAiIiwKICAgICAgICAgICAgICAgICAgICAgICJkZWZpbmUgIiwKICAgICAgICAgICAgICAgICAgICAgICJcIk9uZUVuY291bnRlclwiIiwKICAgICAgICAgICAgICAgICAgICAgICI6XG5cdCIKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiciI6ICI2IiwKICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiRW5jb3VudGVyc1wiIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAiWyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJdIgogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgImV4cHJlc3Npb24iOiB7CiAgICAgICAgICAgICJsb2NhbElkIjogIjYiLAogICAgICAgICAgICAibG9jYXRvciI6ICIxMDoyLTEwOjE2IiwKICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogIntodHRwOi8vaGw3Lm9yZy9maGlyfUVuY291bnRlciIsCiAgICAgICAgICAgICJ0eXBlIjogIkluZGV4ZXIiLAogICAgICAgICAgICAib3BlcmFuZCI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibG9jYWxJZCI6ICI0IiwKICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjEwOjItMTA6MTMiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiRW5jb3VudGVycyIsCiAgICAgICAgICAgICAgICAidHlwZSI6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlU3BlY2lmaWVyIjogewogICAgICAgICAgICAgICAgICAidHlwZSI6ICJMaXN0VHlwZVNwZWNpZmllciIsCiAgICAgICAgICAgICAgICAgICJlbGVtZW50VHlwZSI6IHsKICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1FbmNvdW50ZXIiLAogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIk5hbWVkVHlwZVNwZWNpZmllciIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImxvY2FsSWQiOiAiNSIsCiAgICAgICAgICAgICAgICAibG9jYXRvciI6ICIxMDoxNSIsCiAgICAgICAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1JbnRlZ2VyIiwKICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1JbnRlZ2VyIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIwIiwKICAgICAgICAgICAgICAgICJ0eXBlIjogIkxpdGVyYWwiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibG9jYWxJZCI6ICIxNSIsCiAgICAgICAgICAibG9jYXRvciI6ICIxMzoxLTE0OjUwIiwKICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAibmFtZSI6ICJGaXJzdExvY2F0aW9uRGVzY3JpcHRpb24iLAogICAgICAgICAgImNvbnRleHQiOiAiUGF0aWVudCIsCiAgICAgICAgICAiYWNjZXNzTGV2ZWwiOiAiUHVibGljIiwKICAgICAgICAgICJhbm5vdGF0aW9uIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgInR5cGUiOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgInMiOiB7CiAgICAgICAgICAgICAgICAiciI6ICIxNSIsCiAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICIiLAogICAgICAgICAgICAgICAgICAgICAgImRlZmluZSAiLAogICAgICAgICAgICAgICAgICAgICAgIlwiRmlyc3RMb2NhdGlvbkRlc2NyaXB0aW9uXCIiLAogICAgICAgICAgICAgICAgICAgICAgIjpcblx0IgogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJyIjogIjE0IiwKICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMTMiLAogICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICIxMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjExIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCJPbmVFbmNvdW50ZXJcIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICI5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0aW9uIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMTAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlsiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjEyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdGlvbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjEzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc3BsYXkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iCiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjE0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgImV4cHJlc3Npb24iOiB7CiAgICAgICAgICAgICJsb2NhbElkIjogIjE0IiwKICAgICAgICAgICAgImxvY2F0b3IiOiAiMTQ6Mi0xNDo1MCIsCiAgICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICJwYXRoIjogInZhbHVlIiwKICAgICAgICAgICAgInR5cGUiOiAiUHJvcGVydHkiLAogICAgICAgICAgICAic291cmNlIjogewogICAgICAgICAgICAgICJsb2NhbElkIjogIjEzIiwKICAgICAgICAgICAgICAibG9jYXRvciI6ICIxNDoyLTE0OjQ0IiwKICAgICAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9c3RyaW5nIiwKICAgICAgICAgICAgICAicGF0aCI6ICJkaXNwbGF5IiwKICAgICAgICAgICAgICAidHlwZSI6ICJQcm9wZXJ0eSIsCiAgICAgICAgICAgICAgInNvdXJjZSI6IHsKICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjEyIiwKICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjE0OjItMTQ6MzYiLAogICAgICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogIntodHRwOi8vaGw3Lm9yZy9maGlyfVJlZmVyZW5jZSIsCiAgICAgICAgICAgICAgICAicGF0aCI6ICJsb2NhdGlvbiIsCiAgICAgICAgICAgICAgICAidHlwZSI6ICJQcm9wZXJ0eSIsCiAgICAgICAgICAgICAgICAic291cmNlIjogewogICAgICAgICAgICAgICAgICAibG9jYWxJZCI6ICIxMSIsCiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjE0OjItMTQ6MjciLAogICAgICAgICAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9RW5jb3VudGVyLkxvY2F0aW9uIiwKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiSW5kZXhlciIsCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIjogWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjkiLAogICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMTQ6Mi0xNDoyNCIsCiAgICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJsb2NhdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJQcm9wZXJ0eSIsCiAgICAgICAgICAgICAgICAgICAgICAicmVzdWx0VHlwZVNwZWNpZmllciI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiTGlzdFR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAiZWxlbWVudFR5cGUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9RW5jb3VudGVyLkxvY2F0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAic291cmNlIjogewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCI6ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMTQ6Mi0xNDoxNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1FbmNvdW50ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJPbmVFbmNvdW50ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJFeHByZXNzaW9uUmVmIgogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiOiAiMTAiLAogICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMTQ6MjYiLAogICAgICAgICAgICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9SW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9SW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJMaXRlcmFsIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImxvY2FsSWQiOiAiMzAiLAogICAgICAgICAgImxvY2F0b3IiOiAiMTY6MS0xNzo4MSIsCiAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgIm5hbWUiOiAiR2V0TWlkZGxlSW5pdGlhbHMiLAogICAgICAgICAgImNvbnRleHQiOiAiUGF0aWVudCIsCiAgICAgICAgICAiYWNjZXNzTGV2ZWwiOiAiUHVibGljIiwKICAgICAgICAgICJ0eXBlIjogIkZ1bmN0aW9uRGVmIiwKICAgICAgICAgICJhbm5vdGF0aW9uIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgInR5cGUiOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgInMiOiB7CiAgICAgICAgICAgICAgICAiciI6ICIzMCIsCiAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICIiLAogICAgICAgICAgICAgICAgICAgICAgImRlZmluZSBmdW5jdGlvbiBHZXRNaWRkbGVJbml0aWFscyhuYW1lIEZISVIuSHVtYW5OYW1lKTpcbiAgIgogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJyIjogIjI5IiwKICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMjkiLAogICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdWJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbWJpbmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIigiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIigiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICIxOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjE3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ2l2ZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnaXZlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJldHVybiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1YnN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIigiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMTkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ2l2ZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICIyMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICInLCAnIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICIyOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAiZXhwcmVzc2lvbiI6IHsKICAgICAgICAgICAgImxvY2FsSWQiOiAiMjkiLAogICAgICAgICAgICAibG9jYXRvciI6ICIxNzozLTE3OjgxIiwKICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgInR5cGUiOiAiU3Vic3RyaW5nIiwKICAgICAgICAgICAgInN0cmluZ1RvU3ViIjogewogICAgICAgICAgICAgICJsb2NhbElkIjogIjI3IiwKICAgICAgICAgICAgICAibG9jYXRvciI6ICIxNzoxMy0xNzo3OCIsCiAgICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAidHlwZSI6ICJDb21iaW5lIiwKICAgICAgICAgICAgICAic291cmNlIjogewogICAgICAgICAgICAgICAgImxvY2FsSWQiOiAiMjUiLAogICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMTc6MjEtMTc6NzIiLAogICAgICAgICAgICAgICAgInR5cGUiOiAiUXVlcnkiLAogICAgICAgICAgICAgICAgInJlc3VsdFR5cGVTcGVjaWZpZXIiOiB7CiAgICAgICAgICAgICAgICAgICJ0eXBlIjogIkxpc3RUeXBlU3BlY2lmaWVyIiwKICAgICAgICAgICAgICAgICAgImVsZW1lbnRUeXBlIjogewogICAgICAgICAgICAgICAgICAgICJuYW1lIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAic291cmNlIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiOiAiMTgiLAogICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjE3OjIyLTE3OjM3IiwKICAgICAgICAgICAgICAgICAgICAiYWxpYXMiOiAiZ2l2ZW4iLAogICAgICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlU3BlY2lmaWVyIjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiTGlzdFR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAgICAgICAgICAgImVsZW1lbnRUeXBlIjogewogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1zdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiI6IHsKICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjE3IiwKICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjE3OjIyLTE3OjMxIiwKICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImdpdmVuIiwKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIlByb3BlcnR5IiwKICAgICAgICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlU3BlY2lmaWVyIjogewogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJMaXN0VHlwZVNwZWNpZmllciIsCiAgICAgICAgICAgICAgICAgICAgICAgICJlbGVtZW50VHlwZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1zdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIk5hbWVkVHlwZVNwZWNpZmllciIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICJzb3VyY2UiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIm5hbWUiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJPcGVyYW5kUmVmIgogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJyZWxhdGlvbnNoaXAiOiBbXSwKICAgICAgICAgICAgICAgICJyZXR1cm4iOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjI0IiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMTc6MzktMTc6NzEiLAogICAgICAgICAgICAgICAgICAicmVzdWx0VHlwZVNwZWNpZmllciI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJMaXN0VHlwZVNwZWNpZmllciIsCiAgICAgICAgICAgICAgICAgICAgImVsZW1lbnRUeXBlIjogewogICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiTmFtZWRUeXBlU3BlY2lmaWVyIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iOiB7CiAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiOiAiMjMiLAogICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjE3OjQ2LTE3OjcxIiwKICAgICAgICAgICAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIlN1YnN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgInN0cmluZ1RvU3ViIjogewogICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiOiAiMjAiLAogICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMTc6NTYtMTc6NjYiLAogICAgICAgICAgICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogInZhbHVlIiwKICAgICAgICAgICAgICAgICAgICAgICJzY29wZSI6ICJnaXZlbiIsCiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJQcm9wZXJ0eSIKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJzdGFydEluZGV4IjogewogICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiOiAiMjEiLAogICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMTc6NjgiLAogICAgICAgICAgICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9SW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9SW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJMaXRlcmFsIgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImxlbmd0aCI6IHsKICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjIyIiwKICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjE3OjcwIiwKICAgICAgICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUludGVnZXIiLAogICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSI6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUludGVnZXIiLAogICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogIjEiLAogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiTGl0ZXJhbCIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJzZXBhcmF0b3IiOiB7CiAgICAgICAgICAgICAgICAibG9jYWxJZCI6ICIyNiIsCiAgICAgICAgICAgICAgICAibG9jYXRvciI6ICIxNzo3NC0xNzo3NyIsCiAgICAgICAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgInZhbHVlVHlwZSI6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAidmFsdWUiOiAiLCAiLAogICAgICAgICAgICAgICAgInR5cGUiOiAiTGl0ZXJhbCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdGFydEluZGV4IjogewogICAgICAgICAgICAgICJsb2NhbElkIjogIjI4IiwKICAgICAgICAgICAgICAibG9jYXRvciI6ICIxNzo4MCIsCiAgICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9SW50ZWdlciIsCiAgICAgICAgICAgICAgInZhbHVlVHlwZSI6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUludGVnZXIiLAogICAgICAgICAgICAgICJ2YWx1ZSI6ICIzIiwKICAgICAgICAgICAgICAidHlwZSI6ICJMaXRlcmFsIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIm9wZXJhbmQiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJuYW1lIiwKICAgICAgICAgICAgICAib3BlcmFuZFR5cGVTcGVjaWZpZXIiOiB7CiAgICAgICAgICAgICAgICAibG9jYWxJZCI6ICIxNiIsCiAgICAgICAgICAgICAgICAibG9jYXRvciI6ICIxNjo0MC0xNjo1MyIsCiAgICAgICAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9SHVtYW5OYW1lIiwKICAgICAgICAgICAgICAgICJuYW1lIjogIntodHRwOi8vaGw3Lm9yZy9maGlyfUh1bWFuTmFtZSIsCiAgICAgICAgICAgICAgICAidHlwZSI6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAibG9jYWxJZCI6ICI0MCIsCiAgICAgICAgICAibG9jYXRvciI6ICIyMDoxLTIwOjgxIiwKICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1IdW1hbk5hbWUiLAogICAgICAgICAgIm5hbWUiOiAiTmFtZSIsCiAgICAgICAgICAiY29udGV4dCI6ICJQYXRpZW50IiwKICAgICAgICAgICJhY2Nlc3NMZXZlbCI6ICJQdWJsaWMiLAogICAgICAgICAgImFubm90YXRpb24iOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAidHlwZSI6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAicyI6IHsKICAgICAgICAgICAgICAgICJyIjogIjQwIiwKICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgIi8vIEdyYWIgcGF0aWVudCBGSElSIEh1bWFuTmFtZVxuIiwKICAgICAgICAgICAgICAgICAgICAgICJkZWZpbmUgIiwKICAgICAgICAgICAgICAgICAgICAgICJOYW1lIiwKICAgICAgICAgICAgICAgICAgICAgICI6ICIKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiciI6ICIzOSIsCiAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAic2luZ2xldG9uIGZyb20gIgogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiciI6ICIzOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIigiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICIzOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICIzMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjMxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGF0aWVudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMzciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoZXJlICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMzciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICIzNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjM0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMzMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICIzNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICIzNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiMzYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ29mZmljaWFsJyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgImV4cHJlc3Npb24iOiB7CiAgICAgICAgICAgICJsb2NhbElkIjogIjM5IiwKICAgICAgICAgICAgImxvY2F0b3IiOiAiMjA6MTQtMjA6ODEiLAogICAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9SHVtYW5OYW1lIiwKICAgICAgICAgICAgInR5cGUiOiAiU2luZ2xldG9uRnJvbSIsCiAgICAgICAgICAgICJvcGVyYW5kIjogewogICAgICAgICAgICAgICJsb2NhbElkIjogIjM4IiwKICAgICAgICAgICAgICAibG9jYXRvciI6ICIyMDoyOS0yMDo4MSIsCiAgICAgICAgICAgICAgInR5cGUiOiAiUXVlcnkiLAogICAgICAgICAgICAgICJyZXN1bHRUeXBlU3BlY2lmaWVyIjogewogICAgICAgICAgICAgICAgInR5cGUiOiAiTGlzdFR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAgICAgImVsZW1lbnRUeXBlIjogewogICAgICAgICAgICAgICAgICAibmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1IdW1hbk5hbWUiLAogICAgICAgICAgICAgICAgICAidHlwZSI6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAic291cmNlIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibG9jYWxJZCI6ICIzMiIsCiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjIwOjMwLTIwOjQ2IiwKICAgICAgICAgICAgICAgICAgImFsaWFzIjogIm5hbWUiLAogICAgICAgICAgICAgICAgICAicmVzdWx0VHlwZVNwZWNpZmllciI6IHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJMaXN0VHlwZVNwZWNpZmllciIsCiAgICAgICAgICAgICAgICAgICAgImVsZW1lbnRUeXBlIjogewogICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9SHVtYW5OYW1lIiwKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIk5hbWVkVHlwZVNwZWNpZmllciIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogewogICAgICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjMxIiwKICAgICAgICAgICAgICAgICAgICAibG9jYXRvciI6ICIyMDozMC0yMDo0MSIsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAibmFtZSIsCiAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiUHJvcGVydHkiLAogICAgICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlU3BlY2lmaWVyIjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiTGlzdFR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAgICAgICAgICAgImVsZW1lbnRUeXBlIjogewogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1IdW1hbk5hbWUiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAic291cmNlIjogewogICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiUGF0aWVudCIsCiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJFeHByZXNzaW9uUmVmIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInJlbGF0aW9uc2hpcCI6IFtdLAogICAgICAgICAgICAgICJ3aGVyZSI6IHsKICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjM3IiwKICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjIwOjQ4LTIwOjgwIiwKICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUJvb2xlYW4iLAogICAgICAgICAgICAgICAgInR5cGUiOiAiRXF1YWwiLAogICAgICAgICAgICAgICAgIm9wZXJhbmQiOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCI6ICIzNSIsCiAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMjA6NTQtMjA6NjciLAogICAgICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidmFsdWUiLAogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIlByb3BlcnR5IiwKICAgICAgICAgICAgICAgICAgICAic291cmNlIjogewogICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiOiAiMzQiLAogICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMjA6NTQtMjA6NjEiLAogICAgICAgICAgICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogIntodHRwOi8vaGw3Lm9yZy9maGlyfU5hbWVVc2UiLAogICAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidXNlIiwKICAgICAgICAgICAgICAgICAgICAgICJzY29wZSI6ICJuYW1lIiwKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIlByb3BlcnR5IgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjM2IiwKICAgICAgICAgICAgICAgICAgICAibG9jYXRvciI6ICIyMDo3MS0yMDo4MCIsCiAgICAgICAgICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAib2ZmaWNpYWwiLAogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIkxpdGVyYWwiCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJsb2NhbElkIjogIjQ0IiwKICAgICAgICAgICJsb2NhdG9yIjogIjIzOjEtMjM6MzYiLAogICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICJuYW1lIjogIkxhc3ROYW1lIiwKICAgICAgICAgICJjb250ZXh0IjogIlBhdGllbnQiLAogICAgICAgICAgImFjY2Vzc0xldmVsIjogIlB1YmxpYyIsCiAgICAgICAgICAiYW5ub3RhdGlvbiI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJ0eXBlIjogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICJzIjogewogICAgICAgICAgICAgICAgInIiOiAiNDQiLAogICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAiLy8gRXh0cmFjdCB1c2VmdWwgbmFtZSBlbGVtZW50c1xuIiwKICAgICAgICAgICAgICAgICAgICAgICJkZWZpbmUgIiwKICAgICAgICAgICAgICAgICAgICAgICJMYXN0TmFtZSIsCiAgICAgICAgICAgICAgICAgICAgICAiOiAiCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInIiOiAiNDMiLAogICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiciI6ICI0MiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiTmFtZVwiIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjQyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZhbWlseSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIKICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiNDMiLAogICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAiZXhwcmVzc2lvbiI6IHsKICAgICAgICAgICAgImxvY2FsSWQiOiAiNDMiLAogICAgICAgICAgICAibG9jYXRvciI6ICIyMzoxOC0yMzozNiIsCiAgICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICJwYXRoIjogInZhbHVlIiwKICAgICAgICAgICAgInR5cGUiOiAiUHJvcGVydHkiLAogICAgICAgICAgICAic291cmNlIjogewogICAgICAgICAgICAgICJsb2NhbElkIjogIjQyIiwKICAgICAgICAgICAgICAibG9jYXRvciI6ICIyMzoxOC0yMzozMCIsCiAgICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogIntodHRwOi8vaGw3Lm9yZy9maGlyfXN0cmluZyIsCiAgICAgICAgICAgICAgInBhdGgiOiAiZmFtaWx5IiwKICAgICAgICAgICAgICAidHlwZSI6ICJQcm9wZXJ0eSIsCiAgICAgICAgICAgICAgInNvdXJjZSI6IHsKICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjQxIiwKICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjIzOjE4LTIzOjIzIiwKICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1IdW1hbk5hbWUiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiTmFtZSIsCiAgICAgICAgICAgICAgICAidHlwZSI6ICJFeHByZXNzaW9uUmVmIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImxvY2FsSWQiOiAiNDciLAogICAgICAgICAgImxvY2F0b3IiOiAiMjQ6MS0yNDo0NyIsCiAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgIm5hbWUiOiAiTWlkZGxlSW5pdGlhbCIsCiAgICAgICAgICAiY29udGV4dCI6ICJQYXRpZW50IiwKICAgICAgICAgICJhY2Nlc3NMZXZlbCI6ICJQdWJsaWMiLAogICAgICAgICAgImFubm90YXRpb24iOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAidHlwZSI6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAicyI6IHsKICAgICAgICAgICAgICAgICJyIjogIjQ3IiwKICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgIiIsCiAgICAgICAgICAgICAgICAgICAgICAiZGVmaW5lICIsCiAgICAgICAgICAgICAgICAgICAgICAiTWlkZGxlSW5pdGlhbCIsCiAgICAgICAgICAgICAgICAgICAgICAiOiAiCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInIiOiAiNDYiLAogICAgICAgICAgICAgICAgICAgICJzIjogWwogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgIkdldE1pZGRsZUluaXRpYWxzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiKCIKICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiNDUiLAogICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIk5hbWVcIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAiKSIKICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgXSwKICAgICAgICAgICJleHByZXNzaW9uIjogewogICAgICAgICAgICAibG9jYWxJZCI6ICI0NiIsCiAgICAgICAgICAgICJsb2NhdG9yIjogIjI0OjIzLTI0OjQ3IiwKICAgICAgICAgICAgInJlc3VsdFR5cGVOYW1lIjogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgIm5hbWUiOiAiR2V0TWlkZGxlSW5pdGlhbHMiLAogICAgICAgICAgICAidHlwZSI6ICJGdW5jdGlvblJlZiIsCiAgICAgICAgICAgICJvcGVyYW5kIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjQ1IiwKICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjI0OjQxLTI0OjQ2IiwKICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1IdW1hbk5hbWUiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiTmFtZSIsCiAgICAgICAgICAgICAgICAidHlwZSI6ICJFeHByZXNzaW9uUmVmIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImxvY2FsSWQiOiAiNTMiLAogICAgICAgICAgImxvY2F0b3IiOiAiMjU6MS0yNTozOSIsCiAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgIm5hbWUiOiAiRmlyc3ROYW1lIiwKICAgICAgICAgICJjb250ZXh0IjogIlBhdGllbnQiLAogICAgICAgICAgImFjY2Vzc0xldmVsIjogIlB1YmxpYyIsCiAgICAgICAgICAiYW5ub3RhdGlvbiI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJ0eXBlIjogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICJzIjogewogICAgICAgICAgICAgICAgInIiOiAiNTMiLAogICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAiIiwKICAgICAgICAgICAgICAgICAgICAgICJkZWZpbmUgIiwKICAgICAgICAgICAgICAgICAgICAgICJGaXJzdE5hbWUiLAogICAgICAgICAgICAgICAgICAgICAgIjogIgogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJyIjogIjUyIiwKICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiNTEiLAogICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciI6ICI0OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjQ4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIk5hbWVcIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjQ5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnaXZlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiOiAiNTAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iCiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJyIjogIjUyIiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgImV4cHJlc3Npb24iOiB7CiAgICAgICAgICAgICJsb2NhbElkIjogIjUyIiwKICAgICAgICAgICAgImxvY2F0b3IiOiAiMjU6MTktMjU6MzkiLAogICAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAicGF0aCI6ICJ2YWx1ZSIsCiAgICAgICAgICAgICJ0eXBlIjogIlByb3BlcnR5IiwKICAgICAgICAgICAgInNvdXJjZSI6IHsKICAgICAgICAgICAgICAibG9jYWxJZCI6ICI1MSIsCiAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMjU6MTktMjU6MzMiLAogICAgICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1zdHJpbmciLAogICAgICAgICAgICAgICJ0eXBlIjogIkluZGV4ZXIiLAogICAgICAgICAgICAgICJvcGVyYW5kIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibG9jYWxJZCI6ICI0OSIsCiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIjogIjI1OjE5LTI1OjMwIiwKICAgICAgICAgICAgICAgICAgInBhdGgiOiAiZ2l2ZW4iLAogICAgICAgICAgICAgICAgICAidHlwZSI6ICJQcm9wZXJ0eSIsCiAgICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlU3BlY2lmaWVyIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIkxpc3RUeXBlU3BlY2lmaWVyIiwKICAgICAgICAgICAgICAgICAgICAiZWxlbWVudFR5cGUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1zdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiTmFtZWRUeXBlU3BlY2lmaWVyIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInNvdXJjZSI6IHsKICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCI6ICI0OCIsCiAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMjU6MTktMjU6MjQiLAogICAgICAgICAgICAgICAgICAgICJyZXN1bHRUeXBlTmFtZSI6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1IdW1hbk5hbWUiLAogICAgICAgICAgICAgICAgICAgICJuYW1lIjogIk5hbWUiLAogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIkV4cHJlc3Npb25SZWYiCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIjogIjUwIiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiOiAiMjU6MzIiLAogICAgICAgICAgICAgICAgICAicmVzdWx0VHlwZU5hbWUiOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1JbnRlZ2VyIiwKICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSI6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUludGVnZXIiLAogICAgICAgICAgICAgICAgICAidmFsdWUiOiAiMCIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIjogIkxpdGVyYWwiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdCiAgICB9CiAgfSwKICAiZXh0ZXJuYWxFcnJvcnMiOiBbXQp9"
96
+ }
97
+ ]
98
+ }
99
+ }
100
+ ]
101
+ }
102
+ }
103
+ ]
104
+ }