WHO Immunization Implementation Guide
1.0.0 - release

WHO Immunization Implementation Guide, published by WHO. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-immunizations/tree/132/merge and changes regularly. See the Directory of published versions

: IMMZD2DTTyphoidEncounterElements - XML Representation

Draft as of 2026-03-31

Raw xml | Download


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

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

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

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="Library-IMMZD2DTTyphoidEncounterElements.html">IMMZD2DTTyphoidEncounterElements</a></td>
        </tr>
        

        

        

        
        <tr>
            <th scope="row"><b>Status: </b></th>
            <td style="padding-left: 4px;">draft</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/7.1.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;">2026-03-31 13:54:17+0000</td>
        </tr>
        

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

        
        <tr>
            <th scope="row"><b>Description: </b></th>
            <td style="padding-left: 4px;"><div><p>This library defines encounter-based elements for Typhoid used throughout the Immunization CPG</p>
</div></td>
        </tr>
        

        

        

        

        

        

        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Related Artifacts: </b></th>
            <td style="padding-left: 4px;">
                
                
                
                <p><b>Dependencies</b></p>
                <ul>
                  
                    <li><a href="Library-WHOConcepts.html">WHOConcepts</a></li>
                  
                    <li><a href="Library-WHOCommon.html">WHOCommon</a></li>
                  
                    <li><a href="Library-WHOElements.html">WHOElements</a></li>
                  
                    <li><a href="Library-IMMZCommon.html">IMMZCommon</a></li>
                  
                    <li><a href="Library-IMMZConcepts.html">IMMZConcepts</a></li>
                  
                    <li><a href="Library-IMMZEncounterElements.html">IMMZEncounterElements</a></li>
                  
                    <li><a href="Library-IMMZD2DTTyphoidElements.html">IMMZD2DTTyphoidElements</a></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>Today</th><th>date</th><th>0</th><th>1</th><th>In</th></tr>
              
                <tr><th>EncounterId</th><th>string</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>Typhoid Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Typhoid Primary Series Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Number of Typhoid Primary Series Doses Administered</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is less than 6 months</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>No typhoid primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is between 6 months and 45 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is more than or equal to 45 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>One typhoid primary series dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is less than 2 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is more than or equal to 2 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Date of Latest Typhoid Dose</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>The latest typhoid dose was administered less than 3 years ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>The latest typhoid dose was administered more than 3 years ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is less than 6 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is more than or equal to 6 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Primary series is complete</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Primary series is not complete</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>No live vaccine, other than typhoid, was administered in the past 4 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Live vaccine, other than typhoid, was administered in the past 4 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</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: IMMZD2DTTyphoidEncounterElements
  */
library IMMZD2DTTyphoidEncounterElements

using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1'

include WHOConcepts
include WHOCommon called WC
include WHOElements called WE

include IMMZCommon called Common
include IMMZConcepts called Concepts
include IMMZEncounterElements called Encounter

include IMMZD2DTTyphoidElements called TyphoidElements

parameter Today Date default Today()
parameter EncounterId String

context Patient

/*
@internal: Typhoid containing Doses Administered to Patient
*/
define &quot;Typhoid Doses Administered to Patient&quot;:
  Encounter.&quot;Doses Administered to Patient&quot; I
  where
    I.vaccineCode in Concepts.&quot;Typhoid vaccines&quot;

/*
@internal: Typhoid containing Doses Administered to Patient that are in the Primary series
*/
define &quot;Typhoid Primary Series Doses Administered to Patient&quot;:
  &quot;Typhoid Doses Administered to Patient&quot;.seriesPrimary()

/*
@internal: Number of Typhoid Primary Series doses
*/
define &quot;Number of Typhoid Primary Series Doses Administered&quot;:
  Count(&quot;Typhoid Primary Series Doses Administered to Patient&quot;)

/*
@input: Client's age is less than 6 months
@pseudocode: Today's date − &quot;Date of birth&quot; &lt; 6 months
@code: Client's age is less than 6 months-41
@decision: IMMZ.D2.DT.Typhoid.TCV: Typhoid conjugate vaccine (TCV) schedule
*/
define &quot;Client's age is less than 6 months&quot;:
  Encounter.&quot;Current Patient Age In Months&quot; &lt; 6

