Common CQL Artifacts for FHIR (US-Based)
1.0.0-ballot - STU 1 Ballot United States of America flag

Common CQL Artifacts for FHIR (US-Based), published by HL7 International / Clinical Decision Support. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/us-cql-ig/ and changes regularly. See the Directory of published versions

: Expression Library for the Genetic/Molecular testing preauthorization Example - XML Representation

Page standards status: Informative Maturity Level: 3

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="GMTPInitialExpressions"/>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
<div>
    <table class="grid dict">
        
        
        <tr>
            <th scope="row"><b>Title: </b></th>
            <td style="padding-left: 4px;">Expression Library for the Genetic/Molecular testing preauthorization Example</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">GMTPInitialExpressions</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Version: </b></th>
            <td style="padding-left: 4px;">1.0.0-ballot</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="Library-GMTPInitialExpressions.html">Expression Library for the Genetic/Molecular testing preauthorization Example</a></td>
        </tr>
        

        

        

        
        <tr>
            <th scope="row"><b>Status: </b></th>
            <td style="padding-left: 4px;">draft</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Experimental: </b></th>
            <td style="padding-left: 4px;">true</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Type: </b></th>
            <td style="padding-left: 4px;">
                
                    
                        
                        <p style="margin-bottom: 5px;">
                            <b>system: </b> <span><a href="http://terminology.hl7.org/6.5.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a></span>
                        </p>
                        
                        
                        <p style="margin-bottom: 5px;">
                            <b>code: </b> <span>logic-library</span>
                        </p>
                        
                        
                    
                
                
            </td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Date: </b></th>
            <td style="padding-left: 4px;">2025-09-10 20:00:05+0000</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Publisher: </b></th>
            <td style="padding-left: 4px;">HL7 International / Clinical Decision Support</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Description: </b></th>
            <td style="padding-left: 4px;"><div><p>Initial expressions for use in populating answers to questions in the Genetic/Molecular testing preauthorization example questionnaire.</p>
</div></td>
        </tr>
        

        

        

        

        
        <tr>
            <th scope="row"><b>Jurisdiction: </b></th>
            <td style="padding-left: 4px;">US</td>
        </tr>
        

        

        

        

        

        

        

        

        

        

        
        
        <tr>
          <td colspan="2">
            <table>
              <tr><th><a id="cql-content"><b>Content: </b></a> text/cql</th></tr>
              <tr><td><pre><code class="language-cql">library GMTPInitialExpressions

using USCore version '7.0.0'
using FHIR version '4.0.1'

include hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers
include USCoreCommon called UC
include USCoreElements called UCE

codesystem &quot;LOINC&quot;: 'http://loinc.org'
codesystem &quot;Identifier Type&quot;: 'http://terminology.hl7.org/CodeSystem/v2-0203'
code &quot;Member Number&quot;: 'MB' from &quot;Identifier Type&quot;

parameter &quot;Coverage&quot; FHIR.Coverage
parameter &quot;ServiceRequest&quot; FHIR.ServiceRequest

context Patient

define &quot;All Problem List Items&quot;:
  UCE.&quot;All Problem List Items&quot;

/*
@question: Patient history (including age at diagnosis):
TODO: Determine whether we should be considering encounter diagnoses and/or health concerns
TODO: Determine whether age at onset is actually relevant, or if we would, in an automated context, just return the Condition resource
TODO: Does &quot;age at diagnosis&quot; mean &quot;age at onset&quot; or is it really asking for when the diagnosis was recorded?
TODO: Is there a version of patient history that is reusable here?
*/
define &quot;Patient history&quot;:
  UCE.&quot;All Problem List Items&quot; C
    let prevalence: C.prevalenceInterval()
    where C.isConfirmed()
    return {
      diagnosis: C.code.display,
      ageAtOnset: ToString(AgeInYearsAt(start of prevalence)),
      onset: ToString(start of prevalence),
      abatement: ToString(if prevalence.hasEnd() then end of prevalence else null)
    }

