WHO Immunization Implementation Guide
0.2.0 - ci-build
WHO Immunization Implementation Guide, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-immunizations/ and changes regularly. See the Directory of published versions
Draft as of 2025-08-08 |
{
"resourceType" : "Library",
"id" : "IMMZD2DTSeasonalinfluenza2DoseLogic",
"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;\">IMMZD2DTSeasonalinfluenza2DoseLogic</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">IMMZD2DTSeasonalinfluenza2DoseLogic</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Version: </b></th>\n <td style=\"padding-left: 4px;\">0.2.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-IMMZD2DTSeasonalinfluenza2DoseLogic.html\">IMMZD2DTSeasonalinfluenza2DoseLogic</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\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://terminology.hl7.org/6.0.2/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;\">2025-08-08 19:12:11+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>This library defines decision support logic for the IMMZ.D2.DT.Seasonal influenza decision table in the Immunization CPG</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/*\n * Library: IMMZD2DTSeasonalinfluenza2DoseLogic (IMMZ.D2.DT.Seasonal influenza)\n * Rule: Determine if the client is due for a seasonal influenza vaccination according to the national immunization schedule\n * Decision Table: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule\n * Trigger: IMMZ.D2 Determine required vaccination(s) if any \n */\nlibrary IMMZD2DTSeasonalinfluenza2DoseLogic\n\nusing FHIR version '4.0.1'\ninclude FHIRHelpers version '4.0.1'\n\ninclude IMMZD2DTSeasonalinfluenzaEncounterElements called Encounter\n\nparameter Today Date default Today()\n\ncontext Patient\n\n\n/*\n@dynamicValue: Guidance\n*/\ndefine "Guidance":\n case\n when "Client is not due for seasonal influenza vaccination" then "Client is not due for seasonal influenza vaccination Guidance"\n when "Client is due for seasonal influenza vaccination" then "Client is due for seasonal influenza vaccination Guidance"\n when "The primary series is complete. Client is not due for seasonal influenza annual dose" then "The primary series is complete. Client is not due for seasonal influenza annual dose Guidance"\n when "The primary series is complete. Client is due for seasonal influenza annual dose" then "The primary series is complete. Client is due for seasonal influenza annual dose Guidance"\n else ''\n end\n\ndefine "Has Guidance":\n "Guidance" is not null and "Guidance" != ''\n\n/*\n@output: Client is not due for seasonal influenza vaccination Case 1\n@pseudocode: "Immunization recommendation status" = "Not due"\n*/\ndefine "Client is not due for seasonal influenza vaccination Case 1":\n Encounter."Client's age is less than 6 months"\n\n/*\n@output: Client is not due for seasonal influenza vaccination Case 2\n@pseudocode: "Immunization recommendation status" = "Not due"\n*/\ndefine "Client is not due for seasonal influenza vaccination Case 2":\n Encounter."One seasonal influenza primary series doses were administered"\n and Encounter."Client's age is less than 9 years"\n and Encounter."The latest seasonal influenza dose was administered less than 4 weeks ago"\n\n/*\n@output: Client is not due for seasonal influenza vaccination\n@pseudocode: "Immunization recommendation status" = "Not due"\n*/\ndefine "Client is not due for seasonal influenza vaccination":\n "Client is not due for seasonal influenza vaccination Case 1"\n or "Client is not due for seasonal influenza vaccination Case 2"\n\n/*\n@output: Client is not due for seasonal influenza vaccination Guidance\n@guidance: Should not vaccinate client with first seasonal influenza dose as client's age is less than 6 months. \nCheck for any other vaccines due and inform the caregiver of when to come back for first dose.\n@guidance: Should not vaccinate client with second seasonal influenza dose as latest seasonal influenza dose was administered less than 4 weeks ago. \nCheck for any other vaccines due and inform the caregiver of when to come back for the second dose.\n*/\ndefine "Client is not due for seasonal influenza vaccination Guidance":\n case\n when "Client is not due for seasonal influenza vaccination Case 1" then 'Should not vaccinate client with first seasonal influenza dose as client\\'s age is less than 6 months. \nCheck for any other vaccines due and inform the caregiver of when to come back for first dose.'\n when "Client is not due for seasonal influenza vaccination Case 2" then 'Should not vaccinate client with second seasonal influenza dose as latest seasonal influenza dose was administered less than 4 weeks ago. \nCheck for any other vaccines due and inform the caregiver of when to come back for the second dose.'\n else ''\n end\n\n/*\n@output: Client is due for seasonal influenza vaccination Case 1\n@pseudocode: "Immunization recommendation status" = "Due"\n*/\ndefine "Client is due for seasonal influenza vaccination Case 1":\n Encounter."No seasonal influenza primary series doses were administered"\n and Encounter."Client's age is more than or equal to 6 months"\n\n/*\n@output: Client is due for seasonal influenza vaccination Case 2\n@pseudocode: "Immunization recommendation status" = "Due"\n*/\ndefine "Client is due for seasonal influenza vaccination Case 2":\n Encounter."One seasonal influenza primary series doses were administered"\n and Encounter."Client's age is less than 9 years"\n and Encounter."The latest seasonal influenza dose was administered more than 4 weeks ago"\n\n/*\n@output: Client is due for seasonal influenza vaccination\n@pseudocode: "Immunization recommendation status" = "Due"\n*/\ndefine "Client is due for seasonal influenza vaccination":\n "Client is due for seasonal influenza vaccination Case 1"\n or "Client is due for seasonal influenza vaccination Case 2"\n\n/*\n@output: Client is due for seasonal influenza vaccination Guidance\n@guidance: Should vaccinate client with first seasonal influenza dose as no seasonal infuenza doses were administered and client is within appropriate age range. \nCheck for contraindications. \n@guidance: Should vaccinate client with second seasonal influenza dose as client is within appropriate age range and latest seasonal influenza dose was administerered more than 4 weeks ago.\nCheck for contraindications. \n*/\ndefine "Client is due for seasonal influenza vaccination Guidance":\n case\n when "Client is due for seasonal influenza vaccination Case 1" then 'Should vaccinate client with first seasonal influenza dose as no seasonal infuenza doses were administered and client is within appropriate age range. \nCheck for contraindications. '\n when "Client is due for seasonal influenza vaccination Case 2" then 'Should vaccinate client with second seasonal influenza dose as client is within appropriate age range and latest seasonal influenza dose was administerered more than 4 weeks ago.\nCheck for contraindications. '\n else ''\n end\n\n/*\n@output: The primary series is complete. Client is not due for seasonal influenza annual dose Case 1\n@pseudocode: "Immunization recommendation status" = "Not due"\n*/\ndefine "The primary series is complete. Client is not due for seasonal influenza annual dose Case 1":\n Encounter."One seasonal influenza primary series doses were administered"\n and Encounter."Client's age is more than or equal to 9 years"\n and Encounter."The latest seasonal influenza dose was administered less than 1 year ago"\n\n/*\n@output: The primary series is complete. Client is not due for seasonal influenza annual dose Case 2\n@pseudocode: "Immunization recommendation status" = "Not due"\n*/\ndefine "The primary series is complete. Client is not due for seasonal influenza annual dose Case 2":\n Encounter."Two seasonal influenza primary series doses were administered"\n and Encounter."The latest seasonal influenza dose was administered less than 1 year ago"\n\n/*\n@output: The primary series is complete. Client is not due for seasonal influenza annual dose\n@pseudocode: "Immunization recommendation status" = "Not due"\n*/\ndefine "The primary series is complete. Client is not due for seasonal influenza annual dose":\n "The primary series is complete. Client is not due for seasonal influenza annual dose Case 1"\n or "The primary series is complete. Client is not due for seasonal influenza annual dose Case 2"\n\n/*\n@output: The primary series is complete. Client is not due for seasonal influenza annual dose Guidance\n@guidance: Should not vaccinate client with annual dose as the latest seasonal influenza dose was administered less than 1 year ago. \nCheck for any other vaccines due and inform the caregiver of when to come back for the next dose.\n@guidance: Should not vaccinate client with annual dose as latest seasonal influenza dose was administered less than 1 year ago. \nCheck for any other vaccines due and inform the caregiver of when to come back for the next dose.\n*/\ndefine "The primary series is complete. Client is not due for seasonal influenza annual dose Guidance":\n case\n when "The primary series is complete. Client is not due for seasonal influenza annual dose Case 1" then 'Should not vaccinate client with annual dose as the latest seasonal influenza dose was administered less than 1 year ago. \nCheck for any other vaccines due and inform the caregiver of when to come back for the next dose.'\n when "The primary series is complete. Client is not due for seasonal influenza annual dose Case 2" then 'Should not vaccinate client with annual dose as latest seasonal influenza dose was administered less than 1 year ago. \nCheck for any other vaccines due and inform the caregiver of when to come back for the next dose.'\n else ''\n end\n\n/*\n@output: The primary series is complete. Client is due for seasonal influenza annual dose Case 1\n@pseudocode: "Immunization recommendation status" = "Due"\n*/\ndefine "The primary series is complete. Client is due for seasonal influenza annual dose Case 1":\n Encounter."One seasonal influenza primary series doses were administered"\n and Encounter."Client's age is more than or equal to 9 years"\n and Encounter."The latest seasonal influenza dose was administered more than 1 year ago"\n\n/*\n@output: The primary series is complete. Client is due for seasonal influenza annual dose Case 2\n@pseudocode: "Immunization recommendation status" = "Due"\n*/\ndefine "The primary series is complete. Client is due for seasonal influenza annual dose Case 2":\n Encounter."Two seasonal influenza primary series doses were administered"\n and Encounter."The latest seasonal influenza dose was administered more than 1 year ago"\n\n/*\n@output: The primary series is complete. Client is due for seasonal influenza annual dose\n@pseudocode: "Immunization recommendation status" = "Due"\n*/\ndefine "The primary series is complete. Client is due for seasonal influenza annual dose":\n "The primary series is complete. Client is due for seasonal influenza annual dose Case 1"\n or "The primary series is complete. Client is due for seasonal influenza annual dose Case 2"\n\n/*\n@output: The primary series is complete. Client is due for seasonal influenza annual dose Guidance\n@guidance: Should vaccinate client with annual dose as the latest seasonal influenza dose was administered more than 1 year ago. \nCheck for contraindications.\n@guidance: Should vaccinate client with annual dose as latest seasonal influenza dose was administered more than 1 year ago. \nCheck for contraindications.\n*/\ndefine "The primary series is complete. Client is due for seasonal influenza annual dose Guidance":\n case\n when "The primary series is complete. Client is due for seasonal influenza annual dose Case 1" then 'Should vaccinate client with annual dose as the latest seasonal influenza dose was administered more than 1 year ago. \nCheck for contraindications.'\n when "The primary series is complete. Client is due for seasonal influenza annual dose Case 2" then 'Should vaccinate client with annual dose as latest seasonal influenza dose was administered more than 1 year ago. \nCheck for contraindications.'\n else ''\n end\n\n\n/*\n@test: Test expected results based on example patients\n*/\ndefine "Test Validation":\n case\n when Patient.id = '08.1' then "Client is not due for seasonal influenza vaccination Case 1" and "Guidance" = 'Should not vaccinate client with first seasonal influenza dose as client\\'s age is less than 6 months. \nCheck for any other vaccines due and inform the caregiver of when to come back for first dose.'\n when Patient.id = '09.01' then "Client is due for seasonal influenza vaccination Case 1" and "Guidance" = 'Should vaccinate client with first seasonal influenza dose as no seasonal infuenza doses were administered and client is within appropriate age range. \nCheck for contraindications. '\n when Patient.id = '10.012' then "Client is not due for seasonal influenza vaccination Case 2" and "Guidance" = 'Should not vaccinate client with second seasonal influenza dose as latest seasonal influenza dose was administered less than 4 weeks ago. \nCheck for any other vaccines due and inform the caregiver of when to come back for the second dose.'\n when Patient.id = '11.012' then "Client is due for seasonal influenza vaccination Case 2" and "Guidance" = 'Should vaccinate client with second seasonal influenza dose as client is within appropriate age range and latest seasonal influenza dose was administerered more than 4 weeks ago.\nCheck for contraindications. '\n when Patient.id = '12.012' then "The primary series is complete. Client is not due for seasonal influenza annual dose Case 1" and "Guidance" = 'Should not vaccinate client with annual dose as the latest seasonal influenza dose was administered less than 1 year ago. \nCheck for any other vaccines due and inform the caregiver of when to come back for the next dose.'\n when Patient.id = '13.012' then "The primary series is complete. Client is due for seasonal influenza annual dose Case 1" and "Guidance" = 'Should vaccinate client with annual dose as the latest seasonal influenza dose was administered more than 1 year ago. \nCheck for contraindications.'\n when Patient.id = '14.02' then "The primary series is complete. Client is not due for seasonal influenza annual dose Case 2" and "Guidance" = 'Should not vaccinate client with annual dose as latest seasonal influenza dose was administered less than 1 year ago. \nCheck for any other vaccines due and inform the caregiver of when to come back for the next dose.'\n when Patient.id = '15.02' then "The primary series is complete. Client is due for seasonal influenza annual dose Case 2" and "Guidance" = 'Should vaccinate client with annual dose as latest seasonal influenza dose was administered more than 1 year ago. \nCheck for contraindications.'\n else 'No test case set'\n end\n</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/immunizations/Library/IMMZD2DTSeasonalinfluenza2DoseLogic",
"version" : "0.2.0",
"name" : "IMMZD2DTSeasonalinfluenza2DoseLogic",
"title" : "IMMZD2DTSeasonalinfluenza2DoseLogic",
"status" : "draft",
"experimental" : false,
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2025-08-08T19:12:11+00:00",
"publisher" : "WHO",
"contact" : [
{
"name" : "WHO",
"telecom" : [
{
"system" : "url",
"value" : "http://who.int"
}
]
}
],
"description" : "This library defines decision support logic for the IMMZ.D2.DT.Seasonal influenza decision table in the Immunization CPG",
"content" : [
{
"contentType" : "text/cql",
"data" : "Ci8qCiAqIExpYnJhcnk6IElNTVpEMkRUU2Vhc29uYWxpbmZsdWVuemEyRG9zZUxvZ2ljIChJTU1aLkQyLkRULlNlYXNvbmFsIGluZmx1ZW56YSkKICogUnVsZTogRGV0ZXJtaW5lIGlmIHRoZSBjbGllbnQgaXMgZHVlIGZvciBhIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBhY2NvcmRpbmcgdG8gdGhlIG5hdGlvbmFsIGltbXVuaXphdGlvbiBzY2hlZHVsZQogKiBEZWNpc2lvbiBUYWJsZTogSW5hY3RpdmF0ZWQgdHJpdmFsZW50IGFuZCBxdWFkcml2YWxlbnQgdmFjY2luZXMsIDItZG9zZSBzY2hlZHVsZQogKiBUcmlnZ2VyOiBJTU1aLkQyIERldGVybWluZSByZXF1aXJlZCB2YWNjaW5hdGlvbihzKSBpZiBhbnkgIAogKi8KbGlicmFyeSBJTU1aRDJEVFNlYXNvbmFsaW5mbHVlbnphMkRvc2VMb2dpYwoKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSU1NWkQyRFRTZWFzb25hbGluZmx1ZW56YUVuY291bnRlckVsZW1lbnRzIGNhbGxlZCBFbmNvdW50ZXIKCnBhcmFtZXRlciBUb2RheSBEYXRlIGRlZmF1bHQgVG9kYXkoKQoKY29udGV4dCBQYXRpZW50CgoKLyoKQGR5bmFtaWNWYWx1ZTogR3VpZGFuY2UKKi8KZGVmaW5lICJHdWlkYW5jZSI6CiAgY2FzZQogICAgd2hlbiAiQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiIgdGhlbiAiQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBHdWlkYW5jZSIKICAgIHdoZW4gIkNsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiIgdGhlbiAiQ2xpZW50IGlzIGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIHZhY2NpbmF0aW9uIEd1aWRhbmNlIgogICAgd2hlbiAiVGhlIHByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlLiBDbGllbnQgaXMgbm90IGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIGFubnVhbCBkb3NlIiB0aGVuICJUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBub3QgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgYW5udWFsIGRvc2UgR3VpZGFuY2UiCiAgICB3aGVuICJUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSIgdGhlbiAiVGhlIHByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlLiBDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgYW5udWFsIGRvc2UgR3VpZGFuY2UiCiAgICBlbHNlICcnCiAgZW5kCgpkZWZpbmUgIkhhcyBHdWlkYW5jZSI6CiAgIkd1aWRhbmNlIiBpcyBub3QgbnVsbCBhbmQgIkd1aWRhbmNlIiAhPSAnJwoKLyoKQG91dHB1dDogQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBDYXNlIDEKQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJOb3QgZHVlIgoqLwpkZWZpbmUgIkNsaWVudCBpcyBub3QgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgdmFjY2luYXRpb24gQ2FzZSAxIjoKICBFbmNvdW50ZXIuIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiBtb250aHMiCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgbm90IGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIHZhY2NpbmF0aW9uIENhc2UgMgpAcHNldWRvY29kZTogIkltbXVuaXphdGlvbiByZWNvbW1lbmRhdGlvbiBzdGF0dXMiID0gIk5vdCBkdWUiCiovCmRlZmluZSAiQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBDYXNlIDIiOgogIEVuY291bnRlci4iT25lIHNlYXNvbmFsIGluZmx1ZW56YSBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCIKICAgIGFuZCBFbmNvdW50ZXIuIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gOSB5ZWFycyIKICAgIGFuZCBFbmNvdW50ZXIuIlRoZSBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCB3ZWVrcyBhZ28iCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgbm90IGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIHZhY2NpbmF0aW9uCkBwc2V1ZG9jb2RlOiAiSW1tdW5pemF0aW9uIHJlY29tbWVuZGF0aW9uIHN0YXR1cyIgPSAiTm90IGR1ZSIKKi8KZGVmaW5lICJDbGllbnQgaXMgbm90IGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIHZhY2NpbmF0aW9uIjoKICAiQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBDYXNlIDEiCiAgICBvciAiQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBDYXNlIDIiCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgbm90IGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIHZhY2NpbmF0aW9uIEd1aWRhbmNlCkBndWlkYW5jZTogU2hvdWxkIG5vdCB2YWNjaW5hdGUgY2xpZW50IHdpdGggZmlyc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2UgYXMgY2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IG1vbnRocy4gCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvZiB3aGVuIHRvIGNvbWUgYmFjayBmb3IgZmlyc3QgZG9zZS4KQGd1aWRhbmNlOiBTaG91bGQgbm90IHZhY2NpbmF0ZSBjbGllbnQgd2l0aCBzZWNvbmQgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2UgYXMgbGF0ZXN0IHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvLiAKQ2hlY2sgZm9yIGFueSBvdGhlciB2YWNjaW5lcyBkdWUgYW5kIGluZm9ybSB0aGUgY2FyZWdpdmVyIG9mIHdoZW4gdG8gY29tZSBiYWNrIGZvciB0aGUgc2Vjb25kIGRvc2UuCiovCmRlZmluZSAiQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBHdWlkYW5jZSI6CiAgY2FzZQogICAgd2hlbiAiQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBDYXNlIDEiIHRoZW4gJ1Nob3VsZCBub3QgdmFjY2luYXRlIGNsaWVudCB3aXRoIGZpcnN0IHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIGFzIGNsaWVudFwncyBhZ2UgaXMgbGVzcyB0aGFuIDYgbW9udGhzLiAKQ2hlY2sgZm9yIGFueSBvdGhlciB2YWNjaW5lcyBkdWUgYW5kIGluZm9ybSB0aGUgY2FyZWdpdmVyIG9mIHdoZW4gdG8gY29tZSBiYWNrIGZvciBmaXJzdCBkb3NlLicKICAgIHdoZW4gIkNsaWVudCBpcyBub3QgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgdmFjY2luYXRpb24gQ2FzZSAyIiB0aGVuICdTaG91bGQgbm90IHZhY2NpbmF0ZSBjbGllbnQgd2l0aCBzZWNvbmQgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2UgYXMgbGF0ZXN0IHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvLiAKQ2hlY2sgZm9yIGFueSBvdGhlciB2YWNjaW5lcyBkdWUgYW5kIGluZm9ybSB0aGUgY2FyZWdpdmVyIG9mIHdoZW4gdG8gY29tZSBiYWNrIGZvciB0aGUgc2Vjb25kIGRvc2UuJwogICAgZWxzZSAnJwogIGVuZAoKLyoKQG91dHB1dDogQ2xpZW50IGlzIGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIHZhY2NpbmF0aW9uIENhc2UgMQpAcHNldWRvY29kZTogIkltbXVuaXphdGlvbiByZWNvbW1lbmRhdGlvbiBzdGF0dXMiID0gIkR1ZSIKKi8KZGVmaW5lICJDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgdmFjY2luYXRpb24gQ2FzZSAxIjoKICBFbmNvdW50ZXIuIk5vIHNlYXNvbmFsIGluZmx1ZW56YSBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCIKICAgIGFuZCBFbmNvdW50ZXIuIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiBtb250aHMiCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgdmFjY2luYXRpb24gQ2FzZSAyCkBwc2V1ZG9jb2RlOiAiSW1tdW5pemF0aW9uIHJlY29tbWVuZGF0aW9uIHN0YXR1cyIgPSAiRHVlIgoqLwpkZWZpbmUgIkNsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBDYXNlIDIiOgogIEVuY291bnRlci4iT25lIHNlYXNvbmFsIGluZmx1ZW56YSBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCIKICAgIGFuZCBFbmNvdW50ZXIuIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gOSB5ZWFycyIKICAgIGFuZCBFbmNvdW50ZXIuIlRoZSBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNCB3ZWVrcyBhZ28iCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgdmFjY2luYXRpb24KQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJEdWUiCiovCmRlZmluZSAiQ2xpZW50IGlzIGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIHZhY2NpbmF0aW9uIjoKICAiQ2xpZW50IGlzIGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIHZhY2NpbmF0aW9uIENhc2UgMSIKICAgIG9yICJDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgdmFjY2luYXRpb24gQ2FzZSAyIgoKLyoKQG91dHB1dDogQ2xpZW50IGlzIGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIHZhY2NpbmF0aW9uIEd1aWRhbmNlCkBndWlkYW5jZTogU2hvdWxkIHZhY2NpbmF0ZSBjbGllbnQgd2l0aCBmaXJzdCBzZWFzb25hbCBpbmZsdWVuemEgZG9zZSBhcyBubyBzZWFzb25hbCBpbmZ1ZW56YSBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCBhbmQgY2xpZW50IGlzIHdpdGhpbiBhcHByb3ByaWF0ZSBhZ2UgcmFuZ2UuIApDaGVjayBmb3IgY29udHJhaW5kaWNhdGlvbnMuIApAZ3VpZGFuY2U6IFNob3VsZCB2YWNjaW5hdGUgY2xpZW50IHdpdGggc2Vjb25kIHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIGFzIGNsaWVudCBpcyB3aXRoaW4gYXBwcm9wcmlhdGUgYWdlIHJhbmdlIGFuZCBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzIGFkbWluaXN0ZXJlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnby4KQ2hlY2sgZm9yIGNvbnRyYWluZGljYXRpb25zLiAKKi8KZGVmaW5lICJDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgdmFjY2luYXRpb24gR3VpZGFuY2UiOgogIGNhc2UKICAgIHdoZW4gIkNsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBDYXNlIDEiIHRoZW4gJ1Nob3VsZCB2YWNjaW5hdGUgY2xpZW50IHdpdGggZmlyc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2UgYXMgbm8gc2Vhc29uYWwgaW5mdWVuemEgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQgYW5kIGNsaWVudCBpcyB3aXRoaW4gYXBwcm9wcmlhdGUgYWdlIHJhbmdlLiAKQ2hlY2sgZm9yIGNvbnRyYWluZGljYXRpb25zLiAnCiAgICB3aGVuICJDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgdmFjY2luYXRpb24gQ2FzZSAyIiB0aGVuICdTaG91bGQgdmFjY2luYXRlIGNsaWVudCB3aXRoIHNlY29uZCBzZWFzb25hbCBpbmZsdWVuemEgZG9zZSBhcyBjbGllbnQgaXMgd2l0aGluIGFwcHJvcHJpYXRlIGFnZSByYW5nZSBhbmQgbGF0ZXN0IHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIHdhcyBhZG1pbmlzdGVyZXJlZCBtb3JlIHRoYW4gNCB3ZWVrcyBhZ28uCkNoZWNrIGZvciBjb250cmFpbmRpY2F0aW9ucy4gJwogICAgZWxzZSAnJwogIGVuZAoKLyoKQG91dHB1dDogVGhlIHByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlLiBDbGllbnQgaXMgbm90IGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIGFubnVhbCBkb3NlIENhc2UgMQpAcHNldWRvY29kZTogIkltbXVuaXphdGlvbiByZWNvbW1lbmRhdGlvbiBzdGF0dXMiID0gIk5vdCBkdWUiCiovCmRlZmluZSAiVGhlIHByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlLiBDbGllbnQgaXMgbm90IGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIGFubnVhbCBkb3NlIENhc2UgMSI6CiAgRW5jb3VudGVyLiJPbmUgc2Vhc29uYWwgaW5mbHVlbnphIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIgogICAgYW5kIEVuY291bnRlci4iQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byA5IHllYXJzIgogICAgYW5kIEVuY291bnRlci4iVGhlIGxhdGVzdCBzZWFzb25hbCBpbmZsdWVuemEgZG9zZSB3YXMgIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMSB5ZWFyIGFnbyIKCi8qCkBvdXRwdXQ6IFRoZSBwcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS4gQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBDYXNlIDIKQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJOb3QgZHVlIgoqLwpkZWZpbmUgIlRoZSBwcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS4gQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBDYXNlIDIiOgogIEVuY291bnRlci4iVHdvIHNlYXNvbmFsIGluZmx1ZW56YSBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCIKICAgIGFuZCBFbmNvdW50ZXIuIlRoZSBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzICBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDEgeWVhciBhZ28iCgovKgpAb3V0cHV0OiBUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBub3QgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgYW5udWFsIGRvc2UKQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJOb3QgZHVlIgoqLwpkZWZpbmUgIlRoZSBwcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS4gQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSI6CiAgIlRoZSBwcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS4gQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBDYXNlIDEiCiAgICBvciAiVGhlIHByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlLiBDbGllbnQgaXMgbm90IGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIGFubnVhbCBkb3NlIENhc2UgMiIKCi8qCkBvdXRwdXQ6IFRoZSBwcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS4gQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBHdWlkYW5jZQpAZ3VpZGFuY2U6IFNob3VsZCBub3QgdmFjY2luYXRlIGNsaWVudCB3aXRoIGFubnVhbCBkb3NlIGFzIHRoZSBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMSB5ZWFyIGFnby4gCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvZiB3aGVuIHRvIGNvbWUgYmFjayBmb3IgdGhlIG5leHQgZG9zZS4KQGd1aWRhbmNlOiBTaG91bGQgbm90IHZhY2NpbmF0ZSBjbGllbnQgd2l0aCBhbm51YWwgZG9zZSBhcyBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMSB5ZWFyIGFnby4gCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvZiB3aGVuIHRvIGNvbWUgYmFjayBmb3IgdGhlIG5leHQgZG9zZS4KKi8KZGVmaW5lICJUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBub3QgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgYW5udWFsIGRvc2UgR3VpZGFuY2UiOgogIGNhc2UKICAgIHdoZW4gIlRoZSBwcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS4gQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBDYXNlIDEiIHRoZW4gJ1Nob3VsZCBub3QgdmFjY2luYXRlIGNsaWVudCB3aXRoIGFubnVhbCBkb3NlIGFzIHRoZSBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMSB5ZWFyIGFnby4gCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvZiB3aGVuIHRvIGNvbWUgYmFjayBmb3IgdGhlIG5leHQgZG9zZS4nCiAgICB3aGVuICJUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBub3QgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgYW5udWFsIGRvc2UgQ2FzZSAyIiB0aGVuICdTaG91bGQgbm90IHZhY2NpbmF0ZSBjbGllbnQgd2l0aCBhbm51YWwgZG9zZSBhcyBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMSB5ZWFyIGFnby4gCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvZiB3aGVuIHRvIGNvbWUgYmFjayBmb3IgdGhlIG5leHQgZG9zZS4nCiAgICBlbHNlICcnCiAgZW5kCgovKgpAb3V0cHV0OiBUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBDYXNlIDEKQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJEdWUiCiovCmRlZmluZSAiVGhlIHByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlLiBDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgYW5udWFsIGRvc2UgQ2FzZSAxIjoKICBFbmNvdW50ZXIuIk9uZSBzZWFzb25hbCBpbmZsdWVuemEgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiCiAgICBhbmQgRW5jb3VudGVyLiJDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDkgeWVhcnMiCiAgICBhbmQgRW5jb3VudGVyLiJUaGUgbGF0ZXN0IHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDEgeWVhciBhZ28iCgovKgpAb3V0cHV0OiBUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBDYXNlIDIKQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJEdWUiCiovCmRlZmluZSAiVGhlIHByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlLiBDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgYW5udWFsIGRvc2UgQ2FzZSAyIjoKICBFbmNvdW50ZXIuIlR3byBzZWFzb25hbCBpbmZsdWVuemEgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiCiAgICBhbmQgRW5jb3VudGVyLiJUaGUgbGF0ZXN0IHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDEgeWVhciBhZ28iCgovKgpAb3V0cHV0OiBUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZQpAcHNldWRvY29kZTogIkltbXVuaXphdGlvbiByZWNvbW1lbmRhdGlvbiBzdGF0dXMiID0gIkR1ZSIKKi8KZGVmaW5lICJUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSI6CiAgIlRoZSBwcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS4gQ2xpZW50IGlzIGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIGFubnVhbCBkb3NlIENhc2UgMSIKICAgIG9yICJUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBDYXNlIDIiCgovKgpAb3V0cHV0OiBUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBHdWlkYW5jZQpAZ3VpZGFuY2U6IFNob3VsZCB2YWNjaW5hdGUgY2xpZW50IHdpdGggYW5udWFsIGRvc2UgYXMgdGhlIGxhdGVzdCBzZWFzb25hbCBpbmZsdWVuemEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiAxIHllYXIgYWdvLiAKQ2hlY2sgZm9yIGNvbnRyYWluZGljYXRpb25zLgpAZ3VpZGFuY2U6IFNob3VsZCB2YWNjaW5hdGUgY2xpZW50IHdpdGggIGFubnVhbCBkb3NlIGFzIGxhdGVzdCBzZWFzb25hbCBpbmZsdWVuemEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiAxIHllYXIgYWdvLiAKQ2hlY2sgZm9yIGNvbnRyYWluZGljYXRpb25zLgoqLwpkZWZpbmUgIlRoZSBwcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS4gQ2xpZW50IGlzIGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIGFubnVhbCBkb3NlIEd1aWRhbmNlIjoKICBjYXNlCiAgICB3aGVuICJUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBDYXNlIDEiIHRoZW4gJ1Nob3VsZCB2YWNjaW5hdGUgY2xpZW50IHdpdGggYW5udWFsIGRvc2UgYXMgdGhlIGxhdGVzdCBzZWFzb25hbCBpbmZsdWVuemEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiAxIHllYXIgYWdvLiAKQ2hlY2sgZm9yIGNvbnRyYWluZGljYXRpb25zLicKICAgIHdoZW4gIlRoZSBwcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS4gQ2xpZW50IGlzIGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIGFubnVhbCBkb3NlIENhc2UgMiIgdGhlbiAnU2hvdWxkIHZhY2NpbmF0ZSBjbGllbnQgd2l0aCAgYW5udWFsIGRvc2UgYXMgbGF0ZXN0IHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDEgeWVhciBhZ28uIApDaGVjayBmb3IgY29udHJhaW5kaWNhdGlvbnMuJwogICAgZWxzZSAnJwogIGVuZAoKCi8qCkB0ZXN0OiBUZXN0IGV4cGVjdGVkIHJlc3VsdHMgYmFzZWQgb24gZXhhbXBsZSBwYXRpZW50cwoqLwpkZWZpbmUgIlRlc3QgVmFsaWRhdGlvbiI6CiAgY2FzZQogICAgd2hlbiBQYXRpZW50LmlkID0gJzA4LjEnIHRoZW4gIkNsaWVudCBpcyBub3QgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgdmFjY2luYXRpb24gQ2FzZSAxIiBhbmQgIkd1aWRhbmNlIiA9ICdTaG91bGQgbm90IHZhY2NpbmF0ZSBjbGllbnQgd2l0aCBmaXJzdCBzZWFzb25hbCBpbmZsdWVuemEgZG9zZSBhcyBjbGllbnRcJ3MgYWdlIGlzIGxlc3MgdGhhbiA2IG1vbnRocy4gCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvZiB3aGVuIHRvIGNvbWUgYmFjayBmb3IgZmlyc3QgZG9zZS4nCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnMDkuMDEnIHRoZW4gIkNsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBDYXNlIDEiIGFuZCAiR3VpZGFuY2UiID0gJ1Nob3VsZCB2YWNjaW5hdGUgY2xpZW50IHdpdGggZmlyc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2UgYXMgbm8gc2Vhc29uYWwgaW5mdWVuemEgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQgYW5kIGNsaWVudCBpcyB3aXRoaW4gYXBwcm9wcmlhdGUgYWdlIHJhbmdlLiAKQ2hlY2sgZm9yIGNvbnRyYWluZGljYXRpb25zLiAnCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnMTAuMDEyJyB0aGVuICJDbGllbnQgaXMgbm90IGR1ZSBmb3Igc2Vhc29uYWwgaW5mbHVlbnphIHZhY2NpbmF0aW9uIENhc2UgMiIgYW5kICJHdWlkYW5jZSIgPSAnU2hvdWxkIG5vdCB2YWNjaW5hdGUgY2xpZW50IHdpdGggc2Vjb25kIHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIGFzIGxhdGVzdCBzZWFzb25hbCBpbmZsdWVuemEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IHdlZWtzIGFnby4gCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvZiB3aGVuIHRvIGNvbWUgYmFjayBmb3IgdGhlIHNlY29uZCBkb3NlLicKICAgIHdoZW4gUGF0aWVudC5pZCA9ICcxMS4wMTInIHRoZW4gIkNsaWVudCBpcyBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSB2YWNjaW5hdGlvbiBDYXNlIDIiIGFuZCAiR3VpZGFuY2UiID0gJ1Nob3VsZCB2YWNjaW5hdGUgY2xpZW50IHdpdGggc2Vjb25kIHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIGFzIGNsaWVudCBpcyB3aXRoaW4gYXBwcm9wcmlhdGUgYWdlIHJhbmdlIGFuZCBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzIGFkbWluaXN0ZXJlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnby4KQ2hlY2sgZm9yIGNvbnRyYWluZGljYXRpb25zLiAnCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnMTIuMDEyJyB0aGVuICJUaGUgcHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUuIENsaWVudCBpcyBub3QgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgYW5udWFsIGRvc2UgQ2FzZSAxIiBhbmQgIkd1aWRhbmNlIiA9ICdTaG91bGQgbm90IHZhY2NpbmF0ZSBjbGllbnQgd2l0aCBhbm51YWwgZG9zZSBhcyB0aGUgbGF0ZXN0IHNlYXNvbmFsIGluZmx1ZW56YSBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDEgeWVhciBhZ28uIApDaGVjayBmb3IgYW55IG90aGVyIHZhY2NpbmVzIGR1ZSBhbmQgaW5mb3JtIHRoZSBjYXJlZ2l2ZXIgb2Ygd2hlbiB0byBjb21lIGJhY2sgZm9yIHRoZSBuZXh0IGRvc2UuJwogICAgd2hlbiBQYXRpZW50LmlkID0gJzEzLjAxMicgdGhlbiAiVGhlIHByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlLiBDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgYW5udWFsIGRvc2UgQ2FzZSAxIiBhbmQgIkd1aWRhbmNlIiA9ICdTaG91bGQgdmFjY2luYXRlIGNsaWVudCB3aXRoIGFubnVhbCBkb3NlIGFzIHRoZSBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gMSB5ZWFyIGFnby4gCkNoZWNrIGZvciBjb250cmFpbmRpY2F0aW9ucy4nCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnMTQuMDInIHRoZW4gIlRoZSBwcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS4gQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHNlYXNvbmFsIGluZmx1ZW56YSBhbm51YWwgZG9zZSBDYXNlIDIiIGFuZCAiR3VpZGFuY2UiID0gJ1Nob3VsZCBub3QgdmFjY2luYXRlIGNsaWVudCB3aXRoIGFubnVhbCBkb3NlIGFzIGxhdGVzdCBzZWFzb25hbCBpbmZsdWVuemEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiAxIHllYXIgYWdvLiAKQ2hlY2sgZm9yIGFueSBvdGhlciB2YWNjaW5lcyBkdWUgYW5kIGluZm9ybSB0aGUgY2FyZWdpdmVyIG9mIHdoZW4gdG8gY29tZSBiYWNrIGZvciB0aGUgbmV4dCBkb3NlLicKICAgIHdoZW4gUGF0aWVudC5pZCA9ICcxNS4wMicgdGhlbiAiVGhlIHByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlLiBDbGllbnQgaXMgZHVlIGZvciBzZWFzb25hbCBpbmZsdWVuemEgYW5udWFsIGRvc2UgQ2FzZSAyIiBhbmQgIkd1aWRhbmNlIiA9ICdTaG91bGQgdmFjY2luYXRlIGNsaWVudCB3aXRoICBhbm51YWwgZG9zZSBhcyBsYXRlc3Qgc2Vhc29uYWwgaW5mbHVlbnphIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gMSB5ZWFyIGFnby4gCkNoZWNrIGZvciBjb250cmFpbmRpY2F0aW9ucy4nCiAgICBlbHNlICdObyB0ZXN0IGNhc2Ugc2V0JwogIGVuZAo="
},
{
"contentType" : "application/elm+xml"
}
]
}