bolognese 1.6.12 → 1.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (456) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -3
  3. data/bolognese.gemspec +2 -2
  4. data/lib/bolognese/datacite_utils.rb +2 -3
  5. data/lib/bolognese/doi_utils.rb +1 -1
  6. data/lib/bolognese/metadata.rb +7 -2
  7. data/lib/bolognese/readers/bibtex_reader.rb +0 -1
  8. data/lib/bolognese/readers/citeproc_reader.rb +2 -14
  9. data/lib/bolognese/readers/codemeta_reader.rb +4 -7
  10. data/lib/bolognese/readers/crossref_reader.rb +3 -5
  11. data/lib/bolognese/readers/datacite_reader.rb +3 -5
  12. data/lib/bolognese/readers/ris_reader.rb +3 -9
  13. data/lib/bolognese/readers/schema_org_reader.rb +3 -5
  14. data/lib/bolognese/version.rb +1 -1
  15. data/spec/author_utils_spec.rb +1 -1
  16. data/spec/cli_spec.rb +2 -2
  17. data/spec/datacite_utils_spec.rb +14 -15
  18. data/spec/doi_utils_spec.rb +7 -7
  19. data/spec/fixtures/schema_org_gtex.json +0 -1
  20. data/spec/fixtures/schema_org_list.json +0 -5
  21. data/spec/fixtures/schema_org_topmed.json +0 -1
  22. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/default.yml +19 -15
  23. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_bibtex.yml +19 -15
  24. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_citation.yml +19 -15
  25. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_crossref.yml +19 -15
  26. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_datacite.yml +19 -15
  27. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_jats.yml +19 -15
  28. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_schema_org.yml +19 -15
  29. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/default.yml +24 -20
  30. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_bibtex.yml +24 -20
  31. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_citation.yml +25 -21
  32. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite.yml +25 -21
  33. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite_json.yml +25 -21
  34. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_jats.yml +25 -21
  35. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_schema_org.yml +24 -20
  36. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/default.yml +24 -24
  37. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_bibtex.yml +24 -24
  38. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_datacite.yml +24 -24
  39. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_schema_org.yml +24 -24
  40. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/crossref.yml +13 -9
  41. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/datacite.yml +13 -9
  42. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/jalc.yml +13 -9
  43. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/kisti.yml +13 -9
  44. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/medra.yml +13 -9
  45. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/op.yml +13 -9
  46. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/author.yml +6 -6
  47. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/no_author.yml +6 -6
  48. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/single_author.yml +6 -6
  49. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/with_organization.yml +6 -6
  50. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_datacite_metadata/change_state.yml +25 -21
  51. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_datacite_metadata/change_title.yml +24 -20
  52. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_description.yml +6 -6
  53. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license.yml +6 -6
  54. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license_name.yml +6 -6
  55. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license_url.yml +6 -6
  56. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_state.yml +6 -6
  57. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/validates_against_schema.yml +6 -6
  58. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +6 -6
  59. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/doi.yml +6 -6
  60. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/doi_with_protocol.yml +6 -6
  61. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/dx_doi_org_url.yml +6 -6
  62. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/force_test_resolver.yml +6 -6
  63. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/https_url.yml +6 -6
  64. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/test_resolver.yml +6 -6
  65. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/test_resolver_http.yml +6 -6
  66. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/doi.yml +6 -6
  67. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/doi_with_special_characters.yml +6 -6
  68. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/not_a_doi.yml +6 -6
  69. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/sandbox_url.yml +6 -6
  70. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/url.yml +6 -6
  71. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/crossref.yml +19 -15
  72. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/datacite.yml +19 -15
  73. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/jalc.yml +19 -15
  74. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/kisti.yml +19 -15
  75. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/medra.yml +19 -15
  76. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/not_a_valid_prefix.yml +6 -6
  77. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/not_found.yml +19 -15
  78. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/op.yml +19 -15
  79. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/doi.yml +6 -6
  80. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/doi_with_protocol.yml +6 -6
  81. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/dx_doi_org_url.yml +6 -6
  82. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/force_test_resolver.yml +6 -6
  83. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/https_url.yml +6 -6
  84. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/test_resolver.yml +6 -6
  85. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/test_resolver_http.yml +6 -6
  86. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref.yml +41 -33
  87. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +41 -33
  88. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite.yml +40 -32
  89. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite_doi_http.yml +40 -32
  90. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/github.yml +28 -24
  91. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/orcid.yml +28 -24
  92. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/schema_org.yml +27 -23
  93. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +41 -33
  94. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/bibtex.yml +28 -24
  95. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/citeproc.yml +27 -23
  96. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/codemeta.yml +27 -23
  97. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crosscite.yml +27 -23
  98. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crossref.yml +28 -24
  99. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite.yml +27 -23
  100. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite_json.yml +28 -24
  101. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/ris.yml +28 -24
  102. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/schema_org.yml +27 -23
  103. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_string/crosscite.yml +28 -24
  104. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_for_match.yml +5 -5
  105. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_match.yml +5 -5
  106. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_no_match.yml +5 -5
  107. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_for_match.yml +4 -4
  108. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_match.yml +5 -5
  109. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_no_match.yml +5 -5
  110. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org/with_id.yml +6 -6
  111. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org_creators/with_affiliation.yml +6 -6
  112. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org_creators/without_affiliation.yml +6 -6
  113. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/maremma.yml +25 -27
  114. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/metadata_reports.yml +23 -25
  115. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +18 -14
  116. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +18 -14
  117. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +19 -15
  118. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/JaLC.yml +18 -14
  119. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/KISTI.yml +17 -13
  120. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/OP.yml +19 -15
  121. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book.yml +18 -14
  122. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book_chapter.yml +19 -15
  123. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/author_literal.yml +15 -13
  124. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book.yml +19 -15
  125. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_chapter.yml +17 -13
  126. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +17 -15
  127. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/component.yml +19 -15
  128. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dataset.yml +35 -31
  129. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dataset_usda.yml +29 -22
  130. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/date_in_future.yml +19 -15
  131. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/empty_given_name.yml +14 -12
  132. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/invalid_date.yml +15 -15
  133. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article.yml +19 -15
  134. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +17 -13
  135. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with.yml +18 -14
  136. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +18 -16
  137. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with_funding.yml +19 -15
  138. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_issue.yml +17 -13
  139. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/mEDRA.yml +17 -13
  140. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/markup.yml +26 -21
  141. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/missing_creator.yml +19 -15
  142. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_titles.yml +18 -14
  143. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/not_found_error.yml +17 -13
  144. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/posted_content.yml +19 -15
  145. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/vor_with_url.yml +18 -14
  146. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/yet_another_book.yml +18 -14
  147. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +17 -13
  148. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_json_metadata/metadata_from_api.yml +22 -20
  149. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/BlogPosting.yml +28 -24
  150. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_test_system.yml +26 -22
  151. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_test_system_schema_3.yml +27 -23
  152. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_with_related_id_system.yml +31 -28
  153. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_not_found.yml +23 -19
  154. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Dataset.yml +24 -20
  155. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding.yml +25 -21
  156. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_empty_awardTitle.yml +24 -20
  157. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_schema_version_4.yml +25 -21
  158. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Referee_report_in_test_system.yml +29 -24
  159. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Schema_org_type.yml +24 -22
  160. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_only_full_name.yml +24 -20
  161. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_scheme.yml +25 -21
  162. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_wrong_orcid_scheme.yml +24 -20
  163. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/content_url.yml +29 -26
  164. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/date.yml +38 -24
  165. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/dissertation.yml +24 -20
  166. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/doi_with_sign.yml +27 -24
  167. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/empty_subject.yml +26 -22
  168. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/even_more_subject_scheme_FOR.yml +19 -19
  169. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/funding_references.yml +20 -18
  170. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/funding_schema_version_3.yml +42 -38
  171. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/is_identical_to.yml +25 -21
  172. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/keywords_with_attributes.yml +35 -32
  173. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml +33 -29
  174. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/more_subject_scheme_FOR.yml +20 -19
  175. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorsName.yml +31 -28
  176. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_licenses.yml +37 -33
  177. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/series-information.yml +25 -21
  178. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme.yml +24 -20
  179. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme_FOR.yml +32 -25
  180. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date/publication_date.yml +6 -6
  181. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/date.yml +6 -6
  182. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year-month.yml +6 -6
  183. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year.yml +6 -6
  184. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/date.yml +6 -6
  185. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/year-month.yml +6 -6
  186. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/year.yml +6 -6
  187. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/date.yml +6 -6
  188. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/year-month.yml +6 -6
  189. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/year.yml +6 -6
  190. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/future.yml +4 -4
  191. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/invalid.yml +4 -4
  192. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/nil.yml +4 -4
  193. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/past.yml +4 -4
  194. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/present.yml +4 -4
  195. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_familyName.yml +14 -14
  196. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_Thai.yml +12 -12
  197. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_display-order.yml +25 -25
  198. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +11 -11
  199. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_sort-order.yml +11 -11
  200. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/hyper-authorship.yml +1180 -1161
  201. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/is_organization.yml +6 -6
  202. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/multiple_author_names_in_one_field.yml +18 -19
  203. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/multiple_name_identifier.yml +11 -11
  204. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_affiliation.yml +11 -11
  205. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_affiliation_and_country.yml +19 -19
  206. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_role.yml +11 -11
  207. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/only_familyName_and_givenName.yml +13 -9
  208. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/BlogPosting.yml +26 -22
  209. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +24 -22
  210. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/harvard_dataverse.yml +7 -8
  211. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/pangaea.yml +11 -9
  212. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/zenodo.yml +70 -62
  213. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/only_title.yml +6 -6
  214. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_and_pages.yml +6 -6
  215. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_volume_and_pages.yml +6 -6
  216. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_volume_issue_and_pages.yml +6 -6
  217. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_as_codemeta_url.yml +6 -6
  218. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_from_url.yml +6 -6
  219. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_from_url_file.yml +6 -6
  220. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +13 -9
  221. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/unknown_DOI_prefix.yml +13 -9
  222. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors/none.yml +12 -12
  223. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_creators/insert.yml +11 -11
  224. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates/insert.yml +12 -12
  225. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_descriptions/insert.yml +15 -15
  226. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_identifier/doi.yml +11 -11
  227. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_language/insert.yml +11 -11
  228. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_person/creator_only_name.yml +11 -11
  229. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publication_year/insert.yml +12 -12
  230. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publisher/insert.yml +11 -11
  231. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/insert.yml +11 -11
  232. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/related_identifier.yml +12 -12
  233. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type/insert.yml +11 -11
  234. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_rights_list/insert.yml +11 -11
  235. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_sizes/insert.yml +12 -12
  236. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_subjects/insert.yml +11 -11
  237. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_titles/insert.yml +11 -11
  238. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_version/insert.yml +12 -12
  239. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_comma.yml +6 -6
  240. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_family_name.yml +6 -6
  241. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_id.yml +6 -6
  242. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_known_given_name.yml +6 -6
  243. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_no_info.yml +6 -6
  244. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_orcid_id.yml +6 -6
  245. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_type_organization.yml +6 -6
  246. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/missing_comma.yml +28 -24
  247. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/nil.yml +27 -23
  248. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/overlapping_keys.yml +28 -24
  249. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/valid.yml +28 -24
  250. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/not_found.yml +5 -5
  251. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/with_trailing_slash.yml +4 -4
  252. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +5 -5
  253. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/SICI_doi.yml +6 -6
  254. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi.yml +6 -6
  255. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_force_datacite_sandbox.yml +6 -6
  256. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_from_datacite_sandbox.yml +6 -6
  257. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_from_url_without_doi_proxy.yml +6 -6
  258. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_prefix_too_long.yml +6 -6
  259. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_prefix_with_string.yml +6 -6
  260. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_with_protocol.yml +6 -6
  261. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/dx_doi_org_url.yml +6 -6
  262. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/https_url.yml +6 -6
  263. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/not_valid_doi_prefix.yml +6 -6
  264. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/url_with_one_slash.yml +6 -6
  265. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/doi.yml +6 -6
  266. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/doi_as_url.yml +6 -6
  267. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/ftp.yml +6 -6
  268. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/invalid_url.yml +6 -6
  269. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/sandbox_via_options.yml +6 -6
  270. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/sandbox_via_url.yml +6 -6
  271. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/string.yml +6 -6
  272. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/url.yml +6 -6
  273. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/url_with_utf-8.yml +6 -6
  274. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_ids/doi.yml +6 -6
  275. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_ids/url.yml +6 -6
  276. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_array.yml +6 -6
  277. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_empty_array.yml +6 -6
  278. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_hash.yml +6 -6
  279. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_string.yml +6 -6
  280. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/uri.yml +6 -6
  281. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash.yml +6 -6
  282. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +4 -4
  283. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array.yml +6 -6
  284. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array_of_strings.yml +6 -6
  285. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/first.yml +6 -6
  286. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/hash.yml +6 -6
  287. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/nil.yml +6 -6
  288. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/string.yml +6 -6
  289. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_only_keep_specific_tags.yml +6 -6
  290. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_remove_a_tags.yml +6 -6
  291. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_id.yml +4 -4
  292. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_not_found.yml +5 -5
  293. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_url.yml +4 -4
  294. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_exists.yml +5 -5
  295. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_id.yml +4 -4
  296. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org/with_id.yml +6 -6
  297. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org_identifiers/with_identifiers.yml +6 -6
  298. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_doi/doi.yml +6 -6
  299. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/funder_doi.yml +6 -6
  300. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/funder_doi_without_prefix.yml +6 -6
  301. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/non-funder_doi.yml +6 -6
  302. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid.yml +6 -6
  303. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_https.yml +6 -6
  304. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_id.yml +6 -6
  305. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_with_spaces.yml +6 -6
  306. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_wrong_id.yml +6 -6
  307. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_www.yml +6 -6
  308. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +6 -6
  309. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +6 -6
  310. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +6 -6
  311. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +6 -6
  312. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi.yml +6 -6
  313. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi_as_url.yml +6 -6
  314. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi_with_protocol.yml +6 -6
  315. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/only_prefix.yml +6 -6
  316. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/DOI.yml +6 -6
  317. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/ISSN.yml +6 -6
  318. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/URL.yml +6 -6
  319. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/string.yml +6 -6
  320. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/BlogPosting.yml +15 -15
  321. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/Dataset.yml +12 -12
  322. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +19 -19
  323. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/climate_data.yml +14 -15
  324. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/from_schema_org.yml +24 -24
  325. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +32 -25
  326. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/maremma.yml +25 -27
  327. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/text.yml +12 -12
  328. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/with_data_citation.yml +6 -6
  329. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/with_pages.yml +5 -5
  330. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Dataset.yml +12 -12
  331. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Journal_article.yml +6 -6
  332. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +51 -0
  333. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Missing_author.yml +6 -6
  334. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +8 -8
  335. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/software_w/version.yml +19 -8
  336. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting.yml +15 -15
  337. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting_schema_org.yml +25 -23
  338. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/Dataset.yml +11 -11
  339. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/container_title.yml +12 -12
  340. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/interactive_resource_without_dates.yml +8 -8
  341. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/journal_article.yml +6 -6
  342. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/keywords_subject_scheme.yml +32 -25
  343. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/maremma.yml +25 -27
  344. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/missing_creator.yml +6 -6
  345. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/multiple_abstracts.yml +11 -11
  346. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/organization_author.yml +4 -4
  347. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/software.yml +11 -11
  348. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/software_w/version.yml +23 -12
  349. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_only_first_page.yml +6 -6
  350. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_pages.yml +5 -5
  351. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +14 -15
  352. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +14 -15
  353. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/datacite_database_attributes.yml +12 -12
  354. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/maremma.yml +25 -27
  355. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_ORCID_ID.yml +5 -5
  356. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation.yml +6 -6
  357. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation_schema_org.yml +24 -24
  358. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crossref/from_DataCite.yml +12 -12
  359. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/climate_data.yml +13 -14
  360. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/maremma.yml +25 -27
  361. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/text.yml +11 -11
  362. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/with_data_citation.yml +6 -6
  363. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/with_pages.yml +5 -5
  364. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/maremma.yml +25 -27
  365. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +5 -5
  366. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +6 -6
  367. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation_schema_org.yml +24 -24
  368. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/DOI_not_found.yml +10 -10
  369. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Dataset_in_schema_4_0.yml +12 -12
  370. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Text_pass-thru.yml +33 -33
  371. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Text_pass-thru_with_doi_in_options.yml +34 -34
  372. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/maremma.yml +25 -27
  373. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_ORCID_ID.yml +5 -5
  374. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_data_citation.yml +6 -6
  375. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_data_citation_schema_org.yml +24 -24
  376. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_editor.yml +6 -6
  377. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_version.yml +16 -16
  378. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +11 -11
  379. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +34 -34
  380. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/book_chapter.yml +21 -21
  381. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +7 -7
  382. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/maremma.yml +25 -27
  383. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +5 -5
  384. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +6 -6
  385. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_data_citation_schema_org.yml +23 -25
  386. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_editor.yml +6 -6
  387. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +14 -14
  388. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +20 -20
  389. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/journal_article.yml +5 -5
  390. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/maremma.yml +22 -24
  391. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/with_pages.yml +5 -5
  392. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/BlogPosting.yml +14 -14
  393. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +24 -24
  394. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/Dataset.yml +12 -12
  395. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/alternate_name.yml +12 -12
  396. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/journal_article.yml +6 -6
  397. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +31 -24
  398. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/maremma.yml +25 -27
  399. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/with_pages.yml +5 -5
  400. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding.yml +18 -18
  401. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +28 -17
  402. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +24 -24
  403. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +40 -18
  404. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +18 -18
  405. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_isReferencedBy.yml +12 -12
  406. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +16 -17
  407. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/data_catalog.yml +13 -14
  408. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/geo_location_box.yml +36 -28
  409. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +7 -7
  410. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/journal_article.yml +6 -6
  411. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +25 -27
  412. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/series_information.yml +11 -11
  413. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/subject_scheme.yml +12 -12
  414. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +31 -24
  415. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/BlogPosting.yml +14 -14
  416. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +20 -20
  417. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/Dataset.yml +12 -12
  418. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/journal_article.yml +5 -5
  419. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/with_pages.yml +5 -5
  420. data/spec/readers/bibtex_reader_spec.rb +3 -3
  421. data/spec/readers/citeproc_reader_spec.rb +3 -3
  422. data/spec/readers/codemeta_reader_spec.rb +4 -4
  423. data/spec/readers/crossref_reader_spec.rb +73 -63
  424. data/spec/readers/datacite_json_reader_spec.rb +2 -1
  425. data/spec/readers/datacite_reader_spec.rb +94 -92
  426. data/spec/readers/ris_reader_spec.rb +4 -4
  427. data/spec/readers/schema_org_reader_spec.rb +40 -38
  428. data/spec/writers/bibtex_writer_spec.rb +2 -2
  429. data/spec/writers/citation_writer_spec.rb +8 -8
  430. data/spec/writers/citeproc_writer_spec.rb +2 -2
  431. data/spec/writers/codemeta_writer_spec.rb +0 -1
  432. data/spec/writers/crosscite_writer_spec.rb +3 -3
  433. data/spec/writers/datacite_writer_spec.rb +14 -15
  434. data/spec/writers/jats_writer_spec.rb +3 -3
  435. data/spec/writers/ris_writer_spec.rb +6 -5
  436. data/spec/writers/schema_org_writer_spec.rb +6 -18
  437. metadata +7 -25
  438. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/error_unknown.yml +0 -88
  439. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/jj.yml +0 -87
  440. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_t.yml +0 -47
  441. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/xs_string_attributes.yml +0 -93
  442. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_timestamp/present.yml +0 -44
  443. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/is_crossrer_organization.yml +0 -44
  444. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/harvard_dataverse_via_identifiers_org.yml +0 -158
  445. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/ornl.yml +0 -706
  446. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_alternate_identifiers/insert.yml +0 -49
  447. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_formats/insert.yml +0 -49
  448. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_person/creator_given_and_family_name.yml +0 -49
  449. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/to_https.yml +0 -44
  450. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_id_lowercase.yml +0 -44
  451. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_not_found.yml +0 -44
  452. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/url_to_https/http.yml +0 -44
  453. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/url_to_https/uri.yml +0 -44
  454. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/url_to_https/with_trailing_slash.yml +0 -44
  455. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/dataset_neurophysiology.yml +0 -116
  456. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_first_page.yml +0 -46
@@ -2,13 +2,13 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://api.datacite.org/dois/10.5061/dryad.8515
5
+ uri: https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - Mozilla/5.0 (compatible; Maremma/4.6; mailto:info@datacite.org)
11
+ - Mozilla/5.0 (compatible; Maremma/4.7.1; mailto:info@datacite.org)
12
12
  Accept:
13
13
  - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
14
  response:
@@ -17,7 +17,7 @@ http_interactions:
17
17
  message: OK
18
18
  headers:
19
19
  Date:
20
- - Tue, 25 Feb 2020 14:40:14 GMT
20
+ - Sun, 12 Jul 2020 11:25:33 GMT
21
21
  Content-Type:
22
22
  - application/json; charset=utf-8
23
23
  Connection:
@@ -30,20 +30,20 @@ http_interactions:
30
30
  - max-age=0, private, must-revalidate
31
31
  Vary:
32
32
  - Accept-Encoding, Origin
33
- X-Request-Id:
34
- - b8a775ba-8e26-46bf-8945-9779410977fc
35
33
  Etag:
36
- - W/"3d871d532026218a18291f784157cc5c"
34
+ - W/"8cecafbbed22d316d34acee92903b15c"
37
35
  X-Runtime:
38
- - '0.888714'
36
+ - '0.371962'
37
+ X-Request-Id:
38
+ - a6884cea-9aa8-4572-8db4-26d1ce9728fa
39
39
  X-Powered-By:
40
- - Phusion Passenger 6.0.4
40
+ - Phusion Passenger 6.0.5
41
41
  Server:
42
- - nginx/1.14.0 + Phusion Passenger 6.0.4
42
+ - nginx/1.14.0 + Phusion Passenger 6.0.5
43
43
  body:
44
44
  encoding: ASCII-8BIT
45
45
  string: !binary |-
