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

: CMS996FHIRAptTxforSTEMI - XML Representation

Draft as of 2026-09-19

Raw xml | Download


<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 &quot;LOINC&quot;: 'http://loinc.org'
codesystem &quot;HSLOC&quot;: 'https://www.cdc.gov/nhsn/cdaportal/terminology/codesystem/hsloc.html'
codesystem &quot;SNOMEDCT&quot;: 'http://snomed.info/sct'
codesystem &quot;ActCode&quot;: 'http://terminology.hl7.org/CodeSystem/v3-ActCode'
codesystem &quot;ICD10CM&quot;: 'http://hl7.org/fhir/sid/icd-10-cm'
codesystem &quot;RoleCode&quot;: 'http://terminology.hl7.org/CodeSystem/v3-RoleCode'

valueset &quot;Active Bleeding or Bleeding Diathesis, Excluding Menses&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4036'
valueset &quot;Active Peptic Ulcer&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4031'
valueset &quot;Thrombolytics Adverse Event&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1170.6'
valueset &quot;Allergy to thrombolytics&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1170.5'
valueset &quot;Oral Anticoagulant Medications&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4045'
valueset &quot;Aortic Dissection or Ruptured Aortic Aneurysm&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4028'
valueset &quot;Cardiopulmonary Emergency&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4048'
valueset &quot;Cerebral Vascular Lesion&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4025'
valueset &quot;Closed Head and Facial Trauma&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4026'
valueset &quot;Dementia and Related Intracranial Pathologies&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4043'
valueset &quot;Discharge To Acute Care Facility&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87'
valueset &quot;Emergency Department Evaluation and Management Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1010'
valueset &quot;Emergency Department Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292'
valueset &quot;Endotracheal Intubation&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.69'
valueset &quot;Fibrinolytic Therapy&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4019'
valueset &quot;Intracranial or Intraspinal surgery&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1170.2'
valueset &quot;Ischemic Stroke&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.247'
valueset &quot;Major Surgical Procedure&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4056'
valueset &quot;Malignant Intracranial Neoplasm Group&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1170.3'
valueset &quot;Mechanical Circulatory Assist Device&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4052'
valueset &quot;Neurologic impairment&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.114.12.1012'
valueset &quot;Patient Expired&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.309'
valueset &quot;Percutaneous Coronary Intervention&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.2000.5'
valueset &quot;Pregnant State&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4055'
valueset &quot;STEMI&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3157.4017'
valueset &quot;Thrombolytic medications&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1170.4'
valueset &quot;Encounter Inpatient&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307'
valueset &quot;Hospice Care Ambulatory&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1584'
valueset &quot;Hospice Diagnosis&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165'
valueset &quot;Hospice Encounter&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1003'
valueset &quot;Patient Refusal&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.93'
valueset &quot;Left Against Medical Advice&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.308'
valueset &quot;Drug Intervention Not Indicated/Contraindicated&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1282.1'
valueset &quot;Procedure Not Indicated/Contraindicated&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1282.2'

code &quot;EMER&quot;: 'EMER' from &quot;ActCode&quot; display 'emergency'
code &quot;Status post administration of tPA (rtPA) in a different facility within the last 24 hours prior to admission to current facility&quot;: 'Z92.82' from &quot;ICD10CM&quot; display 'Status post administration of tPA (rtPA) in a different facility within the last 24 hours prior to admission to current facility'
code &quot;Angina pectoris with documented spasm&quot;: 'I20.1' from &quot;ICD10CM&quot; display 'Angina pectoris with documented spasm'
code &quot;Long term (current) use of anticoagulants&quot;: 'Z79.01' from &quot;ICD10CM&quot; display 'Long term (current) use of anticoagulants'
code &quot;Takotsubo cardiomyopathy (disorder)&quot;: '441541008' from &quot;SNOMEDCT&quot; display 'Takotsubo cardiomyopathy (disorder)'
code &quot;Takotsubo syndrome&quot;: 'I51.81' from &quot;ICD10CM&quot; display 'Takotsubo syndrome'
code &quot;Ventricular aneurysm due to and following acute myocardial infarction (disorder)&quot;: '723858002' from &quot;SNOMEDCT&quot; display 'Ventricular aneurysm due to and following acute myocardial infarction (disorder)'
code &quot;Aneurysm of heart&quot;: 'I25.3' from &quot;ICD10CM&quot; display 'Aneurysm of heart'
code &quot;Discharge to healthcare facility for hospice care (procedure)&quot;: '428371000124100' from &quot;SNOMEDCT&quot; display 'Discharge to healthcare facility for hospice care (procedure)'
code &quot;Discharge to home for hospice care (procedure)&quot;: '428361000124107' from &quot;SNOMEDCT&quot; display 'Discharge to home for hospice care (procedure)'
code &quot;Hospice care [Minimum Data Set]&quot;: '45755-6' from &quot;LOINC&quot; display 'Hospice care [Minimum Data Set]'
code &quot;Yes (qualifier value)&quot;: '373066001' from &quot;SNOMEDCT&quot; display 'Yes (qualifier value)'
code &quot;Emergency room&quot;: 'ER' from &quot;RoleCode&quot; display 'Emergency room'
code &quot;Emergency trauma unit&quot;: 'ETU' from &quot;RoleCode&quot; display 'Emergency trauma unit'

