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.72 Logic - TTL Representation

Draft as of 2024-08-18

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "HIVIND72Logic"] ; # 
  fhir:meta [
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module>     ] )
  ] ; # 
  fhir:text [
fhir:status [ fhir:v "generated" ] ;
fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: Library HIVIND72Logic</b></p><a name=\"HIVIND72Logic\"> </a><a name=\"hcHIVIND72Logic\"> </a><a name=\"HIVIND72Logic-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\">/**\n * Library: HIV.IND.72 Logic\n * Ref No: STI.5A\n * Short Name: Gonorrhoea test positivity, HIV prevention services\n *\n * Definition: % of people who tested positive for gonorrhoea during the reporting period\n *\n * Numerator: Number of people attending HIV prevention services who tested positive for gonorrhoea during the reporting period\n * Numerator Calculation: COUNT of clients with &quot;Gonorrhoea test date&quot; in the reporting period AND &quot;Gonorrhoea test result&quot;='Positive'\n * Numerator Exclusions: \n *\n * Denominator: Number of people attending HIV prevention services tested for gonorrhoea (using a molecular test, culture or POC test) during the reporting period\n * Denominator Calculation: COUNT of clients with &quot;Gonorrhoea test date&quot; on &quot;Date accessed HIV prevention intervention&quot; in the reporting period\n * Denominator Exclusions: \n *\n * Disaggregations:\n * • Gender (male, female, other*) \n *  • Age (15–19, 20–24, 25–29, 30–49, 50+ years) \n *  • Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)** \n *  • HIV status (HIV-positive, HIV-negative, unknown status) \n *  • HIV prevention intervention (for example, PrEP) \n *  • Diagnostic test used and anatomic site sampled \n *  • Cities and other administrative regions of epidemiologic importance\n *\n * Disaggregation Elements: Gender | Age | Key population member type | HIV status | HIV prevention intervention | Type of specimen | Neisseria gonorrhoeae test type\n *\n * Numerator and Denominator Elements:\n * Date accessed HIV prevention intervention \n *  Gonorrhoea test date \n *  Gonorrhoea test result\n *\n * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022\n * \n * Data Concepts:\n * HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth\n * HIV.A.DE18: Gender* | Gender of the client*\n * HIV.A.DE19: Female | Client identifies as female\n * HIV.A.DE20: Male | Client identifies as male\n * HIV.A.DE21: Transgender male | Client identifies as transgender male\n * HIV.A.DE22: Transgender female | Client identifies as transgender female\n * HIV.A.DE23: Other | Additional category\n * HIV.B.DE50: Key population member type* | The type of key population that the client is included in\n * HIV.B.DE51: Sex worker | Client is a sex worker\n * HIV.B.DE52: Men who have sex with men | Client is a man who has sex with men\n * HIV.B.DE53: Trans and gender-diverse people | Client identifies as trans and gender-diverse\n * HIV.B.DE54: People who inject drugs | Client is a person who injects drugs\n * HIV.B.DE55: People living in prisons and other closed settings | Client lives in a prison or another closed setting\n * 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.\n * HIV.B.DE116: HIV-positive | Client is HIV-positive\n * HIV.B.DE117: HIV-negative | Client is HIV-negative\n * HIV.B.DE118: Unknown | Client has unknown HIV status\n * HIV.B.DE255: Gonorrhoea test date | Date of Gonorrhoea test\n * HIV.B.DE256: Gonorrhoea test result | Result from Gonorrhoea test\n * HIV.B.DE257: Positive | Test result is positive for Neisseria gonorrhoeae\n * HIV.B.DE258: Negative | Test result is negative for Neisseria gonorrhoeae\n * HIV.B.DE259: Inconclusive | Test result is inconclusive\n * HIV.B.DE261: Type of specimen | Type of specimen to be collected\n * HIV.B.DE262: Blood | Blood specimen to be collected\n * HIV.B.DE263: Urine | Urine specimen to be collected\n * HIV.B.DE264: Cervical or vaginal swab | Cervical or vaginal swab to be collected\n * HIV.B.DE265: Urethral or penile swab | Urethral or penile swab to be collected\n * HIV.B.DE266: Rectal swab | Rectal swab to be collected\n * HIV.B.DE267: Other | Other specimen type to be collected\n * HIV.B.DE276: Neisseria gonorrhoeae test type | Type of diagnostic test used for Neisseria gonorrhoeae\n * HIV.B.DE277: NAAT | Nucleic Acid Amplification Test (NAAT) used\n * HIV.B.DE278: POC Test | Point-of-care (POC) test used\n * HIV.B.DE279: Culture | Culture test used\n * HIV.B.DE280: Microscopy | Microscopy test used\n * HIV.B.DE281: Other | Other type of test used\n * HIV.D.DE807: Gonorrhoea test date | Date of Gonorrhoea test\n * HIV.D.DE808: Gonorrhoea test result | Result from Gonorrhoea test\n * HIV.D.DE809: Positive | Test result is positive for Neisseria gonorrhoeae\n * HIV.D.DE810: Negative | Test result is negative for Neisseria gonorrhoeae\n * HIV.D.DE811: Inconclusive | Test result is inconclusive\n * HIV.D.DE813: Type of specimen | Type of specimen to be collected\n * HIV.D.DE814: Blood | Blood specimen to be collected\n * HIV.D.DE815: Urine | Urine specimen to be collected\n * HIV.D.DE816: Cervical or vaginal swab | Cervical or vaginal swab to be collected\n * HIV.D.DE817: Urethral or penile swab | Urethral or penile swab to be collected\n * HIV.D.DE818: Rectal swab | Rectal swab to be collected\n * HIV.D.DE819: Other | Other specimen type to be collected\n * HIV.D.DE828: Neisseria gonorrhoeae test type | Type of diagnostic test used for Neisseria gonorrhoeae\n * HIV.D.DE829: NAAT | Nucleic Acid Amplification Test (NAAT) used\n * HIV.D.DE830: POC Test | Point-of-care (POC) test used\n * HIV.D.DE831: Culture | Culture test used\n * HIV.D.DE832: Microscopy | Microscopy test used\n * HIV.D.DE833: Other | Other type of test used\n * HIV.E.DE114: Key population member type* | The type of key population that the infant's mother is included in\n * HIV.E.DE115: Sex worker | Infant's mother is a sex worker\n * HIV.E.DE116: People who inject drugs | Infant's mother is a person who injects drugs\n * HIV.E.DE117: Trans and gender-diverse people | Infant's mother identifies as trans and gender-diverse\n * HIV.E.DE118: People living in prisons and other closed setting | Infant's mother is in a prison or closed setting\n * HIV.PRV.DE2: HIV prevention intervention | HIV prevention intervention that client accessed\n * HIV.PRV.DE3: PrEP service | Client accessed PrEP services\n * HIV.PRV.DE4: OAMT | Client accessed opioid agonist maintenance treatment (OAMT) services\n * HIV.PRV.DE5: NSP | Client accessed needle-syringe programme (NSP) services\n * HIV.PRV.DE6: STI services | Client accessed sexually transmitted infection (STI) services\n * HIV.PRV.DE7: VMMC | Client accessed voluntary medical male circumcision (VMMC) services\n * HIV.PRV.DE8: Other | Client accessed other HIV prevention services\n * HIV.PRV.DE10: Date accessed HIV prevention intervention | Date the client accessed HIV prevention intervention\n *\n * Additional Context\n * - what it measures: A: % of people attending HIV prevention services who were tested for gonorrhoea and | had a positive test result during the reporting period | B: % of people living with HIV who were tested for gonorrhoea and had a positive test result during the reporting period\n * - rationale: • Gonorrhoea test positivity can be used to highlight areas within a country that require additional support and provide early warning of potential changes in HIV and sexually transmitted infection transmission in the general population. | • Gonorrhoea test positivity is important information for generating national, regional and global incidence and prevalence estimates for gonorrhoea. | • Data on gonorrhoea test positivity are important for understanding the challenges imposed by increasing resistance to currently recommended treatment options.\n * - method: Individual-level data obtained from programme records.   |  | If individual-level data are not available, the indicator can be reported using aggregate programme data.\n * \n * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm\n */\n\nlibrary HIVIND72Logic\n\n// Included Libraries\nusing FHIR version '4.0.1'\n\ninclude HIVCommon version '0.0.1' called HIC\ninclude FHIRHelpers version '4.0.1'\n\ninclude WHOCommon called WCom\n\n// Indicator Definition\nparameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2023-01-01, @2023-01-30]\n\ncontext Patient\n/* Populations */\n\n/*\n *Initial Population\n */\n\ndefine &quot;Initial Population&quot;:\n  true\n\n/**\n * Numerator\n * \n * Definition: Number of people attending HIV prevention services who tested positive for gonorrhoea during the reporting period\n * Calculation: COUNT of clients with &quot;Gonorrhoea test date&quot; in the reporting period AND &quot;Gonorrhoea test result&quot;='Positive'\n */\n\ndefine &quot;Numerator&quot;:\n  true\n\n\n/**\n * Denominator\n *\n * Definition: Number of people attending HIV prevention services tested for gonorrhoea (using a molecular test, culture or POC test) during the reporting period\n * Calculation: COUNT of clients with &quot;Gonorrhoea test date&quot; on &quot;Date accessed HIV prevention intervention&quot; in the reporting period\n */\n\ndefine &quot;Denominator&quot;:\n  true\n    \n\n/* end Populations */\n\n</code></pre><p><code>Content not shown - (</code><code>application/elm+xml</code>, size = 15Kb )</p></div>"
  ] ; # 
  fhir:extension ( [
fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability"^^xsd:anyURI ] ;
fhir:value [ fhir:v "computable" ]
  ] ) ; # 
  fhir:url [ fhir:v "http://smart.who.int/hiv/Library/HIVIND72Logic"^^xsd:anyURI] ; # 
  fhir:version [ fhir:v "0.3.0"] ; # 
  fhir:name [ fhir:v "HIVIND72Logic"] ; # 
  fhir:title [ fhir:v "HIV.IND.72 Logic"] ; # 
  fhir:status [ fhir:v "draft"] ; # 
  fhir:experimental [ fhir:v "true"^^xsd:boolean] ; # 
  fhir:type [
    ( fhir:coding [
fhir:system [ fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ] ;
fhir:code [ fhir:v "logic-library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2024-08-18T19:14:17+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "WHO"] ; # 
  fhir:contact ( [
fhir:name [ fhir:v "WHO" ] ;
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://who.int" ]     ] )
  ] ) ; # 
  fhir:description [ fhir:v "% of people who tested positive for gonorrhoea during the reporting period"] ; # 
  fhir:relatedArtifact ( [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library HIC" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/HIVCommon|0.0.1"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/HIVCommon|0.0.1>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library WCom" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/WHOCommon"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/WHOCommon>     ]
  ] ) ; # 
  fhir:parameter ( [
fhir:name [ fhir:v "Measurement Period" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Period" ]
  ] [
fhir:name [ fhir:v "Patient" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Patient" ]
  ] [
fhir:name [ fhir:v "Initial Population" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "Numerator" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "Denominator" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] ) ; # 
  fhir:content ( [
fhir:contentType [ fhir:v "text/cql" ] ;
fhir:data [ fhir:v "LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuNzIgTG9naWMKICogUmVmIE5vOiBTVEkuNUEKICogU2hvcnQgTmFtZTogR29ub3JyaG9lYSB0ZXN0IHBvc2l0aXZpdHksIEhJViBwcmV2ZW50aW9uIHNlcnZpY2VzCiAqCiAqIERlZmluaXRpb246ICUgb2YgcGVvcGxlIHdobyB0ZXN0ZWQgcG9zaXRpdmUgZm9yIGdvbm9ycmhvZWEgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqCiAqIE51bWVyYXRvcjogTnVtYmVyIG9mIHBlb3BsZSBhdHRlbmRpbmcgSElWIHByZXZlbnRpb24gc2VydmljZXMgd2hvIHRlc3RlZCBwb3NpdGl2ZSBmb3IgZ29ub3JyaG9lYSBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogTnVtZXJhdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggIkdvbm9ycmhvZWEgdGVzdCBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgIkdvbm9ycmhvZWEgdGVzdCByZXN1bHQiPSdQb3NpdGl2ZScKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEZW5vbWluYXRvcjogTnVtYmVyIG9mIHBlb3BsZSBhdHRlbmRpbmcgSElWIHByZXZlbnRpb24gc2VydmljZXMgdGVzdGVkIGZvciBnb25vcnJob2VhICh1c2luZyBhIG1vbGVjdWxhciB0ZXN0LCBjdWx0dXJlIG9yIFBPQyB0ZXN0KSBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogRGVub21pbmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAiR29ub3JyaG9lYSB0ZXN0IGRhdGUiIG9uICJEYXRlIGFjY2Vzc2VkIEhJViBwcmV2ZW50aW9uIGludGVydmVudGlvbiIgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QKICogRGVub21pbmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERpc2FnZ3JlZ2F0aW9uczoKICog4oCiwqBHZW5kZXIgKG1hbGUsIGZlbWFsZSwgb3RoZXIqKSAKICogIOKAosKgQWdlICgxNeKAkzE5LCAyMOKAkzI0LCAyNeKAkzI5LCAzMOKAkzQ5LCA1MCsgeWVhcnMpIAogKiAg4oCiwqBLZXkgcG9wdWxhdGlvbnMgKG1lbiB3aG8gaGF2ZSBzZXggd2l0aCBtZW4sIHBlb3BsZSBsaXZpbmcgaW4gcHJpc29ucyBhbmQgb3RoZXIgY2xvc2VkIHNldHRpbmdzLCBwZW9wbGUgd2hvIGluamVjdCBkcnVncywgc2V4IHdvcmtlcnMsIHRyYW5zIGFuZCBnZW5kZXIgZGl2ZXJzZSBwZW9wbGUpKiogCiAqICDigKLCoEhJViBzdGF0dXMgKEhJVi1wb3NpdGl2ZSwgSElWLW5lZ2F0aXZlLCB1bmtub3duIHN0YXR1cykgCiAqICDigKLCoEhJViBwcmV2ZW50aW9uIGludGVydmVudGlvbiAoZm9yIGV4YW1wbGUsIFByRVApIAogKiAg4oCiwqBEaWFnbm9zdGljIHRlc3QgdXNlZCBhbmQgYW5hdG9taWMgc2l0ZSBzYW1wbGVkIAogKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBHZW5kZXIgfCBBZ2UgfCBLZXkgcG9wdWxhdGlvbiBtZW1iZXIgdHlwZSB8IEhJViBzdGF0dXMgfCBISVYgcHJldmVudGlvbiBpbnRlcnZlbnRpb24gfCBUeXBlIG9mIHNwZWNpbWVuIHwgTmVpc3NlcmlhIGdvbm9ycmhvZWFlIHRlc3QgdHlwZQogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBEYXRlIGFjY2Vzc2VkIEhJViBwcmV2ZW50aW9uIGludGVydmVudGlvbiAKICogIEdvbm9ycmhvZWEgdGVzdCBkYXRlIAogKiAgR29ub3JyaG9lYSB0ZXN0IHJlc3VsdAogKgogKiBSZWZlcmVuY2U6IENvbnNvbGlkYXRlZCBndWlkZWxpbmVzIG9uIHBlcnNvbi1jZW50cmVkIEhJViBzdHJhdGVnaWMgaW5mb3JtYXRpb246IHN0cmVuZ3RoZW5pbmcgcm91dGluZSBkYXRhIGZvciBpbXBhY3QuIEdlbmV2YTogV29ybGQgSGVhbHRoIE9yZ2FuaXphdGlvbjsgMjAyMgogKiAKICogRGF0YSBDb25jZXB0czoKICogSElWLkEuREUxNzogQWdlIHwgQ2FsY3VsYXRlZCBhZ2UgKG51bWJlciBvZiB5ZWFycykgb2YgdGhlIGNsaWVudCBiYXNlZCBvbiBkYXRlIG9mIGJpcnRoCiAqIEhJVi5BLkRFMTg6IEdlbmRlciogfCBHZW5kZXIgb2YgdGhlIGNsaWVudCoKICogSElWLkEuREUxOTogRmVtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgZmVtYWxlCiAqIEhJVi5BLkRFMjA6IE1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyBtYWxlCiAqIEhJVi5BLkRFMjE6IFRyYW5zZ2VuZGVyIG1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFuc2dlbmRlciBtYWxlCiAqIEhJVi5BLkRFMjI6IFRyYW5zZ2VuZGVyIGZlbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zZ2VuZGVyIGZlbWFsZQogKiBISVYuQS5ERTIzOiBPdGhlciB8IEFkZGl0aW9uYWwgY2F0ZWdvcnkKICogSElWLkIuREU1MDogS2V5IHBvcHVsYXRpb24gbWVtYmVyIHR5cGUqIHwgVGhlIHR5cGUgb2Yga2V5IHBvcHVsYXRpb24gdGhhdCB0aGUgY2xpZW50IGlzIGluY2x1ZGVkIGluCiAqIEhJVi5CLkRFNTE6IFNleCB3b3JrZXIgfCBDbGllbnQgaXMgYSBzZXggd29ya2VyCiAqIEhJVi5CLkRFNTI6IE1lbiB3aG8gaGF2ZSBzZXggd2l0aCBtZW4gfCBDbGllbnQgaXMgYSBtYW4gd2hvIGhhcyBzZXggd2l0aCBtZW4KICogSElWLkIuREU1MzogVHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlIHBlb3BsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zIGFuZCBnZW5kZXItZGl2ZXJzZQogKiBISVYuQi5ERTU0OiBQZW9wbGUgd2hvIGluamVjdCBkcnVncyB8IENsaWVudCBpcyBhIHBlcnNvbiB3aG8gaW5qZWN0cyBkcnVncwogKiBISVYuQi5ERTU1OiBQZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5ncyB8IENsaWVudCBsaXZlcyBpbiBhIHByaXNvbiBvciBhbm90aGVyIGNsb3NlZCBzZXR0aW5nCiAqIEhJVi5CLkRFMTE1OiBISVYgc3RhdHVzIHwgSElWIHN0YXR1cyByZXBvcnRlZCBhZnRlciBhcHBseWluZyB0aGUgbmF0aW9uYWwgSElWIHRlc3RpbmcgYWxnb3JpdGhtLiBObyBzaW5nbGUgSElWIHRlc3QgY2FuIHByb3ZpZGUgYW4gSElWLXBvc2l0aXZlIGRpYWdub3Npcy4KICogSElWLkIuREUxMTY6IEhJVi1wb3NpdGl2ZSB8IENsaWVudCBpcyBISVYtcG9zaXRpdmUKICogSElWLkIuREUxMTc6IEhJVi1uZWdhdGl2ZSB8IENsaWVudCBpcyBISVYtbmVnYXRpdmUKICogSElWLkIuREUxMTg6IFVua25vd24gfCBDbGllbnQgaGFzIHVua25vd24gSElWIHN0YXR1cwogKiBISVYuQi5ERTI1NTogR29ub3JyaG9lYSB0ZXN0IGRhdGUgfCBEYXRlIG9mIEdvbm9ycmhvZWEgdGVzdAogKiBISVYuQi5ERTI1NjogR29ub3JyaG9lYSB0ZXN0IHJlc3VsdCB8IFJlc3VsdCBmcm9tIEdvbm9ycmhvZWEgdGVzdAogKiBISVYuQi5ERTI1NzogUG9zaXRpdmUgfCBUZXN0IHJlc3VsdCBpcyBwb3NpdGl2ZSBmb3IgTmVpc3NlcmlhIGdvbm9ycmhvZWFlCiAqIEhJVi5CLkRFMjU4OiBOZWdhdGl2ZSB8IFRlc3QgcmVzdWx0IGlzIG5lZ2F0aXZlIGZvciBOZWlzc2VyaWEgZ29ub3JyaG9lYWUKICogSElWLkIuREUyNTk6IEluY29uY2x1c2l2ZSB8IFRlc3QgcmVzdWx0IGlzIGluY29uY2x1c2l2ZQogKiBISVYuQi5ERTI2MTogVHlwZSBvZiBzcGVjaW1lbiB8IFR5cGUgb2Ygc3BlY2ltZW4gdG8gYmUgY29sbGVjdGVkCiAqIEhJVi5CLkRFMjYyOiBCbG9vZCB8IEJsb29kIHNwZWNpbWVuIHRvIGJlIGNvbGxlY3RlZAogKiBISVYuQi5ERTI2MzogVXJpbmUgfCBVcmluZSBzcGVjaW1lbiB0byBiZSBjb2xsZWN0ZWQKICogSElWLkIuREUyNjQ6IENlcnZpY2FsIG9yIHZhZ2luYWwgc3dhYiB8IENlcnZpY2FsIG9yIHZhZ2luYWwgc3dhYiB0byBiZSBjb2xsZWN0ZWQKICogSElWLkIuREUyNjU6IFVyZXRocmFsIG9yIHBlbmlsZSBzd2FiIHwgVXJldGhyYWwgb3IgcGVuaWxlIHN3YWIgdG8gYmUgY29sbGVjdGVkCiAqIEhJVi5CLkRFMjY2OiBSZWN0YWwgc3dhYiB8IFJlY3RhbCBzd2FiIHRvIGJlIGNvbGxlY3RlZAogKiBISVYuQi5ERTI2NzogT3RoZXIgfCBPdGhlciBzcGVjaW1lbiB0eXBlIHRvIGJlIGNvbGxlY3RlZAogKiBISVYuQi5ERTI3NjogTmVpc3NlcmlhIGdvbm9ycmhvZWFlIHRlc3QgdHlwZSB8IFR5cGUgb2YgZGlhZ25vc3RpYyB0ZXN0IHVzZWQgZm9yIE5laXNzZXJpYSBnb25vcnJob2VhZQogKiBISVYuQi5ERTI3NzogTkFBVCB8IE51Y2xlaWMgQWNpZCBBbXBsaWZpY2F0aW9uIFRlc3QgKE5BQVQpIHVzZWQKICogSElWLkIuREUyNzg6IFBPQyBUZXN0IHwgUG9pbnQtb2YtY2FyZSAoUE9DKSB0ZXN0IHVzZWQKICogSElWLkIuREUyNzk6IEN1bHR1cmUgfCBDdWx0dXJlIHRlc3QgdXNlZAogKiBISVYuQi5ERTI4MDogTWljcm9zY29weSB8IE1pY3Jvc2NvcHkgdGVzdCB1c2VkCiAqIEhJVi5CLkRFMjgxOiBPdGhlciB8IE90aGVyIHR5cGUgb2YgdGVzdCB1c2VkCiAqIEhJVi5ELkRFODA3OiBHb25vcnJob2VhIHRlc3QgZGF0ZSB8IERhdGUgb2YgR29ub3JyaG9lYSB0ZXN0CiAqIEhJVi5ELkRFODA4OiBHb25vcnJob2VhIHRlc3QgcmVzdWx0IHwgUmVzdWx0IGZyb20gR29ub3JyaG9lYSB0ZXN0CiAqIEhJVi5ELkRFODA5OiBQb3NpdGl2ZSB8IFRlc3QgcmVzdWx0IGlzIHBvc2l0aXZlIGZvciBOZWlzc2VyaWEgZ29ub3JyaG9lYWUKICogSElWLkQuREU4MTA6IE5lZ2F0aXZlIHwgVGVzdCByZXN1bHQgaXMgbmVnYXRpdmUgZm9yIE5laXNzZXJpYSBnb25vcnJob2VhZQogKiBISVYuRC5ERTgxMTogSW5jb25jbHVzaXZlIHwgVGVzdCByZXN1bHQgaXMgaW5jb25jbHVzaXZlCiAqIEhJVi5ELkRFODEzOiBUeXBlIG9mIHNwZWNpbWVuIHwgVHlwZSBvZiBzcGVjaW1lbiB0byBiZSBjb2xsZWN0ZWQKICogSElWLkQuREU4MTQ6IEJsb29kIHwgQmxvb2Qgc3BlY2ltZW4gdG8gYmUgY29sbGVjdGVkCiAqIEhJVi5ELkRFODE1OiBVcmluZSB8IFVyaW5lIHNwZWNpbWVuIHRvIGJlIGNvbGxlY3RlZAogKiBISVYuRC5ERTgxNjogQ2VydmljYWwgb3IgdmFnaW5hbCBzd2FiIHwgQ2VydmljYWwgb3IgdmFnaW5hbCBzd2FiIHRvIGJlIGNvbGxlY3RlZAogKiBISVYuRC5ERTgxNzogVXJldGhyYWwgb3IgcGVuaWxlIHN3YWIgfCBVcmV0aHJhbCBvciBwZW5pbGUgc3dhYiB0byBiZSBjb2xsZWN0ZWQKICogSElWLkQuREU4MTg6IFJlY3RhbCBzd2FiIHwgUmVjdGFsIHN3YWIgdG8gYmUgY29sbGVjdGVkCiAqIEhJVi5ELkRFODE5OiBPdGhlciB8IE90aGVyIHNwZWNpbWVuIHR5cGUgdG8gYmUgY29sbGVjdGVkCiAqIEhJVi5ELkRFODI4OiBOZWlzc2VyaWEgZ29ub3JyaG9lYWUgdGVzdCB0eXBlIHwgVHlwZSBvZiBkaWFnbm9zdGljIHRlc3QgdXNlZCBmb3IgTmVpc3NlcmlhIGdvbm9ycmhvZWFlCiAqIEhJVi5ELkRFODI5OiBOQUFUIHwgTnVjbGVpYyBBY2lkIEFtcGxpZmljYXRpb24gVGVzdCAoTkFBVCkgdXNlZAogKiBISVYuRC5ERTgzMDogUE9DIFRlc3QgfCBQb2ludC1vZi1jYXJlIChQT0MpIHRlc3QgdXNlZAogKiBISVYuRC5ERTgzMTogQ3VsdHVyZSB8IEN1bHR1cmUgdGVzdCB1c2VkCiAqIEhJVi5ELkRFODMyOiBNaWNyb3Njb3B5IHwgTWljcm9zY29weSB0ZXN0IHVzZWQKICogSElWLkQuREU4MzM6IE90aGVyIHwgT3RoZXIgdHlwZSBvZiB0ZXN0IHVzZWQKICogSElWLkUuREUxMTQ6IEtleSBwb3B1bGF0aW9uIG1lbWJlciB0eXBlKiB8IFRoZSB0eXBlIG9mIGtleSBwb3B1bGF0aW9uIHRoYXQgdGhlIGluZmFudCdzIG1vdGhlciBpcyBpbmNsdWRlZCBpbgogKiBISVYuRS5ERTExNTogU2V4IHdvcmtlciB8IEluZmFudCdzIG1vdGhlciBpcyBhIHNleCB3b3JrZXIKICogSElWLkUuREUxMTY6IFBlb3BsZSB3aG8gaW5qZWN0IGRydWdzIHwgSW5mYW50J3MgbW90aGVyIGlzIGEgcGVyc29uIHdobyBpbmplY3RzIGRydWdzCiAqIEhJVi5FLkRFMTE3OiBUcmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UgcGVvcGxlIHwgSW5mYW50J3MgbW90aGVyIGlkZW50aWZpZXMgYXMgdHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlCiAqIEhJVi5FLkRFMTE4OiBQZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5nIHwgSW5mYW50J3MgbW90aGVyIGlzIGluIGEgcHJpc29uIG9yIGNsb3NlZCBzZXR0aW5nCiAqIEhJVi5QUlYuREUyOiBISVYgcHJldmVudGlvbiBpbnRlcnZlbnRpb24gfCBISVYgcHJldmVudGlvbiBpbnRlcnZlbnRpb24gdGhhdCBjbGllbnQgYWNjZXNzZWQKICogSElWLlBSVi5ERTM6IFByRVAgc2VydmljZSB8IENsaWVudCBhY2Nlc3NlZCBQckVQIHNlcnZpY2VzCiAqIEhJVi5QUlYuREU0OiBPQU1UIHwgQ2xpZW50IGFjY2Vzc2VkIG9waW9pZCBhZ29uaXN0IG1haW50ZW5hbmNlIHRyZWF0bWVudCAoT0FNVCkgc2VydmljZXMKICogSElWLlBSVi5ERTU6IE5TUCB8IENsaWVudCBhY2Nlc3NlZCBuZWVkbGUtc3lyaW5nZSBwcm9ncmFtbWUgKE5TUCkgc2VydmljZXMKICogSElWLlBSVi5ERTY6IFNUSSBzZXJ2aWNlcyB8IENsaWVudCBhY2Nlc3NlZCBzZXh1YWxseSB0cmFuc21pdHRlZCBpbmZlY3Rpb24gKFNUSSkgc2VydmljZXMKICogSElWLlBSVi5ERTc6IFZNTUMgfCBDbGllbnQgYWNjZXNzZWQgdm9sdW50YXJ5IG1lZGljYWwgbWFsZSBjaXJjdW1jaXNpb24gKFZNTUMpIHNlcnZpY2VzCiAqIEhJVi5QUlYuREU4OiBPdGhlciB8IENsaWVudCBhY2Nlc3NlZCBvdGhlciBISVYgcHJldmVudGlvbiBzZXJ2aWNlcwogKiBISVYuUFJWLkRFMTA6IERhdGUgYWNjZXNzZWQgSElWIHByZXZlbnRpb24gaW50ZXJ2ZW50aW9uIHwgRGF0ZSB0aGUgY2xpZW50IGFjY2Vzc2VkIEhJViBwcmV2ZW50aW9uIGludGVydmVudGlvbgogKgogKiBBZGRpdGlvbmFsIENvbnRleHQKICogLSB3aGF0IGl0IG1lYXN1cmVzOiBBOiAlIG9mIHBlb3BsZSBhdHRlbmRpbmcgSElWIHByZXZlbnRpb24gc2VydmljZXMgd2hvIHdlcmUgdGVzdGVkIGZvciBnb25vcnJob2VhIGFuZCB8IGhhZCBhIHBvc2l0aXZlIHRlc3QgcmVzdWx0IGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCB8IEI6ICUgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViB3aG8gd2VyZSB0ZXN0ZWQgZm9yIGdvbm9ycmhvZWEgYW5kIGhhZCBhIHBvc2l0aXZlIHRlc3QgcmVzdWx0IGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiAtIHJhdGlvbmFsZTog4oCiwqBHb25vcnJob2VhIHRlc3QgcG9zaXRpdml0eSBjYW4gYmUgdXNlZCB0byBoaWdobGlnaHQgYXJlYXMgd2l0aGluIGEgY291bnRyeSB0aGF0IHJlcXVpcmUgYWRkaXRpb25hbCBzdXBwb3J0IGFuZCBwcm92aWRlIGVhcmx5IHdhcm5pbmcgb2YgcG90ZW50aWFsIGNoYW5nZXMgaW4gSElWIGFuZCBzZXh1YWxseSB0cmFuc21pdHRlZCBpbmZlY3Rpb24gdHJhbnNtaXNzaW9uIGluIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24uIHwg4oCiwqBHb25vcnJob2VhIHRlc3QgcG9zaXRpdml0eSBpcyBpbXBvcnRhbnQgaW5mb3JtYXRpb24gZm9yIGdlbmVyYXRpbmcgbmF0aW9uYWwsIHJlZ2lvbmFsIGFuZCBnbG9iYWwgaW5jaWRlbmNlIGFuZCBwcmV2YWxlbmNlIGVzdGltYXRlcyBmb3IgZ29ub3JyaG9lYS4gfCDigKIgRGF0YSBvbiBnb25vcnJob2VhIHRlc3QgcG9zaXRpdml0eSBhcmUgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjaGFsbGVuZ2VzIGltcG9zZWQgYnkgaW5jcmVhc2luZyByZXNpc3RhbmNlIHRvIGN1cnJlbnRseSByZWNvbW1lbmRlZCB0cmVhdG1lbnQgb3B0aW9ucy4KICogLSBtZXRob2Q6IEluZGl2aWR1YWwtbGV2ZWwgZGF0YSBvYnRhaW5lZCBmcm9tIHByb2dyYW1tZSByZWNvcmRzLiAgIHwgIHwgSWYgaW5kaXZpZHVhbC1sZXZlbCBkYXRhIGFyZSBub3QgYXZhaWxhYmxlLCB0aGUgaW5kaWNhdG9yIGNhbiBiZSByZXBvcnRlZCB1c2luZyBhZ2dyZWdhdGUgcHJvZ3JhbW1lIGRhdGEuCiAqIAogKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDcyTG9naWMKCi8vIEluY2x1ZGVkIExpYnJhcmllcwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBISVZDb21tb24gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUMKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQ29tCgovLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZT4gZGVmYXVsdCBJbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdCgpjb250ZXh0IFBhdGllbnQKLyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogIHRydWUKCi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgYXR0ZW5kaW5nIEhJViBwcmV2ZW50aW9uIHNlcnZpY2VzIHdobyB0ZXN0ZWQgcG9zaXRpdmUgZm9yIGdvbm9ycmhvZWEgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggIkdvbm9ycmhvZWEgdGVzdCBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgIkdvbm9ycmhvZWEgdGVzdCByZXN1bHQiPSdQb3NpdGl2ZScKICovCgpkZWZpbmUgIk51bWVyYXRvciI6CiAgdHJ1ZQoKCi8qKgogKiBEZW5vbWluYXRvcgogKgogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2YgcGVvcGxlIGF0dGVuZGluZyBISVYgcHJldmVudGlvbiBzZXJ2aWNlcyB0ZXN0ZWQgZm9yIGdvbm9ycmhvZWEgKHVzaW5nIGEgbW9sZWN1bGFyIHRlc3QsIGN1bHR1cmUgb3IgUE9DIHRlc3QpIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJHb25vcnJob2VhIHRlc3QgZGF0ZSIgb24gIkRhdGUgYWNjZXNzZWQgSElWIHByZXZlbnRpb24gaW50ZXJ2ZW50aW9uIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKi8KCmRlZmluZSAiRGVub21pbmF0b3IiOgogIHRydWUKICAgIAoKLyogZW5kIFBvcHVsYXRpb25zICovCgo="^^xsd:base64Binary ]
  ] [
fhir:contentType [ fhir:v "application/elm+xml" ] ;
fhir:data [ fhir:v "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iTm9uZSIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1JbmZvIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICA8YTpzIHI9IjE2Ij4KICAgICAgICAgPGE6cz4vKioKICogTGlicmFyeTogSElWLklORC43MiBMb2dpYwogKiBSZWYgTm86IFNUSS41QQogKiBTaG9ydCBOYW1lOiBHb25vcnJob2VhIHRlc3QgcG9zaXRpdml0eSwgSElWIHByZXZlbnRpb24gc2VydmljZXMKICoKICogRGVmaW5pdGlvbjogJSBvZiBwZW9wbGUgd2hvIHRlc3RlZCBwb3NpdGl2ZSBmb3IgZ29ub3JyaG9lYSBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICoKICogTnVtZXJhdG9yOiBOdW1iZXIgb2YgcGVvcGxlIGF0dGVuZGluZyBISVYgcHJldmVudGlvbiBzZXJ2aWNlcyB3aG8gdGVzdGVkIHBvc2l0aXZlIGZvciBnb25vcnJob2VhIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBOdW1lcmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAmcXVvdDtHb25vcnJob2VhIHRlc3QgZGF0ZSZxdW90OyBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgJnF1b3Q7R29ub3JyaG9lYSB0ZXN0IHJlc3VsdCZxdW90Oz0nUG9zaXRpdmUnCiAqIE51bWVyYXRvciBFeGNsdXNpb25zOiAKICoKICogRGVub21pbmF0b3I6IE51bWJlciBvZiBwZW9wbGUgYXR0ZW5kaW5nIEhJViBwcmV2ZW50aW9uIHNlcnZpY2VzIHRlc3RlZCBmb3IgZ29ub3JyaG9lYSAodXNpbmcgYSBtb2xlY3VsYXIgdGVzdCwgY3VsdHVyZSBvciBQT0MgdGVzdCkgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggJnF1b3Q7R29ub3JyaG9lYSB0ZXN0IGRhdGUmcXVvdDsgb24gJnF1b3Q7RGF0ZSBhY2Nlc3NlZCBISVYgcHJldmVudGlvbiBpbnRlcnZlbnRpb24mcXVvdDsgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QKICogRGVub21pbmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERpc2FnZ3JlZ2F0aW9uczoKICog4oCiwqBHZW5kZXIgKG1hbGUsIGZlbWFsZSwgb3RoZXIqKSAKICogIOKAosKgQWdlICgxNeKAkzE5LCAyMOKAkzI0LCAyNeKAkzI5LCAzMOKAkzQ5LCA1MCsgeWVhcnMpIAogKiAg4oCiwqBLZXkgcG9wdWxhdGlvbnMgKG1lbiB3aG8gaGF2ZSBzZXggd2l0aCBtZW4sIHBlb3BsZSBsaXZpbmcgaW4gcHJpc29ucyBhbmQgb3RoZXIgY2xvc2VkIHNldHRpbmdzLCBwZW9wbGUgd2hvIGluamVjdCBkcnVncywgc2V4IHdvcmtlcnMsIHRyYW5zIGFuZCBnZW5kZXIgZGl2ZXJzZSBwZW9wbGUpKiogCiAqICDigKLCoEhJViBzdGF0dXMgKEhJVi1wb3NpdGl2ZSwgSElWLW5lZ2F0aXZlLCB1bmtub3duIHN0YXR1cykgCiAqICDigKLCoEhJViBwcmV2ZW50aW9uIGludGVydmVudGlvbiAoZm9yIGV4YW1wbGUsIFByRVApIAogKiAg4oCiwqBEaWFnbm9zdGljIHRlc3QgdXNlZCBhbmQgYW5hdG9taWMgc2l0ZSBzYW1wbGVkIAogKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBHZW5kZXIgfCBBZ2UgfCBLZXkgcG9wdWxhdGlvbiBtZW1iZXIgdHlwZSB8IEhJViBzdGF0dXMgfCBISVYgcHJldmVudGlvbiBpbnRlcnZlbnRpb24gfCBUeXBlIG9mIHNwZWNpbWVuIHwgTmVpc3NlcmlhIGdvbm9ycmhvZWFlIHRlc3QgdHlwZQogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBEYXRlIGFjY2Vzc2VkIEhJViBwcmV2ZW50aW9uIGludGVydmVudGlvbiAKICogIEdvbm9ycmhvZWEgdGVzdCBkYXRlIAogKiAgR29ub3JyaG9lYSB0ZXN0IHJlc3VsdAogKgogKiBSZWZlcmVuY2U6IENvbnNvbGlkYXRlZCBndWlkZWxpbmVzIG9uIHBlcnNvbi1jZW50cmVkIEhJViBzdHJhdGVnaWMgaW5mb3JtYXRpb246IHN0cmVuZ3RoZW5pbmcgcm91dGluZSBkYXRhIGZvciBpbXBhY3QuIEdlbmV2YTogV29ybGQgSGVhbHRoIE9yZ2FuaXphdGlvbjsgMjAyMgogKiAKICogRGF0YSBDb25jZXB0czoKICogSElWLkEuREUxNzogQWdlIHwgQ2FsY3VsYXRlZCBhZ2UgKG51bWJlciBvZiB5ZWFycykgb2YgdGhlIGNsaWVudCBiYXNlZCBvbiBkYXRlIG9mIGJpcnRoCiAqIEhJVi5BLkRFMTg6IEdlbmRlciogfCBHZW5kZXIgb2YgdGhlIGNsaWVudCoKICogSElWLkEuREUxOTogRmVtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgZmVtYWxlCiAqIEhJVi5BLkRFMjA6IE1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyBtYWxlCiAqIEhJVi5BLkRFMjE6IFRyYW5zZ2VuZGVyIG1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFuc2dlbmRlciBtYWxlCiAqIEhJVi5BLkRFMjI6IFRyYW5zZ2VuZGVyIGZlbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zZ2VuZGVyIGZlbWFsZQogKiBISVYuQS5ERTIzOiBPdGhlciB8IEFkZGl0aW9uYWwgY2F0ZWdvcnkKICogSElWLkIuREU1MDogS2V5IHBvcHVsYXRpb24gbWVtYmVyIHR5cGUqIHwgVGhlIHR5cGUgb2Yga2V5IHBvcHVsYXRpb24gdGhhdCB0aGUgY2xpZW50IGlzIGluY2x1ZGVkIGluCiAqIEhJVi5CLkRFNTE6IFNleCB3b3JrZXIgfCBDbGllbnQgaXMgYSBzZXggd29ya2VyCiAqIEhJVi5CLkRFNTI6IE1lbiB3aG8gaGF2ZSBzZXggd2l0aCBtZW4gfCBDbGllbnQgaXMgYSBtYW4gd2hvIGhhcyBzZXggd2l0aCBtZW4KICogSElWLkIuREU1MzogVHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlIHBlb3BsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zIGFuZCBnZW5kZXItZGl2ZXJzZQogKiBISVYuQi5ERTU0OiBQZW9wbGUgd2hvIGluamVjdCBkcnVncyB8IENsaWVudCBpcyBhIHBlcnNvbiB3aG8gaW5qZWN0cyBkcnVncwogKiBISVYuQi5ERTU1OiBQZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5ncyB8IENsaWVudCBsaXZlcyBpbiBhIHByaXNvbiBvciBhbm90aGVyIGNsb3NlZCBzZXR0aW5nCiAqIEhJVi5CLkRFMTE1OiBISVYgc3RhdHVzIHwgSElWIHN0YXR1cyByZXBvcnRlZCBhZnRlciBhcHBseWluZyB0aGUgbmF0aW9uYWwgSElWIHRlc3RpbmcgYWxnb3JpdGhtLiBObyBzaW5nbGUgSElWIHRlc3QgY2FuIHByb3ZpZGUgYW4gSElWLXBvc2l0aXZlIGRpYWdub3Npcy4KICogSElWLkIuREUxMTY6IEhJVi1wb3NpdGl2ZSB8IENsaWVudCBpcyBISVYtcG9zaXRpdmUKICogSElWLkIuREUxMTc6IEhJVi1uZWdhdGl2ZSB8IENsaWVudCBpcyBISVYtbmVnYXRpdmUKICogSElWLkIuREUxMTg6IFVua25vd24gfCBDbGllbnQgaGFzIHVua25vd24gSElWIHN0YXR1cwogKiBISVYuQi5ERTI1NTogR29ub3JyaG9lYSB0ZXN0IGRhdGUgfCBEYXRlIG9mIEdvbm9ycmhvZWEgdGVzdAogKiBISVYuQi5ERTI1NjogR29ub3JyaG9lYSB0ZXN0IHJlc3VsdCB8IFJlc3VsdCBmcm9tIEdvbm9ycmhvZWEgdGVzdAogKiBISVYuQi5ERTI1NzogUG9zaXRpdmUgfCBUZXN0IHJlc3VsdCBpcyBwb3NpdGl2ZSBmb3IgTmVpc3NlcmlhIGdvbm9ycmhvZWFlCiAqIEhJVi5CLkRFMjU4OiBOZWdhdGl2ZSB8IFRlc3QgcmVzdWx0IGlzIG5lZ2F0aXZlIGZvciBOZWlzc2VyaWEgZ29ub3JyaG9lYWUKICogSElWLkIuREUyNTk6IEluY29uY2x1c2l2ZSB8IFRlc3QgcmVzdWx0IGlzIGluY29uY2x1c2l2ZQogKiBISVYuQi5ERTI2MTogVHlwZSBvZiBzcGVjaW1lbiB8IFR5cGUgb2Ygc3BlY2ltZW4gdG8gYmUgY29sbGVjdGVkCiAqIEhJVi5CLkRFMjYyOiBCbG9vZCB8IEJsb29kIHNwZWNpbWVuIHRvIGJlIGNvbGxlY3RlZAogKiBISVYuQi5ERTI2MzogVXJpbmUgfCBVcmluZSBzcGVjaW1lbiB0byBiZSBjb2xsZWN0ZWQKICogSElWLkIuREUyNjQ6IENlcnZpY2FsIG9yIHZhZ2luYWwgc3dhYiB8IENlcnZpY2FsIG9yIHZhZ2luYWwgc3dhYiB0byBiZSBjb2xsZWN0ZWQKICogSElWLkIuREUyNjU6IFVyZXRocmFsIG9yIHBlbmlsZSBzd2FiIHwgVXJldGhyYWwgb3IgcGVuaWxlIHN3YWIgdG8gYmUgY29sbGVjdGVkCiAqIEhJVi5CLkRFMjY2OiBSZWN0YWwgc3dhYiB8IFJlY3RhbCBzd2FiIHRvIGJlIGNvbGxlY3RlZAogKiBISVYuQi5ERTI2NzogT3RoZXIgfCBPdGhlciBzcGVjaW1lbiB0eXBlIHRvIGJlIGNvbGxlY3RlZAogKiBISVYuQi5ERTI3NjogTmVpc3NlcmlhIGdvbm9ycmhvZWFlIHRlc3QgdHlwZSB8IFR5cGUgb2YgZGlhZ25vc3RpYyB0ZXN0IHVzZWQgZm9yIE5laXNzZXJpYSBnb25vcnJob2VhZQogKiBISVYuQi5ERTI3NzogTkFBVCB8IE51Y2xlaWMgQWNpZCBBbXBsaWZpY2F0aW9uIFRlc3QgKE5BQVQpIHVzZWQKICogSElWLkIuREUyNzg6IFBPQyBUZXN0IHwgUG9pbnQtb2YtY2FyZSAoUE9DKSB0ZXN0IHVzZWQKICogSElWLkIuREUyNzk6IEN1bHR1cmUgfCBDdWx0dXJlIHRlc3QgdXNlZAogKiBISVYuQi5ERTI4MDogTWljcm9zY29weSB8IE1pY3Jvc2NvcHkgdGVzdCB1c2VkCiAqIEhJVi5CLkRFMjgxOiBPdGhlciB8IE90aGVyIHR5cGUgb2YgdGVzdCB1c2VkCiAqIEhJVi5ELkRFODA3OiBHb25vcnJob2VhIHRlc3QgZGF0ZSB8IERhdGUgb2YgR29ub3JyaG9lYSB0ZXN0CiAqIEhJVi5ELkRFODA4OiBHb25vcnJob2VhIHRlc3QgcmVzdWx0IHwgUmVzdWx0IGZyb20gR29ub3JyaG9lYSB0ZXN0CiAqIEhJVi5ELkRFODA5OiBQb3NpdGl2ZSB8IFRlc3QgcmVzdWx0IGlzIHBvc2l0aXZlIGZvciBOZWlzc2VyaWEgZ29ub3JyaG9lYWUKICogSElWLkQuREU4MTA6IE5lZ2F0aXZlIHwgVGVzdCByZXN1bHQgaXMgbmVnYXRpdmUgZm9yIE5laXNzZXJpYSBnb25vcnJob2VhZQogKiBISVYuRC5ERTgxMTogSW5jb25jbHVzaXZlIHwgVGVzdCByZXN1bHQgaXMgaW5jb25jbHVzaXZlCiAqIEhJVi5ELkRFODEzOiBUeXBlIG9mIHNwZWNpbWVuIHwgVHlwZSBvZiBzcGVjaW1lbiB0byBiZSBjb2xsZWN0ZWQKICogSElWLkQuREU4MTQ6IEJsb29kIHwgQmxvb2Qgc3BlY2ltZW4gdG8gYmUgY29sbGVjdGVkCiAqIEhJVi5ELkRFODE1OiBVcmluZSB8IFVyaW5lIHNwZWNpbWVuIHRvIGJlIGNvbGxlY3RlZAogKiBISVYuRC5ERTgxNjogQ2VydmljYWwgb3IgdmFnaW5hbCBzd2FiIHwgQ2VydmljYWwgb3IgdmFnaW5hbCBzd2FiIHRvIGJlIGNvbGxlY3RlZAogKiBISVYuRC5ERTgxNzogVXJldGhyYWwgb3IgcGVuaWxlIHN3YWIgfCBVcmV0aHJhbCBvciBwZW5pbGUgc3dhYiB0byBiZSBjb2xsZWN0ZWQKICogSElWLkQuREU4MTg6IFJlY3RhbCBzd2FiIHwgUmVjdGFsIHN3YWIgdG8gYmUgY29sbGVjdGVkCiAqIEhJVi5ELkRFODE5OiBPdGhlciB8IE90aGVyIHNwZWNpbWVuIHR5cGUgdG8gYmUgY29sbGVjdGVkCiAqIEhJVi5ELkRFODI4OiBOZWlzc2VyaWEgZ29ub3JyaG9lYWUgdGVzdCB0eXBlIHwgVHlwZSBvZiBkaWFnbm9zdGljIHRlc3QgdXNlZCBmb3IgTmVpc3NlcmlhIGdvbm9ycmhvZWFlCiAqIEhJVi5ELkRFODI5OiBOQUFUIHwgTnVjbGVpYyBBY2lkIEFtcGxpZmljYXRpb24gVGVzdCAoTkFBVCkgdXNlZAogKiBISVYuRC5ERTgzMDogUE9DIFRlc3QgfCBQb2ludC1vZi1jYXJlIChQT0MpIHRlc3QgdXNlZAogKiBISVYuRC5ERTgzMTogQ3VsdHVyZSB8IEN1bHR1cmUgdGVzdCB1c2VkCiAqIEhJVi5ELkRFODMyOiBNaWNyb3Njb3B5IHwgTWljcm9zY29weSB0ZXN0IHVzZWQKICogSElWLkQuREU4MzM6IE90aGVyIHwgT3RoZXIgdHlwZSBvZiB0ZXN0IHVzZWQKICogSElWLkUuREUxMTQ6IEtleSBwb3B1bGF0aW9uIG1lbWJlciB0eXBlKiB8IFRoZSB0eXBlIG9mIGtleSBwb3B1bGF0aW9uIHRoYXQgdGhlIGluZmFudCdzIG1vdGhlciBpcyBpbmNsdWRlZCBpbgogKiBISVYuRS5ERTExNTogU2V4IHdvcmtlciB8IEluZmFudCdzIG1vdGhlciBpcyBhIHNleCB3b3JrZXIKICogSElWLkUuREUxMTY6IFBlb3BsZSB3aG8gaW5qZWN0IGRydWdzIHwgSW5mYW50J3MgbW90aGVyIGlzIGEgcGVyc29uIHdobyBpbmplY3RzIGRydWdzCiAqIEhJVi5FLkRFMTE3OiBUcmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UgcGVvcGxlIHwgSW5mYW50J3MgbW90aGVyIGlkZW50aWZpZXMgYXMgdHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlCiAqIEhJVi5FLkRFMTE4OiBQZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5nIHwgSW5mYW50J3MgbW90aGVyIGlzIGluIGEgcHJpc29uIG9yIGNsb3NlZCBzZXR0aW5nCiAqIEhJVi5QUlYuREUyOiBISVYgcHJldmVudGlvbiBpbnRlcnZlbnRpb24gfCBISVYgcHJldmVudGlvbiBpbnRlcnZlbnRpb24gdGhhdCBjbGllbnQgYWNjZXNzZWQKICogSElWLlBSVi5ERTM6IFByRVAgc2VydmljZSB8IENsaWVudCBhY2Nlc3NlZCBQckVQIHNlcnZpY2VzCiAqIEhJVi5QUlYuREU0OiBPQU1UIHwgQ2xpZW50IGFjY2Vzc2VkIG9waW9pZCBhZ29uaXN0IG1haW50ZW5hbmNlIHRyZWF0bWVudCAoT0FNVCkgc2VydmljZXMKICogSElWLlBSVi5ERTU6IE5TUCB8IENsaWVudCBhY2Nlc3NlZCBuZWVkbGUtc3lyaW5nZSBwcm9ncmFtbWUgKE5TUCkgc2VydmljZXMKICogSElWLlBSVi5ERTY6IFNUSSBzZXJ2aWNlcyB8IENsaWVudCBhY2Nlc3NlZCBzZXh1YWxseSB0cmFuc21pdHRlZCBpbmZlY3Rpb24gKFNUSSkgc2VydmljZXMKICogSElWLlBSVi5ERTc6IFZNTUMgfCBDbGllbnQgYWNjZXNzZWQgdm9sdW50YXJ5IG1lZGljYWwgbWFsZSBjaXJjdW1jaXNpb24gKFZNTUMpIHNlcnZpY2VzCiAqIEhJVi5QUlYuREU4OiBPdGhlciB8IENsaWVudCBhY2Nlc3NlZCBvdGhlciBISVYgcHJldmVudGlvbiBzZXJ2aWNlcwogKiBISVYuUFJWLkRFMTA6IERhdGUgYWNjZXNzZWQgSElWIHByZXZlbnRpb24gaW50ZXJ2ZW50aW9uIHwgRGF0ZSB0aGUgY2xpZW50IGFjY2Vzc2VkIEhJViBwcmV2ZW50aW9uIGludGVydmVudGlvbgogKgogKiBBZGRpdGlvbmFsIENvbnRleHQKICogLSB3aGF0IGl0IG1lYXN1cmVzOiBBOiAlIG9mIHBlb3BsZSBhdHRlbmRpbmcgSElWIHByZXZlbnRpb24gc2VydmljZXMgd2hvIHdlcmUgdGVzdGVkIGZvciBnb25vcnJob2VhIGFuZCB8IGhhZCBhIHBvc2l0aXZlIHRlc3QgcmVzdWx0IGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCB8IEI6ICUgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViB3aG8gd2VyZSB0ZXN0ZWQgZm9yIGdvbm9ycmhvZWEgYW5kIGhhZCBhIHBvc2l0aXZlIHRlc3QgcmVzdWx0IGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiAtIHJhdGlvbmFsZTog4oCiwqBHb25vcnJob2VhIHRlc3QgcG9zaXRpdml0eSBjYW4gYmUgdXNlZCB0byBoaWdobGlnaHQgYXJlYXMgd2l0aGluIGEgY291bnRyeSB0aGF0IHJlcXVpcmUgYWRkaXRpb25hbCBzdXBwb3J0IGFuZCBwcm92aWRlIGVhcmx5IHdhcm5pbmcgb2YgcG90ZW50aWFsIGNoYW5nZXMgaW4gSElWIGFuZCBzZXh1YWxseSB0cmFuc21pdHRlZCBpbmZlY3Rpb24gdHJhbnNtaXNzaW9uIGluIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24uIHwg4oCiwqBHb25vcnJob2VhIHRlc3QgcG9zaXRpdml0eSBpcyBpbXBvcnRhbnQgaW5mb3JtYXRpb24gZm9yIGdlbmVyYXRpbmcgbmF0aW9uYWwsIHJlZ2lvbmFsIGFuZCBnbG9iYWwgaW5jaWRlbmNlIGFuZCBwcmV2YWxlbmNlIGVzdGltYXRlcyBmb3IgZ29ub3JyaG9lYS4gfCDigKIgRGF0YSBvbiBnb25vcnJob2VhIHRlc3QgcG9zaXRpdml0eSBhcmUgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjaGFsbGVuZ2VzIGltcG9zZWQgYnkgaW5jcmVhc2luZyByZXNpc3RhbmNlIHRvIGN1cnJlbnRseSByZWNvbW1lbmRlZCB0cmVhdG1lbnQgb3B0aW9ucy4KICogLSBtZXRob2Q6IEluZGl2aWR1YWwtbGV2ZWwgZGF0YSBvYnRhaW5lZCBmcm9tIHByb2dyYW1tZSByZWNvcmRzLiAgIHwgIHwgSWYgaW5kaXZpZHVhbC1sZXZlbCBkYXRhIGFyZSBub3QgYXZhaWxhYmxlLCB0aGUgaW5kaWNhdG9yIGNhbiBiZSByZXBvcnRlZCB1c2luZyBhZ2dyZWdhdGUgcHJvZ3JhbW1lIGRhdGEuCiAqIAogKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDcyTG9naWM8L2E6cz4KICAgICAgPC9hOnM+CiAgIDwvYW5ub3RhdGlvbj4KICAgPGlkZW50aWZpZXIgaWQ9IkhJVklORDcyTG9naWMiIHN5c3RlbT0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2Ii8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIi8+CiAgICAgIDxkZWYgbG9jYWxJZD0iMSIgbG9jYXRvcj0iMTEzOjEtMTEzOjI2IiBsb2NhbElkZW50aWZpZXI9IkZISVIiIHVyaT0iaHR0cDovL2hsNy5vcmcvZmhpciIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxIj4KICAgICAgICAgICAgICAgPGE6cz4vLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+RkhJUjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnNC4wLjEnPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L3VzaW5ncz4KICAgPGluY2x1ZGVzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIiIGxvY2F0b3I9IjExNToxLTExNTo0NCIgbG9jYWxJZGVudGlmaWVyPSJISUMiIHBhdGg9Imh0dHA6Ly9zbWFydC53aG8uaW50L2hpdi9ISVZDb21tb24iIHZlcnNpb249IjAuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMiI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5ISVZDb21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjMiIGxvY2F0b3I9IjExNjoxLTExNjozNSIgbG9jYWxJZGVudGlmaWVyPSJGSElSSGVscGVycyIgcGF0aD0iaHR0cDovL2hsNy5vcmcvZmhpci9GSElSSGVscGVycyIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNCIgbG9jYXRvcj0iMTE4OjEtMTE4OjI5IiBsb2NhbElkZW50aWZpZXI9IldDb20iIHBhdGg9Imh0dHA6Ly9zbWFydC53aG8uaW50L2hpdi9XSE9Db21tb24iPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI0Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPldIT0NvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gY2FsbGVkIFdDb208L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgIDwvaW5jbHVkZXM+CiAgIDxwYXJhbWV0ZXJzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjEwIiBsb2NhdG9yPSIxMjE6MS0xMjE6ODgiIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjEwIj4KICAgICAgICAgICAgICAgPGE6cz4vLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgJnF1b3Q7TWVhc3VyZW1lbnQgUGVyaW9kJnF1b3Q7IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjkiPgogICAgICAgICAgICAgICAgICA8YTpzPkludGVydmFsJmx0OzwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjgiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkRhdGU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+PjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gZGVmYXVsdCA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI3Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI1Ij5JbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZGVmYXVsdCBsb2NhbElkPSI3IiBsb2NhdG9yPSIxMjE6NTUtMTIxOjg4IiBsb3dDbG9zZWQ9InRydWUiIGhpZ2hDbG9zZWQ9InRydWUiIHhzaTp0eXBlPSJJbnRlcnZhbCI+CiAgICAgICAgICAgIDxsb3cgbG9jYWxJZD0iNSIgbG9jYXRvcj0iMTIxOjY0LTEyMTo3NCIgeHNpOnR5cGU9IkRhdGUiPgogICAgICAgICAgICAgICA8eWVhciB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjIwMjMiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxtb250aCB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxkYXkgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L2xvdz4KICAgICAgICAgICAgPGhpZ2ggbG9jYWxJZD0iNiIgbG9jYXRvcj0iMTIxOjc3LTEyMTo4NyIgeHNpOnR5cGU9IkRhdGUiPgogICAgICAgICAgICAgICA8eWVhciB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjIwMjMiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxtb250aCB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxkYXkgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIzMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9oaWdoPgogICAgICAgICA8L2RlZmF1bHQ+CiAgICAgICAgIDxwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9IjkiIGxvY2F0b3I9IjEyMTozMi0xMjE6NDUiIHhzaTp0eXBlPSJJbnRlcnZhbFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICA8cG9pbnRUeXBlIGxvY2FsSWQ9IjgiIGxvY2F0b3I9IjEyMTo0MS0xMjE6NDQiIG5hbWU9InQ6RGF0ZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L3BhcmFtZXRlclR5cGVTcGVjaWZpZXI+CiAgICAgIDwvZGVmPgogICA8L3BhcmFtZXRlcnM+CiAgIDxjb250ZXh0cz4KICAgICAgPGRlZiBsb2NhdG9yPSIxMjM6MS0xMjM6MTUiIG5hbWU9IlBhdGllbnQiLz4KICAgPC9jb250ZXh0cz4KICAgPHN0YXRlbWVudHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iMTIzOjEtMTIzOjE1IiBuYW1lPSJQYXRpZW50IiBjb250ZXh0PSJQYXRpZW50Ij4KICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IlNpbmdsZXRvbkZyb20iPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhdG9yPSIxMjM6MS0xMjM6MTUiIGRhdGFUeXBlPSJmaGlyOlBhdGllbnQiIHRlbXBsYXRlSWQ9Imh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9QYXRpZW50IiB4c2k6dHlwZT0iUmV0cmlldmUiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxMiIgbG9jYXRvcj0iMTMwOjEtMTMxOjYiIG5hbWU9IkluaXRpYWwgUG9wdWxhdGlvbiIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjEyIj4KICAgICAgICAgICAgICAgPGE6cyByPSIxMSI+LyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICZxdW90O0luaXRpYWwgUG9wdWxhdGlvbiZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjExIiBsb2NhdG9yPSIxMzE6My0xMzE6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxNCIgbG9jYXRvcj0iMTQwOjEtMTQxOjYiIG5hbWU9Ik51bWVyYXRvciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjE0Ij4KICAgICAgICAgICAgICAgPGE6cyByPSIxMyI+LyoqCiAqIE51bWVyYXRvcgogKiAKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHBlb3BsZSBhdHRlbmRpbmcgSElWIHByZXZlbnRpb24gc2VydmljZXMgd2hvIHRlc3RlZCBwb3NpdGl2ZSBmb3IgZ29ub3JyaG9lYSBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAmcXVvdDtHb25vcnJob2VhIHRlc3QgZGF0ZSZxdW90OyBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgJnF1b3Q7R29ub3JyaG9lYSB0ZXN0IHJlc3VsdCZxdW90Oz0nUG9zaXRpdmUnCiAqLwoKZGVmaW5lICZxdW90O051bWVyYXRvciZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjEzIiBsb2NhdG9yPSIxNDE6My0xNDE6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxNiIgbG9jYXRvcj0iMTUxOjEtMTUyOjYiIG5hbWU9IkRlbm9taW5hdG9yIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTYiPgogICAgICAgICAgICAgICA8YTpzIHI9IjE1Ij4vKioKICogRGVub21pbmF0b3IKICoKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHBlb3BsZSBhdHRlbmRpbmcgSElWIHByZXZlbnRpb24gc2VydmljZXMgdGVzdGVkIGZvciBnb25vcnJob2VhICh1c2luZyBhIG1vbGVjdWxhciB0ZXN0LCBjdWx0dXJlIG9yIFBPQyB0ZXN0KSBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAmcXVvdDtHb25vcnJob2VhIHRlc3QgZGF0ZSZxdW90OyBvbiAmcXVvdDtEYXRlIGFjY2Vzc2VkIEhJViBwcmV2ZW50aW9uIGludGVydmVudGlvbiZxdW90OyBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKi8KCmRlZmluZSAmcXVvdDtEZW5vbWluYXRvciZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjE1IiBsb2NhdG9yPSIxNTI6My0xNTI6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgPC9zdGF0ZW1lbnRzPgo8L2xpYnJhcnk+Cg=="^^xsd:base64Binary ]
  ] ) . #