46
- eyJkYXRhIjp7ImlkIjoiMTAuNTA2MS9kcnlhZC44NTE1IiwidHlwZSI6ImRvaXMiLCJhdHRyaWJ1dGVzIjp7ImRvaSI6IjEwLjUwNjEvZHJ5YWQuODUxNSIsInByZWZpeCI6IjEwLjUwNjEiLCJzdWZmaXgiOiJkcnlhZC44NTE1IiwiaWRlbnRpZmllcnMiOlt7ImlkZW50aWZpZXIiOiJodHRwczovL2RvaS5vcmcvMTAuNTA2MS9kcnlhZC44NTE1IiwiaWRlbnRpZmllclR5cGUiOiJET0kifV0sImNyZWF0b3JzIjpbeyJuYW1lIjoiT2xsb21vLCBCZW5qYW1pbiIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJCZW5qYW1pbiIsImZhbWlseU5hbWUiOiJPbGxvbW8iLCJhZmZpbGlhdGlvbiI6WyJDZW50cmUgSW50ZXJuYXRpb25hbCBkZSBSZWNoZXJjaGVzIE3DqWRpY2FsZXMgZGUgRnJhbmNldmlsbGUiXSwibmFtZUlkZW50aWZpZXJzIjpbXX0seyJuYW1lIjoiRHVyYW5kLCBQYXRyaWNrIiwibmFtZVR5cGUiOiJQZXJzb25hbCIsImdpdmVuTmFtZSI6IlBhdHJpY2siLCJmYW1pbHlOYW1lIjoiRHVyYW5kIiwiYWZmaWxpYXRpb24iOlsiRnJlbmNoIE5hdGlvbmFsIENlbnRyZSBmb3IgU2NpZW50aWZpYyBSZXNlYXJjaCJdLCJuYW1lSWRlbnRpZmllcnMiOltdfSx7Im5hbWUiOiJQcnVnbm9sbGUsIEZyYW5jayIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJGcmFuY2siLCJmYW1pbHlOYW1lIjoiUHJ1Z25vbGxlIiwiYWZmaWxpYXRpb24iOlsiRnJlbmNoIE5hdGlvbmFsIENlbnRyZSBmb3IgU2NpZW50aWZpYyBSZXNlYXJjaCJdLCJuYW1lSWRlbnRpZmllcnMiOltdfSx7Im5hbWUiOiJEb3V6ZXJ5LCBFbW1hbnVlbCBKLiBQLiIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJFbW1hbnVlbCBKLiBQLiIsImZhbWlseU5hbWUiOiJEb3V6ZXJ5IiwiYWZmaWxpYXRpb24iOltdLCJuYW1lSWRlbnRpZmllcnMiOltdfSx7Im5hbWUiOiJBcm5hdGhhdSwgQ8OpbGluZSIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJDw6lsaW5lIiwiZmFtaWx5TmFtZSI6IkFybmF0aGF1IiwiYWZmaWxpYXRpb24iOlsiRnJlbmNoIE5hdGlvbmFsIENlbnRyZSBmb3IgU2NpZW50aWZpYyBSZXNlYXJjaCJdLCJuYW1lSWRlbnRpZmllcnMiOltdfSx7Im5hbWUiOiJOa29naGUsIERpZXVkb25uw6kiLCJuYW1lVHlwZSI6IlBlcnNvbmFsIiwiZ2l2ZW5OYW1lIjoiRGlldWRvbm7DqSIsImZhbWlseU5hbWUiOiJOa29naGUiLCJhZmZpbGlhdGlvbiI6WyJDZW50cmUgSW50ZXJuYXRpb25hbCBkZSBSZWNoZXJjaGVzIE3DqWRpY2FsZXMgZGUgRnJhbmNldmlsbGUiXSwibmFtZUlkZW50aWZpZXJzIjpbXX0seyJuYW1lIjoiTGVyb3ksIEVyaWMiLCJuYW1lVHlwZSI6IlBlcnNvbmFsIiwiZ2l2ZW5OYW1lIjoiRXJpYyIsImZhbWlseU5hbWUiOiJMZXJveSIsImFmZmlsaWF0aW9uIjpbIkNlbnRyZSBJbnRlcm5hdGlvbmFsIGRlIFJlY2hlcmNoZXMgTcOpZGljYWxlcyBkZSBGcmFuY2V2aWxsZSJdLCJuYW1lSWRlbnRpZmllcnMiOltdfSx7Im5hbWUiOiJSZW5hdWQsIEZyYW7Dp29pcyIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJGcmFuw6dvaXMiLCJmYW1pbHlOYW1lIjoiUmVuYXVkIiwiYWZmaWxpYXRpb24iOlsiRnJlbmNoIE5hdGlvbmFsIENlbnRyZSBmb3IgU2NpZW50aWZpYyBSZXNlYXJjaCJdLCJuYW1lSWRlbnRpZmllcnMiOltdfV0sInRpdGxlcyI6W3sidGl0bGUiOiJEYXRhIGZyb206IEEgbmV3IG1hbGFyaWEgYWdlbnQgaW4gQWZyaWNhbiBob21pbmlkcy4ifV0sInB1Ymxpc2hlciI6IkRyeWFkIiwiY29udGFpbmVyIjp7fSwicHVibGljYXRpb25ZZWFyIjoyMDExLCJzdWJqZWN0cyI6W3sic3ViamVjdCI6IlBsYXNtb2RpdW0ifSx7InN1YmplY3QiOiJtYWxhcmlhIn0seyJzdWJqZWN0IjoidGF4b25vbXkifSx7InN1YmplY3QiOiJtaXRvY2hvbmRyaWFsIGdlbm9tZSJ9LHsic3ViamVjdCI6InBoeWxvZ2VueSJ9LHsic3ViamVjdCI6IlBhcmFzaXRlcyJ9XSwiY29udHJpYnV0b3JzIjpbXSwiZGF0ZXMiOlt7ImRhdGUiOiIyMDExLTAyLTAxVDE3OjIyOjQxWiIsImRhdGVUeXBlIjoiQXZhaWxhYmxlIn0seyJkYXRlIjoiMjAxMSIsImRhdGVUeXBlIjoiSXNzdWVkIn1dLCJsYW5ndWFnZSI6ImVuIiwidHlwZXMiOnsicmlzIjoiREFUQSIsImJpYnRleCI6Im1pc2MiLCJjaXRlcHJvYyI6ImRhdGFzZXQiLCJzY2hlbWFPcmciOiJEYXRhc2V0IiwicmVzb3VyY2VUeXBlIjoiZGF0YXNldCIsInJlc291cmNlVHlwZUdlbmVyYWwiOiJEYXRhc2V0In0sInJlbGF0ZWRJZGVudGlmaWVycyI6W3sicmVsYXRpb25UeXBlIjoiSXNTdXBwbGVtZW50VG8iLCJyZWxhdGVkSWRlbnRpZmllciI6ImRvaToxMC4xMzcxL2pvdXJuYWwucHBhdC4xMDAwNDQ2IiwicmVsYXRlZElkZW50aWZpZXJUeXBlIjoiRE9JIn1dLCJzaXplcyI6WyIxMDczMjggYnl0ZXMiXSwiZm9ybWF0cyI6W10sInZlcnNpb24iOiIxIiwicmlnaHRzTGlzdCI6W3sicmlnaHRzIjoiQ0MwIDEuMCBVbml2ZXJzYWwgKENDMCAxLjApIFB1YmxpYyBEb21haW4gRGVkaWNhdGlvbiIsInJpZ2h0c1VyaSI6Imh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAifV0sImRlc2NyaXB0aW9ucyI6W3siZGVzY3JpcHRpb24iOiJQbGFzbW9kaXVtIGZhbGNpcGFydW0gaXMgdGhlIG1ham9yIGh1bWFuIG1hbGFyaWEgYWdlbnQgcmVzcG9uc2libGUgZm9yIDIwMCB0byAzMDAgbWlsbGlvbiBpbmZlY3Rpb25zIGFuZCBvbmUgdG8gdGhyZWUgbWlsbGlvbiBkZWF0aHMgYW5udWFsbHksIG1haW5seSBhbW9uZyBBZnJpY2FuIGluZmFudHMuIFRoZSBvcmlnaW4gYW5kIGV2b2x1dGlvbiBvZiB0aGlzIHBhdGhvZ2VuIHdpdGhpbiB0aGUgaHVtYW4gbGluZWFnZSBpcyBzdGlsbCB1bnJlc29sdmVkLiBBIHNpbmdsZSBzcGVjaWVzLCBQLiByZWljaGVub3dpLCB3aGljaCBpbmZlY3RzIGNoaW1wYW56ZWVzLCBpcyBrbm93biB0byBiZSBhIGNsb3NlIHNpc3RlciBsaW5lYWdlIG9mIFAuIGZhbGNpcGFydW0uIEhlcmUgd2UgcmVwb3J0IHRoZSBkaXNjb3Zlcnkgb2YgYSBuZXcgUGxhc21vZGl1bSBzcGVjaWVzIGluZmVjdGluZyBIb21pbmlkcy4gVGhpcyBuZXcgc3BlY2llcyBoYXMgYmVlbiBpc29sYXRlZCBpbiB0d28gY2hpbXBhbnplZXMgKFBhbiB0cm9nbG9keXRlcykga2VwdCBhcyBwZXRzIGJ5IHZpbGxhZ2VycyBpbiBHYWJvbiAoQWZyaWNhKS4gQW5hbHlzaXMgb2YgaXRzIGNvbXBsZXRlIG1pdG9jaG9uZHJpYWwgZ2Vub21lICg1NTI5IG51Y2xlb3RpZGVzIGluY2x1ZGluZyBDeXQgYiwgQ294IEkgYW5kIENveCBJSUkgZ2VuZXMpIHJldmVhbHMgYW4gb2xkZXIgZGl2ZXJnZW5jZSBvZiB0aGlzIGxpbmVhZ2UgZnJvbSB0aGUgY2xhZGUgdGhhdCBpbmNsdWRlcyBQLiBmYWxjaXBhcnVtIGFuZCBQLiByZWljaGVub3dpIChhcHByb3hpbWF0ZWx5IDIxKy8tOSBNeXJzIGFnbyB1c2luZyBCYXllc2lhbiBtZXRob2RzIGFuZCBjb25zaWRlcmluZyB0aGF0IHRoZSBkaXZlcmdlbmNlIGJldHdlZW4gUC4gZmFsY2lwYXJ1bSBhbmQgUC4gcmVpY2hlbm93aSBvY2N1cnJlZCA0IHRvIDcgbWlsbGlvbiB5ZWFycyBhZ28gYXMgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgaW4gdGhlIGxpdGVyYXR1cmUpLiBUaGlzIHRpbWUgZnJhbWUgd291bGQgYmUgY29uZ3J1ZW50IHdpdGggdGhlIHJhZGlhdGlvbiBvZiBob21pbm9pZHMsIHN1Z2dlc3RpbmcgdGhhdCB0aGlzIFBsYXNtb2RpdW0gbGluZWFnZSBtaWdodCBoYXZlIGJlZW4gcHJlc2VudCBpbiBlYXJseSBob21pbm9pZHMgYW5kIHRoYXQgdGhleSBtYXkgYm90aCBoYXZlIGV4cGVyaWVuY2VkIGEgc2ltdWx0YW5lb3VzIGRpdmVyc2lmaWNhdGlvbi4gSW52ZXN0aWdhdGlvbiBvZiB0aGUgbnVjbGVhciBnZW5vbWUgb2YgdGhpcyBuZXcgc3BlY2llcyB3aWxsIGZ1cnRoZXIgdGhlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGdlbmV0aWMgYWRhcHRhdGlvbnMgb2YgUC4gZmFsY2lwYXJ1bSB0byBodW1hbnMuIFRoZSByaXNrIG9mIHRyYW5zZmVyIGFuZCBlbWVyZ2VuY2Ugb2YgdGhpcyBuZXcgc3BlY2llcyBpbiBodW1hbnMgbXVzdCBiZSBub3cgc2VyaW91c2x5IGNvbnNpZGVyZWQgZ2l2ZW4gdGhhdCBpdCB3YXMgZm91bmQgaW4gdHdvIGNoaW1wYW56ZWVzIGxpdmluZyBpbiBjb250YWN0IHdpdGggaHVtYW5zIGFuZCBpdHMgY2xvc2UgcmVsYXRlZG5lc3MgdG8gdGhlIG1vc3QgdmlydWxlbnQgYWdlbnQgb2YgbWFsYXJpYS4iLCJkZXNjcmlwdGlvblR5cGUiOiJBYnN0cmFjdCJ9LHsiZGVzY3JpcHRpb24iOiJPbGxvbW9fUExvU1BhdGhvZ18yMDA5TnVjbGVvdGlkZSBhbGlnbm1lbnQgY29uY2F0ZW5hdGlvbiBvZiA0IG1pdG9jaG9uZHJpYWwgZ2VuZXMgZm9yIDE3IFBsYXNtb2RpdW0gc3BlY2llcyBhbmQgb25lIG91dGdyb3VwLk9sbG9tb19QTG9TUGF0aG9nXzIwMDlfUEhZTUxNYXhpbXVtIGxpa2VsaWhvb2QgdHJlZSBpbmZlcnJlZCBmcm9tIHRoZSA0LWdlbmUgY29uY2F0ZW5hdGlvbiB1c2luZyBQSFlNTC4iLCJkZXNjcmlwdGlvblR5cGUiOiJPdGhlciJ9XSwiZ2VvTG9jYXRpb25zIjpbeyJnZW9Mb2NhdGlvblBsYWNlIjoiQWZyaWNhIn1dLCJmdW5kaW5nUmVmZXJlbmNlcyI6W10sInhtbCI6IlBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NEtQSEpsYzI5MWNtTmxJSGh0Ykc1ek9uaHphVDBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01TOVlUVXhUWTJobGJXRXRhVzV6ZEdGdVkyVWlJSGh0Ykc1elBTSm9kSFJ3T2k4dlpHRjBZV05wZEdVdWIzSm5MM05qYUdWdFlTOXJaWEp1Wld3dE5DSWdlSE5wT25OamFHVnRZVXh2WTJGMGFXOXVQU0pvZEhSd09pOHZaR0YwWVdOcGRHVXViM0puTDNOamFHVnRZUzlyWlhKdVpXd3ROQ0JvZEhSd09pOHZjMk5vWlcxaExtUmhkR0ZqYVhSbExtOXlaeTl0WlhSaEwydGxjbTVsYkMwMEwyMWxkR0ZrWVhSaExuaHpaQ0krQ2lBZ1BHbGtaVzUwYVdacFpYSWdhV1JsYm5ScFptbGxjbFI1Y0dVOUlrUlBTU0krTVRBdU5UQTJNUzlFVWxsQlJDNDROVEUxUEM5cFpHVnVkR2xtYVdWeVBnb2dJRHhqY21WaGRHOXljejRLSUNBZ0lEeGpjbVZoZEc5eVBnb2dJQ0FnSUNBOFkzSmxZWFJ2Y2s1aGJXVStUMnhzYjIxdkxDQkNaVzVxWVcxcGJqd3ZZM0psWVhSdmNrNWhiV1UrQ2lBZ0lDQWdJRHhoWm1acGJHbGhkR2x2YmlCaFptWnBiR2xoZEdsdmJrbGtaVzUwYVdacFpYSTlJbWgwZEhCek9pOHZjbTl5TG05eVp5OHdNWGQ1Y1dJNU9UY2lJR0ZtWm1sc2FXRjBhVzl1U1dSbGJuUnBabWxsY2xOamFHVnRaVDBpVWs5U0lqNURaVzUwY21VZ1NXNTBaWEp1WVhScGIyNWhiQ0JrWlNCU1pXTm9aWEpqYUdWeklFM0RxV1JwWTJGc1pYTWdaR1VnUm5KaGJtTmxkbWxzYkdVOEwyRm1abWxzYVdGMGFXOXVQZ29nSUNBZ1BDOWpjbVZoZEc5eVBnb2dJQ0FnUEdOeVpXRjBiM0krQ2lBZ0lDQWdJRHhqY21WaGRHOXlUbUZ0WlQ1RWRYSmhibVFzSUZCaGRISnBZMnM4TDJOeVpXRjBiM0pPWVcxbFBnb2dJQ0FnSUNBOFlXWm1hV3hwWVhScGIyNGdZV1ptYVd4cFlYUnBiMjVKWkdWdWRHbG1hV1Z5UFNKb2RIUndjem92TDNKdmNpNXZjbWN2TURKbVpXRm9kemN6SWlCaFptWnBiR2xoZEdsdmJrbGtaVzUwYVdacFpYSlRZMmhsYldVOUlsSlBVaUkrUm5KbGJtTm9JRTVoZEdsdmJtRnNJRU5sYm5SeVpTQm1iM0lnVTJOcFpXNTBhV1pwWXlCU1pYTmxZWEpqYUR3dllXWm1hV3hwWVhScGIyNCtDaUFnSUNBOEwyTnlaV0YwYjNJK0NpQWdJQ0E4WTNKbFlYUnZjajRLSUNBZ0lDQWdQR055WldGMGIzSk9ZVzFsUGxCeWRXZHViMnhzWlN3Z1JuSmhibU5yUEM5amNtVmhkRzl5VG1GdFpUNEtJQ0FnSUNBZ1BHRm1abWxzYVdGMGFXOXVJR0ZtWm1sc2FXRjBhVzl1U1dSbGJuUnBabWxsY2owaWFIUjBjSE02THk5eWIzSXViM0puTHpBeVptVmhhSGMzTXlJZ1lXWm1hV3hwWVhScGIyNUpaR1Z1ZEdsbWFXVnlVMk5vWlcxbFBTSlNUMUlpUGtaeVpXNWphQ0JPWVhScGIyNWhiQ0JEWlc1MGNtVWdabTl5SUZOamFXVnVkR2xtYVdNZ1VtVnpaV0Z5WTJnOEwyRm1abWxzYVdGMGFXOXVQZ29nSUNBZ1BDOWpjbVZoZEc5eVBnb2dJQ0FnUEdOeVpXRjBiM0krQ2lBZ0lDQWdJRHhqY21WaGRHOXlUbUZ0WlQ1RWIzVjZaWEo1TENCRmJXMWhiblZsYkNCS0xpQlFMand2WTNKbFlYUnZjazVoYldVK0NpQWdJQ0E4TDJOeVpXRjBiM0krQ2lBZ0lDQThZM0psWVhSdmNqNEtJQ0FnSUNBZ1BHTnlaV0YwYjNKT1lXMWxQa0Z5Ym1GMGFHRjFMQ0JEdzZsc2FXNWxQQzlqY21WaGRHOXlUbUZ0WlQ0S0lDQWdJQ0FnUEdGbVptbHNhV0YwYVc5dUlHRm1abWxzYVdGMGFXOXVTV1JsYm5ScFptbGxjajBpYUhSMGNITTZMeTl5YjNJdWIzSm5MekF5Wm1WaGFIYzNNeUlnWVdabWFXeHBZWFJwYjI1SlpHVnVkR2xtYVdWeVUyTm9aVzFsUFNKU1QxSWlQa1p5Wlc1amFDQk9ZWFJwYjI1aGJDQkRaVzUwY21VZ1ptOXlJRk5qYVdWdWRHbG1hV01nVW1WelpXRnlZMmc4TDJGbVptbHNhV0YwYVc5dVBnb2dJQ0FnUEM5amNtVmhkRzl5UGdvZ0lDQWdQR055WldGMGIzSStDaUFnSUNBZ0lEeGpjbVZoZEc5eVRtRnRaVDVPYTI5bmFHVXNJRVJwWlhWa2IyNXV3Nms4TDJOeVpXRjBiM0pPWVcxbFBnb2dJQ0FnSUNBOFlXWm1hV3hwWVhScGIyNGdZV1ptYVd4cFlYUnBiMjVKWkdWdWRHbG1hV1Z5UFNKb2RIUndjem92TDNKdmNpNXZjbWN2TURGM2VYRmlPVGszSWlCaFptWnBiR2xoZEdsdmJrbGtaVzUwYVdacFpYSlRZMmhsYldVOUlsSlBVaUkrUTJWdWRISmxJRWx1ZEdWeWJtRjBhVzl1WVd3Z1pHVWdVbVZqYUdWeVkyaGxjeUJOdzZsa2FXTmhiR1Z6SUdSbElFWnlZVzVqWlhacGJHeGxQQzloWm1acGJHbGhkR2x2Ymo0S0lDQWdJRHd2WTNKbFlYUnZjajRLSUNBZ0lEeGpjbVZoZEc5eVBnb2dJQ0FnSUNBOFkzSmxZWFJ2Y2s1aGJXVStUR1Z5YjNrc0lFVnlhV004TDJOeVpXRjBiM0pPWVcxbFBnb2dJQ0FnSUNBOFlXWm1hV3hwWVhScGIyNGdZV1ptYVd4cFlYUnBiMjVKWkdWdWRHbG1hV1Z5UFNKb2RIUndjem92TDNKdmNpNXZjbWN2TURGM2VYRmlPVGszSWlCaFptWnBiR2xoZEdsdmJrbGtaVzUwYVdacFpYSlRZMmhsYldVOUlsSlBVaUkrUTJWdWRISmxJRWx1ZEdWeWJtRjBhVzl1WVd3Z1pHVWdVbVZqYUdWeVkyaGxjeUJOdzZsa2FXTmhiR1Z6SUdSbElFWnlZVzVqWlhacGJHeGxQQzloWm1acGJHbGhkR2x2Ymo0S0lDQWdJRHd2WTNKbFlYUnZjajRLSUNBZ0lEeGpjbVZoZEc5eVBnb2dJQ0FnSUNBOFkzSmxZWFJ2Y2s1aGJXVStVbVZ1WVhWa0xDQkdjbUZ1dzZkdmFYTThMMk55WldGMGIzSk9ZVzFsUGdvZ0lDQWdJQ0E4WVdabWFXeHBZWFJwYjI0Z1lXWm1hV3hwWVhScGIyNUpaR1Z1ZEdsbWFXVnlQU0pvZEhSd2N6b3ZMM0p2Y2k1dmNtY3ZNREptWldGb2R6Y3pJaUJoWm1acGJHbGhkR2x2Ymtsa1pXNTBhV1pwWlhKVFkyaGxiV1U5SWxKUFVpSStSbkpsYm1Ob0lFNWhkR2x2Ym1Gc0lFTmxiblJ5WlNCbWIzSWdVMk5wWlc1MGFXWnBZeUJTWlhObFlYSmphRHd2WVdabWFXeHBZWFJwYjI0K0NpQWdJQ0E4TDJOeVpXRjBiM0krQ2lBZ1BDOWpjbVZoZEc5eWN6NEtJQ0E4ZEdsMGJHVnpQZ29nSUNBZ1BIUnBkR3hsUGtSaGRHRWdabkp2YlRvZ1FTQnVaWGNnYldGc1lYSnBZU0JoWjJWdWRDQnBiaUJCWm5KcFkyRnVJR2h2YldsdWFXUnpMand2ZEdsMGJHVStDaUFnUEM5MGFYUnNaWE0rQ2lBZ1BIQjFZbXhwYzJobGNqNUVjbmxoWkR3dmNIVmliR2x6YUdWeVBnb2dJRHh5WlhOdmRYSmpaVlI1Y0dVZ2NtVnpiM1Z5WTJWVWVYQmxSMlZ1WlhKaGJEMGlSR0YwWVhObGRDSStaR0YwWVhObGREd3ZjbVZ6YjNWeVkyVlVlWEJsUGdvZ0lEeHdkV0pzYVdOaGRHbHZibGxsWVhJK01qQXhNVHd2Y0hWaWJHbGpZWFJwYjI1WlpXRnlQZ29nSUR4emRXSnFaV04wY3o0S0lDQWdJRHh6ZFdKcVpXTjBQbEJzWVhOdGIyUnBkVzA4TDNOMVltcGxZM1ErQ2lBZ0lDQThjM1ZpYW1WamRENXRZV3hoY21saFBDOXpkV0pxWldOMFBnb2dJQ0FnUEhOMVltcGxZM1ErZEdGNGIyNXZiWGs4TDNOMVltcGxZM1ErQ2lBZ0lDQThjM1ZpYW1WamRENXRhWFJ2WTJodmJtUnlhV0ZzSUdkbGJtOXRaVHd2YzNWaWFtVmpkRDRLSUNBZ0lEeHpkV0pxWldOMFBuQm9lV3h2WjJWdWVUd3ZjM1ZpYW1WamRENEtJQ0FnSUR4emRXSnFaV04wUGxCaGNtRnphWFJsY3p3dmMzVmlhbVZqZEQ0S0lDQThMM04xWW1wbFkzUnpQZ29nSUR4a1lYUmxjejRLSUNBZ0lEeGtZWFJsSUdSaGRHVlVlWEJsUFNKQmRtRnBiR0ZpYkdVaVBqSXdNVEV0TURJdE1ERlVNVGM2TWpJNk5ERmFQQzlrWVhSbFBnb2dJRHd2WkdGMFpYTStDaUFnUEd4aGJtZDFZV2RsUG1WdVBDOXNZVzVuZFdGblpUNEtJQ0E4Y21Wc1lYUmxaRWxrWlc1MGFXWnBaWEp6UGdvZ0lDQWdQSEpsYkdGMFpXUkpaR1Z1ZEdsbWFXVnlJSEpsYkdGMGFXOXVWSGx3WlQwaVNYTlRkWEJ3YkdWdFpXNTBWRzhpSUhKbGJHRjBaV1JKWkdWdWRHbG1hV1Z5Vkhsd1pUMGlSRTlKSWo1a2IyazZNVEF1TVRNM01TOXFiM1Z5Ym1Gc0xuQndZWFF1TVRBd01EUTBOand2Y21Wc1lYUmxaRWxrWlc1MGFXWnBaWEkrQ2lBZ1BDOXlaV3hoZEdWa1NXUmxiblJwWm1sbGNuTStDaUFnUEhOcGVtVnpQZ29nSUNBZ1BITnBlbVUrTVRBM016STRJR0o1ZEdWelBDOXphWHBsUGdvZ0lEd3ZjMmw2WlhNK0NpQWdQSFpsY25OcGIyNCtNVHd2ZG1WeWMybHZiajRLSUNBOGNtbG5hSFJ6VEdsemRENEtJQ0FnSUR4eWFXZG9kSE1nY21sbmFIUnpWVkpKUFNKb2RIUndjem92TDJOeVpXRjBhWFpsWTI5dGJXOXVjeTV2Y21jdmNIVmliR2xqWkc5dFlXbHVMM3BsY204dk1TNHdMeUkrUTBNd0lERXVNQ0JWYm1sMlpYSnpZV3dnS0VORE1DQXhMakFwSUZCMVlteHBZeUJFYjIxaGFXNGdSR1ZrYVdOaGRHbHZiand2Y21sbmFIUnpQZ29nSUR3dmNtbG5hSFJ6VEdsemRENEtJQ0E4WkdWelkzSnBjSFJwYjI1elBnb2dJQ0FnUEdSbGMyTnlhWEIwYVc5dUlHUmxjMk55YVhCMGFXOXVWSGx3WlQwaVFXSnpkSEpoWTNRaVBnb2dJQ0FnSUNCUWJHRnpiVzlrYVhWdElHWmhiR05wY0dGeWRXMGdhWE1nZEdobElHMWhhbTl5SUdoMWJXRnVJRzFoYkdGeWFXRWdZV2RsYm5RZ2NtVnpjRzl1YzJsaWJHVWdabTl5SURJd01Bb2dJQ0FnSUNCMGJ5QXpNREFnYldsc2JHbHZiaUJwYm1abFkzUnBiMjV6SUdGdVpDQnZibVVnZEc4Z2RHaHlaV1VnYldsc2JHbHZiaUJrWldGMGFITWdZVzV1ZFdGc2JIa3NJRzFoYVc1c2VRb2dJQ0FnSUNCaGJXOXVaeUJCWm5KcFkyRnVJR2x1Wm1GdWRITXVJRlJvWlNCdmNtbG5hVzRnWVc1a0lHVjJiMngxZEdsdmJpQnZaaUIwYUdseklIQmhkR2h2WjJWdUlIZHBkR2hwYmdvZ0lDQWdJQ0IwYUdVZ2FIVnRZVzRnYkdsdVpXRm5aU0JwY3lCemRHbHNiQ0IxYm5KbGMyOXNkbVZrTGlCQklITnBibWRzWlNCemNHVmphV1Z6TENCUUxpQnlaV2xqYUdWdWIzZHBMQW9nSUNBZ0lDQjNhR2xqYUNCcGJtWmxZM1J6SUdOb2FXMXdZVzU2WldWekxDQnBjeUJyYm05M2JpQjBieUJpWlNCaElHTnNiM05sSUhOcGMzUmxjaUJzYVc1bFlXZGxJRzltSUZBdUNpQWdJQ0FnSUdaaGJHTnBjR0Z5ZFcwdUlFaGxjbVVnZDJVZ2NtVndiM0owSUhSb1pTQmthWE5qYjNabGNua2diMllnWVNCdVpYY2dVR3hoYzIxdlpHbDFiU0J6Y0dWamFXVnpDaUFnSUNBZ0lHbHVabVZqZEdsdVp5QkliMjFwYm1sa2N5NGdWR2hwY3lCdVpYY2djM0JsWTJsbGN5Qm9ZWE1nWW1WbGJpQnBjMjlzWVhSbFpDQnBiaUIwZDI4Z1kyaHBiWEJoYm5wbFpYTUtJQ0FnSUNBZ0tGQmhiaUIwY205bmJHOWtlWFJsY3lrZ2EyVndkQ0JoY3lCd1pYUnpJR0o1SUhacGJHeGhaMlZ5Y3lCcGJpQkhZV0p2YmlBb1FXWnlhV05oS1M0Z1FXNWhiSGx6YVhNZ2IyWUtJQ0FnSUNBZ2FYUnpJR052YlhCc1pYUmxJRzFwZEc5amFHOXVaSEpwWVd3Z1oyVnViMjFsSUNnMU5USTVJRzUxWTJ4bGIzUnBaR1Z6SUdsdVkyeDFaR2x1WnlCRGVYUWdZaXdnUTI5NElFa0tJQ0FnSUNBZ1lXNWtJRU52ZUNCSlNVa2daMlZ1WlhNcElISmxkbVZoYkhNZ1lXNGdiMnhrWlhJZ1pHbDJaWEpuWlc1alpTQnZaaUIwYUdseklHeHBibVZoWjJVZ1puSnZiU0IwYUdVS0lDQWdJQ0FnWTJ4aFpHVWdkR2hoZENCcGJtTnNkV1JsY3lCUUxpQm1ZV3hqYVhCaGNuVnRJR0Z1WkNCUUxpQnlaV2xqYUdWdWIzZHBJQ2hoY0hCeWIzaHBiV0YwWld4NUlESXhLeTh0T1FvZ0lDQWdJQ0JOZVhKeklHRm5ieUIxYzJsdVp5QkNZWGxsYzJsaGJpQnRaWFJvYjJSeklHRnVaQ0JqYjI1emFXUmxjbWx1WnlCMGFHRjBJSFJvWlNCa2FYWmxjbWRsYm1ObENpQWdJQ0FnSUdKbGRIZGxaVzRnVUM0Z1ptRnNZMmx3WVhKMWJTQmhibVFnVUM0Z2NtVnBZMmhsYm05M2FTQnZZMk4xY25KbFpDQTBJSFJ2SURjZ2JXbHNiR2x2YmlCNVpXRnljeUJoWjI4S0lDQWdJQ0FnWVhNZ1oyVnVaWEpoYkd4NUlHTnZibk5wWkdWeVpXUWdhVzRnZEdobElHeHBkR1Z5WVhSMWNtVXBMaUJVYUdseklIUnBiV1VnWm5KaGJXVWdkMjkxYkdRZ1ltVUtJQ0FnSUNBZ1kyOXVaM0oxWlc1MElIZHBkR2dnZEdobElISmhaR2xoZEdsdmJpQnZaaUJvYjIxcGJtOXBaSE1zSUhOMVoyZGxjM1JwYm1jZ2RHaGhkQ0IwYUdseklGQnNZWE50YjJScGRXMEtJQ0FnSUNBZ2JHbHVaV0ZuWlNCdGFXZG9kQ0JvWVhabElHSmxaVzRnY0hKbGMyVnVkQ0JwYmlCbFlYSnNlU0JvYjIxcGJtOXBaSE1nWVc1a0lIUm9ZWFFnZEdobGVTQnRZWGtnWW05MGFBb2dJQ0FnSUNCb1lYWmxJR1Y0Y0dWeWFXVnVZMlZrSUdFZ2MybHRkV3gwWVc1bGIzVnpJR1JwZG1WeWMybG1hV05oZEdsdmJpNGdTVzUyWlhOMGFXZGhkR2x2YmlCdlppQjBhR1VLSUNBZ0lDQWdiblZqYkdWaGNpQm5aVzV2YldVZ2IyWWdkR2hwY3lCdVpYY2djM0JsWTJsbGN5QjNhV3hzSUdaMWNuUm9aWElnZEdobElIVnVaR1Z5YzNSaGJtUnBibWNnYjJZZ2RHaGxDaUFnSUNBZ0lHZGxibVYwYVdNZ1lXUmhjSFJoZEdsdmJuTWdiMllnVUM0Z1ptRnNZMmx3WVhKMWJTQjBieUJvZFcxaGJuTXVJRlJvWlNCeWFYTnJJRzltSUhSeVlXNXpabVZ5SUdGdVpBb2dJQ0FnSUNCbGJXVnlaMlZ1WTJVZ2IyWWdkR2hwY3lCdVpYY2djM0JsWTJsbGN5QnBiaUJvZFcxaGJuTWdiWFZ6ZENCaVpTQnViM2NnYzJWeWFXOTFjMng1SUdOdmJuTnBaR1Z5WldRS0lDQWdJQ0FnWjJsMlpXNGdkR2hoZENCcGRDQjNZWE1nWm05MWJtUWdhVzRnZEhkdklHTm9hVzF3WVc1NlpXVnpJR3hwZG1sdVp5QnBiaUJqYjI1MFlXTjBJSGRwZEdnZ2FIVnRZVzV6Q2lBZ0lDQWdJR0Z1WkNCcGRITWdZMnh2YzJVZ2NtVnNZWFJsWkc1bGMzTWdkRzhnZEdobElHMXZjM1FnZG1seWRXeGxiblFnWVdkbGJuUWdiMllnYldGc1lYSnBZUzRLSUNBZ0lEd3ZaR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lDQThaR1Z6WTNKcGNIUnBiMjRnWkdWelkzSnBjSFJwYjI1VWVYQmxQU0pQZEdobGNpSStDaUFnSUNBZ0lFOXNiRzl0YjE5UVRHOVRVR0YwYUc5blh6SXdNRGxPZFdOc1pXOTBhV1JsSUdGc2FXZHViV1Z1ZENCamIyNWpZWFJsYm1GMGFXOXVJRzltSURRS0lDQWdJQ0FnYldsMGIyTm9iMjVrY21saGJDQm5aVzVsY3lCbWIzSWdNVGNnVUd4aGMyMXZaR2wxYlNCemNHVmphV1Z6SUdGdVpDQnZibVVLSUNBZ0lDQWdiM1YwWjNKdmRYQXVUMnhzYjIxdlgxQk1iMU5RWVhSb2IyZGZNakF3T1Y5UVNGbE5URTFoZUdsdGRXMGdiR2xyWld4cGFHOXZaQ0IwY21WbElHbHVabVZ5Y21Wa0lHWnliMjBLSUNBZ0lDQWdkR2hsSURRdFoyVnVaU0JqYjI1allYUmxibUYwYVc5dUlIVnphVzVuSUZCSVdVMU1MZ29nSUNBZ1BDOWtaWE5qY21sd2RHbHZiajRLSUNBOEwyUmxjMk55YVhCMGFXOXVjejRLSUNBOFoyVnZURzlqWVhScGIyNXpQZ29nSUNBZ1BHZGxiMHh2WTJGMGFXOXVQZ29nSUNBZ0lDQThaMlZ2VEc5allYUnBiMjVRYkdGalpUNUJabkpwWTJFOEwyZGxiMHh2WTJGMGFXOXVVR3hoWTJVK0NpQWdJQ0E4TDJkbGIweHZZMkYwYVc5dVBnb2dJRHd2WjJWdlRHOWpZWFJwYjI1elBnbzhMM0psYzI5MWNtTmxQZz09IiwidXJsIjoiaHR0cDovL2RhdGFkcnlhZC5vcmcvc3Rhc2gvZGF0YXNldC9kb2k6MTAuNTA2MS9kcnlhZC44NTE1IiwiY29udGVudFVybCI6bnVsbCwibWV0YWRhdGFWZXJzaW9uIjoxNSwic2NoZW1hVmVyc2lvbiI6bnVsbCwic291cmNlIjoibWRzIiwiaXNBY3RpdmUiOnRydWUsInN0YXRlIjoiZmluZGFibGUiLCJyZWFzb24iOm51bGwsInZpZXdDb3VudCI6NSwidmlld3NPdmVyVGltZSI6W3sieWVhck1vbnRoIjoiMjAxNy0wOSIsInRvdGFsIjo1fV0sImRvd25sb2FkQ291bnQiOjAsImRvd25sb2Fkc092ZXJUaW1lIjpbXSwicmVmZXJlbmNlQ291bnQiOjAsImNpdGF0aW9uQ291bnQiOjAsImNpdGF0aW9uc092ZXJUaW1lIjpbXSwiY3JlYXRlZCI6IjIwMTEtMTEtMjJUMTg6MzQ6NTEuMDAwWiIsInJlZ2lzdGVyZWQiOiIyMDExLTAyLTAxVDE3OjMyOjAyLjAwMFoiLCJwdWJsaXNoZWQiOiIyMDExIiwidXBkYXRlZCI6IjIwMTktMTItMTdUMDU6NDc6NDMuMDAwWiJ9LCJyZWxhdGlvbnNoaXBzIjp7ImNsaWVudCI6eyJkYXRhIjp7ImlkIjoiZHJ5YWQuZHJ5YWQiLCJ0eXBlIjoiY2xpZW50cyJ9fSwibWVkaWEiOnsiZGF0YSI6eyJpZCI6IjEwLjUwNjEvZHJ5YWQuODUxNSIsInR5cGUiOiJtZWRpYSJ9fSwicmVmZXJlbmNlRXZlbnRzIjp7ImRhdGEiOltdfSwiY2l0YXRpb25FdmVudHMiOnsiZGF0YSI6W119fX0sImluY2x1ZGVkIjpbeyJpZCI6ImRyeWFkLmRyeWFkIiwidHlwZSI6ImNsaWVudHMiLCJhdHRyaWJ1dGVzIjp7Im5hbWUiOiJEUllBRCIsInN5bWJvbCI6IkRSWUFELkRSWUFEIiwieWVhciI6MjAxOCwiY29udGFjdEVtYWlsIjoiYWRtaW5AZGF0YWRyeWFkLm9yZyIsImFsdGVybmF0ZU5hbWUiOm51bGwsImRlc2NyaXB0aW9uIjoiRGF0YURyeWFkLm9yZyBpcyBhIGN1cmF0ZWQgZ2VuZXJhbC1wdXJwb3NlIHJlcG9zaXRvcnkgdGhhdCBtYWtlcyB0aGUgZGF0YSB1bmRlcmx5aW5nIHNjaWVudGlmaWMgcHVibGljYXRpb25zIGRpc2NvdmVyYWJsZSwgZnJlZWx5IHJldXNhYmxlLCBhbmQgY2l0YWJsZS5cclxuRHJ5YWQgaXMgYW4gaW50ZXJuYXRpb25hbCByZXBvc2l0b3J5IG9mIGRhdGEgdW5kZXJseWluZyBwZWVyLXJldmlld2VkIHNjaWVudGlmaWMgYW5kIG1lZGljYWwgbGl0ZXJhdHVyZSwgcGFydGljdWxhcmx5IGRhdGEgZm9yIHdoaWNoIG5vIHNwZWNpYWxpemVkIHJlcG9zaXRvcnkgZXhpc3RzLiBUaGUgY29udGVudCBpcyBjb25zaWRlcmVkIHRvIGJlIGludGVncmFsIHRvIHRoZSBwdWJsaXNoZWQgcmVzZWFyY2guIEFsbCBtYXRlcmlhbCBpbiBEcnlhZCBpcyBhc3NvY2lhdGVkIHdpdGggYSBzY2hvbGFybHkgcHVibGljYXRpb24iLCJsYW5ndWFnZSI6bnVsbCwiY2xpZW50VHlwZSI6InJlcG9zaXRvcnkiLCJkb21haW5zIjoiKiIsInJlM2RhdGEiOiJodHRwczovL2RvaS5vcmcvMTAuMTc2MTYvUjM0UzMzIiwib3BlbmRvYXIiOm51bGwsImlzc24iOm51bGwsInVybCI6Imh0dHBzOi8vZGF0YWRyeWFkLm9yZyIsImNyZWF0ZWQiOiIyMDE4LTA0LTI0VDIwOjU5OjE1LjAwMFoiLCJ1cGRhdGVkIjoiMjAxOS0wNi0wMlQyMjo0NzoxOS4wMDBaIiwiaXNBY3RpdmUiOnRydWUsImhhc1Bhc3N3b3JkIjp0cnVlfSwicmVsYXRpb25zaGlwcyI6eyJwcm92aWRlciI6eyJkYXRhIjp7ImlkIjoiZHJ5YWQiLCJ0eXBlIjoicHJvdmlkZXJzIn19LCJwcmVmaXhlcyI6eyJkYXRhIjpbeyJpZCI6IjEwLjUwNjEiLCJ0eXBlIjoicHJlZml4ZXMifSx7ImlkIjoiMTAuMTUxNDYiLCJ0eXBlIjoicHJlZml4ZXMifV19fX1dfQ==
47
- http_version:
48
- recorded_at: Tue, 25 Feb 2020 14:40:14 GMT
46
+ eyJkYXRhIjp7ImlkIjoiMTAuNTA2MS9kcnlhZC44NTE1IiwidHlwZSI6ImRvaXMiLCJhdHRyaWJ1dGVzIjp7ImRvaSI6IjEwLjUwNjEvZHJ5YWQuODUxNSIsInByZWZpeCI6IjEwLjUwNjEiLCJzdWZmaXgiOiJkcnlhZC44NTE1IiwiaWRlbnRpZmllcnMiOltdLCJhbHRlcm5hdGVJZGVudGlmaWVycyI6W10sImNyZWF0b3JzIjpbeyJuYW1lIjoiT2xsb21vLCBCZW5qYW1pbiIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJCZW5qYW1pbiIsImZhbWlseU5hbWUiOiJPbGxvbW8iLCJhZmZpbGlhdGlvbiI6WyJDZW50cmUgSW50ZXJuYXRpb25hbCBkZSBSZWNoZXJjaGVzIE3DqWRpY2FsZXMgZGUgRnJhbmNldmlsbGUiXSwibmFtZUlkZW50aWZpZXJzIjpbXX0seyJuYW1lIjoiRHVyYW5kLCBQYXRyaWNrIiwibmFtZVR5cGUiOiJQZXJzb25hbCIsImdpdmVuTmFtZSI6IlBhdHJpY2siLCJmYW1pbHlOYW1lIjoiRHVyYW5kIiwiYWZmaWxpYXRpb24iOlsiRnJlbmNoIE5hdGlvbmFsIENlbnRyZSBmb3IgU2NpZW50aWZpYyBSZXNlYXJjaCJdLCJuYW1lSWRlbnRpZmllcnMiOltdfSx7Im5hbWUiOiJQcnVnbm9sbGUsIEZyYW5jayIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJGcmFuY2siLCJmYW1pbHlOYW1lIjoiUHJ1Z25vbGxlIiwiYWZmaWxpYXRpb24iOlsiRnJlbmNoIE5hdGlvbmFsIENlbnRyZSBmb3IgU2NpZW50aWZpYyBSZXNlYXJjaCJdLCJuYW1lSWRlbnRpZmllcnMiOltdfSx7Im5hbWUiOiJEb3V6ZXJ5LCBFbW1hbnVlbCBKLiBQLiIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJFbW1hbnVlbCBKLiBQLiIsImZhbWlseU5hbWUiOiJEb3V6ZXJ5IiwiYWZmaWxpYXRpb24iOltdLCJuYW1lSWRlbnRpZmllcnMiOltdfSx7Im5hbWUiOiJBcm5hdGhhdSwgQ8OpbGluZSIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJDw6lsaW5lIiwiZmFtaWx5TmFtZSI6IkFybmF0aGF1IiwiYWZmaWxpYXRpb24iOlsiRnJlbmNoIE5hdGlvbmFsIENlbnRyZSBmb3IgU2NpZW50aWZpYyBSZXNlYXJjaCJdLCJuYW1lSWRlbnRpZmllcnMiOltdfSx7Im5hbWUiOiJOa29naGUsIERpZXVkb25uw6kiLCJuYW1lVHlwZSI6IlBlcnNvbmFsIiwiZ2l2ZW5OYW1lIjoiRGlldWRvbm7DqSIsImZhbWlseU5hbWUiOiJOa29naGUiLCJhZmZpbGlhdGlvbiI6WyJDZW50cmUgSW50ZXJuYXRpb25hbCBkZSBSZWNoZXJjaGVzIE3DqWRpY2FsZXMgZGUgRnJhbmNldmlsbGUiXSwibmFtZUlkZW50aWZpZXJzIjpbXX0seyJuYW1lIjoiTGVyb3ksIEVyaWMiLCJuYW1lVHlwZSI6IlBlcnNvbmFsIiwiZ2l2ZW5OYW1lIjoiRXJpYyIsImZhbWlseU5hbWUiOiJMZXJveSIsImFmZmlsaWF0aW9uIjpbIkNlbnRyZSBJbnRlcm5hdGlvbmFsIGRlIFJlY2hlcmNoZXMgTcOpZGljYWxlcyBkZSBGcmFuY2V2aWxsZSJdLCJuYW1lSWRlbnRpZmllcnMiOltdfSx7Im5hbWUiOiJSZW5hdWQsIEZyYW7Dp29pcyIsIm5hbWVUeXBlIjoiUGVyc29uYWwiLCJnaXZlbk5hbWUiOiJGcmFuw6dvaXMiLCJmYW1pbHlOYW1lIjoiUmVuYXVkIiwiYWZmaWxpYXRpb24iOlsiRnJlbmNoIE5hdGlvbmFsIENlbnRyZSBmb3IgU2NpZW50aWZpYyBSZXNlYXJjaCJdLCJuYW1lSWRlbnRpZmllcnMiOltdfV0sInRpdGxlcyI6W3sidGl0bGUiOiJEYXRhIGZyb206IEEgbmV3IG1hbGFyaWEgYWdlbnQgaW4gQWZyaWNhbiBob21pbmlkcy4ifV0sInB1Ymxpc2hlciI6IkRyeWFkIiwiY29udGFpbmVyIjp7fSwicHVibGljYXRpb25ZZWFyIjoyMDExLCJzdWJqZWN0cyI6W3sic3ViamVjdCI6IlBsYXNtb2RpdW0ifSx7InN1YmplY3QiOiJtYWxhcmlhIn0seyJzdWJqZWN0IjoidGF4b25vbXkifSx7InN1YmplY3QiOiJtaXRvY2hvbmRyaWFsIGdlbm9tZSJ9LHsic3ViamVjdCI6InBoeWxvZ2VueSJ9LHsic3ViamVjdCI6IlBhcmFzaXRlcyJ9XSwiY29udHJpYnV0b3JzIjpbXSwiZGF0ZXMiOlt7ImRhdGUiOiIyMDExLTAyLTAxVDE3OjIyOjQxWiIsImRhdGVUeXBlIjoiQXZhaWxhYmxlIn0seyJkYXRlIjoiMjAxMSIsImRhdGVUeXBlIjoiSXNzdWVkIn1dLCJsYW5ndWFnZSI6ImVuIiwidHlwZXMiOnsicmlzIjoiREFUQSIsImJpYnRleCI6Im1pc2MiLCJjaXRlcHJvYyI6ImRhdGFzZXQiLCJzY2hlbWFPcmciOiJEYXRhc2V0IiwicmVzb3VyY2VUeXBlIjoiZGF0YXNldCIsInJlc291cmNlVHlwZUdlbmVyYWwiOiJEYXRhc2V0In0sInJlbGF0ZWRJZGVudGlmaWVycyI6W3sicmVsYXRpb25UeXBlIjoiSXNTdXBwbGVtZW50VG8iLCJyZWxhdGVkSWRlbnRpZmllciI6IjEwLjEzNzEvam91cm5hbC5wcGF0LjEwMDA0NDYiLCJyZWxhdGVkSWRlbnRpZmllclR5cGUiOiJET0kifV0sInNpemVzIjpbIjEwNzMyOCBieXRlcyJdLCJmb3JtYXRzIjpbXSwidmVyc2lvbiI6IjEiLCJyaWdodHNMaXN0IjpbeyJyaWdodHMiOiJDcmVhdGl2ZSBDb21tb25zIFplcm8gdjEuMCBVbml2ZXJzYWwiLCJyaWdodHNVcmkiOiJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wL2xlZ2FsY29kZSIsInNjaGVtZVVyaSI6Imh0dHBzOi8vc3BkeC5vcmcvbGljZW5zZXMvIiwicmlnaHRzSWRlbnRpZmllciI6IkNDMC0xLjAiLCJyaWdodHNJZGVudGlmaWVyU2NoZW1lIjoiU1BEWCJ9XSwiZGVzY3JpcHRpb25zIjpbeyJkZXNjcmlwdGlvbiI6IlBsYXNtb2RpdW0gZmFsY2lwYXJ1bSBpcyB0aGUgbWFqb3IgaHVtYW4gbWFsYXJpYSBhZ2VudCByZXNwb25zaWJsZSBmb3IgMjAwIHRvIDMwMCBtaWxsaW9uIGluZmVjdGlvbnMgYW5kIG9uZSB0byB0aHJlZSBtaWxsaW9uIGRlYXRocyBhbm51YWxseSwgbWFpbmx5IGFtb25nIEFmcmljYW4gaW5mYW50cy4gVGhlIG9yaWdpbiBhbmQgZXZvbHV0aW9uIG9mIHRoaXMgcGF0aG9nZW4gd2l0aGluIHRoZSBodW1hbiBsaW5lYWdlIGlzIHN0aWxsIHVucmVzb2x2ZWQuIEEgc2luZ2xlIHNwZWNpZXMsIFAuIHJlaWNoZW5vd2ksIHdoaWNoIGluZmVjdHMgY2hpbXBhbnplZXMsIGlzIGtub3duIHRvIGJlIGEgY2xvc2Ugc2lzdGVyIGxpbmVhZ2Ugb2YgUC4gZmFsY2lwYXJ1bS4gSGVyZSB3ZSByZXBvcnQgdGhlIGRpc2NvdmVyeSBvZiBhIG5ldyBQbGFzbW9kaXVtIHNwZWNpZXMgaW5mZWN0aW5nIEhvbWluaWRzLiBUaGlzIG5ldyBzcGVjaWVzIGhhcyBiZWVuIGlzb2xhdGVkIGluIHR3byBjaGltcGFuemVlcyAoUGFuIHRyb2dsb2R5dGVzKSBrZXB0IGFzIHBldHMgYnkgdmlsbGFnZXJzIGluIEdhYm9uIChBZnJpY2EpLiBBbmFseXNpcyBvZiBpdHMgY29tcGxldGUgbWl0b2Nob25kcmlhbCBnZW5vbWUgKDU1MjkgbnVjbGVvdGlkZXMgaW5jbHVkaW5nIEN5dCBiLCBDb3ggSSBhbmQgQ294IElJSSBnZW5lcykgcmV2ZWFscyBhbiBvbGRlciBkaXZlcmdlbmNlIG9mIHRoaXMgbGluZWFnZSBmcm9tIHRoZSBjbGFkZSB0aGF0IGluY2x1ZGVzIFAuIGZhbGNpcGFydW0gYW5kIFAuIHJlaWNoZW5vd2kgKGFwcHJveGltYXRlbHkgMjErLy05IE15cnMgYWdvIHVzaW5nIEJheWVzaWFuIG1ldGhvZHMgYW5kIGNvbnNpZGVyaW5nIHRoYXQgdGhlIGRpdmVyZ2VuY2UgYmV0d2VlbiBQLiBmYWxjaXBhcnVtIGFuZCBQLiByZWljaGVub3dpIG9jY3VycmVkIDQgdG8gNyBtaWxsaW9uIHllYXJzIGFnbyBhcyBnZW5lcmFsbHkgY29uc2lkZXJlZCBpbiB0aGUgbGl0ZXJhdHVyZSkuIFRoaXMgdGltZSBmcmFtZSB3b3VsZCBiZSBjb25ncnVlbnQgd2l0aCB0aGUgcmFkaWF0aW9uIG9mIGhvbWlub2lkcywgc3VnZ2VzdGluZyB0aGF0IHRoaXMgUGxhc21vZGl1bSBsaW5lYWdlIG1pZ2h0IGhhdmUgYmVlbiBwcmVzZW50IGluIGVhcmx5IGhvbWlub2lkcyBhbmQgdGhhdCB0aGV5IG1heSBib3RoIGhhdmUgZXhwZXJpZW5jZWQgYSBzaW11bHRhbmVvdXMgZGl2ZXJzaWZpY2F0aW9uLiBJbnZlc3RpZ2F0aW9uIG9mIHRoZSBudWNsZWFyIGdlbm9tZSBvZiB0aGlzIG5ldyBzcGVjaWVzIHdpbGwgZnVydGhlciB0aGUgdW5kZXJzdGFuZGluZyBvZiB0aGUgZ2VuZXRpYyBhZGFwdGF0aW9ucyBvZiBQLiBmYWxjaXBhcnVtIHRvIGh1bWFucy4gVGhlIHJpc2sgb2YgdHJhbnNmZXIgYW5kIGVtZXJnZW5jZSBvZiB0aGlzIG5ldyBzcGVjaWVzIGluIGh1bWFucyBtdXN0IGJlIG5vdyBzZXJpb3VzbHkgY29uc2lkZXJlZCBnaXZlbiB0aGF0IGl0IHdhcyBmb3VuZCBpbiB0d28gY2hpbXBhbnplZXMgbGl2aW5nIGluIGNvbnRhY3Qgd2l0aCBodW1hbnMgYW5kIGl0cyBjbG9zZSByZWxhdGVkbmVzcyB0byB0aGUgbW9zdCB2aXJ1bGVudCBhZ2VudCBvZiBtYWxhcmlhLiIsImRlc2NyaXB0aW9uVHlwZSI6IkFic3RyYWN0In0seyJkZXNjcmlwdGlvbiI6Ik9sbG9tb19QTG9TUGF0aG9nXzIwMDlOdWNsZW90aWRlIGFsaWdubWVudCBjb25jYXRlbmF0aW9uIG9mIDQgbWl0b2Nob25kcmlhbCBnZW5lcyBmb3IgMTcgUGxhc21vZGl1bSBzcGVjaWVzIGFuZCBvbmUgb3V0Z3JvdXAuT2xsb21vX1BMb1NQYXRob2dfMjAwOV9QSFlNTE1heGltdW0gbGlrZWxpaG9vZCB0cmVlIGluZmVycmVkIGZyb20gdGhlIDQtZ2VuZSBjb25jYXRlbmF0aW9uIHVzaW5nIFBIWU1MLiIsImRlc2NyaXB0aW9uVHlwZSI6Ik90aGVyIn1dLCJnZW9Mb2NhdGlvbnMiOlt7Imdlb0xvY2F0aW9uUGxhY2UiOiJBZnJpY2EifV0sImZ1bmRpbmdSZWZlcmVuY2VzIjpbXSwieG1sIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0S1BISmxjMjkxY21ObElIaHRiRzV6T25oemFUMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TVM5WVRVeFRZMmhsYldFdGFXNXpkR0Z1WTJVaUlIaHRiRzV6UFNKb2RIUndPaTh2WkdGMFlXTnBkR1V1YjNKbkwzTmphR1Z0WVM5clpYSnVaV3d0TkNJZ2VITnBPbk5qYUdWdFlVeHZZMkYwYVc5dVBTSm9kSFJ3T2k4dlpHRjBZV05wZEdVdWIzSm5MM05qYUdWdFlTOXJaWEp1Wld3dE5DQm9kSFJ3T2k4dmMyTm9aVzFoTG1SaGRHRmphWFJsTG05eVp5OXRaWFJoTDJ0bGNtNWxiQzAwTDIxbGRHRmtZWFJoTG5oelpDSStDaUFnUEdsa1pXNTBhV1pwWlhJZ2FXUmxiblJwWm1sbGNsUjVjR1U5SWtSUFNTSStNVEF1TlRBMk1TOUVVbGxCUkM0NE5URTFQQzlwWkdWdWRHbG1hV1Z5UGdvZ0lEeGpjbVZoZEc5eWN6NEtJQ0FnSUR4amNtVmhkRzl5UGdvZ0lDQWdJQ0E4WTNKbFlYUnZjazVoYldVK1QyeHNiMjF2TENCQ1pXNXFZVzFwYmp3dlkzSmxZWFJ2Y2s1aGJXVStDaUFnSUNBZ0lEeGhabVpwYkdsaGRHbHZiaUJoWm1acGJHbGhkR2x2Ymtsa1pXNTBhV1pwWlhJOUltaDBkSEJ6T2k4dmNtOXlMbTl5Wnk4d01YZDVjV0k1T1RjaUlHRm1abWxzYVdGMGFXOXVTV1JsYm5ScFptbGxjbE5qYUdWdFpUMGlVazlTSWo1RFpXNTBjbVVnU1c1MFpYSnVZWFJwYjI1aGJDQmtaU0JTWldOb1pYSmphR1Z6SUUzRHFXUnBZMkZzWlhNZ1pHVWdSbkpoYm1ObGRtbHNiR1U4TDJGbVptbHNhV0YwYVc5dVBnb2dJQ0FnUEM5amNtVmhkRzl5UGdvZ0lDQWdQR055WldGMGIzSStDaUFnSUNBZ0lEeGpjbVZoZEc5eVRtRnRaVDVFZFhKaGJtUXNJRkJoZEhKcFkyczhMMk55WldGMGIzSk9ZVzFsUGdvZ0lDQWdJQ0E4WVdabWFXeHBZWFJwYjI0Z1lXWm1hV3hwWVhScGIyNUpaR1Z1ZEdsbWFXVnlQU0pvZEhSd2N6b3ZMM0p2Y2k1dmNtY3ZNREptWldGb2R6Y3pJaUJoWm1acGJHbGhkR2x2Ymtsa1pXNTBhV1pwWlhKVFkyaGxiV1U5SWxKUFVpSStSbkpsYm1Ob0lFNWhkR2x2Ym1Gc0lFTmxiblJ5WlNCbWIzSWdVMk5wWlc1MGFXWnBZeUJTWlhObFlYSmphRHd2WVdabWFXeHBZWFJwYjI0K0NpQWdJQ0E4TDJOeVpXRjBiM0krQ2lBZ0lDQThZM0psWVhSdmNqNEtJQ0FnSUNBZ1BHTnlaV0YwYjNKT1lXMWxQbEJ5ZFdkdWIyeHNaU3dnUm5KaGJtTnJQQzlqY21WaGRHOXlUbUZ0WlQ0S0lDQWdJQ0FnUEdGbVptbHNhV0YwYVc5dUlHRm1abWxzYVdGMGFXOXVTV1JsYm5ScFptbGxjajBpYUhSMGNITTZMeTl5YjNJdWIzSm5MekF5Wm1WaGFIYzNNeUlnWVdabWFXeHBZWFJwYjI1SlpHVnVkR2xtYVdWeVUyTm9aVzFsUFNKU1QxSWlQa1p5Wlc1amFDQk9ZWFJwYjI1aGJDQkRaVzUwY21VZ1ptOXlJRk5qYVdWdWRHbG1hV01nVW1WelpXRnlZMmc4TDJGbVptbHNhV0YwYVc5dVBnb2dJQ0FnUEM5amNtVmhkRzl5UGdvZ0lDQWdQR055WldGMGIzSStDaUFnSUNBZ0lEeGpjbVZoZEc5eVRtRnRaVDVFYjNWNlpYSjVMQ0JGYlcxaGJuVmxiQ0JLTGlCUUxqd3ZZM0psWVhSdmNrNWhiV1UrQ2lBZ0lDQThMMk55WldGMGIzSStDaUFnSUNBOFkzSmxZWFJ2Y2o0S0lDQWdJQ0FnUEdOeVpXRjBiM0pPWVcxbFBrRnlibUYwYUdGMUxDQkR3NmxzYVc1bFBDOWpjbVZoZEc5eVRtRnRaVDRLSUNBZ0lDQWdQR0ZtWm1sc2FXRjBhVzl1SUdGbVptbHNhV0YwYVc5dVNXUmxiblJwWm1sbGNqMGlhSFIwY0hNNkx5OXliM0l1YjNKbkx6QXlabVZoYUhjM015SWdZV1ptYVd4cFlYUnBiMjVKWkdWdWRHbG1hV1Z5VTJOb1pXMWxQU0pTVDFJaVBrWnlaVzVqYUNCT1lYUnBiMjVoYkNCRFpXNTBjbVVnWm05eUlGTmphV1Z1ZEdsbWFXTWdVbVZ6WldGeVkyZzhMMkZtWm1sc2FXRjBhVzl1UGdvZ0lDQWdQQzlqY21WaGRHOXlQZ29nSUNBZ1BHTnlaV0YwYjNJK0NpQWdJQ0FnSUR4amNtVmhkRzl5VG1GdFpUNU9hMjluYUdVc0lFUnBaWFZrYjI1dXc2azhMMk55WldGMGIzSk9ZVzFsUGdvZ0lDQWdJQ0E4WVdabWFXeHBZWFJwYjI0Z1lXWm1hV3hwWVhScGIyNUpaR1Z1ZEdsbWFXVnlQU0pvZEhSd2N6b3ZMM0p2Y2k1dmNtY3ZNREYzZVhGaU9UazNJaUJoWm1acGJHbGhkR2x2Ymtsa1pXNTBhV1pwWlhKVFkyaGxiV1U5SWxKUFVpSStRMlZ1ZEhKbElFbHVkR1Z5Ym1GMGFXOXVZV3dnWkdVZ1VtVmphR1Z5WTJobGN5Qk53NmxrYVdOaGJHVnpJR1JsSUVaeVlXNWpaWFpwYkd4bFBDOWhabVpwYkdsaGRHbHZiajRLSUNBZ0lEd3ZZM0psWVhSdmNqNEtJQ0FnSUR4amNtVmhkRzl5UGdvZ0lDQWdJQ0E4WTNKbFlYUnZjazVoYldVK1RHVnliM2tzSUVWeWFXTThMMk55WldGMGIzSk9ZVzFsUGdvZ0lDQWdJQ0E4WVdabWFXeHBZWFJwYjI0Z1lXWm1hV3hwWVhScGIyNUpaR1Z1ZEdsbWFXVnlQU0pvZEhSd2N6b3ZMM0p2Y2k1dmNtY3ZNREYzZVhGaU9UazNJaUJoWm1acGJHbGhkR2x2Ymtsa1pXNTBhV1pwWlhKVFkyaGxiV1U5SWxKUFVpSStRMlZ1ZEhKbElFbHVkR1Z5Ym1GMGFXOXVZV3dnWkdVZ1VtVmphR1Z5WTJobGN5Qk53NmxrYVdOaGJHVnpJR1JsSUVaeVlXNWpaWFpwYkd4bFBDOWhabVpwYkdsaGRHbHZiajRLSUNBZ0lEd3ZZM0psWVhSdmNqNEtJQ0FnSUR4amNtVmhkRzl5UGdvZ0lDQWdJQ0E4WTNKbFlYUnZjazVoYldVK1VtVnVZWFZrTENCR2NtRnV3NmR2YVhNOEwyTnlaV0YwYjNKT1lXMWxQZ29nSUNBZ0lDQThZV1ptYVd4cFlYUnBiMjRnWVdabWFXeHBZWFJwYjI1SlpHVnVkR2xtYVdWeVBTSm9kSFJ3Y3pvdkwzSnZjaTV2Y21jdk1ESm1aV0ZvZHpjeklpQmhabVpwYkdsaGRHbHZia2xrWlc1MGFXWnBaWEpUWTJobGJXVTlJbEpQVWlJK1JuSmxibU5vSUU1aGRHbHZibUZzSUVObGJuUnlaU0JtYjNJZ1UyTnBaVzUwYVdacFl5QlNaWE5sWVhKamFEd3ZZV1ptYVd4cFlYUnBiMjQrQ2lBZ0lDQThMMk55WldGMGIzSStDaUFnUEM5amNtVmhkRzl5Y3o0S0lDQThkR2wwYkdWelBnb2dJQ0FnUEhScGRHeGxQa1JoZEdFZ1puSnZiVG9nUVNCdVpYY2diV0ZzWVhKcFlTQmhaMlZ1ZENCcGJpQkJabkpwWTJGdUlHaHZiV2x1YVdSekxqd3ZkR2wwYkdVK0NpQWdQQzkwYVhSc1pYTStDaUFnUEhCMVlteHBjMmhsY2o1RWNubGhaRHd2Y0hWaWJHbHphR1Z5UGdvZ0lEeHlaWE52ZFhKalpWUjVjR1VnY21WemIzVnlZMlZVZVhCbFIyVnVaWEpoYkQwaVJHRjBZWE5sZENJK1pHRjBZWE5sZER3dmNtVnpiM1Z5WTJWVWVYQmxQZ29nSUR4d2RXSnNhV05oZEdsdmJsbGxZWEkrTWpBeE1Ud3ZjSFZpYkdsallYUnBiMjVaWldGeVBnb2dJRHh6ZFdKcVpXTjBjejRLSUNBZ0lEeHpkV0pxWldOMFBsQnNZWE50YjJScGRXMDhMM04xWW1wbFkzUStDaUFnSUNBOGMzVmlhbVZqZEQ1dFlXeGhjbWxoUEM5emRXSnFaV04wUGdvZ0lDQWdQSE4xWW1wbFkzUStkR0Y0YjI1dmJYazhMM04xWW1wbFkzUStDaUFnSUNBOGMzVmlhbVZqZEQ1dGFYUnZZMmh2Ym1SeWFXRnNJR2RsYm05dFpUd3ZjM1ZpYW1WamRENEtJQ0FnSUR4emRXSnFaV04wUG5Cb2VXeHZaMlZ1ZVR3dmMzVmlhbVZqZEQ0S0lDQWdJRHh6ZFdKcVpXTjBQbEJoY21GemFYUmxjend2YzNWaWFtVmpkRDRLSUNBOEwzTjFZbXBsWTNSelBnb2dJRHhrWVhSbGN6NEtJQ0FnSUR4a1lYUmxJR1JoZEdWVWVYQmxQU0pCZG1GcGJHRmliR1VpUGpJd01URXRNREl0TURGVU1UYzZNakk2TkRGYVBDOWtZWFJsUGdvZ0lEd3ZaR0YwWlhNK0NpQWdQR3hoYm1kMVlXZGxQbVZ1UEM5c1lXNW5kV0ZuWlQ0S0lDQThjbVZzWVhSbFpFbGtaVzUwYVdacFpYSnpQZ29nSUNBZ1BISmxiR0YwWldSSlpHVnVkR2xtYVdWeUlISmxiR0YwYVc5dVZIbHdaVDBpU1hOVGRYQndiR1Z0Wlc1MFZHOGlJSEpsYkdGMFpXUkpaR1Z1ZEdsbWFXVnlWSGx3WlQwaVJFOUpJajVrYjJrNk1UQXVNVE0zTVM5cWIzVnlibUZzTG5Cd1lYUXVNVEF3TURRME5qd3ZjbVZzWVhSbFpFbGtaVzUwYVdacFpYSStDaUFnUEM5eVpXeGhkR1ZrU1dSbGJuUnBabWxsY25NK0NpQWdQSE5wZW1WelBnb2dJQ0FnUEhOcGVtVStNVEEzTXpJNElHSjVkR1Z6UEM5emFYcGxQZ29nSUR3dmMybDZaWE0rQ2lBZ1BIWmxjbk5wYjI0K01Ud3ZkbVZ5YzJsdmJqNEtJQ0E4Y21sbmFIUnpUR2x6ZEQ0S0lDQWdJRHh5YVdkb2RITWdjbWxuYUhSelZWSkpQU0pvZEhSd2N6b3ZMMk55WldGMGFYWmxZMjl0Ylc5dWN5NXZjbWN2Y0hWaWJHbGpaRzl0WVdsdUwzcGxjbTh2TVM0d0x5SStRME13SURFdU1DQlZibWwyWlhKellXd2dLRU5ETUNBeExqQXBJRkIxWW14cFl5QkViMjFoYVc0Z1JHVmthV05oZEdsdmJqd3ZjbWxuYUhSelBnb2dJRHd2Y21sbmFIUnpUR2x6ZEQ0S0lDQThaR1Z6WTNKcGNIUnBiMjV6UGdvZ0lDQWdQR1JsYzJOeWFYQjBhVzl1SUdSbGMyTnlhWEIwYVc5dVZIbHdaVDBpUVdKemRISmhZM1FpUGdvZ0lDQWdJQ0JRYkdGemJXOWthWFZ0SUdaaGJHTnBjR0Z5ZFcwZ2FYTWdkR2hsSUcxaGFtOXlJR2gxYldGdUlHMWhiR0Z5YVdFZ1lXZGxiblFnY21WemNHOXVjMmxpYkdVZ1ptOXlJREl3TUFvZ0lDQWdJQ0IwYnlBek1EQWdiV2xzYkdsdmJpQnBibVpsWTNScGIyNXpJR0Z1WkNCdmJtVWdkRzhnZEdoeVpXVWdiV2xzYkdsdmJpQmtaV0YwYUhNZ1lXNXVkV0ZzYkhrc0lHMWhhVzVzZVFvZ0lDQWdJQ0JoYlc5dVp5QkJabkpwWTJGdUlHbHVabUZ1ZEhNdUlGUm9aU0J2Y21sbmFXNGdZVzVrSUdWMmIyeDFkR2x2YmlCdlppQjBhR2x6SUhCaGRHaHZaMlZ1SUhkcGRHaHBiZ29nSUNBZ0lDQjBhR1VnYUhWdFlXNGdiR2x1WldGblpTQnBjeUJ6ZEdsc2JDQjFibkpsYzI5c2RtVmtMaUJCSUhOcGJtZHNaU0J6Y0dWamFXVnpMQ0JRTGlCeVpXbGphR1Z1YjNkcExBb2dJQ0FnSUNCM2FHbGphQ0JwYm1abFkzUnpJR05vYVcxd1lXNTZaV1Z6TENCcGN5QnJibTkzYmlCMGJ5QmlaU0JoSUdOc2IzTmxJSE5wYzNSbGNpQnNhVzVsWVdkbElHOW1JRkF1Q2lBZ0lDQWdJR1poYkdOcGNHRnlkVzB1SUVobGNtVWdkMlVnY21Wd2IzSjBJSFJvWlNCa2FYTmpiM1psY25rZ2IyWWdZU0J1WlhjZ1VHeGhjMjF2WkdsMWJTQnpjR1ZqYVdWekNpQWdJQ0FnSUdsdVptVmpkR2x1WnlCSWIyMXBibWxrY3k0Z1ZHaHBjeUJ1WlhjZ2MzQmxZMmxsY3lCb1lYTWdZbVZsYmlCcGMyOXNZWFJsWkNCcGJpQjBkMjhnWTJocGJYQmhibnBsWlhNS0lDQWdJQ0FnS0ZCaGJpQjBjbTluYkc5a2VYUmxjeWtnYTJWd2RDQmhjeUJ3WlhSeklHSjVJSFpwYkd4aFoyVnljeUJwYmlCSFlXSnZiaUFvUVdaeWFXTmhLUzRnUVc1aGJIbHphWE1nYjJZS0lDQWdJQ0FnYVhSeklHTnZiWEJzWlhSbElHMXBkRzlqYUc5dVpISnBZV3dnWjJWdWIyMWxJQ2cxTlRJNUlHNTFZMnhsYjNScFpHVnpJR2x1WTJ4MVpHbHVaeUJEZVhRZ1lpd2dRMjk0SUVrS0lDQWdJQ0FnWVc1a0lFTnZlQ0JKU1VrZ1oyVnVaWE1wSUhKbGRtVmhiSE1nWVc0Z2IyeGtaWElnWkdsMlpYSm5aVzVqWlNCdlppQjBhR2x6SUd4cGJtVmhaMlVnWm5KdmJTQjBhR1VLSUNBZ0lDQWdZMnhoWkdVZ2RHaGhkQ0JwYm1Oc2RXUmxjeUJRTGlCbVlXeGphWEJoY25WdElHRnVaQ0JRTGlCeVpXbGphR1Z1YjNkcElDaGhjSEJ5YjNocGJXRjBaV3g1SURJeEt5OHRPUW9nSUNBZ0lDQk5lWEp6SUdGbmJ5QjFjMmx1WnlCQ1lYbGxjMmxoYmlCdFpYUm9iMlJ6SUdGdVpDQmpiMjV6YVdSbGNtbHVaeUIwYUdGMElIUm9aU0JrYVhabGNtZGxibU5sQ2lBZ0lDQWdJR0psZEhkbFpXNGdVQzRnWm1Gc1kybHdZWEoxYlNCaGJtUWdVQzRnY21WcFkyaGxibTkzYVNCdlkyTjFjbkpsWkNBMElIUnZJRGNnYldsc2JHbHZiaUI1WldGeWN5QmhaMjhLSUNBZ0lDQWdZWE1nWjJWdVpYSmhiR3g1SUdOdmJuTnBaR1Z5WldRZ2FXNGdkR2hsSUd4cGRHVnlZWFIxY21VcExpQlVhR2x6SUhScGJXVWdabkpoYldVZ2QyOTFiR1FnWW1VS0lDQWdJQ0FnWTI5dVozSjFaVzUwSUhkcGRHZ2dkR2hsSUhKaFpHbGhkR2x2YmlCdlppQm9iMjFwYm05cFpITXNJSE4xWjJkbGMzUnBibWNnZEdoaGRDQjBhR2x6SUZCc1lYTnRiMlJwZFcwS0lDQWdJQ0FnYkdsdVpXRm5aU0J0YVdkb2RDQm9ZWFpsSUdKbFpXNGdjSEpsYzJWdWRDQnBiaUJsWVhKc2VTQm9iMjFwYm05cFpITWdZVzVrSUhSb1lYUWdkR2hsZVNCdFlYa2dZbTkwYUFvZ0lDQWdJQ0JvWVhabElHVjRjR1Z5YVdWdVkyVmtJR0VnYzJsdGRXeDBZVzVsYjNWeklHUnBkbVZ5YzJsbWFXTmhkR2x2Ymk0Z1NXNTJaWE4wYVdkaGRHbHZiaUJ2WmlCMGFHVUtJQ0FnSUNBZ2JuVmpiR1ZoY2lCblpXNXZiV1VnYjJZZ2RHaHBjeUJ1WlhjZ2MzQmxZMmxsY3lCM2FXeHNJR1oxY25Sb1pYSWdkR2hsSUhWdVpHVnljM1JoYm1ScGJtY2diMllnZEdobENpQWdJQ0FnSUdkbGJtVjBhV01nWVdSaGNIUmhkR2x2Ym5NZ2IyWWdVQzRnWm1Gc1kybHdZWEoxYlNCMGJ5Qm9kVzFoYm5NdUlGUm9aU0J5YVhOcklHOW1JSFJ5WVc1elptVnlJR0Z1WkFvZ0lDQWdJQ0JsYldWeVoyVnVZMlVnYjJZZ2RHaHBjeUJ1WlhjZ2MzQmxZMmxsY3lCcGJpQm9kVzFoYm5NZ2JYVnpkQ0JpWlNCdWIzY2djMlZ5YVc5MWMyeDVJR052Ym5OcFpHVnlaV1FLSUNBZ0lDQWdaMmwyWlc0Z2RHaGhkQ0JwZENCM1lYTWdabTkxYm1RZ2FXNGdkSGR2SUdOb2FXMXdZVzU2WldWeklHeHBkbWx1WnlCcGJpQmpiMjUwWVdOMElIZHBkR2dnYUhWdFlXNXpDaUFnSUNBZ0lHRnVaQ0JwZEhNZ1kyeHZjMlVnY21Wc1lYUmxaRzVsYzNNZ2RHOGdkR2hsSUcxdmMzUWdkbWx5ZFd4bGJuUWdZV2RsYm5RZ2IyWWdiV0ZzWVhKcFlTNEtJQ0FnSUR3dlpHVnpZM0pwY0hScGIyNCtDaUFnSUNBOFpHVnpZM0pwY0hScGIyNGdaR1Z6WTNKcGNIUnBiMjVVZVhCbFBTSlBkR2hsY2lJK0NpQWdJQ0FnSUU5c2JHOXRiMTlRVEc5VFVHRjBhRzluWHpJd01EbE9kV05zWlc5MGFXUmxJR0ZzYVdkdWJXVnVkQ0JqYjI1allYUmxibUYwYVc5dUlHOW1JRFFLSUNBZ0lDQWdiV2wwYjJOb2IyNWtjbWxoYkNCblpXNWxjeUJtYjNJZ01UY2dVR3hoYzIxdlpHbDFiU0J6Y0dWamFXVnpJR0Z1WkNCdmJtVUtJQ0FnSUNBZ2IzVjBaM0p2ZFhBdVQyeHNiMjF2WDFCTWIxTlFZWFJvYjJkZk1qQXdPVjlRU0ZsTlRFMWhlR2x0ZFcwZ2JHbHJaV3hwYUc5dlpDQjBjbVZsSUdsdVptVnljbVZrSUdaeWIyMEtJQ0FnSUNBZ2RHaGxJRFF0WjJWdVpTQmpiMjVqWVhSbGJtRjBhVzl1SUhWemFXNW5JRkJJV1UxTUxnb2dJQ0FnUEM5a1pYTmpjbWx3ZEdsdmJqNEtJQ0E4TDJSbGMyTnlhWEIwYVc5dWN6NEtJQ0E4WjJWdlRHOWpZWFJwYjI1elBnb2dJQ0FnUEdkbGIweHZZMkYwYVc5dVBnb2dJQ0FnSUNBOFoyVnZURzlqWVhScGIyNVFiR0ZqWlQ1QlpuSnBZMkU4TDJkbGIweHZZMkYwYVc5dVVHeGhZMlUrQ2lBZ0lDQThMMmRsYjB4dlkyRjBhVzl1UGdvZ0lEd3ZaMlZ2VEc5allYUnBiMjV6UGdvOEwzSmxjMjkxY21ObFBnPT0iLCJ1cmwiOiJodHRwOi8vZGF0YWRyeWFkLm9yZy9zdGFzaC9kYXRhc2V0L2RvaToxMC41MDYxL2RyeWFkLjg1MTUiLCJjb250ZW50VXJsIjpudWxsLCJtZXRhZGF0YVZlcnNpb24iOjE2LCJzY2hlbWFWZXJzaW9uIjoiaHR0cDovL2RhdGFjaXRlLm9yZy9zY2hlbWEva2VybmVsLTQiLCJzb3VyY2UiOiJtZHMiLCJpc0FjdGl2ZSI6dHJ1ZSwic3RhdGUiOiJmaW5kYWJsZSIsInJlYXNvbiI6bnVsbCwidmlld0NvdW50Ijo3OCwidmlld3NPdmVyVGltZSI6W3sieWVhck1vbnRoIjoiMjAxNS0xMSIsInRvdGFsIjoxfSx7InllYXJNb250aCI6IjIwMTYtMDEiLCJ0b3RhbCI6Mn0seyJ5ZWFyTW9udGgiOiIyMDE3LTAxIiwidG90YWwiOjE5fSx7InllYXJNb250aCI6IjIwMTctMDMiLCJ0b3RhbCI6MTN9LHsieWVhck1vbnRoIjoiMjAxNy0wNCIsInRvdGFsIjo4fSx7InllYXJNb250aCI6IjIwMTctMDUiLCJ0b3RhbCI6OH0seyJ5ZWFyTW9udGgiOiIyMDE3LTA2IiwidG90YWwiOjV9LHsieWVhck1vbnRoIjoiMjAxNy0wOCIsInRvdGFsIjoyfSx7InllYXJNb250aCI6IjIwMTctMDkiLCJ0b3RhbCI6NX0seyJ5ZWFyTW9udGgiOiIyMDE4LTAxIiwidG90YWwiOjR9LHsieWVhck1vbnRoIjoiMjAxOC0wMiIsInRvdGFsIjoxfSx7InllYXJNb250aCI6IjIwMTgtMTIiLCJ0b3RhbCI6MX0seyJ5ZWFyTW9udGgiOiIyMDE5LTAxIiwidG90YWwiOjJ9LHsieWVhck1vbnRoIjoiMjAxOS0wMiIsInRvdGFsIjoxfSx7InllYXJNb250aCI6IjIwMTktMDQiLCJ0b3RhbCI6NX0seyJ5ZWFyTW9udGgiOiIyMDE5LTA1IiwidG90YWwiOjF9XSwiZG93bmxvYWRDb3VudCI6NSwiZG93bmxvYWRzT3ZlclRpbWUiOlt7InllYXJNb250aCI6IjIwMTctMDQiLCJ0b3RhbCI6Mn0seyJ5ZWFyTW9udGgiOiIyMDE3LTA1IiwidG90YWwiOjJ9LHsieWVhck1vbnRoIjoiMjAxNy0wNiIsInRvdGFsIjoxfV0sInJlZmVyZW5jZUNvdW50IjoxLCJjaXRhdGlvbkNvdW50IjoxLCJjaXRhdGlvbnNPdmVyVGltZSI6W3sieWVhciI6IjIwMTkiLCJ0b3RhbCI6MX1dLCJwYXJ0Q291bnQiOjIsInBhcnRPZkNvdW50IjowLCJ2ZXJzaW9uQ291bnQiOjAsInZlcnNpb25PZkNvdW50IjowLCJjcmVhdGVkIjoiMjAxMS0xMS0yMlQxODozNDo1MS4wMDBaIiwicmVnaXN0ZXJlZCI6IjIwMTEtMDItMDFUMTc6MzI6MDIuMDAwWiIsInB1Ymxpc2hlZCI6IjIwMTEiLCJ1cGRhdGVkIjoiMjAyMC0wNi0yN1QwMDo1ODo0Ni4wMDBaIn0sInJlbGF0aW9uc2hpcHMiOnsiY2xpZW50Ijp7ImRhdGEiOnsiaWQiOiJkcnlhZC5kcnlhZCIsInR5cGUiOiJjbGllbnRzIn19LCJtZWRpYSI6eyJkYXRhIjp7ImlkIjoiMTAuNTA2MS9kcnlhZC44NTE1IiwidHlwZSI6Im1lZGlhIn19LCJyZWZlcmVuY2VzIjp7ImRhdGEiOlt7ImlkIjoiMTAuMTM3MS9qb3VybmFsLnBwYXQuMTAwMDQ0NiIsInR5cGUiOiJkb2lzIn1dfSwiY2l0YXRpb25zIjp7ImRhdGEiOlt7ImlkIjoiMTAuMTM3MS9qb3VybmFsLnBwYXQuMTAwMDQ0NiIsInR5cGUiOiJkb2lzIn1dfSwicGFydHMiOnsiZGF0YSI6W3siaWQiOiIxMC41MDYxL2RyeWFkLjg1MTUvMSIsInR5cGUiOiJkb2lzIn0seyJpZCI6IjEwLjUwNjEvZHJ5YWQuODUxNS8yIiwidHlwZSI6ImRvaXMifV19LCJwYXJ0T2YiOnsiZGF0YSI6W119LCJ2ZXJzaW9ucyI6eyJkYXRhIjpbXX0sInZlcnNpb25PZiI6eyJkYXRhIjpbXX19fSwiaW5jbHVkZWQiOlt7ImlkIjoiZHJ5YWQuZHJ5YWQiLCJ0eXBlIjoiY2xpZW50cyIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IkRSWUFEIiwic3ltYm9sIjoiRFJZQUQuRFJZQUQiLCJ5ZWFyIjoyMDE4LCJjb250YWN0RW1haWwiOiJhZG1pbkBkYXRhZHJ5YWQub3JnIiwiYWx0ZXJuYXRlTmFtZSI6bnVsbCwiZGVzY3JpcHRpb24iOiJEYXRhRHJ5YWQub3JnIGlzIGEgY3VyYXRlZCBnZW5lcmFsLXB1cnBvc2UgcmVwb3NpdG9yeSB0aGF0IG1ha2VzIHRoZSBkYXRhIHVuZGVybHlpbmcgc2NpZW50aWZpYyBwdWJsaWNhdGlvbnMgZGlzY292ZXJhYmxlLCBmcmVlbHkgcmV1c2FibGUsIGFuZCBjaXRhYmxlLlxyXG5EcnlhZCBpcyBhbiBpbnRlcm5hdGlvbmFsIHJlcG9zaXRvcnkgb2YgZGF0YSB1bmRlcmx5aW5nIHBlZXItcmV2aWV3ZWQgc2NpZW50aWZpYyBhbmQgbWVkaWNhbCBsaXRlcmF0dXJlLCBwYXJ0aWN1bGFybHkgZGF0YSBmb3Igd2hpY2ggbm8gc3BlY2lhbGl6ZWQgcmVwb3NpdG9yeSBleGlzdHMuIFRoZSBjb250ZW50IGlzIGNvbnNpZGVyZWQgdG8gYmUgaW50ZWdyYWwgdG8gdGhlIHB1Ymxpc2hlZCByZXNlYXJjaC4gQWxsIG1hdGVyaWFsIGluIERyeWFkIGlzIGFzc29jaWF0ZWQgd2l0aCBhIHNjaG9sYXJseSBwdWJsaWNhdGlvbiIsImxhbmd1YWdlIjpudWxsLCJjbGllbnRUeXBlIjoicmVwb3NpdG9yeSIsImRvbWFpbnMiOiIqIiwicmUzZGF0YSI6Imh0dHBzOi8vZG9pLm9yZy8xMC4xNzYxNi9SMzRTMzMiLCJvcGVuZG9hciI6bnVsbCwiaXNzbiI6bnVsbCwidXJsIjoiaHR0cHM6Ly9kYXRhZHJ5YWQub3JnIiwiY3JlYXRlZCI6IjIwMTgtMDQtMjRUMjA6NTk6MTUuMDAwWiIsInVwZGF0ZWQiOiIyMDE5LTA2LTAyVDIyOjQ3OjE5LjAwMFoiLCJpc0FjdGl2ZSI6dHJ1ZSwiaGFzUGFzc3dvcmQiOnRydWV9LCJyZWxhdGlvbnNoaXBzIjp7InByb3ZpZGVyIjp7ImRhdGEiOnsiaWQiOiJkcnlhZCIsInR5cGUiOiJwcm92aWRlcnMifX0sInByZWZpeGVzIjp7ImRhdGEiOlt7ImlkIjoiMTAuNTA2MSIsInR5cGUiOiJwcmVmaXhlcyJ9LHsiaWQiOiIxMC4xNTE0NiIsInR5cGUiOiJwcmVmaXhlcyJ9XX19fV19
47
+ http_version:
48
+ recorded_at: Sun, 12 Jul 2020 11:25:33 GMT
49
49
  recorded_with: VCR 3.0.3
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - Mozilla/5.0 (compatible; Maremma/4.6; mailto:info@datacite.org)
11
+ - Mozilla/5.0 (compatible; Maremma/4.7.1; mailto:info@datacite.org)
12
12
  Accept:
13
13
  - text/xml
14
14
  response:
@@ -35,7 +35,7 @@ http_interactions:
35
35
  Server:
36
36
  - http-kit
37
37
  Date:
38
- - Tue, 25 Feb 2020 14:40:12 GMT
38
+ - Sun, 12 Jul 2020 11:25:35 GMT
39
39
  X-Rate-Limit-Limit:
40
40
  - '50'
41
41
  X-Rate-Limit-Interval:
@@ -45,7 +45,7 @@ http_interactions:
45
45
  body:
46
46
  encoding: ASCII-8BIT
47
47
  string: !binary |-
48
- PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC43NTU0L2VMaWZlLjAxNTY3PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5lTGlmZSBTY2llbmNlcyBQdWJsaWNhdGlvbnMsIEx0ZDwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwcmVmaXgtbmFtZSIgdHlwZT0ic3RyaW5nIj5lTGlmZSBTY2llbmNlcyBQdWJsaWNhdGlvbnMsIEx0ZC48L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibWVtYmVyLWlkIiB0eXBlPSJudW1iZXIiPjQzNzQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0YXRpb24taWQiIHR5cGU9Im51bWJlciI+NjcxMjQ2MTc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iam91cm5hbC1pZCIgdHlwZT0ibnVtYmVyIj4xODkzNjU8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iZGVwb3NpdC10aW1lc3RhbXAiIHR5cGU9Im51bWJlciI+MjAxODA4MjMxMzM2NDY8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ib3duZXItcHJlZml4IiB0eXBlPSJzdHJpbmciPjEwLjc1NTQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibGFzdC11cGRhdGUiIHR5cGU9ImRhdGUiPjIwMTgtMDgtMjNUMTM6NDE6NDlaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNyZWF0ZWQiIHR5cGU9ImRhdGUiPjIwMTQtMDItMTFUMTY6Mjk6MDRaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGVkYnktY291bnQiIHR5cGU9Im51bWJlciI+MTY8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icmVsYXRpb24iIHR5cGU9ImRvaSIgY2xhaW09ImlzUmV2aWV3T2YiPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE3PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InJlbGF0aW9uIiB0eXBlPSJkb2kiIGNsYWltPSJpc1Jldmlld09mIj4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNjwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4xLnhzZCI+DQogICAgICAgICAgICA8am91cm5hbD4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0IiByZWZlcmVuY2VfZGlzdHJpYnV0aW9uX29wdHM9ImFueSI+DQogICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgIDx0aXRsZT5BdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvdGl0bGU+DQogICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcnRpYWw8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlNhbmthcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUGxhbnQgTW9sZWN1bGFyIEJpb2xvZ3ksIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUsIExhdXNhbm5lLCBTd2l0emVybGFuZDwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5LYWlzYTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+TmllbWluZW48L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBsYW50IE1vbGVjdWxhciBCaW9sb2d5LCBVbml2ZXJzaXR5IG9mIExhdXNhbm5lLCBMYXVzYW5uZSwgU3dpdHplcmxhbmQ8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPklvYW5uaXM8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlhlbmFyaW9zPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+Vml0YWwtSVQsIFN3aXNzIEluc3RpdHV0ZSBvZiBCaW9pbmZvcm1hdGljcywgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkNocmlzdGlhbiBTPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5IYXJkdGtlPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgPGphdHM6YWJzdHJhY3QgeG1sbnM6amF0cz0iaHR0cDovL3d3dy5uY2JpLm5sbS5uaWguZ292L0pBVFMxIj4NCiAgICAgICAgICAgICAgICAgIDxqYXRzOnA+QW1vbmcgdmFyaW91cyBhZHZhbnRhZ2VzLCB0aGVpciBzbWFsbCBzaXplIG1ha2VzIG1vZGVsIG9yZ2FuaXNtcyBwcmVmZXJyZWQgc3ViamVjdHMgb2YgaW52ZXN0aWdhdGlvbi4gWWV0LCBldmVuIGluIG1vZGVsIHN5c3RlbXMgZGV0YWlsZWQgYW5hbHlzaXMgb2YgbnVtZXJvdXMgZGV2ZWxvcG1lbnRhbCBwcm9jZXNzZXMgYXQgY2VsbHVsYXIgbGV2ZWwgaXMgc2V2ZXJlbHkgaGFtcGVyZWQgYnkgdGhlaXIgc2NhbGUuIEZvciBpbnN0YW5jZSwgc2Vjb25kYXJ5IGdyb3d0aCBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWxzIGNyZWF0ZXMgYSByYWRpYWwgcGF0dGVybiBvZiBoaWdobHkgc3BlY2lhbGl6ZWQgdGlzc3VlcyB0aGF0IGNvbXByaXNlcyBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHN0YXJ0aW5nIGZyb20gYSBmZXcgZG96ZW4uIFRoaXMgZHluYW1pYyBwcm9jZXNzIGlzIGRpZmZpY3VsdCB0byBmb2xsb3cgYmVjYXVzZSBvZiBpdHMgc2NhbGUgYW5kIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgaW52ZXN0aWdhdGVkIGludmFzaXZlbHksIHByZWNsdWRpbmcgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjZWxsIHByb2xpZmVyYXRpb24sIGRpZmZlcmVudGlhdGlvbiwgYW5kIHBhdHRlcm5pbmcgZXZlbnRzIGludm9sdmVkLiBUbyBvdmVyY29tZSBzdWNoIGxpbWl0YXRpb24sIHdlIGVzdGFibGlzaGVkIGFuIGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IGFwcHJvYWNoLiBXZSBhY3F1aXJlZCBoeXBvY290eWwgY3Jvc3Mtc2VjdGlvbnMgZnJvbSB0aWxlZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGFuZCBleHRyYWN0ZWQgdGhlaXIgaW5mb3JtYXRpb24gY29udGVudCB1c2luZyBjdXN0b20gaGlnaC10aHJvdWdocHV0IGltYWdlIHByb2Nlc3NpbmcgYW5kIHNlZ21lbnRhdGlvbi4gQ291cGxlZCB3aXRoIGF1dG9tYXRlZCBjZWxsIHR5cGUgcmVjb2duaXRpb24gdGhyb3VnaCBtYWNoaW5lIGxlYXJuaW5nLCB3ZSBjb3VsZCBlc3RhYmxpc2ggYSBjZWxsdWxhciByZXNvbHV0aW9uIGF0bGFzIHRoYXQgcmV2ZWFscyB2YXNjdWxhciBtb3JwaG9keW5hbWljcyBkdXJpbmcgc2Vjb25kYXJ5IGdyb3d0aCwgZm9yIGV4YW1wbGUgZXF1aWRpc3RhbnQgcGhsb2VtIHBvbGUgZm9ybWF0aW9uLjwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8amF0czphYnN0cmFjdCB4bWxuczpqYXRzPSJodHRwOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvSkFUUzEiIGFic3RyYWN0LXR5cGU9ImV4ZWN1dGl2ZS1zdW1tYXJ5Ij4NCiAgICAgICAgICAgICAgICAgIDxqYXRzOnA+T3VyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGxpdmluZyB3b3JsZCBoYXMgYmVlbiBhZHZhbmNlZCBncmVhdGx5IGJ5IHN0dWRpZXMgb2Yg4oCYbW9kZWwgb3JnYW5pc21z4oCZLCBzdWNoIGFzIG1pY2UsIHplYnJhZmlzaCwgYW5kIGZydWl0IGZsaWVzLiBTdHVkeWluZyB0aGVzZSBjcmVhdHVyZXMgaGFzIGJlZW4gY3J1Y2lhbCB0byB1bmNvdmVyaW5nIHRoZSBnZW5lcyB0aGF0IGNvbnRyb2wgaG93IG91ciBib2RpZXMgZGV2ZWxvcCBhbmQgZ3JvdywgYW5kIGFsc28gdG8gZGlzY292ZXIgdGhlIGdlbmV0aWMgYmFzaXMgb2YgZGlzZWFzZXMgc3VjaCBhcyBjYW5jZXIuPC9qYXRzOnA+DQogICAgICAgICAgICAgICAgICA8amF0czpwPlRoYWxlIGNyZXNz4oCUb3IgQXJhYmlkb3BzaXMgdGhhbGlhbmEgdG8gZ2l2ZSBpdHMgZm9ybWFsIG5hbWXigJRpcyB0aGUgbW9kZWwgb3JnYW5pc20gb2YgY2hvaWNlIGZvciBtYW55IHBsYW50IGJpb2xvZ2lzdHMuIFRoaXMgdGlueSB3ZWVkIGhhcyBiZWVuIHdpZGVseSBzdHVkaWVkIGJlY2F1c2UgaXQgY2FuIGNvbXBsZXRlIGl0cyBsaWZlY3ljbGUsIGZyb20gc2VlZCB0byBzZWVkLCBpbiBhYm91dCA2IHdlZWtzLCBhbmQgYmVjYXVzZSBpdHMgcmVsYXRpdmVseSBzbWFsbCBnZW5vbWUgc2ltcGxpZmllcyB0aGUgc2VhcmNoIGZvciBnZW5lcyB0aGF0IGNvbnRyb2wgc3BlY2lmaWMgdHJhaXRzLiBIb3dldmVyLCBhcyB3aXRoIG90aGVyIG11Y2gtc3R1ZGllZCBtb2RlbCBzeXN0ZW1zLCB1bmRlcnN0YW5kaW5nIHRoZSBjaGFuZ2VzIHRoYXQgdW5kZXJwaW4gdGhlIGRldmVsb3BtZW50IG9mIHNvbWUgb2YgdGhlIG1vcmUgY29tcGxleCB0aXNzdWVzIGluIEFyYWJpZG9wc2lzIGhhcyBiZWVuIHNldmVyZWx5IGhhbXBlcmVkIGJ5IHRoZSBzaGVhciBudW1iZXIgb2YgY2VsbHMgaW52b2x2ZWQuPC9qYXRzOnA+DQogICAgICAgICAgICAgICAgICA8amF0czpwPkFmdGVyIGl0IGhhcyBlbWVyZ2VkIGZyb20gdGhlIHNlZWQsIHRoZSBwbGFudOKAmXMgZmlyc3Qgc3RlbSB3aWxsIGRldmVsb3AgZnJvbSBhIGZldyBkb3plbiBjZWxscyBpbiB3aWR0aCB0byBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHdpdGggaGlnaGx5IHNwZWNpYWxpemVkIHRpc3N1ZXMgYXJyYW5nZWQgaW4gYSBjb21wbGV4IHBhdHRlcm4gb2YgY29uY2VudHJpYyBjaXJjbGVzLiBBbHRob3VnaCB0aGlzIHN0ZW0gdGhpY2tlbmluZyBwcm9jZXNzIHJlcHJlc2VudHMgYSBtYWpvciBkZXZlbG9wbWVudGFsIGNoYW5nZSBpbiBtYW55IHBsYW50c+KAlGZyb20gQXJhYmlkb3BzaXMgdG8gb2FrIHRyZWVz4oCUaXQgaGFzIGJlZW4gdW5kZXItcmVzZWFyY2hlZC4gVGhpcyBpcyBwYXJ0bHkgYmVjYXVzZSBpdCBpbnZvbHZlcyBzbyBtYW55IGRpZmZlcmVudCBjZWxscywgYW5kIGFsc28gYmVjYXVzZSBpdCBjYW4gb25seSBiZSBvYnNlcnZlZCBpbiB0aGluIHNlY3Rpb25zIGN1dCBvdXQgb2YgdGhlIHBsYW504oCZcyBzdGVtLjwvamF0czpwPg0KICAgICAgICAgICAgICAgICAgPGphdHM6cD5Ob3cgU2Fua2FyLCBOaWVtaW5lbiwgUmFnbmkgZXQgYWwuIGhhdmUgZGV2ZWxvcGVkIGEgbm92ZWwgYXBwcm9hY2gsIHRlcm1lZCDigJhhdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neeKAmSwgdG8gb3ZlcmNvbWUgdGhlc2UgcHJvYmxlbXMuIFRoaXMgc3RyYXRlZ3kgaW52b2x2ZXMg4oCYdGVhY2hpbmfigJkgYSBjb21wdXRlciB0byBhdXRvbWF0aWNhbGx5IHJlY29nbml6ZSBkaWZmZXJlbnQgcGxhbnQgY2VsbHMgYW5kIHRvIG1lYXN1cmUgdGhlaXIgaW1wb3J0YW50IGZlYXR1cmVzIGluIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXMgb2YgdGlzc3VlIHNlY3Rpb25zLiBUaGUgcmVzdWx0aW5nIOKAmG1hcOKAmSBvZiB0aGUgZGV2ZWxvcGluZyBzdGVt4oCUd2hpY2ggcmVxdWlyZWQgb3ZlciA4MDAgaHIgb2YgY29tcHV0aW5nIHRpbWUgdG8gY29tcGxldGXigJRyZXZlYWxzIHRoZSBjaGFuZ2VzIHRvIGNlbGxzIGFuZCB0aXNzdWVzIGFzIHRoZXkgZGV2ZWxvcCB0aGF0IGFsbG93IHRoZSB0cmFuc3BvcnQgb2Ygd2F0ZXIsIHN1Z2FycyBhbmQgbnV0cmllbnRzIGJldHdlZW4gdGhlIGFib3ZlLSBhbmQgYmVsb3ctZ3JvdW5kIG9yZ2Fucy4gU2Fua2FyLCBOaWVtaW5lbiwgUmFnbmkgZXQgYWwuIHN1Z2dlc3QgdGhhdCB0aGVpciBub3ZlbCBhcHByb2FjaCBjb3VsZCwgaW4gdGhlIGZ1dHVyZSwgYWxzbyBiZSBhcHBsaWVkIHRvIHN0dWR5IHRoZSBkZXZlbG9wbWVudCBvZiBvdGhlciB0aXNzdWVzIGFuZCBvcmdhbmlzbXMsIGluY2x1ZGluZyBhbmltYWxzLjwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJvbmxpbmUiPg0KICAgICAgICAgICAgICAgICAgPG1vbnRoPjAyPC9tb250aD4NCiAgICAgICAgICAgICAgICAgIDxkYXk+MTE8L2RheT4NCiAgICAgICAgICAgICAgICAgIDx5ZWFyPjIwMTQ8L3llYXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaWNhdGlvbl9kYXRlPg0KICAgICAgICAgICAgICAgIDxwdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICAgIDxpdGVtX251bWJlciBpdGVtX251bWJlcl90eXBlPSJhcnRpY2xlX251bWJlciI+ZTAxNTY3PC9pdGVtX251bWJlcj4NCiAgICAgICAgICAgICAgICAgIDxpZGVudGlmaWVyIGlkX3R5cGU9ImRvaSI+MTAuNzU1NC9lTGlmZS4wMTU2NzwvaWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICA8L3B1Ymxpc2hlcl9pdGVtPg0KICAgICAgICAgICAgICAgIDxmcjpwcm9ncmFtIHhtbG5zOmZyPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy9mdW5kcmVmLnhzZCIgbmFtZT0iZnVuZHJlZiI+DQogICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPlN5c3RlbXNYPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+RU1CTyBsb25ndGVybSBwb3N0LWRvY3RvcmFsIGZlbGxvd3NoaXBzPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+TWFyaWUgSGVpbS1Wb2VndGxpbjwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUNCiAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIiBwcm92aWRlcj0iY3Jvc3NyZWYiPjUwMTEwMDAwNjM5MDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvZnI6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICA8YWk6bGljZW5zZV9yZWYgYXBwbGllc190bz0iYW0iPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPC9haTpwcm9ncmFtPg0KICAgICAgICAgICAgICAgIDxjcm9zc21hcms+DQogICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX3ZlcnNpb24+MTwvY3Jvc3NtYXJrX3ZlcnNpb24+DQogICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX3BvbGljeT5lTGlmZXNjaWVuY2VzPC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9tYWluPnd3dy5lbGlmZXNjaWVuY2VzLm9yZzwvZG9tYWluPg0KICAgICAgICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPmZhbHNlPC9jcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT4NCiAgICAgICAgICAgICAgICAgIDxjdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icmVjZWl2ZWQiIGxhYmVsPSJSZWNlaXZlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIwIj4yMDEzLTA5LTIwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iYWNjZXB0ZWQiIGxhYmVsPSJBY2NlcHRlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIxIj4yMDEzLTEyLTI0PC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icHVibGlzaGVkIiBsYWJlbD0iUHVibGlzaGVkIiBncm91cF9uYW1lPSJwdWJsaWNhdGlvbl9oaXN0b3J5IiBncm91cF9sYWJlbD0iUHVibGljYXRpb24gSGlzdG9yeSIgb3JkZXI9IjIiPjIwMTQtMDItMTE8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOnByb2dyYW0geG1sbnM6ZnI9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL2Z1bmRyZWYueHNkIiBuYW1lPSJmdW5kcmVmIj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5TeXN0ZW1zWDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICBFTUJPDQogICAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwMzA0MzwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXNzIE5hdGlvbmFsIFNjaWVuY2UgRm91bmRhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDE3MTE8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICBVbml2ZXJzaXR5IG9mIExhdXNhbm5lDQogICAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiIHByb3ZpZGVyPSJjcm9zc3JlZiI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDA2MzkwPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9mcjpwcm9ncmFtPg0KICAgICAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxhaTpsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJ2b3IiPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgICAgICAgIDxhaTpsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJhbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICAgIDwvYWk6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICAgIDwvY3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgICAgICAgIDwvY3Jvc3NtYXJrPg0KICAgICAgICAgICAgICAgIDxyZWw6cHJvZ3JhbSB4bWxuczpyZWw9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3JlbGF0aW9ucy54c2QiPg0KICAgICAgICAgICAgICAgICAgPHJlbDpyZWxhdGVkX2l0ZW0+DQogICAgICAgICAgICAgICAgICAgIDxyZWw6ZGVzY3JpcHRpb24+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvcmVsOmRlc2NyaXB0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8cmVsOmludGVyX3dvcmtfcmVsYXRpb24gaWRlbnRpZmllci10eXBlPSJkb2kiIHJlbGF0aW9uc2hpcC10eXBlPSJpc1N1cHBsZW1lbnRlZEJ5Ij4xMC41MDYxL2RyeWFkLmI4MzVrPC9yZWw6aW50ZXJfd29ya19yZWxhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcmVsOnJlbGF0ZWRfaXRlbT4NCiAgICAgICAgICAgICAgICA8L3JlbDpwcm9ncmFtPg0KICAgICAgICAgICAgICAgIDxhcmNoaXZlX2xvY2F0aW9ucz4NCiAgICAgICAgICAgICAgICAgIDxhcmNoaXZlIG5hbWU9IkNMT0NLU1MiIC8+DQogICAgICAgICAgICAgICAgPC9hcmNoaXZlX2xvY2F0aW9ucz4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJ0ZXh0LW1pbmluZyI+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3BkZiI+aHR0cHM6Ly9jZG4uZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZWxpZmUtMDE1NjctdjEucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi94bWwiPmh0dHBzOi8vY2RuLmVsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2VsaWZlLTAxNTY3LXYxLnhtbDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgIDwvY29sbGVjdGlvbj4NCiAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxjaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Cb25rZTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQyNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xODE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QVBMIHJlZ3VsYXRlcyB2YXNjdWxhciB0aXNzdWUgaWRlbnRpdHkgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYXR1cmUwMjEwMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5HZW5ldGljczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5CcmVubmVyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTgyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQxMzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5JbiB0aGUgYmVnaW5uaW5nIHdhcyB0aGUgd29ybTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xNTM0L2dlbmV0aWNzLjEwOS4xMDQ5NzY8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIzIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGh5c2lvbG9naWEgUGxhbnRhcnVtPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkNoYWZmZXk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTk0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlNlY29uZGFyeSB4eWxlbSBkZXZlbG9wbWVudCBpbiBBcmFiaWRvcHNpczogYSBtb2RlbCBmb3Igd29vZCBmb3JtYXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzNC9qLjEzOTktMzA1NC4yMDAyLjExNDA0MTMueDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OZXVyYWwgY29tcHV0YXRpb248L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Q2hhbmc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMTE5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlRyYWluaW5nIG51LXN1cHBvcnQgdmVjdG9yIGNsYXNzaWZpZXJzOiB0aGVvcnkgYW5kIGFsZ29yaXRobXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2Mi8wODk5NzY2MDE3NTAzOTkzMzU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBMZWFybmluZzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Db3J0ZXM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNzM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk1PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMDcvQkYwMDk5NDAxODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TdXBwb3J0LXZlY3RvciBOZXR3b3JrczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RG9sYW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTkzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2VsbHVsYXIgb3JnYW5pc2F0aW9uIG9mIHRoZSBBcmFiaWRvcHNpcyB0aGFsaWFuYSByb290PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TZW1pbmFycyBpbiBDZWxsICZhbXA7IERldmVsb3BtZW50YWwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FbG88L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMDk3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwOTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlN0ZW0gY2VsbCBmdW5jdGlvbiBkdXJpbmcgcGxhbnQgdmFzY3VsYXIgZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLnNlbWNkYi4yMDA5LjA5LjAwOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5EZXZlbG9wbWVudDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FdGNoZWxsczwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE0MDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMjI0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPldPWDQgYW5kIFdPWDE0IGFjdCBkb3duc3RyZWFtIG9mIHRoZSBQWFkgcmVjZXB0b3Iga2luYXNlIHRvIHJlZ3VsYXRlIHBsYW50IHZhc2N1bGFyIHByb2xpZmVyYXRpb24gaW5kZXBlbmRlbnRseSBvZiBhbnkgcm9sZSBpbiB2YXNjdWxhciBvcmdhbmlzYXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTI0Mi9kZXYuMDkxMzE0PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBMT1MgR2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT44PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPmUxMDAyOTk3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlBsYW50IHZhc2N1bGFyIGNlbGwgZGl2aXNpb24gaXMgbWFpbnRhaW5lZCBieSBhbiBpbnRlcmFjdGlvbiBiZXR3ZWVuIFBYWSBhbmQgZXRoeWxlbmUgc2lnbmFsbGluZzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMzcxL2pvdXJuYWwucGdlbi4xMDAyOTk3PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTAiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Nb2xlY3VsYXIgU3lzdGVtcyBCaW9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkZ1Y2hzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Njwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4zNzA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2x1c3RlcmluZyBwaGVub3R5cGUgcG9wdWxhdGlvbnMgYnkgZ2Vub21lLXdpZGUgUk5BaSBhbmQgbXVsdGlwYXJhbWV0cmljIGltYWdpbmc8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9tc2IuMjAxMC4yNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjExIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvIFN5c3RlbXM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+R3JhbnF2aXN0PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTEwPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjYwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkJhU0FSLUEgdG9vbCBpbiBSIGZvciBmcmVxdWVuY3kgZGV0ZWN0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5iaW9zeXN0ZW1zLjIwMTIuMDcuMDA0PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IE9waW5pb24gaW4gUGxhbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Hcm9vdmVyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+OTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5EZXZlbG9wbWVudGFsIG1lY2hhbmlzbXMgcmVndWxhdGluZyBzZWNvbmRhcnkgZ3Jvd3RoIGluIHdvb2R5IHBsYW50czwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2oucGJpLjIwMDUuMTEuMDEzPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBDZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhpcmFrYXdhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjYxODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5URElGIHBlcHRpZGUgc2lnbmFsaW5nIHJlZ3VsYXRlcyB2YXNjdWxhciBzdGVtIGNlbGwgcHJvbGlmZXJhdGlvbiB2aWEgdGhlIFdPWDQgaG9tZW9ib3ggZ2VuZSBpbiBBcmFiaWRvcHNpczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTA1L3RwYy4xMTAuMDc2MDgzPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Qcm9jZWVkaW5ncyBvZiB0aGUgTmF0aW9uYWwgQWNhZGVteSBvZiBTY2llbmNlcyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhpcmFrYXdhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTA1PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE1MjA4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPk5vbi1jZWxsLWF1dG9ub21vdXMgY29udHJvbCBvZiB2YXNjdWxhciBzdGVtIGNlbGwgZmF0ZSBieSBhIENMRSBwZXB0aWRlL3JlY2VwdG9yIHN5c3RlbTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDczL3BuYXMuMDgwODQ0NDEwNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5NZXllcm93aXR6PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NTY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjYzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4OTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFyYWJpZG9wc2lzLCBhIHVzZWZ1bCB3ZWVkPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvMDA5Mi04Njc0KDg5KTkwOTAwLTg8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlNjaWVuY2U8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TWV5ZXJvd2l0ejwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjI5NTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNDgyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlBsYW50cyBjb21wYXJlZCB0byBhbmltYWxzOiB0aGUgYnJvYWRlc3QgY29tcGFyYXRpdmUgc3R1ZHkgb2YgZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEyNi9zY2llbmNlLjEwNjY2MDk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IFBoeXNpb2w8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TmllbWluZW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMzU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NjUzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkEgd2VlZCBmb3Igd29vZD8gQXJhYmlkb3BzaXMgYXMgYSBnZW5ldGljIG1vZGVsIGZvciB4eWxlbSBkZXZlbG9wbWVudDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTA0L3BwLjEwNC4wNDAyMTI8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxOCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZSBCaW90ZWNobm9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPk5vYmxlPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTU2NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5XaGF0IGlzIGEgc3VwcG9ydCB2ZWN0b3IgbWFjaGluZT88L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYnQxMjA2LTE1NjU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlByb2NlZWRpbmdzIG9mIHRoZSBOYXRpb25hbCBBY2FkZW15IG9mIFNjaWVuY2VzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2E8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+T2xzb248L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT43Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTE2PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4MDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNsYXNzaWZpY2F0aW9uIG9mIGN1bHR1cmVkIG1hbW1hbGlhbiBjZWxscyBieSBzaGFwZSBhbmFseXNpcyBhbmQgcGF0dGVybiByZWNvZ25pdGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDczL3BuYXMuNzcuMy4xNTE2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjAiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5CaW9pbmZvcm1hdGljczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5QYXU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45Nzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RUJJbWFnZeKAk2FuIFIgcGFja2FnZSBmb3IgaW1hZ2UgcHJvY2Vzc2luZyB3aXRoIGFwcGxpY2F0aW9ucyB0byBjZWxsdWxhciBwaGVub3R5cGVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwOTMvYmlvaW5mb3JtYXRpY3MvYnRxMDQ2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjEiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBDZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlJhZ25pPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTMyMjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Nb2JpbGUgZ2liYmVyZWxsaW4gZGlyZWN0bHkgc3RpbXVsYXRlcyBBcmFiaWRvcHNpcyBoeXBvY290eWwgeHlsZW0gZXhwYW5zaW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMDUvdHBjLjExMS4wODQwMjA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyMiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkRyeWFkIERpZ2l0YWwgUmVwb3NpdG9yeTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TYW5rYXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5EYXRhIGZyb206IEF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IHJldmVhbHMgdmFzY3VsYXIgbW9ycGhvZHluYW1pY3MgZHVyaW5nIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBzZWNvbmRhcnkgZ3Jvd3RoPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjUwNjEvZHJ5YWQuYjgzNWs8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyMyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkN1cnJlbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TaWJvdXQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Rmxvd2VyaW5nIGFzIGEgY29uZGl0aW9uIGZvciB4eWxlbSBleHBhbnNpb24gaW4gQXJhYmlkb3BzaXMgaHlwb2NvdHlsIGFuZCByb290PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5jdWIuMjAwOC4wMi4wNzA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlRoZSBOZXcgUGh5dG9sb2dpc3Q8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+U3BpY2VyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTg2PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU3NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Fdm9sdXRpb24gb2YgZGV2ZWxvcG1lbnQgb2YgdmFzY3VsYXIgY2FtYmlhIGFuZCBzZWNvbmRhcnkgZ3Jvd3RoPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMTEvai4xNDY5LTgxMzcuMjAxMC4wMzIzNi54PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjUiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5NYWNoaW5lIFZpc2lvbiBhbmQgQXBwbGljYXRpb25zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlRoZXJpYXVsdDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1OTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DZWxsIG1vcnBob2xvZ3kgY2xhc3NpZmljYXRpb24gYW5kIGNsdXR0ZXIgbWl0aWdhdGlvbiBpbiBwaGFzZS1jb250cmFzdCBtaWNyb3Njb3B5IGltYWdlcyB1c2luZyBtYWNoaW5lIGxlYXJuaW5nPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMDcvczAwMTM4LTAxMS0wMzQ1LTk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+VXl0dGV3YWFsPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTQ5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQzOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5NZWNoYW5pY2FsIHN0cmVzcyBhY3RzIHZpYSBrYXRhbmluIHRvIGFtcGxpZnkgZGlmZmVyZW5jZXMgaW4gZ3Jvd3RoIHJhdGUgYmV0d2VlbiBhZGphY2VudCBjZWxscyBpbiBBcmFiaWRvcHNpczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY2VsbC4yMDEyLjAyLjA0ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjI3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIENlbGwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5ZaW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xNTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44NjA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QSBzY3JlZW4gZm9yIG1vcnBob2xvZ2ljYWwgY29tcGxleGl0eSBpZGVudGlmaWVzIHJlZ3VsYXRvcnMgb2Ygc3dpdGNoLWxpa2UgdHJhbnNpdGlvbnMgYmV0d2VlbiBkaXNjcmV0ZSBjZWxsIHNoYXBlczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25jYjI3NjQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICAgIDxjb21wb25lbnRfbGlzdD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkFic3RyYWN0PC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2Fic3RyYWN0PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+ZUxpZmUgZGlnZXN0PC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2RpZ2VzdDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAxLiBDZWxsdWxhciBsZXZlbCBhbmFseXNpcyBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aC48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgTGlnaHQgbWljcm9zY29weSBvZiBjcm9zcyBzZWN0aW9ucyBvYnRhaW5lZCBmcm9tIEFyYWJpZG9wc2lzIGh5cG9jb3R5bHMgKG9yZ2FuIHBvc2l0aW9uIGlsbHVzdHJhdGVkIGZvciBhIDktZGF5LW9sZCBzZWVkbGluZywgbG93ZXIgbGVmdCkgYXQgOSBkYWcgKHVwcGVyIGxlZnQpIGFuZCAzNSBkYWcgKHJpZ2h0KS4gU2l6ZSBiYXJzIGFyZSAxMDAgzrxtLiBCbHVlIEdVUyBzdGFpbmluZyBkdWUgdG8gdGhlIHByZXNlbmNlIG9mIGFuIEFQTDo6R1VTIHJlcG9ydGVyIGdlbmUgaW4gdGhpcyBDb2wtMCBiYWNrZ3JvdW5kIGxpbmUgbWFya3MgcGhsb2VtIGJ1bmRsZXMuIChCKSBPdmVydmlldyBvZiB0aGUgZGV2ZWxvcG1lbnRhbCBzZXJpZXMgKHRpbWUgcG9pbnRzIGFuZCBkaXN0aW5jdCBzYW1wbGVzIHBlciBnZW5vdHlwZSkgYW5hbHl6ZWQgaW4gdGhpcyBzdHVkeS4gKEMpIEV4YW1wbGUgb2YgYSBoaWdoLXJlc29sdXRpb24gaHlwb2NvdHlsIHNlY3Rpb24gaW1hZ2UgYXNzZW1ibGVkIGZyb20gMTEgw5cgMTEgdGlsZXMuIChEKSBUaGUgc2FtZSBpbWFnZSBhZnRlciBwcmUtcHJvY2Vzc2luZyBhbmQgYmluYXJpemF0aW9uLCBhbmQgKEUpIHN1YnNlcXVlbnQgc2VnbWVudGF0aW9uIHVzaW5nIGEgd2F0ZXJzaGVkIGFsZ29yaXRobS4gKEYpIE51bWJlciBvZiBtaXMtc2VnbWVudGVkIGNlbGxzIGFzIGRldGVybWluZWQgYnkgY2FyZWZ1bCB2aXN1YWwgaW5zcGVjdGlvbiBpbiAxMiBzZWN0aW9ucywgcGxvdHRlZCBhZ2FpbnN0IHRoZSB0b3RhbCBudW1iZXIgb2YgY2VsbHMgcGVyIHNlY3Rpb24gKGxvZyBzY2FsZSkuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMi4gVGhlIOKAmFF1YW50aXRhdGl2ZSBIaXN0b2xvZ3nigJkgYXBwcm9hY2guPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIE92ZXJ2aWV3IG9mIHRoZSBjb21wdXRhdGlvbmFsIHBpcGVsaW5lIGZyb20gaW1hZ2UgYWNxdWlzaXRpb24gdG8gYW5hbHlzaXMuIChCKSDigJhQaGVub3ByaW50c+KAmSBmb3IgdGhlIGRpZmZlcmVudCBnZW5vdHlwZXMgYW5kIGRldmVsb3BtZW50YWwgc3RhZ2VzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWcyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDLigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBleGFtcGxlIG9mIGNsYXNzaWZpZXIgc2VsZWN0aW9uIHRocm91Z2ggVi1mb2xkIGNyb3NzIHZhbGlkYXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGdyZWVuIGFycm93IHBvaW50cyBvdXQgdGhlIHNlbGVjdGVkIGZlYXR1cmUgY29tYmluYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBjcml0ZXJpYSBvZiBtaW5pbXVtIG51bWJlciBvZiBmZWF0dXJlcyB3aXRoIHRoZSBoaWdoZXN0IHBlcmZvcm1hbmNlIGFuZCB0aGUgbG93ZXN0IHZhcmlhdGlvbiAodGhlIHJhZGl1c1YgZmVhdHVyZSB3YXMgZXhjbHVkZWQgZHVlIHRvIGl0cyBwdXRhdGl2ZSB2YXJpYXRpb24gaW4gdGlzc3VlIGxvY2F0aW9uKS48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNmaWcyczE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMy4gUHJvZ3Jlc3Npb24gb2YgdGlzc3VlIHByb2xpZmVyYXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIFByaW5jaXBhbCBjb21wb25lbnQgYW5hbHlzaXMgKFBDQSkgb2YgdGhlIHBoZW5vcHJpbnRzIHNob3duIGluIEZpZ3VyZSAyQiwgcGVyZm9ybWVkIHdpdGggbm9ybWFsaXplZCB2YWx1ZXMgKFN1cHBsZW1lbnRhcnkgZmlsZSA0KS4gVGhlIGlubGF5IHNjcmVlcGxvdCBkaXNwbGF5cyB0aGUgcHJvcG9ydGlvbiBvZiB0b3RhbCB2YXJpYXRpb24gZXhwbGFpbmVkIGJ5IGVhY2ggcHJpbmNpcGFsIGNvbXBvbmVudC4gKELigJNFKSBDb21wYXJhdGl2ZSBwbG90cyBvZiBwYXJhbWV0ZXIgcHJvZ3Jlc3Npb24gaW4gdGhlIHR3byBnZW5vdHlwZXMuIEluIChEKSwgeHlsZW0gcmVwcmVzZW50cyBjb21iaW5lZCB2ZXNzZWwsIHBhcmVuY2h5bWEsIGFuZCBmaWJlciBjZWxscywgcGhsb2VtIHJlcHJlc2VudHMgY29tYmluZWQgcGhsb2VtIHBhcmVuY2h5bWEgYW5kIGJ1bmRsZSBjZWxscy4gRXJyb3IgYmFycyBpbmRpY2F0ZSBzdGFuZGFyZCBlcnJvci48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA2PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA0LiBCaW1vZGFsIGRpc3RyaWJ1dGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGFjY29yZGluZyB0byBwb3NpdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSBhbmQgQikgU3BhdGlhbCBkaXN0cmlidXRpb24gb2YgY2VsbCBpbmNsaW5lIGFuZ2xlIGlsbHVzdHJhdGVzIHRoZSB2YXNjdWxhciBvcmdhbml6YXRpb24gaW4gTGVyIChCKSBhcyBjb21wYXJlZCB0byBDb2wtMCAoQSkgYXQgbGF0ZXIgc3RhZ2VzIG9mIGRldmVsb3BtZW50LCBmb3IgZXhhbXBsZSAzMCBkYWcuIFRoZSBzaXplIG9mIHRoZSBkaXNjIGluY3JlYXNlcyB3aXRoIHRoZSBhcmVhIG9mIHRoZSBjZWxsLiBCbHVlIGNvbG9yIGluZGljYXRlcyByYWRpYWwgY2VsbCBvcmllbnRhdGlvbiwgcmVkIG9ydGhvcmFkaWFsLiAoQyBhbmQgRCkgVmlvbGluIHBsb3RzIG9mIGluY2xpbmUgYW5nbGUgZGlzdHJpYnV0aW9uLCBpbGx1c3RyYXRpbmcgaW5jcmVhc2luZ2x5IGJpbW9kYWwgZGlzdHJpYnV0aW9uIGNvaW5jaWRlbnQgd2l0aCByZWZpbmVkIHZhc2N1bGFyIG9yZ2FuaXphdGlvbiBhbmQgZGlmZmVyZW50IGR5bmFtaWNzIG9mIHRoZSBwcm9jZXNzIGluIHRoZSB0d28gZ2Vub3R5cGVzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDc8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWc0PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDTigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBpbGx1c3RyYXRpb24gb2YgdGhlIGluY2xpbmUgYW5nbGUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGluY2xpbmUgaXMgdGhlIGFuZ2xlIGJldHdlZW4gdGhlIHNlY3Rpb24gcmFkaXVzIHRocm91Z2ggdGhlIGNlbnRlciBvZiBhbiBlbGxpcHNlIGZpdCB0byBhIGNlbGwgYW5kIHRoZSBtYWpvciBheGlzIG9mIHRoYXQgZWxsaXBzZSBleHRlbmRlZCB0b3dhcmRzIHRoZSB4IGF4aXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnNHMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDUuIERpc3RpbmN0IGxvY2FsIG9yZ2FuaXphdGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGR1cmluZyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aCBwcm9ncmVzc2lvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQeKAk0opIERlbnNpdHkgcGxvdHMgb2YgY2VsbCBpbmNsaW5lIGFuZ2xlIHZzIHJhZGlhbCBwb3NpdGlvbiBmb3IgdGhlIHR3byBnZW5vdHlwZXMgYXQgdGhlIGluZGljYXRlZCBkZXZlbG9wbWVudGFsIHN0YWdlcywgcmVwcmVzZW50aW5nIGFsbCBjZWxscyBhY3Jvc3MgYWxsIHNlY3Rpb25zIGZvciBhIGdpdmVuIHRpbWUgcG9pbnQuIFRoZSByZWQgbGluZXMgcmVwcmVzZW50IHRoZSBmaXQgb2YgdGhlc2UgY2xvdWQgZGlzdHJpYnV0aW9ucyB3aXRoIGxvY2FsbHkgd2VpZ2h0ZWQgbGluZWFyIHJlZ3Jlc3Npb24gKGkuZS4sIGxvd2VzcyksIHJldmVhbGluZyB0aGUgZXNzZW50aWFsIGRhdGEgdHJlbmRzLiBBbGwgc2VjdGlvbnMgd2VyZSBub3JtYWxpemVkIGZyb20gMC4wICh0aGUgbWFudWFsbHkgZGVmaW5lZCBjZW50ZXIpIHRvIDEuMCAodGhlIGF2ZXJhZ2UgcmFkaXVzIGluIGEgc2V0IG9mIHNlY3Rpb25zIGFzIGRldGVybWluZWQgYnkgdGhlIGF2ZXJhZ2UgZGlzdGFuY2Ugb2YgdGhlIG91dGVybW9zdCBjZWxscyBmcm9tIHRoZSBjZW50ZXIgZm9yIGluZGl2aWR1YWwgc2VjdGlvbnMpLiBCb3ggcGxvdHMgaW5kaWNhdGUgdGhlIHF1YXJ0aWxlcyBvZiB0aGUgcmFkaWFuIGRpc3RyaWJ1dGlvbiBmb3IgZWFjaCBjZWxsLXR5cGUgY2xhc3MgYW5kIGFyZSBwbGFjZWQgYXQgdGhlIGF2ZXJhZ2UgcG9zaXRpb24gb2YgdGhlIGNlbGwgdHlwZSB3aXRoIHJlc3BlY3QgdG8gdGhlIHkgYXhpcy4gT3V0bGllcnMgYXJlIHNob3duIGFzIGNpcmNsZXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzU8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNeKAlGZpZ3VyZSBzdXBwbGVtZW50IDEuIEFuYWx5c2lzIG9mIGNlbGwgbnVtYmVyIGluIGRlZmluZWQgeHlsZW0gcmVnaW9ucyBvZiBkaWZmZXJlbnQgc2l6ZS48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5DZWxsIG51bWJlciBpbiBhIGNpcmNsZSBvZiAyMDDigJM1MDAgcGl4ZWxzIGFyb3VuZCB0aGUgc2VjdGlvbiBjZW50ZXJzIGZvciBDb2wtMC4gQ2VsbCBjb3VudCBpbiBhIGNvbnN0YW50IGFyZWEgb2YgeHlsZW0gb3ZlciB0aW1lIGFjcm9zcyBhbGwgYXZlcmFnZWQgYWNyb3NzIGFsbCBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNmaWc1czE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNi4gTWFwcGluZyBvZiBwaGxvZW0gcG9sZSBwYXR0ZXJuaW5nLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBFeGFtcGxlIG9mIEdhdXNzaWFuIGtlcm5lbCBkZW5zaXR5IGVzdGltYXRlIG9mIHRoZSBsb2NhdGlvbiBvZiBwcmVkaWN0ZWQgcGhsb2VtIGJ1bmRsZXMgY2VsbHMgaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gSGlnaCBkZW5zaXR5IHJlcHJlc2VudHMgcGhsb2VtIHBvbGVzLiAoQikgRXhhbXBsZSBvZiBhbiBhbmFseXNpcyBvZiBlbWVyZ2luZyBwaGxvZW0gcG9sZSBwb3NpdGlvbiBpbiBhIDMwIGRhZyBDb2wtMCBzZWN0aW9uLiBUaGUgcGxvdCByZXByZXNlbnRzIGEgcGl4ZWwgaW50ZW5zaXR5IG1hcCBhZnRlciBub2lzZSByZWR1Y3Rpb24gYWxvbmcgYSBjaXJjdWxhciByZWdpb24gb2YgaW50ZXJlc3QgYWNyb3NzIHRoZSBlbWVyZ2luZyBwaGxvZW0gcG9sZXMuIEludGVuc2l0eSBwZWFrcyBhcmUgZHVlIHRvIEdVUyBzdGFpbmluZyBjb25mZXJyZWQgdG8gcGhsb2VtIGJ1bmRsZXMgYnkgYW4gQVBMOjpHVVMgcmVwb3J0ZXIgY29uc3RydWN0LiAoQykgUHJvYmFiaWxpdHkgZGVuc2l0eSBmdW5jdGlvbiBvZiB0aGUgZGF0YSBzaG93biBpbiAoQikgb2J0YWluZWQgZnJvbSBhbiBhdXRvbWF0ZWQgQmF5ZXNpYW4gbW9kZWwuIFRoZSBkb21pbmFudCBzaW5nbGUgcGVhayBpbmRpY2F0ZXMgYSBjb25zdGFudCBhcmMgZGlzdGFuY2Ugb2YgY2EuIDYyIHBpeGVsIGJldHdlZW4gdGhlIHBobG9lbSBwb2xlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDExPC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnNjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAxLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBBbiBleHBsYW5hdGlvbiBvZiB0aGUgZXh0cmFjdGVkIHBhcmFtZXRlcnMgdGhhdCBkZXNjcmliZSB0aGUgY2VsbHVsYXIgZmVhdHVyZXMuIChCKSBTdW1tYXJ5IGluZm9ybWF0aW9uIG9mIHRoZSBoYW5kLWxhYmVsZWQgdHJhaW5pbmcgc2V0IGZvciBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcuIChDKSBEZWZpbml0aW9uIG9mIHRoZSBjbGFzc2lmaWVycyBzZWxlY3RlZCBmb3IgYW5hbHlzaXMuIChEKSBTdW1tYXJ5IG9mIHRoZSBjbGFzc2lmaWVyIHBhcmFtZXRlcnMgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKEUpIE92ZXJ2aWV3IG9mIHRoZSBjZWxsIHR5cGUgY2xhc3NlcyByZWNvZ25pemVkIGJ5IHRoZSBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcgYXBwcm9hY2ggYW5kIHRoZWlyIGFzc2lnbm1lbnQgY29kZXMgdXNlZCBpbiBEYXRhIEZpbGVzIDMgYW5kIDQuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTI8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI1NEMS1kYXRhPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3VwcGxlbWVudGFyeSBmaWxlIDIuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+UXVhbGl0eSBjb250cm9sIGZpbGVzIGZvciB0aGUgQ29sLTAgc2VjdGlvbnMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTM8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI1NEMi1kYXRhPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3VwcGxlbWVudGFyeSBmaWxlIDMuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+UXVhbGl0eSBjb250cm9sIGZpbGVzIGZvciB0aGUgTGVyIHNlY3Rpb25zLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE0PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDMtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSA0LjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBub3JtYWxpemVkIHZhbHVlcyBvZiB0aGUgcGhlbm9wcmludHMgKEZpZ3VyZSAyQikgdXNlZCBmb3IgUENBLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDQtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkRlY2lzaW9uIGxldHRlcjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNTQTE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5BdXRob3IgcmVzcG9uc2U8L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE3PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjU0EyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgIDwvY29tcG9uZW50X2xpc3Q+DQogICAgICAgICAgICAgIDwvam91cm5hbF9hcnRpY2xlPg0KICAgICAgICAgICAgPC9qb3VybmFsPg0KICAgICAgICAgIDwvY3Jvc3NyZWY+DQogICAgICAgIDwvZG9pX3JlY29yZD4NCiAgICAgIDwvcXVlcnk+DQogICAgPC9ib2R5Pg0KICA8L3F1ZXJ5X3Jlc3VsdD4NCjwvY3Jvc3NyZWZfcmVzdWx0Pg==
49
- http_version:
50
- recorded_at: Tue, 25 Feb 2020 14:40:12 GMT
48
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC43NTU0L2VMaWZlLjAxNTY3PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5lTGlmZSBTY2llbmNlcyBQdWJsaWNhdGlvbnMsIEx0ZDwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwcmVmaXgtbmFtZSIgdHlwZT0ic3RyaW5nIj5lTGlmZSBTY2llbmNlcyBQdWJsaWNhdGlvbnMsIEx0ZC48L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibWVtYmVyLWlkIiB0eXBlPSJudW1iZXIiPjQzNzQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0YXRpb24taWQiIHR5cGU9Im51bWJlciI+NjcxMjQ2MTc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iam91cm5hbC1pZCIgdHlwZT0ibnVtYmVyIj4xODkzNjU8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iZGVwb3NpdC10aW1lc3RhbXAiIHR5cGU9Im51bWJlciI+MjAxODA4MjMxMzM2NDY8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ib3duZXItcHJlZml4IiB0eXBlPSJzdHJpbmciPjEwLjc1NTQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibGFzdC11cGRhdGUiIHR5cGU9ImRhdGUiPjIwMTgtMDgtMjNUMDk6NDE6NDlaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNyZWF0ZWQiIHR5cGU9ImRhdGUiPjIwMTQtMDItMTFUMTE6Mjk6MDRaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGVkYnktY291bnQiIHR5cGU9Im51bWJlciI+MTc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icmVsYXRpb24iIHR5cGU9ImRvaSIgY2xhaW09ImlzUmV2aWV3T2YiPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE3PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InJlbGF0aW9uIiB0eXBlPSJkb2kiIGNsYWltPSJpc1Jldmlld09mIj4xMC43NTU0L2VMaWZlLjAxNTY3LjAxNjwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4xLnhzZCI+DQogICAgICAgICAgICA8am91cm5hbD4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICAgICAgICA8ZnVsbF90aXRsZT5lTGlmZTwvZnVsbF90aXRsZT4NCiAgICAgICAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yMDUwLTA4NFg8L2lzc24+DQogICAgICAgICAgICAgIDwvam91cm5hbF9tZXRhZGF0YT4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgICAgICAgIDxtb250aD4wMjwvbW9udGg+DQogICAgICAgICAgICAgICAgICA8ZGF5PjExPC9kYXk+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDE0PC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0IiByZWZlcmVuY2VfZGlzdHJpYnV0aW9uX29wdHM9ImFueSI+DQogICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgIDx0aXRsZT5BdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvdGl0bGU+DQogICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcnRpYWw8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlNhbmthcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUGxhbnQgTW9sZWN1bGFyIEJpb2xvZ3ksIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUsIExhdXNhbm5lLCBTd2l0emVybGFuZDwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5LYWlzYTwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+TmllbWluZW48L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBsYW50IE1vbGVjdWxhciBCaW9sb2d5LCBVbml2ZXJzaXR5IG9mIExhdXNhbm5lLCBMYXVzYW5uZSwgU3dpdHplcmxhbmQ8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+TGF1cmE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlJhZ25pPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPklvYW5uaXM8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlhlbmFyaW9zPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+Vml0YWwtSVQsIFN3aXNzIEluc3RpdHV0ZSBvZiBCaW9pbmZvcm1hdGljcywgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkNocmlzdGlhbiBTPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5IYXJkdGtlPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQbGFudCBNb2xlY3VsYXIgQmlvbG9neSwgVW5pdmVyc2l0eSBvZiBMYXVzYW5uZSwgTGF1c2FubmUsIFN3aXR6ZXJsYW5kPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgPC9jb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgPGphdHM6YWJzdHJhY3QgeG1sbnM6amF0cz0iaHR0cDovL3d3dy5uY2JpLm5sbS5uaWguZ292L0pBVFMxIj4NCiAgICAgICAgICAgICAgICAgIDxqYXRzOnA+QW1vbmcgdmFyaW91cyBhZHZhbnRhZ2VzLCB0aGVpciBzbWFsbCBzaXplIG1ha2VzIG1vZGVsIG9yZ2FuaXNtcyBwcmVmZXJyZWQgc3ViamVjdHMgb2YgaW52ZXN0aWdhdGlvbi4gWWV0LCBldmVuIGluIG1vZGVsIHN5c3RlbXMgZGV0YWlsZWQgYW5hbHlzaXMgb2YgbnVtZXJvdXMgZGV2ZWxvcG1lbnRhbCBwcm9jZXNzZXMgYXQgY2VsbHVsYXIgbGV2ZWwgaXMgc2V2ZXJlbHkgaGFtcGVyZWQgYnkgdGhlaXIgc2NhbGUuIEZvciBpbnN0YW5jZSwgc2Vjb25kYXJ5IGdyb3d0aCBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWxzIGNyZWF0ZXMgYSByYWRpYWwgcGF0dGVybiBvZiBoaWdobHkgc3BlY2lhbGl6ZWQgdGlzc3VlcyB0aGF0IGNvbXByaXNlcyBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHN0YXJ0aW5nIGZyb20gYSBmZXcgZG96ZW4uIFRoaXMgZHluYW1pYyBwcm9jZXNzIGlzIGRpZmZpY3VsdCB0byBmb2xsb3cgYmVjYXVzZSBvZiBpdHMgc2NhbGUgYW5kIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgaW52ZXN0aWdhdGVkIGludmFzaXZlbHksIHByZWNsdWRpbmcgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjZWxsIHByb2xpZmVyYXRpb24sIGRpZmZlcmVudGlhdGlvbiwgYW5kIHBhdHRlcm5pbmcgZXZlbnRzIGludm9sdmVkLiBUbyBvdmVyY29tZSBzdWNoIGxpbWl0YXRpb24sIHdlIGVzdGFibGlzaGVkIGFuIGF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IGFwcHJvYWNoLiBXZSBhY3F1aXJlZCBoeXBvY290eWwgY3Jvc3Mtc2VjdGlvbnMgZnJvbSB0aWxlZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGFuZCBleHRyYWN0ZWQgdGhlaXIgaW5mb3JtYXRpb24gY29udGVudCB1c2luZyBjdXN0b20gaGlnaC10aHJvdWdocHV0IGltYWdlIHByb2Nlc3NpbmcgYW5kIHNlZ21lbnRhdGlvbi4gQ291cGxlZCB3aXRoIGF1dG9tYXRlZCBjZWxsIHR5cGUgcmVjb2duaXRpb24gdGhyb3VnaCBtYWNoaW5lIGxlYXJuaW5nLCB3ZSBjb3VsZCBlc3RhYmxpc2ggYSBjZWxsdWxhciByZXNvbHV0aW9uIGF0bGFzIHRoYXQgcmV2ZWFscyB2YXNjdWxhciBtb3JwaG9keW5hbWljcyBkdXJpbmcgc2Vjb25kYXJ5IGdyb3d0aCwgZm9yIGV4YW1wbGUgZXF1aWRpc3RhbnQgcGhsb2VtIHBvbGUgZm9ybWF0aW9uLjwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8amF0czphYnN0cmFjdCB4bWxuczpqYXRzPSJodHRwOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvSkFUUzEiIGFic3RyYWN0LXR5cGU9ImV4ZWN1dGl2ZS1zdW1tYXJ5Ij4NCiAgICAgICAgICAgICAgICAgIDxqYXRzOnA+T3VyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGxpdmluZyB3b3JsZCBoYXMgYmVlbiBhZHZhbmNlZCBncmVhdGx5IGJ5IHN0dWRpZXMgb2Yg4oCYbW9kZWwgb3JnYW5pc21z4oCZLCBzdWNoIGFzIG1pY2UsIHplYnJhZmlzaCwgYW5kIGZydWl0IGZsaWVzLiBTdHVkeWluZyB0aGVzZSBjcmVhdHVyZXMgaGFzIGJlZW4gY3J1Y2lhbCB0byB1bmNvdmVyaW5nIHRoZSBnZW5lcyB0aGF0IGNvbnRyb2wgaG93IG91ciBib2RpZXMgZGV2ZWxvcCBhbmQgZ3JvdywgYW5kIGFsc28gdG8gZGlzY292ZXIgdGhlIGdlbmV0aWMgYmFzaXMgb2YgZGlzZWFzZXMgc3VjaCBhcyBjYW5jZXIuPC9qYXRzOnA+DQogICAgICAgICAgICAgICAgICA8amF0czpwPlRoYWxlIGNyZXNz4oCUb3IgQXJhYmlkb3BzaXMgdGhhbGlhbmEgdG8gZ2l2ZSBpdHMgZm9ybWFsIG5hbWXigJRpcyB0aGUgbW9kZWwgb3JnYW5pc20gb2YgY2hvaWNlIGZvciBtYW55IHBsYW50IGJpb2xvZ2lzdHMuIFRoaXMgdGlueSB3ZWVkIGhhcyBiZWVuIHdpZGVseSBzdHVkaWVkIGJlY2F1c2UgaXQgY2FuIGNvbXBsZXRlIGl0cyBsaWZlY3ljbGUsIGZyb20gc2VlZCB0byBzZWVkLCBpbiBhYm91dCA2IHdlZWtzLCBhbmQgYmVjYXVzZSBpdHMgcmVsYXRpdmVseSBzbWFsbCBnZW5vbWUgc2ltcGxpZmllcyB0aGUgc2VhcmNoIGZvciBnZW5lcyB0aGF0IGNvbnRyb2wgc3BlY2lmaWMgdHJhaXRzLiBIb3dldmVyLCBhcyB3aXRoIG90aGVyIG11Y2gtc3R1ZGllZCBtb2RlbCBzeXN0ZW1zLCB1bmRlcnN0YW5kaW5nIHRoZSBjaGFuZ2VzIHRoYXQgdW5kZXJwaW4gdGhlIGRldmVsb3BtZW50IG9mIHNvbWUgb2YgdGhlIG1vcmUgY29tcGxleCB0aXNzdWVzIGluIEFyYWJpZG9wc2lzIGhhcyBiZWVuIHNldmVyZWx5IGhhbXBlcmVkIGJ5IHRoZSBzaGVhciBudW1iZXIgb2YgY2VsbHMgaW52b2x2ZWQuPC9qYXRzOnA+DQogICAgICAgICAgICAgICAgICA8amF0czpwPkFmdGVyIGl0IGhhcyBlbWVyZ2VkIGZyb20gdGhlIHNlZWQsIHRoZSBwbGFudOKAmXMgZmlyc3Qgc3RlbSB3aWxsIGRldmVsb3AgZnJvbSBhIGZldyBkb3plbiBjZWxscyBpbiB3aWR0aCB0byBzZXZlcmFsIHRob3VzYW5kIGNlbGxzIHdpdGggaGlnaGx5IHNwZWNpYWxpemVkIHRpc3N1ZXMgYXJyYW5nZWQgaW4gYSBjb21wbGV4IHBhdHRlcm4gb2YgY29uY2VudHJpYyBjaXJjbGVzLiBBbHRob3VnaCB0aGlzIHN0ZW0gdGhpY2tlbmluZyBwcm9jZXNzIHJlcHJlc2VudHMgYSBtYWpvciBkZXZlbG9wbWVudGFsIGNoYW5nZSBpbiBtYW55IHBsYW50c+KAlGZyb20gQXJhYmlkb3BzaXMgdG8gb2FrIHRyZWVz4oCUaXQgaGFzIGJlZW4gdW5kZXItcmVzZWFyY2hlZC4gVGhpcyBpcyBwYXJ0bHkgYmVjYXVzZSBpdCBpbnZvbHZlcyBzbyBtYW55IGRpZmZlcmVudCBjZWxscywgYW5kIGFsc28gYmVjYXVzZSBpdCBjYW4gb25seSBiZSBvYnNlcnZlZCBpbiB0aGluIHNlY3Rpb25zIGN1dCBvdXQgb2YgdGhlIHBsYW504oCZcyBzdGVtLjwvamF0czpwPg0KICAgICAgICAgICAgICAgICAgPGphdHM6cD5Ob3cgU2Fua2FyLCBOaWVtaW5lbiwgUmFnbmkgZXQgYWwuIGhhdmUgZGV2ZWxvcGVkIGEgbm92ZWwgYXBwcm9hY2gsIHRlcm1lZCDigJhhdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neeKAmSwgdG8gb3ZlcmNvbWUgdGhlc2UgcHJvYmxlbXMuIFRoaXMgc3RyYXRlZ3kgaW52b2x2ZXMg4oCYdGVhY2hpbmfigJkgYSBjb21wdXRlciB0byBhdXRvbWF0aWNhbGx5IHJlY29nbml6ZSBkaWZmZXJlbnQgcGxhbnQgY2VsbHMgYW5kIHRvIG1lYXN1cmUgdGhlaXIgaW1wb3J0YW50IGZlYXR1cmVzIGluIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXMgb2YgdGlzc3VlIHNlY3Rpb25zLiBUaGUgcmVzdWx0aW5nIOKAmG1hcOKAmSBvZiB0aGUgZGV2ZWxvcGluZyBzdGVt4oCUd2hpY2ggcmVxdWlyZWQgb3ZlciA4MDAgaHIgb2YgY29tcHV0aW5nIHRpbWUgdG8gY29tcGxldGXigJRyZXZlYWxzIHRoZSBjaGFuZ2VzIHRvIGNlbGxzIGFuZCB0aXNzdWVzIGFzIHRoZXkgZGV2ZWxvcCB0aGF0IGFsbG93IHRoZSB0cmFuc3BvcnQgb2Ygd2F0ZXIsIHN1Z2FycyBhbmQgbnV0cmllbnRzIGJldHdlZW4gdGhlIGFib3ZlLSBhbmQgYmVsb3ctZ3JvdW5kIG9yZ2Fucy4gU2Fua2FyLCBOaWVtaW5lbiwgUmFnbmkgZXQgYWwuIHN1Z2dlc3QgdGhhdCB0aGVpciBub3ZlbCBhcHByb2FjaCBjb3VsZCwgaW4gdGhlIGZ1dHVyZSwgYWxzbyBiZSBhcHBsaWVkIHRvIHN0dWR5IHRoZSBkZXZlbG9wbWVudCBvZiBvdGhlciB0aXNzdWVzIGFuZCBvcmdhbmlzbXMsIGluY2x1ZGluZyBhbmltYWxzLjwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJvbmxpbmUiPg0KICAgICAgICAgICAgICAgICAgPG1vbnRoPjAyPC9tb250aD4NCiAgICAgICAgICAgICAgICAgIDxkYXk+MTE8L2RheT4NCiAgICAgICAgICAgICAgICAgIDx5ZWFyPjIwMTQ8L3llYXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaWNhdGlvbl9kYXRlPg0KICAgICAgICAgICAgICAgIDxwdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICAgIDxpdGVtX251bWJlciBpdGVtX251bWJlcl90eXBlPSJhcnRpY2xlX251bWJlciI+ZTAxNTY3PC9pdGVtX251bWJlcj4NCiAgICAgICAgICAgICAgICAgIDxpZGVudGlmaWVyIGlkX3R5cGU9ImRvaSI+MTAuNzU1NC9lTGlmZS4wMTU2NzwvaWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICA8L3B1Ymxpc2hlcl9pdGVtPg0KICAgICAgICAgICAgICAgIDxmcjpwcm9ncmFtIHhtbG5zOmZyPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy9mdW5kcmVmLnhzZCIgbmFtZT0iZnVuZHJlZiI+DQogICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPlN5c3RlbXNYPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+RU1CTyBsb25ndGVybSBwb3N0LWRvY3RvcmFsIGZlbGxvd3NoaXBzPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+TWFyaWUgSGVpbS1Wb2VndGxpbjwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgIFVuaXZlcnNpdHkgb2YgTGF1c2FubmUNCiAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIiBwcm92aWRlcj0iY3Jvc3NyZWYiPjUwMTEwMDAwNjM5MDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgIDwvZnI6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InZvciI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICA8YWk6bGljZW5zZV9yZWYgYXBwbGllc190bz0iYW0iPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPC9haTpwcm9ncmFtPg0KICAgICAgICAgICAgICAgIDxjcm9zc21hcms+DQogICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX3ZlcnNpb24+MTwvY3Jvc3NtYXJrX3ZlcnNpb24+DQogICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX3BvbGljeT5lTGlmZXNjaWVuY2VzPC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9tYWluPnd3dy5lbGlmZXNjaWVuY2VzLm9yZzwvZG9tYWluPg0KICAgICAgICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPmZhbHNlPC9jcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT4NCiAgICAgICAgICAgICAgICAgIDxjdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icmVjZWl2ZWQiIGxhYmVsPSJSZWNlaXZlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIwIj4yMDEzLTA5LTIwPC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0iYWNjZXB0ZWQiIGxhYmVsPSJBY2NlcHRlZCIgZ3JvdXBfbmFtZT0icHVibGljYXRpb25faGlzdG9yeSIgZ3JvdXBfbGFiZWw9IlB1YmxpY2F0aW9uIEhpc3RvcnkiIG9yZGVyPSIxIj4yMDEzLTEyLTI0PC9hc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhc3NlcnRpb24gbmFtZT0icHVibGlzaGVkIiBsYWJlbD0iUHVibGlzaGVkIiBncm91cF9uYW1lPSJwdWJsaWNhdGlvbl9oaXN0b3J5IiBncm91cF9sYWJlbD0iUHVibGljYXRpb24gSGlzdG9yeSIgb3JkZXI9IjIiPjIwMTQtMDItMTE8L2Fzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGZyOnByb2dyYW0geG1sbnM6ZnI9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL2Z1bmRyZWYueHNkIiBuYW1lPSJmdW5kcmVmIj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRncm91cCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9uYW1lIj5TeXN0ZW1zWDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICBFTUJPDQogICAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiPmh0dHA6Ly9keC5kb2kub3JnLzEwLjEzMDM5LzUwMTEwMDAwMzA0MzwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZ3JvdXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGZyOmFzc2VydGlvbiBuYW1lPSJmdW5kZXJfbmFtZSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXNzIE5hdGlvbmFsIFNjaWVuY2UgRm91bmRhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZnI6YXNzZXJ0aW9uIG5hbWU9ImZ1bmRlcl9pZGVudGlmaWVyIj5odHRwOi8vZHguZG9pLm9yZy8xMC4xMzAzOS81MDExMDAwMDE3MTE8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvZnI6YXNzZXJ0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGdyb3VwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX25hbWUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICBVbml2ZXJzaXR5IG9mIExhdXNhbm5lDQogICAgICAgICAgICAgICAgICAgICAgICAgIDxmcjphc3NlcnRpb24gbmFtZT0iZnVuZGVyX2lkZW50aWZpZXIiIHByb3ZpZGVyPSJjcm9zc3JlZiI+aHR0cDovL2R4LmRvaS5vcmcvMTAuMTMwMzkvNTAxMTAwMDA2MzkwPC9mcjphc3NlcnRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8L2ZyOmFzc2VydGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9mcjpwcm9ncmFtPg0KICAgICAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxhaTpsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJ2b3IiPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgICAgICAgIDxhaTpsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJhbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmIGFwcGxpZXNfdG89InRkbSI+aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICAgIDwvYWk6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICAgIDwvY3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgICAgICAgIDwvY3Jvc3NtYXJrPg0KICAgICAgICAgICAgICAgIDxyZWw6cHJvZ3JhbSB4bWxuczpyZWw9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3JlbGF0aW9ucy54c2QiPg0KICAgICAgICAgICAgICAgICAgPHJlbDpyZWxhdGVkX2l0ZW0+DQogICAgICAgICAgICAgICAgICAgIDxyZWw6ZGVzY3JpcHRpb24+RGF0YSBmcm9tOiBBdXRvbWF0ZWQgcXVhbnRpdGF0aXZlIGhpc3RvbG9neSByZXZlYWxzIHZhc2N1bGFyIG1vcnBob2R5bmFtaWNzIGR1cmluZyBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aDwvcmVsOmRlc2NyaXB0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8cmVsOmludGVyX3dvcmtfcmVsYXRpb24gaWRlbnRpZmllci10eXBlPSJkb2kiIHJlbGF0aW9uc2hpcC10eXBlPSJpc1N1cHBsZW1lbnRlZEJ5Ij4xMC41MDYxL2RyeWFkLmI4MzVrPC9yZWw6aW50ZXJfd29ya19yZWxhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvcmVsOnJlbGF0ZWRfaXRlbT4NCiAgICAgICAgICAgICAgICA8L3JlbDpwcm9ncmFtPg0KICAgICAgICAgICAgICAgIDxhcmNoaXZlX2xvY2F0aW9ucz4NCiAgICAgICAgICAgICAgICAgIDxhcmNoaXZlIG5hbWU9IkNMT0NLU1MiIC8+DQogICAgICAgICAgICAgICAgPC9hcmNoaXZlX2xvY2F0aW9ucz4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1Njc8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJ0ZXh0LW1pbmluZyI+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3BkZiI+aHR0cHM6Ly9jZG4uZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZWxpZmUtMDE1NjctdjEucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi94bWwiPmh0dHBzOi8vY2RuLmVsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2VsaWZlLTAxNTY3LXYxLnhtbDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgIDwvY29sbGVjdGlvbj4NCiAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxjaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Cb25rZTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQyNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xODE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QVBMIHJlZ3VsYXRlcyB2YXNjdWxhciB0aXNzdWUgaWRlbnRpdHkgaW4gQXJhYmlkb3BzaXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYXR1cmUwMjEwMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5HZW5ldGljczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5CcmVubmVyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTgyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQxMzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5JbiB0aGUgYmVnaW5uaW5nIHdhcyB0aGUgd29ybTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xNTM0L2dlbmV0aWNzLjEwOS4xMDQ5NzY8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIzIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UGh5c2lvbG9naWEgUGxhbnRhcnVtPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkNoYWZmZXk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTk0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlNlY29uZGFyeSB4eWxlbSBkZXZlbG9wbWVudCBpbiBBcmFiaWRvcHNpczogYSBtb2RlbCBmb3Igd29vZCBmb3JtYXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzNC9qLjEzOTktMzA1NC4yMDAyLjExNDA0MTMueDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OZXVyYWwgY29tcHV0YXRpb248L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Q2hhbmc8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMTE5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlRyYWluaW5nIG51LXN1cHBvcnQgdmVjdG9yIGNsYXNzaWZpZXJzOiB0aGVvcnkgYW5kIGFsZ29yaXRobXM8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2Mi8wODk5NzY2MDE3NTAzOTkzMzU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TWFjaGluZSBMZWFybmluZzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Db3J0ZXM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNzM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk1PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMDcvQkYwMDk5NDAxODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5TdXBwb3J0LXZlY3RvciBOZXR3b3JrczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWI2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGV2ZWxvcG1lbnQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RG9sYW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTkzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2VsbHVsYXIgb3JnYW5pc2F0aW9uIG9mIHRoZSBBcmFiaWRvcHNpcyB0aGFsaWFuYSByb290PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TZW1pbmFycyBpbiBDZWxsICZhbXA7IERldmVsb3BtZW50YWwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FbG88L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMDk3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwOTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlN0ZW0gY2VsbCBmdW5jdGlvbiBkdXJpbmcgcGxhbnQgdmFzY3VsYXIgZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLnNlbWNkYi4yMDA5LjA5LjAwOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5EZXZlbG9wbWVudDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FdGNoZWxsczwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE0MDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMjI0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPldPWDQgYW5kIFdPWDE0IGFjdCBkb3duc3RyZWFtIG9mIHRoZSBQWFkgcmVjZXB0b3Iga2luYXNlIHRvIHJlZ3VsYXRlIHBsYW50IHZhc2N1bGFyIHByb2xpZmVyYXRpb24gaW5kZXBlbmRlbnRseSBvZiBhbnkgcm9sZSBpbiB2YXNjdWxhciBvcmdhbmlzYXRpb248L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTI0Mi9kZXYuMDkxMzE0PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBMT1MgR2VuZXRpY3M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RXRjaGVsbHM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT44PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPmUxMDAyOTk3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlBsYW50IHZhc2N1bGFyIGNlbGwgZGl2aXNpb24gaXMgbWFpbnRhaW5lZCBieSBhbiBpbnRlcmFjdGlvbiBiZXR3ZWVuIFBYWSBhbmQgZXRoeWxlbmUgc2lnbmFsbGluZzwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMzcxL2pvdXJuYWwucGdlbi4xMDAyOTk3PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTAiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Nb2xlY3VsYXIgU3lzdGVtcyBCaW9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkZ1Y2hzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Njwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4zNzA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Q2x1c3RlcmluZyBwaGVub3R5cGUgcG9wdWxhdGlvbnMgYnkgZ2Vub21lLXdpZGUgUk5BaSBhbmQgbXVsdGlwYXJhbWV0cmljIGltYWdpbmc8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9tc2IuMjAxMC4yNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjExIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QmlvIFN5c3RlbXM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+R3JhbnF2aXN0PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTEwPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjYwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkJhU0FSLUEgdG9vbCBpbiBSIGZvciBmcmVxdWVuY3kgZGV0ZWN0aW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5iaW9zeXN0ZW1zLjIwMTIuMDcuMDA0PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DdXJyZW50IE9waW5pb24gaW4gUGxhbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5Hcm9vdmVyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+OTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5EZXZlbG9wbWVudGFsIG1lY2hhbmlzbXMgcmVndWxhdGluZyBzZWNvbmRhcnkgZ3Jvd3RoIGluIHdvb2R5IHBsYW50czwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2oucGJpLjIwMDUuMTEuMDEzPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBDZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhpcmFrYXdhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjYxODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5URElGIHBlcHRpZGUgc2lnbmFsaW5nIHJlZ3VsYXRlcyB2YXNjdWxhciBzdGVtIGNlbGwgcHJvbGlmZXJhdGlvbiB2aWEgdGhlIFdPWDQgaG9tZW9ib3ggZ2VuZSBpbiBBcmFiaWRvcHNpczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTA1L3RwYy4xMTAuMDc2MDgzPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMTQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Qcm9jZWVkaW5ncyBvZiB0aGUgTmF0aW9uYWwgQWNhZGVteSBvZiBTY2llbmNlcyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkhpcmFrYXdhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTA1PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE1MjA4PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPk5vbi1jZWxsLWF1dG9ub21vdXMgY29udHJvbCBvZiB2YXNjdWxhciBzdGVtIGNlbGwgZmF0ZSBieSBhIENMRSBwZXB0aWRlL3JlY2VwdG9yIHN5c3RlbTwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDczL3BuYXMuMDgwODQ0NDEwNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q2VsbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5NZXllcm93aXR6PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NTY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjYzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4OTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkFyYWJpZG9wc2lzLCBhIHVzZWZ1bCB3ZWVkPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvMDA5Mi04Njc0KDg5KTkwOTAwLTg8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlNjaWVuY2U8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TWV5ZXJvd2l0ejwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjI5NTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNDgyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPlBsYW50cyBjb21wYXJlZCB0byBhbmltYWxzOiB0aGUgYnJvYWRlc3QgY29tcGFyYXRpdmUgc3R1ZHkgb2YgZGV2ZWxvcG1lbnQ8L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEyNi9zY2llbmNlLjEwNjY2MDk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxNyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlBsYW50IFBoeXNpb2w8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TmllbWluZW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMzU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NjUzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkEgd2VlZCBmb3Igd29vZD8gQXJhYmlkb3BzaXMgYXMgYSBnZW5ldGljIG1vZGVsIGZvciB4eWxlbSBkZXZlbG9wbWVudDwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTA0L3BwLjEwNC4wNDAyMTI8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxOCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZSBCaW90ZWNobm9sb2d5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPk5vYmxlPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTU2NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5XaGF0IGlzIGEgc3VwcG9ydCB2ZWN0b3IgbWFjaGluZT88L2FydGljbGVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYnQxMjA2LTE1NjU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIxOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlByb2NlZWRpbmdzIG9mIHRoZSBOYXRpb25hbCBBY2FkZW15IG9mIFNjaWVuY2VzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2E8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+T2xzb248L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT43Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xNTE2PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4MDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlX3RpdGxlPkNsYXNzaWZpY2F0aW9uIG9mIGN1bHR1cmVkIG1hbW1hbGlhbiBjZWxscyBieSBzaGFwZSBhbmFseXNpcyBhbmQgcGF0dGVybiByZWNvZ25pdGlvbjwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDczL3BuYXMuNzcuMy4xNTE2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjAiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5CaW9pbmZvcm1hdGljczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5QYXU8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45Nzk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+RUJJbWFnZeKAk2FuIFIgcGFja2FnZSBmb3IgaW1hZ2UgcHJvY2Vzc2luZyB3aXRoIGFwcGxpY2F0aW9ucyB0byBjZWxsdWxhciBwaGVub3R5cGVzPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwOTMvYmlvaW5mb3JtYXRpY3MvYnRxMDQ2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjEiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QbGFudCBDZWxsPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlJhZ25pPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTMyMjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Nb2JpbGUgZ2liYmVyZWxsaW4gZGlyZWN0bHkgc3RpbXVsYXRlcyBBcmFiaWRvcHNpcyBoeXBvY290eWwgeHlsZW0gZXhwYW5zaW9uPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMDUvdHBjLjExMS4wODQwMjA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyMiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkRyeWFkIERpZ2l0YWwgUmVwb3NpdG9yeTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TYW5rYXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5EYXRhIGZyb206IEF1dG9tYXRlZCBxdWFudGl0YXRpdmUgaGlzdG9sb2d5IHJldmVhbHMgdmFzY3VsYXIgbW9ycGhvZHluYW1pY3MgZHVyaW5nIEFyYWJpZG9wc2lzIGh5cG9jb3R5bCBzZWNvbmRhcnkgZ3Jvd3RoPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjUwNjEvZHJ5YWQuYjgzNWs8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyMyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkN1cnJlbnQgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TaWJvdXQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+Rmxvd2VyaW5nIGFzIGEgY29uZGl0aW9uIGZvciB4eWxlbSBleHBhbnNpb24gaW4gQXJhYmlkb3BzaXMgaHlwb2NvdHlsIGFuZCByb290PC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5jdWIuMjAwOC4wMi4wNzA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlRoZSBOZXcgUGh5dG9sb2dpc3Q8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+U3BpY2VyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTg2PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU3NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5Fdm9sdXRpb24gb2YgZGV2ZWxvcG1lbnQgb2YgdmFzY3VsYXIgY2FtYmlhIGFuZCBzZWNvbmRhcnkgZ3Jvd3RoPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMTEvai4xNDY5LTgxMzcuMjAxMC4wMzIzNi54PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYmliMjUiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5NYWNoaW5lIFZpc2lvbiBhbmQgQXBwbGljYXRpb25zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlRoZXJpYXVsdDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjIzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjY1OTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5DZWxsIG1vcnBob2xvZ3kgY2xhc3NpZmljYXRpb24gYW5kIGNsdXR0ZXIgbWl0aWdhdGlvbiBpbiBwaGFzZS1jb250cmFzdCBtaWNyb3Njb3B5IGltYWdlcyB1c2luZyBtYWNoaW5lIGxlYXJuaW5nPC9hcnRpY2xlX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMDcvczAwMTM4LTAxMS0wMzQ1LTk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJiaWIyNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+VXl0dGV3YWFsPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTQ5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQzOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZV90aXRsZT5NZWNoYW5pY2FsIHN0cmVzcyBhY3RzIHZpYSBrYXRhbmluIHRvIGFtcGxpZnkgZGlmZmVyZW5jZXMgaW4gZ3Jvd3RoIHJhdGUgYmV0d2VlbiBhZGphY2VudCBjZWxscyBpbiBBcmFiaWRvcHNpczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouY2VsbC4yMDEyLjAyLjA0ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImJpYjI3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlIENlbGwgQmlvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5ZaW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xNTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT44NjA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+QSBzY3JlZW4gZm9yIG1vcnBob2xvZ2ljYWwgY29tcGxleGl0eSBpZGVudGlmaWVzIHJlZ3VsYXRvcnMgb2Ygc3dpdGNoLWxpa2UgdHJhbnNpdGlvbnMgYmV0d2VlbiBkaXNjcmV0ZSBjZWxsIHNoYXBlczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25jYjI3NjQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICAgIDxjb21wb25lbnRfbGlzdD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkFic3RyYWN0PC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2Fic3RyYWN0PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+ZUxpZmUgZGlnZXN0PC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJ0ZXh0L3BsYWluIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2RpZ2VzdDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSAxLiBDZWxsdWxhciBsZXZlbCBhbmFseXNpcyBvZiBBcmFiaWRvcHNpcyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aC48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSkgTGlnaHQgbWljcm9zY29weSBvZiBjcm9zcyBzZWN0aW9ucyBvYnRhaW5lZCBmcm9tIEFyYWJpZG9wc2lzIGh5cG9jb3R5bHMgKG9yZ2FuIHBvc2l0aW9uIGlsbHVzdHJhdGVkIGZvciBhIDktZGF5LW9sZCBzZWVkbGluZywgbG93ZXIgbGVmdCkgYXQgOSBkYWcgKHVwcGVyIGxlZnQpIGFuZCAzNSBkYWcgKHJpZ2h0KS4gU2l6ZSBiYXJzIGFyZSAxMDAgzrxtLiBCbHVlIEdVUyBzdGFpbmluZyBkdWUgdG8gdGhlIHByZXNlbmNlIG9mIGFuIEFQTDo6R1VTIHJlcG9ydGVyIGdlbmUgaW4gdGhpcyBDb2wtMCBiYWNrZ3JvdW5kIGxpbmUgbWFya3MgcGhsb2VtIGJ1bmRsZXMuIChCKSBPdmVydmlldyBvZiB0aGUgZGV2ZWxvcG1lbnRhbCBzZXJpZXMgKHRpbWUgcG9pbnRzIGFuZCBkaXN0aW5jdCBzYW1wbGVzIHBlciBnZW5vdHlwZSkgYW5hbHl6ZWQgaW4gdGhpcyBzdHVkeS4gKEMpIEV4YW1wbGUgb2YgYSBoaWdoLXJlc29sdXRpb24gaHlwb2NvdHlsIHNlY3Rpb24gaW1hZ2UgYXNzZW1ibGVkIGZyb20gMTEgw5cgMTEgdGlsZXMuIChEKSBUaGUgc2FtZSBpbWFnZSBhZnRlciBwcmUtcHJvY2Vzc2luZyBhbmQgYmluYXJpemF0aW9uLCBhbmQgKEUpIHN1YnNlcXVlbnQgc2VnbWVudGF0aW9uIHVzaW5nIGEgd2F0ZXJzaGVkIGFsZ29yaXRobS4gKEYpIE51bWJlciBvZiBtaXMtc2VnbWVudGVkIGNlbGxzIGFzIGRldGVybWluZWQgYnkgY2FyZWZ1bCB2aXN1YWwgaW5zcGVjdGlvbiBpbiAxMiBzZWN0aW9ucywgcGxvdHRlZCBhZ2FpbnN0IHRoZSB0b3RhbCBudW1iZXIgb2YgY2VsbHMgcGVyIHNlY3Rpb24gKGxvZyBzY2FsZSkuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwMzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMi4gVGhlIOKAmFF1YW50aXRhdGl2ZSBIaXN0b2xvZ3nigJkgYXBwcm9hY2guPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIE92ZXJ2aWV3IG9mIHRoZSBjb21wdXRhdGlvbmFsIHBpcGVsaW5lIGZyb20gaW1hZ2UgYWNxdWlzaXRpb24gdG8gYW5hbHlzaXMuIChCKSDigJhQaGVub3ByaW50c+KAmSBmb3IgdGhlIGRpZmZlcmVudCBnZW5vdHlwZXMgYW5kIGRldmVsb3BtZW50YWwgc3RhZ2VzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWcyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDLigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBleGFtcGxlIG9mIGNsYXNzaWZpZXIgc2VsZWN0aW9uIHRocm91Z2ggVi1mb2xkIGNyb3NzIHZhbGlkYXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGdyZWVuIGFycm93IHBvaW50cyBvdXQgdGhlIHNlbGVjdGVkIGZlYXR1cmUgY29tYmluYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBjcml0ZXJpYSBvZiBtaW5pbXVtIG51bWJlciBvZiBmZWF0dXJlcyB3aXRoIHRoZSBoaWdoZXN0IHBlcmZvcm1hbmNlIGFuZCB0aGUgbG93ZXN0IHZhcmlhdGlvbiAodGhlIHJhZGl1c1YgZmVhdHVyZSB3YXMgZXhjbHVkZWQgZHVlIHRvIGl0cyBwdXRhdGl2ZSB2YXJpYXRpb24gaW4gdGlzc3VlIGxvY2F0aW9uKS48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNmaWcyczE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgMy4gUHJvZ3Jlc3Npb24gb2YgdGlzc3VlIHByb2xpZmVyYXRpb24uPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+KEEpIFByaW5jaXBhbCBjb21wb25lbnQgYW5hbHlzaXMgKFBDQSkgb2YgdGhlIHBoZW5vcHJpbnRzIHNob3duIGluIEZpZ3VyZSAyQiwgcGVyZm9ybWVkIHdpdGggbm9ybWFsaXplZCB2YWx1ZXMgKFN1cHBsZW1lbnRhcnkgZmlsZSA0KS4gVGhlIGlubGF5IHNjcmVlcGxvdCBkaXNwbGF5cyB0aGUgcHJvcG9ydGlvbiBvZiB0b3RhbCB2YXJpYXRpb24gZXhwbGFpbmVkIGJ5IGVhY2ggcHJpbmNpcGFsIGNvbXBvbmVudC4gKELigJNFKSBDb21wYXJhdGl2ZSBwbG90cyBvZiBwYXJhbWV0ZXIgcHJvZ3Jlc3Npb24gaW4gdGhlIHR3byBnZW5vdHlwZXMuIEluIChEKSwgeHlsZW0gcmVwcmVzZW50cyBjb21iaW5lZCB2ZXNzZWwsIHBhcmVuY2h5bWEsIGFuZCBmaWJlciBjZWxscywgcGhsb2VtIHJlcHJlc2VudHMgY29tYmluZWQgcGhsb2VtIHBhcmVuY2h5bWEgYW5kIGJ1bmRsZSBjZWxscy4gRXJyb3IgYmFycyBpbmRpY2F0ZSBzdGFuZGFyZCBlcnJvci48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDA2PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnMzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkZpZ3VyZSA0LiBCaW1vZGFsIGRpc3RyaWJ1dGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGFjY29yZGluZyB0byBwb3NpdGlvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQSBhbmQgQikgU3BhdGlhbCBkaXN0cmlidXRpb24gb2YgY2VsbCBpbmNsaW5lIGFuZ2xlIGlsbHVzdHJhdGVzIHRoZSB2YXNjdWxhciBvcmdhbml6YXRpb24gaW4gTGVyIChCKSBhcyBjb21wYXJlZCB0byBDb2wtMCAoQSkgYXQgbGF0ZXIgc3RhZ2VzIG9mIGRldmVsb3BtZW50LCBmb3IgZXhhbXBsZSAzMCBkYWcuIFRoZSBzaXplIG9mIHRoZSBkaXNjIGluY3JlYXNlcyB3aXRoIHRoZSBhcmVhIG9mIHRoZSBjZWxsLiBCbHVlIGNvbG9yIGluZGljYXRlcyByYWRpYWwgY2VsbCBvcmllbnRhdGlvbiwgcmVkIG9ydGhvcmFkaWFsLiAoQyBhbmQgRCkgVmlvbGluIHBsb3RzIG9mIGluY2xpbmUgYW5nbGUgZGlzdHJpYnV0aW9uLCBpbGx1c3RyYXRpbmcgaW5jcmVhc2luZ2x5IGJpbW9kYWwgZGlzdHJpYnV0aW9uIGNvaW5jaWRlbnQgd2l0aCByZWZpbmVkIHZhc2N1bGFyIG9yZ2FuaXphdGlvbiBhbmQgZGlmZmVyZW50IGR5bmFtaWNzIG9mIHRoZSBwcm9jZXNzIGluIHRoZSB0d28gZ2Vub3R5cGVzLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iaW1hZ2UvdGlmZiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMDc8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNmaWc0PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDTigJRmaWd1cmUgc3VwcGxlbWVudCAxLiBBbiBpbGx1c3RyYXRpb24gb2YgdGhlIGluY2xpbmUgYW5nbGUuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+VGhlIGluY2xpbmUgaXMgdGhlIGFuZ2xlIGJldHdlZW4gdGhlIHNlY3Rpb24gcmFkaXVzIHRocm91Z2ggdGhlIGNlbnRlciBvZiBhbiBlbGxpcHNlIGZpdCB0byBhIGNlbGwgYW5kIHRoZSBtYWpvciBheGlzIG9mIHRoYXQgZWxsaXBzZSBleHRlbmRlZCB0b3dhcmRzIHRoZSB4IGF4aXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3L2ZpZ3VyZXMjZmlnNHMxPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+RmlndXJlIDUuIERpc3RpbmN0IGxvY2FsIG9yZ2FuaXphdGlvbiBvZiBpbmNsaW5lIGFuZ2xlIGR1cmluZyBoeXBvY290eWwgc2Vjb25kYXJ5IGdyb3d0aCBwcm9ncmVzc2lvbi48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT4oQeKAk0opIERlbnNpdHkgcGxvdHMgb2YgY2VsbCBpbmNsaW5lIGFuZ2xlIHZzIHJhZGlhbCBwb3NpdGlvbiBmb3IgdGhlIHR3byBnZW5vdHlwZXMgYXQgdGhlIGluZGljYXRlZCBkZXZlbG9wbWVudGFsIHN0YWdlcywgcmVwcmVzZW50aW5nIGFsbCBjZWxscyBhY3Jvc3MgYWxsIHNlY3Rpb25zIGZvciBhIGdpdmVuIHRpbWUgcG9pbnQuIFRoZSByZWQgbGluZXMgcmVwcmVzZW50IHRoZSBmaXQgb2YgdGhlc2UgY2xvdWQgZGlzdHJpYnV0aW9ucyB3aXRoIGxvY2FsbHkgd2VpZ2h0ZWQgbGluZWFyIHJlZ3Jlc3Npb24gKGkuZS4sIGxvd2VzcyksIHJldmVhbGluZyB0aGUgZXNzZW50aWFsIGRhdGEgdHJlbmRzLiBBbGwgc2VjdGlvbnMgd2VyZSBub3JtYWxpemVkIGZyb20gMC4wICh0aGUgbWFudWFsbHkgZGVmaW5lZCBjZW50ZXIpIHRvIDEuMCAodGhlIGF2ZXJhZ2UgcmFkaXVzIGluIGEgc2V0IG9mIHNlY3Rpb25zIGFzIGRldGVybWluZWQgYnkgdGhlIGF2ZXJhZ2UgZGlzdGFuY2Ugb2YgdGhlIG91dGVybW9zdCBjZWxscyBmcm9tIHRoZSBjZW50ZXIgZm9yIGluZGl2aWR1YWwgc2VjdGlvbnMpLiBCb3ggcGxvdHMgaW5kaWNhdGUgdGhlIHF1YXJ0aWxlcyBvZiB0aGUgcmFkaWFuIGRpc3RyaWJ1dGlvbiBmb3IgZWFjaCBjZWxsLXR5cGUgY2xhc3MgYW5kIGFyZSBwbGFjZWQgYXQgdGhlIGF2ZXJhZ2UgcG9zaXRpb24gb2YgdGhlIGNlbGwgdHlwZSB3aXRoIHJlc3BlY3QgdG8gdGhlIHkgYXhpcy4gT3V0bGllcnMgYXJlIHNob3duIGFzIGNpcmNsZXMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJpbWFnZS90aWZmIiAvPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43NTU0L2VMaWZlLjAxNTY3LjAwOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwczovL2VsaWZlc2NpZW5jZXMub3JnL2FydGljbGVzLzAxNTY3I2ZpZzU8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNeKAlGZpZ3VyZSBzdXBwbGVtZW50IDEuIEFuYWx5c2lzIG9mIGNlbGwgbnVtYmVyIGluIGRlZmluZWQgeHlsZW0gcmVnaW9ucyBvZiBkaWZmZXJlbnQgc2l6ZS48L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICAgIDxzdWJ0aXRsZT5DZWxsIG51bWJlciBpbiBhIGNpcmNsZSBvZiAyMDDigJM1MDAgcGl4ZWxzIGFyb3VuZCB0aGUgc2VjdGlvbiBjZW50ZXJzIGZvciBDb2wtMC4gQ2VsbCBjb3VudCBpbiBhIGNvbnN0YW50IGFyZWEgb2YgeHlsZW0gb3ZlciB0aW1lIGFjcm9zcyBhbGwgYXZlcmFnZWQgYWNyb3NzIGFsbCBzZWN0aW9ucy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDEwPC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNmaWc1czE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5GaWd1cmUgNi4gTWFwcGluZyBvZiBwaGxvZW0gcG9sZSBwYXR0ZXJuaW5nLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBFeGFtcGxlIG9mIEdhdXNzaWFuIGtlcm5lbCBkZW5zaXR5IGVzdGltYXRlIG9mIHRoZSBsb2NhdGlvbiBvZiBwcmVkaWN0ZWQgcGhsb2VtIGJ1bmRsZXMgY2VsbHMgaW4gYSAzMCBkYWcgQ29sLTAgc2VjdGlvbi4gSGlnaCBkZW5zaXR5IHJlcHJlc2VudHMgcGhsb2VtIHBvbGVzLiAoQikgRXhhbXBsZSBvZiBhbiBhbmFseXNpcyBvZiBlbWVyZ2luZyBwaGxvZW0gcG9sZSBwb3NpdGlvbiBpbiBhIDMwIGRhZyBDb2wtMCBzZWN0aW9uLiBUaGUgcGxvdCByZXByZXNlbnRzIGEgcGl4ZWwgaW50ZW5zaXR5IG1hcCBhZnRlciBub2lzZSByZWR1Y3Rpb24gYWxvbmcgYSBjaXJjdWxhciByZWdpb24gb2YgaW50ZXJlc3QgYWNyb3NzIHRoZSBlbWVyZ2luZyBwaGxvZW0gcG9sZXMuIEludGVuc2l0eSBwZWFrcyBhcmUgZHVlIHRvIEdVUyBzdGFpbmluZyBjb25mZXJyZWQgdG8gcGhsb2VtIGJ1bmRsZXMgYnkgYW4gQVBMOjpHVVMgcmVwb3J0ZXIgY29uc3RydWN0LiAoQykgUHJvYmFiaWxpdHkgZGVuc2l0eSBmdW5jdGlvbiBvZiB0aGUgZGF0YSBzaG93biBpbiAoQikgb2J0YWluZWQgZnJvbSBhbiBhdXRvbWF0ZWQgQmF5ZXNpYW4gbW9kZWwuIFRoZSBkb21pbmFudCBzaW5nbGUgcGVhayBpbmRpY2F0ZXMgYSBjb25zdGFudCBhcmMgZGlzdGFuY2Ugb2YgY2EuIDYyIHBpeGVsIGJldHdlZW4gdGhlIHBobG9lbSBwb2xlcy48L3N1YnRpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9ImltYWdlL3RpZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDExPC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjZmlnNjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSAxLjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPihBKSBBbiBleHBsYW5hdGlvbiBvZiB0aGUgZXh0cmFjdGVkIHBhcmFtZXRlcnMgdGhhdCBkZXNjcmliZSB0aGUgY2VsbHVsYXIgZmVhdHVyZXMuIChCKSBTdW1tYXJ5IGluZm9ybWF0aW9uIG9mIHRoZSBoYW5kLWxhYmVsZWQgdHJhaW5pbmcgc2V0IGZvciBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcuIChDKSBEZWZpbml0aW9uIG9mIHRoZSBjbGFzc2lmaWVycyBzZWxlY3RlZCBmb3IgYW5hbHlzaXMuIChEKSBTdW1tYXJ5IG9mIHRoZSBjbGFzc2lmaWVyIHBhcmFtZXRlcnMgZm9yIHN1cGVydmlzZWQgbWFjaGluZSBsZWFybmluZy4gKEUpIE92ZXJ2aWV3IG9mIHRoZSBjZWxsIHR5cGUgY2xhc3NlcyByZWNvZ25pemVkIGJ5IHRoZSBzdXBlcnZpc2VkIG1hY2hpbmUgbGVhcm5pbmcgYXBwcm9hY2ggYW5kIHRoZWlyIGFzc2lnbm1lbnQgY29kZXMgdXNlZCBpbiBEYXRhIEZpbGVzIDMgYW5kIDQuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTI8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI1NEMS1kYXRhPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3VwcGxlbWVudGFyeSBmaWxlIDIuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+UXVhbGl0eSBjb250cm9sIGZpbGVzIGZvciB0aGUgQ29sLTAgc2VjdGlvbnMuPC9zdWJ0aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtYXQgbWltZV90eXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTM8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2Ny9maWd1cmVzI1NEMi1kYXRhPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgICAgPGNvbXBvbmVudCBwYXJlbnRfcmVsYXRpb249ImlzUGFydE9mIj4NCiAgICAgICAgICAgICAgICAgICAgPHRpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3VwcGxlbWVudGFyeSBmaWxlIDMuPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgICA8c3VidGl0bGU+UXVhbGl0eSBjb250cm9sIGZpbGVzIGZvciB0aGUgTGVyIHNlY3Rpb25zLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE0PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDMtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPlN1cHBsZW1lbnRhcnkgZmlsZSA0LjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgICAgPHN1YnRpdGxlPlRoZSBub3JtYWxpemVkIHZhbHVlcyBvZiB0aGUgcGhlbm9wcmludHMgKEZpZ3VyZSAyQikgdXNlZCBmb3IgUENBLjwvc3VidGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcvZmlndXJlcyNTRDQtZGF0YTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8L2NvbXBvbmVudD4NCiAgICAgICAgICAgICAgICAgIDxjb21wb25lbnQgcGFyZW50X3JlbGF0aW9uPSJpc1BhcnRPZiI+DQogICAgICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkRlY2lzaW9uIGxldHRlcjwvdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8Zm9ybWF0IG1pbWVfdHlwZT0idGV4dC9wbGFpbiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNzU1NC9lTGlmZS4wMTU2Ny4wMTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9lbGlmZXNjaWVuY2VzLm9yZy9hcnRpY2xlcy8wMTU2NyNTQTE8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPC9jb21wb25lbnQ+DQogICAgICAgICAgICAgICAgICA8Y29tcG9uZW50IHBhcmVudF9yZWxhdGlvbj0iaXNQYXJ0T2YiPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5BdXRob3IgcmVzcG9uc2U8L3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgICAgPGZvcm1hdCBtaW1lX3R5cGU9InRleHQvcGxhaW4iIC8+DQogICAgICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc1NTQvZUxpZmUuMDE1NjcuMDE3PC9kb2k+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHBzOi8vZWxpZmVzY2llbmNlcy5vcmcvYXJ0aWNsZXMvMDE1NjcjU0EyPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDwvY29tcG9uZW50Pg0KICAgICAgICAgICAgICAgIDwvY29tcG9uZW50X2xpc3Q+DQogICAgICAgICAgICAgIDwvam91cm5hbF9hcnRpY2xlPg0KICAgICAgICAgICAgPC9qb3VybmFsPg0KICAgICAgICAgIDwvY3Jvc3NyZWY+DQogICAgICAgIDwvZG9pX3JlY29yZD4NCiAgICAgIDwvcXVlcnk+DQogICAgPC9ib2R5Pg0KICA8L3F1ZXJ5X3Jlc3VsdD4NCjwvY3Jvc3NyZWZfcmVzdWx0Pg==
49
+ http_version:
50
+ recorded_at: Sun, 12 Jul 2020 11:25:35 GMT
51
51
  recorded_with: VCR 3.0.3
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - Mozilla/5.0 (compatible; Maremma/4.6; mailto:info@datacite.org)
11
+ - Mozilla/5.0 (compatible; Maremma/4.7.1; mailto:info@datacite.org)
12
12
  Accept:
13
13
  - text/xml
14
14
  response:
@@ -32,7 +32,7 @@ http_interactions:
32
32
  Server:
33
33
  - http-kit
34
34
  Date:
35
- - Tue, 25 Feb 2020 14:40:00 GMT
35
+ - Sun, 12 Jul 2020 11:25:34 GMT
36
36
  X-Rate-Limit-Limit:
37
37
  - '50'
38
38
  X-Rate-Limit-Interval:
@@ -42,7 +42,7 @@ http_interactions:
42
42
  body:
43
43
  encoding: ASCII-8BIT
44
44
  string: !binary |-
45
- PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC4xMTU1LzIwMTIvMjkxMjk0PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5IaW5kYXdpIExpbWl0ZWQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icHJlZml4LW5hbWUiIHR5cGU9InN0cmluZyI+SGluZGF3aSBMaW1pdGVkPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im1lbWJlci1pZCIgdHlwZT0ibnVtYmVyIj45ODwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRhdGlvbi1pZCIgdHlwZT0ibnVtYmVyIj41OTI5OTA2ODwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJqb3VybmFsLWlkIiB0eXBlPSJudW1iZXIiPjEwMzEyNTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJkZXBvc2l0LXRpbWVzdGFtcCIgdHlwZT0ibnVtYmVyIj4yMDE2MDgwMjAzNDEyNTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJvd25lci1wcmVmaXgiIHR5cGU9InN0cmluZyI+MTAuMTE1NTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJsYXN0LXVwZGF0ZSIgdHlwZT0iZGF0ZSI+MjAxNi0wOC0wMlQxODo0Mjo0MVo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY3JlYXRlZCIgdHlwZT0iZGF0ZSI+MjAxMi0xMi0zMFQyMTowNTowMVo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0ZWRieS1jb3VudCIgdHlwZT0ibnVtYmVyIj4yNDwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4xLnhzZCI+DQogICAgICAgICAgICA8am91cm5hbD4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICAgICAgICA8ZnVsbF90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2Z1bGxfdGl0bGU+DQogICAgICAgICAgICAgICAgPGFiYnJldl90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2FiYnJldl90aXRsZT4NCiAgICAgICAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJwcmludCI+MjA5MC0xODM2PC9pc3NuPg0KICAgICAgICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjIwOTAtMTg0NDwvaXNzbj4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8am91cm5hbF9pc3N1ZT4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICAgICAgICA8dm9sdW1lPjIwMTI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPHRpdGxlPkRlbGluZWF0aW5nIGEgUmV0ZXN0aW5nIFpvbmUgVXNpbmcgUmVjZWl2ZXIgT3BlcmF0aW5nIENoYXJhY3RlcmlzdGljIEFuYWx5c2lzIG9uIFNlcmlhbCBRdWFudGlGRVJPTiBUdWJlcmN1bG9zaXMgVGVzdCBSZXN1bHRzIGluIFVTIEhlYWx0aGNhcmUgV29ya2VyczwvdGl0bGU+DQogICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iZmlyc3QiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPldlbmR5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5UaGFuYXNzaTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgTWVkaWNpbmUsIFZldGVyYW5zIEFmZmFpcnMgUGFsbyBBbHRvIEhlYWx0aCBDYXJlIFN5c3RlbSwgMzgwMSBNaXJhbmRhIEF2ZW51ZSBNQy0sIFBhbG8gQWx0bywgQ0EgOTQzMDQtMTIwNywgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPk9jY3VwYXRpb25hbCBIZWFsdGggU3RyYXRlZ2ljIEhlYWx0aCBDYXJlIEdyb3VwLCBPZmZpY2Ugb2YgUHVibGljIEhlYWx0aCwgVmV0ZXJhbnMgSGVhbHRoIEFkbWluaXN0cmF0aW9uLCBXYXNoaW5ndG9uLCBEQyAyMDAwNiwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRpdmlzaW9uIG9mIEVtZXJnZW5jeSBNZWRpY2luZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5BcnQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPk5vZGE8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQc3ljaGlhdHJ5IGFuZCBCZWhhdmlvcmFsIFNjaWVuY2VzLCBTdGFuZm9yZCBVbml2ZXJzaXR5IFNjaG9vbCBvZiBNZWRpY2luZSwgU3RhbmZvcmQsIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+QmVhdHJpejwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+SGVybmFuZGV6PC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+V2FyIFJlbGF0ZWQgSWxsbmVzcyBhbmQgSW5qdXJ5IFN0dWR5IENlbnRlciAoV1JJSVNDKSBhbmQgTWVudGFsIElsbG5lc3MgUmVzZWFyY2ggRWR1Y2F0aW9uIGFuZCBDbGluaWNhbCBDZW50ZXIgKE1JUkVDQyksIERlcGFydG1lbnQgb2YgVmV0ZXJhbnMgQWZmYWlycywgUGFsbyBBbHRvLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUHN5Y2hpYXRyeSBhbmQgQmVoYXZpb3JhbCBTY2llbmNlcywgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPE9SQ0lEIGF1dGhlbnRpY2F0ZWQ9InRydWUiPmh0dHA6Ly9vcmNpZC5vcmcvMDAwMC0wMDAzLTIwNDMtNDkyNTwvT1JDSUQ+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5KZWZmZXJ5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5OZXdlbGw8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+UGF1bDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+VGVycGVsdWs8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIE9jY3VwYXRpb25hbCBIZWFsdGgsIFRoZSBDbGV2ZWxhbmQgQ2xpbmljLCBDbGV2ZWxhbmQsIE9IIDQ0MTk1LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+RGF2aWQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPk1hcmRlcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPlVuaXZlcnNpdHkgSGVhbHRoIFNlcnZpY2VzLCBVbml2ZXJzaXR5IG9mIElsbGlub2lzIENoaWNhZ28sIENoaWNhZ28sIElMIDYwNjEyLCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SmVyb21lIEEuPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5ZZXNhdmFnZTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBzeWNoaWF0cnkgYW5kIEJlaGF2aW9yYWwgU2NpZW5jZXMsIFN0YW5mb3JkIFVuaXZlcnNpdHkgU2Nob29sIG9mIE1lZGljaW5lLCBTdGFuZm9yZCwgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgIDxqYXRzOmFic3RyYWN0IHhtbG5zOmphdHM9Imh0dHA6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9KQVRTMSI+DQogICAgICAgICAgICAgICAgICA8amF0czpwPg0KICAgICAgICAgICAgICAgICAgICA8amF0czppdGFsaWM+T2JqZWN0aXZlPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBUbyBmaW5kIGEgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBzZXBhcmF0aW9uIHBvaW50IGZvciB0aGUgUXVhbnRpRkVST04gR29sZCBJbi1UdWJlIChRRlQpIGludGVyZmVyb24gZ2FtbWEgcmVsZWFzZSBhc3NheSB0aGF0IGNvdWxkIGRlZmluZSBhbiBvcHRpbWFsIOKAnHJldGVzdGluZyB6b25l4oCdIGZvciB1c2UgaW4gc2VyaWFsbHkgdGVzdGVkIGxvdy1yaXNrIHBvcHVsYXRpb25zIHdobyBoYXZlIHRlc3Qg4oCccmV2ZXJzaW9uc+KAnSBmcm9tIGluaXRpYWxseSBwb3NpdGl2ZSB0byBzdWJzZXF1ZW50bHkgbmVnYXRpdmUgcmVzdWx0cy4NCiAgICAgICAgICAgICAgICAgICAgPGphdHM6aXRhbGljPk1ldGhvZDwvamF0czppdGFsaWM+DQogICAgICAgICAgICAgICAgICAgIC4gVXNpbmcgcmVjZWl2ZXIgb3BlcmF0aW5nIGNoYXJhY3RlcmlzdGljIGFuYWx5c2lzIChST0MpIHRvIGFuYWx5emUgcmV0cm9zcGVjdGl2ZSBkYXRhIGNvbGxlY3RlZCBmcm9tIDMgbWFqb3IgaG9zcGl0YWxzLCB3ZSBzZWFyY2hlZCBmb3IgcHJlZGljdG9ycyBvZiByZXZlcnNpb24gdW50aWwgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBzZXBhcmF0aW9uIHBvaW50cyB3ZXJlIHJldmVhbGVkLiBBIGNvbmZpcm1hdG9yeSByZWdyZXNzaW9uIGFuYWx5c2lzIHdhcyBwZXJmb3JtZWQgb24gYW4gYWRkaXRpb25hbCBzYW1wbGUuDQogICAgICAgICAgICAgICAgICAgIDxqYXRzOml0YWxpYz5SZXN1bHRzPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBJbiA1NzUgaW5pdGlhbGx5IHBvc2l0aXZlIFVTIGhlYWx0aGNhcmUgd29ya2VycyAoSENXcyksIDMwMCAoNTIuMiUpIGhhZCByZXZlcnNpb25zLCB3aGlsZSAyNzUgKDQ3LjglKSBoYWQgdHdvIHNlcXVlbnRpYWwgcG9zaXRpdmUgdGVzdHMuIFRoZSBtb3N0IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgKEthcHBh4oCJPeKAiTAuNDgsIGNoaS1zcXVhcmXigIk94oCJMTMxLjAsDQogICAgICAgICAgICAgICAgICAgIDxtbWw6bWF0aCB4bWxuczptbWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiIGlkPSJNMSI+DQogICAgICAgICAgICAgICAgICAgICAgPG1tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPG1tbDptaT5QPC9tbWw6bWk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bW1sOm1vPiZsdDs8L21tbDptbz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxtbWw6bW4+MC4wMDE8L21tbDptbj4NCiAgICAgICAgICAgICAgICAgICAgICA8L21tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICA8L21tbDptYXRoPg0KICAgICAgICAgICAgICAgICAgICApIHNlcGFyYXRpb24gcG9pbnQgaWRlbnRpZmllZCBieSB0aGUgUk9DIGZvciBwcmVkaWN0aW5nIHJldmVyc2lvbiB3YXMgdGhlIHR1YmVyY3Vsb3NpcyBhbnRpZ2VuIG1pbnVzLW5pbCAoVEJhZy1uaWwpIHZhbHVlIGF0IDEuMTEgSW50ZXJuYXRpb25hbCBVbml0cyBwZXIgbWlsbGlsaXRlciAoSVUvbUwpLiBUaGUgc2Vjb25kIHNlcGFyYXRpb24gcG9pbnQgd2FzIGZvdW5kIGF0IFRCYWctbmlsIGF0IDAuNzLigIlJVS9tTCAoS2FwcGHigIk94oCJMC4xNiwgY2hpLXNxdWFyZeKAiT3igIk4LjIsDQogICAgICAgICAgICAgICAgICAgIDxtbWw6bWF0aCB4bWxuczptbWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiIGlkPSJNMiI+DQogICAgICAgICAgICAgICAgICAgICAgPG1tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPG1tbDptaT5QPC9tbWw6bWk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bW1sOm1vPiZsdDs8L21tbDptbz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxtbWw6bW4+MC4wMTwvbW1sOm1uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvbW1sOm1yb3c+DQogICAgICAgICAgICAgICAgICAgIDwvbW1sOm1hdGg+DQogICAgICAgICAgICAgICAgICAgICkuIFRoZSBtb2RlbCB3YXMgdmFsaWRhdGVkIGJ5IHRoZSByZWdyZXNzaW9uIGFuYWx5c2lzIG9mIDI4N+KAiUhDV3MuDQogICAgICAgICAgICAgICAgICAgIDxqYXRzOml0YWxpYz5Db25jbHVzaW9uPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBSZXZlcnNpb24gbGlrZWxpaG9vZCBpbmNyZWFzZXMgYXMgdGhlIFRCYWctbmlsIGFwcHJvYWNoZXMgdGhlIG1hbnVmYWN0dXJlcidzIGN1dC1wb2ludCBvZiAwLjM14oCJSVUvbUwuIFRoZSBtb3N0IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgc2VwYXJhdGlvbiBwb2ludCBiZXR3ZWVuIHRob3NlIHdobyB0ZXN0IHJlcGVhdGVkbHkgcG9zaXRpdmUgYW5kIHRob3NlIHdobyByZXZlcnQgaXMgMS4xMeKAiUlVL21MLiBDbGluaWNpYW5zIHNob3VsZCByZXRlc3QgbG93LXJpc2sgaW5kaXZpZHVhbHMgd2l0aCBpbml0aWFsIFFGVCByZXN1bHRz4oCJJmx0O+KAiTEuMTHigIlJVS9tTC4NCiAgICAgICAgICAgICAgICAgIDwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8cGFnZXM+DQogICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgPGxhc3RfcGFnZT43PC9sYXN0X3BhZ2U+DQogICAgICAgICAgICAgICAgPC9wYWdlcz4NCiAgICAgICAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJwaWkiPjI5MTI5NDwvaWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICAgIDxpZGVudGlmaWVyIGlkX3R5cGU9Im90aGVyIj4yOTEyOTQ8L2lkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgIDwvYWk6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExNTUvMjAxMi8yOTEyOTQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDx0aW1lc3RhbXA+MjAxNjA4MDIwMzQxMjU8L3RpbWVzdGFtcD4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vd3d3LmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0idGV4dC1taW5pbmciIHNldGJ5SUQ9ImhpbmRhd2kiPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi9wZGYiPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi94bWwiPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQueG1sPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNvbGxlY3Rpb24gcHJvcGVydHk9ImNyYXdsZXItYmFzZWQiIHNldGJ5SUQ9ImhpbmRhd2kiPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJnb29nbGUiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZG93bmxvYWRzLmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0ibXNuIj4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9ImFsdGF2aXN0YSI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJ5YWhvbyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJzY2lydXMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZG93bmxvYWRzLmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iaVBhcmFkaWdtcyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGNpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QW1lcmljYW4gSm91cm5hbCBvZiBSZXNwaXJhdG9yeSBhbmQgQ3JpdGljYWwgQ2FyZSBNZWRpY2luZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xNzk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMjgvQ1ZJLjAwMTY4LTA5PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2NC9yY2NtLjIwMDYwNC00NzJPQzwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjQiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjU1ODgvaWp0bGQuMTEuMDM2NDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjUiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMjgvQ1ZJLjA1MDU4LTExPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iNiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNy9zMDA0MjAtMDEwLTA1NzEteDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjciPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwODYvNTkzOTY1PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4wOS0yMzUwPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkludGVybmF0aW9uYWwgSm91cm5hbCBvZiBUdWJlcmN1bG9zaXMgYW5kIEx1bmcgRGlzZWFzZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MTE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMjM1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwNTYvTkVKTXNhMDMxNjY3PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTEiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEzNzgvY2hlc3QuMTI4LjEuMTE2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTIiPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Nb3JiaWRpdHkgYW5kIE1vcnRhbGl0eSBXZWVrbHkgUmVwb3J0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjU5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT41PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIwIj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIyIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4zMjA1L2Rna2gwMDAxNDg8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4xMS0wOTkyPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjQiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExODYvMTQ3MS0yMzM0LTEwLTIyMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTg2LzE3NDUtNjY3My03LTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyNyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEyOC9DVkkuMDAzOTgtMDc8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyOCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2NC9yY2NtLjIwMTAwNi0wOTc0T0M8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyOSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEzNi90aHguMjAxMC4xNDMxODA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIzMCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4xMi0wMDQ1PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX2FydGljbGU+DQogICAgICAgICAgICA8L2pvdXJuYWw+DQogICAgICAgICAgPC9jcm9zc3JlZj4NCiAgICAgICAgPC9kb2lfcmVjb3JkPg0KICAgICAgPC9xdWVyeT4NCiAgICA8L2JvZHk+DQogIDwvcXVlcnlfcmVzdWx0Pg0KPC9jcm9zc3JlZl9yZXN1bHQ+
46
- http_version:
47
- recorded_at: Tue, 25 Feb 2020 14:40:00 GMT
45
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC4xMTU1LzIwMTIvMjkxMjk0PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5IaW5kYXdpIExpbWl0ZWQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icHJlZml4LW5hbWUiIHR5cGU9InN0cmluZyI+SGluZGF3aSBMaW1pdGVkPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im1lbWJlci1pZCIgdHlwZT0ibnVtYmVyIj45ODwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRhdGlvbi1pZCIgdHlwZT0ibnVtYmVyIj41OTI5OTA2ODwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJqb3VybmFsLWlkIiB0eXBlPSJudW1iZXIiPjEwMzEyNTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJkZXBvc2l0LXRpbWVzdGFtcCIgdHlwZT0ibnVtYmVyIj4yMDE2MDgwMjAzNDEyNTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJvd25lci1wcmVmaXgiIHR5cGU9InN0cmluZyI+MTAuMTE1NTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJsYXN0LXVwZGF0ZSIgdHlwZT0iZGF0ZSI+MjAxNi0wOC0wMlQxODo0Mjo0MVo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY3JlYXRlZCIgdHlwZT0iZGF0ZSI+MjAxMi0xMi0zMFQyMTowNTowMVo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0ZWRieS1jb3VudCIgdHlwZT0ibnVtYmVyIj4yNjwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4xLnhzZCI+DQogICAgICAgICAgICA8am91cm5hbD4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfbWV0YWRhdGEgbGFuZ3VhZ2U9ImVuIj4NCiAgICAgICAgICAgICAgICA8ZnVsbF90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2Z1bGxfdGl0bGU+DQogICAgICAgICAgICAgICAgPGFiYnJldl90aXRsZT5QdWxtb25hcnkgTWVkaWNpbmU8L2FiYnJldl90aXRsZT4NCiAgICAgICAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJwcmludCI+MjA5MC0xODM2PC9pc3NuPg0KICAgICAgICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjIwOTAtMTg0NDwvaXNzbj4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8am91cm5hbF9pc3N1ZT4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICAgICAgICA8dm9sdW1lPjIwMTI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8L2pvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPHRpdGxlPkRlbGluZWF0aW5nIGEgUmV0ZXN0aW5nIFpvbmUgVXNpbmcgUmVjZWl2ZXIgT3BlcmF0aW5nIENoYXJhY3RlcmlzdGljIEFuYWx5c2lzIG9uIFNlcmlhbCBRdWFudGlGRVJPTiBUdWJlcmN1bG9zaXMgVGVzdCBSZXN1bHRzIGluIFVTIEhlYWx0aGNhcmUgV29ya2VyczwvdGl0bGU+DQogICAgICAgICAgICAgICAgPC90aXRsZXM+DQogICAgICAgICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iZmlyc3QiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPldlbmR5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5UaGFuYXNzaTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgTWVkaWNpbmUsIFZldGVyYW5zIEFmZmFpcnMgUGFsbyBBbHRvIEhlYWx0aCBDYXJlIFN5c3RlbSwgMzgwMSBNaXJhbmRhIEF2ZW51ZSBNQy0sIFBhbG8gQWx0bywgQ0EgOTQzMDQtMTIwNywgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPk9jY3VwYXRpb25hbCBIZWFsdGggU3RyYXRlZ2ljIEhlYWx0aCBDYXJlIEdyb3VwLCBPZmZpY2Ugb2YgUHVibGljIEhlYWx0aCwgVmV0ZXJhbnMgSGVhbHRoIEFkbWluaXN0cmF0aW9uLCBXYXNoaW5ndG9uLCBEQyAyMDAwNiwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRpdmlzaW9uIG9mIEVtZXJnZW5jeSBNZWRpY2luZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5BcnQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPk5vZGE8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+RGVwYXJ0bWVudCBvZiBQc3ljaGlhdHJ5IGFuZCBCZWhhdmlvcmFsIFNjaWVuY2VzLCBTdGFuZm9yZCBVbml2ZXJzaXR5IFNjaG9vbCBvZiBNZWRpY2luZSwgU3RhbmZvcmQsIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+QmVhdHJpejwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+SGVybmFuZGV6PC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgICA8YWZmaWxpYXRpb24+V2FyIFJlbGF0ZWQgSWxsbmVzcyBhbmQgSW5qdXJ5IFN0dWR5IENlbnRlciAoV1JJSVNDKSBhbmQgTWVudGFsIElsbG5lc3MgUmVzZWFyY2ggRWR1Y2F0aW9uIGFuZCBDbGluaWNhbCBDZW50ZXIgKE1JUkVDQyksIERlcGFydG1lbnQgb2YgVmV0ZXJhbnMgQWZmYWlycywgUGFsbyBBbHRvLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPkRlcGFydG1lbnQgb2YgUHN5Y2hpYXRyeSBhbmQgQmVoYXZpb3JhbCBTY2llbmNlcywgU3RhbmZvcmQgVW5pdmVyc2l0eSBTY2hvb2wgb2YgTWVkaWNpbmUsIFN0YW5mb3JkLCBDQSA5NDMwNCwgVVNBPC9hZmZpbGlhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPE9SQ0lEIGF1dGhlbnRpY2F0ZWQ9InRydWUiPmh0dHA6Ly9vcmNpZC5vcmcvMDAwMC0wMDAzLTIwNDMtNDkyNTwvT1JDSUQ+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIHNlcXVlbmNlPSJhZGRpdGlvbmFsIiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5KZWZmZXJ5PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5OZXdlbGw8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5XYXIgUmVsYXRlZCBJbGxuZXNzIGFuZCBJbmp1cnkgU3R1ZHkgQ2VudGVyIChXUklJU0MpIGFuZCBNZW50YWwgSWxsbmVzcyBSZXNlYXJjaCBFZHVjYXRpb24gYW5kIENsaW5pY2FsIENlbnRlciAoTUlSRUNDKSwgRGVwYXJ0bWVudCBvZiBWZXRlcmFucyBBZmZhaXJzLCBQYWxvIEFsdG8sIENBIDk0MzA0LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+UGF1bDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+VGVycGVsdWs8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIE9jY3VwYXRpb25hbCBIZWFsdGgsIFRoZSBDbGV2ZWxhbmQgQ2xpbmljLCBDbGV2ZWxhbmQsIE9IIDQ0MTk1LCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+RGF2aWQ8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPk1hcmRlcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPlVuaXZlcnNpdHkgSGVhbHRoIFNlcnZpY2VzLCBVbml2ZXJzaXR5IG9mIElsbGlub2lzIENoaWNhZ28sIENoaWNhZ28sIElMIDYwNjEyLCBVU0E8L2FmZmlsaWF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBzZXF1ZW5jZT0iYWRkaXRpb25hbCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SmVyb21lIEEuPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5ZZXNhdmFnZTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPGFmZmlsaWF0aW9uPldhciBSZWxhdGVkIElsbG5lc3MgYW5kIEluanVyeSBTdHVkeSBDZW50ZXIgKFdSSUlTQykgYW5kIE1lbnRhbCBJbGxuZXNzIFJlc2VhcmNoIEVkdWNhdGlvbiBhbmQgQ2xpbmljYWwgQ2VudGVyIChNSVJFQ0MpLCBEZXBhcnRtZW50IG9mIFZldGVyYW5zIEFmZmFpcnMsIFBhbG8gQWx0bywgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj5EZXBhcnRtZW50IG9mIFBzeWNoaWF0cnkgYW5kIEJlaGF2aW9yYWwgU2NpZW5jZXMsIFN0YW5mb3JkIFVuaXZlcnNpdHkgU2Nob29sIG9mIE1lZGljaW5lLCBTdGFuZm9yZCwgQ0EgOTQzMDQsIFVTQTwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgIDxqYXRzOmFic3RyYWN0IHhtbG5zOmphdHM9Imh0dHA6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9KQVRTMSI+DQogICAgICAgICAgICAgICAgICA8amF0czpwPg0KICAgICAgICAgICAgICAgICAgICA8amF0czppdGFsaWM+T2JqZWN0aXZlPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBUbyBmaW5kIGEgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBzZXBhcmF0aW9uIHBvaW50IGZvciB0aGUgUXVhbnRpRkVST04gR29sZCBJbi1UdWJlIChRRlQpIGludGVyZmVyb24gZ2FtbWEgcmVsZWFzZSBhc3NheSB0aGF0IGNvdWxkIGRlZmluZSBhbiBvcHRpbWFsIOKAnHJldGVzdGluZyB6b25l4oCdIGZvciB1c2UgaW4gc2VyaWFsbHkgdGVzdGVkIGxvdy1yaXNrIHBvcHVsYXRpb25zIHdobyBoYXZlIHRlc3Qg4oCccmV2ZXJzaW9uc+KAnSBmcm9tIGluaXRpYWxseSBwb3NpdGl2ZSB0byBzdWJzZXF1ZW50bHkgbmVnYXRpdmUgcmVzdWx0cy4NCiAgICAgICAgICAgICAgICAgICAgPGphdHM6aXRhbGljPk1ldGhvZDwvamF0czppdGFsaWM+DQogICAgICAgICAgICAgICAgICAgIC4gVXNpbmcgcmVjZWl2ZXIgb3BlcmF0aW5nIGNoYXJhY3RlcmlzdGljIGFuYWx5c2lzIChST0MpIHRvIGFuYWx5emUgcmV0cm9zcGVjdGl2ZSBkYXRhIGNvbGxlY3RlZCBmcm9tIDMgbWFqb3IgaG9zcGl0YWxzLCB3ZSBzZWFyY2hlZCBmb3IgcHJlZGljdG9ycyBvZiByZXZlcnNpb24gdW50aWwgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCBzZXBhcmF0aW9uIHBvaW50cyB3ZXJlIHJldmVhbGVkLiBBIGNvbmZpcm1hdG9yeSByZWdyZXNzaW9uIGFuYWx5c2lzIHdhcyBwZXJmb3JtZWQgb24gYW4gYWRkaXRpb25hbCBzYW1wbGUuDQogICAgICAgICAgICAgICAgICAgIDxqYXRzOml0YWxpYz5SZXN1bHRzPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBJbiA1NzUgaW5pdGlhbGx5IHBvc2l0aXZlIFVTIGhlYWx0aGNhcmUgd29ya2VycyAoSENXcyksIDMwMCAoNTIuMiUpIGhhZCByZXZlcnNpb25zLCB3aGlsZSAyNzUgKDQ3LjglKSBoYWQgdHdvIHNlcXVlbnRpYWwgcG9zaXRpdmUgdGVzdHMuIFRoZSBtb3N0IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgKEthcHBh4oCJPeKAiTAuNDgsIGNoaS1zcXVhcmXigIk94oCJMTMxLjAsDQogICAgICAgICAgICAgICAgICAgIDxtbWw6bWF0aCB4bWxuczptbWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiIGlkPSJNMSI+DQogICAgICAgICAgICAgICAgICAgICAgPG1tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPG1tbDptaT5QPC9tbWw6bWk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bW1sOm1vPiZsdDs8L21tbDptbz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxtbWw6bW4+MC4wMDE8L21tbDptbj4NCiAgICAgICAgICAgICAgICAgICAgICA8L21tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICA8L21tbDptYXRoPg0KICAgICAgICAgICAgICAgICAgICApIHNlcGFyYXRpb24gcG9pbnQgaWRlbnRpZmllZCBieSB0aGUgUk9DIGZvciBwcmVkaWN0aW5nIHJldmVyc2lvbiB3YXMgdGhlIHR1YmVyY3Vsb3NpcyBhbnRpZ2VuIG1pbnVzLW5pbCAoVEJhZy1uaWwpIHZhbHVlIGF0IDEuMTEgSW50ZXJuYXRpb25hbCBVbml0cyBwZXIgbWlsbGlsaXRlciAoSVUvbUwpLiBUaGUgc2Vjb25kIHNlcGFyYXRpb24gcG9pbnQgd2FzIGZvdW5kIGF0IFRCYWctbmlsIGF0IDAuNzLigIlJVS9tTCAoS2FwcGHigIk94oCJMC4xNiwgY2hpLXNxdWFyZeKAiT3igIk4LjIsDQogICAgICAgICAgICAgICAgICAgIDxtbWw6bWF0aCB4bWxuczptbWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiIGlkPSJNMiI+DQogICAgICAgICAgICAgICAgICAgICAgPG1tbDptcm93Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPG1tbDptaT5QPC9tbWw6bWk+DQogICAgICAgICAgICAgICAgICAgICAgICA8bW1sOm1vPiZsdDs8L21tbDptbz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxtbWw6bW4+MC4wMTwvbW1sOm1uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvbW1sOm1yb3c+DQogICAgICAgICAgICAgICAgICAgIDwvbW1sOm1hdGg+DQogICAgICAgICAgICAgICAgICAgICkuIFRoZSBtb2RlbCB3YXMgdmFsaWRhdGVkIGJ5IHRoZSByZWdyZXNzaW9uIGFuYWx5c2lzIG9mIDI4N+KAiUhDV3MuDQogICAgICAgICAgICAgICAgICAgIDxqYXRzOml0YWxpYz5Db25jbHVzaW9uPC9qYXRzOml0YWxpYz4NCiAgICAgICAgICAgICAgICAgICAgLiBSZXZlcnNpb24gbGlrZWxpaG9vZCBpbmNyZWFzZXMgYXMgdGhlIFRCYWctbmlsIGFwcHJvYWNoZXMgdGhlIG1hbnVmYWN0dXJlcidzIGN1dC1wb2ludCBvZiAwLjM14oCJSVUvbUwuIFRoZSBtb3N0IHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgc2VwYXJhdGlvbiBwb2ludCBiZXR3ZWVuIHRob3NlIHdobyB0ZXN0IHJlcGVhdGVkbHkgcG9zaXRpdmUgYW5kIHRob3NlIHdobyByZXZlcnQgaXMgMS4xMeKAiUlVL21MLiBDbGluaWNpYW5zIHNob3VsZCByZXRlc3QgbG93LXJpc2sgaW5kaXZpZHVhbHMgd2l0aCBpbml0aWFsIFFGVCByZXN1bHRz4oCJJmx0O+KAiTEuMTHigIlJVS9tTC4NCiAgICAgICAgICAgICAgICAgIDwvamF0czpwPg0KICAgICAgICAgICAgICAgIDwvamF0czphYnN0cmFjdD4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8cGFnZXM+DQogICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgPGxhc3RfcGFnZT43PC9sYXN0X3BhZ2U+DQogICAgICAgICAgICAgICAgPC9wYWdlcz4NCiAgICAgICAgICAgICAgICA8cHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICAgICAgICA8aWRlbnRpZmllciBpZF90eXBlPSJwaWkiPjI5MTI5NDwvaWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICAgIDxpZGVudGlmaWVyIGlkX3R5cGU9Im90aGVyIj4yOTEyOTQ8L2lkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmPmh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC88L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgIDwvYWk6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExNTUvMjAxMi8yOTEyOTQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDx0aW1lc3RhbXA+MjAxNjA4MDIwMzQxMjU8L3RpbWVzdGFtcD4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vd3d3LmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LzwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0idGV4dC1taW5pbmciIHNldGJ5SUQ9ImhpbmRhd2kiPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi9wZGYiPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi94bWwiPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQueG1sPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNvbGxlY3Rpb24gcHJvcGVydHk9ImNyYXdsZXItYmFzZWQiIHNldGJ5SUQ9ImhpbmRhd2kiPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJnb29nbGUiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZG93bmxvYWRzLmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0ibXNuIj4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2Rvd25sb2Fkcy5oaW5kYXdpLmNvbS9qb3VybmFscy9wbS8yMDEyLzI5MTI5NC5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9ImFsdGF2aXN0YSI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJ5YWhvbyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJzY2lydXMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vZG93bmxvYWRzLmhpbmRhd2kuY29tL2pvdXJuYWxzL3BtLzIwMTIvMjkxMjk0LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iaVBhcmFkaWdtcyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9kb3dubG9hZHMuaGluZGF3aS5jb20vam91cm5hbHMvcG0vMjAxMi8yOTEyOTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGNpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QW1lcmljYW4gSm91cm5hbCBvZiBSZXNwaXJhdG9yeSBhbmQgQ3JpdGljYWwgQ2FyZSBNZWRpY2luZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xNzk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMjgvQ1ZJLjAwMTY4LTA5PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2NC9yY2NtLjIwMDYwNC00NzJPQzwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjQiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjU1ODgvaWp0bGQuMTEuMDM2NDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjUiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMjgvQ1ZJLjA1MDU4LTExPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iNiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNy9zMDA0MjAtMDEwLTA1NzEteDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjciPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwODYvNTkzOTY1PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4wOS0yMzUwPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkludGVybmF0aW9uYWwgSm91cm5hbCBvZiBUdWJlcmN1bG9zaXMgYW5kIEx1bmcgRGlzZWFzZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MTE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMjM1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwNTYvTkVKTXNhMDMxNjY3PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTEiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEzNzgvY2hlc3QuMTI4LjEuMTE2PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTIiPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Nb3JiaWRpdHkgYW5kIE1vcnRhbGl0eSBXZWVrbHkgUmVwb3J0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjU5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT41PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIwIj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjIyIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4zMjA1L2Rna2gwMDAxNDg8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyMyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4xMS0wOTkyPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMjQiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExODYvMTQ3MS0yMzM0LTEwLTIyMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjI1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTg2LzE3NDUtNjY3My03LTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyNyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEyOC9DVkkuMDAzOTgtMDc8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyOCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE2NC9yY2NtLjIwMTAwNi0wOTc0T0M8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIyOSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEzNi90aHguMjAxMC4xNDMxODA8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIzMCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3OC9jaGVzdC4xMi0wMDQ1PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX2FydGljbGU+DQogICAgICAgICAgICA8L2pvdXJuYWw+DQogICAgICAgICAgPC9jcm9zc3JlZj4NCiAgICAgICAgPC9kb2lfcmVjb3JkPg0KICAgICAgPC9xdWVyeT4NCiAgICA8L2JvZHk+DQogIDwvcXVlcnlfcmVzdWx0Pg0KPC9jcm9zc3JlZl9yZXN1bHQ+
46
+ http_version:
47
+ recorded_at: Sun, 12 Jul 2020 11:25:34 GMT
48
48
  recorded_with: VCR 3.0.3
