Quality Measure Implementation Guide
1.0.0-ballot - ballot International flag

This page is part of the Quality Measure Implementation Guide (v1.0.0-ballot: STU1 (v1.0.0) Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. . For a full list of available versions, see the Directory of published versions

: Example Computable Library - XML Representation

Active as of 2019-09-03

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="EXMComputableLibrary"/>
  <meta>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"/>
  </meta>
  <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;">Example Computable Library</td>
        </tr>
        

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

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

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><code>http://hl7.org/fhir/uv/cqm/Library/EXMComputableLibrary</code></td>
        </tr>
        

        
        <tr>
            <th scope="row">
                <b>
                    
                        Official
                    
                </b>
            </th>
            <td style="padding-left: 4px;">
                
                <p style="margin-bottom: 5px;">
                    <span>EXMComputableLogic</span>
                </p>
                
            </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/5.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;">2019-09-03</td>
        </tr>
        

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

        
        <tr>
            <th scope="row"><b>Description: </b></th>
            <td style="padding-left: 4px;"><div><p>This library is used as an example in the FHIR Quality Measure Implementation Guide</p>
</div></td>
        </tr>
        

        

        

        

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

        

        

        

        

        
        <tr>
            <th scope="row"><b>Approval Date: </b></th>
            <td style="padding-left: 4px;">2019-08-03</td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Related Artifacts: </b></th>
            <td style="padding-left: 4px;">
                
                
                
                <p><b>Dependencies</b></p>
                <ul>
                  
                    <li><code>http://fhir.org/guides/common/Library/FHIR-ModelInfo|4.0.1</code></li>
                  
                    <li><code>http://fhir.org/guides/common/Library/FHIRHelpers|4.0.1</code></li>
                  
                    <li><a href="http://terminology.hl7.org/5.5.0/CodeSystem-diagnosis-role.html">Diagnosis Role</a></li>
                  
                    <li><code>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292</code></li>
                  
                    <li><code>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.299</code></li>
                  
                    <li><code>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.126</code></li>
                  
                    <li><code>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1</code></li>
                  
                    <li><code>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.836</code></li>
                  
                    <li><code>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.837</code></li>
                  
                    <li><code>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591</code></li>
                  
                </ul>
                
                
                
                
                
            </td>
        </tr>
        

        
        <tr>
          <th scope="row"><b>Parameters: </b></th>
          <td style="padding-left: 4px;">
            <table class="grid-dict">
              <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>
              
                <tr><th>Measurement Period</th><th>Period</th><th>0</th><th>1</th><th>In</th></tr>
              
                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Inpatient Encounter</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Initial Population</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Measure Population</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Stratifier 1</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Stratifier 2</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Stratifier 3</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Stratifier 4</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>SDE Ethnicity</th><th>Coding</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>SDE Payer</th><th>Resource</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>SDE Race</th><th>Coding</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>SDE Sex</th><th>Coding</th><th>0</th><th>1</th><th>Out</th></tr>
              
            </table>
          </td>
        </tr>
        

        
        <tr>
          <th scope="row"><b>Data Requirements:</b></th>
          <td style="padding-left: 4px;">
            <table class="grid-dict">
              <tr><th><b>Type</b></th><th><b>Profile</b></th><th><b>MS</b></th><th><b>Code Filter</b></th></tr>
              
                <tr>
                  <th>Encounter</th>
                  <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>
                  <th/>
                  <th>
                    
                  </th>
                </tr>
              
                <tr>
                  <th>Encounter</th>
                  <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>
                  <th/>
                  <th>
                    
                      <b>code filter: </b>
                      
                      <br/>
                      
                      
                      <span style="padding-left: 4px;">
                          <b>path: </b><span>type</span>
                      </span>
                      
                      <br/>
                      
                      
                      
                      <span style="padding-left: 4px;">
                          <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292</span>
                      </span>
                      
                      
                    
                  </th>
                </tr>
              
                <tr>
                  <th>Condition</th>
                  <th>http://hl7.org/fhir/StructureDefinition/Condition</th>
                  <th/>
                  <th>
                    
                      <b>code filter: </b>
                      
                      <br/>
                      
                      
                      <span style="padding-left: 4px;">
                          <b>path: </b><span>id</span>
                      </span>
                      
                      
                      
                      
                    
                  </th>
                </tr>
              
                <tr>
                  <th>Coverage</th>
                  <th>http://hl7.org/fhir/StructureDefinition/Coverage</th>
                  <th/>
                  <th>
                    
                      <b>code filter: </b>
                      
                      <br/>
                      
                      
                      <span style="padding-left: 4px;">
                          <b>path: </b><span>type</span>
                      </span>
                      
                      <br/>
                      
                      
                      
                      <span style="padding-left: 4px;">
                          <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591</span>
                      </span>
                      
                      
                    
                  </th>
                </tr>
              
            </table>
          </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 EXMComputableLibrary version '2.0.0'

/*
This example is purely for illustration purposes to show how all the elements of a
FHIR-based quality measure are represented. It is intentionally simplified to show
specific aspects of a measure, and is not intended as an example of a clinically
meaningful measure.
*/

/*
NOTE: This is the same library as EXMLogic, being used to illustrate the different flavors of profiles:
* Computable: Focusing on computable/design-time aspects
* Executable: Focusing on run-time aspects
* Publishable: Focusing on knowledge management aspects
*/

using FHIR version '4.0.1'

include FHIRHelpers version '4.0.1' called FHIRHelpers

codesystem &quot;Diagnosis Role&quot;: 'http://terminology.hl7.org/CodeSystem/diagnosis-role'

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;Psychiatric/Mental Health Patient&quot; : 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.299'
valueset &quot;Hospital Settings&quot; : 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.126'

valueset &quot;ONC Administrative Sex&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1'
valueset &quot;Race&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.836'
valueset &quot;Ethnicity&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.837'
valueset &quot;Payer&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591'

code &quot;Billing&quot;: 'billing' from &quot;Diagnosis Role&quot; display 'Billing'

parameter &quot;Measurement Period&quot; Interval&lt;DateTime&gt;

context Patient

define &quot;Initial Population&quot; :
  &quot;Inpatient Encounter&quot; Encounter

define &quot;Measure Population&quot; :
  &quot;Initial Population&quot;

define function &quot;Measure Observation&quot; (Encounter &quot;Encounter&quot; ) :
  duration in minutes of &quot;Related ED Visit&quot;(Encounter).period

define &quot;Stratifier 1&quot; :
  &quot;Inpatient Encounter&quot; Encounter
    where not (PrincipalDiagnosis(Encounter).code in &quot;Psychiatric/Mental Health Patient&quot;)

define &quot;Stratifier 2&quot; :
  &quot;Inpatient Encounter&quot; Encounter
    where PrincipalDiagnosis(Encounter).code in &quot;Psychiatric/Mental Health Patient&quot;

define &quot;Stratifier 3&quot; :
  &quot;Inpatient Encounter&quot; Encounter
    where PrincipalDiagnosis(Encounter) is null

define &quot;Stratifier 4&quot; :
  &quot;Inpatient Encounter&quot; Encounter
    where PrincipalDiagnosis(Encounter) is null

define &quot;Inpatient Encounter&quot; :
  [&quot;Encounter&quot;] Encounter
    where LengthInDays(Encounter.period) &lt;= 120
      and Encounter.period ends during &quot;Measurement Period&quot;

define function &quot;PrincipalDiagnosis&quot;(Encounter Encounter):
	(singleton from (Encounter.diagnosis D where D.use ~ ToConcept(&quot;Billing&quot;) and D.rank.value = 1)) PD
		return singleton from ([Condition: id in &quot;GetId&quot;(PD.condition.reference)])

define function &quot;LengthInDays&quot;(Value Interval&lt;DateTime&gt;):
	difference in days between start of Value and end of Value

define function &quot;GetId&quot;(uri String):
	Last(Split(uri, '/'))

//Measure Observation
define function &quot;Related ED Visit&quot; (Encounter &quot;Encounter&quot; ) :
  Last([&quot;Encounter&quot; : &quot;Emergency Department Visit&quot;] ED
    where ED.status = 'finished'
      and ED.period ends 1 hour or less before start of Encounter.period
    sort by start of period )

define &quot;SDE Ethnicity&quot;:
  (flatten (
    Patient.extension Extension
      where Extension.url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity'
        return Extension.extension
  )) E
    where E.url = 'ombCategory'
      or E.url = 'detailed'
    return E.value as Coding

define &quot;SDE Payer&quot;:
    [Coverage: type in &quot;Payer&quot;] Payer
      return {
        code: Payer.type,
        period: Payer.period
      }

define &quot;SDE Race&quot;:
  (flatten (
    Patient.extension Extension
      where Extension.url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race'
        return Extension.extension
  )) E
    where E.url = 'ombCategory'
      or E.url = 'detailed'
    return E.value as Coding

define &quot;SDE Sex&quot;:
  case
    when Patient.gender = 'male' then Code { code: 'M', system: 'http://hl7.org/fhir/v3/AdministrativeGender', display: 'Male' }
    when Patient.gender = 'female' then Code { code: 'F', system: 'http://hl7.org/fhir/v3/AdministrativeGender', display: 'Female' }
    else null
  end
</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
        
    </table>
</div>
</div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
    <valueCode value="cqi"/>
  </extension>
  <url value="http://hl7.org/fhir/uv/cqm/Library/EXMComputableLibrary"/>
  <identifier>
    <use value="official"/>
    <system value="http://example.org/fhir/cqi/ecqm/Library/Identifier"/>
    <value value="EXMComputableLogic"/>
  </identifier>
  <version value="2.0.0"/>
  <name value="EXMComputableLibrary"/>
  <title value="Example Computable Library"/>
  <status value="active"/>
  <experimental value="true"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2019-09-03"/>
  <publisher value="HL7 International / Clinical Quality Information"/>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/cqi"/>
    </telecom>
  </contact>
  <description
               value="This library is used as an example in the FHIR Quality Measure Implementation Guide"/>
  <jurisdiction>
    <coding>
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
      <code value="001"/>
    </coding>
  </jurisdiction>
  <approvalDate value="2019-08-03"/>
  <lastReviewDate value="2019-08-03"/>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource
              value="http://fhir.org/guides/common/Library/FHIR-ModelInfo|4.0.1"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource
              value="http://fhir.org/guides/common/Library/FHIRHelpers|4.0.1"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource value="http://terminology.hl7.org/CodeSystem/diagnosis-role"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource
              value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource
              value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.299"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource
              value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.126"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource
              value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource
              value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.836"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource
              value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.837"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource
              value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591"/>
  </relatedArtifact>
  <parameter>
    <name value="Measurement Period"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Period"/>
  </parameter>
  <parameter>
    <name value="Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Patient"/>
  </parameter>
  <parameter>
    <name value="Inpatient Encounter"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Encounter"/>
  </parameter>
  <parameter>
    <name value="Initial Population"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Encounter"/>
  </parameter>
  <parameter>
    <name value="Measure Population"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Encounter"/>
  </parameter>
  <parameter>
    <name value="Stratifier 1"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Encounter"/>
  </parameter>
  <parameter>
    <name value="Stratifier 2"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Encounter"/>
  </parameter>
  <parameter>
    <name value="Stratifier 3"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Encounter"/>
  </parameter>
  <parameter>
    <name value="Stratifier 4"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Encounter"/>
  </parameter>
  <parameter>
    <name value="SDE Ethnicity"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Coding"/>
  </parameter>
  <parameter>
    <name value="SDE Payer"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Resource"/>
  </parameter>
  <parameter>
    <name value="SDE Race"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Coding"/>
  </parameter>
  <parameter>
    <name value="SDE Sex"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Coding"/>
  </parameter>
  <dataRequirement>
    <type value="Encounter"/>
    <profile value="http://hl7.org/fhir/StructureDefinition/Encounter"/>
  </dataRequirement>
  <dataRequirement>
    <type value="Encounter"/>
    <profile value="http://hl7.org/fhir/StructureDefinition/Encounter"/>
    <codeFilter>
      <path value="type"/>
      <valueSet
                value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292"/>
    </codeFilter>
  </dataRequirement>
  <dataRequirement>
    <type value="Condition"/>
    <profile value="http://hl7.org/fhir/StructureDefinition/Condition"/>
    <codeFilter>
      <path value="id"/>
    </codeFilter>
  </dataRequirement>
  <dataRequirement>
    <type value="Coverage"/>
    <profile value="http://hl7.org/fhir/StructureDefinition/Coverage"/>
    <codeFilter>
      <path value="type"/>
      <valueSet
                value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591"/>
    </codeFilter>
  </dataRequirement>
  <content>
    <contentType value="text/cql"/>
    <language value="AllLanguages"/>
    <data
          value="bGlicmFyeSBFWE1Db21wdXRhYmxlTGlicmFyeSB2ZXJzaW9uICcyLjAuMCcNCg0KLyoNClRoaXMgZXhhbXBsZSBpcyBwdXJlbHkgZm9yIGlsbHVzdHJhdGlvbiBwdXJwb3NlcyB0byBzaG93IGhvdyBhbGwgdGhlIGVsZW1lbnRzIG9mIGENCkZISVItYmFzZWQgcXVhbGl0eSBtZWFzdXJlIGFyZSByZXByZXNlbnRlZC4gSXQgaXMgaW50ZW50aW9uYWxseSBzaW1wbGlmaWVkIHRvIHNob3cNCnNwZWNpZmljIGFzcGVjdHMgb2YgYSBtZWFzdXJlLCBhbmQgaXMgbm90IGludGVuZGVkIGFzIGFuIGV4YW1wbGUgb2YgYSBjbGluaWNhbGx5DQptZWFuaW5nZnVsIG1lYXN1cmUuDQoqLw0KDQovKg0KTk9URTogVGhpcyBpcyB0aGUgc2FtZSBsaWJyYXJ5IGFzIEVYTUxvZ2ljLCBiZWluZyB1c2VkIHRvIGlsbHVzdHJhdGUgdGhlIGRpZmZlcmVudCBmbGF2b3JzIG9mIHByb2ZpbGVzOg0KKiBDb21wdXRhYmxlOiBGb2N1c2luZyBvbiBjb21wdXRhYmxlL2Rlc2lnbi10aW1lIGFzcGVjdHMNCiogRXhlY3V0YWJsZTogRm9jdXNpbmcgb24gcnVuLXRpbWUgYXNwZWN0cw0KKiBQdWJsaXNoYWJsZTogRm9jdXNpbmcgb24ga25vd2xlZGdlIG1hbmFnZW1lbnQgYXNwZWN0cw0KKi8NCg0KdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScNCg0KaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScgY2FsbGVkIEZISVJIZWxwZXJzDQoNCmNvZGVzeXN0ZW0gIkRpYWdub3NpcyBSb2xlIjogJ2h0dHA6Ly90ZXJtaW5vbG9neS5obDcub3JnL0NvZGVTeXN0ZW0vZGlhZ25vc2lzLXJvbGUnDQoNCnZhbHVlc2V0ICJFbWVyZ2VuY3kgRGVwYXJ0bWVudCBWaXNpdCIgOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjI5MicNCnZhbHVlc2V0ICJQc3ljaGlhdHJpYy9NZW50YWwgSGVhbHRoIFBhdGllbnQiIDogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yOTknDQp2YWx1ZXNldCAiSG9zcGl0YWwgU2V0dGluZ3MiIDogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTExMS4xMjYnDQoNCnZhbHVlc2V0ICJPTkMgQWRtaW5pc3RyYXRpdmUgU2V4IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMScNCnZhbHVlc2V0ICJSYWNlIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExNDIyMi40LjExLjgzNicNCnZhbHVlc2V0ICJFdGhuaWNpdHkiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTE0MjIyLjQuMTEuODM3Jw0KdmFsdWVzZXQgIlBheWVyIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExNDIyMi40LjExLjM1OTEnDQoNCmNvZGUgIkJpbGxpbmciOiAnYmlsbGluZycgZnJvbSAiRGlhZ25vc2lzIFJvbGUiIGRpc3BsYXkgJ0JpbGxpbmcnDQoNCnBhcmFtZXRlciAiTWVhc3VyZW1lbnQgUGVyaW9kIiBJbnRlcnZhbDxEYXRlVGltZT4NCg0KY29udGV4dCBQYXRpZW50DQoNCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIiA6DQogICJJbnBhdGllbnQgRW5jb3VudGVyIiBFbmNvdW50ZXINCg0KZGVmaW5lICJNZWFzdXJlIFBvcHVsYXRpb24iIDoNCiAgIkluaXRpYWwgUG9wdWxhdGlvbiINCg0KZGVmaW5lIGZ1bmN0aW9uICJNZWFzdXJlIE9ic2VydmF0aW9uIiAoRW5jb3VudGVyICJFbmNvdW50ZXIiICkgOg0KICBkdXJhdGlvbiBpbiBtaW51dGVzIG9mICJSZWxhdGVkIEVEIFZpc2l0IihFbmNvdW50ZXIpLnBlcmlvZA0KDQpkZWZpbmUgIlN0cmF0aWZpZXIgMSIgOg0KICAiSW5wYXRpZW50IEVuY291bnRlciIgRW5jb3VudGVyDQogICAgd2hlcmUgbm90IChQcmluY2lwYWxEaWFnbm9zaXMoRW5jb3VudGVyKS5jb2RlIGluICJQc3ljaGlhdHJpYy9NZW50YWwgSGVhbHRoIFBhdGllbnQiKQ0KDQpkZWZpbmUgIlN0cmF0aWZpZXIgMiIgOg0KICAiSW5wYXRpZW50IEVuY291bnRlciIgRW5jb3VudGVyDQogICAgd2hlcmUgUHJpbmNpcGFsRGlhZ25vc2lzKEVuY291bnRlcikuY29kZSBpbiAiUHN5Y2hpYXRyaWMvTWVudGFsIEhlYWx0aCBQYXRpZW50Ig0KDQpkZWZpbmUgIlN0cmF0aWZpZXIgMyIgOg0KICAiSW5wYXRpZW50IEVuY291bnRlciIgRW5jb3VudGVyDQogICAgd2hlcmUgUHJpbmNpcGFsRGlhZ25vc2lzKEVuY291bnRlcikgaXMgbnVsbA0KDQpkZWZpbmUgIlN0cmF0aWZpZXIgNCIgOg0KICAiSW5wYXRpZW50IEVuY291bnRlciIgRW5jb3VudGVyDQogICAgd2hlcmUgUHJpbmNpcGFsRGlhZ25vc2lzKEVuY291bnRlcikgaXMgbnVsbA0KDQpkZWZpbmUgIklucGF0aWVudCBFbmNvdW50ZXIiIDoNCiAgWyJFbmNvdW50ZXIiXSBFbmNvdW50ZXINCiAgICB3aGVyZSBMZW5ndGhJbkRheXMoRW5jb3VudGVyLnBlcmlvZCkgPD0gMTIwDQogICAgICBhbmQgRW5jb3VudGVyLnBlcmlvZCBlbmRzIGR1cmluZyAiTWVhc3VyZW1lbnQgUGVyaW9kIg0KDQpkZWZpbmUgZnVuY3Rpb24gIlByaW5jaXBhbERpYWdub3NpcyIoRW5jb3VudGVyIEVuY291bnRlcik6DQoJKHNpbmdsZXRvbiBmcm9tIChFbmNvdW50ZXIuZGlhZ25vc2lzIEQgd2hlcmUgRC51c2UgfiBUb0NvbmNlcHQoIkJpbGxpbmciKSBhbmQgRC5yYW5rLnZhbHVlID0gMSkpIFBEDQoJCXJldHVybiBzaW5nbGV0b24gZnJvbSAoW0NvbmRpdGlvbjogaWQgaW4gIkdldElkIihQRC5jb25kaXRpb24ucmVmZXJlbmNlKV0pDQoNCmRlZmluZSBmdW5jdGlvbiAiTGVuZ3RoSW5EYXlzIihWYWx1ZSBJbnRlcnZhbDxEYXRlVGltZT4pOg0KCWRpZmZlcmVuY2UgaW4gZGF5cyBiZXR3ZWVuIHN0YXJ0IG9mIFZhbHVlIGFuZCBlbmQgb2YgVmFsdWUNCg0KZGVmaW5lIGZ1bmN0aW9uICJHZXRJZCIodXJpIFN0cmluZyk6DQoJTGFzdChTcGxpdCh1cmksICcvJykpDQoNCi8vTWVhc3VyZSBPYnNlcnZhdGlvbg0KZGVmaW5lIGZ1bmN0aW9uICJSZWxhdGVkIEVEIFZpc2l0IiAoRW5jb3VudGVyICJFbmNvdW50ZXIiICkgOg0KICBMYXN0KFsiRW5jb3VudGVyIiA6ICJFbWVyZ2VuY3kgRGVwYXJ0bWVudCBWaXNpdCJdIEVEDQogICAgd2hlcmUgRUQuc3RhdHVzID0gJ2ZpbmlzaGVkJw0KICAgICAgYW5kIEVELnBlcmlvZCBlbmRzIDEgaG91ciBvciBsZXNzIGJlZm9yZSBzdGFydCBvZiBFbmNvdW50ZXIucGVyaW9kDQogICAgc29ydCBieSBzdGFydCBvZiBwZXJpb2QgKQ0KDQpkZWZpbmUgIlNERSBFdGhuaWNpdHkiOg0KICAoZmxhdHRlbiAoDQogICAgUGF0aWVudC5leHRlbnNpb24gRXh0ZW5zaW9uDQogICAgICB3aGVyZSBFeHRlbnNpb24udXJsID0gJ2h0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY29yZS9TdHJ1Y3R1cmVEZWZpbml0aW9uL3VzLWNvcmUtZXRobmljaXR5Jw0KICAgICAgICByZXR1cm4gRXh0ZW5zaW9uLmV4dGVuc2lvbg0KICApKSBFDQogICAgd2hlcmUgRS51cmwgPSAnb21iQ2F0ZWdvcnknDQogICAgICBvciBFLnVybCA9ICdkZXRhaWxlZCcNCiAgICByZXR1cm4gRS52YWx1ZSBhcyBDb2RpbmcNCg0KZGVmaW5lICJTREUgUGF5ZXIiOg0KICAgIFtDb3ZlcmFnZTogdHlwZSBpbiAiUGF5ZXIiXSBQYXllcg0KICAgICAgcmV0dXJuIHsNCiAgICAgICAgY29kZTogUGF5ZXIudHlwZSwNCiAgICAgICAgcGVyaW9kOiBQYXllci5wZXJpb2QNCiAgICAgIH0NCg0KZGVmaW5lICJTREUgUmFjZSI6DQogIChmbGF0dGVuICgNCiAgICBQYXRpZW50LmV4dGVuc2lvbiBFeHRlbnNpb24NCiAgICAgIHdoZXJlIEV4dGVuc2lvbi51cmwgPSAnaHR0cDovL2hsNy5vcmcvZmhpci91cy9jb3JlL1N0cnVjdHVyZURlZmluaXRpb24vdXMtY29yZS1yYWNlJw0KICAgICAgICByZXR1cm4gRXh0ZW5zaW9uLmV4dGVuc2lvbg0KICApKSBFDQogICAgd2hlcmUgRS51cmwgPSAnb21iQ2F0ZWdvcnknDQogICAgICBvciBFLnVybCA9ICdkZXRhaWxlZCcNCiAgICByZXR1cm4gRS52YWx1ZSBhcyBDb2RpbmcNCg0KZGVmaW5lICJTREUgU2V4IjoNCiAgY2FzZQ0KICAgIHdoZW4gUGF0aWVudC5nZW5kZXIgPSAnbWFsZScgdGhlbiBDb2RlIHsgY29kZTogJ00nLCBzeXN0ZW06ICdodHRwOi8vaGw3Lm9yZy9maGlyL3YzL0FkbWluaXN0cmF0aXZlR2VuZGVyJywgZGlzcGxheTogJ01hbGUnIH0NCiAgICB3aGVuIFBhdGllbnQuZ2VuZGVyID0gJ2ZlbWFsZScgdGhlbiBDb2RlIHsgY29kZTogJ0YnLCBzeXN0ZW06ICdodHRwOi8vaGw3Lm9yZy9maGlyL3YzL0FkbWluaXN0cmF0aXZlR2VuZGVyJywgZGlzcGxheTogJ0ZlbWFsZScgfQ0KICAgIGVsc2UgbnVsbA0KICBlbmQNCg=="/>
  </content>
</Library>