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.95 Logic - XML Representation

Draft as of 2024-11-07

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="HIVIND95Logic"/>
  <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 HIVIND95Logic</b></p><a name="HIVIND95Logic"> </a><a name="hcHIVIND95Logic"> </a><a name="HIVIND95Logic-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><tr><td>Depends On</td><td>Library HE</td><td><a href="Library-HIVElements.html">HIVElements</a></td></tr><tr><td>Depends On</td><td>Library HIE</td><td><a href="Library-HIVIndicatorElements.html">HIVIndicatorElements</a></td></tr><tr><td>Depends On</td><td>Library Config</td><td><a href="Library-HIVConfig.html">HIVConfig</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><tr><td>Age Stratifier</td><td>out</td><td>0</td><td>1</td><td>string</td></tr><tr><td>Geographic Region Stratifier</td><td>out</td><td>0</td><td>1</td><td>string</td></tr><tr><td>Invasive cervical cancer treatment episode Statifier</td><td>out</td><td>0</td><td>1</td><td>string</td></tr><tr><td>Stratification</td><td>out</td><td>0</td><td>1</td><td>string</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code class="language-sql">/**
 * Library: HIV.IND.95 Logic
 * Ref No: CCA.3
 * Short Name: Invasive cervical cancer treatment
 *
 * Definition: % of women living with HIV diagnosed with invasive cancer who were treated
 *
 * Numerator: Number of women living with HIV who received treatment after being diagnosed with invasive cervical cancer
 * Numerator Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Cervical cancer diagnosis&quot;='Invasive cervical cancer' for a &quot;Date of diagnosis of cervical precancer lesions or invasive cervical cancer&quot; within the reporting period AND &quot;Invasive cervical cancer treatment method&quot; is NOT NULL
 * Numerator Exclusions: 
 *
 * Denominator: Number of women living with HIV who were diagnosed with invasive cervical cancer
 * Denominator Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Cervical cancer diagnosis&quot;='Invasive cervical cancer' for a &quot;Date of diagnosis of cervical precancer lesions or invasive cervical cancer&quot; within the reporting period
 * Denominator Exclusions: 
 *
 * Disaggregations:
 * • Age (15–19, 20–24, 25–29, 30–49, 50+ years) 
 *  • Invasive cervical cancer treatment episode (1st in lifetime, 2nd, 3rd, 4th, etc.) 
 *  • Treatment type (medical, surgical) 
 *  • Cities and other administrative areas of epidemiologic importance
 *
 * Disaggregation Elements: Age | Invasive cervical cancer treatment episode | Invasive cervical cancer treatment method
 *
 * Numerator and Denominator Elements:
 * Cervical cancer diagnosis 
 *  Date of diagnosis of cervical precancer lesions or invasive cervical cancer 
 *  HIV status 
 *  Invasive cervical cancer treatment method
 *
 * 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.DE705: Date of diagnosis of cervical precancer lesions or invasive cervical cancer | Date of diagnosis of cervical precancer lesions or invasive cervical cancer
 * HIV.D.DE709: Cervical cancer diagnosis | Type of cervical cancer diagnosis
 * HIV.D.DE710: Cervical precancer lesions | Client is diagnosed with cervical precancer lesions
 * HIV.D.DE711: Invasive cervical cancer | Client is diagnosed with invasive cervical cancer disease
 * HIV.D.DE730: Invasive cervical cancer treatment episode | Client's lifetime number of treatments for invasive cervical cancer
 * HIV.D.DE731: Invasive cervical cancer treatment method | Invasive cervical cancer treatment method
 * HIV.D.DE732: Conization | Invasive cervical cancer treatment method is a conization
 * HIV.D.DE733: Trachelectomy | Invasive cervical cancer treatment method is a trachelectomy
 * HIV.D.DE734: Hysterectomy | Invasive cervical cancer treatment method is a hysterectomy
 * HIV.D.DE735: Management of invasive cervical cancer | Invasive cervical cancer treatment method is management of invasive cervical cancer
 * HIV.D.DE736: Radiotherapy | Invasive cervical cancer treatment method is a radiotherapy
 * HIV.D.DE737: Chemotherapy | Invasive cervical cancer treatment method is a chemotherapy
 * HIV.D.DE738: Chemoradiation | Invasive cervical cancer treatment method is a chemoradiation
 * HIV.D.DE739: Other | Invasive cervical cancer treatment method is a not in list
 *
 * Additional Context
 * - what it measures: Progress towards increasing access to treatment for invasive cervical cancer for women living with HIV
 * - rationale: The purpose of this indicator is to assess trends in availability and access to treatment services for invasive cervical cancer for women living with HIV. In the longer run, it is expected that the number of women living with HIV who received treatment for invasive cervical cancer will plateau and slowly decrease, as screening programmes expand detection and treatment of precancerous lesions, and coverage of human papillomavirus (HPV) vaccination increases in line with the WHO Global Strategy 90–70–90 elimination targets.
 * - method: The number is generated from programmatic data from HIV or cervical cancer programmes, or from a national cancer registry, if HIV status is recorded there.
 * 
 * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
 */

library HIVIND95Logic

// 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
include HIVElements called HE
include HIVIndicatorElements called HIE
include HIVConfig called Config

// 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 being diagnosed with invasive cervical cancer
 * Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Cervical cancer diagnosis&quot;='Invasive cervical cancer' for a &quot;Date of diagnosis of cervical precancer lesions or invasive cervical cancer&quot; within the reporting period AND &quot;Invasive cervical cancer treatment method&quot; is NOT NULL
 //can't just be not null because if had treatment in past then is true
 */

define &quot;Numerator&quot;:
  HIE.&quot;Has HIV-positive Status&quot; and 
  HIE.&quot;Invasive cervical cancer&quot; and
  exists HE.&quot;Invasive cervical cancer treatment method&quot; P
  where P.performed after start of &quot;Measurement Period&quot; 


