WHO Immunization Implementation Guide
1.0.0 - release
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 |
{
"resourceType" : "Library",
"id" : "IMMZD2DTPolioElements",
"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;\">IMMZD2DTPolioElements</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">IMMZD2DTPolioElements</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-IMMZD2DTPolioElements.html\">IMMZD2DTPolioElements</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 context-independent elements for Polio used throughout 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-WHOConcepts.html\">WHOConcepts</a></li>\n \n <li><a href=\"Library-WHOCommon.html\">WHOCommon</a></li>\n \n <li><a href=\"Library-WHOElements.html\">WHOElements</a></li>\n \n <li><a href=\"Library-IMMZCommon.html\">IMMZCommon</a></li>\n \n <li><a href=\"Library-IMMZConcepts.html\">IMMZConcepts</a></li>\n \n <li><a href=\"Library-IMMZElements.html\">IMMZElements</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>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Polio Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Polio Primary Series Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Number of Polio Primary Series Doses Administered</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Polio Dose 0 Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Number of Polio Dose 0 Doses Administered</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>bOPV birth dose (a zero dose) was not administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is less than 1 week</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is more than or equal to 1 week</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>bOPV birth dose (a zero dose) was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is less than 6 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>No poliovirus primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is between 6 weeks and 3 months</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is more than 3 months</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>One poliovirus primary series dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is between 6 weeks and 14 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>bOPV Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Date of Latest bOPV Dose</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The latest bOPV dose was administered less than 4 weeks ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The latest bOPV dose was administered more than 4 weeks ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Polio bOPV Primary Series Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Number of Polio bOPV Primary Series Doses Administered</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The poliovirus dose administered is bOPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is more than or equal to 14 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The poliovirus dose administered is IPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>IPV Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Date of Latest IPV Dose</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The latest IPV dose was administered less than 4 months ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The latest IPV dose was administered more than 4 months ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Two poliovirus primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The two doses administered are bOPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>From the two doses administered one is bOPV and one is IPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The two doses administered are IPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Three poliovirus primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The three doses administered are bOPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is less than 14 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>From the three doses administered, one is IPV and two are bOPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>From the three doses administered, one is bOPV and two are IPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Four poliovirus primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>From the four doses administered, one is IPV and three are bOPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>From the four doses administered, two are IPV and two are bOPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Five poliovirus primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is less than 8 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is more than or equal to 8 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Date of Latest Polio Dose</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The latest poliovirus dose was administered less than 4 weeks ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The latest poliovirus dose was administered more than 4 weeks ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age is more than or equal to 6 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Date of First Primary Series Polio Dose</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age was more than 6 weeks when the primary series was started</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Client's age was 6 weeks when the primary series was started</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The latest poliovirus dose was administered less than 6 months ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>The latest poliovirus dose was administered more than 6 months ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Polio Booster Series Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Number of Polio Booster Series Doses Administered</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>No polio booster dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Polio booster dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Polio IPV Primary Series Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Number of Polio IPV Primary Series Doses Administered</th><th>integer</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/*\n * Library: IMMZD2DTPolioElements\n */\nlibrary IMMZD2DTPolioElements\n\nusing FHIR version '4.0.1'\ninclude FHIRHelpers version '4.0.1'\n\ninclude WHOConcepts\ninclude WHOCommon called WC\ninclude WHOElements called WE\n\ninclude IMMZCommon called Common\ninclude IMMZConcepts called Concepts\ninclude IMMZElements called Elements\n\n\ncontext Patient\n\n/*\n@internal: Polio containing Doses Administered to Patient\n*/\ndefine "Polio Doses Administered to Patient":\n Elements."Doses Administered to Patient" I\n where\n I.vaccineCode in Concepts."Poliovirus-containing vaccines"\n\n/*\n@internal: Polio containing Doses Administered to Patient that are in the Primary series\n*/\ndefine "Polio Primary Series Doses Administered to Patient":\n "Polio Doses Administered to Patient".seriesPrimary()\n\n/*\n@internal: Number of Polio Primary Series doses\n*/\ndefine "Number of Polio Primary Series Doses Administered":\n Count("Polio Primary Series Doses Administered to Patient")\n\n/*\n@input: bOPV birth dose (a zero dose) was not administered\n@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Dose 0" AND "Birth dose" = TRUE) = 0\n@code: bOPV birth dose (a zero dose) was not administered-146\n@decision: IMMZ.D2.DT.Polio.Birth dose: Birth dose administration as part of "bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (in countries that are poliomyelitis (polio)-endemic countries or at high risk of importation and subsequent spread of polio that follow the combined bOPV–IPV schedule)\n*/\ndefine "bOPV birth dose (a zero dose) was not administered":\n "Number of Polio Dose 0 Doses Administered" = 0\n\n/*\n@input: Client's age is less than 1 week\n@pseudocode: Today's date − "Date of birth" < 1 week\n@code: Client's age is less than 1 week-39\n@decision: IMMZ.D2.DT.Polio.Birth dose: Birth dose administration as part of "bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (in countries that are poliomyelitis (polio)-endemic countries or at high risk of importation and subsequent spread of polio that follow the combined bOPV–IPV schedule)\n*/\ndefine "Client's age is less than 1 week":\n Elements."Current Patient Age In Weeks" < 1\n\n/*\n@input: Client's age is more than or equal to 1 week\n@pseudocode: Today's date − "Date of birth" ≥ 1 week\n@code: Client's age is more than or equal to 1 week-39\n@decision: IMMZ.D2.DT.Polio.Birth dose: Birth dose administration as part of "bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (in countries that are poliomyelitis (polio)-endemic countries or at high risk of importation and subsequent spread of polio that follow the combined bOPV–IPV schedule)\n*/\ndefine "Client's age is more than or equal to 1 week":\n Elements."Current Patient Age In Weeks" >= 1\n\n/*\n@input: bOPV birth dose (a zero dose) was administered\n@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Dose 0" AND "Birth dose" = TRUE) = 1\n@code: bOPV birth dose (a zero dose) was administered-146\n@decision: IMMZ.D2.DT.Polio.Birth dose: Birth dose administration as part of "bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (in countries that are poliomyelitis (polio)-endemic countries or at high risk of importation and subsequent spread of polio that follow the combined bOPV–IPV schedule)\n*/\ndefine "bOPV birth dose (a zero dose) was administered":\n "Number of Polio Dose 0 Doses Administered" = 1\n\n/*\n@input: Client's age is less than 6 weeks\n@pseudocode: Today's date − "Date of birth" < 6 weeks\n@code: Client's age is less than 6 weeks-40\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "Client's age is less than 6 weeks":\n Elements."Current Patient Age In Weeks" < 6\n\n/*\n@input: No poliovirus primary series doses were administered\n@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Primary series") = 0\n@code: No poliovirus primary series doses were administered-130\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n@decision: IMMZ.D2.DT.Polio.Sequential IPV–bOPV: Sequential "Bivalent oral polio vaccine (bOPV)–inactivated polio vaccine (IPV)" schedule (in countries with high vaccination coverage [e.g. 90–95%] and low importation risk [where neighbouring countries and/or countries that share substantial population movement have a similarly high coverage])\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "No poliovirus primary series doses were administered":\n "Number of Polio Primary Series Doses Administered" = 0\n\n/*\n@input: Client's age is between 6 weeks and 3 months\n@pseudocode: 6 weeks ≤ Today's date − "Date of birth" ≤ 3 months\n@code: Client's age is between 6 weeks and 3 months-51\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "Client's age is between 6 weeks and 3 months":\n 6 <= Elements."Current Patient Age In Weeks"\n and Elements."Current Patient Age In Months" <= 3\n\n/*\n@input: Client's age is more than 3 months\n@pseudocode: Today's date − "Date of birth" > 3 months\n@code: Client's age is more than 3 months-41\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "Client's age is more than 3 months":\n Elements."Current Patient Age In Months" > 3\n\n/*\n@input: One poliovirus primary series dose was administered\n@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Primary series") = 1\n@code: One poliovirus primary series dose was administered-130\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n@decision: IMMZ.D2.DT.Polio.Sequential IPV–bOPV: Sequential "Bivalent oral polio vaccine (bOPV)–inactivated polio vaccine (IPV)" schedule (in countries with high vaccination coverage [e.g. 90–95%] and low importation risk [where neighbouring countries and/or countries that share substantial population movement have a similarly high coverage])\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "One poliovirus primary series dose was administered":\n "Number of Polio Primary Series Doses Administered" = 1\n\n/*\n@input: Client's age is between 6 weeks and 14 weeks\n@pseudocode: 6 weeks ≤ Today's date − "Date of birth" < 14 weeks\n@code: Client's age is between 6 weeks and 14 weeks-51\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "Client's age is between 6 weeks and 14 weeks":\n 6 <= Elements."Current Patient Age In Weeks"\n and Elements."Current Patient Age In Weeks" < 14\n\n/*\n@input: The latest bOPV dose was administered less than 4 weeks ago\n@pseudocode: Today's date − Latest "Date and time of vaccination" (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of poliovirus dose" = "bOPV") < 4 weeks\n@code: The latest bOPV dose was administered less than 4 weeks ago-159\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "The latest bOPV dose was administered less than 4 weeks ago":\n "Date of Latest bOPV Dose" is not null\n and duration in weeks between "Date of Latest bOPV Dose" and Now() < 4\n\n/*\n@input: The latest bOPV dose was administered more than 4 weeks ago\n@pseudocode: Today's date − Latest "Date and time of vaccination" (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of poliovirus dose" = "bOPV") ≥ 4 weeks\n@code: The latest bOPV dose was administered more than 4 weeks ago-159\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "The latest bOPV dose was administered more than 4 weeks ago":\n not("The latest bOPV dose was administered less than 4 weeks ago")\n\n/*\n@input: The poliovirus dose administered is bOPV\n@pseudocode: Count of vaccines administered (where "Type of poliovirus dose" = "bOPV" and "Type of dose" = "Primary series") = 1\n@code: The poliovirus dose administered is bOPV-115\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "The poliovirus dose administered is bOPV":\n "Number of Polio bOPV Primary Series Doses Administered" = 1\n\n/*\n@input: Client's age is more than or equal to 14 weeks\n@pseudocode: Today's date − "Date of birth" ≥ 14 weeks\n@code: Client's age is more than or equal to 14 weeks-41\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "Client's age is more than or equal to 14 weeks":\n Elements."Current Patient Age In Weeks" >= 14\n\n/*\n@input: The poliovirus dose administered is IPV\n@pseudocode: Count of vaccines administered (where "Type of poliovirus dose" = "bOPV" and "Type of dose" = "Primary series") = 0\n@code: The poliovirus dose administered is IPV-115\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "The poliovirus dose administered is IPV":\n "Number of Polio bOPV Primary Series Doses Administered" = 0\n\n/*\n@input: The latest IPV dose was administered less than 4 months ago\n@pseudocode: Today's date − Latest "Date and time of vaccination" (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of poliovirus dose" = "IPV") < 4 months\n@code: The latest IPV dose was administered less than 4 months ago-159\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "The latest IPV dose was administered less than 4 months ago":\n "Date of Latest IPV Dose" is not null\n and duration in months between "Date of Latest IPV Dose" and Now() < 4\n\n/*\n@input: The latest IPV dose was administered more than 4 months ago\n@pseudocode: Today's date − Latest "Date and time of vaccination" (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of poliovirus dose" = "IPV") ≥ 4 months\n@code: The latest IPV dose was administered more than 4 months ago-159\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "The latest IPV dose was administered more than 4 months ago":\n not("The latest IPV dose was administered less than 4 months ago")\n\n/*\n@input: Two poliovirus primary series doses were administered\n@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Primary series") = 2\n@code: Two poliovirus primary series doses were administered-130\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n@decision: IMMZ.D2.DT.Polio.Sequential IPV–bOPV: Sequential "Bivalent oral polio vaccine (bOPV)–inactivated polio vaccine (IPV)" schedule (in countries with high vaccination coverage [e.g. 90–95%] and low importation risk [where neighbouring countries and/or countries that share substantial population movement have a similarly high coverage])\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "Two poliovirus primary series doses were administered":\n "Number of Polio Primary Series Doses Administered" = 2\n\n/*\n@input: The two doses administered are bOPV\n@pseudocode: Count of vaccines administered (where "Type of poliovirus dose" = "bOPV" and "Type of dose" = "Primary series") = 2\n@code: The two doses administered are bOPV-115\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "The two doses administered are bOPV":\n "Number of Polio bOPV Primary Series Doses Administered" = 2\n\n/*\n@input: From the two doses administered one is bOPV and one is IPV\n@pseudocode: Count of vaccines administered (where "Type of poliovirus dose" = "bOPV" and "Type of dose" = "Primary series") = 1\n@code: From the two doses administered one is bOPV and one is IPV-115\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "From the two doses administered one is bOPV and one is IPV":\n "Number of Polio bOPV Primary Series Doses Administered" = 1\n\n/*\n@input: The two doses administered are IPV\n@pseudocode: Count of vaccines administered (where "Type of poliovirus dose" = "bOPV" and "Type of dose" = "Primary series") = 0\n@code: The two doses administered are IPV-115\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "The two doses administered are IPV":\n "Number of Polio bOPV Primary Series Doses Administered" = 0\n\n/*\n@input: Three poliovirus primary series doses were administered\n@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Primary series") = 3\n@code: Three poliovirus primary series doses were administered-130\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n@decision: IMMZ.D2.DT.Polio.Sequential IPV–bOPV: Sequential "Bivalent oral polio vaccine (bOPV)–inactivated polio vaccine (IPV)" schedule (in countries with high vaccination coverage [e.g. 90–95%] and low importation risk [where neighbouring countries and/or countries that share substantial population movement have a similarly high coverage])\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "Three poliovirus primary series doses were administered":\n "Number of Polio Primary Series Doses Administered" = 3\n\n/*\n@input: The three doses administered are bOPV\n@pseudocode: Count of vaccines administered (where "Type of poliovirus dose" = "bOPV" and "Type of dose" = "Primary series") = 3\n@code: The three doses administered are bOPV-115\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "The three doses administered are bOPV":\n "Number of Polio bOPV Primary Series Doses Administered" = 3\n\n/*\n@input: Client's age is less than 14 weeks\n@pseudocode: Today's date − "Date of birth" < 14 weeks\n@code: Client's age is less than 14 weeks-41\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "Client's age is less than 14 weeks":\n Elements."Current Patient Age In Weeks" < 14\n\n/*\n@input: From the three doses administered, one is IPV and two are bOPV\n@pseudocode: Count of vaccines administered (where "Type of poliovirus dose" = "bOPV" and "Type of dose" = "Primary series") = 2\n@code: From the three doses administered, one is IPV and two are bOPV-115\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "From the three doses administered, one is IPV and two are bOPV":\n "Number of Polio bOPV Primary Series Doses Administered" = 2\n\n/*\n@input: From the three doses administered, one is bOPV and two are IPV\n@pseudocode: Count of vaccines administered (where "Type of poliovirus dose" = "bOPV" and "Type of dose" = "Primary series") = 1\n@code: From the three doses administered, one is bOPV and two are IPV-115\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "From the three doses administered, one is bOPV and two are IPV":\n "Number of Polio bOPV Primary Series Doses Administered" = 1\n\n/*\n@input: Four poliovirus primary series doses were administered\n@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Primary series") = 4\n@code: Four poliovirus primary series doses were administered-130\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n@decision: IMMZ.D2.DT.Polio.Sequential IPV–bOPV: Sequential "Bivalent oral polio vaccine (bOPV)–inactivated polio vaccine (IPV)" schedule (in countries with high vaccination coverage [e.g. 90–95%] and low importation risk [where neighbouring countries and/or countries that share substantial population movement have a similarly high coverage])\n*/\ndefine "Four poliovirus primary series doses were administered":\n "Number of Polio Primary Series Doses Administered" = 4\n\n/*\n@input: From the four doses administered, one is IPV and three are bOPV\n@pseudocode: Count of vaccines administered (where "Type of poliovirus dose" = "bOPV" and "Type of dose" = "Primary series") = 3\n@code: From the four doses administered, one is IPV and three are bOPV-115\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "From the four doses administered, one is IPV and three are bOPV":\n "Number of Polio bOPV Primary Series Doses Administered" = 3\n\n/*\n@input: From the four doses administered, two are IPV and two are bOPV\n@pseudocode: Count of vaccines administered (where "Type of poliovirus dose" = "bOPV" and "Type of dose" = "Primary series") = 2\n@code: From the four doses administered, two are IPV and two are bOPV-115\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "From the four doses administered, two are IPV and two are bOPV":\n "Number of Polio bOPV Primary Series Doses Administered" = 2\n\n/*\n@input: Five poliovirus primary series doses were administered\n@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Primary series") = 5\n@code: Five poliovirus primary series doses were administered-130\n@decision: IMMZ.D2.DT.Polio.bOPV plus IPV: "Bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (applicable for all countries)\n*/\ndefine "Five poliovirus primary series doses were administered":\n "Number of Polio Primary Series Doses Administered" = 5\n\n/*\n@input: Client's age is less than 8 weeks\n@pseudocode: Today's date − "Date of birth" < 8 weeks\n@code: Client's age is less than 8 weeks-40\n@decision: IMMZ.D2.DT.Polio.Sequential IPV–bOPV: Sequential "Bivalent oral polio vaccine (bOPV)–inactivated polio vaccine (IPV)" schedule (in countries with high vaccination coverage [e.g. 90–95%] and low importation risk [where neighbouring countries and/or countries that share substantial population movement have a similarly high coverage])\n*/\ndefine "Client's age is less than 8 weeks":\n Elements."Current Patient Age In Weeks" < 8\n\n/*\n@input: Client's age is more than or equal to 8 weeks\n@pseudocode: Today's date − "Date of birth" ≥ 8 weeks\n@code: Client's age is more than or equal to 8 weeks-40\n@decision: IMMZ.D2.DT.Polio.Sequential IPV–bOPV: Sequential "Bivalent oral polio vaccine (bOPV)–inactivated polio vaccine (IPV)" schedule (in countries with high vaccination coverage [e.g. 90–95%] and low importation risk [where neighbouring countries and/or countries that share substantial population movement have a similarly high coverage])\n*/\ndefine "Client's age is more than or equal to 8 weeks":\n Elements."Current Patient Age In Weeks" >= 8\n\n/*\n@input: The latest poliovirus dose was administered less than 4 weeks ago\n@pseudocode: Today's date − Latest "Date and time of vaccination" (where "Vaccine type" = "Poliovirus-containing vaccines") < 4 weeks\n@code: The latest poliovirus dose was administered less than 4 weeks ago-120\n@decision: IMMZ.D2.DT.Polio.Sequential IPV–bOPV: Sequential "Bivalent oral polio vaccine (bOPV)–inactivated polio vaccine (IPV)" schedule (in countries with high vaccination coverage [e.g. 90–95%] and low importation risk [where neighbouring countries and/or countries that share substantial population movement have a similarly high coverage])\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "The latest poliovirus dose was administered less than 4 weeks ago":\n "Date of Latest Polio Dose" is not null\n and duration in weeks between "Date of Latest Polio Dose" and Now() < 4\n\n/*\n@input: The latest poliovirus dose was administered more than 4 weeks ago\n@pseudocode: Today's date − Latest "Date and time of vaccination" (where "Vaccine type" = "Poliovirus-containing vaccines") ≥ 4 weeks\n@code: The latest poliovirus dose was administered more than 4 weeks ago-120\n@decision: IMMZ.D2.DT.Polio.Sequential IPV–bOPV: Sequential "Bivalent oral polio vaccine (bOPV)–inactivated polio vaccine (IPV)" schedule (in countries with high vaccination coverage [e.g. 90–95%] and low importation risk [where neighbouring countries and/or countries that share substantial population movement have a similarly high coverage])\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "The latest poliovirus dose was administered more than 4 weeks ago":\n not("The latest poliovirus dose was administered less than 4 weeks ago")\n\n/*\n@input: Client's age is more than or equal to 6 weeks\n@pseudocode: Today's date − "Date of birth" ≥ 6 weeks\n@code: Client's age is more than or equal to 6 weeks-40\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "Client's age is more than or equal to 6 weeks":\n Elements."Current Patient Age In Weeks" >= 6\n\n/*\n@input: Client's age was more than 6 weeks when the primary series was started\n@pseudocode: "Date and time of vaccination" (where "Vaccine type" = "Poliovirus-containing vaccines" AND "Dose number" = 1) − "Date of birth" > 6 weeks\n@code: Client's age was more than 6 weeks when the primary series was started-138\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "Client's age was more than 6 weeks when the primary series was started":\n AgeInWeeksAt("Date of First Primary Series Polio Dose") > 6\n\n/*\n@input: Client's age was 6 weeks when the primary series was started\n@pseudocode: "Date and time of vaccination" (where "Vaccine type" = "Poliovirus-containing vaccines" AND "Dose number" = 1) − "Date of birth" = 6 weeks\n@code: Client's age was 6 weeks when the primary series was started-138\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "Client's age was 6 weeks when the primary series was started":\n AgeInWeeksAt("Date of First Primary Series Polio Dose") = 6\n\n/*\n@input: The latest poliovirus dose was administered less than 6 months ago\n@pseudocode: Today's date − Latest "Date and time of vaccination" (where "Vaccine type" = "Poliovirus-containing vaccines") < 6 months\n@code: The latest poliovirus dose was administered less than 6 months ago-121\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "The latest poliovirus dose was administered less than 6 months ago":\n "Date of Latest Polio Dose" is not null\n and duration in months between "Date of Latest Polio Dose" and Now() < 6\n\n/*\n@input: The latest poliovirus dose was administered more than 6 months ago\n@pseudocode: Today's date − Latest "Date and time of vaccination" (where "Vaccine type" = "Poliovirus-containing vaccines") ≥ 6 months\n@code: The latest poliovirus dose was administered more than 6 months ago-121\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "The latest poliovirus dose was administered more than 6 months ago":\n not("The latest poliovirus dose was administered less than 6 months ago")\n\n/*\n@input: No polio booster dose was administered\n@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Booster dose") = 0\n@code: No polio booster dose was administered-128\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "No polio booster dose was administered":\n "Number of Polio Booster Series Doses Administered" = 0\n\n/*\n@input: Polio booster dose was administered\n@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Booster dose") = 1\n@code: Polio booster dose was administered-128\n@decision: IMMZ.D2.DT.Polio.IPV-only: Inactivated polio vaccine (IPV)-only (in countries, in polio-free regions, with a very low risk of importation and sustained high routine immunization coverage (third dose of the diphtheria–tetanus–pertussis vaccine [DTP3] > 90%)\n*/\ndefine "Polio booster dose was administered":\n "Number of Polio Booster Series Doses Administered" = 1\n\n/*\n@internal: bOPV Doses Administered to Patient\n*/\ndefine "bOPV Doses Administered to Patient":\n "Polio Doses Administered to Patient" I\n where I.typeOfDose() ~ Concepts."bOPV"\n\n/*\n@internal: IPV Doses Administered to Patient\n*/\ndefine "IPV Doses Administered to Patient":\n "Polio Doses Administered to Patient" I\n where I.typeOfDose() ~ Concepts."IPV"\n\n/*\n@internal: Date of Latest Polio Dose\n*/\ndefine "Date of Latest Polio Dose":\n date from start of "Polio Doses Administered to Patient".mostRecent().occurrence.toInterval()\n\n/*\n@internal: Date of Latest bOPV Dose\n*/\ndefine "Date of Latest bOPV Dose":\n date from start of "bOPV Doses Administered to Patient".mostRecent().occurrence.toInterval()\n\n/*\n@internal: Date of Latest IPV Dose\n*/\ndefine "Date of Latest IPV Dose":\n date from start of "IPV Doses Administered to Patient".mostRecent().occurrence.toInterval()\n\n/*\n@internal: Polio Dose 0 Doses Administered to Patient\n*/\ndefine "Polio Dose 0 Doses Administered to Patient":\n "Polio Doses Administered to Patient".seriesDose0()\n\n/*\n@internal: Number of Polio Dose 0 Doses Administered\n*/\ndefine "Number of Polio Dose 0 Doses Administered":\n Count("Polio Dose 0 Doses Administered to Patient")\n\n/*\n@internal: Date of First Primary Series Polio Dose\n*/\ndefine "Date of First Primary Series Polio Dose":\n date from start of "Polio Primary Series Doses Administered to Patient".earliest().occurrence.toInterval()\n\n/*\n@internal: Polio bOPV Primary Series Doses Administered to Patient\n*/\ndefine "Polio bOPV Primary Series Doses Administered to Patient":\n "Polio Primary Series Doses Administered to Patient" I\n where I.typeOfDose() ~ Concepts."bOPV"\n\n/*\n@internal: Polio IPV Primary Series Doses Administered to Patient\n*/\ndefine "Polio IPV Primary Series Doses Administered to Patient":\n "Polio Primary Series Doses Administered to Patient" I\n where I.typeOfDose() ~ Concepts."IPV"\n\n/*\n@internal: Number of Polio bOPV Primary Series Doses Administered\n*/\ndefine "Number of Polio bOPV Primary Series Doses Administered":\n Count("Polio bOPV Primary Series Doses Administered to Patient")\n\n/*\n@internal: Number of Polio IPV Primary Series Doses Administered\n*/\ndefine "Number of Polio IPV Primary Series Doses Administered":\n Count("Polio IPV Primary Series Doses Administered to Patient")\n\n/*\n@internal: Polio Booster Series Doses Administered to Patient\n*/\ndefine "Polio Booster Series Doses Administered to Patient":\n "Polio Doses Administered to Patient".seriesBooster()\n\n/*\n@internal: Number of Polio Booster Series Doses Administered\n*/\ndefine "Number of Polio Booster Series Doses Administered":\n Count("Polio Booster Series Doses Administered to Patient")\n</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \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/IMMZD2DTPolioElements",
"version" : "1.0.0",
"name" : "IMMZD2DTPolioElements",
"title" : "IMMZD2DTPolioElements",
"status" : "draft",
"experimental" : false,
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2026-03-31T13:54:17+00:00",
"publisher" : "WHO",
"contact" : [
{
"name" : "WHO",
"telecom" : [
{
"system" : "url",
"value" : "http://who.int"
}
]
}
],
"description" : "This library defines context-independent elements for Polio used throughout the Immunization CPG",
"relatedArtifact" : [
{
"type" : "depends-on",
"display" : "Library WHOConcepts",
"resource" : "http://smart.who.int/immunizations/Library/WHOConcepts"
},
{
"type" : "depends-on",
"display" : "Library WC",
"resource" : "http://smart.who.int/immunizations/Library/WHOCommon"
},
{
"type" : "depends-on",
"display" : "Library WE",
"resource" : "http://smart.who.int/immunizations/Library/WHOElements"
},
{
"type" : "depends-on",
"display" : "Library Common",
"resource" : "http://smart.who.int/immunizations/Library/IMMZCommon"
},
{
"type" : "depends-on",
"display" : "Library Concepts",
"resource" : "http://smart.who.int/immunizations/Library/IMMZConcepts"
},
{
"type" : "depends-on",
"display" : "Library Elements",
"resource" : "http://smart.who.int/immunizations/Library/IMMZElements"
}
],
"parameter" : [
{
"name" : "Patient",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "Patient"
},
{
"name" : "Polio Doses Administered to Patient",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Immunization"
},
{
"name" : "Polio Primary Series Doses Administered to Patient",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Immunization"
},
{
"name" : "Number of Polio Primary Series Doses Administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "integer"
},
{
"name" : "Polio Dose 0 Doses Administered to Patient",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Immunization"
},
{
"name" : "Number of Polio Dose 0 Doses Administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "integer"
},
{
"name" : "bOPV birth dose (a zero dose) was not administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is less than 1 week",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is more than or equal to 1 week",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "bOPV birth dose (a zero dose) was administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is less than 6 weeks",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "No poliovirus primary series doses were administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is between 6 weeks and 3 months",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is more than 3 months",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "One poliovirus primary series dose was administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is between 6 weeks and 14 weeks",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "bOPV Doses Administered to Patient",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Immunization"
},
{
"name" : "Date of Latest bOPV Dose",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "date"
},
{
"name" : "The latest bOPV dose was administered less than 4 weeks ago",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "The latest bOPV dose was administered more than 4 weeks ago",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Polio bOPV Primary Series Doses Administered to Patient",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Immunization"
},
{
"name" : "Number of Polio bOPV Primary Series Doses Administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "integer"
},
{
"name" : "The poliovirus dose administered is bOPV",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is more than or equal to 14 weeks",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "The poliovirus dose administered is IPV",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "IPV Doses Administered to Patient",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Immunization"
},
{
"name" : "Date of Latest IPV Dose",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "date"
},
{
"name" : "The latest IPV dose was administered less than 4 months ago",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "The latest IPV dose was administered more than 4 months ago",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Two poliovirus primary series doses were administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "The two doses administered are bOPV",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "From the two doses administered one is bOPV and one is IPV",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "The two doses administered are IPV",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Three poliovirus primary series doses were administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "The three doses administered are bOPV",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is less than 14 weeks",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "From the three doses administered, one is IPV and two are bOPV",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "From the three doses administered, one is bOPV and two are IPV",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Four poliovirus primary series doses were administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "From the four doses administered, one is IPV and three are bOPV",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "From the four doses administered, two are IPV and two are bOPV",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Five poliovirus primary series doses were administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is less than 8 weeks",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is more than or equal to 8 weeks",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Date of Latest Polio Dose",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "date"
},
{
"name" : "The latest poliovirus dose was administered less than 4 weeks ago",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "The latest poliovirus dose was administered more than 4 weeks ago",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age is more than or equal to 6 weeks",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Date of First Primary Series Polio Dose",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "date"
},
{
"name" : "Client's age was more than 6 weeks when the primary series was started",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Client's age was 6 weeks when the primary series was started",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "The latest poliovirus dose was administered less than 6 months ago",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "The latest poliovirus dose was administered more than 6 months ago",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Polio Booster Series Doses Administered to Patient",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Immunization"
},
{
"name" : "Number of Polio Booster Series Doses Administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "integer"
},
{
"name" : "No polio booster dose was administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Polio booster dose was administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Polio IPV Primary Series Doses Administered to Patient",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Immunization"
},
{
"name" : "Number of Polio IPV Primary Series Doses Administered",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "integer"
}
],
"content" : [
{
"contentType" : "text/cql",
"data" : "Ci8qCiAgKiBMaWJyYXJ5OiBJTU1aRDJEVFBvbGlvRWxlbWVudHMKICAqLwpsaWJyYXJ5IElNTVpEMkRUUG9saW9FbGVtZW50cwoKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgV0hPQ29uY2VwdHMKaW5jbHVkZSBXSE9Db21tb24gY2FsbGVkIFdDCmluY2x1ZGUgV0hPRWxlbWVudHMgY2FsbGVkIFdFCgppbmNsdWRlIElNTVpDb21tb24gY2FsbGVkIENvbW1vbgppbmNsdWRlIElNTVpDb25jZXB0cyBjYWxsZWQgQ29uY2VwdHMKaW5jbHVkZSBJTU1aRWxlbWVudHMgY2FsbGVkIEVsZW1lbnRzCgoKY29udGV4dCBQYXRpZW50CgovKgpAaW50ZXJuYWw6IFBvbGlvIGNvbnRhaW5pbmcgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJQb2xpbyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCI6CiAgRWxlbWVudHMuIkRvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IiBJCiAgd2hlcmUKICAgIEkudmFjY2luZUNvZGUgaW4gQ29uY2VwdHMuIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIKCi8qCkBpbnRlcm5hbDogUG9saW8gY29udGFpbmluZyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCB0aGF0IGFyZSBpbiB0aGUgUHJpbWFyeSBzZXJpZXMKKi8KZGVmaW5lICJQb2xpbyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCI6CiAgIlBvbGlvIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5zZXJpZXNQcmltYXJ5KCkKCi8qCkBpbnRlcm5hbDogTnVtYmVyIG9mIFBvbGlvIFByaW1hcnkgU2VyaWVzIGRvc2VzCiovCmRlZmluZSAiTnVtYmVyIG9mIFBvbGlvIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCI6CiAgQ291bnQoIlBvbGlvIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IikKCi8qCkBpbnB1dDogYk9QViBiaXJ0aCBkb3NlIChhIHplcm8gZG9zZSkgd2FzIG5vdCBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiUG9saW92aXJ1cy1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiRG9zZSAwIiBBTkQgIkJpcnRoIGRvc2UiID0gVFJVRSkgPSAwCkBjb2RlOiBiT1BWIGJpcnRoIGRvc2UgKGEgemVybyBkb3NlKSB3YXMgbm90IGFkbWluaXN0ZXJlZC0xNDYKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLkJpcnRoIGRvc2U6IEJpcnRoIGRvc2UgYWRtaW5pc3RyYXRpb24gYXMgcGFydCBvZiAiYml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgdGhhdCBhcmUgcG9saW9teWVsaXRpcyAocG9saW8pLWVuZGVtaWMgY291bnRyaWVzIG9yIGF0IGhpZ2ggcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3Vic2VxdWVudCBzcHJlYWQgb2YgcG9saW8gdGhhdCBmb2xsb3cgdGhlIGNvbWJpbmVkIGJPUFbigJNJUFYgc2NoZWR1bGUpCiovCmRlZmluZSAiYk9QViBiaXJ0aCBkb3NlIChhIHplcm8gZG9zZSkgd2FzIG5vdCBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUG9saW8gRG9zZSAwIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAwCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gMSB3ZWVrCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDEgd2VlawpAY29kZTogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiAxIHdlZWstMzkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLkJpcnRoIGRvc2U6IEJpcnRoIGRvc2UgYWRtaW5pc3RyYXRpb24gYXMgcGFydCBvZiAiYml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgdGhhdCBhcmUgcG9saW9teWVsaXRpcyAocG9saW8pLWVuZGVtaWMgY291bnRyaWVzIG9yIGF0IGhpZ2ggcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3Vic2VxdWVudCBzcHJlYWQgb2YgcG9saW8gdGhhdCBmb2xsb3cgdGhlIGNvbWJpbmVkIGJPUFbigJNJUFYgc2NoZWR1bGUpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiAxIHdlZWsiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIiA8IDEKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byAxIHdlZWsKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSAxIHdlZWsKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gMSB3ZWVrLTM5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5CaXJ0aCBkb3NlOiBCaXJ0aCBkb3NlIGFkbWluaXN0cmF0aW9uIGFzIHBhcnQgb2YgImJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoaW4gY291bnRyaWVzIHRoYXQgYXJlIHBvbGlvbXllbGl0aXMgKHBvbGlvKS1lbmRlbWljIGNvdW50cmllcyBvciBhdCBoaWdoIHJpc2sgb2YgaW1wb3J0YXRpb24gYW5kIHN1YnNlcXVlbnQgc3ByZWFkIG9mIHBvbGlvIHRoYXQgZm9sbG93IHRoZSBjb21iaW5lZCBiT1BW4oCTSVBWIHNjaGVkdWxlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gMSB3ZWVrIjoKICBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBXZWVrcyIgPj0gMQoKLyoKQGlucHV0OiBiT1BWIGJpcnRoIGRvc2UgKGEgemVybyBkb3NlKSB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIkRvc2UgMCIgQU5EICJCaXJ0aCBkb3NlIiA9IFRSVUUpID0gMQpAY29kZTogYk9QViBiaXJ0aCBkb3NlIChhIHplcm8gZG9zZSkgd2FzIGFkbWluaXN0ZXJlZC0xNDYKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLkJpcnRoIGRvc2U6IEJpcnRoIGRvc2UgYWRtaW5pc3RyYXRpb24gYXMgcGFydCBvZiAiYml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgdGhhdCBhcmUgcG9saW9teWVsaXRpcyAocG9saW8pLWVuZGVtaWMgY291bnRyaWVzIG9yIGF0IGhpZ2ggcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3Vic2VxdWVudCBzcHJlYWQgb2YgcG9saW8gdGhhdCBmb2xsb3cgdGhlIGNvbWJpbmVkIGJPUFbigJNJUFYgc2NoZWR1bGUpCiovCmRlZmluZSAiYk9QViBiaXJ0aCBkb3NlIChhIHplcm8gZG9zZSkgd2FzIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBQb2xpbyBEb3NlIDAgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDEKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IHdlZWtzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDYgd2Vla3MKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiB3ZWVrcy00MApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiB3ZWVrcyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gV2Vla3MiIDwgNgoKLyoKQGlucHV0OiBObyBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAwCkBjb2RlOiBObyBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkLTEzMApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLlNlcXVlbnRpYWwgSVBW4oCTYk9QVjogU2VxdWVudGlhbCAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKeKAk2luYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgd2l0aCBoaWdoIHZhY2NpbmF0aW9uIGNvdmVyYWdlIFtlLmcuIDkw4oCTOTUlXSBhbmQgbG93IGltcG9ydGF0aW9uIHJpc2sgW3doZXJlIG5laWdoYm91cmluZyBjb3VudHJpZXMgYW5kL29yIGNvdW50cmllcyB0aGF0IHNoYXJlIHN1YnN0YW50aWFsIHBvcHVsYXRpb24gbW92ZW1lbnQgaGF2ZSBhIHNpbWlsYXJseSBoaWdoIGNvdmVyYWdlXSkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIk5vIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUG9saW8gUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDAKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMyBtb250aHMKQHBzZXVkb2NvZGU6IDYgd2Vla3Mg4omkIFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpCAzIG1vbnRocwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMyBtb250aHMtNTEKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMyBtb250aHMiOgogIDYgPD0gRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gV2Vla3MiCiAgYW5kIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIE1vbnRocyIgPD0gMwoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIDMgbW9udGhzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA+IDMgbW9udGhzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIDMgbW9udGhzLTQxCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gMyBtb250aHMiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIE1vbnRocyIgPiAzCgovKgpAaW5wdXQ6IE9uZSBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMQpAY29kZTogT25lIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLTEzMApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLlNlcXVlbnRpYWwgSVBW4oCTYk9QVjogU2VxdWVudGlhbCAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKeKAk2luYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgd2l0aCBoaWdoIHZhY2NpbmF0aW9uIGNvdmVyYWdlIFtlLmcuIDkw4oCTOTUlXSBhbmQgbG93IGltcG9ydGF0aW9uIHJpc2sgW3doZXJlIG5laWdoYm91cmluZyBjb3VudHJpZXMgYW5kL29yIGNvdW50cmllcyB0aGF0IHNoYXJlIHN1YnN0YW50aWFsIHBvcHVsYXRpb24gbW92ZW1lbnQgaGF2ZSBhIHNpbWlsYXJseSBoaWdoIGNvdmVyYWdlXSkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIk9uZSBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBQb2xpbyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMQoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgYmV0d2VlbiA2IHdlZWtzIGFuZCAxNCB3ZWVrcwpAcHNldWRvY29kZTogNiB3ZWVrcyDiiaQgVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCAxNCB3ZWVrcwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMTQgd2Vla3MtNTEKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMTQgd2Vla3MiOgogIDYgPD0gRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gV2Vla3MiCiAgYW5kIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIiA8IDE0CgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgYk9QViBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIpIDwgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCBiT1BWIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCB3ZWVrcyBhZ28tMTU5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgYk9QViBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvIjoKICAiRGF0ZSBvZiBMYXRlc3QgYk9QViBEb3NlIiBpcyBub3QgbnVsbAogICAgYW5kIGR1cmF0aW9uIGluIHdlZWtzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IGJPUFYgRG9zZSIgYW5kIE5vdygpIDwgNAoKLyoKQGlucHV0OiBUaGUgbGF0ZXN0IGJPUFYgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnbwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBwb2xpb3ZpcnVzIGRvc2UiID0gImJPUFYiKSDiiaUgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCBiT1BWIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNCB3ZWVrcyBhZ28tMTU5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgYk9QViBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDQgd2Vla3MgYWdvIjoKICBub3QoIlRoZSBsYXRlc3QgYk9QViBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvIikKCi8qCkBpbnB1dDogVGhlIHBvbGlvdmlydXMgZG9zZSBhZG1pbmlzdGVyZWQgaXMgYk9QVgpAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVHlwZSBvZiBwb2xpb3ZpcnVzIGRvc2UiID0gImJPUFYiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMQpAY29kZTogVGhlIHBvbGlvdmlydXMgZG9zZSBhZG1pbmlzdGVyZWQgaXMgYk9QVi0xMTUKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiVGhlIHBvbGlvdmlydXMgZG9zZSBhZG1pbmlzdGVyZWQgaXMgYk9QViI6CiAgIk51bWJlciBvZiBQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAxCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gMTQgd2Vla3MKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSAxNCB3ZWVrcwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byAxNCB3ZWVrcy00MQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDE0IHdlZWtzIjoKICBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBXZWVrcyIgPj0gMTQKCi8qCkBpbnB1dDogVGhlIHBvbGlvdmlydXMgZG9zZSBhZG1pbmlzdGVyZWQgaXMgSVBWCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAwCkBjb2RlOiBUaGUgcG9saW92aXJ1cyBkb3NlIGFkbWluaXN0ZXJlZCBpcyBJUFYtMTE1CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIlRoZSBwb2xpb3ZpcnVzIGRvc2UgYWRtaW5pc3RlcmVkIGlzIElQViI6CiAgIk51bWJlciBvZiBQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAwCgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgSVBWIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCBtb250aHMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiSVBWIikgPCA0IG1vbnRocwpAY29kZTogVGhlIGxhdGVzdCBJUFYgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IG1vbnRocyBhZ28tMTU5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgSVBWIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCBtb250aHMgYWdvIjoKICAiRGF0ZSBvZiBMYXRlc3QgSVBWIERvc2UiIGlzIG5vdCBudWxsCiAgICBhbmQgZHVyYXRpb24gaW4gbW9udGhzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IElQViBEb3NlIiBhbmQgTm93KCkgPCA0CgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgSVBWIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNCBtb250aHMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiSVBWIikg4omlIDQgbW9udGhzCkBjb2RlOiBUaGUgbGF0ZXN0IElQViBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDQgbW9udGhzIGFnby0xNTkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiVGhlIGxhdGVzdCBJUFYgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IG1vbnRocyBhZ28iOgogIG5vdCgiVGhlIGxhdGVzdCBJUFYgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IG1vbnRocyBhZ28iKQoKLyoKQGlucHV0OiBUd28gcG9saW92aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMgpAY29kZTogVHdvIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQtMTMwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uU2VxdWVudGlhbCBJUFbigJNiT1BWOiBTZXF1ZW50aWFsICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYp4oCTaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGluIGNvdW50cmllcyB3aXRoIGhpZ2ggdmFjY2luYXRpb24gY292ZXJhZ2UgW2UuZy4gOTDigJM5NSVdIGFuZCBsb3cgaW1wb3J0YXRpb24gcmlzayBbd2hlcmUgbmVpZ2hib3VyaW5nIGNvdW50cmllcyBhbmQvb3IgY291bnRyaWVzIHRoYXQgc2hhcmUgc3Vic3RhbnRpYWwgcG9wdWxhdGlvbiBtb3ZlbWVudCBoYXZlIGEgc2ltaWxhcmx5IGhpZ2ggY292ZXJhZ2VdKQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uSVBWLW9ubHk6IEluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQViktb25seSAoaW4gY291bnRyaWVzLCBpbiBwb2xpby1mcmVlIHJlZ2lvbnMsIHdpdGggYSB2ZXJ5IGxvdyByaXNrIG9mIGltcG9ydGF0aW9uIGFuZCBzdXN0YWluZWQgaGlnaCByb3V0aW5lIGltbXVuaXphdGlvbiBjb3ZlcmFnZSAodGhpcmQgZG9zZSBvZiB0aGUgZGlwaHRoZXJpYeKAk3RldGFudXPigJNwZXJ0dXNzaXMgdmFjY2luZSBbRFRQM10gPiA5MCUpCiovCmRlZmluZSAiVHdvIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUG9saW8gUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDIKCi8qCkBpbnB1dDogVGhlIHR3byBkb3NlcyBhZG1pbmlzdGVyZWQgYXJlIGJPUFYKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDIKQGNvZGU6IFRoZSB0d28gZG9zZXMgYWRtaW5pc3RlcmVkIGFyZSBiT1BWLTExNQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKKi8KZGVmaW5lICJUaGUgdHdvIGRvc2VzIGFkbWluaXN0ZXJlZCBhcmUgYk9QViI6CiAgIk51bWJlciBvZiBQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAyCgovKgpAaW5wdXQ6IEZyb20gdGhlIHR3byBkb3NlcyBhZG1pbmlzdGVyZWQgb25lIGlzIGJPUFYgYW5kIG9uZSBpcyBJUFYKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDEKQGNvZGU6IEZyb20gdGhlIHR3byBkb3NlcyBhZG1pbmlzdGVyZWQgb25lIGlzIGJPUFYgYW5kIG9uZSBpcyBJUFYtMTE1CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIkZyb20gdGhlIHR3byBkb3NlcyBhZG1pbmlzdGVyZWQgb25lIGlzIGJPUFYgYW5kIG9uZSBpcyBJUFYiOgogICJOdW1iZXIgb2YgUG9saW8gYk9QViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMQoKLyoKQGlucHV0OiBUaGUgdHdvIGRvc2VzIGFkbWluaXN0ZXJlZCBhcmUgSVBWCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAwCkBjb2RlOiBUaGUgdHdvIGRvc2VzIGFkbWluaXN0ZXJlZCBhcmUgSVBWLTExNQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKKi8KZGVmaW5lICJUaGUgdHdvIGRvc2VzIGFkbWluaXN0ZXJlZCBhcmUgSVBWIjoKICAiTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDAKCi8qCkBpbnB1dDogVGhyZWUgcG9saW92aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMwpAY29kZTogVGhyZWUgcG9saW92aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZC0xMzAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5TZXF1ZW50aWFsIElQVuKAk2JPUFY6IFNlcXVlbnRpYWwgIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVinigJNpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoaW4gY291bnRyaWVzIHdpdGggaGlnaCB2YWNjaW5hdGlvbiBjb3ZlcmFnZSBbZS5nLiA5MOKAkzk1JV0gYW5kIGxvdyBpbXBvcnRhdGlvbiByaXNrIFt3aGVyZSBuZWlnaGJvdXJpbmcgY291bnRyaWVzIGFuZC9vciBjb3VudHJpZXMgdGhhdCBzaGFyZSBzdWJzdGFudGlhbCBwb3B1bGF0aW9uIG1vdmVtZW50IGhhdmUgYSBzaW1pbGFybHkgaGlnaCBjb3ZlcmFnZV0pCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5JUFYtb25seTogSW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKS1vbmx5IChpbiBjb3VudHJpZXMsIGluIHBvbGlvLWZyZWUgcmVnaW9ucywgd2l0aCBhIHZlcnkgbG93IHJpc2sgb2YgaW1wb3J0YXRpb24gYW5kIHN1c3RhaW5lZCBoaWdoIHJvdXRpbmUgaW1tdW5pemF0aW9uIGNvdmVyYWdlICh0aGlyZCBkb3NlIG9mIHRoZSBkaXBodGhlcmlh4oCTdGV0YW51c+KAk3BlcnR1c3NpcyB2YWNjaW5lIFtEVFAzXSA+IDkwJSkKKi8KZGVmaW5lICJUaHJlZSBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIFBvbGlvIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAzCgovKgpAaW5wdXQ6IFRoZSB0aHJlZSBkb3NlcyBhZG1pbmlzdGVyZWQgYXJlIGJPUFYKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDMKQGNvZGU6IFRoZSB0aHJlZSBkb3NlcyBhZG1pbmlzdGVyZWQgYXJlIGJPUFYtMTE1CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIlRoZSB0aHJlZSBkb3NlcyBhZG1pbmlzdGVyZWQgYXJlIGJPUFYiOgogICJOdW1iZXIgb2YgUG9saW8gYk9QViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMwoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDE0IHdlZWtzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDE0IHdlZWtzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDE0IHdlZWtzLTQxCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gMTQgd2Vla3MiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIiA8IDE0CgovKgpAaW5wdXQ6IEZyb20gdGhlIHRocmVlIGRvc2VzIGFkbWluaXN0ZXJlZCwgb25lIGlzIElQViBhbmQgdHdvIGFyZSBiT1BWCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAyCkBjb2RlOiBGcm9tIHRoZSB0aHJlZSBkb3NlcyBhZG1pbmlzdGVyZWQsIG9uZSBpcyBJUFYgYW5kIHR3byBhcmUgYk9QVi0xMTUKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiRnJvbSB0aGUgdGhyZWUgZG9zZXMgYWRtaW5pc3RlcmVkLCBvbmUgaXMgSVBWIGFuZCB0d28gYXJlIGJPUFYiOgogICJOdW1iZXIgb2YgUG9saW8gYk9QViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMgoKLyoKQGlucHV0OiBGcm9tIHRoZSB0aHJlZSBkb3NlcyBhZG1pbmlzdGVyZWQsIG9uZSBpcyBiT1BWIGFuZCB0d28gYXJlIElQVgpAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVHlwZSBvZiBwb2xpb3ZpcnVzIGRvc2UiID0gImJPUFYiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMQpAY29kZTogRnJvbSB0aGUgdGhyZWUgZG9zZXMgYWRtaW5pc3RlcmVkLCBvbmUgaXMgYk9QViBhbmQgdHdvIGFyZSBJUFYtMTE1CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIkZyb20gdGhlIHRocmVlIGRvc2VzIGFkbWluaXN0ZXJlZCwgb25lIGlzIGJPUFYgYW5kIHR3byBhcmUgSVBWIjoKICAiTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDEKCi8qCkBpbnB1dDogRm91ciBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSA0CkBjb2RlOiBGb3VyIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQtMTMwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uU2VxdWVudGlhbCBJUFbigJNiT1BWOiBTZXF1ZW50aWFsICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYp4oCTaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGluIGNvdW50cmllcyB3aXRoIGhpZ2ggdmFjY2luYXRpb24gY292ZXJhZ2UgW2UuZy4gOTDigJM5NSVdIGFuZCBsb3cgaW1wb3J0YXRpb24gcmlzayBbd2hlcmUgbmVpZ2hib3VyaW5nIGNvdW50cmllcyBhbmQvb3IgY291bnRyaWVzIHRoYXQgc2hhcmUgc3Vic3RhbnRpYWwgcG9wdWxhdGlvbiBtb3ZlbWVudCBoYXZlIGEgc2ltaWxhcmx5IGhpZ2ggY292ZXJhZ2VdKQoqLwpkZWZpbmUgIkZvdXIgcG9saW92aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBQb2xpbyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gNAoKLyoKQGlucHV0OiBGcm9tIHRoZSBmb3VyIGRvc2VzIGFkbWluaXN0ZXJlZCwgb25lIGlzIElQViBhbmQgdGhyZWUgYXJlIGJPUFYKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDMKQGNvZGU6IEZyb20gdGhlIGZvdXIgZG9zZXMgYWRtaW5pc3RlcmVkLCBvbmUgaXMgSVBWIGFuZCB0aHJlZSBhcmUgYk9QVi0xMTUKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiRnJvbSB0aGUgZm91ciBkb3NlcyBhZG1pbmlzdGVyZWQsIG9uZSBpcyBJUFYgYW5kIHRocmVlIGFyZSBiT1BWIjoKICAiTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDMKCi8qCkBpbnB1dDogRnJvbSB0aGUgZm91ciBkb3NlcyBhZG1pbmlzdGVyZWQsIHR3byBhcmUgSVBWIGFuZCB0d28gYXJlIGJPUFYKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDIKQGNvZGU6IEZyb20gdGhlIGZvdXIgZG9zZXMgYWRtaW5pc3RlcmVkLCB0d28gYXJlIElQViBhbmQgdHdvIGFyZSBiT1BWLTExNQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKKi8KZGVmaW5lICJGcm9tIHRoZSBmb3VyIGRvc2VzIGFkbWluaXN0ZXJlZCwgdHdvIGFyZSBJUFYgYW5kIHR3byBhcmUgYk9QViI6CiAgIk51bWJlciBvZiBQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAyCgovKgpAaW5wdXQ6IEZpdmUgcG9saW92aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gNQpAY29kZTogRml2ZSBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkLTEzMApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKKi8KZGVmaW5lICJGaXZlIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUG9saW8gUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDUKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA4IHdlZWtzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDggd2Vla3MKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gOCB3ZWVrcy00MApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uU2VxdWVudGlhbCBJUFbigJNiT1BWOiBTZXF1ZW50aWFsICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYp4oCTaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGluIGNvdW50cmllcyB3aXRoIGhpZ2ggdmFjY2luYXRpb24gY292ZXJhZ2UgW2UuZy4gOTDigJM5NSVdIGFuZCBsb3cgaW1wb3J0YXRpb24gcmlzayBbd2hlcmUgbmVpZ2hib3VyaW5nIGNvdW50cmllcyBhbmQvb3IgY291bnRyaWVzIHRoYXQgc2hhcmUgc3Vic3RhbnRpYWwgcG9wdWxhdGlvbiBtb3ZlbWVudCBoYXZlIGEgc2ltaWxhcmx5IGhpZ2ggY292ZXJhZ2VdKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gOCB3ZWVrcyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gV2Vla3MiIDwgOAoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDggd2Vla3MKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSA4IHdlZWtzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDggd2Vla3MtNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLlNlcXVlbnRpYWwgSVBW4oCTYk9QVjogU2VxdWVudGlhbCAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKeKAk2luYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgd2l0aCBoaWdoIHZhY2NpbmF0aW9uIGNvdmVyYWdlIFtlLmcuIDkw4oCTOTUlXSBhbmQgbG93IGltcG9ydGF0aW9uIHJpc2sgW3doZXJlIG5laWdoYm91cmluZyBjb3VudHJpZXMgYW5kL29yIGNvdW50cmllcyB0aGF0IHNoYXJlIHN1YnN0YW50aWFsIHBvcHVsYXRpb24gbW92ZW1lbnQgaGF2ZSBhIHNpbWlsYXJseSBoaWdoIGNvdmVyYWdlXSkKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDggd2Vla3MiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIiA+PSA4CgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgcG9saW92aXJ1cyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIpIDwgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCB3ZWVrcyBhZ28tMTIwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5TZXF1ZW50aWFsIElQVuKAk2JPUFY6IFNlcXVlbnRpYWwgIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVinigJNpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoaW4gY291bnRyaWVzIHdpdGggaGlnaCB2YWNjaW5hdGlvbiBjb3ZlcmFnZSBbZS5nLiA5MOKAkzk1JV0gYW5kIGxvdyBpbXBvcnRhdGlvbiByaXNrIFt3aGVyZSBuZWlnaGJvdXJpbmcgY291bnRyaWVzIGFuZC9vciBjb3VudHJpZXMgdGhhdCBzaGFyZSBzdWJzdGFudGlhbCBwb3B1bGF0aW9uIG1vdmVtZW50IGhhdmUgYSBzaW1pbGFybHkgaGlnaCBjb3ZlcmFnZV0pCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5JUFYtb25seTogSW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKS1vbmx5IChpbiBjb3VudHJpZXMsIGluIHBvbGlvLWZyZWUgcmVnaW9ucywgd2l0aCBhIHZlcnkgbG93IHJpc2sgb2YgaW1wb3J0YXRpb24gYW5kIHN1c3RhaW5lZCBoaWdoIHJvdXRpbmUgaW1tdW5pemF0aW9uIGNvdmVyYWdlICh0aGlyZCBkb3NlIG9mIHRoZSBkaXBodGhlcmlh4oCTdGV0YW51c+KAk3BlcnR1c3NpcyB2YWNjaW5lIFtEVFAzXSA+IDkwJSkKKi8KZGVmaW5lICJUaGUgbGF0ZXN0IHBvbGlvdmlydXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IHdlZWtzIGFnbyI6CiAgIkRhdGUgb2YgTGF0ZXN0IFBvbGlvIERvc2UiIGlzIG5vdCBudWxsCiAgICBhbmQgZHVyYXRpb24gaW4gd2Vla3MgYmV0d2VlbiAiRGF0ZSBvZiBMYXRlc3QgUG9saW8gRG9zZSIgYW5kIE5vdygpIDwgNAoKLyoKQGlucHV0OiBUaGUgbGF0ZXN0IHBvbGlvdmlydXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnbwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiKSDiiaUgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNCB3ZWVrcyBhZ28tMTIwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5TZXF1ZW50aWFsIElQVuKAk2JPUFY6IFNlcXVlbnRpYWwgIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVinigJNpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoaW4gY291bnRyaWVzIHdpdGggaGlnaCB2YWNjaW5hdGlvbiBjb3ZlcmFnZSBbZS5nLiA5MOKAkzk1JV0gYW5kIGxvdyBpbXBvcnRhdGlvbiByaXNrIFt3aGVyZSBuZWlnaGJvdXJpbmcgY291bnRyaWVzIGFuZC9vciBjb3VudHJpZXMgdGhhdCBzaGFyZSBzdWJzdGFudGlhbCBwb3B1bGF0aW9uIG1vdmVtZW50IGhhdmUgYSBzaW1pbGFybHkgaGlnaCBjb3ZlcmFnZV0pCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5JUFYtb25seTogSW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKS1vbmx5IChpbiBjb3VudHJpZXMsIGluIHBvbGlvLWZyZWUgcmVnaW9ucywgd2l0aCBhIHZlcnkgbG93IHJpc2sgb2YgaW1wb3J0YXRpb24gYW5kIHN1c3RhaW5lZCBoaWdoIHJvdXRpbmUgaW1tdW5pemF0aW9uIGNvdmVyYWdlICh0aGlyZCBkb3NlIG9mIHRoZSBkaXBodGhlcmlh4oCTdGV0YW51c+KAk3BlcnR1c3NpcyB2YWNjaW5lIFtEVFAzXSA+IDkwJSkKKi8KZGVmaW5lICJUaGUgbGF0ZXN0IHBvbGlvdmlydXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnbyI6CiAgbm90KCJUaGUgbGF0ZXN0IHBvbGlvdmlydXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IHdlZWtzIGFnbyIpCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiB3ZWVrcwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIg4omlIDYgd2Vla3MKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiB3ZWVrcy00MApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uSVBWLW9ubHk6IEluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQViktb25seSAoaW4gY291bnRyaWVzLCBpbiBwb2xpby1mcmVlIHJlZ2lvbnMsIHdpdGggYSB2ZXJ5IGxvdyByaXNrIG9mIGltcG9ydGF0aW9uIGFuZCBzdXN0YWluZWQgaGlnaCByb3V0aW5lIGltbXVuaXphdGlvbiBjb3ZlcmFnZSAodGhpcmQgZG9zZSBvZiB0aGUgZGlwaHRoZXJpYeKAk3RldGFudXPigJNwZXJ0dXNzaXMgdmFjY2luZSBbRFRQM10gPiA5MCUpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byA2IHdlZWtzIjoKICBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBXZWVrcyIgPj0gNgoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2Ugd2FzIG1vcmUgdGhhbiA2IHdlZWtzIHdoZW4gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBzdGFydGVkCkBwc2V1ZG9jb2RlOiAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgQU5EICJEb3NlIG51bWJlciIgPSAxKSDiiJIgIkRhdGUgb2YgYmlydGgiID4gNiB3ZWVrcwpAY29kZTogQ2xpZW50J3MgYWdlIHdhcyBtb3JlIHRoYW4gNiB3ZWVrcyB3aGVuIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgc3RhcnRlZC0xMzgKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSB3YXMgbW9yZSB0aGFuIDYgd2Vla3Mgd2hlbiB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIHN0YXJ0ZWQiOgogIEFnZUluV2Vla3NBdCgiRGF0ZSBvZiBGaXJzdCBQcmltYXJ5IFNlcmllcyBQb2xpbyBEb3NlIikgPiA2CgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSB3YXMgNiB3ZWVrcyB3aGVuIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgc3RhcnRlZApAcHNldWRvY29kZTogIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIEFORCAiRG9zZSBudW1iZXIiID0gMSkg4oiSICJEYXRlIG9mIGJpcnRoIiA9IDYgd2Vla3MKQGNvZGU6IENsaWVudCdzIGFnZSB3YXMgNiB3ZWVrcyB3aGVuIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgc3RhcnRlZC0xMzgKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSB3YXMgNiB3ZWVrcyB3aGVuIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgc3RhcnRlZCI6CiAgQWdlSW5XZWVrc0F0KCJEYXRlIG9mIEZpcnN0IFByaW1hcnkgU2VyaWVzIFBvbGlvIERvc2UiKSA9IDYKCi8qCkBpbnB1dDogVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNiBtb250aHMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIpIDwgNiBtb250aHMKQGNvZGU6IFRoZSBsYXRlc3QgcG9saW92aXJ1cyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDYgbW9udGhzIGFnby0xMjEKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgcG9saW92aXJ1cyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDYgbW9udGhzIGFnbyI6CiAgIkRhdGUgb2YgTGF0ZXN0IFBvbGlvIERvc2UiIGlzIG5vdCBudWxsCiAgICBhbmQgZHVyYXRpb24gaW4gbW9udGhzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IFBvbGlvIERvc2UiIGFuZCBOb3coKSA8IDYKCi8qCkBpbnB1dDogVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNiBtb250aHMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIpIOKJpSA2IG1vbnRocwpAY29kZTogVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNiBtb250aHMgYWdvLTEyMQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uSVBWLW9ubHk6IEluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQViktb25seSAoaW4gY291bnRyaWVzLCBpbiBwb2xpby1mcmVlIHJlZ2lvbnMsIHdpdGggYSB2ZXJ5IGxvdyByaXNrIG9mIGltcG9ydGF0aW9uIGFuZCBzdXN0YWluZWQgaGlnaCByb3V0aW5lIGltbXVuaXphdGlvbiBjb3ZlcmFnZSAodGhpcmQgZG9zZSBvZiB0aGUgZGlwaHRoZXJpYeKAk3RldGFudXPigJNwZXJ0dXNzaXMgdmFjY2luZSBbRFRQM10gPiA5MCUpCiovCmRlZmluZSAiVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNiBtb250aHMgYWdvIjoKICBub3QoIlRoZSBsYXRlc3QgcG9saW92aXJ1cyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDYgbW9udGhzIGFnbyIpCgovKgpAaW5wdXQ6IE5vIHBvbGlvIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIkJvb3N0ZXIgZG9zZSIpID0gMApAY29kZTogTm8gcG9saW8gYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQtMTI4CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5JUFYtb25seTogSW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKS1vbmx5IChpbiBjb3VudHJpZXMsIGluIHBvbGlvLWZyZWUgcmVnaW9ucywgd2l0aCBhIHZlcnkgbG93IHJpc2sgb2YgaW1wb3J0YXRpb24gYW5kIHN1c3RhaW5lZCBoaWdoIHJvdXRpbmUgaW1tdW5pemF0aW9uIGNvdmVyYWdlICh0aGlyZCBkb3NlIG9mIHRoZSBkaXBodGhlcmlh4oCTdGV0YW51c+KAk3BlcnR1c3NpcyB2YWNjaW5lIFtEVFAzXSA+IDkwJSkKKi8KZGVmaW5lICJObyBwb2xpbyBib29zdGVyIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBQb2xpbyBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMAoKLyoKQGlucHV0OiBQb2xpbyBib29zdGVyIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJCb29zdGVyIGRvc2UiKSA9IDEKQGNvZGU6IFBvbGlvIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLTEyOApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uSVBWLW9ubHk6IEluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQViktb25seSAoaW4gY291bnRyaWVzLCBpbiBwb2xpby1mcmVlIHJlZ2lvbnMsIHdpdGggYSB2ZXJ5IGxvdyByaXNrIG9mIGltcG9ydGF0aW9uIGFuZCBzdXN0YWluZWQgaGlnaCByb3V0aW5lIGltbXVuaXphdGlvbiBjb3ZlcmFnZSAodGhpcmQgZG9zZSBvZiB0aGUgZGlwaHRoZXJpYeKAk3RldGFudXPigJNwZXJ0dXNzaXMgdmFjY2luZSBbRFRQM10gPiA5MCUpCiovCmRlZmluZSAiUG9saW8gYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUG9saW8gQm9vc3RlciBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDEKCi8qCkBpbnRlcm5hbDogYk9QViBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudAoqLwpkZWZpbmUgImJPUFYgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiOgogICJQb2xpbyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIgSQogIHdoZXJlIEkudHlwZU9mRG9zZSgpIH4gQ29uY2VwdHMuImJPUFYiCgovKgpAaW50ZXJuYWw6IElQViBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudAoqLwpkZWZpbmUgIklQViBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCI6CiAgIlBvbGlvIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IiBJCiAgd2hlcmUgSS50eXBlT2ZEb3NlKCkgfiBDb25jZXB0cy4iSVBWIgoKLyoKQGludGVybmFsOiBEYXRlIG9mIExhdGVzdCBQb2xpbyBEb3NlCiovCmRlZmluZSAiRGF0ZSBvZiBMYXRlc3QgUG9saW8gRG9zZSI6CiAgZGF0ZSBmcm9tIHN0YXJ0IG9mICJQb2xpbyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIubW9zdFJlY2VudCgpLm9jY3VycmVuY2UudG9JbnRlcnZhbCgpCgovKgpAaW50ZXJuYWw6IERhdGUgb2YgTGF0ZXN0IGJPUFYgRG9zZQoqLwpkZWZpbmUgIkRhdGUgb2YgTGF0ZXN0IGJPUFYgRG9zZSI6CiAgZGF0ZSBmcm9tIHN0YXJ0IG9mICJiT1BWIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5tb3N0UmVjZW50KCkub2NjdXJyZW5jZS50b0ludGVydmFsKCkKCi8qCkBpbnRlcm5hbDogRGF0ZSBvZiBMYXRlc3QgSVBWIERvc2UKKi8KZGVmaW5lICJEYXRlIG9mIExhdGVzdCBJUFYgRG9zZSI6CiAgZGF0ZSBmcm9tIHN0YXJ0IG9mICJJUFYgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiLm1vc3RSZWNlbnQoKS5vY2N1cnJlbmNlLnRvSW50ZXJ2YWwoKQoKLyoKQGludGVybmFsOiBQb2xpbyBEb3NlIDAgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJQb2xpbyBEb3NlIDAgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiOgogICJQb2xpbyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIuc2VyaWVzRG9zZTAoKQoKLyoKQGludGVybmFsOiBOdW1iZXIgb2YgUG9saW8gRG9zZSAwIERvc2VzIEFkbWluaXN0ZXJlZAoqLwpkZWZpbmUgIk51bWJlciBvZiBQb2xpbyBEb3NlIDAgRG9zZXMgQWRtaW5pc3RlcmVkIjoKICBDb3VudCgiUG9saW8gRG9zZSAwIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IikKCi8qCkBpbnRlcm5hbDogRGF0ZSBvZiBGaXJzdCBQcmltYXJ5IFNlcmllcyBQb2xpbyBEb3NlCiovCmRlZmluZSAiRGF0ZSBvZiBGaXJzdCBQcmltYXJ5IFNlcmllcyBQb2xpbyBEb3NlIjoKICBkYXRlIGZyb20gc3RhcnQgb2YgIlBvbGlvIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5lYXJsaWVzdCgpLm9jY3VycmVuY2UudG9JbnRlcnZhbCgpCgovKgpAaW50ZXJuYWw6IFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IjoKICAiUG9saW8gUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiIEkKICB3aGVyZSBJLnR5cGVPZkRvc2UoKSB+IENvbmNlcHRzLiJiT1BWIgoKLyoKQGludGVybmFsOiBQb2xpbyBJUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJQb2xpbyBJUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiOgogICJQb2xpbyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIgSQogIHdoZXJlIEkudHlwZU9mRG9zZSgpIH4gQ29uY2VwdHMuIklQViIKCi8qCkBpbnRlcm5hbDogTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkCiovCmRlZmluZSAiTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIjoKICBDb3VudCgiUG9saW8gYk9QViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIpCgovKgpAaW50ZXJuYWw6IE51bWJlciBvZiBQb2xpbyBJUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkCiovCmRlZmluZSAiTnVtYmVyIG9mIFBvbGlvIElQViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiOgogIENvdW50KCJQb2xpbyBJUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiKQoKLyoKQGludGVybmFsOiBQb2xpbyBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudAoqLwpkZWZpbmUgIlBvbGlvIEJvb3N0ZXIgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IjoKICAiUG9saW8gRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiLnNlcmllc0Jvb3N0ZXIoKQoKLyoKQGludGVybmFsOiBOdW1iZXIgb2YgUG9saW8gQm9vc3RlciBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkCiovCmRlZmluZSAiTnVtYmVyIG9mIFBvbGlvIEJvb3N0ZXIgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCI6CiAgQ291bnQoIlBvbGlvIEJvb3N0ZXIgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IikK"
}
]
}