@@ -15,7 +15,7 @@ describe Bolognese::Metadata, vcr: true do
15
15
  it "string" do
16
16
  Bolognese::Metadata.new(input: IO.read(input).strip)
17
17
  expect(subject.valid?).to be true
18
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.7554/elife.01567", "identifierType"=>"DOI"}])
18
+ expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
19
19
  end
20
20
  end
21
21
 
@@ -28,7 +28,7 @@ describe Bolognese::Metadata, vcr: true do
28
28
  context "get bibtex metadata" do
29
29
  it "Crossref DOI" do
30
30
  expect(subject.valid?).to be true
31
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.7554/elife.01567", "identifierType"=>"DOI"}])
31
+ expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
32
32
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceTypeGeneral"=>"Text", "resourceType"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
33
33
  expect(subject.url).to eq("http://elifesciences.org/lookup/doi/10.7554/eLife.01567")
34
34
  expect(subject.creators.length).to eq(5)
@@ -51,7 +51,7 @@ describe Bolognese::Metadata, vcr: true do
51
51
  subject = Bolognese::Metadata.new(input: input, doi: doi)
52
52
  expect(subject.valid?).to be false
53
53
  expect(subject.state).to eq("not_found")
54
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.7554/elife.01567", "identifierType"=>"DOI"}])
54
+ expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
55
55
  expect(subject.types).to eq("bibtex"=>"phdthesis", "citeproc"=>"thesis", "resourceTypeGeneral"=>"Text", "resourceType"=>"Dissertation", "ris"=>"THES", "schemaOrg"=>"Thesis")
