WHO Immunization Implementation Guide, published by WHO. This guide is not an authorized publication; it is the continuous build for version 1.0.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/tree/132/merge and changes regularly. See the Directory of published versions
| Draft as of 2026-03-31 |
@prefix fhir: <http://hl7.org/fhir/> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @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 "IMMZD2DTTyphoidTy21aLogic"] ; # fhir:meta [ ( fhir:profile [ fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"^^xsd:anyURI ; fhir:l <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary> ] [ fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"^^xsd:anyURI ; fhir:l <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary> ] [ fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"^^xsd:anyURI ; fhir:l <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library> ] [ fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"^^xsd:anyURI ; fhir:l <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module> ] ) ] ; # fhir:text [ fhir:status [ fhir:v "extensions" ] ; fhir:div [ fhir:v "<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;\">IMMZD2DTTyphoidTy21aLogic</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">IMMZD2DTTyphoidTy21aLogic</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Version: </b></th>\n <td style=\"padding-left: 4px;\">1.0.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-IMMZD2DTTyphoidTy21aLogic.html\">IMMZD2DTTyphoidTy21aLogic</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/7.1.0/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;\">2026-03-31 13:54:17+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.Typhoid.Ty21a 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 <tr>\n <th scope=\"row\"><b>Related Artifacts: </b></th>\n <td style=\"padding-left: 4px;\">\n \n \n \n <p><b>Dependencies</b></p>\n <ul>\n \n <li><a href=\"Library-IMMZD2DTTyphoidEncounterElements.html\">IMMZD2DTTyphoidEncounterElements</a></li>\n \n </ul>\n \n \n \n \n \n </td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Parameters: </b></th>\n <td style=\"padding-left: 4px;\">\n <table class=\"grid-dict\">\n <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>\n \n <tr><th>Today</th><th>date</th><th>0</th><th>1</th><th>In</th></tr>\n \n <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is not due for Typhoid vaccination Case 1</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is not due for Typhoid vaccination Case 2</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is not due for Typhoid vaccination</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is not due for Typhoid vaccination Guidance</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is due for Typhoid vaccination</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is due for Typhoid vaccination Guidance</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is not due for typhoid booster dose Case 1</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is not due for typhoid booster dose Case 2</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is not due for typhoid booster dose</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is not due for typhoid booster dose Guidance</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is due for typhoid booster dose</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client is due for typhoid booster dose Guidance</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Guidance</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Has Guidance</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Test Validation</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n \n </table>\n </td>\n </tr>\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: IMMZD2DTTyphoidTy21aLogic (IMMZ.D2.DT.Typhoid.Ty21a)\n * Rule: Determine if the client is due for a typhoid vaccination according to the national immunization schedule\n * Decision Table: Live attenuated Ty21a vaccine schedule\n * Trigger: IMMZ.D2 Determine required vaccination(s) if any\n */\nlibrary IMMZD2DTTyphoidTy21aLogic\n\nusing FHIR version '4.0.1'\ninclude FHIRHelpers version '4.0.1'\n\ninclude IMMZD2DTTyphoidEncounterElements 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 Typhoid vaccination\" then \"Client is not due for Typhoid vaccination Guidance\"\n when \"Client is due for Typhoid vaccination\" then \"Client is due for Typhoid vaccination Guidance\"\n when \"Client is not due for typhoid booster dose\" then \"Client is not due for typhoid booster dose Guidance\"\n when \"Client is due for typhoid booster dose\" then \"Client is due for typhoid booster 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 Typhoid vaccination Case 1\n@pseudocode: \"Immunization recommendation status\" = \"Not due\"\n*/\ndefine \"Client is not due for Typhoid vaccination Case 1\":\n Encounter.\"Client's age is less than 6 years\"\n\n/*\n@output: Client is not due for Typhoid vaccination Case 2\n@pseudocode: \"Immunization recommendation status\" = \"Not due\"\n*/\ndefine \"Client is not due for Typhoid vaccination Case 2\":\n Encounter.\"Client's age is more than or equal to 6 years\"\n and Encounter.\"Primary series is not complete\"\n and Encounter.\"Live vaccine, other than typhoid, was administered in the past 4 weeks\"\n\n/*\n@output: Client is not due for Typhoid vaccination\n@pseudocode: \"Immunization recommendation status\" = \"Not due\"\n*/\ndefine \"Client is not due for Typhoid vaccination\":\n \"Client is not due for Typhoid vaccination Case 1\"\n or \"Client is not due for Typhoid vaccination Case 2\"\n\n/*\n@output: Client is not due for Typhoid vaccination Guidance\n@guidance = Should not vaccinate client with typhoid dose as client's age is less than 6 years.\nCheck for any other vaccines due and inform the caregiver of when to come back for the first dose.\n@guidance = Should not vaccinate client with typhoid dose as live vaccine was administered in the past 4 weeks.\nCheck for other vaccines due and inform the caregiver or the client when the next dose should be administered.\n*/\ndefine \"Client is not due for Typhoid vaccination Guidance\":\n case\n when \"Client is not due for Typhoid vaccination Case 1\" then 'Should not vaccinate client with typhoid dose as client\\'s age is less than 6 years.\nCheck for any other vaccines due and inform the caregiver of when to come back for the first dose.'\n when \"Client is not due for Typhoid vaccination Case 2\" then 'Should not vaccinate client with typhoid dose as live vaccine was administered in the past 4 weeks.\nCheck for other vaccines due and inform the caregiver or the client when the next dose should be administered.'\n else ''\n end\n\n/*\n@output: Client is due for Typhoid vaccination\n@pseudocode: \"Immunization recommendation status\" = \"Due\"\n*/\ndefine \"Client is due for Typhoid vaccination\":\n Encounter.\"Client's age is more than or equal to 6 years\"\n and Encounter.\"Primary series is not complete\"\n and Encounter.\"No live vaccine, other than typhoid, was administered in the past 4 weeks\"\n\n/*\n@output: Client is due for Typhoid vaccination Guidance\n@guidance: Prescribe the Ty21a primary series (if not done yet). Should vaccinate client with typhoid dose as primary series has not been completed and no live vaccines was administered in the past 4 weeks.\nCheck for contraindications.\n*/\ndefine \"Client is due for Typhoid vaccination Guidance\":\n 'Prescribe the Ty21a primary series (if not done yet). Should vaccinate client with typhoid dose as primary series has not been completed and no live vaccines was administered in the past 4 weeks.\nCheck for contraindications.'\n\n/*\n@output: Client is not due for typhoid booster dose Case 1\n@pseudocode: \"Immunization recommendation status\" = \"Not due\"\n*/\ndefine \"Client is not due for typhoid booster dose Case 1\":\n Encounter.\"Client's age is more than or equal to 6 years\"\n and Encounter.\"Primary series is complete\"\n and Encounter.\"The latest typhoid dose was administered less than 3 years ago\"\n\n/*\n@output: Client is not due for typhoid booster dose Case 2\n@pseudocode: \"Immunization recommendation status\" = \"Not due\"\n*/\ndefine \"Client is not due for typhoid booster dose Case 2\":\n Encounter.\"Client's age is more than or equal to 6 years\"\n and Encounter.\"Primary series is complete\"\n and Encounter.\"The latest typhoid dose was administered more than 3 years ago\"\n and Encounter.\"Live vaccine, other than typhoid, was administered in the past 4 weeks\"\n\n/*\n@output: Client is not due for typhoid booster dose\n@pseudocode: \"Immunization recommendation status\" = \"Not due\"\n*/\ndefine \"Client is not due for typhoid booster dose\":\n \"Client is not due for typhoid booster dose Case 1\"\n or \"Client is not due for typhoid booster dose Case 2\"\n\n/*\n@output: Client is not due for typhoid booster dose Guidance\n@guidance = Should not vaccinate client with typhoid booster dose as the latest typhoid dose was administered less than 3 years ago.\nCheck for any other vaccines due and inform the caregiver or the client when the next dose should be administered.\n@guidance = Should not vaccinate client with typhoid booster dose as live vaccine was administered in the past 4 weeks.\nCheck for any other vaccines due and inform the caregiver or the client when the next dose should be administered\n*/\ndefine \"Client is not due for typhoid booster dose Guidance\":\n case\n when \"Client is not due for typhoid booster dose Case 1\" then 'Should not vaccinate client with typhoid booster dose as the latest typhoid dose was administered less than 3 years ago.\nCheck for any other vaccines due and inform the caregiver or the client when the next dose should be administered.'\n when \"Client is not due for typhoid booster dose Case 2\" then 'Should not vaccinate client with typhoid booster dose as live vaccine was administered in the past 4 weeks.\nCheck for any other vaccines due and inform the caregiver or the client when the next dose should be administered'\n else ''\n end\n\n/*\n@output: Client is due for typhoid booster dose\n@pseudocode: \"Immunization recommendation status\" = \"Due\"\n*/\ndefine \"Client is due for typhoid booster dose\":\n Encounter.\"Client's age is more than or equal to 6 years\"\n and Encounter.\"Primary series is complete\"\n and Encounter.\"The latest typhoid dose was administered more than 3 years ago\"\n and Encounter.\"No live vaccine, other than typhoid, was administered in the past 4 weeks\"\n\n/*\n@output: Client is due for typhoid booster dose Guidance\n@guidance: Prescribe the Ty21a booster series. Should vaccinate client with typhoid booster dose as primary series has been completed, the latest typhoid dose was administered more than 3 years ago and no live vaccine was administered in the past 4 weeks.\nCheck for contraindications.\n*/\ndefine \"Client is due for typhoid booster dose Guidance\":\n 'Prescribe the Ty21a booster series. Should vaccinate client with typhoid booster dose as primary series has been completed, the latest typhoid dose was administered more than 3 years ago and no live vaccine was administered in the past 4 weeks.\nCheck for contraindications.'\n\n\n/*\n@test: Test expected results based on example patients\n*/\ndefine \"Test Validation\":\n case\n when Patient.id = 'Typhoid30.1' then \"Client is not due for Typhoid vaccination Case 1\" and \"Guidance\" = 'Should not vaccinate client with typhoid dose as client\\'s age is less than 6 years.\nCheck for any other vaccines due and inform the caregiver of when to come back for the first dose.'\n when Patient.id = 'Typhoid31.3' then \"Client is due for Typhoid vaccination\" and \"Guidance\" = 'Prescribe the Ty21a primary series (if not done yet). Should vaccinate client with typhoid dose as primary series has not been completed and no live vaccines was administered in the past 4 weeks.\nCheck for contraindications.'\n when Patient.id = 'Typhoid32.3' then \"Client is not due for Typhoid vaccination Case 2\" and \"Guidance\" = 'Should not vaccinate client with typhoid dose as live vaccine was administered in the past 4 weeks.\nCheck for other vaccines due and inform the caregiver or the client when the next dose should be administered.'\n when Patient.id = 'Typhoid33.3' then \"Client is not due for typhoid booster dose Case 1\" and \"Guidance\" = 'Should not vaccinate client with typhoid booster dose as the latest typhoid dose was administered less than 3 years ago.\nCheck for any other vaccines due and inform the caregiver or the client when the next dose should be administered.'\n when Patient.id = 'Typhoid34.4' then \"Client is due for typhoid booster dose\" and \"Guidance\" = 'Prescribe the Ty21a booster series. Should vaccinate client with typhoid booster dose as primary series has been completed, the latest typhoid dose was administered more than 3 years ago and no live vaccine was administered in the past 4 weeks.\nCheck for contraindications.'\n when Patient.id = 'Typhoid35.4' then \"Client is not due for typhoid booster dose Case 2\" and \"Guidance\" = 'Should not vaccinate client with typhoid booster dose as live vaccine was administered in the past 4 weeks.\nCheck for any other vaccines due and inform the caregiver or the client when the next dose should be administered'\n else 'No test case set'\n end\n</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n \n </table>\n</div>\n</div>"^^rdf:XMLLiteral ] ] ; # fhir:extension ( [ fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability"^^xsd:anyURI ; fhir:l <http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability> ] ; fhir:value [ a fhir:Code ; fhir:v "computable" ] ] ) ; # fhir:url [ fhir:v "http://smart.who.int/immunizations/Library/IMMZD2DTTyphoidTy21aLogic"^^xsd:anyURI ; fhir:l <http://smart.who.int/immunizations/Library/IMMZD2DTTyphoidTy21aLogic> ] ; # fhir:version [ fhir:v "1.0.0"] ; # fhir:name [ fhir:v "IMMZD2DTTyphoidTy21aLogic"] ; # fhir:title [ fhir:v "IMMZD2DTTyphoidTy21aLogic"] ; # fhir:status [ fhir:v "draft"] ; # fhir:experimental [ fhir:v false] ; # fhir:type [ ( fhir:coding [ fhir:system [ fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ; fhir:l <http://terminology.hl7.org/CodeSystem/library-type> ] ; fhir:code [ fhir:v "logic-library" ] ] ) ] ; # fhir:date [ fhir:v "2026-03-31T13:54: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 "This library defines decision support logic for the IMMZ.D2.DT.Typhoid.Ty21a decision table in the Immunization CPG"] ; # fhir:relatedArtifact ( [ fhir:type [ fhir:v "depends-on" ] ; fhir:display [ fhir:v "Library Encounter" ] ; fhir:resource [ fhir:v "http://smart.who.int/immunizations/Library/IMMZD2DTTyphoidEncounterElements"^^xsd:anyURI ; fhir:l <http://smart.who.int/immunizations/Library/IMMZD2DTTyphoidEncounterElements> ] ] ) ; # fhir:parameter ( [ fhir:name [ fhir:v "Today" ] ; fhir:use [ fhir:v "in" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "date" ] ] [ fhir:name [ fhir:v "Patient" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "Patient" ] ] [ fhir:name [ fhir:v "Client is not due for Typhoid vaccination Case 1" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "boolean" ] ] [ fhir:name [ fhir:v "Client is not due for Typhoid vaccination Case 2" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "boolean" ] ] [ fhir:name [ fhir:v "Client is not due for Typhoid vaccination" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "boolean" ] ] [ fhir:name [ fhir:v "Client is not due for Typhoid vaccination Guidance" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "string" ] ] [ fhir:name [ fhir:v "Client is due for Typhoid vaccination" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "boolean" ] ] [ fhir:name [ fhir:v "Client is due for Typhoid vaccination Guidance" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "string" ] ] [ fhir:name [ fhir:v "Client is not due for typhoid booster dose Case 1" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "boolean" ] ] [ fhir:name [ fhir:v "Client is not due for typhoid booster dose Case 2" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "boolean" ] ] [ fhir:name [ fhir:v "Client is not due for typhoid booster dose" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "boolean" ] ] [ fhir:name [ fhir:v "Client is not due for typhoid booster dose Guidance" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "string" ] ] [ fhir:name [ fhir:v "Client is due for typhoid booster dose" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "boolean" ] ] [ fhir:name [ fhir:v "Client is due for typhoid booster dose Guidance" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "string" ] ] [ fhir:name [ fhir:v "Guidance" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "string" ] ] [ fhir:name [ fhir:v "Has Guidance" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "boolean" ] ] [ fhir:name [ fhir:v "Test Validation" ] ; fhir:use [ fhir:v "out" ] ; fhir:min [ fhir:v 0 ] ; fhir:max [ fhir:v "1" ] ; fhir:type [ fhir:v "Resource" ] ] ) ; # fhir:content ( [ fhir:contentType [ fhir:v "text/cql" ] ; fhir:data [ fhir:v "LyoKICogTGlicmFyeTogSU1NWkQyRFRUeXBob2lkVHkyMWFMb2dpYyAoSU1NWi5EMi5EVC5UeXBob2lkLlR5MjFhKQogKiBSdWxlOiBEZXRlcm1pbmUgaWYgdGhlIGNsaWVudCBpcyBkdWUgZm9yIGEgdHlwaG9pZCB2YWNjaW5hdGlvbiBhY2NvcmRpbmcgdG8gdGhlIG5hdGlvbmFsIGltbXVuaXphdGlvbiBzY2hlZHVsZQogKiBEZWNpc2lvbiBUYWJsZTogTGl2ZSBhdHRlbnVhdGVkIFR5MjFhIHZhY2NpbmUgc2NoZWR1bGUKICogVHJpZ2dlcjogSU1NWi5EMiBEZXRlcm1pbmUgcmVxdWlyZWQgdmFjY2luYXRpb24ocykgaWYgYW55CiAqLwpsaWJyYXJ5IElNTVpEMkRUVHlwaG9pZFR5MjFhTG9naWMKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIElNTVpEMkRUVHlwaG9pZEVuY291bnRlckVsZW1lbnRzIGNhbGxlZCBFbmNvdW50ZXIKCnBhcmFtZXRlciBUb2RheSBEYXRlIGRlZmF1bHQgVG9kYXkoKQoKY29udGV4dCBQYXRpZW50CgoKLyoKQGR5bmFtaWNWYWx1ZTogR3VpZGFuY2UKKi8KZGVmaW5lICJHdWlkYW5jZSI6CiAgY2FzZSAKICAgIHdoZW4gIkNsaWVudCBpcyBub3QgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIiB0aGVuICJDbGllbnQgaXMgbm90IGR1ZSBmb3IgVHlwaG9pZCB2YWNjaW5hdGlvbiBHdWlkYW5jZSIKICAgIHdoZW4gIkNsaWVudCBpcyBkdWUgZm9yIFR5cGhvaWQgdmFjY2luYXRpb24iIHRoZW4gIkNsaWVudCBpcyBkdWUgZm9yIFR5cGhvaWQgdmFjY2luYXRpb24gR3VpZGFuY2UiCiAgICB3aGVuICJDbGllbnQgaXMgbm90IGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UiIHRoZW4gIkNsaWVudCBpcyBub3QgZHVlIGZvciB0eXBob2lkIGJvb3N0ZXIgZG9zZSBHdWlkYW5jZSIKICAgIHdoZW4gIkNsaWVudCBpcyBkdWUgZm9yIHR5cGhvaWQgYm9vc3RlciBkb3NlIiB0aGVuICJDbGllbnQgaXMgZHVlIGZvciB0eXBob2lkIGJvb3N0ZXIgZG9zZSBHdWlkYW5jZSIgCiAgICBlbHNlICcnCiAgZW5kCiAgCmRlZmluZSAiSGFzIEd1aWRhbmNlIjoKICAiR3VpZGFuY2UiIGlzIG5vdCBudWxsIGFuZCAiR3VpZGFuY2UiICE9ICcnCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgbm90IGR1ZSBmb3IgVHlwaG9pZCB2YWNjaW5hdGlvbiBDYXNlIDEKQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJOb3QgZHVlIgoqLwpkZWZpbmUgIkNsaWVudCBpcyBub3QgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIENhc2UgMSI6CiAgRW5jb3VudGVyLiJDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDYgeWVhcnMiCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgbm90IGR1ZSBmb3IgVHlwaG9pZCB2YWNjaW5hdGlvbiBDYXNlIDIKQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJOb3QgZHVlIgoqLwpkZWZpbmUgIkNsaWVudCBpcyBub3QgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIENhc2UgMiI6CiAgRW5jb3VudGVyLiJDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDYgeWVhcnMiCiAgICBhbmQgRW5jb3VudGVyLiJQcmltYXJ5IHNlcmllcyBpcyBub3QgY29tcGxldGUiCiAgICBhbmQgRW5jb3VudGVyLiJMaXZlIHZhY2NpbmUsIG90aGVyIHRoYW4gdHlwaG9pZCwgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgcGFzdCA0IHdlZWtzIgoKLyoKQG91dHB1dDogQ2xpZW50IGlzIG5vdCBkdWUgZm9yIFR5cGhvaWQgdmFjY2luYXRpb24KQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJOb3QgZHVlIgoqLwpkZWZpbmUgIkNsaWVudCBpcyBub3QgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIjoKICAiQ2xpZW50IGlzIG5vdCBkdWUgZm9yIFR5cGhvaWQgdmFjY2luYXRpb24gQ2FzZSAxIgogICAgb3IgIkNsaWVudCBpcyBub3QgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIENhc2UgMiIKCi8qCkBvdXRwdXQ6IENsaWVudCBpcyBub3QgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIEd1aWRhbmNlCkBndWlkYW5jZSA9IFNob3VsZCBub3QgdmFjY2luYXRlIGNsaWVudCB3aXRoIHR5cGhvaWQgZG9zZSBhcyBjbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDYgeWVhcnMuCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvZiB3aGVuIHRvIGNvbWUgYmFjayBmb3IgdGhlIGZpcnN0IGRvc2UuCkBndWlkYW5jZSA9IFNob3VsZCBub3QgdmFjY2luYXRlIGNsaWVudCB3aXRoIHR5cGhvaWQgZG9zZSBhcyBsaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgcGFzdCA0IHdlZWtzLgpDaGVjayBmb3Igb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvciB0aGUgY2xpZW50IHdoZW4gdGhlIG5leHQgZG9zZSBzaG91bGQgYmUgYWRtaW5pc3RlcmVkLgoqLwpkZWZpbmUgIkNsaWVudCBpcyBub3QgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIEd1aWRhbmNlIjoKICBjYXNlCiAgICB3aGVuICJDbGllbnQgaXMgbm90IGR1ZSBmb3IgVHlwaG9pZCB2YWNjaW5hdGlvbiBDYXNlIDEiIHRoZW4gJ1Nob3VsZCBub3QgdmFjY2luYXRlIGNsaWVudCB3aXRoIHR5cGhvaWQgZG9zZSBhcyBjbGllbnRcJ3MgYWdlIGlzIGxlc3MgdGhhbiA2IHllYXJzLgpDaGVjayBmb3IgYW55IG90aGVyIHZhY2NpbmVzIGR1ZSBhbmQgaW5mb3JtIHRoZSBjYXJlZ2l2ZXIgb2Ygd2hlbiB0byBjb21lIGJhY2sgZm9yIHRoZSBmaXJzdCBkb3NlLicKICAgIHdoZW4gIkNsaWVudCBpcyBub3QgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIENhc2UgMiIgdGhlbiAnU2hvdWxkIG5vdCB2YWNjaW5hdGUgY2xpZW50IHdpdGggdHlwaG9pZCBkb3NlIGFzIGxpdmUgdmFjY2luZSB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MuCkNoZWNrIGZvciBvdGhlciB2YWNjaW5lcyBkdWUgYW5kIGluZm9ybSB0aGUgY2FyZWdpdmVyIG9yIHRoZSBjbGllbnQgd2hlbiB0aGUgbmV4dCBkb3NlIHNob3VsZCBiZSBhZG1pbmlzdGVyZWQuJwogICAgZWxzZSAnJwogIGVuZAoKLyoKQG91dHB1dDogQ2xpZW50IGlzIGR1ZSBmb3IgVHlwaG9pZCB2YWNjaW5hdGlvbgpAcHNldWRvY29kZTogIkltbXVuaXphdGlvbiByZWNvbW1lbmRhdGlvbiBzdGF0dXMiID0gIkR1ZSIKKi8KZGVmaW5lICJDbGllbnQgaXMgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIjoKICBFbmNvdW50ZXIuIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiB5ZWFycyIKICAgIGFuZCBFbmNvdW50ZXIuIlByaW1hcnkgc2VyaWVzIGlzIG5vdCBjb21wbGV0ZSIKICAgIGFuZCBFbmNvdW50ZXIuIk5vIGxpdmUgdmFjY2luZSwgb3RoZXIgdGhhbiB0eXBob2lkLCB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MiCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIEd1aWRhbmNlCkBndWlkYW5jZTogUHJlc2NyaWJlIHRoZSBUeTIxYSBwcmltYXJ5IHNlcmllcyAoaWYgbm90IGRvbmUgeWV0KS4gU2hvdWxkIHZhY2NpbmF0ZSBjbGllbnQgd2l0aCB0eXBob2lkIGRvc2UgYXMgcHJpbWFyeSBzZXJpZXMgaGFzIG5vdCBiZWVuIGNvbXBsZXRlZCBhbmQgbm8gbGl2ZSB2YWNjaW5lcyB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MuCkNoZWNrIGZvciBjb250cmFpbmRpY2F0aW9ucy4KKi8KZGVmaW5lICJDbGllbnQgaXMgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIEd1aWRhbmNlIjoKICAnUHJlc2NyaWJlIHRoZSBUeTIxYSBwcmltYXJ5IHNlcmllcyAoaWYgbm90IGRvbmUgeWV0KS4gU2hvdWxkIHZhY2NpbmF0ZSBjbGllbnQgd2l0aCB0eXBob2lkIGRvc2UgYXMgcHJpbWFyeSBzZXJpZXMgaGFzIG5vdCBiZWVuIGNvbXBsZXRlZCBhbmQgbm8gbGl2ZSB2YWNjaW5lcyB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MuCkNoZWNrIGZvciBjb250cmFpbmRpY2F0aW9ucy4nCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgbm90IGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UgQ2FzZSAxCkBwc2V1ZG9jb2RlOiAiSW1tdW5pemF0aW9uIHJlY29tbWVuZGF0aW9uIHN0YXR1cyIgPSAiTm90IGR1ZSIKKi8KZGVmaW5lICJDbGllbnQgaXMgbm90IGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UgQ2FzZSAxIjoKICBFbmNvdW50ZXIuIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiB5ZWFycyIKICAgIGFuZCBFbmNvdW50ZXIuIlByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlIgogICAgYW5kIEVuY291bnRlci4iVGhlIGxhdGVzdCB0eXBob2lkIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMyB5ZWFycyBhZ28iCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgbm90IGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UgQ2FzZSAyCkBwc2V1ZG9jb2RlOiAiSW1tdW5pemF0aW9uIHJlY29tbWVuZGF0aW9uIHN0YXR1cyIgPSAiTm90IGR1ZSIKKi8KZGVmaW5lICJDbGllbnQgaXMgbm90IGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UgQ2FzZSAyIjoKICBFbmNvdW50ZXIuIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiB5ZWFycyIKICAgIGFuZCBFbmNvdW50ZXIuIlByaW1hcnkgc2VyaWVzIGlzIGNvbXBsZXRlIgogICAgYW5kIEVuY291bnRlci4iVGhlIGxhdGVzdCB0eXBob2lkIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gMyB5ZWFycyBhZ28iCiAgICBhbmQgRW5jb3VudGVyLiJMaXZlIHZhY2NpbmUsIG90aGVyIHRoYW4gdHlwaG9pZCwgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgcGFzdCA0IHdlZWtzIgoKLyoKQG91dHB1dDogQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHR5cGhvaWQgYm9vc3RlciBkb3NlCkBwc2V1ZG9jb2RlOiAiSW1tdW5pemF0aW9uIHJlY29tbWVuZGF0aW9uIHN0YXR1cyIgPSAiTm90IGR1ZSIKKi8KZGVmaW5lICJDbGllbnQgaXMgbm90IGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UiOgogICJDbGllbnQgaXMgbm90IGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UgQ2FzZSAxIgogICAgb3IgIkNsaWVudCBpcyBub3QgZHVlIGZvciB0eXBob2lkIGJvb3N0ZXIgZG9zZSBDYXNlIDIiCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgbm90IGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UgR3VpZGFuY2UKQGd1aWRhbmNlID0gU2hvdWxkIG5vdCB2YWNjaW5hdGUgY2xpZW50IHdpdGggdHlwaG9pZCBib29zdGVyIGRvc2UgYXMgdGhlIGxhdGVzdCB0eXBob2lkIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMyB5ZWFycyBhZ28uCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvciB0aGUgY2xpZW50IHdoZW4gdGhlIG5leHQgZG9zZSBzaG91bGQgYmUgYWRtaW5pc3RlcmVkLgpAZ3VpZGFuY2UgPSBTaG91bGQgbm90IHZhY2NpbmF0ZSBjbGllbnQgd2l0aCB0eXBob2lkIGJvb3N0ZXIgZG9zZSBhcyBsaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgcGFzdCA0IHdlZWtzLgpDaGVjayBmb3IgYW55IG90aGVyIHZhY2NpbmVzIGR1ZSBhbmQgaW5mb3JtIHRoZSBjYXJlZ2l2ZXIgb3IgdGhlIGNsaWVudCB3aGVuIHRoZSBuZXh0IGRvc2Ugc2hvdWxkIGJlIGFkbWluaXN0ZXJlZAoqLwpkZWZpbmUgIkNsaWVudCBpcyBub3QgZHVlIGZvciB0eXBob2lkIGJvb3N0ZXIgZG9zZSBHdWlkYW5jZSI6CiAgY2FzZQogICAgd2hlbiAiQ2xpZW50IGlzIG5vdCBkdWUgZm9yIHR5cGhvaWQgYm9vc3RlciBkb3NlIENhc2UgMSIgdGhlbiAnU2hvdWxkIG5vdCB2YWNjaW5hdGUgY2xpZW50IHdpdGggdHlwaG9pZCBib29zdGVyIGRvc2UgYXMgdGhlIGxhdGVzdCB0eXBob2lkIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMyB5ZWFycyBhZ28uCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvciB0aGUgY2xpZW50IHdoZW4gdGhlIG5leHQgZG9zZSBzaG91bGQgYmUgYWRtaW5pc3RlcmVkLicKICAgIHdoZW4gIkNsaWVudCBpcyBub3QgZHVlIGZvciB0eXBob2lkIGJvb3N0ZXIgZG9zZSBDYXNlIDIiIHRoZW4gJ1Nob3VsZCBub3QgdmFjY2luYXRlIGNsaWVudCB3aXRoIHR5cGhvaWQgYm9vc3RlciBkb3NlIGFzIGxpdmUgdmFjY2luZSB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MuCkNoZWNrIGZvciBhbnkgb3RoZXIgdmFjY2luZXMgZHVlIGFuZCBpbmZvcm0gdGhlIGNhcmVnaXZlciBvciB0aGUgY2xpZW50IHdoZW4gdGhlIG5leHQgZG9zZSBzaG91bGQgYmUgYWRtaW5pc3RlcmVkJwogICAgZWxzZSAnJwogIGVuZAoKLyoKQG91dHB1dDogQ2xpZW50IGlzIGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UKQHBzZXVkb2NvZGU6ICJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJEdWUiCiovCmRlZmluZSAiQ2xpZW50IGlzIGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UiOgogIEVuY291bnRlci4iQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byA2IHllYXJzIgogICAgYW5kIEVuY291bnRlci4iUHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUiCiAgICBhbmQgRW5jb3VudGVyLiJUaGUgbGF0ZXN0IHR5cGhvaWQgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiAzIHllYXJzIGFnbyIKICAgIGFuZCBFbmNvdW50ZXIuIk5vIGxpdmUgdmFjY2luZSwgb3RoZXIgdGhhbiB0eXBob2lkLCB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MiCgovKgpAb3V0cHV0OiBDbGllbnQgaXMgZHVlIGZvciB0eXBob2lkIGJvb3N0ZXIgZG9zZSBHdWlkYW5jZQpAZ3VpZGFuY2U6IFByZXNjcmliZSB0aGUgVHkyMWEgYm9vc3RlciBzZXJpZXMuIFNob3VsZCB2YWNjaW5hdGUgY2xpZW50IHdpdGggdHlwaG9pZCBib29zdGVyIGRvc2UgYXMgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkLCB0aGUgbGF0ZXN0IHR5cGhvaWQgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiAzIHllYXJzIGFnbyBhbmQgbm8gbGl2ZSB2YWNjaW5lIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIHBhc3QgNCB3ZWVrcy4KQ2hlY2sgZm9yIGNvbnRyYWluZGljYXRpb25zLgoqLwpkZWZpbmUgIkNsaWVudCBpcyBkdWUgZm9yIHR5cGhvaWQgYm9vc3RlciBkb3NlIEd1aWRhbmNlIjoKICAnUHJlc2NyaWJlIHRoZSBUeTIxYSBib29zdGVyIHNlcmllcy4gU2hvdWxkIHZhY2NpbmF0ZSBjbGllbnQgd2l0aCB0eXBob2lkIGJvb3N0ZXIgZG9zZSBhcyBwcmltYXJ5IHNlcmllcyBoYXMgYmVlbiBjb21wbGV0ZWQsIHRoZSBsYXRlc3QgdHlwaG9pZCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDMgeWVhcnMgYWdvIGFuZCBubyBsaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgcGFzdCA0IHdlZWtzLgpDaGVjayBmb3IgY29udHJhaW5kaWNhdGlvbnMuJwoKCi8qCkB0ZXN0OiBUZXN0IGV4cGVjdGVkIHJlc3VsdHMgYmFzZWQgb24gZXhhbXBsZSBwYXRpZW50cwoqLwpkZWZpbmUgIlRlc3QgVmFsaWRhdGlvbiI6CiAgY2FzZQogICAgd2hlbiBQYXRpZW50LmlkID0gJ1R5cGhvaWQzMC4xJyB0aGVuICJDbGllbnQgaXMgbm90IGR1ZSBmb3IgVHlwaG9pZCB2YWNjaW5hdGlvbiBDYXNlIDEiIGFuZCAiR3VpZGFuY2UiID0gJ1Nob3VsZCBub3QgdmFjY2luYXRlIGNsaWVudCB3aXRoIHR5cGhvaWQgZG9zZSBhcyBjbGllbnRcJ3MgYWdlIGlzIGxlc3MgdGhhbiA2IHllYXJzLgpDaGVjayBmb3IgYW55IG90aGVyIHZhY2NpbmVzIGR1ZSBhbmQgaW5mb3JtIHRoZSBjYXJlZ2l2ZXIgb2Ygd2hlbiB0byBjb21lIGJhY2sgZm9yIHRoZSBmaXJzdCBkb3NlLicKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdUeXBob2lkMzEuMycgdGhlbiAiQ2xpZW50IGlzIGR1ZSBmb3IgVHlwaG9pZCB2YWNjaW5hdGlvbiIgYW5kICJHdWlkYW5jZSIgPSAnUHJlc2NyaWJlIHRoZSBUeTIxYSBwcmltYXJ5IHNlcmllcyAoaWYgbm90IGRvbmUgeWV0KS4gU2hvdWxkIHZhY2NpbmF0ZSBjbGllbnQgd2l0aCB0eXBob2lkIGRvc2UgYXMgcHJpbWFyeSBzZXJpZXMgaGFzIG5vdCBiZWVuIGNvbXBsZXRlZCBhbmQgbm8gbGl2ZSB2YWNjaW5lcyB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MuCkNoZWNrIGZvciBjb250cmFpbmRpY2F0aW9ucy4nCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnVHlwaG9pZDMyLjMnIHRoZW4gIkNsaWVudCBpcyBub3QgZHVlIGZvciBUeXBob2lkIHZhY2NpbmF0aW9uIENhc2UgMiIgYW5kICJHdWlkYW5jZSIgPSAnU2hvdWxkIG5vdCB2YWNjaW5hdGUgY2xpZW50IHdpdGggdHlwaG9pZCBkb3NlIGFzIGxpdmUgdmFjY2luZSB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MuCkNoZWNrIGZvciBvdGhlciB2YWNjaW5lcyBkdWUgYW5kIGluZm9ybSB0aGUgY2FyZWdpdmVyIG9yIHRoZSBjbGllbnQgd2hlbiB0aGUgbmV4dCBkb3NlIHNob3VsZCBiZSBhZG1pbmlzdGVyZWQuJwogICAgd2hlbiBQYXRpZW50LmlkID0gJ1R5cGhvaWQzMy4zJyB0aGVuICJDbGllbnQgaXMgbm90IGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UgQ2FzZSAxIiBhbmQgIkd1aWRhbmNlIiA9ICdTaG91bGQgbm90IHZhY2NpbmF0ZSBjbGllbnQgd2l0aCB0eXBob2lkIGJvb3N0ZXIgZG9zZSBhcyB0aGUgbGF0ZXN0IHR5cGhvaWQgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiAzIHllYXJzIGFnby4KQ2hlY2sgZm9yIGFueSBvdGhlciB2YWNjaW5lcyBkdWUgYW5kIGluZm9ybSB0aGUgY2FyZWdpdmVyIG9yIHRoZSBjbGllbnQgd2hlbiB0aGUgbmV4dCBkb3NlIHNob3VsZCBiZSBhZG1pbmlzdGVyZWQuJwogICAgd2hlbiBQYXRpZW50LmlkID0gJ1R5cGhvaWQzNC40JyB0aGVuICJDbGllbnQgaXMgZHVlIGZvciB0eXBob2lkIGJvb3N0ZXIgZG9zZSIgYW5kICJHdWlkYW5jZSIgPSAnUHJlc2NyaWJlIHRoZSBUeTIxYSBib29zdGVyIHNlcmllcy4gU2hvdWxkIHZhY2NpbmF0ZSBjbGllbnQgd2l0aCB0eXBob2lkIGJvb3N0ZXIgZG9zZSBhcyBwcmltYXJ5IHNlcmllcyBoYXMgYmVlbiBjb21wbGV0ZWQsIHRoZSBsYXRlc3QgdHlwaG9pZCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDMgeWVhcnMgYWdvIGFuZCBubyBsaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgcGFzdCA0IHdlZWtzLgpDaGVjayBmb3IgY29udHJhaW5kaWNhdGlvbnMuJwogICAgd2hlbiBQYXRpZW50LmlkID0gJ1R5cGhvaWQzNS40JyB0aGVuICJDbGllbnQgaXMgbm90IGR1ZSBmb3IgdHlwaG9pZCBib29zdGVyIGRvc2UgQ2FzZSAyIiBhbmQgIkd1aWRhbmNlIiA9ICdTaG91bGQgbm90IHZhY2NpbmF0ZSBjbGllbnQgd2l0aCB0eXBob2lkIGJvb3N0ZXIgZG9zZSBhcyBsaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgcGFzdCA0IHdlZWtzLgpDaGVjayBmb3IgYW55IG90aGVyIHZhY2NpbmVzIGR1ZSBhbmQgaW5mb3JtIHRoZSBjYXJlZ2l2ZXIgb3IgdGhlIGNsaWVudCB3aGVuIHRoZSBuZXh0IGRvc2Ugc2hvdWxkIGJlIGFkbWluaXN0ZXJlZCcKICAgIGVsc2UgJ05vIHRlc3QgY2FzZSBzZXQnCiAgZW5kCg=="^^xsd:base64Binary ] ] ) . #
IG © 2023+ WHO. Package smart.who.int.immunizations#1.0.0 based on FHIR 4.0.1. Generated 2026-03-31
Links: Table of Contents |
QA Report
| Version History | License