/**
 * Denominator
 *
 * Definition: Number of women living with HIV who were diagnosed with invasive cervical cancer
 * Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Cervical cancer diagnosis&quot;='Invasive cervical cancer' for a &quot;Date of diagnosis of cervical precancer lesions or invasive cervical cancer&quot; within the reporting period
 //language should specify only invasive cancer
 */

define &quot;Denominator&quot;:
  HIE.&quot;Has HIV-positive Status&quot; and 
  HIE.&quot;Invasive cervical cancer&quot;
    

/* end Populations */

/*
 * Disaggregators
 */

define &quot;Age Stratifier&quot;:
	HIE.&quot;By Age Stratifier 2&quot;

define &quot;Geographic Region Stratifier&quot;:
	HIE.&quot;By Geographic Region Stratifier&quot;

define &quot;Invasive cervical cancer treatment episode Statifier&quot;:
  HIE.&quot;Invasive cervical cancer treatment episode Value&quot;


define &quot;Stratification&quot;:
HIE.&quot;By Age Stratifier 2&quot;
+ ':' + HIE.&quot;By Geographic Region Stratifier&quot;
+ ':' + (HIE.&quot;Invasive cervical cancer treatment episode Value&quot;)

//treatment type not specified</code></pre><p><code>Content not shown - (</code><code>application/elm+xml</code>, size = 25Kb )</p></div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
    <valueCode value="computable"/>
  </extension>
  <url value="http://smart.who.int/hiv/Library/HIVIND95Logic"/>
  <version value="0.3.0"/>
  <name value="HIVIND95Logic"/>
  <title value="HIV.IND.95 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-11-07T20:59:16+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 diagnosed with invasive cancer who were treated"/>
  <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>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library HE"/>
    <resource value="http://smart.who.int/hiv/Library/HIVElements"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library HIE"/>
    <resource value="http://smart.who.int/hiv/Library/HIVIndicatorElements"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Config"/>
    <resource value="http://smart.who.int/hiv/Library/HIVConfig"/>
  </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>
  <parameter>
    <name value="Age Stratifier"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Geographic Region Stratifier"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Invasive cervical cancer treatment episode Statifier"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Stratification"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data
          value="LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuOTUgTG9naWMKICogUmVmIE5vOiBDQ0EuMwogKiBTaG9ydCBOYW1lOiBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50CiAqCiAqIERlZmluaXRpb246ICUgb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIGRpYWdub3NlZCB3aXRoIGludmFzaXZlIGNhbmNlciB3aG8gd2VyZSB0cmVhdGVkCiAqCiAqIE51bWVyYXRvcjogTnVtYmVyIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gcmVjZWl2ZWQgdHJlYXRtZW50IGFmdGVyIGJlaW5nIGRpYWdub3NlZCB3aXRoIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlcgogKiBOdW1lcmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCAiQ2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyI9J0ludmFzaXZlIGNlcnZpY2FsIGNhbmNlcicgZm9yIGEgIkRhdGUgb2YgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIG9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciIgd2l0aGluIHRoZSByZXBvcnRpbmcgcGVyaW9kIEFORCAiSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QiIGlzIE5PVCBOVUxMCiAqIE51bWVyYXRvciBFeGNsdXNpb25zOiAKICoKICogRGVub21pbmF0b3I6IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHdlcmUgZGlhZ25vc2VkIHdpdGggaW52YXNpdmUgY2VydmljYWwgY2FuY2VyCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgIkNlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMiPSdJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXInIGZvciBhICJEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIiIHdpdGhpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBEZW5vbWluYXRvciBFeGNsdXNpb25zOiAKICoKICogRGlzYWdncmVnYXRpb25zOgogKiDigKLCoEFnZSAoMTXigJMxOSwgMjDigJMyNCwgMjXigJMyOSwgMzDigJM0OSwgNTArIHllYXJzKSAKICogIOKAoiBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IGVwaXNvZGUgKDFzdCBpbiBsaWZldGltZSwgMm5kLCAzcmQsIDR0aCwgZXRjLikgCiAqICDigKLCoFRyZWF0bWVudCB0eXBlIChtZWRpY2FsLCBzdXJnaWNhbCkgCiAqICDigKLCoENpdGllcyBhbmQgb3RoZXIgYWRtaW5pc3RyYXRpdmUgYXJlYXMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBBZ2UgfCBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IGVwaXNvZGUgfCBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IG1ldGhvZAogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBDZXJ2aWNhbCBjYW5jZXIgZGlhZ25vc2lzIAogKiAgRGF0ZSBvZiBkaWFnbm9zaXMgb2YgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgb3IgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIAogKiAgSElWIHN0YXR1cyAKICogIEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgbWV0aG9kCiAqCiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyCiAqIAogKiBEYXRhIENvbmNlcHRzOgogKiBISVYuQS5ERTE3OiBBZ2UgfCBDYWxjdWxhdGVkIGFnZSAobnVtYmVyIG9mIHllYXJzKSBvZiB0aGUgY2xpZW50IGJhc2VkIG9uIGRhdGUgb2YgYmlydGgKICogSElWLkIuREUxMTU6IEhJViBzdGF0dXMgfCBISVYgc3RhdHVzIHJlcG9ydGVkIGFmdGVyIGFwcGx5aW5nIHRoZSBuYXRpb25hbCBISVYgdGVzdGluZyBhbGdvcml0aG0uIE5vIHNpbmdsZSBISVYgdGVzdCBjYW4gcHJvdmlkZSBhbiBISVYtcG9zaXRpdmUgZGlhZ25vc2lzLgogKiBISVYuQi5ERTExNjogSElWLXBvc2l0aXZlIHwgQ2xpZW50IGlzIEhJVi1wb3NpdGl2ZQogKiBISVYuQi5ERTExNzogSElWLW5lZ2F0aXZlIHwgQ2xpZW50IGlzIEhJVi1uZWdhdGl2ZQogKiBISVYuQi5ERTExODogVW5rbm93biB8IENsaWVudCBoYXMgdW5rbm93biBISVYgc3RhdHVzCiAqIEhJVi5ELkRFNzA1OiBEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgfCBEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogSElWLkQuREU3MDk6IENlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMgfCBUeXBlIG9mIGNlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMKICogSElWLkQuREU3MTA6IENlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIHwgQ2xpZW50IGlzIGRpYWdub3NlZCB3aXRoIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zCiAqIEhJVi5ELkRFNzExOiBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgfCBDbGllbnQgaXMgZGlhZ25vc2VkIHdpdGggaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIGRpc2Vhc2UKICogSElWLkQuREU3MzA6IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgZXBpc29kZSB8IENsaWVudCdzIGxpZmV0aW1lIG51bWJlciBvZiB0cmVhdG1lbnRzIGZvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogSElWLkQuREU3MzE6IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgbWV0aG9kIHwgSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QKICogSElWLkQuREU3MzI6IENvbml6YXRpb24gfCBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IG1ldGhvZCBpcyBhIGNvbml6YXRpb24KICogSElWLkQuREU3MzM6IFRyYWNoZWxlY3RvbXkgfCBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IG1ldGhvZCBpcyBhIHRyYWNoZWxlY3RvbXkKICogSElWLkQuREU3MzQ6IEh5c3RlcmVjdG9teSB8IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgbWV0aG9kIGlzIGEgaHlzdGVyZWN0b215CiAqIEhJVi5ELkRFNzM1OiBNYW5hZ2VtZW50IG9mIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB8IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgbWV0aG9kIGlzIG1hbmFnZW1lbnQgb2YgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyCiAqIEhJVi5ELkRFNzM2OiBSYWRpb3RoZXJhcHkgfCBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IG1ldGhvZCBpcyBhIHJhZGlvdGhlcmFweQogKiBISVYuRC5ERTczNzogQ2hlbW90aGVyYXB5IHwgSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QgaXMgYSBjaGVtb3RoZXJhcHkKICogSElWLkQuREU3Mzg6IENoZW1vcmFkaWF0aW9uIHwgSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QgaXMgYSBjaGVtb3JhZGlhdGlvbgogKiBISVYuRC5ERTczOTogT3RoZXIgfCBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IG1ldGhvZCBpcyBhIG5vdCBpbiBsaXN0CiAqCiAqIEFkZGl0aW9uYWwgQ29udGV4dAogKiAtIHdoYXQgaXQgbWVhc3VyZXM6IFByb2dyZXNzIHRvd2FyZHMgaW5jcmVhc2luZyBhY2Nlc3MgdG8gdHJlYXRtZW50IGZvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgZm9yIHdvbWVuIGxpdmluZyB3aXRoIEhJVgogKiAtIHJhdGlvbmFsZTogVGhlIHB1cnBvc2Ugb2YgdGhpcyBpbmRpY2F0b3IgaXMgdG8gYXNzZXNzIHRyZW5kcyBpbiBhdmFpbGFiaWxpdHkgYW5kIGFjY2VzcyB0byB0cmVhdG1lbnQgc2VydmljZXMgZm9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciBmb3Igd29tZW4gbGl2aW5nIHdpdGggSElWLiBJbiB0aGUgbG9uZ2VyIHJ1biwgaXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGUgbnVtYmVyIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gcmVjZWl2ZWQgdHJlYXRtZW50IGZvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgd2lsbCBwbGF0ZWF1IGFuZCBzbG93bHkgZGVjcmVhc2UsIGFzIHNjcmVlbmluZyBwcm9ncmFtbWVzIGV4cGFuZCBkZXRlY3Rpb24gYW5kIHRyZWF0bWVudCBvZiBwcmVjYW5jZXJvdXMgbGVzaW9ucywgYW5kIGNvdmVyYWdlIG9mIGh1bWFuIHBhcGlsbG9tYXZpcnVzIChIUFYpIHZhY2NpbmF0aW9uIGluY3JlYXNlcyBpbiBsaW5lIHdpdGggdGhlIFdITyBHbG9iYWwgU3RyYXRlZ3kgOTDigJM3MOKAkzkwIGVsaW1pbmF0aW9uIHRhcmdldHMuCiAqIC0gbWV0aG9kOiBUaGUgbnVtYmVyIGlzIGdlbmVyYXRlZCBmcm9tIHByb2dyYW1tYXRpYyBkYXRhIGZyb20gSElWIG9yIGNlcnZpY2FsIGNhbmNlciBwcm9ncmFtbWVzLCBvciBmcm9tIGEgbmF0aW9uYWwgY2FuY2VyIHJlZ2lzdHJ5LCBpZiBISVYgc3RhdHVzIGlzIHJlY29yZGVkIHRoZXJlLgogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAqLwoKbGlicmFyeSBISVZJTkQ5NUxvZ2ljCgovLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSElWQ29tbW9uIHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0NvbQppbmNsdWRlIEhJVkVsZW1lbnRzIGNhbGxlZCBIRQppbmNsdWRlIEhJVkluZGljYXRvckVsZW1lbnRzIGNhbGxlZCBISUUKaW5jbHVkZSBISVZDb25maWcgY2FsbGVkIENvbmZpZwoKLy8gSW5kaWNhdG9yIERlZmluaXRpb24KcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGU+IGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjMtMDEtMDEsIEAyMDIzLTAxLTMwXQoKY29udGV4dCBQYXRpZW50Ci8qIFBvcHVsYXRpb25zICovCgovKgogKkluaXRpYWwgUG9wdWxhdGlvbgogKi8KCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICB0cnVlCgovKioKICogTnVtZXJhdG9yCiAqIAogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIHdobyByZWNlaXZlZCB0cmVhdG1lbnQgYWZ0ZXIgYmVpbmcgZGlhZ25vc2VkIHdpdGggaW52YXNpdmUgY2VydmljYWwgY2FuY2VyCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgIkNlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMiPSdJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXInIGZvciBhICJEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIiIHdpdGhpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgIkludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgbWV0aG9kIiBpcyBOT1QgTlVMTAogLy9jYW4ndCBqdXN0IGJlIG5vdCBudWxsIGJlY2F1c2UgaWYgaGFkIHRyZWF0bWVudCBpbiBwYXN0IHRoZW4gaXMgdHJ1ZQogKi8KCmRlZmluZSAiTnVtZXJhdG9yIjoKICBISUUuIkhhcyBISVYtcG9zaXRpdmUgU3RhdHVzIiBhbmQgCiAgSElFLiJJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIiIGFuZAogIGV4aXN0cyBIRS4iSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QiIFAKICB3aGVyZSBQLnBlcmZvcm1lZCBhZnRlciBzdGFydCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIiAKCgovKioKICogRGVub21pbmF0b3IKICoKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gd2VyZSBkaWFnbm9zZWQgd2l0aCBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCAiQ2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyI9J0ludmFzaXZlIGNlcnZpY2FsIGNhbmNlcicgZm9yIGEgIkRhdGUgb2YgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIG9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciIgd2l0aGluIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAvL2xhbmd1YWdlIHNob3VsZCBzcGVjaWZ5IG9ubHkgaW52YXNpdmUgY2FuY2VyCiAqLwoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgSElFLiJIYXMgSElWLXBvc2l0aXZlIFN0YXR1cyIgYW5kIAogIEhJRS4iSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIgogICAgCgovKiBlbmQgUG9wdWxhdGlvbnMgKi8KCi8qCiAqIERpc2FnZ3JlZ2F0b3JzCiAqLwoKZGVmaW5lICJBZ2UgU3RyYXRpZmllciI6CglISUUuIkJ5IEFnZSBTdHJhdGlmaWVyIDIiCgpkZWZpbmUgIkdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiOgoJSElFLiJCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIgoKZGVmaW5lICJJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IGVwaXNvZGUgU3RhdGlmaWVyIjoKICBISUUuIkludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgZXBpc29kZSBWYWx1ZSIKCgpkZWZpbmUgIlN0cmF0aWZpY2F0aW9uIjoKSElFLiJCeSBBZ2UgU3RyYXRpZmllciAyIgorICc6JyArIEhJRS4iQnkgR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciIKKyAnOicgKyAoSElFLiJJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IGVwaXNvZGUgVmFsdWUiKQoKLy90cmVhdG1lbnQgdHlwZSBub3Qgc3BlY2lmaWVk"/>
  </content>
  <content>
    <contentType value="application/elm+xml"/>
    <data
          value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iTm9uZSIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1JbmZvIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0RhdGVUaW1lIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub1N0cmluZyBoYXMgbXVsdGlwbGUgb3ZlcmxvYWRzIGFuZCBkdWUgdG8gdGhlIFNpZ25hdHVyZUxldmVsIHNldHRpbmcgKE5vbmUpLCB0aGUgb3ZlcmxvYWQgc2lnbmF0dXJlIGlzIG5vdCBiZWluZyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LiBUaGlzIG1heSByZXN1bHQgaW4gYW1iaWd1b3VzIGZ1bmN0aW9uIHJlc29sdXRpb24gYXQgcnVudGltZSwgY29uc2lkZXIgc2V0dGluZyB0aGUgU2lnbmF0dXJlTGV2ZWwgdG8gT3ZlcmxvYWRzIG9yIEFsbCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0cHV0IGluY2x1ZGVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gc3VwcG9ydCBjb3JyZWN0IG92ZXJsb2FkIHNlbGVjdGlvbiBhdCBydW50aW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiBtZXNzYWdlPSJUaGUgZnVuY3Rpb24gRkhJUkhlbHBlcnMuVG9TdHJpbmcgaGFzIG11bHRpcGxlIG92ZXJsb2FkcyBhbmQgZHVlIHRvIHRoZSBTaWduYXR1cmVMZXZlbCBzZXR0aW5nIChOb25lKSwgdGhlIG92ZXJsb2FkIHNpZ25hdHVyZSBpcyBub3QgYmVpbmcgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4gVGhpcyBtYXkgcmVzdWx0IGluIGFtYmlndW91cyBmdW5jdGlvbiByZXNvbHV0aW9uIGF0IHJ1bnRpbWUsIGNvbnNpZGVyIHNldHRpbmcgdGhlIFNpZ25hdHVyZUxldmVsIHRvIE92ZXJsb2FkcyBvciBBbGwgdG8gZW5zdXJlIHRoYXQgdGhlIG91dHB1dCBpbmNsdWRlcyBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHN1cHBvcnQgY29ycmVjdCBvdmVybG9hZCBzZWxlY3Rpb24gYXQgcnVudGltZS4iIGVycm9yVHlwZT0ic2VtYW50aWMiIGVycm9yU2V2ZXJpdHk9Indhcm5pbmciIHhzaTp0eXBlPSJhOkNxbFRvRWxtRXJyb3IiLz4KICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgIDxhOnMgcj0iNTkiPgogICAgICAgICA8YTpzPi8qKgogKiBMaWJyYXJ5OiBISVYuSU5ELjk1IExvZ2ljCiAqIFJlZiBObzogQ0NBLjMKICogU2hvcnQgTmFtZTogSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudAogKgogKiBEZWZpbml0aW9uOiAlIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViBkaWFnbm9zZWQgd2l0aCBpbnZhc2l2ZSBjYW5jZXIgd2hvIHdlcmUgdHJlYXRlZAogKgogKiBOdW1lcmF0b3I6IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHJlY2VpdmVkIHRyZWF0bWVudCBhZnRlciBiZWluZyBkaWFnbm9zZWQgd2l0aCBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogTnVtZXJhdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICZxdW90O0hJViBzdGF0dXMmcXVvdDs9J0hJVi1wb3NpdGl2ZScgQU5EICZxdW90O0NlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMmcXVvdDs9J0ludmFzaXZlIGNlcnZpY2FsIGNhbmNlcicgZm9yIGEgJnF1b3Q7RGF0ZSBvZiBkaWFnbm9zaXMgb2YgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgb3IgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyJnF1b3Q7IHdpdGhpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgJnF1b3Q7SW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QmcXVvdDsgaXMgTk9UIE5VTEwKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEZW5vbWluYXRvcjogTnVtYmVyIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gd2VyZSBkaWFnbm9zZWQgd2l0aCBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogRGVub21pbmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggJnF1b3Q7SElWIHN0YXR1cyZxdW90Oz0nSElWLXBvc2l0aXZlJyBBTkQgJnF1b3Q7Q2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyZxdW90Oz0nSW52YXNpdmUgY2VydmljYWwgY2FuY2VyJyBmb3IgYSAmcXVvdDtEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXImcXVvdDsgd2l0aGluIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIOKAosKgQWdlICgxNeKAkzE5LCAyMOKAkzI0LCAyNeKAkzI5LCAzMOKAkzQ5LCA1MCsgeWVhcnMpIAogKiAg4oCiIEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgZXBpc29kZSAoMXN0IGluIGxpZmV0aW1lLCAybmQsIDNyZCwgNHRoLCBldGMuKSAKICogIOKAosKgVHJlYXRtZW50IHR5cGUgKG1lZGljYWwsIHN1cmdpY2FsKSAKICogIOKAosKgQ2l0aWVzIGFuZCBvdGhlciBhZG1pbmlzdHJhdGl2ZSBhcmVhcyBvZiBlcGlkZW1pb2xvZ2ljIGltcG9ydGFuY2UKICoKICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6IEFnZSB8IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgZXBpc29kZSB8IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgbWV0aG9kCiAqCiAqIE51bWVyYXRvciBhbmQgRGVub21pbmF0b3IgRWxlbWVudHM6CiAqIENlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMgCiAqICBEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgCiAqICBISVYgc3RhdHVzIAogKiAgSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QKICoKICogUmVmZXJlbmNlOiBDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBwZXJzb24tY2VudHJlZCBISVYgc3RyYXRlZ2ljIGluZm9ybWF0aW9uOiBzdHJlbmd0aGVuaW5nIHJvdXRpbmUgZGF0YSBmb3IgaW1wYWN0LiBHZW5ldmE6IFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb247IDIwMjIKICogCiAqIERhdGEgQ29uY2VwdHM6CiAqIEhJVi5BLkRFMTc6IEFnZSB8IENhbGN1bGF0ZWQgYWdlIChudW1iZXIgb2YgeWVhcnMpIG9mIHRoZSBjbGllbnQgYmFzZWQgb24gZGF0ZSBvZiBiaXJ0aAogKiBISVYuQi5ERTExNTogSElWIHN0YXR1cyB8IEhJViBzdGF0dXMgcmVwb3J0ZWQgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5hdGlvbmFsIEhJViB0ZXN0aW5nIGFsZ29yaXRobS4gTm8gc2luZ2xlIEhJViB0ZXN0IGNhbiBwcm92aWRlIGFuIEhJVi1wb3NpdGl2ZSBkaWFnbm9zaXMuCiAqIEhJVi5CLkRFMTE2OiBISVYtcG9zaXRpdmUgfCBDbGllbnQgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5CLkRFMTE3OiBISVYtbmVnYXRpdmUgfCBDbGllbnQgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5CLkRFMTE4OiBVbmtub3duIHwgQ2xpZW50IGhhcyB1bmtub3duIEhJViBzdGF0dXMKICogSElWLkQuREU3MDU6IERhdGUgb2YgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIG9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB8IERhdGUgb2YgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIG9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlcgogKiBISVYuRC5ERTcwOTogQ2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyB8IFR5cGUgb2YgY2VydmljYWwgY2FuY2VyIGRpYWdub3NpcwogKiBISVYuRC5ERTcxMDogQ2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgfCBDbGllbnQgaXMgZGlhZ25vc2VkIHdpdGggY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMKICogSElWLkQuREU3MTE6IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB8IENsaWVudCBpcyBkaWFnbm9zZWQgd2l0aCBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgZGlzZWFzZQogKiBISVYuRC5ERTczMDogSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBlcGlzb2RlIHwgQ2xpZW50J3MgbGlmZXRpbWUgbnVtYmVyIG9mIHRyZWF0bWVudHMgZm9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlcgogKiBISVYuRC5ERTczMTogSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QgfCBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IG1ldGhvZAogKiBISVYuRC5ERTczMjogQ29uaXphdGlvbiB8IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgbWV0aG9kIGlzIGEgY29uaXphdGlvbgogKiBISVYuRC5ERTczMzogVHJhY2hlbGVjdG9teSB8IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgbWV0aG9kIGlzIGEgdHJhY2hlbGVjdG9teQogKiBISVYuRC5ERTczNDogSHlzdGVyZWN0b215IHwgSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QgaXMgYSBoeXN0ZXJlY3RvbXkKICogSElWLkQuREU3MzU6IE1hbmFnZW1lbnQgb2YgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHwgSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QgaXMgbWFuYWdlbWVudCBvZiBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogSElWLkQuREU3MzY6IFJhZGlvdGhlcmFweSB8IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgbWV0aG9kIGlzIGEgcmFkaW90aGVyYXB5CiAqIEhJVi5ELkRFNzM3OiBDaGVtb3RoZXJhcHkgfCBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IG1ldGhvZCBpcyBhIGNoZW1vdGhlcmFweQogKiBISVYuRC5ERTczODogQ2hlbW9yYWRpYXRpb24gfCBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IG1ldGhvZCBpcyBhIGNoZW1vcmFkaWF0aW9uCiAqIEhJVi5ELkRFNzM5OiBPdGhlciB8IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgbWV0aG9kIGlzIGEgbm90IGluIGxpc3QKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogUHJvZ3Jlc3MgdG93YXJkcyBpbmNyZWFzaW5nIGFjY2VzcyB0byB0cmVhdG1lbnQgZm9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciBmb3Igd29tZW4gbGl2aW5nIHdpdGggSElWCiAqIC0gcmF0aW9uYWxlOiBUaGUgcHVycG9zZSBvZiB0aGlzIGluZGljYXRvciBpcyB0byBhc3Nlc3MgdHJlbmRzIGluIGF2YWlsYWJpbGl0eSBhbmQgYWNjZXNzIHRvIHRyZWF0bWVudCBzZXJ2aWNlcyBmb3IgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIGZvciB3b21lbiBsaXZpbmcgd2l0aCBISVYuIEluIHRoZSBsb25nZXIgcnVuLCBpdCBpcyBleHBlY3RlZCB0aGF0IHRoZSBudW1iZXIgb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIHdobyByZWNlaXZlZCB0cmVhdG1lbnQgZm9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB3aWxsIHBsYXRlYXUgYW5kIHNsb3dseSBkZWNyZWFzZSwgYXMgc2NyZWVuaW5nIHByb2dyYW1tZXMgZXhwYW5kIGRldGVjdGlvbiBhbmQgdHJlYXRtZW50IG9mIHByZWNhbmNlcm91cyBsZXNpb25zLCBhbmQgY292ZXJhZ2Ugb2YgaHVtYW4gcGFwaWxsb21hdmlydXMgKEhQVikgdmFjY2luYXRpb24gaW5jcmVhc2VzIGluIGxpbmUgd2l0aCB0aGUgV0hPIEdsb2JhbCBTdHJhdGVneSA5MOKAkzcw4oCTOTAgZWxpbWluYXRpb24gdGFyZ2V0cy4KICogLSBtZXRob2Q6IFRoZSBudW1iZXIgaXMgZ2VuZXJhdGVkIGZyb20gcHJvZ3JhbW1hdGljIGRhdGEgZnJvbSBISVYgb3IgY2VydmljYWwgY2FuY2VyIHByb2dyYW1tZXMsIG9yIGZyb20gYSBuYXRpb25hbCBjYW5jZXIgcmVnaXN0cnksIGlmIEhJViBzdGF0dXMgaXMgcmVjb3JkZWQgdGhlcmUuCiAqIAogKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDk1TG9naWM8L2E6cz4KICAgICAgPC9hOnM+CiAgIDwvYW5ub3RhdGlvbj4KICAgPGlkZW50aWZpZXIgaWQ9IkhJVklORDk1TG9naWMiIHN5c3RlbT0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2Ii8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIi8+CiAgICAgIDxkZWYgbG9jYWxJZD0iMSIgbG9jYXRvcj0iNjQ6MS02NDoyNiIgbG9jYWxJZGVudGlmaWVyPSJGSElSIiB1cmk9Imh0dHA6Ly9obDcub3JnL2ZoaXIiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMSI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gSW5jbHVkZWQgTGlicmFyaWVzCnVzaW5nIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVI8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC91c2luZ3M+CiAgIDxpbmNsdWRlcz4KICAgICAgPGRlZiBsb2NhbElkPSIyIiBsb2NhdG9yPSI2NjoxLTY2OjQ0IiBsb2NhbElkZW50aWZpZXI9IkhJQyIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkNvbW1vbiIgdmVyc2lvbj0iMC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkNvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUM8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMyIgbG9jYXRvcj0iNjc6MS02NzozNSIgbG9jYWxJZGVudGlmaWVyPSJGSElSSGVscGVycyIgcGF0aD0iaHR0cDovL2hsNy5vcmcvZmhpci9GSElSSGVscGVycyIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNCIgbG9jYXRvcj0iNjk6MS02OToyOSIgbG9jYWxJZGVudGlmaWVyPSJXQ29tIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvV0hPQ29tbW9uIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5XSE9Db21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGNhbGxlZCBXQ29tPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjUiIGxvY2F0b3I9IjcwOjEtNzA6MjkiIGxvY2FsSWRlbnRpZmllcj0iSEUiIHBhdGg9Imh0dHA6Ly9zbWFydC53aG8uaW50L2hpdi9ISVZFbGVtZW50cyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjUiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+SElWRWxlbWVudHM8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGNhbGxlZCBIRTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI2IiBsb2NhdG9yPSI3MToxLTcxOjM5IiBsb2NhbElkZW50aWZpZXI9IkhJRSIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkluZGljYXRvckVsZW1lbnRzIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNiI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5ISVZJbmRpY2F0b3JFbGVtZW50czwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gY2FsbGVkIEhJRTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI3IiBsb2NhdG9yPSI3MjoxLTcyOjMxIiBsb2NhbElkZW50aWZpZXI9IkNvbmZpZyIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkNvbmZpZyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjciPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+SElWQ29uZmlnPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBjYWxsZWQgQ29uZmlnPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L2luY2x1ZGVzPgogICA8cGFyYW1ldGVycz4KICAgICAgPGRlZiBsb2NhbElkPSIxMyIgbG9jYXRvcj0iNzU6MS03NTo4OCIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTMiPgogICAgICAgICAgICAgICA8YTpzPi8vIEluZGljYXRvciBEZWZpbml0aW9uCnBhcmFtZXRlciAmcXVvdDtNZWFzdXJlbWVudCBQZXJpb2QmcXVvdDsgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTIiPgogICAgICAgICAgICAgICAgICA8YTpzPkludGVydmFsJmx0OzwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjExIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5EYXRlPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPj48L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGRlZmF1bHQgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTAiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjgiPkludGVydmFsW0AyMDIzLTAxLTAxLCBAMjAyMy0wMS0zMF08L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxkZWZhdWx0IGxvY2FsSWQ9IjEwIiBsb2NhdG9yPSI3NTo1NS03NTo4OCIgbG93Q2xvc2VkPSJ0cnVlIiBoaWdoQ2xvc2VkPSJ0cnVlIiB4c2k6dHlwZT0iSW50ZXJ2YWwiPgogICAgICAgICAgICA8bG93IGxvY2FsSWQ9IjgiIGxvY2F0b3I9Ijc1OjY0LTc1Ojc0IiB4c2k6dHlwZT0iRGF0ZSI+CiAgICAgICAgICAgICAgIDx5ZWFyIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMjAyMyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPG1vbnRoIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGRheSB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvbG93PgogICAgICAgICAgICA8aGlnaCBsb2NhbElkPSI5IiBsb2NhdG9yPSI3NTo3Ny03NTo4NyIgeHNpOnR5cGU9IkRhdGUiPgogICAgICAgICAgICAgICA8eWVhciB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjIwMjMiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxtb250aCB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxkYXkgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIzMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9oaWdoPgogICAgICAgICA8L2RlZmF1bHQ+CiAgICAgICAgIDxwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9IjEyIiBsb2NhdG9yPSI3NTozMi03NTo0NSIgeHNpOnR5cGU9IkludGVydmFsVHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgIDxwb2ludFR5cGUgbG9jYWxJZD0iMTEiIGxvY2F0b3I9Ijc1OjQxLTc1OjQ0IiBuYW1lPSJ0OkRhdGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9wYXJhbWV0ZXJUeXBlU3BlY2lmaWVyPgogICAgICA8L2RlZj4KICAgPC9wYXJhbWV0ZXJzPgogICA8Y29udGV4dHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iNzc6MS03NzoxNSIgbmFtZT0iUGF0aWVudCIvPgogICA8L2NvbnRleHRzPgogICA8c3RhdGVtZW50cz4KICAgICAgPGRlZiBsb2NhdG9yPSI3NzoxLTc3OjE1IiBuYW1lPSJQYXRpZW50IiBjb250ZXh0PSJQYXRpZW50Ij4KICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IlNpbmdsZXRvbkZyb20iPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhdG9yPSI3NzoxLTc3OjE1IiBkYXRhVHlwZT0iZmhpcjpQYXRpZW50IiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vUGF0aWVudCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTUiIGxvY2F0b3I9Ijg0OjEtODU6NiIgbmFtZT0iSW5pdGlhbCBQb3B1bGF0aW9uIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTUiPgogICAgICAgICAgICAgICA8YTpzIHI9IjE0Ij4vKiBQb3B1bGF0aW9ucyAqLwoKLyoKICpJbml0aWFsIFBvcHVsYXRpb24KICovCgpkZWZpbmUgJnF1b3Q7SW5pdGlhbCBQb3B1bGF0aW9uJnF1b3Q7OgogIHRydWU8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTQiIGxvY2F0b3I9Ijg1OjMtODU6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIzMSIgbG9jYXRvcj0iOTU6MS05OTo1NSIgbmFtZT0iTnVtZXJhdG9yIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMzEiPgogICAgICAgICAgICAgICA8YTpzPi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHJlY2VpdmVkIHRyZWF0bWVudCBhZnRlciBiZWluZyBkaWFnbm9zZWQgd2l0aCBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggJnF1b3Q7SElWIHN0YXR1cyZxdW90Oz0nSElWLXBvc2l0aXZlJyBBTkQgJnF1b3Q7Q2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyZxdW90Oz0nSW52YXNpdmUgY2VydmljYWwgY2FuY2VyJyBmb3IgYSAmcXVvdDtEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXImcXVvdDsgd2l0aGluIHRoZSByZXBvcnRpbmcgcGVyaW9kIEFORCAmcXVvdDtJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IG1ldGhvZCZxdW90OyBpcyBOT1QgTlVMTAogLy9jYW4ndCBqdXN0IGJlIG5vdCBudWxsIGJlY2F1c2UgaWYgaGFkIHRyZWF0bWVudCBpbiBwYXN0IHRoZW4gaXMgdHJ1ZQogKi8KCmRlZmluZSAmcXVvdDtOdW1lcmF0b3ImcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMzAiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjIwIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxNyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTciPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0hhcyBISVYtcG9zaXRpdmUgU3RhdHVzJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4gYW5kIAogIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7SW52YXNpdmUgY2VydmljYWwgY2FuY2VyJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+IGFuZAogIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI5Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5leGlzdHMgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjgiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SEUuJnF1b3Q7SW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBtZXRob2QmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiBQPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+d2hlcmUgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+UDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPnBlcmZvcm1lZDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjciPiBhZnRlciA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+c3RhcnQgb2YgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O01lYXN1cmVtZW50IFBlcmlvZCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMzAiIGxvY2F0b3I9Ijk2OjMtOTk6NTUiIHhzaTp0eXBlPSJBbmQiPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyMCIgbG9jYXRvcj0iOTY6My05NzozMiIgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjE3IiBsb2NhdG9yPSI5NjozLTk2OjMxIiBuYW1lPSJIYXMgSElWLXBvc2l0aXZlIFN0YXR1cyIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMTkiIGxvY2F0b3I9Ijk3OjMtOTc6MzIiIG5hbWU9IkludmFzaXZlIGNlcnZpY2FsIGNhbmNlciIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyOSIgbG9jYXRvcj0iOTg6My05OTo1NSIgeHNpOnR5cGU9IkV4aXN0cyI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI4IiBsb2NhdG9yPSI5ODoxMC05OTo1NSIgeHNpOnR5cGU9IlF1ZXJ5Ij4KICAgICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSIyMiIgbG9jYXRvcj0iOTg6MTAtOTg6NTciIGFsaWFzPSJQIj4KICAgICAgICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjEiIGxvY2F0b3I9Ijk4OjEwLTk4OjU1IiBuYW1lPSJJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IG1ldGhvZCIgbGlicmFyeU5hbWU9IkhFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgPHdoZXJlIGxvY2FsSWQ9IjI3IiBsb2NhdG9yPSI5OTozLTk5OjU1IiB4c2k6dHlwZT0iQWZ0ZXIiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJUb0RhdGVUaW1lIiBsaWJyYXJ5TmFtZT0iRkhJUkhlbHBlcnMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGFzVHlwZT0iZmhpcjpkYXRlVGltZSIgeHNpOnR5cGU9IkFzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjQiIGxvY2F0b3I9Ijk5OjktOTk6MTkiIHBhdGg9InBlcmZvcm1lZCIgc2NvcGU9IlAiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvRGF0ZVRpbWUiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNiIgbG9jYXRvcj0iOTk6MjctOTk6NTUiIHhzaTp0eXBlPSJTdGFydCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI1IiBsb2NhdG9yPSI5OTozNi05OTo1NSIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8L3doZXJlPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIzNyIgbG9jYXRvcj0iMTEwOjEtMTEyOjMyIiBuYW1lPSJEZW5vbWluYXRvciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjM3Ij4KICAgICAgICAgICAgICAgPGE6cz4vKioKICogRGVub21pbmF0b3IKICoKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gd2VyZSBkaWFnbm9zZWQgd2l0aCBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggJnF1b3Q7SElWIHN0YXR1cyZxdW90Oz0nSElWLXBvc2l0aXZlJyBBTkQgJnF1b3Q7Q2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyZxdW90Oz0nSW52YXNpdmUgY2VydmljYWwgY2FuY2VyJyBmb3IgYSAmcXVvdDtEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXImcXVvdDsgd2l0aGluIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAvL2xhbmd1YWdlIHNob3VsZCBzcGVjaWZ5IG9ubHkgaW52YXNpdmUgY2FuY2VyCiAqLwoKZGVmaW5lICZxdW90O0Rlbm9taW5hdG9yJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjM2Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzIiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzMiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0hhcyBISVYtcG9zaXRpdmUgU3RhdHVzJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4gYW5kIAogIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM1Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7SW52YXNpdmUgY2VydmljYWwgY2FuY2VyJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjM2IiBsb2NhdG9yPSIxMTE6My0xMTI6MzIiIHhzaTp0eXBlPSJBbmQiPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzMyIgbG9jYXRvcj0iMTExOjMtMTExOjMxIiBuYW1lPSJIYXMgSElWLXBvc2l0aXZlIFN0YXR1cyIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzUiIGxvY2F0b3I9IjExMjozLTExMjozMiIgbmFtZT0iSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjQwIiBsb2NhdG9yPSIxMjE6MS0xMjI6MjYiIG5hbWU9IkFnZSBTdHJhdGlmaWVyIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNDAiPgogICAgICAgICAgICAgICA8YTpzPi8qIGVuZCBQb3B1bGF0aW9ucyAqLwoKLyoKICogRGlzYWdncmVnYXRvcnMKICovCgpkZWZpbmUgJnF1b3Q7QWdlIFN0cmF0aWZpZXImcXVvdDs6Cgk8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIzOSI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzgiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzkiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0J5IEFnZSBTdHJhdGlmaWVyIDImcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIzOSIgbG9jYXRvcj0iMTIyOjItMTIyOjI2IiBuYW1lPSJCeSBBZ2UgU3RyYXRpZmllciAyIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI0MyIgbG9jYXRvcj0iMTI0OjEtMTI1OjM4IiBuYW1lPSJHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNDMiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyJnF1b3Q7OgoJPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iNDIiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjQxIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjQyIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iNDIiIGxvY2F0b3I9IjEyNToyLTEyNTozOCIgbmFtZT0iQnkgR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNDYiIGxvY2F0b3I9IjEyNzoxLTEyODo1NiIgbmFtZT0iSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBlcGlzb2RlIFN0YXRpZmllciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjQ2Ij4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7SW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBlcGlzb2RlIFN0YXRpZmllciZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI0NSI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDQiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDUiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0ludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgZXBpc29kZSBWYWx1ZSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjQ1IiBsb2NhdG9yPSIxMjg6My0xMjg6NTYiIG5hbWU9IkludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB0cmVhdG1lbnQgZXBpc29kZSBWYWx1ZSIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNTkiIGxvY2F0b3I9IjEzMToxLTEzNDo2NCIgbmFtZT0iU3RyYXRpZmljYXRpb24iIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI1OSI+CiAgICAgICAgICAgICAgIDxhOnM+ZGVmaW5lICZxdW90O1N0cmF0aWZpY2F0aW9uJnF1b3Q7Ogo8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI1OCI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTUiPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjUzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQ3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQ4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtCeSBBZ2UgU3RyYXRpZmllciAyJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JzonPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0J5IEdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXImcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4KKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1NCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JzonPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4gKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI1NyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+KDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjU3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1NiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1NyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7SW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBlcGlzb2RlIFZhbHVlJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4pPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iNTgiIGxvY2F0b3I9IjEzMjoxLTEzNDo2NCIgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNTUiIGxvY2F0b3I9IjEzMjoxLTEzNDo1IiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1MyIgbG9jYXRvcj0iMTMyOjEtMTMzOjQ1IiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1MCIgbG9jYXRvcj0iMTMyOjEtMTMzOjUiIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjQ4IiBsb2NhdG9yPSIxMzI6MS0xMzI6MjUiIG5hbWU9IkJ5IEFnZSBTdHJhdGlmaWVyIDIiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjQ5IiBsb2NhdG9yPSIxMzM6My0xMzM6NSIgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IjoiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9TdHJpbmciIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNTIiIGxvY2F0b3I9IjEzMzo5LTEzMzo0NSIgbmFtZT0iQnkgR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjU0IiBsb2NhdG9yPSIxMzQ6My0xMzQ6NSIgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IjoiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9TdHJpbmciIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNTciIGxvY2F0b3I9IjEzNDo5LTEzNDo2NCIgbmFtZT0iSW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBlcGlzb2RlIFZhbHVlIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="/>
  </content>
</Library>