56
56
  expect(subject.creators).to eq([{"familyName"=>"Toparlar", "givenName"=>"Y.", "name"=>"Toparlar, Y.", "nameType"=>"Personal"}])
57
57
  expect(subject.titles).to eq([{"title"=>"A multiscale analysis of the urban heat island effect: from city averaged temperatures to the energy demand of individual buildings"}])
@@ -16,7 +16,7 @@ describe Bolognese::Metadata, vcr: true do
16
16
  context "get citeproc metadata" do
17
17
  it "BlogPosting" do
18
18
  expect(subject.valid?).to be true
19
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.5438/4k3m-nyvg", "identifierType"=>"DOI"}])
19
+ expect(subject.id).to eq("https://doi.org/10.5438/4k3m-nyvg")
20
20
  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
21
21
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
22
22
  expect(subject.creators).to eq([{"familyName"=>"Fenner", "givenName"=>"Martin", "name"=>"Fenner, Martin"}])
@@ -32,7 +32,7 @@ describe Bolognese::Metadata, vcr: true do
32
32
  input = fixture_path + "citeproc-no-categories.json"
33
33
  subject = Bolognese::Metadata.new(input: input)
34
34
  expect(subject.valid?).to be true
35
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.5072/4k3m-nyvg", "identifierType"=>"DOI"}])
35
+ expect(subject.id).to eq("https://doi.org/10.5072/4k3m-nyvg")
36
36
  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
