@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

<http://smart.who.int/immunizations/Library/IMMZD2DTPolioElements> a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "IMMZD2DTPolioElements"] ; # 
  fhir:meta [
     fhir:profile ( [
       fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary>
     ] [
       fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary>
     ] [
       fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library>
     ] [
       fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module>
     ] )
  ] ; # 
  fhir:text [
     fhir:status [ fhir:v "extensions" ] ;
     fhir:div [ fhir:v "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n    <table class=\"grid dict\">\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Title: </b></th>\n            <td style=\"padding-left: 4px;\">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\" &lt; 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\" &lt; 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\" &gt;= 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\" &lt; 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] &gt; 90%)\n*/\ndefine \"Client's age is less than 6 weeks\":\n  Elements.\"Current Patient Age In Weeks\" &lt; 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] &gt; 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 &lt;= Elements.\"Current Patient Age In Weeks\"\n  and Elements.\"Current Patient Age In Months\" &lt;= 3\n\n/*\n@input: Client's age is more than 3 months\n@pseudocode: Today's date − \"Date of birth\" &gt; 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\" &gt; 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] &gt; 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\" &lt; 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 &lt;= Elements.\"Current Patient Age In Weeks\"\n  and Elements.\"Current Patient Age In Weeks\" &lt; 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\") &lt; 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() &lt; 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\" &gt;= 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\") &lt; 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() &lt; 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] &gt; 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] &gt; 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\" &lt; 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\" &lt; 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\" &lt; 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\" &lt; 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\" &gt;= 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\") &lt; 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] &gt; 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() &lt; 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] &gt; 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] &gt; 90%)\n*/\ndefine \"Client's age is more than or equal to 6 weeks\":\n  Elements.\"Current Patient Age In Weeks\" &gt;= 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\" &gt; 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] &gt; 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\") &gt; 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] &gt; 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\") &lt; 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] &gt; 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() &lt; 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] &gt; 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] &gt; 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] &gt; 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>"^^rdf:XMLLiteral ]
  ] ; # 
  fhir:extension ( [
     fhir:url [
       fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability>
     ] ;
     fhir:value [
       a fhir:Code ;
       fhir:v "computable"
     ]
  ] ) ; # 
  fhir:url [
     fhir:v "http://smart.who.int/immunizations/Library/IMMZD2DTPolioElements"^^xsd:anyURI ;
     fhir:l <http://smart.who.int/immunizations/Library/IMMZD2DTPolioElements>
  ] ; # 
  fhir:version [ fhir:v "1.0.0"] ; # 
  fhir:name [ fhir:v "IMMZD2DTPolioElements"] ; # 
  fhir:title [ fhir:v "IMMZD2DTPolioElements"] ; # 
  fhir:status [ fhir:v "draft"] ; # 
  fhir:experimental [ fhir:v false] ; # 
  fhir:type [
     fhir:coding ( [
       fhir:system [
         fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ;
         fhir:l <http://terminology.hl7.org/CodeSystem/library-type>
       ] ;
       fhir:code [ fhir:v "logic-library" ]
     ] )
  ] ; # 
  fhir:date [ fhir:v "2026-03-31T13:54:17+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "WHO"] ; # 
  fhir:contact ( [
     fhir:name [ fhir:v "WHO" ] ;
     fhir:telecom ( [
       fhir:system [ fhir:v "url" ] ;
       fhir:value [ fhir:v "http://who.int" ]
     ] )
  ] ) ; # 
  fhir:description [ fhir:v "This library defines context-independent elements for Polio used throughout the Immunization CPG"] ; # 
  fhir:relatedArtifact ( [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library WHOConcepts" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/WHOConcepts"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/WHOConcepts>
     ]
  ] [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library WC" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/WHOCommon"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/WHOCommon>
     ]
  ] [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library WE" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/WHOElements"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/WHOElements>
     ]
  ] [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library Common" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/IMMZCommon"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/IMMZCommon>
     ]
  ] [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library Concepts" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/IMMZConcepts"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/IMMZConcepts>
     ]
  ] [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library Elements" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/IMMZElements"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/IMMZElements>
     ]
  ] ) ; # 
  fhir:parameter ( [
     fhir:name [ fhir:v "Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "Patient" ]
  ] [
     fhir:name [ fhir:v "Polio Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Polio Primary Series Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Number of Polio Primary Series Doses Administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "integer" ]
  ] [
     fhir:name [ fhir:v "Polio Dose 0 Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Number of Polio Dose 0 Doses Administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "integer" ]
  ] [
     fhir:name [ fhir:v "bOPV birth dose (a zero dose) was not administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is less than 1 week" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is more than or equal to 1 week" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "bOPV birth dose (a zero dose) was administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is less than 6 weeks" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "No poliovirus primary series doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is between 6 weeks and 3 months" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is more than 3 months" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "One poliovirus primary series dose was administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is between 6 weeks and 14 weeks" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "bOPV Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Date of Latest bOPV Dose" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "date" ]
  ] [
     fhir:name [ fhir:v "The latest bOPV dose was administered less than 4 weeks ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest bOPV dose was administered more than 4 weeks ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Polio bOPV Primary Series Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Number of Polio bOPV Primary Series Doses Administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "integer" ]
  ] [
     fhir:name [ fhir:v "The poliovirus dose administered is bOPV" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is more than or equal to 14 weeks" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The poliovirus dose administered is IPV" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "IPV Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Date of Latest IPV Dose" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "date" ]
  ] [
     fhir:name [ fhir:v "The latest IPV dose was administered less than 4 months ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest IPV dose was administered more than 4 months ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Two poliovirus primary series doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The two doses administered are bOPV" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "From the two doses administered one is bOPV and one is IPV" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The two doses administered are IPV" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Three poliovirus primary series doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The three doses administered are bOPV" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is less than 14 weeks" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "From the three doses administered, one is IPV and two are bOPV" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "From the three doses administered, one is bOPV and two are IPV" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Four poliovirus primary series doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "From the four doses administered, one is IPV and three are bOPV" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "From the four doses administered, two are IPV and two are bOPV" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Five poliovirus primary series doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is less than 8 weeks" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is more than or equal to 8 weeks" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Date of Latest Polio Dose" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "date" ]
  ] [
     fhir:name [ fhir:v "The latest poliovirus dose was administered less than 4 weeks ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest poliovirus dose was administered more than 4 weeks ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is more than or equal to 6 weeks" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Date of First Primary Series Polio Dose" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "date" ]
  ] [
     fhir:name [ fhir:v "Client's age was more than 6 weeks when the primary series was started" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age was 6 weeks when the primary series was started" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest poliovirus dose was administered less than 6 months ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest poliovirus dose was administered more than 6 months ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Polio Booster Series Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Number of Polio Booster Series Doses Administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "integer" ]
  ] [
     fhir:name [ fhir:v "No polio booster dose was administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Polio booster dose was administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Polio IPV Primary Series Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Number of Polio IPV Primary Series Doses Administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "integer" ]
  ] ) ; # 
  fhir:content ( [
     fhir:contentType [ fhir:v "text/cql" ] ;
     fhir:data [ fhir:v "Ci8qCiAgKiBMaWJyYXJ5OiBJTU1aRDJEVFBvbGlvRWxlbWVudHMKICAqLwpsaWJyYXJ5IElNTVpEMkRUUG9saW9FbGVtZW50cwoKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgV0hPQ29uY2VwdHMKaW5jbHVkZSBXSE9Db21tb24gY2FsbGVkIFdDCmluY2x1ZGUgV0hPRWxlbWVudHMgY2FsbGVkIFdFCgppbmNsdWRlIElNTVpDb21tb24gY2FsbGVkIENvbW1vbgppbmNsdWRlIElNTVpDb25jZXB0cyBjYWxsZWQgQ29uY2VwdHMKaW5jbHVkZSBJTU1aRWxlbWVudHMgY2FsbGVkIEVsZW1lbnRzCgoKY29udGV4dCBQYXRpZW50CgovKgpAaW50ZXJuYWw6IFBvbGlvIGNvbnRhaW5pbmcgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJQb2xpbyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCI6CiAgRWxlbWVudHMuIkRvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IiBJCiAgd2hlcmUKICAgIEkudmFjY2luZUNvZGUgaW4gQ29uY2VwdHMuIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIKCi8qCkBpbnRlcm5hbDogUG9saW8gY29udGFpbmluZyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCB0aGF0IGFyZSBpbiB0aGUgUHJpbWFyeSBzZXJpZXMKKi8KZGVmaW5lICJQb2xpbyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCI6CiAgIlBvbGlvIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5zZXJpZXNQcmltYXJ5KCkKCi8qCkBpbnRlcm5hbDogTnVtYmVyIG9mIFBvbGlvIFByaW1hcnkgU2VyaWVzIGRvc2VzCiovCmRlZmluZSAiTnVtYmVyIG9mIFBvbGlvIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCI6CiAgQ291bnQoIlBvbGlvIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IikKCi8qCkBpbnB1dDogYk9QViBiaXJ0aCBkb3NlIChhIHplcm8gZG9zZSkgd2FzIG5vdCBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiUG9saW92aXJ1cy1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiRG9zZSAwIiBBTkQgIkJpcnRoIGRvc2UiID0gVFJVRSkgPSAwCkBjb2RlOiBiT1BWIGJpcnRoIGRvc2UgKGEgemVybyBkb3NlKSB3YXMgbm90IGFkbWluaXN0ZXJlZC0xNDYKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLkJpcnRoIGRvc2U6IEJpcnRoIGRvc2UgYWRtaW5pc3RyYXRpb24gYXMgcGFydCBvZiAiYml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgdGhhdCBhcmUgcG9saW9teWVsaXRpcyAocG9saW8pLWVuZGVtaWMgY291bnRyaWVzIG9yIGF0IGhpZ2ggcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3Vic2VxdWVudCBzcHJlYWQgb2YgcG9saW8gdGhhdCBmb2xsb3cgdGhlIGNvbWJpbmVkIGJPUFbigJNJUFYgc2NoZWR1bGUpCiovCmRlZmluZSAiYk9QViBiaXJ0aCBkb3NlIChhIHplcm8gZG9zZSkgd2FzIG5vdCBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUG9saW8gRG9zZSAwIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAwCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gMSB3ZWVrCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDEgd2VlawpAY29kZTogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiAxIHdlZWstMzkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLkJpcnRoIGRvc2U6IEJpcnRoIGRvc2UgYWRtaW5pc3RyYXRpb24gYXMgcGFydCBvZiAiYml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgdGhhdCBhcmUgcG9saW9teWVsaXRpcyAocG9saW8pLWVuZGVtaWMgY291bnRyaWVzIG9yIGF0IGhpZ2ggcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3Vic2VxdWVudCBzcHJlYWQgb2YgcG9saW8gdGhhdCBmb2xsb3cgdGhlIGNvbWJpbmVkIGJPUFbigJNJUFYgc2NoZWR1bGUpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiAxIHdlZWsiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIiA8IDEKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byAxIHdlZWsKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSAxIHdlZWsKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gMSB3ZWVrLTM5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5CaXJ0aCBkb3NlOiBCaXJ0aCBkb3NlIGFkbWluaXN0cmF0aW9uIGFzIHBhcnQgb2YgImJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoaW4gY291bnRyaWVzIHRoYXQgYXJlIHBvbGlvbXllbGl0aXMgKHBvbGlvKS1lbmRlbWljIGNvdW50cmllcyBvciBhdCBoaWdoIHJpc2sgb2YgaW1wb3J0YXRpb24gYW5kIHN1YnNlcXVlbnQgc3ByZWFkIG9mIHBvbGlvIHRoYXQgZm9sbG93IHRoZSBjb21iaW5lZCBiT1BW4oCTSVBWIHNjaGVkdWxlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gMSB3ZWVrIjoKICBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBXZWVrcyIgPj0gMQoKLyoKQGlucHV0OiBiT1BWIGJpcnRoIGRvc2UgKGEgemVybyBkb3NlKSB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIkRvc2UgMCIgQU5EICJCaXJ0aCBkb3NlIiA9IFRSVUUpID0gMQpAY29kZTogYk9QViBiaXJ0aCBkb3NlIChhIHplcm8gZG9zZSkgd2FzIGFkbWluaXN0ZXJlZC0xNDYKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLkJpcnRoIGRvc2U6IEJpcnRoIGRvc2UgYWRtaW5pc3RyYXRpb24gYXMgcGFydCBvZiAiYml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgdGhhdCBhcmUgcG9saW9teWVsaXRpcyAocG9saW8pLWVuZGVtaWMgY291bnRyaWVzIG9yIGF0IGhpZ2ggcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3Vic2VxdWVudCBzcHJlYWQgb2YgcG9saW8gdGhhdCBmb2xsb3cgdGhlIGNvbWJpbmVkIGJPUFbigJNJUFYgc2NoZWR1bGUpCiovCmRlZmluZSAiYk9QViBiaXJ0aCBkb3NlIChhIHplcm8gZG9zZSkgd2FzIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBQb2xpbyBEb3NlIDAgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDEKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IHdlZWtzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDYgd2Vla3MKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiB3ZWVrcy00MApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiB3ZWVrcyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gV2Vla3MiIDwgNgoKLyoKQGlucHV0OiBObyBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAwCkBjb2RlOiBObyBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkLTEzMApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLlNlcXVlbnRpYWwgSVBW4oCTYk9QVjogU2VxdWVudGlhbCAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKeKAk2luYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgd2l0aCBoaWdoIHZhY2NpbmF0aW9uIGNvdmVyYWdlIFtlLmcuIDkw4oCTOTUlXSBhbmQgbG93IGltcG9ydGF0aW9uIHJpc2sgW3doZXJlIG5laWdoYm91cmluZyBjb3VudHJpZXMgYW5kL29yIGNvdW50cmllcyB0aGF0IHNoYXJlIHN1YnN0YW50aWFsIHBvcHVsYXRpb24gbW92ZW1lbnQgaGF2ZSBhIHNpbWlsYXJseSBoaWdoIGNvdmVyYWdlXSkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIk5vIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUG9saW8gUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDAKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMyBtb250aHMKQHBzZXVkb2NvZGU6IDYgd2Vla3Mg4omkIFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpCAzIG1vbnRocwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMyBtb250aHMtNTEKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMyBtb250aHMiOgogIDYgPD0gRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gV2Vla3MiCiAgYW5kIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIE1vbnRocyIgPD0gMwoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIDMgbW9udGhzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA+IDMgbW9udGhzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIDMgbW9udGhzLTQxCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gMyBtb250aHMiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIE1vbnRocyIgPiAzCgovKgpAaW5wdXQ6IE9uZSBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMQpAY29kZTogT25lIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLTEzMApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLlNlcXVlbnRpYWwgSVBW4oCTYk9QVjogU2VxdWVudGlhbCAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKeKAk2luYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgd2l0aCBoaWdoIHZhY2NpbmF0aW9uIGNvdmVyYWdlIFtlLmcuIDkw4oCTOTUlXSBhbmQgbG93IGltcG9ydGF0aW9uIHJpc2sgW3doZXJlIG5laWdoYm91cmluZyBjb3VudHJpZXMgYW5kL29yIGNvdW50cmllcyB0aGF0IHNoYXJlIHN1YnN0YW50aWFsIHBvcHVsYXRpb24gbW92ZW1lbnQgaGF2ZSBhIHNpbWlsYXJseSBoaWdoIGNvdmVyYWdlXSkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIk9uZSBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBQb2xpbyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMQoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgYmV0d2VlbiA2IHdlZWtzIGFuZCAxNCB3ZWVrcwpAcHNldWRvY29kZTogNiB3ZWVrcyDiiaQgVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCAxNCB3ZWVrcwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMTQgd2Vla3MtNTEKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMTQgd2Vla3MiOgogIDYgPD0gRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gV2Vla3MiCiAgYW5kIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIiA8IDE0CgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgYk9QViBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIpIDwgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCBiT1BWIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCB3ZWVrcyBhZ28tMTU5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgYk9QViBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvIjoKICAiRGF0ZSBvZiBMYXRlc3QgYk9QViBEb3NlIiBpcyBub3QgbnVsbAogICAgYW5kIGR1cmF0aW9uIGluIHdlZWtzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IGJPUFYgRG9zZSIgYW5kIE5vdygpIDwgNAoKLyoKQGlucHV0OiBUaGUgbGF0ZXN0IGJPUFYgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnbwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBwb2xpb3ZpcnVzIGRvc2UiID0gImJPUFYiKSDiiaUgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCBiT1BWIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNCB3ZWVrcyBhZ28tMTU5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgYk9QViBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDQgd2Vla3MgYWdvIjoKICBub3QoIlRoZSBsYXRlc3QgYk9QViBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvIikKCi8qCkBpbnB1dDogVGhlIHBvbGlvdmlydXMgZG9zZSBhZG1pbmlzdGVyZWQgaXMgYk9QVgpAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVHlwZSBvZiBwb2xpb3ZpcnVzIGRvc2UiID0gImJPUFYiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMQpAY29kZTogVGhlIHBvbGlvdmlydXMgZG9zZSBhZG1pbmlzdGVyZWQgaXMgYk9QVi0xMTUKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiVGhlIHBvbGlvdmlydXMgZG9zZSBhZG1pbmlzdGVyZWQgaXMgYk9QViI6CiAgIk51bWJlciBvZiBQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAxCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gMTQgd2Vla3MKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSAxNCB3ZWVrcwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byAxNCB3ZWVrcy00MQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDE0IHdlZWtzIjoKICBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBXZWVrcyIgPj0gMTQKCi8qCkBpbnB1dDogVGhlIHBvbGlvdmlydXMgZG9zZSBhZG1pbmlzdGVyZWQgaXMgSVBWCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAwCkBjb2RlOiBUaGUgcG9saW92aXJ1cyBkb3NlIGFkbWluaXN0ZXJlZCBpcyBJUFYtMTE1CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIlRoZSBwb2xpb3ZpcnVzIGRvc2UgYWRtaW5pc3RlcmVkIGlzIElQViI6CiAgIk51bWJlciBvZiBQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAwCgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgSVBWIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCBtb250aHMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiSVBWIikgPCA0IG1vbnRocwpAY29kZTogVGhlIGxhdGVzdCBJUFYgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IG1vbnRocyBhZ28tMTU5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgSVBWIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCBtb250aHMgYWdvIjoKICAiRGF0ZSBvZiBMYXRlc3QgSVBWIERvc2UiIGlzIG5vdCBudWxsCiAgICBhbmQgZHVyYXRpb24gaW4gbW9udGhzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IElQViBEb3NlIiBhbmQgTm93KCkgPCA0CgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgSVBWIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNCBtb250aHMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiSVBWIikg4omlIDQgbW9udGhzCkBjb2RlOiBUaGUgbGF0ZXN0IElQViBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDQgbW9udGhzIGFnby0xNTkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiVGhlIGxhdGVzdCBJUFYgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IG1vbnRocyBhZ28iOgogIG5vdCgiVGhlIGxhdGVzdCBJUFYgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IG1vbnRocyBhZ28iKQoKLyoKQGlucHV0OiBUd28gcG9saW92aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMgpAY29kZTogVHdvIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQtMTMwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uU2VxdWVudGlhbCBJUFbigJNiT1BWOiBTZXF1ZW50aWFsICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYp4oCTaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGluIGNvdW50cmllcyB3aXRoIGhpZ2ggdmFjY2luYXRpb24gY292ZXJhZ2UgW2UuZy4gOTDigJM5NSVdIGFuZCBsb3cgaW1wb3J0YXRpb24gcmlzayBbd2hlcmUgbmVpZ2hib3VyaW5nIGNvdW50cmllcyBhbmQvb3IgY291bnRyaWVzIHRoYXQgc2hhcmUgc3Vic3RhbnRpYWwgcG9wdWxhdGlvbiBtb3ZlbWVudCBoYXZlIGEgc2ltaWxhcmx5IGhpZ2ggY292ZXJhZ2VdKQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uSVBWLW9ubHk6IEluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQViktb25seSAoaW4gY291bnRyaWVzLCBpbiBwb2xpby1mcmVlIHJlZ2lvbnMsIHdpdGggYSB2ZXJ5IGxvdyByaXNrIG9mIGltcG9ydGF0aW9uIGFuZCBzdXN0YWluZWQgaGlnaCByb3V0aW5lIGltbXVuaXphdGlvbiBjb3ZlcmFnZSAodGhpcmQgZG9zZSBvZiB0aGUgZGlwaHRoZXJpYeKAk3RldGFudXPigJNwZXJ0dXNzaXMgdmFjY2luZSBbRFRQM10gPiA5MCUpCiovCmRlZmluZSAiVHdvIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUG9saW8gUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDIKCi8qCkBpbnB1dDogVGhlIHR3byBkb3NlcyBhZG1pbmlzdGVyZWQgYXJlIGJPUFYKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDIKQGNvZGU6IFRoZSB0d28gZG9zZXMgYWRtaW5pc3RlcmVkIGFyZSBiT1BWLTExNQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKKi8KZGVmaW5lICJUaGUgdHdvIGRvc2VzIGFkbWluaXN0ZXJlZCBhcmUgYk9QViI6CiAgIk51bWJlciBvZiBQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAyCgovKgpAaW5wdXQ6IEZyb20gdGhlIHR3byBkb3NlcyBhZG1pbmlzdGVyZWQgb25lIGlzIGJPUFYgYW5kIG9uZSBpcyBJUFYKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDEKQGNvZGU6IEZyb20gdGhlIHR3byBkb3NlcyBhZG1pbmlzdGVyZWQgb25lIGlzIGJPUFYgYW5kIG9uZSBpcyBJUFYtMTE1CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIkZyb20gdGhlIHR3byBkb3NlcyBhZG1pbmlzdGVyZWQgb25lIGlzIGJPUFYgYW5kIG9uZSBpcyBJUFYiOgogICJOdW1iZXIgb2YgUG9saW8gYk9QViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMQoKLyoKQGlucHV0OiBUaGUgdHdvIGRvc2VzIGFkbWluaXN0ZXJlZCBhcmUgSVBWCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAwCkBjb2RlOiBUaGUgdHdvIGRvc2VzIGFkbWluaXN0ZXJlZCBhcmUgSVBWLTExNQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKKi8KZGVmaW5lICJUaGUgdHdvIGRvc2VzIGFkbWluaXN0ZXJlZCBhcmUgSVBWIjoKICAiTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDAKCi8qCkBpbnB1dDogVGhyZWUgcG9saW92aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMwpAY29kZTogVGhyZWUgcG9saW92aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZC0xMzAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5TZXF1ZW50aWFsIElQVuKAk2JPUFY6IFNlcXVlbnRpYWwgIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVinigJNpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoaW4gY291bnRyaWVzIHdpdGggaGlnaCB2YWNjaW5hdGlvbiBjb3ZlcmFnZSBbZS5nLiA5MOKAkzk1JV0gYW5kIGxvdyBpbXBvcnRhdGlvbiByaXNrIFt3aGVyZSBuZWlnaGJvdXJpbmcgY291bnRyaWVzIGFuZC9vciBjb3VudHJpZXMgdGhhdCBzaGFyZSBzdWJzdGFudGlhbCBwb3B1bGF0aW9uIG1vdmVtZW50IGhhdmUgYSBzaW1pbGFybHkgaGlnaCBjb3ZlcmFnZV0pCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5JUFYtb25seTogSW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKS1vbmx5IChpbiBjb3VudHJpZXMsIGluIHBvbGlvLWZyZWUgcmVnaW9ucywgd2l0aCBhIHZlcnkgbG93IHJpc2sgb2YgaW1wb3J0YXRpb24gYW5kIHN1c3RhaW5lZCBoaWdoIHJvdXRpbmUgaW1tdW5pemF0aW9uIGNvdmVyYWdlICh0aGlyZCBkb3NlIG9mIHRoZSBkaXBodGhlcmlh4oCTdGV0YW51c+KAk3BlcnR1c3NpcyB2YWNjaW5lIFtEVFAzXSA+IDkwJSkKKi8KZGVmaW5lICJUaHJlZSBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIFBvbGlvIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAzCgovKgpAaW5wdXQ6IFRoZSB0aHJlZSBkb3NlcyBhZG1pbmlzdGVyZWQgYXJlIGJPUFYKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDMKQGNvZGU6IFRoZSB0aHJlZSBkb3NlcyBhZG1pbmlzdGVyZWQgYXJlIGJPUFYtMTE1CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIlRoZSB0aHJlZSBkb3NlcyBhZG1pbmlzdGVyZWQgYXJlIGJPUFYiOgogICJOdW1iZXIgb2YgUG9saW8gYk9QViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMwoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDE0IHdlZWtzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDE0IHdlZWtzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDE0IHdlZWtzLTQxCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gMTQgd2Vla3MiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIiA8IDE0CgovKgpAaW5wdXQ6IEZyb20gdGhlIHRocmVlIGRvc2VzIGFkbWluaXN0ZXJlZCwgb25lIGlzIElQViBhbmQgdHdvIGFyZSBiT1BWCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAyCkBjb2RlOiBGcm9tIHRoZSB0aHJlZSBkb3NlcyBhZG1pbmlzdGVyZWQsIG9uZSBpcyBJUFYgYW5kIHR3byBhcmUgYk9QVi0xMTUKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiRnJvbSB0aGUgdGhyZWUgZG9zZXMgYWRtaW5pc3RlcmVkLCBvbmUgaXMgSVBWIGFuZCB0d28gYXJlIGJPUFYiOgogICJOdW1iZXIgb2YgUG9saW8gYk9QViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMgoKLyoKQGlucHV0OiBGcm9tIHRoZSB0aHJlZSBkb3NlcyBhZG1pbmlzdGVyZWQsIG9uZSBpcyBiT1BWIGFuZCB0d28gYXJlIElQVgpAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVHlwZSBvZiBwb2xpb3ZpcnVzIGRvc2UiID0gImJPUFYiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMQpAY29kZTogRnJvbSB0aGUgdGhyZWUgZG9zZXMgYWRtaW5pc3RlcmVkLCBvbmUgaXMgYk9QViBhbmQgdHdvIGFyZSBJUFYtMTE1CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQoqLwpkZWZpbmUgIkZyb20gdGhlIHRocmVlIGRvc2VzIGFkbWluaXN0ZXJlZCwgb25lIGlzIGJPUFYgYW5kIHR3byBhcmUgSVBWIjoKICAiTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDEKCi8qCkBpbnB1dDogRm91ciBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSA0CkBjb2RlOiBGb3VyIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQtMTMwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5iT1BWIHBsdXMgSVBWOiAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKSBwbHVzIGluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChhcHBsaWNhYmxlIGZvciBhbGwgY291bnRyaWVzKQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uU2VxdWVudGlhbCBJUFbigJNiT1BWOiBTZXF1ZW50aWFsICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYp4oCTaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGluIGNvdW50cmllcyB3aXRoIGhpZ2ggdmFjY2luYXRpb24gY292ZXJhZ2UgW2UuZy4gOTDigJM5NSVdIGFuZCBsb3cgaW1wb3J0YXRpb24gcmlzayBbd2hlcmUgbmVpZ2hib3VyaW5nIGNvdW50cmllcyBhbmQvb3IgY291bnRyaWVzIHRoYXQgc2hhcmUgc3Vic3RhbnRpYWwgcG9wdWxhdGlvbiBtb3ZlbWVudCBoYXZlIGEgc2ltaWxhcmx5IGhpZ2ggY292ZXJhZ2VdKQoqLwpkZWZpbmUgIkZvdXIgcG9saW92aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBQb2xpbyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gNAoKLyoKQGlucHV0OiBGcm9tIHRoZSBmb3VyIGRvc2VzIGFkbWluaXN0ZXJlZCwgb25lIGlzIElQViBhbmQgdGhyZWUgYXJlIGJPUFYKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDMKQGNvZGU6IEZyb20gdGhlIGZvdXIgZG9zZXMgYWRtaW5pc3RlcmVkLCBvbmUgaXMgSVBWIGFuZCB0aHJlZSBhcmUgYk9QVi0xMTUKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLmJPUFYgcGx1cyBJUFY6ICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYpIHBsdXMgaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGFwcGxpY2FibGUgZm9yIGFsbCBjb3VudHJpZXMpCiovCmRlZmluZSAiRnJvbSB0aGUgZm91ciBkb3NlcyBhZG1pbmlzdGVyZWQsIG9uZSBpcyBJUFYgYW5kIHRocmVlIGFyZSBiT1BWIjoKICAiTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDMKCi8qCkBpbnB1dDogRnJvbSB0aGUgZm91ciBkb3NlcyBhZG1pbmlzdGVyZWQsIHR3byBhcmUgSVBWIGFuZCB0d28gYXJlIGJPUFYKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDIKQGNvZGU6IEZyb20gdGhlIGZvdXIgZG9zZXMgYWRtaW5pc3RlcmVkLCB0d28gYXJlIElQViBhbmQgdHdvIGFyZSBiT1BWLTExNQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKKi8KZGVmaW5lICJGcm9tIHRoZSBmb3VyIGRvc2VzIGFkbWluaXN0ZXJlZCwgdHdvIGFyZSBJUFYgYW5kIHR3byBhcmUgYk9QViI6CiAgIk51bWJlciBvZiBQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAyCgovKgpAaW5wdXQ6IEZpdmUgcG9saW92aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gNQpAY29kZTogRml2ZSBwb2xpb3ZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkLTEzMApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uYk9QViBwbHVzIElQVjogIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVikgcGx1cyBpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoYXBwbGljYWJsZSBmb3IgYWxsIGNvdW50cmllcykKKi8KZGVmaW5lICJGaXZlIHBvbGlvdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUG9saW8gUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDUKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA4IHdlZWtzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDggd2Vla3MKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gOCB3ZWVrcy00MApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uU2VxdWVudGlhbCBJUFbigJNiT1BWOiBTZXF1ZW50aWFsICJCaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYp4oCTaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSIgc2NoZWR1bGUgKGluIGNvdW50cmllcyB3aXRoIGhpZ2ggdmFjY2luYXRpb24gY292ZXJhZ2UgW2UuZy4gOTDigJM5NSVdIGFuZCBsb3cgaW1wb3J0YXRpb24gcmlzayBbd2hlcmUgbmVpZ2hib3VyaW5nIGNvdW50cmllcyBhbmQvb3IgY291bnRyaWVzIHRoYXQgc2hhcmUgc3Vic3RhbnRpYWwgcG9wdWxhdGlvbiBtb3ZlbWVudCBoYXZlIGEgc2ltaWxhcmx5IGhpZ2ggY292ZXJhZ2VdKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gOCB3ZWVrcyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gV2Vla3MiIDwgOAoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDggd2Vla3MKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSA4IHdlZWtzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDggd2Vla3MtNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLlNlcXVlbnRpYWwgSVBW4oCTYk9QVjogU2VxdWVudGlhbCAiQml2YWxlbnQgb3JhbCBwb2xpbyB2YWNjaW5lIChiT1BWKeKAk2luYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQVikiIHNjaGVkdWxlIChpbiBjb3VudHJpZXMgd2l0aCBoaWdoIHZhY2NpbmF0aW9uIGNvdmVyYWdlIFtlLmcuIDkw4oCTOTUlXSBhbmQgbG93IGltcG9ydGF0aW9uIHJpc2sgW3doZXJlIG5laWdoYm91cmluZyBjb3VudHJpZXMgYW5kL29yIGNvdW50cmllcyB0aGF0IHNoYXJlIHN1YnN0YW50aWFsIHBvcHVsYXRpb24gbW92ZW1lbnQgaGF2ZSBhIHNpbWlsYXJseSBoaWdoIGNvdmVyYWdlXSkKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDggd2Vla3MiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIiA+PSA4CgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgcG9saW92aXJ1cyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIpIDwgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCB3ZWVrcyBhZ28tMTIwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5TZXF1ZW50aWFsIElQVuKAk2JPUFY6IFNlcXVlbnRpYWwgIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVinigJNpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoaW4gY291bnRyaWVzIHdpdGggaGlnaCB2YWNjaW5hdGlvbiBjb3ZlcmFnZSBbZS5nLiA5MOKAkzk1JV0gYW5kIGxvdyBpbXBvcnRhdGlvbiByaXNrIFt3aGVyZSBuZWlnaGJvdXJpbmcgY291bnRyaWVzIGFuZC9vciBjb3VudHJpZXMgdGhhdCBzaGFyZSBzdWJzdGFudGlhbCBwb3B1bGF0aW9uIG1vdmVtZW50IGhhdmUgYSBzaW1pbGFybHkgaGlnaCBjb3ZlcmFnZV0pCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5JUFYtb25seTogSW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKS1vbmx5IChpbiBjb3VudHJpZXMsIGluIHBvbGlvLWZyZWUgcmVnaW9ucywgd2l0aCBhIHZlcnkgbG93IHJpc2sgb2YgaW1wb3J0YXRpb24gYW5kIHN1c3RhaW5lZCBoaWdoIHJvdXRpbmUgaW1tdW5pemF0aW9uIGNvdmVyYWdlICh0aGlyZCBkb3NlIG9mIHRoZSBkaXBodGhlcmlh4oCTdGV0YW51c+KAk3BlcnR1c3NpcyB2YWNjaW5lIFtEVFAzXSA+IDkwJSkKKi8KZGVmaW5lICJUaGUgbGF0ZXN0IHBvbGlvdmlydXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IHdlZWtzIGFnbyI6CiAgIkRhdGUgb2YgTGF0ZXN0IFBvbGlvIERvc2UiIGlzIG5vdCBudWxsCiAgICBhbmQgZHVyYXRpb24gaW4gd2Vla3MgYmV0d2VlbiAiRGF0ZSBvZiBMYXRlc3QgUG9saW8gRG9zZSIgYW5kIE5vdygpIDwgNAoKLyoKQGlucHV0OiBUaGUgbGF0ZXN0IHBvbGlvdmlydXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnbwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiKSDiiaUgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNCB3ZWVrcyBhZ28tMTIwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5TZXF1ZW50aWFsIElQVuKAk2JPUFY6IFNlcXVlbnRpYWwgIkJpdmFsZW50IG9yYWwgcG9saW8gdmFjY2luZSAoYk9QVinigJNpbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpIiBzY2hlZHVsZSAoaW4gY291bnRyaWVzIHdpdGggaGlnaCB2YWNjaW5hdGlvbiBjb3ZlcmFnZSBbZS5nLiA5MOKAkzk1JV0gYW5kIGxvdyBpbXBvcnRhdGlvbiByaXNrIFt3aGVyZSBuZWlnaGJvdXJpbmcgY291bnRyaWVzIGFuZC9vciBjb3VudHJpZXMgdGhhdCBzaGFyZSBzdWJzdGFudGlhbCBwb3B1bGF0aW9uIG1vdmVtZW50IGhhdmUgYSBzaW1pbGFybHkgaGlnaCBjb3ZlcmFnZV0pCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5JUFYtb25seTogSW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKS1vbmx5IChpbiBjb3VudHJpZXMsIGluIHBvbGlvLWZyZWUgcmVnaW9ucywgd2l0aCBhIHZlcnkgbG93IHJpc2sgb2YgaW1wb3J0YXRpb24gYW5kIHN1c3RhaW5lZCBoaWdoIHJvdXRpbmUgaW1tdW5pemF0aW9uIGNvdmVyYWdlICh0aGlyZCBkb3NlIG9mIHRoZSBkaXBodGhlcmlh4oCTdGV0YW51c+KAk3BlcnR1c3NpcyB2YWNjaW5lIFtEVFAzXSA+IDkwJSkKKi8KZGVmaW5lICJUaGUgbGF0ZXN0IHBvbGlvdmlydXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnbyI6CiAgbm90KCJUaGUgbGF0ZXN0IHBvbGlvdmlydXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IHdlZWtzIGFnbyIpCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiB3ZWVrcwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIg4omlIDYgd2Vla3MKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiB3ZWVrcy00MApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uSVBWLW9ubHk6IEluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQViktb25seSAoaW4gY291bnRyaWVzLCBpbiBwb2xpby1mcmVlIHJlZ2lvbnMsIHdpdGggYSB2ZXJ5IGxvdyByaXNrIG9mIGltcG9ydGF0aW9uIGFuZCBzdXN0YWluZWQgaGlnaCByb3V0aW5lIGltbXVuaXphdGlvbiBjb3ZlcmFnZSAodGhpcmQgZG9zZSBvZiB0aGUgZGlwaHRoZXJpYeKAk3RldGFudXPigJNwZXJ0dXNzaXMgdmFjY2luZSBbRFRQM10gPiA5MCUpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byA2IHdlZWtzIjoKICBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBXZWVrcyIgPj0gNgoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2Ugd2FzIG1vcmUgdGhhbiA2IHdlZWtzIHdoZW4gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBzdGFydGVkCkBwc2V1ZG9jb2RlOiAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgQU5EICJEb3NlIG51bWJlciIgPSAxKSDiiJIgIkRhdGUgb2YgYmlydGgiID4gNiB3ZWVrcwpAY29kZTogQ2xpZW50J3MgYWdlIHdhcyBtb3JlIHRoYW4gNiB3ZWVrcyB3aGVuIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgc3RhcnRlZC0xMzgKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSB3YXMgbW9yZSB0aGFuIDYgd2Vla3Mgd2hlbiB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIHN0YXJ0ZWQiOgogIEFnZUluV2Vla3NBdCgiRGF0ZSBvZiBGaXJzdCBQcmltYXJ5IFNlcmllcyBQb2xpbyBEb3NlIikgPiA2CgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSB3YXMgNiB3ZWVrcyB3aGVuIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgc3RhcnRlZApAcHNldWRvY29kZTogIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIEFORCAiRG9zZSBudW1iZXIiID0gMSkg4oiSICJEYXRlIG9mIGJpcnRoIiA9IDYgd2Vla3MKQGNvZGU6IENsaWVudCdzIGFnZSB3YXMgNiB3ZWVrcyB3aGVuIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgc3RhcnRlZC0xMzgKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSB3YXMgNiB3ZWVrcyB3aGVuIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgc3RhcnRlZCI6CiAgQWdlSW5XZWVrc0F0KCJEYXRlIG9mIEZpcnN0IFByaW1hcnkgU2VyaWVzIFBvbGlvIERvc2UiKSA9IDYKCi8qCkBpbnB1dDogVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNiBtb250aHMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIpIDwgNiBtb250aHMKQGNvZGU6IFRoZSBsYXRlc3QgcG9saW92aXJ1cyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDYgbW9udGhzIGFnby0xMjEKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlBvbGlvLklQVi1vbmx5OiBJbmFjdGl2YXRlZCBwb2xpbyB2YWNjaW5lIChJUFYpLW9ubHkgKGluIGNvdW50cmllcywgaW4gcG9saW8tZnJlZSByZWdpb25zLCB3aXRoIGEgdmVyeSBsb3cgcmlzayBvZiBpbXBvcnRhdGlvbiBhbmQgc3VzdGFpbmVkIGhpZ2ggcm91dGluZSBpbW11bml6YXRpb24gY292ZXJhZ2UgKHRoaXJkIGRvc2Ugb2YgdGhlIGRpcGh0aGVyaWHigJN0ZXRhbnVz4oCTcGVydHVzc2lzIHZhY2NpbmUgW0RUUDNdID4gOTAlKQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgcG9saW92aXJ1cyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDYgbW9udGhzIGFnbyI6CiAgIkRhdGUgb2YgTGF0ZXN0IFBvbGlvIERvc2UiIGlzIG5vdCBudWxsCiAgICBhbmQgZHVyYXRpb24gaW4gbW9udGhzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IFBvbGlvIERvc2UiIGFuZCBOb3coKSA8IDYKCi8qCkBpbnB1dDogVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNiBtb250aHMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIpIOKJpSA2IG1vbnRocwpAY29kZTogVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNiBtb250aHMgYWdvLTEyMQpAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uSVBWLW9ubHk6IEluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQViktb25seSAoaW4gY291bnRyaWVzLCBpbiBwb2xpby1mcmVlIHJlZ2lvbnMsIHdpdGggYSB2ZXJ5IGxvdyByaXNrIG9mIGltcG9ydGF0aW9uIGFuZCBzdXN0YWluZWQgaGlnaCByb3V0aW5lIGltbXVuaXphdGlvbiBjb3ZlcmFnZSAodGhpcmQgZG9zZSBvZiB0aGUgZGlwaHRoZXJpYeKAk3RldGFudXPigJNwZXJ0dXNzaXMgdmFjY2luZSBbRFRQM10gPiA5MCUpCiovCmRlZmluZSAiVGhlIGxhdGVzdCBwb2xpb3ZpcnVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNiBtb250aHMgYWdvIjoKICBub3QoIlRoZSBsYXRlc3QgcG9saW92aXJ1cyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDYgbW9udGhzIGFnbyIpCgovKgpAaW5wdXQ6IE5vIHBvbGlvIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIkJvb3N0ZXIgZG9zZSIpID0gMApAY29kZTogTm8gcG9saW8gYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQtMTI4CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Qb2xpby5JUFYtb25seTogSW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKS1vbmx5IChpbiBjb3VudHJpZXMsIGluIHBvbGlvLWZyZWUgcmVnaW9ucywgd2l0aCBhIHZlcnkgbG93IHJpc2sgb2YgaW1wb3J0YXRpb24gYW5kIHN1c3RhaW5lZCBoaWdoIHJvdXRpbmUgaW1tdW5pemF0aW9uIGNvdmVyYWdlICh0aGlyZCBkb3NlIG9mIHRoZSBkaXBodGhlcmlh4oCTdGV0YW51c+KAk3BlcnR1c3NpcyB2YWNjaW5lIFtEVFAzXSA+IDkwJSkKKi8KZGVmaW5lICJObyBwb2xpbyBib29zdGVyIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBQb2xpbyBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMAoKLyoKQGlucHV0OiBQb2xpbyBib29zdGVyIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQb2xpb3ZpcnVzLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJCb29zdGVyIGRvc2UiKSA9IDEKQGNvZGU6IFBvbGlvIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLTEyOApAZGVjaXNpb246IElNTVouRDIuRFQuUG9saW8uSVBWLW9ubHk6IEluYWN0aXZhdGVkIHBvbGlvIHZhY2NpbmUgKElQViktb25seSAoaW4gY291bnRyaWVzLCBpbiBwb2xpby1mcmVlIHJlZ2lvbnMsIHdpdGggYSB2ZXJ5IGxvdyByaXNrIG9mIGltcG9ydGF0aW9uIGFuZCBzdXN0YWluZWQgaGlnaCByb3V0aW5lIGltbXVuaXphdGlvbiBjb3ZlcmFnZSAodGhpcmQgZG9zZSBvZiB0aGUgZGlwaHRoZXJpYeKAk3RldGFudXPigJNwZXJ0dXNzaXMgdmFjY2luZSBbRFRQM10gPiA5MCUpCiovCmRlZmluZSAiUG9saW8gYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUG9saW8gQm9vc3RlciBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDEKCi8qCkBpbnRlcm5hbDogYk9QViBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudAoqLwpkZWZpbmUgImJPUFYgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiOgogICJQb2xpbyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIgSQogIHdoZXJlIEkudHlwZU9mRG9zZSgpIH4gQ29uY2VwdHMuImJPUFYiCgovKgpAaW50ZXJuYWw6IElQViBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudAoqLwpkZWZpbmUgIklQViBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCI6CiAgIlBvbGlvIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IiBJCiAgd2hlcmUgSS50eXBlT2ZEb3NlKCkgfiBDb25jZXB0cy4iSVBWIgoKLyoKQGludGVybmFsOiBEYXRlIG9mIExhdGVzdCBQb2xpbyBEb3NlCiovCmRlZmluZSAiRGF0ZSBvZiBMYXRlc3QgUG9saW8gRG9zZSI6CiAgZGF0ZSBmcm9tIHN0YXJ0IG9mICJQb2xpbyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIubW9zdFJlY2VudCgpLm9jY3VycmVuY2UudG9JbnRlcnZhbCgpCgovKgpAaW50ZXJuYWw6IERhdGUgb2YgTGF0ZXN0IGJPUFYgRG9zZQoqLwpkZWZpbmUgIkRhdGUgb2YgTGF0ZXN0IGJPUFYgRG9zZSI6CiAgZGF0ZSBmcm9tIHN0YXJ0IG9mICJiT1BWIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5tb3N0UmVjZW50KCkub2NjdXJyZW5jZS50b0ludGVydmFsKCkKCi8qCkBpbnRlcm5hbDogRGF0ZSBvZiBMYXRlc3QgSVBWIERvc2UKKi8KZGVmaW5lICJEYXRlIG9mIExhdGVzdCBJUFYgRG9zZSI6CiAgZGF0ZSBmcm9tIHN0YXJ0IG9mICJJUFYgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiLm1vc3RSZWNlbnQoKS5vY2N1cnJlbmNlLnRvSW50ZXJ2YWwoKQoKLyoKQGludGVybmFsOiBQb2xpbyBEb3NlIDAgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJQb2xpbyBEb3NlIDAgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiOgogICJQb2xpbyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIuc2VyaWVzRG9zZTAoKQoKLyoKQGludGVybmFsOiBOdW1iZXIgb2YgUG9saW8gRG9zZSAwIERvc2VzIEFkbWluaXN0ZXJlZAoqLwpkZWZpbmUgIk51bWJlciBvZiBQb2xpbyBEb3NlIDAgRG9zZXMgQWRtaW5pc3RlcmVkIjoKICBDb3VudCgiUG9saW8gRG9zZSAwIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IikKCi8qCkBpbnRlcm5hbDogRGF0ZSBvZiBGaXJzdCBQcmltYXJ5IFNlcmllcyBQb2xpbyBEb3NlCiovCmRlZmluZSAiRGF0ZSBvZiBGaXJzdCBQcmltYXJ5IFNlcmllcyBQb2xpbyBEb3NlIjoKICBkYXRlIGZyb20gc3RhcnQgb2YgIlBvbGlvIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5lYXJsaWVzdCgpLm9jY3VycmVuY2UudG9JbnRlcnZhbCgpCgovKgpAaW50ZXJuYWw6IFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IjoKICAiUG9saW8gUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiIEkKICB3aGVyZSBJLnR5cGVPZkRvc2UoKSB+IENvbmNlcHRzLiJiT1BWIgoKLyoKQGludGVybmFsOiBQb2xpbyBJUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJQb2xpbyBJUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiOgogICJQb2xpbyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIgSQogIHdoZXJlIEkudHlwZU9mRG9zZSgpIH4gQ29uY2VwdHMuIklQViIKCi8qCkBpbnRlcm5hbDogTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkCiovCmRlZmluZSAiTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIjoKICBDb3VudCgiUG9saW8gYk9QViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIpCgovKgpAaW50ZXJuYWw6IE51bWJlciBvZiBQb2xpbyBJUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkCiovCmRlZmluZSAiTnVtYmVyIG9mIFBvbGlvIElQViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiOgogIENvdW50KCJQb2xpbyBJUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiKQoKLyoKQGludGVybmFsOiBQb2xpbyBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudAoqLwpkZWZpbmUgIlBvbGlvIEJvb3N0ZXIgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IjoKICAiUG9saW8gRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiLnNlcmllc0Jvb3N0ZXIoKQoKLyoKQGludGVybmFsOiBOdW1iZXIgb2YgUG9saW8gQm9vc3RlciBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkCiovCmRlZmluZSAiTnVtYmVyIG9mIFBvbGlvIEJvb3N0ZXIgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCI6CiAgQ291bnQoIlBvbGlvIEJvb3N0ZXIgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IikK"^^xsd:base64Binary ]
  ] ) . # 

# -------------------------------------------------------------------------------------

