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
Draft as of 2024-12-06 |
{
"resourceType" : "Library",
"id" : "HIVIND94Logic",
"meta" : {
"profile" : [
🔗 "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"🔗 ,
"http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"🔗 ,
"http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"🔗 ,
"http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"
]
},
"text" : {
"status" : "extensions",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n <table class=\"grid dict\">\n \n \n <tr>\n <th scope=\"row\"><b>Title: </b></th>\n <td style=\"padding-left: 4px;\">HIV.IND.94 Logic</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">HIVIND94Logic</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Version: </b></th>\n <td style=\"padding-left: 4px;\">0.3.0</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Url: </b></th>\n <td style=\"padding-left: 4px;\"><a href=\"Library-HIVIND94Logic.html\">HIV.IND.94 Logic</a></td>\n </tr>\n \n\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Status: </b></th>\n <td style=\"padding-left: 4px;\">draft</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Experimental: </b></th>\n <td style=\"padding-left: 4px;\">true</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Type: </b></th>\n <td style=\"padding-left: 4px;\">\n \n \n \n <p style=\"margin-bottom: 5px;\">\n <b>system: </b> <span><a href=\"http://hl7.org/fhir/R4/codesystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a></span>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>code: </b> <span>logic-library</span>\n </p>\n \n \n \n \n \n </td>\n </tr>\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Date: </b></th>\n <td style=\"padding-left: 4px;\">2024-12-06 22:28:12+0000</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Publisher: </b></th>\n <td style=\"padding-left: 4px;\">WHO</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Description: </b></th>\n <td style=\"padding-left: 4px;\"><div><p>% of women living with HIV who screened positive for pre-invasive cervical disease and received treatment for it</p>\n</div></td>\n </tr>\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n <tr>\n <td colspan=\"2\">\n <table>\n <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n <tr><td><pre><code class=\"language-cql\">/**\n * Library: HIV.IND.94 Logic\n * Ref No: CCA.2\n * Short Name: Pre-invasive cervical disease treatment\n *\n * Definition: % of women living with HIV who screened positive for pre-invasive cervical disease and received treatment for it\n *\n * Numerator: Number of women living with HIV who received treatment after screening positive for pre-invasive cervical disease and were deemed eligible for treatment in line with the WHO recommendations\n * Numerator Calculation: COUNT of women with "HIV status"='HIV-positive' AND with a "Date of cervical cancer screening test" in the reporting period for "Cervical cancer screening outcome"='Positive for cervical precancer lesions' AND "Date of treatment for cervical precancer lesions" within 6 months of "Date of cervical cancer screening test"\n * Numerator Exclusions: \n *\n * Denominator: Number of women living with HIV who screened positive for pre-invasive cervical disease.\n * Denominator Calculation: COUNT of women with "HIV status"='HIV-positive' AND with a "Date of cervical cancer screening test" in the reporting period for "Cervical cancer screening outcome"='Positive for cervical precancer lesions'\n * Denominator Exclusions: \n *\n * Disaggregations:\n * •\u00a0Age (15–19, 20–24, 25–29, 30–49, 50+ years) \n * •\u00a0Provider type (public-sector provider, private-sector provider) \n * •\u00a0Cities and other administrative areas of epidemiologic importance\n *\n * Disaggregation Elements: Age\n *\n * Numerator and Denominator Elements:\n * Cervical cancer screening outcome \n * Date of cervical cancer screening test \n * Date of treatment for cervical precancer lesions \n * HIV status\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.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.D.DE656: Date of cervical cancer screening test | Date of cervical cancer screening test\n * HIV.D.DE706: Cervical cancer screening outcome | Client's screening outcome for cervical cancer\n * HIV.D.DE707: Positive for cervical precancer lesions | Screening outcome for cervical precancer lesions is positive\n * HIV.D.DE708: Negative for cervical precancer lesions | Screening outcome for cervical precancer lesions is negative\n * HIV.D.DE718: Date of treatment for cervical precancer lesions | Date of treatment for cervical precancer lesions\n *\n * Additional Context\n * - what it measures: Progress towards the treatment coverage target of 90% of women with a positive screening test receiving treatment as defined in the Global Strategy for cervical cancer elimination.\n * - rationale: • To assess availability, access and coverage of pre-invasive cervical disease treatment among women living with HIV who were diagnosed with precancerous lesions upon screening and were deemed eligible for precancer treatment in line with the WHO recommendations for screening and treatment to prevent cervical cancer. | • The WHO Global Strategy targets to eliminate cervical cancer are to vaccinate 90% of eligible girls against human papillomavirus (HPV), to screen 70% of eligible women at least twice in their lifetimes and to effectively treat 90% of those with a positive screening test or a cervical lesion, including palliative care when needed, all by 2030.\n * - method: Health facility patient registers, patient records | | Treatment options include thermal ablation, cryotherapy and excision treatment including Large Loop Excision of the Transformation Zone therapy.\n * \n * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm\n */\n\n/* \n * Profiles:\n * - HIVStatusCondition\n * - HIVStatusObservation\n * - CervicalCancerScreening\n * - CervicalCancerScreeningOutcome\n */\n\nlibrary HIVIND94Logic\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\ninclude HIVElements called HE\ninclude HIVIndicatorElements called HIE\ninclude HIVConfig called Config\n\n\n// Indicator Definition\nparameter "Measurement Period" Interval<Date> default Interval[@2023-01-01, @2023-01-30]\n\ncontext Patient\n/* Populations */\n\n/*\n *Initial Population\n */\n\ndefine "Initial Population":\n true\n\n/**\n * Numerator\n * \n * Definition: Number of women living with HIV who received treatment after screening positive for pre-invasive cervical disease and were deemed eligible for treatment in line with the WHO recommendations\n * Calculation: COUNT of women with "HIV status"='HIV-positive' AND with a "Date of cervical cancer screening test" in the reporting period for "Cervical cancer screening outcome"='Positive for cervical precancer lesions' AND "Date of treatment for cervical precancer lesions" within 6 months of "Date of cervical cancer screening test"\n */\n\ndefine "Numerator":\n HIE."Has HIV-positive Status" and\n exists(HE."Positive for cervical precancer lesions" G\n with HE."Date of cervical cancer screening test" P\n such that G.partOf.references(P) and P.performed.toInterval() during "Measurement Period"\n and exists(HE."Date of treatment for cervical precancer lesions" T where months between start of T.performed.toInterval() and end of P.performed.toInterval() < 6 months))\n\n\n/**\n * Denominator\n *\n * Definition: Number of women living with HIV who screened positive for pre-invasive cervical disease.\n * Calculation: COUNT of women with "HIV status"='HIV-positive' AND with a "Date of cervical cancer screening test" in the reporting period for "Cervical cancer screening outcome"='Positive for cervical precancer lesions'\n */\n\ndefine "Denominator":\n HIE."Has HIV-positive Status" and\n exists(HE."Positive for cervical precancer lesions" G\n with HE."Date of cervical cancer screening test" P\n such that G.partOf.references(P) and P.performed.toInterval() during "Measurement Period")\n \n\n/* end Populations */\n\n/*\n * Disaggregators\n */\n\ndefine "Age Stratifier":\n\tHIE."By Age Stratifier 2"\n\ndefine "Geographic Region Stratifier":\n\tHIE."By Geographic Region Stratifier"\n\n\n\n\ndefine "Stratification":\nHIE."By Age Stratifier 2"\n+ ':' + HIE."By Geographic Region Stratifier"\n\n//need to add provider</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n \n \n \n <tr>\n <td colspan=\"2\">\n <table>\n <tr><th><b>Content: </b> application/elm+xml</th></tr>\n <tr><td><pre><code/></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n </table>\n</div>\n</div>"
},
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability",
"valueCode" : "computable"
}
],
"url" : "http://smart.who.int/hiv/Library/HIVIND94Logic",
"version" : "0.3.0",
"name" : "HIVIND94Logic",
"title" : "HIV.IND.94 Logic",
"status" : "draft",
"experimental" : true,
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2024-12-06T22:28:12+00:00",
"publisher" : "WHO",
"contact" : [
{
"name" : "WHO",
"telecom" : [
{
"system" : "url",
"value" : "http://who.int"
}
]
}
],
"description" : "% of women living with HIV who screened positive for pre-invasive cervical disease and received treatment for it",
"content" : [
{
"contentType" : "text/cql",
"data" : "LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuOTQgTG9naWMKICogUmVmIE5vOiBDQ0EuMgogKiBTaG9ydCBOYW1lOiBQcmUtaW52YXNpdmUgY2VydmljYWwgZGlzZWFzZSB0cmVhdG1lbnQKICoKICogRGVmaW5pdGlvbjogJSBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHNjcmVlbmVkIHBvc2l0aXZlIGZvciBwcmUtaW52YXNpdmUgY2VydmljYWwgZGlzZWFzZSBhbmQgcmVjZWl2ZWQgdHJlYXRtZW50IGZvciBpdAogKgogKiBOdW1lcmF0b3I6IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHJlY2VpdmVkIHRyZWF0bWVudCBhZnRlciBzY3JlZW5pbmcgcG9zaXRpdmUgZm9yIHByZS1pbnZhc2l2ZSBjZXJ2aWNhbCBkaXNlYXNlIGFuZCB3ZXJlIGRlZW1lZCBlbGlnaWJsZSBmb3IgdHJlYXRtZW50IGluIGxpbmUgd2l0aCB0aGUgV0hPIHJlY29tbWVuZGF0aW9ucwogKiBOdW1lcmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCB3aXRoIGEgIkRhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0IiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBmb3IgIkNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgb3V0Y29tZSI9J1Bvc2l0aXZlIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucycgQU5EICJEYXRlIG9mIHRyZWF0bWVudCBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMiIHdpdGhpbiA2IG1vbnRocyBvZiAiRGF0ZSBvZiBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIHRlc3QiCiAqIE51bWVyYXRvciBFeGNsdXNpb25zOiAKICoKICogRGVub21pbmF0b3I6IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHNjcmVlbmVkIHBvc2l0aXZlIGZvciBwcmUtaW52YXNpdmUgY2VydmljYWwgZGlzZWFzZS4KICogRGVub21pbmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCB3aXRoIGEgIkRhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0IiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBmb3IgIkNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgb3V0Y29tZSI9J1Bvc2l0aXZlIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucycKICogRGVub21pbmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERpc2FnZ3JlZ2F0aW9uczoKICog4oCiwqBBZ2UgKDE14oCTMTksIDIw4oCTMjQsIDI14oCTMjksIDMw4oCTNDksIDUwKyB5ZWFycykgCiAqICDigKLCoFByb3ZpZGVyIHR5cGUgKHB1YmxpYy1zZWN0b3IgcHJvdmlkZXIsIHByaXZhdGUtc2VjdG9yIHByb3ZpZGVyKSAKICogIOKAosKgQ2l0aWVzIGFuZCBvdGhlciBhZG1pbmlzdHJhdGl2ZSBhcmVhcyBvZiBlcGlkZW1pb2xvZ2ljIGltcG9ydGFuY2UKICoKICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6IEFnZQogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIG91dGNvbWUgCiAqICBEYXRlIG9mIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCAKICogIERhdGUgb2YgdHJlYXRtZW50IGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyAKICogIEhJViBzdGF0dXMKICoKICogUmVmZXJlbmNlOiBDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBwZXJzb24tY2VudHJlZCBISVYgc3RyYXRlZ2ljIGluZm9ybWF0aW9uOiBzdHJlbmd0aGVuaW5nIHJvdXRpbmUgZGF0YSBmb3IgaW1wYWN0LiBHZW5ldmE6IFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb247IDIwMjIKICogCiAqIERhdGEgQ29uY2VwdHM6CiAqIEhJVi5BLkRFMTc6IEFnZSB8IENhbGN1bGF0ZWQgYWdlIChudW1iZXIgb2YgeWVhcnMpIG9mIHRoZSBjbGllbnQgYmFzZWQgb24gZGF0ZSBvZiBiaXJ0aAogKiBISVYuQi5ERTExNTogSElWIHN0YXR1cyB8IEhJViBzdGF0dXMgcmVwb3J0ZWQgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5hdGlvbmFsIEhJViB0ZXN0aW5nIGFsZ29yaXRobS4gTm8gc2luZ2xlIEhJViB0ZXN0IGNhbiBwcm92aWRlIGFuIEhJVi1wb3NpdGl2ZSBkaWFnbm9zaXMuCiAqIEhJVi5CLkRFMTE2OiBISVYtcG9zaXRpdmUgfCBDbGllbnQgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5CLkRFMTE3OiBISVYtbmVnYXRpdmUgfCBDbGllbnQgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5CLkRFMTE4OiBVbmtub3duIHwgQ2xpZW50IGhhcyB1bmtub3duIEhJViBzdGF0dXMKICogSElWLkQuREU2NTY6IERhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0IHwgRGF0ZSBvZiBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIHRlc3QKICogSElWLkQuREU3MDY6IENlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgb3V0Y29tZSB8IENsaWVudCdzIHNjcmVlbmluZyBvdXRjb21lIGZvciBjZXJ2aWNhbCBjYW5jZXIKICogSElWLkQuREU3MDc6IFBvc2l0aXZlIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyB8IFNjcmVlbmluZyBvdXRjb21lIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBpcyBwb3NpdGl2ZQogKiBISVYuRC5ERTcwODogTmVnYXRpdmUgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIHwgU2NyZWVuaW5nIG91dGNvbWUgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIGlzIG5lZ2F0aXZlCiAqIEhJVi5ELkRFNzE4OiBEYXRlIG9mIHRyZWF0bWVudCBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgfCBEYXRlIG9mIHRyZWF0bWVudCBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogUHJvZ3Jlc3MgdG93YXJkcyB0aGUgdHJlYXRtZW50IGNvdmVyYWdlIHRhcmdldCBvZiA5MCUgb2Ygd29tZW4gd2l0aCBhIHBvc2l0aXZlIHNjcmVlbmluZyB0ZXN0IHJlY2VpdmluZyB0cmVhdG1lbnQgYXMgZGVmaW5lZCBpbiB0aGUgR2xvYmFsIFN0cmF0ZWd5IGZvciBjZXJ2aWNhbCBjYW5jZXIgZWxpbWluYXRpb24uCiAqIC0gcmF0aW9uYWxlOiDigKIgVG8gYXNzZXNzIGF2YWlsYWJpbGl0eSwgYWNjZXNzIGFuZCBjb3ZlcmFnZSBvZiBwcmUtaW52YXNpdmUgY2VydmljYWwgZGlzZWFzZSB0cmVhdG1lbnQgYW1vbmcgd29tZW4gbGl2aW5nIHdpdGggSElWIHdobyB3ZXJlIGRpYWdub3NlZCB3aXRoIHByZWNhbmNlcm91cyBsZXNpb25zIHVwb24gc2NyZWVuaW5nIGFuZCB3ZXJlIGRlZW1lZCBlbGlnaWJsZSBmb3IgcHJlY2FuY2VyIHRyZWF0bWVudCBpbiBsaW5lIHdpdGggdGhlIFdITyByZWNvbW1lbmRhdGlvbnMgZm9yIHNjcmVlbmluZyBhbmQgdHJlYXRtZW50IHRvIHByZXZlbnQgY2VydmljYWwgY2FuY2VyLiB8IOKAoiBUaGUgV0hPIEdsb2JhbCBTdHJhdGVneSB0YXJnZXRzIHRvIGVsaW1pbmF0ZSBjZXJ2aWNhbCBjYW5jZXIgYXJlIHRvIHZhY2NpbmF0ZSA5MCUgb2YgZWxpZ2libGUgZ2lybHMgYWdhaW5zdCBodW1hbiBwYXBpbGxvbWF2aXJ1cyAoSFBWKSwgdG8gc2NyZWVuIDcwJSBvZiBlbGlnaWJsZSB3b21lbiBhdCBsZWFzdCB0d2ljZSBpbiB0aGVpciBsaWZldGltZXMgYW5kIHRvIGVmZmVjdGl2ZWx5IHRyZWF0IDkwJSBvZiB0aG9zZSB3aXRoIGEgcG9zaXRpdmUgc2NyZWVuaW5nIHRlc3Qgb3IgYSBjZXJ2aWNhbCBsZXNpb24sIGluY2x1ZGluZyBwYWxsaWF0aXZlIGNhcmUgd2hlbiBuZWVkZWQsIGFsbCBieSAyMDMwLgogKiAtIG1ldGhvZDogSGVhbHRoIGZhY2lsaXR5IHBhdGllbnQgcmVnaXN0ZXJzLCBwYXRpZW50IHJlY29yZHMgfCAgfCBUcmVhdG1lbnQgb3B0aW9ucyBpbmNsdWRlIHRoZXJtYWwgYWJsYXRpb24sIGNyeW90aGVyYXB5IGFuZCBleGNpc2lvbiB0cmVhdG1lbnQgaW5jbHVkaW5nIExhcmdlIExvb3AgRXhjaXNpb24gb2YgdGhlIFRyYW5zZm9ybWF0aW9uIFpvbmUgdGhlcmFweS4KICogCiAqIFN1Z2dlc3RlZCBTY29yaW5nIE1ldGhvZDogcHJvcG9ydGlvbiB8IGh0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY3FmbWVhc3VyZXMvU3RydWN0dXJlRGVmaW5pdGlvbi9wcm9wb3J0aW9uLW1lYXN1cmUtY3FmbQogKi8KCi8qIAogKiBQcm9maWxlczoKICogLSBISVZTdGF0dXNDb25kaXRpb24KICogLSBISVZTdGF0dXNPYnNlcnZhdGlvbgogKiAtIENlcnZpY2FsQ2FuY2VyU2NyZWVuaW5nCiAqIC0gQ2VydmljYWxDYW5jZXJTY3JlZW5pbmdPdXRjb21lCiAqLwoKbGlicmFyeSBISVZJTkQ5NExvZ2ljCgovLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSElWQ29tbW9uIHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0NvbQppbmNsdWRlIEhJVkVsZW1lbnRzIGNhbGxlZCBIRQppbmNsdWRlIEhJVkluZGljYXRvckVsZW1lbnRzIGNhbGxlZCBISUUKaW5jbHVkZSBISVZDb25maWcgY2FsbGVkIENvbmZpZwoKCi8vIEluZGljYXRvciBEZWZpbml0aW9uCnBhcmFtZXRlciAiTWVhc3VyZW1lbnQgUGVyaW9kIiBJbnRlcnZhbDxEYXRlPiBkZWZhdWx0IEludGVydmFsW0AyMDIzLTAxLTAxLCBAMjAyMy0wMS0zMF0KCmNvbnRleHQgUGF0aWVudAovKiBQb3B1bGF0aW9ucyAqLwoKLyoKICpJbml0aWFsIFBvcHVsYXRpb24KICovCgpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgdHJ1ZQoKLyoqCiAqIE51bWVyYXRvcgogKiAKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gcmVjZWl2ZWQgdHJlYXRtZW50IGFmdGVyIHNjcmVlbmluZyBwb3NpdGl2ZSBmb3IgcHJlLWludmFzaXZlIGNlcnZpY2FsIGRpc2Vhc2UgYW5kIHdlcmUgZGVlbWVkIGVsaWdpYmxlIGZvciB0cmVhdG1lbnQgaW4gbGluZSB3aXRoIHRoZSBXSE8gcmVjb21tZW5kYXRpb25zCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgd2l0aCBhICJEYXRlIG9mIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCIgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgZm9yICJDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIG91dGNvbWUiPSdQb3NpdGl2ZSBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMnIEFORCAiRGF0ZSBvZiB0cmVhdG1lbnQgZm9yIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIiB3aXRoaW4gNiBtb250aHMgb2YgIkRhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0IgogKi8KCmRlZmluZSAiTnVtZXJhdG9yIjoKICBISUUuIkhhcyBISVYtcG9zaXRpdmUgU3RhdHVzIiBhbmQKICBleGlzdHMoSEUuIlBvc2l0aXZlIGZvciBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyIgRwogIHdpdGggSEUuIkRhdGUgb2YgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyB0ZXN0IiBQCiAgc3VjaCB0aGF0IEcucGFydE9mLnJlZmVyZW5jZXMoUCkgYW5kIFAucGVyZm9ybWVkLnRvSW50ZXJ2YWwoKSBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCIKICBhbmQgZXhpc3RzKEhFLiJEYXRlIG9mIHRyZWF0bWVudCBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMiIFQgd2hlcmUgbW9udGhzIGJldHdlZW4gc3RhcnQgb2YgVC5wZXJmb3JtZWQudG9JbnRlcnZhbCgpIGFuZCBlbmQgb2YgUC5wZXJmb3JtZWQudG9JbnRlcnZhbCgpIDwgNiBtb250aHMpKQoKCi8qKgogKiBEZW5vbWluYXRvcgogKgogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIHdobyBzY3JlZW5lZCBwb3NpdGl2ZSBmb3IgcHJlLWludmFzaXZlIGNlcnZpY2FsIGRpc2Vhc2UuCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgd2l0aCBhICJEYXRlIG9mIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCIgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgZm9yICJDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIG91dGNvbWUiPSdQb3NpdGl2ZSBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMnCiAqLwoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgSElFLiJIYXMgSElWLXBvc2l0aXZlIFN0YXR1cyIgYW5kCiAgZXhpc3RzKEhFLiJQb3NpdGl2ZSBmb3IgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMiIEcKICB3aXRoIEhFLiJEYXRlIG9mIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgdGVzdCIgUAogIHN1Y2ggdGhhdCBHLnBhcnRPZi5yZWZlcmVuY2VzKFApIGFuZCBQLnBlcmZvcm1lZC50b0ludGVydmFsKCkgZHVyaW5nICJNZWFzdXJlbWVudCBQZXJpb2QiKQogICAgCgovKiBlbmQgUG9wdWxhdGlvbnMgKi8KCi8qCiAqIERpc2FnZ3JlZ2F0b3JzCiAqLwoKZGVmaW5lICJBZ2UgU3RyYXRpZmllciI6CglISUUuIkJ5IEFnZSBTdHJhdGlmaWVyIDIiCgpkZWZpbmUgIkdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiOgoJSElFLiJCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIgoKCgoKZGVmaW5lICJTdHJhdGlmaWNhdGlvbiI6CkhJRS4iQnkgQWdlIFN0cmF0aWZpZXIgMiIKKyAnOicgKyBISUUuIkJ5IEdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiCgovL25lZWQgdG8gYWRkIHByb3ZpZGVy"
},
{
"contentType" : "application/elm+xml"
}
]
}