parameter &quot;Measurement Period&quot; Interval&lt;DateTime&gt;
  default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)

context Patient

define &quot;Initial Population&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot;

define &quot;Denominator&quot;:
  &quot;Initial Population&quot;

define &quot;Denominator Exclusions&quot;:
  &quot;Allergy or Intolerance to Thrombolytic Medications Overlaps ED Encounter&quot;
    union &quot;Adverse Effect to Thrombolytic Medications Before End of ED Encounter&quot;
    union &quot;Active Exclusion Diagnosis at Start of ED Encounter&quot;
    union &quot;Active use of Anticoagulants&quot;
    union &quot;Exclusion Diagnosis During ED Encounter or Within 24 Hours of ED Encounter Start&quot;
    union &quot;Major Surgical Procedure 21 Days or Less Before Start of or Starts During ED Encounter&quot;
    union &quot;Intubation or Mechanical Circulatory Assist Device Placement or Removal Procedure During ED Encounter or Within 24 Hours of ED Encounter Start&quot;
    union &quot;Active Exclusion Diagnosis Within 90 Days Before or At the Start of ED Encounter&quot;
    union &quot;Intracranial or Intraspinal Procedure 90 Days or Less Before Start of ED Encounter&quot;
    union &quot;ED Encounter with Discharge Disposition as Patient Expired&quot;
    union &quot;ED Encounter with Discharge Disposition as Left Against Medical Advice&quot;
    union &quot;ED Encounter with Hospice Services&quot;
    union &quot;Currently Pregnant&quot;

define &quot;Denominator Exceptions&quot;:
  &quot;Received tPA in Another Facility within 24 hours Prior to Admission&quot;
    union &quot;ED Encounter with a Documented Reason for No PCI Performed&quot;
    union &quot;ED Encounter with a Documented Reason for Not Administering Fibrinolytic Therapy&quot;

define &quot;Numerator&quot;:
  &quot;Fibrinolytic Therapy Administration within 30 Minutes of Arrival&quot;
    union &quot;PCI within 90 Minutes of Arrival&quot;
    union &quot;ED Departure with Discharge to Acute Care Facility Within 45 Minutes Of Arrival&quot;

define &quot;Active Exclusion Diagnosis at Start of ED Encounter&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    with ( ( [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Active Bleeding or Bleeding Diathesis, Excluding Menses&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Malignant Intracranial Neoplasm Group&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Cerebral Vascular Lesion&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Dementia and Related Intracranial Pathologies&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Pregnant State&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Allergy to thrombolytics&quot;]
    ).verified ( ) ) ActiveExclusionDx
      such that ActiveExclusionDx.prevalenceInterval ( ) overlaps before ( EDwithSTEMI.period )

define &quot;Currently Pregnant&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwSTEMI
    with ( [&quot;USCore.ObservationPregnancyStatusProfile&quot;] ) PregStatus
      such that PregStatus.status = 'final'
        and ( PregStatus.value in &quot;Pregnant State&quot; )
        and ( PregStatus.effective during EDwSTEMI.period )