/*
@linkId: history|patient-history
*/
define &quot;Patient history including age at diagnosis&quot;:
  &quot;Patient history&quot; H
    return H.diagnosis &amp; (', ' + H.ageAtOnset + ' yrs') &amp; (', abated ' + H.abatement)

define &quot;Billing Provider Name&quot;:
  &quot;Billing Provider&quot;.name

define &quot;Billing Provider Phone&quot;:
  UC.Mobile(&quot;Billing Provider&quot;.telecom).value

define &quot;Billing Provider Address&quot;:
  { 'TODO: remove hard-coded address' }

define &quot;Retrieve Member Coverage test parameter&quot;:
  // When executing CQL with the VSCode extension retrieve the resource specific for the test case
  //   the list of resource ids match the resources from the test case folders
  singleton from ([FHIR.Coverage] CV where CV.id in {
    'Coverage-example-GMTP', // testcase: GMTP-example-patient-2
    'coverage-GMTP-1'        // testcase: USCorePatient-GMTP-1
  })

define &quot;Member Coverage&quot;:
  Coalesce(
    Coverage,
    &quot;Retrieve Member Coverage test parameter&quot;
  )

define &quot;Retrieve Service Request test parameter&quot;:
  // When executing CQL with the VSCode extension retrieve the resource specific for the test case
  //   the list of resource ids match the resources from the test case folders
  singleton from ([FHIR.ServiceRequest] SR where SR.id in {
    'ServiceRequest-example-1-GMTP',       // testcase: GMTP-example-patient-2
    'service-request-USCorePatient-GMTP-1' // testcase: USCorePatient-GMTP-1
  })

define &quot;Most Recent ServiceRequest&quot;:
  Coalesce(
    ServiceRequest,
    &quot;Retrieve Service Request test parameter&quot;
  )

define &quot;Billing Provider&quot;:
  UCE.BillingProvider(&quot;Member Coverage&quot;)

define &quot;Billing Provider NPI&quot;:
  &quot;Billing Provider&quot;.identifier I 
  where I.system = 'http://hl7.org/fhir/sid/us-npi'
  return I.value

define &quot;Billing Provider Fax&quot;:
  &quot;Billing Provider&quot;.telecom T
  where T.system = 'fax'
  return T.value

define &quot;Date of Service&quot;:
  &quot;Most Recent ServiceRequest&quot;.occurrence.value

define &quot;Requested Test&quot;:
  &quot;Most Recent ServiceRequest&quot;.code

define &quot;Test ID&quot;:
  Combine(&quot;Requested Test&quot;.coding.code.value, ', ') 

define &quot;Test name&quot;:
   Combine(&quot;Requested Test&quot;.coding.display.value, ', ')

define &quot;ALL ICD and CPT Test Codes&quot;:
   &quot;Test ICD Codes&quot; union &quot;Test CPT Codes&quot;

define &quot;Test ICD Codes&quot;:
 &quot;Requested Test&quot;.coding C
  where C.system.value = 'http://hl7.org/fhir/sid/icd-10-cm'
  return C.code.value
  
define &quot;Test CPT Codes&quot;:
  &quot;Requested Test&quot;.coding C
  where C.system.value =  'http://www.ama-assn.org/go/cpt'
  return C.code.value

define &quot;Test Related Condition&quot;:
  UCE.RelatedCondition(&quot;Most Recent ServiceRequest&quot;)
  //.reasonReference changed to .reason in FHIR R5

define &quot;Diagnosis Descriptions&quot;:
  &quot;Test Related Condition&quot;.code.coding.display.value

define &quot;Billing Provider different from Servicing Provider&quot;:
  if &quot;Billing Provider&quot;.id != First(UCE.ServicingProvider(&quot;Most Recent ServiceRequest&quot;).id) then
  'Yes'
  else 
  'No'

