2022 CDC Clinical Practice Guideline for Prescribing Opioids Implementation Guide
2022.1.0 - CI Build

2022 CDC Clinical Practice Guideline for Prescribing Opioids Implementation Guide, published by Centers for Disease Control and Prevention (CDC). This guide is not an authorized publication; it is the continuous build for version 2022.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/opioid-cds-r4/ and changes regularly. See the Directory of published versions

: OpioidCDSREC10Library - JSON Representation

Active as of 2024-03-17

Raw json | Download


{
  "resourceType" : "Library",
  "id" : "OpioidCDSREC10",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><table class=\"grid dict\"><tr><th scope=\"row\"><b>Id: </b></th><td style=\"padding-left: 25px; padding-right: 25px;\">library-OpioidCDSREC10</td></tr><tr><th scope=\"row\"><b>Type: </b></th><td style=\"padding-right: 25px;\"> logic-library </td></tr><tr><th scope=\"row\"><b>Version: </b></th><td style=\"padding-left: 25px; padding-right: 25px;\">2022.1.0</td></tr><tr><th scope=\"row\"><b>Status: </b></th><td style=\"padding-left: 25px; padding-right: 25px;\">active</td></tr><tr style=\"vertical-align: top;\"><th rowspan=\"3\" scope=\"row\"><b>Related: </b></th><td style=\"padding-left: 25px; padding-right: 25px;\"><p style=\"margin-bottom: 5px;\"><b>type: </b><span>depends-on</span></p><p style=\"margin-bottom: 5px;\"><b>Resource: </b><br/><span>http://fhir.org/guides/cdc/opioid-cds/Library/FHIRHelpers</span></p></td></tr><tr style=\"vertical-align: top;\"><td style=\"padding-left: 25px; padding-right: 25px;\"><p style=\"margin-bottom: 5px;\"><b>type: </b><span>depends-on</span></p><p style=\"margin-bottom: 5px;\"><b>Resource: </b><br/><span>http://fhir.org/guides/cdc/opioid-cds/Library/OpioidCDSCommon</span></p></td></tr><tr style=\"vertical-align: top;\"><td style=\"padding-left: 25px; padding-right: 25px;\"><p style=\"margin-bottom: 5px;\"><b>type: </b><span>depends-on</span></p><p style=\"margin-bottom: 5px;\"><b>Resource: </b><br/><span>http://fhir.org/guides/cdc/opioid-cds/Library/OpioidCDSRoutines</span></p></td></tr><tr style=\"vertical-align: top;\"><th rowspan=\"2\" scope=\"row\"><b>Data Requirements: </b></th><td style=\"padding-left: 25px; padding-right: 25px;\"><div><p style=\"margin-bottom: 5px;\"><b>type: </b><span>Observation</span></p><p style=\"margin-bottom: 5px;\"><b>code filter:</b><br/><span style=\"padding-left: 25px;\"><b>path: </b><span>code</span></span><br/><span style=\"padding-left: 25px;\"><b>valueset: </b><span>http://fhir.org/guides/cdc/opioid-cds/ValueSet/non-opioid-drug-urine-screening</span></span></p></div></td></tr><tr style=\"vertical-align: top;\"><td style=\"padding-left: 25px; padding-right: 25px;\"><div><p style=\"margin-bottom: 5px;\"><b>type: </b><span>Observation</span></p><p style=\"margin-bottom: 5px;\"><b>code filter:</b><br/><span style=\"padding-left: 25px;\"><b>path: </b><span>code</span></span><br/><span style=\"padding-left: 25px;\"><b>valueset: </b><span>http://fhir.org/guides/cdc/opioid-cds/ValueSet/opioid-drug-urine-screening</span></span></p></div></td></tr><tr style=\"vertical-align: top;\"><th scope=\"row\"><b>Content: </b></th><td style=\"padding-left: 25px; padding-right: 25px;\"><b>type: </b><span>text/cql</span></td></tr><tr><td colspan=\"2\" style=\"padding-left: 25px; padding-right: 25px;\"><pre><code class=\"language-cql\">library OpioidCDSREC10 version '2022.1.0'\n\nusing FHIR version '4.0.1'\n\ninclude FHIRHelpers version '4.0.1' called FHIRHelpers\ninclude OpioidCDSCommon version '2022.1.0' called Common\ninclude OpioidCDSRoutines version '2022.1.0' called Routines\n\n/*\n**  Recommendation #10\n**    When prescribing opioids for subacute or chronic pain, providers should use urine drug\n**    testing before starting opioid therapy and consider urine drug testing at\n**    least annually to assess for prescribed medications as well as other controlled\n**    prescription drugs and illicit drugs (recommendation category: B, evidence type: 4)\n**\n**  When\n**    Provider is prescribing an opioid analgesic with ambulatory misuse potential in the outpatient setting\n**    Prescription is for treating chronic pain.\n**    Opioid review is useful for this patient:\n**      Patient is 18 or over\n**      Patient does not have findings indicating limited life expectancy\n**      Patient does not have orders for therapies indicating end of life care\n**      Patient is not undergoing active cancer treatment:\n**        Patient has had at least 2 encounters within the past year with any diagnosis of cancer\n**    Urine drug screening has not been performed in last 12 months\n**  Then\n**    Recommend urine drug screening\n**      Will perform urine screening\n**      Not for chronic pain management, snooze 3 months\n**      N/A - see comment, snooze 3 months\n**\n*/\n\n// META: Plan Definition: http://fhir.org/guides/cdc/opioid-cds-r4/PlanDefinition/opioid-cds-10\n\nparameter ContextPrescriptions List&lt;MedicationRequest&gt;\n\ncontext Patient\n\ndefine &quot;Lookback Year&quot;:\n  Interval[Today() - 12 months - 1 days, Today() - 1 day]\n\ndefine &quot;Chronic Pain Opioid Analgesic with Ambulatory Misuse Potential Prescriptions&quot;:\n  ( Common.&quot;Is Opioid Analgesic with Ambulatory Misuse Potential?&quot;( ContextPrescriptions ) ) AmbulatoryOpioidPrescription\n    where Routines.&quot;Is Acute Pain Prescription?&quot;( AmbulatoryOpioidPrescription )\n\ndefine &quot;Patient Is Being Prescribed Opioid Analgesic with Ambulatory Misuse Potential&quot;:\n  exists( &quot;Chronic Pain Opioid Analgesic with Ambulatory Misuse Potential Prescriptions&quot; )\n\ndefine &quot;Is Recommendation Applicable?&quot;:\n  &quot;Inclusion Criteria&quot;\n    and not &quot;Exclusion Criteria&quot;\n\ndefine &quot;Inclusion Criteria&quot;:\n  &quot;Patient Is Being Prescribed Opioid Analgesic with Ambulatory Misuse Potential&quot;\n    and Routines.&quot;Is Opioid Review Useful?&quot;\n    and not &quot;Patient had Urine Screening in Last 12 Months&quot;\n\ndefine &quot;Exclusion Criteria&quot;:\n  Common.&quot;End of Life Assessment&quot;\n\ndefine &quot;Patient had Urine Screening in Last 12 Months&quot;:\n  exists( &quot;Urine Screenings during the Last 12 Months&quot; )\n\ndefine &quot;Urine Screenings during the Last 12 Months&quot;:\n  (\n    [Observation: &quot;code&quot; in Common.&quot;Non-opioid drug urine screening&quot;] IllicitDrugScreen\n      where date from IllicitDrugScreen.effective in day of &quot;Lookback Year&quot;\n  )\n  union\n  (\n    [Observation: &quot;code&quot; in Common.&quot;Opioid drug urine screening&quot;] OpioidDrugScreen\n      where date from OpioidDrugScreen.effective in day of &quot;Lookback Year&quot;\n  )\n\ndefine &quot;No Screening In Last 12 Months Indicator&quot;:\n  if &quot;Is Recommendation Applicable?&quot;\n    then 'warning'\n  else null\n\ndefine &quot;No Screening In Last 12 Months Summary&quot;:\n  if &quot;Is Recommendation Applicable?&quot;\n    then 'Annual Urine Screening Check'\n  else null\n\ndefine &quot;No Screening In Last 12 Months Detail&quot;:\n  if &quot;Is Recommendation Applicable?&quot;\n    then 'Patients on opioid therapy should have a urine drug test performed every 12 months.'\n  else null\n</code></pre>\n                    \n                    \n                </td>\n            </tr>\n        \n    </table>\n</div>"
  },
  "extension" : [
    {
      "url" : "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem",
      "valueReference" : {
        🔗 "reference" : "Device/cqf-tooling"
      }
    },
    {
      "url" : "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem",
      "valueReference" : {
        🔗 "reference" : "Device/cqf-tooling"
      }
    }
  ],
  "url" : "http://fhir.org/guides/cdc/opioid-cds/Library/OpioidCDSREC10",
  "version" : "2022.1.0",
  "name" : "OpioidCDSREC10",
  "title" : "Library - Recommendation #10 - Urine Drug Testing",
  "status" : "active",
  "experimental" : true,
  "type" : {
    "coding" : [
      {
        "system" : "http://terminology.hl7.org/CodeSystem/library-type",
        "code" : "logic-library"
      }
    ]
  },
  "date" : "2024-03-17T23:03:50+00:00",
  "publisher" : "Centers for Disease Control and Prevention (CDC)",
  "contact" : [
    {
      "telecom" : [
        {
          "system" : "url",
          "value" : "https://www.cdc.gov"
        }
      ]
    }
  ],
  "relatedArtifact" : [
    {
      "type" : "depends-on",
      "display" : "FHIR model information",
      "resource" : "http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1"
    },
    {
      "type" : "depends-on",
      "display" : "Library FHIRHelpers",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/Library/FHIRHelpers|4.0.1"
    },
    {
      "type" : "depends-on",
      "display" : "Library Common",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/Library/OpioidCDSCommon|2022.1.0"
    },
    {
      "type" : "depends-on",
      "display" : "Library Config",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/Library/OpioidCDSCommonConfig|2022.1.0"
    },
    {
      "type" : "depends-on",
      "display" : "Library Routines",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/Library/OpioidCDSRoutines|2022.1.0"
    },
    {
      "type" : "depends-on",
      "display" : "Library Rec10Common",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/Library/OpioidCDSREC10Common|2022.1.0"
    },
    {
      "type" : "depends-on",
      "display" : "Library Routines",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/Library/OpioidCDSRoutines|2022.1.0"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Opioid analgesics with ambulatory misuse potential",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/opioid-analgesics-with-ambulatory-misuse-potential"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Community",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/medicationrequest-category-community"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Encounter Diagnosis Condition Category",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/condition-encounter-diagnosis-category"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Problem List Condition Category",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/condition-problem-list-category"
    },
    {
      "type" : "depends-on",
      "display" : "Value set US Core Health Concern Condition Category",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/condition-us-core-health-concern-category"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Limited life expectancy conditions",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/limited-life-expectancy-conditions"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Active Condition",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/condition-clinical-status-active"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Therapies indicating end of life care",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/therapies-indicating-end-of-life-care"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Observation Category Laboratory",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/observation-category-laboratory"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Non-opioid drug urine screening",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/non-opioid-drug-urine-screening"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Cocaine Urine Tests",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/cocaine-urine-drug-screening-tests"
    },
    {
      "type" : "depends-on",
      "display" : "Value set PCP Urine Tests",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/phencyclidine-urine-drug-screening-tests"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Conditions likely terminal for opioid prescribing",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/conditions-likely-terminal-for-opioid-prescribing"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Hospice Procedure Codes",
      "resource" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/hospice-procedure"
    }
  ],
  "parameter" : [
    {
      "name" : "ContextPrescriptions",
      "use" : "in",
      "min" : 0,
      "max" : "*",
      "type" : "MedicationRequest"
    },
    {
      "name" : "Patient",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "Patient"
    },
    {
      "name" : "Subacute or Chronic Pain Opioid Analgesic with Ambulatory Misuse Potential Prescriptions",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "MedicationRequest"
    },
    {
      "name" : "Patient Is Being Prescribed Opioid Analgesic with Ambulatory Misuse Potential",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Is Perform Drug Screen Recommendation Applicable?",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Applicable Because of Positive Cocaine or PCP or Opiates",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Detail",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "string"
    },
    {
      "name" : "Indicator",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "string"
    },
    {
      "name" : "Summary",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "string"
    }
  ],
  "dataRequirement" : [
    {
      "type" : "Patient",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Patient"
      ]
    },
    {
      "type" : "Medication",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Medication"
      ],
      "mustSupport" : [
        "id"
      ],
      "codeFilter" : [
        {
          "path" : "id"
        }
      ]
    },
    {
      "type" : "Condition",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Condition"
      ],
      "mustSupport" : [
        "category"
      ],
      "codeFilter" : [
        {
          "path" : "category",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/condition-encounter-diagnosis-category"
        }
      ]
    },
    {
      "type" : "Condition",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Condition"
      ],
      "mustSupport" : [
        "category"
      ],
      "codeFilter" : [
        {
          "path" : "category",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/condition-problem-list-category"
        }
      ]
    },
    {
      "type" : "Condition",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Condition"
      ],
      "mustSupport" : [
        "category"
      ],
      "codeFilter" : [
        {
          "path" : "category",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/condition-us-core-health-concern-category"
        }
      ]
    },
    {
      "type" : "ServiceRequest",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/ServiceRequest"
      ]
    },
    {
      "type" : "ServiceRequest",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/ServiceRequest"
      ],
      "mustSupport" : [
        "status",
        "intent",
        "authoredOn",
        "code"
      ]
    },
    {
      "type" : "Observation",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Observation"
      ],
      "mustSupport" : [
        "category"
      ],
      "codeFilter" : [
        {
          "path" : "category",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/observation-category-laboratory"
        }
      ]
    },
    {
      "type" : "Observation",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Observation"
      ],
      "mustSupport" : [
        "category",
        "code"
      ],
      "codeFilter" : [
        {
          "path" : "category",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/observation-category-laboratory"
        }
      ]
    },
    {
      "type" : "Observation",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Observation"
      ],
      "mustSupport" : [
        "category",
        "code"
      ],
      "codeFilter" : [
        {
          "path" : "category",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/observation-category-laboratory"
        }
      ]
    },
    {
      "type" : "Observation",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Observation"
      ],
      "mustSupport" : [
        "category",
        "code"
      ],
      "codeFilter" : [
        {
          "path" : "category",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/observation-category-laboratory"
        }
      ]
    },
    {
      "type" : "Procedure",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Procedure"
      ],
      "mustSupport" : [
        "code",
        "status",
        "status.value"
      ],
      "codeFilter" : [
        {
          "path" : "code",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/hospice-procedure"
        }
      ]
    },
    {
      "type" : "ServiceRequest",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/ServiceRequest"
      ],
      "mustSupport" : [
        "code",
        "status",
        "status.value"
      ]
    },
    {
      "type" : "Encounter",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
      ],
      "mustSupport" : [
        "period",
        "period.start",
        "status",
        "status.value"
      ]
    },
    {
      "type" : "Observation",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Observation"
      ],
      "mustSupport" : [
        "category",
        "code"
      ],
      "codeFilter" : [
        {
          "path" : "category",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/observation-category-laboratory"
        }
      ]
    },
    {
      "type" : "Observation",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Observation"
      ],
      "mustSupport" : [
        "category",
        "code"
      ],
      "codeFilter" : [
        {
          "path" : "category",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/observation-category-laboratory"
        }
      ]
    },
    {
      "type" : "Observation",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Observation"
      ],
      "mustSupport" : [
        "category",
        "code"
      ],
      "codeFilter" : [
        {
          "path" : "category",
          "valueSet" : "http://fhir.org/guides/cdc/opioid-cds/ValueSet/observation-category-laboratory"
        }
      ]
    }
  ],
  "content" : [
    {
      "contentType" : "text/cql",
      "data" : "bGlicmFyeSBPcGlvaWRDRFNSRUMxMCB2ZXJzaW9uICcyMDIyLjEuMCcKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKaW5jbHVkZSBPcGlvaWRDRFNDb21tb24gdmVyc2lvbiAnMjAyMi4xLjAnIGNhbGxlZCBDb21tb24KaW5jbHVkZSBPcGlvaWRDRFNDb21tb25Db25maWcgdmVyc2lvbiAnMjAyMi4xLjAnIGNhbGxlZCBDb25maWcKaW5jbHVkZSBPcGlvaWRDRFNSb3V0aW5lcyB2ZXJzaW9uICcyMDIyLjEuMCcgY2FsbGVkIFJvdXRpbmVzCmluY2x1ZGUgT3Bpb2lkQ0RTUkVDMTBDb21tb24gdmVyc2lvbiAnMjAyMi4xLjAnIGNhbGxlZCBSZWMxMENvbW1vbgoKLyoKKiogIFJlY29tbWVuZGF0aW9uICMxMAoqKiAgICBXaGVuIHByZXNjcmliaW5nIG9waW9pZHMgZm9yIHN1YmFjdXRlIG9yIGNocm9uaWMgcGFpbiwgY2xpbmljaWFucyBzaG91bGQgY29uc2lkZXIgdGhlIGJlbmVmaXRzIAoqKiAgICBhbmQgcmlza3Mgb2YgdG94aWNvbG9neSB0ZXN0aW5nIHRvIGFzc2VzcyBmb3IgcHJlc2NyaWJlZCBtZWRpY2F0aW9ucyBhcyB3ZWxsIGFzIG90aGVyIHByZXNjcmliZWQgCioqICAgIGFuZCBub25wcmVzY3JpYmVkIGNvbnRyb2xsZWQgc3Vic3RhbmNlcyAocmVjb21tZW5kYXRpb24gY2F0ZWdvcnk6IEI7IGV2aWRlbmNlIHR5cGU6IDQpLgoqKgoqKiAgV2hlbgoqKiAgICBQcm92aWRlciBpcyBwcmVzY3JpYmluZyBhbiBvcGlvaWQgYW5hbGdlc2ljIHdpdGggYW1idWxhdG9yeSBtaXN1c2UgcG90ZW50aWFsIGluIHRoZSBvdXRwYXRpZW50IHNldHRpbmc6CioqICAgIFByZXNjcmlwdGlvbiBpcyBmb3IgdHJlYXRpbmcgc3ViYWN1dGUgYW5kL29yIGNocm9uaWMgcGFpbi4KKiogICAgT3Bpb2lkIHJldmlldyBpcyB1c2VmdWwgZm9yIHRoaXMgcGF0aWVudDoKKiogICAgICBQYXRpZW50IGlzIDE4IG9yIG92ZXIKKiogICAgICBQYXRpZW50IGRvZXMgbm90IGhhdmUgZXZpZGVuY2Ugb2Ygc2lja2xlIGNlbGwgZGlzZWFzZQoqKiAgICAgIFBhdGllbnQgZG9lcyBub3QgaGF2ZSBmaW5kaW5ncyBpbmRpY2F0aW5nIGxpbWl0ZWQgbGlmZSBleHBlY3RhbmN5CioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIG9yZGVycyBmb3IgdGhlcmFwaWVzIGluZGljYXRpbmcgZW5kIG9mIGxpZmUgY2FyZQoqKiAgICAgIFBhdGllbnQgaXMgbm90IHVuZGVyZ29pbmcgYWN0aXZlIGNhbmNlciB0cmVhdG1lbnQ6CioqICAgICAgICBQYXRpZW50IGhhcyBoYWQgYXQgbGVhc3QgMiBvZmZpY2UgdmlzaXRzIHdpdGhpbiB0aGUgcGFzdCAxMiBtb250aHMgd2l0aCBhbiBvbmNvbG9neSBzcGVjaWFsaXN0IHByZXNlbnQsIG9yCioqICAgICAgICBQYXRpZW50IGhhcyBoYWQgYXQgbGVhc3QgMiBvZmZpY2UgdmlzaXRzIHdpdGhpbiB0aGUgcGFzdCAxMiBtb250aHMgd2l0aCBhIENEQyBtYWxpZ25hbnQgY2FuY2VyIGNvbmRpdGlvbiBkaWFnbm9zaXMKKiogICAgICBQYXRpZW50IGRvZXMgbm90IGhhdmUgY29uZGl0aW9ucyBsaWtlbHkgdGVybWluYWwgZm9yIG9waW9pZCBwcmVzY3JpYmluZyBwcmVzZW50CioqICAgIE5vbm9waW9pZCBkcnVnIHVyaW5lIHNjcmVlbmluZyBoYXMgbm90IGJlZW4gcGVyZm9ybWVkIGluIGxhc3QgMTIgbW9udGhzIG9yCioqICAgIE9waW9pZCBkcnVnIHVyaW5lIHNjcmVlbmluZyBoYXMgbm90IGJlZW4gcGVyZm9ybWVkIGluIGxhc3QgMTIgbW9udGhzCioqICBUaGVuCioqICAgIENvbnNpZGVyIHRoZSBiZW5lZml0cyBhbmQgcmlza3Mgb2YgY29uZHVjdGluZyBhIHVyaW5lIHRveGljb2xvZ3kgc2NyZWVuOgoqKiAgICAgIERvY3VtZW50IC0gT3JkZXIgdG94aWNvbG9neSBzY3JlZW4KKiogICAgICBEb2N1bWVudCByaXNrcyBvdXR3ZWlnaCBiZW5lZml0cwoqKiAgICAgIFNub296ZSAtIE4vQSBzZWUgY29tbWVudCwgc25vb3plIDMgbW9udGhzCioqICBXaGVuCioqICAgIFByb3ZpZGVyIGlzIHByZXNjcmliaW5nIGFuIG9waW9pZCBhbmFsZ2VzaWMgd2l0aCBhbWJ1bGF0b3J5IG1pc3VzZSBwb3RlbnRpYWwgaW4gdGhlIG91dHBhdGllbnQgc2V0dGluZzoKKiogICAgUHJlc2NyaXB0aW9uIGlzIGZvciB0cmVhdGluZyBzdWJhY3V0ZSBhbmQvb3IgY2hyb25pYyBwYWluLgoqKiAgICBPcGlvaWQgcmV2aWV3IGlzIHVzZWZ1bCBmb3IgdGhpcyBwYXRpZW50OgoqKiAgICAgIFBhdGllbnQgaXMgMTggb3Igb3ZlcgoqKiAgICAgIFBhdGllbnQgZG9lcyBub3QgaGF2ZSBldmlkZW5jZSBvZiBzaWNrbGUgY2VsbCBkaXNlYXNlCioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIGZpbmRpbmdzIGluZGljYXRpbmcgbGltaXRlZCBsaWZlIGV4cGVjdGFuY3kKKiogICAgICBQYXRpZW50IGRvZXMgbm90IGhhdmUgb3JkZXJzIGZvciB0aGVyYXBpZXMgaW5kaWNhdGluZyBlbmQgb2YgbGlmZSBjYXJlCioqICAgICAgUGF0aWVudCBpcyBub3QgdW5kZXJnb2luZyBhY3RpdmUgY2FuY2VyIHRyZWF0bWVudDoKKiogICAgICAgIFBhdGllbnQgaGFzIGhhZCBhdCBsZWFzdCAyIG9mZmljZSB2aXNpdHMgd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyB3aXRoIGFuIG9uY29sb2d5IHNwZWNpYWxpc3QgcHJlc2VudCwgb3IKKiogICAgICAgIFBhdGllbnQgaGFzIGhhZCBhdCBsZWFzdCAyIG9mZmljZSB2aXNpdHMgd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyB3aXRoIGEgQ0RDIG1hbGlnbmFudCBjYW5jZXIgY29uZGl0aW9uIGRpYWdub3NpcwoqKiAgICAgIFBhdGllbnQgZG9lcyBub3QgaGF2ZSBjb25kaXRpb25zIGxpa2VseSB0ZXJtaW5hbCBmb3Igb3Bpb2lkIHByZXNjcmliaW5nIHByZXNlbnQKKiogICAgTm9ub3Bpb2lkIGRydWcgdXJpbmUgc2NyZWVuaW5nIGhhcyBiZWVuIHBlcmZvcm1lZCBpbiBsYXN0IDEyIG1vbnRocyBhbmQKKiogICAgT3Bpb2lkIGRydWcgdXJpbmUgc2NyZWVuaW5nIGhhcyBiZWVuIHBlcmZvcm1lZCBpbiBsYXN0IDEyIG1vbnRocyBhbmQKKiogICAgUG9zaXRpdmUgcmVzdWx0IGZvciBzeW50aGV0aWMgb3Bpb2lkIGluIHRoZSBwYXN0IHllYXIgYW5kIG5vdCBjdXJyZW50bHkgcHJlc2NyaWJlZCBzeW50aGV0aWMgb3Bpb2lkIG9yCioqICAgIFBvc2l0aXZlIHJlc3VsdCBmb3IgcGhlbmN5Y2xpZGluZShQQ1ApIGluIHRoZSBwYXN0IHllYXIgb3IKKiogICAgUG9zaXRpdmUgcmVzdWx0IGZvciBmZW50YW55bCBpbiB0aGUgcGFzdCB5ZWFyIGFuZCBub3QgY3VycmVudGx5IHByZXNjcmliZWQgZmVudGFueWwgb3IKKiogICAgUG9zaXRpdmUgcmVzdWx0IGZvciBjb2NhaW5lIGluIHRoZSBwYXN0IHllYXIgb3IKKiogICAgUG9zaXRpdmUgcmVzdWx0IGZvciBhbXBoZXRhbWluZSBpbiB0aGUgcGFzdCB5ZWFyIGFuZCBub3QgY3VycmVudGx5IHByZXNjcmliZWQgYW1waGV0YW1pbmUgb3IKKiogICAgUG9zaXRpdmUgcmVzdWx0IGZvciB0ZXRyYWh5ZHJvY2FubmFiaW5vbCAoVEhDKSBpbiB0aGUgcGFzdCB5ZWFyIGFuZCBub3QgY3VycmVudGx5IHByZXNjcmliZWQgdGV0cmFoeWRyb2Nhbm5hYmlub2wgKFRIQykgb3IKKiogICAgUG9zaXRpdmUgcmVzdWx0IGZvciBvcGlhdGUgaW4gdGhlIHBhc3QgeWVhciBhbmQgbm90IGN1cnJlbnRseSBwcmVzY3JpYmVkIG5hdHVyYWwgb3BpYXRlIG9yCioqICAgIFBvc2l0aXZlIHJlc3VsdCBmb3IgYWxjb2hvbCBpbiB0aGUgcGFzdCB5ZWFyIG9yCioqICAgIFBvc2l0aXZlIHJlc3VsdCBmb3IgbWV0aGFkb25lIGluIHRoZSBwYXN0IHllYXIgYW5kIG5vdCBjdXJyZW50bHkgcHJlc2NyaWJlZCBtZXRoYWRvbmUKKiogIFRoZW4KKiogICAgUGF0aWVudCBtYXkgaGF2ZSB1bmV4cGVjdGVkIHRveGljb2xvZ3kgdGVzdCByZXN1bHRzOgoqKiAgICAgIERvY3VtZW50IC0gV2lsbCByZXBlYXQgdXJpbmUgZHJ1ZyBzY3JlZW5pbmcgbW9yZSBmcmVxdWVudGx5CioqICAgICAgRG9jdW1lbnQgLSBXaWxsIGFzc2VzcyBwYXRpZW50IGZvciBzdWJzdGFuY2UgdXNlIGRpc29yZGVyCioqICAgICAgU25vb3plIC0gUGF0aWVudCdzIHRlc3QgcmVzdWx0cyB3ZXJlIGV4cGVjdGVkLCBzbm9vemUgZm9yIDMgbW9udGhzCioqICAgICAgU25vb3plIC0gTi9BIHNub296ZSBmb3IgMyBtb250aHMKKioKKi8KCi8vIE1FVEE6IFBsYW4gRGVmaW5pdGlvbjogaHR0cDovL2ZoaXIub3JnL2d1aWRlcy9jZGMvb3Bpb2lkLWNkcy1yNC9QbGFuRGVmaW5pdGlvbi9vcGlvaWQtY2RzLTEwCgpwYXJhbWV0ZXIgQ29udGV4dFByZXNjcmlwdGlvbnMgTGlzdDxNZWRpY2F0aW9uUmVxdWVzdD4KCmNvbnRleHQgUGF0aWVudAoKZGVmaW5lICJTdWJhY3V0ZSBvciBDaHJvbmljIFBhaW4gT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbCBQcmVzY3JpcHRpb25zIjoKICAoIENvbW1vbi4iSXMgT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbD8iKCBDb250ZXh0UHJlc2NyaXB0aW9ucyApICkgQW1idWxhdG9yeU9waW9pZFByZXNjcmlwdGlvbgogICAgd2hlcmUgUm91dGluZXMuIklzIFN1YmFjdXRlIG9yIENocm9uaWMgUGFpbiBQcmVzY3JpcHRpb24/IiggQW1idWxhdG9yeU9waW9pZFByZXNjcmlwdGlvbiApCgpkZWZpbmUgIlBhdGllbnQgSXMgQmVpbmcgUHJlc2NyaWJlZCBPcGlvaWQgQW5hbGdlc2ljIHdpdGggQW1idWxhdG9yeSBNaXN1c2UgUG90ZW50aWFsIjoKICBleGlzdHMoICJTdWJhY3V0ZSBvciBDaHJvbmljIFBhaW4gT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbCBQcmVzY3JpcHRpb25zIiApCgpkZWZpbmUgIklzIFBlcmZvcm0gRHJ1ZyBTY3JlZW4gUmVjb21tZW5kYXRpb24gQXBwbGljYWJsZT8iOgogICJQYXRpZW50IElzIEJlaW5nIFByZXNjcmliZWQgT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbCIKICAgIGFuZCBSZWMxMENvbW1vbi4iSW5jbHVzaW9uIENyaXRlcmlhIgogICAgYW5kIG5vdCBSZWMxMENvbW1vbi4iRXhjbHVzaW9uIENyaXRlcmlhIgoKZGVmaW5lICJBcHBsaWNhYmxlIEJlY2F1c2Ugb2YgUG9zaXRpdmUgQ29jYWluZSBvciBQQ1Agb3IgT3BpYXRlcyI6CiAgUmVjMTBDb21tb24uIkFwcGxpY2FibGUgQmVjYXVzZSBvZiBQb3NpdGl2ZSBDb2NhaW5lIG9yIFBDUCBvciBPcGlhdGVzIgoKZGVmaW5lICJEZXRhaWwiOgogIFJlYzEwQ29tbW9uLiJHZXQgRGV0YWlsIiAoIklzIFBlcmZvcm0gRHJ1ZyBTY3JlZW4gUmVjb21tZW5kYXRpb24gQXBwbGljYWJsZT8iKQoKZGVmaW5lICJJbmRpY2F0b3IiOgogIFJlYzEwQ29tbW9uLiJJbmRpY2F0b3IiCgpkZWZpbmUgIlN1bW1hcnkiOgogIFJlYzEwQ29tbW9uLiJHZXQgU3VtbWFyeSIgKCJJcyBQZXJmb3JtIERydWcgU2NyZWVuIFJlY29tbWVuZGF0aW9uIEFwcGxpY2FibGU/IikK"
    },
    {
      "contentType" : "application/elm+xml",
      "data" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JWZXJzaW9uPSIyLjEuMCIgdHJhbnNsYXRvck9wdGlvbnM9IkVuYWJsZUFubm90YXRpb25zLEVuYWJsZUxvY2F0b3JzLERpc2FibGVMaXN0RGVtb3Rpb24sRGlzYWJsZUxpc3RQcm9tb3Rpb24iIHhzaTp0eXBlPSJhOkNxbFRvRWxtSW5mbyIvPgogICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgPGE6cyByPSI0NCI+CiAgICAgICAgIDxhOnM+bGlicmFyeSBPcGlvaWRDRFNSRUMxMCB2ZXJzaW9uICcyMDIyLjEuMCc8L2E6cz4KICAgICAgPC9hOnM+CiAgIDwvYW5ub3RhdGlvbj4KICAgPGlkZW50aWZpZXIgaWQ9Ik9waW9pZENEU1JFQzEwIiBzeXN0ZW09Imh0dHA6Ly9maGlyLm9yZy9ndWlkZXMvY2RjL29waW9pZC1jZHMiIHZlcnNpb249IjIwMjIuMS4wIi8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIi8+CiAgICAgIDxkZWYgbG9jYWxJZD0iMSIgbG9jYXRvcj0iMzoxLTM6MjYiIGxvY2FsSWRlbnRpZmllcj0iRkhJUiIgdXJpPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB2ZXJzaW9uPSI0LjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjEiPgogICAgICAgICAgICAgICA8YTpzPnVzaW5nIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVI8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC91c2luZ3M+CiAgIDxpbmNsdWRlcz4KICAgICAgPGRlZiBsb2NhbElkPSIyIiBsb2NhdG9yPSI1OjEtNTo1NCIgbG9jYWxJZGVudGlmaWVyPSJGSElSSGVscGVycyIgcGF0aD0iaHR0cDovL2ZoaXIub3JnL2d1aWRlcy9jZGMvb3Bpb2lkLWNkcy9GSElSSGVscGVycyIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMScgY2FsbGVkIEZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjMiIGxvY2F0b3I9IjY6MS02OjU2IiBsb2NhbElkZW50aWZpZXI9IkNvbW1vbiIgcGF0aD0iaHR0cDovL2ZoaXIub3JnL2d1aWRlcy9jZGMvb3Bpb2lkLWNkcy9PcGlvaWRDRFNDb21tb24iIHZlcnNpb249IjIwMjIuMS4wIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMyI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5PcGlvaWRDRFNDb21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzIwMjIuMS4wJyBjYWxsZWQgQ29tbW9uPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjQiIGxvY2F0b3I9Ijc6MS03OjYyIiBsb2NhbElkZW50aWZpZXI9IkNvbmZpZyIgcGF0aD0iaHR0cDovL2ZoaXIub3JnL2d1aWRlcy9jZGMvb3Bpb2lkLWNkcy9PcGlvaWRDRFNDb21tb25Db25maWciIHZlcnNpb249IjIwMjIuMS4wIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5PcGlvaWRDRFNDb21tb25Db25maWc8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzIwMjIuMS4wJyBjYWxsZWQgQ29uZmlnPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjUiIGxvY2F0b3I9Ijg6MS04OjYwIiBsb2NhbElkZW50aWZpZXI9IlJvdXRpbmVzIiBwYXRoPSJodHRwOi8vZmhpci5vcmcvZ3VpZGVzL2NkYy9vcGlvaWQtY2RzL09waW9pZENEU1JvdXRpbmVzIiB2ZXJzaW9uPSIyMDIyLjEuMCI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjUiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+T3Bpb2lkQ0RTUm91dGluZXM8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzIwMjIuMS4wJyBjYWxsZWQgUm91dGluZXM8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNiIgbG9jYXRvcj0iOToxLTk6NjYiIGxvY2FsSWRlbnRpZmllcj0iUmVjMTBDb21tb24iIHBhdGg9Imh0dHA6Ly9maGlyLm9yZy9ndWlkZXMvY2RjL29waW9pZC1jZHMvT3Bpb2lkQ0RTUkVDMTBDb21tb24iIHZlcnNpb249IjIwMjIuMS4wIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNiI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5PcGlvaWRDRFNSRUMxMENvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnMjAyMi4xLjAnIGNhbGxlZCBSZWMxMENvbW1vbjwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC9pbmNsdWRlcz4KICAgPHBhcmFtZXRlcnM+CiAgICAgIDxkZWYgbG9jYWxJZD0iOSIgbG9jYXRvcj0iNzA6MS03MDo1NCIgbmFtZT0iQ29udGV4dFByZXNjcmlwdGlvbnMiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI5Ij4KICAgICAgICAgICAgICAgPGE6cz4vKgoqKiAgUmVjb21tZW5kYXRpb24gIzEwCioqICAgIFdoZW4gcHJlc2NyaWJpbmcgb3Bpb2lkcyBmb3Igc3ViYWN1dGUgb3IgY2hyb25pYyBwYWluLCBjbGluaWNpYW5zIHNob3VsZCBjb25zaWRlciB0aGUgYmVuZWZpdHMgCioqICAgIGFuZCByaXNrcyBvZiB0b3hpY29sb2d5IHRlc3RpbmcgdG8gYXNzZXNzIGZvciBwcmVzY3JpYmVkIG1lZGljYXRpb25zIGFzIHdlbGwgYXMgb3RoZXIgcHJlc2NyaWJlZCAKKiogICAgYW5kIG5vbnByZXNjcmliZWQgY29udHJvbGxlZCBzdWJzdGFuY2VzIChyZWNvbW1lbmRhdGlvbiBjYXRlZ29yeTogQjsgZXZpZGVuY2UgdHlwZTogNCkuCioqCioqICBXaGVuCioqICAgIFByb3ZpZGVyIGlzIHByZXNjcmliaW5nIGFuIG9waW9pZCBhbmFsZ2VzaWMgd2l0aCBhbWJ1bGF0b3J5IG1pc3VzZSBwb3RlbnRpYWwgaW4gdGhlIG91dHBhdGllbnQgc2V0dGluZzoKKiogICAgUHJlc2NyaXB0aW9uIGlzIGZvciB0cmVhdGluZyBzdWJhY3V0ZSBhbmQvb3IgY2hyb25pYyBwYWluLgoqKiAgICBPcGlvaWQgcmV2aWV3IGlzIHVzZWZ1bCBmb3IgdGhpcyBwYXRpZW50OgoqKiAgICAgIFBhdGllbnQgaXMgMTggb3Igb3ZlcgoqKiAgICAgIFBhdGllbnQgZG9lcyBub3QgaGF2ZSBldmlkZW5jZSBvZiBzaWNrbGUgY2VsbCBkaXNlYXNlCioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIGZpbmRpbmdzIGluZGljYXRpbmcgbGltaXRlZCBsaWZlIGV4cGVjdGFuY3kKKiogICAgICBQYXRpZW50IGRvZXMgbm90IGhhdmUgb3JkZXJzIGZvciB0aGVyYXBpZXMgaW5kaWNhdGluZyBlbmQgb2YgbGlmZSBjYXJlCioqICAgICAgUGF0aWVudCBpcyBub3QgdW5kZXJnb2luZyBhY3RpdmUgY2FuY2VyIHRyZWF0bWVudDoKKiogICAgICAgIFBhdGllbnQgaGFzIGhhZCBhdCBsZWFzdCAyIG9mZmljZSB2aXNpdHMgd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyB3aXRoIGFuIG9uY29sb2d5IHNwZWNpYWxpc3QgcHJlc2VudCwgb3IKKiogICAgICAgIFBhdGllbnQgaGFzIGhhZCBhdCBsZWFzdCAyIG9mZmljZSB2aXNpdHMgd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyB3aXRoIGEgQ0RDIG1hbGlnbmFudCBjYW5jZXIgY29uZGl0aW9uIGRpYWdub3NpcwoqKiAgICAgIFBhdGllbnQgZG9lcyBub3QgaGF2ZSBjb25kaXRpb25zIGxpa2VseSB0ZXJtaW5hbCBmb3Igb3Bpb2lkIHByZXNjcmliaW5nIHByZXNlbnQKKiogICAgTm9ub3Bpb2lkIGRydWcgdXJpbmUgc2NyZWVuaW5nIGhhcyBub3QgYmVlbiBwZXJmb3JtZWQgaW4gbGFzdCAxMiBtb250aHMgb3IKKiogICAgT3Bpb2lkIGRydWcgdXJpbmUgc2NyZWVuaW5nIGhhcyBub3QgYmVlbiBwZXJmb3JtZWQgaW4gbGFzdCAxMiBtb250aHMKKiogIFRoZW4KKiogICAgQ29uc2lkZXIgdGhlIGJlbmVmaXRzIGFuZCByaXNrcyBvZiBjb25kdWN0aW5nIGEgdXJpbmUgdG94aWNvbG9neSBzY3JlZW46CioqICAgICAgRG9jdW1lbnQgLSBPcmRlciB0b3hpY29sb2d5IHNjcmVlbgoqKiAgICAgIERvY3VtZW50IHJpc2tzIG91dHdlaWdoIGJlbmVmaXRzCioqICAgICAgU25vb3plIC0gTi9BIHNlZSBjb21tZW50LCBzbm9vemUgMyBtb250aHMKKiogIFdoZW4KKiogICAgUHJvdmlkZXIgaXMgcHJlc2NyaWJpbmcgYW4gb3Bpb2lkIGFuYWxnZXNpYyB3aXRoIGFtYnVsYXRvcnkgbWlzdXNlIHBvdGVudGlhbCBpbiB0aGUgb3V0cGF0aWVudCBzZXR0aW5nOgoqKiAgICBQcmVzY3JpcHRpb24gaXMgZm9yIHRyZWF0aW5nIHN1YmFjdXRlIGFuZC9vciBjaHJvbmljIHBhaW4uCioqICAgIE9waW9pZCByZXZpZXcgaXMgdXNlZnVsIGZvciB0aGlzIHBhdGllbnQ6CioqICAgICAgUGF0aWVudCBpcyAxOCBvciBvdmVyCioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIGV2aWRlbmNlIG9mIHNpY2tsZSBjZWxsIGRpc2Vhc2UKKiogICAgICBQYXRpZW50IGRvZXMgbm90IGhhdmUgZmluZGluZ3MgaW5kaWNhdGluZyBsaW1pdGVkIGxpZmUgZXhwZWN0YW5jeQoqKiAgICAgIFBhdGllbnQgZG9lcyBub3QgaGF2ZSBvcmRlcnMgZm9yIHRoZXJhcGllcyBpbmRpY2F0aW5nIGVuZCBvZiBsaWZlIGNhcmUKKiogICAgICBQYXRpZW50IGlzIG5vdCB1bmRlcmdvaW5nIGFjdGl2ZSBjYW5jZXIgdHJlYXRtZW50OgoqKiAgICAgICAgUGF0aWVudCBoYXMgaGFkIGF0IGxlYXN0IDIgb2ZmaWNlIHZpc2l0cyB3aXRoaW4gdGhlIHBhc3QgMTIgbW9udGhzIHdpdGggYW4gb25jb2xvZ3kgc3BlY2lhbGlzdCBwcmVzZW50LCBvcgoqKiAgICAgICAgUGF0aWVudCBoYXMgaGFkIGF0IGxlYXN0IDIgb2ZmaWNlIHZpc2l0cyB3aXRoaW4gdGhlIHBhc3QgMTIgbW9udGhzIHdpdGggYSBDREMgbWFsaWduYW50IGNhbmNlciBjb25kaXRpb24gZGlhZ25vc2lzCioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIGNvbmRpdGlvbnMgbGlrZWx5IHRlcm1pbmFsIGZvciBvcGlvaWQgcHJlc2NyaWJpbmcgcHJlc2VudAoqKiAgICBOb25vcGlvaWQgZHJ1ZyB1cmluZSBzY3JlZW5pbmcgaGFzIGJlZW4gcGVyZm9ybWVkIGluIGxhc3QgMTIgbW9udGhzIGFuZAoqKiAgICBPcGlvaWQgZHJ1ZyB1cmluZSBzY3JlZW5pbmcgaGFzIGJlZW4gcGVyZm9ybWVkIGluIGxhc3QgMTIgbW9udGhzIGFuZAoqKiAgICBQb3NpdGl2ZSByZXN1bHQgZm9yIHN5bnRoZXRpYyBvcGlvaWQgaW4gdGhlIHBhc3QgeWVhciBhbmQgbm90IGN1cnJlbnRseSBwcmVzY3JpYmVkIHN5bnRoZXRpYyBvcGlvaWQgb3IKKiogICAgUG9zaXRpdmUgcmVzdWx0IGZvciBwaGVuY3ljbGlkaW5lKFBDUCkgaW4gdGhlIHBhc3QgeWVhciBvcgoqKiAgICBQb3NpdGl2ZSByZXN1bHQgZm9yIGZlbnRhbnlsIGluIHRoZSBwYXN0IHllYXIgYW5kIG5vdCBjdXJyZW50bHkgcHJlc2NyaWJlZCBmZW50YW55bCBvcgoqKiAgICBQb3NpdGl2ZSByZXN1bHQgZm9yIGNvY2FpbmUgaW4gdGhlIHBhc3QgeWVhciBvcgoqKiAgICBQb3NpdGl2ZSByZXN1bHQgZm9yIGFtcGhldGFtaW5lIGluIHRoZSBwYXN0IHllYXIgYW5kIG5vdCBjdXJyZW50bHkgcHJlc2NyaWJlZCBhbXBoZXRhbWluZSBvcgoqKiAgICBQb3NpdGl2ZSByZXN1bHQgZm9yIHRldHJhaHlkcm9jYW5uYWJpbm9sIChUSEMpIGluIHRoZSBwYXN0IHllYXIgYW5kIG5vdCBjdXJyZW50bHkgcHJlc2NyaWJlZCB0ZXRyYWh5ZHJvY2FubmFiaW5vbCAoVEhDKSBvcgoqKiAgICBQb3NpdGl2ZSByZXN1bHQgZm9yIG9waWF0ZSBpbiB0aGUgcGFzdCB5ZWFyIGFuZCBub3QgY3VycmVudGx5IHByZXNjcmliZWQgbmF0dXJhbCBvcGlhdGUgb3IKKiogICAgUG9zaXRpdmUgcmVzdWx0IGZvciBhbGNvaG9sIGluIHRoZSBwYXN0IHllYXIgb3IKKiogICAgUG9zaXRpdmUgcmVzdWx0IGZvciBtZXRoYWRvbmUgaW4gdGhlIHBhc3QgeWVhciBhbmQgbm90IGN1cnJlbnRseSBwcmVzY3JpYmVkIG1ldGhhZG9uZQoqKiAgVGhlbgoqKiAgICBQYXRpZW50IG1heSBoYXZlIHVuZXhwZWN0ZWQgdG94aWNvbG9neSB0ZXN0IHJlc3VsdHM6CioqICAgICAgRG9jdW1lbnQgLSBXaWxsIHJlcGVhdCB1cmluZSBkcnVnIHNjcmVlbmluZyBtb3JlIGZyZXF1ZW50bHkKKiogICAgICBEb2N1bWVudCAtIFdpbGwgYXNzZXNzIHBhdGllbnQgZm9yIHN1YnN0YW5jZSB1c2UgZGlzb3JkZXIKKiogICAgICBTbm9vemUgLSBQYXRpZW50J3MgdGVzdCByZXN1bHRzIHdlcmUgZXhwZWN0ZWQsIHNub296ZSBmb3IgMyBtb250aHMKKiogICAgICBTbm9vemUgLSBOL0Egc25vb3plIGZvciAzIG1vbnRocwoqKgoqLwoKLy8gTUVUQTogUGxhbiBEZWZpbml0aW9uOiBodHRwOi8vZmhpci5vcmcvZ3VpZGVzL2NkYy9vcGlvaWQtY2RzLXI0L1BsYW5EZWZpbml0aW9uL29waW9pZC1jZHMtMTBwYXJhbWV0ZXIgQ29udGV4dFByZXNjcmlwdGlvbnMgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iOCI+CiAgICAgICAgICAgICAgICAgIDxhOnM+TGlzdCZsdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI3Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5NZWRpY2F0aW9uUmVxdWVzdDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4+PC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8cGFyYW1ldGVyVHlwZVNwZWNpZmllciBsb2NhbElkPSI4IiBsb2NhdG9yPSI3MDozMi03MDo1NCIgeHNpOnR5cGU9Ikxpc3RUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgPGVsZW1lbnRUeXBlIGxvY2FsSWQ9IjciIGxvY2F0b3I9IjcwOjM3LTcwOjUzIiBuYW1lPSJmaGlyOk1lZGljYXRpb25SZXF1ZXN0IiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgIDwvcGFyYW1ldGVyVHlwZVNwZWNpZmllcj4KICAgICAgPC9kZWY+CiAgIDwvcGFyYW1ldGVycz4KICAgPGNvbnRleHRzPgogICAgICA8ZGVmIGxvY2F0b3I9IjcyOjEtNzI6MTUiIG5hbWU9IlBhdGllbnQiLz4KICAgPC9jb250ZXh0cz4KICAgPHN0YXRlbWVudHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iNzI6MS03MjoxNSIgbmFtZT0iUGF0aWVudCIgY29udGV4dD0iUGF0aWVudCI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJTaW5nbGV0b25Gcm9tIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYXRvcj0iNzI6MS03MjoxNSIgZGF0YVR5cGU9ImZoaXI6UGF0aWVudCIgdGVtcGxhdGVJZD0iaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL1BhdGllbnQiIHhzaTp0eXBlPSJSZXRyaWV2ZSIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjE4IiBsb2NhdG9yPSI3NDoxLTc2Ojk0IiBuYW1lPSJTdWJhY3V0ZSBvciBDaHJvbmljIFBhaW4gT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbCBQcmVzY3JpcHRpb25zIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTgiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtTdWJhY3V0ZSBvciBDaHJvbmljIFBhaW4gT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbCBQcmVzY3JpcHRpb25zJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjE3Ij4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiggPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5Db21tb248L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtJcyBPcGlvaWQgQW5hbGdlc2ljIHdpdGggQW1idWxhdG9yeSBNaXN1c2UgUG90ZW50aWFsPyZxdW90OyggPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkNvbnRleHRQcmVzY3JpcHRpb25zPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiApPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gKTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gQW1idWxhdG9yeU9waW9pZFByZXNjcmlwdGlvbjwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIxNiI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+d2hlcmUgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTYiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5Sb3V0aW5lczwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0lzIFN1YmFjdXRlIG9yIENocm9uaWMgUGFpbiBQcmVzY3JpcHRpb24/JnF1b3Q7KCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+QW1idWxhdG9yeU9waW9pZFByZXNjcmlwdGlvbjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gKTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTciIGxvY2F0b3I9Ijc1OjMtNzY6OTQiIHhzaTp0eXBlPSJRdWVyeSI+CiAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iMTMiIGxvY2F0b3I9Ijc1OjMtNzU6MTIxIiBhbGlhcz0iQW1idWxhdG9yeU9waW9pZFByZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjEyIiBsb2NhdG9yPSI3NTozLTc1OjkyIiBuYW1lPSJJcyBPcGlvaWQgQW5hbGdlc2ljIHdpdGggQW1idWxhdG9yeSBNaXN1c2UgUG90ZW50aWFsPyIgbGlicmFyeU5hbWU9IkNvbW1vbiIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMTEiIGxvY2F0b3I9Ijc1OjY5LTc1Ojg4IiBuYW1lPSJDb250ZXh0UHJlc2NyaXB0aW9ucyIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICA8d2hlcmUgbG9jYWxJZD0iMTYiIGxvY2F0b3I9Ijc2OjUtNzY6OTQiIG5hbWU9IklzIFN1YmFjdXRlIG9yIENocm9uaWMgUGFpbiBQcmVzY3JpcHRpb24/IiBsaWJyYXJ5TmFtZT0iUm91dGluZXMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjE1IiBsb2NhdG9yPSI3Njo2NS03Njo5MiIgbmFtZT0iQW1idWxhdG9yeU9waW9pZFByZXNjcmlwdGlvbiIgeHNpOnR5cGU9IkFsaWFzUmVmIi8+CiAgICAgICAgICAgIDwvd2hlcmU+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjEiIGxvY2F0b3I9Ijc4OjEtNzk6MTAyIiBuYW1lPSJQYXRpZW50IElzIEJlaW5nIFByZXNjcmliZWQgT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbCIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIxIj4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7UGF0aWVudCBJcyBCZWluZyBQcmVzY3JpYmVkIE9waW9pZCBBbmFsZ2VzaWMgd2l0aCBBbWJ1bGF0b3J5IE1pc3VzZSBQb3RlbnRpYWwmcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjAiPgogICAgICAgICAgICAgICAgICA8YTpzPmV4aXN0czwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjE5Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4oIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtTdWJhY3V0ZSBvciBDaHJvbmljIFBhaW4gT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbCBQcmVzY3JpcHRpb25zJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiApPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjAiIGxvY2F0b3I9Ijc5OjMtNzk6MTAyIiB4c2k6dHlwZT0iRXhpc3RzIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMTkiIGxvY2F0b3I9Ijc5OjktNzk6MTAyIiBuYW1lPSJTdWJhY3V0ZSBvciBDaHJvbmljIFBhaW4gT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbCBQcmVzY3JpcHRpb25zIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjMwIiBsb2NhdG9yPSI4MToxLTg0OjQ0IiBuYW1lPSJJcyBQZXJmb3JtIERydWcgU2NyZWVuIFJlY29tbWVuZGF0aW9uIEFwcGxpY2FibGU/IiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMzAiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtJcyBQZXJmb3JtIERydWcgU2NyZWVuIFJlY29tbWVuZGF0aW9uIEFwcGxpY2FibGU/JnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjI5Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjIiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O1BhdGllbnQgSXMgQmVpbmcgUHJlc2NyaWJlZCBPcGlvaWQgQW5hbGdlc2ljIHdpdGggQW1idWxhdG9yeSBNaXN1c2UgUG90ZW50aWFsJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgYW5kIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+UmVjMTBDb21tb248L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtJbmNsdXNpb24gQ3JpdGVyaWEmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+bm90IDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+UmVjMTBDb21tb248L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtFeGNsdXNpb24gQ3JpdGVyaWEmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjI5IiBsb2NhdG9yPSI4MjozLTg0OjQ0IiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjUiIGxvY2F0b3I9IjgyOjMtODM6NDAiIHhzaTp0eXBlPSJBbmQiPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyMiIgbG9jYXRvcj0iODI6My04Mjo4MSIgbmFtZT0iUGF0aWVudCBJcyBCZWluZyBQcmVzY3JpYmVkIE9waW9pZCBBbmFsZ2VzaWMgd2l0aCBBbWJ1bGF0b3J5IE1pc3VzZSBQb3RlbnRpYWwiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI0IiBsb2NhdG9yPSI4Mzo5LTgzOjQwIiBuYW1lPSJJbmNsdXNpb24gQ3JpdGVyaWEiIGxpYnJhcnlOYW1lPSJSZWMxMENvbW1vbiIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyOCIgbG9jYXRvcj0iODQ6OS04NDo0NCIgeHNpOnR5cGU9Ik5vdCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI3IiBsb2NhdG9yPSI4NDoxMy04NDo0NCIgbmFtZT0iRXhjbHVzaW9uIENyaXRlcmlhIiBsaWJyYXJ5TmFtZT0iUmVjMTBDb21tb24iIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIzMyIgbG9jYXRvcj0iODY6MS04Nzo3MiIgbmFtZT0iQXBwbGljYWJsZSBCZWNhdXNlIG9mIFBvc2l0aXZlIENvY2FpbmUgb3IgUENQIG9yIE9waWF0ZXMiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzMyI+CiAgICAgICAgICAgICAgIDxhOnM+ZGVmaW5lICZxdW90O0FwcGxpY2FibGUgQmVjYXVzZSBvZiBQb3NpdGl2ZSBDb2NhaW5lIG9yIFBDUCBvciBPcGlhdGVzJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjMyIj4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+UmVjMTBDb21tb248L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjMyIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtBcHBsaWNhYmxlIEJlY2F1c2Ugb2YgUG9zaXRpdmUgQ29jYWluZSBvciBQQ1Agb3IgT3BpYXRlcyZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjMyIiBsb2NhdG9yPSI4NzozLTg3OjcyIiBuYW1lPSJBcHBsaWNhYmxlIEJlY2F1c2Ugb2YgUG9zaXRpdmUgQ29jYWluZSBvciBQQ1Agb3IgT3BpYXRlcyIgbGlicmFyeU5hbWU9IlJlYzEwQ29tbW9uIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIzNyIgbG9jYXRvcj0iODk6MS05MDo4MCIgbmFtZT0iRGV0YWlsIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMzciPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtEZXRhaWwmcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMzYiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM0Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5SZWMxMENvbW1vbjwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzYiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0dldCBEZXRhaWwmcXVvdDsgKDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjM1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtJcyBQZXJmb3JtIERydWcgU2NyZWVuIFJlY29tbWVuZGF0aW9uIEFwcGxpY2FibGU/JnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIzNiIgbG9jYXRvcj0iOTA6My05MDo4MCIgbmFtZT0iR2V0IERldGFpbCIgbGlicmFyeU5hbWU9IlJlYzEwQ29tbW9uIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzNSIgbG9jYXRvcj0iOTA6MjktOTA6NzkiIG5hbWU9IklzIFBlcmZvcm0gRHJ1ZyBTY3JlZW4gUmVjb21tZW5kYXRpb24gQXBwbGljYWJsZT8iIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNDAiIGxvY2F0b3I9IjkyOjEtOTM6MjUiIG5hbWU9IkluZGljYXRvciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjQwIj4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7SW5kaWNhdG9yJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjM5Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzOCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+UmVjMTBDb21tb248L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM5Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtJbmRpY2F0b3ImcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIzOSIgbG9jYXRvcj0iOTM6My05MzoyNSIgbmFtZT0iSW5kaWNhdG9yIiBsaWJyYXJ5TmFtZT0iUmVjMTBDb21tb24iIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjQ0IiBsb2NhdG9yPSI5NToxLTk2OjgxIiBuYW1lPSJTdW1tYXJ5IiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNDQiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtTdW1tYXJ5JnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjQzIj4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI0MSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+UmVjMTBDb21tb248L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjQzIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtHZXQgU3VtbWFyeSZxdW90OyAoPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDIiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0lzIFBlcmZvcm0gRHJ1ZyBTY3JlZW4gUmVjb21tZW5kYXRpb24gQXBwbGljYWJsZT8mcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+KTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjQzIiBsb2NhdG9yPSI5NjozLTk2OjgxIiBuYW1lPSJHZXQgU3VtbWFyeSIgbGlicmFyeU5hbWU9IlJlYzEwQ29tbW9uIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI0MiIgbG9jYXRvcj0iOTY6MzAtOTY6ODAiIG5hbWU9IklzIFBlcmZvcm0gRHJ1ZyBTY3JlZW4gUmVjb21tZW5kYXRpb24gQXBwbGljYWJsZT8iIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="
    },
    {
      "contentType" : "application/elm+json",
      "data" : "ewogICAibGlicmFyeSIgOiB7CiAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAidHJhbnNsYXRvclZlcnNpb24iIDogIjIuMS4wIiwKICAgICAgICAgInRyYW5zbGF0b3JPcHRpb25zIiA6ICJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiwKICAgICAgICAgInR5cGUiIDogIkNxbFRvRWxtSW5mbyIKICAgICAgfSwgewogICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgInIiIDogIjQ0IiwKICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIiLCJsaWJyYXJ5IE9waW9pZENEU1JFQzEwIHZlcnNpb24gJzIwMjIuMS4wJyIgXQogICAgICAgICAgICB9IF0KICAgICAgICAgfQogICAgICB9IF0sCiAgICAgICJpZGVudGlmaWVyIiA6IHsKICAgICAgICAgImlkIiA6ICJPcGlvaWRDRFNSRUMxMCIsCiAgICAgICAgICJzeXN0ZW0iIDogImh0dHA6Ly9maGlyLm9yZy9ndWlkZXMvY2RjL29waW9pZC1jZHMiLAogICAgICAgICAidmVyc2lvbiIgOiAiMjAyMi4xLjAiCiAgICAgIH0sCiAgICAgICJzY2hlbWFJZGVudGlmaWVyIiA6IHsKICAgICAgICAgImlkIiA6ICJ1cm46aGw3LW9yZzplbG0iLAogICAgICAgICAidmVyc2lvbiIgOiAicjEiCiAgICAgIH0sCiAgICAgICJ1c2luZ3MiIDogewogICAgICAgICAiZGVmIiA6IFsgewogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJTeXN0ZW0iLAogICAgICAgICAgICAidXJpIiA6ICJ1cm46aGw3LW9yZzplbG0tdHlwZXM6cjEiCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjEiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiMzoxLTM6MjYiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJGSElSIiwKICAgICAgICAgICAgInVyaSIgOiAiaHR0cDovL2hsNy5vcmcvZmhpciIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICI0LjAuMSIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjEiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsInVzaW5nICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiRkhJUiIgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIHZlcnNpb24gIiwiJzQuMC4xJyIgXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0KICAgICAgICAgfSBdCiAgICAgIH0sCiAgICAgICJpbmNsdWRlcyIgOiB7CiAgICAgICAgICJkZWYiIDogWyB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIyIiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjU6MS01OjU0IiwKICAgICAgICAgICAgImxvY2FsSWRlbnRpZmllciIgOiAiRkhJUkhlbHBlcnMiLAogICAgICAgICAgICAicGF0aCIgOiAiaHR0cDovL2ZoaXIub3JnL2d1aWRlcy9jZGMvb3Bpb2lkLWNkcy9GSElSSGVscGVycyIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICI0LjAuMSIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjIiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsImluY2x1ZGUgIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJGSElSSGVscGVycyIgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIHZlcnNpb24gIiwiJzQuMC4xJyIsIiBjYWxsZWQgIiwiRkhJUkhlbHBlcnMiIF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBdCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjMiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiNjoxLTY6NTYiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJDb21tb24iLAogICAgICAgICAgICAicGF0aCIgOiAiaHR0cDovL2ZoaXIub3JnL2d1aWRlcy9jZGMvb3Bpb2lkLWNkcy9PcGlvaWRDRFNDb21tb24iLAogICAgICAgICAgICAidmVyc2lvbiIgOiAiMjAyMi4xLjAiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICIzIiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIiLCJpbmNsdWRlICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiT3Bpb2lkQ0RTQ29tbW9uIiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgdmVyc2lvbiAiLCInMjAyMi4xLjAnIiwiIGNhbGxlZCAiLCJDb21tb24iIF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBdCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjQiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiNzoxLTc6NjIiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJDb25maWciLAogICAgICAgICAgICAicGF0aCIgOiAiaHR0cDovL2ZoaXIub3JnL2d1aWRlcy9jZGMvb3Bpb2lkLWNkcy9PcGlvaWRDRFNDb21tb25Db25maWciLAogICAgICAgICAgICAidmVyc2lvbiIgOiAiMjAyMi4xLjAiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICI0IiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIiLCJpbmNsdWRlICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiT3Bpb2lkQ0RTQ29tbW9uQ29uZmlnIiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgdmVyc2lvbiAiLCInMjAyMi4xLjAnIiwiIGNhbGxlZCAiLCJDb25maWciIF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBdCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjUiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiODoxLTg6NjAiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJSb3V0aW5lcyIsCiAgICAgICAgICAgICJwYXRoIiA6ICJodHRwOi8vZmhpci5vcmcvZ3VpZGVzL2NkYy9vcGlvaWQtY2RzL09waW9pZENEU1JvdXRpbmVzIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjIwMjIuMS4wIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiNSIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIiwiaW5jbHVkZSAiIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIk9waW9pZENEU1JvdXRpbmVzIiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgdmVyc2lvbiAiLCInMjAyMi4xLjAnIiwiIGNhbGxlZCAiLCJSb3V0aW5lcyIgXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiNiIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI5OjEtOTo2NiIsCiAgICAgICAgICAgICJsb2NhbElkZW50aWZpZXIiIDogIlJlYzEwQ29tbW9uIiwKICAgICAgICAgICAgInBhdGgiIDogImh0dHA6Ly9maGlyLm9yZy9ndWlkZXMvY2RjL29waW9pZC1jZHMvT3Bpb2lkQ0RTUkVDMTBDb21tb24iLAogICAgICAgICAgICAidmVyc2lvbiIgOiAiMjAyMi4xLjAiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICI2IiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIiLCJpbmNsdWRlICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiT3Bpb2lkQ0RTUkVDMTBDb21tb24iIF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiB2ZXJzaW9uICIsIicyMDIyLjEuMCciLCIgY2FsbGVkICIsIlJlYzEwQ29tbW9uIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgInBhcmFtZXRlcnMiIDogewogICAgICAgICAiZGVmIiA6IFsgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiOSIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3MDoxLTcwOjU0IiwKICAgICAgICAgICAgIm5hbWUiIDogIkNvbnRleHRQcmVzY3JpcHRpb25zIiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICI5IiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIvKlxuKiogIFJlY29tbWVuZGF0aW9uICMxMFxuKiogICAgV2hlbiBwcmVzY3JpYmluZyBvcGlvaWRzIGZvciBzdWJhY3V0ZSBvciBjaHJvbmljIHBhaW4sIGNsaW5pY2lhbnMgc2hvdWxkIGNvbnNpZGVyIHRoZSBiZW5lZml0cyBcbioqICAgIGFuZCByaXNrcyBvZiB0b3hpY29sb2d5IHRlc3RpbmcgdG8gYXNzZXNzIGZvciBwcmVzY3JpYmVkIG1lZGljYXRpb25zIGFzIHdlbGwgYXMgb3RoZXIgcHJlc2NyaWJlZCBcbioqICAgIGFuZCBub25wcmVzY3JpYmVkIGNvbnRyb2xsZWQgc3Vic3RhbmNlcyAocmVjb21tZW5kYXRpb24gY2F0ZWdvcnk6IEI7IGV2aWRlbmNlIHR5cGU6IDQpLlxuKipcbioqICBXaGVuXG4qKiAgICBQcm92aWRlciBpcyBwcmVzY3JpYmluZyBhbiBvcGlvaWQgYW5hbGdlc2ljIHdpdGggYW1idWxhdG9yeSBtaXN1c2UgcG90ZW50aWFsIGluIHRoZSBvdXRwYXRpZW50IHNldHRpbmc6XG4qKiAgICBQcmVzY3JpcHRpb24gaXMgZm9yIHRyZWF0aW5nIHN1YmFjdXRlIGFuZC9vciBjaHJvbmljIHBhaW4uXG4qKiAgICBPcGlvaWQgcmV2aWV3IGlzIHVzZWZ1bCBmb3IgdGhpcyBwYXRpZW50OlxuKiogICAgICBQYXRpZW50IGlzIDE4IG9yIG92ZXJcbioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIGV2aWRlbmNlIG9mIHNpY2tsZSBjZWxsIGRpc2Vhc2VcbioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIGZpbmRpbmdzIGluZGljYXRpbmcgbGltaXRlZCBsaWZlIGV4cGVjdGFuY3lcbioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIG9yZGVycyBmb3IgdGhlcmFwaWVzIGluZGljYXRpbmcgZW5kIG9mIGxpZmUgY2FyZVxuKiogICAgICBQYXRpZW50IGlzIG5vdCB1bmRlcmdvaW5nIGFjdGl2ZSBjYW5jZXIgdHJlYXRtZW50OlxuKiogICAgICAgIFBhdGllbnQgaGFzIGhhZCBhdCBsZWFzdCAyIG9mZmljZSB2aXNpdHMgd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyB3aXRoIGFuIG9uY29sb2d5IHNwZWNpYWxpc3QgcHJlc2VudCwgb3JcbioqICAgICAgICBQYXRpZW50IGhhcyBoYWQgYXQgbGVhc3QgMiBvZmZpY2UgdmlzaXRzIHdpdGhpbiB0aGUgcGFzdCAxMiBtb250aHMgd2l0aCBhIENEQyBtYWxpZ25hbnQgY2FuY2VyIGNvbmRpdGlvbiBkaWFnbm9zaXNcbioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIGNvbmRpdGlvbnMgbGlrZWx5IHRlcm1pbmFsIGZvciBvcGlvaWQgcHJlc2NyaWJpbmcgcHJlc2VudFxuKiogICAgTm9ub3Bpb2lkIGRydWcgdXJpbmUgc2NyZWVuaW5nIGhhcyBub3QgYmVlbiBwZXJmb3JtZWQgaW4gbGFzdCAxMiBtb250aHMgb3JcbioqICAgIE9waW9pZCBkcnVnIHVyaW5lIHNjcmVlbmluZyBoYXMgbm90IGJlZW4gcGVyZm9ybWVkIGluIGxhc3QgMTIgbW9udGhzXG4qKiAgVGhlblxuKiogICAgQ29uc2lkZXIgdGhlIGJlbmVmaXRzIGFuZCByaXNrcyBvZiBjb25kdWN0aW5nIGEgdXJpbmUgdG94aWNvbG9neSBzY3JlZW46XG4qKiAgICAgIERvY3VtZW50IC0gT3JkZXIgdG94aWNvbG9neSBzY3JlZW5cbioqICAgICAgRG9jdW1lbnQgcmlza3Mgb3V0d2VpZ2ggYmVuZWZpdHNcbioqICAgICAgU25vb3plIC0gTi9BIHNlZSBjb21tZW50LCBzbm9vemUgMyBtb250aHNcbioqICBXaGVuXG4qKiAgICBQcm92aWRlciBpcyBwcmVzY3JpYmluZyBhbiBvcGlvaWQgYW5hbGdlc2ljIHdpdGggYW1idWxhdG9yeSBtaXN1c2UgcG90ZW50aWFsIGluIHRoZSBvdXRwYXRpZW50IHNldHRpbmc6XG4qKiAgICBQcmVzY3JpcHRpb24gaXMgZm9yIHRyZWF0aW5nIHN1YmFjdXRlIGFuZC9vciBjaHJvbmljIHBhaW4uXG4qKiAgICBPcGlvaWQgcmV2aWV3IGlzIHVzZWZ1bCBmb3IgdGhpcyBwYXRpZW50OlxuKiogICAgICBQYXRpZW50IGlzIDE4IG9yIG92ZXJcbioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIGV2aWRlbmNlIG9mIHNpY2tsZSBjZWxsIGRpc2Vhc2VcbioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIGZpbmRpbmdzIGluZGljYXRpbmcgbGltaXRlZCBsaWZlIGV4cGVjdGFuY3lcbioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIG9yZGVycyBmb3IgdGhlcmFwaWVzIGluZGljYXRpbmcgZW5kIG9mIGxpZmUgY2FyZVxuKiogICAgICBQYXRpZW50IGlzIG5vdCB1bmRlcmdvaW5nIGFjdGl2ZSBjYW5jZXIgdHJlYXRtZW50OlxuKiogICAgICAgIFBhdGllbnQgaGFzIGhhZCBhdCBsZWFzdCAyIG9mZmljZSB2aXNpdHMgd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyB3aXRoIGFuIG9uY29sb2d5IHNwZWNpYWxpc3QgcHJlc2VudCwgb3JcbioqICAgICAgICBQYXRpZW50IGhhcyBoYWQgYXQgbGVhc3QgMiBvZmZpY2UgdmlzaXRzIHdpdGhpbiB0aGUgcGFzdCAxMiBtb250aHMgd2l0aCBhIENEQyBtYWxpZ25hbnQgY2FuY2VyIGNvbmRpdGlvbiBkaWFnbm9zaXNcbioqICAgICAgUGF0aWVudCBkb2VzIG5vdCBoYXZlIGNvbmRpdGlvbnMgbGlrZWx5IHRlcm1pbmFsIGZvciBvcGlvaWQgcHJlc2NyaWJpbmcgcHJlc2VudFxuKiogICAgTm9ub3Bpb2lkIGRydWcgdXJpbmUgc2NyZWVuaW5nIGhhcyBiZWVuIHBlcmZvcm1lZCBpbiBsYXN0IDEyIG1vbnRocyBhbmRcbioqICAgIE9waW9pZCBkcnVnIHVyaW5lIHNjcmVlbmluZyBoYXMgYmVlbiBwZXJmb3JtZWQgaW4gbGFzdCAxMiBtb250aHMgYW5kXG4qKiAgICBQb3NpdGl2ZSByZXN1bHQgZm9yIHN5bnRoZXRpYyBvcGlvaWQgaW4gdGhlIHBhc3QgeWVhciBhbmQgbm90IGN1cnJlbnRseSBwcmVzY3JpYmVkIHN5bnRoZXRpYyBvcGlvaWQgb3JcbioqICAgIFBvc2l0aXZlIHJlc3VsdCBmb3IgcGhlbmN5Y2xpZGluZShQQ1ApIGluIHRoZSBwYXN0IHllYXIgb3JcbioqICAgIFBvc2l0aXZlIHJlc3VsdCBmb3IgZmVudGFueWwgaW4gdGhlIHBhc3QgeWVhciBhbmQgbm90IGN1cnJlbnRseSBwcmVzY3JpYmVkIGZlbnRhbnlsIG9yXG4qKiAgICBQb3NpdGl2ZSByZXN1bHQgZm9yIGNvY2FpbmUgaW4gdGhlIHBhc3QgeWVhciBvclxuKiogICAgUG9zaXRpdmUgcmVzdWx0IGZvciBhbXBoZXRhbWluZSBpbiB0aGUgcGFzdCB5ZWFyIGFuZCBub3QgY3VycmVudGx5IHByZXNjcmliZWQgYW1waGV0YW1pbmUgb3JcbioqICAgIFBvc2l0aXZlIHJlc3VsdCBmb3IgdGV0cmFoeWRyb2Nhbm5hYmlub2wgKFRIQykgaW4gdGhlIHBhc3QgeWVhciBhbmQgbm90IGN1cnJlbnRseSBwcmVzY3JpYmVkIHRldHJhaHlkcm9jYW5uYWJpbm9sIChUSEMpIG9yXG4qKiAgICBQb3NpdGl2ZSByZXN1bHQgZm9yIG9waWF0ZSBpbiB0aGUgcGFzdCB5ZWFyIGFuZCBub3QgY3VycmVudGx5IHByZXNjcmliZWQgbmF0dXJhbCBvcGlhdGUgb3JcbioqICAgIFBvc2l0aXZlIHJlc3VsdCBmb3IgYWxjb2hvbCBpbiB0aGUgcGFzdCB5ZWFyIG9yXG4qKiAgICBQb3NpdGl2ZSByZXN1bHQgZm9yIG1ldGhhZG9uZSBpbiB0aGUgcGFzdCB5ZWFyIGFuZCBub3QgY3VycmVudGx5IHByZXNjcmliZWQgbWV0aGFkb25lXG4qKiAgVGhlblxuKiogICAgUGF0aWVudCBtYXkgaGF2ZSB1bmV4cGVjdGVkIHRveGljb2xvZ3kgdGVzdCByZXN1bHRzOlxuKiogICAgICBEb2N1bWVudCAtIFdpbGwgcmVwZWF0IHVyaW5lIGRydWcgc2NyZWVuaW5nIG1vcmUgZnJlcXVlbnRseVxuKiogICAgICBEb2N1bWVudCAtIFdpbGwgYXNzZXNzIHBhdGllbnQgZm9yIHN1YnN0YW5jZSB1c2UgZGlzb3JkZXJcbioqICAgICAgU25vb3plIC0gUGF0aWVudCdzIHRlc3QgcmVzdWx0cyB3ZXJlIGV4cGVjdGVkLCBzbm9vemUgZm9yIDMgbW9udGhzXG4qKiAgICAgIFNub296ZSAtIE4vQSBzbm9vemUgZm9yIDMgbW9udGhzXG4qKlxuKi9cblxuLy8gTUVUQTogUGxhbiBEZWZpbml0aW9uOiBodHRwOi8vZmhpci5vcmcvZ3VpZGVzL2NkYy9vcGlvaWQtY2RzLXI0L1BsYW5EZWZpbml0aW9uL29waW9pZC1jZHMtMTAiLCJwYXJhbWV0ZXIgIiwiQ29udGV4dFByZXNjcmlwdGlvbnMiLCIgIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjgiLAogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkxpc3Q8IiBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjciLAogICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIk1lZGljYXRpb25SZXF1ZXN0IiBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICI+IiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjgiLAogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNzA6MzItNzA6NTQiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiTGlzdFR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAgICAiZWxlbWVudFR5cGUiIDogewogICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiNyIsCiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3MDozNy03MDo1MyIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1NZWRpY2F0aW9uUmVxdWVzdCIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgImNvbnRleHRzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjcyOjEtNzI6MTUiLAogICAgICAgICAgICAibmFtZSIgOiAiUGF0aWVudCIKICAgICAgICAgfSBdCiAgICAgIH0sCiAgICAgICJzdGF0ZW1lbnRzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjcyOjEtNzI6MTUiLAogICAgICAgICAgICAibmFtZSIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAidHlwZSIgOiAiU2luZ2xldG9uRnJvbSIsCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjcyOjEtNzI6MTUiLAogICAgICAgICAgICAgICAgICAiZGF0YVR5cGUiIDogIntodHRwOi8vaGw3Lm9yZy9maGlyfVBhdGllbnQiLAogICAgICAgICAgICAgICAgICAidGVtcGxhdGVJZCIgOiAiaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL1BhdGllbnQiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiUmV0cmlldmUiCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIxOCIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3NDoxLTc2Ojk0IiwKICAgICAgICAgICAgIm5hbWUiIDogIlN1YmFjdXRlIG9yIENocm9uaWMgUGFpbiBPcGlvaWQgQW5hbGdlc2ljIHdpdGggQW1idWxhdG9yeSBNaXN1c2UgUG90ZW50aWFsIFByZXNjcmlwdGlvbnMiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMTgiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsImRlZmluZSAiLCJcIlN1YmFjdXRlIG9yIENocm9uaWMgUGFpbiBPcGlvaWQgQW5hbGdlc2ljIHdpdGggQW1idWxhdG9yeSBNaXN1c2UgUG90ZW50aWFsIFByZXNjcmlwdGlvbnNcIiIsIjpcbiAgIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjE3IiwKICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMTMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjEyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIoICIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIxMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMTAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkNvbW1vbiIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiLiIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIxMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiXCJJcyBPcGlvaWQgQW5hbGdlc2ljIHdpdGggQW1idWxhdG9yeSBNaXN1c2UgUG90ZW50aWFsP1wiIiwiKCAiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMTEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkNvbnRleHRQcmVzY3JpcHRpb25zIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgKSIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiApIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgIiwiQW1idWxhdG9yeU9waW9pZFByZXNjcmlwdGlvbiIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIlxuICAgICIgXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIxNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAid2hlcmUgIiBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjE2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIxNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiUm91dGluZXMiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIi4iIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMTYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIlwiSXMgU3ViYWN1dGUgb3IgQ2hyb25pYyBQYWluIFByZXNjcmlwdGlvbj9cIiIsIiggIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjE1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJBbWJ1bGF0b3J5T3Bpb2lkUHJlc2NyaXB0aW9uIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgKSIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIxNyIsCiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3NTozLTc2Ojk0IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIlF1ZXJ5IiwKICAgICAgICAgICAgICAgInNvdXJjZSIgOiBbIHsKICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjEzIiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjc1OjMtNzU6MTIxIiwKICAgICAgICAgICAgICAgICAgImFsaWFzIiA6ICJBbWJ1bGF0b3J5T3Bpb2lkUHJlc2NyaXB0aW9uIiwKICAgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMTIiLAogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNzU6My03NTo5MiIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJJcyBPcGlvaWQgQW5hbGdlc2ljIHdpdGggQW1idWxhdG9yeSBNaXN1c2UgUG90ZW50aWFsPyIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkZ1bmN0aW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIxMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3NTo2OS03NTo4OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJDb250ZXh0UHJlc2NyaXB0aW9ucyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJQYXJhbWV0ZXJSZWYiCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgICAgInJlbGF0aW9uc2hpcCIgOiBbIF0sCiAgICAgICAgICAgICAgICJ3aGVyZSIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIxNiIsCiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3Njo1LTc2Ojk0IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIklzIFN1YmFjdXRlIG9yIENocm9uaWMgUGFpbiBQcmVzY3JpcHRpb24/IiwKICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJSb3V0aW5lcyIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJGdW5jdGlvblJlZiIsCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMTUiLAogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNzY6NjUtNzY6OTIiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiQW1idWxhdG9yeU9waW9pZFByZXNjcmlwdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbGlhc1JlZiIKICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIyMSIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3ODoxLTc5OjEwMiIsCiAgICAgICAgICAgICJuYW1lIiA6ICJQYXRpZW50IElzIEJlaW5nIFByZXNjcmliZWQgT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICIyMSIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIiwiZGVmaW5lICIsIlwiUGF0aWVudCBJcyBCZWluZyBQcmVzY3JpYmVkIE9waW9pZCBBbmFsZ2VzaWMgd2l0aCBBbWJ1bGF0b3J5IE1pc3VzZSBQb3RlbnRpYWxcIiIsIjpcbiAgIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjIwIiwKICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJleGlzdHMiIF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMTkiLAogICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiggIiBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjE5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJcIlN1YmFjdXRlIG9yIENocm9uaWMgUGFpbiBPcGlvaWQgQW5hbGdlc2ljIHdpdGggQW1idWxhdG9yeSBNaXN1c2UgUG90ZW50aWFsIFByZXNjcmlwdGlvbnNcIiIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiICkiIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjIwIiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjc5OjMtNzk6MTAyIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkV4aXN0cyIsCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjE5IiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjc5OjktNzk6MTAyIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlN1YmFjdXRlIG9yIENocm9uaWMgUGFpbiBPcGlvaWQgQW5hbGdlc2ljIHdpdGggQW1idWxhdG9yeSBNaXN1c2UgUG90ZW50aWFsIFByZXNjcmlwdGlvbnMiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjMwIiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjgxOjEtODQ6NDQiLAogICAgICAgICAgICAibmFtZSIgOiAiSXMgUGVyZm9ybSBEcnVnIFNjcmVlbiBSZWNvbW1lbmRhdGlvbiBBcHBsaWNhYmxlPyIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICIzMCIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIiwiZGVmaW5lICIsIlwiSXMgUGVyZm9ybSBEcnVnIFNjcmVlbiBSZWNvbW1lbmRhdGlvbiBBcHBsaWNhYmxlP1wiIiwiOlxuICAiIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjkiLAogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiXCJQYXRpZW50IElzIEJlaW5nIFByZXNjcmliZWQgT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbFwiIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJcbiAgICBhbmQgIiBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiUmVjMTBDb21tb24iIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIi4iIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIlwiSW5jbHVzaW9uIENyaXRlcmlhXCIiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiXG4gICAgYW5kICIgXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAibm90ICIgXQogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIlJlYzEwQ29tbW9uIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIuIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJcIkV4Y2x1c2lvbiBDcml0ZXJpYVwiIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI5IiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjgyOjMtODQ6NDQiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNSIsCiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI4MjozLTgzOjQwIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjIiLAogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiODI6My04Mjo4MSIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJQYXRpZW50IElzIEJlaW5nIFByZXNjcmliZWQgT3Bpb2lkIEFuYWxnZXNpYyB3aXRoIEFtYnVsYXRvcnkgTWlzdXNlIFBvdGVudGlhbCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIgogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNCIsCiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI4Mzo5LTgzOjQwIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkluY2x1c2lvbiBDcml0ZXJpYSIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiUmVjMTBDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIKICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI4IiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjg0OjktODQ6NDQiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTm90IiwKICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjciLAogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiODQ6MTMtODQ6NDQiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiRXhjbHVzaW9uIENyaXRlcmlhIiwKICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJSZWMxMENvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjMzIiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjg2OjEtODc6NzIiLAogICAgICAgICAgICAibmFtZSIgOiAiQXBwbGljYWJsZSBCZWNhdXNlIG9mIFBvc2l0aXZlIENvY2FpbmUgb3IgUENQIG9yIE9waWF0ZXMiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMzMiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsImRlZmluZSAiLCJcIkFwcGxpY2FibGUgQmVjYXVzZSBvZiBQb3NpdGl2ZSBDb2NhaW5lIG9yIFBDUCBvciBPcGlhdGVzXCIiLCI6XG4gICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIzMiIsCiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMzEiLAogICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIlJlYzEwQ29tbW9uIiBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIuIiBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjMyIiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJcIkFwcGxpY2FibGUgQmVjYXVzZSBvZiBQb3NpdGl2ZSBDb2NhaW5lIG9yIFBDUCBvciBPcGlhdGVzXCIiIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjMyIiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjg3OjMtODc6NzIiLAogICAgICAgICAgICAgICAibmFtZSIgOiAiQXBwbGljYWJsZSBCZWNhdXNlIG9mIFBvc2l0aXZlIENvY2FpbmUgb3IgUENQIG9yIE9waWF0ZXMiLAogICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIlJlYzEwQ29tbW9uIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiCiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiMzciLAogICAgICAgICAgICAibG9jYXRvciIgOiAiODk6MS05MDo4MCIsCiAgICAgICAgICAgICJuYW1lIiA6ICJEZXRhaWwiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMzciLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsImRlZmluZSAiLCJcIkRldGFpbFwiIiwiOlxuICAiIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAiciIgOiAiMzYiLAogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjM0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJSZWMxMENvbW1vbiIgXQogICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiLiIgXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIzNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiXCJHZXQgRGV0YWlsXCIiLCIgKCIgXQogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIzNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiXCJJcyBQZXJmb3JtIERydWcgU2NyZWVuIFJlY29tbWVuZGF0aW9uIEFwcGxpY2FibGU/XCIiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIikiIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjM2IiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjkwOjMtOTA6ODAiLAogICAgICAgICAgICAgICAibmFtZSIgOiAiR2V0IERldGFpbCIsCiAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiUmVjMTBDb21tb24iLAogICAgICAgICAgICAgICAidHlwZSIgOiAiRnVuY3Rpb25SZWYiLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjM1IiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjkwOjI5LTkwOjc5IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIklzIFBlcmZvcm0gRHJ1ZyBTY3JlZW4gUmVjb21tZW5kYXRpb24gQXBwbGljYWJsZT8iLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIKICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiNDAiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiOTI6MS05MzoyNSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJJbmRpY2F0b3IiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiNDAiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsImRlZmluZSAiLCJcIkluZGljYXRvclwiIiwiOlxuICAiIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAiciIgOiAiMzkiLAogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjM4IiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJSZWMxMENvbW1vbiIgXQogICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiLiIgXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIzOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiXCJJbmRpY2F0b3JcIiIgXQogICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMzkiLAogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiOTM6My05MzoyNSIsCiAgICAgICAgICAgICAgICJuYW1lIiA6ICJJbmRpY2F0b3IiLAogICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIlJlYzEwQ29tbW9uIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiCiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiNDQiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiOTU6MS05Njo4MSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJTdW1tYXJ5IiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjQ0IiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIiLCJkZWZpbmUgIiwiXCJTdW1tYXJ5XCIiLCI6XG4gICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJyIiA6ICI0MyIsCiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiNDEiLAogICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIlJlYzEwQ29tbW9uIiBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIuIiBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjQzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJcIkdldCBTdW1tYXJ5XCIiLCIgKCIgXQogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICI0MiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiXCJJcyBQZXJmb3JtIERydWcgU2NyZWVuIFJlY29tbWVuZGF0aW9uIEFwcGxpY2FibGU/XCIiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIikiIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjQzIiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjk2OjMtOTY6ODEiLAogICAgICAgICAgICAgICAibmFtZSIgOiAiR2V0IFN1bW1hcnkiLAogICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIlJlYzEwQ29tbW9uIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkZ1bmN0aW9uUmVmIiwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICI0MiIsCiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI5NjozMC05Njo4MCIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJJcyBQZXJmb3JtIERydWcgU2NyZWVuIFJlY29tbWVuZGF0aW9uIEFwcGxpY2FibGU/IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiCiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0gXQogICAgICB9CiAgIH0KfQ=="
    }
  ]
}