define &quot;Active Exclusion Diagnosis Within 90 Days Before or At the Start of ED Encounter&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwSTEMI
    with ( ( [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Ischemic Stroke&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Closed Head and Facial Trauma&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Active Peptic Ulcer&quot;]
    ).verified ( ) ) ExclusionCondition
      such that ExclusionCondition.prevalenceInterval ( ) starts during Interval[start of ( EDwSTEMI.period ) - 90 days, start of ( EDwSTEMI.period )]

define &quot;Active Oral Anticoagulant Medication at the Start of ED Encounter&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    with [&quot;MedicationRequest&quot;: &quot;Oral Anticoagulant Medications&quot;] 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 &quot;Active Long Term use of Anticoagulants&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
    // Original:
    // with ( ( [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Long term (current) use of anticoagulants&quot;]
    //     union [&quot;ConditionEncounterDiagnosis&quot;: &quot;Long term (current) use of anticoagulants&quot;]
    with ( ( [Condition: &quot;Long term (current) use of anticoagulants&quot;] ).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 &quot;Active use of Anticoagulants&quot;:
  &quot;Active Oral Anticoagulant Medication at the Start of ED Encounter&quot;
    union &quot;Active Long Term use of Anticoagulants&quot;

define &quot;Adverse Effect to Thrombolytic Medications Before End of ED Encounter&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwSTEMI
    with [AdverseEvent: &quot;Thrombolytics Adverse Event&quot;] ThrombolyticAdverseEvent
      such that Coalesce(ThrombolyticAdverseEvent.date, ThrombolyticAdverseEvent.detected, ThrombolyticAdverseEvent.recordedDate) before end of ( EDwSTEMI.period )
        and ThrombolyticAdverseEvent.actuality = 'actual'

define &quot;Allergy or Intolerance to Thrombolytic Medications Overlaps ED Encounter&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwSTEMI
    with [&quot;AllergyIntolerance&quot;: &quot;Thrombolytic medications&quot;] ThrombolyticAllergy
      such that ThrombolyticAllergy.clinicalStatus ~ USQualityCoreCommon.&quot;allergy-active&quot;
        and ( ThrombolyticAllergy.verificationStatus is not null implies ( ThrombolyticAllergy.verificationStatus ~ USQualityCoreCommon.&quot;allergy-confirmed&quot;
              or ThrombolyticAllergy.verificationStatus ~ USQualityCoreCommon.&quot;allergy-unconfirmed&quot;
          )
        )
        and ( ThrombolyticAllergy.prevalenceInterval ( ) overlaps ( EDwSTEMI.period )
            or ThrombolyticAllergy.onset before end EDwSTEMI.period
        )

define &quot;ED Departure with Discharge to Acute Care Facility Within 45 Minutes Of Arrival&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    where EDwithSTEMI.currentemergencyDepartmentDepartTime ( ) 45 minutes or less after EDwithSTEMI.currentemergencyDepartmentArrivalTime ( )
      and EDwithSTEMI.hospitalization.dischargeDisposition in &quot;Discharge To Acute Care Facility&quot;

define &quot;ED Encounter During MP&quot;:
  [&quot;Encounter&quot;: class ~ &quot;EMER&quot;] EDEncounter
    where EDEncounter.type in &quot;Emergency Department Evaluation and Management Visit&quot;
      and EDEncounter.period ends during day of &quot;Measurement Period&quot;
      and EDEncounter.status = 'finished'
      and AgeInYearsAt(date from start of(EDEncounter.period)) &gt;= 18

define &quot;ED Encounter with STEMI Diagnosis&quot;:
  &quot;ED Encounter During MP&quot; EDEncounterinMP
    where ( EDEncounterinMP.reasonCode in &quot;STEMI&quot;
        // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
        // Original:
        // or exists ( ( ( [ConditionProblemsHealthConcerns: &quot;STEMI&quot;]
        //       union [ConditionEncounterDiagnosis: &quot;STEMI&quot;]
        or exists ( ( ( [Condition: &quot;STEMI&quot;]
          ).verified ( ) ) DxSTEMI
            where ( EDEncounterinMP.encounterDiagnosis ( ).code in &quot;STEMI&quot;
                or ( DxSTEMI.prevalenceInterval ( ) starts during EDEncounterinMP.period )
            )
        )
    )

define &quot;ED Encounter with Discharge Disposition as Patient Expired&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    where EDwithSTEMI.hospitalization.dischargeDisposition in &quot;Patient Expired&quot;

define &quot;ED Encounter with Discharge Disposition as Left Against Medical Advice&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwSTEMI
    where EDwSTEMI.hospitalization.dischargeDisposition in &quot;Left Against Medical Advice&quot;

define &quot;ED Encounter with Hospice Services&quot;:
  from
    &quot;ED Encounter with STEMI Diagnosis&quot; EDwSTEMI
    let SixMonthsBeforeToEndOfSTEMI: Interval[start of ( EDwSTEMI.period ) - 6 months, end of ( EDwSTEMI.period )]
    where ( exists ( ( ( [Encounter: &quot;Encounter Inpatient&quot;] ).isEncounterPerformed ( ) ) InpatientEncounter
          where ( InpatientEncounter.hospitalization.dischargeDisposition ~ &quot;Discharge to home for hospice care (procedure)&quot;
              or InpatientEncounter.hospitalization.dischargeDisposition ~ &quot;Discharge to healthcare facility for hospice care (procedure)&quot;
          )
            and InpatientEncounter.period starts before or on start of ( EDwSTEMI.period )
            and InpatientEncounter.period overlaps day of SixMonthsBeforeToEndOfSTEMI
      )
        or exists ( ( ( [Encounter: &quot;Hospice Encounter&quot;] ).isEncounterPerformed ( ) ) HospiceEncounter
            where HospiceEncounter.period starts before or on start of ( EDwSTEMI.period )
              and ( HospiceEncounter.period overlaps day of SixMonthsBeforeToEndOfSTEMI )
        )
        or exists ( ( ( [ObservationScreeningAssessment: &quot;Hospice care [Minimum Data Set]&quot;] ).isAssessmentPerformed ( ) ) HospiceAssessment
            where ( HospiceAssessment as ObservationScreeningAssessment ).value ~ &quot;Yes (qualifier value)&quot;
              and HospiceAssessment.effective.toInterval ( ) starts before or on start of ( EDwSTEMI.period )
              and ( HospiceAssessment.effective.toInterval ( ) overlaps day of SixMonthsBeforeToEndOfSTEMI )
        )
        or exists ( ( ( [ServiceRequest: &quot;Hospice Care Ambulatory&quot;] ).isInterventionOrder ( ) ) HospiceOrder
            where HospiceOrder.authoredOn 6 months or less before start of ( EDwSTEMI.period )
        )
        or exists ( ( ( [Procedure: &quot;Hospice Care Ambulatory&quot;] ).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: &quot;Hospice Diagnosis&quot;] ).verified ( ) ) HospiceCareDiagnosis
            where HospiceCareDiagnosis.prevalenceInterval ( ) ends on or after start of ( EDwSTEMI.period )
        )
    )

