WHO SMART Guidelines - HIV
0.3.0 - ci-build

WHO SMART Guidelines - HIV - Local Development build (v0.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: HIV.IND.94 Logic - XML Representation

Draft as of 2024-08-21

Raw xml | Download



<Library xmlns="http://hl7.org/fhir">
  <id value="HIVIND94Logic"/>
  <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="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: Library HIVIND94Logic</b></p><a name="HIVIND94Logic"> </a><a name="hcHIVIND94Logic"> </a><a name="HIVIND94Logic-en-US"> </a><h2>Related Artifacts</h2><table class="grid"><tr><td>Depends On</td><td>Library HIC</td><td><code>http://smart.who.int/hiv/Library/HIVCommon|0.0.1</code></td></tr><tr><td>Depends On</td><td>Library WCom</td><td><a href="Library-WHOCommon.html">WHOCommon</a></td></tr></table><h2>Parameters</h2><table class="grid"><tr><td>Measurement Period</td><td>in</td><td>0</td><td>1</td><td>Period</td></tr><tr><td>Patient</td><td>out</td><td>0</td><td>1</td><td>Patient</td></tr><tr><td>Initial Population</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Numerator</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Denominator</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code class="language-sql">/**
 * Library: HIV.IND.94 Logic
 * Ref No: CCA.2
 * Short Name: Pre-invasive cervical disease treatment
 *
 * Definition: % of women living with HIV who screened positive for pre-invasive cervical disease and received treatment for it
 *
 * Numerator: Number of women living with HIV who received treatment after screening positive for pre-invasive cervical disease and were deemed eligible for treatment in line with the WHO recommendations
 * Numerator Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND with a &quot;Date of cervical cancer screening test&quot; in the reporting period for &quot;Cervical cancer screening outcome&quot;='Positive for cervical precancer lesions' AND &quot;Date of treatment for cervical precancer lesions&quot; within 6 months of &quot;Date of cervical cancer screening test&quot;
 * Numerator Exclusions: 
 *
 * Denominator: Number of women living with HIV who screened positive for pre-invasive cervical disease.
 * Denominator Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND with a &quot;Date of cervical cancer screening test&quot; in the reporting period for &quot;Cervical cancer screening outcome&quot;='Positive for cervical precancer lesions'
 * Denominator Exclusions: 
 *
 * Disaggregations:
 * • Age (15–19, 20–24, 25–29, 30–49, 50+ years) 
 *  • Provider type (public-sector provider, private-sector provider) 
 *  • Cities and other administrative areas of epidemiologic importance
 *
 * Disaggregation Elements: Age
 *
 * Numerator and Denominator Elements:
 * Cervical cancer screening outcome 
 *  Date of cervical cancer screening test 
 *  Date of treatment for cervical precancer lesions 
 *  HIV status
 *
 * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022
 * 
 * Data Concepts:
 * HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth
 * HIV.B.DE115: HIV status | HIV status reported after applying the national HIV testing algorithm. No single HIV test can provide an HIV-positive diagnosis.
 * HIV.B.DE116: HIV-positive | Client is HIV-positive
 * HIV.B.DE117: HIV-negative | Client is HIV-negative
 * HIV.B.DE118: Unknown | Client has unknown HIV status
 * HIV.D.DE656: Date of cervical cancer screening test | Date of cervical cancer screening test
 * HIV.D.DE706: Cervical cancer screening outcome | Client's screening outcome for cervical cancer
 * HIV.D.DE707: Positive for cervical precancer lesions | Screening outcome for cervical precancer lesions is positive
 * HIV.D.DE708: Negative for cervical precancer lesions | Screening outcome for cervical precancer lesions is negative
 * HIV.D.DE718: Date of treatment for cervical precancer lesions | Date of treatment for cervical precancer lesions
 *
 * Additional Context
 * - what it measures: Progress towards the treatment coverage target of 90% of women with a positive screening test receiving treatment as defined in the Global Strategy for cervical cancer elimination.
 * - rationale: • To assess availability, access and coverage of pre-invasive cervical disease treatment among women living with HIV who were diagnosed with precancerous lesions upon screening and were deemed eligible for precancer treatment in line with the WHO recommendations for screening and treatment to prevent cervical cancer. | • The WHO Global Strategy targets to eliminate cervical cancer are to vaccinate 90% of eligible girls against human papillomavirus (HPV), to screen 70% of eligible women at least twice in their lifetimes and to effectively treat 90% of those with a positive screening test or a cervical lesion, including palliative care when needed, all by 2030.
 * - method: Health facility patient registers, patient records |  | Treatment options include thermal ablation, cryotherapy and excision treatment including Large Loop Excision of the Transformation Zone therapy.
 * 
 * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
 */

library HIVIND94Logic

// Included Libraries
using FHIR version '4.0.1'

include HIVCommon version '0.0.1' called HIC
include FHIRHelpers version '4.0.1'

include WHOCommon called WCom

// Indicator Definition
parameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2023-01-01, @2023-01-30]

