WHO Immunization Implementation Guide
0.2.0 - ci-build
WHO Immunization Implementation Guide, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-immunizations/ and changes regularly. See the Directory of published versions
Draft as of 2025-09-17 |
<Library xmlns="http://hl7.org/fhir">
<id value="IMMZD18SMeningococcalQuad1Logic"/>
<meta>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"/>
</meta>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<div>
<table class="grid dict">
<tr>
<th scope="row"><b>Title: </b></th>
<td style="padding-left: 4px;">IMMZD18SMeningococcalQuad1Logic</td>
</tr>
<tr>
<th scope="row"><b>Id: </b></th>
<td style="padding-left: 4px;">IMMZD18SMeningococcalQuad1Logic</td>
</tr>
<tr>
<th scope="row"><b>Version: </b></th>
<td style="padding-left: 4px;">0.2.0</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><a href="Library-IMMZD18SMeningococcalQuad1Logic.html">IMMZD18SMeningococcalQuad1Logic</a></td>
</tr>
<tr>
<th scope="row"><b>Status: </b></th>
<td style="padding-left: 4px;">draft</td>
</tr>
<tr>
<th scope="row"><b>Type: </b></th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<b>system: </b> <span><a href="http://terminology.hl7.org/6.5.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a></span>
</p>
<p style="margin-bottom: 5px;">
<b>code: </b> <span>logic-library</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Date: </b></th>
<td style="padding-left: 4px;">2025-09-17 23:03:28+0000</td>
</tr>
<tr>
<th scope="row"><b>Publisher: </b></th>
<td style="padding-left: 4px;">WHO</td>
</tr>
<tr>
<th scope="row"><b>Description: </b></th>
<td style="padding-left: 4px;"><div><p>This library defines decision support logic for the IMMZ.D18.S.Meningococcal.Quadrivalent conjugate vaccines 1-dose schedule table in the Immunization CPG</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Related Artifacts: </b></th>
<td style="padding-left: 4px;">
<p><b>Dependencies</b></p>
<ul>
<li><a href="Library-WHOCommon.html">WHOCommon</a></li>
<li><a href="Library-IMMZCommon.html">IMMZCommon</a></li>
<li><a href="Library-IMMZConcepts.html">IMMZConcepts</a></li>
<li><a href="Library-IMMZEncounterElements.html">IMMZEncounterElements</a></li>
<li><a href="Library-IMMZD2DTMeningococcalEncounterElements.html">IMMZD2DTMeningococcalEncounterElements</a></li>
</ul>
</td>
</tr>
<tr>
<th scope="row"><b>Parameters: </b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<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>
<tr><th>Today</th><th>date</th><th>0</th><th>1</th><th>In</th></tr>
<tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>One meningococcal dose from primary series was administered. The primary series has been completed</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Meningococcal dose 1</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Meningococcal dose 1 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Meningococcal dose 1 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Meningococcal dose 1 Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Meningococcal dose 1 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Test Validation</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
</table>
</td>
</tr>
<tr>
<td colspan="2">
<table>
<tr><th><a id="cql-content"><b>Content: </b></a> text/cql</th></tr>
<tr><td><pre><code class="language-cql">
/*
* Library: IMMZD18SMeningococcalQuad1Logic (IMMZ.D18.S.Meningococcal.Quadrivalent conjugate vaccines 1-dose schedule)
* Schedule Table: Quadrivalent conjugate vaccines (A,C,W135,Y-D and A,C,W135,Y-CRM), 1-dose schedule
*/
library IMMZD18SMeningococcalQuad1Logic
using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1'
include WHOCommon called WC
include IMMZCommon called Common
include IMMZConcepts called Concepts
include IMMZEncounterElements called IE
include IMMZD2DTMeningococcalEncounterElements called Encounter
parameter Today Date default Today()
context Patient
/*
@output: Meningococcal dose 1
@description: Provision of the meningococcal dose 1
@trigger: Child's birth
@triggerDate: "Date of birth"
*/
define "Meningococcal dose 1":
Encounter."No meningococcal primary series dose was administered"
and not "One meningococcal dose from primary series was administered. The primary series has been completed"
/*
@output: Meningococcal dose 1 Create
@create: Quadrivalent conjugate vaccines (A,C,W135,Y-D and A,C,W135,Y-CRM) should be administered as one single intramuscular dose to individuals aged ≥2 years.
*/
define "Meningococcal dose 1 Create":
if "Meningococcal dose 1"
then 'Quadrivalent conjugate vaccines (A,C,W135,Y-D and A,C,W135,Y-CRM) should be administered as one single intramuscular dose to individuals aged ≥2 years.' + '
Due Date: ' + ToString("Meningococcal dose 1 Due Date")
else ''
/*
@dynamicValue: Meningococcal dose 1 Due Date
@pseudocode: "Date of birth" + 2 years
*/
define "Meningococcal dose 1 Due Date":
if "Meningococcal dose 1" then Patient.birthDate + 2 years
else null
/*
@dynamicValue: Meningococcal dose 1 Overdue
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define "Meningococcal dose 1 Overdue":
null
/*
@dynamicValue: Meningococcal dose 1 Expiration
@pseudocode: To be determined by Member States; however, there is no recommended expiration date and individuals are always eligible to be vaccinated.
*/
define "Meningococcal dose 1 Expiration":
null
/*
@complete: One meningococcal dose from primary series was administered. The primary series has been completed
@pseudocode: "Completed the primary vaccination series" (where "Vaccine type" = "Meningococcal vaccines") = TRUE
*/
define "One meningococcal dose from primary series was administered. The primary series has been completed":
Encounter."One meningococcal primary series dose was administered"
/*
@test: Test expected results based on example patients
*/
define "Test Validation":
case
when Patient.id = '45.1' then "Meningococcal dose 1"
when Patient.id = '46.01' then "Meningococcal dose 1"
when Patient.id = '47.0' then "One meningococcal dose from primary series was administered. The primary series has been completed"
else 'No test case set'
end
</code></pre></td></tr>
</table>
</td>
</tr>
<tr>
<td colspan="2">
<table>
<tr><th><b>Content: </b> application/elm+xml</th></tr>
<tr><td><pre><code>Encoded data (33780 characters)</code></pre></td></tr>
</table>
</td>
</tr>
</table>
</div>
</div>
</text>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
<valueCode value="computable"/>
</extension>
<url
value="http://smart.who.int/immunizations/Library/IMMZD18SMeningococcalQuad1Logic"/>
<version value="0.2.0"/>
<name value="IMMZD18SMeningococcalQuad1Logic"/>
<title value="IMMZD18SMeningococcalQuad1Logic"/>
<status value="draft"/>
<experimental value="false"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2025-09-17T23:03:28+00:00"/>
<publisher value="WHO"/>
<contact>
<name value="WHO"/>
<telecom>
<system value="url"/>
<value value="http://who.int"/>
</telecom>
</contact>
<description
value="This library defines decision support logic for the IMMZ.D18.S.Meningococcal.Quadrivalent conjugate vaccines 1-dose schedule table in the Immunization CPG"/>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library WC"/>
<resource value="http://smart.who.int/immunizations/Library/WHOCommon"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Common"/>
<resource value="http://smart.who.int/immunizations/Library/IMMZCommon"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Concepts"/>
<resource
value="http://smart.who.int/immunizations/Library/IMMZConcepts"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library IE"/>
<resource
value="http://smart.who.int/immunizations/Library/IMMZEncounterElements"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Encounter"/>
<resource
value="http://smart.who.int/immunizations/Library/IMMZD2DTMeningococcalEncounterElements"/>
</relatedArtifact>
<parameter>
<name value="Today"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name value="Patient"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Patient"/>
</parameter>
<parameter>
<name
value="One meningococcal dose from primary series was administered. The primary series has been completed"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Meningococcal dose 1"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Meningococcal dose 1 Due Date"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name value="Meningococcal dose 1 Create"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="Meningococcal dose 1 Overdue"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<parameter>
<name value="Meningococcal dose 1 Expiration"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<parameter>
<name value="Test Validation"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<content>
<contentType value="text/cql"/>
<data
value="Ci8qCiAqIExpYnJhcnk6IElNTVpEMThTTWVuaW5nb2NvY2NhbFF1YWQxTG9naWMgKElNTVouRDE4LlMuTWVuaW5nb2NvY2NhbC5RdWFkcml2YWxlbnQgY29uanVnYXRlIHZhY2NpbmVzIDEtZG9zZSBzY2hlZHVsZSkKICogU2NoZWR1bGUgVGFibGU6IFF1YWRyaXZhbGVudCBjb25qdWdhdGUgdmFjY2luZXMgKEEsQyxXMTM1LFktRCBhbmQgQSxDLFcxMzUsWS1DUk0pLCAxLWRvc2Ugc2NoZWR1bGUKICovCmxpYnJhcnkgSU1NWkQxOFNNZW5pbmdvY29jY2FsUXVhZDFMb2dpYwoKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQwoKaW5jbHVkZSBJTU1aQ29tbW9uIGNhbGxlZCBDb21tb24KaW5jbHVkZSBJTU1aQ29uY2VwdHMgY2FsbGVkIENvbmNlcHRzCgppbmNsdWRlIElNTVpFbmNvdW50ZXJFbGVtZW50cyBjYWxsZWQgSUUKaW5jbHVkZSBJTU1aRDJEVE1lbmluZ29jb2NjYWxFbmNvdW50ZXJFbGVtZW50cyBjYWxsZWQgRW5jb3VudGVyCgpwYXJhbWV0ZXIgVG9kYXkgRGF0ZSBkZWZhdWx0IFRvZGF5KCkKCmNvbnRleHQgUGF0aWVudAoKCi8qCkBvdXRwdXQ6IE1lbmluZ29jb2NjYWwgZG9zZSAxCkBkZXNjcmlwdGlvbjogUHJvdmlzaW9uIG9mIHRoZSBtZW5pbmdvY29jY2FsIGRvc2UgMQpAdHJpZ2dlcjogQ2hpbGQncyBiaXJ0aApAdHJpZ2dlckRhdGU6ICJEYXRlIG9mIGJpcnRoIgoqLwpkZWZpbmUgIk1lbmluZ29jb2NjYWwgZG9zZSAxIjoKICBFbmNvdW50ZXIuIk5vIG1lbmluZ29jb2NjYWwgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIgogIGFuZCBub3QgIk9uZSBtZW5pbmdvY29jY2FsIGRvc2UgZnJvbSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkIgoKLyoKQG91dHB1dDogTWVuaW5nb2NvY2NhbCBkb3NlIDEgQ3JlYXRlCkBjcmVhdGU6IFF1YWRyaXZhbGVudCBjb25qdWdhdGUgdmFjY2luZXMgKEEsQyxXMTM1LFktRCBhbmQgQSxDLFcxMzUsWS1DUk0pIHNob3VsZCBiZSBhZG1pbmlzdGVyZWQgYXMgb25lIHNpbmdsZSBpbnRyYW11c2N1bGFyIGRvc2UgdG8gaW5kaXZpZHVhbHMgYWdlZCDiiaUyIHllYXJzLgoqLwpkZWZpbmUgIk1lbmluZ29jb2NjYWwgZG9zZSAxIENyZWF0ZSI6CiAgaWYgIk1lbmluZ29jb2NjYWwgZG9zZSAxIiAKICB0aGVuICdRdWFkcml2YWxlbnQgY29uanVnYXRlIHZhY2NpbmVzIChBLEMsVzEzNSxZLUQgYW5kIEEsQyxXMTM1LFktQ1JNKSBzaG91bGQgYmUgYWRtaW5pc3RlcmVkIGFzIG9uZSBzaW5nbGUgaW50cmFtdXNjdWxhciBkb3NlIHRvIGluZGl2aWR1YWxzIGFnZWQg4omlMiB5ZWFycy4nICsgJwpEdWUgRGF0ZTogJyArIFRvU3RyaW5nKCJNZW5pbmdvY29jY2FsIGRvc2UgMSBEdWUgRGF0ZSIpCiAgZWxzZSAnJwoKLyoKQGR5bmFtaWNWYWx1ZTogTWVuaW5nb2NvY2NhbCBkb3NlIDEgRHVlIERhdGUKQHBzZXVkb2NvZGU6ICJEYXRlIG9mIGJpcnRoIiArIDIgeWVhcnMKKi8KZGVmaW5lICJNZW5pbmdvY29jY2FsIGRvc2UgMSBEdWUgRGF0ZSI6CiAgaWYgIk1lbmluZ29jb2NjYWwgZG9zZSAxIiB0aGVuIFBhdGllbnQuYmlydGhEYXRlICsgMiB5ZWFycwogIGVsc2UgbnVsbAoKLyoKQGR5bmFtaWNWYWx1ZTogTWVuaW5nb2NvY2NhbCBkb3NlIDEgT3ZlcmR1ZQpAcHNldWRvY29kZTogVG8gYmUgZGV0ZXJtaW5lZCBieSBNZW1iZXIgU3RhdGVzOyBob3dldmVyLCB0aGVyZSBpcyBubyByZWNvbW1lbmRlZCBvdmVyZHVlIGRhdGUgYW5kIGluZGl2aWR1YWxzIGFyZSBhbHdheXMgZWxpZ2libGUgdG8gYmUgdmFjY2luYXRlZC4KKi8KZGVmaW5lICJNZW5pbmdvY29jY2FsIGRvc2UgMSBPdmVyZHVlIjoKICBudWxsCgovKgpAZHluYW1pY1ZhbHVlOiBNZW5pbmdvY29jY2FsIGRvc2UgMSBFeHBpcmF0aW9uCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIGV4cGlyYXRpb24gZGF0ZSBhbmQgaW5kaXZpZHVhbHMgYXJlIGFsd2F5cyBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLgoqLwpkZWZpbmUgIk1lbmluZ29jb2NjYWwgZG9zZSAxIEV4cGlyYXRpb24iOgogIG51bGwKICAKLyoKQGNvbXBsZXRlOiBPbmUgbWVuaW5nb2NvY2NhbCBkb3NlIGZyb20gcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZC4gVGhlIHByaW1hcnkgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZApAcHNldWRvY29kZTogIkNvbXBsZXRlZCB0aGUgcHJpbWFyeSB2YWNjaW5hdGlvbiBzZXJpZXMiICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJNZW5pbmdvY29jY2FsIHZhY2NpbmVzIikgPSBUUlVFCiovCmRlZmluZSAiT25lIG1lbmluZ29jb2NjYWwgZG9zZSBmcm9tIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQuIFRoZSBwcmltYXJ5IHNlcmllcyBoYXMgYmVlbiBjb21wbGV0ZWQiOgogIEVuY291bnRlci4iT25lIG1lbmluZ29jb2NjYWwgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIgoKLyoKQHRlc3Q6IFRlc3QgZXhwZWN0ZWQgcmVzdWx0cyBiYXNlZCBvbiBleGFtcGxlIHBhdGllbnRzCiovCmRlZmluZSAiVGVzdCBWYWxpZGF0aW9uIjoKICBjYXNlCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnNDUuMScgdGhlbiAiTWVuaW5nb2NvY2NhbCBkb3NlIDEiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnNDYuMDEnIHRoZW4gIk1lbmluZ29jb2NjYWwgZG9zZSAxIgogICAgd2hlbiBQYXRpZW50LmlkID0gJzQ3LjAnIHRoZW4gIk9uZSBtZW5pbmdvY29jY2FsIGRvc2UgZnJvbSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkIgogICAgZWxzZSAnTm8gdGVzdCBjYXNlIHNldCcKICBlbmQK"/>
</content>
<content>
<contentType value="application/elm+xml"/>
<data
value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSIgbG9jYWxJZD0iMCI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iT3ZlcmxvYWRzIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUluZm8iLz4KICAgPGFubm90YXRpb24gbWVzc2FnZT0iQW4gb3BlcmFuZCBpZGVudGlmaWVyIHJlZmVyZW5jZSBpcyBoaWRpbmcgYW5vdGhlciBpZGVudGlmaWVyIG9mIHRoZSBzYW1lIG5hbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IkFuIG9wZXJhbmQgaWRlbnRpZmllciByZWZlcmVuY2UgaXMgaGlkaW5nIGFub3RoZXIgaWRlbnRpZmllciBvZiB0aGUgc2FtZSBuYW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiBtZXNzYWdlPSJBbiBvcGVyYW5kIGlkZW50aWZpZXIgcmVmZXJlbmNlIGlzIGhpZGluZyBhbm90aGVyIGlkZW50aWZpZXIgb2YgdGhlIHNhbWUgbmFtZS4iIGVycm9yVHlwZT0ic2VtYW50aWMiIGVycm9yU2V2ZXJpdHk9Indhcm5pbmciIHhzaTp0eXBlPSJhOkNxbFRvRWxtRXJyb3IiLz4KICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgIDxhOnMgcj0iMjkyIj4KICAgICAgICAgPGE6cz4vKgogKiBMaWJyYXJ5OiBJTU1aRDE4U01lbmluZ29jb2NjYWxRdWFkMUxvZ2ljIChJTU1aLkQxOC5TLk1lbmluZ29jb2NjYWwuUXVhZHJpdmFsZW50IGNvbmp1Z2F0ZSB2YWNjaW5lcyAxLWRvc2Ugc2NoZWR1bGUpCiAqIFNjaGVkdWxlIFRhYmxlOiBRdWFkcml2YWxlbnQgY29uanVnYXRlIHZhY2NpbmVzIChBLEMsVzEzNSxZLUQgYW5kIEEsQyxXMTM1LFktQ1JNKSwgMS1kb3NlIHNjaGVkdWxlCiAqLwpsaWJyYXJ5IElNTVpEMThTTWVuaW5nb2NvY2NhbFF1YWQxTG9naWM8L2E6cz4KICAgICAgPC9hOnM+CiAgIDwvYW5ub3RhdGlvbj4KICAgPGlkZW50aWZpZXIgaWQ9IklNTVpEMThTTWVuaW5nb2NvY2NhbFF1YWQxTG9naWMiIHN5c3RlbT0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaW1tdW5pemF0aW9ucyIvPgogICA8c2NoZW1hSWRlbnRpZmllciBpZD0idXJuOmhsNy1vcmc6ZWxtIiB2ZXJzaW9uPSJyMSIvPgogICA8dXNpbmdzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjEiIGxvY2FsSWRlbnRpZmllcj0iU3lzdGVtIiB1cmk9InVybjpobDctb3JnOmVsbS10eXBlczpyMSIvPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIwNiIgbG9jYXRvcj0iODoxLTg6MjYiIGxvY2FsSWRlbnRpZmllcj0iRkhJUiIgdXJpPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB2ZXJzaW9uPSI0LjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIwNiI+CiAgICAgICAgICAgICAgIDxhOnM+dXNpbmcgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+RkhJUjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnNC4wLjEnPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L3VzaW5ncz4KICAgPGluY2x1ZGVzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIwOCIgbG9jYXRvcj0iOToxLTk6MzUiIGxvY2FsSWRlbnRpZmllcj0iRkhJUkhlbHBlcnMiIHBhdGg9Imh0dHA6Ly9obDcub3JnL2ZoaXIvRkhJUkhlbHBlcnMiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjA4Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjEwIiBsb2NhdG9yPSIxMToxLTExOjI3IiBsb2NhbElkZW50aWZpZXI9IldDIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9pbW11bml6YXRpb25zL1dIT0NvbW1vbiI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIxMCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5XSE9Db21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGNhbGxlZCBXQzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMTIiIGxvY2F0b3I9IjEzOjEtMTM6MzIiIGxvY2FsSWRlbnRpZmllcj0iQ29tbW9uIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9pbW11bml6YXRpb25zL0lNTVpDb21tb24iPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyMTIiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+SU1NWkNvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gY2FsbGVkIENvbW1vbjwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMTQiIGxvY2F0b3I9IjE0OjEtMTQ6MzYiIGxvY2FsSWRlbnRpZmllcj0iQ29uY2VwdHMiIHBhdGg9Imh0dHA6Ly9zbWFydC53aG8uaW50L2ltbXVuaXphdGlvbnMvSU1NWkNvbmNlcHRzIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjE0Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPklNTVpDb25jZXB0czwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gY2FsbGVkIENvbmNlcHRzPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIxNiIgbG9jYXRvcj0iMTY6MS0xNjozOSIgbG9jYWxJZGVudGlmaWVyPSJJRSIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaW1tdW5pemF0aW9ucy9JTU1aRW5jb3VudGVyRWxlbWVudHMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyMTYiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+SU1NWkVuY291bnRlckVsZW1lbnRzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBjYWxsZWQgSUU8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjE4IiBsb2NhdG9yPSIxNzoxLTE3OjYzIiBsb2NhbElkZW50aWZpZXI9IkVuY291bnRlciIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaW1tdW5pemF0aW9ucy9JTU1aRDJEVE1lbmluZ29jb2NjYWxFbmNvdW50ZXJFbGVtZW50cyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIxOCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5JTU1aRDJEVE1lbmluZ29jb2NjYWxFbmNvdW50ZXJFbGVtZW50czwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gY2FsbGVkIEVuY291bnRlcjwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC9pbmNsdWRlcz4KICAgPHBhcmFtZXRlcnM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjIwIiBsb2NhdG9yPSIxOToxLTE5OjM2IiBuYW1lPSJUb2RheSIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIyMCI+CiAgICAgICAgICAgICAgIDxhOnM+cGFyYW1ldGVyIFRvZGF5IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjIyNCI+CiAgICAgICAgICAgICAgICAgIDxhOnM+RGF0ZTwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gZGVmYXVsdCA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyMjMiPgogICAgICAgICAgICAgICAgICA8YTpzPlRvZGF5KCk8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxkZWZhdWx0IGxvY2FsSWQ9IjIyMyIgbG9jYXRvcj0iMTk6MzAtMTk6MzYiIHhzaTp0eXBlPSJUb2RheSIvPgogICAgICAgICA8cGFyYW1ldGVyVHlwZVNwZWNpZmllciBsb2NhbElkPSIyMjQiIGxvY2F0b3I9IjE5OjE3LTE5OjIwIiBuYW1lPSJ0OkRhdGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgPC9kZWY+CiAgIDwvcGFyYW1ldGVycz4KICAgPGNvbnRleHRzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIyOSIgbG9jYXRvcj0iMjE6MS0yMToxNSIgbmFtZT0iUGF0aWVudCIvPgogICA8L2NvbnRleHRzPgogICA8c3RhdGVtZW50cz4KICAgICAgPGRlZiBsb2NhbElkPSIyMjciIGxvY2F0b3I9IjIxOjEtMjE6MTUiIG5hbWU9IlBhdGllbnQiIGNvbnRleHQ9IlBhdGllbnQiPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyMjgiIHhzaTp0eXBlPSJTaW5nbGV0b25Gcm9tIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjI2IiBsb2NhdG9yPSIyMToxLTIxOjE1IiBkYXRhVHlwZT0iZmhpcjpQYXRpZW50IiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vUGF0aWVudCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjM5IiBsb2NhdG9yPSI3MDoxLTcxOjY4IiBuYW1lPSJPbmUgbWVuaW5nb2NvY2NhbCBkb3NlIGZyb20gcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZC4gVGhlIHByaW1hcnkgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZCIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTp0IG5hbWU9ImNvbXBsZXRlIiB2YWx1ZT0iT25lIG1lbmluZ29jb2NjYWwgZG9zZSBmcm9tIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQuIFRoZSBwcmltYXJ5IHNlcmllcyBoYXMgYmVlbiBjb21wbGV0ZWQiLz4KICAgICAgICAgICAgPGE6dCBuYW1lPSJwc2V1ZG9jb2RlIiB2YWx1ZT0iJnF1b3Q7Q29tcGxldGVkIHRoZSBwcmltYXJ5IHZhY2NpbmF0aW9uIHNlcmllcyZxdW90OyAod2hlcmUgJnF1b3Q7VmFjY2luZSB0eXBlJnF1b3Q7ID0gJnF1b3Q7TWVuaW5nb2NvY2NhbCB2YWNjaW5lcyZxdW90OykgPSBUUlVFIi8+CiAgICAgICAgICAgIDxhOnMgcj0iMjM5Ij4KICAgICAgICAgICAgICAgPGE6cz4vKgpAY29tcGxldGU6IE9uZSBtZW5pbmdvY29jY2FsIGRvc2UgZnJvbSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkCkBwc2V1ZG9jb2RlOiAmcXVvdDtDb21wbGV0ZWQgdGhlIHByaW1hcnkgdmFjY2luYXRpb24gc2VyaWVzJnF1b3Q7ICh3aGVyZSAmcXVvdDtWYWNjaW5lIHR5cGUmcXVvdDsgPSAmcXVvdDtNZW5pbmdvY29jY2FsIHZhY2NpbmVzJnF1b3Q7KSA9IFRSVUUKKi8KZGVmaW5lICZxdW90O09uZSBtZW5pbmdvY29jY2FsIGRvc2UgZnJvbSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjI0MSI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjQwIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5FbmNvdW50ZXI8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI0MSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7T25lIG1lbmluZ29jb2NjYWwgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjQxIiBsb2NhdG9yPSI3MTozLTcxOjY4IiBuYW1lPSJPbmUgbWVuaW5nb2NvY2NhbCBwcmltYXJ5IHNlcmllcyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQiIGxpYnJhcnlOYW1lPSJFbmNvdW50ZXIiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIzMiIgbG9jYXRvcj0iMzA6MS0zMjoxMTAiIG5hbWU9Ik1lbmluZ29jb2NjYWwgZG9zZSAxIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnQgbmFtZT0ib3V0cHV0IiB2YWx1ZT0iTWVuaW5nb2NvY2NhbCBkb3NlIDEiLz4KICAgICAgICAgICAgPGE6dCBuYW1lPSJkZXNjcmlwdGlvbiIgdmFsdWU9IlByb3Zpc2lvbiBvZiB0aGUgbWVuaW5nb2NvY2NhbCBkb3NlIDEiLz4KICAgICAgICAgICAgPGE6dCBuYW1lPSJ0cmlnZ2VyIiB2YWx1ZT0iQ2hpbGQncyBiaXJ0aCIvPgogICAgICAgICAgICA8YTp0IG5hbWU9InRyaWdnZXJEYXRlIiB2YWx1ZT0iJnF1b3Q7RGF0ZSBvZiBiaXJ0aCZxdW90OyIvPgogICAgICAgICAgICA8YTpzIHI9IjIzMiI+CiAgICAgICAgICAgICAgIDxhOnM+LyoKQG91dHB1dDogTWVuaW5nb2NvY2NhbCBkb3NlIDEKQGRlc2NyaXB0aW9uOiBQcm92aXNpb24gb2YgdGhlIG1lbmluZ29jb2NjYWwgZG9zZSAxCkB0cmlnZ2VyOiBDaGlsZCdzIGJpcnRoCkB0cmlnZ2VyRGF0ZTogJnF1b3Q7RGF0ZSBvZiBiaXJ0aCZxdW90OwoqLwpkZWZpbmUgJnF1b3Q7TWVuaW5nb2NvY2NhbCBkb3NlIDEmcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjMzIj4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMzUiPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjIzNCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+RW5jb3VudGVyPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMzUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O05vIG1lbmluZ29jb2NjYWwgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICBhbmQgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjM2Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ub3QgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjQyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtPbmUgbWVuaW5nb2NvY2NhbCBkb3NlIGZyb20gcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZC4gVGhlIHByaW1hcnkgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyMzMiIGxvY2F0b3I9IjMxOjMtMzI6MTEwIiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjM1IiBsb2NhdG9yPSIzMTozLTMxOjY3IiBuYW1lPSJObyBtZW5pbmdvY29jY2FsIHByaW1hcnkgc2VyaWVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCIgbGlicmFyeU5hbWU9IkVuY291bnRlciIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjM2IiBsb2NhdG9yPSIzMjo3LTMyOjExMCIgeHNpOnR5cGU9Ik5vdCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI0MiIgbG9jYXRvcj0iMzI6MTEtMzI6MTEwIiBuYW1lPSJPbmUgbWVuaW5nb2NvY2NhbCBkb3NlIGZyb20gcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZC4gVGhlIHByaW1hcnkgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZCIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjI1OSIgbG9jYXRvcj0iNDg6MS01MDoxMSIgbmFtZT0iTWVuaW5nb2NvY2NhbCBkb3NlIDEgRHVlIERhdGUiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6dCBuYW1lPSJkeW5hbWljVmFsdWUiIHZhbHVlPSJNZW5pbmdvY29jY2FsIGRvc2UgMSBEdWUgRGF0ZSIvPgogICAgICAgICAgICA8YTp0IG5hbWU9InBzZXVkb2NvZGUiIHZhbHVlPSImcXVvdDtEYXRlIG9mIGJpcnRoJnF1b3Q7ICsgMiB5ZWFycyIvPgogICAgICAgICAgICA8YTpzIHI9IjI1OSI+CiAgICAgICAgICAgICAgIDxhOnM+LyoKQGR5bmFtaWNWYWx1ZTogTWVuaW5nb2NvY2NhbCBkb3NlIDEgRHVlIERhdGUKQHBzZXVkb2NvZGU6ICZxdW90O0RhdGUgb2YgYmlydGgmcXVvdDsgKyAyIHllYXJzCiovCmRlZmluZSAmcXVvdDtNZW5pbmdvY29jY2FsIGRvc2UgMSBEdWUgRGF0ZSZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyNjAiPgogICAgICAgICAgICAgICAgICA8YTpzPmlmIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI2MSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7TWVuaW5nb2NvY2NhbCBkb3NlIDEmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+IHRoZW4gPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjYyIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNjQiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI2MyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+UGF0aWVudDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjY0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5iaXJ0aERhdGU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiArIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI2NSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+MiB5ZWFyczwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjY5Ij4KICBlbHNlIG51bGw8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjI2MCIgbG9jYXRvcj0iNDk6My01MDoxMSIgeHNpOnR5cGU9IklmIj4KICAgICAgICAgICAgPGNvbmRpdGlvbiBsb2NhbElkPSIyNjEiIGxvY2F0b3I9IjQ5OjYtNDk6MjciIG5hbWU9Ik1lbmluZ29jb2NjYWwgZG9zZSAxIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8dGhlbiBsb2NhbElkPSIyNjIiIGxvY2F0b3I9IjQ5OjM0LTQ5OjYwIiB4c2k6dHlwZT0iQWRkIj4KICAgICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIyNjciIG5hbWU9InQ6RGF0ZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjI2OCIgbmFtZT0idDpRdWFudGl0eSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNjYiIG5hbWU9IlRvRGF0ZSIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNjQiIGxvY2F0b3I9IjQ5OjM0LTQ5OjUwIiBwYXRoPSJiaXJ0aERhdGUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iMjYzIiBsb2NhdG9yPSI0OTozNC00OTo0MCIgbmFtZT0iUGF0aWVudCIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI2NSIgbG9jYXRvcj0iNDk6NTQtNDk6NjAiIHZhbHVlPSIyIiB1bml0PSJ5ZWFycyIgeHNpOnR5cGU9IlF1YW50aXR5Ii8+CiAgICAgICAgICAgIDwvdGhlbj4KICAgICAgICAgICAgPGVsc2UgbG9jYWxJZD0iMjcwIiBhc1R5cGU9InQ6RGF0ZSIgeHNpOnR5cGU9IkFzIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjY5IiBsb2NhdG9yPSI1MDo4LTUwOjExIiB4c2k6dHlwZT0iTnVsbCIvPgogICAgICAgICAgICA8L2Vsc2U+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjQ1IiBsb2NhdG9yPSIzODoxLTQyOjkiIG5hbWU9Ik1lbmluZ29jb2NjYWwgZG9zZSAxIENyZWF0ZSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTp0IG5hbWU9Im91dHB1dCIgdmFsdWU9Ik1lbmluZ29jb2NjYWwgZG9zZSAxIENyZWF0ZSIvPgogICAgICAgICAgICA8YTp0IG5hbWU9ImNyZWF0ZSIgdmFsdWU9IlF1YWRyaXZhbGVudCBjb25qdWdhdGUgdmFjY2luZXMgKEEsQyxXMTM1LFktRCBhbmQgQSxDLFcxMzUsWS1DUk0pIHNob3VsZCBiZSBhZG1pbmlzdGVyZWQgYXMgb25lIHNpbmdsZSBpbnRyYW11c2N1bGFyIGRvc2UgdG8gaW5kaXZpZHVhbHMgYWdlZCDiiaUyIHllYXJzLiIvPgogICAgICAgICAgICA8YTpzIHI9IjI0NSI+CiAgICAgICAgICAgICAgIDxhOnM+LyoKQG91dHB1dDogTWVuaW5nb2NvY2NhbCBkb3NlIDEgQ3JlYXRlCkBjcmVhdGU6IFF1YWRyaXZhbGVudCBjb25qdWdhdGUgdmFjY2luZXMgKEEsQyxXMTM1LFktRCBhbmQgQSxDLFcxMzUsWS1DUk0pIHNob3VsZCBiZSBhZG1pbmlzdGVyZWQgYXMgb25lIHNpbmdsZSBpbnRyYW11c2N1bGFyIGRvc2UgdG8gaW5kaXZpZHVhbHMgYWdlZCDiiaUyIHllYXJzLgoqLwpkZWZpbmUgJnF1b3Q7TWVuaW5nb2NvY2NhbCBkb3NlIDEgQ3JlYXRlJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjI0NiI+CiAgICAgICAgICAgICAgICAgIDxhOnM+aWYgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjQ3Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtNZW5pbmdvY29jY2FsIGRvc2UgMSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4gCiAgdGhlbiA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNzkiPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI1NiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjUwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4nUXVhZHJpdmFsZW50IGNvbmp1Z2F0ZSB2YWNjaW5lcyAoQSxDLFcxMzUsWS1EIGFuZCBBLEMsVzEzNSxZLUNSTSkgc2hvdWxkIGJlIGFkbWluaXN0ZXJlZCBhcyBvbmUgc2luZ2xlIGludHJhbXVzY3VsYXIgZG9zZSB0byBpbmRpdmlkdWFscyBhZ2VkIOKJpTIgeWVhcnMuJzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPicKRHVlIERhdGU6ICc8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiArIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI3NSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+VG9TdHJpbmcoPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjcxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtNZW5pbmdvY29jY2FsIGRvc2UgMSBEdWUgRGF0ZSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4pPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICBlbHNlIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI4MCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+Jyc8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyNDYiIGxvY2F0b3I9IjM5OjMtNDI6OSIgeHNpOnR5cGU9IklmIj4KICAgICAgICAgICAgPGNvbmRpdGlvbiBsb2NhbElkPSIyNDciIGxvY2F0b3I9IjM5OjYtMzk6MjciIG5hbWU9Ik1lbmluZ29jb2NjYWwgZG9zZSAxIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8dGhlbiBsb2NhbElkPSIyNzkiIGxvY2F0b3I9IjQwOjgtNDE6NTUiIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI1NiIgbG9jYXRvcj0iNDA6OC00MDoxNzYiIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI1MCIgbG9jYXRvcj0iNDA6OC00MDoxNjAiIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSJRdWFkcml2YWxlbnQgY29uanVnYXRlIHZhY2NpbmVzIChBLEMsVzEzNSxZLUQgYW5kIEEsQyxXMTM1LFktQ1JNKSBzaG91bGQgYmUgYWRtaW5pc3RlcmVkIGFzIG9uZSBzaW5nbGUgaW50cmFtdXNjdWxhciBkb3NlIHRvIGluZGl2aWR1YWxzIGFnZWQg4omlMiB5ZWFycy4iIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI1MiIgbG9jYXRvcj0iNDA6MTY0LTQwOjE3NiIgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IiYjeGE7RHVlIERhdGU6ICIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNzUiIGxvY2F0b3I9IjQxOjE1LTQxOjU1IiB4c2k6dHlwZT0iVG9TdHJpbmciPgogICAgICAgICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjI3NiIgbmFtZT0idDpEYXRlIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI3MSIgbG9jYXRvcj0iNDE6MjQtNDE6NTQiIG5hbWU9Ik1lbmluZ29jb2NjYWwgZG9zZSAxIER1ZSBEYXRlIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDwvdGhlbj4KICAgICAgICAgICAgPGVsc2UgbG9jYWxJZD0iMjgwIiBsb2NhdG9yPSI0Mjo4LTQyOjkiIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSIiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjg0IiBsb2NhdG9yPSI1NjoxLTU3OjYiIG5hbWU9Ik1lbmluZ29jb2NjYWwgZG9zZSAxIE92ZXJkdWUiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6dCBuYW1lPSJkeW5hbWljVmFsdWUiIHZhbHVlPSJNZW5pbmdvY29jY2FsIGRvc2UgMSBPdmVyZHVlIi8+CiAgICAgICAgICAgIDxhOnQgbmFtZT0icHNldWRvY29kZSIgdmFsdWU9IlRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgb3ZlcmR1ZSBkYXRlIGFuZCBpbmRpdmlkdWFscyBhcmUgYWx3YXlzIGVsaWdpYmxlIHRvIGJlIHZhY2NpbmF0ZWQuIi8+CiAgICAgICAgICAgIDxhOnMgcj0iMjg0Ij4KICAgICAgICAgICAgICAgPGE6cyByPSIyODUiPi8qCkBkeW5hbWljVmFsdWU6IE1lbmluZ29jb2NjYWwgZG9zZSAxIE92ZXJkdWUKQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgb3ZlcmR1ZSBkYXRlIGFuZCBpbmRpdmlkdWFscyBhcmUgYWx3YXlzIGVsaWdpYmxlIHRvIGJlIHZhY2NpbmF0ZWQuCiovCmRlZmluZSAmcXVvdDtNZW5pbmdvY29jY2FsIGRvc2UgMSBPdmVyZHVlJnF1b3Q7OgogIG51bGw8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjg1IiBsb2NhdG9yPSI1NzozLTU3OjYiIHhzaTp0eXBlPSJOdWxsIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjI4OCIgbG9jYXRvcj0iNjM6MS02NDo2IiBuYW1lPSJNZW5pbmdvY29jY2FsIGRvc2UgMSBFeHBpcmF0aW9uIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnQgbmFtZT0iZHluYW1pY1ZhbHVlIiB2YWx1ZT0iTWVuaW5nb2NvY2NhbCBkb3NlIDEgRXhwaXJhdGlvbiIvPgogICAgICAgICAgICA8YTp0IG5hbWU9InBzZXVkb2NvZGUiIHZhbHVlPSJUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIGV4cGlyYXRpb24gZGF0ZSBhbmQgaW5kaXZpZHVhbHMgYXJlIGFsd2F5cyBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLiIvPgogICAgICAgICAgICA8YTpzIHI9IjI4OCI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjg5Ij4vKgpAZHluYW1pY1ZhbHVlOiBNZW5pbmdvY29jY2FsIGRvc2UgMSBFeHBpcmF0aW9uCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIGV4cGlyYXRpb24gZGF0ZSBhbmQgaW5kaXZpZHVhbHMgYXJlIGFsd2F5cyBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLgoqLwpkZWZpbmUgJnF1b3Q7TWVuaW5nb2NvY2NhbCBkb3NlIDEgRXhwaXJhdGlvbiZxdW90OzoKICBudWxsPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjI4OSIgbG9jYXRvcj0iNjQ6My02NDo2IiB4c2k6dHlwZT0iTnVsbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyOTIiIGxvY2F0b3I9Ijc2OjEtODI6NSIgbmFtZT0iVGVzdCBWYWxpZGF0aW9uIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnQgbmFtZT0idGVzdCIgdmFsdWU9IlRlc3QgZXhwZWN0ZWQgcmVzdWx0cyBiYXNlZCBvbiBleGFtcGxlIHBhdGllbnRzIi8+CiAgICAgICAgICAgIDxhOnMgcj0iMjkyIj4KICAgICAgICAgICAgICAgPGE6cz4vKgpAdGVzdDogVGVzdCBleHBlY3RlZCByZXN1bHRzIGJhc2VkIG9uIGV4YW1wbGUgcGF0aWVudHMKKi8KZGVmaW5lICZxdW90O1Rlc3QgVmFsaWRhdGlvbiZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyOTMiPgogICAgICAgICAgICAgICAgICA8YTpzPmNhc2UKICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI5NCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+d2hlbiA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOTUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI5NyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjk2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5QYXRpZW50PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOTciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmlkPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gPSA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOTgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPic0NS4xJzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+IHRoZW4gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzA0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtNZW5pbmdvY29jY2FsIGRvc2UgMSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMDUiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPndoZW4gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzA2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMDgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMwNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+UGF0aWVudDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzA4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5pZDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+ID0gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzA5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4nNDYuMDEnPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4gdGhlbiA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMTUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O01lbmluZ29jb2NjYWwgZG9zZSAxJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjMxNiI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+d2hlbiA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMTciPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMxOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzE4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5QYXRpZW50PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMTkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmlkPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gPSA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPic0Ny4wJzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+IHRoZW4gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzI2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtPbmUgbWVuaW5nb2NvY2NhbCBkb3NlIGZyb20gcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZC4gVGhlIHByaW1hcnkgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICBlbHNlIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjMyNyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+J05vIHRlc3QgY2FzZSBzZXQnPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPgogIGVuZDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjkzIiBsb2NhdG9yPSI3NzozLTgyOjUiIHhzaTp0eXBlPSJDYXNlIj4KICAgICAgICAgICAgPGNhc2VJdGVtIGxvY2FsSWQ9IjI5NCIgbG9jYXRvcj0iNzg6NS03ODo1NiI+CiAgICAgICAgICAgICAgIDx3aGVuIGxvY2FsSWQ9IjI5NSIgbG9jYXRvcj0iNzg6MTAtNzg6MjgiIHhzaTp0eXBlPSJFcXVhbCI+CiAgICAgICAgICAgICAgICAgIDxzaWduYXR1cmUgbG9jYWxJZD0iMzAyIiBuYW1lPSJ0OlN0cmluZyIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjMwMyIgbmFtZT0idDpTdHJpbmciIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzAwIiBuYW1lPSJUb1N0cmluZyIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjMwMSIgbmFtZT0iZmhpcjpzdHJpbmciIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjk3IiBsb2NhdG9yPSI3ODoxMC03ODoxOSIgcGF0aD0iaWQiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iMjk2IiBsb2NhdG9yPSI3ODoxMC03ODoxNiIgbmFtZT0iUGF0aWVudCIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI5OCIgbG9jYXRvcj0iNzg6MjMtNzg6MjgiIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSI0NS4xIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8L3doZW4+CiAgICAgICAgICAgICAgIDx0aGVuIGxvY2FsSWQ9IjMyOSIgeHNpOnR5cGU9IkFzIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzA0IiBsb2NhdG9yPSI3ODozNS03ODo1NiIgbmFtZT0iTWVuaW5nb2NvY2NhbCBkb3NlIDEiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgIDxhc1R5cGVTcGVjaWZpZXIgbG9jYWxJZD0iMzMwIiB4c2k6dHlwZT0iQ2hvaWNlVHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgICAgIDxjaG9pY2UgbG9jYWxJZD0iMzMxIiBuYW1lPSJ0OkJvb2xlYW4iIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBsb2NhbElkPSIzMzIiIG5hbWU9InQ6U3RyaW5nIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgIDwvYXNUeXBlU3BlY2lmaWVyPgogICAgICAgICAgICAgICA8L3RoZW4+CiAgICAgICAgICAgIDwvY2FzZUl0ZW0+CiAgICAgICAgICAgIDxjYXNlSXRlbSBsb2NhbElkPSIzMDUiIGxvY2F0b3I9Ijc5OjUtNzk6NTciPgogICAgICAgICAgICAgICA8d2hlbiBsb2NhbElkPSIzMDYiIGxvY2F0b3I9Ijc5OjEwLTc5OjI5IiB4c2k6dHlwZT0iRXF1YWwiPgogICAgICAgICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjMxMyIgbmFtZT0idDpTdHJpbmciIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIzMTQiIG5hbWU9InQ6U3RyaW5nIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMxMSIgbmFtZT0iVG9TdHJpbmciIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIzMTIiIG5hbWU9ImZoaXI6c3RyaW5nIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMwOCIgbG9jYXRvcj0iNzk6MTAtNzk6MTkiIHBhdGg9ImlkIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjMwNyIgbG9jYXRvcj0iNzk6MTAtNzk6MTYiIG5hbWU9IlBhdGllbnQiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzMDkiIGxvY2F0b3I9Ijc5OjIzLTc5OjI5IiB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0iNDYuMDEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDwvd2hlbj4KICAgICAgICAgICAgICAgPHRoZW4gbG9jYWxJZD0iMzMzIiB4c2k6dHlwZT0iQXMiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzMTUiIGxvY2F0b3I9Ijc5OjM2LTc5OjU3IiBuYW1lPSJNZW5pbmdvY29jY2FsIGRvc2UgMSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgPGFzVHlwZVNwZWNpZmllciBsb2NhbElkPSIzMzQiIHhzaTp0eXBlPSJDaG9pY2VUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBsb2NhbElkPSIzMzUiIG5hbWU9InQ6Qm9vbGVhbiIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICA8Y2hvaWNlIGxvY2FsSWQ9IjMzNiIgbmFtZT0idDpTdHJpbmciIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgPC9hc1R5cGVTcGVjaWZpZXI+CiAgICAgICAgICAgICAgIDwvdGhlbj4KICAgICAgICAgICAgPC9jYXNlSXRlbT4KICAgICAgICAgICAgPGNhc2VJdGVtIGxvY2FsSWQ9IjMxNiIgbG9jYXRvcj0iODA6NS04MDoxMzQiPgogICAgICAgICAgICAgICA8d2hlbiBsb2NhbElkPSIzMTciIGxvY2F0b3I9IjgwOjEwLTgwOjI4IiB4c2k6dHlwZT0iRXF1YWwiPgogICAgICAgICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjMyNCIgbmFtZT0idDpTdHJpbmciIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIzMjUiIG5hbWU9InQ6U3RyaW5nIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMyMiIgbmFtZT0iVG9TdHJpbmciIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIzMjMiIG5hbWU9ImZoaXI6c3RyaW5nIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMxOSIgbG9jYXRvcj0iODA6MTAtODA6MTkiIHBhdGg9ImlkIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjMxOCIgbG9jYXRvcj0iODA6MTAtODA6MTYiIG5hbWU9IlBhdGllbnQiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzMjAiIGxvY2F0b3I9IjgwOjIzLTgwOjI4IiB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0iNDcuMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC93aGVuPgogICAgICAgICAgICAgICA8dGhlbiBsb2NhbElkPSIzMzciIHhzaTp0eXBlPSJBcyI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMyNiIgbG9jYXRvcj0iODA6MzUtODA6MTM0IiBuYW1lPSJPbmUgbWVuaW5nb2NvY2NhbCBkb3NlIGZyb20gcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZC4gVGhlIHByaW1hcnkgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZCIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgPGFzVHlwZVNwZWNpZmllciBsb2NhbElkPSIzMzgiIHhzaTp0eXBlPSJDaG9pY2VUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBsb2NhbElkPSIzMzkiIG5hbWU9InQ6Qm9vbGVhbiIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICA8Y2hvaWNlIGxvY2FsSWQ9IjM0MCIgbmFtZT0idDpTdHJpbmciIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgPC9hc1R5cGVTcGVjaWZpZXI+CiAgICAgICAgICAgICAgIDwvdGhlbj4KICAgICAgICAgICAgPC9jYXNlSXRlbT4KICAgICAgICAgICAgPGVsc2UgbG9jYWxJZD0iMzQxIiB4c2k6dHlwZT0iQXMiPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzMjciIGxvY2F0b3I9IjgxOjEwLTgxOjI3IiB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0iTm8gdGVzdCBjYXNlIHNldCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGFzVHlwZVNwZWNpZmllciBsb2NhbElkPSIzNDIiIHhzaTp0eXBlPSJDaG9pY2VUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgPGNob2ljZSBsb2NhbElkPSIzNDMiIG5hbWU9InQ6Qm9vbGVhbiIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICA8Y2hvaWNlIGxvY2FsSWQ9IjM0NCIgbmFtZT0idDpTdHJpbmciIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgPC9hc1R5cGVTcGVjaWZpZXI+CiAgICAgICAgICAgIDwvZWxzZT4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgPC9zdGF0ZW1lbnRzPgo8L2xpYnJhcnk+Cg=="/>
</content>
</Library>