define &quot;Exclusion Diagnosis During ED Encounter or Within 24 Hours of ED Encounter Start&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    with ( ( [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Aortic Dissection or Ruptured Aortic Aneurysm&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Neurologic impairment&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Angina pectoris with documented spasm&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Ventricular aneurysm due to and following acute myocardial infarction (disorder)&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Aneurysm of heart&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Takotsubo cardiomyopathy (disorder)&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Takotsubo syndrome&quot;]
        union [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Cardiopulmonary Emergency&quot;]
    ).verified ( ) ) ExclusionDiagnosis
      such that ( ( ExclusionDiagnosis.prevalenceInterval ( ) starts during EDwithSTEMI.period )
          or ( ExclusionDiagnosis.prevalenceInterval ( ) starts 24 hours or less before start of EDwithSTEMI.period )
      )

define &quot;Received tPA in Another Facility within 24 hours Prior to Admission&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
    // Original:
    // with ( ( [&quot;ConditionProblemsHealthConcerns&quot;: &quot;Status post administration of tPA (rtPA) in a different facility within the last 24 hours prior to admission to current facility&quot;]
    //     union [&quot;ConditionEncounterDiagnosis&quot;: &quot;Status post administration of tPA (rtPA) in a different facility within the last 24 hours prior to admission to current facility&quot;]
    with ( ( [Condition: &quot;Status post administration of tPA (rtPA) in a different facility within the last 24 hours prior to admission to current facility&quot;]
    ).verified ( ) ) TPA
      such that TPA.prevalenceInterval ( ) starts during EDwithSTEMI.period

