eCQM QICore Content Implementation Guide
2025.0.0 - CI Build

eCQM QICore Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/ecqm-content-qicore-2025/ and changes regularly. See the Directory of published versions

: CMS108FHIRVTEProphylaxis - TTL Representation

Active as of 2025-06-23

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix loinc: <https://loinc.org/rdf/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "CMS108FHIRVTEProphylaxis"] ; # 
  fhir:meta [
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-executablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-executablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/elm-json-library"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/elm-json-library>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/elm-xml-library"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/elm-xml-library>     ] )
  ] ; # 
  fhir:language [ fhir:v "en"] ; # 
  fhir:text [
fhir:status [ fhir:v "extensions" ] ;
fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"col-12\">\n  <table class=\"narrative-table\">\n    <tbody>\n<tr>\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\">Knowledge Artifact Metadata</th>\n\n</tr>\n\n<tr>\n\n<th scope=\"row\" class=\"row-header\">Name (machine-readable)</th>\n\n<td class=\"content-container\">CMS108FHIRVTEProphylaxis</td>\n</tr>\n\n\n<tr>\n\n<th scope=\"row\" class=\"row-header\">Title (human-readable)</th>\n\n<td class=\"content-container\">CMS108FHIRVTEProphylaxis</td>\n</tr>\n\n\n\n<tr>\n\n<th scope=\"row\" class=\"row-header\">Status</th>\n\n<td class=\"content-container\">active</td>\n</tr>\n\n\n<tr>\n\n<th scope=\"row\" class=\"row-header\">Experimental</th>\n\n<td class=\"content-container\">false</td>\n</tr>\n\n\n<tr>\n\n<th scope=\"row\" class=\"row-header\">Description</th>\n\n<td class=\"content-container\">CMS108FHIRVTEProphylaxis</td>\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n<th scope=\"row\" class=\"row-header\">Library Steward</th>\n\n<td class=\"content-container\">The Joint Commission</td>\n</tr>\n\n\n\n\n\n\n\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Library SDE\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: https://madie.cms.gov/Library/SupplementalDataElements|5.1.000\n    <br/>\n    <em>Canonical URL</em>: <tt>https://madie.cms.gov/Library/SupplementalDataElements|5.1.000</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Library VTE\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: https://madie.cms.gov/Library/VTE|8.18.000\n    <br/>\n    <em>Canonical URL</em>: <tt>https://madie.cms.gov/Library/VTE|8.18.000</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Library FHIRHelpers\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: https://madie.cms.gov/Library/FHIRHelpers|4.4.000\n    <br/>\n    <em>Canonical URL</em>: <tt>https://madie.cms.gov/Library/FHIRHelpers|4.4.000</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Library CQMCommon\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: https://madie.cms.gov/Library/CQMCommon|4.1.000\n    <br/>\n    <em>Canonical URL</em>: <tt>https://madie.cms.gov/Library/CQMCommon|4.1.000</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Library TJC\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: https://madie.cms.gov/Library/TJCOverall|8.23.000\n    <br/>\n    <em>Canonical URL</em>: <tt>https://madie.cms.gov/Library/TJCOverall|8.23.000</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Code system LOINC\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://loinc.org\n    <br/>\n    <em>Canonical URL</em>: <tt>http://loinc.org</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Low Dose Unfractionated Heparin for VTE Prophylaxis\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.39\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.39</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Subcutaneous route\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.223\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.223</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Low Molecular Weight Heparin for VTE Prophylaxis\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.219\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.219</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Injectable Factor Xa Inhibitor for VTE Prophylaxis\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.211\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.211</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Warfarin\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.232\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.232</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Rivaroxaban for VTE Prophylaxis\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.50\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.50</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Application of Intermittent Pneumatic Compression Devices\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.65\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.65</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Application of Venous Foot Pumps\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.64\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.64</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Application of Graduated Compression Stockings\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.66\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.66</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set General or Neuraxial Anesthesia\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.1743\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.1743</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Oral Factor Xa Inhibitor for VTE Prophylaxis or VTE Treatment\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.134\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.134</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Atrial Fibrillation or Flutter\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.202\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.202</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Venous Thromboembolism\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.279\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.279</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Hip Replacement Surgery\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.259\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.259</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Knee Replacement Surgery\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.261\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.261</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Low Risk\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.400\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.400</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set INR\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.213\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.213</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Unfractionated Heparin\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.218\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.218</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Intravenous route\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.222\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.222</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Direct Thrombin Inhibitor\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.205\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.205</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Glycoprotein IIb IIIa Inhibitors\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.41\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.41</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Medical Reason For Not Providing Treatment\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.473\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.473</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Venous foot pumps\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.230\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.230</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Intermittent pneumatic compression devices\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.214\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.214</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Graduated compression stockings\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.256\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.256</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Patient Refusal\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.93\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.93</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Intensive Care Unit\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1029.206\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1029.206</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Mental Health Diagnoses\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.105.12.1004\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.105.12.1004</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Hemorrhagic Stroke\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.212\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.212</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Ischemic Stroke\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.247\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.247</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set General Surgery\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.255\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.255</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Gynecological Surgery\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.257\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.257</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Hip Fracture Surgery\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.258\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.258</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Intracranial Neurosurgery\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.260\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.260</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Urological Surgery\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.272\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.272</tt>\n    \n  </td>\n</tr>\n\n<tr>\n  \n  \n  \n  \n  \n<th scope=\"row\" class=\"row-header\">Dependency</th>\n\n  \n  <td class=\"content-container\">\n    \n    <em>Description</em>: Value set Comfort Measures\n    \n    <br/>\n    \n    \n    \n    \n    \n    \n    <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/1.3.6.1.4.1.33895.1.3.0.45\n    <br/>\n    <em>Canonical URL</em>: <tt>http://cts.nlm.nih.gov/fhir/ValueSet/1.3.6.1.4.1.33895.1.3.0.45</tt>\n    \n  </td>\n</tr>\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\">Library Metadata</th>\n\n</tr>\n\n<tr>\n\n<th scope=\"row\" class=\"row-header\">Identifier</th>\n\n<td class=\"content-container\">org.hl7.fhir.r5.model.Identifier@35c33c05</td>\n</tr>\n\n\n<tr>\n\n<th scope=\"row\" class=\"row-header\">Version Number</th>\n\n<td class=\"content-container\">0.3.002</td>\n</tr>\n\n\n<tr>\n\n<th scope=\"row\" class=\"row-header\">Library Type</th>\n\n<td class=\"content-container\">[http://terminology.hl7.org/CodeSystem/library-type#logic-library]</td>\n</tr>\n\n\n\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministration\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, dosage, dosage.route, id, id.value, effective\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.39\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministration\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, effective\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.219\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministration\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, effective\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.211\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministration\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, effective\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.232\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministration\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, effective\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.50\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministration\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, effective, id, id.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.134\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministration\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, dosage, dosage.route, status, status.value, id, id.value, effective\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.218\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministration\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, effective\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.205\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministration\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, effective\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.41\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Procedure\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, status, status.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.65\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Procedure\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, status, status.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.64\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Procedure\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, status, status.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.66\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Procedure\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, status, status.value, performed\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.1743\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Procedure\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, status, status.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.259\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Procedure\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, status, status.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.261\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Procedure\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, status, status.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/1.3.6.1.4.1.33895.1.3.0.45\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Condition\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-problems-health-concerns\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, verificationStatus, onset\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.202\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Condition\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-problems-health-concerns\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, clinicalStatus, verificationStatus, onset\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.279\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Observation\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-simple-observation\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, value, status, status.value, id, id.value, effective\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n  \n    <span class=\"tab-one\"><em>Code(s)</em>: \n    \n      \n      http://loinc.org#72136-5: 'Risk for venous thromboembolism'\n      \n    \n    </span>\n    <br/>\n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Observation\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation-lab\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, value, status, status.value, id, id.value, issued, issued.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.213\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministrationnotdone\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, id, id.value, statusReason, extension\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.39\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministrationnotdone\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, id, id.value, statusReason, extension\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.219\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministrationnotdone\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, id, id.value, statusReason, extension\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.211\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministrationnotdone\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, id, id.value, statusReason, extension\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.232\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationAdministration\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationadministrationnotdone\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, id, id.value, statusReason, extension\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.50\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationnotrequested\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, intent, intent.value, id, id.value, reasonCode, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.39\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationnotrequested\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, intent, intent.value, id, id.value, reasonCode, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.219\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationnotrequested\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, intent, intent.value, id, id.value, reasonCode, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.211\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationnotrequested\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, intent, intent.value, id, id.value, reasonCode, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.232\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationnotrequested\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, intent, intent.value, id, id.value, reasonCode, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.50\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.39\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.219\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.211\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.232\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication, status, status.value, id, id.value, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: medication</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.50\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: MedicationRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: medication.reference.value, status, status.value, id, id.value, authoredOn, authoredOn.value\n    <br/>\n   \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Medication\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medication\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: id.value, code\n    <br/>\n   \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Task\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-taskrejected\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: focus, code, statusReason\n    <br/>\n   \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: ServiceRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicenotrequested\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, intent, intent.value, id, id.value, extension, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.230\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: ServiceRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicenotrequested\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, intent, intent.value, id, id.value, extension, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.214\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: ServiceRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicenotrequested\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, intent, intent.value, id, id.value, extension, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.256\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: ServiceRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, intent, intent.value, status, status.value, id, id.value, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.230\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: ServiceRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, intent, intent.value, status, status.value, id, id.value, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.214\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: ServiceRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, intent, intent.value, status, status.value, id, id.value, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.256\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: ServiceRequest\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, intent, intent.value, status, status.value, id, id.value, authoredOn, authoredOn.value\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/1.3.6.1.4.1.33895.1.3.0.45\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Procedure\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedurenotdone\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, extension, id, id.value, statusReason\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.65\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Procedure\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedurenotdone\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, extension, id, id.value, statusReason\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.64\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n<tr>\n  <th scope=\"row\" class=\"row-header\">Data Requirement</th>\n  <td class=\"content-container\">\n    <em>Type</em>: Procedure\n    <br/>\n  \n    <em>Profile(s)</em>: \n  \n    http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedurenotdone\n    <br/>        \n  \n   \n   \n    <em>Must Support Elements</em>: code, extension, id, id.value, statusReason\n    <br/>\n   \n  \n    <em>Code Filter(s)</em>: \n    <br/>\n  \n  \n    <span class=\"tab-one\"><em>Path</em>: code</span>\n    <br/>\n  \n  \n  \n    <span class=\"tab-one\"><em>ValueSet</em>:</span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.66\n    <br/> \n  \n  \n  \n   \n  </td>\n</tr>\n\n\n\n  <tr>\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\">Library Content</th>\n\n</tr>\n  \n    \n    <tr>\n      <th scope=\"row\" class=\"row-header\">CQL Content</th>\n      <td>\n        <pre style=\"border: none;\" class=\"content-container highlight language-cql\"><code class=\"language-cql\">library CMS108FHIRVTEProphylaxis version '0.3.002'#xD;\n#xD;\nusing QICore version '6.0.0'#xD;\n#xD;\ninclude CQMCommon version '4.1.000' called CQMCommon#xD;\ninclude QICoreCommon version '4.0.000' called QICoreCommon#xD;\ninclude FHIRHelpers version '4.4.000' called FHIRHelpers#xD;\ninclude SupplementalDataElements version '5.1.000' called SDE#xD;\ninclude TJCOverall version '8.23.000' called TJC#xD;\ninclude VTE version '8.18.000' called VTE#xD;\n#xD;\ncodesystem \"LOINC\": 'http://loinc.org'#xD;\n#xD;\ncode \"Risk for venous thromboembolism\": '72136-5' from \"LOINC\" display 'Risk for venous thromboembolism'#xD;\n#xD;\nvalueset \"Application of Graduated Compression Stockings\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.66'#xD;\nvalueset \"Application of Intermittent Pneumatic Compression Devices\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.65'#xD;\nvalueset \"Application of Venous Foot Pumps\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.64'#xD;\nvalueset \"Atrial Fibrillation or Flutter\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.202'#xD;\nvalueset \"Comfort Measures\": 'http://cts.nlm.nih.gov/fhir/ValueSet/1.3.6.1.4.1.33895.1.3.0.45'#xD;\nvalueset \"Direct Thrombin Inhibitor\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.205'#xD;\nvalueset \"General or Neuraxial Anesthesia\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.1743'#xD;\nvalueset \"General Surgery\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.255'#xD;\nvalueset \"Glycoprotein IIb IIIa Inhibitors\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.41'#xD;\nvalueset \"Graduated compression stockings\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.256'#xD;\nvalueset \"Gynecological Surgery\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.257'#xD;\nvalueset \"Hemorrhagic Stroke\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.212'#xD;\nvalueset \"Ischemic Stroke\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.247'#xD;\nvalueset \"Hip Fracture Surgery\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.258'#xD;\nvalueset \"Hip Replacement Surgery\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.259'#xD;\nvalueset \"Injectable Factor Xa Inhibitor for VTE Prophylaxis\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.211'#xD;\nvalueset \"INR\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.213'#xD;\nvalueset \"Intensive Care Unit\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1029.206'#xD;\nvalueset \"Intermittent pneumatic compression devices\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.214'#xD;\nvalueset \"Intracranial Neurosurgery\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.260'#xD;\nvalueset \"Intravenous route\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.222'#xD;\nvalueset \"Knee Replacement Surgery\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.261'#xD;\nvalueset \"Low Dose Unfractionated Heparin for VTE Prophylaxis\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.39'#xD;\nvalueset \"Low Molecular Weight Heparin for VTE Prophylaxis\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.219'#xD;\nvalueset \"Low Risk\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.400'#xD;\nvalueset \"Medical Reason For Not Providing Treatment\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.473'#xD;\nvalueset \"Mental Health Diagnoses\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.105.12.1004'#xD;\nvalueset \"Oral Factor Xa Inhibitor for VTE Prophylaxis or VTE Treatment\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.134'#xD;\nvalueset \"Patient Refusal\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.93'#xD;\nvalueset \"Rivaroxaban for VTE Prophylaxis\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.50'#xD;\nvalueset \"Subcutaneous route\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.223'#xD;\nvalueset \"Unfractionated Heparin\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.218'#xD;\nvalueset \"Urological Surgery\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.272'#xD;\nvalueset \"Venous foot pumps\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.230'#xD;\nvalueset \"Venous Thromboembolism\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.279'#xD;\nvalueset \"Warfarin\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.232'#xD;\n#xD;\nparameter \"Measurement Period\" Interval&lt;DateTime&gt;#xD;\n#xD;\ncontext Patient#xD;\n#xD;\ndefine \"SDE Ethnicity\":#xD;\n  SDE.\"SDE Ethnicity\"#xD;\n#xD;\ndefine \"SDE Payer\":#xD;\n  SDE.\"SDE Payer\"#xD;\n#xD;\ndefine \"SDE Race\":#xD;\n  SDE.\"SDE Race\"#xD;\n#xD;\ndefine \"SDE Sex\":#xD;\n  SDE.\"SDE Sex\"#xD;\n#xD;\ndefine \"Initial Population\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\"#xD;\n#xD;\ndefine \"Denominator\":#xD;\n  \"Initial Population\"#xD;\n#xD;\ndefine \"Denominator Exclusions\":#xD;\n  \"Encounter Less Than 2 Days\"#xD;\n    union \"Encounter With ICU Location Stay 1 Day Or More\"#xD;\n    union \"Encounter With Principal Diagnosis Of Mental Disorder Or Stroke\"#xD;\n    union \"Encounter With Principal Procedure Of Selected Surgery\"#xD;\n    union \"Encounter With Intervention Comfort Measures From Day Of Start Of Hospitalization To Day After Admission\"#xD;\n    union \"Encounter With Intervention Comfort Measures On Day Of Or Day After Procedure\"#xD;\n#xD;\ndefine \"Encounter Less Than 2 Days\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n    where QualifyingEncounter.period.lengthInDays ( ) &lt; 2#xD;\n#xD;\ndefine \"Encounter With ICU Location Stay 1 Day Or More\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n    where exists ( QualifyingEncounter.location Location#xD;\n        where Location.location.getLocation ( ).type in \"Intensive Care Unit\"#xD;\n          and Location.period.lengthInDays ( ) &gt;= 1#xD;\n          and Location.period starts on or after start of QualifyingEncounter.period#xD;\n          and date from ( start of Location.period ) during ( start of QualifyingEncounter.period ).CalendarDayOfOrDayAfter ( )#xD;\n    )#xD;\n#xD;\ndefine \"Encounter With Principal Diagnosis Of Mental Disorder Or Stroke\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n    where QualifyingEncounter.hasPrincipalDiagnosisOf ( \"Mental Health Diagnoses\" )#xD;\n      or QualifyingEncounter.hasPrincipalDiagnosisOf ( \"Hemorrhagic Stroke\" )#xD;\n      or QualifyingEncounter.hasPrincipalDiagnosisOf ( \"Ischemic Stroke\" )#xD;\n#xD;\ndefine \"Encounter With Principal Procedure Of Selected Surgery\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n    where QualifyingEncounter.hasPrincipalProcedureOf ( \"General Surgery\" )#xD;\n      or QualifyingEncounter.hasPrincipalProcedureOf ( \"Gynecological Surgery\" )#xD;\n      or QualifyingEncounter.hasPrincipalProcedureOf ( \"Hip Fracture Surgery\" )#xD;\n      or QualifyingEncounter.hasPrincipalProcedureOf ( \"Hip Replacement Surgery\" )#xD;\n      or QualifyingEncounter.hasPrincipalProcedureOf ( \"Intracranial Neurosurgery\" )#xD;\n      or QualifyingEncounter.hasPrincipalProcedureOf ( \"Knee Replacement Surgery\" )#xD;\n      or QualifyingEncounter.hasPrincipalProcedureOf ( \"Urological Surgery\" )#xD;\n#xD;\ndefine \"Intervention Comfort Measures\":#xD;\n  ( [\"ServiceRequest\": \"Comfort Measures\"] InterventionRequest#xD;\n      where InterventionRequest.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }#xD;\n        and InterventionRequest.status in { 'active', 'on-hold', 'completed' }#xD;\n  )#xD;\n    union ( [\"Procedure\": \"Comfort Measures\"] InterventionPerformed#xD;\n        where InterventionPerformed.status in { 'completed', 'in-progress' }#xD;\n    )#xD;\n#xD;\ndefine \"Encounter With Intervention Comfort Measures On Day Of Or Day After Procedure\":#xD;\n  from#xD;\n    VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter,#xD;\n    [\"Procedure\": \"General or Neuraxial Anesthesia\"] AnesthesiaProcedure,#xD;\n    \"Intervention Comfort Measures\" ComfortMeasure#xD;\n    where AnesthesiaProcedure.status = 'completed'#xD;\n      and AnesthesiaProcedure.performed.toInterval ( ) ends 1 day after day of start of QualifyingEncounter.period#xD;\n      and Coalesce(start of ComfortMeasure.performed.toInterval(), ComfortMeasure.authoredOn) during day of ( end of AnesthesiaProcedure.performed.toInterval ( ) ).CalendarDayOfOrDayAfter ( )#xD;\n    return QualifyingEncounter#xD;\n#xD;\ndefine \"Encounter With Intervention Comfort Measures From Day Of Start Of Hospitalization To Day After Admission\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n    with \"Intervention Comfort Measures\" ComfortMeasure#xD;\n      such that Coalesce(start of ComfortMeasure.performed.toInterval(), ComfortMeasure.authoredOn) during day of QualifyingEncounter.fromDayOfStartOfHospitalizationToDayAfterAdmission ( )#xD;\n#xD;\ndefine \"Numerator\":#xD;\n  \"Encounter With VTE Prophylaxis Received From Day Of Start Of Hospitalization To Day After Admission Or Procedure\"#xD;\n    union ( \"Encounter With Medication Oral Factor Xa Inhibitor Administered On Day Of Or Day After Admission Or Procedure\"#xD;\n        intersect ( \"Encounter With Prior Or Present Diagnosis Of Atrial Fibrillation Or Prior Diagnosis Of VTE\"#xD;\n            union \"Encounter With Prior Or Present Procedure Of Hip Or Knee Replacement Surgery\"#xD;\n        )#xD;\n    )#xD;\n    union \"Encounter With Low Risk For VTE Or Anticoagulant Administered\"#xD;\n    union \"Encounter With No VTE Prophylaxis Due To Medical Reason\"#xD;\n    union \"Encounter With No VTE Prophylaxis Due To Patient Refusal\"#xD;\n#xD;\ndefine \"Pharmacological or Mechanical VTE Prophylaxis Received\":#xD;\n  ( [\"MedicationAdministration\": medication in \"Low Dose Unfractionated Heparin for VTE Prophylaxis\"] VTEMedication#xD;\n      where VTEMedication.status = 'completed'#xD;\n        and VTEMedication.dosage.route in \"Subcutaneous route\"#xD;\n  )#xD;\n    union ( [\"MedicationAdministration\": medication in \"Low Molecular Weight Heparin for VTE Prophylaxis\"] LMWH#xD;\n        where LMWH.status = 'completed'#xD;\n    )#xD;\n    union ( [\"MedicationAdministration\": medication in \"Injectable Factor Xa Inhibitor for VTE Prophylaxis\"] FactorXa#xD;\n        where FactorXa.status = 'completed'#xD;\n    )#xD;\n    union ( [\"MedicationAdministration\": medication in \"Warfarin\"] WarfarinAdm#xD;\n        where WarfarinAdm.status = 'completed'#xD;\n    )#xD;\n    union ( [\"MedicationAdministration\": medication in \"Rivaroxaban for VTE Prophylaxis\"] Rivaroxaban#xD;\n        where Rivaroxaban.status = 'completed'#xD;\n    )#xD;\n    union ( ( [\"Procedure\": \"Application of Intermittent Pneumatic Compression Devices\"]#xD;\n        union [\"Procedure\": \"Application of Venous Foot Pumps\"]#xD;\n        union [\"Procedure\": \"Application of Graduated Compression Stockings\"] ) DeviceApplied#xD;\n        where DeviceApplied.status = 'completed'#xD;\n    )#xD;\n#xD;\ndefine \"Encounter With VTE Prophylaxis Received From Day Of Start Of Hospitalization To Day After Admission Or Procedure\":#xD;\n  ( from#xD;\n      VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter,#xD;\n      \"Pharmacological or Mechanical VTE Prophylaxis Received\" VTEProphylaxis#xD;\n      where Coalesce(VTEProphylaxis.effective.toInterval(), VTEProphylaxis.performed.toInterval()) starts during day of QualifyingEncounter.fromDayOfStartOfHospitalizationToDayAfterAdmission ( )#xD;\n      return QualifyingEncounter#xD;\n  )#xD;\n    union ( from#xD;\n        VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter,#xD;\n        [\"Procedure\": \"General or Neuraxial Anesthesia\"] AnesthesiaProcedure,#xD;\n        \"Pharmacological or Mechanical VTE Prophylaxis Received\" VTEProphylaxis#xD;\n        where AnesthesiaProcedure.status = 'completed'#xD;\n          and AnesthesiaProcedure.performed.toInterval ( ) ends 1 day after day of start of QualifyingEncounter.period#xD;\n          and Coalesce(VTEProphylaxis.effective.toInterval(), VTEProphylaxis.performed.toInterval()) starts during day of ( end of AnesthesiaProcedure.performed.toInterval ( ) ).CalendarDayOfOrDayAfter ( )#xD;\n        return QualifyingEncounter#xD;\n    )#xD;\n#xD;\ndefine \"Encounter With Medication Oral Factor Xa Inhibitor Administered On Day Of Or Day After Admission Or Procedure\":#xD;\n  ( from#xD;\n      VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter,#xD;\n      [\"MedicationAdministration\": medication in \"Oral Factor Xa Inhibitor for VTE Prophylaxis or VTE Treatment\"] FactorXaMedication#xD;\n      where FactorXaMedication.status = 'completed'#xD;\n        and FactorXaMedication.effective.toInterval ( ) starts during day of ( start of QualifyingEncounter.period ).CalendarDayOfOrDayAfter ( )#xD;\n      return QualifyingEncounter#xD;\n  )#xD;\n    union ( from#xD;\n        VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter,#xD;\n        [\"Procedure\": \"General or Neuraxial Anesthesia\"] AnesthesiaProcedure,#xD;\n        [\"MedicationAdministration\": medication in \"Oral Factor Xa Inhibitor for VTE Prophylaxis or VTE Treatment\"] FactorXaMedication#xD;\n        where FactorXaMedication.status = 'completed'#xD;\n          and AnesthesiaProcedure.status = 'completed'#xD;\n          and AnesthesiaProcedure.performed.toInterval ( ) ends 1 day after day of start of QualifyingEncounter.period#xD;\n          and FactorXaMedication.effective.toInterval ( ) starts during day of ( end of AnesthesiaProcedure.performed.toInterval ( ) ).CalendarDayOfOrDayAfter ( )#xD;\n        return QualifyingEncounter#xD;\n    )#xD;\n#xD;\ndefine \"Encounter With Prior Or Present Diagnosis Of Atrial Fibrillation Or Prior Diagnosis Of VTE\":#xD;\n  ( VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n      with [\"ConditionProblemsHealthConcerns\": \"Atrial Fibrillation or Flutter\"] AtrialFibrillation#xD;\n        such that // CQMCOmmon new function isVerified() will be used to replace the following verificationStatus logic#xD;\n        AtrialFibrillation.verificationStatus is not null implies ( AtrialFibrillation.verificationStatus !~ QICoreCommon.\"refuted\"#xD;\n            and AtrialFibrillation.verificationStatus !~ QICoreCommon.\"entered-in-error\"#xD;\n        )#xD;\n          and AtrialFibrillation.onset.toInterval ( ) starts on or before end of QualifyingEncounter.period#xD;\n  )#xD;\n    union ( VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n        where QualifyingEncounter.hasEncDiagnosisOf ( \"Atrial Fibrillation or Flutter\" )#xD;\n    )#xD;\n    union ( VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n        with [\"ConditionProblemsHealthConcerns\": \"Venous Thromboembolism\"] VTEDiagnosis#xD;\n          such that ( VTEDiagnosis.clinicalStatus ~ QICoreCommon.\"inactive\"#xD;\n              or VTEDiagnosis.clinicalStatus ~ QICoreCommon.\"remission\"#xD;\n              or VTEDiagnosis.clinicalStatus ~ QICoreCommon.\"resolved\"#xD;\n          )// CQMCOmmon new function isVerified() will be used to replace the following verificationStatus logic#xD;\n            #xD;\n            and VTEDiagnosis.verificationStatus is not null implies ( VTEDiagnosis.verificationStatus !~ QICoreCommon.\"refuted\"#xD;\n              and VTEDiagnosis.verificationStatus !~ QICoreCommon.\"entered-in-error\"#xD;\n          )#xD;\n            and VTEDiagnosis.onset.toInterval ( ) before start of QualifyingEncounter.period#xD;\n    )#xD;\n#xD;\ndefine \"Encounter With Prior Or Present Procedure Of Hip Or Knee Replacement Surgery\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n    with ( [\"Procedure\": \"Hip Replacement Surgery\"]#xD;\n      union [\"Procedure\": \"Knee Replacement Surgery\"] ) HipKneeProcedure#xD;\n      such that HipKneeProcedure.status = 'completed'#xD;\n        and HipKneeProcedure.performed.toInterval ( ) starts on or before end of QualifyingEncounter.period#xD;\n#xD;\ndefine \"Encounter With Low Risk For VTE Or Anticoagulant Administered\":#xD;\n  \"Low Risk For VTE Or Anticoagulant Administered From Day Of Start Of Hospitalization To Day After Admission\"#xD;\n    union \"Low Risk For VTE Or Anticoagulant Administered On Day Of Or Day After Procedure\"#xD;\n#xD;\ndefine \"Low Risk Indicator For VTE\":#xD;\n  ( [\"SimpleObservation\": \"Risk for venous thromboembolism\"] VTERiskAssessment#xD;\n      where VTERiskAssessment.value as Concept in \"Low Risk\"#xD;\n        and VTERiskAssessment.status in { 'final', 'amended', 'corrected' }#xD;\n      return {#xD;\n        id: VTERiskAssessment.id,#xD;\n        LowRiskDatetime: VTERiskAssessment.effective.earliest ( )#xD;\n      }#xD;\n  )#xD;\n    union ( [\"LaboratoryResultObservation\": \"INR\"] INRLabTest#xD;\n        where INRLabTest.value as Quantity &gt; 3.0#xD;\n          and INRLabTest.status in { 'final', 'amended', 'corrected' }#xD;\n        return {#xD;\n          id: INRLabTest.id,#xD;\n          LowRiskDatetime: INRLabTest.issued#xD;\n        }#xD;\n    )#xD;\n    union ( ( ( [\"MedicationAdministration\": medication in \"Unfractionated Heparin\"] UnfractionatedHeparin#xD;\n          where UnfractionatedHeparin.dosage.route in \"Intravenous route\"#xD;\n      )#xD;\n        union [\"MedicationAdministration\": medication in \"Direct Thrombin Inhibitor\"]#xD;\n        union [\"MedicationAdministration\": medication in \"Glycoprotein IIb IIIa Inhibitors\"] ) AnticoagulantMedication#xD;\n        where AnticoagulantMedication.status = 'completed'#xD;\n        return {#xD;\n          id: AnticoagulantMedication.id,#xD;\n          LowRiskDatetime: start of AnticoagulantMedication.effective.toInterval ( )#xD;\n        }#xD;\n    )#xD;\n#xD;\ndefine \"Low Risk For VTE Or Anticoagulant Administered From Day Of Start Of Hospitalization To Day After Admission\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n    with \"Low Risk Indicator For VTE\" LowRiskForVTE#xD;\n      such that LowRiskForVTE.LowRiskDatetime during day of QualifyingEncounter.fromDayOfStartOfHospitalizationToDayAfterAdmission ( )#xD;\n#xD;\ndefine \"Low Risk For VTE Or Anticoagulant Administered On Day Of Or Day After Procedure\":#xD;\n  from#xD;\n    VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter,#xD;\n    [\"Procedure\": \"General or Neuraxial Anesthesia\"] AnesthesiaProcedure,#xD;\n    \"Low Risk Indicator For VTE\" LowRiskForVTE#xD;\n    where AnesthesiaProcedure.status = 'completed'#xD;\n      and AnesthesiaProcedure.performed.toInterval ( ) ends 1 day after day of start of QualifyingEncounter.period#xD;\n      and LowRiskForVTE.LowRiskDatetime during day of ( end of AnesthesiaProcedure.performed.toInterval ( ) ).CalendarDayOfOrDayAfter ( )#xD;\n    return QualifyingEncounter#xD;\n#xD;\ndefine \"Encounter With No VTE Prophylaxis Due To Medical Reason\":#xD;\n  ( \"No VTE Prophylaxis Medication Due To Medical Reason From Day Of Start Of Hospitalization To Day After Admission\"#xD;\n      intersect \"No Mechanical VTE Prophylaxis Due To Medical Reason From Day Of Start Of Hospitalization To Day After Admission\"#xD;\n  )#xD;\n    union ( \"No VTE Prophylaxis Medication Due To Medical Reason On Day Of Or Day After Procedure\"#xD;\n        intersect \"No Mechanical VTE Prophylaxis Due To Medical Reason On Day Of Or Day After Procedure\"#xD;\n    )#xD;\n#xD;\ndefine \"No VTE Prophylaxis Medication Due To Medical Reason From Day Of Start Of Hospitalization To Day After Admission\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n    with \"No VTE Prophylaxis Medication Administered Or Ordered\" NoVTEMedication#xD;\n      such that NoVTEMedication.medicationStatusReason in \"Medical Reason For Not Providing Treatment\"#xD;\n        and NoVTEMedication.authoredOn during day of QualifyingEncounter.fromDayOfStartOfHospitalizationToDayAfterAdmission ( )#xD;\n#xD;\ndefine \"No VTE Prophylaxis Medication Due To Medical Reason On Day Of Or Day After Procedure\":#xD;\n  from#xD;\n    VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter,#xD;\n    [\"Procedure\": \"General or Neuraxial Anesthesia\"] AnesthesiaProcedure,#xD;\n    \"No VTE Prophylaxis Medication Administered Or Ordered\" NoVTEMedication#xD;\n    where NoVTEMedication.medicationStatusReason in \"Medical Reason For Not Providing Treatment\"#xD;\n      and AnesthesiaProcedure.status = 'completed'#xD;\n      and AnesthesiaProcedure.performed.toInterval ( ) ends 1 day after day of start of QualifyingEncounter.period#xD;\n      and NoVTEMedication.authoredOn during day of ( end of AnesthesiaProcedure.performed.toInterval ( ) ).CalendarDayOfOrDayAfter ( )#xD;\n    return QualifyingEncounter#xD;\n#xD;\ndefine \"No VTE Prophylaxis Medication Administered Or Ordered\":#xD;\n  ( ( [MedicationAdministrationNotDone: \"Low Dose Unfractionated Heparin for VTE Prophylaxis\"]#xD;\n      union [MedicationAdministrationNotDone: \"Low Molecular Weight Heparin for VTE Prophylaxis\"]#xD;\n      union [MedicationAdministrationNotDone: \"Injectable Factor Xa Inhibitor for VTE Prophylaxis\"]#xD;\n      union [MedicationAdministrationNotDone: \"Warfarin\"]#xD;\n      union [MedicationAdministrationNotDone: \"Rivaroxaban for VTE Prophylaxis\"] ) NoMedicationAdm#xD;\n      return {#xD;\n        id: NoMedicationAdm.id,#xD;\n        medicationStatusReason: NoMedicationAdm.statusReason,#xD;\n        authoredOn: NoMedicationAdm.recorded#xD;\n      }#xD;\n  )#xD;\n    union ( ( [\"MedicationNotRequested\": \"Low Dose Unfractionated Heparin for VTE Prophylaxis\"]#xD;\n        union [\"MedicationNotRequested\": \"Low Molecular Weight Heparin for VTE Prophylaxis\"]#xD;\n        union [\"MedicationNotRequested\": \"Injectable Factor Xa Inhibitor for VTE Prophylaxis\"]#xD;\n        union [\"MedicationNotRequested\": \"Warfarin\"]#xD;\n        union [\"MedicationNotRequested\": \"Rivaroxaban for VTE Prophylaxis\"] ) NoMedicationOrder#xD;\n        where NoMedicationOrder.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }#xD;\n        return {#xD;\n          id: NoMedicationOrder.id,#xD;\n          medicationStatusReason: NoMedicationOrder.reasonCode,#xD;\n          authoredOn: NoMedicationOrder.authoredOn#xD;\n        }#xD;\n    )#xD;\n    union ( from#xD;\n        ( [\"MedicationRequest\": \"Low Dose Unfractionated Heparin for VTE Prophylaxis\"]#xD;\n          union [\"MedicationRequest\": \"Low Molecular Weight Heparin for VTE Prophylaxis\"]#xD;\n          union [\"MedicationRequest\": \"Injectable Factor Xa Inhibitor for VTE Prophylaxis\"]#xD;\n          union [\"MedicationRequest\": \"Warfarin\"]#xD;\n          union [\"MedicationRequest\": \"Rivaroxaban for VTE Prophylaxis\"] ) MedicationOrderReject,#xD;\n        [TaskRejected] T#xD;\n        where T.focus.references ( MedicationOrderReject )#xD;\n          and T.code ~ QICoreCommon.\"Fulfill\"#xD;\n          and MedicationOrderReject.status = 'active'#xD;\n        return {#xD;\n          id: MedicationOrderReject.id,#xD;\n          medicationStatusReason: { T.statusReason },#xD;\n          authoredOn: MedicationOrderReject.authoredOn#xD;\n        }#xD;\n    )#xD;\n#xD;\ndefine \"No Mechanical VTE Prophylaxis Due To Medical Reason From Day Of Start Of Hospitalization To Day After Admission\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n    with \"No Mechanical VTE Prophylaxis Performed Or Ordered\" NoVTEDevice#xD;\n      such that NoVTEDevice.requestStatusReason in \"Medical Reason For Not Providing Treatment\"#xD;\n        and NoVTEDevice.authoredOn during day of QualifyingEncounter.fromDayOfStartOfHospitalizationToDayAfterAdmission ( )#xD;\n#xD;\ndefine \"No Mechanical VTE Prophylaxis Due To Medical Reason On Day Of Or Day After Procedure\":#xD;\n  from#xD;\n    VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter,#xD;\n    [\"Procedure\": \"General or Neuraxial Anesthesia\"] AnesthesiaProcedure,#xD;\n    \"No Mechanical VTE Prophylaxis Performed Or Ordered\" NoVTEDevice#xD;\n    where NoVTEDevice.requestStatusReason in \"Medical Reason For Not Providing Treatment\"#xD;\n      and AnesthesiaProcedure.status = 'completed'#xD;\n      and AnesthesiaProcedure.performed.toInterval ( ) ends 1 day after day of start of QualifyingEncounter.period#xD;\n      and NoVTEDevice.authoredOn during day of ( end of AnesthesiaProcedure.performed.toInterval ( ) ).CalendarDayOfOrDayAfter ( )#xD;\n    return QualifyingEncounter#xD;\n#xD;\ndefine \"No Mechanical VTE Prophylaxis Performed Or Ordered\":#xD;\n  ( ( [ServiceNotRequested: \"Venous foot pumps\"]#xD;\n      union [ServiceNotRequested: \"Intermittent pneumatic compression devices\"]#xD;\n      union [ServiceNotRequested: \"Graduated compression stockings\"] ) DeviceNotOrder#xD;\n      where DeviceNotOrder.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }#xD;\n      return {#xD;\n        id: DeviceNotOrder.id,#xD;\n        requestStatusReason: DeviceNotOrder.reasonRefused,#xD;\n        authoredOn: DeviceNotOrder.authoredOn#xD;\n      }#xD;\n  )#xD;\n    union ( from#xD;\n        ( [ServiceRequest: \"Venous foot pumps\"]#xD;\n          union [ServiceRequest: \"Intermittent pneumatic compression devices\"]#xD;\n          union [ServiceRequest: \"Graduated compression stockings\"] ) DeviceOrderReject,#xD;\n        [TaskRejected] T#xD;\n        where DeviceOrderReject.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }#xD;\n          and DeviceOrderReject.status = 'active'#xD;\n          and T.focus.references ( DeviceOrderReject )#xD;\n          and T.code ~ QICoreCommon.\"Fulfill\"#xD;\n        return {#xD;\n          id: DeviceOrderReject.id,#xD;\n          requestStatusReason: T.statusReason,#xD;\n          authoredOn: DeviceOrderReject.authoredOn#xD;\n        }#xD;\n    )#xD;\n    union ( ( [ProcedureNotDone: \"Application of Intermittent Pneumatic Compression Devices\"]#xD;\n        union [ProcedureNotDone: \"Application of Venous Foot Pumps\"]#xD;\n        union [ProcedureNotDone: \"Application of Graduated Compression Stockings\"] ) DeviceNotApplied#xD;\n        let DeviceNotDoneTiming: DeviceNotApplied.recorded#xD;\n        return {#xD;\n          id: DeviceNotApplied.id,#xD;\n          requestStatusReason: DeviceNotApplied.statusReason,#xD;\n          authoredOn: DeviceNotDoneTiming#xD;\n        }#xD;\n    )#xD;\n#xD;\ndefine \"Encounter With No VTE Prophylaxis Due To Patient Refusal\":#xD;\n  \"No VTE Prophylaxis Due To Patient Refusal From Day Of Start Of Hospitalization To Day After Admission\"#xD;\n    union \"No VTE Prophylaxis Due To Patient Refusal On Day Of Or Day After Procedure\"#xD;\n#xD;\ndefine \"No VTE Prophylaxis Due To Patient Refusal From Day Of Start Of Hospitalization To Day After Admission\":#xD;\n  VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter#xD;\n    with \"No Mechanical Or Pharmacological VTE Prophylaxis Due To Patient Refusal\" PatientRefusal#xD;\n      such that PatientRefusal.authoredOn during day of QualifyingEncounter.fromDayOfStartOfHospitalizationToDayAfterAdmission ( )#xD;\n#xD;\ndefine \"No Mechanical Or Pharmacological VTE Prophylaxis Due To Patient Refusal\":#xD;\n  ( \"No VTE Prophylaxis Medication Administered Or Ordered\" NoVTEMedication#xD;\n      where exists ( NoVTEMedication.medicationStatusReason MedRsn#xD;\n          where MedRsn in \"Patient Refusal\"#xD;\n      )#xD;\n  )#xD;\n    union ( \"No Mechanical VTE Prophylaxis Performed Or Ordered\" NoVTEDevice#xD;\n        where NoVTEDevice.requestStatusReason in \"Patient Refusal\"#xD;\n    )#xD;\n#xD;\ndefine \"No VTE Prophylaxis Due To Patient Refusal On Day Of Or Day After Procedure\":#xD;\n  from#xD;\n    VTE.\"Encounter With Age Range And Without VTE Diagnosis Or Obstetrical Conditions\" QualifyingEncounter,#xD;\n    [\"Procedure\": \"General or Neuraxial Anesthesia\"] AnesthesiaProcedure,#xD;\n    \"No Mechanical Or Pharmacological VTE Prophylaxis Due To Patient Refusal\" PatientRefusal#xD;\n    where AnesthesiaProcedure.status = 'completed'#xD;\n      and AnesthesiaProcedure.performed.toInterval ( ) ends 1 day after day of start of QualifyingEncounter.period#xD;\n      and PatientRefusal.authoredOn during day of ( end of AnesthesiaProcedure.performed.toInterval ( ) ).CalendarDayOfOrDayAfter ( )#xD;\n    return QualifyingEncounter#xD;\n#xD;\ndefine fluent function \"fromDayOfStartOfHospitalizationToDayAfterAdmission\"(Encounter Encounter):#xD;\n  Interval[date from ( start of Encounter.hospitalizationWithObservation ( ) ), date from ( start of Encounter.period ) + 1 days]</code></pre>\n      </td>\n    </tr>\n    \n    \n    \n  \n\n<tr>\n  <th colspan=\"2\" scope=\"row\" class=\"row-header\">Generated using version 0.4.7 of the sample-content-ig Liquid templates</th>\n</tr>\n\n    </tbody>\n  </table>\n</div>"^^rdf:XMLLiteral
  ] ; # 
  fhir:contained ( [
a fhir:Parameters ;
fhir:id [ fhir:v "options" ] ;
    ( fhir:parameter [
fhir:name [ fhir:v "translatorVersion" ] ;
fhir:value [
a fhir:string ;
fhir:v "3.25.0"       ]     ] [
fhir:name [ fhir:v "option" ] ;
fhir:value [
a fhir:string ;
fhir:v "EnableAnnotations"       ]     ] [
fhir:name [ fhir:v "option" ] ;
fhir:value [
a fhir:string ;
fhir:v "EnableLocators"       ]     ] [
fhir:name [ fhir:v "option" ] ;
fhir:value [
a fhir:string ;
fhir:v "DisableListDemotion"       ]     ] [
fhir:name [ fhir:v "option" ] ;
fhir:value [
a fhir:string ;
fhir:v "DisableListPromotion"       ]     ] [
fhir:name [ fhir:v "format" ] ;
fhir:value [
a fhir:string ;
fhir:v "JSON"       ]     ] [
fhir:name [ fhir:v "format" ] ;
fhir:value [
a fhir:string ;
fhir:v "XML"       ]     ] [
fhir:name [ fhir:v "analyzeDataRequirements" ] ;
fhir:value [
a fhir:boolean ;
fhir:v false       ]     ] [
fhir:name [ fhir:v "collapseDataRequirements" ] ;
fhir:value [
a fhir:boolean ;
fhir:v false       ]     ] [
fhir:name [ fhir:v "compatibilityLevel" ] ;
fhir:value [
a fhir:string ;
fhir:v "1.5"       ]     ] [
fhir:name [ fhir:v "enableCqlOnly" ] ;
fhir:value [
a fhir:boolean ;
fhir:v false       ]     ] [
fhir:name [ fhir:v "errorLevel" ] ;
fhir:value [
a fhir:string ;
fhir:v "Info"       ]     ] [
fhir:name [ fhir:v "signatureLevel" ] ;
fhir:value [
a fhir:string ;
fhir:v "Overloads"       ]     ] [
fhir:name [ fhir:v "validateUnits" ] ;
fhir:value [
a fhir:boolean ;
fhir:v true       ]     ] [
fhir:name [ fhir:v "verifyOnly" ] ;
fhir:value [
a fhir:boolean ;
fhir:v false       ]     ] )
  ] ) ; # 
  fhir:extension ( [
fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode"^^xsd:anyURI ] ;
fhir:value [
a fhir:Coding, loinc:72136-5 ;
fhir:system [ fhir:v "http://loinc.org"^^xsd:anyURI ] ;
fhir:code [ fhir:v "72136-5" ] ;
fhir:display [ fhir:v "Risk for venous thromboembolism" ]     ]
  ] [
fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions"^^xsd:anyURI ] ;
fhir:value [
a fhir:Reference ;
fhir:reference [ fhir:v "#options" ]     ]
  ] ) ; # 
  fhir:url [ fhir:v "https://madie.cms.gov/Library/CMS108FHIRVTEProphylaxis"^^xsd:anyURI] ; # 
  fhir:identifier ( [
fhir:use [ fhir:v "official" ] ;
fhir:system [ fhir:v "https://madie.cms.gov/login"^^xsd:anyURI ] ;
fhir:value [ fhir:v "CMS108FHIRVTEProphylaxis" ]
  ] ) ; # 
  fhir:version [ fhir:v "0.3.002"] ; # 
  fhir:name [ fhir:v "CMS108FHIRVTEProphylaxis"] ; # 
  fhir:title [ fhir:v "CMS108FHIRVTEProphylaxis"] ; # 
  fhir:status [ fhir:v "active"] ; # 
  fhir:experimental [ fhir:v false] ; # 
  fhir:type [
    ( fhir:coding [
fhir:system [ fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ] ;
fhir:code [ fhir:v "logic-library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2025-06-23T15:35:01+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "The Joint Commission"] ; # 
  fhir:description [ fhir:v "CMS108FHIRVTEProphylaxis"] ; # 
  fhir:content ( [
fhir:contentType [ fhir:v "text/cql" ] ;
fhir:data [ fhir:v "bGlicmFyeSBDTVMxMDhGSElSVlRFUHJvcGh5bGF4aXMgdmVyc2lvbiAnMC4zLjAwMicKCnVzaW5nIFFJQ29yZSB2ZXJzaW9uICc2LjAuMCcKCmluY2x1ZGUgQ1FNQ29tbW9uIHZlcnNpb24gJzQuMS4wMDAnIGNhbGxlZCBDUU1Db21tb24KaW5jbHVkZSBRSUNvcmVDb21tb24gdmVyc2lvbiAnNC4wLjAwMCcgY2FsbGVkIFFJQ29yZUNvbW1vbgppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuNC4wMDAnIGNhbGxlZCBGSElSSGVscGVycwppbmNsdWRlIFN1cHBsZW1lbnRhbERhdGFFbGVtZW50cyB2ZXJzaW9uICc1LjEuMDAwJyBjYWxsZWQgU0RFCmluY2x1ZGUgVEpDT3ZlcmFsbCB2ZXJzaW9uICc4LjIzLjAwMCcgY2FsbGVkIFRKQwppbmNsdWRlIFZURSB2ZXJzaW9uICc4LjE4LjAwMCcgY2FsbGVkIFZURQoKY29kZXN5c3RlbSAiTE9JTkMiOiAnaHR0cDovL2xvaW5jLm9yZycKCmNvZGUgIlJpc2sgZm9yIHZlbm91cyB0aHJvbWJvZW1ib2xpc20iOiAnNzIxMzYtNScgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ1Jpc2sgZm9yIHZlbm91cyB0aHJvbWJvZW1ib2xpc20nCgp2YWx1ZXNldCAiQXBwbGljYXRpb24gb2YgR3JhZHVhdGVkIENvbXByZXNzaW9uIFN0b2NraW5ncyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExMTAuNjYnCnZhbHVlc2V0ICJBcHBsaWNhdGlvbiBvZiBJbnRlcm1pdHRlbnQgUG5ldW1hdGljIENvbXByZXNzaW9uIERldmljZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTEwLjY1Jwp2YWx1ZXNldCAiQXBwbGljYXRpb24gb2YgVmVub3VzIEZvb3QgUHVtcHMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTEwLjY0Jwp2YWx1ZXNldCAiQXRyaWFsIEZpYnJpbGxhdGlvbiBvciBGbHV0dGVyIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yMDInCnZhbHVlc2V0ICJDb21mb3J0IE1lYXN1cmVzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8xLjMuNi4xLjQuMS4zMzg5NS4xLjMuMC40NScKdmFsdWVzZXQgIkRpcmVjdCBUaHJvbWJpbiBJbmhpYml0b3IiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjIwNScKdmFsdWVzZXQgIkdlbmVyYWwgb3IgTmV1cmF4aWFsIEFuZXN0aGVzaWEiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNjY2LjUuMTc0MycKdmFsdWVzZXQgIkdlbmVyYWwgU3VyZ2VyeSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMjU1Jwp2YWx1ZXNldCAiR2x5Y29wcm90ZWluIElJYiBJSUlhIEluaGliaXRvcnMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMDQ1LjQxJwp2YWx1ZXNldCAiR3JhZHVhdGVkIGNvbXByZXNzaW9uIHN0b2NraW5ncyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMjU2Jwp2YWx1ZXNldCAiR3luZWNvbG9naWNhbCBTdXJnZXJ5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yNTcnCnZhbHVlc2V0ICJIZW1vcnJoYWdpYyBTdHJva2UiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjIxMicKdmFsdWVzZXQgIklzY2hlbWljIFN0cm9rZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMjQ3Jwp2YWx1ZXNldCAiSGlwIEZyYWN0dXJlIFN1cmdlcnkiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjI1OCcKdmFsdWVzZXQgIkhpcCBSZXBsYWNlbWVudCBTdXJnZXJ5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yNTknCnZhbHVlc2V0ICJJbmplY3RhYmxlIEZhY3RvciBYYSBJbmhpYml0b3IgZm9yIFZURSBQcm9waHlsYXhpcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMjExJwp2YWx1ZXNldCAiSU5SIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yMTMnCnZhbHVlc2V0ICJJbnRlbnNpdmUgQ2FyZSBVbml0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTAyOS4yMDYnCnZhbHVlc2V0ICJJbnRlcm1pdHRlbnQgcG5ldW1hdGljIGNvbXByZXNzaW9uIGRldmljZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjIxNCcKdmFsdWVzZXQgIkludHJhY3JhbmlhbCBOZXVyb3N1cmdlcnkiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjI2MCcKdmFsdWVzZXQgIkludHJhdmVub3VzIHJvdXRlIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yMjInCnZhbHVlc2V0ICJLbmVlIFJlcGxhY2VtZW50IFN1cmdlcnkiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjI2MScKdmFsdWVzZXQgIkxvdyBEb3NlIFVuZnJhY3Rpb25hdGVkIEhlcGFyaW4gZm9yIFZURSBQcm9waHlsYXhpcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwNDUuMzknCnZhbHVlc2V0ICJMb3cgTW9sZWN1bGFyIFdlaWdodCBIZXBhcmluIGZvciBWVEUgUHJvcGh5bGF4aXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjIxOScKdmFsdWVzZXQgIkxvdyBSaXNrIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS40MDAnCnZhbHVlc2V0ICJNZWRpY2FsIFJlYXNvbiBGb3IgTm90IFByb3ZpZGluZyBUcmVhdG1lbnQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjQ3MycKdmFsdWVzZXQgIk1lbnRhbCBIZWFsdGggRGlhZ25vc2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwNS4xMi4xMDA0Jwp2YWx1ZXNldCAiT3JhbCBGYWN0b3IgWGEgSW5oaWJpdG9yIGZvciBWVEUgUHJvcGh5bGF4aXMgb3IgVlRFIFRyZWF0bWVudCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMTM0Jwp2YWx1ZXNldCAiUGF0aWVudCBSZWZ1c2FsIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS45MycKdmFsdWVzZXQgIlJpdmFyb3hhYmFuIGZvciBWVEUgUHJvcGh5bGF4aXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTEwLjUwJwp2YWx1ZXNldCAiU3ViY3V0YW5lb3VzIHJvdXRlIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yMjMnCnZhbHVlc2V0ICJVbmZyYWN0aW9uYXRlZCBIZXBhcmluIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yMTgnCnZhbHVlc2V0ICJVcm9sb2dpY2FsIFN1cmdlcnkiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjI3MicKdmFsdWVzZXQgIlZlbm91cyBmb290IHB1bXBzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yMzAnCnZhbHVlc2V0ICJWZW5vdXMgVGhyb21ib2VtYm9saXNtIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yNzknCnZhbHVlc2V0ICJXYXJmYXJpbiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMjMyJwoKcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGVUaW1lPgoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIlNERSBFdGhuaWNpdHkiOgogIFNERS4iU0RFIEV0aG5pY2l0eSIKCmRlZmluZSAiU0RFIFBheWVyIjoKICBTREUuIlNERSBQYXllciIKCmRlZmluZSAiU0RFIFJhY2UiOgogIFNERS4iU0RFIFJhY2UiCgpkZWZpbmUgIlNERSBTZXgiOgogIFNERS4iU0RFIFNleCIKCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICBWVEUuIkVuY291bnRlciBXaXRoIEFnZSBSYW5nZSBBbmQgV2l0aG91dCBWVEUgRGlhZ25vc2lzIE9yIE9ic3RldHJpY2FsIENvbmRpdGlvbnMiCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNsdXNpb25zIjoKICAiRW5jb3VudGVyIExlc3MgVGhhbiAyIERheXMiCiAgICB1bmlvbiAiRW5jb3VudGVyIFdpdGggSUNVIExvY2F0aW9uIFN0YXkgMSBEYXkgT3IgTW9yZSIKICAgIHVuaW9uICJFbmNvdW50ZXIgV2l0aCBQcmluY2lwYWwgRGlhZ25vc2lzIE9mIE1lbnRhbCBEaXNvcmRlciBPciBTdHJva2UiCiAgICB1bmlvbiAiRW5jb3VudGVyIFdpdGggUHJpbmNpcGFsIFByb2NlZHVyZSBPZiBTZWxlY3RlZCBTdXJnZXJ5IgogICAgdW5pb24gIkVuY291bnRlciBXaXRoIEludGVydmVudGlvbiBDb21mb3J0IE1lYXN1cmVzIEZyb20gRGF5IE9mIFN0YXJ0IE9mIEhvc3BpdGFsaXphdGlvbiBUbyBEYXkgQWZ0ZXIgQWRtaXNzaW9uIgogICAgdW5pb24gIkVuY291bnRlciBXaXRoIEludGVydmVudGlvbiBDb21mb3J0IE1lYXN1cmVzIE9uIERheSBPZiBPciBEYXkgQWZ0ZXIgUHJvY2VkdXJlIgoKZGVmaW5lICJFbmNvdW50ZXIgTGVzcyBUaGFuIDIgRGF5cyI6CiAgVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyCiAgICB3aGVyZSBRdWFsaWZ5aW5nRW5jb3VudGVyLnBlcmlvZC5sZW5ndGhJbkRheXMgKCApIDwgMgoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBJQ1UgTG9jYXRpb24gU3RheSAxIERheSBPciBNb3JlIjoKICBWVEUuIkVuY291bnRlciBXaXRoIEFnZSBSYW5nZSBBbmQgV2l0aG91dCBWVEUgRGlhZ25vc2lzIE9yIE9ic3RldHJpY2FsIENvbmRpdGlvbnMiIFF1YWxpZnlpbmdFbmNvdW50ZXIKICAgIHdoZXJlIGV4aXN0cyAoIFF1YWxpZnlpbmdFbmNvdW50ZXIubG9jYXRpb24gTG9jYXRpb24KICAgICAgICB3aGVyZSBMb2NhdGlvbi5sb2NhdGlvbi5nZXRMb2NhdGlvbiAoICkudHlwZSBpbiAiSW50ZW5zaXZlIENhcmUgVW5pdCIKICAgICAgICAgIGFuZCBMb2NhdGlvbi5wZXJpb2QubGVuZ3RoSW5EYXlzICggKSA+PSAxCiAgICAgICAgICBhbmQgTG9jYXRpb24ucGVyaW9kIHN0YXJ0cyBvbiBvciBhZnRlciBzdGFydCBvZiBRdWFsaWZ5aW5nRW5jb3VudGVyLnBlcmlvZAogICAgICAgICAgYW5kIGRhdGUgZnJvbSAoIHN0YXJ0IG9mIExvY2F0aW9uLnBlcmlvZCApIGR1cmluZyAoIHN0YXJ0IG9mIFF1YWxpZnlpbmdFbmNvdW50ZXIucGVyaW9kICkuQ2FsZW5kYXJEYXlPZk9yRGF5QWZ0ZXIgKCApCiAgICApCgpkZWZpbmUgIkVuY291bnRlciBXaXRoIFByaW5jaXBhbCBEaWFnbm9zaXMgT2YgTWVudGFsIERpc29yZGVyIE9yIFN0cm9rZSI6CiAgVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyCiAgICB3aGVyZSBRdWFsaWZ5aW5nRW5jb3VudGVyLmhhc1ByaW5jaXBhbERpYWdub3Npc09mICggIk1lbnRhbCBIZWFsdGggRGlhZ25vc2VzIiApCiAgICAgIG9yIFF1YWxpZnlpbmdFbmNvdW50ZXIuaGFzUHJpbmNpcGFsRGlhZ25vc2lzT2YgKCAiSGVtb3JyaGFnaWMgU3Ryb2tlIiApCiAgICAgIG9yIFF1YWxpZnlpbmdFbmNvdW50ZXIuaGFzUHJpbmNpcGFsRGlhZ25vc2lzT2YgKCAiSXNjaGVtaWMgU3Ryb2tlIiApCgpkZWZpbmUgIkVuY291bnRlciBXaXRoIFByaW5jaXBhbCBQcm9jZWR1cmUgT2YgU2VsZWN0ZWQgU3VyZ2VyeSI6CiAgVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyCiAgICB3aGVyZSBRdWFsaWZ5aW5nRW5jb3VudGVyLmhhc1ByaW5jaXBhbFByb2NlZHVyZU9mICggIkdlbmVyYWwgU3VyZ2VyeSIgKQogICAgICBvciBRdWFsaWZ5aW5nRW5jb3VudGVyLmhhc1ByaW5jaXBhbFByb2NlZHVyZU9mICggIkd5bmVjb2xvZ2ljYWwgU3VyZ2VyeSIgKQogICAgICBvciBRdWFsaWZ5aW5nRW5jb3VudGVyLmhhc1ByaW5jaXBhbFByb2NlZHVyZU9mICggIkhpcCBGcmFjdHVyZSBTdXJnZXJ5IiApCiAgICAgIG9yIFF1YWxpZnlpbmdFbmNvdW50ZXIuaGFzUHJpbmNpcGFsUHJvY2VkdXJlT2YgKCAiSGlwIFJlcGxhY2VtZW50IFN1cmdlcnkiICkKICAgICAgb3IgUXVhbGlmeWluZ0VuY291bnRlci5oYXNQcmluY2lwYWxQcm9jZWR1cmVPZiAoICJJbnRyYWNyYW5pYWwgTmV1cm9zdXJnZXJ5IiApCiAgICAgIG9yIFF1YWxpZnlpbmdFbmNvdW50ZXIuaGFzUHJpbmNpcGFsUHJvY2VkdXJlT2YgKCAiS25lZSBSZXBsYWNlbWVudCBTdXJnZXJ5IiApCiAgICAgIG9yIFF1YWxpZnlpbmdFbmNvdW50ZXIuaGFzUHJpbmNpcGFsUHJvY2VkdXJlT2YgKCAiVXJvbG9naWNhbCBTdXJnZXJ5IiApCgpkZWZpbmUgIkludGVydmVudGlvbiBDb21mb3J0IE1lYXN1cmVzIjoKICAoIFsiU2VydmljZVJlcXVlc3QiOiAiQ29tZm9ydCBNZWFzdXJlcyJdIEludGVydmVudGlvblJlcXVlc3QKICAgICAgd2hlcmUgSW50ZXJ2ZW50aW9uUmVxdWVzdC5pbnRlbnQgaW4geyAnb3JkZXInLCAnb3JpZ2luYWwtb3JkZXInLCAncmVmbGV4LW9yZGVyJywgJ2ZpbGxlci1vcmRlcicsICdpbnN0YW5jZS1vcmRlcicgfQogICAgICAgIGFuZCBJbnRlcnZlbnRpb25SZXF1ZXN0LnN0YXR1cyBpbiB7ICdhY3RpdmUnLCAnb24taG9sZCcsICdjb21wbGV0ZWQnIH0KICApCiAgICB1bmlvbiAoIFsiUHJvY2VkdXJlIjogIkNvbWZvcnQgTWVhc3VyZXMiXSBJbnRlcnZlbnRpb25QZXJmb3JtZWQKICAgICAgICB3aGVyZSBJbnRlcnZlbnRpb25QZXJmb3JtZWQuc3RhdHVzIGluIHsgJ2NvbXBsZXRlZCcsICdpbi1wcm9ncmVzcycgfQogICAgKQoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBJbnRlcnZlbnRpb24gQ29tZm9ydCBNZWFzdXJlcyBPbiBEYXkgT2YgT3IgRGF5IEFmdGVyIFByb2NlZHVyZSI6CiAgZnJvbQogICAgVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyLAogICAgWyJQcm9jZWR1cmUiOiAiR2VuZXJhbCBvciBOZXVyYXhpYWwgQW5lc3RoZXNpYSJdIEFuZXN0aGVzaWFQcm9jZWR1cmUsCiAgICAiSW50ZXJ2ZW50aW9uIENvbWZvcnQgTWVhc3VyZXMiIENvbWZvcnRNZWFzdXJlCiAgICB3aGVyZSBBbmVzdGhlc2lhUHJvY2VkdXJlLnN0YXR1cyA9ICdjb21wbGV0ZWQnCiAgICAgIGFuZCBBbmVzdGhlc2lhUHJvY2VkdXJlLnBlcmZvcm1lZC50b0ludGVydmFsICggKSBlbmRzIDEgZGF5IGFmdGVyIGRheSBvZiBzdGFydCBvZiBRdWFsaWZ5aW5nRW5jb3VudGVyLnBlcmlvZAogICAgICBhbmQgQ29hbGVzY2Uoc3RhcnQgb2YgQ29tZm9ydE1lYXN1cmUucGVyZm9ybWVkLnRvSW50ZXJ2YWwoKSwgQ29tZm9ydE1lYXN1cmUuYXV0aG9yZWRPbikgZHVyaW5nIGRheSBvZiAoIGVuZCBvZiBBbmVzdGhlc2lhUHJvY2VkdXJlLnBlcmZvcm1lZC50b0ludGVydmFsICggKSApLkNhbGVuZGFyRGF5T2ZPckRheUFmdGVyICggKQogICAgcmV0dXJuIFF1YWxpZnlpbmdFbmNvdW50ZXIKCmRlZmluZSAiRW5jb3VudGVyIFdpdGggSW50ZXJ2ZW50aW9uIENvbWZvcnQgTWVhc3VyZXMgRnJvbSBEYXkgT2YgU3RhcnQgT2YgSG9zcGl0YWxpemF0aW9uIFRvIERheSBBZnRlciBBZG1pc3Npb24iOgogIFZURS4iRW5jb3VudGVyIFdpdGggQWdlIFJhbmdlIEFuZCBXaXRob3V0IFZURSBEaWFnbm9zaXMgT3IgT2JzdGV0cmljYWwgQ29uZGl0aW9ucyIgUXVhbGlmeWluZ0VuY291bnRlcgogICAgd2l0aCAiSW50ZXJ2ZW50aW9uIENvbWZvcnQgTWVhc3VyZXMiIENvbWZvcnRNZWFzdXJlCiAgICAgIHN1Y2ggdGhhdCBDb2FsZXNjZShzdGFydCBvZiBDb21mb3J0TWVhc3VyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCgpLCBDb21mb3J0TWVhc3VyZS5hdXRob3JlZE9uKSBkdXJpbmcgZGF5IG9mIFF1YWxpZnlpbmdFbmNvdW50ZXIuZnJvbURheU9mU3RhcnRPZkhvc3BpdGFsaXphdGlvblRvRGF5QWZ0ZXJBZG1pc3Npb24gKCApCgpkZWZpbmUgIk51bWVyYXRvciI6CiAgIkVuY291bnRlciBXaXRoIFZURSBQcm9waHlsYXhpcyBSZWNlaXZlZCBGcm9tIERheSBPZiBTdGFydCBPZiBIb3NwaXRhbGl6YXRpb24gVG8gRGF5IEFmdGVyIEFkbWlzc2lvbiBPciBQcm9jZWR1cmUiCiAgICB1bmlvbiAoICJFbmNvdW50ZXIgV2l0aCBNZWRpY2F0aW9uIE9yYWwgRmFjdG9yIFhhIEluaGliaXRvciBBZG1pbmlzdGVyZWQgT24gRGF5IE9mIE9yIERheSBBZnRlciBBZG1pc3Npb24gT3IgUHJvY2VkdXJlIgogICAgICAgIGludGVyc2VjdCAoICJFbmNvdW50ZXIgV2l0aCBQcmlvciBPciBQcmVzZW50IERpYWdub3NpcyBPZiBBdHJpYWwgRmlicmlsbGF0aW9uIE9yIFByaW9yIERpYWdub3NpcyBPZiBWVEUiCiAgICAgICAgICAgIHVuaW9uICJFbmNvdW50ZXIgV2l0aCBQcmlvciBPciBQcmVzZW50IFByb2NlZHVyZSBPZiBIaXAgT3IgS25lZSBSZXBsYWNlbWVudCBTdXJnZXJ5IgogICAgICAgICkKICAgICkKICAgIHVuaW9uICJFbmNvdW50ZXIgV2l0aCBMb3cgUmlzayBGb3IgVlRFIE9yIEFudGljb2FndWxhbnQgQWRtaW5pc3RlcmVkIgogICAgdW5pb24gIkVuY291bnRlciBXaXRoIE5vIFZURSBQcm9waHlsYXhpcyBEdWUgVG8gTWVkaWNhbCBSZWFzb24iCiAgICB1bmlvbiAiRW5jb3VudGVyIFdpdGggTm8gVlRFIFByb3BoeWxheGlzIER1ZSBUbyBQYXRpZW50IFJlZnVzYWwiCgpkZWZpbmUgIlBoYXJtYWNvbG9naWNhbCBvciBNZWNoYW5pY2FsIFZURSBQcm9waHlsYXhpcyBSZWNlaXZlZCI6CiAgKCBbIk1lZGljYXRpb25BZG1pbmlzdHJhdGlvbiI6IG1lZGljYXRpb24gaW4gIkxvdyBEb3NlIFVuZnJhY3Rpb25hdGVkIEhlcGFyaW4gZm9yIFZURSBQcm9waHlsYXhpcyJdIFZURU1lZGljYXRpb24KICAgICAgd2hlcmUgVlRFTWVkaWNhdGlvbi5zdGF0dXMgPSAnY29tcGxldGVkJwogICAgICAgIGFuZCBWVEVNZWRpY2F0aW9uLmRvc2FnZS5yb3V0ZSBpbiAiU3ViY3V0YW5lb3VzIHJvdXRlIgogICkKICAgIHVuaW9uICggWyJNZWRpY2F0aW9uQWRtaW5pc3RyYXRpb24iOiBtZWRpY2F0aW9uIGluICJMb3cgTW9sZWN1bGFyIFdlaWdodCBIZXBhcmluIGZvciBWVEUgUHJvcGh5bGF4aXMiXSBMTVdICiAgICAgICAgd2hlcmUgTE1XSC5zdGF0dXMgPSAnY29tcGxldGVkJwogICAgKQogICAgdW5pb24gKCBbIk1lZGljYXRpb25BZG1pbmlzdHJhdGlvbiI6IG1lZGljYXRpb24gaW4gIkluamVjdGFibGUgRmFjdG9yIFhhIEluaGliaXRvciBmb3IgVlRFIFByb3BoeWxheGlzIl0gRmFjdG9yWGEKICAgICAgICB3aGVyZSBGYWN0b3JYYS5zdGF0dXMgPSAnY29tcGxldGVkJwogICAgKQogICAgdW5pb24gKCBbIk1lZGljYXRpb25BZG1pbmlzdHJhdGlvbiI6IG1lZGljYXRpb24gaW4gIldhcmZhcmluIl0gV2FyZmFyaW5BZG0KICAgICAgICB3aGVyZSBXYXJmYXJpbkFkbS5zdGF0dXMgPSAnY29tcGxldGVkJwogICAgKQogICAgdW5pb24gKCBbIk1lZGljYXRpb25BZG1pbmlzdHJhdGlvbiI6IG1lZGljYXRpb24gaW4gIlJpdmFyb3hhYmFuIGZvciBWVEUgUHJvcGh5bGF4aXMiXSBSaXZhcm94YWJhbgogICAgICAgIHdoZXJlIFJpdmFyb3hhYmFuLnN0YXR1cyA9ICdjb21wbGV0ZWQnCiAgICApCiAgICB1bmlvbiAoICggWyJQcm9jZWR1cmUiOiAiQXBwbGljYXRpb24gb2YgSW50ZXJtaXR0ZW50IFBuZXVtYXRpYyBDb21wcmVzc2lvbiBEZXZpY2VzIl0KICAgICAgICB1bmlvbiBbIlByb2NlZHVyZSI6ICJBcHBsaWNhdGlvbiBvZiBWZW5vdXMgRm9vdCBQdW1wcyJdCiAgICAgICAgdW5pb24gWyJQcm9jZWR1cmUiOiAiQXBwbGljYXRpb24gb2YgR3JhZHVhdGVkIENvbXByZXNzaW9uIFN0b2NraW5ncyJdICkgRGV2aWNlQXBwbGllZAogICAgICAgIHdoZXJlIERldmljZUFwcGxpZWQuc3RhdHVzID0gJ2NvbXBsZXRlZCcKICAgICkKCmRlZmluZSAiRW5jb3VudGVyIFdpdGggVlRFIFByb3BoeWxheGlzIFJlY2VpdmVkIEZyb20gRGF5IE9mIFN0YXJ0IE9mIEhvc3BpdGFsaXphdGlvbiBUbyBEYXkgQWZ0ZXIgQWRtaXNzaW9uIE9yIFByb2NlZHVyZSI6CiAgKCBmcm9tCiAgICAgIFZURS4iRW5jb3VudGVyIFdpdGggQWdlIFJhbmdlIEFuZCBXaXRob3V0IFZURSBEaWFnbm9zaXMgT3IgT2JzdGV0cmljYWwgQ29uZGl0aW9ucyIgUXVhbGlmeWluZ0VuY291bnRlciwKICAgICAgIlBoYXJtYWNvbG9naWNhbCBvciBNZWNoYW5pY2FsIFZURSBQcm9waHlsYXhpcyBSZWNlaXZlZCIgVlRFUHJvcGh5bGF4aXMKICAgICAgd2hlcmUgQ29hbGVzY2UoVlRFUHJvcGh5bGF4aXMuZWZmZWN0aXZlLnRvSW50ZXJ2YWwoKSwgVlRFUHJvcGh5bGF4aXMucGVyZm9ybWVkLnRvSW50ZXJ2YWwoKSkgc3RhcnRzIGR1cmluZyBkYXkgb2YgUXVhbGlmeWluZ0VuY291bnRlci5mcm9tRGF5T2ZTdGFydE9mSG9zcGl0YWxpemF0aW9uVG9EYXlBZnRlckFkbWlzc2lvbiAoICkKICAgICAgcmV0dXJuIFF1YWxpZnlpbmdFbmNvdW50ZXIKICApCiAgICB1bmlvbiAoIGZyb20KICAgICAgICBWVEUuIkVuY291bnRlciBXaXRoIEFnZSBSYW5nZSBBbmQgV2l0aG91dCBWVEUgRGlhZ25vc2lzIE9yIE9ic3RldHJpY2FsIENvbmRpdGlvbnMiIFF1YWxpZnlpbmdFbmNvdW50ZXIsCiAgICAgICAgWyJQcm9jZWR1cmUiOiAiR2VuZXJhbCBvciBOZXVyYXhpYWwgQW5lc3RoZXNpYSJdIEFuZXN0aGVzaWFQcm9jZWR1cmUsCiAgICAgICAgIlBoYXJtYWNvbG9naWNhbCBvciBNZWNoYW5pY2FsIFZURSBQcm9waHlsYXhpcyBSZWNlaXZlZCIgVlRFUHJvcGh5bGF4aXMKICAgICAgICB3aGVyZSBBbmVzdGhlc2lhUHJvY2VkdXJlLnN0YXR1cyA9ICdjb21wbGV0ZWQnCiAgICAgICAgICBhbmQgQW5lc3RoZXNpYVByb2NlZHVyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgZW5kcyAxIGRheSBhZnRlciBkYXkgb2Ygc3RhcnQgb2YgUXVhbGlmeWluZ0VuY291bnRlci5wZXJpb2QKICAgICAgICAgIGFuZCBDb2FsZXNjZShWVEVQcm9waHlsYXhpcy5lZmZlY3RpdmUudG9JbnRlcnZhbCgpLCBWVEVQcm9waHlsYXhpcy5wZXJmb3JtZWQudG9JbnRlcnZhbCgpKSBzdGFydHMgZHVyaW5nIGRheSBvZiAoIGVuZCBvZiBBbmVzdGhlc2lhUHJvY2VkdXJlLnBlcmZvcm1lZC50b0ludGVydmFsICggKSApLkNhbGVuZGFyRGF5T2ZPckRheUFmdGVyICggKQogICAgICAgIHJldHVybiBRdWFsaWZ5aW5nRW5jb3VudGVyCiAgICApCgpkZWZpbmUgIkVuY291bnRlciBXaXRoIE1lZGljYXRpb24gT3JhbCBGYWN0b3IgWGEgSW5oaWJpdG9yIEFkbWluaXN0ZXJlZCBPbiBEYXkgT2YgT3IgRGF5IEFmdGVyIEFkbWlzc2lvbiBPciBQcm9jZWR1cmUiOgogICggZnJvbQogICAgICBWVEUuIkVuY291bnRlciBXaXRoIEFnZSBSYW5nZSBBbmQgV2l0aG91dCBWVEUgRGlhZ25vc2lzIE9yIE9ic3RldHJpY2FsIENvbmRpdGlvbnMiIFF1YWxpZnlpbmdFbmNvdW50ZXIsCiAgICAgIFsiTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uIjogbWVkaWNhdGlvbiBpbiAiT3JhbCBGYWN0b3IgWGEgSW5oaWJpdG9yIGZvciBWVEUgUHJvcGh5bGF4aXMgb3IgVlRFIFRyZWF0bWVudCJdIEZhY3RvclhhTWVkaWNhdGlvbgogICAgICB3aGVyZSBGYWN0b3JYYU1lZGljYXRpb24uc3RhdHVzID0gJ2NvbXBsZXRlZCcKICAgICAgICBhbmQgRmFjdG9yWGFNZWRpY2F0aW9uLmVmZmVjdGl2ZS50b0ludGVydmFsICggKSBzdGFydHMgZHVyaW5nIGRheSBvZiAoIHN0YXJ0IG9mIFF1YWxpZnlpbmdFbmNvdW50ZXIucGVyaW9kICkuQ2FsZW5kYXJEYXlPZk9yRGF5QWZ0ZXIgKCApCiAgICAgIHJldHVybiBRdWFsaWZ5aW5nRW5jb3VudGVyCiAgKQogICAgdW5pb24gKCBmcm9tCiAgICAgICAgVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyLAogICAgICAgIFsiUHJvY2VkdXJlIjogIkdlbmVyYWwgb3IgTmV1cmF4aWFsIEFuZXN0aGVzaWEiXSBBbmVzdGhlc2lhUHJvY2VkdXJlLAogICAgICAgIFsiTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uIjogbWVkaWNhdGlvbiBpbiAiT3JhbCBGYWN0b3IgWGEgSW5oaWJpdG9yIGZvciBWVEUgUHJvcGh5bGF4aXMgb3IgVlRFIFRyZWF0bWVudCJdIEZhY3RvclhhTWVkaWNhdGlvbgogICAgICAgIHdoZXJlIEZhY3RvclhhTWVkaWNhdGlvbi5zdGF0dXMgPSAnY29tcGxldGVkJwogICAgICAgICAgYW5kIEFuZXN0aGVzaWFQcm9jZWR1cmUuc3RhdHVzID0gJ2NvbXBsZXRlZCcKICAgICAgICAgIGFuZCBBbmVzdGhlc2lhUHJvY2VkdXJlLnBlcmZvcm1lZC50b0ludGVydmFsICggKSBlbmRzIDEgZGF5IGFmdGVyIGRheSBvZiBzdGFydCBvZiBRdWFsaWZ5aW5nRW5jb3VudGVyLnBlcmlvZAogICAgICAgICAgYW5kIEZhY3RvclhhTWVkaWNhdGlvbi5lZmZlY3RpdmUudG9JbnRlcnZhbCAoICkgc3RhcnRzIGR1cmluZyBkYXkgb2YgKCBlbmQgb2YgQW5lc3RoZXNpYVByb2NlZHVyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgKS5DYWxlbmRhckRheU9mT3JEYXlBZnRlciAoICkKICAgICAgICByZXR1cm4gUXVhbGlmeWluZ0VuY291bnRlcgogICAgKQoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBQcmlvciBPciBQcmVzZW50IERpYWdub3NpcyBPZiBBdHJpYWwgRmlicmlsbGF0aW9uIE9yIFByaW9yIERpYWdub3NpcyBPZiBWVEUiOgogICggVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyCiAgICAgIHdpdGggWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIkF0cmlhbCBGaWJyaWxsYXRpb24gb3IgRmx1dHRlciJdIEF0cmlhbEZpYnJpbGxhdGlvbgogICAgICAgIHN1Y2ggdGhhdCAvLyBDUU1DT21tb24gbmV3IGZ1bmN0aW9uIGlzVmVyaWZpZWQoKSB3aWxsIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgZm9sbG93aW5nIHZlcmlmaWNhdGlvblN0YXR1cyBsb2dpYwogICAgICAgIEF0cmlhbEZpYnJpbGxhdGlvbi52ZXJpZmljYXRpb25TdGF0dXMgaXMgbm90IG51bGwgaW1wbGllcyAoIEF0cmlhbEZpYnJpbGxhdGlvbi52ZXJpZmljYXRpb25TdGF0dXMgIX4gUUlDb3JlQ29tbW9uLiJyZWZ1dGVkIgogICAgICAgICAgICBhbmQgQXRyaWFsRmlicmlsbGF0aW9uLnZlcmlmaWNhdGlvblN0YXR1cyAhfiBRSUNvcmVDb21tb24uImVudGVyZWQtaW4tZXJyb3IiCiAgICAgICAgKQogICAgICAgICAgYW5kIEF0cmlhbEZpYnJpbGxhdGlvbi5vbnNldC50b0ludGVydmFsICggKSBzdGFydHMgb24gb3IgYmVmb3JlIGVuZCBvZiBRdWFsaWZ5aW5nRW5jb3VudGVyLnBlcmlvZAogICkKICAgIHVuaW9uICggVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyCiAgICAgICAgd2hlcmUgUXVhbGlmeWluZ0VuY291bnRlci5oYXNFbmNEaWFnbm9zaXNPZiAoICJBdHJpYWwgRmlicmlsbGF0aW9uIG9yIEZsdXR0ZXIiICkKICAgICkKICAgIHVuaW9uICggVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyCiAgICAgICAgd2l0aCBbIkNvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnMiOiAiVmVub3VzIFRocm9tYm9lbWJvbGlzbSJdIFZURURpYWdub3NpcwogICAgICAgICAgc3VjaCB0aGF0ICggVlRFRGlhZ25vc2lzLmNsaW5pY2FsU3RhdHVzIH4gUUlDb3JlQ29tbW9uLiJpbmFjdGl2ZSIKICAgICAgICAgICAgICBvciBWVEVEaWFnbm9zaXMuY2xpbmljYWxTdGF0dXMgfiBRSUNvcmVDb21tb24uInJlbWlzc2lvbiIKICAgICAgICAgICAgICBvciBWVEVEaWFnbm9zaXMuY2xpbmljYWxTdGF0dXMgfiBRSUNvcmVDb21tb24uInJlc29sdmVkIgogICAgICAgICAgKS8vIENRTUNPbW1vbiBuZXcgZnVuY3Rpb24gaXNWZXJpZmllZCgpIHdpbGwgYmUgdXNlZCB0byByZXBsYWNlIHRoZSBmb2xsb3dpbmcgdmVyaWZpY2F0aW9uU3RhdHVzIGxvZ2ljCiAgICAgICAgICAgIAogICAgICAgICAgICBhbmQgVlRFRGlhZ25vc2lzLnZlcmlmaWNhdGlvblN0YXR1cyBpcyBub3QgbnVsbCBpbXBsaWVzICggVlRFRGlhZ25vc2lzLnZlcmlmaWNhdGlvblN0YXR1cyAhfiBRSUNvcmVDb21tb24uInJlZnV0ZWQiCiAgICAgICAgICAgICAgYW5kIFZURURpYWdub3Npcy52ZXJpZmljYXRpb25TdGF0dXMgIX4gUUlDb3JlQ29tbW9uLiJlbnRlcmVkLWluLWVycm9yIgogICAgICAgICAgKQogICAgICAgICAgICBhbmQgVlRFRGlhZ25vc2lzLm9uc2V0LnRvSW50ZXJ2YWwgKCApIGJlZm9yZSBzdGFydCBvZiBRdWFsaWZ5aW5nRW5jb3VudGVyLnBlcmlvZAogICAgKQoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBQcmlvciBPciBQcmVzZW50IFByb2NlZHVyZSBPZiBIaXAgT3IgS25lZSBSZXBsYWNlbWVudCBTdXJnZXJ5IjoKICBWVEUuIkVuY291bnRlciBXaXRoIEFnZSBSYW5nZSBBbmQgV2l0aG91dCBWVEUgRGlhZ25vc2lzIE9yIE9ic3RldHJpY2FsIENvbmRpdGlvbnMiIFF1YWxpZnlpbmdFbmNvdW50ZXIKICAgIHdpdGggKCBbIlByb2NlZHVyZSI6ICJIaXAgUmVwbGFjZW1lbnQgU3VyZ2VyeSJdCiAgICAgIHVuaW9uIFsiUHJvY2VkdXJlIjogIktuZWUgUmVwbGFjZW1lbnQgU3VyZ2VyeSJdICkgSGlwS25lZVByb2NlZHVyZQogICAgICBzdWNoIHRoYXQgSGlwS25lZVByb2NlZHVyZS5zdGF0dXMgPSAnY29tcGxldGVkJwogICAgICAgIGFuZCBIaXBLbmVlUHJvY2VkdXJlLnBlcmZvcm1lZC50b0ludGVydmFsICggKSBzdGFydHMgb24gb3IgYmVmb3JlIGVuZCBvZiBRdWFsaWZ5aW5nRW5jb3VudGVyLnBlcmlvZAoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBMb3cgUmlzayBGb3IgVlRFIE9yIEFudGljb2FndWxhbnQgQWRtaW5pc3RlcmVkIjoKICAiTG93IFJpc2sgRm9yIFZURSBPciBBbnRpY29hZ3VsYW50IEFkbWluaXN0ZXJlZCBGcm9tIERheSBPZiBTdGFydCBPZiBIb3NwaXRhbGl6YXRpb24gVG8gRGF5IEFmdGVyIEFkbWlzc2lvbiIKICAgIHVuaW9uICJMb3cgUmlzayBGb3IgVlRFIE9yIEFudGljb2FndWxhbnQgQWRtaW5pc3RlcmVkIE9uIERheSBPZiBPciBEYXkgQWZ0ZXIgUHJvY2VkdXJlIgoKZGVmaW5lICJMb3cgUmlzayBJbmRpY2F0b3IgRm9yIFZURSI6CiAgKCBbIlNpbXBsZU9ic2VydmF0aW9uIjogIlJpc2sgZm9yIHZlbm91cyB0aHJvbWJvZW1ib2xpc20iXSBWVEVSaXNrQXNzZXNzbWVudAogICAgICB3aGVyZSBWVEVSaXNrQXNzZXNzbWVudC52YWx1ZSBhcyBDb25jZXB0IGluICJMb3cgUmlzayIKICAgICAgICBhbmQgVlRFUmlza0Fzc2Vzc21lbnQuc3RhdHVzIGluIHsgJ2ZpbmFsJywgJ2FtZW5kZWQnLCAnY29ycmVjdGVkJyB9CiAgICAgIHJldHVybiB7CiAgICAgICAgaWQ6IFZURVJpc2tBc3Nlc3NtZW50LmlkLAogICAgICAgIExvd1Jpc2tEYXRldGltZTogVlRFUmlza0Fzc2Vzc21lbnQuZWZmZWN0aXZlLmVhcmxpZXN0ICggKQogICAgICB9CiAgKQogICAgdW5pb24gKCBbIkxhYm9yYXRvcnlSZXN1bHRPYnNlcnZhdGlvbiI6ICJJTlIiXSBJTlJMYWJUZXN0CiAgICAgICAgd2hlcmUgSU5STGFiVGVzdC52YWx1ZSBhcyBRdWFudGl0eSA+IDMuMAogICAgICAgICAgYW5kIElOUkxhYlRlc3Quc3RhdHVzIGluIHsgJ2ZpbmFsJywgJ2FtZW5kZWQnLCAnY29ycmVjdGVkJyB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGlkOiBJTlJMYWJUZXN0LmlkLAogICAgICAgICAgTG93Umlza0RhdGV0aW1lOiBJTlJMYWJUZXN0Lmlzc3VlZAogICAgICAgIH0KICAgICkKICAgIHVuaW9uICggKCAoIFsiTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uIjogbWVkaWNhdGlvbiBpbiAiVW5mcmFjdGlvbmF0ZWQgSGVwYXJpbiJdIFVuZnJhY3Rpb25hdGVkSGVwYXJpbgogICAgICAgICAgd2hlcmUgVW5mcmFjdGlvbmF0ZWRIZXBhcmluLmRvc2FnZS5yb3V0ZSBpbiAiSW50cmF2ZW5vdXMgcm91dGUiCiAgICAgICkKICAgICAgICB1bmlvbiBbIk1lZGljYXRpb25BZG1pbmlzdHJhdGlvbiI6IG1lZGljYXRpb24gaW4gIkRpcmVjdCBUaHJvbWJpbiBJbmhpYml0b3IiXQogICAgICAgIHVuaW9uIFsiTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uIjogbWVkaWNhdGlvbiBpbiAiR2x5Y29wcm90ZWluIElJYiBJSUlhIEluaGliaXRvcnMiXSApIEFudGljb2FndWxhbnRNZWRpY2F0aW9uCiAgICAgICAgd2hlcmUgQW50aWNvYWd1bGFudE1lZGljYXRpb24uc3RhdHVzID0gJ2NvbXBsZXRlZCcKICAgICAgICByZXR1cm4gewogICAgICAgICAgaWQ6IEFudGljb2FndWxhbnRNZWRpY2F0aW9uLmlkLAogICAgICAgICAgTG93Umlza0RhdGV0aW1lOiBzdGFydCBvZiBBbnRpY29hZ3VsYW50TWVkaWNhdGlvbi5lZmZlY3RpdmUudG9JbnRlcnZhbCAoICkKICAgICAgICB9CiAgICApCgpkZWZpbmUgIkxvdyBSaXNrIEZvciBWVEUgT3IgQW50aWNvYWd1bGFudCBBZG1pbmlzdGVyZWQgRnJvbSBEYXkgT2YgU3RhcnQgT2YgSG9zcGl0YWxpemF0aW9uIFRvIERheSBBZnRlciBBZG1pc3Npb24iOgogIFZURS4iRW5jb3VudGVyIFdpdGggQWdlIFJhbmdlIEFuZCBXaXRob3V0IFZURSBEaWFnbm9zaXMgT3IgT2JzdGV0cmljYWwgQ29uZGl0aW9ucyIgUXVhbGlmeWluZ0VuY291bnRlcgogICAgd2l0aCAiTG93IFJpc2sgSW5kaWNhdG9yIEZvciBWVEUiIExvd1Jpc2tGb3JWVEUKICAgICAgc3VjaCB0aGF0IExvd1Jpc2tGb3JWVEUuTG93Umlza0RhdGV0aW1lIGR1cmluZyBkYXkgb2YgUXVhbGlmeWluZ0VuY291bnRlci5mcm9tRGF5T2ZTdGFydE9mSG9zcGl0YWxpemF0aW9uVG9EYXlBZnRlckFkbWlzc2lvbiAoICkKCmRlZmluZSAiTG93IFJpc2sgRm9yIFZURSBPciBBbnRpY29hZ3VsYW50IEFkbWluaXN0ZXJlZCBPbiBEYXkgT2YgT3IgRGF5IEFmdGVyIFByb2NlZHVyZSI6CiAgZnJvbQogICAgVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyLAogICAgWyJQcm9jZWR1cmUiOiAiR2VuZXJhbCBvciBOZXVyYXhpYWwgQW5lc3RoZXNpYSJdIEFuZXN0aGVzaWFQcm9jZWR1cmUsCiAgICAiTG93IFJpc2sgSW5kaWNhdG9yIEZvciBWVEUiIExvd1Jpc2tGb3JWVEUKICAgIHdoZXJlIEFuZXN0aGVzaWFQcm9jZWR1cmUuc3RhdHVzID0gJ2NvbXBsZXRlZCcKICAgICAgYW5kIEFuZXN0aGVzaWFQcm9jZWR1cmUucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApIGVuZHMgMSBkYXkgYWZ0ZXIgZGF5IG9mIHN0YXJ0IG9mIFF1YWxpZnlpbmdFbmNvdW50ZXIucGVyaW9kCiAgICAgIGFuZCBMb3dSaXNrRm9yVlRFLkxvd1Jpc2tEYXRldGltZSBkdXJpbmcgZGF5IG9mICggZW5kIG9mIEFuZXN0aGVzaWFQcm9jZWR1cmUucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApICkuQ2FsZW5kYXJEYXlPZk9yRGF5QWZ0ZXIgKCApCiAgICByZXR1cm4gUXVhbGlmeWluZ0VuY291bnRlcgoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBObyBWVEUgUHJvcGh5bGF4aXMgRHVlIFRvIE1lZGljYWwgUmVhc29uIjoKICAoICJObyBWVEUgUHJvcGh5bGF4aXMgTWVkaWNhdGlvbiBEdWUgVG8gTWVkaWNhbCBSZWFzb24gRnJvbSBEYXkgT2YgU3RhcnQgT2YgSG9zcGl0YWxpemF0aW9uIFRvIERheSBBZnRlciBBZG1pc3Npb24iCiAgICAgIGludGVyc2VjdCAiTm8gTWVjaGFuaWNhbCBWVEUgUHJvcGh5bGF4aXMgRHVlIFRvIE1lZGljYWwgUmVhc29uIEZyb20gRGF5IE9mIFN0YXJ0IE9mIEhvc3BpdGFsaXphdGlvbiBUbyBEYXkgQWZ0ZXIgQWRtaXNzaW9uIgogICkKICAgIHVuaW9uICggIk5vIFZURSBQcm9waHlsYXhpcyBNZWRpY2F0aW9uIER1ZSBUbyBNZWRpY2FsIFJlYXNvbiBPbiBEYXkgT2YgT3IgRGF5IEFmdGVyIFByb2NlZHVyZSIKICAgICAgICBpbnRlcnNlY3QgIk5vIE1lY2hhbmljYWwgVlRFIFByb3BoeWxheGlzIER1ZSBUbyBNZWRpY2FsIFJlYXNvbiBPbiBEYXkgT2YgT3IgRGF5IEFmdGVyIFByb2NlZHVyZSIKICAgICkKCmRlZmluZSAiTm8gVlRFIFByb3BoeWxheGlzIE1lZGljYXRpb24gRHVlIFRvIE1lZGljYWwgUmVhc29uIEZyb20gRGF5IE9mIFN0YXJ0IE9mIEhvc3BpdGFsaXphdGlvbiBUbyBEYXkgQWZ0ZXIgQWRtaXNzaW9uIjoKICBWVEUuIkVuY291bnRlciBXaXRoIEFnZSBSYW5nZSBBbmQgV2l0aG91dCBWVEUgRGlhZ25vc2lzIE9yIE9ic3RldHJpY2FsIENvbmRpdGlvbnMiIFF1YWxpZnlpbmdFbmNvdW50ZXIKICAgIHdpdGggIk5vIFZURSBQcm9waHlsYXhpcyBNZWRpY2F0aW9uIEFkbWluaXN0ZXJlZCBPciBPcmRlcmVkIiBOb1ZURU1lZGljYXRpb24KICAgICAgc3VjaCB0aGF0IE5vVlRFTWVkaWNhdGlvbi5tZWRpY2F0aW9uU3RhdHVzUmVhc29uIGluICJNZWRpY2FsIFJlYXNvbiBGb3IgTm90IFByb3ZpZGluZyBUcmVhdG1lbnQiCiAgICAgICAgYW5kIE5vVlRFTWVkaWNhdGlvbi5hdXRob3JlZE9uIGR1cmluZyBkYXkgb2YgUXVhbGlmeWluZ0VuY291bnRlci5mcm9tRGF5T2ZTdGFydE9mSG9zcGl0YWxpemF0aW9uVG9EYXlBZnRlckFkbWlzc2lvbiAoICkKCmRlZmluZSAiTm8gVlRFIFByb3BoeWxheGlzIE1lZGljYXRpb24gRHVlIFRvIE1lZGljYWwgUmVhc29uIE9uIERheSBPZiBPciBEYXkgQWZ0ZXIgUHJvY2VkdXJlIjoKICBmcm9tCiAgICBWVEUuIkVuY291bnRlciBXaXRoIEFnZSBSYW5nZSBBbmQgV2l0aG91dCBWVEUgRGlhZ25vc2lzIE9yIE9ic3RldHJpY2FsIENvbmRpdGlvbnMiIFF1YWxpZnlpbmdFbmNvdW50ZXIsCiAgICBbIlByb2NlZHVyZSI6ICJHZW5lcmFsIG9yIE5ldXJheGlhbCBBbmVzdGhlc2lhIl0gQW5lc3RoZXNpYVByb2NlZHVyZSwKICAgICJObyBWVEUgUHJvcGh5bGF4aXMgTWVkaWNhdGlvbiBBZG1pbmlzdGVyZWQgT3IgT3JkZXJlZCIgTm9WVEVNZWRpY2F0aW9uCiAgICB3aGVyZSBOb1ZURU1lZGljYXRpb24ubWVkaWNhdGlvblN0YXR1c1JlYXNvbiBpbiAiTWVkaWNhbCBSZWFzb24gRm9yIE5vdCBQcm92aWRpbmcgVHJlYXRtZW50IgogICAgICBhbmQgQW5lc3RoZXNpYVByb2NlZHVyZS5zdGF0dXMgPSAnY29tcGxldGVkJwogICAgICBhbmQgQW5lc3RoZXNpYVByb2NlZHVyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgZW5kcyAxIGRheSBhZnRlciBkYXkgb2Ygc3RhcnQgb2YgUXVhbGlmeWluZ0VuY291bnRlci5wZXJpb2QKICAgICAgYW5kIE5vVlRFTWVkaWNhdGlvbi5hdXRob3JlZE9uIGR1cmluZyBkYXkgb2YgKCBlbmQgb2YgQW5lc3RoZXNpYVByb2NlZHVyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgKS5DYWxlbmRhckRheU9mT3JEYXlBZnRlciAoICkKICAgIHJldHVybiBRdWFsaWZ5aW5nRW5jb3VudGVyCgpkZWZpbmUgIk5vIFZURSBQcm9waHlsYXhpcyBNZWRpY2F0aW9uIEFkbWluaXN0ZXJlZCBPciBPcmRlcmVkIjoKICAoICggW01lZGljYXRpb25BZG1pbmlzdHJhdGlvbk5vdERvbmU6ICJMb3cgRG9zZSBVbmZyYWN0aW9uYXRlZCBIZXBhcmluIGZvciBWVEUgUHJvcGh5bGF4aXMiXQogICAgICB1bmlvbiBbTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uTm90RG9uZTogIkxvdyBNb2xlY3VsYXIgV2VpZ2h0IEhlcGFyaW4gZm9yIFZURSBQcm9waHlsYXhpcyJdCiAgICAgIHVuaW9uIFtNZWRpY2F0aW9uQWRtaW5pc3RyYXRpb25Ob3REb25lOiAiSW5qZWN0YWJsZSBGYWN0b3IgWGEgSW5oaWJpdG9yIGZvciBWVEUgUHJvcGh5bGF4aXMiXQogICAgICB1bmlvbiBbTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uTm90RG9uZTogIldhcmZhcmluIl0KICAgICAgdW5pb24gW01lZGljYXRpb25BZG1pbmlzdHJhdGlvbk5vdERvbmU6ICJSaXZhcm94YWJhbiBmb3IgVlRFIFByb3BoeWxheGlzIl0gKSBOb01lZGljYXRpb25BZG0KICAgICAgcmV0dXJuIHsKICAgICAgICBpZDogTm9NZWRpY2F0aW9uQWRtLmlkLAogICAgICAgIG1lZGljYXRpb25TdGF0dXNSZWFzb246IE5vTWVkaWNhdGlvbkFkbS5zdGF0dXNSZWFzb24sCiAgICAgICAgYXV0aG9yZWRPbjogTm9NZWRpY2F0aW9uQWRtLnJlY29yZGVkCiAgICAgIH0KICApCiAgICB1bmlvbiAoICggWyJNZWRpY2F0aW9uTm90UmVxdWVzdGVkIjogIkxvdyBEb3NlIFVuZnJhY3Rpb25hdGVkIEhlcGFyaW4gZm9yIFZURSBQcm9waHlsYXhpcyJdCiAgICAgICAgdW5pb24gWyJNZWRpY2F0aW9uTm90UmVxdWVzdGVkIjogIkxvdyBNb2xlY3VsYXIgV2VpZ2h0IEhlcGFyaW4gZm9yIFZURSBQcm9waHlsYXhpcyJdCiAgICAgICAgdW5pb24gWyJNZWRpY2F0aW9uTm90UmVxdWVzdGVkIjogIkluamVjdGFibGUgRmFjdG9yIFhhIEluaGliaXRvciBmb3IgVlRFIFByb3BoeWxheGlzIl0KICAgICAgICB1bmlvbiBbIk1lZGljYXRpb25Ob3RSZXF1ZXN0ZWQiOiAiV2FyZmFyaW4iXQogICAgICAgIHVuaW9uIFsiTWVkaWNhdGlvbk5vdFJlcXVlc3RlZCI6ICJSaXZhcm94YWJhbiBmb3IgVlRFIFByb3BoeWxheGlzIl0gKSBOb01lZGljYXRpb25PcmRlcgogICAgICAgIHdoZXJlIE5vTWVkaWNhdGlvbk9yZGVyLmludGVudCBpbiB7ICdvcmRlcicsICdvcmlnaW5hbC1vcmRlcicsICdyZWZsZXgtb3JkZXInLCAnZmlsbGVyLW9yZGVyJywgJ2luc3RhbmNlLW9yZGVyJyB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGlkOiBOb01lZGljYXRpb25PcmRlci5pZCwKICAgICAgICAgIG1lZGljYXRpb25TdGF0dXNSZWFzb246IE5vTWVkaWNhdGlvbk9yZGVyLnJlYXNvbkNvZGUsCiAgICAgICAgICBhdXRob3JlZE9uOiBOb01lZGljYXRpb25PcmRlci5hdXRob3JlZE9uCiAgICAgICAgfQogICAgKQogICAgdW5pb24gKCBmcm9tCiAgICAgICAgKCBbIk1lZGljYXRpb25SZXF1ZXN0IjogIkxvdyBEb3NlIFVuZnJhY3Rpb25hdGVkIEhlcGFyaW4gZm9yIFZURSBQcm9waHlsYXhpcyJdCiAgICAgICAgICB1bmlvbiBbIk1lZGljYXRpb25SZXF1ZXN0IjogIkxvdyBNb2xlY3VsYXIgV2VpZ2h0IEhlcGFyaW4gZm9yIFZURSBQcm9waHlsYXhpcyJdCiAgICAgICAgICB1bmlvbiBbIk1lZGljYXRpb25SZXF1ZXN0IjogIkluamVjdGFibGUgRmFjdG9yIFhhIEluaGliaXRvciBmb3IgVlRFIFByb3BoeWxheGlzIl0KICAgICAgICAgIHVuaW9uIFsiTWVkaWNhdGlvblJlcXVlc3QiOiAiV2FyZmFyaW4iXQogICAgICAgICAgdW5pb24gWyJNZWRpY2F0aW9uUmVxdWVzdCI6ICJSaXZhcm94YWJhbiBmb3IgVlRFIFByb3BoeWxheGlzIl0gKSBNZWRpY2F0aW9uT3JkZXJSZWplY3QsCiAgICAgICAgW1Rhc2tSZWplY3RlZF0gVAogICAgICAgIHdoZXJlIFQuZm9jdXMucmVmZXJlbmNlcyAoIE1lZGljYXRpb25PcmRlclJlamVjdCApCiAgICAgICAgICBhbmQgVC5jb2RlIH4gUUlDb3JlQ29tbW9uLiJGdWxmaWxsIgogICAgICAgICAgYW5kIE1lZGljYXRpb25PcmRlclJlamVjdC5zdGF0dXMgPSAnYWN0aXZlJwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBpZDogTWVkaWNhdGlvbk9yZGVyUmVqZWN0LmlkLAogICAgICAgICAgbWVkaWNhdGlvblN0YXR1c1JlYXNvbjogeyBULnN0YXR1c1JlYXNvbiB9LAogICAgICAgICAgYXV0aG9yZWRPbjogTWVkaWNhdGlvbk9yZGVyUmVqZWN0LmF1dGhvcmVkT24KICAgICAgICB9CiAgICApCgpkZWZpbmUgIk5vIE1lY2hhbmljYWwgVlRFIFByb3BoeWxheGlzIER1ZSBUbyBNZWRpY2FsIFJlYXNvbiBGcm9tIERheSBPZiBTdGFydCBPZiBIb3NwaXRhbGl6YXRpb24gVG8gRGF5IEFmdGVyIEFkbWlzc2lvbiI6CiAgVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyCiAgICB3aXRoICJObyBNZWNoYW5pY2FsIFZURSBQcm9waHlsYXhpcyBQZXJmb3JtZWQgT3IgT3JkZXJlZCIgTm9WVEVEZXZpY2UKICAgICAgc3VjaCB0aGF0IE5vVlRFRGV2aWNlLnJlcXVlc3RTdGF0dXNSZWFzb24gaW4gIk1lZGljYWwgUmVhc29uIEZvciBOb3QgUHJvdmlkaW5nIFRyZWF0bWVudCIKICAgICAgICBhbmQgTm9WVEVEZXZpY2UuYXV0aG9yZWRPbiBkdXJpbmcgZGF5IG9mIFF1YWxpZnlpbmdFbmNvdW50ZXIuZnJvbURheU9mU3RhcnRPZkhvc3BpdGFsaXphdGlvblRvRGF5QWZ0ZXJBZG1pc3Npb24gKCApCgpkZWZpbmUgIk5vIE1lY2hhbmljYWwgVlRFIFByb3BoeWxheGlzIER1ZSBUbyBNZWRpY2FsIFJlYXNvbiBPbiBEYXkgT2YgT3IgRGF5IEFmdGVyIFByb2NlZHVyZSI6CiAgZnJvbQogICAgVlRFLiJFbmNvdW50ZXIgV2l0aCBBZ2UgUmFuZ2UgQW5kIFdpdGhvdXQgVlRFIERpYWdub3NpcyBPciBPYnN0ZXRyaWNhbCBDb25kaXRpb25zIiBRdWFsaWZ5aW5nRW5jb3VudGVyLAogICAgWyJQcm9jZWR1cmUiOiAiR2VuZXJhbCBvciBOZXVyYXhpYWwgQW5lc3RoZXNpYSJdIEFuZXN0aGVzaWFQcm9jZWR1cmUsCiAgICAiTm8gTWVjaGFuaWNhbCBWVEUgUHJvcGh5bGF4aXMgUGVyZm9ybWVkIE9yIE9yZGVyZWQiIE5vVlRFRGV2aWNlCiAgICB3aGVyZSBOb1ZURURldmljZS5yZXF1ZXN0U3RhdHVzUmVhc29uIGluICJNZWRpY2FsIFJlYXNvbiBGb3IgTm90IFByb3ZpZGluZyBUcmVhdG1lbnQiCiAgICAgIGFuZCBBbmVzdGhlc2lhUHJvY2VkdXJlLnN0YXR1cyA9ICdjb21wbGV0ZWQnCiAgICAgIGFuZCBBbmVzdGhlc2lhUHJvY2VkdXJlLnBlcmZvcm1lZC50b0ludGVydmFsICggKSBlbmRzIDEgZGF5IGFmdGVyIGRheSBvZiBzdGFydCBvZiBRdWFsaWZ5aW5nRW5jb3VudGVyLnBlcmlvZAogICAgICBhbmQgTm9WVEVEZXZpY2UuYXV0aG9yZWRPbiBkdXJpbmcgZGF5IG9mICggZW5kIG9mIEFuZXN0aGVzaWFQcm9jZWR1cmUucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApICkuQ2FsZW5kYXJEYXlPZk9yRGF5QWZ0ZXIgKCApCiAgICByZXR1cm4gUXVhbGlmeWluZ0VuY291bnRlcgoKZGVmaW5lICJObyBNZWNoYW5pY2FsIFZURSBQcm9waHlsYXhpcyBQZXJmb3JtZWQgT3IgT3JkZXJlZCI6CiAgKCAoIFtTZXJ2aWNlTm90UmVxdWVzdGVkOiAiVmVub3VzIGZvb3QgcHVtcHMiXQogICAgICB1bmlvbiBbU2VydmljZU5vdFJlcXVlc3RlZDogIkludGVybWl0dGVudCBwbmV1bWF0aWMgY29tcHJlc3Npb24gZGV2aWNlcyJdCiAgICAgIHVuaW9uIFtTZXJ2aWNlTm90UmVxdWVzdGVkOiAiR3JhZHVhdGVkIGNvbXByZXNzaW9uIHN0b2NraW5ncyJdICkgRGV2aWNlTm90T3JkZXIKICAgICAgd2hlcmUgRGV2aWNlTm90T3JkZXIuaW50ZW50IGluIHsgJ29yZGVyJywgJ29yaWdpbmFsLW9yZGVyJywgJ3JlZmxleC1vcmRlcicsICdmaWxsZXItb3JkZXInLCAnaW5zdGFuY2Utb3JkZXInIH0KICAgICAgcmV0dXJuIHsKICAgICAgICBpZDogRGV2aWNlTm90T3JkZXIuaWQsCiAgICAgICAgcmVxdWVzdFN0YXR1c1JlYXNvbjogRGV2aWNlTm90T3JkZXIucmVhc29uUmVmdXNlZCwKICAgICAgICBhdXRob3JlZE9uOiBEZXZpY2VOb3RPcmRlci5hdXRob3JlZE9uCiAgICAgIH0KICApCiAgICB1bmlvbiAoIGZyb20KICAgICAgICAoIFtTZXJ2aWNlUmVxdWVzdDogIlZlbm91cyBmb290IHB1bXBzIl0KICAgICAgICAgIHVuaW9uIFtTZXJ2aWNlUmVxdWVzdDogIkludGVybWl0dGVudCBwbmV1bWF0aWMgY29tcHJlc3Npb24gZGV2aWNlcyJdCiAgICAgICAgICB1bmlvbiBbU2VydmljZVJlcXVlc3Q6ICJHcmFkdWF0ZWQgY29tcHJlc3Npb24gc3RvY2tpbmdzIl0gKSBEZXZpY2VPcmRlclJlamVjdCwKICAgICAgICBbVGFza1JlamVjdGVkXSBUCiAgICAgICAgd2hlcmUgRGV2aWNlT3JkZXJSZWplY3QuaW50ZW50IGluIHsgJ29yZGVyJywgJ29yaWdpbmFsLW9yZGVyJywgJ3JlZmxleC1vcmRlcicsICdmaWxsZXItb3JkZXInLCAnaW5zdGFuY2Utb3JkZXInIH0KICAgICAgICAgIGFuZCBEZXZpY2VPcmRlclJlamVjdC5zdGF0dXMgPSAnYWN0aXZlJwogICAgICAgICAgYW5kIFQuZm9jdXMucmVmZXJlbmNlcyAoIERldmljZU9yZGVyUmVqZWN0ICkKICAgICAgICAgIGFuZCBULmNvZGUgfiBRSUNvcmVDb21tb24uIkZ1bGZpbGwiCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGlkOiBEZXZpY2VPcmRlclJlamVjdC5pZCwKICAgICAgICAgIHJlcXVlc3RTdGF0dXNSZWFzb246IFQuc3RhdHVzUmVhc29uLAogICAgICAgICAgYXV0aG9yZWRPbjogRGV2aWNlT3JkZXJSZWplY3QuYXV0aG9yZWRPbgogICAgICAgIH0KICAgICkKICAgIHVuaW9uICggKCBbUHJvY2VkdXJlTm90RG9uZTogIkFwcGxpY2F0aW9uIG9mIEludGVybWl0dGVudCBQbmV1bWF0aWMgQ29tcHJlc3Npb24gRGV2aWNlcyJdCiAgICAgICAgdW5pb24gW1Byb2NlZHVyZU5vdERvbmU6ICJBcHBsaWNhdGlvbiBvZiBWZW5vdXMgRm9vdCBQdW1wcyJdCiAgICAgICAgdW5pb24gW1Byb2NlZHVyZU5vdERvbmU6ICJBcHBsaWNhdGlvbiBvZiBHcmFkdWF0ZWQgQ29tcHJlc3Npb24gU3RvY2tpbmdzIl0gKSBEZXZpY2VOb3RBcHBsaWVkCiAgICAgICAgbGV0IERldmljZU5vdERvbmVUaW1pbmc6IERldmljZU5vdEFwcGxpZWQucmVjb3JkZWQKICAgICAgICByZXR1cm4gewogICAgICAgICAgaWQ6IERldmljZU5vdEFwcGxpZWQuaWQsCiAgICAgICAgICByZXF1ZXN0U3RhdHVzUmVhc29uOiBEZXZpY2VOb3RBcHBsaWVkLnN0YXR1c1JlYXNvbiwKICAgICAgICAgIGF1dGhvcmVkT246IERldmljZU5vdERvbmVUaW1pbmcKICAgICAgICB9CiAgICApCgpkZWZpbmUgIkVuY291bnRlciBXaXRoIE5vIFZURSBQcm9waHlsYXhpcyBEdWUgVG8gUGF0aWVudCBSZWZ1c2FsIjoKICAiTm8gVlRFIFByb3BoeWxheGlzIER1ZSBUbyBQYXRpZW50IFJlZnVzYWwgRnJvbSBEYXkgT2YgU3RhcnQgT2YgSG9zcGl0YWxpemF0aW9uIFRvIERheSBBZnRlciBBZG1pc3Npb24iCiAgICB1bmlvbiAiTm8gVlRFIFByb3BoeWxheGlzIER1ZSBUbyBQYXRpZW50IFJlZnVzYWwgT24gRGF5IE9mIE9yIERheSBBZnRlciBQcm9jZWR1cmUiCgpkZWZpbmUgIk5vIFZURSBQcm9waHlsYXhpcyBEdWUgVG8gUGF0aWVudCBSZWZ1c2FsIEZyb20gRGF5IE9mIFN0YXJ0IE9mIEhvc3BpdGFsaXphdGlvbiBUbyBEYXkgQWZ0ZXIgQWRtaXNzaW9uIjoKICBWVEUuIkVuY291bnRlciBXaXRoIEFnZSBSYW5nZSBBbmQgV2l0aG91dCBWVEUgRGlhZ25vc2lzIE9yIE9ic3RldHJpY2FsIENvbmRpdGlvbnMiIFF1YWxpZnlpbmdFbmNvdW50ZXIKICAgIHdpdGggIk5vIE1lY2hhbmljYWwgT3IgUGhhcm1hY29sb2dpY2FsIFZURSBQcm9waHlsYXhpcyBEdWUgVG8gUGF0aWVudCBSZWZ1c2FsIiBQYXRpZW50UmVmdXNhbAogICAgICBzdWNoIHRoYXQgUGF0aWVudFJlZnVzYWwuYXV0aG9yZWRPbiBkdXJpbmcgZGF5IG9mIFF1YWxpZnlpbmdFbmNvdW50ZXIuZnJvbURheU9mU3RhcnRPZkhvc3BpdGFsaXphdGlvblRvRGF5QWZ0ZXJBZG1pc3Npb24gKCApCgpkZWZpbmUgIk5vIE1lY2hhbmljYWwgT3IgUGhhcm1hY29sb2dpY2FsIFZURSBQcm9waHlsYXhpcyBEdWUgVG8gUGF0aWVudCBSZWZ1c2FsIjoKICAoICJObyBWVEUgUHJvcGh5bGF4aXMgTWVkaWNhdGlvbiBBZG1pbmlzdGVyZWQgT3IgT3JkZXJlZCIgTm9WVEVNZWRpY2F0aW9uCiAgICAgIHdoZXJlIGV4aXN0cyAoIE5vVlRFTWVkaWNhdGlvbi5tZWRpY2F0aW9uU3RhdHVzUmVhc29uIE1lZFJzbgogICAgICAgICAgd2hlcmUgTWVkUnNuIGluICJQYXRpZW50IFJlZnVzYWwiCiAgICAgICkKICApCiAgICB1bmlvbiAoICJObyBNZWNoYW5pY2FsIFZURSBQcm9waHlsYXhpcyBQZXJmb3JtZWQgT3IgT3JkZXJlZCIgTm9WVEVEZXZpY2UKICAgICAgICB3aGVyZSBOb1ZURURldmljZS5yZXF1ZXN0U3RhdHVzUmVhc29uIGluICJQYXRpZW50IFJlZnVzYWwiCiAgICApCgpkZWZpbmUgIk5vIFZURSBQcm9waHlsYXhpcyBEdWUgVG8gUGF0aWVudCBSZWZ1c2FsIE9uIERheSBPZiBPciBEYXkgQWZ0ZXIgUHJvY2VkdXJlIjoKICBmcm9tCiAgICBWVEUuIkVuY291bnRlciBXaXRoIEFnZSBSYW5nZSBBbmQgV2l0aG91dCBWVEUgRGlhZ25vc2lzIE9yIE9ic3RldHJpY2FsIENvbmRpdGlvbnMiIFF1YWxpZnlpbmdFbmNvdW50ZXIsCiAgICBbIlByb2NlZHVyZSI6ICJHZW5lcmFsIG9yIE5ldXJheGlhbCBBbmVzdGhlc2lhIl0gQW5lc3RoZXNpYVByb2NlZHVyZSwKICAgICJObyBNZWNoYW5pY2FsIE9yIFBoYXJtYWNvbG9naWNhbCBWVEUgUHJvcGh5bGF4aXMgRHVlIFRvIFBhdGllbnQgUmVmdXNhbCIgUGF0aWVudFJlZnVzYWwKICAgIHdoZXJlIEFuZXN0aGVzaWFQcm9jZWR1cmUuc3RhdHVzID0gJ2NvbXBsZXRlZCcKICAgICAgYW5kIEFuZXN0aGVzaWFQcm9jZWR1cmUucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApIGVuZHMgMSBkYXkgYWZ0ZXIgZGF5IG9mIHN0YXJ0IG9mIFF1YWxpZnlpbmdFbmNvdW50ZXIucGVyaW9kCiAgICAgIGFuZCBQYXRpZW50UmVmdXNhbC5hdXRob3JlZE9uIGR1cmluZyBkYXkgb2YgKCBlbmQgb2YgQW5lc3RoZXNpYVByb2NlZHVyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgKS5DYWxlbmRhckRheU9mT3JEYXlBZnRlciAoICkKICAgIHJldHVybiBRdWFsaWZ5aW5nRW5jb3VudGVyCgpkZWZpbmUgZmx1ZW50IGZ1bmN0aW9uICJmcm9tRGF5T2ZTdGFydE9mSG9zcGl0YWxpemF0aW9uVG9EYXlBZnRlckFkbWlzc2lvbiIoRW5jb3VudGVyIEVuY291bnRlcik6CiAgSW50ZXJ2YWxbZGF0ZSBmcm9tICggc3RhcnQgb2YgRW5jb3VudGVyLmhvc3BpdGFsaXphdGlvbldpdGhPYnNlcnZhdGlvbiAoICkgKSwgZGF0ZSBmcm9tICggc3RhcnQgb2YgRW5jb3VudGVyLnBlcmlvZCApICsgMSBkYXlzXQ=="^^xsd:base64Binary ]
  ] ) . #