define &quot;Clinical Trial Organization&quot;:
  First(UCE.&quot;Clinical Trial Organization&quot; O 
    with &quot;Clinical Trial&quot;  T such that EndsWith(T.sponsor.reference, O.id))  
 //in FHIR R5 T.associatedParty instead of T.sponsor 

define &quot;BillingProvider is Clinical Trial Organization&quot;:
  &quot;Billing Provider&quot; = &quot;Clinical Trial Organization&quot;

//TODO does not get populated properly
define &quot;Part of clinical trial&quot;:
 if &quot;Is Research Subject&quot; and &quot;BillingProvider is Clinical Trial Organization&quot; then
 'Yes'
 else
 'No'

define &quot;Is Research Subject&quot;:
  exists(&quot;Research Subject&quot;)

define &quot;Research Subject&quot;:
  UCE.&quot;Research Subject&quot;
     //ResearchSubject.individual is from FHIR version v4.0.1 and has been replaced by R.subject in FHIR R5

define &quot;Clinical Trial&quot;:
  UCE.&quot;All Clinical Trials&quot; R 
    with &quot;Research Subject&quot; S such that EndsWith(S.study.reference, R.id)
    with  &quot;Test Related Condition&quot; C such that C.code in R.condition

define &quot;Clinical Trial ID&quot;:
  &quot;Clinical Trial&quot;.identifier C
  where C.system = 'https://clinicaltrials.gov'
  return C.value.value

define &quot;Previous genetic testing for condition&quot;:
  from 
    UCE.&quot;All ServiceRequests&quot; S,
    ServiceRequest SR
  where S.occurrence before SR.occurrence
    and S.id != SR.id
    and S.reasonReference = SR.reasonReference
  return S.id.value

//define &quot;Family history of genetic testing&quot;
//too general to prefill?</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
        
        
        
        <tr>
          <td colspan="2">
            <table>
              <tr><th><b>Content: </b> application/elm+xml</th></tr>
              <tr><td><pre><code/></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
    </table>