/*
@input: No typhoid primary series doses were administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 0
@code: No typhoid primary series doses were administered-116
@decision: IMMZ.D2.DT.Typhoid.TCV: Typhoid conjugate vaccine (TCV) schedule
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
*/
define &quot;No typhoid primary series doses were administered&quot;:
  &quot;Number of Typhoid Primary Series Doses Administered&quot; = 0

/*
@input: Client's age is between 6 months and 45 years
@pseudocode: 6 months ≤ Today's date − &quot;Date of birth&quot; &lt; 45 years
@code: Client's age is between 6 months and 45 years-52
@decision: IMMZ.D2.DT.Typhoid.TCV: Typhoid conjugate vaccine (TCV) schedule
*/
define &quot;Client's age is between 6 months and 45 years&quot;:
  6 &lt;= Encounter.&quot;Current Patient Age In Months&quot;
  and Encounter.&quot;Current Patient Age In Years&quot; &lt; 45

/*
@input: Client's age is more than or equal to 45 years
@pseudocode: Today's date − &quot;Date of birth&quot; ≥ 45 years
@code: Client's age is more than or equal to 45 years-41
@decision: IMMZ.D2.DT.Typhoid.TCV: Typhoid conjugate vaccine (TCV) schedule
*/
define &quot;Client's age is more than or equal to 45 years&quot;:
  Encounter.&quot;Current Patient Age In Years&quot; &gt;= 45

/*
@input: One typhoid primary series dose was administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1
@code: One typhoid primary series dose was administered-116
@decision: IMMZ.D2.DT.Typhoid.TCV: Typhoid conjugate vaccine (TCV) schedule
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
*/
define &quot;One typhoid primary series dose was administered&quot;:
  &quot;Number of Typhoid Primary Series Doses Administered&quot; = 1

/*
@input: Client's age is less than 2 years
@pseudocode: Today's date − &quot;Date of birth&quot; &lt; 2 years
@code: Client's age is less than 2 years-40
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
*/
define &quot;Client's age is less than 2 years&quot;:
  Encounter.&quot;Current Patient Age In Years&quot; &lt; 2

/*
@input: Client's age is more than or equal to 2 years
@pseudocode: Today's date − &quot;Date of birth&quot; ≥ 2 years
@code: Client's age is more than or equal to 2 years-40
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
*/
define &quot;Client's age is more than or equal to 2 years&quot;:
  Encounter.&quot;Current Patient Age In Years&quot; &gt;= 2

/*
@input: The latest typhoid dose was administered less than 3 years ago
@pseudocode: Today's date − latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) &lt; 3 years
@code: The latest typhoid dose was administered less than 3 years ago-106
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;The latest typhoid dose was administered less than 3 years ago&quot;:
  &quot;Date of Latest Typhoid Dose&quot; is not null
    and duration in years between &quot;Date of Latest Typhoid Dose&quot; and Today &lt; 3

/*
@input: The latest typhoid dose was administered more than 3 years ago
@pseudocode: Today's date − latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) ≥ 3 years
@code: The latest typhoid dose was administered more than 3 years ago-106
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;The latest typhoid dose was administered more than 3 years ago&quot;:
  not &quot;The latest typhoid dose was administered less than 3 years ago&quot;

/*
@input: Client's age is less than 6 years
@pseudocode: Today's date − &quot;Date of birth&quot; &lt; 6 years
@code: Client's age is less than 6 years-40
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;Client's age is less than 6 years&quot;:
  Encounter.&quot;Current Patient Age In Years&quot; &lt; 6

/*
@input: Client's age is more than or equal to 6 years
@pseudocode: Today's date − &quot;Date of birth&quot; ≥ 6 years
@code: Client's age is more than or equal to 6 years-40
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;Client's age is more than or equal to 6 years&quot;:
  Encounter.&quot;Current Patient Age In Years&quot; &gt;= 6

/*
@input: Primary series is not complete
@pseudocode: &quot;Completed the primary vaccination series&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) ≠ TRUE
@code: Primary series is not complete-93
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;Primary series is not complete&quot;:
  not &quot;Primary series is complete&quot;

/*
@input: No live vaccine, other than typhoid, was administered in the past 4 weeks
@pseudocode: Today's date − latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE AND &quot;Vaccine type&quot; ≠ &quot;Typhoid vaccines&quot;) ≥ 4 weeks
@code: No live vaccine, other than typhoid, was administered in the past 4 weeks-132
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;No live vaccine, other than typhoid, was administered in the past 4 weeks&quot;:
  Encounter.&quot;No live vaccine was administered in the last 4 weeks&quot;

/*
@input: Live vaccine, other than typhoid, was administered in the past 4 weeks
@pseudocode: Today's date − latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE AND &quot;Vaccine type&quot; ≠ &quot;Typhoid vaccines&quot;) &lt; 4 weeks
@code: Live vaccine, other than typhoid, was administered in the past 4 weeks-132
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;Live vaccine, other than typhoid, was administered in the past 4 weeks&quot;:
  Encounter.&quot;Live vaccine was administered in the last 4 weeks&quot;

/*
@input: Primary series is complete
@pseudocode: &quot;Completed the primary vaccination series&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) = TRUE
@code: Primary series is complete-93
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;Primary series is complete&quot;:
  &quot;One typhoid primary series dose was administered&quot;
  or Coalesce(
    &quot;Typhoid Doses Administered to Patient&quot; Dose
    aggregate Result: Encounter.&quot;Completed the primary vaccination series Observation&quot;.partOf.references(Dose) or Result,
    false )

/*
@internal: Date of Latest Typhoid Dose
*/
define &quot;Date of Latest Typhoid Dose&quot;:
  date from start of &quot;Typhoid Doses Administered to Patient&quot;.mostRecent().occurrence.toInterval()
