PackagesCanonicalsLogsProblems
    Packages
    smart.who.int.hiv@1.0.0
    http://smart.who.int/hiv/Library/HIVC7DTLogic
{
  "description": "HIV.C7.DT Logic",
  "_filename": "Library-HIVC7DTLogic.json",
  "package_name": "smart.who.int.hiv",
  "date": "2025-07-08T23:21:58+02:00",
  "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" ]
  },
  "publisher": "WHO",
  "content": [ {
    "data": "LyoqCkxpYnJhcnk6IEhJVi5DNy5EVCBMb2dpYwoKQERlY2lzaW9uSUQ6IEhJVi5DNy5EVApAQnVzaW5lc3NSdWxlOiBDaGVjayBzdWl0YWJpbGl0eSBmb3IgUHJFUCBvciBQRVAKQFRyaWdnZXI6IEhJVi5DNyBDaGVjayBzdWl0YWJpbGl0eSBmb3IgUHJFUCBvciBQRVAKQEhpdFBvbGljeTogUnVsZSBPcmRlcgpARGVzY3JpcHRpb246IENoZWNrIHN1aXRhYmlsaXR5IGZvciBQckVQIG9yIFBFUAoKRGF0YSBDb25jZXB0czoKICogSElWLkIuREU0OTogS2V5IHBvcHVsYXRpb24gbWVtYmVyIHwgQ2xpZW50IGlzIGEgbWVtYmVyIG9mIGEga2V5IHBvcHVsYXRpb24gdGhhdCBoYXMgYW4gaW5jcmVhc2VkIHJpc2sgb2YgSElWCiAqIEhJVi5CLkRFMTE1OiBISVYgc3RhdHVzIHwgSElWIHN0YXR1cyByZXBvcnRlZCBhZnRlciBhcHBseWluZyB0aGUgbmF0aW9uYWwgSElWIHRlc3RpbmcgYWxnb3JpdGhtLiBObyBzaW5nbGUgSElWIHRlc3QgY2FuIHByb3ZpZGUgYW4gSElWLXBvc2l0aXZlIGRpYWdub3Npcy4KICogSElWLkMuREUzMTogUEVQIGhpc3RvcnkgfCBUaGUgY2xpZW50J3MgaGlzdG9yeSBpbiB0YWtpbmcgcG9zdC1leHBvc3VyZSBwcm9waHlsYXhpcyAoUEVQKSBmb3IgSElWIHByZXZlbnRpb24KICogSElWLkMuREUzNjogU2lnbnMgb2Ygc3Vic3RhbnRpYWwgcmlzayBvZiBISVYgaW5mZWN0aW9uIHwgU2lnbnMgdGhlIGNsaWVudCBpcyBhdCBhIHN1YnN0YW50aWFsIHJpc2sgb2YgSElWIGluZmVjdGlvbgogKiBISVYuQy5ERTU1OiBTZXggcGFydG5lcnMgSElWIHRyZWF0bWVudCBzdGF0dXMgfCBUcmVhdG1lbnQgYWRoZXJlbmNlIG9mIGNsaWVudCdzIHNleCBwYXJ0bmVyIGZvciBwYXJ0bmVycyB0aGF0IGFyZSBISVYtcG9zaXRpdmUKICogSElWLkMuREUxMDY6IEVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSB8IEVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSBvZiB0aGUgY2xpZW50IHJldHVybmVkIGZyb20gbGFiIGluIG1ML21pbgogKiBISVYuQy5ERTExMjogQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSB8IExpc3Rpbmcgb2YgY29udHJhaW5kaWNhdGlvbnMgdG8gcHJlLWV4cG9zdXJlIHByb3BoeWxheGlzIChQckVQKQogKiBISVYuQy5ERTExNzogUHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViB8IFdoZW4gdGhlIGNsaWVudCBpcyByZXBvcnRlZCB0byBoYXZlIGhhZCBwcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWCiAqIEhJVi5Db25maWcuREUxMjogSElWIGJ1cmRlbiBvZiB0aGUgc2V0dGluZyB8IEhJViBidXJkZW4gb2YgdGhlIHNldHRpbmcgKGhpZ2ggb3IgbG93KSBiYXNlZCBvbiB0aGUgbmF0aW9uYWwgSElWIHByZXZhbGVuY2Ugb3Igd2hlcmUgdGhlIEhJViBwcmV2YWxlbmNlIGFuZC9vciBpbmNpZGVuY2UgaW4gYSBnZW9ncmFwaGljYWwgc2V0dGluZyBpcyBoaWdoZXIgdGhhbiBuYXRpb25hbCBwcmV2YWxlbmNlIGFuZCwgdGhlcmVmb3JlLCBuZWVkcyBwcmlvcml0eSBpbiB0aGUgSElWIHJlc3BvbnNlCiAqIEhJVi5ILkRFMzQ6IEhJViBzdGF0dXMgb2YgcGFydG5lciBvciBjb250YWN0IHwgSElWIHN0YXR1cyBvZiB0aGUgcGFydG5lciBvciBjb250YWN0IGdpdmVuIGJ5IHRoZSBpbmRleCBjYXNlCgpDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBISVYgcHJldmVudGlvbiwgdGVzdGluZywgdHJlYXRtZW50LCBzZXJ2aWNlIGRlbGl2ZXJ5IGFuZCBtb25pdG9yaW5nOiByZWNvbW1lbmRhdGlvbnMgZm9yIGEgcHVibGljIGhlYWx0aCBhcHByb2FjaCAoMjAyMSkgQ2hhcHRlciA1OiBBZHZhbmNlZCBISVYgRGlzZWFzZS4gRmlndXJlIDUuMTogQWxnb3JpdGhtIGZvciBwcm92aWRpbmcgYSBwYWNrYWdlIG9mIGNhcmUgZm9yIHBlb3BsZSB3aXRoIGFkdmFuY2VkIEhJViBkaXNlYXNlLgoqLwoKbGlicmFyeSBISVZDN0RUTG9naWMKIAp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBISVZDb21tb24gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUMKaW5jbHVkZSBISVZDb25jZXB0cyBjYWxsZWQgQ29uY2VwdHMKaW5jbHVkZSBISVZDb25maWcgY2FsbGVkIENvbmZpZwppbmNsdWRlIEhJVkVuY291bnRlckVsZW1lbnRzIGNhbGxlZCBFbGVtZW50cwppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBXSE9Db21tb24gY2FsbGVkIFdDb20KCi8qCiBAaW5wdXQgIkhJViBTdGF0dXMiCiBAcHNldWRvY29kZTogIkhJViBzdGF0dXMiPSdISVYtbmVnYXRpdmUnCiAqLwpkZWZpbmUgIkhJViBuZWdhdGl2ZSI6CiAgZXhpc3RzKAogICAgRWxlbWVudHMuIkhJViBTdGF0dXMgT2JzZXJ2YXRpb24iIE8KICAgICAgICB3aGVyZSBPLnZhbHVlIH4gQ29uY2VwdHMuIkhJVi1uZWdhdGl2ZSIKICApCgovKgogQGlucHV0ICJISVYgU3RhdHVzIgogQHBzZXVkb2NvZGU6ICJISVYgc3RhdHVzIj0nSElWLW5lZ2F0aXZlJwogKi8KZGVmaW5lICJISVYgbmVnYXRpdmUgb3IgdW5rbm93biI6CiAgZXhpc3RzKAogICAgRWxlbWVudHMuIkhJViBTdGF0dXMgT2JzZXJ2YXRpb24iIE8KICAgICAgICB3aGVyZSBPLnZhbHVlIH4gQ29uY2VwdHMuIkhJVi1uZWdhdGl2ZSIgb3IKICAgICAgICAgIE8udmFsdWUgfiBDb25jZXB0cy4iVW5rbm93biIKICApCgoKLyoKIEBpbnB1dCAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIgogQHBzZXVkb2NvZGU6ICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2UiIOKJpSA2MCBtTC9taW4KICovCmRlZmluZSAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIOKJpSA2MCBtTC9taW4iOgogIGV4aXN0cygKICAgIEVsZW1lbnRzLiJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2UiIE8KICAgICAgd2hlcmUgRkhJUkhlbHBlcnMuVG9JbnRlZ2VyKE8udmFsdWUpID49IDYwCiAgKQoKLyoKIEBpbnB1dCAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIgogQHBzZXVkb2NvZGU6ICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2UiIDwgNjAgbUwvbWluCiAqLwpkZWZpbmUgIkVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSA8IDYwIG1ML21pbiI6CiAgZXhpc3RzKAogICAgRWxlbWVudHMuIkVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSIgTwogICAgICB3aGVyZSBGSElSSGVscGVycy5Ub0ludGVnZXIoTy52YWx1ZSkgPCA2MAogICkKCi8qCiBAaW5wdXQgIkFjdXRlIEhJViBpbmZlY3Rpb24gc3ltcHRvbXMiCiBAcHNldWRvY29kZTogIkFjdXRlIEhJViBpbmZlY3Rpb24gc3ltcHRvbXMiPUZhbHNlCiAqLwpkZWZpbmUgIk5vIHN5bXB0b21zIG9mIEFjdXRlIEhJViBpbmZlY3Rpb24iOgogIG5vdChleGlzdHMoCiAgICBFbGVtZW50cy4iQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgTwogICAgICB3aGVyZSBPLnZhbHVlIH4gQ29uY2VwdHMuIkFjdXRlIEhJViBpbmZlY3Rpb24gc3ltcHRvbXMgLSBISVYuQy5ERTExNiIKICApKQoKLyoKIEBpbnB1dCAiQWN1dGUgSElWIGluZmVjdGlvbiBzeW1wdG9tcyIKIEBwc2V1ZG9jb2RlOiAiQWN1dGUgSElWIGluZmVjdGlvbiBzeW1wdG9tcyI9VHJ1ZQogKi8KZGVmaW5lICJTeW1wdG9tcyBvZiBBY3V0ZSBISVYgaW5mZWN0aW9uIjoKICBleGlzdHMoCiAgICBFbGVtZW50cy4iQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgTwogICAgICB3aGVyZSBPLnZhbHVlIH4gQ29uY2VwdHMuIkFjdXRlIEhJViBpbmZlY3Rpb24gc3ltcHRvbXMgLSBISVYuQy5ERTExNiIKICApCgovKgogQGlucHV0OiAiUHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViIKIEBwc2V1ZG9jb2RlOiAiUHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViI9RmFsc2UKICovCmRlZmluZSAiTm8gcHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViI6CiAgbm90KGV4aXN0cygKICAgIEVsZW1lbnRzLiJDb250cmFpbmRpY2F0aW9ucyB0byBQckVQIHVzYWdlIiBPCiAgICAgIHdoZXJlIE8udmFsdWUgfiBDb25jZXB0cy4iUHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViIKICApKQoKLyoKIEBpbnB1dDogIlByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiCiBAcHNldWRvY29kZTogIlByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiPVRydWUKICovCmRlZmluZSAiUHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViI6CiAgZXhpc3RzKAogICAgRWxlbWVudHMuIkNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIE8KICAgICAgd2hlcmUgTy52YWx1ZSB+IENvbmNlcHRzLiJQcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIgogICkKCi8qCiBAaW5wdXQ6ICJDb250cmFpbmRpY2F0aW9ucyB0byBQckVQIHVzYWdlIgogQHBzZXVkb2NvZGU6ICJDb250cmFpbmRpY2F0aW9ucyB0byBQckVQIHVzYWdlIiBpcyBOVUxMCiAqLwpkZWZpbmUgIk5vIGNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiOgogIG5vdChleGlzdHMoCiAgICBFbGVtZW50cy4iQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgTwogICkpCgovKgogQGlucHV0OiAiQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIKIEBwc2V1ZG9jb2RlOiAiQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgaXMgTk9UIE5VTEwKICovCmRlZmluZSAiQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSI6CiAgZXhpc3RzKAogICAgRWxlbWVudHMuIkNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIE8KICApCgovKgogQGlucHV0OiAiQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIKIEBwc2V1ZG9jb2RlOiAiQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSI9J1Rlbm9mb3ZpciBkaXNvcHJveGlsIGZ1bWFyYXRlIChUREYpJwogKi8KZGVmaW5lICJUREYgYWxsZXJneSBvciBjb250cmFpbmRpY2F0aW9uIjoKICBleGlzdHMoCiAgICBFbGVtZW50cy4iQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgTwogICAgICB3aGVyZSBPLnZhbHVlIH4gQ29uY2VwdHMuIlRlbm9mb3ZpciBkaXNvcHJveGlsIGZ1bWFyYXRlIFRERiBhbGxlcmd5IG9yIGNvbnRyYWluZGljYXRpb24iCiAgKQoKLyoKIEBpbnB1dDogIkhJViBzdGF0dXMgb2YgcGFydG5lciBvciBjb250YWN0IgogQHBzZXVkb2NvZGU6ICJISVYgc3RhdHVzIG9mIHBhcnRuZXIgb3IgY29udGFjdCI9J0hJVi1wb3NpdGl2ZScKICovCmRlZmluZSAiSElWIHN0YXR1cyBvZiBwYXJ0bmVyIG9yIGNvbnRhY3QgaXMgcG9zaXRpdmUiOgogIGV4aXN0cygKICAgIEVsZW1lbnRzLiJISVYgc3RhdHVzIG9mIHBhcnRuZXIgb3IgY29udGFjdCIgTwogICAgICB3aGVyZSBPLnZhbHVlIH4gQ29uY2VwdHMuIkhJVi1wb3NpdGl2ZSIKICApCgovKgogQGlucHV0OiAiU2V4IHBhcnRuZXIncyBISVYgdHJlYXRtZW50IHN0YXR1cyIKIEBwc2V1ZG9jb2RlOiAiU2V4IHBhcnRuZXIncyBISVYgdHJlYXRtZW50IHN0YXR1cyI9J1BhcnRuZXIgaXMgbm90IHZpcmFsbHkgc3VwcHJlc3NlZCcKICovCmRlZmluZSAiU2V4IHBhcnRuZXIgaXMgb24gSElWIHRyZWF0bWVudCBhbmQgbm90IHZpcmFsbHkgc3VwcHJlc3NlZCI6CiAgZXhpc3RzKAogICAgRWxlbWVudHMuIlNleCBwYXJ0bmVycyBISVYgdHJlYXRtZW50IHN0YXR1cyIgTwogICAgICB3aGVyZSBPLnZhbHVlIH4gQ29uY2VwdHMuIlBhcnRuZXIgaXMgbm90IHZpcmFsbHkgc3VwcHJlc3NlZCIKICApCgovKgogQGlucHV0OiAiS2V5IHBvcHVsYXRpb24gbWVtYmVyIgogQHBzZXVkb2NvZGU6ICJLZXkgcG9wdWxhdGlvbiBtZW1iZXIiPVRydWUKICovCmRlZmluZSAiSXMgS2V5IHBvcHVsYXRpb24gbWVtYmVyIjoKICBFbGVtZW50cy4iSXMgS2V5IHBvcHVsYXRpb24gbWVtYmVyIEIuREU0OSIKCiAvKgogIEBpbnB1dDogIlNpZ25zIG9mIHN1YnN0YW50aWFsIHJpc2sgb2YgSElWIGluZmVjdGlvbiIKICBAcHNldWRvY29kZTogIkhJViBidXJkZW4gb2YgdGhlIHNldHRpbmciPSdIaWdoIEhJViBidXJkZW4gc2V0dGluZycKICAqLwpkZWZpbmUgIkhJViBidXJkZW4gb2Ygc2V0dGluZyBpcyBoaWdoIEhJViBidXJkZW4gc2V0dGluZyI6CiAgQ29uZmlnLiJISVYgYnVyZGVuIG9mIHNldHRpbmciIH4gQ29uY2VwdHMuIkhpZ2ggSElWIGJ1cmRlbiBzZXR0aW5nIgoKLyoKIEBpbnB1dDogIlNpZ25zIG9mIHN1YnN0YW50aWFsIHJpc2sgb2YgSElWIGluZmVjdGlvbiIKIEBwc2V1ZG9jb2RlOiAiU2lnbnMgb2Ygc3Vic3RhbnRpYWwgcmlzayBvZiBISVYgaW5mZWN0aW9uIj0nUHJFUCByZXF1ZXN0ZWQgYnkgY2xpZW50JwogKi8KZGVmaW5lICJQckVQIHJlcXVlc3RlZCBieSBjbGllbnQiOgogIGV4aXN0cygKICAgIEVsZW1lbnRzLiJTaWducyBvZiBzdWJzdGFudGlhbCByaXNrIG9mIEhJViBpbmZlY3Rpb24gQy5ERTM2IiBPCiAgICAgIHdoZXJlIE8udmFsdWUgfiBDb25jZXB0cy4iUHJFUCByZXF1ZXN0ZWQgYnkgY2xpZW50IC0gSElWLkMuREU0MCIKICApCgovKgogQGlucHV0OiAiU2lnbnMgb2Ygc3Vic3RhbnRpYWwgcmlzayBvZiBISVYgaW5mZWN0aW9uIgogQHBzZXVkb2NvZGU6ICJTaWducyBvZiBzdWJzdGFudGlhbCByaXNrIG9mIEhJViBpbmZlY3Rpb24iPSdBIHNleHVhbCBwYXJ0bmVyIGluIHRoZSBwYXN0IDYgbW9udGhzIGhhZCBvbmUgb3IgbW9yZSBISVYgcmlzayBmYWN0b3JzJwogKi8KZGVmaW5lICJBIHNleHVhbCBwYXJ0bmVyIGluIHRoZSBwYXN0IDYgbW9udGhzIGhhZCBvbmUgb3IgbW9yZSBISVYgcmlzayBmYWN0b3JzIjoKICBleGlzdHMoCiAgICBFbGVtZW50cy4iU2lnbnMgb2Ygc3Vic3RhbnRpYWwgcmlzayBvZiBISVYgaW5mZWN0aW9uIEMuREUzNiIgTwogICAgICB3aGVyZSBPLnZhbHVlIH4gQ29uY2VwdHMuIkEgc2V4dWFsIHBhcnRuZXIgaW4gdGhlIHBhc3QgNiBtb250aHMgaGFkIG9uZSBvciBtb3JlIEhJViByaXNrIGZhY3RvcnMgLSBISVYuQy5ERTM5IgogICkKCi8qCiBAaW5wdXQ6ICJTaWducyBvZiBzdWJzdGFudGlhbCByaXNrIG9mIEhJViBpbmZlY3Rpb24iCiBAcHNldWRvY29kZTogIlNpZ25zIG9mIHN1YnN0YW50aWFsIHJpc2sgb2YgSElWIGluZmVjdGlvbiI9J1NUSSBpbiB0aGUgcGFzdCA2IG1vbnRocycKICovCmRlZmluZSAiU1RJIGluIHRoZSBwYXN0IDYgbW9udGhzIjoKICBleGlzdHMoCiAgICBFbGVtZW50cy4iU2lnbnMgb2Ygc3Vic3RhbnRpYWwgcmlzayBvZiBISVYgaW5mZWN0aW9uIEMuREUzNiIgTwogICAgICB3aGVyZSBPLnZhbHVlIH4gQ29uY2VwdHMuIlNUSSBpbiB0aGUgcGFzdCA2IG1vbnRocyAtIEhJVi5DLkRFMzgiCiAgKQoKLyoKIEBpbnB1dDogIlNpZ25zIG9mIHN1YnN0YW50aWFsIHJpc2sgb2YgSElWIGluZmVjdGlvbiIKIEBwc2V1ZG9jb2RlOiAiU2lnbnMgb2Ygc3Vic3RhbnRpYWwgcmlzayBvZiBISVYgaW5mZWN0aW9uIj0nTm8gY29uZG9tIHVzZSBkdXJpbmcgc2V4IHdpdGggbW9yZSB0aGFuIG9uZSBwYXJ0bmVyIGluIHRoZSBwYXN0IDYgbW9udGhzJwogKi8KZGVmaW5lICJObyBjb25kb20gdXNlIGR1cmluZyBzZXggd2l0aCBtb3JlIHRoYW4gb25lIHBhcnRuZXIgaW4gdGhlIHBhc3QgNiBtb250aHMiOgogIGV4aXN0cygKICAgIEVsZW1lbnRzLiJTaWducyBvZiBzdWJzdGFudGlhbCByaXNrIG9mIEhJViBpbmZlY3Rpb24gQy5ERTM2IiBPCiAgICAgIHdoZXJlIE8udmFsdWUgfiBDb25jZXB0cy4iTm8gY29uZG9tIHVzZSBkdXJpbmcgc2V4IHdpdGggbW9yZSB0aGFuIG9uZSBwYXJ0bmVyIGluIHRoZSBwYXN0IDYgbW9udGhzIC0gSElWLkMuREUzNyIKICApCgovKgogQGlucHV0OiAiUEVQIGhpc3RvcnkiCiBAcHNldWRvY29kZTogIlBFUCBoaXN0b3J5Ij0nUmVwZWF0IHVzZXInCiAqLwpkZWZpbmUgIlJlcGVhdCBQRVAgdXNlciI6CiAgZXhpc3RzKAogICAgRWxlbWVudHMuIlBFUCBoaXN0b3J5IiBPCiAgICAgIHdoZXJlIE8udmFsdWUgfiBDb25jZXB0cy4iUmVwZWF0IHVzZXIiCiAgKQoKLyoKIEBvdXRwdXQgIlN1aXRhYmxlIGZvciBQckVQIgogKi8KZGVmaW5lICJTdWl0YWJsZSBmb3IgUHJFUCI6CiAgY2FzZQogICAgd2hlbiAiSElWIG5lZ2F0aXZlIiBhbmQgCiAgICAgICAgICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2Ug4omlIDYwIG1ML21pbiIgYW5kCiAgICAgICAgICJObyBzeW1wdG9tcyBvZiBBY3V0ZSBISVYgaW5mZWN0aW9uIiBhbmQKICAgICAgICAgIk5vIHByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiIGFuZAogICAgICAgICAiTm8gY29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgYW5kCiAgICAgICAgICJQckVQIHJlcXVlc3RlZCBieSBjbGllbnQiCiAgICAgIHRoZW4gdHJ1ZQogICAgd2hlbiAiSElWIG5lZ2F0aXZlIiBhbmQgCiAgICAgICAgICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2Ug4omlIDYwIG1ML21pbiIgYW5kCiAgICAgICAgICJObyBzeW1wdG9tcyBvZiBBY3V0ZSBISVYgaW5mZWN0aW9uIiBhbmQKICAgICAgICAgIk5vIHByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiIGFuZAogICAgICAgICAiTm8gY29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgYW5kCiAgICAgICAgICJISVYgc3RhdHVzIG9mIHBhcnRuZXIgb3IgY29udGFjdCBpcyBwb3NpdGl2ZSIgYW5kCiAgICAgICAgICJTZXggcGFydG5lciBpcyBvbiBISVYgdHJlYXRtZW50IGFuZCBub3QgdmlyYWxseSBzdXBwcmVzc2VkIgogICAgICB0aGVuIHRydWUKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kIAogICAgICAgICAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIOKJpSA2MCBtTC9taW4iIGFuZAogICAgICAgICAiTm8gc3ltcHRvbXMgb2YgQWN1dGUgSElWIGluZmVjdGlvbiIgYW5kCiAgICAgICAgICJObyBwcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIiBhbmQKICAgICAgICAgIk5vIGNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIGFuZAogICAgICAgICAiSXMgS2V5IHBvcHVsYXRpb24gbWVtYmVyIiBhbmQKICAgICAgICAgIlByRVAgcmVxdWVzdGVkIGJ5IGNsaWVudCIKICAgICAgdGhlbiB0cnVlCiAgICB3aGVuICJISVYgbmVnYXRpdmUiIGFuZCAKICAgICAgICAgIkVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSDiiaUgNjAgbUwvbWluIiBhbmQKICAgICAgICAgIk5vIHN5bXB0b21zIG9mIEFjdXRlIEhJViBpbmZlY3Rpb24iIGFuZAogICAgICAgICAiTm8gcHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViIgYW5kCiAgICAgICAgICJObyBjb250cmFpbmRpY2F0aW9ucyB0byBQckVQIHVzYWdlIiBhbmQKICAgICAgICAgIklzIEtleSBwb3B1bGF0aW9uIG1lbWJlciIgYW5kCiAgICAgICAgICJBIHNleHVhbCBwYXJ0bmVyIGluIHRoZSBwYXN0IDYgbW9udGhzIGhhZCBvbmUgb3IgbW9yZSBISVYgcmlzayBmYWN0b3JzIgogICAgICB0aGVuIHRydWUKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kIAogICAgICAgICAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIOKJpSA2MCBtTC9taW4iIGFuZAogICAgICAgICAiTm8gc3ltcHRvbXMgb2YgQWN1dGUgSElWIGluZmVjdGlvbiIgYW5kCiAgICAgICAgICJObyBwcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIiBhbmQKICAgICAgICAgIk5vIGNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIGFuZAogICAgICAgICAiSXMgS2V5IHBvcHVsYXRpb24gbWVtYmVyIiBhbmQKICAgICAgICAgIlNUSSBpbiB0aGUgcGFzdCA2IG1vbnRocyIKICAgICAgdGhlbiB0cnVlCiAgICB3aGVuICJISVYgbmVnYXRpdmUiIGFuZCAKICAgICAgICAgIkVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSDiiaUgNjAgbUwvbWluIiBhbmQKICAgICAgICAgIk5vIHN5bXB0b21zIG9mIEFjdXRlIEhJViBpbmZlY3Rpb24iIGFuZAogICAgICAgICAiTm8gcHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViIgYW5kCiAgICAgICAgICJObyBjb250cmFpbmRpY2F0aW9ucyB0byBQckVQIHVzYWdlIiBhbmQKICAgICAgICAgIklzIEtleSBwb3B1bGF0aW9uIG1lbWJlciIgYW5kCiAgICAgICAgICJSZXBlYXQgUEVQIHVzZXIiCiAgICAgIHRoZW4gdHJ1ZQogICAgd2hlbiAiSElWIG5lZ2F0aXZlIiBhbmQgCiAgICAgICAgICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2Ug4omlIDYwIG1ML21pbiIgYW5kCiAgICAgICAgICJObyBzeW1wdG9tcyBvZiBBY3V0ZSBISVYgaW5mZWN0aW9uIiBhbmQKICAgICAgICAgIk5vIHByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiIGFuZAogICAgICAgICAiTm8gY29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgYW5kCiAgICAgICAgICJJcyBLZXkgcG9wdWxhdGlvbiBtZW1iZXIiIGFuZAogICAgICAgICAiTm8gY29uZG9tIHVzZSBkdXJpbmcgc2V4IHdpdGggbW9yZSB0aGFuIG9uZSBwYXJ0bmVyIGluIHRoZSBwYXN0IDYgbW9udGhzIgogICAgICB0aGVuIHRydWUKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kIAogICAgICAgICAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIOKJpSA2MCBtTC9taW4iIGFuZAogICAgICAgICAiTm8gc3ltcHRvbXMgb2YgQWN1dGUgSElWIGluZmVjdGlvbiIgYW5kCiAgICAgICAgICJObyBwcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIiBhbmQKICAgICAgICAgIk5vIGNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIGFuZAogICAgICAgICAiSElWIGJ1cmRlbiBvZiBzZXR0aW5nIGlzIGhpZ2ggSElWIGJ1cmRlbiBzZXR0aW5nIiBhbmQKICAgICAgICAgIlByRVAgcmVxdWVzdGVkIGJ5IGNsaWVudCIKICAgICAgdGhlbiB0cnVlCiAgICB3aGVuICJISVYgbmVnYXRpdmUiIGFuZCAKICAgICAgICAgIkVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSDiiaUgNjAgbUwvbWluIiBhbmQKICAgICAgICAgIk5vIHN5bXB0b21zIG9mIEFjdXRlIEhJViBpbmZlY3Rpb24iIGFuZAogICAgICAgICAiTm8gcHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViIgYW5kCiAgICAgICAgICJObyBjb250cmFpbmRpY2F0aW9ucyB0byBQckVQIHVzYWdlIiBhbmQKICAgICAgICAgIkhJViBidXJkZW4gb2Ygc2V0dGluZyBpcyBoaWdoIEhJViBidXJkZW4gc2V0dGluZyIgYW5kCiAgICAgICAgICJBIHNleHVhbCBwYXJ0bmVyIGluIHRoZSBwYXN0IDYgbW9udGhzIGhhZCBvbmUgb3IgbW9yZSBISVYgcmlzayBmYWN0b3JzIgogICAgICB0aGVuIHRydWUKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kIAogICAgICAgICAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIOKJpSA2MCBtTC9taW4iIGFuZAogICAgICAgICAiTm8gc3ltcHRvbXMgb2YgQWN1dGUgSElWIGluZmVjdGlvbiIgYW5kCiAgICAgICAgICJObyBwcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIiBhbmQKICAgICAgICAgIk5vIGNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIGFuZAogICAgICAgICAiSElWIGJ1cmRlbiBvZiBzZXR0aW5nIGlzIGhpZ2ggSElWIGJ1cmRlbiBzZXR0aW5nIiBhbmQKICAgICAgICAgIlNUSSBpbiB0aGUgcGFzdCA2IG1vbnRocyIKICAgICAgdGhlbiB0cnVlCiAgICB3aGVuICJISVYgbmVnYXRpdmUiIGFuZCAKICAgICAgICAgIkVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSDiiaUgNjAgbUwvbWluIiBhbmQKICAgICAgICAgIk5vIHN5bXB0b21zIG9mIEFjdXRlIEhJViBpbmZlY3Rpb24iIGFuZAogICAgICAgICAiTm8gcHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViIgYW5kCiAgICAgICAgICJObyBjb250cmFpbmRpY2F0aW9ucyB0byBQckVQIHVzYWdlIiBhbmQKICAgICAgICAgIkhJViBidXJkZW4gb2Ygc2V0dGluZyBpcyBoaWdoIEhJViBidXJkZW4gc2V0dGluZyIgYW5kCiAgICAgICAgICJSZXBlYXQgUEVQIHVzZXIiCiAgICAgIHRoZW4gdHJ1ZQogICAgd2hlbiAiSElWIG5lZ2F0aXZlIiBhbmQgCiAgICAgICAgICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2Ug4omlIDYwIG1ML21pbiIgYW5kCiAgICAgICAgICJObyBzeW1wdG9tcyBvZiBBY3V0ZSBISVYgaW5mZWN0aW9uIiBhbmQKICAgICAgICAgIk5vIHByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiIGFuZAogICAgICAgICAiTm8gY29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgYW5kCiAgICAgICAgICJISVYgYnVyZGVuIG9mIHNldHRpbmcgaXMgaGlnaCBISVYgYnVyZGVuIHNldHRpbmciIGFuZAogICAgICAgICAiTm8gY29uZG9tIHVzZSBkdXJpbmcgc2V4IHdpdGggbW9yZSB0aGFuIG9uZSBwYXJ0bmVyIGluIHRoZSBwYXN0IDYgbW9udGhzIgogICAgICB0aGVuIHRydWUKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSBvciB1bmtub3duIiBhbmQKICAgICAgICAgIlN5bXB0b21zIG9mIEFjdXRlIEhJViBpbmZlY3Rpb24iCiAgICAgIHRoZW4gZmFsc2UKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSBvciB1bmtub3duIiBhbmQKICAgICAgICAgIlByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiCiAgICAgIHRoZW4gZmFsc2UKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kCiAgICAgICAgICJUREYgYWxsZXJneSBvciBjb250cmFpbmRpY2F0aW9uIgogICAgICB0aGVuIGZhbHNlCiAgICB3aGVuICJISVYgbmVnYXRpdmUiIGFuZAogICAgICAgICAiQ29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIKICAgICAgdGhlbiBmYWxzZQogICAgd2hlbiAiSElWIG5lZ2F0aXZlIiBhbmQKICAgICAgICAgIkVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSA8IDYwIG1ML21pbiIKICAgICAgdGhlbiBmYWxzZQogICAgZWxzZSBudWxsCiAgZW5kCgpkZWZpbmUgIk5vdCBzdWl0YWJsZSBmb3IgUHJFUCI6CiAgbm90KElzTnVsbCgiU3VpdGFibGUgZm9yIFByRVAiKSkgYW5kIG5vdCgiU3VpdGFibGUgZm9yIFByRVAiKQoKLyoKIEBkeW5hbWljVmFsdWU6IEd1aWRhbmNlCiAqLwpkZWZpbmUgIkd1aWRhbmNlIjoKICBjYXNlCiAgICB3aGVuICJISVYgbmVnYXRpdmUiIGFuZCAKICAgICAgICAgIkVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSDiiaUgNjAgbUwvbWluIiBhbmQKICAgICAgICAgIk5vIHN5bXB0b21zIG9mIEFjdXRlIEhJViBpbmZlY3Rpb24iIGFuZAogICAgICAgICAiTm8gcHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViIgYW5kCiAgICAgICAgICJObyBjb250cmFpbmRpY2F0aW9ucyB0byBQckVQIHVzYWdlIiBhbmQKICAgICAgICAgIlByRVAgcmVxdWVzdGVkIGJ5IGNsaWVudCIKICAgICAgdGhlbiAnQ291bnNlbCBjbGllbnQgb24gUHJFUC4gQmFzZWQgb24gYW5zd2VycyBnaXZlbiwgY2xpZW50IGlzIHN1aXRhYmxlIGZvciBQckVQLicKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kIAogICAgICAgICAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIOKJpSA2MCBtTC9taW4iIGFuZAogICAgICAgICAiTm8gc3ltcHRvbXMgb2YgQWN1dGUgSElWIGluZmVjdGlvbiIgYW5kCiAgICAgICAgICJObyBwcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIiBhbmQKICAgICAgICAgIk5vIGNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIGFuZAogICAgICAgICAiSElWIHN0YXR1cyBvZiBwYXJ0bmVyIG9yIGNvbnRhY3QgaXMgcG9zaXRpdmUiIGFuZAogICAgICAgICAiU2V4IHBhcnRuZXIgaXMgb24gSElWIHRyZWF0bWVudCBhbmQgbm90IHZpcmFsbHkgc3VwcHJlc3NlZCIKICAgICAgdGhlbiAnQ291bnNlbCBjbGllbnQgb24gUHJFUC4gQmFzZWQgb24gYW5zd2VycyBnaXZlbiwgY2xpZW50IGlzIHN1aXRhYmxlIGZvciBQckVQLgoKUHJFUCBjYW4gcHJvdGVjdCB0aGUgSElWLW5lZ2F0aXZlIHBhcnRuZXIgaW4gYSBzZXJvZGlzY29yZGFudCByZWxhdGlvbnNoaXAgd2hlbiB0aGUgSElWLXBvc2l0aXZlIHBhcnRuZXIgaXMgZWl0aGVyIG5vdCBvbiBhbnRpcmV0cm92aXJhbCB0aGVyYXB5IChBUlQpIG9yIGhhcyBub3QgeWV0IGFjaGlldmVkIHZpcmFsIHN1cHByZXNzaW9uLicKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kIAogICAgICAgICAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIOKJpSA2MCBtTC9taW4iIGFuZAogICAgICAgICAiTm8gc3ltcHRvbXMgb2YgQWN1dGUgSElWIGluZmVjdGlvbiIgYW5kCiAgICAgICAgICJObyBwcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIiBhbmQKICAgICAgICAgIk5vIGNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIGFuZAogICAgICAgICAiSXMgS2V5IHBvcHVsYXRpb24gbWVtYmVyIiBhbmQKICAgICAgICAgIlByRVAgcmVxdWVzdGVkIGJ5IGNsaWVudCIKICAgICAgdGhlbiAnQ291bnNlbCBjbGllbnQgb24gUHJFUC4gQmFzZWQgb24gYW5zd2VycyBnaXZlbiwgY2xpZW50IGlzIHN1aXRhYmxlIGZvciBQckVQLicKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kIAogICAgICAgICAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIOKJpSA2MCBtTC9taW4iIGFuZAogICAgICAgICAiTm8gc3ltcHRvbXMgb2YgQWN1dGUgSElWIGluZmVjdGlvbiIgYW5kCiAgICAgICAgICJObyBwcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIiBhbmQKICAgICAgICAgIk5vIGNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIGFuZAogICAgICAgICAiSXMgS2V5IHBvcHVsYXRpb24gbWVtYmVyIiBhbmQKICAgICAgICAgIkEgc2V4dWFsIHBhcnRuZXIgaW4gdGhlIHBhc3QgNiBtb250aHMgaGFkIG9uZSBvciBtb3JlIEhJViByaXNrIGZhY3RvcnMiCiAgICAgIHRoZW4gJ0NvdW5zZWwgY2xpZW50IG9uIFByRVAuIEJhc2VkIG9uIGFuc3dlcnMgZ2l2ZW4sIGNsaWVudCBpcyBzdWl0YWJsZSBmb3IgUHJFUC4KClByRVAgc2VydmljZXMgcHJvdmlkZSBhIHVuaXF1ZSBvcHBvcnR1bml0eSB0byBzY3JlZW4gZm9yIGhlcGF0aXRpcyBCIGFuZCBoZXBhdGl0aXMgQyBpbmZlY3Rpb24gYW5kIHRodXMgYWRkcmVzcyBtdWx0aXBsZSBwdWJsaWMgaGVhbHRoIGlzc3Vlcy4gSGVwYXRpdGlzIEIgaXMgZW5kZW1pYyBpbiBzb21lIHBhcnRzIG9mIHRoZSB3b3JsZCB3aGVyZSB0aGVyZSBpcyBhbHNvIGEgaGlnaCBidXJkZW4gb2YgSElWLiBUZXN0aW5nIG9yYWwgUHJFUCB1c2VycyBmb3IgaGVwYXRpdGlzIEIgc3VyZmFjZSBhbnRpZ2VuIChIQnNBZykgb25jZSwgYXQgUHJFUCBpbml0aWF0aW9uLCBpcyBwcmVmZXJyZWQgYW5kIGhhcyBzZXZlcmFsIGFkdmFudGFnZXMgaW4gdGhlc2Ugc2V0dGluZ3MuIFJhcGlkIHBvaW50LW9mLWNhcmUgdGVzdHMgYXJlIGF2YWlsYWJsZSBmb3IgSEJzQWcsIGFuZCBXSE8gaGFzIHByZXF1YWxpZmllZCBzZXZlcmFsIHJhcGlkIGRpYWdub3N0aWMgdGVzdHMuJwogICAgd2hlbiAiSElWIG5lZ2F0aXZlIiBhbmQgCiAgICAgICAgICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2Ug4omlIDYwIG1ML21pbiIgYW5kCiAgICAgICAgICJObyBzeW1wdG9tcyBvZiBBY3V0ZSBISVYgaW5mZWN0aW9uIiBhbmQKICAgICAgICAgIk5vIHByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiIGFuZAogICAgICAgICAiTm8gY29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgYW5kCiAgICAgICAgICJJcyBLZXkgcG9wdWxhdGlvbiBtZW1iZXIiIGFuZAogICAgICAgICAiU1RJIGluIHRoZSBwYXN0IDYgbW9udGhzIgogICAgICB0aGVuICdDb3Vuc2VsIGNsaWVudCBvbiBQckVQLiBCYXNlZCBvbiBhbnN3ZXJzIGdpdmVuLCBjbGllbnQgaXMgc3VpdGFibGUgZm9yIFByRVAuCgpSZWNlbnRseSBkaWFnbm9zZWQgU1RJcyBhcmUgb2Z0ZW4gaW5kaWNhdG9ycyBvZiByaXNrIG9mIHNleHVhbCBhY3F1aXNpdGlvbiBvZiBISVYuIFRoZSBwcmVkaWN0aXZlIHZhbHVlIG9mIFNUSSBpbmRpY2F0b3JzIHZhcmllcyBieSByZWdpb24sIHRoZSB0eXBlIG9mIFNUSSBhbmQgYSBwZXJzb25cJ3MgZGVtb2dyYXBoaWMgY2hhcmFjdGVyaXN0aWNzLiBBIG5ldyBkaWFnbm9zaXMgb2Ygc3lwaGlsaXMgb3IgZ2VuaXRhbCBoZXJwZXMgaXMgYSBzdHJvbmcgcHJlZGljdG9yIG9mIEhJViByaXNrIGFtb25nIG1lbiB3aG8gaGF2ZSBzZXggd2l0aCBtZW4gaW4gbW9zdCBzZXR0aW5ncyBhbmQgYW1vbmcgaGV0ZXJvc2V4dWFsIG1lbiBhbmQgd29tZW4gaW4gYXJlYXMgb2YgaGlnaCBISVYgcHJldmFsZW5jZS4gUHJFUCBzZXJ2aWNlcyBzaG91bGQgYmUgcHJpb3JpdGl6ZWQ7IGxvY2FsIGVwaWRlbWlvbG9neSB3aWxsIGJlIGVzc2VudGlhbCB0byBndWlkZSBkZWNpc2lvbnMgYWJvdXQgd2hlbiB0byBvZmZlciBQckVQIGFuZCB0byB3aGljaCBwb3B1bGF0aW9ucy4nCiAgICB3aGVuICJISVYgbmVnYXRpdmUiIGFuZCAKICAgICAgICAgIkVzdGltYXRlZCBjcmVhdGluaW5lIGNsZWFyYW5jZSDiiaUgNjAgbUwvbWluIiBhbmQKICAgICAgICAgIk5vIHN5bXB0b21zIG9mIEFjdXRlIEhJViBpbmZlY3Rpb24iIGFuZAogICAgICAgICAiTm8gcHJvYmFibGUgcmVjZW50IGV4cG9zdXJlIHRvIEhJViIgYW5kCiAgICAgICAgICJObyBjb250cmFpbmRpY2F0aW9ucyB0byBQckVQIHVzYWdlIiBhbmQKICAgICAgICAgIklzIEtleSBwb3B1bGF0aW9uIG1lbWJlciIgYW5kCiAgICAgICAgICJSZXBlYXQgUEVQIHVzZXIiCiAgICAgIHRoZW4gJ0NvdW5zZWwgY2xpZW50IG9uIFByRVAuIEJhc2VkIG9uIGFuc3dlcnMgZ2l2ZW4sIGNsaWVudCBpcyBzdWl0YWJsZSBmb3IgUHJFUC4KClBlb3BsZSBtYXkgYmUgc3ViamVjdCB0byBvbmdvaW5nIGhpZ2ggcmlzayBvZiBleHBvc3VyZSB0byBISVYsIGxlYWRpbmcgdG8gbXVsdGlwbGUgcHJlc2NyaXB0aW9ucyBmb3IgUEVQLiBJbiBzdWNoIHNpdHVhdGlvbnMsIGhlYWx0aC1jYXJlIHByb3ZpZGVycyBzaG91bGQgZGlzY3VzcyB3aXRoIHRoZWlyIGNsaWVudHMgdGhlIHBvdGVudGlhbCBiZW5lZml0cyBvZiB0cmFuc2l0aW9uaW5nIHRvIEhJViBQckVQLicKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kIAogICAgICAgICAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIOKJpSA2MCBtTC9taW4iIGFuZAogICAgICAgICAiTm8gc3ltcHRvbXMgb2YgQWN1dGUgSElWIGluZmVjdGlvbiIgYW5kCiAgICAgICAgICJObyBwcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIiBhbmQKICAgICAgICAgIk5vIGNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIGFuZAogICAgICAgICAiSXMgS2V5IHBvcHVsYXRpb24gbWVtYmVyIiBhbmQKICAgICAgICAgIk5vIGNvbmRvbSB1c2UgZHVyaW5nIHNleCB3aXRoIG1vcmUgdGhhbiBvbmUgcGFydG5lciBpbiB0aGUgcGFzdCA2IG1vbnRocyIKICAgICAgdGhlbiAnQ291bnNlbCBjbGllbnQgb24gUHJFUC4gIEJhc2VkIG9uIGFuc3dlcnMgZ2l2ZW4sIFByRVAgaXMgc3VpdGFibGUgZm9yIGNsaWVudC4KCkluY29uc2lzdGVudCB1c2Ugb2YgY29uZG9tcyAobWFsZSBvciBmZW1hbGUpLCBpbmNsdWRpbmcgYW4gaW50ZW50aW9uIHRvIHVzZSBjb25kb21zIGR1cmluZyBzZXggd2l0aCBzb21lIG9jY2FzaW9uYWwgb21pc3Npb25zIG9yIGFjY2lkZW50cywgaW5jcmVhc2VzIEhJViByaXNrLiBTb2NpYWwgZGVzaXJhYmlsaXR5IGJpYXMgaW4gcmVwb3J0aW5nIGNvbmRvbSB1c2UgbWF5IG9jY3VyLCBzbyBQckVQIGNvdWxkIGJlIGNvbnNpZGVyZWQgZm9yIHBlb3BsZSByZXBvcnRpbmcgYW55IGludGVyY291cnNlIHdpdGhvdXQgYSBjb25kb20gb3IgY29uY2VybnMgYWJvdXQgdGhlaXIgZnV0dXJlIHVzZSBvZiBjb25kb21zLiBGb3IgZXhhbXBsZSwgc29tZW9uZSB3aG8gcmVwb3J0cyBhIGRlc2lyZSB0byBzdG9wIHVzaW5nIGNvbmRvbXMgbWF5IGJlIGFscmVhZHkgaGF2aW5nIHNleCB3aXRob3V0IGNvbmRvbXMuJwogICAgd2hlbiAiSElWIG5lZ2F0aXZlIiBhbmQgCiAgICAgICAgICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2Ug4omlIDYwIG1ML21pbiIgYW5kCiAgICAgICAgICJObyBzeW1wdG9tcyBvZiBBY3V0ZSBISVYgaW5mZWN0aW9uIiBhbmQKICAgICAgICAgIk5vIHByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiIGFuZAogICAgICAgICAiTm8gY29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgYW5kCiAgICAgICAgICJISVYgYnVyZGVuIG9mIHNldHRpbmcgaXMgaGlnaCBISVYgYnVyZGVuIHNldHRpbmciIGFuZAogICAgICAgICAiUHJFUCByZXF1ZXN0ZWQgYnkgY2xpZW50IgogICAgICB0aGVuICdDb3Vuc2VsIGNsaWVudCBvbiBQckVQLiBCYXNlZCBvbiBhbnN3ZXJzIGdpdmVuLCBjbGllbnQgaXMgc3VpdGFibGUgZm9yIFByRVAuJwogICAgd2hlbiAiSElWIG5lZ2F0aXZlIiBhbmQgCiAgICAgICAgICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2Ug4omlIDYwIG1ML21pbiIgYW5kCiAgICAgICAgICJObyBzeW1wdG9tcyBvZiBBY3V0ZSBISVYgaW5mZWN0aW9uIiBhbmQKICAgICAgICAgIk5vIHByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiIGFuZAogICAgICAgICAiTm8gY29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgYW5kCiAgICAgICAgICJISVYgYnVyZGVuIG9mIHNldHRpbmcgaXMgaGlnaCBISVYgYnVyZGVuIHNldHRpbmciIGFuZAogICAgICAgICAiQSBzZXh1YWwgcGFydG5lciBpbiB0aGUgcGFzdCA2IG1vbnRocyBoYWQgb25lIG9yIG1vcmUgSElWIHJpc2sgZmFjdG9ycyIKICAgICAgdGhlbiAnQ291bnNlbCBjbGllbnQgb24gUHJFUC4gQmFzZWQgb24gYW5zd2VycyBnaXZlbiwgY2xpZW50IGlzIHN1aXRhYmxlIGZvciBQckVQLicKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kIAogICAgICAgICAiRXN0aW1hdGVkIGNyZWF0aW5pbmUgY2xlYXJhbmNlIOKJpSA2MCBtTC9taW4iIGFuZAogICAgICAgICAiTm8gc3ltcHRvbXMgb2YgQWN1dGUgSElWIGluZmVjdGlvbiIgYW5kCiAgICAgICAgICJObyBwcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIiBhbmQKICAgICAgICAgIk5vIGNvbnRyYWluZGljYXRpb25zIHRvIFByRVAgdXNhZ2UiIGFuZAogICAgICAgICAiSElWIGJ1cmRlbiBvZiBzZXR0aW5nIGlzIGhpZ2ggSElWIGJ1cmRlbiBzZXR0aW5nIiBhbmQKICAgICAgICAgIlNUSSBpbiB0aGUgcGFzdCA2IG1vbnRocyIKICAgICAgdGhlbiAnQ291bnNlbCBjbGllbnQgb24gUHJFUC4gQmFzZWQgb24gYW5zd2VycyBnaXZlbiwgUHJFUCBpcyBzdWl0YWJsZSBmb3IgY2xpZW50LgoKUmVjZW50bHkgZGlhZ25vc2VkIFNUSXMgYXJlIG9mdGVuIGluZGljYXRvcnMgb2YgcmlzayBvZiBzZXh1YWwgYWNxdWlzaXRpb24gb2YgSElWLiBUaGUgcHJlZGljdGl2ZSB2YWx1ZSBvZiBTVEkgaW5kaWNhdG9ycyB2YXJpZXMgYnkgcmVnaW9uLCB0aGUgdHlwZSBvZiBTVEkgYW5kIGEgcGVyc29uXCdzIGRlbW9ncmFwaGljIGNoYXJhY3RlcmlzdGljcy4gQSBuZXcgZGlhZ25vc2lzIG9mIHN5cGhpbGlzIG9yIGdlbml0YWwgaGVycGVzIGlzIGEgc3Ryb25nIHByZWRpY3RvciBvZiBISVYgcmlzayBhbW9uZyBtZW4gd2hvIGhhdmUgc2V4IHdpdGggbWVuIGluIG1vc3Qgc2V0dGluZ3MgYW5kIGFtb25nIGhldGVyb3NleHVhbCBtZW4gYW5kIHdvbWVuIGluIGFyZWFzIG9mIGhpZ2ggSElWIHByZXZhbGVuY2UuIFByRVAgc2VydmljZXMgc2hvdWxkIGJlIHByaW9yaXRpemVkOyBsb2NhbCBlcGlkZW1pb2xvZ3kgd2lsbCBiZSBlc3NlbnRpYWwgdG8gZ3VpZGUgZGVjaXNpb25zIGFib3V0IHdoZW4gdG8gb2ZmZXIgUHJFUCBhbmQgdG8gd2hpY2ggcG9wdWxhdGlvbnMuJwogICAgd2hlbiAiSElWIG5lZ2F0aXZlIiBhbmQgCiAgICAgICAgICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2Ug4omlIDYwIG1ML21pbiIgYW5kCiAgICAgICAgICJObyBzeW1wdG9tcyBvZiBBY3V0ZSBISVYgaW5mZWN0aW9uIiBhbmQKICAgICAgICAgIk5vIHByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiIGFuZAogICAgICAgICAiTm8gY29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgYW5kCiAgICAgICAgICJISVYgYnVyZGVuIG9mIHNldHRpbmcgaXMgaGlnaCBISVYgYnVyZGVuIHNldHRpbmciIGFuZAogICAgICAgICAiUmVwZWF0IFBFUCB1c2VyIgogICAgICB0aGVuICdDb3Vuc2VsIGNsaWVudCBvbiBQckVQLiBCYXNlZCBvbiBhbnN3ZXJzIGdpdmVuLCBjbGllbnQgaXMgc3VpdGFibGUgZm9yIFByRVAuJwogICAgd2hlbiAiSElWIG5lZ2F0aXZlIiBhbmQgCiAgICAgICAgICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2Ug4omlIDYwIG1ML21pbiIgYW5kCiAgICAgICAgICJObyBzeW1wdG9tcyBvZiBBY3V0ZSBISVYgaW5mZWN0aW9uIiBhbmQKICAgICAgICAgIk5vIHByb2JhYmxlIHJlY2VudCBleHBvc3VyZSB0byBISVYiIGFuZAogICAgICAgICAiTm8gY29udHJhaW5kaWNhdGlvbnMgdG8gUHJFUCB1c2FnZSIgYW5kCiAgICAgICAgICJISVYgYnVyZGVuIG9mIHNldHRpbmcgaXMgaGlnaCBISVYgYnVyZGVuIHNldHRpbmciIGFuZAogICAgICAgICAiTm8gY29uZG9tIHVzZSBkdXJpbmcgc2V4IHdpdGggbW9yZSB0aGFuIG9uZSBwYXJ0bmVyIGluIHRoZSBwYXN0IDYgbW9udGhzIgogICAgICB0aGVuICdDb3Vuc2VsIGNsaWVudCBvbiBQckVQLiBCYXNlZCBvbiBhbnN3ZXJzIGdpdmVuLCBjbGllbnQgaXMgc3VpdGFibGUgZm9yIFByRVAuJwogICAgd2hlbiAiSElWIG5lZ2F0aXZlIG9yIHVua25vd24iIGFuZAogICAgICAgICAiU3ltcHRvbXMgb2YgQWN1dGUgSElWIGluZmVjdGlvbiIKICAgICAgdGhlbiAnQ2xpZW50IGlzIGluZWxpZ2libGUgZm9yIFByRVAgYmFzZWQgb24gYW5zd2VycyBnaXZlbi4nCiAgICB3aGVuICJISVYgbmVnYXRpdmUgb3IgdW5rbm93biIgYW5kCiAgICAgICAgICJQcm9iYWJsZSByZWNlbnQgZXhwb3N1cmUgdG8gSElWIgogICAgICB0aGVuICdDbGllbnQgaXMgaW5lbGlnaWJsZSBmb3IgUHJFUCBiYXNlZCBvbiBhbnN3ZXJzIGdpdmVuLiAgQ291bnNlbCBjbGllbnQgb24gcmlzayBhbmQgcHJldmVudGlvbi4gIAoKSWYgdGhlIHBlcnNvbiBoYXMgaGFkIGEgcmVjZW50IGhpZ2gtcmlzayBISVYgZXhwb3N1cmUgKHN1Y2ggYXMgd2l0aGluIHRoZSBwYXN0IDcyIGhvdXJzKSB0aGV5IGNhbiBiZSBvZmZlcmVkIFBFUCBhbmQgdHJhbnNpdGlvbiB0byBQckVQIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIFBFUCBhbmQgZm9sbG93aW5nIGFkZGl0aW9uYWwgSElWIHRlc3RpbmcuCgpUaGUgZm9sbG93aW5nIHR5cGVzIG9mIGV4cG9zdXJlIG1heSB3YXJyYW50IEhJViBQRVAuCuKAoiBCb2R5IGZsdWlkczogYmxvb2QsIGJsb29kLXN0YWluZWQgc2FsaXZhLCBicmVhc3QtbWlsaywgZ2VuaXRhbCBzZWNyZXRpb25zOyBjZXJlYnJvc3BpbmFsLCBhbW5pb3RpYywgcGVyaXRvbmVhbCwgc3lub3ZpYWwsIHBlcmljYXJkaWFsIG9yIHBsZXVyYWwgZmx1aWRzLiBBbHRob3VnaCB0aGVzZSBmbHVpZHMgY2FycnkgYSBoaWdoIHJpc2sgb2YgSElWIGluZmVjdGlvbiwgdGhpcyBsaXN0IGlzIG5vdCBleGhhdXN0aXZlLiBBbGwgY2FzZXMgc2hvdWxkIGJlIGFzc2Vzc2VkIGNsaW5pY2FsbHksIGFuZCB0aGUgaGVhbHRoIGNhcmUgd29ya2VycyBzaG91bGQgZGVjaWRlIHdoZXRoZXIgdGhlIGFjdHVhbCBleHBvc3VyZSBjb25zdGl0dXRlcyBhIHNpZ25pZmljYW50IHJpc2suCuKAoiBUeXBlcyBvZiBleHBvc3VyZTogKDEpIG11Y291cyBtZW1icmFuZSBmcm9tIHNleHVhbCBleHBvc3VyZTsgc3BsYXNoZXMgdG8gdGhlIGV5ZSwgbm9zZSwgb3Igb3JhbCBjYXZpdHkgYW5kICgyKSBwYXJlbnRlcmFsIGV4cG9zdXJlcy4KRXhwb3N1cmUgdGhhdCBkb2VzIG5vdCByZXF1aXJlIEhJViBQRVAgaW5jbHVkZXM6CuKAoiB3aGVuIHRoZSBleHBvc2VkIGluZGl2aWR1YWwgaXMgYWxyZWFkeSBISVYgcG9zaXRpdmU7CuKAoiB3aGVuIHRoZSBzb3VyY2UgaXMgZXN0YWJsaXNoZWQgdG8gYmUgSElWIG5lZ2F0aXZlOyBhbmQK4oCiIGV4cG9zdXJlIHRvIGJvZGlseSBmbHVpZHMgdGhhdCBkbyBub3QgcG9zZSBhIHNpZ25pZmljYW50IHJpc2s6IHRlYXJzLCBub24tYmxvb2Qtc3RhaW5lZCBzYWxpdmEsIHVyaW5lIGFuZCBzd2VhdC4KClBlb3BsZSBtYXkgYmUgc3ViamVjdCB0byBvbmdvaW5nIGhpZ2ggcmlzayBvZiBleHBvc3VyZSB0byBISVYsIGxlYWRpbmcgdG8gbXVsdGlwbGUgcHJlc2NyaXB0aW9ucyBmb3IgUEVQLiBJbiBzdWNoIHNpdHVhdGlvbnMsIGhlYWx0aC1jYXJlIHByb3ZpZGVycyBzaG91bGQgZGlzY3VzcyB3aXRoIHRoZWlyIGNsaWVudHMgdGhlIHBvdGVudGlhbCBiZW5lZml0cyBvZiB0cmFuc2l0aW9uaW5nIHRvIEhJViBQckVQLicKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kCiAgICAgICAgICJUREYgYWxsZXJneSBvciBjb250cmFpbmRpY2F0aW9uIgogICAgICB0aGVuICdDbGllbnQgaXMgaW5lbGlnaWJsZSBmb3IgUHJFUCBiYXNlZCBvbiBhbnN3ZXJzIGdpdmVuLiBDb3Vuc2VsIGNsaWVudCBvbiByaXNrIGFuZCBwcmV2ZW50aW9uLicKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kCiAgICAgICAgICJDb250cmFpbmRpY2F0aW9ucyB0byBQckVQIHVzYWdlIgogICAgICB0aGVuICdDbGllbnQgaXMgaW5lbGlnaWJsZSBmb3IgUHJFUCBiYXNlZCBvbiBhbnN3ZXJzIGdpdmVuLiBDb3Vuc2VsIGNsaWVudCBvbiByaXNrIGFuZCBwcmV2ZW50aW9uLicKICAgIHdoZW4gIkhJViBuZWdhdGl2ZSIgYW5kCiAgICAgICAgICJFc3RpbWF0ZWQgY3JlYXRpbmluZSBjbGVhcmFuY2UgPCA2MCBtTC9taW4iCiAgICAgIHRoZW4gJ0NsaWVudCBpcyBpbmVsaWdpYmxlIGZvciBQckVQIGJhc2VkIG9uIGFuc3dlcnMgZ2l2ZW4uICBDb3Vuc2VsIGNsaWVudCBvbiByaXNrIGFuZCBwcmV2ZW50aW9uLgoKTWVhc3VyZW1lbnQgb2Yga2lkbmV5IGZ1bmN0aW9uIHdpbGwgZGVwZW5kIG9uIGFnZSBhbmQgY29tb3JiaWRpdGllcy4gIFNlZSBUYWJsZSAyLiBvZiBzb3VyY2U6IFN1Z2dlc3RlZCBwcm9jZWR1cmVzIGZvciBtZWFzdXJpbmcga2lkbmV5IGZ1bmN0aW9uIGZvciBUREYtY29udGFpbmluZyBvcmFsIFByRVAKCk1lYXN1cmluZyBraWRuZXkgZnVuY3Rpb24gaXMgb3B0aW9uYWwgZm9yIHRob3NlIGFnZWQgdW5kZXIgMzAgeWVhcnMgd2l0aG91dCBraWRuZXktcmVsYXRlZCBjb21vcmJpZGl0aWVzLgoKSW5kaXZpZHVhbHMgYWdlZCAzMCB5ZWFycyBhbmQgb2xkZXIgd2l0aG91dCBjb21vcmJpZGl0aWVzIG1heSBiZSBzY3JlZW5lZCBvbmNlLCBhdCBvciB3aXRoaW4gb25lIHRvIHRocmVlIG1vbnRocyBvZiBvcmFsIFByRVAgaW5pdGlhdGlvbi4gRGVwZW5kaW5nIG9uIGF2YWlsYWJsZSByZXNvdXJjZXMsIHRoaXMgY2FuIGJlIGNvbnNpZGVyZWQgb3B0aW9uYWwgZm9yIHRob3NlIGFnZWQgMzDigJM0OSB5ZWFycywgcGFydGljdWxhcmx5IHRob3NlIGFnZWQgMzDigJMzOSwgZ2l2ZW4gdGhlIGxvdyByaXNrIG9mIGtpZG5leSBpbXBhaXJtZW50LgoKTW9yZSBmcmVxdWVudCBzY3JlZW5pbmcgKGV2ZXJ5IDbigJMxMiBtb250aHMpIGlzIHN1Z2dlc3RlZCBmb3IgaW5kaXZpZHVhbHMgd2l0aCBjb21vcmJpZGl0aWVzLCB0aG9zZSBhZ2VkIDUwIHllYXJzIGFuZCBvbGRlciwgYW5kIHRob3NlIHdpdGggYSBwcmV2aW91cyBraWRuZXkgZnVuY3Rpb24gdGVzdCByZXN1bHQgc3VnZ2VzdGluZyBhdCBsZWFzdCBhIG1pbGQgcmVkdWN0aW9uIGluIGZ1bmN0aW9uIChlR0ZSIDw5MCBtTC9taW4gcGVyIDEuNzMgbV4yKS4KCldhaXRpbmcgZm9yIGtpZG5leSBmdW5jdGlvbiB0ZXN0IHJlc3VsdHMgc2hvdWxkIG5vdCBkZWxheSBpbml0aWF0aW9uIG9yIGNvbnRpbnVhdGlvbiBvZiBvcmFsIFByRVAuJwogICAgZWxzZSBudWxsCiAgZW5kCg==",
    "contentType": "text/cql"
  }, {
    "contentType": "application/elm+xml"
  } ],
  "name": "HIVC7DTLogic",
  "type": "{:coding [{:system \\\"http://terminology.hl7.org/CodeSystem/library-type\\\", :code \\\"logic-library\\\"}]}",
  "experimental": "true",
  "resourceType": "Library",
  "title": "HIV.C7.DT Logic",
  "package_version": "1.0.0",
  "extension": [ {
    "url": "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability",
    "valueCode": "computable"
  } ],
  "status": "draft",
  "id": "5fa264ea-a050-4b5d-b73f-908810a4a6b2",
  "kind": null,
  "url": "http://smart.who.int/hiv/Library/HIVC7DTLogic",
  "version": "1.0.0",
  "contact": [ {
    "name": "WHO",
    "telecom": [ {
      "value": "http://who.int",
      "system": "url"
    } ]
  } ]
}