context Patient
/* Populations */

/*
 *Initial Population
 */

define &quot;Initial Population&quot;:
  true

/**
 * Numerator
 * 
 * Definition: Number of women living with HIV who received treatment after screening positive for pre-invasive cervical disease and were deemed eligible for treatment in line with the WHO recommendations
 * Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND with a &quot;Date of cervical cancer screening test&quot; in the reporting period for &quot;Cervical cancer screening outcome&quot;='Positive for cervical precancer lesions' AND &quot;Date of treatment for cervical precancer lesions&quot; within 6 months of &quot;Date of cervical cancer screening test&quot;
 */

define &quot;Numerator&quot;:
  true


/**
 * Denominator
 *
 * Definition: Number of women living with HIV who screened positive for pre-invasive cervical disease.
 * Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND with a &quot;Date of cervical cancer screening test&quot; in the reporting period for &quot;Cervical cancer screening outcome&quot;='Positive for cervical precancer lesions'
 */

define &quot;Denominator&quot;:
  true
    

/* end Populations */

</code></pre><p><code>Content not shown - (</code><code>application/elm+xml</code>, size = 11Kb )</p></div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
    <valueCode value="computable"/>
  </extension>
  <url value="http://smart.who.int/hiv/Library/HIVIND94Logic"/>
  <version value="0.3.0"/>
  <name value="HIVIND94Logic"/>
  <title value="HIV.IND.94 Logic"/>
  <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="2024-08-21T16:05:17+00:00"/>
  <publisher value="WHO"/>
  <contact>
    <name value="WHO"/>
    <telecom>
      <system value="url"/>
      <value value="http://who.int"/>
    </telecom>
  </contact>
  <description
               value="% of women living with HIV who screened positive for pre-invasive cervical disease and received treatment for it"/>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library HIC"/>
    <resource value="http://smart.who.int/hiv/Library/HIVCommon|0.0.1"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library WCom"/>
    <resource value="http://smart.who.int/hiv/Library/WHOCommon"/>
  </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="Initial Population"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Numerator"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Denominator"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data
          value="LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuOTQgTG9naWMKICogUmVmIE5vOiBDQ0EuMgogKiBTaG9ydCBOYW1lOiBQcmUtaW52YXNpdmUgY2VydmljYWwgZGlzZWFzZSB0cmVhdG1lbnQKICoKICogRGVmaW5pdGlvbjogJSBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHNjcmVlbmVkIHBvc2l0aXZlIGZvciBwcmUtaW52YXNpdmUgY2VydmljYWwgZGlzZWFzZSBhbmQgcmVjZWl2ZWQgdHJlYXRtZW50IGZvciBpdAogKgogKiBOdW1lcmF0b3I6IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHJlY2VpdmVkIHRyZWF0bWVudCBhZnRlciBzY3JlZW5pbmcgcG9zaXRpdmUgZm9yIHByZS1pbnZhc2l2ZSBjZXJ2aWNhbCBkaXNlYXNlIGFuZCB3ZXJlIGRlZW1lZCBlbGlnaWJsZSBmb3IgdHJlYXRtZW50IGluIGxpbmUgd2l0aCB0aGUgV0hPIHJlY29tbWVuZGF0aW9ucwogKiBOdW1lcmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCB3aXRoIGEgIkRhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0IiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBmb3IgIkNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgb3V0Y29tZSI9J1Bvc2l0aXZlIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucycgQU5EICJEYXRlIG9mIHRyZWF0bWVudCBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMiIHdpdGhpbiA2IG1vbnRocyBvZiAiRGF0ZSBvZiBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIHRlc3QiCiAqIE51bWVyYXRvciBFeGNsdXNpb25zOiAKICoKICogRGVub21pbmF0b3I6IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHNjcmVlbmVkIHBvc2l0aXZlIGZvciBwcmUtaW52YXNpdmUgY2VydmljYWwgZGlzZWFzZS4KICogRGVub21pbmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCB3aXRoIGEgIkRhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0IiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBmb3IgIkNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgb3V0Y29tZSI9J1Bvc2l0aXZlIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucycKICogRGVub21pbmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERpc2FnZ3JlZ2F0aW9uczoKICog4oCiwqBBZ2UgKDE14oCTMTksIDIw4oCTMjQsIDI14oCTMjksIDMw4oCTNDksIDUwKyB5ZWFycykgCiAqICDigKLCoFByb3ZpZGVyIHR5cGUgKHB1YmxpYy1zZWN0b3IgcHJvdmlkZXIsIHByaXZhdGUtc2VjdG9yIHByb3ZpZGVyKSAKICogIOKAosKgQ2l0aWVzIGFuZCBvdGhlciBhZG1pbmlzdHJhdGl2ZSBhcmVhcyBvZiBlcGlkZW1pb2xvZ2ljIGltcG9ydGFuY2UKICoKICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6IEFnZQogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIG91dGNvbWUgCiAqICBEYXRlIG9mIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCAKICogIERhdGUgb2YgdHJlYXRtZW50IGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyAKICogIEhJViBzdGF0dXMKICoKICogUmVmZXJlbmNlOiBDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBwZXJzb24tY2VudHJlZCBISVYgc3RyYXRlZ2ljIGluZm9ybWF0aW9uOiBzdHJlbmd0aGVuaW5nIHJvdXRpbmUgZGF0YSBmb3IgaW1wYWN0LiBHZW5ldmE6IFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb247IDIwMjIKICogCiAqIERhdGEgQ29uY2VwdHM6CiAqIEhJVi5BLkRFMTc6IEFnZSB8IENhbGN1bGF0ZWQgYWdlIChudW1iZXIgb2YgeWVhcnMpIG9mIHRoZSBjbGllbnQgYmFzZWQgb24gZGF0ZSBvZiBiaXJ0aAogKiBISVYuQi5ERTExNTogSElWIHN0YXR1cyB8IEhJViBzdGF0dXMgcmVwb3J0ZWQgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5hdGlvbmFsIEhJViB0ZXN0aW5nIGFsZ29yaXRobS4gTm8gc2luZ2xlIEhJViB0ZXN0IGNhbiBwcm92aWRlIGFuIEhJVi1wb3NpdGl2ZSBkaWFnbm9zaXMuCiAqIEhJVi5CLkRFMTE2OiBISVYtcG9zaXRpdmUgfCBDbGllbnQgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5CLkRFMTE3OiBISVYtbmVnYXRpdmUgfCBDbGllbnQgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5CLkRFMTE4OiBVbmtub3duIHwgQ2xpZW50IGhhcyB1bmtub3duIEhJViBzdGF0dXMKICogSElWLkQuREU2NTY6IERhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0IHwgRGF0ZSBvZiBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIHRlc3QKICogSElWLkQuREU3MDY6IENlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgb3V0Y29tZSB8IENsaWVudCdzIHNjcmVlbmluZyBvdXRjb21lIGZvciBjZXJ2aWNhbCBjYW5jZXIKICogSElWLkQuREU3MDc6IFBvc2l0aXZlIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyB8IFNjcmVlbmluZyBvdXRjb21lIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBpcyBwb3NpdGl2ZQogKiBISVYuRC5ERTcwODogTmVnYXRpdmUgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIHwgU2NyZWVuaW5nIG91dGNvbWUgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIGlzIG5lZ2F0aXZlCiAqIEhJVi5ELkRFNzE4OiBEYXRlIG9mIHRyZWF0bWVudCBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgfCBEYXRlIG9mIHRyZWF0bWVudCBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogUHJvZ3Jlc3MgdG93YXJkcyB0aGUgdHJlYXRtZW50IGNvdmVyYWdlIHRhcmdldCBvZiA5MCUgb2Ygd29tZW4gd2l0aCBhIHBvc2l0aXZlIHNjcmVlbmluZyB0ZXN0IHJlY2VpdmluZyB0cmVhdG1lbnQgYXMgZGVmaW5lZCBpbiB0aGUgR2xvYmFsIFN0cmF0ZWd5IGZvciBjZXJ2aWNhbCBjYW5jZXIgZWxpbWluYXRpb24uCiAqIC0gcmF0aW9uYWxlOiDigKIgVG8gYXNzZXNzIGF2YWlsYWJpbGl0eSwgYWNjZXNzIGFuZCBjb3ZlcmFnZSBvZiBwcmUtaW52YXNpdmUgY2VydmljYWwgZGlzZWFzZSB0cmVhdG1lbnQgYW1vbmcgd29tZW4gbGl2aW5nIHdpdGggSElWIHdobyB3ZXJlIGRpYWdub3NlZCB3aXRoIHByZWNhbmNlcm91cyBsZXNpb25zIHVwb24gc2NyZWVuaW5nIGFuZCB3ZXJlIGRlZW1lZCBlbGlnaWJsZSBmb3IgcHJlY2FuY2VyIHRyZWF0bWVudCBpbiBsaW5lIHdpdGggdGhlIFdITyByZWNvbW1lbmRhdGlvbnMgZm9yIHNjcmVlbmluZyBhbmQgdHJlYXRtZW50IHRvIHByZXZlbnQgY2VydmljYWwgY2FuY2VyLiB8IOKAoiBUaGUgV0hPIEdsb2JhbCBTdHJhdGVneSB0YXJnZXRzIHRvIGVsaW1pbmF0ZSBjZXJ2aWNhbCBjYW5jZXIgYXJlIHRvIHZhY2NpbmF0ZSA5MCUgb2YgZWxpZ2libGUgZ2lybHMgYWdhaW5zdCBodW1hbiBwYXBpbGxvbWF2aXJ1cyAoSFBWKSwgdG8gc2NyZWVuIDcwJSBvZiBlbGlnaWJsZSB3b21lbiBhdCBsZWFzdCB0d2ljZSBpbiB0aGVpciBsaWZldGltZXMgYW5kIHRvIGVmZmVjdGl2ZWx5IHRyZWF0IDkwJSBvZiB0aG9zZSB3aXRoIGEgcG9zaXRpdmUgc2NyZWVuaW5nIHRlc3Qgb3IgYSBjZXJ2aWNhbCBsZXNpb24sIGluY2x1ZGluZyBwYWxsaWF0aXZlIGNhcmUgd2hlbiBuZWVkZWQsIGFsbCBieSAyMDMwLgogKiAtIG1ldGhvZDogSGVhbHRoIGZhY2lsaXR5IHBhdGllbnQgcmVnaXN0ZXJzLCBwYXRpZW50IHJlY29yZHMgfCAgfCBUcmVhdG1lbnQgb3B0aW9ucyBpbmNsdWRlIHRoZXJtYWwgYWJsYXRpb24sIGNyeW90aGVyYXB5IGFuZCBleGNpc2lvbiB0cmVhdG1lbnQgaW5jbHVkaW5nIExhcmdlIExvb3AgRXhjaXNpb24gb2YgdGhlIFRyYW5zZm9ybWF0aW9uIFpvbmUgdGhlcmFweS4KICogCiAqIFN1Z2dlc3RlZCBTY29yaW5nIE1ldGhvZDogcHJvcG9ydGlvbiB8IGh0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY3FmbWVhc3VyZXMvU3RydWN0dXJlRGVmaW5pdGlvbi9wcm9wb3J0aW9uLW1lYXN1cmUtY3FmbQogKi8KCmxpYnJhcnkgSElWSU5EOTRMb2dpYwoKLy8gSW5jbHVkZWQgTGlicmFyaWVzCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEhJVkNvbW1vbiB2ZXJzaW9uICcwLjAuMScgY2FsbGVkIEhJQwppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBXSE9Db21tb24gY2FsbGVkIFdDb20KCi8vIEluZGljYXRvciBEZWZpbml0aW9uCnBhcmFtZXRlciAiTWVhc3VyZW1lbnQgUGVyaW9kIiBJbnRlcnZhbDxEYXRlPiBkZWZhdWx0IEludGVydmFsW0AyMDIzLTAxLTAxLCBAMjAyMy0wMS0zMF0KCmNvbnRleHQgUGF0aWVudAovKiBQb3B1bGF0aW9ucyAqLwoKLyoKICpJbml0aWFsIFBvcHVsYXRpb24KICovCgpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgdHJ1ZQoKLyoqCiAqIE51bWVyYXRvcgogKiAKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gcmVjZWl2ZWQgdHJlYXRtZW50IGFmdGVyIHNjcmVlbmluZyBwb3NpdGl2ZSBmb3IgcHJlLWludmFzaXZlIGNlcnZpY2FsIGRpc2Vhc2UgYW5kIHdlcmUgZGVlbWVkIGVsaWdpYmxlIGZvciB0cmVhdG1lbnQgaW4gbGluZSB3aXRoIHRoZSBXSE8gcmVjb21tZW5kYXRpb25zCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgd2l0aCBhICJEYXRlIG9mIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCIgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgZm9yICJDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIG91dGNvbWUiPSdQb3NpdGl2ZSBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMnIEFORCAiRGF0ZSBvZiB0cmVhdG1lbnQgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIiB3aXRoaW4gNiBtb250aHMgb2YgIkRhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0IgogKi8KCmRlZmluZSAiTnVtZXJhdG9yIjoKICB0cnVlCgoKLyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHNjcmVlbmVkIHBvc2l0aXZlIGZvciBwcmUtaW52YXNpdmUgY2VydmljYWwgZGlzZWFzZS4KICogQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCB3aXRoIGEgIkRhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0IiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBmb3IgIkNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgb3V0Y29tZSI9J1Bvc2l0aXZlIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucycKICovCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICB0cnVlCiAgICAKCi8qIGVuZCBQb3B1bGF0aW9ucyAqLwoK"/>
  </content>
  <content>
    <contentType value="application/elm+xml"/>
    <data
          value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iTm9uZSIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1JbmZvIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICA8YTpzIHI9IjE2Ij4KICAgICAgICAgPGE6cz4vKioKICogTGlicmFyeTogSElWLklORC45NCBMb2dpYwogKiBSZWYgTm86IENDQS4yCiAqIFNob3J0IE5hbWU6IFByZS1pbnZhc2l2ZSBjZXJ2aWNhbCBkaXNlYXNlIHRyZWF0bWVudAogKgogKiBEZWZpbml0aW9uOiAlIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gc2NyZWVuZWQgcG9zaXRpdmUgZm9yIHByZS1pbnZhc2l2ZSBjZXJ2aWNhbCBkaXNlYXNlIGFuZCByZWNlaXZlZCB0cmVhdG1lbnQgZm9yIGl0CiAqCiAqIE51bWVyYXRvcjogTnVtYmVyIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gcmVjZWl2ZWQgdHJlYXRtZW50IGFmdGVyIHNjcmVlbmluZyBwb3NpdGl2ZSBmb3IgcHJlLWludmFzaXZlIGNlcnZpY2FsIGRpc2Vhc2UgYW5kIHdlcmUgZGVlbWVkIGVsaWdpYmxlIGZvciB0cmVhdG1lbnQgaW4gbGluZSB3aXRoIHRoZSBXSE8gcmVjb21tZW5kYXRpb25zCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2Ygd29tZW4gd2l0aCAmcXVvdDtISVYgc3RhdHVzJnF1b3Q7PSdISVYtcG9zaXRpdmUnIEFORCB3aXRoIGEgJnF1b3Q7RGF0ZSBvZiBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIHRlc3QmcXVvdDsgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgZm9yICZxdW90O0NlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgb3V0Y29tZSZxdW90Oz0nUG9zaXRpdmUgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zJyBBTkQgJnF1b3Q7RGF0ZSBvZiB0cmVhdG1lbnQgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zJnF1b3Q7IHdpdGhpbiA2IG1vbnRocyBvZiAmcXVvdDtEYXRlIG9mIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCZxdW90OwogKiBOdW1lcmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERlbm9taW5hdG9yOiBOdW1iZXIgb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIHdobyBzY3JlZW5lZCBwb3NpdGl2ZSBmb3IgcHJlLWludmFzaXZlIGNlcnZpY2FsIGRpc2Vhc2UuCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICZxdW90O0hJViBzdGF0dXMmcXVvdDs9J0hJVi1wb3NpdGl2ZScgQU5EIHdpdGggYSAmcXVvdDtEYXRlIG9mIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCZxdW90OyBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBmb3IgJnF1b3Q7Q2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyBvdXRjb21lJnF1b3Q7PSdQb3NpdGl2ZSBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMnCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIOKAosKgQWdlICgxNeKAkzE5LCAyMOKAkzI0LCAyNeKAkzI5LCAzMOKAkzQ5LCA1MCsgeWVhcnMpIAogKiAg4oCiwqBQcm92aWRlciB0eXBlIChwdWJsaWMtc2VjdG9yIHByb3ZpZGVyLCBwcml2YXRlLXNlY3RvciBwcm92aWRlcikgCiAqICDigKLCoENpdGllcyBhbmQgb3RoZXIgYWRtaW5pc3RyYXRpdmUgYXJlYXMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBBZ2UKICoKICogTnVtZXJhdG9yIGFuZCBEZW5vbWluYXRvciBFbGVtZW50czoKICogQ2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyBvdXRjb21lIAogKiAgRGF0ZSBvZiBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIHRlc3QgCiAqICBEYXRlIG9mIHRyZWF0bWVudCBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgCiAqICBISVYgc3RhdHVzCiAqCiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyCiAqIAogKiBEYXRhIENvbmNlcHRzOgogKiBISVYuQS5ERTE3OiBBZ2UgfCBDYWxjdWxhdGVkIGFnZSAobnVtYmVyIG9mIHllYXJzKSBvZiB0aGUgY2xpZW50IGJhc2VkIG9uIGRhdGUgb2YgYmlydGgKICogSElWLkIuREUxMTU6IEhJViBzdGF0dXMgfCBISVYgc3RhdHVzIHJlcG9ydGVkIGFmdGVyIGFwcGx5aW5nIHRoZSBuYXRpb25hbCBISVYgdGVzdGluZyBhbGdvcml0aG0uIE5vIHNpbmdsZSBISVYgdGVzdCBjYW4gcHJvdmlkZSBhbiBISVYtcG9zaXRpdmUgZGlhZ25vc2lzLgogKiBISVYuQi5ERTExNjogSElWLXBvc2l0aXZlIHwgQ2xpZW50IGlzIEhJVi1wb3NpdGl2ZQogKiBISVYuQi5ERTExNzogSElWLW5lZ2F0aXZlIHwgQ2xpZW50IGlzIEhJVi1uZWdhdGl2ZQogKiBISVYuQi5ERTExODogVW5rbm93biB8IENsaWVudCBoYXMgdW5rbm93biBISVYgc3RhdHVzCiAqIEhJVi5ELkRFNjU2OiBEYXRlIG9mIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCB8IERhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0CiAqIEhJVi5ELkRFNzA2OiBDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIG91dGNvbWUgfCBDbGllbnQncyBzY3JlZW5pbmcgb3V0Y29tZSBmb3IgY2VydmljYWwgY2FuY2VyCiAqIEhJVi5ELkRFNzA3OiBQb3NpdGl2ZSBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgfCBTY3JlZW5pbmcgb3V0Y29tZSBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgaXMgcG9zaXRpdmUKICogSElWLkQuREU3MDg6IE5lZ2F0aXZlIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyB8IFNjcmVlbmluZyBvdXRjb21lIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBpcyBuZWdhdGl2ZQogKiBISVYuRC5ERTcxODogRGF0ZSBvZiB0cmVhdG1lbnQgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIHwgRGF0ZSBvZiB0cmVhdG1lbnQgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zCiAqCiAqIEFkZGl0aW9uYWwgQ29udGV4dAogKiAtIHdoYXQgaXQgbWVhc3VyZXM6IFByb2dyZXNzIHRvd2FyZHMgdGhlIHRyZWF0bWVudCBjb3ZlcmFnZSB0YXJnZXQgb2YgOTAlIG9mIHdvbWVuIHdpdGggYSBwb3NpdGl2ZSBzY3JlZW5pbmcgdGVzdCByZWNlaXZpbmcgdHJlYXRtZW50IGFzIGRlZmluZWQgaW4gdGhlIEdsb2JhbCBTdHJhdGVneSBmb3IgY2VydmljYWwgY2FuY2VyIGVsaW1pbmF0aW9uLgogKiAtIHJhdGlvbmFsZTog4oCiIFRvIGFzc2VzcyBhdmFpbGFiaWxpdHksIGFjY2VzcyBhbmQgY292ZXJhZ2Ugb2YgcHJlLWludmFzaXZlIGNlcnZpY2FsIGRpc2Vhc2UgdHJlYXRtZW50IGFtb25nIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gd2VyZSBkaWFnbm9zZWQgd2l0aCBwcmVjYW5jZXJvdXMgbGVzaW9ucyB1cG9uIHNjcmVlbmluZyBhbmQgd2VyZSBkZWVtZWQgZWxpZ2libGUgZm9yIHByZWNhbmNlciB0cmVhdG1lbnQgaW4gbGluZSB3aXRoIHRoZSBXSE8gcmVjb21tZW5kYXRpb25zIGZvciBzY3JlZW5pbmcgYW5kIHRyZWF0bWVudCB0byBwcmV2ZW50IGNlcnZpY2FsIGNhbmNlci4gfCDigKIgVGhlIFdITyBHbG9iYWwgU3RyYXRlZ3kgdGFyZ2V0cyB0byBlbGltaW5hdGUgY2VydmljYWwgY2FuY2VyIGFyZSB0byB2YWNjaW5hdGUgOTAlIG9mIGVsaWdpYmxlIGdpcmxzIGFnYWluc3QgaHVtYW4gcGFwaWxsb21hdmlydXMgKEhQViksIHRvIHNjcmVlbiA3MCUgb2YgZWxpZ2libGUgd29tZW4gYXQgbGVhc3QgdHdpY2UgaW4gdGhlaXIgbGlmZXRpbWVzIGFuZCB0byBlZmZlY3RpdmVseSB0cmVhdCA5MCUgb2YgdGhvc2Ugd2l0aCBhIHBvc2l0aXZlIHNjcmVlbmluZyB0ZXN0IG9yIGEgY2VydmljYWwgbGVzaW9uLCBpbmNsdWRpbmcgcGFsbGlhdGl2ZSBjYXJlIHdoZW4gbmVlZGVkLCBhbGwgYnkgMjAzMC4KICogLSBtZXRob2Q6IEhlYWx0aCBmYWNpbGl0eSBwYXRpZW50IHJlZ2lzdGVycywgcGF0aWVudCByZWNvcmRzIHwgIHwgVHJlYXRtZW50IG9wdGlvbnMgaW5jbHVkZSB0aGVybWFsIGFibGF0aW9uLCBjcnlvdGhlcmFweSBhbmQgZXhjaXNpb24gdHJlYXRtZW50IGluY2x1ZGluZyBMYXJnZSBMb29wIEV4Y2lzaW9uIG9mIHRoZSBUcmFuc2Zvcm1hdGlvbiBab25lIHRoZXJhcHkuCiAqIAogKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDk0TG9naWM8L2E6cz4KICAgICAgPC9hOnM+CiAgIDwvYW5ub3RhdGlvbj4KICAgPGlkZW50aWZpZXIgaWQ9IkhJVklORDk0TG9naWMiIHN5c3RlbT0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2Ii8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIi8+CiAgICAgIDxkZWYgbG9jYWxJZD0iMSIgbG9jYXRvcj0iNTQ6MS01NDoyNiIgbG9jYWxJZGVudGlmaWVyPSJGSElSIiB1cmk9Imh0dHA6Ly9obDcub3JnL2ZoaXIiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMSI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gSW5jbHVkZWQgTGlicmFyaWVzCnVzaW5nIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVI8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC91c2luZ3M+CiAgIDxpbmNsdWRlcz4KICAgICAgPGRlZiBsb2NhbElkPSIyIiBsb2NhdG9yPSI1NjoxLTU2OjQ0IiBsb2NhbElkZW50aWZpZXI9IkhJQyIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkNvbW1vbiIgdmVyc2lvbj0iMC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkNvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUM8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMyIgbG9jYXRvcj0iNTc6MS01NzozNSIgbG9jYWxJZGVudGlmaWVyPSJGSElSSGVscGVycyIgcGF0aD0iaHR0cDovL2hsNy5vcmcvZmhpci9GSElSSGVscGVycyIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNCIgbG9jYXRvcj0iNTk6MS01OToyOSIgbG9jYWxJZGVudGlmaWVyPSJXQ29tIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvV0hPQ29tbW9uIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5XSE9Db21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGNhbGxlZCBXQ29tPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L2luY2x1ZGVzPgogICA8cGFyYW1ldGVycz4KICAgICAgPGRlZiBsb2NhbElkPSIxMCIgbG9jYXRvcj0iNjI6MS02Mjo4OCIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTAiPgogICAgICAgICAgICAgICA8YTpzPi8vIEluZGljYXRvciBEZWZpbml0aW9uCnBhcmFtZXRlciAmcXVvdDtNZWFzdXJlbWVudCBQZXJpb2QmcXVvdDsgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iOSI+CiAgICAgICAgICAgICAgICAgIDxhOnM+SW50ZXJ2YWwmbHQ7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iOCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+RGF0ZTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4+PC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBkZWZhdWx0IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjciPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjUiPkludGVydmFsW0AyMDIzLTAxLTAxLCBAMjAyMy0wMS0zMF08L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxkZWZhdWx0IGxvY2FsSWQ9IjciIGxvY2F0b3I9IjYyOjU1LTYyOjg4IiBsb3dDbG9zZWQ9InRydWUiIGhpZ2hDbG9zZWQ9InRydWUiIHhzaTp0eXBlPSJJbnRlcnZhbCI+CiAgICAgICAgICAgIDxsb3cgbG9jYWxJZD0iNSIgbG9jYXRvcj0iNjI6NjQtNjI6NzQiIHhzaTp0eXBlPSJEYXRlIj4KICAgICAgICAgICAgICAgPHllYXIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIyMDIzIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8bW9udGggdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZGF5IHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9sb3c+CiAgICAgICAgICAgIDxoaWdoIGxvY2FsSWQ9IjYiIGxvY2F0b3I9IjYyOjc3LTYyOjg3IiB4c2k6dHlwZT0iRGF0ZSI+CiAgICAgICAgICAgICAgIDx5ZWFyIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMjAyMyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPG1vbnRoIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGRheSB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjMwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L2hpZ2g+CiAgICAgICAgIDwvZGVmYXVsdD4KICAgICAgICAgPHBhcmFtZXRlclR5cGVTcGVjaWZpZXIgbG9jYWxJZD0iOSIgbG9jYXRvcj0iNjI6MzItNjI6NDUiIHhzaTp0eXBlPSJJbnRlcnZhbFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICA8cG9pbnRUeXBlIGxvY2FsSWQ9IjgiIGxvY2F0b3I9IjYyOjQxLTYyOjQ0IiBuYW1lPSJ0OkRhdGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9wYXJhbWV0ZXJUeXBlU3BlY2lmaWVyPgogICAgICA8L2RlZj4KICAgPC9wYXJhbWV0ZXJzPgogICA8Y29udGV4dHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iNjQ6MS02NDoxNSIgbmFtZT0iUGF0aWVudCIvPgogICA8L2NvbnRleHRzPgogICA8c3RhdGVtZW50cz4KICAgICAgPGRlZiBsb2NhdG9yPSI2NDoxLTY0OjE1IiBuYW1lPSJQYXRpZW50IiBjb250ZXh0PSJQYXRpZW50Ij4KICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IlNpbmdsZXRvbkZyb20iPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhdG9yPSI2NDoxLTY0OjE1IiBkYXRhVHlwZT0iZmhpcjpQYXRpZW50IiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vUGF0aWVudCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTIiIGxvY2F0b3I9IjcxOjEtNzI6NiIgbmFtZT0iSW5pdGlhbCBQb3B1bGF0aW9uIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTIiPgogICAgICAgICAgICAgICA8YTpzIHI9IjExIj4vKiBQb3B1bGF0aW9ucyAqLwoKLyoKICpJbml0aWFsIFBvcHVsYXRpb24KICovCgpkZWZpbmUgJnF1b3Q7SW5pdGlhbCBQb3B1bGF0aW9uJnF1b3Q7OgogIHRydWU8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTEiIGxvY2F0b3I9IjcyOjMtNzI6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxNCIgbG9jYXRvcj0iODE6MS04Mjo2IiBuYW1lPSJOdW1lcmF0b3IiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxNCI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTMiPi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHJlY2VpdmVkIHRyZWF0bWVudCBhZnRlciBzY3JlZW5pbmcgcG9zaXRpdmUgZm9yIHByZS1pbnZhc2l2ZSBjZXJ2aWNhbCBkaXNlYXNlIGFuZCB3ZXJlIGRlZW1lZCBlbGlnaWJsZSBmb3IgdHJlYXRtZW50IGluIGxpbmUgd2l0aCB0aGUgV0hPIHJlY29tbWVuZGF0aW9ucwogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2Ygd29tZW4gd2l0aCAmcXVvdDtISVYgc3RhdHVzJnF1b3Q7PSdISVYtcG9zaXRpdmUnIEFORCB3aXRoIGEgJnF1b3Q7RGF0ZSBvZiBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIHRlc3QmcXVvdDsgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgZm9yICZxdW90O0NlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgb3V0Y29tZSZxdW90Oz0nUG9zaXRpdmUgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zJyBBTkQgJnF1b3Q7RGF0ZSBvZiB0cmVhdG1lbnQgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zJnF1b3Q7IHdpdGhpbiA2IG1vbnRocyBvZiAmcXVvdDtEYXRlIG9mIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCZxdW90OwogKi8KCmRlZmluZSAmcXVvdDtOdW1lcmF0b3ImcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIxMyIgbG9jYXRvcj0iODI6My04Mjo2IiB2YWx1ZVR5cGU9InQ6Qm9vbGVhbiIgdmFsdWU9InRydWUiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjE2IiBsb2NhdG9yPSI5MjoxLTkzOjYiIG5hbWU9IkRlbm9taW5hdG9yIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTYiPgogICAgICAgICAgICAgICA8YTpzIHI9IjE1Ij4vKioKICogRGVub21pbmF0b3IKICoKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gc2NyZWVuZWQgcG9zaXRpdmUgZm9yIHByZS1pbnZhc2l2ZSBjZXJ2aWNhbCBkaXNlYXNlLgogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2Ygd29tZW4gd2l0aCAmcXVvdDtISVYgc3RhdHVzJnF1b3Q7PSdISVYtcG9zaXRpdmUnIEFORCB3aXRoIGEgJnF1b3Q7RGF0ZSBvZiBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIHRlc3QmcXVvdDsgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgZm9yICZxdW90O0NlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgb3V0Y29tZSZxdW90Oz0nUG9zaXRpdmUgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zJwogKi8KCmRlZmluZSAmcXVvdDtEZW5vbWluYXRvciZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjE1IiBsb2NhdG9yPSI5MzozLTkzOjYiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="/>
  </content>
</Library>