define &quot;ED Encounter with a Documented Reason for No PCI Performed&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwSTEMI
    with [&quot;ProcedureNotDone&quot;: &quot;Percutaneous Coronary Intervention&quot;] PCINotDone
      such that ( PCINotDone.statusReason in &quot;Patient Refusal&quot;
          or PCINotDone.statusReason in &quot;Procedure Not Indicated/Contraindicated&quot;
      )
        and PCINotDone.performed during EDwSTEMI.period

define &quot;ED Encounter with a Documented Reason for Not Administering Fibrinolytic Therapy&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwSTEMI
    with [&quot;MedicationAdministrationNotDone&quot;: &quot;Fibrinolytic Therapy&quot;] FibrinolyticNoMed
      such that ( FibrinolyticNoMed.statusReason in &quot;Patient Refusal&quot;
          or FibrinolyticNoMed.statusReason in &quot;Drug Intervention Not Indicated/Contraindicated&quot;
      )
        and FibrinolyticNoMed.effective during EDwSTEMI.period

define &quot;Fibrinolytic Therapy Administration within 30 Minutes of Arrival&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    with [&quot;MedicationAdministration&quot;: &quot;Fibrinolytic Therapy&quot;] Fibrinolytic
      such that Fibrinolytic.status = 'completed'
        and start of ( Fibrinolytic.effective.toInterval ( ) ) 30 minutes or less after EDwithSTEMI.currentemergencyDepartmentArrivalTime ( )

define &quot;Intracranial or Intraspinal Procedure 90 Days or Less Before Start of ED Encounter&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    with [&quot;Procedure&quot;: &quot;Intracranial or Intraspinal surgery&quot;] CranialorSpinalSurgery
      such that CranialorSpinalSurgery.performed.toInterval ( ) starts 90 days or less before start of ( EDwithSTEMI.period )
        and CranialorSpinalSurgery.status = 'completed'

define &quot;Intubation or Mechanical Circulatory Assist Device Placement or Removal Procedure During ED Encounter or Within 24 Hours of ED Encounter Start&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    with ( [&quot;Procedure&quot;: &quot;Endotracheal Intubation&quot;]
      union [&quot;Procedure&quot;: &quot;Mechanical Circulatory Assist Device&quot;] ) 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 &quot;Major Surgical Procedure 21 Days or Less Before Start of or Starts During ED Encounter&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    with [&quot;Procedure&quot;: &quot;Major Surgical Procedure&quot;] 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 &quot;PCI within 90 Minutes of Arrival&quot;:
  &quot;ED Encounter with STEMI Diagnosis&quot; EDwithSTEMI
    with [&quot;Procedure&quot;: &quot;Percutaneous Coronary Intervention&quot;] PCI
      such that PCI.performed.toInterval ( ) starts 90 minutes or less after EDwithSTEMI.currentemergencyDepartmentArrivalTime ( )
        and PCI.status = 'completed'

define &quot;SDE Ethnicity&quot;:
  SDE.&quot;SDE Ethnicity&quot;

define &quot;SDE Payer&quot;:
  SDE.&quot;SDE Payer&quot;

define &quot;SDE Race&quot;:
  SDE.&quot;SDE Race&quot;

define &quot;SDE Sex&quot;:
  SDE.&quot;SDE Sex&quot;

define fluent function currentemergencyDepartmentArrivalTime(EDEncounter Encounter):
  First(EDEncounter.location EDLocation
      where exists((EDLocation.location.getLocation().type) LocationType
          where(LocationType in &quot;Emergency Department Visit&quot;
              or LocationType ~ &quot;Emergency room&quot;
              or LocationType ~ &quot;Emergency trauma unit&quot;
          )
            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 &quot;Emergency Department Visit&quot;
              or LocationType ~ &quot;Emergency room&quot;
              or LocationType ~ &quot;Emergency trauma unit&quot;
          )
            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>