</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
        
    </table>
</div>
</div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
    <valueCode value="computable"/>
  </extension>
  <url
       value="http://smart.who.int/immunizations/Library/IMMZD2DTTyphoidEncounterElements"/>
  <version value="1.0.0"/>
  <name value="IMMZD2DTTyphoidEncounterElements"/>
  <title value="IMMZD2DTTyphoidEncounterElements"/>
  <status value="draft"/>
  <experimental value="false"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2026-03-31T13:54:17+00:00"/>
  <publisher value="WHO"/>
  <contact>
    <name value="WHO"/>
    <telecom>
      <system value="url"/>
      <value value="http://who.int"/>
    </telecom>
  </contact>
  <description
               value="This library defines encounter-based elements for Typhoid used throughout the Immunization CPG"/>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library WHOConcepts"/>
    <resource value="http://smart.who.int/immunizations/Library/WHOConcepts"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library WC"/>
    <resource value="http://smart.who.int/immunizations/Library/WHOCommon"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library WE"/>
    <resource value="http://smart.who.int/immunizations/Library/WHOElements"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Common"/>
    <resource value="http://smart.who.int/immunizations/Library/IMMZCommon"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Concepts"/>
    <resource
              value="http://smart.who.int/immunizations/Library/IMMZConcepts"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Encounter"/>
    <resource
              value="http://smart.who.int/immunizations/Library/IMMZEncounterElements"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library TyphoidElements"/>
    <resource
              value="http://smart.who.int/immunizations/Library/IMMZD2DTTyphoidElements"/>
  </relatedArtifact>
  <parameter>
    <name value="Today"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="EncounterId"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Patient"/>
  </parameter>
  <parameter>
    <name value="Typhoid Doses Administered to Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Immunization"/>
  </parameter>
  <parameter>
    <name value="Typhoid Primary Series Doses Administered to Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Immunization"/>
  </parameter>
  <parameter>
    <name value="Number of Typhoid Primary Series Doses Administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="integer"/>
  </parameter>
  <parameter>
    <name value="Client's age is less than 6 months"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="No typhoid primary series doses were administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is between 6 months and 45 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is more than or equal to 45 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="One typhoid primary series dose was administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is less than 2 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is more than or equal to 2 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Date of Latest Typhoid Dose"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name
          value="The latest typhoid dose was administered less than 3 years ago"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name
          value="The latest typhoid dose was administered more than 3 years ago"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is less than 6 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is more than or equal to 6 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Primary series is complete"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Primary series is not complete"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name
          value="No live vaccine, other than typhoid, was administered in the past 4 weeks"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name
          value="Live vaccine, other than typhoid, was administered in the past 4 weeks"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data
          value="Ci8qCiAgKiBMaWJyYXJ5OiBJTU1aRDJEVFR5cGhvaWRFbmNvdW50ZXJFbGVtZW50cwogICovCmxpYnJhcnkgSU1NWkQyRFRUeXBob2lkRW5jb3VudGVyRWxlbWVudHMKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbmNlcHRzCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQwppbmNsdWRlIFdIT0VsZW1lbnRzIGNhbGxlZCBXRQoKaW5jbHVkZSBJTU1aQ29tbW9uIGNhbGxlZCBDb21tb24KaW5jbHVkZSBJTU1aQ29uY2VwdHMgY2FsbGVkIENvbmNlcHRzCmluY2x1ZGUgSU1NWkVuY291bnRlckVsZW1lbnRzIGNhbGxlZCBFbmNvdW50ZXIKCmluY2x1ZGUgSU1NWkQyRFRUeXBob2lkRWxlbWVudHMgY2FsbGVkIFR5cGhvaWRFbGVtZW50cwoKcGFyYW1ldGVyIFRvZGF5IERhdGUgZGVmYXVsdCBUb2RheSgpCnBhcmFtZXRlciBFbmNvdW50ZXJJZCBTdHJpbmcKCmNvbnRleHQgUGF0aWVudAoKLyoKQGludGVybmFsOiBUeXBob2lkIGNvbnRhaW5pbmcgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJUeXBob2lkIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IjoKICBFbmNvdW50ZXIuIkRvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IiBJCiAgd2hlcmUKICAgIEkudmFjY2luZUNvZGUgaW4gQ29uY2VwdHMuIlR5cGhvaWQgdmFjY2luZXMiCgovKgpAaW50ZXJuYWw6IFR5cGhvaWQgY29udGFpbmluZyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCB0aGF0IGFyZSBpbiB0aGUgUHJpbWFyeSBzZXJpZXMKKi8KZGVmaW5lICJUeXBob2lkIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IjoKICAiVHlwaG9pZCBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIuc2VyaWVzUHJpbWFyeSgpCgovKgpAaW50ZXJuYWw6IE51bWJlciBvZiBUeXBob2lkIFByaW1hcnkgU2VyaWVzIGRvc2VzCiovCmRlZmluZSAiTnVtYmVyIG9mIFR5cGhvaWQgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIjoKICBDb3VudCgiVHlwaG9pZCBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIpCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiBtb250aHMKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIDwgNiBtb250aHMKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiBtb250aHMtNDEKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVENWOiBUeXBob2lkIGNvbmp1Z2F0ZSB2YWNjaW5lIChUQ1YpIHNjaGVkdWxlCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IG1vbnRocyI6CiAgRW5jb3VudGVyLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIE1vbnRocyIgPCA2CgovKgpAaW5wdXQ6IE5vIHR5cGhvaWQgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVHlwaG9pZCB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAwCkBjb2RlOiBObyB0eXBob2lkIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkLTExNgpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5UQ1Y6IFR5cGhvaWQgY29uanVnYXRlIHZhY2NpbmUgKFRDVikgc2NoZWR1bGUKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVmlQUzogVW5jb25qdWdhdGVkIFZpIHBvbHlzYWNjaGFyaWRlIChWaVBTKSBzY2hlZHVsZQoqLwpkZWZpbmUgIk5vIHR5cGhvaWQgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgVHlwaG9pZCBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMAoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgYmV0d2VlbiA2IG1vbnRocyBhbmQgNDUgeWVhcnMKQHBzZXVkb2NvZGU6IDYgbW9udGhzIOKJpCBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDQ1IHllYXJzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgYmV0d2VlbiA2IG1vbnRocyBhbmQgNDUgeWVhcnMtNTIKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVENWOiBUeXBob2lkIGNvbmp1Z2F0ZSB2YWNjaW5lIChUQ1YpIHNjaGVkdWxlCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiBtb250aHMgYW5kIDQ1IHllYXJzIjoKICA2IDw9IEVuY291bnRlci4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBNb250aHMiCiAgYW5kIEVuY291bnRlci4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBZZWFycyIgPCA0NQoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDQ1IHllYXJzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiDiiaUgNDUgeWVhcnMKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNDUgeWVhcnMtNDEKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVENWOiBUeXBob2lkIGNvbmp1Z2F0ZSB2YWNjaW5lIChUQ1YpIHNjaGVkdWxlCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byA0NSB5ZWFycyI6CiAgRW5jb3VudGVyLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFllYXJzIiA+PSA0NQoKLyoKQGlucHV0OiBPbmUgdHlwaG9pZCBwcmltYXJ5IHNlcmllcyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVHlwaG9pZCB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAxCkBjb2RlOiBPbmUgdHlwaG9pZCBwcmltYXJ5IHNlcmllcyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQtMTE2CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlRDVjogVHlwaG9pZCBjb25qdWdhdGUgdmFjY2luZSAoVENWKSBzY2hlZHVsZQpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5WaVBTOiBVbmNvbmp1Z2F0ZWQgVmkgcG9seXNhY2NoYXJpZGUgKFZpUFMpIHNjaGVkdWxlCiovCmRlZmluZSAiT25lIHR5cGhvaWQgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIFR5cGhvaWQgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDEKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiAyIHllYXJzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDIgeWVhcnMKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gMiB5ZWFycy00MApAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5WaVBTOiBVbmNvbmp1Z2F0ZWQgVmkgcG9seXNhY2NoYXJpZGUgKFZpUFMpIHNjaGVkdWxlCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiAyIHllYXJzIjoKICBFbmNvdW50ZXIuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiIDwgMgoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDIgeWVhcnMKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSAyIHllYXJzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDIgeWVhcnMtNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVmlQUzogVW5jb25qdWdhdGVkIFZpIHBvbHlzYWNjaGFyaWRlIChWaVBTKSBzY2hlZHVsZQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gMiB5ZWFycyI6CiAgRW5jb3VudGVyLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFllYXJzIiA+PSAyCgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgdHlwaG9pZCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDMgeWVhcnMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlR5cGhvaWQgdmFjY2luZXMiKSA8IDMgeWVhcnMKQGNvZGU6IFRoZSBsYXRlc3QgdHlwaG9pZCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDMgeWVhcnMgYWdvLTEwNgpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5WaVBTOiBVbmNvbmp1Z2F0ZWQgVmkgcG9seXNhY2NoYXJpZGUgKFZpUFMpIHNjaGVkdWxlCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlR5MjFhOiBMaXZlIGF0dGVudWF0ZWQgVHkyMWEgdmFjY2luZSBzY2hlZHVsZQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgdHlwaG9pZCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDMgeWVhcnMgYWdvIjoKICAiRGF0ZSBvZiBMYXRlc3QgVHlwaG9pZCBEb3NlIiBpcyBub3QgbnVsbAogICAgYW5kIGR1cmF0aW9uIGluIHllYXJzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IFR5cGhvaWQgRG9zZSIgYW5kIFRvZGF5IDwgMwoKLyoKQGlucHV0OiBUaGUgbGF0ZXN0IHR5cGhvaWQgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiAzIHllYXJzIGFnbwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiBsYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJUeXBob2lkIHZhY2NpbmVzIikg4omlIDMgeWVhcnMKQGNvZGU6IFRoZSBsYXRlc3QgdHlwaG9pZCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDMgeWVhcnMgYWdvLTEwNgpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5WaVBTOiBVbmNvbmp1Z2F0ZWQgVmkgcG9seXNhY2NoYXJpZGUgKFZpUFMpIHNjaGVkdWxlCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlR5MjFhOiBMaXZlIGF0dGVudWF0ZWQgVHkyMWEgdmFjY2luZSBzY2hlZHVsZQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgdHlwaG9pZCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDMgeWVhcnMgYWdvIjoKICBub3QgIlRoZSBsYXRlc3QgdHlwaG9pZCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDMgeWVhcnMgYWdvIgoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDYgeWVhcnMKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIDwgNiB5ZWFycwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IHllYXJzLTQwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlR5MjFhOiBMaXZlIGF0dGVudWF0ZWQgVHkyMWEgdmFjY2luZSBzY2hlZHVsZQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiB5ZWFycyI6CiAgRW5jb3VudGVyLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFllYXJzIiA8IDYKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byA2IHllYXJzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiDiiaUgNiB5ZWFycwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byA2IHllYXJzLTQwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlR5MjFhOiBMaXZlIGF0dGVudWF0ZWQgVHkyMWEgdmFjY2luZSBzY2hlZHVsZQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiB5ZWFycyI6CiAgRW5jb3VudGVyLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFllYXJzIiA+PSA2CgovKgpAaW5wdXQ6IFByaW1hcnkgc2VyaWVzIGlzIG5vdCBjb21wbGV0ZQpAcHNldWRvY29kZTogIkNvbXBsZXRlZCB0aGUgcHJpbWFyeSB2YWNjaW5hdGlvbiBzZXJpZXMiICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJUeXBob2lkIHZhY2NpbmVzIikg4omgIFRSVUUKQGNvZGU6IFByaW1hcnkgc2VyaWVzIGlzIG5vdCBjb21wbGV0ZS05MwpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5UeTIxYTogTGl2ZSBhdHRlbnVhdGVkIFR5MjFhIHZhY2NpbmUgc2NoZWR1bGUKKi8KZGVmaW5lICJQcmltYXJ5IHNlcmllcyBpcyBub3QgY29tcGxldGUiOgogIG5vdCAiUHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUiCgovKgpAaW5wdXQ6IE5vIGxpdmUgdmFjY2luZSwgb3RoZXIgdGhhbiB0eXBob2lkLCB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgbGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIkxpdmUgdmFjY2luZSIgPSBUUlVFIEFORCAiVmFjY2luZSB0eXBlIiDiiaAgIlR5cGhvaWQgdmFjY2luZXMiKSDiiaUgNCB3ZWVrcwpAY29kZTogTm8gbGl2ZSB2YWNjaW5lLCBvdGhlciB0aGFuIHR5cGhvaWQsIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIHBhc3QgNCB3ZWVrcy0xMzIKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVHkyMWE6IExpdmUgYXR0ZW51YXRlZCBUeTIxYSB2YWNjaW5lIHNjaGVkdWxlCiovCmRlZmluZSAiTm8gbGl2ZSB2YWNjaW5lLCBvdGhlciB0aGFuIHR5cGhvaWQsIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIHBhc3QgNCB3ZWVrcyI6CiAgRW5jb3VudGVyLiJObyBsaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgbGFzdCA0IHdlZWtzIgoKLyoKQGlucHV0OiBMaXZlIHZhY2NpbmUsIG90aGVyIHRoYW4gdHlwaG9pZCwgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgcGFzdCA0IHdlZWtzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJMaXZlIHZhY2NpbmUiID0gVFJVRSBBTkQgIlZhY2NpbmUgdHlwZSIg4omgICJUeXBob2lkIHZhY2NpbmVzIikgPCA0IHdlZWtzCkBjb2RlOiBMaXZlIHZhY2NpbmUsIG90aGVyIHRoYW4gdHlwaG9pZCwgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgcGFzdCA0IHdlZWtzLTEzMgpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5UeTIxYTogTGl2ZSBhdHRlbnVhdGVkIFR5MjFhIHZhY2NpbmUgc2NoZWR1bGUKKi8KZGVmaW5lICJMaXZlIHZhY2NpbmUsIG90aGVyIHRoYW4gdHlwaG9pZCwgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgcGFzdCA0IHdlZWtzIjoKICBFbmNvdW50ZXIuIkxpdmUgdmFjY2luZSB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBsYXN0IDQgd2Vla3MiCgovKgpAaW5wdXQ6IFByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlCkBwc2V1ZG9jb2RlOiAiQ29tcGxldGVkIHRoZSBwcmltYXJ5IHZhY2NpbmF0aW9uIHNlcmllcyIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlR5cGhvaWQgdmFjY2luZXMiKSA9IFRSVUUKQGNvZGU6IFByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlLTkzCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlR5MjFhOiBMaXZlIGF0dGVudWF0ZWQgVHkyMWEgdmFjY2luZSBzY2hlZHVsZQoqLwpkZWZpbmUgIlByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlIjoKICAiT25lIHR5cGhvaWQgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIgogIG9yIENvYWxlc2NlKAogICAgIlR5cGhvaWQgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiIERvc2UKICAgIGFnZ3JlZ2F0ZSBSZXN1bHQ6IEVuY291bnRlci4iQ29tcGxldGVkIHRoZSBwcmltYXJ5IHZhY2NpbmF0aW9uIHNlcmllcyBPYnNlcnZhdGlvbiIucGFydE9mLnJlZmVyZW5jZXMoRG9zZSkgb3IgUmVzdWx0LAogICAgZmFsc2UgKQoKLyoKQGludGVybmFsOiBEYXRlIG9mIExhdGVzdCBUeXBob2lkIERvc2UKKi8KZGVmaW5lICJEYXRlIG9mIExhdGVzdCBUeXBob2lkIERvc2UiOgogIGRhdGUgZnJvbSBzdGFydCBvZiAiVHlwaG9pZCBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIubW9zdFJlY2VudCgpLm9jY3VycmVuY2UudG9JbnRlcnZhbCgpCg=="/>
  </content>
</Library>