37
37
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
38
38
  expect(subject.creators).to eq([{"familyName"=>"Fenner", "givenName"=>"Martin", "name"=>"Fenner, Martin"}])
@@ -48,7 +48,7 @@ describe Bolognese::Metadata, vcr: true do
48
48
  input = fixture_path + "citeproc-no-author.json"
49
49
  subject = Bolognese::Metadata.new(input: input)
50
50
  #expect(subject.valid?).to be true
51
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.5438/4k3m-nyvg", "identifierType"=>"DOI"}])
51
+ expect(subject.id).to eq("https://doi.org/10.5438/4k3m-nyvg")
52
52
  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
53
53
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
54
54
  expect(subject.creators).to eq([{"name"=>":(unav)", "nameType"=>"Organizational"}])
@@ -18,7 +18,7 @@ describe Bolognese::Metadata, vcr: true do
18
18
  context "get codemeta metadata" do
19
19
  it "maremma" do
20
20
  expect(subject.valid?).to be true
21
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.5438/qeg0-3gm3", "identifierType"=>"DOI"}])
21
+ expect(subject.id).to eq("https://doi.org/10.5438/qeg0-3gm3")
22
22
  expect(subject.url).to eq("https://github.com/datacite/maremma")
23
23
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceTypeGeneral"=>"Software", "ris"=>"COMP", "schemaOrg"=>"SoftwareSourceCode")
24
24
  expect(subject.creators).to eq([{"affiliation"=>[{"name"=>"DataCite"}],
@@ -46,7 +46,7 @@ describe Bolognese::Metadata, vcr: true do
46
46
  it "rdataone" do
47
47
  input = fixture_path + 'codemeta.json'
48
48
  subject = Bolognese::Metadata.new(input: input)
49
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.5063/f1m61h5x", "identifierType"=>"DOI"}])
49
+ expect(subject.id).to eq("https://doi.org/10.5063/f1m61h5x")
50
50
  expect(subject.url).to eq("https://github.com/DataONEorg/rdataone")
51
51
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceTypeGeneral"=>"Software", "ris"=>"COMP", "schemaOrg"=>"SoftwareSourceCode")
52
52
  expect(subject.creators).to eq([{"affiliation"=>[{"name"=>"NCEAS"}],
@@ -88,7 +88,7 @@ describe Bolognese::Metadata, vcr: true do
88
88
  input = fixture_path + 'maremma/codemeta.json'
89
89
  subject = Bolognese::Metadata.new(input: input)
90
90
  expect(subject.valid?).to be true
91
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.5438/qeg0-3gm3", "identifierType"=>"DOI"}])
91
+ expect(subject.id).to eq("https://doi.org/10.5438/qeg0-3gm3")
92
92
  expect(subject.url).to eq("https://github.com/datacite/maremma")
93
93
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceTypeGeneral"=>"Software", "ris"=>"COMP", "schemaOrg"=>"SoftwareSourceCode")
94
94
  expect(subject.creators).to eq([{"affiliation"=>[{"name"=>"DataCite"}],
@@ -117,7 +117,7 @@ describe Bolognese::Metadata, vcr: true do
117
117
  input = "https://github.com/datacite/metadata-reports/blob/master/software/codemeta.json"
118
118
  subject = Bolognese::Metadata.new(input: input)
119
119
  expect(subject.valid?).to be true
120
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.5438/wr0x-e194", "identifierType"=>"DOI"}])
120
+ expect(subject.id).to eq("https://doi.org/10.5438/wr0x-e194")
121
121
  expect(subject.url).to eq("https://github.com/datacite/metadata-reports")
122
122
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceTypeGeneral"=>"Software", "ris"=>"COMP", "schemaOrg"=>"SoftwareSourceCode")
123
123
  expect(subject.creators.size).to eq(4)
@@ -18,7 +18,8 @@ describe Bolognese::Metadata, vcr: true do
18
18
  context "get crossref metadata" do
19
19
  it "DOI with data citation" do
20
20
  expect(subject.valid?).to be true
21
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.7554/elife.01567", "identifierType"=>"DOI"}, {"identifier"=>"e01567", "identifierType"=>"Publisher ID"}])
21
+ expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
22
+ expect(subject.identifiers).to eq([{"identifier"=>"e01567", "identifierType"=>"Publisher ID"}])
22
23
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
23
24
  expect(subject.url).to eq("https://elifesciences.org/articles/01567")
24
25
  expect(subject.creators.length).to eq(5)
@@ -53,8 +54,9 @@ describe Bolognese::Metadata, vcr: true do
53
54
  input = "https://doi.org/10.1371/journal.pone.0000030"
54
55
  subject = Bolognese::Metadata.new(input: input)
55
56
  expect(subject.valid?).to be true
56
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1371/journal.pone.0000030", "identifierType"=>"DOI"}, {"identifier"=>"10.1371/journal.pone.0000030", "identifierType"=>"Publisher ID"}])
57
- expect(subject.url).to eq("http://dx.plos.org/10.1371/journal.pone.0000030")
57
+ expect(subject.id).to eq("https://doi.org/10.1371/journal.pone.0000030")
58
+ expect(subject.identifiers).to eq([{"identifier"=>"10.1371/journal.pone.0000030", "identifierType"=>"Publisher ID"}])
59
+ expect(subject.url).to eq("https://dx.plos.org/10.1371/journal.pone.0000030")
58
60
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
59
61
  expect(subject.creators.length).to eq(5)
60
62
  expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Ralser, Markus", "givenName"=>"Markus", "familyName"=>"Ralser")
@@ -65,10 +67,10 @@ describe Bolognese::Metadata, vcr: true do
65
67
  "rightsIdentifierScheme"=>"SPDX",
66
68
  "rightsUri"=>"https://creativecommons.org/licenses/by/4.0/legalcode",
67
69
  "schemeUri"=>"https://spdx.org/licenses/"}])
68
- expect(subject.dates).to eq([{"date"=>"2006-12-20", "dateType"=>"Issued"}, {"date"=>"2019-04-23T08:33:24Z", "dateType"=>"Updated"}])
70
+ expect(subject.dates).to eq([{"date"=>"2006-12-20", "dateType"=>"Issued"}, {"date"=>"2020-05-09T09:35:17Z", "dateType"=>"Updated"}])
69
71
  expect(subject.publication_year).to eq("2006")
70
72
  expect(subject.publisher).to eq("Public Library of Science (PLoS)")
71
- expect(subject.related_identifiers.length).to eq(63)
73
+ expect(subject.related_identifiers.length).to eq(64)
72
74
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1932-6203", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
73
75
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1056/nejm199109123251104", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
74
76
  expect(subject.container).to eq("firstPage"=>"e30", "identifier"=>"1932-6203", "identifierType"=>"ISSN", "issue"=>"1", "title"=>"PLoS ONE", "type"=>"Journal", "volume"=>"1")
@@ -79,7 +81,8 @@ describe Bolognese::Metadata, vcr: true do
79
81
  input = "https://doi.org/10.3389/fpls.2019.00816"
80
82
  subject = Bolognese::Metadata.new(input: input)
81
83
  expect(subject.valid?).to be true
82
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.3389/fpls.2019.00816", "identifierType"=>"DOI"}, {"identifier"=>"816", "identifierType"=>"Publisher ID"}])
84
+ expect(subject.id).to eq("https://doi.org/10.3389/fpls.2019.00816")
85
+ expect(subject.identifiers).to eq([{"identifier"=>"816", "identifierType"=>"Publisher ID"}])
83
86
  expect(subject.url).to eq("https://www.frontiersin.org/article/10.3389/fpls.2019.00816/full")
84
87
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
85
88
  expect(subject.creators.length).to eq(4)
@@ -90,10 +93,10 @@ describe Bolognese::Metadata, vcr: true do
90
93
  "rightsIdentifierScheme"=>"SPDX",
91
94
  "rightsUri"=>"https://creativecommons.org/licenses/by/4.0/legalcode",
92
95
  "schemeUri"=>"https://spdx.org/licenses/"}])
93
- expect(subject.dates).to eq([{"date"=>"2019-07-02", "dateType"=>"Issued"}, {"date"=>"2019-07-02T11:08:31Z", "dateType"=>"Updated"}])
96
+ expect(subject.dates).to eq([{"date"=>"2019-07-02", "dateType"=>"Issued"}, {"date"=>"2019-09-22T06:40:23Z", "dateType"=>"Updated"}])
94
97
  expect(subject.publication_year).to eq("2019")
95
98
  expect(subject.publisher).to eq("Frontiers Media SA")
96
- expect(subject.funding_references).to eq([{"awardNumber"=>"CA17111", "funderIdentifier"=>"https://doi.org/10.13039/501100000921", "funderIdentifierType"=>"Crossref Funder ID", "funderName"=>"COST"}])
99
+ expect(subject.funding_references).to eq([{"awardNumber"=>"CA17111", "funderIdentifier"=>"https://doi.org/10.13039/501100000921", "funderIdentifierType"=>"Crossref Funder ID", "funderName"=>"COST (European Cooperation in Science and Technology)"}])
97
100
  expect(subject.related_identifiers.length).to eq(70)
98
101
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1664-462X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
99
102
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.17660/actahortic.2004.632.41", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -105,12 +108,12 @@ describe Bolognese::Metadata, vcr: true do
105
108
  input = "https://doi.org/10.7600/jspfsm.56.60"
106
109
  subject = Bolognese::Metadata.new(input: input)
107
110
  expect(subject.valid?).to be true
108
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.7600/jspfsm.56.60", "identifierType"=>"DOI"}])
111
+ expect(subject.id).to eq("https://doi.org/10.7600/jspfsm.56.60")
109
112
  expect(subject.url).to eq("http://jlc.jst.go.jp/JST.JSTAGE/jspfsm/56.60?lang=en&from=CrossRef&type=abstract")
110
113
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
111
114
  expect(subject.creators).to eq("name"=>":(unav)", "nameType"=>"Organizational")
112
115
  expect(subject.titles).to eq([{"lang"=>"ja", "title"=>"自律神経・循環器応答"}])
113
- expect(subject.dates).to eq([{"date"=>"2007", "dateType"=>"Issued"}, {"date"=>"2019-07-03T06:23:13Z", "dateType"=>"Updated"}])
116
+ expect(subject.dates).to include({"date"=>"2007", "dateType"=>"Issued"})
114
117
  expect(subject.publication_year).to eq("2007")
115
118
  expect(subject.publisher).to eq("The Japanese Society of Physical Fitness and Sports Medicine")
116
119
  expect(subject.related_identifiers.length).to eq(1)
@@ -123,13 +126,13 @@ describe Bolognese::Metadata, vcr: true do
123
126
  input = "https://doi.org/10.1163/1937240X-00002096"
124
127
  subject = Bolognese::Metadata.new(input: input)
125
128
  expect(subject.valid?).to be true
126
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1163/1937240x-00002096", "identifierType"=>"DOI"}])
129
+ expect(subject.id).to eq("https://doi.org/10.1163/1937240x-00002096")
127
130
  expect(subject.url).to eq("https://academic.oup.com/jcb/article-lookup/doi/10.1163/1937240X-00002096")
128
131
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
129
132
  expect(subject.creators.length).to eq(8)
130
133
  expect(subject.creators.first).to eq("familyName"=>"Mesquita-Joanes", "givenName"=>"Francesc", "name"=>"Mesquita-Joanes, Francesc", "nameType"=>"Personal")
131
134
  expect(subject.titles).to eq([{"title"=>"Global distribution of Fabaeformiscandona subacuta: an exotic invasive Ostracoda on the Iberian Peninsula?"}])
132
- expect(subject.dates).to eq([{"date"=>"2012-01-01", "dateType"=>"Issued"}, {"date"=>"2019-07-05T20:53:10Z", "dateType"=>"Updated"}])
135
+ expect(subject.dates).to include({"date"=>"2012-01-01", "dateType"=>"Issued"})
133
136
  expect(subject.publication_year).to eq("2012")
134
137
  expect(subject.publisher).to eq("Oxford University Press (OUP)")
135
138
  expect(subject.related_identifiers.length).to eq(44)
@@ -143,7 +146,7 @@ describe Bolognese::Metadata, vcr: true do
143
146
  input = "10.1007/978-3-642-33191-6_49"
144
147
  subject = Bolognese::Metadata.new(input: input)
145
148
  expect(subject.valid?).to be true
146
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1007/978-3-642-33191-6_49", "identifierType"=>"DOI"}])
149
+ expect(subject.id).to eq("https://doi.org/10.1007/978-3-642-33191-6_49")
147
150
  expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-642-33191-6_49")
148
151
  expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"Text", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
149
152
  expect(subject.creators.length).to eq(3)
@@ -167,9 +170,10 @@ describe Bolognese::Metadata, vcr: true do
167
170
  expect(subject.creators.count).to eq(11)
168
171
  expect(subject.creators.last).to eq("nameType"=>"Personal", "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-4060-7360", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}], "name"=>"Clark, Timothy", "givenName"=>"Timothy", "familyName"=>"Clark")
169
172
  expect(subject.titles).to eq([{"title"=>"A Data Citation Roadmap for Scholarly Data Repositories"}])
170
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1101/097196", "identifierType"=>"DOI"}, {"identifier"=>"biorxiv;097196v2", "identifierType"=>"Publisher ID"}])
173
+ expect(subject.id).to eq("https://doi.org/10.1101/097196")
174
+ expect(subject.identifiers).to eq([{"identifier"=>"biorxiv;097196v2", "identifierType"=>"Publisher ID"}])
171
175
  expect(subject.descriptions.first["description"]).to start_with("This article presents a practical roadmap")
172
- expect(subject.dates).to eq([{"date"=>"2017-10-09", "dateType"=>"Issued"}, {"date"=>"2019-05-22T20:17:44Z", "dateType"=>"Updated"}])
176
+ expect(subject.dates).to include({"date"=>"2017-10-09", "dateType"=>"Issued"})
173
177
  expect(subject.publication_year).to eq("2017")
174
178
  expect(subject.publisher).to eq("bioRxiv")
175
179
  expect(subject.agency).to eq("Crossref")
@@ -179,7 +183,7 @@ describe Bolognese::Metadata, vcr: true do
179
183
  input = "https://doi.org/10.1890/0012-9658(2006)87[2832:tiopma]2.0.co;2"
180
184
  subject = Bolognese::Metadata.new(input: input)
181
185
  expect(subject.valid?).to be true
182
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1890/0012-9658(2006)87%255b2832:tiopma%255d2.0.co;2", "identifierType"=>"DOI"}])
186
+ expect(subject.id).to eq("https://doi.org/10.1890/0012-9658(2006)87%255b2832:tiopma%255d2.0.co;2")
183
187
  expect(subject.url).to eq("http://doi.wiley.com/10.1890/0012-9658(2006)87[2832:TIOPMA]2.0.CO;2")
184
188
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
185
189
  expect(subject.creators).to eq([{"nameType"=>"Personal", "name"=>"Fenton, A.", "givenName"=>"A.", "familyName"=>"Fenton"}, {"nameType"=>"Personal", "name"=>"Rands, S. A.", "givenName"=>"S. A.", "familyName"=>"Rands"}])
@@ -199,7 +203,7 @@ describe Bolognese::Metadata, vcr: true do
199
203
  input = "https://doi.org/10.1155/2012/291294"
200
204
  subject = Bolognese::Metadata.new(input: input)
201
205
  expect(subject.valid?).to be true
202
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1155/2012/291294", "identifierType"=>"DOI"}])
206
+ expect(subject.id).to eq("https://doi.org/10.1155/2012/291294")
203
207
  expect(subject.url).to eq("http://www.hindawi.com/journals/pm/2012/291294/")
204
208
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
205
209
  expect(subject.creators.length).to eq(7)
@@ -210,7 +214,7 @@ describe Bolognese::Metadata, vcr: true do
210
214
  "rightsUri"=>"https://creativecommons.org/licenses/by/3.0/legalcode",
211
215
  "schemeUri"=>"https://spdx.org/licenses/"}])