</div>
</div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
    <valueInteger value="3"/>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
    <valueCode value="cds"/>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
    <valueCode value="informative"/>
  </extension>
  <url value="http://hl7.org/fhir/us/cql/Library/GMTPInitialExpressions"/>
  <version value="1.0.0-ballot"/>
  <name value="GMTPInitialExpressions"/>
  <title
         value="Expression Library for the Genetic/Molecular testing preauthorization Example"/>
  <status value="draft"/>
  <experimental value="true"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2025-09-10T20:00:05+00:00"/>
  <publisher value="HL7 International / Clinical Decision Support"/>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/dss"/>
    </telecom>
  </contact>
  <description
               value="Initial expressions for use in populating answers to questions in the Genetic/Molecular testing preauthorization example questionnaire."/>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="US"/>
      <display value="United States of America"/>
    </coding>
  </jurisdiction>
  <content>
    <contentType value="text/cql"/>
    <data
          value="bGlicmFyeSBHTVRQSW5pdGlhbEV4cHJlc3Npb25zCgp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNy4wLjAnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScgY2FsbGVkIEZISVJIZWxwZXJzCmluY2x1ZGUgVVNDb3JlQ29tbW9uIGNhbGxlZCBVQwppbmNsdWRlIFVTQ29yZUVsZW1lbnRzIGNhbGxlZCBVQ0UKCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnCmNvZGVzeXN0ZW0gIklkZW50aWZpZXIgVHlwZSI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL3YyLTAyMDMnCmNvZGUgIk1lbWJlciBOdW1iZXIiOiAnTUInIGZyb20gIklkZW50aWZpZXIgVHlwZSIKCnBhcmFtZXRlciAiQ292ZXJhZ2UiIEZISVIuQ292ZXJhZ2UKcGFyYW1ldGVyICJTZXJ2aWNlUmVxdWVzdCIgRkhJUi5TZXJ2aWNlUmVxdWVzdAoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIkFsbCBQcm9ibGVtIExpc3QgSXRlbXMiOgogIFVDRS4iQWxsIFByb2JsZW0gTGlzdCBJdGVtcyIKCi8qCkBxdWVzdGlvbjogUGF0aWVudCBoaXN0b3J5IChpbmNsdWRpbmcgYWdlIGF0IGRpYWdub3Npcyk6ClRPRE86IERldGVybWluZSB3aGV0aGVyIHdlIHNob3VsZCBiZSBjb25zaWRlcmluZyBlbmNvdW50ZXIgZGlhZ25vc2VzIGFuZC9vciBoZWFsdGggY29uY2VybnMKVE9ETzogRGV0ZXJtaW5lIHdoZXRoZXIgYWdlIGF0IG9uc2V0IGlzIGFjdHVhbGx5IHJlbGV2YW50LCBvciBpZiB3ZSB3b3VsZCwgaW4gYW4gYXV0b21hdGVkIGNvbnRleHQsIGp1c3QgcmV0dXJuIHRoZSBDb25kaXRpb24gcmVzb3VyY2UKVE9ETzogRG9lcyAiYWdlIGF0IGRpYWdub3NpcyIgbWVhbiAiYWdlIGF0IG9uc2V0IiBvciBpcyBpdCByZWFsbHkgYXNraW5nIGZvciB3aGVuIHRoZSBkaWFnbm9zaXMgd2FzIHJlY29yZGVkPwpUT0RPOiBJcyB0aGVyZSBhIHZlcnNpb24gb2YgcGF0aWVudCBoaXN0b3J5IHRoYXQgaXMgcmV1c2FibGUgaGVyZT8KKi8KZGVmaW5lICJQYXRpZW50IGhpc3RvcnkiOgogIFVDRS4iQWxsIFByb2JsZW0gTGlzdCBJdGVtcyIgQwogICAgbGV0IHByZXZhbGVuY2U6IEMucHJldmFsZW5jZUludGVydmFsKCkKICAgIHdoZXJlIEMuaXNDb25maXJtZWQoKQogICAgcmV0dXJuIHsKICAgICAgZGlhZ25vc2lzOiBDLmNvZGUuZGlzcGxheSwKICAgICAgYWdlQXRPbnNldDogVG9TdHJpbmcoQWdlSW5ZZWFyc0F0KHN0YXJ0IG9mIHByZXZhbGVuY2UpKSwKICAgICAgb25zZXQ6IFRvU3RyaW5nKHN0YXJ0IG9mIHByZXZhbGVuY2UpLAogICAgICBhYmF0ZW1lbnQ6IFRvU3RyaW5nKGlmIHByZXZhbGVuY2UuaGFzRW5kKCkgdGhlbiBlbmQgb2YgcHJldmFsZW5jZSBlbHNlIG51bGwpCiAgICB9CgovKgpAbGlua0lkOiBoaXN0b3J5fHBhdGllbnQtaGlzdG9yeQoqLwpkZWZpbmUgIlBhdGllbnQgaGlzdG9yeSBpbmNsdWRpbmcgYWdlIGF0IGRpYWdub3NpcyI6CiAgIlBhdGllbnQgaGlzdG9yeSIgSAogICAgcmV0dXJuIEguZGlhZ25vc2lzICYgKCcsICcgKyBILmFnZUF0T25zZXQgKyAnIHlycycpICYgKCcsIGFiYXRlZCAnICsgSC5hYmF0ZW1lbnQpCgpkZWZpbmUgIkJpbGxpbmcgUHJvdmlkZXIgTmFtZSI6CiAgIkJpbGxpbmcgUHJvdmlkZXIiLm5hbWUKCmRlZmluZSAiQmlsbGluZyBQcm92aWRlciBQaG9uZSI6CiAgVUMuTW9iaWxlKCJCaWxsaW5nIFByb3ZpZGVyIi50ZWxlY29tKS52YWx1ZQoKZGVmaW5lICJCaWxsaW5nIFByb3ZpZGVyIEFkZHJlc3MiOgogIHsgJ1RPRE86IHJlbW92ZSBoYXJkLWNvZGVkIGFkZHJlc3MnIH0KCmRlZmluZSAiUmV0cmlldmUgTWVtYmVyIENvdmVyYWdlIHRlc3QgcGFyYW1ldGVyIjoKICAvLyBXaGVuIGV4ZWN1dGluZyBDUUwgd2l0aCB0aGUgVlNDb2RlIGV4dGVuc2lvbiByZXRyaWV2ZSB0aGUgcmVzb3VyY2Ugc3BlY2lmaWMgZm9yIHRoZSB0ZXN0IGNhc2UKICAvLyAgIHRoZSBsaXN0IG9mIHJlc291cmNlIGlkcyBtYXRjaCB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIHRlc3QgY2FzZSBmb2xkZXJzCiAgc2luZ2xldG9uIGZyb20gKFtGSElSLkNvdmVyYWdlXSBDViB3aGVyZSBDVi5pZCBpbiB7CiAgICAnQ292ZXJhZ2UtZXhhbXBsZS1HTVRQJywgLy8gdGVzdGNhc2U6IEdNVFAtZXhhbXBsZS1wYXRpZW50LTIKICAgICdjb3ZlcmFnZS1HTVRQLTEnICAgICAgICAvLyB0ZXN0Y2FzZTogVVNDb3JlUGF0aWVudC1HTVRQLTEKICB9KQoKZGVmaW5lICJNZW1iZXIgQ292ZXJhZ2UiOgogIENvYWxlc2NlKAogICAgQ292ZXJhZ2UsCiAgICAiUmV0cmlldmUgTWVtYmVyIENvdmVyYWdlIHRlc3QgcGFyYW1ldGVyIgogICkKCmRlZmluZSAiUmV0cmlldmUgU2VydmljZSBSZXF1ZXN0IHRlc3QgcGFyYW1ldGVyIjoKICAvLyBXaGVuIGV4ZWN1dGluZyBDUUwgd2l0aCB0aGUgVlNDb2RlIGV4dGVuc2lvbiByZXRyaWV2ZSB0aGUgcmVzb3VyY2Ugc3BlY2lmaWMgZm9yIHRoZSB0ZXN0IGNhc2UKICAvLyAgIHRoZSBsaXN0IG9mIHJlc291cmNlIGlkcyBtYXRjaCB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIHRlc3QgY2FzZSBmb2xkZXJzCiAgc2luZ2xldG9uIGZyb20gKFtGSElSLlNlcnZpY2VSZXF1ZXN0XSBTUiB3aGVyZSBTUi5pZCBpbiB7CiAgICAnU2VydmljZVJlcXVlc3QtZXhhbXBsZS0xLUdNVFAnLCAgICAgICAvLyB0ZXN0Y2FzZTogR01UUC1leGFtcGxlLXBhdGllbnQtMgogICAgJ3NlcnZpY2UtcmVxdWVzdC1VU0NvcmVQYXRpZW50LUdNVFAtMScgLy8gdGVzdGNhc2U6IFVTQ29yZVBhdGllbnQtR01UUC0xCiAgfSkKCmRlZmluZSAiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiOgogIENvYWxlc2NlKAogICAgU2VydmljZVJlcXVlc3QsCiAgICAiUmV0cmlldmUgU2VydmljZSBSZXF1ZXN0IHRlc3QgcGFyYW1ldGVyIgogICkKCmRlZmluZSAiQmlsbGluZyBQcm92aWRlciI6CiAgVUNFLkJpbGxpbmdQcm92aWRlcigiTWVtYmVyIENvdmVyYWdlIikKCmRlZmluZSAiQmlsbGluZyBQcm92aWRlciBOUEkiOgogICJCaWxsaW5nIFByb3ZpZGVyIi5pZGVudGlmaWVyIEkgCiAgd2hlcmUgSS5zeXN0ZW0gPSAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvdXMtbnBpJwogIHJldHVybiBJLnZhbHVlCgpkZWZpbmUgIkJpbGxpbmcgUHJvdmlkZXIgRmF4IjoKICAiQmlsbGluZyBQcm92aWRlciIudGVsZWNvbSBUCiAgd2hlcmUgVC5zeXN0ZW0gPSAnZmF4JwogIHJldHVybiBULnZhbHVlCgpkZWZpbmUgIkRhdGUgb2YgU2VydmljZSI6CiAgIk1vc3QgUmVjZW50IFNlcnZpY2VSZXF1ZXN0Ii5vY2N1cnJlbmNlLnZhbHVlCgpkZWZpbmUgIlJlcXVlc3RlZCBUZXN0IjoKICAiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiLmNvZGUKCmRlZmluZSAiVGVzdCBJRCI6CiAgQ29tYmluZSgiUmVxdWVzdGVkIFRlc3QiLmNvZGluZy5jb2RlLnZhbHVlLCAnLCAnKSAKCmRlZmluZSAiVGVzdCBuYW1lIjoKICAgQ29tYmluZSgiUmVxdWVzdGVkIFRlc3QiLmNvZGluZy5kaXNwbGF5LnZhbHVlLCAnLCAnKQoKZGVmaW5lICJBTEwgSUNEIGFuZCBDUFQgVGVzdCBDb2RlcyI6CiAgICJUZXN0IElDRCBDb2RlcyIgdW5pb24gIlRlc3QgQ1BUIENvZGVzIgoKZGVmaW5lICJUZXN0IElDRCBDb2RlcyI6CiAiUmVxdWVzdGVkIFRlc3QiLmNvZGluZyBDCiAgd2hlcmUgQy5zeXN0ZW0udmFsdWUgPSAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvaWNkLTEwLWNtJwogIHJldHVybiBDLmNvZGUudmFsdWUKICAKZGVmaW5lICJUZXN0IENQVCBDb2RlcyI6CiAgIlJlcXVlc3RlZCBUZXN0Ii5jb2RpbmcgQwogIHdoZXJlIEMuc3lzdGVtLnZhbHVlID0gICdodHRwOi8vd3d3LmFtYS1hc3NuLm9yZy9nby9jcHQnCiAgcmV0dXJuIEMuY29kZS52YWx1ZQoKZGVmaW5lICJUZXN0IFJlbGF0ZWQgQ29uZGl0aW9uIjoKICBVQ0UuUmVsYXRlZENvbmRpdGlvbigiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiKQogIC8vLnJlYXNvblJlZmVyZW5jZSBjaGFuZ2VkIHRvIC5yZWFzb24gaW4gRkhJUiBSNQoKZGVmaW5lICJEaWFnbm9zaXMgRGVzY3JpcHRpb25zIjoKICAiVGVzdCBSZWxhdGVkIENvbmRpdGlvbiIuY29kZS5jb2RpbmcuZGlzcGxheS52YWx1ZQoKZGVmaW5lICJCaWxsaW5nIFByb3ZpZGVyIGRpZmZlcmVudCBmcm9tIFNlcnZpY2luZyBQcm92aWRlciI6CiAgaWYgIkJpbGxpbmcgUHJvdmlkZXIiLmlkICE9IEZpcnN0KFVDRS5TZXJ2aWNpbmdQcm92aWRlcigiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiKS5pZCkgdGhlbgogICdZZXMnCiAgZWxzZSAKICAnTm8nCgpkZWZpbmUgIkNsaW5pY2FsIFRyaWFsIE9yZ2FuaXphdGlvbiI6CiAgRmlyc3QoVUNFLiJDbGluaWNhbCBUcmlhbCBPcmdhbml6YXRpb24iIE8gCiAgICB3aXRoICJDbGluaWNhbCBUcmlhbCIgIFQgc3VjaCB0aGF0IEVuZHNXaXRoKFQuc3BvbnNvci5yZWZlcmVuY2UsIE8uaWQpKSAgCiAvL2luIEZISVIgUjUgVC5hc3NvY2lhdGVkUGFydHkgaW5zdGVhZCBvZiBULnNwb25zb3IgCgpkZWZpbmUgIkJpbGxpbmdQcm92aWRlciBpcyBDbGluaWNhbCBUcmlhbCBPcmdhbml6YXRpb24iOgogICJCaWxsaW5nIFByb3ZpZGVyIiA9ICJDbGluaWNhbCBUcmlhbCBPcmdhbml6YXRpb24iCgovL1RPRE8gZG9lcyBub3QgZ2V0IHBvcHVsYXRlZCBwcm9wZXJseQpkZWZpbmUgIlBhcnQgb2YgY2xpbmljYWwgdHJpYWwiOgogaWYgIklzIFJlc2VhcmNoIFN1YmplY3QiIGFuZCAiQmlsbGluZ1Byb3ZpZGVyIGlzIENsaW5pY2FsIFRyaWFsIE9yZ2FuaXphdGlvbiIgdGhlbgogJ1llcycKIGVsc2UKICdObycKCmRlZmluZSAiSXMgUmVzZWFyY2ggU3ViamVjdCI6CiAgZXhpc3RzKCJSZXNlYXJjaCBTdWJqZWN0IikKCmRlZmluZSAiUmVzZWFyY2ggU3ViamVjdCI6CiAgVUNFLiJSZXNlYXJjaCBTdWJqZWN0IgogICAgIC8vUmVzZWFyY2hTdWJqZWN0LmluZGl2aWR1YWwgaXMgZnJvbSBGSElSIHZlcnNpb24gdjQuMC4xIGFuZCBoYXMgYmVlbiByZXBsYWNlZCBieSBSLnN1YmplY3QgaW4gRkhJUiBSNQoKZGVmaW5lICJDbGluaWNhbCBUcmlhbCI6CiAgVUNFLiJBbGwgQ2xpbmljYWwgVHJpYWxzIiBSIAogICAgd2l0aCAiUmVzZWFyY2ggU3ViamVjdCIgUyBzdWNoIHRoYXQgRW5kc1dpdGgoUy5zdHVkeS5yZWZlcmVuY2UsIFIuaWQpCiAgICB3aXRoICAiVGVzdCBSZWxhdGVkIENvbmRpdGlvbiIgQyBzdWNoIHRoYXQgQy5jb2RlIGluIFIuY29uZGl0aW9uCgpkZWZpbmUgIkNsaW5pY2FsIFRyaWFsIElEIjoKICAiQ2xpbmljYWwgVHJpYWwiLmlkZW50aWZpZXIgQwogIHdoZXJlIEMuc3lzdGVtID0gJ2h0dHBzOi8vY2xpbmljYWx0cmlhbHMuZ292JwogIHJldHVybiBDLnZhbHVlLnZhbHVlCgpkZWZpbmUgIlByZXZpb3VzIGdlbmV0aWMgdGVzdGluZyBmb3IgY29uZGl0aW9uIjoKICBmcm9tIAogICAgVUNFLiJBbGwgU2VydmljZVJlcXVlc3RzIiBTLAogICAgU2VydmljZVJlcXVlc3QgU1IKICB3aGVyZSBTLm9jY3VycmVuY2UgYmVmb3JlIFNSLm9jY3VycmVuY2UKICAgIGFuZCBTLmlkICE9IFNSLmlkCiAgICBhbmQgUy5yZWFzb25SZWZlcmVuY2UgPSBTUi5yZWFzb25SZWZlcmVuY2UKICByZXR1cm4gUy5pZC52YWx1ZQoKLy9kZWZpbmUgIkZhbWlseSBoaXN0b3J5IG9mIGdlbmV0aWMgdGVzdGluZyIKLy90b28gZ2VuZXJhbCB0byBwcmVmaWxsPw=="/>
  </content>
  <content>
    <contentType value="application/elm+xml"/>
  </content>
</Library>