Draft dQM CMS Content Implementation Guide
2025.1.0 - CI Build
Draft dQM CMS Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/dqm-content-cms-2025/ and changes regularly. See the Directory of published versions
| Draft as of 2026-09-19 |
<Library xmlns="http://hl7.org/fhir">
<id value="CMS996FHIRAptTxforSTEMI"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<table class="narrative-table">
<tbody>
<tr>
<th colspan="2" scope="row" class="row-header"><a name="metadata"> </a>Metadata</th>
</tr>
<tr>
<th scope="row" class="row-header">Version</th>
<td class="content-container">2.1.000</td>
</tr>
<tr>
<th scope="row" class="row-header">Status</th>
<td class="content-container">Draft</td>
</tr>
<tr>
<th scope="row" class="row-header">Type</th>
<td class="content-container">
<a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header"><a name="parameters"> </a>Parameters</th>
</tr>
<tr>
<th scope="row" class="row-header">Parameter</th>
<td class="content-container">None</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header">Library Content</th>
</tr>
<tr>
<th scope="row" class="row-header">CQL Content</th>
<td>
<a name="cql-content"> </a>
<pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">/*
NOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.
*/
library CMS996FHIRAptTxforSTEMI version '2.1.000'
using USQualityCore version '0.1.0-cibuild'
using USCore version '6.1.0-derived'
using FHIR version '4.0.1'
include hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers
include hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon
include hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon
include hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements
include CQMCommon version '5.1.000' called CQMCommon
include USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon
include SupplementalDataElements version '6.1.000' called SDE
include Status version '2.1.000' called Status
codesystem "LOINC": 'http://loinc.org'
codesystem "HSLOC": 'https://www.cdc.gov/nhsn/cdaportal/terminology/codesystem/hsloc.html'
codesystem "SNOMEDCT": 'http://snomed.info/sct'
codesystem "ActCode": 'http://terminology.hl7.org/CodeSystem/v3-ActCode'
codesystem "ICD10CM": 'http://hl7.org/fhir/sid/icd-10-cm'
codesystem "RoleCode": 'http://terminology.hl7.org/CodeSystem/v3-RoleCode'
valueset "Active Bleeding or Bleeding Diathesis, Excluding Menses": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4036'
valueset "Active Peptic Ulcer": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4031'
valueset "Thrombolytics Adverse Event": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1170.6'
valueset "Allergy to thrombolytics": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1170.5'
valueset "Oral Anticoagulant Medications": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4045'
valueset "Aortic Dissection or Ruptured Aortic Aneurysm": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4028'
valueset "Cardiopulmonary Emergency": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4048'
valueset "Cerebral Vascular Lesion": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4025'
valueset "Closed Head and Facial Trauma": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4026'
valueset "Dementia and Related Intracranial Pathologies": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4043'
valueset "Discharge To Acute Care Facility": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87'
valueset "Emergency Department Evaluation and Management Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1010'
valueset "Emergency Department Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292'
valueset "Endotracheal Intubation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.69'
valueset "Fibrinolytic Therapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4019'
valueset "Intracranial or Intraspinal surgery": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1170.2'
valueset "Ischemic Stroke": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.247'
valueset "Major Surgical Procedure": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4056'
valueset "Malignant Intracranial Neoplasm Group": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1170.3'
valueset "Mechanical Circulatory Assist Device": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4052'
valueset "Neurologic impairment": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.114.12.1012'
valueset "Patient Expired": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.309'
valueset "Percutaneous Coronary Intervention": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.2000.5'
valueset "Pregnant State": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4055'
valueset "STEMI": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4017'
valueset "Thrombolytic medications": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1170.4'
valueset "Encounter Inpatient": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307'
valueset "Hospice Care Ambulatory": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1584'
valueset "Hospice Diagnosis": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165'
valueset "Hospice Encounter": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1003'
valueset "Patient Refusal": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.93'
valueset "Left Against Medical Advice": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.308'
valueset "Drug Intervention Not Indicated/Contraindicated": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1282.1'
valueset "Procedure Not Indicated/Contraindicated": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1282.2'
code "EMER": 'EMER' from "ActCode" display 'emergency'
code "Status post administration of tPA (rtPA) in a different facility within the last 24 hours prior to admission to current facility": 'Z92.82' from "ICD10CM" display 'Status post administration of tPA (rtPA) in a different facility within the last 24 hours prior to admission to current facility'
code "Angina pectoris with documented spasm": 'I20.1' from "ICD10CM" display 'Angina pectoris with documented spasm'
code "Long term (current) use of anticoagulants": 'Z79.01' from "ICD10CM" display 'Long term (current) use of anticoagulants'
code "Takotsubo cardiomyopathy (disorder)": '441541008' from "SNOMEDCT" display 'Takotsubo cardiomyopathy (disorder)'
code "Takotsubo syndrome": 'I51.81' from "ICD10CM" display 'Takotsubo syndrome'
code "Ventricular aneurysm due to and following acute myocardial infarction (disorder)": '723858002' from "SNOMEDCT" display 'Ventricular aneurysm due to and following acute myocardial infarction (disorder)'
code "Aneurysm of heart": 'I25.3' from "ICD10CM" display 'Aneurysm of heart'
code "Discharge to healthcare facility for hospice care (procedure)": '428371000124100' from "SNOMEDCT" display 'Discharge to healthcare facility for hospice care (procedure)'
code "Discharge to home for hospice care (procedure)": '428361000124107' from "SNOMEDCT" display 'Discharge to home for hospice care (procedure)'
code "Hospice care [Minimum Data Set]": '45755-6' from "LOINC" display 'Hospice care [Minimum Data Set]'
code "Yes (qualifier value)": '373066001' from "SNOMEDCT" display 'Yes (qualifier value)'
code "Emergency room": 'ER' from "RoleCode" display 'Emergency room'
code "Emergency trauma unit": 'ETU' from "RoleCode" display 'Emergency trauma unit'
parameter "Measurement Period" Interval<DateTime>
default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)
context Patient
define "Initial Population":
"ED Encounter with STEMI Diagnosis"
define "Denominator":
"Initial Population"
define "Denominator Exclusions":
"Allergy or Intolerance to Thrombolytic Medications Overlaps ED Encounter"
union "Adverse Effect to Thrombolytic Medications Before End of ED Encounter"
union "Active Exclusion Diagnosis at Start of ED Encounter"
union "Active use of Anticoagulants"
union "Exclusion Diagnosis During ED Encounter or Within 24 Hours of ED Encounter Start"
union "Major Surgical Procedure 21 Days or Less Before Start of or Starts During ED Encounter"
union "Intubation or Mechanical Circulatory Assist Device Placement or Removal Procedure During ED Encounter or Within 24 Hours of ED Encounter Start"
union "Active Exclusion Diagnosis Within 90 Days Before or At the Start of ED Encounter"
union "Intracranial or Intraspinal Procedure 90 Days or Less Before Start of ED Encounter"
union "ED Encounter with Discharge Disposition as Patient Expired"
union "ED Encounter with Discharge Disposition as Left Against Medical Advice"
union "ED Encounter with Hospice Services"
union "Currently Pregnant"
define "Denominator Exceptions":
"Received tPA in Another Facility within 24 hours Prior to Admission"
union "ED Encounter with a Documented Reason for No PCI Performed"
union "ED Encounter with a Documented Reason for Not Administering Fibrinolytic Therapy"
define "Numerator":
"Fibrinolytic Therapy Administration within 30 Minutes of Arrival"
union "PCI within 90 Minutes of Arrival"
union "ED Departure with Discharge to Acute Care Facility Within 45 Minutes Of Arrival"
define "Active Exclusion Diagnosis at Start of ED Encounter":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
with ( ( ["ConditionProblemsHealthConcerns": "Active Bleeding or Bleeding Diathesis, Excluding Menses"]
union ["ConditionProblemsHealthConcerns": "Malignant Intracranial Neoplasm Group"]
union ["ConditionProblemsHealthConcerns": "Cerebral Vascular Lesion"]
union ["ConditionProblemsHealthConcerns": "Dementia and Related Intracranial Pathologies"]
union ["ConditionProblemsHealthConcerns": "Pregnant State"]
union ["ConditionProblemsHealthConcerns": "Allergy to thrombolytics"]
).verified ( ) ) ActiveExclusionDx
such that ActiveExclusionDx.prevalenceInterval ( ) overlaps before ( EDwithSTEMI.period )
define "Currently Pregnant":
"ED Encounter with STEMI Diagnosis" EDwSTEMI
with ( ["USCore.ObservationPregnancyStatusProfile"] ) PregStatus
such that PregStatus.status = 'final'
and ( PregStatus.value in "Pregnant State" )
and ( PregStatus.effective during EDwSTEMI.period )
define "Active Exclusion Diagnosis Within 90 Days Before or At the Start of ED Encounter":
"ED Encounter with STEMI Diagnosis" EDwSTEMI
with ( ( ["ConditionProblemsHealthConcerns": "Ischemic Stroke"]
union ["ConditionProblemsHealthConcerns": "Closed Head and Facial Trauma"]
union ["ConditionProblemsHealthConcerns": "Active Peptic Ulcer"]
).verified ( ) ) ExclusionCondition
such that ExclusionCondition.prevalenceInterval ( ) starts during Interval[start of ( EDwSTEMI.period ) - 90 days, start of ( EDwSTEMI.period )]
define "Active Oral Anticoagulant Medication at the Start of ED Encounter":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
with ["MedicationRequest": "Oral Anticoagulant Medications"] OralAnticoagulant
such that OralAnticoagulant.status in { 'active', 'completed' }
and OralAnticoagulant.intent = 'order'
and OralAnticoagulant.authoredOn 90 days or less before or on start of EDwithSTEMI.period
define "Active Long Term use of Anticoagulants":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
// [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
// Original:
// with ( ( ["ConditionProblemsHealthConcerns": "Long term (current) use of anticoagulants"]
// union ["ConditionEncounterDiagnosis": "Long term (current) use of anticoagulants"]
with ( ( [Condition: "Long term (current) use of anticoagulants"] ).verified ( ) ) LongTermAnticoagulant
such that ( LongTermAnticoagulant.prevalenceInterval ( ) starts before or on start of EDwithSTEMI.period
and LongTermAnticoagulant.prevalenceInterval ( ) ends on or after start of EDwithSTEMI.period
)
define "Active use of Anticoagulants":
"Active Oral Anticoagulant Medication at the Start of ED Encounter"
union "Active Long Term use of Anticoagulants"
define "Adverse Effect to Thrombolytic Medications Before End of ED Encounter":
"ED Encounter with STEMI Diagnosis" EDwSTEMI
with [AdverseEvent: "Thrombolytics Adverse Event"] ThrombolyticAdverseEvent
such that Coalesce(ThrombolyticAdverseEvent.date, ThrombolyticAdverseEvent.detected, ThrombolyticAdverseEvent.recordedDate) before end of ( EDwSTEMI.period )
and ThrombolyticAdverseEvent.actuality = 'actual'
define "Allergy or Intolerance to Thrombolytic Medications Overlaps ED Encounter":
"ED Encounter with STEMI Diagnosis" EDwSTEMI
with ["AllergyIntolerance": "Thrombolytic medications"] ThrombolyticAllergy
such that ThrombolyticAllergy.clinicalStatus ~ USQualityCoreCommon."allergy-active"
and ( ThrombolyticAllergy.verificationStatus is not null implies ( ThrombolyticAllergy.verificationStatus ~ USQualityCoreCommon."allergy-confirmed"
or ThrombolyticAllergy.verificationStatus ~ USQualityCoreCommon."allergy-unconfirmed"
)
)
and ( ThrombolyticAllergy.prevalenceInterval ( ) overlaps ( EDwSTEMI.period )
or ThrombolyticAllergy.onset before end EDwSTEMI.period
)
define "ED Departure with Discharge to Acute Care Facility Within 45 Minutes Of Arrival":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
where EDwithSTEMI.currentemergencyDepartmentDepartTime ( ) 45 minutes or less after EDwithSTEMI.currentemergencyDepartmentArrivalTime ( )
and EDwithSTEMI.hospitalization.dischargeDisposition in "Discharge To Acute Care Facility"
define "ED Encounter During MP":
["Encounter": class ~ "EMER"] EDEncounter
where EDEncounter.type in "Emergency Department Evaluation and Management Visit"
and EDEncounter.period ends during day of "Measurement Period"
and EDEncounter.status = 'finished'
and AgeInYearsAt(date from start of(EDEncounter.period)) >= 18
define "ED Encounter with STEMI Diagnosis":
"ED Encounter During MP" EDEncounterinMP
where ( EDEncounterinMP.reasonCode in "STEMI"
// [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
// Original:
// or exists ( ( ( [ConditionProblemsHealthConcerns: "STEMI"]
// union [ConditionEncounterDiagnosis: "STEMI"]
or exists ( ( ( [Condition: "STEMI"]
).verified ( ) ) DxSTEMI
where ( EDEncounterinMP.encounterDiagnosis ( ).code in "STEMI"
or ( DxSTEMI.prevalenceInterval ( ) starts during EDEncounterinMP.period )
)
)
)
define "ED Encounter with Discharge Disposition as Patient Expired":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
where EDwithSTEMI.hospitalization.dischargeDisposition in "Patient Expired"
define "ED Encounter with Discharge Disposition as Left Against Medical Advice":
"ED Encounter with STEMI Diagnosis" EDwSTEMI
where EDwSTEMI.hospitalization.dischargeDisposition in "Left Against Medical Advice"
define "ED Encounter with Hospice Services":
from
"ED Encounter with STEMI Diagnosis" EDwSTEMI
let SixMonthsBeforeToEndOfSTEMI: Interval[start of ( EDwSTEMI.period ) - 6 months, end of ( EDwSTEMI.period )]
where ( exists ( ( ( [Encounter: "Encounter Inpatient"] ).isEncounterPerformed ( ) ) InpatientEncounter
where ( InpatientEncounter.hospitalization.dischargeDisposition ~ "Discharge to home for hospice care (procedure)"
or InpatientEncounter.hospitalization.dischargeDisposition ~ "Discharge to healthcare facility for hospice care (procedure)"
)
and InpatientEncounter.period starts before or on start of ( EDwSTEMI.period )
and InpatientEncounter.period overlaps day of SixMonthsBeforeToEndOfSTEMI
)
or exists ( ( ( [Encounter: "Hospice Encounter"] ).isEncounterPerformed ( ) ) HospiceEncounter
where HospiceEncounter.period starts before or on start of ( EDwSTEMI.period )
and ( HospiceEncounter.period overlaps day of SixMonthsBeforeToEndOfSTEMI )
)
or exists ( ( ( [ObservationScreeningAssessment: "Hospice care [Minimum Data Set]"] ).isAssessmentPerformed ( ) ) HospiceAssessment
where ( HospiceAssessment as ObservationScreeningAssessment ).value ~ "Yes (qualifier value)"
and HospiceAssessment.effective.toInterval ( ) starts before or on start of ( EDwSTEMI.period )
and ( HospiceAssessment.effective.toInterval ( ) overlaps day of SixMonthsBeforeToEndOfSTEMI )
)
or exists ( ( ( [ServiceRequest: "Hospice Care Ambulatory"] ).isInterventionOrder ( ) ) HospiceOrder
where HospiceOrder.authoredOn 6 months or less before start of ( EDwSTEMI.period )
)
or exists ( ( ( [Procedure: "Hospice Care Ambulatory"] ).isInterventionPerformed ( ) ) HospicePerformed
where HospicePerformed.performed.toInterval ( ) starts before or on start of ( EDwSTEMI.period )
and ( HospicePerformed.performed.toInterval ( ) overlaps day of SixMonthsBeforeToEndOfSTEMI )
)
or exists ( ( ( [ConditionProblemsHealthConcerns: "Hospice Diagnosis"] ).verified ( ) ) HospiceCareDiagnosis
where HospiceCareDiagnosis.prevalenceInterval ( ) ends on or after start of ( EDwSTEMI.period )
)
)
define "Exclusion Diagnosis During ED Encounter or Within 24 Hours of ED Encounter Start":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
with ( ( ["ConditionProblemsHealthConcerns": "Aortic Dissection or Ruptured Aortic Aneurysm"]
union ["ConditionProblemsHealthConcerns": "Neurologic impairment"]
union ["ConditionProblemsHealthConcerns": "Angina pectoris with documented spasm"]
union ["ConditionProblemsHealthConcerns": "Ventricular aneurysm due to and following acute myocardial infarction (disorder)"]
union ["ConditionProblemsHealthConcerns": "Aneurysm of heart"]
union ["ConditionProblemsHealthConcerns": "Takotsubo cardiomyopathy (disorder)"]
union ["ConditionProblemsHealthConcerns": "Takotsubo syndrome"]
union ["ConditionProblemsHealthConcerns": "Cardiopulmonary Emergency"]
).verified ( ) ) ExclusionDiagnosis
such that ( ( ExclusionDiagnosis.prevalenceInterval ( ) starts during EDwithSTEMI.period )
or ( ExclusionDiagnosis.prevalenceInterval ( ) starts 24 hours or less before start of EDwithSTEMI.period )
)
define "Received tPA in Another Facility within 24 hours Prior to Admission":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
// [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
// Original:
// with ( ( ["ConditionProblemsHealthConcerns": "Status post administration of tPA (rtPA) in a different facility within the last 24 hours prior to admission to current facility"]
// union ["ConditionEncounterDiagnosis": "Status post administration of tPA (rtPA) in a different facility within the last 24 hours prior to admission to current facility"]
with ( ( [Condition: "Status post administration of tPA (rtPA) in a different facility within the last 24 hours prior to admission to current facility"]
).verified ( ) ) TPA
such that TPA.prevalenceInterval ( ) starts during EDwithSTEMI.period
define "ED Encounter with a Documented Reason for No PCI Performed":
"ED Encounter with STEMI Diagnosis" EDwSTEMI
with ["ProcedureNotDone": "Percutaneous Coronary Intervention"] PCINotDone
such that ( PCINotDone.statusReason in "Patient Refusal"
or PCINotDone.statusReason in "Procedure Not Indicated/Contraindicated"
)
and PCINotDone.performed during EDwSTEMI.period
define "ED Encounter with a Documented Reason for Not Administering Fibrinolytic Therapy":
"ED Encounter with STEMI Diagnosis" EDwSTEMI
with ["MedicationAdministrationNotDone": "Fibrinolytic Therapy"] FibrinolyticNoMed
such that ( FibrinolyticNoMed.statusReason in "Patient Refusal"
or FibrinolyticNoMed.statusReason in "Drug Intervention Not Indicated/Contraindicated"
)
and FibrinolyticNoMed.effective during EDwSTEMI.period
define "Fibrinolytic Therapy Administration within 30 Minutes of Arrival":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
with ["MedicationAdministration": "Fibrinolytic Therapy"] Fibrinolytic
such that Fibrinolytic.status = 'completed'
and start of ( Fibrinolytic.effective.toInterval ( ) ) 30 minutes or less after EDwithSTEMI.currentemergencyDepartmentArrivalTime ( )
define "Intracranial or Intraspinal Procedure 90 Days or Less Before Start of ED Encounter":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
with ["Procedure": "Intracranial or Intraspinal surgery"] CranialorSpinalSurgery
such that CranialorSpinalSurgery.performed.toInterval ( ) starts 90 days or less before start of ( EDwithSTEMI.period )
and CranialorSpinalSurgery.status = 'completed'
define "Intubation or Mechanical Circulatory Assist Device Placement or Removal Procedure During ED Encounter or Within 24 Hours of ED Encounter Start":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
with ( ["Procedure": "Endotracheal Intubation"]
union ["Procedure": "Mechanical Circulatory Assist Device"] ) AirwayProcedure
such that ( ( AirwayProcedure.performed.toInterval ( ) starts during ( EDwithSTEMI.period ) )
or ( AirwayProcedure.performed.toInterval ( ) starts 24 hours or less before start of ( EDwithSTEMI.period ) )
)
and AirwayProcedure.status = 'completed'
define "Major Surgical Procedure 21 Days or Less Before Start of or Starts During ED Encounter":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
with ["Procedure": "Major Surgical Procedure"] MajorSurgery
such that ( MajorSurgery.performed.toInterval ( ) starts 21 days or less before start of EDwithSTEMI.period
or MajorSurgery.performed.toInterval ( ) starts during EDwithSTEMI.period
)
and MajorSurgery.status = 'completed'
define "PCI within 90 Minutes of Arrival":
"ED Encounter with STEMI Diagnosis" EDwithSTEMI
with ["Procedure": "Percutaneous Coronary Intervention"] PCI
such that PCI.performed.toInterval ( ) starts 90 minutes or less after EDwithSTEMI.currentemergencyDepartmentArrivalTime ( )
and PCI.status = 'completed'
define "SDE Ethnicity":
SDE."SDE Ethnicity"
define "SDE Payer":
SDE."SDE Payer"
define "SDE Race":
SDE."SDE Race"
define "SDE Sex":
SDE."SDE Sex"
define fluent function currentemergencyDepartmentArrivalTime(EDEncounter Encounter):
First(EDEncounter.location EDLocation
where exists((EDLocation.location.getLocation().type) LocationType
where(LocationType in "Emergency Department Visit"
or LocationType ~ "Emergency room"
or LocationType ~ "Emergency trauma unit"
)
and start of EDLocation.period is not null
)
return start of EDLocation.period
sort ascending
)
define fluent function currentemergencyDepartmentDepartTime(EDEncounter Encounter):
Last(EDEncounter.location EDLocation
where exists((EDLocation.location.getLocation().type) LocationType
where(LocationType in "Emergency Department Visit"
or LocationType ~ "Emergency room"
or LocationType ~ "Emergency trauma unit"
)
and
end of EDLocation.period is not null
)
return
end of EDLocation.period
sort ascending
)</code></pre>
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>
</tr>
</tbody>
</table>
</div>
</text>
<extension
url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem">
<valueReference>
<reference value="Device/cqf-tooling"/>
</valueReference>
</extension>
<url value="https://madie.cms.gov/Library/CMS996FHIRAptTxforSTEMI"/>
<version value="2.1.000"/>
<name value="CMS996FHIRAptTxforSTEMI"/>
<status value="draft"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2026-09-19T16:31:14+00:00"/>
<content>
<contentType value="text/cql"/>
<data
value="LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVM5OTZGSElSQXB0VHhmb3JTVEVNSSB2ZXJzaW9uICcyLjEuMDAwJwoKdXNpbmcgVVNRdWFsaXR5Q29yZSB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJwp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNi4xLjAtZGVyaXZlZCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkNvbW1vbiB2ZXJzaW9uICcyLjAuMCcgY2FsbGVkIEZISVJDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlQ29tbW9uIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIFVTQ29yZUNvbW1vbgppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5VU0NvcmVFbGVtZW50cyB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVFbGVtZW50cwoKaW5jbHVkZSBDUU1Db21tb24gdmVyc2lvbiAnNS4xLjAwMCcgY2FsbGVkIENRTUNvbW1vbgppbmNsdWRlIFVTUXVhbGl0eUNvcmVDb21tb24gdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcgY2FsbGVkIFVTUXVhbGl0eUNvcmVDb21tb24KaW5jbHVkZSBTdXBwbGVtZW50YWxEYXRhRWxlbWVudHMgdmVyc2lvbiAnNi4xLjAwMCcgY2FsbGVkIFNERQppbmNsdWRlIFN0YXR1cyB2ZXJzaW9uICcyLjEuMDAwJyBjYWxsZWQgU3RhdHVzCgpjb2Rlc3lzdGVtICJMT0lOQyI6ICdodHRwOi8vbG9pbmMub3JnJwpjb2Rlc3lzdGVtICJIU0xPQyI6ICdodHRwczovL3d3dy5jZGMuZ292L25oc24vY2RhcG9ydGFsL3Rlcm1pbm9sb2d5L2NvZGVzeXN0ZW0vaHNsb2MuaHRtbCcKY29kZXN5c3RlbSAiU05PTUVEQ1QiOiAnaHR0cDovL3Nub21lZC5pbmZvL3NjdCcKY29kZXN5c3RlbSAiQWN0Q29kZSI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL3YzLUFjdENvZGUnCmNvZGVzeXN0ZW0gIklDRDEwQ00iOiAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvaWNkLTEwLWNtJwpjb2Rlc3lzdGVtICJSb2xlQ29kZSI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL3YzLVJvbGVDb2RlJwoKdmFsdWVzZXQgIkFjdGl2ZSBCbGVlZGluZyBvciBCbGVlZGluZyBEaWF0aGVzaXMsIEV4Y2x1ZGluZyBNZW5zZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMzE1Ny40MDM2Jwp2YWx1ZXNldCAiQWN0aXZlIFBlcHRpYyBVbGNlciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zMTU3LjQwMzEnCnZhbHVlc2V0ICJUaHJvbWJvbHl0aWNzIEFkdmVyc2UgRXZlbnQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTcwLjYnCnZhbHVlc2V0ICJBbGxlcmd5IHRvIHRocm9tYm9seXRpY3MiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTcwLjUnCnZhbHVlc2V0ICJPcmFsIEFudGljb2FndWxhbnQgTWVkaWNhdGlvbnMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMzE1Ny40MDQ1Jwp2YWx1ZXNldCAiQW9ydGljIERpc3NlY3Rpb24gb3IgUnVwdHVyZWQgQW9ydGljIEFuZXVyeXNtIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjMxNTcuNDAyOCcKdmFsdWVzZXQgIkNhcmRpb3B1bG1vbmFyeSBFbWVyZ2VuY3kiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMzE1Ny40MDQ4Jwp2YWx1ZXNldCAiQ2VyZWJyYWwgVmFzY3VsYXIgTGVzaW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjMxNTcuNDAyNScKdmFsdWVzZXQgIkNsb3NlZCBIZWFkIGFuZCBGYWNpYWwgVHJhdW1hIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjMxNTcuNDAyNicKdmFsdWVzZXQgIkRlbWVudGlhIGFuZCBSZWxhdGVkIEludHJhY3JhbmlhbCBQYXRob2xvZ2llcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zMTU3LjQwNDMnCnZhbHVlc2V0ICJEaXNjaGFyZ2UgVG8gQWN1dGUgQ2FyZSBGYWNpbGl0eSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuODcnCnZhbHVlc2V0ICJFbWVyZ2VuY3kgRGVwYXJ0bWVudCBFdmFsdWF0aW9uIGFuZCBNYW5hZ2VtZW50IFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDEwJwp2YWx1ZXNldCAiRW1lcmdlbmN5IERlcGFydG1lbnQgVmlzaXQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjI5MicKdmFsdWVzZXQgIkVuZG90cmFjaGVhbCBJbnR1YmF0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTA0NS42OScKdmFsdWVzZXQgIkZpYnJpbm9seXRpYyBUaGVyYXB5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjMxNTcuNDAxOScKdmFsdWVzZXQgIkludHJhY3JhbmlhbCBvciBJbnRyYXNwaW5hbCBzdXJnZXJ5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE3MC4yJwp2YWx1ZXNldCAiSXNjaGVtaWMgU3Ryb2tlIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yNDcnCnZhbHVlc2V0ICJNYWpvciBTdXJnaWNhbCBQcm9jZWR1cmUiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMzE1Ny40MDU2Jwp2YWx1ZXNldCAiTWFsaWduYW50IEludHJhY3JhbmlhbCBOZW9wbGFzbSBHcm91cCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExNzAuMycKdmFsdWVzZXQgIk1lY2hhbmljYWwgQ2lyY3VsYXRvcnkgQXNzaXN0IERldmljZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zMTU3LjQwNTInCnZhbHVlc2V0ICJOZXVyb2xvZ2ljIGltcGFpcm1lbnQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTE0LjEyLjEwMTInCnZhbHVlc2V0ICJQYXRpZW50IEV4cGlyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjMwOScKdmFsdWVzZXQgIlBlcmN1dGFuZW91cyBDb3JvbmFyeSBJbnRlcnZlbnRpb24iOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMzE1Ny4yMDAwLjUnCnZhbHVlc2V0ICJQcmVnbmFudCBTdGF0ZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zMTU3LjQwNTUnCnZhbHVlc2V0ICJTVEVNSSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zMTU3LjQwMTcnCnZhbHVlc2V0ICJUaHJvbWJvbHl0aWMgbWVkaWNhdGlvbnMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTcwLjQnCnZhbHVlc2V0ICJFbmNvdW50ZXIgSW5wYXRpZW50IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjY2Ni41LjMwNycKdmFsdWVzZXQgIkhvc3BpY2UgQ2FyZSBBbWJ1bGF0b3J5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjE1ODQnCnZhbHVlc2V0ICJIb3NwaWNlIERpYWdub3NpcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTY1Jwp2YWx1ZXNldCAiSG9zcGljZSBFbmNvdW50ZXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAwMycKdmFsdWVzZXQgIlBhdGllbnQgUmVmdXNhbCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuOTMnCnZhbHVlc2V0ICJMZWZ0IEFnYWluc3QgTWVkaWNhbCBBZHZpY2UiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjMwOCcKdmFsdWVzZXQgIkRydWcgSW50ZXJ2ZW50aW9uIE5vdCBJbmRpY2F0ZWQvQ29udHJhaW5kaWNhdGVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTI4Mi4xJwp2YWx1ZXNldCAiUHJvY2VkdXJlIE5vdCBJbmRpY2F0ZWQvQ29udHJhaW5kaWNhdGVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTI4Mi4yJwoKY29kZSAiRU1FUiI6ICdFTUVSJyBmcm9tICJBY3RDb2RlIiBkaXNwbGF5ICdlbWVyZ2VuY3knCmNvZGUgIlN0YXR1cyBwb3N0IGFkbWluaXN0cmF0aW9uIG9mIHRQQSAocnRQQSkgaW4gYSBkaWZmZXJlbnQgZmFjaWxpdHkgd2l0aGluIHRoZSBsYXN0IDI0IGhvdXJzIHByaW9yIHRvIGFkbWlzc2lvbiB0byBjdXJyZW50IGZhY2lsaXR5IjogJ1o5Mi44MicgZnJvbSAiSUNEMTBDTSIgZGlzcGxheSAnU3RhdHVzIHBvc3QgYWRtaW5pc3RyYXRpb24gb2YgdFBBIChydFBBKSBpbiBhIGRpZmZlcmVudCBmYWNpbGl0eSB3aXRoaW4gdGhlIGxhc3QgMjQgaG91cnMgcHJpb3IgdG8gYWRtaXNzaW9uIHRvIGN1cnJlbnQgZmFjaWxpdHknCmNvZGUgIkFuZ2luYSBwZWN0b3JpcyB3aXRoIGRvY3VtZW50ZWQgc3Bhc20iOiAnSTIwLjEnIGZyb20gIklDRDEwQ00iIGRpc3BsYXkgJ0FuZ2luYSBwZWN0b3JpcyB3aXRoIGRvY3VtZW50ZWQgc3Bhc20nCmNvZGUgIkxvbmcgdGVybSAoY3VycmVudCkgdXNlIG9mIGFudGljb2FndWxhbnRzIjogJ1o3OS4wMScgZnJvbSAiSUNEMTBDTSIgZGlzcGxheSAnTG9uZyB0ZXJtIChjdXJyZW50KSB1c2Ugb2YgYW50aWNvYWd1bGFudHMnCmNvZGUgIlRha290c3VibyBjYXJkaW9teW9wYXRoeSAoZGlzb3JkZXIpIjogJzQ0MTU0MTAwOCcgZnJvbSAiU05PTUVEQ1QiIGRpc3BsYXkgJ1Rha290c3VibyBjYXJkaW9teW9wYXRoeSAoZGlzb3JkZXIpJwpjb2RlICJUYWtvdHN1Ym8gc3luZHJvbWUiOiAnSTUxLjgxJyBmcm9tICJJQ0QxMENNIiBkaXNwbGF5ICdUYWtvdHN1Ym8gc3luZHJvbWUnCmNvZGUgIlZlbnRyaWN1bGFyIGFuZXVyeXNtIGR1ZSB0byBhbmQgZm9sbG93aW5nIGFjdXRlIG15b2NhcmRpYWwgaW5mYXJjdGlvbiAoZGlzb3JkZXIpIjogJzcyMzg1ODAwMicgZnJvbSAiU05PTUVEQ1QiIGRpc3BsYXkgJ1ZlbnRyaWN1bGFyIGFuZXVyeXNtIGR1ZSB0byBhbmQgZm9sbG93aW5nIGFjdXRlIG15b2NhcmRpYWwgaW5mYXJjdGlvbiAoZGlzb3JkZXIpJwpjb2RlICJBbmV1cnlzbSBvZiBoZWFydCI6ICdJMjUuMycgZnJvbSAiSUNEMTBDTSIgZGlzcGxheSAnQW5ldXJ5c20gb2YgaGVhcnQnCmNvZGUgIkRpc2NoYXJnZSB0byBoZWFsdGhjYXJlIGZhY2lsaXR5IGZvciBob3NwaWNlIGNhcmUgKHByb2NlZHVyZSkiOiAnNDI4MzcxMDAwMTI0MTAwJyBmcm9tICJTTk9NRURDVCIgZGlzcGxheSAnRGlzY2hhcmdlIHRvIGhlYWx0aGNhcmUgZmFjaWxpdHkgZm9yIGhvc3BpY2UgY2FyZSAocHJvY2VkdXJlKScKY29kZSAiRGlzY2hhcmdlIHRvIGhvbWUgZm9yIGhvc3BpY2UgY2FyZSAocHJvY2VkdXJlKSI6ICc0MjgzNjEwMDAxMjQxMDcnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdEaXNjaGFyZ2UgdG8gaG9tZSBmb3IgaG9zcGljZSBjYXJlIChwcm9jZWR1cmUpJwpjb2RlICJIb3NwaWNlIGNhcmUgW01pbmltdW0gRGF0YSBTZXRdIjogJzQ1NzU1LTYnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdIb3NwaWNlIGNhcmUgW01pbmltdW0gRGF0YSBTZXRdJwpjb2RlICJZZXMgKHF1YWxpZmllciB2YWx1ZSkiOiAnMzczMDY2MDAxJyBmcm9tICJTTk9NRURDVCIgZGlzcGxheSAnWWVzIChxdWFsaWZpZXIgdmFsdWUpJwpjb2RlICJFbWVyZ2VuY3kgcm9vbSI6ICdFUicgZnJvbSAiUm9sZUNvZGUiIGRpc3BsYXkgJ0VtZXJnZW5jeSByb29tJwpjb2RlICJFbWVyZ2VuY3kgdHJhdW1hIHVuaXQiOiAnRVRVJyBmcm9tICJSb2xlQ29kZSIgZGlzcGxheSAnRW1lcmdlbmN5IHRyYXVtYSB1bml0JwoKcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGVUaW1lPgogIGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjYtMDEtMDFUMDA6MDA6MDAuMDAwWiwgQDIwMjctMDEtMDFUMDA6MDA6MDAuMDAwWikKCmNvbnRleHQgUGF0aWVudAoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogICJFRCBFbmNvdW50ZXIgd2l0aCBTVEVNSSBEaWFnbm9zaXMiCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNsdXNpb25zIjoKICAiQWxsZXJneSBvciBJbnRvbGVyYW5jZSB0byBUaHJvbWJvbHl0aWMgTWVkaWNhdGlvbnMgT3ZlcmxhcHMgRUQgRW5jb3VudGVyIgogICAgdW5pb24gIkFkdmVyc2UgRWZmZWN0IHRvIFRocm9tYm9seXRpYyBNZWRpY2F0aW9ucyBCZWZvcmUgRW5kIG9mIEVEIEVuY291bnRlciIKICAgIHVuaW9uICJBY3RpdmUgRXhjbHVzaW9uIERpYWdub3NpcyBhdCBTdGFydCBvZiBFRCBFbmNvdW50ZXIiCiAgICB1bmlvbiAiQWN0aXZlIHVzZSBvZiBBbnRpY29hZ3VsYW50cyIKICAgIHVuaW9uICJFeGNsdXNpb24gRGlhZ25vc2lzIER1cmluZyBFRCBFbmNvdW50ZXIgb3IgV2l0aGluIDI0IEhvdXJzIG9mIEVEIEVuY291bnRlciBTdGFydCIKICAgIHVuaW9uICJNYWpvciBTdXJnaWNhbCBQcm9jZWR1cmUgMjEgRGF5cyBvciBMZXNzIEJlZm9yZSBTdGFydCBvZiBvciBTdGFydHMgRHVyaW5nIEVEIEVuY291bnRlciIKICAgIHVuaW9uICJJbnR1YmF0aW9uIG9yIE1lY2hhbmljYWwgQ2lyY3VsYXRvcnkgQXNzaXN0IERldmljZSBQbGFjZW1lbnQgb3IgUmVtb3ZhbCBQcm9jZWR1cmUgRHVyaW5nIEVEIEVuY291bnRlciBvciBXaXRoaW4gMjQgSG91cnMgb2YgRUQgRW5jb3VudGVyIFN0YXJ0IgogICAgdW5pb24gIkFjdGl2ZSBFeGNsdXNpb24gRGlhZ25vc2lzIFdpdGhpbiA5MCBEYXlzIEJlZm9yZSBvciBBdCB0aGUgU3RhcnQgb2YgRUQgRW5jb3VudGVyIgogICAgdW5pb24gIkludHJhY3JhbmlhbCBvciBJbnRyYXNwaW5hbCBQcm9jZWR1cmUgOTAgRGF5cyBvciBMZXNzIEJlZm9yZSBTdGFydCBvZiBFRCBFbmNvdW50ZXIiCiAgICB1bmlvbiAiRUQgRW5jb3VudGVyIHdpdGggRGlzY2hhcmdlIERpc3Bvc2l0aW9uIGFzIFBhdGllbnQgRXhwaXJlZCIKICAgIHVuaW9uICJFRCBFbmNvdW50ZXIgd2l0aCBEaXNjaGFyZ2UgRGlzcG9zaXRpb24gYXMgTGVmdCBBZ2FpbnN0IE1lZGljYWwgQWR2aWNlIgogICAgdW5pb24gIkVEIEVuY291bnRlciB3aXRoIEhvc3BpY2UgU2VydmljZXMiCiAgICB1bmlvbiAiQ3VycmVudGx5IFByZWduYW50IgoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNlcHRpb25zIjoKICAiUmVjZWl2ZWQgdFBBIGluIEFub3RoZXIgRmFjaWxpdHkgd2l0aGluIDI0IGhvdXJzIFByaW9yIHRvIEFkbWlzc2lvbiIKICAgIHVuaW9uICJFRCBFbmNvdW50ZXIgd2l0aCBhIERvY3VtZW50ZWQgUmVhc29uIGZvciBObyBQQ0kgUGVyZm9ybWVkIgogICAgdW5pb24gIkVEIEVuY291bnRlciB3aXRoIGEgRG9jdW1lbnRlZCBSZWFzb24gZm9yIE5vdCBBZG1pbmlzdGVyaW5nIEZpYnJpbm9seXRpYyBUaGVyYXB5IgoKZGVmaW5lICJOdW1lcmF0b3IiOgogICJGaWJyaW5vbHl0aWMgVGhlcmFweSBBZG1pbmlzdHJhdGlvbiB3aXRoaW4gMzAgTWludXRlcyBvZiBBcnJpdmFsIgogICAgdW5pb24gIlBDSSB3aXRoaW4gOTAgTWludXRlcyBvZiBBcnJpdmFsIgogICAgdW5pb24gIkVEIERlcGFydHVyZSB3aXRoIERpc2NoYXJnZSB0byBBY3V0ZSBDYXJlIEZhY2lsaXR5IFdpdGhpbiA0NSBNaW51dGVzIE9mIEFycml2YWwiCgpkZWZpbmUgIkFjdGl2ZSBFeGNsdXNpb24gRGlhZ25vc2lzIGF0IFN0YXJ0IG9mIEVEIEVuY291bnRlciI6CiAgIkVEIEVuY291bnRlciB3aXRoIFNURU1JIERpYWdub3NpcyIgRUR3aXRoU1RFTUkKICAgIHdpdGggKCAoIFsiQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucyI6ICJBY3RpdmUgQmxlZWRpbmcgb3IgQmxlZWRpbmcgRGlhdGhlc2lzLCBFeGNsdWRpbmcgTWVuc2VzIl0KICAgICAgICB1bmlvbiBbIkNvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnMiOiAiTWFsaWduYW50IEludHJhY3JhbmlhbCBOZW9wbGFzbSBHcm91cCJdCiAgICAgICAgdW5pb24gWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIkNlcmVicmFsIFZhc2N1bGFyIExlc2lvbiJdCiAgICAgICAgdW5pb24gWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIkRlbWVudGlhIGFuZCBSZWxhdGVkIEludHJhY3JhbmlhbCBQYXRob2xvZ2llcyJdCiAgICAgICAgdW5pb24gWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIlByZWduYW50IFN0YXRlIl0KICAgICAgICB1bmlvbiBbIkNvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnMiOiAiQWxsZXJneSB0byB0aHJvbWJvbHl0aWNzIl0KICAgICkudmVyaWZpZWQgKCApICkgQWN0aXZlRXhjbHVzaW9uRHgKICAgICAgc3VjaCB0aGF0IEFjdGl2ZUV4Y2x1c2lvbkR4LnByZXZhbGVuY2VJbnRlcnZhbCAoICkgb3ZlcmxhcHMgYmVmb3JlICggRUR3aXRoU1RFTUkucGVyaW9kICkKCmRlZmluZSAiQ3VycmVudGx5IFByZWduYW50IjoKICAiRUQgRW5jb3VudGVyIHdpdGggU1RFTUkgRGlhZ25vc2lzIiBFRHdTVEVNSQogICAgd2l0aCAoIFsiVVNDb3JlLk9ic2VydmF0aW9uUHJlZ25hbmN5U3RhdHVzUHJvZmlsZSJdICkgUHJlZ1N0YXR1cwogICAgICBzdWNoIHRoYXQgUHJlZ1N0YXR1cy5zdGF0dXMgPSAnZmluYWwnCiAgICAgICAgYW5kICggUHJlZ1N0YXR1cy52YWx1ZSBpbiAiUHJlZ25hbnQgU3RhdGUiICkKICAgICAgICBhbmQgKCBQcmVnU3RhdHVzLmVmZmVjdGl2ZSBkdXJpbmcgRUR3U1RFTUkucGVyaW9kICkKCmRlZmluZSAiQWN0aXZlIEV4Y2x1c2lvbiBEaWFnbm9zaXMgV2l0aGluIDkwIERheXMgQmVmb3JlIG9yIEF0IHRoZSBTdGFydCBvZiBFRCBFbmNvdW50ZXIiOgogICJFRCBFbmNvdW50ZXIgd2l0aCBTVEVNSSBEaWFnbm9zaXMiIEVEd1NURU1JCiAgICB3aXRoICggKCBbIkNvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnMiOiAiSXNjaGVtaWMgU3Ryb2tlIl0KICAgICAgICB1bmlvbiBbIkNvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnMiOiAiQ2xvc2VkIEhlYWQgYW5kIEZhY2lhbCBUcmF1bWEiXQogICAgICAgIHVuaW9uIFsiQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucyI6ICJBY3RpdmUgUGVwdGljIFVsY2VyIl0KICAgICkudmVyaWZpZWQgKCApICkgRXhjbHVzaW9uQ29uZGl0aW9uCiAgICAgIHN1Y2ggdGhhdCBFeGNsdXNpb25Db25kaXRpb24ucHJldmFsZW5jZUludGVydmFsICggKSBzdGFydHMgZHVyaW5nIEludGVydmFsW3N0YXJ0IG9mICggRUR3U1RFTUkucGVyaW9kICkgLSA5MCBkYXlzLCBzdGFydCBvZiAoIEVEd1NURU1JLnBlcmlvZCApXQoKZGVmaW5lICJBY3RpdmUgT3JhbCBBbnRpY29hZ3VsYW50IE1lZGljYXRpb24gYXQgdGhlIFN0YXJ0IG9mIEVEIEVuY291bnRlciI6CiAgIkVEIEVuY291bnRlciB3aXRoIFNURU1JIERpYWdub3NpcyIgRUR3aXRoU1RFTUkKICAgIHdpdGggWyJNZWRpY2F0aW9uUmVxdWVzdCI6ICJPcmFsIEFudGljb2FndWxhbnQgTWVkaWNhdGlvbnMiXSBPcmFsQW50aWNvYWd1bGFudAogICAgICBzdWNoIHRoYXQgT3JhbEFudGljb2FndWxhbnQuc3RhdHVzIGluIHsgJ2FjdGl2ZScsICdjb21wbGV0ZWQnIH0KICAgICAgICBhbmQgT3JhbEFudGljb2FndWxhbnQuaW50ZW50ID0gJ29yZGVyJwogICAgICAgIGFuZCBPcmFsQW50aWNvYWd1bGFudC5hdXRob3JlZE9uIDkwIGRheXMgb3IgbGVzcyBiZWZvcmUgb3Igb24gc3RhcnQgb2YgRUR3aXRoU1RFTUkucGVyaW9kCgpkZWZpbmUgIkFjdGl2ZSBMb25nIFRlcm0gdXNlIG9mIEFudGljb2FndWxhbnRzIjoKICAiRUQgRW5jb3VudGVyIHdpdGggU1RFTUkgRGlhZ25vc2lzIiBFRHdpdGhTVEVNSQogICAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgICAvLyBPcmlnaW5hbDoKICAgIC8vIHdpdGggKCAoIFsiQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucyI6ICJMb25nIHRlcm0gKGN1cnJlbnQpIHVzZSBvZiBhbnRpY29hZ3VsYW50cyJdCiAgICAvLyAgICAgdW5pb24gWyJDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXMiOiAiTG9uZyB0ZXJtIChjdXJyZW50KSB1c2Ugb2YgYW50aWNvYWd1bGFudHMiXQogICAgd2l0aCAoICggW0NvbmRpdGlvbjogIkxvbmcgdGVybSAoY3VycmVudCkgdXNlIG9mIGFudGljb2FndWxhbnRzIl0gKS52ZXJpZmllZCAoICkgKSBMb25nVGVybUFudGljb2FndWxhbnQKICAgICAgc3VjaCB0aGF0ICggTG9uZ1Rlcm1BbnRpY29hZ3VsYW50LnByZXZhbGVuY2VJbnRlcnZhbCAoICkgc3RhcnRzIGJlZm9yZSBvciBvbiBzdGFydCBvZiBFRHdpdGhTVEVNSS5wZXJpb2QKICAgICAgICAgIGFuZCBMb25nVGVybUFudGljb2FndWxhbnQucHJldmFsZW5jZUludGVydmFsICggKSBlbmRzIG9uIG9yIGFmdGVyIHN0YXJ0IG9mIEVEd2l0aFNURU1JLnBlcmlvZAogICAgICApCgpkZWZpbmUgIkFjdGl2ZSB1c2Ugb2YgQW50aWNvYWd1bGFudHMiOgogICJBY3RpdmUgT3JhbCBBbnRpY29hZ3VsYW50IE1lZGljYXRpb24gYXQgdGhlIFN0YXJ0IG9mIEVEIEVuY291bnRlciIKICAgIHVuaW9uICJBY3RpdmUgTG9uZyBUZXJtIHVzZSBvZiBBbnRpY29hZ3VsYW50cyIKCmRlZmluZSAiQWR2ZXJzZSBFZmZlY3QgdG8gVGhyb21ib2x5dGljIE1lZGljYXRpb25zIEJlZm9yZSBFbmQgb2YgRUQgRW5jb3VudGVyIjoKICAiRUQgRW5jb3VudGVyIHdpdGggU1RFTUkgRGlhZ25vc2lzIiBFRHdTVEVNSQogICAgd2l0aCBbQWR2ZXJzZUV2ZW50OiAiVGhyb21ib2x5dGljcyBBZHZlcnNlIEV2ZW50Il0gVGhyb21ib2x5dGljQWR2ZXJzZUV2ZW50CiAgICAgIHN1Y2ggdGhhdCBDb2FsZXNjZShUaHJvbWJvbHl0aWNBZHZlcnNlRXZlbnQuZGF0ZSwgVGhyb21ib2x5dGljQWR2ZXJzZUV2ZW50LmRldGVjdGVkLCBUaHJvbWJvbHl0aWNBZHZlcnNlRXZlbnQucmVjb3JkZWREYXRlKSBiZWZvcmUgZW5kIG9mICggRUR3U1RFTUkucGVyaW9kICkKICAgICAgICBhbmQgVGhyb21ib2x5dGljQWR2ZXJzZUV2ZW50LmFjdHVhbGl0eSA9ICdhY3R1YWwnCgpkZWZpbmUgIkFsbGVyZ3kgb3IgSW50b2xlcmFuY2UgdG8gVGhyb21ib2x5dGljIE1lZGljYXRpb25zIE92ZXJsYXBzIEVEIEVuY291bnRlciI6CiAgIkVEIEVuY291bnRlciB3aXRoIFNURU1JIERpYWdub3NpcyIgRUR3U1RFTUkKICAgIHdpdGggWyJBbGxlcmd5SW50b2xlcmFuY2UiOiAiVGhyb21ib2x5dGljIG1lZGljYXRpb25zIl0gVGhyb21ib2x5dGljQWxsZXJneQogICAgICBzdWNoIHRoYXQgVGhyb21ib2x5dGljQWxsZXJneS5jbGluaWNhbFN0YXR1cyB+IFVTUXVhbGl0eUNvcmVDb21tb24uImFsbGVyZ3ktYWN0aXZlIgogICAgICAgIGFuZCAoIFRocm9tYm9seXRpY0FsbGVyZ3kudmVyaWZpY2F0aW9uU3RhdHVzIGlzIG5vdCBudWxsIGltcGxpZXMgKCBUaHJvbWJvbHl0aWNBbGxlcmd5LnZlcmlmaWNhdGlvblN0YXR1cyB+IFVTUXVhbGl0eUNvcmVDb21tb24uImFsbGVyZ3ktY29uZmlybWVkIgogICAgICAgICAgICAgIG9yIFRocm9tYm9seXRpY0FsbGVyZ3kudmVyaWZpY2F0aW9uU3RhdHVzIH4gVVNRdWFsaXR5Q29yZUNvbW1vbi4iYWxsZXJneS11bmNvbmZpcm1lZCIKICAgICAgICAgICkKICAgICAgICApCiAgICAgICAgYW5kICggVGhyb21ib2x5dGljQWxsZXJneS5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIG92ZXJsYXBzICggRUR3U1RFTUkucGVyaW9kICkKICAgICAgICAgICAgb3IgVGhyb21ib2x5dGljQWxsZXJneS5vbnNldCBiZWZvcmUgZW5kIEVEd1NURU1JLnBlcmlvZAogICAgICAgICkKCmRlZmluZSAiRUQgRGVwYXJ0dXJlIHdpdGggRGlzY2hhcmdlIHRvIEFjdXRlIENhcmUgRmFjaWxpdHkgV2l0aGluIDQ1IE1pbnV0ZXMgT2YgQXJyaXZhbCI6CiAgIkVEIEVuY291bnRlciB3aXRoIFNURU1JIERpYWdub3NpcyIgRUR3aXRoU1RFTUkKICAgIHdoZXJlIEVEd2l0aFNURU1JLmN1cnJlbnRlbWVyZ2VuY3lEZXBhcnRtZW50RGVwYXJ0VGltZSAoICkgNDUgbWludXRlcyBvciBsZXNzIGFmdGVyIEVEd2l0aFNURU1JLmN1cnJlbnRlbWVyZ2VuY3lEZXBhcnRtZW50QXJyaXZhbFRpbWUgKCApCiAgICAgIGFuZCBFRHdpdGhTVEVNSS5ob3NwaXRhbGl6YXRpb24uZGlzY2hhcmdlRGlzcG9zaXRpb24gaW4gIkRpc2NoYXJnZSBUbyBBY3V0ZSBDYXJlIEZhY2lsaXR5IgoKZGVmaW5lICJFRCBFbmNvdW50ZXIgRHVyaW5nIE1QIjoKICBbIkVuY291bnRlciI6IGNsYXNzIH4gIkVNRVIiXSBFREVuY291bnRlcgogICAgd2hlcmUgRURFbmNvdW50ZXIudHlwZSBpbiAiRW1lcmdlbmN5IERlcGFydG1lbnQgRXZhbHVhdGlvbiBhbmQgTWFuYWdlbWVudCBWaXNpdCIKICAgICAgYW5kIEVERW5jb3VudGVyLnBlcmlvZCBlbmRzIGR1cmluZyBkYXkgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIKICAgICAgYW5kIEVERW5jb3VudGVyLnN0YXR1cyA9ICdmaW5pc2hlZCcKICAgICAgYW5kIEFnZUluWWVhcnNBdChkYXRlIGZyb20gc3RhcnQgb2YoRURFbmNvdW50ZXIucGVyaW9kKSkgPj0gMTgKCmRlZmluZSAiRUQgRW5jb3VudGVyIHdpdGggU1RFTUkgRGlhZ25vc2lzIjoKICAiRUQgRW5jb3VudGVyIER1cmluZyBNUCIgRURFbmNvdW50ZXJpbk1QCiAgICB3aGVyZSAoIEVERW5jb3VudGVyaW5NUC5yZWFzb25Db2RlIGluICJTVEVNSSIKICAgICAgICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAgICAgICAvLyBPcmlnaW5hbDoKICAgICAgICAvLyBvciBleGlzdHMgKCAoICggW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJTVEVNSSJdCiAgICAgICAgLy8gICAgICAgdW5pb24gW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIlNURU1JIl0KICAgICAgICBvciBleGlzdHMgKCAoICggW0NvbmRpdGlvbjogIlNURU1JIl0KICAgICAgICAgICkudmVyaWZpZWQgKCApICkgRHhTVEVNSQogICAgICAgICAgICB3aGVyZSAoIEVERW5jb3VudGVyaW5NUC5lbmNvdW50ZXJEaWFnbm9zaXMgKCApLmNvZGUgaW4gIlNURU1JIgogICAgICAgICAgICAgICAgb3IgKCBEeFNURU1JLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgc3RhcnRzIGR1cmluZyBFREVuY291bnRlcmluTVAucGVyaW9kICkKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKCmRlZmluZSAiRUQgRW5jb3VudGVyIHdpdGggRGlzY2hhcmdlIERpc3Bvc2l0aW9uIGFzIFBhdGllbnQgRXhwaXJlZCI6CiAgIkVEIEVuY291bnRlciB3aXRoIFNURU1JIERpYWdub3NpcyIgRUR3aXRoU1RFTUkKICAgIHdoZXJlIEVEd2l0aFNURU1JLmhvc3BpdGFsaXphdGlvbi5kaXNjaGFyZ2VEaXNwb3NpdGlvbiBpbiAiUGF0aWVudCBFeHBpcmVkIgoKZGVmaW5lICJFRCBFbmNvdW50ZXIgd2l0aCBEaXNjaGFyZ2UgRGlzcG9zaXRpb24gYXMgTGVmdCBBZ2FpbnN0IE1lZGljYWwgQWR2aWNlIjoKICAiRUQgRW5jb3VudGVyIHdpdGggU1RFTUkgRGlhZ25vc2lzIiBFRHdTVEVNSQogICAgd2hlcmUgRUR3U1RFTUkuaG9zcGl0YWxpemF0aW9uLmRpc2NoYXJnZURpc3Bvc2l0aW9uIGluICJMZWZ0IEFnYWluc3QgTWVkaWNhbCBBZHZpY2UiCgpkZWZpbmUgIkVEIEVuY291bnRlciB3aXRoIEhvc3BpY2UgU2VydmljZXMiOgogIGZyb20KICAgICJFRCBFbmNvdW50ZXIgd2l0aCBTVEVNSSBEaWFnbm9zaXMiIEVEd1NURU1JCiAgICBsZXQgU2l4TW9udGhzQmVmb3JlVG9FbmRPZlNURU1JOiBJbnRlcnZhbFtzdGFydCBvZiAoIEVEd1NURU1JLnBlcmlvZCApIC0gNiBtb250aHMsIGVuZCBvZiAoIEVEd1NURU1JLnBlcmlvZCApXQogICAgd2hlcmUgKCBleGlzdHMgKCAoICggW0VuY291bnRlcjogIkVuY291bnRlciBJbnBhdGllbnQiXSApLmlzRW5jb3VudGVyUGVyZm9ybWVkICggKSApIElucGF0aWVudEVuY291bnRlcgogICAgICAgICAgd2hlcmUgKCBJbnBhdGllbnRFbmNvdW50ZXIuaG9zcGl0YWxpemF0aW9uLmRpc2NoYXJnZURpc3Bvc2l0aW9uIH4gIkRpc2NoYXJnZSB0byBob21lIGZvciBob3NwaWNlIGNhcmUgKHByb2NlZHVyZSkiCiAgICAgICAgICAgICAgb3IgSW5wYXRpZW50RW5jb3VudGVyLmhvc3BpdGFsaXphdGlvbi5kaXNjaGFyZ2VEaXNwb3NpdGlvbiB+ICJEaXNjaGFyZ2UgdG8gaGVhbHRoY2FyZSBmYWNpbGl0eSBmb3IgaG9zcGljZSBjYXJlIChwcm9jZWR1cmUpIgogICAgICAgICAgKQogICAgICAgICAgICBhbmQgSW5wYXRpZW50RW5jb3VudGVyLnBlcmlvZCBzdGFydHMgYmVmb3JlIG9yIG9uIHN0YXJ0IG9mICggRUR3U1RFTUkucGVyaW9kICkKICAgICAgICAgICAgYW5kIElucGF0aWVudEVuY291bnRlci5wZXJpb2Qgb3ZlcmxhcHMgZGF5IG9mIFNpeE1vbnRoc0JlZm9yZVRvRW5kT2ZTVEVNSQogICAgICApCiAgICAgICAgb3IgZXhpc3RzICggKCAoIFtFbmNvdW50ZXI6ICJIb3NwaWNlIEVuY291bnRlciJdICkuaXNFbmNvdW50ZXJQZXJmb3JtZWQgKCApICkgSG9zcGljZUVuY291bnRlcgogICAgICAgICAgICB3aGVyZSBIb3NwaWNlRW5jb3VudGVyLnBlcmlvZCBzdGFydHMgYmVmb3JlIG9yIG9uIHN0YXJ0IG9mICggRUR3U1RFTUkucGVyaW9kICkKICAgICAgICAgICAgICBhbmQgKCBIb3NwaWNlRW5jb3VudGVyLnBlcmlvZCBvdmVybGFwcyBkYXkgb2YgU2l4TW9udGhzQmVmb3JlVG9FbmRPZlNURU1JICkKICAgICAgICApCiAgICAgICAgb3IgZXhpc3RzICggKCAoIFtPYnNlcnZhdGlvblNjcmVlbmluZ0Fzc2Vzc21lbnQ6ICJIb3NwaWNlIGNhcmUgW01pbmltdW0gRGF0YSBTZXRdIl0gKS5pc0Fzc2Vzc21lbnRQZXJmb3JtZWQgKCApICkgSG9zcGljZUFzc2Vzc21lbnQKICAgICAgICAgICAgd2hlcmUgKCBIb3NwaWNlQXNzZXNzbWVudCBhcyBPYnNlcnZhdGlvblNjcmVlbmluZ0Fzc2Vzc21lbnQgKS52YWx1ZSB+ICJZZXMgKHF1YWxpZmllciB2YWx1ZSkiCiAgICAgICAgICAgICAgYW5kIEhvc3BpY2VBc3Nlc3NtZW50LmVmZmVjdGl2ZS50b0ludGVydmFsICggKSBzdGFydHMgYmVmb3JlIG9yIG9uIHN0YXJ0IG9mICggRUR3U1RFTUkucGVyaW9kICkKICAgICAgICAgICAgICBhbmQgKCBIb3NwaWNlQXNzZXNzbWVudC5lZmZlY3RpdmUudG9JbnRlcnZhbCAoICkgb3ZlcmxhcHMgZGF5IG9mIFNpeE1vbnRoc0JlZm9yZVRvRW5kT2ZTVEVNSSApCiAgICAgICAgKQogICAgICAgIG9yIGV4aXN0cyAoICggKCBbU2VydmljZVJlcXVlc3Q6ICJIb3NwaWNlIENhcmUgQW1idWxhdG9yeSJdICkuaXNJbnRlcnZlbnRpb25PcmRlciAoICkgKSBIb3NwaWNlT3JkZXIKICAgICAgICAgICAgd2hlcmUgSG9zcGljZU9yZGVyLmF1dGhvcmVkT24gNiBtb250aHMgb3IgbGVzcyBiZWZvcmUgc3RhcnQgb2YgKCBFRHdTVEVNSS5wZXJpb2QgKQogICAgICAgICkKICAgICAgICBvciBleGlzdHMgKCAoICggW1Byb2NlZHVyZTogIkhvc3BpY2UgQ2FyZSBBbWJ1bGF0b3J5Il0gKS5pc0ludGVydmVudGlvblBlcmZvcm1lZCAoICkgKSBIb3NwaWNlUGVyZm9ybWVkCiAgICAgICAgICAgIHdoZXJlIEhvc3BpY2VQZXJmb3JtZWQucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApIHN0YXJ0cyBiZWZvcmUgb3Igb24gc3RhcnQgb2YgKCBFRHdTVEVNSS5wZXJpb2QgKQogICAgICAgICAgICAgIGFuZCAoIEhvc3BpY2VQZXJmb3JtZWQucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApIG92ZXJsYXBzIGRheSBvZiBTaXhNb250aHNCZWZvcmVUb0VuZE9mU1RFTUkgKQogICAgICAgICkKICAgICAgICBvciBleGlzdHMgKCAoICggW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJIb3NwaWNlIERpYWdub3NpcyJdICkudmVyaWZpZWQgKCApICkgSG9zcGljZUNhcmVEaWFnbm9zaXMKICAgICAgICAgICAgd2hlcmUgSG9zcGljZUNhcmVEaWFnbm9zaXMucHJldmFsZW5jZUludGVydmFsICggKSBlbmRzIG9uIG9yIGFmdGVyIHN0YXJ0IG9mICggRUR3U1RFTUkucGVyaW9kICkKICAgICAgICApCiAgICApCgpkZWZpbmUgIkV4Y2x1c2lvbiBEaWFnbm9zaXMgRHVyaW5nIEVEIEVuY291bnRlciBvciBXaXRoaW4gMjQgSG91cnMgb2YgRUQgRW5jb3VudGVyIFN0YXJ0IjoKICAiRUQgRW5jb3VudGVyIHdpdGggU1RFTUkgRGlhZ25vc2lzIiBFRHdpdGhTVEVNSQogICAgd2l0aCAoICggWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIkFvcnRpYyBEaXNzZWN0aW9uIG9yIFJ1cHR1cmVkIEFvcnRpYyBBbmV1cnlzbSJdCiAgICAgICAgdW5pb24gWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIk5ldXJvbG9naWMgaW1wYWlybWVudCJdCiAgICAgICAgdW5pb24gWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIkFuZ2luYSBwZWN0b3JpcyB3aXRoIGRvY3VtZW50ZWQgc3Bhc20iXQogICAgICAgIHVuaW9uIFsiQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucyI6ICJWZW50cmljdWxhciBhbmV1cnlzbSBkdWUgdG8gYW5kIGZvbGxvd2luZyBhY3V0ZSBteW9jYXJkaWFsIGluZmFyY3Rpb24gKGRpc29yZGVyKSJdCiAgICAgICAgdW5pb24gWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIkFuZXVyeXNtIG9mIGhlYXJ0Il0KICAgICAgICB1bmlvbiBbIkNvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnMiOiAiVGFrb3RzdWJvIGNhcmRpb215b3BhdGh5IChkaXNvcmRlcikiXQogICAgICAgIHVuaW9uIFsiQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucyI6ICJUYWtvdHN1Ym8gc3luZHJvbWUiXQogICAgICAgIHVuaW9uIFsiQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucyI6ICJDYXJkaW9wdWxtb25hcnkgRW1lcmdlbmN5Il0KICAgICkudmVyaWZpZWQgKCApICkgRXhjbHVzaW9uRGlhZ25vc2lzCiAgICAgIHN1Y2ggdGhhdCAoICggRXhjbHVzaW9uRGlhZ25vc2lzLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgc3RhcnRzIGR1cmluZyBFRHdpdGhTVEVNSS5wZXJpb2QgKQogICAgICAgICAgb3IgKCBFeGNsdXNpb25EaWFnbm9zaXMucHJldmFsZW5jZUludGVydmFsICggKSBzdGFydHMgMjQgaG91cnMgb3IgbGVzcyBiZWZvcmUgc3RhcnQgb2YgRUR3aXRoU1RFTUkucGVyaW9kICkKICAgICAgKQoKZGVmaW5lICJSZWNlaXZlZCB0UEEgaW4gQW5vdGhlciBGYWNpbGl0eSB3aXRoaW4gMjQgaG91cnMgUHJpb3IgdG8gQWRtaXNzaW9uIjoKICAiRUQgRW5jb3VudGVyIHdpdGggU1RFTUkgRGlhZ25vc2lzIiBFRHdpdGhTVEVNSQogICAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgICAvLyBPcmlnaW5hbDoKICAgIC8vIHdpdGggKCAoIFsiQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucyI6ICJTdGF0dXMgcG9zdCBhZG1pbmlzdHJhdGlvbiBvZiB0UEEgKHJ0UEEpIGluIGEgZGlmZmVyZW50IGZhY2lsaXR5IHdpdGhpbiB0aGUgbGFzdCAyNCBob3VycyBwcmlvciB0byBhZG1pc3Npb24gdG8gY3VycmVudCBmYWNpbGl0eSJdCiAgICAvLyAgICAgdW5pb24gWyJDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXMiOiAiU3RhdHVzIHBvc3QgYWRtaW5pc3RyYXRpb24gb2YgdFBBIChydFBBKSBpbiBhIGRpZmZlcmVudCBmYWNpbGl0eSB3aXRoaW4gdGhlIGxhc3QgMjQgaG91cnMgcHJpb3IgdG8gYWRtaXNzaW9uIHRvIGN1cnJlbnQgZmFjaWxpdHkiXQogICAgd2l0aCAoICggW0NvbmRpdGlvbjogIlN0YXR1cyBwb3N0IGFkbWluaXN0cmF0aW9uIG9mIHRQQSAocnRQQSkgaW4gYSBkaWZmZXJlbnQgZmFjaWxpdHkgd2l0aGluIHRoZSBsYXN0IDI0IGhvdXJzIHByaW9yIHRvIGFkbWlzc2lvbiB0byBjdXJyZW50IGZhY2lsaXR5Il0KICAgICkudmVyaWZpZWQgKCApICkgVFBBCiAgICAgIHN1Y2ggdGhhdCBUUEEucHJldmFsZW5jZUludGVydmFsICggKSBzdGFydHMgZHVyaW5nIEVEd2l0aFNURU1JLnBlcmlvZAoKZGVmaW5lICJFRCBFbmNvdW50ZXIgd2l0aCBhIERvY3VtZW50ZWQgUmVhc29uIGZvciBObyBQQ0kgUGVyZm9ybWVkIjoKICAiRUQgRW5jb3VudGVyIHdpdGggU1RFTUkgRGlhZ25vc2lzIiBFRHdTVEVNSQogICAgd2l0aCBbIlByb2NlZHVyZU5vdERvbmUiOiAiUGVyY3V0YW5lb3VzIENvcm9uYXJ5IEludGVydmVudGlvbiJdIFBDSU5vdERvbmUKICAgICAgc3VjaCB0aGF0ICggUENJTm90RG9uZS5zdGF0dXNSZWFzb24gaW4gIlBhdGllbnQgUmVmdXNhbCIKICAgICAgICAgIG9yIFBDSU5vdERvbmUuc3RhdHVzUmVhc29uIGluICJQcm9jZWR1cmUgTm90IEluZGljYXRlZC9Db250cmFpbmRpY2F0ZWQiCiAgICAgICkKICAgICAgICBhbmQgUENJTm90RG9uZS5wZXJmb3JtZWQgZHVyaW5nIEVEd1NURU1JLnBlcmlvZAoKZGVmaW5lICJFRCBFbmNvdW50ZXIgd2l0aCBhIERvY3VtZW50ZWQgUmVhc29uIGZvciBOb3QgQWRtaW5pc3RlcmluZyBGaWJyaW5vbHl0aWMgVGhlcmFweSI6CiAgIkVEIEVuY291bnRlciB3aXRoIFNURU1JIERpYWdub3NpcyIgRUR3U1RFTUkKICAgIHdpdGggWyJNZWRpY2F0aW9uQWRtaW5pc3RyYXRpb25Ob3REb25lIjogIkZpYnJpbm9seXRpYyBUaGVyYXB5Il0gRmlicmlub2x5dGljTm9NZWQKICAgICAgc3VjaCB0aGF0ICggRmlicmlub2x5dGljTm9NZWQuc3RhdHVzUmVhc29uIGluICJQYXRpZW50IFJlZnVzYWwiCiAgICAgICAgICBvciBGaWJyaW5vbHl0aWNOb01lZC5zdGF0dXNSZWFzb24gaW4gIkRydWcgSW50ZXJ2ZW50aW9uIE5vdCBJbmRpY2F0ZWQvQ29udHJhaW5kaWNhdGVkIgogICAgICApCiAgICAgICAgYW5kIEZpYnJpbm9seXRpY05vTWVkLmVmZmVjdGl2ZSBkdXJpbmcgRUR3U1RFTUkucGVyaW9kCgpkZWZpbmUgIkZpYnJpbm9seXRpYyBUaGVyYXB5IEFkbWluaXN0cmF0aW9uIHdpdGhpbiAzMCBNaW51dGVzIG9mIEFycml2YWwiOgogICJFRCBFbmNvdW50ZXIgd2l0aCBTVEVNSSBEaWFnbm9zaXMiIEVEd2l0aFNURU1JCiAgICB3aXRoIFsiTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uIjogIkZpYnJpbm9seXRpYyBUaGVyYXB5Il0gRmlicmlub2x5dGljCiAgICAgIHN1Y2ggdGhhdCBGaWJyaW5vbHl0aWMuc3RhdHVzID0gJ2NvbXBsZXRlZCcKICAgICAgICBhbmQgc3RhcnQgb2YgKCBGaWJyaW5vbHl0aWMuZWZmZWN0aXZlLnRvSW50ZXJ2YWwgKCApICkgMzAgbWludXRlcyBvciBsZXNzIGFmdGVyIEVEd2l0aFNURU1JLmN1cnJlbnRlbWVyZ2VuY3lEZXBhcnRtZW50QXJyaXZhbFRpbWUgKCApCgpkZWZpbmUgIkludHJhY3JhbmlhbCBvciBJbnRyYXNwaW5hbCBQcm9jZWR1cmUgOTAgRGF5cyBvciBMZXNzIEJlZm9yZSBTdGFydCBvZiBFRCBFbmNvdW50ZXIiOgogICJFRCBFbmNvdW50ZXIgd2l0aCBTVEVNSSBEaWFnbm9zaXMiIEVEd2l0aFNURU1JCiAgICB3aXRoIFsiUHJvY2VkdXJlIjogIkludHJhY3JhbmlhbCBvciBJbnRyYXNwaW5hbCBzdXJnZXJ5Il0gQ3JhbmlhbG9yU3BpbmFsU3VyZ2VyeQogICAgICBzdWNoIHRoYXQgQ3JhbmlhbG9yU3BpbmFsU3VyZ2VyeS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgc3RhcnRzIDkwIGRheXMgb3IgbGVzcyBiZWZvcmUgc3RhcnQgb2YgKCBFRHdpdGhTVEVNSS5wZXJpb2QgKQogICAgICAgIGFuZCBDcmFuaWFsb3JTcGluYWxTdXJnZXJ5LnN0YXR1cyA9ICdjb21wbGV0ZWQnCgpkZWZpbmUgIkludHViYXRpb24gb3IgTWVjaGFuaWNhbCBDaXJjdWxhdG9yeSBBc3Npc3QgRGV2aWNlIFBsYWNlbWVudCBvciBSZW1vdmFsIFByb2NlZHVyZSBEdXJpbmcgRUQgRW5jb3VudGVyIG9yIFdpdGhpbiAyNCBIb3VycyBvZiBFRCBFbmNvdW50ZXIgU3RhcnQiOgogICJFRCBFbmNvdW50ZXIgd2l0aCBTVEVNSSBEaWFnbm9zaXMiIEVEd2l0aFNURU1JCiAgICB3aXRoICggWyJQcm9jZWR1cmUiOiAiRW5kb3RyYWNoZWFsIEludHViYXRpb24iXQogICAgICB1bmlvbiBbIlByb2NlZHVyZSI6ICJNZWNoYW5pY2FsIENpcmN1bGF0b3J5IEFzc2lzdCBEZXZpY2UiXSApIEFpcndheVByb2NlZHVyZQogICAgICBzdWNoIHRoYXQgKCAoIEFpcndheVByb2NlZHVyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgc3RhcnRzIGR1cmluZyAoIEVEd2l0aFNURU1JLnBlcmlvZCApICkKICAgICAgICAgIG9yICggQWlyd2F5UHJvY2VkdXJlLnBlcmZvcm1lZC50b0ludGVydmFsICggKSBzdGFydHMgMjQgaG91cnMgb3IgbGVzcyBiZWZvcmUgc3RhcnQgb2YgKCBFRHdpdGhTVEVNSS5wZXJpb2QgKSApCiAgICAgICkKICAgICAgICBhbmQgQWlyd2F5UHJvY2VkdXJlLnN0YXR1cyA9ICdjb21wbGV0ZWQnCgpkZWZpbmUgIk1ham9yIFN1cmdpY2FsIFByb2NlZHVyZSAyMSBEYXlzIG9yIExlc3MgQmVmb3JlIFN0YXJ0IG9mIG9yIFN0YXJ0cyBEdXJpbmcgRUQgRW5jb3VudGVyIjoKICAiRUQgRW5jb3VudGVyIHdpdGggU1RFTUkgRGlhZ25vc2lzIiBFRHdpdGhTVEVNSQogICAgd2l0aCBbIlByb2NlZHVyZSI6ICJNYWpvciBTdXJnaWNhbCBQcm9jZWR1cmUiXSBNYWpvclN1cmdlcnkKICAgICAgc3VjaCB0aGF0ICggTWFqb3JTdXJnZXJ5LnBlcmZvcm1lZC50b0ludGVydmFsICggKSBzdGFydHMgMjEgZGF5cyBvciBsZXNzIGJlZm9yZSBzdGFydCBvZiBFRHdpdGhTVEVNSS5wZXJpb2QKICAgICAgICAgIG9yIE1ham9yU3VyZ2VyeS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgc3RhcnRzIGR1cmluZyBFRHdpdGhTVEVNSS5wZXJpb2QKICAgICAgKQogICAgICAgIGFuZCBNYWpvclN1cmdlcnkuc3RhdHVzID0gJ2NvbXBsZXRlZCcKCmRlZmluZSAiUENJIHdpdGhpbiA5MCBNaW51dGVzIG9mIEFycml2YWwiOgogICJFRCBFbmNvdW50ZXIgd2l0aCBTVEVNSSBEaWFnbm9zaXMiIEVEd2l0aFNURU1JCiAgICB3aXRoIFsiUHJvY2VkdXJlIjogIlBlcmN1dGFuZW91cyBDb3JvbmFyeSBJbnRlcnZlbnRpb24iXSBQQ0kKICAgICAgc3VjaCB0aGF0IFBDSS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgc3RhcnRzIDkwIG1pbnV0ZXMgb3IgbGVzcyBhZnRlciBFRHdpdGhTVEVNSS5jdXJyZW50ZW1lcmdlbmN5RGVwYXJ0bWVudEFycml2YWxUaW1lICggKQogICAgICAgIGFuZCBQQ0kuc3RhdHVzID0gJ2NvbXBsZXRlZCcKCmRlZmluZSAiU0RFIEV0aG5pY2l0eSI6CiAgU0RFLiJTREUgRXRobmljaXR5IgoKZGVmaW5lICJTREUgUGF5ZXIiOgogIFNERS4iU0RFIFBheWVyIgoKZGVmaW5lICJTREUgUmFjZSI6CiAgU0RFLiJTREUgUmFjZSIKCmRlZmluZSAiU0RFIFNleCI6CiAgU0RFLiJTREUgU2V4IgoKZGVmaW5lIGZsdWVudCBmdW5jdGlvbiBjdXJyZW50ZW1lcmdlbmN5RGVwYXJ0bWVudEFycml2YWxUaW1lKEVERW5jb3VudGVyIEVuY291bnRlcik6CiAgRmlyc3QoRURFbmNvdW50ZXIubG9jYXRpb24gRURMb2NhdGlvbgogICAgICB3aGVyZSBleGlzdHMoKEVETG9jYXRpb24ubG9jYXRpb24uZ2V0TG9jYXRpb24oKS50eXBlKSBMb2NhdGlvblR5cGUKICAgICAgICAgIHdoZXJlKExvY2F0aW9uVHlwZSBpbiAiRW1lcmdlbmN5IERlcGFydG1lbnQgVmlzaXQiCiAgICAgICAgICAgICAgb3IgTG9jYXRpb25UeXBlIH4gIkVtZXJnZW5jeSByb29tIgogICAgICAgICAgICAgIG9yIExvY2F0aW9uVHlwZSB+ICJFbWVyZ2VuY3kgdHJhdW1hIHVuaXQiCiAgICAgICAgICApCiAgICAgICAgICAgIGFuZCBzdGFydCBvZiBFRExvY2F0aW9uLnBlcmlvZCBpcyBub3QgbnVsbAogICAgICApCiAgICAgIHJldHVybiBzdGFydCBvZiBFRExvY2F0aW9uLnBlcmlvZAogICAgICBzb3J0IGFzY2VuZGluZwogICkKCmRlZmluZSBmbHVlbnQgZnVuY3Rpb24gY3VycmVudGVtZXJnZW5jeURlcGFydG1lbnREZXBhcnRUaW1lKEVERW5jb3VudGVyIEVuY291bnRlcik6CiAgTGFzdChFREVuY291bnRlci5sb2NhdGlvbiBFRExvY2F0aW9uCiAgICAgIHdoZXJlIGV4aXN0cygoRURMb2NhdGlvbi5sb2NhdGlvbi5nZXRMb2NhdGlvbigpLnR5cGUpIExvY2F0aW9uVHlwZQogICAgICAgICAgd2hlcmUoTG9jYXRpb25UeXBlIGluICJFbWVyZ2VuY3kgRGVwYXJ0bWVudCBWaXNpdCIKICAgICAgICAgICAgICBvciBMb2NhdGlvblR5cGUgfiAiRW1lcmdlbmN5IHJvb20iCiAgICAgICAgICAgICAgb3IgTG9jYXRpb25UeXBlIH4gIkVtZXJnZW5jeSB0cmF1bWEgdW5pdCIKICAgICAgICAgICkKICAgICAgICAgICAgYW5kIAogICAgICAgICAgICBlbmQgb2YgRURMb2NhdGlvbi5wZXJpb2QgaXMgbm90IG51bGwKICAgICAgKQogICAgICByZXR1cm4gCiAgICAgIGVuZCBvZiBFRExvY2F0aW9uLnBlcmlvZAogICAgICBzb3J0IGFzY2VuZGluZwogICk="/>
<url value="https://madie.cms.gov/Library-CMS996FHIRAptTxforSTEMI.cql"/>
</content>
</Library>