212
216
  expect(subject.titles).to eq([{"title"=>"Delineating a Retesting Zone Using Receiver Operating Characteristic Analysis on Serial QuantiFERON Tuberculosis Test Results in US Healthcare Workers"}])
213
- expect(subject.dates).to eq([{"date"=>"2012", "dateType"=>"Issued"}, {"date"=>"2016-08-02T18:42:41Z", "dateType"=>"Updated"}])
217
+ expect(subject.dates).to include({"date"=>"2012", "dateType"=>"Issued"})
214
218
  expect(subject.publication_year).to eq("2012")
215
219
  expect(subject.publisher).to eq("Hindawi Limited")
216
220
  expect(subject.related_identifiers.length).to eq(18)
@@ -224,13 +228,14 @@ describe Bolognese::Metadata, vcr: true do
224
228
  input = "https://doi.org/10.1016/j.ejphar.2015.03.018"
225
229
  subject = Bolognese::Metadata.new(input: input)
226
230
  expect(subject.valid?).to be true
227
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1016/j.ejphar.2015.03.018", "identifierType"=>"DOI"}, {"identifier"=>"S0014299915002332", "identifierType"=>"Publisher ID"}])
231
+ expect(subject.id).to eq("https://doi.org/10.1016/j.ejphar.2015.03.018")
232
+ expect(subject.identifiers).to eq([{"identifier"=>"S0014299915002332", "identifierType"=>"Publisher ID"}])
228
233
  expect(subject.url).to eq("https://linkinghub.elsevier.com/retrieve/pii/S0014299915002332")
229
234
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
230
235
  expect(subject.creators.length).to eq(10)
231
236
  expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Beck, Sarah E.", "givenName"=>"Sarah E.", "familyName"=>"Beck")
232
237
  expect(subject.titles).to eq([{"title"=>"Paving the path to HIV neurotherapy: Predicting SIV CNS disease"}])
233
- expect(subject.dates).to eq([{"date"=>"2015-07", "dateType"=>"Issued"}, {"date"=>"2018-09-23T21:22:53Z", "dateType"=>"Updated"}])
238
+ expect(subject.dates).to include({"date"=>"2015-07", "dateType"=>"Issued"})
234
239
  expect(subject.publication_year).to eq("2015")
235
240
  expect(subject.publisher).to eq("Elsevier BV")
236
241
  expect(subject.related_identifiers).to eq([{"relatedIdentifier"=>"0014-2999", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection"}])
@@ -242,13 +247,13 @@ describe Bolognese::Metadata, vcr: true do
242
247
  input = "https://doi.org/10.1038/hdy.2013.26"
243
248
  subject = Bolognese::Metadata.new(input: input)
244
249
  expect(subject.valid?).to be true
245
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1038/hdy.2013.26", "identifierType"=>"DOI"}])
250
+ expect(subject.id).to eq("https://doi.org/10.1038/hdy.2013.26")
246
251
  expect(subject.url).to eq("http://www.nature.com/articles/hdy201326")
247
252
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
248
253
  expect(subject.creators.length).to eq(2)
249
254
  expect(subject.creators.first).to eq("familyName"=>"Gross", "givenName"=>"J B", "name"=>"Gross, J B", "nameType"=>"Personal")
250
255
  expect(subject.titles).to eq([{"title"=>"Albinism in phylogenetically and geographically distinct populations of Astyanax cavefish arises through the same loss-of-function Oca2 allele"}])
251
- expect(subject.dates).to eq([{"date"=>"2013-04-10", "dateType"=>"Issued"}, {"date"=>"2019-04-16T16:25:36Z", "dateType"=>"Updated"}])
256
+ expect(subject.dates).to include({"date"=>"2013-04-10", "dateType"=>"Issued"})
252
257
  expect(subject.publication_year).to eq("2013")
253
258
  expect(subject.publisher).to eq("Springer Science and Business Media LLC")
254
259
  expect(subject.related_identifiers.size).to eq(35)
@@ -261,16 +266,16 @@ describe Bolognese::Metadata, vcr: true do
261
266
  input = "10.2210/pdb4hhb/pdb"
262
267
  subject = Bolognese::Metadata.new(input: input)
263
268
  expect(subject.valid?).to be true
264
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.2210/pdb4hhb/pdb", "identifierType"=>"DOI"}])
265
- expect(subject.url).to eq("ftp://ftp.wwpdb.org/pub/pdb/data/structures/divided/pdb/hh/pdb4hhb.ent.gz")
269
+ expect(subject.id).to eq("https://doi.org/10.2210/pdb4hhb/pdb")
270
+ expect(subject.url).to eq("https://www.wwpdb.org/pdb?id=pdb_00004hhb")
266
271
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceType"=>"SaComponent", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
267
272
  expect(subject.creators.length).to eq(2)
268
273
  expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Fermi, G.", "givenName"=>"G.", "familyName"=>"Fermi")
269
274
  expect(subject.titles).to eq([{"title"=>"THE CRYSTAL STRUCTURE OF HUMAN DEOXYHAEMOGLOBIN AT 1.74 ANGSTROMS RESOLUTION"}])
270
275
  expect(subject.descriptions).to eq([{"description"=>"x-ray diffraction structure", "descriptionType"=>"Other"}])
271
- expect(subject.dates).to eq([{"date"=>"1984-07-17", "dateType"=>"Issued"}, {"date"=>"2014-05-27T16:45:59Z", "dateType"=>"Updated"}])
276
+ expect(subject.dates).to include({"date"=>"1984-07-17", "dateType"=>"Issued"})
272
277
  expect(subject.publication_year).to eq("1984")
273
- expect(subject.publisher).to eq("Protein Data Bank, Rutgers University")
278
+ expect(subject.publisher).to eq("Worldwide Protein Data Bank")
274
279
  expect(subject.agency).to eq("Crossref")
275
280
  end
276
281
 
@@ -278,13 +283,13 @@ describe Bolognese::Metadata, vcr: true do
278
283
  input = "10.1371/journal.pmed.0030277.g001"
279
284
  subject = Bolognese::Metadata.new(input: input)
280
285
  expect(subject.valid?).to be true
281
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1371/journal.pmed.0030277.g001", "identifierType"=>"DOI"}])
286
+ expect(subject.id).to eq("https://doi.org/10.1371/journal.pmed.0030277.g001")
282
287
  expect(subject.url).to eq("https://dx.plos.org/10.1371/journal.pmed.0030277.g001")
283
288
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceType"=>"SaComponent", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
284
289
  expect(subject.creators).to eq("name"=>":(unav)", "nameType"=>"Organizational")
285
290
  expect(subject.titles).to eq([{"title"=>":{unav)"}])
286
291
  expect(subject.descriptions).to be_empty
287
- expect(subject.dates).to eq([{"date"=>"2015-10-20", "dateType"=>"Issued"}, {"date"=>"2018-10-19T21:13:42Z", "dateType"=>"Updated"}])
292
+ expect(subject.dates).to eq([{"date"=>"2015-10-20", "dateType"=>"Issued"}, {"date"=>"2018-10-19T17:13:42Z", "dateType"=>"Updated"}])
288
293
  expect(subject.publication_year).to eq("2015")
289
294
  expect(subject.publisher).to eq("Public Library of Science (PLoS)")
290
295
  expect(subject.agency).to eq("Crossref")
@@ -294,14 +299,14 @@ describe Bolognese::Metadata, vcr: true do
294
299
  input = "https://doi.org/10.2737/RDS-2018-0001"
295
300
  subject = Bolognese::Metadata.new(input: input)
296
301
  #expect(subject.valid?).to be true
297
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.2737/rds-2018-0001", "identifierType"=>"DOI"}])
298
- expect(subject.url).to eq("https://www.fs.usda.gov/rds/archive/Product/RDS-2018-0001")
302
+ expect(subject.id).to eq("https://doi.org/10.2737/rds-2018-0001")
303
+ expect(subject.url).to eq("https://www.fs.usda.gov/rds/archive/Catalog/RDS-2018-0001")
299
304
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"Dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
300
305
  expect(subject.creators.length).to eq(4)
301
306
  expect(subject.creators.first).to eq("familyName" => "Ribic","givenName" => "Christine A.","name" => "Ribic, Christine A.","affiliation" => [{"name"=>"U.S. Geological Survey"}],"nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-2583-1778", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],"nameType" => "Personal")
302
307
  expect(subject.titles).to eq([{"title"=>"Fledging times of grassland birds"}])
303
308
  expect(subject.descriptions).to be_empty
304
- expect(subject.dates).to eq([{"date"=>"2017-08-09", "dateType"=>"Issued"}, {"date"=>"2018-07-13T19:35:20Z", "dateType"=>"Updated"}])
309
+ expect(subject.dates).to eq([{"date"=>"2017-08-09", "dateType"=>"Issued"}, {"date"=>"2020-06-04T21:31:55Z", "dateType"=>"Updated"}])
305
310
  expect(subject.publication_year).to eq("2017")
306
311
  expect(subject.publisher).to eq("USDA Forest Service")
307
312
  expect(subject.agency).to eq("Crossref")
@@ -311,7 +316,7 @@ describe Bolognese::Metadata, vcr: true do
311
316
  input = "https://doi.org/10.1007/978-3-662-46370-3_13"
312
317
  subject = Bolognese::Metadata.new(input: input)
313
318
  expect(subject.valid?).to be true
314
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1007/978-3-662-46370-3_13", "identifierType"=>"DOI"}])
319
+ expect(subject.id).to eq("https://doi.org/10.1007/978-3-662-46370-3_13")
315
320
  expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-662-46370-3_13")
316
321
  expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"Text", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
317
322
  expect(subject.creators.length).to eq(2)
@@ -327,12 +332,12 @@ describe Bolognese::Metadata, vcr: true do
327
332
  input = "https://doi.org/10.1007/978-3-319-75889-3_1"
328
333
  subject = Bolognese::Metadata.new(input: input)
329
334
  expect(subject.valid?).to be true
330
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1007/978-3-319-75889-3_1", "identifierType"=>"DOI"}])
335
+ expect(subject.id).to eq("https://doi.org/10.1007/978-3-319-75889-3_1")
331
336
  expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-319-75889-3_1")
332
337
  expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"Text", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
333
338
  expect(subject.creators).to eq("familyName"=>"Jones", "givenName"=>"Hunter M.", "name"=>"Jones, Hunter M.", "nameType"=>"Personal")
334
339
  expect(subject.titles).to eq([{"title"=>"Climate Change and Increasing Risk of Extreme Heat"}])
335
- expect(subject.dates).to eq([{"date"=>"2018", "dateType"=>"Issued"}, {"date"=>"2018-09-05T05:36:16Z", "dateType"=>"Updated"}])
340
+ expect(subject.dates).to include({"date"=>"2018", "dateType"=>"Issued"})
336
341
  expect(subject.publication_year).to eq("2018")
337
342
  expect(subject.publisher).to eq("Springer International Publishing")
338
343
  expect(subject.agency).to eq("Crossref")
@@ -342,7 +347,7 @@ describe Bolognese::Metadata, vcr: true do
342
347
  input = "https://doi.org/10.4018/978-1-4666-1891-6.ch004"
343
348
  subject = Bolognese::Metadata.new(input: input)
344
349
  expect(subject.valid?).to be true
345
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.4018/978-1-4666-1891-6.ch004", "identifierType"=>"DOI"}])
350
+ expect(subject.id).to eq("https://doi.org/10.4018/978-1-4666-1891-6.ch004")
346
351
  expect(subject.url).to eq("http://services.igi-global.com/resolvedoi/resolve.aspx?doi=10.4018/978-1-4666-1891-6.ch004")
347
352
  expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"Text", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
348
353
  expect(subject.creators).to eq("familyName"=>"Bichot", "givenName"=>"Charles-Edmond", "name"=>"Bichot, Charles-Edmond", "affiliation" => [{"name"=>"Université de Lyon, France"}], "nameType"=>"Personal")
@@ -357,7 +362,7 @@ describe Bolognese::Metadata, vcr: true do
357
362
  input = "https://doi.org/10.3390/publications6020015"
358
363
  subject = Bolognese::Metadata.new(input: input)
359
364
  expect(subject.valid?).to be true
360
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.3390/publications6020015", "identifierType"=>"DOI"}])
365
+ expect(subject.id).to eq("https://doi.org/10.3390/publications6020015")
361
366
  expect(subject.url).to eq("http://www.mdpi.com/2304-6775/6/2/15")
362
367
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
363
368
  expect(subject.creators).to eq([{"name"=>"Alexander Kohls", "nameType"=>"Organizational"}, {"name"=>"Salvatore Mele", "nameType"=>"Organizational"}])
@@ -372,12 +377,13 @@ describe Bolognese::Metadata, vcr: true do
372
377
  input = "https://doi.org/10.1017/9781108348843"
373
378
  subject = Bolognese::Metadata.new(input: input)
374
379
  expect(subject.valid?).to be true
375
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1017/9781108348843", "identifierType"=>"DOI"}, {"identifier"=>"9781108348843", "identifierType"=>"ISBN"}])
380
+ expect(subject.id).to eq("https://doi.org/10.1017/9781108348843")
381
+ expect(subject.identifiers).to eq([{"identifier"=>"9781108348843", "identifierType"=>"ISBN"}])
376
382
  expect(subject.url).to eq("https://www.cambridge.org/core/product/identifier/9781108348843/type/book")
377
383
  expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
378
384
  expect(subject.creators).to eq("familyName"=>"Leung", "givenName"=>"Vincent S.", "name"=>"Leung, Vincent S.", "nameType"=>"Personal")
379
385
  expect(subject.titles).to eq([{"title"=>"The Politics of the Past in Early China"}])
380
- expect(subject.dates).to eq([{"date"=>"2019-07-01", "dateType"=>"Issued"}, {"date"=>"2019-07-06T10:20:03Z", "dateType"=>"Updated"}])
386
+ expect(subject.dates).to eq([{"date"=>"2019-07-01", "dateType"=>"Issued"}, {"date"=>"2019-12-01T18:11:11Z", "dateType"=>"Updated"}])
381
387
  expect(subject.publication_year).to eq("2019")
382
388
  expect(subject.publisher).to eq("Cambridge University Press")
383
389
  expect(subject.agency).to eq("Crossref")
@@ -388,7 +394,7 @@ describe Bolognese::Metadata, vcr: true do
388
394
  input = "https://doi.org/10.2973/odp.proc.ir.180.2000"
389
395
  subject = Bolognese::Metadata.new(input: input)
390
396
  expect(subject.valid?).to be true
391
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.2973/odp.proc.ir.180.2000", "identifierType"=>"DOI"}])
397
+ expect(subject.id).to eq("https://doi.org/10.2973/odp.proc.ir.180.2000")
392
398
  expect(subject.url).to eq("http://www-odp.tamu.edu/publications/180_IR/180TOC.HTM")
393
399
  expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
394
400
  expect(subject.creators).to eq("name"=>":(unav)", "nameType"=>"Organizational")
@@ -406,7 +412,8 @@ describe Bolognese::Metadata, vcr: true do
406
412
  input = "https://doi.org/10.1029/ar035"
407
413
  subject = Bolognese::Metadata.new(input: input)
408
414
  expect(subject.valid?).to be true
409
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1029/ar035", "identifierType"=>"DOI"}, {"identifier"=>"0-87590-181-6", "identifierType"=>"ISBN"}])
415
+ expect(subject.id).to eq("https://doi.org/10.1029/ar035")
416
+ expect(subject.identifiers).to eq([{"identifier"=>"0-87590-181-6", "identifierType"=>"ISBN"}])
410
417
  expect(subject.url).to eq("http://doi.wiley.com/10.1029/AR035")
411
418
  expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
412
419
  expect(subject.creators).to eq("familyName"=>"McGinnis", "givenName"=>"Richard Frank", "name"=>"McGinnis, Richard Frank", "nameType"=>"Personal")
@@ -425,13 +432,14 @@ describe Bolognese::Metadata, vcr: true do
425
432
  input = "https://doi.org/10.3280/ecag2018-001005"
426
433
  subject = Bolognese::Metadata.new(input: input)
427
434
  expect(subject.valid?).to be true
428
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.3280/ecag2018-001005", "identifierType"=>"DOI"}, {"identifier"=>"5", "identifierType"=>"Publisher ID"}])
435
+ expect(subject.id).to eq("https://doi.org/10.3280/ecag2018-001005")
436
+ expect(subject.identifiers).to eq([{"identifier"=>"5", "identifierType"=>"Publisher ID"}])
429
437
  expect(subject.url).to eq("http://www.francoangeli.it/riviste/Scheda_Riviste.asp?IDArticolo=61645")
430
438
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
431
439
  expect(subject.creators.length).to eq(2)
432
440
  expect(subject.creators.first).to eq("familyName"=>"Oh", "givenName"=>"Sohae Eve", "name"=>"Oh, Sohae Eve", "nameType"=>"Personal")
433
441
  expect(subject.titles).to eq([{"title"=>"Substitutability between organic and conventional poultry products and organic price premiums"}])
434
- expect(subject.dates).to eq([{"date"=>"2018-05", "dateType"=>"Issued"}, {"date"=>"2018-10-18T14:30:29Z", "dateType"=>"Updated"}])
442
+ expect(subject.dates).to include({"date"=>"2018-05", "dateType"=>"Issued"})
435
443
  expect(subject.publication_year).to eq("2018")
436
444
  expect(subject.publisher).to eq("Franco Angeli")
437
445
  expect(subject.agency).to eq("mEDRA")
@@ -441,7 +449,8 @@ describe Bolognese::Metadata, vcr: true do
441
449
  input = "https://doi.org/10.5012/bkcs.2013.34.10.2889"
442
450
  subject = Bolognese::Metadata.new(input: input)
443
451
  expect(subject.valid?).to be true
444
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.5012/bkcs.2013.34.10.2889", "identifierType"=>"DOI"}, {"identifier"=>"JCGMCS_2013_v34n10_2889", "identifierType"=>"Publisher ID"}])
452
+ expect(subject.id).to eq("https://doi.org/10.5012/bkcs.2013.34.10.2889")
453
+ expect(subject.identifiers).to eq([{"identifier"=>"JCGMCS_2013_v34n10_2889", "identifierType"=>"Publisher ID"}])
445
454
  expect(subject.url).to eq("http://koreascience.or.kr/journal/view.jsp?kj=JCGMCS&py=2013&vnc=v34n10&sp=2889")
446
455
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
447
456
  expect(subject.creators.length).to eq(7)
@@ -457,12 +466,12 @@ describe Bolognese::Metadata, vcr: true do
457
466
  input = "https://doi.org/10.1241/johokanri.39.979"
458
467
  subject = Bolognese::Metadata.new(input: input)
459
468
  expect(subject.valid?).to be true
460
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1241/johokanri.39.979", "identifierType"=>"DOI"}])
469
+ expect(subject.id).to eq("https://doi.org/10.1241/johokanri.39.979")
461
470
  expect(subject.url).to eq("http://joi.jlc.jst.go.jp/JST.JSTAGE/johokanri/39.979?from=CrossRef")
462
471
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
463
472
  expect(subject.creators).to eq("familyName"=>"KUSUMOTO", "givenName"=>"Hiroyuki", "name"=>"KUSUMOTO, Hiroyuki", "nameType"=>"Personal")
464
473
  expect(subject.titles).to eq([{"title"=>"Utilizing the Internet. 12 Series. Future of the Internet."}])
465
- expect(subject.dates).to eq([{"date"=>"1997", "dateType"=>"Issued"}, {"date"=>"2017-12-24T22:59:53Z", "dateType"=>"Updated"}])
474
+ expect(subject.dates).to eq([{"date"=>"1997", "dateType"=>"Issued"}, {"date"=>"2020-03-06T06:44:36Z", "dateType"=>"Updated"}])
466
475
  expect(subject.publication_year).to eq("1997")
467
476
  expect(subject.publisher).to eq("Japan Science and Technology Agency (JST)")
468
477
  expect(subject.agency).to eq("JaLC")
@@ -472,13 +481,13 @@ describe Bolognese::Metadata, vcr: true do
472
481
  input = "https://doi.org/10.2903/j.efsa.2018.5239"
473
482
  subject = Bolognese::Metadata.new(input: input)
474
483
  #expect(subject.valid?).to be true
475
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.2903/j.efsa.2018.5239", "identifierType"=>"DOI"}])
484
+ expect(subject.id).to eq("https://doi.org/10.2903/j.efsa.2018.5239")
476
485
  expect(subject.url).to eq("http://doi.wiley.com/10.2903/j.efsa.2018.5239")
477
486
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
478
487
  expect(subject.creators.length).to eq(28)
479
488
  expect(subject.creators.first).to eq("familyName"=>"Younes", "givenName"=>"Maged", "name"=>"Younes, Maged", "nameType"=>"Personal")
480
489
  expect(subject.titles).to eq([{"title"=>"Scientific opinion on the safety of green tea catechins"}])
481
- expect(subject.dates).to eq([{"date"=>"2018-04", "dateType"=>"Issued"}, {"date"=>"2018-12-17T09:30:09Z", "dateType"=>"Updated"}])
490
+ expect(subject.dates).to include({"date"=>"2018-04", "dateType"=>"Issued"})
482
491
  expect(subject.publication_year).to eq("2018")
483
492
  expect(subject.publisher).to eq("Wiley")
484
493
  expect(subject.agency).to eq("OP")
@@ -488,12 +497,12 @@ describe Bolognese::Metadata, vcr: true do
488
497
  input = "https://doi.org/10.4000/dms.865"
489
498
  subject = Bolognese::Metadata.new(input: input)
490
499
  expect(subject.valid?).to be true
491
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.4000/dms.865", "identifierType"=>"DOI"}])
500
+ expect(subject.id).to eq("https://doi.org/10.4000/dms.865")
492
501
  expect(subject.url).to eq("http://journals.openedition.org/dms/865")
493
502
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
494
503
  expect(subject.creators).to eq("familyName"=>"Peraya", "givenName"=>"Daniel", "name"=>"Peraya, Daniel", "nameType"=>"Personal")
495
504
  expect(subject.titles).to eq([{"title"=>"Distances, absence, proximités et présences : des concepts en déplacement"}, {"title"=>"Distance(s), proximity and presence(s): evolving concepts"}])
496
- expect(subject.dates).to eq([{"date"=>"2014-12-23", "dateType"=>"Issued"}, {"date"=>"2019-02-02T06:53:25Z", "dateType"=>"Updated"}])
505
+ expect(subject.dates).to include({"date"=>"2014-12-23", "dateType"=>"Issued"})
497
506
  expect(subject.publication_year).to eq("2014")
498
507
  expect(subject.publisher).to eq("OpenEdition")
499
508
  expect(subject.agency).to eq("Crossref")
@@ -504,24 +513,24 @@ describe Bolognese::Metadata, vcr: true do
504
513
  input = "https://doi.org/10.1098/rspb.2017.0132"
505
514
  subject = Bolognese::Metadata.new(input: input)
506
515
  expect(subject.valid?).to be true
507
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1098/rspb.2017.0132", "identifierType"=>"DOI"}, {"identifier"=>"/royprsb/284/1855/20170132.atom", "identifierType"=>"Publisher ID"}])
508
- expect(subject.url).to eq("http://rspb.royalsocietypublishing.org/lookup/doi/10.1098/rspb.2017.0132")
516
+ expect(subject.id).to eq("https://doi.org/10.1098/rspb.2017.0132")
517
+ expect(subject.url).to eq("https://royalsocietypublishing.org/doi/10.1098/rspb.2017.0132")
509
518
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
510
519
  expect(subject.creators.size).to eq(6)
511
- expect(subject.creators.first).to eq("familyName" => "Dougherty","givenName" => "Liam R.","name" => "Dougherty, Liam R.","nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-1406-0680", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],"nameType"=>"Personal")
520
+ expect(subject.creators.first).to eq("affiliation" => [{"name"=>"School of Biological Sciences, Centre for Evolutionary Biology, University of Western Australia, Crawley, WA 6009, Australia"}], "familyName" => "Dougherty","givenName" => "Liam R.","name" => "Dougherty, Liam R.","nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-1406-0680", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],"nameType"=>"Personal")
512
521
  expect(subject.titles).to eq([{"title"=>"Sexual conflict and correlated evolution between male persistence and female resistance traits in the seed beetle <i>Callosobruchus maculatus</i>"}])
513
- expect(subject.dates).to eq([{"date"=>"2017-05-24", "dateType"=>"Issued"}, {"date"=>"2017-05-24T09:13:39Z", "dateType"=>"Updated"}])
522
+ expect(subject.dates).to include({"date"=>"2017-05-24", "dateType"=>"Issued"})
514
523
  expect(subject.publication_year).to eq("2017")
515
524
  expect(subject.publisher).to eq("The Royal Society")
516
525
  expect(subject.agency).to eq("Crossref")
517
- expect(subject.date_registered).to eq("2017-05-24T02:10:18Z")
526
+ expect(subject.date_registered).to eq("2019-07-18T04:43:12Z")
518
527
  end
519
528
 
520
529
  it "empty given name" do
521
530
  input = "https://doi.org/10.1111/J.1865-1682.2010.01171.X"
522
531
  subject = Bolognese::Metadata.new(input: input)
523
532
  expect(subject.valid?).to be true
524
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1111/j.1865-1682.2010.01171.x", "identifierType"=>"DOI"}])
533
+ expect(subject.id).to eq("https://doi.org/10.1111/j.1865-1682.2010.01171.x")
525
534
  expect(subject.url).to eq("http://doi.wiley.com/10.1111/j.1865-1682.2010.01171.x")
526
535
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
527
536
  expect(subject.creators.length).to eq(5)
@@ -537,7 +546,8 @@ describe Bolognese::Metadata, vcr: true do
537
546
  input = "https://doi.org/10.1055/s-0039-1690894"
538
547
  subject = Bolognese::Metadata.new(input: input)
539
548
  expect(subject.valid?).to be true
540
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1055/s-0039-1690894", "identifierType"=>"DOI"}, {"identifier"=>"s-0039-1690894", "identifierType"=>"Publisher ID"}])
549
+ expect(subject.id).to eq("https://doi.org/10.1055/s-0039-1690894")
550
+ expect(subject.identifiers).to eq([{"identifier"=>"s-0039-1690894", "identifierType"=>"Publisher ID"}])
541
551
  expect(subject.url).to eq("http://www.thieme-connect.de/DOI/DOI?10.1055/s-0039-1690894")
542
552
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
543
553
  expect(subject.creators.length).to eq(4)
@@ -548,7 +558,7 @@ describe Bolognese::Metadata, vcr: true do
548
558
  "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0002-3902-6799", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],
549
559
  "nameType" => "Personal")
550
560
  expect(subject.titles).to eq([{"title"=>"Silver-Catalyzed [3+3] Annulation of Glycine Imino Esters with Seyferth–Gilbert Reagent To Access Tetrahydro-1,2,4-triazinecarboxylate Esters"}])
551
- expect(subject.dates).to eq([{"date"=>"2020-04-08", "dateType"=>"Issued"}, {"date"=>"2020-04-18T00:14:52Z", "dateType"=>"Updated"}])
561
+ expect(subject.dates).to eq([{"date"=>"2020-04-08", "dateType"=>"Issued"}, {"date"=>"2020-06-16T23:13:36Z", "dateType"=>"Updated"}])
552
562
  expect(subject.publication_year).to eq("2020")
553
563
  expect(subject.publisher).to eq("Georg Thieme Verlag KG")
554
564
  end
@@ -557,14 +567,14 @@ describe Bolognese::Metadata, vcr: true do
557
567
  input = "https://doi.org/10.1111/nph.14619"
558
568
  subject = Bolognese::Metadata.new(input: input)
559
569
  expect(subject.valid?).to be true
560
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1111/nph.14619", "identifierType"=>"DOI"}])
570
+ expect(subject.id).to eq("https://doi.org/10.1111/nph.14619")
561
571
  expect(subject.url).to eq("http://doi.wiley.com/10.1111/nph.14619")
562
572
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
563
573
  expect(subject.creators.length).to eq(3)
564
574
  expect(subject.creators.first).to eq("nameType"=>"Personal", "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0002-4156-3761", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}], "name"=>"Dissmeyer, Nico", "givenName"=>"Nico", "familyName"=>"Dissmeyer", "affiliation" => [{"name"=>"Independent Junior Research Group on Protein Recognition and Degradation; Leibniz Institute of Plant Biochemistry (IPB); Weinberg 3 Halle (Saale) D-06120 Germany"}, {"name"=>"ScienceCampus Halle - Plant-based Bioeconomy; Betty-Heimann-Strasse 3 Halle (Saale) D-06120 Germany"}])
565
575
  expect(subject.titles).to eq([{"title"=>"Life and death of proteins after protease cleavage: protein degradation by the N-end rule pathway"}])
566
576
  expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}, {"rightsUri"=>"http://onlinelibrary.wiley.com/termsAndConditions#vor"}])
567
- expect(subject.dates).to eq([{"date"=>"2018-05", "dateType"=>"Issued"}, {"date"=>"2018-08-07T05:52:14Z", "dateType"=>"Updated"}])
577
+ expect(subject.dates).to include({"date"=>"2018-05", "dateType"=>"Issued"})
568
578
  expect(subject.publication_year).to eq("2018")
569
579
  expect(subject.publisher).to eq("Wiley")
570
580
  expect(subject.related_identifiers.length).to eq(49)
@@ -579,13 +589,13 @@ describe Bolognese::Metadata, vcr: true do
579
589
  input = "https://doi.org/10.1038/ng.3834"
580
590
  subject = Bolognese::Metadata.new(input: input)
581
591
  expect(subject.valid?).to be true
582
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1038/ng.3834", "identifierType"=>"DOI"}])
592
+ expect(subject.id).to eq("https://doi.org/10.1038/ng.3834")
583
593
  expect(subject.url).to eq("http://www.nature.com/articles/ng.3834")
584
594
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
585
595
  expect(subject.creators.length).to eq(14)
586
596
  expect(subject.creators.last).to eq("name"=>"GTEx Consortium", "nameType"=>"Organizational")
587
597
  expect(subject.titles).to eq([{"title"=>"The impact of structural variation on human gene expression"}])
588
- expect(subject.dates).to eq([{"date"=>"2017-04-03", "dateType"=>"Issued"}, {"date"=>"2019-11-02T08:50:05Z", "dateType"=>"Updated"}])
598
+ expect(subject.dates).to include({"date"=>"2017-04-03", "dateType"=>"Issued"})
589
599
  expect(subject.publication_year).to eq("2017")
590
600
  expect(subject.publisher).to eq("Springer Science and Business Media LLC")
591
601
  expect(subject.agency).to eq("Crossref")
@@ -596,7 +606,7 @@ describe Bolognese::Metadata, vcr: true do
596
606
  input = "https://doi.org/10.6002/ect.2015.0371"
597
607
  subject = Bolognese::Metadata.new(input: input)
598
608
  #expect(subject.valid?).to be true
599
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.6002/ect.2015.0371", "identifierType"=>"DOI"}])
609
+ expect(subject.id).to eq("https://doi.org/10.6002/ect.2015.0371")
600
610
  expect(subject.url).to eq("http://ectrx.org/forms/ectrxcontentshow.php?doi_id=10.6002/ect.2015.0371")
601
611
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceType"=>"JournalIssue", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"PublicationIssue")
602
612
  expect(subject.creators).to eq("name"=>":(unav)", "nameType"=>"Organizational")
@@ -614,7 +624,7 @@ describe Bolognese::Metadata, vcr: true do
614
624
  input = "https://doi.org/10.7554/elife.01567x"
615
625
  subject = Bolognese::Metadata.new(input: input)
616
626
  expect(subject.valid?).to be false
617
- expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.7554/elife.01567x", "identifierType"=>"DOI"}])
627
+ expect(subject.id).to eq("https://doi.org/10.7554/elife.01567x")
618
628
  expect(subject.doi).to eq("10.7554/elife.01567x")
619
629
  expect(subject.agency).to eq("Crossref")
620
630
  expect(subject.state).to eq("not_found")