<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>ECB2</name>
	<version>2.4.4</version>
    <mincmsversion>2.0</mincmsversion>
	<help><![CDATA[CiAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vbG9jYWxob3N0L21vZHVsZS1kZXYvbW9kdWxlcy9FQ0IyL2xpYi9jc3MvZWNiMl9hZG1pbi5jc3M/dj0yLjQuNCI+CiAgICAgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9sb2NhbGhvc3QvbW9kdWxlLWRldi9tb2R1bGVzL0VDQjIvbGliL2pzL2VjYjJfYWRtaW4uanM/dj0yLjQuNCI+PC9zY3JpcHQ+Cgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+Cgo8ZGl2IGlkPSJwYWdlX3RhYnMiPjxkaXYgaWQ9ImVjYiI+RXh0ZW5kZWQgQ29udGVudCBCbG9ja3M8L2Rpdj4KPGRpdiBpZD0iYWJvdXQiPkFib3V0PC9kaXY+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KCjxkaXYgaWQ9InBhZ2VfY29udGVudCIgY2xhc3M9ImVjYjItaGVscCI+CgoKPGRpdiBpZD0iZWNiX2MiPgoKICAgIDxkaXYgY2xhc3M9ImhlbHAtdG9jIj4KICAgICAgICA8aDMgY2xhc3M9ImJvcmRlci1ib3R0b20gbV90b3BfMTUgcF9ib3R0b21fNSI+RmllbGQgdHlwZXM8L2gzPgogICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiN0ZXh0aW5wdXQiPnRleHRpbnB1dDwvYT48L2xpPiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ic21vb3RoLXNjcm9sbCIgaHJlZj0iI3RleHRhcmVhIj50ZXh0YXJlYTwvYT48L2xpPiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ic21vb3RoLXNjcm9sbCIgaHJlZj0iI2Ryb3Bkb3duIj5kcm9wZG93bjwvYT48L2xpPiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ic21vb3RoLXNjcm9sbCIgaHJlZj0iI3NvcnRhYmxlbGlzdCI+c29ydGFibGVsaXN0PC9hPjwvbGk+ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPSJzbW9vdGgtc2Nyb2xsIiBocmVmPSIjY2hlY2tib3giPmNoZWNrYm94PC9hPjwvbGk+ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPSJzbW9vdGgtc2Nyb2xsIiBocmVmPSIjcmFkaW8iPnJhZGlvPC9hPjwvbGk+ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPSJzbW9vdGgtc2Nyb2xsIiBocmVmPSIjZ2FsbGVyeSI+Z2FsbGVyeTwvYT48L2xpPiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ic21vb3RoLXNjcm9sbCIgaHJlZj0iI2NvbG9yX3BpY2tlciI+Y29sb3JfcGlja2VyPC9hPjwvbGk+ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPSJzbW9vdGgtc2Nyb2xsIiBocmVmPSIjZGF0ZV90aW1lX3BpY2tlciI+ZGF0ZV90aW1lX3BpY2tlcjwvYT48L2xpPiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ic21vb3RoLXNjcm9sbCIgaHJlZj0iI2ZpbGVfc2VsZWN0b3IiPmZpbGVfc2VsZWN0b3I8L2E+PC9saT4gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiNmaWxlX3BpY2tlciI+ZmlsZV9waWNrZXI8L2E+PC9saT4gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiNwYWdlX3BpY2tlciI+cGFnZV9waWNrZXI8L2E+PC9saT4gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiNnYWxsZXJ5X3BpY2tlciI+Z2FsbGVyeV9waWNrZXI8L2E+PC9saT4gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiNtb2R1bGVfcGlja2VyIj5tb2R1bGVfcGlja2VyPC9hPjwvbGk+ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPSJzbW9vdGgtc2Nyb2xsIiBocmVmPSIjaGlkZGVuIj5oaWRkZW48L2E+PC9saT4gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiNncm91cCI+Z3JvdXA8L2E+PC9saT4gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9ImJvcmRlci1ib3R0b20gbV90b3BfMjUgcF9ib3R0b21fNSI+QWRtaW4gb25seSBmaWVsZHM8L2g1PgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiNhZG1pbl9maWVsZHNldF9zdGFydCI+YWRtaW5fZmllbGRzZXRfc3RhcnQ8L2E+PC9saT4gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiNhZG1pbl9maWVsZHNldF9lbmQiPmFkbWluX2ZpZWxkc2V0X2VuZDwvYT48L2xpPiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ic21vb3RoLXNjcm9sbCIgaHJlZj0iI2FkbWluX2hyIj5hZG1pbl9ocjwvYT48L2xpPiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ic21vb3RoLXNjcm9sbCIgaHJlZj0iI2FkbWluX2ltYWdlIj5hZG1pbl9pbWFnZTwvYT48L2xpPiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ic21vb3RoLXNjcm9sbCIgaHJlZj0iI2FkbWluX2xpbmsiPmFkbWluX2xpbms8L2E+PC9saT4gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiNhZG1pbl9tb2R1bGVfbGluayI+YWRtaW5fbW9kdWxlX2xpbms8L2E+PC9saT4gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiNhZG1pbl90ZXh0Ij5hZG1pbl90ZXh0PC9hPjwvbGk+ICAgCiAgICAgICAgICAgICAgICA8L3VsPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iaGVscC1jb250ZW50Ij4KICAgICAgICA8cD5UaGUgRXh0ZW5kZWQgQ29udGVudCBCbG9ja3MgKEVDQjIpIG1vZHVsZSB0byBnaXZlIHlvdSBtb3JlIHBhZ2UgZWRpdGluZyBvcHRpb25zLiBNYW55IGFkaXRpb25hbCBjb250ZW50IGJsb2NrIHR5cGVzIGFyZSBhdmFpbGFibGUgdG8gdXNlIGluIGVhY2ggcGFnZSB0ZW1wbGF0ZS4gZS5nLiBkcm9wZG93biwgY29sb3VyIHBpY2tlciwgY2hlY2tib3gsIHJhZGlvIGJ1dHRvbiwgYW5kIG1hbnkgbW9yZS48L3A+Cjxicj4KCjxoMz5Vc2FnZTwvaDM+CjxwPlVzZSB0aGUgQ01TTVMgY29yZSA8Yj57Y29udGVudF9tb2R1bGV9PC9iPiB0YWcgdG8gYWRkIGFsbCBFQ0IyIGNvbnRlbnQgYmxvY2tzIHRvIGFueSBwYWdlIHRlbXBsYXRlLjwvcD4KPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9c29tZV9maWVsZF90eXBlIGJsb2NrPSdzb21lIG5hbWUnIC4uLn08L3ByZT4KPHA+VGhlIGNvcmUgY29udGVudF9tb2R1bGUgdGFnIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmb3IgQUxMIG9mIHRoZSBFQ0IyIGNvbnRlbnQgYmxvY2tzOjwvcD4KPHVsPgogICAgPGxpPm1vZHVsZSAocmVxdWlyZWQpIC0gJ0VDQjInPC9saT4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gb25lIG9mIEVDQjIgZmllbGQgdHlwZXMgYmVsb3c8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+bGFiZWwgKG9wdGlvbmFsKSAtIEEgbGFiZWwgZm9yIHRoZSBjb250ZW50IGJsb2NrIGZvciB1c2Ugd2hlbiBlZGl0aW5nIHRoZSBwYWdlLjwvbGk+CiAgICA8bGk+cmVxdWlyZWQgKG9wdGlvbmFsKSAtIEFsbG93cyBzcGVjaWZ5aW5nIHRoYXQgdGhlIGNvbnRlbnQgYmxvY2sgbXVzdCBjb250YWluIHNvbWUgdGV4dC48L2xpPgogICAgPGxpPnRhYiAob3B0aW9uYWwpIC0gVGhlIGRlc2lyZWQgdGFiIHRvIGRpc3BsYXkgdGhpcyBmaWVsZCBvbiBpbiB0aGUgZWRpdCBmb3JtLjxicj5Vc2UgdGhlIGZvbGxvd2luZyB0byBzaG93IG9uIGEgY29yZSB0YWI6IHRhYj0nenpfMW5hdl90YWJfXycsICd6el8ybG9naWNfdGFiX18nLCBvciAnenpfM29wdGlvbnNfdGFiX18nLjwvbGk+CiAgICA8bGk+cHJpb3JpdHkgKG9wdGlvbmFsKSBpbnRlZ2VyIC0gQWxsb3dzIHNwZWNpZnlpbmcgYW4gaW50ZWdlciBwcmlvcml0eSBmb3IgdGhlIGJsb2NrIHdpdGhpbiB0aGUgdGFiLjwvbGk+CiAgICA8bGk+YXNzaWduIChvcHRpb25hbCkgc3RyaW5nIC0gQXNzaWduIHRoZSByZXN1bHRzIHRvIGEgc21hcnR5IHZhcmlhYmxlIHdpdGggdGhhdCBuYW1lLjwvbGk+CjwvdWw+Cgo8cD48Yj5TbWFydHkgdGlwczwvYj46IFBhcmFtZXRlciB2YWx1ZXMgdGhhdCBhcmUgc2luZ2xlLXdvcmQgc3RyaW5ncyBkbyBub3QgaGF2ZSB0byBiZSBxdW90ZWQgZS5nLiBmaWVsZD1jaGVja2JveCBpcyB0aGUgc2FtZSBhcyBmaWVsZD0nY2hlY2tib3gnLiBJZiBwYXJhbWV0ZXIgdmFsdWVzIGFyZSB3aXRoIGRvdWJsZSBxdW90ZXMgc2ltcGxlIHNtYXJ0eSB2YXJpYWJsZXMgb3IgdGFncyBjYW4gYmUgaW5jbHVkZWQgbGlrZSB2YXI9InRlc3QgJGZvbyB7Y291bnRlcn0gdGVzdCIuPGJyPlNlZSA8YSBocmVmPSIvL3d3dy5zbWFydHkubmV0L2RvY3MvZW4vbGFuZ3VhZ2Uuc3ludGF4LnF1b3Rlcy50cGwiIHRhcmdldD0iX2JsYW5rIj5TbWFydHkgZG9jcyBmb3IgZGV0YWlsczwvYT4uPC9wPgoKPGJyPjxicj4KICAgICAgICAKICAgICAgICA8aDIgY2xhc3M9ImJvcmRlci1ib3R0b20gcF9ib3R0b21fNSBtX2JvdHRvbV8xNSI+RmllbGQgdHlwZXM8L2gyPgoKICAgICAgICAgICAgICAgICAgICA8aDIgaWQ9InRleHRpbnB1dCIgY2xhc3M9Im1fYm90dG9tXzUiPnRleHRpbnB1dDwvaDI+CiAgICAgICAgPHA+VGhlIHRleHRpbnB1dCBmaWVsZCBjcmVhdGVzIGEgc2ltcGxlIHRleHQgaW5wdXQsIGZvciBzdG9yaW5nIGEgc2luZ2xlIHN0cmluZy4gRWl0aGVyIGp1c3QgY3JlYXRlIGEgc2ltcGxlIHNpbmdsZSB0ZXh0IGlucHV0IG9yIHVzZSB0aGUgcmVwZWF0ZXIgb3B0aW9uIHRvIGNyZWF0ZSBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIHNvcnRhYmxlIGlucHV0cy48L3A+Cgo8ZmllbGRzZXQ+CgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZGVtb190ZXh0aW5wdXQxIiBzaXplPSI1NSIgbWF4bGVuZ3RoPSI1NSIgdmFsdWU9ImEgc2FtcGxlIHRleHRpbnB1dCIvPgoKICAgIAoKPC9maWVsZHNldD4KCjxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXRleHRpbnB1dCBibG9jaz10ZXN0NSBsYWJlbD0nVGV4dCcgc2l6ZT01NSBtYXhfbGVuZ3RoPTU1IGRlZmF1bHQ9J2Egc2FtcGxlIHRleHRpbnB1dCd9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnPGI+dGV4dGlucHV0PC9iPicsIG9yIGFsaWFzOiAnPGI+aW5wdXQ8L2I+JywgJzxiPmlucHV0X3JlcGVhdGVyPC9iPic8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+YXNzaWduIChyZXF1aXJlZCBmb3IgcmVwZWF0ZXIqKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5zaXplIChvcHRpb25hbCkgLSBzZXRzIHRoZSB3aWR0aCBvZiB0aGUgaHRtbCBpbnB1dC4gTWF5IGJlIG92ZXJyaWRkZW4gYnkgY3NzIC0gZGVmYXVsdCAzMDwvbGk+CiAgICA8bGk+bWF4X2xlbmd0aCAob3B0aW9uYWwpIC0gbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyAtIGRlZmF1bHQgMjU1PC9saT4KICAgIDxsaT5yZXBlYXRlciAob3B0aW9uYWwpIC0gZW5hYmxlcyAxIG9yIG1vcmUgdGV4dGlucHV0IGZpZWxkcyB0byBiZSBjcmVhdGVkIGFuZCBzb3J0ZWQgYnkgY2xpY2tpbmcgJiBkcmFnZ2luZy4gTm90ZTogYXNzaWduIG11c3QgYmUgdXNlZCB0byBjb3JyZWN0bHkgc3VwcGx5IHRoZSBtdWx0aXBsZSB2YWx1ZXMgdG8gdGhlIHBhZ2UgdGVtcGxhdGUgYXMgYW4gYXJyYXkuPC9saT4KICAgIDxsaT5tYXhfYmxvY2tzIChvcHRpb25hbCkgLSB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwZWF0ZXIgZmllbGRzIHRoYXQgY2FuIGJlIGNyZWF0ZWQ8L2xpPgogICAgPGxpPmRlZmF1bHQgKG9wdGlvbmFsKSAtIChhbGlhczogJzxiPmRlZmF1bHRfdmFsdWU8L2I+JykgLSBpbml0aWFsIHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZTwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+CjxwPk5vdGU6IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYW4gJzxiPmlucHV0X3JlcGVhdGVyPC9iPicgZmllbGQgd2lsbCBzdGlsbCBiZSBvdXRwdXQgYXMgYSBzaW5nbGUgc3RyaW5nLCB3aXRoIGVhY2ggc2VwYXJhdGUgZmllbGQgZGVsaW1pdGVkIGJ5ICd8fCcuIFRvIG1ha2UgdGhlIG91dHB1dCBhIG1vcmUgdXNlZnVsIGFycmF5IHVzZSAnZXhwbG9kZScsIGUuZy4geyJ8fCJ8ZXhwbG9kZTokY29udGVudF9ibG9ja19uYW1lfS4gVG8gb3V0cHV0IGFzIGFuIGFycmF5LCB1c2UgdGhlICc8Yj5hc3NpZ248L2I+JyBwYXJhbWV0ZXIuPC9wPgoKCjxmaWVsZHNldD4KICAgIDxsZWdlbmQ+U2FtcGxlIHRleHRpbnB1dCB3aXRoIHJlcGVhdGVyICYgbWF4X2Jsb2NrcyAtIHVzZSAncmVwZWF0ZXI9MSBtYXhfYmxvY2tzPTQgYXNzaWduPXRtcCcgPC9sZWdlbmQ+CiAgICAKICAgICAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iZGVtb190ZXh0aW5wdXQyLXJlcGVhdGVyIiBjbGFzcz0iZWNiX3JlcGVhdGVyIHNvcnRhYmxlIiBkYXRhLWJsb2NrLW5hbWU9ImRlbW9fdGV4dGlucHV0MiIgZGF0YS1oaWdoZXN0LXJvdz0iMSIgZGF0YS1tYXgtYmxvY2tzPSI0IiBkYXRhLXJlcGVhdGVyLWFkZD0iI2RlbW9fdGV4dGlucHV0Mi1yZXBlYXRlci1hZGQiPgogICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXBlYXRlci13cmFwcGVyLXRlbXBsYXRlIHNvcnRhYmxlLWl0ZW0iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZnQtcGFuZWwgaGFuZGxlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZWNiMi1pY29uLWdyaXAtZG90cy12ZXJ0aWNhbC1zb2xpZCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IiIgbmFtZT0iIiBjbGFzcz0icmVwZWF0ZXItZmllbGQiIHNpemU9IjEwMCIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSIiIGRhdGEtcmVwZWF0ZXI9IiNkZW1vX3RleHRpbnB1dDItcmVwZWF0ZXIiLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJpZ2h0LXBhbmVsIj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJlY2IyLXJlcGVhdGVyLXJlbW92ZSBlY2IyLWJ0biBlY2IyLWJ0bi1kZWZhdWx0IGVjYjItaWNvbi1vbmx5IiBkYXRhLXJlcGVhdGVyPSIjZGVtb190ZXh0aW5wdXQyLXJlcGVhdGVyIiB0aXRsZT0iUmVtb3ZlIGxpbmUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJlY2IyLWljb24tdHJhc2gtY2FuLXJlZ3VsYXIiPjwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVwZWF0ZXItd3JhcHBlciBzb3J0YWJsZS1pdGVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZnQtcGFuZWwgaGFuZGxlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZWNiMi1pY29uLWdyaXAtZG90cy12ZXJ0aWNhbC1zb2xpZCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImRlbW9fdGV4dGlucHV0Ml9yXzEiIG5hbWU9ImRlbW9fdGV4dGlucHV0MltyXzFdIiBjbGFzcz0icmVwZWF0ZXItZmllbGQiIHNpemU9IjEwMCIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSJhIHNhbXBsZSB0ZXh0aW5wdXQiIGRhdGEtcmVwZWF0ZXI9IiNkZW1vX3RleHRpbnB1dDItcmVwZWF0ZXIiLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJpZ2h0LXBhbmVsIj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJlY2IyLXJlcGVhdGVyLXJlbW92ZSBlY2IyLWJ0biBlY2IyLWJ0bi1kZWZhdWx0IGVjYjItaWNvbi1vbmx5IiBkYXRhLXJlcGVhdGVyPSIjZGVtb190ZXh0aW5wdXQyLXJlcGVhdGVyIiB0aXRsZT0iUmVtb3ZlIGxpbmUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJlY2IyLWljb24tdHJhc2gtY2FuLXJlZ3VsYXIiPjwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZWNiX3JlcGVhdGVyX2Zvb3RlciI+CiAgICAgICAgICAgIDxidXR0b24gaWQ9ImRlbW9fdGV4dGlucHV0Mi1yZXBlYXRlci1hZGQiIGNsYXNzPSJlY2IyLXJlcGVhdGVyLWFkZCBlY2IyLWJ0biBlY2IyLWJ0bi1kZWZhdWx0IiBkYXRhLXJlcGVhdGVyPSIjZGVtb190ZXh0aW5wdXQyLXJlcGVhdGVyIiB0aXRsZT0iQWRkIGxpbmUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJlY2IyLWljb24tcGx1cyI+PC9zcGFuPiZuYnNwOyZuYnNwO0FkZCBpdGVtPC9idXR0b24+CiAgICAgICAgPC9kaXY+CgoKPC9maWVsZHNldD4KICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPGgyIGlkPSJ0ZXh0YXJlYSIgY2xhc3M9Im1fYm90dG9tXzUiPnRleHRhcmVhPC9oMj4KICAgICAgICA8cD5UaGUgdGV4dGFyZWEgZmllbGQgY3JlYXRlcyBlaXRoZXIgYSBzaW1wbGUgdGV4dGFyZWEgaW5wdXQsIGZvciBwYXJhZ3JhcGhzIG9mIHRleHQsIG9yIG9wdGlvbmFsbHkgYSBmdWxsIFdZU0lXWUcgZWRpdG9yIHRvIGNyZWF0ZSBmb3JtYXR0ZWQgaHRtbC48L3A+Cgo8ZmllbGRzZXQ+CgogICAgICAgIDx0ZXh0YXJlYSBuYW1lPSJkZW1vX3RleHRhcmVhMSIgaWQ9ImRlbW9fdGV4dGFyZWExIiBjbGFzcz0id3lzaXd5ZyBkZW1vX3RleHRhcmVhMSIgY29scz0iMTAwIiByb3dzPSIzIj5hIHNhbXBsZSB0ZXh0YXJlYTwvdGV4dGFyZWE+CgoKPC9maWVsZHNldD4KCjxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXRleHRhcmVhIGxhYmVsPSdUZXh0YXJlYScgYmxvY2s9dGVzdDYgcm93cz0zIGNvbHM9MTAwIGRlZmF1bHQ9J2Egc2FtcGxlIHRleHRhcmVhJ308L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICc8Yj50ZXh0YXJlYTwvYj4nLCBvciBhbGlhczogJzxiPmVkaXRvcjwvYj4nIChzZXRzIHd5c2l3eWc9dHJ1ZSk8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+YXNzaWduIChyZXF1aXJlZCBmb3IgcmVwZWF0ZXIqKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5yb3dzIChvcHRpb25hbCkgLSBzZXRzIHRoZSBoZWlnaHQgb2YgdGhlIHRleHRhcmVhLiBNYXkgYmUgb3ZlcnJpZGRlbiBieSBjc3MgLSBkZWZhdWx0IDIwPC9saT4KICAgIDxsaT5jb2xzIChvcHRpb25hbCkgLSBzZXRzIHRoZSB3aWR0aCBvZiB0aGUgdGV4dGFyZWEuIE1heSBiZSBvdmVycmlkZGVuIGJ5IGNzcyAtIGRlZmF1bHQgODA8L2xpPgogICAgPGxpPnJlcGVhdGVyIChvcHRpb25hbCkgLSBlbmFibGVzIDEgb3IgbW9yZSB0ZXh0YXJlYSBmaWVsZHMgdG8gYmUgY3JlYXRlZCBhbmQgc29ydGVkIGJ5IGNsaWNraW5nICYgZHJhZ2dpbmcuIE5vdGU6IGFzc2lnbiBtdXN0IGJlIHVzZWQgdG8gY29ycmVjdGx5IHN1cHBseSB0aGUgbXVsdGlwbGUgdmFsdWVzIHRvIHRoZSBwYWdlIHRlbXBsYXRlIGFzIGFuIGFycmF5LjwvbGk+CiAgICA8bGk+bWF4X2Jsb2NrcyAob3B0aW9uYWwpIC0gdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcGVhdGVyIGZpZWxkcyB0aGF0IGNhbiBiZSBjcmVhdGVkPC9saT4KICAgIDxsaT53eXNpd3lnIChvcHRpb25hbCkgLSBlbmFibGVzIGEgd3lzaXd5ZyBlZGl0b3Igb24gdGhlIHRleHRhcmVhIC0gZGVmYXVsdCBmYWxzZTwvbGk+CiAgICA8bGk+ZGVmYXVsdCAob3B0aW9uYWwpIC0gKGFsaWFzOiAnPGI+ZGVmYXVsdF92YWx1ZTwvYj4nKSAtIGluaXRpYWwgdmFsdWUgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4KCjxmaWVsZHNldD4KICAgIDxsZWdlbmQ+U2FtcGxlIHRleHRhcmVhIHdpdGggd3lzaXd5ZyAtIHVzZSAnd3lzaXd5Zz0xJyA8L2xlZ2VuZD4KICAgIAogICAgICAgIDx0ZXh0YXJlYSBuYW1lPSJkZW1vX3RleHRhcmVhMiIgaWQ9ImRlbW9fdGV4dGFyZWEyIiBjbGFzcz0id3lzaXd5ZyBkZW1vX3RleHRhcmVhMiBUaW55TUNFIiBkYXRhLWNtcy1sYW5nPSJodG1sIiBjb2xzPSI4MCIgcm93cz0iMiI+YSBzYW1wbGUgd3lzaXd5ZyB0ZXh0YXJlYTwvdGV4dGFyZWE+CgoKPC9maWVsZHNldD4KCjxmaWVsZHNldD4KICAgIDxsZWdlbmQ+U2FtcGxlIHRleHRhcmVhIHdpdGggd3lzaXd5ZyAmIHJlcGVhdGVyIC0gdXNlIHJlcGVhdGVyICYgbWF4X2Jsb2NrcyAtIHVzZSAncmVwZWF0ZXI9MSBtYXhfYmxvY2tzPTQgYXNzaWduPXRtcCB3eXNpd3lnPTEnIDwvbGVnZW5kPgogICAgCiAgICAgICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImRlbW9fdGV4dGFyZWEzLXJlcGVhdGVyIiBjbGFzcz0iZWNiX3JlcGVhdGVyIHNvcnRhYmxlIHd5c2l3eWciIGRhdGEtYmxvY2stbmFtZT0iZGVtb190ZXh0YXJlYTMiIGRhdGEtaGlnaGVzdC1yb3c9IjEiIGRhdGEtbWF4LWJsb2Nrcz0iNCIgZGF0YS1yZXBlYXRlci1hZGQ9IiNkZW1vX3RleHRhcmVhMy1yZXBlYXRlci1hZGQiPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVwZWF0ZXItd3JhcHBlci10ZW1wbGF0ZSBzb3J0YWJsZS1pdGVtIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWZ0LXBhbmVsIGhhbmRsZSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVjYjItaWNvbi1ncmlwLWRvdHMtdmVydGljYWwtc29saWQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSIiIG5hbWU9IiIgY2xhc3M9InJlcGVhdGVyLWZpZWxkIHd5c2l3eWciIGNvbHM9IjgwIiByb3dzPSIzIiBkYXRhLXJlcGVhdGVyPSIjZGVtb190ZXh0YXJlYTMtcmVwZWF0ZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48L3RleHRhcmVhPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmlnaHQtcGFuZWwiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImVjYjItcmVwZWF0ZXItcmVtb3ZlIGVjYjItYnRuIGVjYjItYnRuLWRlZmF1bHQgZWNiMi1pY29uLW9ubHkiIGRhdGEtcmVwZWF0ZXI9IiNkZW1vX3RleHRhcmVhMy1yZXBlYXRlciIgdGl0bGU9IlJlbW92ZSBsaW5lIiByb2xlPSJidXR0b24iIGFyaWEtZGlzYWJsZWQ9ImZhbHNlIj48c3BhbiBjbGFzcz0iZWNiMi1pY29uLXRyYXNoLWNhbi1yZWd1bGFyIj48L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXBlYXRlci13cmFwcGVyIHNvcnRhYmxlLWl0ZW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVmdC1wYW5lbCBoYW5kbGUiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlY2IyLWljb24tZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBuYW1lPSJkZW1vX3RleHRhcmVhM1tyXzFdIiBpZD0iZGVtb190ZXh0YXJlYTNfcl8xIiBjbGFzcz0icmVwZWF0ZXItZmllbGQgd3lzaXd5ZyBkZW1vX3RleHRhcmVhM1tyXzFdIFRpbnlNQ0UiIGRhdGEtY21zLWxhbmc9Imh0bWwiIGNvbHM9IjgwIiByb3dzPSIzIiBkYXRhLXJlcGVhdGVyPSIjZGVtb190ZXh0YXJlYTMtcmVwZWF0ZXIiPmEgc2FtcGxlIHd5c2l3eWcgdGV4dGFyZWE8L3RleHRhcmVhPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmlnaHQtcGFuZWwiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImVjYjItcmVwZWF0ZXItcmVtb3ZlIGVjYjItYnRuIGVjYjItYnRuLWRlZmF1bHQgZWNiMi1pY29uLW9ubHkiIGRhdGEtcmVwZWF0ZXI9IiNkZW1vX3RleHRhcmVhMy1yZXBlYXRlciIgdGl0bGU9IlJlbW92ZSBsaW5lIiByb2xlPSJidXR0b24iIGFyaWEtZGlzYWJsZWQ9ImZhbHNlIj48c3BhbiBjbGFzcz0iZWNiMi1pY29uLXRyYXNoLWNhbi1yZWd1bGFyIj48L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImVjYl9yZXBlYXRlcl9mb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGlkPSJkZW1vX3RleHRhcmVhMy1yZXBlYXRlci1hZGQiIGNsYXNzPSJlY2IyLXJlcGVhdGVyLWFkZCBlY2IyLWJ0biBlY2IyLWJ0bi1kZWZhdWx0IiBkYXRhLXJlcGVhdGVyPSIjZGVtb190ZXh0YXJlYTMtcmVwZWF0ZXIiIHRpdGxlPSJBZGQgbGluZSIgcm9sZT0iYnV0dG9uIiBhcmlhLWRpc2FibGVkPSJmYWxzZSI+PHNwYW4gY2xhc3M9ImVjYjItaWNvbi1wbHVzIj48L3NwYW4+Jm5ic3A7Jm5ic3A7QWRkIGl0ZW08L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KCjwvZmllbGRzZXQ+CiAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgIDxoMiBpZD0iZHJvcGRvd24iIGNsYXNzPSJtX2JvdHRvbV81Ij5kcm9wZG93bjwvaDI+CiAgICAgICAgPHA+Q3JlYXRlcyBhIGRyb3Bkb3duIChvciBzZWxlY3QpIHRoYXQgdGhlIGVkaXRvciBjYW4gY2hvb3NlIGZyb20gdGhlIHByb3ZpZGVkIG9wdGlvbnMuIFRoZSBkcm9wZG93biBvcHRpb25zIGNhbiBiZSBmcm9tIGE6IGNvbW1hIHNlcGFyYXRlZCBsaXN0ICh2YWx1ZXMpLCBtb2R1bGUgY2FsbCAobW9kKSwgVXNlciBEZWZpbmVkIFRhZyAodWR0KSwgb3IgYSBzbWFydHkgdGVtcGxhdGUgKHRlbXBsYXRlIC8gdWR0KS4gT25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgbXVzdCBiZSB1c2VkICgqKS48L3A+Cgo8ZmllbGRzZXQ+CgogICAgCiAgICAgICAgPHNlbGVjdCBjbGFzcz0iY21zX2Ryb3Bkb3duIiBuYW1lPSJkZW1vX2Ryb3Bkb3duMSI+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD5zZWxlY3QgZnJ1aXQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJhcHBsZSIgPkFwcGxlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ib3JhbmdlIiA+T3JhbmdlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ia2l3aWZydWl0IiA+S2l3aWZydWl0PC9vcHRpb24+CiAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgIAo8L2ZpZWxkc2V0PgoKCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICc8Yj5kcm9wZG93bjwvYj4nLCBvciBhbGlhczogJzxiPnNlbGVjdDwvYj4nLCAnPGI+ZHJvcGRvd25fZnJvbV9tb2R1bGU8L2I+JywgJzxiPmRyb3Bkb3duX2Zyb21fdWR0PC9iPicsICc8Yj5kcm9wZG93bl9mcm9tX2diYzwvYj4nLCAnPGI+ZHJvcGRvd25fZnJvbV9jdXN0b21nczwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPnZhbHVlcyAoKikgLSBjb21tYSBzZXBhcmF0ZWQgc3RyaW5nIG9mICdUZXh0JyBvciAnVGV4dD12YWx1ZScuIEV4YW1wbGU6ICdBcHBsZT1hcHBsZSxPcmFuZ2U9b3JhbmdlLEdyZWVuPWdyZWVuJzxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBibG9jaz1kcm9wZG93bjEgZmllbGQ9ZHJvcGRvd24gdmFsdWVzPSdBcHBsZT1hcHBsZSxPcmFuZ2U9b3JhbmdlJyBmaXJzdF92YWx1ZT0nc2VsZWN0IGZydWl0JyBsYWJlbD0nRnJ1aXQnfTwvcHJlPgogICAgPC9saT4KICAgIDxsaT5tb2QgKCopIC0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgbW9kdWxlIHRvIGNhbGwgdG8gZ2V0IHRoZSBvcHRpb24gdmFsdWVzLiBUaGUgbW9kdWxlIGNhbGwgbmVlZHMgdG8gZWl0aGVyOiBzZXQgYW4gYXJyYXkgJG9wdGlvbnMgb2YgJ3ZhbHVlJyA9PiAnVGV4dCcgd2l0aCBzY29wZT1nbG9iYWwsIG9yIHJldHVybiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mICdUZXh0LC4uLicgb3IgJ1RleHQ9dmFsdWUsLi4uJy4gQW55IGFkZGl0aW9uYWwgcGFyYW1ldGVycyBhcmUgYWxzbyBwYXNzZWQgb250byB0aGUgc3BlY2lmaWVkIG1vZHVsZS4gWW91IG1heSB3YW50IHRvIGluY2x1ZGUgJ2FjdGlvbicgYW5kICd0ZW1wbGF0ZScgcGFyYW1ldGVycy48YnI+CiAgICAgICAgPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgYmxvY2s9ZHJvcGRvd24yIGZpZWxkPWRyb3Bkb3duIG1vZD1MSVNFUHJvamVjdHMgdGVtcGxhdGVfc3VtbWFyeT0naXRlbV9kcm9wZG93bicgcGFnZWxpbWl0PTIgbGFiZWw9J0Ryb3Bkb3duIC0gZnJvbSBtb2R1bGUnfTwvcHJlPgogICAgPC9saT4KICAgIDxsaT51ZHQgKCopIC0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgVXNlciBEZWZpbmVkIFRhZyB0byBjYWxsIHRvIGdldCB0aGUgb3B0aW9uIHZhbHVlcy4gVGhlIFVEVCBzaG91bGQgZWl0aGVyIHJldHVybiBhbiBhcnJheSBvZiAnVGV4dCcgPT4gJ3ZhbHVlJywgb3IgcmV0dXJuIGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiAnVGV4dCcgb3IgJ1RleHQ9dmFsdWUnLjxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBibG9jaz1kcm9wZG93bjMgZmllbGQ9ZHJvcGRvd24gdWR0PSdlY2IyX3Rlc3RfdWR0X29wdGlvbnMnIGxhYmVsPSdEcm9wZG93biAtIGZyb20gdWR0J308L3ByZT4KICAgIDwvbGk+CiAgICA8bGk+dGVtcGxhdGUgKCopIC0gKGFsaWFzOiAnPGI+Z2NiPC9iPicpIC0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgc21hcnR5IHRlbXBsYXRlIGZyb20gRGVzaWduIE1hbmFnZXIgdG8gY2FsbCB0byBnZXQgdGhlIG9wdGlvbiB2YWx1ZXMuIFRoZSB0ZW1wbGF0ZSBjYWxsIG5lZWRzIHRvIGVpdGhlcjogc2V0IGFuIGFycmF5ICRvcHRpb25zIG9mICd2YWx1ZScgPT4gJ1RleHQnIHdpdGggc2NvcGU9Z2xvYmFsLCBvciByZXR1cm4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiAnVGV4dCwuLi4nIG9yICdUZXh0PXZhbHVlLC4uLicuIDxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBibG9jaz1kcm9wZG93bjQgZmllbGQ9ZHJvcGRvd24gdGVtcGxhdGU9J0VDQjJfdGVzdF90ZW1wbGF0ZV9vcHRpb25zJyBsYWJlbD0nRHJvcGRvd24gLSBmcm9tIHRlbXBsYXRlJ308L3ByZT4KICAgIDwvbGk+CiAgICA8bGk+Y3VzdG9tZ3NfZmllbGQgKCopIC0gbmFtZSBvZiBjdXN0b21nc19maWVsZCB0byByZXRyaWV2ZSAod2l0aCBzcGFjZXMsIG5vdCB1bmRlcnNjb3JlcykgZS5nLiAnU2VjdGlvbiBTdHlsZXMnLiBUaGlzIG5lZWRzIHRvIGJlIGEgQ3VzdG9tR1MgJ3RleHRhcmVhJyBjb250YWluaW5nIGEgc2V0IG9mICdUZXh0JyBvciAnVGV4dD12YWx1ZScsIGVpdGhlciBvbiBzZXBhcmF0ZSBsaW5lcyBvciBzZXBhcmF0ZWQgYnkgY29tbWFzLjxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBibG9jaz1kcm9wZG93bjMgZmllbGQ9ZHJvcGRvd24gY3VzdG9tZ3NfZmllbGQ9J1NlY3Rpb24gU3R5bGVzJyAgbGFiZWw9J0Ryb3Bkb3duIC0gZnJvbSBDdXN0b21HUyd9PC9wcmU+CiAgICA8L2xpPgogICAgPGxpPmZpcnN0X3ZhbHVlIChvcHRpb25hbCkgLSBzZXRzIGFuIHRleHQgc3RpbmcgZm9yIHRoZSBmaXJzdCBibGFuayB2YWx1ZSwgZS5nLiAnLS0tIHNlbGVjdCBvbmUgLS0tJzwvbGk+CiAgICA8bGk+ZmxpcF92YWx1ZXMgKG9wdGlvbmFsKSAtIHN3YXBzIHRoZSBkcm9wZG93bnMgdmFsdWVzIDwtPiB0ZXh0PC9saT4KICAgIDxsaT5tdWx0aXBsZSAob3B0aW9uYWwpIC0gYWRkIG11bHRpcGxlIG9wdGlvbiBzZWxlY3Qgc3VwcG9ydDwvbGk+CiAgICA8bGk+c2l6ZSAob3B0aW9uYWwpIC0gbXVsdGlwbGUgZW5hYmxlZCBvbmx5PC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KICAgIDxsaT5jb21wYWN0IChvcHRpb25hbCkgLSBkZWZhdWx0OmZhbHNlIC0gaWYgc2V0LCBmb3IgbXVsdGlwbGUgb25seSwgYSBzdW1tYXJ5IG9mIHRoZSBzZWxlY3RlZCBvcHRpb25zIGlzIGRpc3BsYXllZCBhbmQgdGhlIGZ1bGwgc2VsZWN0IGlzIHNob3duL2hpZGRlbiB3aGVuICdlZGl0L2hpZGUnIGlzIGNsaWNrZWQ8L2xpPgogICAgPGxpPmRlZmF1bHQgKG9wdGlvbmFsKSAtIChhbGlhczogJzxiPmRlZmF1bHRfdmFsdWU8L2I+JykgLSBpbml0aWFsIHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZTwvbGk+CjwvdWw+Cjxicj4KPHA+U2FtcGxlIHRlbXBsYXRlIGZvciAnbW9kJyBwYXJhbWV0ZXIgZm9yIGEgTElTRSBJbnN0YW5jZSBzdW1tYXJ5IHRlbXBsYXRlLiBTaW1pbGFyIGNhbiBhbHNvIGJlIHVzZWQgd2l0aCB0aGUgJ3RlbXBsYXRlJyBwYXJhbWV0ZXIuPC9wPgo8cHJlPgp7KiBpdGVtX2Ryb3Bkb3duIC0gTElTRSBTdW1tYXJ5IHRlbXBsYXRlIGZvciBFQ0IyIGRyb3Bkb3duIG9yIHNvcnRhYmxlbGlzdCAqfQp7KiBFSVRIRVIgc2V0IHRoZSB2YXIgJG9wdGlvbnMgJiBzY29wZT1nbG9iYWwgKGltcG9ydGFudCEpICp9Cnskb3B0aW9ucz1bXX0Ke2ZvcmVhY2ggJGl0ZW1zIGFzICRpdGVtfQogICAgeyRvcHRpb25zWyRpdGVtLT5hbGlhc109JGl0ZW0tPnRpdGxlIHNjb3BlPWdsb2JhbH0Key9mb3JlYWNofQp7KiBPUiB1c2UgdGhlIGZvbGxvd2luZyBmb3JtYXQgdG8gcmV0dXJuIGEgY29tbWEgc2VwYXJhdGVkIGxpc3QgKn0KeyoKe2ZvcmVhY2ggJGl0ZW1zIGFzICRpdGVtfQogICAgeyRpdGVtLT50aXRsZX09eyRpdGVtLT5hbGlhc317aWYgISRpdGVtQGxhc3R9LHsvaWZ9CnsvZm9yZWFjaH0KKn0KPC9wcmU+CgoKPGZpZWxkc2V0PgogICAgPGxlZ2VuZD5TYW1wbGUgZHJvcGRvd24gd2l0aCBtdWx0aXBsZSBzZWxlY3QgLSB1c2UgJ211bHRpcGxlPTEnIDwvbGVnZW5kPgogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVjYl9tdWx0aXBsZV9zZWxlY3QgIGNtc19kcm9wZG93biAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImRlbW9fZHJvcGRvd24yIiBjbGFzcz0iZWNiX3NlbGVjdF9pbnB1dCIgbmFtZT0iZGVtb19kcm9wZG93bjIiIHZhbHVlPSJvcmFuZ2UiIC8+CiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9ImNtc19kcm9wZG93biIgbmFtZT0iZGVtb19kcm9wZG93bjJfdG1wIiBtdWx0aXBsZSBzaXplPSI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImFwcGxlIiA+QXBwbGU8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im9yYW5nZSIgc2VsZWN0ZWQ+T3JhbmdlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJraXdpZnJ1aXQiID5LaXdpZnJ1aXQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAKPC9maWVsZHNldD4KCjxmaWVsZHNldD4KPGxlZ2VuZD5TYW1wbGUgZHJvcGRvd24gd2l0aCBtdWx0aXBsZSAmIGNvbXBhY3Qgc2VsZWN0IC0gdXNlICdtdWx0aXBsZT0xIGNvbXBhY3Q9MScgPC9sZWdlbmQ+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlY2JfbXVsdGlwbGVfc2VsZWN0ICBjbXNfZHJvcGRvd24gZWNiX2NvbXBhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVjYl9zZWxlY3Rfc3VtbWFyeSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZWNiX3NlbGVjdF90ZXh0IiBkYXRhLWVtcHR5PSItLS0gbm9uZSAtLS0iPkFwcGxlLCBLaXdpZnJ1aXQ8L3NwYW4+CiAgICAgICAgICAgICAgICAmbmJzcDs8YSBjbGFzcz0iZWNiX3NlbGVjdF9lZGl0IiBocmVmPSJlZGl0L2hpZGUiPjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGVtb19kcm9wZG93bjMiIGNsYXNzPSJlY2Jfc2VsZWN0X2lucHV0IiBuYW1lPSJkZW1vX2Ryb3Bkb3duMyIgdmFsdWU9ImFwcGxlLGtpd2lmcnVpdCIgLz4KICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz0iY21zX2Ryb3Bkb3duIiBuYW1lPSJkZW1vX2Ryb3Bkb3duM190bXAiIG11bHRpcGxlIHNpemU9IjMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYXBwbGUiIHNlbGVjdGVkPkFwcGxlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJvcmFuZ2UiID5PcmFuZ2U8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Imtpd2lmcnVpdCIgc2VsZWN0ZWQ+S2l3aWZydWl0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgCjwvZmllbGRzZXQ+Cgo8YnI+CiAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgIDxoMiBpZD0ic29ydGFibGVsaXN0IiBjbGFzcz0ibV9ib3R0b21fNSI+c29ydGFibGVsaXN0PC9oMj4KICAgICAgICA8cD5DcmVhdGVzIGEgc29ydGFibGVsaXN0IHRoYXQgdGhlIGVkaXRvciBjYW4gZHJhZy1hbmQtZHJvcCB0byBzZWxlY3QgZnJvbSB0aGUgbGlzdC4gVGhlIG9wdGlvbnMgY2FuIGJlIGNyZWF0ZWQgZnJvbSBhOiBjb21tYSBzZXBhcmF0ZWQgbGlzdCAodmFsdWVzKSwgbW9kdWxlIGNhbGwgKG1vZCksIFVzZXIgRGVmaW5lZCBUYWcgKHVkdCksIG9yIGEgc21hcnR5IHRlbXBsYXRlICh0ZW1wbGF0ZSAvIHVkdCkuIE9uZSBvZiB0aGVzZSBwYXJhbWV0ZXJzIG11c3QgYmUgdXNlZCAoKikuPC9wPgoKPGZpZWxkc2V0Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGVtb19zb3J0YWJsZWxpc3QxIiBuYW1lPSJkZW1vX3NvcnRhYmxlbGlzdDEiIHZhbHVlPSJvcmFuZ2UiIHNpemU9IjEwMCIvPgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YgZWNiMi1jYiBkZW1vX3NvcnRhYmxlbGlzdDEiPgogICAgPGRpdiBjbGFzcz0iZ3JpZF82IGFscGhhIj4KICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgIDxsZWdlbmQ+U2VsZWN0ZWQ8L2xlZ2VuZD4KICAgICAgICAgICAgPGRpdiBpZD0ic2VsZWN0ZWQtaXRlbXMiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJzb3J0YWJsZS1lY2IyLWxpc3Qgc29ydGFibGUtbGlzdCBzZWxlY3RlZC1pdGVtcyIgZGF0YS1jbXNtcy1jYi1pbnB1dD0iZGVtb19zb3J0YWJsZWxpc3QxIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0icGxhY2Vob2xkZXIgbm8tc29ydCAgaGlkZGVuIj5ObyBpdGVtcyBzZWxlY3RlZCAtIGRyb3Agc2VsZWN0ZWQgaXRlbXMgaGVyZTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IGNmIHNvcnRhYmxlLWl0ZW0iIGRhdGEtY21zbXMtaXRlbS1pZD0ib3JhbmdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yYW5nZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlJlbW92ZSIgY2xhc3M9InVpLWljb24gdWktaWNvbi10cmFzaCBzb3J0YWJsZS1yZW1vdmUiPlJlbW92ZTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9maWVsZHNldD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ3JpZF82IG9tZWdhIGRyYWdnYWJsZS1hcmVhIj4KICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgIDxsZWdlbmQ+QXZhaWxhYmxlPC9sZWdlbmQ+CiAgICAgICAgICAgIDxkaXYgaWQ9ImF2YWlsYWJsZS1pdGVtcyI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InNvcnRhYmxlLWVjYjItbGlzdCBzb3J0YWJsZS1saXN0IGF2YWlsYWJsZS1pdGVtcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQiIGRhdGEtY21zbXMtaXRlbS1pZD0iYXBwbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIHRpdGxlPSJSZW1vdmUiIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tdHJhc2ggc29ydGFibGUtcmVtb3ZlIGhpZGRlbiI+UmVtb3ZlPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IiBkYXRhLWNtc21zLWl0ZW0taWQ9ImdyZWVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyZWVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iUmVtb3ZlIiBjbGFzcz0idWktaWNvbiB1aS1pY29uLXRyYXNoIHNvcnRhYmxlLXJlbW92ZSBoaWRkZW4iPlJlbW92ZTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCIgZGF0YS1jbXNtcy1pdGVtLWlkPSJ2YWx1ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlJlbW92ZSIgY2xhc3M9InVpLWljb24gdWktaWNvbi10cmFzaCBzb3J0YWJsZS1yZW1vdmUgaGlkZGVuIj5SZW1vdmU8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9maWVsZHNldD4KICAgIDwvZGl2Pgo8L2Rpdj4KPC9maWVsZHNldD4KCgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnc29ydGFibGVsaXN0JzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT52YWx1ZXMgKCopIC0gY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiAnVGV4dCcgb3IgJ3ZhbHVlPVRleHQnLiAoTm90ZTogdGhpcyBpcyByZXZlcnNlZCBjb21wYXJlZCB0byAnZHJvcGRvd24nIHZhbHVlcyAtIHVzZSBmbGlwX3ZhbHVlcyBpZiBuZWNlc3NhcnkpIGUuZzo8YnI+CiAgICAgICAgPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9c29ydGFibGVsaXN0IGJsb2NrPXRlc3Q0IGxhYmVsPSdGcnVpdCcgdmFsdWVzPSdhcHBsZT1BcHBsZSxvcmFuZ2U9T3JhbmdlLGdyZWVuPUdyZWVuLHZhbHVlPUxhYmVsJ308L3ByZT4KICAgIDwvbGk+ICAgCiAgICA8bGk+bW9kICgqKSAtIHNwZWNpZmllcyB0aGUgbmFtZSBvZiBhIG1vZHVsZSB0byBjYWxsIHRvIGdldCB0aGUgb3B0aW9uIHZhbHVlcy4gCiAgICBUaGUgdGVtcGxhdGUgY2FsbCBuZWVkcyB0byBlaXRoZXI6IHNldCBhbiBhcnJheSAkb3B0aW9ucyBvZiAndmFsdWUnID0+ICdUZXh0JyB3aXRoIHNjb3BlPWdsb2JhbCwgb3IgcmV0dXJuIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgJ1RleHQsLi4uJyBvciAnVGV4dD12YWx1ZSwuLi4nLiBBbnkgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGFyZSBhbHNvIHBhc3NlZCBvbnRvIHRoZSBzcGVjaWZpZWQgbW9kdWxlLiBZb3UgbWF5IHdhbnQgdG8gaW5jbHVkZSAnYWN0aW9uJyBhbmQgJ3RlbXBsYXRlJyBwYXJhbWV0ZXJzLiBlLmc6PGJyPgogICAgICAgIDxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXNvcnRhYmxlbGlzdCBibG9jaz10ZXN0NGEgbGFiZWw9J1NvcnRhYmxlIExpc3QgLSBmcm9tIG1vZHVsZScgbW9kPUxJU0VQcm9qZWN0cyB0ZW1wbGF0ZV9zdW1tYXJ5PSdpdGVtX2Ryb3Bkb3duJyBwYWdlbGltaXQ9Mn08L3ByZT4KICAgIDwvbGk+CiAgICA8bGk+dWR0ICgqKSAtIHNwZWNpZmllcyB0aGUgbmFtZSBvZiBhIFVzZXIgRGVmaW5lZCBUYWcgdG8gY2FsbCB0byBnZXQgdGhlIG9wdGlvbiB2YWx1ZXMuIFRoZSBVRFQgc2hvdWxkIGVpdGhlciByZXR1cm4gYW4gYXJyYXkgb2YgJ3ZhbHVlJyA9PiAnVGV4dCcsIG9yIHJldHVybiBhIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmcgb2YgJ1RleHQnIG9yICdUZXh0PXZhbHVlJy48YnI+CiAgICAgICAgPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9c29ydGFibGVsaXN0IGJsb2NrPXRlc3Q0YiB1ZHQ9J2VjYjJfdGVzdF91ZHRfb3B0aW9ucycgbGFiZWw9J1NvcnRhYmxlIExpc3QgLSBmcm9tIHVkdCd9PC9wcmU+CiAgICA8L2xpPgogICAgPGxpPnRlbXBsYXRlICgqKSAtIHNwZWNpZmllcyB0aGUgbmFtZSBvZiBhIHNtYXJ0eSB0ZW1wbGF0ZSBmcm9tIERlc2lnbiBNYW5hZ2VyIHRvIGNhbGwgdG8gZ2V0IHRoZSBvcHRpb24gdmFsdWVzLiBUaGUgdGVtcGxhdGUgY2FsbCBuZWVkcyB0byBlaXRoZXI6IHNldCBhbiBhcnJheSAkb3B0aW9ucyBvZiAndmFsdWUnID0+ICdUZXh0JyB3aXRoIHNjb3BlPWdsb2JhbCwgb3IgcmV0dXJuIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgJ1RleHQsLi4uJyBvciAnVGV4dD12YWx1ZSwuLi4nLjxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zb3J0YWJsZWxpc3QgYmxvY2s9dGVzdDRjIHRlbXBsYXRlPSdFQ0IyX3Rlc3RfdGVtcGxhdGVfb3B0aW9ucycgbGFiZWw9J1NvcnRhYmxlIExpc3QgLSBmcm9tIHRlbXBsYXRlJyBsYWJlbF9sZWZ0PSdTZWxlY3RlZCBpdGVtcyBmcm9tIHRlbXBsYXRlJyBsYWJlbF9yaWdodD0nQXZhaWxhYmxlIGl0ZW1zIGZyb20gdGVtcGxhdGUnfTwvcHJlPgogICAgPC9saT4KICAgIDxsaT5jdXN0b21nc19maWVsZCAoKikgLSBuYW1lIG9mIGN1c3RvbWdzX2ZpZWxkIHRvIHJldHJpZXZlICh3aXRoIHNwYWNlcywgbm90IHVuZGVyc2NvcmVzKSBlLmcuICdTZWN0aW9uIFN0eWxlcycuIFRoaXMgbmVlZHMgdG8gYmUgYSBDdXN0b21HUyAndGV4dGFyZWEnIGNvbnRhaW5pbmcgYSBzZXQgb2YgJ1RleHQnIG9yICdUZXh0PXZhbHVlJywgZWl0aGVyIG9uIHNlcGFyYXRlIGxpbmVzIG9yIHNlcGFyYXRlZCBieSBjb21tYXMuPGJyPgogICAgICAgIDxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXNvcnRhYmxlbGlzdCBibG9jaz10ZXN0NGQgY3VzdG9tZ3NfZmllbGQ9J1NlY3Rpb24gU3R5bGVzJyBsYWJlbD0nU29ydGFibGUgTGlzdCAtIGZyb20gQ3VzdG9tR1MnfTwvcHJlPgogICAgPC9saT4KICAgIDxsaT5sYWJlbF9sZWZ0IChvcHRpb25hbCkgLSBkZWZhdWx0OiAnU2VsZWN0ZWQnPC9saT4KICAgIDxsaT5sYWJlbF9yaWdodCAob3B0aW9uYWwpIC0gZGVmYXVsdDogJ0F2YWlsYWJsZSc8L2xpPgogICAgPGxpPm1heF9udW1iZXIgKG9wdGlvbmFsKSAtIGxpbWl0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdGhhdCBjYW4gYmUgc2VsZWN0ZWQ8L2xpPgogICAgPGxpPnJlcXVpcmVkX251bWJlciAob3B0aW9uYWwpIC0gc2V0cyBhIHNwZWNpZmljIG51bWJlciBvZiBpdGVtcyB0aGF0IG11c3QgYmUgc2VsZWN0ZWQgKG9yIG5vbmUpPC9saT4KICAgIDxsaT5mbGlwX3ZhbHVlcyAob3B0aW9uYWwpIC0gc3dhcHMgdGhlIGRyb3Bkb3ducyB2YWx1ZXMgPC0+IHRleHQ8L2xpPgogICAgPGxpPmRlZmF1bHQgKG9wdGlvbmFsKSAtIChhbGlhczogJzxiPmRlZmF1bHRfdmFsdWU8L2I+JykgLSBpbml0aWFsIHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZTwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+Cjxicj4KCiAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgIDxoMiBpZD0iY2hlY2tib3giIGNsYXNzPSJtX2JvdHRvbV81Ij5jaGVja2JveDwvaDI+CiAgICAgICAgPHA+VGhlIGNoZWNrYm94IGZpZWxkIGNyZWF0ZXMgYSBzaW1wbGUgY2hlY2stYWJsZSBpbnB1dC48L3A+Cgo8ZmllbGRzZXQ+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPlRlc3QgY2hlY2tib3g8L3A+CiAgICAKICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZW1vX2NoZWNrYm94MSIgdmFsdWU9IjAiPgogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImRlbW9fY2hlY2tib3gxIiBjbGFzcz0iY21zX2NoZWNrYm94IiBuYW1lPSJkZW1vX2NoZWNrYm94MSIgdmFsdWU9IjEiIGNoZWNrZWQ9ImNoZWNrZWQiPgogICAgCgo8L2ZpZWxkc2V0PgoKPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9Y2hlY2tib3ggYmxvY2s9dGVzdDUgbGFiZWw9J1Rlc3QgY2hlY2tib3gnIGRlZmF1bHQ9MX08L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdjaGVja2JveCc8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+aW5saW5lX2xhYmVsIChvcHRpb25hbCkgLSBhZGRzIGEgY2xpY2thYmxlIGlubGluZSBsYWJlbCB0byB0aGUgY2hlY2tib3guIFRpcDogSWYgeW91IGFkZCBsYWJlbD0nJmFtcDtuYnNwOycgdGhlIGxhYmVsIGFib3ZlIHRoZSBjaGVja2JveCB3aWxsIGJlIGhpZGRlbjwvbGk+CiAgICA8bGk+ZGVmYXVsdCAob3B0aW9uYWwpIC0gKGFsaWFzOiAnPGI+ZGVmYXVsdF92YWx1ZTwvYj4nKSAtIGluaXRpYWwgdmFsdWUgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4KCjxmaWVsZHNldD4KICAgIDxsZWdlbmQ+U2FtcGxlIGNoZWNrYm94IHdpdGggaW5saW5lX2xhYmVsIC0gdXNlICdpbmxpbmVfbGFiZWw9ImlubGluZSBsYWJlbCBmb3IgY2hlY2tib3giIGxhYmVsPSImYW1wO25ic3A7IicgPC9sZWdlbmQ+CiAgICAKICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZW1vX2NoZWNrYm94MiIgdmFsdWU9IjAiPgogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImRlbW9fY2hlY2tib3gyIiBjbGFzcz0iY21zX2NoZWNrYm94IGlubGluZS1sYWJlbCBlY2IyLWhpZGUtbGFiZWwiIG5hbWU9ImRlbW9fY2hlY2tib3gyIiB2YWx1ZT0iMSIgY2hlY2tlZD0iY2hlY2tlZCI+CiAgICAgICAgICAgIDxsYWJlbCBmb3I9ImRlbW9fY2hlY2tib3gyIj4gPGI+aW5saW5lIGxhYmVsIGZvciBjaGVja2JveDwvYj48L2xhYmVsPgogICAgCgo8L2ZpZWxkc2V0PgogICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICA8aDIgaWQ9InJhZGlvIiBjbGFzcz0ibV9ib3R0b21fNSI+cmFkaW88L2gyPgogICAgICAgIDxwPlRoZSByYWRpbyBmaWVsZCBjcmVhdGVzIGEgc2ltcGxlIHRleHQgaW5wdXQsIGZvciBzdG9yaW5nIGEgc2luZ2xlIHN0cmluZy48L3A+Cgo8ZmllbGRzZXQ+CiAgICAKICAgICAgICA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJkZW1vX3JhZGlvMSIgdmFsdWU9ImFwcGxlIiAvPkFwcGxlPC9sYWJlbD48YnI+CjxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImRlbW9fcmFkaW8xIiB2YWx1ZT0ib3JhbmdlIiBjaGVja2VkPSJjaGVja2VkIiAvPk9yYW5nZTwvbGFiZWw+PGJyPgo8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJkZW1vX3JhZGlvMSIgdmFsdWU9Imtpd2lmcnVpdCIgLz5LaXdpZnJ1aXQ8L2xhYmVsPjxicj4gCgoKPC9maWVsZHNldD4KCjxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXJhZGlvIGJsb2NrPXRlc3QxNyBsYWJlbD0nRnJ1aXQnIHZhbHVlcz0nQXBwbGU9YXBwbGUsT3JhbmdlPW9yYW5nZSxLaXdpZnJ1aXQ9a2l3aWZydWl0JyBkZWZhdWx0PSdvcmFuZ2UnfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ3JhZGlvJzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT52YWx1ZXMgKHJlcXVpcmVkKSAtIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mICdUZXh0JyBvciAnVGV4dD12YWx1ZScuIEV4YW1wbGU6ICdBcHBsZT1hcHBsZSxPcmFuZ2U9b3JhbmdlLEtpd2lmcnVpdD1raXdpZnJ1aXQnPC9saT4KICAgIDxsaT5mbGlwX3ZhbHVlcyAob3B0aW9uYWwpIC0gc3dhcHMgdGhlIGRyb3Bkb3ducyB2YWx1ZXMgPC0+IHRleHQ8L2xpPgogICAgPGxpPmlubGluZSAob3B0aW9uYWwpIC0gaWYgc2V0IGRpc3BsYXlzIGFkbWluIHJhZGlvIGJ1dHRvbnMgaW5saW5lPC9saT4KICAgIDxsaT5kZWZhdWx0IChvcHRpb25hbCkgLSAoYWxpYXM6ICc8Yj5kZWZhdWx0X3ZhbHVlPC9iPicpIC0gaW5pdGlhbCB2YWx1ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2U8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPgoKPGZpZWxkc2V0PgogICAgPGxlZ2VuZD5yYWRpbyB3aXRoIGlubGluZSBidXR0b25zIC0gdXNlICdpbmxpbmU9MSc8L2xlZ2VuZD4KICAgIAogICAgICAgIDxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImRlbW9fcmFkaW8yIiB2YWx1ZT0iYXBwbGUiIC8+QXBwbGU8L2xhYmVsPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJkZW1vX3JhZGlvMiIgdmFsdWU9Im9yYW5nZSIgY2hlY2tlZD0iY2hlY2tlZCIgLz5PcmFuZ2U8L2xhYmVsPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJkZW1vX3JhZGlvMiIgdmFsdWU9Imtpd2lmcnVpdCIgLz5LaXdpZnJ1aXQ8L2xhYmVsPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAKCgo8L2ZpZWxkc2V0PgogICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICA8aDIgaWQ9ImdhbGxlcnkiIGNsYXNzPSJtX2JvdHRvbV81Ij5nYWxsZXJ5PC9oMj4KICAgICAgICA8cD5UaGUgZ2FsbGVyeSBmaWVsZCBlbmFibGVzIG11bHRpcGxlIGltYWdlcyB0byBhZGRlZCBieSBkcmFnZ2luZyBhbmQgZHJvcHBpbmcgb3IgdXBsb2FkaW5nLiBUaHVtYm5haWxzIG9mIHRoZSBpbWFnZXMgYXJlIGRpc3BsYXllZCBhbmQgY3JlYXRlZCBvbiB0aGUgc2VydmVyIGFuZCBpbWFnZXMgY2FuIG9wdGlvbmFsbHkgYmUgYXV0b21hdGljYWxseSByZXNpemVkIGJlZm9yZSB0aGV5IGFyZSB1cGxvYWRlZC4gRWFjaCBpbWFnZSBjYW4gYWxzbyBoYXZlIG11bHRpcGxlIHN1Yi1maWVsZHMuIElmIG1vcmUgdGhhbiAxIGltYWdlIGlzIHVwbG9hZGVkIHRoZXkgY2FuIGFsc28gYmUgZHJhZ2dlZCBhbmQgZHJvcHBlZCB0byByZW9yZGVyIHRoZSBpbWFnZXMuPC9wPgoKPGZpZWxkc2V0PgogICAgCjxkaXYgY2xhc3M9ImVjYjItZHJvcHpvbmUgc29ydGFibGUgZHJvcHpvbmUtcHJldmlld3MiIGRhdGEtZHJvcHpvbmUtdXJsPSJodHRwczovL2xvY2FsaG9zdC9tb2R1bGUtZGV2L2FkbWluL21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1FQ0IyLG0xXyxkb19VcGxvYWRGaWxlcywwJmFtcDtfX2M9YWEzMjhmMmY0NzM5YTNiYTI3NCIgZGF0YS1ibG9jay1uYW1lPSJkZW1vX2dhbGxlcnkxIiBkYXRhLWxvY2F0aW9uPSJodHRwczovL2xvY2FsaG9zdC9tb2R1bGUtZGV2L3VwbG9hZHMvaW1hZ2VzL19lY2IyX2ltYWdlcy9kZW1vX2dhbGxlcnkxLyIgZGF0YS1kcm9wem9uZS12YWx1ZXM9IltdIiBkYXRhLWRyb3B6b25lLXRodW1ibmFpbC13aWR0aD0iOTYiIGRhdGEtZHJvcHpvbmUtdGh1bWJuYWlsLWhlaWdodD0iOTYiIGRhdGEtZHJvcHpvbmUtdGh1bWJuYWlsLXByZWZpeD0idGh1bWJfIiBkYXRhLWRyb3B6b25lLW1heC1maWxlcy10ZXh0PSJZb3UgaGF2ZSBhbHJlYWR5IHVwbG9hZGVkIHRoZSBtYXhpbXVtIG9mIHVubGltaXRlZCBmaWxlcyIgZGF0YS1oaWdoZXN0LXJvdz0iMSI+CiAgICA8ZGl2IGNsYXNzPSJmYWxsYmFjayBlY2IyLWZhbGxiYWNrIj4KICAgICAgICA8aW5wdXQgbmFtZT0iZmlsZSIgdHlwZT0iZmlsZSIgbXVsdGlwbGUgLz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRyb3B6b25lLXByZXZpZXctdGVtcGxhdGUiPgogICAgICAgIDxkaXYgY2xhc3M9ImR6LXByZXZpZXcgZHotZmlsZS1wcmV2aWV3IGR6LXRodW1iLXNtIiBzdHlsZT0iZGlzcGxheTpub25lOyIgZGF0YS1yb3c9IiI+CiAgICAgICAgICAgIDxpbnB1dCBpZD0iIiBuYW1lPSIiIGNsYXNzPSJkei1pbnB1dC1maWxlbmFtZSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIi8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR6LWltYWdlIiBzdHlsZT0id2lkdGg6OTZweDsgaGVpZ2h0Ojk2cHg7Ij4KICAgICAgICAgICAgICAgIDxpbWcgZGF0YS1kei10aHVtYm5haWw9IiI+CiAgICAgICAgICAgIDwvZGl2PiAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR6LWRldGFpbHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHotZmlsZW5hbWUiPjxzcGFuIGRhdGEtZHotbmFtZT48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkei1zaXplIiBkYXRhLWR6LXNpemU+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkei1oYW5kbGUgZWNiMi1idG4gZWNiMi1idG4tZGVmYXVsdCI+PHNwYW4gY2xhc3M9ImVjYjItaWNvbi1ncmlwLWRvdHMtdmVydGljYWwtc29saWQiPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkei1lZGl0IGVjYjItYnRuIGVjYjItYnRuLWRlZmF1bHQiIHRpdGxlPSJFZGl0IHN1Yi1maWVsZHMiIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJlY2IyLWljb24tcGVuY2lsIj48L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZHotcmVtb3ZlIGVjYjItYnRuIGVjYjItYnRuLWRlZmF1bHQiIGRhdGEtZHotcmVtb3ZlIHRpdGxlPSJSZW1vdmUgaW1hZ2UiIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJlY2IyLWljb24tdHJhc2gtY2FuLXJlZ3VsYXIiPjwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHotcHJvZ3Jlc3MiPjxzcGFuIGNsYXNzPSJkei11cGxvYWQiIGRhdGEtZHotdXBsb2FkcHJvZ3Jlc3M+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkei1zdWNjZXNzLW1hcmsiPjxpIGNsYXNzPSJlY2IyLWljb24tY2hlY2siPjwvaT48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHotZXJyb3ItbWFyayI+PGkgY2xhc3M9ImVjYjItaWNvbi14bWFyayI+PC9pPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkei1lcnJvci1tZXNzYWdlIj48c3BhbiBkYXRhLWR6LWVycm9ybWVzc2FnZT48L3NwYW4+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJkZW1vX2dhbGxlcnkxLXVwbG9hZC1wcm9tcHQiIGNsYXNzPSJkei11cGxvYWQtcHJvbXB0IGVjYjItYnRuIGVjYjItYnRuLWRlZmF1bHQiIHN0eWxlPSIgaGVpZ2h0Ojk2cHg7IiB0aXRsZT0iRHJvcCBpbWFnZXMgaGVyZSBvciBjbGljayB0byB1cGxvYWQiPgogICAgICAgIDxzcGFuIGNsYXNzPSJlY2IyLWljb24tcGx1cyI+PC9zcGFuPgogICAgICAgIDxpbnB1dCBpZD0iIiBuYW1lPSJkZW1vX2dhbGxlcnkxW2VtcHR5XSIgY2xhc3M9ImR6LWlucHV0LWZpbGVuYW1lIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiLz4gICAgPC9kaXY+CjwvZGl2PgoKCjxkaXYgaWQ9ImRlbW9fZ2FsbGVyeTEtc3ViLWZpZWxkcyIgY2xhc3M9ImVjYjItZHotc3ViLWZpZWxkcyI+CiAgICA8ZGl2IGNsYXNzPSJkei1zdWItZmllbGRzLXRlbXBsYXRlIiBkYXRhLXN1Yi1maWVsZC1wYXJlbnQ9ImRlbW9fZ2FsbGVyeTEtc3ViLWZpZWxkcyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItZmllbGQgc3ViLWZpZWxkLXRleHRpbnB1dCI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ic3ViX2ZpZWxkX2xhYmVsIj5UaXRsZTwvbGFiZWw+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IiIgbmFtZT0iIiBjbGFzcz0iIHJlcGVhdGVyLWZpZWxkIiB2YWx1ZT0iIiBzaXplPSIzMCIgbWF4bGVuZ3RoPSIyNTUiIGRhdGEtcmVwZWF0ZXI9IiN0aXRsZS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ0aXRsZSIgLz4KCiAgICAKCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItZmllbGQgc3ViLWZpZWxkLXRleHRhcmVhIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzdWJfZmllbGRfbGFiZWwiPkRlc2NyaXB0aW9uPC9sYWJlbD4KICAgICAgICAgICAgCiAgICAgIAogICAgICAgICAgICA8dGV4dGFyZWEgaWQ9IiIgbmFtZT0iIiBjbGFzcz0iIHd5c2l3eWcgVGlueU1DRSByZXBlYXRlci1maWVsZCIgY29scz0iODAiIHJvd3M9IjQiIGRhdGEtcmVwZWF0ZXI9IiNkZXNjcmlwdGlvbi1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJkZXNjcmlwdGlvbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjwvdGV4dGFyZWE+CgogICAgCgogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWZpZWxkIHN1Yi1maWVsZC1wYWdlX3BpY2tlciI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ic3ViX2ZpZWxkX2xhYmVsIj5TZWxlY3QgYSBwYWdlPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IiIgbmFtZT0iIiBjbGFzcz0iIHJlcGVhdGVyLWZpZWxkIiB2YWx1ZT0iLTEiIGRhdGEtcmVwZWF0ZXI9IiNsaW5rX3RvLXJlcGVhdGVyIiBkYXRhLWZpZWxkLW5hbWU9ImxpbmtfdG8iLz4KCiAgICAKCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGlkPSJkZW1vX2dhbGxlcnkxX3JfMV9zdWJfZmllbGRzIiBjbGFzcz0iZHotc3ViLWZpZWxkIiBkYXRhLXN1Yi1maWVsZC1wYXJlbnQ9ImRlbW9fZ2FsbGVyeTEtc3ViLWZpZWxkcyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItZmllbGQgcm93MSBjb2wxIHN1Yi1maWVsZC10ZXh0aW5wdXQiPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ic3ViX2ZpZWxkX2xhYmVsIj5UaXRsZTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRlbW9fZ2FsbGVyeTFfcl8xX3RpdGxlIiBuYW1lPSJkZW1vX2dhbGxlcnkxW3JfMV1bdGl0bGVdIiBjbGFzcz0iIHJlcGVhdGVyLWZpZWxkIiB2YWx1ZT0iIiBzaXplPSIzMCIgbWF4bGVuZ3RoPSIyNTUiLz4KCiAgICAKCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItZmllbGQgcm93MSBjb2wyIHN1Yi1maWVsZC10ZXh0YXJlYSI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJzdWJfZmllbGRfbGFiZWwiPkRlc2NyaXB0aW9uOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAKICAgICAgICAKICAgICAgICA8dGV4dGFyZWEgbmFtZT0iZGVtb19nYWxsZXJ5MVtyXzFdW2Rlc2NyaXB0aW9uXSIgaWQ9ImRlbW9fZ2FsbGVyeTFfcl8xX2Rlc2NyaXB0aW9uIiBjbGFzcz0id3lzaXd5ZyBUaW55TUNFIHJlcGVhdGVyLWZpZWxkIGRlbW9fZ2FsbGVyeTFbcl8xXVtkZXNjcmlwdGlvbl0gVGlueU1DRSIgZGF0YS1jbXMtbGFuZz0iaHRtbCIgY29scz0iODAiIHJvd3M9IjQiPjwvdGV4dGFyZWE+CgogICAgCgogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWZpZWxkIHJvdzEgY29sMyBzdWItZmllbGQtcGFnZV9waWNrZXIiPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ic3ViX2ZpZWxkX2xhYmVsIj5TZWxlY3QgYSBwYWdlOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiB0aXRsZT0iVGhpcyBmaWVsZCBkaXNwbGF5cyB0aGUgc2VsZWN0ZWQgY29udGVudCBwYWdlLiAgVGhlIGFjdHVhbCBzdHJpbmcgZGlzcGxheWVkIChwYWdlIHRpdGxlIG9yIG1lbnUgdGV4dCkgaXMgZGVwZW5kZW50IG9uIHVzZXIgYW5kIHNpdGUgcHJlZmVyZW5jZS4iIG5hbWU9ImRlbW9fZ2FsbGVyeTFbcl8xXVtsaW5rX3RvXSIgaWQ9ImNtc19oaWVyZHJvcGRvd24xIiBjbGFzcz0iY21zX2hpZXJkcm9wZG93biIgdmFsdWU9IjAiIHNpemU9IjUwIiBtYXhsZW5ndGg9IjUwIi8+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZnVuY3Rpb24oKXsgJCgnI2Ntc19oaWVyZHJvcGRvd24xJykuaGllcnNlbGVjdG9yKHt2YWx1ZTogMCxhbGxvd2N1cnJlbnQ6IGZhbHNlLGFsbG93X2FsbDogZmFsc2UsdXNlX3Blcm1zOiBmYWxzZSxmb3JfY2hpbGQ6IGZhbHNlLGlzX21hbmFnZXI6IDF9KSB9KTs8L3NjcmlwdD4gICAgCgogICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgoKCgoKCgo8L2ZpZWxkc2V0PgoKPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9Z2FsbGVyeSBibG9jaz10ZXN0MjBhIGxhYmVsPSdBIHNhbXBsZSBHYWxsZXJ5JyBhc3NpZ249dGVzdDIwYQpzdWIxX2ZpZWxkPXRleHRpbnB1dCBzdWIxX25hbWU9dGl0bGUgc3ViMV9sYWJlbD0nVGl0bGUnCnN1YjJfZmllbGQ9ZWRpdG9yIHN1YjJfbmFtZT1kZXNjcmlwdGlvbiBzdWIyX2xhYmVsPSdEZXNjcmlwdGlvbicKc3ViM19maWVsZD1wYWdlX3BpY2tlciBzdWIzX25hbWU9bGlua190byBzdWIzX2xhYmVsPSdTZWxlY3QgYSBwYWdlJ308L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdnYWxsZXJ5JzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5kaXIgKG9wdGlvbmFsKSAtIGEgc3ViIGRpcmVjdG9yeSBvZiB0aGUgaW1hZ2VfdXBsb2Fkc19wYXRoIChkZWZhdWx0IGlzOiAvdXBsb2Fkcy9pbWFnZXMpLCBpZiBub3Qgc2V0IGEgdW5pcXVlIGRpcmVjdG9yeSBpcyBjcmVhdGVkIGZvciB0aGlzIGNvbnRlbnQgYmxvY2sgZm9yIGVhY2ggcGFnZS48L2xpPgogICAgPGxpPnJlc2l6ZV93aWR0aCAob3B0aW9uYWwpIC0gaWYgc2V0LCBpbWFnZXMgd2lsbCBiZSByZXNpemVkIHRvIHRoaXMgd2lkdGggYmVmb3JlIGJlaW5nIHVwbG9hZGVkLiBJZiBvbmx5IG9uZSBvZiByZXNpemVfd2lkdGggb3IgcmVzaXplX2hlaWdodCBpcyBzZXQsIHRoZSBvcmlnaW5hbCBhc3BlY3QgcmF0aW8gb2YgdGhlIGltYWdlIGlzIHByZXNlcnZlZC48L2xpPgogICAgPGxpPnJlc2l6ZV9oZWlnaHQgKG9wdGlvbmFsKSAtIGlmIHNldCwgaW1hZ2VzIHdpbGwgYmUgcmVzaXplZCB0byB0aGlzIGhlaWdodCBiZWZvcmUgYmVpbmcgdXBsb2FkZWQuIElmIG9ubHkgb25lIG9mIHJlc2l6ZV93aWR0aCBvciByZXNpemVfaGVpZ2h0IGlzIHNldCwgdGhlIG9yaWdpbmFsIGFzcGVjdCByYXRpbyBvZiB0aGUgaW1hZ2UgaXMgcHJlc2VydmVkLjwvbGk+CiAgICA8bGk+cmVzaXplX21ldGhvZCAob3B0aW9uYWwpIC0gJ2NvbnRhaW4nIChkZWZhdWx0KSwgb3IgJ2Nyb3AnIGNhbiBiZSB1c2VkLjwvbGk+CiAgICA8bGk+dGh1bWJuYWlsX3dpZHRoIChvcHRpb25hbCkgLSBzZXRzIHRodW1ibmFpbCB3aWR0aCBmb3IgdGhpcyBmaWVsZHMgdGh1bWJuYWlscy4gSWYgdGh1bWJuYWlsX3dpZHRoIGlzIHNldCwgYnV0IHRodW1ibmFpbF9oZWlnaHQgaXMgbm90LCB0aGUgcmF0aW8gb2YgdGhlIGltYWdlIHdpbGwgYmUgdXNlZCB0byBjYWxjdWxhdGUgdGh1bWJuYWlsX2hlaWdodC4gVGhlc2Ugc2V0dGluZ3Mgd2lsbCBkZWZhdWx0IHRvIHRoZSBFQ0IyIFRodW1ibmFpbCBXaWR0aCAmIEhlaWdodCBvcHRpb25zLCBvciBDTVNNUyBUaHVtYm5haWwgV2lkdGggJiBIZWlnaHQgc2V0dGluZ3MuIFJlY29tbWVuZGVkIG1pbmltdW0gd2lkdGggMTA0IChweCkuPC9saT4KICAgIDxsaT50aHVtYm5haWxfaGVpZ2h0IChvcHRpb25hbCkgLSBzZXRzIHRodW1ibmFpbCBoZWlnaHQgZm9yIHRoaXMgZmllbGRzIHRodW1ibmFpbHMuIElmIHRodW1ibmFpbF9oZWlnaHQgaXMgc2V0LCBidXQgdGh1bWJuYWlsX3dpZHRoIGlzIG5vdCwgdGhlIHJhdGlvIG9mIHRoZSBpbWFnZSB3aWxsIGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRodW1ibmFpbF93aWR0aC4gVGhlc2Ugc2V0dGluZ3Mgd2lsbCBkZWZhdWx0IHRvIHRoZSBFQ0IyIFRodW1ibmFpbCBXaWR0aCAmIEhlaWdodCBvcHRpb25zLCBvciBDTVNNUyBUaHVtYm5haWwgV2lkdGggJiBIZWlnaHQgc2V0dGluZ3MuPC9saT4KICAgIDxsaT5tYXhfZmlsZXMgKG9wdGlvbmFsKSAtIHNldHMgYSBtYXhpbXVtIG51bWJlciBvZiBmaWxlcyB0aGF0IGNhbiBiZSB1cGxvYWRlZDwvbGk+CiAgICA8bGk+YXV0b19hZGRfZGVsZXRlIChvcHRpb25hbCkgZGVmYXVsdDp0cnVlIC0gd2lsbCBhdXRvbWF0aWNhbGx5IGRlbGV0ZSB1bnVzZWQgZmlsZXMgJiB0aHVtYm5haWxzIGZyb20gdGhlIGRpcmVjdG9yeTwvbGk+CiAgICA8bGk+ZGVmYXVsdF92YWx1ZSAob3B0aW9uYWwpIC0gaW5pdGlhbCB2YWx1ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2U8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPjxicj4KCjxwPlN1YiBmaWVsZCBwYXJhbWV0ZXJzOjwvcD4KPHA+RWFjaCBpbWFnZSBjYW4gaGF2ZSBtdWx0aXBsZSBzdWIgZmllbGRzLCB0aGF0IGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgJ3N1YlhfeXl5eXknIHBhcmFtZXRlcnMgd2hlcmUgWCBpcyBhIG51bWJlciBhbmQgeXl5eXkgaXMgdGhlIHBhcmFtZXRlci4gZS5nLiAnc3ViMV9uYW1lPXRleHRpbnB1dCcuIEVhY2ggc3ViIGZpZWxkcyBoYXMgcmVxdWlyZWQgYW5kIG9wdGlvbmFsIHBhcmFtZXRlcnM8L3A+Cjx1bD4KICAgIDxsaT5zdWJYX2ZpZWxkIChyZXF1aXJlZCkgLSBtdXN0IGJlIG9uZSBvZiB0aGUgc3VwcG9ydGVkIHN1YiBmaWVsZCB0eXBlczo8YnI+CiAgICAgICAgdGV4dGlucHV0LCB0ZXh0YXJlYSwgZHJvcGRvd24sIGNoZWNrYm94LCByYWRpbywgY29sb3JfcGlja2VyLCBkYXRlX3RpbWVfcGlja2VyLCBmaWxlX3NlbGVjdG9yLCBmaWxlX3BpY2tlciwgcGFnZV9waWNrZXIsIGdhbGxlcnlfcGlja2VyLCBtb2R1bGVfcGlja2VyLCAgICAgPC9saT4KICAgIDxsaT5zdWJYX25hbWUgKHJlcXVpcmVkKSAtIHVzZWQgcmVmZXJlbmNlIHRoZSBzdWIgZmllbGQgLSBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgZm9sbG93ZWQgYnkgYW55IG51bWJlciBvZiBsZXR0ZXJzLCBudW1iZXJzIG9yIHVuZGVyc2NvcmVzICdfJy48L2xpPgogICAgPGxpPnN1YlhfPGk+cGFyYW1ldGVyPC9pPiAob3B0aW9uYWwpIC0gd2hlcmUgJzxpPnBhcmFtZXRlcjwvaT4nIGlzIGFueSBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IHdvcmsgd2l0aCB0aGF0IGZpZWxkIHR5cGUuIGUuZy4gZm9yIHRleHRpbnB1dCBzdWIgZmllbGQgdGhlIGZvbGxvd2luZyBjYW4gYmUgdXNlZDo8YnI+CiAgICAgICAgPHByZT5zdWIxX2ZpZWxkPXRleHRpbnB1dCBzdWIxX25hbWU9dGV4dDEgc3ViMV9zaXplPTIwIHN1YjFfbWF4X2xlbmd0aD01MDwvcHJlPgogICAgPC9saT4KCjwvdWw+Cgo8cD5PdXRwdXQgZm9ybWF0OjwvcD4KPHByZT4Ke2lmICFlbXB0eSgkdGVzdDIwYS0+c3ViX2ZpZWxkcyl9eyogdGVzdCBpZiBhbnkgZGF0YSBleGlzdHMgKn0KICAgIHtmb3JlYWNoICR0ZXN0MjBhLT5zdWJfZmllbGRzIGFzICRzdWJfZmllbGR9CiAgICAgICAge2ZvcmVhY2ggJHN1Yl9maWVsZCBhcyAkbmFtZSA9PiAkdmFsdWV9CiAgICAgICAgICAgIHskbmFtZX06IHskdmFsdWV9CiAgICAgICAgey9mb3JlYWNofQogICAgICAgIHsqIG9yIGRpcmVjdGx5IGFjY2VzcyBlYWNoIHN1Yl9maWVsZCAqfQogICAgICAgIEhlaWdodCBpczp7JHN1Yl9maWVsZC0+aGVpZ2h0fQogICAgICAgIEZydWl0IGlzOnskc3ViX2ZpZWxkLT5mcnVpdH0KICAgIHsvZm9yZWFjaH0Key9pZn0KPC9wcmU+PGJyPgoKPHA+Tm90ZXMgJiB0aXBzOjwvcD4KPG9sPgogICAgPGxpPmNoYW5nZSB0aGUgb3JkZXIgb2YgdGhlIHN1YlhfIHBhcmFtZXRlcnMgdG8gY2hhbmdlIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzIGluIHRoZSBhZG1pbiBwYWdlLjwvbGk+CiAgICA8bGk+dGhlIGRlZmF1bHQgUEhQIGxpbWl0IGZvciBpbnB1dHMgb24gb25lIHBhZ2UgaXMgMTAwMC4gVGhpcyBpcyBzZXQgYnkgbWF4X2lucHV0X3ZhcnMgaW4gcGhwLmluaS4gSWYgeW91IG1heSBuZWVkIG1vcmUgdGhhbiB0aGlzIG9uIGEgc2luZ2xlIHBhZ2UgeW91IGNhbiBpbmNyZWFzZSBtYXhfaW5wdXRfdmFycy4gRWFjaCBzdWIgZmllbGQgaW4gZWFjaCBncm91cCByb3cgaXMgMSBpbnB1dCwgcGx1cyBhbGwgb3RoZXIgZmllbGRzIG9uIHRoZSBwYWdlLjwvbGk+CiAgICA8bGk+c3ViIGZpZWxkIHBhcmFtZXRlcnMgbGlrZSAncmVwZWF0ZXInLCAnbWF4LWJsb2NrcycgYW5kICdhc3NpZ24nIGFyZSBpZ25vcmVkLjwvbGk+CiAgICA8bGk+aWYgb25seSBvbmUgZ3JvdXAgaXMgYWRkZWQgYW5kIGFsbCBpdCdzIHZhbHVlcyBhcmUgZW1wdHkgdGhlIC0+c3ViX2ZpZWxkcyBvYmplY3Qgd2lsbCBiZSBlbXB0eTwvbGk+Cjwvb2w+CgoKICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPGgyIGlkPSJjb2xvcl9waWNrZXIiIGNsYXNzPSJtX2JvdHRvbV81Ij5jb2xvcl9waWNrZXI8L2gyPgogICAgICAgIDxwPlRoZSBjb2xvcl9waWNrZXIgZmllbGQgcHJvdmlkZXMgYSBzaW1wbGUgb3B0aW9uIGZvciBzZWxlY3RpbmcgYSBIRVggY29sb3IgY29kZS48L3A+Cgo8ZmllbGRzZXQ+CiAgICAKICAgICAgICA8aW5wdXQgY2xhc3M9ImNvbG9ycGlja2VyIiB0eXBlPSJ0ZXh0IiBuYW1lPSJkZW1vX2NvbG9yX3BpY2tlcjEiIGlkPSJkZW1vX2NvbG9yX3BpY2tlciIgc2l6ZT0iMTAiIHZhbHVlPSIjMzMzOGM0IiAgLz4KCgo8L2ZpZWxkc2V0PgoKPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9Y29sb3JfcGlja2VyIGJsb2NrPXRlc3Q3IGxhYmVsPSdDb2xvcicgZGVmYXVsdD0nIzMzMzhjNCd9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnY29sb3JfcGlja2VyJzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5zaXplIChvcHRpb25hbCkgLSBkZWZhdWx0IDEwPC9saT4KICAgIDxsaT5ub19oYXNoIChvcHRpb25hbCkgLSBpZiBzZXQgdGhlIGhleCB2YWx1ZSBkaXNwbGF5ZWQgYW5kIHJldHVybmVkIGRvZXMgbm90IGluY2x1ZGUgYSAnIyc8L2xpPgogICAgPGxpPmNsZWFyX2Nzc19jYWNoZSAob3B0aW9uYWwpIC0gaWYgc2V0IHRoZSBjc3MgY2FjaGUgaXMgcmVmcmVzaGVkIGlmIHRoZSBjb2xvciBpcyBjaGFuZ2VkPC9saT4KICAgIDxsaT5kZWZhdWx0IChvcHRpb25hbCkgLSAoYWxpYXM6ICc8Yj5kZWZhdWx0X3ZhbHVlPC9iPicpIC0gaW5pdGlhbCB2YWx1ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2U8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPgoKICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPGgyIGlkPSJkYXRlX3RpbWVfcGlja2VyIiBjbGFzcz0ibV9ib3R0b21fNSI+ZGF0ZV90aW1lX3BpY2tlcjwvaDI+CiAgICAgICAgPHA+VGhlIGRhdGVfdGltZV9waWNrZXIgZmllbGQgY3JlYXRlcyBhIHBvcHVwIGZvciBzZWxlY3RpbmcgYSBkYXRlLCBhIHRpbWUsIG9yIGJvdGguPC9wPgoKPGZpZWxkc2V0PgogICAgCiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJkYXRldGltZXBpY2tlciIgbmFtZT0iZGVtb19kYXRlX3RpbWVfcGlja2VyMSIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iMjAidmFsdWU9IiIgZGF0YS10aW1lLWZvcm1hdD0iSEg6bW0iLz4KPC9maWVsZHNldD4KCjxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPWRhdGVfdGltZV9waWNrZXIgYmxvY2s9J3Rlc3Q4JyBsYWJlbD0nRGF0ZSBUaW1lIFBpY2tlcid9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnZGF0ZV90aW1lX3BpY2tlcicsIG9yIGFsaWFzOiAnPGI+ZGF0ZXBpY2tlcjwvYj4nLCAnPGI+dGltZXBpY2tlcjwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPnNpemUgKG9wdGlvbmFsKSAtIHNldHMgdGhlIHdpZHRoIG9mIHRoZSBodG1sIGlucHV0IC0gZGVmYXVsdDogMjA8L2xpPgogICAgPGxpPm1heF9sZW5ndGggKG9wdGlvbmFsKSAtIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgLSBkZWZhdWx0OiAxMDwvbGk+CiAgICA8bGk+c2hvd190aW1lIChvcHRpb25hbCkgLSAoYWxpYXM6ICc8Yj50aW1lPC9iPicpIGFkZCB0aW1lIHBpY2tlciAtIGRlZmF1bHQ6IHRydWU8L2xpPgogICAgPGxpPmRhdGVfb25seSAob3B0aW9uYWwpIC0gb25seSBzaG93IGRhdGUgcGlja2VyIC0gZGVmYXVsdDogZmFsc2U8L2xpPgogICAgPGxpPnRpbWVfb25seSAob3B0aW9uYWwpIC0gb25seSBzaG93IHRpbWUgcGlja2VyIC0gZGVmYXVsdDogZmFsc2U8L2xpPgogICAgPGxpPmRhdGVfZm9ybWF0IChvcHRpb25hbCkgLSBkZWZhdWx0OiAneXktbW0tZGQnPC9saT4KICAgIDxsaT50aW1lX2Zvcm1hdCAob3B0aW9uYWwpIC0gZGVmYXVsdDogJ0hIOjpzcyc8L2xpPgogICAgPGxpPmNoYW5nZV9tb250aCAob3B0aW9uYWwpIC0gd2hldGhlciB0aGUgbW9udGggc2hvdWxkIGJlIHJlbmRlcmVkIGFzIGEgZHJvcGRvd24gaW5zdGVhZCBvZiB0ZXh0IC0gZGVmYXVsdDogZmFsc2UuPC9saT4KICAgIDxsaT5jaGFuZ2VfeWVhciAob3B0aW9uYWwpIC0gd2hldGhlciB0aGUgeWVhciBzaG91bGQgYmUgcmVuZGVyZWQgYXMgYSBkcm9wZG93biBpbnN0ZWFkIG9mIHRleHQuIFVzZSB0aGUgeWVhcl9yYW5nZSBvcHRpb24gdG8gY29udHJvbCB3aGljaCB5ZWFycyBhcmUgbWFkZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiAtIGRlZmF1bHQ6IGZhbHNlPC9saT4KICAgIDxsaT55ZWFyX3JhbmdlIChvcHRpb25hbCkgLSB0aGUgcmFuZ2Ugb2YgeWVhcnMgZGlzcGxheWVkIGluIHRoZSB5ZWFyIGRyb3AtZG93bjogZWl0aGVyIHJlbGF0aXZlIHRvIHRvZGF5J3MgeWVhciAoIi1ubjorbm4iKSwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB5ZWFyICgiYy1ubjpjK25uIiksIGFic29sdXRlICgibm5ubjpubm5uIiksIG9yIGNvbWJpbmF0aW9ucyBvZiB0aGVzZSBmb3JtYXRzICgibm5ubjotbm4iKSAtIGRlZmF1bHQ6ICdjLTEwOmMrMTAnPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4KCjxmaWVsZHNldD4KICAgIDxsZWdlbmQ+ZGF0ZV90aW1lX3BpY2tlciB3aXRoIGRhdGVfb25seSAtIHVzZSAnZGF0ZV9vbmx5PTEnPC9sZWdlbmQ+CiAgICAKICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImRhdGVwaWNrZXIiIG5hbWU9ImRlbW9fZGF0ZV90aW1lX3BpY2tlcjIiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjIwInZhbHVlPSIiIGRhdGEtdGltZS1mb3JtYXQ9IkhIOm1tIi8+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPmRhdGVfdGltZV9waWNrZXIgd2l0aCB0aW1lX29ubHkgLSB1c2UgJ3RpbWVfb25seT0xJzwvbGVnZW5kPgogICAgCiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJ0aW1lcGlja2VyIiBuYW1lPSJkZW1vX2RhdGVfdGltZV9waWNrZXIzIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyMCJ2YWx1ZT0iIiBkYXRhLXRpbWUtZm9ybWF0PSJISDptbSIvPgo8L2ZpZWxkc2V0PgogICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICA8aDIgaWQ9ImZpbGVfc2VsZWN0b3IiIGNsYXNzPSJtX2JvdHRvbV81Ij5maWxlX3NlbGVjdG9yPC9oMj4KICAgICAgICA8cD5UaGUgZmlsZV9zZWxlY3RvciBmaWVsZCBlbmFibGVzIGEgZmlsZSB0byBiZSBzZWxlY3RlZCBmcm9tIGEgc2V0IGRpcmVjdG9yeSBhbmQgY2FuIG9wdGlvbmFsbHkgc2hvdyBhIHRodW1ibmFpbC48L3A+Cgo8ZmllbGRzZXQ+CiAgICAKICAgIDxkaXYgY2xhc3M9ImVjYl9maWxlX3NlbGVjdG9yIj4KICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9ImNtc19kcm9wZG93biIgbmFtZT0iZGVtb19maWxlX3NlbGVjdG9yMSI+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkPSJzZWxlY3RlZCI+PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L25hdmxlZnR0ZXN0LmdpZiI+bmdyZXkvbmF2bGVmdHRlc3QuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L3VsYnRtcnQucG5nIj5uZ3JleS91bGJ0bXJ0LnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS91bHRvcHJ0LnBuZyI+bmdyZXkvdWx0b3BydC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmdyZXkvbWFpbnJ0LmdpZiI+bmdyZXkvbWFpbnJ0LmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS9wYXJlbnQucG5nIj5uZ3JleS9wYXJlbnQucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L2V4dGVybmFsLmdpZiI+bmdyZXkvZXh0ZXJuYWwuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L2xpYmsuZ2lmIj5uZ3JleS9saWJrLmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS9ydHVwLmdpZiI+bmdyZXkvcnR1cC5naWY8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmdyZXkvZG90LmdpZiI+bmdyZXkvZG90LmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS9iZ19iYW5uZXIucG5nIj5uZ3JleS9iZ19iYW5uZXIucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L3VsdG9wdXAucG5nIj5uZ3JleS91bHRvcHVwLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS9tYWlucnR1cC5naWYiPm5ncmV5L21haW5ydHVwLmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS9wYXJlbnQuZ2lmIj5uZ3JleS9wYXJlbnQuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L3didG1sZWZ0LmdpZiI+bmdyZXkvd2J0bWxlZnQuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L3VsdG9wLmdpZiI+bmdyZXkvdWx0b3AuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L2xpdXAuZ2lmIj5uZ3JleS9saXVwLmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS9hY3RpdmUuZ2lmIj5uZ3JleS9hY3RpdmUuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L3VsdG9wdXAuZ2lmIj5uZ3JleS91bHRvcHVwLmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS93dG9wbGVmdC5naWYiPm5ncmV5L3d0b3BsZWZ0LmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS9tYWlucnQxLmdpZiI+bmdyZXkvbWFpbnJ0MS5naWY8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmdyZXkvbWFpbmxlZnR1cC5naWYiPm5ncmV5L21haW5sZWZ0dXAuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L2xvZ29DTVMucG5nIj5uZ3JleS9sb2dvQ01TLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS93Zm9vdHJ0LmdpZiI+bmdyZXkvd2Zvb3RydC5naWY8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmdyZXkvdWx0b3BydC5naWYiPm5ncmV5L3VsdG9wcnQuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L25hdnJ0dGVzdC5naWYiPm5ncmV5L25hdnJ0dGVzdC5naWY8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmdyZXkvYWN0aXZlLnBuZyI+bmdyZXkvYWN0aXZlLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZ3JleS9zZWFyY2guZ2lmIj5uZ3JleS9zZWFyY2guZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L25hdi5wbmciPm5ncmV5L25hdi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmdyZXkvYm9keS5wbmciPm5ncmV5L2JvZHkucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L21haW5sZWZ0MS5naWYiPm5ncmV5L21haW5sZWZ0MS5naWY8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmdyZXkvZGFya25hdi5wbmciPm5ncmV5L2RhcmtuYXYucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ncmV5L3VsYnRtcnQuZ2lmIj5uZ3JleS91bGJ0bXJ0LmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJjbGllbnQtdXBsb2Fkcy8yMDA1LTMxNS1BLVNwcmluZyBwYXN0dXJlcy5qcGciPmNsaWVudC11cGxvYWRzLzIwMDUtMzE1LUEtU3ByaW5nIHBhc3R1cmVzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJjbGllbnQtdXBsb2Fkcy9waG90by1jb21pbmctc29vbi00LTMuanBnIj5jbGllbnQtdXBsb2Fkcy9waG90by1jb21pbmctc29vbi00LTMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImNsaWVudC11cGxvYWRzLzIwMDgtMDMxNS1QSTQtQS1GdWxsIFRpZGUuanBnIj5jbGllbnQtdXBsb2Fkcy8yMDA4LTAzMTUtUEk0LUEtRnVsbCBUaWRlLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJjbGllbnQtdXBsb2Fkcy8xNy1DYWxtV2F0ZXJzLmpwZyI+Y2xpZW50LXVwbG9hZHMvMTctQ2FsbVdhdGVycy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iY2xpZW50LXVwbG9hZHMvMjAwNi0zMTUtQS1Ib3N0YSBmbG93ZXJzIGluIHRoZSByYWluLmpwZyI+Y2xpZW50LXVwbG9hZHMvMjAwNi0zMTUtQS1Ib3N0YSBmbG93ZXJzIGluIHRoZSByYWluLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJjbGllbnQtdXBsb2Fkcy8yMDA5LTAzMTUtUEk0LUEtUm9sbGluZyBQYXN0dXJlcy5qcGciPmNsaWVudC11cGxvYWRzLzIwMDktMDMxNS1QSTQtQS1Sb2xsaW5nIFBhc3R1cmVzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJjbGllbnQtdXBsb2Fkcy8wMzE1LVBJNS1TZWF3YXJkIEthaWtvdXJhcy5qcGciPmNsaWVudC11cGxvYWRzLzAzMTUtUEk1LVNlYXdhcmQgS2Fpa291cmFzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMzYvMjAyMC8xMS9FbWFpbFNlY3VyaXR5LnBuZyI+bmV3cy9pZDM2LzIwMjAvMTEvRW1haWxTZWN1cml0eS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDQxLzIwMjAvMDkvTTM2NS0xLnBuZyI+bmV3cy9pZDQxLzIwMjAvMDkvTTM2NS0xLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMTkvMjAyMS8wNS93YXJlaG91c2UucG5nIj5uZXdzL2lkMTkvMjAyMS8wNS93YXJlaG91c2UucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQxOC8yMDIxLzA2L1NtYWxsYnVzaW5lc3MuanBnIj5uZXdzL2lkMTgvMjAyMS8wNi9TbWFsbGJ1c2luZXNzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMjYvMjAyMS8wMy9taWxvc3ota2xpbm93c2tpLUJXMGQwSWxsVzhFLXVuc3BsYXNoLXNjYWxlZC5qcGciPm5ld3MvaWQyNi8yMDIxLzAzL21pbG9zei1rbGlub3dza2ktQlcwZDBJbGxXOEUtdW5zcGxhc2gtc2NhbGVkLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMjgvMjAyMS8wMi9DQVNDb250YWN0LmpwZyI+bmV3cy9pZDI4LzIwMjEvMDIvQ0FTQ29udGFjdC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDIyLzIwMjEvMDQvSW50dW5lLTIucG5nIj5uZXdzL2lkMjIvMjAyMS8wNC9JbnR1bmUtMi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDUvMjAyMi8wMS9pc3RvY2twaG90by02MzczOTMwNTgtMTcwNjY3YS5qcGciPm5ld3MvaWQ1LzIwMjIvMDEvaXN0b2NrcGhvdG8tNjM3MzkzMDU4LTE3MDY2N2EuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQxMy8yMDIxLzA3L1VuZXhwZWN0ZWQucG5nIj5uZXdzL2lkMTMvMjAyMS8wNy9VbmV4cGVjdGVkLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMTYvMjAyMS8wNi9Db2F0SGFuZ2VyLTIucG5nIj5uZXdzL2lkMTYvMjAyMS8wNi9Db2F0SGFuZ2VyLTIucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQ0OS8yMDE2LzA0L0NTX1ByaWNlcy5qcGciPm5ld3MvaWQ0OS8yMDE2LzA0L0NTX1ByaWNlcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDM0LzIwMjAvMTIvSGlnaFZpcy5wbmciPm5ld3MvaWQzNC8yMDIwLzEyL0hpZ2hWaXMucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQxNy8yMDIxLzA2L2plc2hvb3RzLWNvbS0ydkQ4bEloZG53LXVuc3BsYXNoLTEuanBnIj5uZXdzL2lkMTcvMjAyMS8wNi9qZXNob290cy1jb20tMnZEOGxJaGRudy11bnNwbGFzaC0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMjQvMjAyMS8wMy9GbG9wcHlkaXNrLXNjYWxlZC5qcGciPm5ld3MvaWQyNC8yMDIxLzAzL0Zsb3BweWRpc2stc2NhbGVkLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMi8yMDIyLzAzL2phbWllLXN0cmVldC03aXA0eVg1UDZRLXVuc3BsYXNoLmpwZyI+bmV3cy9pZDIvMjAyMi8wMy9qYW1pZS1zdHJlZXQtN2lwNHlYNVA2US11bnNwbGFzaC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDkvMjAyMS8wOS9CTklpbWFnZS5wbmciPm5ld3MvaWQ5LzIwMjEvMDkvQk5JaW1hZ2UucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQzMC8yMDIxLzAxL0NBU19zaWduYWdlX29uX3dhbGwuanBnIj5uZXdzL2lkMzAvMjAyMS8wMS9DQVNfc2lnbmFnZV9vbl93YWxsLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMjkvMjAyMS8wMi9UZWFtcy5qcGciPm5ld3MvaWQyOS8yMDIxLzAyL1RlYW1zLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMjcvMjAyMS8wMy9DeWJlckVzZWVudGlhbHMuanBnIj5uZXdzL2lkMjcvMjAyMS8wMy9DeWJlckVzZWVudGlhbHMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQzMi8yMDIxLzAxL2hvdXJnbGFzcy10aW1lLWhvdXJzLXNhbmQtMzkzOTYucG5nIj5uZXdzL2lkMzIvMjAyMS8wMS9ob3VyZ2xhc3MtdGltZS1ob3Vycy1zYW5kLTM5Mzk2LnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkNi8yMDIxLzEwLzJiZXR0ZXJ0aGFuMS5wbmciPm5ld3MvaWQ2LzIwMjEvMTAvMmJldHRlcnRoYW4xLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkNDgvMjAxOC8wNy9yYXdwaXhlbC02NTEzNjUtdW5zcGxhc2gtZTE1MzQzNDc4ODY5MzkuanBnIj5uZXdzL2lkNDgvMjAxOC8wNy9yYXdwaXhlbC02NTEzNjUtdW5zcGxhc2gtZTE1MzQzNDc4ODY5MzkuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQyNS8yMDIxLzAzL01hbnN0YWxhc3NldC5qcGciPm5ld3MvaWQyNS8yMDIxLzAzL01hbnN0YWxhc3NldC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDQzLzIwMjAvMDkvMjY1OTc0MTUyNDNfM2E5ZGNmZDg5NF93LmpwZyI+bmV3cy9pZDQzLzIwMjAvMDkvMjY1OTc0MTUyNDNfM2E5ZGNmZDg5NF93LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMjMvMjAyMS8wMy9jb25zdHJ1Y3Rpb25zaXRlLTEuanBnIj5uZXdzL2lkMjMvMjAyMS8wMy9jb25zdHJ1Y3Rpb25zaXRlLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQ0NS8yMDIwLzA4L2Nsb3VkeXNreS0xLnBuZyI+bmV3cy9pZDQ1LzIwMjAvMDgvY2xvdWR5c2t5LTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQ0Mi8yMDIwLzA5L3NjYWxldXAtZTE2MDI3NjQ1OTU4NzUucG5nIj5uZXdzL2lkNDIvMjAyMC8wOS9zY2FsZXVwLWUxNjAyNzY0NTk1ODc1LnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMjAvMjAyMS8wNS9DQVMtSW5jaWRlbnQtUmVwb3J0LmpwZyI+bmV3cy9pZDIwLzIwMjEvMDUvQ0FTLUluY2lkZW50LVJlcG9ydC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDQ3LzIwMjAvMDgvQ0FTLXNpZ25hZ2UtaGl2aXouanBnIj5uZXdzL2lkNDcvMjAyMC8wOC9DQVMtc2lnbmFnZS1oaXZpei5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDQ0LzIwMjAvMDkvQ3liZXJDbG9zZVVwLTMtZTE2MDI3NjQ3MjUyOTcucG5nIj5uZXdzL2lkNDQvMjAyMC8wOS9DeWJlckNsb3NlVXAtMy1lMTYwMjc2NDcyNTI5Ny5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDEwLzIwMjEvMDkvQ29udHJhY3Q0MDB4MjY3LmpwZyI+bmV3cy9pZDEwLzIwMjEvMDkvQ29udHJhY3Q0MDB4MjY3LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkNTAvMjAxNi8wNC9DU19DbGllbnRzLmpwZyI+bmV3cy9pZDUwLzIwMTYvMDQvQ1NfQ2xpZW50cy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDMxLzIwMjEvMDEvdGhyZWUucG5nIj5uZXdzL2lkMzEvMjAyMS8wMS90aHJlZS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDE1LzIwMjEvMDYvamFzb24tZGVudC0zd1BKeGgtcGlSdy11bnNwbGFzaC1zY2FsZWQtZTE2MjQ4NjgxNDIyOTQuanBnIj5uZXdzL2lkMTUvMjAyMS8wNi9qYXNvbi1kZW50LTN3UEp4aC1waVJ3LXVuc3BsYXNoLXNjYWxlZC1lMTYyNDg2ODE0MjI5NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ibmV3cy9pZDEyLzIwMjEvMDcvU3VwcG9ydHZzYWxlcy5wbmciPm5ld3MvaWQxMi8yMDIxLzA3L1N1cHBvcnR2c2FsZXMucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQxLzIwMjIvMDcvQUJMLTMuanBnIj5uZXdzL2lkMS8yMDIyLzA3L0FCTC0zLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMzUvMjAyMC8xMS9IUC1kaXNwbGF5cy5wbmciPm5ld3MvaWQzNS8yMDIwLzExL0hQLWRpc3BsYXlzLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMTQvMjAyMS8wNy8yNzIwMjMwNjA3NV82MGQ1YjE2MjVlX3cuanBnIj5uZXdzL2lkMTQvMjAyMS8wNy8yNzIwMjMwNjA3NV82MGQ1YjE2MjVlX3cuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQ4LzIwMjEvMDkvbWFydGlqbi1iYXVkb2luLTRoMEhxQzNLNC1jLXVuc3BsYXNoLmpwZyI+bmV3cy9pZDgvMjAyMS8wOS9tYXJ0aWpuLWJhdWRvaW4tNGgwSHFDM0s0LWMtdW5zcGxhc2guanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQzOS8yMDIwLzEwL0lUY2FsbHNHcmFwaC00LmpwZyI+bmV3cy9pZDM5LzIwMjAvMTAvSVRjYWxsc0dyYXBoLTQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQzLzIwMjIvMDIvTTM2NUZlYjIyLTIuanBnIj5uZXdzL2lkMy8yMDIyLzAyL00zNjVGZWIyMi0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMzcvMjAyMC8xMS9pTWFjLTEuanBnIj5uZXdzL2lkMzcvMjAyMC8xMS9pTWFjLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQ0LzIwMjIvMDEvaXN0b2NrcGhvdG8tMTMyMjk5MDY3OS0xNzA2NjdhLTEuanBnIj5uZXdzL2lkNC8yMDIyLzAxL2lzdG9ja3Bob3RvLTEzMjI5OTA2NzktMTcwNjY3YS0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMzMvMjAyMC8xMi9QcmV0emVscy5wbmciPm5ld3MvaWQzMy8yMDIwLzEyL1ByZXR6ZWxzLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkMzgvMjAyMC8xMS8yNjU5NzQ2ODEyM181ODllNzY0M2I4X3cuanBnIj5uZXdzL2lkMzgvMjAyMC8xMS8yNjU5NzQ2ODEyM181ODllNzY0M2I4X3cuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQyMS8yMDIxLzA0L21pbm9yaXR5LXJlcG9ydC0xLnBuZyI+bmV3cy9pZDIxLzIwMjEvMDQvbWlub3JpdHktcmVwb3J0LTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQ0Ni8yMDE2LzA0L2NvbnN1bHRpbmd3ZWIuanBnIj5uZXdzL2lkNDYvMjAxNi8wNC9jb25zdWx0aW5nd2ViLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkNDAvMjAyMC8xMC9FeGNsYWltZXItMS5wbmciPm5ld3MvaWQ0MC8yMDIwLzEwL0V4Y2xhaW1lci0xLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJuZXdzL2lkNy8yMDIxLzEwL2JyZW5kYW4tY2h1cmNoLXBLZUY2VHQzYzA4LXVuc3BsYXNoLTEuanBnIj5uZXdzL2lkNy8yMDIxLzEwL2JyZW5kYW4tY2h1cmNoLXBLZUY2VHQzYzA4LXVuc3BsYXNoLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ld3MvaWQxMS8yMDIxLzA4LzI3MTY4NjQzOTE2X2QyMzI0MDRkNmZfdy5qcGciPm5ld3MvaWQxMS8yMDIxLzA4LzI3MTY4NjQzOTE2X2QyMzI0MDRkNmZfdy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0icHJvamVjdC1pbWFnZXMvMDMxNS1QSTItV2F0ZXJmYWxsQ2F0bGlucy5qcGciPnByb2plY3QtaW1hZ2VzLzAzMTUtUEkyLVdhdGVyZmFsbENhdGxpbnMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InByb2plY3QtaW1hZ2VzLzE3LUNhbG1XYXRlcnMuanBnIj5wcm9qZWN0LWltYWdlcy8xNy1DYWxtV2F0ZXJzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJOQ2xlYW5CbHVlL3ZlcnNpb24ucG5nIj5OQ2xlYW5CbHVlL3ZlcnNpb24ucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Ik5DbGVhbkJsdWUvYmdfX2NvbnRlbnQucG5nIj5OQ2xlYW5CbHVlL2JnX19jb250ZW50LnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJOQ2xlYW5CbHVlL3VsYnRtLnBuZyI+TkNsZWFuQmx1ZS91bGJ0bS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iTkNsZWFuQmx1ZS9iZ19fZm9vdGVyLnBuZyI+TkNsZWFuQmx1ZS9iZ19fZm9vdGVyLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJOQ2xlYW5CbHVlL3NlYXJjaC5wbmciPk5DbGVhbkJsdWUvc2VhcmNoLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJOQ2xlYW5CbHVlL2V4dGVybmFsLmdpZiI+TkNsZWFuQmx1ZS9leHRlcm5hbC5naWY8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iTkNsZWFuQmx1ZS9zY3JlZW4tMS42LmpwZyI+TkNsZWFuQmx1ZS9zY3JlZW4tMS42LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJOQ2xlYW5CbHVlL3VsdG9wLnBuZyI+TkNsZWFuQmx1ZS91bHRvcC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iTkNsZWFuQmx1ZS91bHRvcC5naWYiPk5DbGVhbkJsdWUvdWx0b3AuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Ik5DbGVhbkJsdWUvdGFicy5naWYiPk5DbGVhbkJsdWUvdGFicy5naWY8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iTkNsZWFuQmx1ZS9idWxsLnBuZyI+TkNsZWFuQmx1ZS9idWxsLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJOQ2xlYW5CbHVlL2JnX19mdWxsLnBuZyI+TkNsZWFuQmx1ZS9iZ19fZnVsbC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iTkNsZWFuQmx1ZS9qcy90cmFuc3BhcmVudC5naWYiPk5DbGVhbkJsdWUvanMvdHJhbnNwYXJlbnQuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Ik5DbGVhbkJsdWUvYXJyb3cuZ2lmIj5OQ2xlYW5CbHVlL2Fycm93LmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJOQ2xlYW5CbHVlL2xvZ28ucG5nIj5OQ2xlYW5CbHVlL2xvZ28ucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Ik5DbGVhbkJsdWUvdWxidG0uZ2lmIj5OQ2xlYW5CbHVlL3VsYnRtLmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzaW1wbGV4L3RlYXNlci9ub3RlYm9vay1zY2VuZS5wbmciPnNpbXBsZXgvdGVhc2VyL25vdGVib29rLXNjZW5lLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzaW1wbGV4L3RlYXNlci9tYXRlLXppbXBsZS5wbmciPnNpbXBsZXgvdGVhc2VyL21hdGUtemltcGxlLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzaW1wbGV4L3RlYXNlci9tb2JpbGUtZGV2aWNlcy1zY2VuZS5wbmciPnNpbXBsZXgvdGVhc2VyL21vYmlsZS1kZXZpY2VzLXNjZW5lLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzaW1wbGV4L3RlYXNlci9wYWxtLWxvZ28ucG5nIj5zaW1wbGV4L3RlYXNlci9wYWxtLWxvZ28ucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InNpbXBsZXgvdGVhc2VyL2Jyb3dzZXItc2NlbmUucG5nIj5zaW1wbGV4L3RlYXNlci9icm93c2VyLXNjZW5lLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzaW1wbGV4L2ltYWdlcy9jbXNtYWRlc2ltcGxlLWxvZ28ucG5nIj5zaW1wbGV4L2ltYWdlcy9jbXNtYWRlc2ltcGxlLWxvZ28ucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InNpbXBsZXgvaW1hZ2VzL2ljb25zL2Ntc21zLTYweDYwLnBuZyI+c2ltcGxleC9pbWFnZXMvaWNvbnMvY21zbXMtNjB4NjAucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InNpbXBsZXgvaW1hZ2VzL2ljb25zL2Ntc21zLTE5NngxOTYucG5nIj5zaW1wbGV4L2ltYWdlcy9pY29ucy9jbXNtcy0xOTZ4MTk2LnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzaW1wbGV4L2ltYWdlcy9pY29ucy9jbXNtcy0xNTJ4MTUyLnBuZyI+c2ltcGxleC9pbWFnZXMvaWNvbnMvY21zbXMtMTUyeDE1Mi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ic2ltcGxleC9pbWFnZXMvaWNvbnMvY21zbXMtNzZ4NzYucG5nIj5zaW1wbGV4L2ltYWdlcy9pY29ucy9jbXNtcy03Nng3Ni5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ic2ltcGxleC9pbWFnZXMvaWNvbnMvY21zbXMtMTIweDEyMC5wbmciPnNpbXBsZXgvaW1hZ2VzL2ljb25zL2Ntc21zLTEyMHgxMjAucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InNpbXBsZXgvaW1hZ2VzL3BhbG0tY2lyY2xlLnBuZyI+c2ltcGxleC9pbWFnZXMvcGFsbS1jaXJjbGUucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InNpbXBsZXgvaW1hZ2VzL2JvZHktYmFja2dyb3VuZC5wbmciPnNpbXBsZXgvaW1hZ2VzL2JvZHktYmFja2dyb3VuZC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX3Byb2R1Y3RzL3Byb2R1Y3RfOC9waG90b18zLmpwZyI+X3Byb2R1Y3RzL3Byb2R1Y3RfOC9waG90b18zLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJfcHJvZHVjdHMvcHJvZHVjdF84L3Bob3RvXzEuanBnIj5fcHJvZHVjdHMvcHJvZHVjdF84L3Bob3RvXzEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Il9wcm9kdWN0cy9wcm9kdWN0XzgvcGhvdG9fNS5qcGciPl9wcm9kdWN0cy9wcm9kdWN0XzgvcGhvdG9fNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX3Byb2R1Y3RzL3Byb2R1Y3RfOC9waG90b18yLmpwZyI+X3Byb2R1Y3RzL3Byb2R1Y3RfOC9waG90b18yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJfcHJvZHVjdHMvcHJvZHVjdF84L3Bob3RvXzQuanBnIj5fcHJvZHVjdHMvcHJvZHVjdF84L3Bob3RvXzQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Il9wcm9kdWN0cy9wcm9kdWN0XzUvcGhvdG9fMy5qcGciPl9wcm9kdWN0cy9wcm9kdWN0XzUvcGhvdG9fMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX3Byb2R1Y3RzL3Byb2R1Y3RfNS9waG90b18xLmpwZyI+X3Byb2R1Y3RzL3Byb2R1Y3RfNS9waG90b18xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJfcHJvZHVjdHMvcHJvZHVjdF81L3Bob3RvXzUuanBnIj5fcHJvZHVjdHMvcHJvZHVjdF81L3Bob3RvXzUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Il9wcm9kdWN0cy9wcm9kdWN0XzUvcGhvdG9fMi5qcGciPl9wcm9kdWN0cy9wcm9kdWN0XzUvcGhvdG9fMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX3Byb2R1Y3RzL3Byb2R1Y3RfNS9waG90b180LmpwZyI+X3Byb2R1Y3RzL3Byb2R1Y3RfNS9waG90b180LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJfcHJvZHVjdHMvcHJvZHVjdF82L3Bob3RvXzMuanBnIj5fcHJvZHVjdHMvcHJvZHVjdF82L3Bob3RvXzMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Il9wcm9kdWN0cy9wcm9kdWN0XzYvcGhvdG9fMS5qcGciPl9wcm9kdWN0cy9wcm9kdWN0XzYvcGhvdG9fMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX3Byb2R1Y3RzL3Byb2R1Y3RfNi9waG90b181LmpwZyI+X3Byb2R1Y3RzL3Byb2R1Y3RfNi9waG90b181LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJfcHJvZHVjdHMvcHJvZHVjdF82L3Bob3RvXzIuanBnIj5fcHJvZHVjdHMvcHJvZHVjdF82L3Bob3RvXzIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Il9wcm9kdWN0cy9wcm9kdWN0XzYvcGhvdG9fNC5qcGciPl9wcm9kdWN0cy9wcm9kdWN0XzYvcGhvdG9fNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX3Byb2R1Y3RzL3Byb2R1Y3RfOS9waG90b18zLmpwZyI+X3Byb2R1Y3RzL3Byb2R1Y3RfOS9waG90b18zLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJfcHJvZHVjdHMvcHJvZHVjdF85L3Bob3RvXzEuanBnIj5fcHJvZHVjdHMvcHJvZHVjdF85L3Bob3RvXzEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Il9wcm9kdWN0cy9wcm9kdWN0XzkvcGhvdG9fNS5qcGciPl9wcm9kdWN0cy9wcm9kdWN0XzkvcGhvdG9fNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX3Byb2R1Y3RzL3Byb2R1Y3RfOS9waG90b18yLmpwZyI+X3Byb2R1Y3RzL3Byb2R1Y3RfOS9waG90b18yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJfcHJvZHVjdHMvcHJvZHVjdF85L3Bob3RvXzQuanBnIj5fcHJvZHVjdHMvcHJvZHVjdF85L3Bob3RvXzQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Il9wcm9kdWN0cy9wcm9kdWN0XzcvcGhvdG9fMy5qcGciPl9wcm9kdWN0cy9wcm9kdWN0XzcvcGhvdG9fMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX3Byb2R1Y3RzL3Byb2R1Y3RfNy9waG90b18xLmpwZyI+X3Byb2R1Y3RzL3Byb2R1Y3RfNy9waG90b18xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJfcHJvZHVjdHMvcHJvZHVjdF83L3Bob3RvXzUuanBnIj5fcHJvZHVjdHMvcHJvZHVjdF83L3Bob3RvXzUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Il9wcm9kdWN0cy9wcm9kdWN0XzcvcGhvdG9fMi5qcGciPl9wcm9kdWN0cy9wcm9kdWN0XzcvcGhvdG9fMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX3Byb2R1Y3RzL3Byb2R1Y3RfNy9waG90b180LmpwZyI+X3Byb2R1Y3RzL3Byb2R1Y3RfNy9waG90b180LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJfcHJvZHVjdHMvcHJvZHVjdF8xL3Bob3RvXzMuanBnIj5fcHJvZHVjdHMvcHJvZHVjdF8xL3Bob3RvXzMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Il9wcm9kdWN0cy9wcm9kdWN0XzEvcGhvdG9fMS5qcGciPl9wcm9kdWN0cy9wcm9kdWN0XzEvcGhvdG9fMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX3Byb2R1Y3RzL3Byb2R1Y3RfMS9waG90b181LmpwZyI+X3Byb2R1Y3RzL3Byb2R1Y3RfMS9waG90b181LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJfcHJvZHVjdHMvcHJvZHVjdF8xL3Bob3RvXzIuanBnIj5fcHJvZHVjdHMvcHJvZHVjdF8xL3Bob3RvXzIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Il9wcm9kdWN0cy9wcm9kdWN0XzEvcGhvdG9fNC5qcGciPl9wcm9kdWN0cy9wcm9kdWN0XzEvcGhvdG9fNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYWU0NmNkNDNjNTRiYzlkZDc0OTNmYjFjMDJjZjlkYzQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hZTQ2Y2Q0M2M1NGJjOWRkNzQ5M2ZiMWMwMmNmOWRjNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDcyZjg4NjlmYzRmZjdkNGY3ZWEwYWFkODEyZjk2MGQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wNzJmODg2OWZjNGZmN2Q0ZjdlYTBhYWQ4MTJmOTYwZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMGMzNWI2OWJkOWY0YzdlMmJhMDBlY2RiOTFlNGUwZWMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wYzM1YjY5YmQ5ZjRjN2UyYmEwMGVjZGI5MWU0ZTBlYy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYmQ1YjNkZjE4MjEwZGQ0MWJmNjBmMmQ2MDYxMTNjODUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iZDViM2RmMTgyMTBkZDQxYmY2MGYyZDYwNjExM2M4NS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNWNiMzMzMjljNjc3ZGZkYTJlNGUzYTNjYjY1YTIxMTEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01Y2IzMzMyOWM2NzdkZmRhMmU0ZTNhM2NiNjVhMjExMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTI3OWFkOTMxOWYxNzExYmJiOGQ5ZjllZjc5NmJkMDkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01Mjc5YWQ5MzE5ZjE3MTFiYmI4ZDlmOWVmNzk2YmQwOS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzUwMTE5ZGQ0ZWQwNGJhNWY4MjQwOTA4YTM1ZGQzY2QuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zNTAxMTlkZDRlZDA0YmE1ZjgyNDA5MDhhMzVkZDNjZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWM1MjU5ZTdjZDNjNjkyZjU5ZDQ4ZmE3M2FlNDhlZmEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05YzUyNTllN2NkM2M2OTJmNTlkNDhmYTczYWU0OGVmYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzBkYjhlOTdlZmI2NzQzOTExY2UzYTViZTQ1NmE3ZjcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zMGRiOGU5N2VmYjY3NDM5MTFjZTNhNWJlNDU2YTdmNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYWMzYzVjNzhjOTE4MTg2OGI0NzMzNzUyM2Q4NzYwYmEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hYzNjNWM3OGM5MTgxODY4YjQ3MzM3NTIzZDg3NjBiYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNDAxOGRkZGExMGZjMjg4Nzc3YjdmYzRiYzhjZWZlNTEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00MDE4ZGRkYTEwZmMyODg3NzdiN2ZjNGJjOGNlZmU1MS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDk5N2UyNzNkYjNhYjQzOWZkM2IxZjM0ZmYxN2ZlM2UuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wOTk3ZTI3M2RiM2FiNDM5ZmQzYjFmMzRmZjE3ZmUzZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNGJlMjZiYzk2YjVmNWYyNGZlY2UzMWYyZDQ1ZDJjMzYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00YmUyNmJjOTZiNWY1ZjI0ZmVjZTMxZjJkNDVkMmMzNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctY2VmYTM1ZmU5NmRjMTRmNWJiMDlkNzhmMzQ4MGM5Y2YuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jZWZhMzVmZTk2ZGMxNGY1YmIwOWQ3OGYzNDgwYzljZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZmMyMWYxZDBkNDk2ZmQyMDlmNjljNzRjNTQzMzA5YzcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mYzIxZjFkMGQ0OTZmZDIwOWY2OWM3NGM1NDMzMDljNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZjg0NzRhNTE4ZGE3YjRlZjgxZTNkNzUwMjc1Y2Q4OWQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mODQ3NGE1MThkYTdiNGVmODFlM2Q3NTAyNzVjZDg5ZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWVkMjI2NGI4NzMzYzczZDAxYTU1MjBhZTJjMGFiNDkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lZWQyMjY0Yjg3MzNjNzNkMDFhNTUyMGFlMmMwYWI0OS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTRlOTk5MTgxY2YwNTU1ZDY4MTkxYWZiNjQ1YjQyYzAucG5nIj5fQ0dTbWFydEltYWdlL2ltZy0xNGU5OTkxODFjZjA1NTVkNjgxOTFhZmI2NDViNDJjMC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNGQyZTRmODY2NjUyZTk3Mjk3ZTQwYjMxYmMwMzJiMTEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00ZDJlNGY4NjY2NTJlOTcyOTdlNDBiMzFiYzAzMmIxMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWU1YTdkYTQzNjM2MmJlZmZmZTc3ZTYwOGZhM2UzODUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lZTVhN2RhNDM2MzYyYmVmZmZlNzdlNjA4ZmEzZTM4NS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctODY5ZmJjYmQ4ZDdlNzljNjU1MGMzMzc0OThhMjkzODAucG5nIj5fQ0dTbWFydEltYWdlL2ltZy04NjlmYmNiZDhkN2U3OWM2NTUwYzMzNzQ5OGEyOTM4MC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDdlOTU2MjEyZjAxYzk1YzIyZTkxY2U2YmUxYjgxMDMucG5nIj5fQ0dTbWFydEltYWdlL2ltZy1kN2U5NTYyMTJmMDFjOTVjMjJlOTFjZTZiZTFiODEwMy5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTJhMTU4MTM4MGM3YTk3YTk4YTk4NTE4ZmU0MGJhNGYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01MmExNTgxMzgwYzdhOTdhOThhOTg1MThmZTQwYmE0Zi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMmI5YmNiNWZkNWE0ODY0YWUwMzEwMDAwMjAxN2ZiNTEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yYjliY2I1ZmQ1YTQ4NjRhZTAzMTAwMDAyMDE3ZmI1MS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWEyNWFmMGM1MTBmOTdkMTkyY2UzOTgyY2QxZjEzYzEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lYTI1YWYwYzUxMGY5N2QxOTJjZTM5ODJjZDFmMTNjMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDA3ODUwNDFiNGMwOGJmY2Q2MDE4MDMzNWYwMGZmODQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kMDc4NTA0MWI0YzA4YmZjZDYwMTgwMzM1ZjAwZmY4NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWM4ZTdlZGE1MGEzZGJhMGE0MmIyMzJlZTM4NjhkOTcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05YzhlN2VkYTUwYTNkYmEwYTQyYjIzMmVlMzg2OGQ5Ny5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZjhmZmYxMjgyMWRjNDIzMzE4MGQ1N2QxZDVjMTI3ZTkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mOGZmZjEyODIxZGM0MjMzMTgwZDU3ZDFkNWMxMjdlOS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZGI3MTUxYjRlYmEyYTZkODU1YmQyYmYxY2EyOTRmOTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kYjcxNTFiNGViYTJhNmQ4NTViZDJiZjFjYTI5NGY5Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTFjY2Y2ZTEzM2U2NWI1NzhlZGJkZDU2MTQxZDVmMTEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xMWNjZjZlMTMzZTY1YjU3OGVkYmRkNTYxNDFkNWYxMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZjY1MDQzZmExMzFiMjRlYjU0MzdhY2U4YTIxNGRmNDAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mNjUwNDNmYTEzMWIyNGViNTQzN2FjZThhMjE0ZGY0MC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjlmMjY5Y2JkYjY4OTc2NDEzMDViNWYyYTQ4NDdmZTAucG5nIj5fQ0dTbWFydEltYWdlL2ltZy1iOWYyNjljYmRiNjg5NzY0MTMwNWI1ZjJhNDg0N2ZlMC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNzJjYzA4OWVjZTZmNTM0MGQ3OTViNGU5Y2ZjZThiNTUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03MmNjMDg5ZWNlNmY1MzQwZDc5NWI0ZTljZmNlOGI1NS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOTFhN2YxMDBkZjIwNGU5ZjUxZDIzODZlMzU5MmI5MjAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05MWE3ZjEwMGRmMjA0ZTlmNTFkMjM4NmUzNTkyYjkyMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctY2YxNjU1Yzk1Njg4MzRlZTI1ZDM1NjJiOGQwNjM0NGMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jZjE2NTVjOTU2ODgzNGVlMjVkMzU2MmI4ZDA2MzQ0Yy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOTRkYjU4NzEyMGNkMmJjNGE3NDEyNmZiNzU5ODA4MzUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05NGRiNTg3MTIwY2QyYmM0YTc0MTI2ZmI3NTk4MDgzNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDAzMzI2N2RmNzFiN2FiODI1YWFkMGQ0MjRkM2M2OGMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wMDMzMjY3ZGY3MWI3YWI4MjVhYWQwZDQyNGQzYzY4Yy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctODgwMDdjY2RhNjJhN2Y3MDhlYWVjZmYzY2E4YWZiYmIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04ODAwN2NjZGE2MmE3ZjcwOGVhZWNmZjNjYThhZmJiYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjU5MDMzNjdjYTY0ODlhNTQ0ZWIwMjAwMDA3MjI3NmUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yNTkwMzM2N2NhNjQ4OWE1NDRlYjAyMDAwMDcyMjc2ZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZjU2Y2Q2MGYzYzFkNzM0MTUyMWNjYmRiY2FhZjM4MzcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mNTZjZDYwZjNjMWQ3MzQxNTIxY2NiZGJjYWFmMzgzNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWVhNDQ2ZjgwNjk0ZTg4OTNjNjBlMTFmNmI2NjIxYmEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05ZWE0NDZmODA2OTRlODg5M2M2MGUxMWY2YjY2MjFiYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDU3ODg5YjY4NDBiNWY2M2MxOWFhZDI1Zjk0MWU2Y2UuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kNTc4ODliNjg0MGI1ZjYzYzE5YWFkMjVmOTQxZTZjZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWRjOTNkMjYwYmM3YzYzMTc3MTY1ZjNmNmFiMjU3ZmYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05ZGM5M2QyNjBiYzdjNjMxNzcxNjVmM2Y2YWIyNTdmZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNGIxNDQ1MjNkMzM3ZWViOTFkYzRiMmZiYWI4N2ExMGYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00YjE0NDUyM2QzMzdlZWI5MWRjNGIyZmJhYjg3YTEwZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDA4ZjJkYmQyMWVhMTFhYmU4ODY1YzYyZDQzOWFkOWUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wMDhmMmRiZDIxZWExMWFiZTg4NjVjNjJkNDM5YWQ5ZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDdjZTc0N2NjYWYyZDY4ZjZhMmY5NjM0OWM5YWMwZDguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kN2NlNzQ3Y2NhZjJkNjhmNmEyZjk2MzQ5YzlhYzBkOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzhkZDJhODA2MDQ3ZjhmYWRhYjEyOTgzNDFkOWFmYzQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zOGRkMmE4MDYwNDdmOGZhZGFiMTI5ODM0MWQ5YWZjNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTMyYzNjYjViYWRkM2I0ZjhmNWVlYzZmNDZkZjEyZDMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01MzJjM2NiNWJhZGQzYjRmOGY1ZWVjNmY0NmRmMTJkMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZjZjZDNlODBhYTQzZDJkNmNmZDQxM2YyMDI5NGIxM2YuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mNmNkM2U4MGFhNDNkMmQ2Y2ZkNDEzZjIwMjk0YjEzZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDQ0MDE3ZWViNDlkMDE2YjM1ZmUyODJlYTczMjNlZTguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kNDQwMTdlZWI0OWQwMTZiMzVmZTI4MmVhNzMyM2VlOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjM5ZWY1OTY0ZDE4MWRhZjZkY2YzODE3Nzk3YzRiOTIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iMzllZjU5NjRkMTgxZGFmNmRjZjM4MTc3OTdjNGI5Mi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjhmODIzMTZkMWNlMzk4NTUzZjVjOTBiMTYwZTZiMTguanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yOGY4MjMxNmQxY2UzOTg1NTNmNWM5MGIxNjBlNmIxOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNzUxY2VjZjRkYzljOTg0MDg3MDkzOGY4NTFhOTA1ZWQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03NTFjZWNmNGRjOWM5ODQwODcwOTM4Zjg1MWE5MDVlZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctODEyMWZiMDBkNjZmMDRlYjgzNzgwMzBjOWIyZDJjZjUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04MTIxZmIwMGQ2NmYwNGViODM3ODAzMGM5YjJkMmNmNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzNjMDVmYjM2NzFhZGYwNTIzZTAxODNkZmM1YjdhZTcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jM2MwNWZiMzY3MWFkZjA1MjNlMDE4M2RmYzViN2FlNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMGU5OTg1ZGE2ZDMxMzM5NGVhNzc1ZjU4YWU0MjA3NGYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wZTk5ODVkYTZkMzEzMzk0ZWE3NzVmNThhZTQyMDc0Zi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNjYzNGEzZjAyYzY2MTlkM2UxODhkMTlkNTMxMWZkYzMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02NjM0YTNmMDJjNjYxOWQzZTE4OGQxOWQ1MzExZmRjMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzM2YmQ2NjZiZDE5ODdkMmQ4MGMyZmMxNjMxNGEzODIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jMzZiZDY2NmJkMTk4N2QyZDgwYzJmYzE2MzE0YTM4Mi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzE5OTE0ZTlhYzIwZGQwOWMzMzRhNGZlZGZkY2ZiMjAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jMTk5MTRlOWFjMjBkZDA5YzMzNGE0ZmVkZmRjZmIyMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOTY2Zjc0YmYzMjQ3NTg4OTgyNGQzMzAxNzk1YzBiNzMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05NjZmNzRiZjMyNDc1ODg5ODI0ZDMzMDE3OTVjMGI3My5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYThhNTAyMDE2MzdlNjIyMjkyYmVlZTNlMWJmNmNiZDYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hOGE1MDIwMTYzN2U2MjIyOTJiZWVlM2UxYmY2Y2JkNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDVlNGExNzVmZDgzNDhmYWVhOTQ4NGFjYTA3N2MwNTguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kNWU0YTE3NWZkODM0OGZhZWE5NDg0YWNhMDc3YzA1OC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYTU1NTc2ZjllNWI0MzlhMWI1ZDgyNjE5NTBkNTUxYjAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hNTU1NzZmOWU1YjQzOWExYjVkODI2MTk1MGQ1NTFiMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNzU4ZmE0MTA5MGY3ZTkzMTRkY2QxNDU0MmMyY2QwOGEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03NThmYTQxMDkwZjdlOTMxNGRjZDE0NTQyYzJjZDA4YS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzNkMWYxMjg1MmU2ZGVhNGQ0OTg0NmRlOGE1ZmU5YjYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jM2QxZjEyODUyZTZkZWE0ZDQ5ODQ2ZGU4YTVmZTliNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzA5ZDM4NDhlMmUzZjM5NzVlYTQyOTY1M2Y0MjE4OWEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zMDlkMzg0OGUyZTNmMzk3NWVhNDI5NjUzZjQyMTg5YS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZTlkOTc0MDVlOWM0NTNkMzk4ZDNlOTRjZDc3ZDhjYjAucG5nIj5fQ0dTbWFydEltYWdlL2ltZy1lOWQ5NzQwNWU5YzQ1M2QzOThkM2U5NGNkNzdkOGNiMC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNDk0NDAxYzY0ZTkxZWVhMThiYjBmNzczZmQwOTVlMWEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00OTQ0MDFjNjRlOTFlZWExOGJiMGY3NzNmZDA5NWUxYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDQ4NWVmNTUxNjIzZTdhYThkNjk2ZGQ0MzNlOTM4YmIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wNDg1ZWY1NTE2MjNlN2FhOGQ2OTZkZDQzM2U5MzhiYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOThhMmM3YWI1YzQzZWIwYThhMTljZGQzYWQ5ZjRhM2IuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05OGEyYzdhYjVjNDNlYjBhOGExOWNkZDNhZDlmNGEzYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDNmMDJmODY0NTViMTIwMjQ1OWIxMjgyY2YwY2E1ZTIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kM2YwMmY4NjQ1NWIxMjAyNDU5YjEyODJjZjBjYTVlMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOTRhNTY0OTMyMjg2MDhiN2MxNzBiMzZjNjVhM2RlNGEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05NGE1NjQ5MzIyODYwOGI3YzE3MGIzNmM2NWEzZGU0YS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTVhZTE0OGMzMmZjMWE4MTdjMWVmMGIzZTM2OTYzNmQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01NWFlMTQ4YzMyZmMxYTgxN2MxZWYwYjNlMzY5NjM2ZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOGZkMmFjNTZkM2FkMzUxMWFlMDI3OGVjNWU1YjA5MDcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04ZmQyYWM1NmQzYWQzNTExYWUwMjc4ZWM1ZTViMDkwNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNGY5ZWQzZDA2NzA2NzhlYjhjNmMxN2E1YzkzMDM0MTAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00ZjllZDNkMDY3MDY3OGViOGM2YzE3YTVjOTMwMzQxMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTJjYTUxYjYyMTM0NmIwZDU4YTk5NThjMDIwYzZiNTcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01MmNhNTFiNjIxMzQ2YjBkNThhOTk1OGMwMjBjNmI1Ny5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDg2NGYzMTFmMGRiZDIxY2JjZDViNTUxM2RkNWEwNDQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wODY0ZjMxMWYwZGJkMjFjYmNkNWI1NTEzZGQ1YTA0NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctM2M3ZDU0ZGZlNTYxMWVkYjg1ODg3MzNmNGQ3NGIxMzQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zYzdkNTRkZmU1NjExZWRiODU4ODczM2Y0ZDc0YjEzNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzc2YWRhZGZjOThlNjVjYTBkZGE5MGI2YTNlNmY4ODIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zNzZhZGFkZmM5OGU2NWNhMGRkYTkwYjZhM2U2Zjg4Mi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjc2ZTk5NjJjMjNlYjdlMjBlMjY3Yzk0ZTYyY2I1YzguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iNzZlOTk2MmMyM2ViN2UyMGUyNjdjOTRlNjJjYjVjOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZTcxOGFiZjg2YTRhOTFjMzI3ZjZiOTMwYTZkMjI0ZWEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lNzE4YWJmODZhNGE5MWMzMjdmNmI5MzBhNmQyMjRlYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMGM3OGVmMjNiMzFjYmE2ODRkM2EyZTY0N2Y4YjBjZDUucG5nIj5fQ0dTbWFydEltYWdlL2ltZy0wYzc4ZWYyM2IzMWNiYTY4NGQzYTJlNjQ3ZjhiMGNkNS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNWI1YTQ1MDNkYmJiNmM1OGY1ZmJiNDFjZTIzOWFiODYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01YjVhNDUwM2RiYmI2YzU4ZjVmYmI0MWNlMjM5YWI4Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDUyNmQxZTcyMTg3NjhkNGQzNjczMTU4ZDA3OTk1YTkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kNTI2ZDFlNzIxODc2OGQ0ZDM2NzMxNThkMDc5OTVhOS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYTU3M2I2MjJlNmVlYjg4ZmY2NmEyY2Q4MjBhYTczZWYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hNTczYjYyMmU2ZWViODhmZjY2YTJjZDgyMGFhNzNlZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctN2U0MzNkY2NiZWU3NjFjYjkyODFjNDJlODlhNzkzNDcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03ZTQzM2RjY2JlZTc2MWNiOTI4MWM0MmU4OWE3OTM0Ny5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTk1NWM5NGQ1OWNkYmRhY2ZlOGRlNzZiMTMwYTNhM2MuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xOTU1Yzk0ZDU5Y2RiZGFjZmU4ZGU3NmIxMzBhM2EzYy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZTIyMWEzMjllOGMzMzg1ZTg1NmZiMzc2MmZlYTUzZDguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lMjIxYTMyOWU4YzMzODVlODU2ZmIzNzYyZmVhNTNkOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzFiOWJhY2I5OTBiMmZjN2M5MzMwY2NmMDM1ZWY4MGUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zMWI5YmFjYjk5MGIyZmM3YzkzMzBjY2YwMzVlZjgwZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTJlZjhkMjE2NDQ0NmZjODVhZDI5NjFiZWM4ZGMzN2QuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01MmVmOGQyMTY0NDQ2ZmM4NWFkMjk2MWJlYzhkYzM3ZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTg5NTYzMDIxNGI0ZGNlYzM4NTllZWU5MDIzMDA1NjcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xODk1NjMwMjE0YjRkY2VjMzg1OWVlZTkwMjMwMDU2Ny5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZTk1NDlhMzIwMmE0NTg4NTEwMWNkNDE2OTNjZmFjZGQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lOTU0OWEzMjAyYTQ1ODg1MTAxY2Q0MTY5M2NmYWNkZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjdmMDk5MGVjYzY2MGEwMTM5Y2RkZGYwZTYyNjU4OTcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yN2YwOTkwZWNjNjYwYTAxMzljZGRkZjBlNjI2NTg5Ny5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNjA5MThhNzAyNWI3NmMwOTc3YWJiMjJmNzJlZWRjYTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02MDkxOGE3MDI1Yjc2YzA5NzdhYmIyMmY3MmVlZGNhNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzAyMjEwNzYwOGI4YTQxOGJkNTljZmNiNGFiMmI5YmMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zMDIyMTA3NjA4YjhhNDE4YmQ1OWNmY2I0YWIyYjliYy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMWEwYWM4OTVlNzExM2FkNTM1NWY3ZmJiYjMxMmE3NDEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xYTBhYzg5NWU3MTEzYWQ1MzU1ZjdmYmJiMzEyYTc0MS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjMyZjMxNDA4MTU1MWFmMzFiZTdkMGMxOGZiZWJmYjMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iMzJmMzE0MDgxNTUxYWYzMWJlN2QwYzE4ZmJlYmZiMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzZlYjJmNGNhMWY2ZmZlNzQ1NGVkMzUxZDRiY2JjZWYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zNmViMmY0Y2ExZjZmZmU3NDU0ZWQzNTFkNGJjYmNlZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWEzNzY4NzlhNjE0NGRiMGEyNmZmOGMzNDQ0MmRiOTEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lYTM3Njg3OWE2MTQ0ZGIwYTI2ZmY4YzM0NDQyZGI5MS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZTYyYzdiMWM4MDI0Mjc2YTQxMjQ4YjcwNmE5YzY2ODEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lNjJjN2IxYzgwMjQyNzZhNDEyNDhiNzA2YTljNjY4MS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNzgyNTA2NjQ5YjUyY2FmNDFmOTBlN2IyOWZhZmEwMDUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03ODI1MDY2NDliNTJjYWY0MWY5MGU3YjI5ZmFmYTAwNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNzM0NjZhYzNlN2I2YzVjMzQ3MjFlYzgyYTI4NDJmODkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03MzQ2NmFjM2U3YjZjNWMzNDcyMWVjODJhMjg0MmY4OS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOGJiYmFjMTJkY2E3NDNlZDQ2NDg0Y2Q5NzRmOGI4NGMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04YmJiYWMxMmRjYTc0M2VkNDY0ODRjZDk3NGY4Yjg0Yy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzRmYjkwZjA5ODY3NTkzYmFmODNjOTY1YjliNDNhNTQucG5nIj5fQ0dTbWFydEltYWdlL2ltZy1jNGZiOTBmMDk4Njc1OTNiYWY4M2M5NjViOWI0M2E1NC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTg1MDgyOWRlZTA4NjlmMDExMGQ2OWZhNjU0ZTUxNTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xODUwODI5ZGVlMDg2OWYwMTEwZDY5ZmE2NTRlNTE1Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjE0NzYwYTQyZjkwZWIxNTk4NjAzMDZjNWU2ZmJmODEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yMTQ3NjBhNDJmOTBlYjE1OTg2MDMwNmM1ZTZmYmY4MS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOGEwZWMxOGYxZjk4YzllMTE1Njg2MzMyZjM5YTZkODMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04YTBlYzE4ZjFmOThjOWUxMTU2ODYzMzJmMzlhNmQ4My5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZmZmMTI3Y2NmM2ZhMTVjMWVlYjU5NzBiMjk3MDliMTQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mZmYxMjdjY2YzZmExNWMxZWViNTk3MGIyOTcwOWIxNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMmE1MTRiOWE2NjUyZjRkNWM4NWUwMGZmNWRmODA1NmYucG5nIj5fQ0dTbWFydEltYWdlL2ltZy0yYTUxNGI5YTY2NTJmNGQ1Yzg1ZTAwZmY1ZGY4MDU2Zi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNDZhZTFmMGQ4YWFjNDJhN2UxZjFkOWQ4NTQ0ZDU4ZjUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00NmFlMWYwZDhhYWM0MmE3ZTFmMWQ5ZDg1NDRkNThmNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDg3ZDQ5MTg4YzljMDUyNGQ5OGIyMzQ1YTYzNGYzZTIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kODdkNDkxODhjOWMwNTI0ZDk4YjIzNDVhNjM0ZjNlMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjM4YTU0ZDU1NmNlZGMxY2MwY2IyYjFjYjVmOTRlYWEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iMzhhNTRkNTU2Y2VkYzFjYzBjYjJiMWNiNWY5NGVhYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZjJiNTcyYzVjZDA3ZjU4NWJkYTI3Mzg1NTdjMGY1MjYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mMmI1NzJjNWNkMDdmNTg1YmRhMjczODU1N2MwZjUyNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctODZiMmU4OGIwM2JjMTk2YmRhODVlZGZkNzNjNGYzNjcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04NmIyZTg4YjAzYmMxOTZiZGE4NWVkZmQ3M2M0ZjM2Ny5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjM1OGFkMWMxYTc5ZThiZGIwNTM3ZWZmODBiMWU2NzguanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yMzU4YWQxYzFhNzllOGJkYjA1MzdlZmY4MGIxZTY3OC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNjg2YjlmMDczZjUyZTQyOWJhYThiZTcxZTE1YTgxMTIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02ODZiOWYwNzNmNTJlNDI5YmFhOGJlNzFlMTVhODExMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYTkwMTgwMTBkZTg2ZTZkOThmNjg5ODQyNTQyYTlmM2EuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hOTAxODAxMGRlODZlNmQ5OGY2ODk4NDI1NDJhOWYzYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctN2VmMWU2MTFhNWYzMGVkMDM3ZDM5Njc3ZjUxOTRiZjguanBnIj5fQ0dTbWFydEltYWdlL2ltZy03ZWYxZTYxMWE1ZjMwZWQwMzdkMzk2NzdmNTE5NGJmOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzI5YjA0NTMzNmQ3MGRlNmM1NjM2ZTdkZjc3NTkwYTcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jMjliMDQ1MzM2ZDcwZGU2YzU2MzZlN2RmNzc1OTBhNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTRlZDRhZjYwOWQwN2Y4MTMxODk4ZjZjNzVjN2RlZTMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01NGVkNGFmNjA5ZDA3ZjgxMzE4OThmNmM3NWM3ZGVlMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDNiYzZhZjQxYWU3YjdkNzU0NDI1YTNmMjE1N2ZmYTIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kM2JjNmFmNDFhZTdiN2Q3NTQ0MjVhM2YyMTU3ZmZhMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWE2ZGVhMTY5MjVmYWU3YjkwZmEzZGU5MDkwODY3NjguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lYTZkZWExNjkyNWZhZTdiOTBmYTNkZTkwOTA4Njc2OC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOGQ1NjNiMTQ5Yzg3NmI1MmM5NTE1MDNhODYzMTNiNDQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04ZDU2M2IxNDljODc2YjUyYzk1MTUwM2E4NjMxM2I0NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTNlMzY1M2E3NzQ5MTBmNDMzMTBmOWM3NzM4MmNkZTUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xM2UzNjUzYTc3NDkxMGY0MzMxMGY5Yzc3MzgyY2RlNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYmI2M2I2YmEwNjUyMTc5NzgyYjY5M2UwNmJkNzUwOGYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iYjYzYjZiYTA2NTIxNzk3ODJiNjkzZTA2YmQ3NTA4Zi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMWYxMDRkNjUyNDYxMzk5MDYwYWRhYzE3OGMxNWVmMzIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xZjEwNGQ2NTI0NjEzOTkwNjBhZGFjMTc4YzE1ZWYzMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMGU1ZDU5NWNkZmU3NjdlMjNlYTI4Y2MxYTNjZDIzZmIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wZTVkNTk1Y2RmZTc2N2UyM2VhMjhjYzFhM2NkMjNmYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNjhjZmY2NmY2MmY4ZGM3MTg2ZGM3NGZiYTZlZjNlNmEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02OGNmZjY2ZjYyZjhkYzcxODZkYzc0ZmJhNmVmM2U2YS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTdiNGIzMDI0MTU3NmRhY2MyZmM1ZmVkYmY1NzljYzUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01N2I0YjMwMjQxNTc2ZGFjYzJmYzVmZWRiZjU3OWNjNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWUxNTRhYWQzYzE0MmZjYjI1ZGFjOWYzMzZkNDM2MGMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lZTE1NGFhZDNjMTQyZmNiMjVkYWM5ZjMzNmQ0MzYwYy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzdkODhlZTc2M2FkOTZmZjg5NDBiMjE1MzBmZTliZDUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zN2Q4OGVlNzYzYWQ5NmZmODk0MGIyMTUzMGZlOWJkNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctN2Y3Yjg5YjM0MTIyMTdkY2FmNTRmYjhmZGFiYmU2MzcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03ZjdiODliMzQxMjIxN2RjYWY1NGZiOGZkYWJiZTYzNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWU2ZjUxZjIxODhhNzgwNjc5NDRjZGVhOTFhMGU1YmYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lZTZmNTFmMjE4OGE3ODA2Nzk0NGNkZWE5MWEwZTViZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZjc0NmM0NjMwNDYwMzQzMzFhYmI4ZDc3MWJlNDA4ZDAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mNzQ2YzQ2MzA0NjAzNDMzMWFiYjhkNzcxYmU0MDhkMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTE3OGFiMzIwMmNmNDhmNmJhODNlMzllNTgzNmY0MWYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01MTc4YWIzMjAyY2Y0OGY2YmE4M2UzOWU1ODM2ZjQxZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTVhYmNjMDYxZTI5MzY1MDJlYjhmZjIxMzgxMDk3ZDQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xNWFiY2MwNjFlMjkzNjUwMmViOGZmMjEzODEwOTdkNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNDNhZjk3NGJkMjNhMWI1MWVlMjg2YmMyM2Q3Y2YwOTcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00M2FmOTc0YmQyM2ExYjUxZWUyODZiYzIzZDdjZjA5Ny5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNWQxYmIxNjdkMzhmYjNmODFiZmJkNWU3YmFjZGFiMWQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01ZDFiYjE2N2QzOGZiM2Y4MWJmYmQ1ZTdiYWNkYWIxZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWUyNzQ2OTE3YmJlMTFhZjc0Y2RjZDI2NmJjMjhlOTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05ZTI3NDY5MTdiYmUxMWFmNzRjZGNkMjY2YmMyOGU5Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzM0NTIwOGZhZGY5Zjg1ZTQ5ZDMzMWU2MWJjZmYwMmEucG5nIj5fQ0dTbWFydEltYWdlL2ltZy0zMzQ1MjA4ZmFkZjlmODVlNDlkMzMxZTYxYmNmZjAyYS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNjM5ZDIzYjZhZjU1YjNiN2EzMTFiYzRhZTcxOGQzMGUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02MzlkMjNiNmFmNTViM2I3YTMxMWJjNGFlNzE4ZDMwZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNDU1OGNhM2U4Y2I4OTg3ZGE3MDNkYWU2YjJlOTFhYzUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00NTU4Y2EzZThjYjg5ODdkYTcwM2RhZTZiMmU5MWFjNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOGNiNzE4NDdlNjk0MTQxOTc4MTc3MzA2MTZkZjQwMjUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04Y2I3MTg0N2U2OTQxNDE5NzgxNzczMDYxNmRmNDAyNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNWNjNzY5YTU4MmIzNGM5MWMxOWEwODQxNzE2YmZiMDcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01Y2M3NjlhNTgyYjM0YzkxYzE5YTA4NDE3MTZiZmIwNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctODJiOWRkNjQ5MjdkMzQ4Y2Y5NzY1YzZhY2U1NzQ2YTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04MmI5ZGQ2NDkyN2QzNDhjZjk3NjVjNmFjZTU3NDZhNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOGFhYjY1ZmZhODRmMDViYzdiM2JmZDcxNmVkN2ZhNDMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04YWFiNjVmZmE4NGYwNWJjN2IzYmZkNzE2ZWQ3ZmE0My5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNmYwZjUxNTI3MTkwYjBlNzc1ZTZjOTA1NTJlMTg4ZmQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02ZjBmNTE1MjcxOTBiMGU3NzVlNmM5MDU1MmUxODhmZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjAyYjg2NzljMmVkMjQ4ZjU1NzVlMzZjOGU2YTdmYjYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yMDJiODY3OWMyZWQyNDhmNTU3NWUzNmM4ZTZhN2ZiNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDU2NzlhNGVkNjU3YmQ5YjI3MGI4OGQ0NGQ0MDBjOGEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kNTY3OWE0ZWQ2NTdiZDliMjcwYjg4ZDQ0ZDQwMGM4YS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjgyNjgxNGVkMDIxYmFlMmFkZDg5ZjY2MzVkN2IzYmQucG5nIj5fQ0dTbWFydEltYWdlL2ltZy0yODI2ODE0ZWQwMjFiYWUyYWRkODlmNjYzNWQ3YjNiZC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNmVmNTk5OTM3YzBkMWU5N2Y2ZTRlZWFhN2Q0NzMyZjkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02ZWY1OTk5MzdjMGQxZTk3ZjZlNGVlYWE3ZDQ3MzJmOS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZGYzNGRiZGFlNDBmNzg4YTFiYmVlN2Y5MGM4NDlmM2MuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kZjM0ZGJkYWU0MGY3ODhhMWJiZWU3ZjkwYzg0OWYzYy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMmNlYTlmMTkzZmYzMGQwYjZhMzNlOWIyNTdiOGM4NDIucG5nIj5fQ0dTbWFydEltYWdlL2ltZy0yY2VhOWYxOTNmZjMwZDBiNmEzM2U5YjI1N2I4Yzg0Mi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNWE0MjIyNjczNTMxOGJkZjJlYjNhYjU4YmI2NDI4ZGMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01YTQyMjI2NzM1MzE4YmRmMmViM2FiNThiYjY0MjhkYy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTFhNTJhODBkMWNiNmFjNjY5OTAwNDZlOWI1ZmNjNTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01MWE1MmE4MGQxY2I2YWM2Njk5MDA0NmU5YjVmY2M1Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNmY5OWU2NWIwYmNkMGNkN2I1MTgzNjVhYWQzMzExOWUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02Zjk5ZTY1YjBiY2QwY2Q3YjUxODM2NWFhZDMzMTE5ZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjEyNDdkZjFlNDEyOTNlMzIwNDgyYTAwMThhOGIxNzEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yMTI0N2RmMWU0MTI5M2UzMjA0ODJhMDAxOGE4YjE3MS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZTAxOWYyZjhkZGM4MDYzOWVmYTAwZTNmNWFmMDcxOTIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lMDE5ZjJmOGRkYzgwNjM5ZWZhMDBlM2Y1YWYwNzE5Mi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYTA1MTQyYWI5NzZlNTY2ZjE2ODQ3MTg4YmY3NjU2MjguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hMDUxNDJhYjk3NmU1NjZmMTY4NDcxODhiZjc2NTYyOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNDgyMDI3OGNlZjg3NzZjZjQ3ZTgyN2Q1NTgyY2QyZTguanBnIj5fQ0dTbWFydEltYWdlL2ltZy00ODIwMjc4Y2VmODc3NmNmNDdlODI3ZDU1ODJjZDJlOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNjg0NzYwMmJhNmE0M2JlYzkwNWE3Y2RhNGJhMzBkZGEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02ODQ3NjAyYmE2YTQzYmVjOTA1YTdjZGE0YmEzMGRkYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNzFmZmZkMmU5NmM5MzliZjA1ZTVlNGJjNzY5YTJhMDYucG5nIj5fQ0dTbWFydEltYWdlL2ltZy03MWZmZmQyZTk2YzkzOWJmMDVlNWU0YmM3NjlhMmEwNi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOTEzMGU4ZjBhZmYyOTljNDM3Njk0MTAzMDU2MzhiZjIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05MTMwZThmMGFmZjI5OWM0Mzc2OTQxMDMwNTYzOGJmMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNGIxMjQyOWI3NTcwODY3YTM5YzYxYTNlZTE0ZGJiMmEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00YjEyNDI5Yjc1NzA4NjdhMzljNjFhM2VlMTRkYmIyYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDAzMTI5MDI4ZDYyYmRkNWU3NWZjNTI4NmIwMGVmYzguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kMDMxMjkwMjhkNjJiZGQ1ZTc1ZmM1Mjg2YjAwZWZjOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZGNkYzJlYWZhZGUwZTRmYjUwZWNmYTBlNDg4OTI2YjguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kY2RjMmVhZmFkZTBlNGZiNTBlY2ZhMGU0ODg5MjZiOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctM2ZhZGM0ODgyNTI1Yzg3ZmY1OWRkY2EzMDcwM2FkMWUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zZmFkYzQ4ODI1MjVjODdmZjU5ZGRjYTMwNzAzYWQxZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjY0YTdkOTY2ZWFjNGVhYjY5NzRjNThkNzczN2U0NGEucG5nIj5fQ0dTbWFydEltYWdlL2ltZy1iNjRhN2Q5NjZlYWM0ZWFiNjk3NGM1OGQ3NzM3ZTQ0YS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYmVlYTQzMWM5ZjQyODUwM2ZhMDA2NzJjYWVmZTE0NWIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iZWVhNDMxYzlmNDI4NTAzZmEwMDY3MmNhZWZlMTQ1Yi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctM2U1Zjg2NGI4YzI1MmY0NTdjYzRlY2VmZGIzZGY2MWEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zZTVmODY0YjhjMjUyZjQ1N2NjNGVjZWZkYjNkZjYxYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNDc0YTRmNTU1MjFiYjBiYTZiNTZiZmIxYTY1YjI3NzIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00NzRhNGY1NTUyMWJiMGJhNmI1NmJmYjFhNjViMjc3Mi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWI0ZWI3NzM1NzRlZjgyOWJiNzI2ODZmNjlhZDI0ZTMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05YjRlYjc3MzU3NGVmODI5YmI3MjY4NmY2OWFkMjRlMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNjMzYTBkODc3ZWEyMzg2YjhiNGM3OTE4NzQ1MDhhZTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02MzNhMGQ4NzdlYTIzODZiOGI0Yzc5MTg3NDUwOGFlNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMWIzY2QwNDRkYzlmNjdiNzUyYzIzZGMzMTI3NzUwOGQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xYjNjZDA0NGRjOWY2N2I3NTJjMjNkYzMxMjc3NTA4ZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTc0YTVmMzI3MDcxZTQ5MThmYTcxNTQzODA0OWY2ZWYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xNzRhNWYzMjcwNzFlNDkxOGZhNzE1NDM4MDQ5ZjZlZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjdiZmY1ZjczODQ0YTE1NjBlOWZhMDRiNTFiZWYyYmIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yN2JmZjVmNzM4NDRhMTU2MGU5ZmEwNGI1MWJlZjJiYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjdhOThjMzU4YjJjZDA2YmExYzY1ZTA0NzhmMWE5OGYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yN2E5OGMzNThiMmNkMDZiYTFjNjVlMDQ3OGYxYTk4Zi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZjc4OGMxZDFiMzcwMDRhMDg4Mjc0MzdmYTU5NTRjMWQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mNzg4YzFkMWIzNzAwNGEwODgyNzQzN2ZhNTk1NGMxZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTQ4YjQ2OGMwYTc4ZjhjMDVlNThkMjJiOTA1YzRjZDUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01NDhiNDY4YzBhNzhmOGMwNWU1OGQyMmI5MDVjNGNkNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTVmYmUyNmQ0OTg2ZTU5NGFlYzM3MjJiNDYyMTk1YWQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01NWZiZTI2ZDQ5ODZlNTk0YWVjMzcyMmI0NjIxOTVhZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOTJhOTNiZTEwYjI4YzkyNjA1YjYxNjNiYjg2NjBmMjQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05MmE5M2JlMTBiMjhjOTI2MDViNjE2M2JiODY2MGYyNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTg5NzQ2NTA2YzVkZGI4YTY3NjUzMjJjMzgzNDFjMDkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xODk3NDY1MDZjNWRkYjhhNjc2NTMyMmMzODM0MWMwOS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctM2IxZDZhNmQ1YzUyZjk0ODU4YmViN2Q4ZjUzOGE0MjMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zYjFkNmE2ZDVjNTJmOTQ4NThiZWI3ZDhmNTM4YTQyMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWI5YzNhYWI0ODYyNjU5ZmQ4NGE3ZWEyNmU0YmM4YzcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lYjljM2FhYjQ4NjI2NTlmZDg0YTdlYTI2ZTRiYzhjNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZmRiMjUzMjI1ODg3Mzk5NWJjNzFlYjcxZWVmYzlhZmUucG5nIj5fQ0dTbWFydEltYWdlL2ltZy1mZGIyNTMyMjU4ODczOTk1YmM3MWViNzFlZWZjOWFmZS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctM2MzNzkzNGI3NDZkNjdmZmUzYTBkODRkMTM3ZjcxYzEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zYzM3OTM0Yjc0NmQ2N2ZmZTNhMGQ4NGQxMzdmNzFjMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDZkMjBmMGFlYjEwMTc5MmMyZjU2NDJmNjI4YjE4OWYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kNmQyMGYwYWViMTAxNzkyYzJmNTY0MmY2MjhiMTg5Zi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTY1MGMxYWNjMDE5ZDM5MDU5ZjgxNzUxNjJjZGExOTAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xNjUwYzFhY2MwMTlkMzkwNTlmODE3NTE2MmNkYTE5MC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctN2Q4YmZmOGYwOGQ2NjkzOWU3MDEyOThlZDAxYjdhMjQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03ZDhiZmY4ZjA4ZDY2OTM5ZTcwMTI5OGVkMDFiN2EyNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctM2UyYTNhNmI3ODI3ZmNmYTgzYTZhNzlkMTBjMDA4ODUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zZTJhM2E2Yjc4MjdmY2ZhODNhNmE3OWQxMGMwMDg4NS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDU5MGM4NjAzZmFmOTUxZTBjYTFjNmY0ZDgwMjcyZmMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wNTkwYzg2MDNmYWY5NTFlMGNhMWM2ZjRkODAyNzJmYy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMmVmNmNiMTdiMjIxMWUyOTc3ODg1NGViMDE5NzMxYWYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yZWY2Y2IxN2IyMjExZTI5Nzc4ODU0ZWIwMTk3MzFhZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNGEwNTk2ZTJjYmFkYzFiMzNjNWQ1ZmE2NDUyYjAyMGIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00YTA1OTZlMmNiYWRjMWIzM2M1ZDVmYTY0NTJiMDIwYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzJkZDkxZjQwZjQwMTIzMTAyODA2ZDVkOWI1NzQ5NTQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zMmRkOTFmNDBmNDAxMjMxMDI4MDZkNWQ5YjU3NDk1NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOThmZDc5MTA1NmI1YWM5OGY5MzFkMWNhZmNhMjU4M2UuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05OGZkNzkxMDU2YjVhYzk4ZjkzMWQxY2FmY2EyNTgzZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYWU5YzgxMzZlZmI0ZGMzM2ZiZjcxMDJmMTg5YWMyY2YuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hZTljODEzNmVmYjRkYzMzZmJmNzEwMmYxODlhYzJjZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWMzNjhkN2RlM2QyZTg4MTc1YTgwZThlYmM5ZDUyYzQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05YzM2OGQ3ZGUzZDJlODgxNzVhODBlOGViYzlkNTJjNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctN2MzMWYwMTY3NzQ3ZmFjYzhlZjY4ZDIxYWY3ZTVhOGMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03YzMxZjAxNjc3NDdmYWNjOGVmNjhkMjFhZjdlNWE4Yy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZGQzODVjZmJmNDJlNmU4ODdiYzliOTRlYjZlMmI0ZDEucG5nIj5fQ0dTbWFydEltYWdlL2ltZy1kZDM4NWNmYmY0MmU2ZTg4N2JjOWI5NGViNmUyYjRkMS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjYwOWIxY2UwMDUzYmFkMGFhZmM3OTkwMWM3ODIwNTcucG5nIj5fQ0dTbWFydEltYWdlL2ltZy1iNjA5YjFjZTAwNTNiYWQwYWFmYzc5OTAxYzc4MjA1Ny5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZjZhYjA5ZGRjOWEyNTBlOGJkZGI3NjFjMTk4MGIzNDguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mNmFiMDlkZGM5YTI1MGU4YmRkYjc2MWMxOTgwYjM0OC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYWY1YTljMTFhMmI4MzZjODkwZjQ2MTU3OGVhYWM4MzUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hZjVhOWMxMWEyYjgzNmM4OTBmNDYxNTc4ZWFhYzgzNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjlhOTRmY2M1YzYxYTBhZjJkMmNkMGIzZDRlNDk2ZjYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yOWE5NGZjYzVjNjFhMGFmMmQyY2QwYjNkNGU0OTZmNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMGJiYWU1ZjllZmZjMzhiMWNjZTFhYmVlZmNhZjY5MDkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wYmJhZTVmOWVmZmMzOGIxY2NlMWFiZWVmY2FmNjkwOS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctY2Q2ODY2MmYzNzMzZTgzNGJiZjA2ZWEzMWQ1NjcxY2MuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jZDY4NjYyZjM3MzNlODM0YmJmMDZlYTMxZDU2NzFjYy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNGU2MDAxODIzODYwZmUyMGZhZjI1OTM4ZDY4M2IyYzguanBnIj5fQ0dTbWFydEltYWdlL2ltZy00ZTYwMDE4MjM4NjBmZTIwZmFmMjU5MzhkNjgzYjJjOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzgyZDJmYmMxMjkxNzk0MjlhMjFiMzJiYmNmZjUwYzguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jODJkMmZiYzEyOTE3OTQyOWEyMWIzMmJiY2ZmNTBjOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOTdjNDU2YWMwZmM2NDZlZTc1ZjQ2NTYzMWMxZjkzNjYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05N2M0NTZhYzBmYzY0NmVlNzVmNDY1NjMxYzFmOTM2Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDYyZjg5YTkyNDc2NGVjMGNlMGYyZjA1YmRhNTIwZTUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wNjJmODlhOTI0NzY0ZWMwY2UwZjJmMDViZGE1MjBlNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNjZjMDNjYWJlMzEzZWIxMDU3ZTEzN2YyOTQ3YmVlMzAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02NmMwM2NhYmUzMTNlYjEwNTdlMTM3ZjI5NDdiZWUzMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNzM2M2NkNzk4NzIxMzU1ZWE5NTg2ZDY2MjdhZDAwYTEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03MzYzY2Q3OTg3MjEzNTVlYTk1ODZkNjYyN2FkMDBhMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWI4MmE5MTM1Zjk4NjRjNjM4MTk0N2I2ZWVjOWM0N2EuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05YjgyYTkxMzVmOTg2NGM2MzgxOTQ3YjZlZWM5YzQ3YS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMWZhZDNiODVkZDZjNWM3ZGU2NmU5OTk1ODM3OWUyMTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xZmFkM2I4NWRkNmM1YzdkZTY2ZTk5OTU4Mzc5ZTIxNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjc5NzRhMTBhNjE3OTdmYWY4NGY3MWQ3NmM4ZTZkOTMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iNzk3NGExMGE2MTc5N2ZhZjg0ZjcxZDc2YzhlNmQ5My5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNmZkNzQxNDc2ODYyMzYzMTJmNTI4ZGVjYTRkNjZlN2YuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02ZmQ3NDE0NzY4NjIzNjMxMmY1MjhkZWNhNGQ2NmU3Zi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTkwYzY4ZWIzY2ZjMWE3Nzg3ZjM0MDIzOWY3NjYwNGMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xOTBjNjhlYjNjZmMxYTc3ODdmMzQwMjM5Zjc2NjA0Yy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDljNjk1YzZlYmIxOWQ2M2ZhNTRkMjIwZGJjYTFhYmIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kOWM2OTVjNmViYjE5ZDYzZmE1NGQyMjBkYmNhMWFiYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctY2E4MTI0ZjJkZjUyYmEzYTE3Y2ZiYmEzMzY1OWMxYmQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jYTgxMjRmMmRmNTJiYTNhMTdjZmJiYTMzNjU5YzFiZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjQwMGEyZDk1ZTEyMmExNGMwYTVlMWFhMzkzMjBhMDAucG5nIj5fQ0dTbWFydEltYWdlL2ltZy1iNDAwYTJkOTVlMTIyYTE0YzBhNWUxYWEzOTMyMGEwMC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDg1OWQzNDRhNDhjYjIyNjI4OTMyNTJkZTQ2MWM0OTkucG5nIj5fQ0dTbWFydEltYWdlL2ltZy0wODU5ZDM0NGE0OGNiMjI2Mjg5MzI1MmRlNDYxYzQ5OS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTVkYzdmZWY4ZTMzNjNmYzMwYmQxZjhlYTJlYTNkMTQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01NWRjN2ZlZjhlMzM2M2ZjMzBiZDFmOGVhMmVhM2QxNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNWYzN2FkOGI0MjQ4NTc0OWNhNzdhNTAwZGQ1MmQ0MDYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01ZjM3YWQ4YjQyNDg1NzQ5Y2E3N2E1MDBkZDUyZDQwNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNDkyM2FmOTM0NmNmY2EyYjc4YThiMDU0N2JmOGYxNTIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00OTIzYWY5MzQ2Y2ZjYTJiNzhhOGIwNTQ3YmY4ZjE1Mi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTVlMTRiNTUyMjNkNjcyN2ZjYWIzN2I1ZGViZWJmMWMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01NWUxNGI1NTIyM2Q2NzI3ZmNhYjM3YjVkZWJlYmYxYy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMWMxNGVlM2YxNjA5MzYyZjcxM2Y1ZmFhNWFhNjYwZTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xYzE0ZWUzZjE2MDkzNjJmNzEzZjVmYWE1YWE2NjBlNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYTY5YmQ2YTNhOTM3NzRkMmM2YWMwZTkwM2JjMTljZmUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hNjliZDZhM2E5Mzc3NGQyYzZhYzBlOTAzYmMxOWNmZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDMxYTJmZTY0OTMwNmE2NDZkZWJmNmUxZDJhMjY5NTkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wMzFhMmZlNjQ5MzA2YTY0NmRlYmY2ZTFkMmEyNjk1OS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctN2NmNjhiYWQzZTc2ZTZiY2YzNmFiZDA4ZjI1ZGZkOTQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03Y2Y2OGJhZDNlNzZlNmJjZjM2YWJkMDhmMjVkZmQ5NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctODllYjUzMjkzYTJhMjFlZjM4ZTNkYTQzNWMzMTM0MGIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy04OWViNTMyOTNhMmEyMWVmMzhlM2RhNDM1YzMxMzQwYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjQzM2JmMDJiYjM5NWVjOTczMjc5ZmZhNjFiYTNlZmYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yNDMzYmYwMmJiMzk1ZWM5NzMyNzlmZmE2MWJhM2VmZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjM4OWY1ZjA2ZjQ4MGFmNmViNGE2ZDE5NzIzODRiOTIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yMzg5ZjVmMDZmNDgwYWY2ZWI0YTZkMTk3MjM4NGI5Mi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNGViODFhNzZhNDYzZWI4NDdmNWU2OGI3OGExMGRlZTcuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00ZWI4MWE3NmE0NjNlYjg0N2Y1ZTY4Yjc4YTEwZGVlNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZGU4MDA2MmRhMzA3NTNlYTBmOGY1M2RiZWQ1YTMxZjAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kZTgwMDYyZGEzMDc1M2VhMGY4ZjUzZGJlZDVhMzFmMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjE1ZmJkYTNhMmYzZDIzMGNmODI3M2Y4ZWE2Yjc2MWIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yMTVmYmRhM2EyZjNkMjMwY2Y4MjczZjhlYTZiNzYxYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjkwMDc5ODFjNzM1NzFjNTQ0OTlmZGI3ZmMwZmRmNzMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iOTAwNzk4MWM3MzU3MWM1NDQ5OWZkYjdmYzBmZGY3My5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYjllYzlmY2Y2MDEzNTNmOTI4Nzk4MzRiYjkxNDE2NjIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iOWVjOWZjZjYwMTM1M2Y5Mjg3OTgzNGJiOTE0MTY2Mi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzVhZTBlNDcwMzkwODdhNmU3ZWZmN2ExMDIyNmM3YmIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jNWFlMGU0NzAzOTA4N2E2ZTdlZmY3YTEwMjI2YzdiYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMmY3MDdjOWNlMjdhODU1ZmYyZmYwNzI2MmE5NThiNDQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yZjcwN2M5Y2UyN2E4NTVmZjJmZjA3MjYyYTk1OGI0NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZmI2OTdjNWViZGQ4ODAzNjI4OTBlNTgwYjNhOGUzYWIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1mYjY5N2M1ZWJkZDg4MDM2Mjg5MGU1ODBiM2E4ZTNhYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctY2VkZThiYTFmNjJiNDU2OTYxOTc0ZDVlZDFiOTcxMTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jZWRlOGJhMWY2MmI0NTY5NjE5NzRkNWVkMWI5NzExNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWYzZDg4NTY1ZDdkYTM2ZTYwYjI1ODg0ODg1YWVlYjguanBnIj5fQ0dTbWFydEltYWdlL2ltZy05ZjNkODg1NjVkN2RhMzZlNjBiMjU4ODQ4ODVhZWViOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTcwNDlhNDIwY2NjZTY3MGRlYjBjYTU3NGYyYjBhYTEucG5nIj5fQ0dTbWFydEltYWdlL2ltZy0xNzA0OWE0MjBjY2NlNjcwZGViMGNhNTc0ZjJiMGFhMS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjUyMzAwN2NjODZmYmU0YTI2ZGFlNzAxMjU0ZDdmYTkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yNTIzMDA3Y2M4NmZiZTRhMjZkYWU3MDEyNTRkN2ZhOS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNmIxMzZjM2MwNWQ5ZjkzYTU2OWU4ZjNmZjE4Y2NlNGMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02YjEzNmMzYzA1ZDlmOTNhNTY5ZThmM2ZmMThjY2U0Yy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDVlYWQ1ZDJiZWZjMjQyMmRiNzIzZTFiNDExNWY1OWUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wNWVhZDVkMmJlZmMyNDIyZGI3MjNlMWI0MTE1ZjU5ZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctY2E0ZWE1OGFiZjQzNjBlMzZhODRmMGM3YWU4ZmU2YzguanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jYTRlYTU4YWJmNDM2MGUzNmE4NGYwYzdhZThmZTZjOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMGE4MjI1NjA1NTkzMDlmNzAxOWQ5YjdjMzcyMzZiMjMucG5nIj5fQ0dTbWFydEltYWdlL2ltZy0wYTgyMjU2MDU1OTMwOWY3MDE5ZDliN2MzNzIzNmIyMy5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDc0YzRlMzU2MzU3MmQ2MjFlMGY1ZTNkZTQ0YzE3NmUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wNzRjNGUzNTYzNTcyZDYyMWUwZjVlM2RlNDRjMTc2ZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMmVlYTIwZDhkM2FhOGUwYTg2ZTcwZDA3YjRiYzMwYjguanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yZWVhMjBkOGQzYWE4ZTBhODZlNzBkMDdiNGJjMzBiOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTFjNmZiMTIyYmY1ZTcwMDc2NzQ2NWNiYmJlMTk4NTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01MWM2ZmIxMjJiZjVlNzAwNzY3NDY1Y2JiYmUxOTg1Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzRjNjI1NjJlZTEzODQ5YzgyN2YyMTI4NGU2MmVhNTAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zNGM2MjU2MmVlMTM4NDljODI3ZjIxMjg0ZTYyZWE1MC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZTk3M2YzMWRkMjJhNmJjZTVmZDIyYWU5OTg2ZTdlMjYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lOTczZjMxZGQyMmE2YmNlNWZkMjJhZTk5ODZlN2UyNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNWJmYThlMDEyMmE5ZTE5MmRlMTkyOTVlMjZkNTFiYTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01YmZhOGUwMTIyYTllMTkyZGUxOTI5NWUyNmQ1MWJhNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTliZGE2ZDM4M2MwMTQ3MGQ2MWJiMjQyZjFjYWJhOTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01OWJkYTZkMzgzYzAxNDcwZDYxYmIyNDJmMWNhYmE5Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNWJkZWZhMDE1YzRkNDgxNTg1ZjFlMzZhZmQxN2M1YmEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01YmRlZmEwMTVjNGQ0ODE1ODVmMWUzNmFmZDE3YzViYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWM1NTViMGFlYjIwZDM0YjA2MmFmNDBhZGU1NTEyNzQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05YzU1NWIwYWViMjBkMzRiMDYyYWY0MGFkZTU1MTI3NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDQ2NjlhMDU1MzFiZTdmNmE5NjA1OWNiNjFhYTVhMDQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wNDY2OWEwNTUzMWJlN2Y2YTk2MDU5Y2I2MWFhNWEwNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOGQwYWZlZjBlYTc3NmRjMjMyZjQ4ZGNjNmRlMzBiNDguanBnIj5fQ0dTbWFydEltYWdlL2ltZy04ZDBhZmVmMGVhNzc2ZGMyMzJmNDhkY2M2ZGUzMGI0OC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDk5Nzc5NjkwYzgxNzY2ZTU1YWUwZGRlNzg4YTI1MjMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kOTk3Nzk2OTBjODE3NjZlNTVhZTBkZGU3ODhhMjUyMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNjMwM2FmZjQzMjIyYjVlZmYwNDJkNTBiMWU1MmEzZDguanBnIj5fQ0dTbWFydEltYWdlL2ltZy02MzAzYWZmNDMyMjJiNWVmZjA0MmQ1MGIxZTUyYTNkOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOGRkMjA2ZTRjMTBiNDUzMGNhZTE1MzdkYjE5YWZiYWIucG5nIj5fQ0dTbWFydEltYWdlL2ltZy04ZGQyMDZlNGMxMGI0NTMwY2FlMTUzN2RiMTlhZmJhYi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTQ4Yjk3OWY2ODUxNzM0MGY0MjFmMmMyNzQ5ZDFhZjAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01NDhiOTc5ZjY4NTE3MzQwZjQyMWYyYzI3NDlkMWFmMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWRjYjczNjc4YzYxNmM4ZWMwNmU1NWQ0YWQ3YzYyZTYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05ZGNiNzM2NzhjNjE2YzhlYzA2ZTU1ZDRhZDdjNjJlNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNmZlOGEzY2RkMmQ3NDg2Yjg4NjMyZTJjMmEyMDZjOWMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02ZmU4YTNjZGQyZDc0ODZiODg2MzJlMmMyYTIwNmM5Yy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzU3NDhkNGM5ZGIwMDE5ZDA5MzZjZWVkMmEwMmZjYmYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jNTc0OGQ0YzlkYjAwMTlkMDkzNmNlZWQyYTAyZmNiZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOTc1YmQwYTY2ZDc5MTI5NTBmMDI3NTdlNWUwOTVkZGQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05NzViZDBhNjZkNzkxMjk1MGYwMjc1N2U1ZTA5NWRkZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWY4NTIyYTllODZkOWM3YzBkYWFmNGRjYjhmMTBmNTUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lZjg1MjJhOWU4NmQ5YzdjMGRhYWY0ZGNiOGYxMGY1NS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZTM2YjQ5NWE2ZTM2ODBhY2I5OWRlZjZkYzQ5ZjNkMzAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lMzZiNDk1YTZlMzY4MGFjYjk5ZGVmNmRjNDlmM2QzMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMDM1ZDYxNzBhY2IzNTQ1NWI1NDY3NDg2MDQ5ZWNkM2QuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wMzVkNjE3MGFjYjM1NDU1YjU0Njc0ODYwNDllY2QzZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYmE3NTIyNjAyZTNhODA1MTY5M2RlNTIzMzFmZGM4ZWYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iYTc1MjI2MDJlM2E4MDUxNjkzZGU1MjMzMWZkYzhlZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTZmYjNmMmQ0ZThhYmIyYTg2NDA4NTVjMTUxMTMyOWIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01NmZiM2YyZDRlOGFiYjJhODY0MDg1NWMxNTExMzI5Yi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYTY1NTI2ZWI3ZDNlZDI2ZTllZTY1ZGQ4MzgyMGJmMGEuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hNjU1MjZlYjdkM2VkMjZlOWVlNjVkZDgzODIwYmYwYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYWZjNDA1NGU3ODM4OWI2YmUzZGM2YzY3MGQxMWQwNDQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hZmM0MDU0ZTc4Mzg5YjZiZTNkYzZjNjcwZDExZDA0NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYmJlYWMzYTUzOTU3YzA0MDcwZjY3NWY1OGYyZDdiN2UuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1iYmVhYzNhNTM5NTdjMDQwNzBmNjc1ZjU4ZjJkN2I3ZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzJiNTkyMWFkNGRjYWYxZmM5ZmM3MmFlZTA4YWJjNzYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jMmI1OTIxYWQ0ZGNhZjFmYzlmYzcyYWVlMDhhYmM3Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMGE0MTcxYjAyM2I5MjRlMzE5NjI1Y2M4OGVhMTZkYTQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wYTQxNzFiMDIzYjkyNGUzMTk2MjVjYzg4ZWExNmRhNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZDM3MzAzMDI3MDYwMmNlMjhkM2NjMDdhNmNlOTA5ODYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kMzczMDMwMjcwNjAyY2UyOGQzY2MwN2E2Y2U5MDk4Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWQ0OTUxZTFkNDQ1NTVkMGRhNTE2MjBmODk4NTA0ZTkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05ZDQ5NTFlMWQ0NDU1NWQwZGE1MTYyMGY4OTg1MDRlOS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYTAwZDg4YjgxYzhjMzdjNjQ3YTRiYmI0YjYxNjYzMjIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hMDBkODhiODFjOGMzN2M2NDdhNGJiYjRiNjE2NjMyMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNjIyZWQzN2VjOTRkMWRjNWIzYjEwYjcxMTYxM2YzYTQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy02MjJlZDM3ZWM5NGQxZGM1YjNiMTBiNzExNjEzZjNhNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTkyMzhkOTViMjExMDViMzU0ODg1MzRmZDY1Nzk3MjIuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01OTIzOGQ5NWIyMTEwNWIzNTQ4ODUzNGZkNjU3OTcyMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOTRkMzA0ZjhkYjQ1N2JlMmIzOGFlMGZjYzdlMDljYzYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05NGQzMDRmOGRiNDU3YmUyYjM4YWUwZmNjN2UwOWNjNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMmYwZGIxYWUyMGE5N2I2ZjNlZjk0M2FkOWVmNTBmY2UuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yZjBkYjFhZTIwYTk3YjZmM2VmOTQzYWQ5ZWY1MGZjZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNmJjOTE2OGI3NmQ5NmY3MjM3MGFlZTM1ZTljYTJjODguanBnIj5fQ0dTbWFydEltYWdlL2ltZy02YmM5MTY4Yjc2ZDk2ZjcyMzcwYWVlMzVlOWNhMmM4OC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctN2M0NjNhMDdiNjNjMjg0Mjk5NmQ0MDAxOWRmYzM2MDQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03YzQ2M2EwN2I2M2MyODQyOTk2ZDQwMDE5ZGZjMzYwNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYWNmMGYxZDI5NThhZmMyNThmZGYzNjEzYjc1ZTIxN2EuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1hY2YwZjFkMjk1OGFmYzI1OGZkZjM2MTNiNzVlMjE3YS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzkwZTRhMWMwMmUwNmI4NzA2YTU4MDQ2NjNjOTZlMTAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zOTBlNGExYzAyZTA2Yjg3MDZhNTgwNDY2M2M5NmUxMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjhlYjk1ZjZkMTcyNDMwNjA3YjkxN2IxYjQzMmFhNjQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yOGViOTVmNmQxNzI0MzA2MDdiOTE3YjFiNDMyYWE2NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWVlMzgxNmQzODIwNzVhZmVkYTI2YmM1N2Y5N2Y0YzkuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lZWUzODE2ZDM4MjA3NWFmZWRhMjZiYzU3Zjk3ZjRjOS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMzRiZDYwYjI4NDMxZGViNGU3NzUzMTkwY2QxOWI5YTAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zNGJkNjBiMjg0MzFkZWI0ZTc3NTMxOTBjZDE5YjlhMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctM2I3ZTIxZDdmNmNiMzRlMWE2YzBmZGYwZGIzZTI4MDguanBnIj5fQ0dTbWFydEltYWdlL2ltZy0zYjdlMjFkN2Y2Y2IzNGUxYTZjMGZkZjBkYjNlMjgwOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTgwYTU1MGE0NWI0YTYwYzZmODAyZjk2OWY4MTM0YTguanBnIj5fQ0dTbWFydEltYWdlL2ltZy01ODBhNTUwYTQ1YjRhNjBjNmY4MDJmOTY5ZjgxMzRhOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZWY0ZDZhMjgyOTE0MzRjY2E0NmFjNzVmNWYwYWVmZWUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lZjRkNmEyODI5MTQzNGNjYTQ2YWM3NWY1ZjBhZWZlZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNTMwZmIwMzk4Y2U2ZDhiOTQzZGJkZTUzMmY5OTJhM2UuanBnIj5fQ0dTbWFydEltYWdlL2ltZy01MzBmYjAzOThjZTZkOGI5NDNkYmRlNTMyZjk5MmEzZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNDZmMGVjOTQ2ZjJjODlkNGZjNzg4ODUwY2UzZjVjMWUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy00NmYwZWM5NDZmMmM4OWQ0ZmM3ODg4NTBjZTNmNWMxZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMGNjNGMwMWI2ODYwNDY1NGU4YjgwMTdlYzNmYmZmMmUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0wY2M0YzAxYjY4NjA0NjU0ZThiODAxN2VjM2ZiZmYyZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZTliZmYxMTIzN2Q4ZmJiYWEwZTc3MjQyOTJlYjY4NTMuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1lOWJmZjExMjM3ZDhmYmJhYTBlNzcyNDI5MmViNjg1My5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMjZhY2ZmMzYwYzljNDBhYTAzODE2NzI1MWJmMjRmMzUuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0yNmFjZmYzNjBjOWM0MGFhMDM4MTY3MjUxYmYyNGYzNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctMTdkNTUyMTA1NzhkZjE2ODkwODQ0NzNkYjI4NDNiNjAuanBnIj5fQ0dTbWFydEltYWdlL2ltZy0xN2Q1NTIxMDU3OGRmMTY4OTA4NDQ3M2RiMjg0M2I2MC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctOWEzNjNmMzdhYWI3MjQ0MjI5ODNiMTYyZjJiNDRkNzQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy05YTM2M2YzN2FhYjcyNDQyMjk4M2IxNjJmMmI0NGQ3NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctNzkzNmVjYzI4M2ExZWFlN2I5MDUyOTdkOWNkYzdhZDYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy03OTM2ZWNjMjgzYTFlYWU3YjkwNTI5N2Q5Y2RjN2FkNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctYzg5NzgyNWMzNmUwZWE0YTQyZGI5YzQ5NjI3MDUzMGYuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1jODk3ODI1YzM2ZTBlYTRhNDJkYjljNDk2MjcwNTMwZi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iX0NHU21hcnRJbWFnZS9pbWctZGVhMWVhNjcwZmRkZWQxMzMyMGY3NDkwODQwNjRjNmQuanBnIj5fQ0dTbWFydEltYWdlL2ltZy1kZWExZWE2NzBmZGRlZDEzMzIwZjc0OTA4NDA2NGM2ZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMi8wNy9BQkwtMy5qcGciPmltYWdlcy9pdC1ibG9nLzIwMjIvMDcvQUJMLTMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjIvMDIvTTM2NUZlYjIyLTIuanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIyLzAyL00zNjVGZWIyMi0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIyLzAxL2lzdG9ja3Bob3RvLTEzMjI5OTA2NzktMTcwNjY3YS0xLmpwZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMi8wMS9pc3RvY2twaG90by0xMzIyOTkwNjc5LTE3MDY2N2EtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMi8wMS9pc3RvY2twaG90by02MzczOTMwNTgtMTcwNjY3YS5qcGciPmltYWdlcy9pdC1ibG9nLzIwMjIvMDEvaXN0b2NrcGhvdG8tNjM3MzkzMDU4LTE3MDY2N2EuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjIvMDMvamFtaWUtc3RyZWV0LTdpcDR5WDVQNlEtdW5zcGxhc2guanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIyLzAzL2phbWllLXN0cmVldC03aXA0eVg1UDZRLXVuc3BsYXNoLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzA2L1NtYWxsYnVzaW5lc3MuanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzA2L1NtYWxsYnVzaW5lc3MuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjEvMDYvamFzb24tZGVudC0zd1BKeGgtcGlSdy11bnNwbGFzaC1zY2FsZWQtZTE2MjQ4NjgxNDIyOTQuanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzA2L2phc29uLWRlbnQtM3dQSnhoLXBpUnctdW5zcGxhc2gtc2NhbGVkLWUxNjI0ODY4MTQyMjk0LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzA2L0NvYXRIYW5nZXItMi5wbmciPmltYWdlcy9pdC1ibG9nLzIwMjEvMDYvQ29hdEhhbmdlci0yLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzA2L2plc2hvb3RzLWNvbS0ydkQ4bEloZG53LXVuc3BsYXNoLTEuanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzA2L2plc2hvb3RzLWNvbS0ydkQ4bEloZG53LXVuc3BsYXNoLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjEvMDcvVW5leHBlY3RlZC5wbmciPmltYWdlcy9pdC1ibG9nLzIwMjEvMDcvVW5leHBlY3RlZC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMS8wNy8yNzIwMjMwNjA3NV82MGQ1YjE2MjVlX3cuanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzA3LzI3MjAyMzA2MDc1XzYwZDViMTYyNWVfdy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMS8wNy9TdXBwb3J0dnNhbGVzLnBuZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMS8wNy9TdXBwb3J0dnNhbGVzLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzAyL0NBU0NvbnRhY3QuanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzAyL0NBU0NvbnRhY3QuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjEvMDIvVGVhbXMuanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzAyL1RlYW1zLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzA1L3dhcmVob3VzZS5wbmciPmltYWdlcy9pdC1ibG9nLzIwMjEvMDUvd2FyZWhvdXNlLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzA1L0NBUy1JbmNpZGVudC1SZXBvcnQuanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzA1L0NBUy1JbmNpZGVudC1SZXBvcnQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjEvMDQvbWlub3JpdHktcmVwb3J0LTEucG5nIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzA0L21pbm9yaXR5LXJlcG9ydC0xLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzA0L0ludHVuZS0yLnBuZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMS8wNC9JbnR1bmUtMi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMS8wMS9DQVNfc2lnbmFnZV9vbl93YWxsLmpwZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMS8wMS9DQVNfc2lnbmFnZV9vbl93YWxsLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzAxL2hvdXJnbGFzcy10aW1lLWhvdXJzLXNhbmQtMzkzOTYucG5nIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzAxL2hvdXJnbGFzcy10aW1lLWhvdXJzLXNhbmQtMzkzOTYucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjEvMDEvdGhyZWUucG5nIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzAxL3RocmVlLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzAzL01hbnN0YWxhc3NldC5qcGciPmltYWdlcy9pdC1ibG9nLzIwMjEvMDMvTWFuc3RhbGFzc2V0LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzAzL2NvbnN0cnVjdGlvbnNpdGUtMS5qcGciPmltYWdlcy9pdC1ibG9nLzIwMjEvMDMvY29uc3RydWN0aW9uc2l0ZS0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzAzL21pbG9zei1rbGlub3dza2ktQlcwZDBJbGxXOEUtdW5zcGxhc2gtc2NhbGVkLmpwZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMS8wMy9taWxvc3ota2xpbm93c2tpLUJXMGQwSWxsVzhFLXVuc3BsYXNoLXNjYWxlZC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMS8wMy9GbG9wcHlkaXNrLXNjYWxlZC5qcGciPmltYWdlcy9pdC1ibG9nLzIwMjEvMDMvRmxvcHB5ZGlzay1zY2FsZWQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjEvMDMvQ3liZXJFc2VlbnRpYWxzLmpwZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMS8wMy9DeWJlckVzZWVudGlhbHMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjEvMDkvbWFydGlqbi1iYXVkb2luLTRoMEhxQzNLNC1jLXVuc3BsYXNoLmpwZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMS8wOS9tYXJ0aWpuLWJhdWRvaW4tNGgwSHFDM0s0LWMtdW5zcGxhc2guanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjEvMDkvQ29udHJhY3Q0MDB4MjY3LmpwZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMS8wOS9Db250cmFjdDQwMHgyNjcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjEvMDkvQk5JaW1hZ2UucG5nIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzA5L0JOSWltYWdlLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzA4LzI3MTY4NjQzOTE2X2QyMzI0MDRkNmZfdy5qcGciPmltYWdlcy9pdC1ibG9nLzIwMjEvMDgvMjcxNjg2NDM5MTZfZDIzMjQwNGQ2Zl93LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIxLzEwL2JyZW5kYW4tY2h1cmNoLXBLZUY2VHQzYzA4LXVuc3BsYXNoLTEuanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIxLzEwL2JyZW5kYW4tY2h1cmNoLXBLZUY2VHQzYzA4LXVuc3BsYXNoLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjEvMTAvMmJldHRlcnRoYW4xLnBuZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMS8xMC8yYmV0dGVydGhhbjEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMTgvMDcvcmF3cGl4ZWwtNjUxMzY1LXVuc3BsYXNoLWUxNTM0MzQ3ODg2OTM5LmpwZyI+aW1hZ2VzL2l0LWJsb2cvMjAxOC8wNy9yYXdwaXhlbC02NTEzNjUtdW5zcGxhc2gtZTE1MzQzNDc4ODY5MzkuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMTYvMDQvY29uc3VsdGluZ3dlYi5qcGciPmltYWdlcy9pdC1ibG9nLzIwMTYvMDQvY29uc3VsdGluZ3dlYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAxNi8wNC9DU19DbGllbnRzLmpwZyI+aW1hZ2VzL2l0LWJsb2cvMjAxNi8wNC9DU19DbGllbnRzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDE2LzA0L0NTX1ByaWNlcy5qcGciPmltYWdlcy9pdC1ibG9nLzIwMTYvMDQvQ1NfUHJpY2VzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIwLzEyL1ByZXR6ZWxzLnBuZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMC8xMi9QcmV0emVscy5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMC8xMi9IaWdoVmlzLnBuZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMC8xMi9IaWdoVmlzLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIwLzExL0hQLWRpc3BsYXlzLnBuZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMC8xMS9IUC1kaXNwbGF5cy5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMC8xMS9pTWFjLTEuanBnIj5pbWFnZXMvaXQtYmxvZy8yMDIwLzExL2lNYWMtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMC8xMS9FbWFpbFNlY3VyaXR5LnBuZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMC8xMS9FbWFpbFNlY3VyaXR5LnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIwLzExLzI2NTk3NDY4MTIzXzU4OWU3NjQzYjhfdy5qcGciPmltYWdlcy9pdC1ibG9nLzIwMjAvMTEvMjY1OTc0NjgxMjNfNTg5ZTc2NDNiOF93LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIwLzA5LzI2NTk3NDE1MjQzXzNhOWRjZmQ4OTRfdy5qcGciPmltYWdlcy9pdC1ibG9nLzIwMjAvMDkvMjY1OTc0MTUyNDNfM2E5ZGNmZDg5NF93LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIwLzA5L00zNjUtMS5wbmciPmltYWdlcy9pdC1ibG9nLzIwMjAvMDkvTTM2NS0xLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIwLzA5L0N5YmVyQ2xvc2VVcC0zLWUxNjAyNzY0NzI1Mjk3LnBuZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMC8wOS9DeWJlckNsb3NlVXAtMy1lMTYwMjc2NDcyNTI5Ny5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMC8wOS9zY2FsZXVwLWUxNjAyNzY0NTk1ODc1LnBuZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMC8wOS9zY2FsZXVwLWUxNjAyNzY0NTk1ODc1LnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIwLzA4L0NBUy1zaWduYWdlLWhpdml6LmpwZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMC8wOC9DQVMtc2lnbmFnZS1oaXZpei5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2l0LWJsb2cvMjAyMC8wOC9jbG91ZHlza3ktMS5wbmciPmltYWdlcy9pdC1ibG9nLzIwMjAvMDgvY2xvdWR5c2t5LTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9pdC1ibG9nLzIwMjAvMTAvRXhjbGFpbWVyLTEucG5nIj5pbWFnZXMvaXQtYmxvZy8yMDIwLzEwL0V4Y2xhaW1lci0xLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvaXQtYmxvZy8yMDIwLzEwL0lUY2FsbHNHcmFwaC00LmpwZyI+aW1hZ2VzL2l0LWJsb2cvMjAyMC8xMC9JVGNhbGxzR3JhcGgtNC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL0dhbGxlcnkvb24tcGFnZS1nYWxsZXJpZXMvcGFnZS1nYWxsZXJ5LTIvUm9nZXJzIExvdyBSZXMgMTAuanBnIj5pbWFnZXMvR2FsbGVyeS9vbi1wYWdlLWdhbGxlcmllcy9wYWdlLWdhbGxlcnktMi9Sb2dlcnMgTG93IFJlcyAxMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL0dhbGxlcnkvb24tcGFnZS1nYWxsZXJpZXMvcGFnZS1nYWxsZXJ5LTIvV2ludGVyQXZlbnVlLmpwZyI+aW1hZ2VzL0dhbGxlcnkvb24tcGFnZS1nYWxsZXJpZXMvcGFnZS1nYWxsZXJ5LTIvV2ludGVyQXZlbnVlLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvR2FsbGVyeS9vbi1wYWdlLWdhbGxlcmllcy9wYWdlLWdhbGxlcnktMS9TdCBGYWl0aHMgQ2h1cmNoeWFyZCAoMSkuanBnIj5pbWFnZXMvR2FsbGVyeS9vbi1wYWdlLWdhbGxlcmllcy9wYWdlLWdhbGxlcnktMS9TdCBGYWl0aHMgQ2h1cmNoeWFyZCAoMSkuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9HYWxsZXJ5L29uLXBhZ2UtZ2FsbGVyaWVzL3BhZ2UtZ2FsbGVyeS0xL0F1dHVtbiBSb2FkLmpwZyI+aW1hZ2VzL0dhbGxlcnkvb24tcGFnZS1nYWxsZXJpZXMvcGFnZS1nYWxsZXJ5LTEvQXV0dW1uIFJvYWQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9HYWxsZXJ5L2dhbGxlcnkvZ2FsbGVyeS0xLzIwMDUtMzE1LUEtU3ByaW5nIHBhc3R1cmVzLmpwZyI+aW1hZ2VzL0dhbGxlcnkvZ2FsbGVyeS9nYWxsZXJ5LTEvMjAwNS0zMTUtQS1TcHJpbmcgcGFzdHVyZXMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9HYWxsZXJ5L2dhbGxlcnkvZ2FsbGVyeS0xLzIwMDgtMDMxNS1QSTQtQS1GdWxsIFRpZGUuanBnIj5pbWFnZXMvR2FsbGVyeS9nYWxsZXJ5L2dhbGxlcnktMS8yMDA4LTAzMTUtUEk0LUEtRnVsbCBUaWRlLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvR2FsbGVyeS9nYWxsZXJ5L2dhbGxlcnktMS8xNy1DYWxtV2F0ZXJzLmpwZyI+aW1hZ2VzL0dhbGxlcnkvZ2FsbGVyeS9nYWxsZXJ5LTEvMTctQ2FsbVdhdGVycy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL0dhbGxlcnkvZ2FsbGVyeS9nYWxsZXJ5LTEvMjAwNi0zMTUtQS1Ib3N0YSBmbG93ZXJzIGluIHRoZSByYWluLmpwZyI+aW1hZ2VzL0dhbGxlcnkvZ2FsbGVyeS9nYWxsZXJ5LTEvMjAwNi0zMTUtQS1Ib3N0YSBmbG93ZXJzIGluIHRoZSByYWluLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvR2FsbGVyeS9nYWxsZXJ5L2dhbGxlcnktMS8yMDA5LTAzMTUtUEk0LUEtUm9sbGluZyBQYXN0dXJlcy5qcGciPmltYWdlcy9HYWxsZXJ5L2dhbGxlcnkvZ2FsbGVyeS0xLzIwMDktMDMxNS1QSTQtQS1Sb2xsaW5nIFBhc3R1cmVzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvR2FsbGVyeS9nYWxsZXJ5L2dhbGxlcnktMS8wMzE1LVBJNS1TZWF3YXJkIEthaWtvdXJhcy5qcGciPmltYWdlcy9HYWxsZXJ5L2dhbGxlcnkvZ2FsbGVyeS0xLzAzMTUtUEk1LVNlYXdhcmQgS2Fpa291cmFzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvR2FsbGVyeS9nYWxsZXJ5L2dhbGxlcnktMi9VbnJpcGUgV2hlYXQgNy5qcGciPmltYWdlcy9HYWxsZXJ5L2dhbGxlcnkvZ2FsbGVyeS0yL1VucmlwZSBXaGVhdCA3LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvR2FsbGVyeS9nYWxsZXJ5L2dhbGxlcnktMi9VbnJpcGUgV2hlYXQgNS5qcGciPmltYWdlcy9HYWxsZXJ5L2dhbGxlcnkvZ2FsbGVyeS0yL1VucmlwZSBXaGVhdCA1LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvR2FsbGVyeS9wYWdlLXRvcC1nYWxsZXJpZXMvaG9tZS1wYWdlLWdhbGxlcnkvTmV3LWhvcGUtYmFsbC0yMDE1KDUpLmpwZyI+aW1hZ2VzL0dhbGxlcnkvcGFnZS10b3AtZ2FsbGVyaWVzL2hvbWUtcGFnZS1nYWxsZXJ5L05ldy1ob3BlLWJhbGwtMjAxNSg1KS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL3BhZ2UtdG9wLWltYWdlcy9MV0EgcGhvbmUgbnVtYmVycyAyMDIzLTEyLTIxIDEyNDgzNS5qcGciPmltYWdlcy9wYWdlLXRvcC1pbWFnZXMvTFdBIHBob25lIG51bWJlcnMgMjAyMy0xMi0yMSAxMjQ4MzUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9wYWdlLXRvcC1pbWFnZXMvMjAwNS0zMTUtQS1TcHJpbmcgcGFzdHVyZXMuanBnIj5pbWFnZXMvcGFnZS10b3AtaW1hZ2VzLzIwMDUtMzE1LUEtU3ByaW5nIHBhc3R1cmVzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvcGFnZS10b3AtaW1hZ2VzL3Bob3RvLWNvbWluZy1zb29uLTQtMy5qcGciPmltYWdlcy9wYWdlLXRvcC1pbWFnZXMvcGhvdG8tY29taW5nLXNvb24tNC0zLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvcGFnZS10b3AtaW1hZ2VzLzE3LUNhbG1XYXRlcnMuanBnIj5pbWFnZXMvcGFnZS10b3AtaW1hZ2VzLzE3LUNhbG1XYXRlcnMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9wYWdlLXRvcC1pbWFnZXMvMjAwNi0zMTUtQS1Ib3N0YSBmbG93ZXJzIGluIHRoZSByYWluLmpwZyI+aW1hZ2VzL3BhZ2UtdG9wLWltYWdlcy8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9wYWdlLXRvcC1pbWFnZXMvMjAwOS0wMzE1LVBJNC1BLVJvbGxpbmcgUGFzdHVyZXMuanBnIj5pbWFnZXMvcGFnZS10b3AtaW1hZ2VzLzIwMDktMDMxNS1QSTQtQS1Sb2xsaW5nIFBhc3R1cmVzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvcGFnZS10b3AtaW1hZ2VzLzAzMTUtUEk1LVNlYXdhcmQgS2Fpa291cmFzLmpwZyI+aW1hZ2VzL3BhZ2UtdG9wLWltYWdlcy8wMzE1LVBJNS1TZWF3YXJkIEthaWtvdXJhcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL3Bob3RvLWNvbWluZy1zb29uLTQtMy5qcGciPmltYWdlcy9waG90by1jb21pbmctc29vbi00LTMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9waG90by1jb21pbmctc29vbi5qcGciPmltYWdlcy9waG90by1jb21pbmctc29vbi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL25hdi8yMDA1LTMxNS1BLVNwcmluZyBwYXN0dXJlcy5qcGciPmltYWdlcy9uYXYvMjAwNS0zMTUtQS1TcHJpbmcgcGFzdHVyZXMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9uYXYvMjAwNi0zMTUtQS1Ib3N0YSBmbG93ZXJzIGluIHRoZSByYWluLmpwZyI+aW1hZ2VzL25hdi8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9uYXYvMjAwOS0wMzE1LVBJNC1BLVJvbGxpbmcgUGFzdHVyZXMuanBnIj5pbWFnZXMvbmF2LzIwMDktMDMxNS1QSTQtQS1Sb2xsaW5nIFBhc3R1cmVzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0ltYWdlcy0zLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9JbWFnZXMtMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9DTS1lZGl0LXRvcCAoMSkuanBnIj5pbWFnZXMvVXNlckd1aWRlL0NNLWVkaXQtdG9wICgxKS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9TZXR0aW5ncy0xLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9TZXR0aW5ncy0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0NNLWxheW91dC1zdHlsZS5qcGciPmltYWdlcy9Vc2VyR3VpZGUvQ00tbGF5b3V0LXN0eWxlLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0dhbGxlcnktNC5qcGciPmltYWdlcy9Vc2VyR3VpZGUvR2FsbGVyeS00LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL1Jldmlld3MtMS5qcGciPmltYWdlcy9Vc2VyR3VpZGUvUmV2aWV3cy0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL1dZU0lXWUctYnVsbGV0cy5qcGciPmltYWdlcy9Vc2VyR3VpZGUvV1lTSVdZRy1idWxsZXRzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0ZpbGVNYW5hZ2VyLTIuanBnIj5pbWFnZXMvVXNlckd1aWRlL0ZpbGVNYW5hZ2VyLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvQ00tcHJldmlldy10YWIuanBnIj5pbWFnZXMvVXNlckd1aWRlL0NNLXByZXZpZXctdGFiLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0dhbGxlcnktMS5qcGciPmltYWdlcy9Vc2VyR3VpZGUvR2FsbGVyeS0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0NNUy1sb2dvdXQuanBnIj5pbWFnZXMvVXNlckd1aWRlL0NNUy1sb2dvdXQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvQ00tdGl0bGUtdGFnLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9DTS10aXRsZS10YWcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvV1lTSVdZRy1jdXN0b20tYnV0dG9uLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLWN1c3RvbS1idXR0b24uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvV1lTSVdZRy1tZW51LmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLW1lbnUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvTmV3cy0zLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9OZXdzLTMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvR2FsbGVyeS01LmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9HYWxsZXJ5LTUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvV1lTSVdZRy1pbnRlcm5hbC1saW5rLXBvcHVwLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLWludGVybmFsLWxpbmstcG9wdXAuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvQ00tbXVsdGlwbGUtc2VjdGlvbnMtY2FyZHMuZ2lmIj5pbWFnZXMvVXNlckd1aWRlL0NNLW11bHRpcGxlLXNlY3Rpb25zLWNhcmRzLmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0NNLXNpZGViYXItdGFiLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9DTS1zaWRlYmFyLXRhYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9DTS1kZXNjcmlwdGlvbi5qcGciPmltYWdlcy9Vc2VyR3VpZGUvQ00tZGVzY3JpcHRpb24uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvR2FsbGVyeS02LmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9HYWxsZXJ5LTYuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvRmlsZU1hbmFnZXItaW5zZXJ0LWxpbmsuanBnIj5pbWFnZXMvVXNlckd1aWRlL0ZpbGVNYW5hZ2VyLWluc2VydC1saW5rLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL2ludHJvZHVjdGlvbi1wYXN0ZS1hcy10ZXh0LmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9pbnRyb2R1Y3Rpb24tcGFzdGUtYXMtdGV4dC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9DTS1sYXlvdXQtZGVtby5naWYiPmltYWdlcy9Vc2VyR3VpZGUvQ00tbGF5b3V0LWRlbW8uZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvQ29udGVudE1hbmFnZXItZGVsZXRlLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9Db250ZW50TWFuYWdlci1kZWxldGUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvQ00tc2lkZWJhci5naWYiPmltYWdlcy9Vc2VyR3VpZGUvQ00tc2lkZWJhci5naWY8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9XaWRnZXRzLTEuanBnIj5pbWFnZXMvVXNlckd1aWRlL1dpZGdldHMtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9Db250ZW50TWFuYWdlci1hcnJvdy11cC5qcGciPmltYWdlcy9Vc2VyR3VpZGUvQ29udGVudE1hbmFnZXItYXJyb3ctdXAuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvQ29udGVudE1hbmFnZXItcmVvcmRlci1zdWJtaXQtY2FuY2VsLWFwcGx5LmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9Db250ZW50TWFuYWdlci1yZW9yZGVyLXN1Ym1pdC1jYW5jZWwtYXBwbHkuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvRmlsZU1hbmFnZXItMy5qcGciPmltYWdlcy9Vc2VyR3VpZGUvRmlsZU1hbmFnZXItMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9Db250ZW50TWFuYWdlci1hcnJvdy1kb3duLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9Db250ZW50TWFuYWdlci1hcnJvdy1kb3duLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0NNLXRhYnMuanBnIj5pbWFnZXMvVXNlckd1aWRlL0NNLXRhYnMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvV2lkZ2V0cy0yLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XaWRnZXRzLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvR2FsbGVyeS0yLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9HYWxsZXJ5LTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvbWVudS10YWIuanBnIj5pbWFnZXMvVXNlckd1aWRlL21lbnUtdGFiLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL1ZpZGVvLTEuanBnIj5pbWFnZXMvVXNlckd1aWRlL1ZpZGVvLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvQ29udGVudE1hbmFnZXItb3ZlcnZpZXcuanBnIj5pbWFnZXMvVXNlckd1aWRlL0NvbnRlbnRNYW5hZ2VyLW92ZXJ2aWV3LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL1dpZGdldHMtNC5qcGciPmltYWdlcy9Vc2VyR3VpZGUvV2lkZ2V0cy00LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL1dZU0lXWUctYnJlYWstbGluay1idXR0b24uanBnIj5pbWFnZXMvVXNlckd1aWRlL1dZU0lXWUctYnJlYWstbGluay1idXR0b24uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvV1lTSVdZRy1jdXN0b20tZHJvcGRvd24uanBnIj5pbWFnZXMvVXNlckd1aWRlL1dZU0lXWUctY3VzdG9tLWRyb3Bkb3duLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0ltYWdlcy0xLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9JbWFnZXMtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9GaWxlTWFuYWdlci1idXR0b24uanBnIj5pbWFnZXMvVXNlckd1aWRlL0ZpbGVNYW5hZ2VyLWJ1dHRvbi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLWludGVybmFsLWxpbmstYnV0dG9uLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLWludGVybmFsLWxpbmstYnV0dG9uLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0NNLW11bHRpcGxlLXNlY3Rpb25zLWFjY29yZGlvbi5naWYiPmltYWdlcy9Vc2VyR3VpZGUvQ00tbXVsdGlwbGUtc2VjdGlvbnMtYWNjb3JkaW9uLmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0NvbnRlbnRNYW5hZ2VyLXJlb3JkZXItZWRpdC5qcGciPmltYWdlcy9Vc2VyR3VpZGUvQ29udGVudE1hbmFnZXItcmVvcmRlci1lZGl0LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL1dZU0lXWUctbGluay1idXR0b25zLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLWxpbmstYnV0dG9ucy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9DTS1tdWx0aXBsZS1zZWN0aW9ucy10YWIuanBnIj5pbWFnZXMvVXNlckd1aWRlL0NNLW11bHRpcGxlLXNlY3Rpb25zLXRhYi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLWV4dGVybmFsLWxpbmstcG9wdXAuanBnIj5pbWFnZXMvVXNlckd1aWRlL1dZU0lXWUctZXh0ZXJuYWwtbGluay1wb3B1cC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9DTS1lZGl0LXRvcC5qcGciPmltYWdlcy9Vc2VyR3VpZGUvQ00tZWRpdC10b3AuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvTmV3cy0yLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9OZXdzLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvTmV3cy0xLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9OZXdzLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvaW50cm9kdWN0aW9uLWxvZ2luLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9pbnRyb2R1Y3Rpb24tbG9naW4uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvV1lTSVdZRy1tZW51LWxpbmstaGlnaGxpZ2h0LmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLW1lbnUtbGluay1oaWdobGlnaHQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvQ29udGVudE1hbmFnZXItcmVvcmRlci1wYWdlcy5qcGciPmltYWdlcy9Vc2VyR3VpZGUvQ29udGVudE1hbmFnZXItcmVvcmRlci1wYWdlcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9pbnRyb2R1Y3Rpb24tMi10YWJzLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9pbnRyb2R1Y3Rpb24tMi10YWJzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL1ZpZGVvLTIuanBnIj5pbWFnZXMvVXNlckd1aWRlL1ZpZGVvLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvR2FsbGVyeS0zLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9HYWxsZXJ5LTMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvV1lTSVdZRy1tZW51LTEuanBnIj5pbWFnZXMvVXNlckd1aWRlL1dZU0lXWUctbWVudS0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0NNLW11bHRpcGxlLXNlY3Rpb25zLXRhYnMuZ2lmIj5pbWFnZXMvVXNlckd1aWRlL0NNLW11bHRpcGxlLXNlY3Rpb25zLXRhYnMuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvV1lTSVdZRy1jbGVhci1mb3JtYXR0aW5nLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLWNsZWFyLWZvcm1hdHRpbmcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvRmlsZU1hbmFnZXItMS5qcGciPmltYWdlcy9Vc2VyR3VpZGUvRmlsZU1hbmFnZXItMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9DTS1TZWN0aW9uMS5naWYiPmltYWdlcy9Vc2VyR3VpZGUvQ00tU2VjdGlvbjEuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvaW50cm9kdWN0aW9uLWhvbWUuanBnIj5pbWFnZXMvVXNlckd1aWRlL2ludHJvZHVjdGlvbi1ob21lLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL0NNLWFkZC1uZXctY29udGVudC5qcGciPmltYWdlcy9Vc2VyR3VpZGUvQ00tYWRkLW5ldy1jb250ZW50LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL1dZU0lXWUctdGFibGVzLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLXRhYmxlcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9DTS1wYWdlLWxheW91dC1UQUIuanBnIj5pbWFnZXMvVXNlckd1aWRlL0NNLXBhZ2UtbGF5b3V0LVRBQi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9Db250ZW50TWFuYWdlci1yZW9yZGVyLXRpY2suanBnIj5pbWFnZXMvVXNlckd1aWRlL0NvbnRlbnRNYW5hZ2VyLXJlb3JkZXItdGljay5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9TZXR0aW5ncy0yLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9TZXR0aW5ncy0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvVXNlckd1aWRlL1dZU0lXWUctdGV4dC1mb3JtYXR0aW5nLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XWVNJV1lHLXRleHQtZm9ybWF0dGluZy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9JbWFnZXMtMi5qcGciPmltYWdlcy9Vc2VyR3VpZGUvSW1hZ2VzLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvRmlsZU1hbmFnZXItZm9sZGVycy5qcGciPmltYWdlcy9Vc2VyR3VpZGUvRmlsZU1hbmFnZXItZm9sZGVycy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL1VzZXJHdWlkZS9DTS10ZW1wbGF0ZS5naWYiPmltYWdlcy9Vc2VyR3VpZGUvQ00tdGVtcGxhdGUuZ2lmPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9Vc2VyR3VpZGUvV2lkZ2V0cy0zLmpwZyI+aW1hZ2VzL1VzZXJHdWlkZS9XaWRnZXRzLTMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9fZWNiMl9pbWFnZXMvZ2FsbGVyeV8yXzY0L3Bob3RvLWNvbWluZy1zb29uLTQtMy5qcGciPmltYWdlcy9fZWNiMl9pbWFnZXMvZ2FsbGVyeV8yXzY0L3Bob3RvLWNvbWluZy1zb29uLTQtMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL19lY2IyX2ltYWdlcy9nYWxsZXJ5XzJfNjQvMjAwOC0wMzE1LVBJNC1BLUZ1bGwgVGlkZS5qcGciPmltYWdlcy9fZWNiMl9pbWFnZXMvZ2FsbGVyeV8yXzY0LzIwMDgtMDMxNS1QSTQtQS1GdWxsIFRpZGUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9fZWNiMl9pbWFnZXMvZ2FsbGVyeV8yXzY0LzE3LUNhbG1XYXRlcnMuanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMl82NC8xNy1DYWxtV2F0ZXJzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMl82NC8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMl82NC8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9fZWNiMl9pbWFnZXMvZ2FsbGVyeV8yXzY0L3NjYW42NDUuanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMl82NC9zY2FuNjQ1LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvX2VjYjJfaW1hZ2VzL190bXAvMjAwOS0wMzE1LVBJNC1BLVJvbGxpbmcgUGFzdHVyZXMuanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL190bXAvMjAwOS0wMzE1LVBJNC1BLVJvbGxpbmcgUGFzdHVyZXMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9fZWNiMl9pbWFnZXMvX3RtcC8wMzE1LVBJNS1TZWF3YXJkIEthaWtvdXJhcy5qcGciPmltYWdlcy9fZWNiMl9pbWFnZXMvX3RtcC8wMzE1LVBJNS1TZWF3YXJkIEthaWtvdXJhcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL19lY2IyX2ltYWdlcy9nYWxsZXJ5XzFfNjQvMjAwNS0zMTUtQS1TcHJpbmcgcGFzdHVyZXMuanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMV82NC8yMDA1LTMxNS1BLVNwcmluZyBwYXN0dXJlcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL19lY2IyX2ltYWdlcy9nYWxsZXJ5XzFfNjQvMjAwOC0wMzE1LVBJNC1BLUZ1bGwgVGlkZS5qcGciPmltYWdlcy9fZWNiMl9pbWFnZXMvZ2FsbGVyeV8xXzY0LzIwMDgtMDMxNS1QSTQtQS1GdWxsIFRpZGUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9fZWNiMl9pbWFnZXMvZ2FsbGVyeV8xXzY0LzE3LUNhbG1XYXRlcnMuanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMV82NC8xNy1DYWxtV2F0ZXJzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMV82NC8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMV82NC8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9fZWNiMl9pbWFnZXMvdGVzdDIwYTJfLTEvMjAwNS0zMTUtQS1TcHJpbmcgcGFzdHVyZXMuanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL3Rlc3QyMGEyXy0xLzIwMDUtMzE1LUEtU3ByaW5nIHBhc3R1cmVzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvX2VjYjJfaW1hZ2VzL3Rlc3QyMGEyXzUwLzIwMDUtMzE1LUEtU3ByaW5nIHBhc3R1cmVzLmpwZyI+aW1hZ2VzL19lY2IyX2ltYWdlcy90ZXN0MjBhMl81MC8yMDA1LTMxNS1BLVNwcmluZyBwYXN0dXJlcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL19lY2IyX2ltYWdlcy90ZXN0MjBhMl81MC8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL3Rlc3QyMGEyXzUwLzIwMDYtMzE1LUEtSG9zdGEgZmxvd2VycyBpbiB0aGUgcmFpbi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL19lY2IyX2ltYWdlcy90ZXN0MjBhMl81MC8yMDA5LTAzMTUtUEk0LUEtUm9sbGluZyBQYXN0dXJlcy5qcGciPmltYWdlcy9fZWNiMl9pbWFnZXMvdGVzdDIwYTJfNTAvMjAwOS0wMzE1LVBJNC1BLVJvbGxpbmcgUGFzdHVyZXMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9fZWNiMl9pbWFnZXMvdGVzdDIwYTJfNTAvMDMxNS1QSTUtU2Vhd2FyZCBLYWlrb3VyYXMuanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL3Rlc3QyMGEyXzUwLzAzMTUtUEk1LVNlYXdhcmQgS2Fpa291cmFzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvX2VjYjJfaW1hZ2VzL3Rlc3QyMF81MC8yMDA1LTMxNS1BLVNwcmluZyBwYXN0dXJlcy5qcGciPmltYWdlcy9fZWNiMl9pbWFnZXMvdGVzdDIwXzUwLzIwMDUtMzE1LUEtU3ByaW5nIHBhc3R1cmVzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvX2VjYjJfaW1hZ2VzL3Rlc3QyMF81MC8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL3Rlc3QyMF81MC8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9fZWNiMl9pbWFnZXMvZ2FsbGVyeV8yXzcyL3NjYW42NDUuanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMl83Mi9zY2FuNjQ1LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMV83Mi8yMDA1LTMxNS1BLVNwcmluZyBwYXN0dXJlcy5qcGciPmltYWdlcy9fZWNiMl9pbWFnZXMvZ2FsbGVyeV8xXzcyLzIwMDUtMzE1LUEtU3ByaW5nIHBhc3R1cmVzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMV83Mi8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMV83Mi8yMDA2LTMxNS1BLUhvc3RhIGZsb3dlcnMgaW4gdGhlIHJhaW4uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImltYWdlcy9fZWNiMl9pbWFnZXMvZ2FsbGVyeV8xXy0xLzE3LUNhbG1XYXRlcnMuanBnIj5pbWFnZXMvX2VjYjJfaW1hZ2VzL2dhbGxlcnlfMV8tMS8xNy1DYWxtV2F0ZXJzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvX2VjYjJfaW1hZ2VzL3Rlc3QyMGEyXzYyLzIwMDktMDMxNS1QSTQtQS1Sb2xsaW5nIFBhc3R1cmVzLmpwZyI+aW1hZ2VzL19lY2IyX2ltYWdlcy90ZXN0MjBhMl82Mi8yMDA5LTAzMTUtUEk0LUEtUm9sbGluZyBQYXN0dXJlcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL3NlY3Rpb24td2lkZ2V0LWltYWdlcy9lYXN0X2FuZ2xpYW5fY29sbGllX2Fzc29jaWF0aW9uLmpwZyI+aW1hZ2VzL3NlY3Rpb24td2lkZ2V0LWltYWdlcy9lYXN0X2FuZ2xpYW5fY29sbGllX2Fzc29jaWF0aW9uLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvc2VjdGlvbi13aWRnZXQtaW1hZ2VzLzE5NzMtMzE1LUEtVG91Y2gtb2YtR29sZC5qcGciPmltYWdlcy9zZWN0aW9uLXdpZGdldC1pbWFnZXMvMTk3My0zMTUtQS1Ub3VjaC1vZi1Hb2xkLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJpbWFnZXMvc2VjdGlvbi13aWRnZXQtaW1hZ2VzL2NvYXN0ZXJzLmpwZyI+aW1hZ2VzL3NlY3Rpb24td2lkZ2V0LWltYWdlcy9jb2FzdGVycy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iaW1hZ2VzL2xvZ28xLmdpZiI+aW1hZ2VzL2xvZ28xLmdpZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIyLzExL2ltZ18zMzk4LmpwZyI+dGVzdC1pbWFnZXMvMjAyMi8xMS9pbWdfMzM5OC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMi8xMS9pbWdfMzM5NS5qcGciPnRlc3QtaW1hZ2VzLzIwMjIvMTEvaW1nXzMzOTUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMTEvaW1nXzMzOTcuanBnIj50ZXN0LWltYWdlcy8yMDIyLzExL2ltZ18zMzk3LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIyLzExLzMwLXllYXItZWRpdGVkLTEuanBnIj50ZXN0LWltYWdlcy8yMDIyLzExLzMwLXllYXItZWRpdGVkLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMDkvYmNtYWd2Mi0xLnBuZyI+dGVzdC1pbWFnZXMvMjAyMi8wOS9iY21hZ3YyLTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMDkvYmNtYWd2MS5wbmciPnRlc3QtaW1hZ2VzLzIwMjIvMDkvYmNtYWd2MS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMi8wOS9iY21hZ3YyLnBuZyI+dGVzdC1pbWFnZXMvMjAyMi8wOS9iY21hZ3YyLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIyLzA5L2JjbWFndjMucG5nIj50ZXN0LWltYWdlcy8yMDIyLzA5L2JjbWFndjMucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMDgva2Vyb2xsZXNzLW5hc3NlZWYtZWRpdGVkLnBuZyI+dGVzdC1pbWFnZXMvMjAyMi8wOC9rZXJvbGxlc3MtbmFzc2VlZi1lZGl0ZWQucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMDgvZ2VlbHkzLmpwZyI+dGVzdC1pbWFnZXMvMjAyMi8wOC9nZWVseTMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMDgvZ2VlbHkyLmpwZyI+dGVzdC1pbWFnZXMvMjAyMi8wOC9nZWVseTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMDgvZ2VlbHkxLmpwZyI+dGVzdC1pbWFnZXMvMjAyMi8wOC9nZWVseTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMDgvbmljay1tY2h1Z2gtZWRpdGVkLnBuZyI+dGVzdC1pbWFnZXMvMjAyMi8wOC9uaWNrLW1jaHVnaC1lZGl0ZWQucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMTAvaW1nXzI4NTQuanBnIj50ZXN0LWltYWdlcy8yMDIyLzEwL2ltZ18yODU0LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIyLzEwL2ltZ18yODgyLmpwZyI+dGVzdC1pbWFnZXMvMjAyMi8xMC9pbWdfMjg4Mi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMi8xMC9pbWdfMjkxOC5qcGciPnRlc3QtaW1hZ2VzLzIwMjIvMTAvaW1nXzI5MTguanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMTAvaW1nXzI5MjkuanBnIj50ZXN0LWltYWdlcy8yMDIyLzEwL2ltZ18yOTI5LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIyLzEwL2F1dG93ZWxkaW5nc3lzdGVtMy5wbmciPnRlc3QtaW1hZ2VzLzIwMjIvMTAvYXV0b3dlbGRpbmdzeXN0ZW0zLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIyLzEwL2ltZ18yODk0LmpwZyI+dGVzdC1pbWFnZXMvMjAyMi8xMC9pbWdfMjg5NC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMi8xMC9hdXRvd2VsZGluZ3N5c3RlbTEucG5nIj50ZXN0LWltYWdlcy8yMDIyLzEwL2F1dG93ZWxkaW5nc3lzdGVtMS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMi8xMC9pbWdfMjg3NC5qcGciPnRlc3QtaW1hZ2VzLzIwMjIvMTAvaW1nXzI4NzQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjIvMTAvaW1nXzI5MDMuanBnIj50ZXN0LWltYWdlcy8yMDIyLzEwL2ltZ18yOTAzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIyLzEwL2F1dG93ZWxkaW5nc3lzdGVtMi5wbmciPnRlc3QtaW1hZ2VzLzIwMjIvMTAvYXV0b3dlbGRpbmdzeXN0ZW0yLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzEyL3N0ZWxsYW50aXNoaXJlcy5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMTIvc3RlbGxhbnRpc2hpcmVzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzA1L21hbnpvLTIuanBnIj50ZXN0LWltYWdlcy8yMDIxLzA1L21hbnpvLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMTEvZmIxLmpwZyI+dGVzdC1pbWFnZXMvMjAyMS8xMS9mYjEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMTEvYXR3LmpwZyI+dGVzdC1pbWFnZXMvMjAyMS8xMS9hdHcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMTEvZW9sNy5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMTEvZW9sNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8xMS9sYXZhbGluMS5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMTEvbGF2YWxpbjEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMTEvY21zLXNpbmdhcG9yZTIuanBnIj50ZXN0LWltYWdlcy8yMDIxLzExL2Ntcy1zaW5nYXBvcmUyLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzExL21ldGFsc2F3bDEucG5nIj50ZXN0LWltYWdlcy8yMDIxLzExL21ldGFsc2F3bDEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMTEvbmlzc2FuLXNteXJuYS5wbmciPnRlc3QtaW1hZ2VzLzIwMjEvMTEvbmlzc2FuLXNteXJuYS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8xMS9uaXNzYW4tY2FudG9uMi5wbmciPnRlc3QtaW1hZ2VzLzIwMjEvMTEvbmlzc2FuLWNhbnRvbjIucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMTEvYmx1ZS1vcmlnaW4xLmpwZyI+dGVzdC1pbWFnZXMvMjAyMS8xMS9ibHVlLW9yaWdpbjEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMTEvb2NhZG8yLmpwZyI+dGVzdC1pbWFnZXMvMjAyMS8xMS9vY2FkbzIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMTEvZm9yZGNhc2VzdHVkeTEtMS5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMTEvZm9yZGNhc2VzdHVkeTEtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8xMS9tZXhpY28xLnBuZyI+dGVzdC1pbWFnZXMvMjAyMS8xMS9tZXhpY28xLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzExL21hZ25hdmVobWExLnBuZyI+dGVzdC1pbWFnZXMvMjAyMS8xMS9tYWduYXZlaG1hMS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS90dWdnZXIxLmpwZyI+dGVzdC1pbWFnZXMvMjAyMS8wMS90dWdnZXIxLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzAxL2hsYTcuanBnIj50ZXN0LWltYWdlcy8yMDIxLzAxL2hsYTcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMDEvYm9laW5nLTc3N3gtY3djLWFndi0yNy5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvYm9laW5nLTc3N3gtY3djLWFndi0yNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9idXNoaW5ncHJlc3MucG5nIj50ZXN0LWltYWdlcy8yMDIxLzAxL2J1c2hpbmdwcmVzcy5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9yb2JvdGljYXNzZW1ibHkucG5nIj50ZXN0LWltYWdlcy8yMDIxLzAxL3JvYm90aWNhc3NlbWJseS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9obGEzLmpwZyI+dGVzdC1pbWFnZXMvMjAyMS8wMS9obGEzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzAxL2hsYS5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvaGxhLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzAxL2hsYTQuanBnIj50ZXN0LWltYWdlcy8yMDIxLzAxL2hsYTQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMDEvY2hhc3Npc21hcnJpYWdlbGluZS5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvY2hhc3Npc21hcnJpYWdlbGluZS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9jaGFzc2lzbWFycmlhZ2VyZ3YyLmpwZyI+dGVzdC1pbWFnZXMvMjAyMS8wMS9jaGFzc2lzbWFycmlhZ2VyZ3YyLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzAxL2FkYXMxLmpwZyI+dGVzdC1pbWFnZXMvMjAyMS8wMS9hZGFzMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS90dWdnZXIuanBnIj50ZXN0LWltYWdlcy8yMDIxLzAxL3R1Z2dlci5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9mb3JpLWF1dG9tYXRlZC1ndWlkZWQtdmVoaWNsZS1hZ3YtZm9yLWFlcm9zcGFjZS1jb21wb3NpdGUtd2luZy1hc3NlbWJseS5wbmciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvZm9yaS1hdXRvbWF0ZWQtZ3VpZGVkLXZlaGljbGUtYWd2LWZvci1hZXJvc3BhY2UtY29tcG9zaXRlLXdpbmctYXNzZW1ibHkucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMDEvcmVhcmF4bGVhZGp1c3RtZW50c3lzdGVtMi5wbmciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvcmVhcmF4bGVhZGp1c3RtZW50c3lzdGVtMi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9yZWFyYXhsZWFkanVzdG1lbnRzeXN0ZW0ucG5nIj50ZXN0LWltYWdlcy8yMDIxLzAxL3JlYXJheGxlYWRqdXN0bWVudHN5c3RlbS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9jaGFzc2lzbWFycmlhZ2VyZ3YuanBnIj50ZXN0LWltYWdlcy8yMDIxLzAxL2NoYXNzaXNtYXJyaWFnZXJndi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9idXNoaW5ncHJlc3MyLnBuZyI+dGVzdC1pbWFnZXMvMjAyMS8wMS9idXNoaW5ncHJlc3MyLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzAxL2hsYTIuanBnIj50ZXN0LWltYWdlcy8yMDIxLzAxL2hsYTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMDEvYWRhcy5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvYWRhcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9mY29zLnBuZyI+dGVzdC1pbWFnZXMvMjAyMS8wMS9mY29zLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzAxL3N1c3BlbnNpb25hc3NlbWJseXN5c3RlbS5wbmciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvc3VzcGVuc2lvbmFzc2VtYmx5c3lzdGVtLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIxLzAxL2hsYTUuanBnIj50ZXN0LWltYWdlcy8yMDIxLzAxL2hsYTUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMDEvaGxhNi5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvaGxhNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9jaGFzc2lzbWFycmlhZ2VsaW5lMi5wbmciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvY2hhc3Npc21hcnJpYWdlbGluZTIucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMDEvdHVnZ2VyMi5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvdHVnZ2VyMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMS9mY29zMi5wbmciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvZmNvczIucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjEvMDEvdHVnZ2VyMy5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMDEvdHVnZ2VyMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMy96YWlraTIuanBnIj50ZXN0LWltYWdlcy8yMDIxLzAzL3phaWtpMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMS8wMy96YWlraS5qcGciPnRlc3QtaW1hZ2VzLzIwMjEvMDMvemFpa2kuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDcvZm9yaS1yYWlsLWd1aWRlZC1jYXJ0cy1yZ2NzLWZvci1hdXRvbW90aXZlLW1vZHVsZS1hc3NlbWJseS1zeXN0ZW1zLmpwZyI+dGVzdC1pbWFnZXMvMjAxOC8wNy9mb3JpLXJhaWwtZ3VpZGVkLWNhcnRzLXJnY3MtZm9yLWF1dG9tb3RpdmUtbW9kdWxlLWFzc2VtYmx5LXN5c3RlbXMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS11c2Etcm9ib3RpYy13ZWxkaW5nLWJ1aWxkaW5nMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS11c2Etcm9ib3RpYy13ZWxkaW5nLWJ1aWxkaW5nMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOC8wMi9mb3JpLXdlbGRpbmctYnVpbGRpbmctb3BlbmluZy13ZWxkaW5nLWJ1c2luZXNzLXVuaXQtMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS13ZWxkaW5nLWJ1aWxkaW5nLW9wZW5pbmctd2VsZGluZy1idXNpbmVzcy11bml0LTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS11c2EtbmV3LWJ1aWxkaW5nLTIuanBnIj50ZXN0LWltYWdlcy8yMDE4LzAyL2ZvcmktdXNhLW5ldy1idWlsZGluZy0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE4LzAyL2Zvcmktd2VsZGluZy1idWlsZGluZy1vcGVuaW5nLTEuanBnIj50ZXN0LWltYWdlcy8yMDE4LzAyL2Zvcmktd2VsZGluZy1idWlsZGluZy1vcGVuaW5nLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS11c2EtbmV3LWJ1aWxkaW5nLTEtMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS11c2EtbmV3LWJ1aWxkaW5nLTEtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOC8wMi9mb3JpLWNoaW5hLTEwLXllYXItMy5qcGciPnRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS1jaGluYS0xMC15ZWFyLTMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS1hdXRvbWF0aW9uLXJvYm90aWMtd2VsZGluZy1zeXN0ZW0tZm9yLXRydWNrLWZyYW1lLmpwZyI+dGVzdC1pbWFnZXMvMjAxOC8wMi9mb3JpLWF1dG9tYXRpb24tcm9ib3RpYy13ZWxkaW5nLXN5c3RlbS1mb3ItdHJ1Y2stZnJhbWUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS13ZWxkaW5nLWJ1aWxkaW5nLW9wZW5pbmctMi5qcGciPnRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS13ZWxkaW5nLWJ1aWxkaW5nLW9wZW5pbmctMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOC8wMi9mb3JpLWNoaW5hLTEwLXllYXItMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTgvMDIvZm9yaS1jaGluYS0xMC15ZWFyLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDMvZm9yaS1hdXRvbWF0aW9uLWhpZ2gtY2FwYWNpdHktYWd2cy1mb3ItYWx1bWludW0tc3RlZWwtaW5nb3QtY29pbC1oYW5kbGluZzEuanBnIj50ZXN0LWltYWdlcy8yMDE4LzAzL2ZvcmktYXV0b21hdGlvbi1oaWdoLWNhcGFjaXR5LWFndnMtZm9yLWFsdW1pbnVtLXN0ZWVsLWluZ290LWNvaWwtaGFuZGxpbmcxLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE4LzAzL2ZvcmktYXV0b21hdGlvbi1wb3dlcmVkLWRyaXZlLXdoZWVscy1mb3ItcGxhdGZvcm0tdG9vbGluZy1tb2JpbGl6YXRpb24ucG5nIj50ZXN0LWltYWdlcy8yMDE4LzAzL2ZvcmktYXV0b21hdGlvbi1wb3dlcmVkLWRyaXZlLXdoZWVscy1mb3ItcGxhdGZvcm0tdG9vbGluZy1tb2JpbGl6YXRpb24ucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDkvcmdjLTE4LmpwZyI+dGVzdC1pbWFnZXMvMjAxOC8wOS9yZ2MtMTguanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDkvZm9yaS1mbGV4LWZsb29yLTItMC1tb2R1bGUtYXNzZW1ibHktYXV0b21hdGVkLWd1aWRlZC1jYXJ0LWFnYy5wbmciPnRlc3QtaW1hZ2VzLzIwMTgvMDkvZm9yaS1mbGV4LWZsb29yLTItMC1tb2R1bGUtYXNzZW1ibHktYXV0b21hdGVkLWd1aWRlZC1jYXJ0LWFnYy5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOC8wOS9mb3JpLWZsZXgtZmxvb3ItMi0wdC10dW5uZWwtc3R5bGUtbWF0ZXJpYWwtaGFuZGxpbmctYXV0b21hdGVkLWd1aWRlZC1jYXJ0LWFnYy5wbmciPnRlc3QtaW1hZ2VzLzIwMTgvMDkvZm9yaS1mbGV4LWZsb29yLTItMHQtdHVubmVsLXN0eWxlLW1hdGVyaWFsLWhhbmRsaW5nLWF1dG9tYXRlZC1ndWlkZWQtY2FydC1hZ2MucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDkvZm9yaS1mbGV4LWZsb29yLXJhaWwtZmxleC1mbG9vci1yYWlsLWd1aWRlZC1jYXJ0cy1yZ2NzLWZvci1tb2R1bGUtYXNzZW1ibHktc3lzdGVtcy5wbmciPnRlc3QtaW1hZ2VzLzIwMTgvMDkvZm9yaS1mbGV4LWZsb29yLXJhaWwtZmxleC1mbG9vci1yYWlsLWd1aWRlZC1jYXJ0cy1yZ2NzLWZvci1tb2R1bGUtYXNzZW1ibHktc3lzdGVtcy5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOC8wOS9mb3JpLWZsZXgtZmxvb3ItbG9nby5wbmciPnRlc3QtaW1hZ2VzLzIwMTgvMDkvZm9yaS1mbGV4LWZsb29yLWxvZ28ucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTgvMDkvZmxleC1mbG9vci1waWN0dXJlLWZvci1zb2NpYWwtbWVkaWEtcG9zdHMucG5nIj50ZXN0LWltYWdlcy8yMDE4LzA5L2ZsZXgtZmxvb3ItcGljdHVyZS1mb3Itc29jaWFsLW1lZGlhLXBvc3RzLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE4LzA5L2ZvcmktZmxleC1mbG9vci0xLTAtbW9kdWxlLWFzc2VtYmx5LWF1dG9tYXRlZC1ndWlkZWQtY2FydC1hZ2MucG5nIj50ZXN0LWltYWdlcy8yMDE4LzA5L2ZvcmktZmxleC1mbG9vci0xLTAtbW9kdWxlLWFzc2VtYmx5LWF1dG9tYXRlZC1ndWlkZWQtY2FydC1hZ2MucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMDYvYXV0b21hdGVkLWd1aWRlZC12ZWhpY2xlcy5qcGciPnRlc3QtaW1hZ2VzLzIwMTYvMDYvYXV0b21hdGVkLWd1aWRlZC12ZWhpY2xlcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWF1dG9tYXRlZC1kb2NrLW4tbG9jay1hZ3YtMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1hdXRvbWF0ZWQtZG9jay1uLWxvY2stYWd2LTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1hdXRvbWF0ZWQtZG9jay1uLWxvY2stYWd2LTIuanBnIj50ZXN0LWltYWdlcy8yMDE2LzEyL2ZvcmktYXV0b21hdGVkLWRvY2stbi1sb2NrLWFndi0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE2LzEyL2Zvcmktc2Nvb3Rlci1hc3NlbWJseS1saW5lLXJvYm90LTIucG5nIj50ZXN0LWltYWdlcy8yMDE2LzEyL2Zvcmktc2Nvb3Rlci1hc3NlbWJseS1saW5lLXJvYm90LTIucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1hdXRvbWF0ZWQtcm9ib3RpYy13ZWxkLXN5c3RlbS0xLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWF1dG9tYXRlZC1yb2JvdGljLXdlbGQtc3lzdGVtLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvbW9kdWxlLWFzc2VtYmx5LXdpdGgtcm9ib3QtYW5kLXJnYy5qcGciPnRlc3QtaW1hZ2VzLzIwMTYvMTIvbW9kdWxlLWFzc2VtYmx5LXdpdGgtcm9ib3QtYW5kLXJnYy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWFndi1mb3ItbnVjbGVhci1wbGFudC1yZWZ1cmJpc2htZW50LTEuanBnIj50ZXN0LWltYWdlcy8yMDE2LzEyL2ZvcmktYWd2LWZvci1udWNsZWFyLXBsYW50LXJlZnVyYmlzaG1lbnQtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLXN1c3BlbnNpb24tbW9kdWxlLWFsaWduZXItMi5qcGciPnRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1zdXNwZW5zaW9uLW1vZHVsZS1hbGlnbmVyLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1hZ3YtZm9yLW51Y2xlYXItcGxhbnQtcmVmdXJiaXNobWVudC00LmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWFndi1mb3ItbnVjbGVhci1wbGFudC1yZWZ1cmJpc2htZW50LTQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1hdXRvbWF0ZWQtcm9ib3RpYy13ZWxkLXN5c3RlbS0yLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWF1dG9tYXRlZC1yb2JvdGljLXdlbGQtc3lzdGVtLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvdHVnZ2VyLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi90dWdnZXIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1hZ3YtZm9yLW51Y2xlYXItcGxhbnQtcmVmdXJiaXNobWVudC0yLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWFndi1mb3ItbnVjbGVhci1wbGFudC1yZWZ1cmJpc2htZW50LTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1lbmQtb2YtbGluZS10ZXN0aW5nLXJvYm90aWMtdG9lLXNldC0xLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWVuZC1vZi1saW5lLXRlc3Rpbmctcm9ib3RpYy10b2Utc2V0LTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1zY29vdGVyLWFzc2VtYmx5LWxpbmUtMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1zY29vdGVyLWFzc2VtYmx5LWxpbmUtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWVuZC1vZi1saW5lLXRlc3Rpbmctd2hlZWwtYWxpZ25lci0xLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWVuZC1vZi1saW5lLXRlc3Rpbmctd2hlZWwtYWxpZ25lci0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE2LzEyL2Zvcmktc3VzcGVuc2lvbi1tb2R1bGUtYWxpZ25lci0xLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLXN1c3BlbnNpb24tbW9kdWxlLWFsaWduZXItMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLXJvYm90aWMtd2VsZC1zeXN0ZW0tMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1yb2JvdGljLXdlbGQtc3lzdGVtLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvYWd2LWZvci1hdXRvbWF0ZWQtZHJpbGwtZmlsbC1zeXN0ZW0tMS5wbmciPnRlc3QtaW1hZ2VzLzIwMTYvMTIvYWd2LWZvci1hdXRvbWF0ZWQtZHJpbGwtZmlsbC1zeXN0ZW0tMS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWFlcm9zcGFjZS1hZ3YtMi5qcGciPnRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1hZXJvc3BhY2UtYWd2LTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1lbmQtb2YtbGluZS10ZXN0aW5nLXJvYm90aWMtdG9lLXNldC0yLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWVuZC1vZi1saW5lLXRlc3Rpbmctcm9ib3RpYy10b2Utc2V0LTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTYvMTIvZm9yaS1hZXJvc3BhY2UtYWd2LTEuanBnIj50ZXN0LWltYWdlcy8yMDE2LzEyL2ZvcmktYWVyb3NwYWNlLWFndi0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE2LzEyL2Zvcmktcm9ib3RpYy13ZWxkLXN5c3RlbS0yLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLXJvYm90aWMtd2VsZC1zeXN0ZW0tMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLW1vZHVsZS1hbGlnbmVyLTEuanBnIj50ZXN0LWltYWdlcy8yMDE2LzEyL2ZvcmktbW9kdWxlLWFsaWduZXItMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLW1vZHVsZS1hbGlnbmVyLTIuanBnIj50ZXN0LWltYWdlcy8yMDE2LzEyL2ZvcmktbW9kdWxlLWFsaWduZXItMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWVuZC1vZi1saW5lLXRlc3Rpbmctd2hlZWwtYWxpZ25lci0yLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWVuZC1vZi1saW5lLXRlc3Rpbmctd2hlZWwtYWxpZ25lci0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE2LzEyL2ZvcmktYWVyb3NwYWNlLWFndi1hdXRvbWF0ZWQtZHJpbGwtZmlsbC1wbGF0Zm9ybS0xLmpwZyI+dGVzdC1pbWFnZXMvMjAxNi8xMi9mb3JpLWFlcm9zcGFjZS1hZ3YtYXV0b21hdGVkLWRyaWxsLWZpbGwtcGxhdGZvcm0tMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8wNi9taWNyb3NvZnR0ZWFtcy1pbWFnZS0zLnBuZyI+dGVzdC1pbWFnZXMvMjAyMy8wNi9taWNyb3NvZnR0ZWFtcy1pbWFnZS0zLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIzLzA2L3RyYXNoLW1vbml0b3Itc2Vuc29yLWJvYXJkLTEucG5nIj50ZXN0LWltYWdlcy8yMDIzLzA2L3RyYXNoLW1vbml0b3Itc2Vuc29yLWJvYXJkLTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMDYvaW1nXzIwMzgucG5nIj50ZXN0LWltYWdlcy8yMDIzLzA2L2ltZ18yMDM4LnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIzLzA2L2ltZ18yMDM4LTEucG5nIj50ZXN0LWltYWdlcy8yMDIzLzA2L2ltZ18yMDM4LTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMDYvdHJhc2gtbW9uaXRvci1zZW5zb3ItYm9hcmQucG5nIj50ZXN0LWltYWdlcy8yMDIzLzA2L3RyYXNoLW1vbml0b3Itc2Vuc29yLWJvYXJkLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIzLzA2L2Zvci1tYWtlcnMtZ28tZ3JlZW4tZmluYWxpc3QtdHJhc2gtbW9uaXRvci5wbmciPnRlc3QtaW1hZ2VzLzIwMjMvMDYvZm9yLW1ha2Vycy1nby1ncmVlbi1maW5hbGlzdC10cmFzaC1tb25pdG9yLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIzLzA2L3RyYXNoLW1vbml0b3Itd2lyaW5nLnBuZyI+dGVzdC1pbWFnZXMvMjAyMy8wNi90cmFzaC1tb25pdG9yLXdpcmluZy5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8wNi9pbWdfMDA1MS5wbmciPnRlc3QtaW1hZ2VzLzIwMjMvMDYvaW1nXzAwNTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMDcvcnVlc3Mtcm9sbG9mLmpwZyI+dGVzdC1pbWFnZXMvMjAyMy8wNy9ydWVzcy1yb2xsb2YuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMDcvbmljay1tY2h1Z2gtaW50ZXJuLXN1bW1lci5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMDcvbmljay1tY2h1Z2gtaW50ZXJuLXN1bW1lci5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8wMi9yeWFuLXlvcmstbWZnLWRheS5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMDIvcnlhbi15b3JrLW1mZy1kYXkuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMDIvamFjb2ItbC5wbmciPnRlc3QtaW1hZ2VzLzIwMjMvMDIvamFjb2ItbC5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8wMi9qb3JkYW4tM2QtcHJpbnRpbmctbWZnLWRheS5wbmciPnRlc3QtaW1hZ2VzLzIwMjMvMDIvam9yZGFuLTNkLXByaW50aW5nLW1mZy1kYXkucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMDUvYWNnLWFsbC1zdGFyLWFjcXVpc2l0aW9uLWF3YXJkLXdpdGhvdXQtcXIucG5nIj50ZXN0LWltYWdlcy8yMDIzLzA1L2FjZy1hbGwtc3Rhci1hY3F1aXNpdGlvbi1hd2FyZC13aXRob3V0LXFyLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIzLzAxL2FtYW5kaXAtMjAteWVhci0yLmpwZyI+dGVzdC1pbWFnZXMvMjAyMy8wMS9hbWFuZGlwLTIwLXllYXItMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8wMS9pbWdfODI0NS5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMDEvaW1nXzgyNDUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMDEvZHNjMDA0NTcuanBnIj50ZXN0LWltYWdlcy8yMDIzLzAxL2RzYzAwNDU3LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIzLzAxLzExLmpwZyI+dGVzdC1pbWFnZXMvMjAyMy8wMS8xMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8wMS9pbWdfMDYzNy5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMDEvaW1nXzA2MzcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMDEvaW1nXzMzOTcuanBnIj50ZXN0LWltYWdlcy8yMDIzLzAxL2ltZ18zMzk3LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIzLzAxL2ltZ18wMDA3LmpwZyI+dGVzdC1pbWFnZXMvMjAyMy8wMS9pbWdfMDAwNy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8xMC9mb3JpLW1mZy1kYXktYWd2LWRlbW8tMS5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMTAvZm9yaS1tZmctZGF5LWFndi1kZW1vLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMTAvcDEwMTExNDYuanBnIj50ZXN0LWltYWdlcy8yMDIzLzEwL3AxMDExMTQ2LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIzLzEwL2ltZy00NjQyLmpwZyI+dGVzdC1pbWFnZXMvMjAyMy8xMC9pbWctNDY0Mi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8xMC9wMTAxMTE2OS5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMTAvcDEwMTExNjkuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMTAvaW1nLTQ2MjAuanBnIj50ZXN0LWltYWdlcy8yMDIzLzEwL2ltZy00NjIwLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIzLzEwL2ZvcmktbWZnLWRheS1tYWNoaW5pbmctZGVtby0xLmpwZyI+dGVzdC1pbWFnZXMvMjAyMy8xMC9mb3JpLW1mZy1kYXktbWFjaGluaW5nLWRlbW8tMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8xMC9pbWdfMzI0OC5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMTAvaW1nXzMyNDguanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMTAvbWZnLWRheS1mb3JpLWF1dG9tYXRpb24tMS5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMTAvbWZnLWRheS1mb3JpLWF1dG9tYXRpb24tMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8xMC9tYWNoaW5lc2hvcC5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMTAvbWFjaGluZXNob3AuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMTAvZm9yaS1tZmctZGF5LWFzc2VtYmx5LWRlbW8tMi5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMTAvZm9yaS1tZmctZGF5LWFzc2VtYmx5LWRlbW8tMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8xMC9mb3JpLW1mZy1kYXktaW50cm9kdWN0aW9uLTEuanBnIj50ZXN0LWltYWdlcy8yMDIzLzEwL2ZvcmktbWZnLWRheS1pbnRyb2R1Y3Rpb24tMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8xMC9pbWctNDYwOS5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMTAvaW1nLTQ2MDkuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMTAvbWZnLWRheS1mb3JpLWF1dG9tYXRpb24tOC5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMTAvbWZnLWRheS1mb3JpLWF1dG9tYXRpb24tOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8xMC9pbWctNDY2Ny5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMTAvaW1nLTQ2NjcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjMvMTAvaW1nLTQ2MDYuanBnIj50ZXN0LWltYWdlcy8yMDIzLzEwL2ltZy00NjA2LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIzLzEwL2dyb3VwcGhvdG93YWd2LmpwZyI+dGVzdC1pbWFnZXMvMjAyMy8xMC9ncm91cHBob3Rvd2Fndi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMy8xMC9mb3JpLW1mZy1kYXktYWd2LWRlbW8tMi5qcGciPnRlc3QtaW1hZ2VzLzIwMjMvMTAvZm9yaS1tZmctZGF5LWFndi1kZW1vLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDYvaW1nXzkxNzEuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA2L2ltZ185MTcxLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA2L2VpLW1pZGJvZHktYWd2LTE1NjA0LTEuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA2L2VpLW1pZGJvZHktYWd2LTE1NjA0LTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDYvMS0yLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNi8xLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDYvMi5wbmciPnRlc3QtaW1hZ2VzLzIwMTkvMDYvMi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNi8xLnBuZyI+dGVzdC1pbWFnZXMvMjAxOS8wNi8xLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA2LzEtMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDYvMS0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA2L2VpLWRyaWxsLWZpbGwtcm9ib3QtMi5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDYvZWktZHJpbGwtZmlsbC1yb2JvdC0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA2LzMtMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDYvMy0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3L3dlbGQuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3L3dlbGQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvY2hhc3Npcy1tYXJyaWFnZS1mY2Etc2hhcC1yZ3YtMy5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvY2hhc3Npcy1tYXJyaWFnZS1mY2Etc2hhcC1yZ3YtMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8zLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8zLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzItNS5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMi01LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEtMTUuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzEtMTUuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMi04LmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8yLTguanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvaW1nXzk1MDEuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ185NTAxLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3L2xpZnQuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3L2xpZnQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMy0xLnBuZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8zLTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMy03LmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8zLTcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMS0xMC5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMS0xMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8xLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEtMi5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMS0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzItNi5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMi02LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ184NTc3LmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfODU3Ny5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8xLTExLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8xLTExLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ181Njc2LmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfNTY3Ni5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfOTIxMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvaW1nXzkyMTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvaW1nXzkyNDEuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ185MjQxLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzItMTAuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzItMTAuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMS0xNi5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMS0xNi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8yLTEzLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8yLTEzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ185NTIwLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfOTUyMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8yLTMuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzItMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfOTE4OC5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvaW1nXzkxODguanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvdnczLnBuZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy92dzMucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMi5wbmciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8zLTEyLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8zLTEyLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEtNy5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMS03LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzMucG5nIj50ZXN0LWltYWdlcy8yMDE5LzA3LzMucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMy0xMC5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMy0xMC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8zLTExLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8zLTExLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEtMi5wbmciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMS0yLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3L3d1dC5wbmciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvd3V0LnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEtMTIuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzEtMTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMi03LmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8yLTcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvYWRhczEuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3L2FkYXMxLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEucG5nIj50ZXN0LWltYWdlcy8yMDE5LzA3LzEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvZHNjMDA5MTcuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3L2RzYzAwOTE3LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ180MDM1LmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfNDAzNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfODU4Ny5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvaW1nXzg1ODcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMi0xMi5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMi0xMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8yLTMucG5nIj50ZXN0LWltYWdlcy8yMDE5LzA3LzItMy5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8xLTEzLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8xLTEzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ181NjMyLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfNTYzMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8yLTEucG5nIj50ZXN0LWltYWdlcy8yMDE5LzA3LzItMS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfMDU4MC5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvaW1nXzA1ODAuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMi05LmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8yLTkuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvaW1nXzkyNDIuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ185MjQyLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEtOS5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMS05LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEtMy5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMS0zLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEtMTQuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzEtMTQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMy0yLnBuZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8zLTIucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvd2VsZDIuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3L3dlbGQyLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzItMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMi0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzMtOS5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMy05LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzMtNS5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMy01LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEtNC5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMS00LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzItMi5wbmciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMi0yLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzEtNi5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMS02LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ184ODYxLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfODg2MS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8xLTEuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzEtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfMDU4Ni5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvaW1nXzA1ODYuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMS0xLnBuZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8xLTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMy02LmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8zLTYuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvdncyLnBuZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy92dzIucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvYWRhczIuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3L2FkYXMyLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3LzItMTEuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzItMTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvaW1nXzU5NjAuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ181OTYwLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA3L2ltZ18wNTUxLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfMDU1MS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8zLTEuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzMtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8xLTguanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzEtOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8zLTMuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzMtMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy9pbWdfNzk4Ny5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvaW1nXzc5ODcuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMi0yLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNy8yLTIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDcvMi5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDcvMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNy8zLTguanBnIj50ZXN0LWltYWdlcy8yMDE5LzA3LzMtOC5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8xMi9wcm9kdWN0cy5wbmciPnRlc3QtaW1hZ2VzLzIwMTkvMTIvcHJvZHVjdHMucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDIvNC4tZmFjaGFkYS5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDIvNC4tZmFjaGFkYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wMi8zLi1mYWNoYWRhLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wMi8zLi1mYWNoYWRhLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzAyLzIuLWZhY2hhZGEuanBnIj50ZXN0LWltYWdlcy8yMDE5LzAyLzIuLWZhY2hhZGEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDIvZm9yaS1tZXhpY28tbmV3LWZhY2lsaXR5LnBuZyI+dGVzdC1pbWFnZXMvMjAxOS8wMi9mb3JpLW1leGljby1uZXctZmFjaWxpdHkucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDIvMS4tZmFjaGFkYS5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDIvMS4tZmFjaGFkYS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wNS8zLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wNS8zLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA1LzEuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA1LzEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMDUvMi5qcGciPnRlc3QtaW1hZ2VzLzIwMTkvMDUvMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxOS8wMS9yb2JvdGljLXdlbGRpbmctc3lzdGVtLmpwZyI+dGVzdC1pbWFnZXMvMjAxOS8wMS9yb2JvdGljLXdlbGRpbmctc3lzdGVtLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE5LzA4L21vYmlsZS1yb2JvdC1mb3ItYXV0b21hdGVkLWRyaWxsLWZpbGwuanBnIj50ZXN0LWltYWdlcy8yMDE5LzA4L21vYmlsZS1yb2JvdC1mb3ItYXV0b21hdGVkLWRyaWxsLWZpbGwuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTkvMTAvZm9yaS10dW5uZWwtYWd2LTMuanBnIj50ZXN0LWltYWdlcy8yMDE5LzEwL2ZvcmktdHVubmVsLWFndi0zLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzA2LzEtMS5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMDYvMS0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzA2LzMtMS5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMDYvMy0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzA2LzItMi5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMDYvMi0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzA3L2ZvcmktcG93ZXJlZC1kcml2ZS13aGVlbC1zeXN0ZW0tYXV0b21vdGl2ZS1hc3NlbWJseS0zLmpwZyI+dGVzdC1pbWFnZXMvMjAyMC8wNy9mb3JpLXBvd2VyZWQtZHJpdmUtd2hlZWwtc3lzdGVtLWF1dG9tb3RpdmUtYXNzZW1ibHktMy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8wNy9mb3JpLXBvd2VyZWQtZHJpdmUtd2hlZWwtc3lzdGVtLWF1dG9tb3RpdmUtYXNzZW1ibHktMS5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMDcvZm9yaS1wb3dlcmVkLWRyaXZlLXdoZWVsLXN5c3RlbS1hdXRvbW90aXZlLWFzc2VtYmx5LTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMDcvZm9yaS1wb3dlcmVkLWRyaXZlLXdoZWVsLXN5c3RlbS1hdXRvbW90aXZlLWFzc2VtYmx5LTIuanBnIj50ZXN0LWltYWdlcy8yMDIwLzA3L2ZvcmktcG93ZXJlZC1kcml2ZS13aGVlbC1zeXN0ZW0tYXV0b21vdGl2ZS1hc3NlbWJseS0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzA3L2ZvcmktcG93ZXJlZC1kcml2ZS13aGVlbC1zeXN0ZW0tYXV0b21vdGl2ZS1hc3NlbWJseS01LmpwZyI+dGVzdC1pbWFnZXMvMjAyMC8wNy9mb3JpLXBvd2VyZWQtZHJpdmUtd2hlZWwtc3lzdGVtLWF1dG9tb3RpdmUtYXNzZW1ibHktNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8wNy9mb3JpLXBvd2VyZWQtZHJpdmUtd2hlZWwtc3lzdGVtLWF1dG9tb3RpdmUtYXNzZW1ibHktNC5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMDcvZm9yaS1wb3dlcmVkLWRyaXZlLXdoZWVsLXN5c3RlbS1hdXRvbW90aXZlLWFzc2VtYmx5LTQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMTEvbWlnd2VsZGluZy5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMTEvbWlnd2VsZGluZy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8xMS9obGEucG5nIj50ZXN0LWltYWdlcy8yMDIwLzExL2hsYS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8xMS9obGEyLnBuZyI+dGVzdC1pbWFnZXMvMjAyMC8xMS9obGEyLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzExL2FnYy5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMTEvYWdjLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzExL2FnYzIuanBnIj50ZXN0LWltYWdlcy8yMDIwLzExL2FnYzIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMTEvbWlnd2VsZGluZzIuanBnIj50ZXN0LWltYWdlcy8yMDIwLzExL21pZ3dlbGRpbmcyLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzAxL2JvZWluZy1jd2Mtc3RyaW5nZXItYWd2LTQuanBnIj50ZXN0LWltYWdlcy8yMDIwLzAxL2JvZWluZy1jd2Mtc3RyaW5nZXItYWd2LTQuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMDEvYm9laW5nLWN3Yy1zdHJpbmdlci1hZ3YtMS5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMDEvYm9laW5nLWN3Yy1zdHJpbmdlci1hZ3YtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8wMS9zaS1naWFudHMtMjAyMC1sb2dvLTEuanBnIj50ZXN0LWltYWdlcy8yMDIwLzAxL3NpLWdpYW50cy0yMDIwLWxvZ28tMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8wMS8yMDIwLWludGVncmF0b3ItZ2lhbnRzLnBuZyI+dGVzdC1pbWFnZXMvMjAyMC8wMS8yMDIwLWludGVncmF0b3ItZ2lhbnRzLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzEwL2Flcm9zcGFjZWFzc2VtYmx5c3lzdGVtczIuanBnIj50ZXN0LWltYWdlcy8yMDIwLzEwL2Flcm9zcGFjZWFzc2VtYmx5c3lzdGVtczIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMTAvYXV0b21hdGVkYWxpZ25tZW50c3lzdGVtLmpwZyI+dGVzdC1pbWFnZXMvMjAyMC8xMC9hdXRvbWF0ZWRhbGlnbm1lbnRzeXN0ZW0uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMTAvbW9kdWxlYXNzZW1ibHlsaW5lZm9yZmNvczMuanBnIj50ZXN0LWltYWdlcy8yMDIwLzEwL21vZHVsZWFzc2VtYmx5bGluZWZvcmZjb3MzLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzEwL21vZHVsZWFzc2VtYmx5bGluZWZvcmZjb3MyLmpwZyI+dGVzdC1pbWFnZXMvMjAyMC8xMC9tb2R1bGVhc3NlbWJseWxpbmVmb3JmY29zMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8xMC9yZ2NzLnBuZyI+dGVzdC1pbWFnZXMvMjAyMC8xMC9yZ2NzLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzEwL2F1dG9tYXRlZGFsaWdubWVudHN5c3RlbTMuanBnIj50ZXN0LWltYWdlcy8yMDIwLzEwL2F1dG9tYXRlZGFsaWdubWVudHN5c3RlbTMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMTAvaW1nXzMyNDcuanBnIj50ZXN0LWltYWdlcy8yMDIwLzEwL2ltZ18zMjQ3LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzEwL2RvY2tubG9jay5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMTAvZG9ja25sb2NrLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzEwL3JnY3MyLnBuZyI+dGVzdC1pbWFnZXMvMjAyMC8xMC9yZ2NzMi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8xMC9hdXRvbWF0ZWRhbGlnbm1lbnRzeXN0ZW0yLmpwZyI+dGVzdC1pbWFnZXMvMjAyMC8xMC9hdXRvbWF0ZWRhbGlnbm1lbnRzeXN0ZW0yLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzEwL2RvY2tubG9jazIuanBnIj50ZXN0LWltYWdlcy8yMDIwLzEwL2RvY2tubG9jazIuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMTAvbW9kdWxlYXNzZW1ibHlsaW5lZm9yZmNvcy5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMTAvbW9kdWxlYXNzZW1ibHlsaW5lZm9yZmNvcy5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8xMC9mb3JpLW1leGljby5wbmciPnRlc3QtaW1hZ2VzLzIwMjAvMTAvZm9yaS1tZXhpY28ucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMTAvZm9yaS1hdXRvbWF0aW9uLWRlLW1leGljby0xLnBuZyI+dGVzdC1pbWFnZXMvMjAyMC8xMC9mb3JpLWF1dG9tYXRpb24tZGUtbWV4aWNvLTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMTAvYWVyb3NwYWNlYXNzZW1ibHlzeXN0ZW1zLmpwZyI+dGVzdC1pbWFnZXMvMjAyMC8xMC9hZXJvc3BhY2Vhc3NlbWJseXN5c3RlbXMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMTAvaGlnaGNhcGFjaXR5YWd2LmpwZyI+dGVzdC1pbWFnZXMvMjAyMC8xMC9oaWdoY2FwYWNpdHlhZ3YuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMjAvMTAvYWRhcy1jYWxpYnJhdGlvbi5qcGciPnRlc3QtaW1hZ2VzLzIwMjAvMTAvYWRhcy1jYWxpYnJhdGlvbi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8xMC9oaWdoc3BlZWRhdWRpdGhlYWRsYW1wLTEucG5nIj50ZXN0LWltYWdlcy8yMDIwLzEwL2hpZ2hzcGVlZGF1ZGl0aGVhZGxhbXAtMS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8xMC9yZ2NzeXN0ZW0tZTE2MDQwODUwNjkxNTEucG5nIj50ZXN0LWltYWdlcy8yMDIwLzEwL3JnY3N5c3RlbS1lMTYwNDA4NTA2OTE1MS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8xMC9iYXR0ZXJ5ZGVja2luZzEucG5nIj50ZXN0LWltYWdlcy8yMDIwLzEwL2JhdHRlcnlkZWNraW5nMS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8xMC9iYXR0ZXJ5ZGVja2luZzIucG5nIj50ZXN0LWltYWdlcy8yMDIwLzEwL2JhdHRlcnlkZWNraW5nMi5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAyMC8xMC9yZ2NzeXN0ZW0yLWUxNjA0MDg1MDUxMzA2LnBuZyI+dGVzdC1pbWFnZXMvMjAyMC8xMC9yZ2NzeXN0ZW0yLWUxNjA0MDg1MDUxMzA2LnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDIwLzEwL2hpZ2hzcGVlZGF1ZGl0aGVhZGxhbXAucG5nIj50ZXN0LWltYWdlcy8yMDIwLzEwL2hpZ2hzcGVlZGF1ZGl0aGVhZGxhbXAucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTcvMDcvZm9yaS1jaGFzc2lzLW1hcnJpYWdlLWFndi0zLmpwZyI+dGVzdC1pbWFnZXMvMjAxNy8wNy9mb3JpLWNoYXNzaXMtbWFycmlhZ2UtYWd2LTMuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTcvMDcvZm9yaS1hdXRvbWF0ZWQtZ3VpZGVkLXZlaGljbGUtYWd2LWZvci1jaGFzc2lzLW1hcnJpYWdlLmpwZyI+dGVzdC1pbWFnZXMvMjAxNy8wNy9mb3JpLWF1dG9tYXRlZC1ndWlkZWQtdmVoaWNsZS1hZ3YtZm9yLWNoYXNzaXMtbWFycmlhZ2UuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTcvMDIvYWVyb2RlZl9sb2dvLmpwZyI+dGVzdC1pbWFnZXMvMjAxNy8wMi9hZXJvZGVmX2xvZ28uanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTcvMDIvZm9yaS1hZXJvc3BhY2UtYWd2LW1vYmlsZS1wbGF0Zm9ybTEuanBnIj50ZXN0LWltYWdlcy8yMDE3LzAyL2ZvcmktYWVyb3NwYWNlLWFndi1tb2JpbGUtcGxhdGZvcm0xLmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE3LzAyL2ZvcmktYXV0b21hdGVkLW1hdGVyaWFsLWhhbmRsaW5nLWFndi1mb3ItZjM1LmpwZyI+dGVzdC1pbWFnZXMvMjAxNy8wMi9mb3JpLWF1dG9tYXRlZC1tYXRlcmlhbC1oYW5kbGluZy1hZ3YtZm9yLWYzNS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNy8xMS9mb3JpLWdlcm1hbnktcmVhci1heGxlLWFkanVzdG1lbnQtY2VsbC0xLnBuZyI+dGVzdC1pbWFnZXMvMjAxNy8xMS9mb3JpLWdlcm1hbnktcmVhci1heGxlLWFkanVzdG1lbnQtY2VsbC0xLnBuZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE3LzExL2ZvcmktZ2VybWFueS1vcGVuLWhvdXNlLTIucG5nIj50ZXN0LWltYWdlcy8yMDE3LzExL2ZvcmktZ2VybWFueS1vcGVuLWhvdXNlLTIucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTcvMTEvZm9yaS1nZXJtYW55LW9wZW4taG91c2UtMS5wbmciPnRlc3QtaW1hZ2VzLzIwMTcvMTEvZm9yaS1nZXJtYW55LW9wZW4taG91c2UtMS5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNy8xMS9mb3JpLWdlcm1hbnktYXV0b21hdGVkLWd1aWRlZC1jYXJ0LWZvci1ib2R5LXNob3AtMS5wbmciPnRlc3QtaW1hZ2VzLzIwMTcvMTEvZm9yaS1nZXJtYW55LWF1dG9tYXRlZC1ndWlkZWQtY2FydC1mb3ItYm9keS1zaG9wLTEucG5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTcvMTEvZm9yaS1nZXJtYW55LWhlYWRxdWFydGVycy5wbmciPnRlc3QtaW1hZ2VzLzIwMTcvMTEvZm9yaS1nZXJtYW55LWhlYWRxdWFydGVycy5wbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNy8wOC9mb3JpLWVuZC1vZi1saW5lLXRlc3Qtc3lzdGVtLXdoZWVsLWFsaWduLWhlYWRsYW1wLWFpbS1yb2xsLWJyYWtlLTIuanBnIj50ZXN0LWltYWdlcy8yMDE3LzA4L2ZvcmktZW5kLW9mLWxpbmUtdGVzdC1zeXN0ZW0td2hlZWwtYWxpZ24taGVhZGxhbXAtYWltLXJvbGwtYnJha2UtMi5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNy8wOC9mb3JpLWVuZC1vZi1saW5lLXRlc3Qtc3lzdGVtLXdoZWVsLWFsaWduLWhlYWRsYW1wLWFpbS1yb2xsLWJyYWtlLTEuanBnIj50ZXN0LWltYWdlcy8yMDE3LzA4L2ZvcmktZW5kLW9mLWxpbmUtdGVzdC1zeXN0ZW0td2hlZWwtYWxpZ24taGVhZGxhbXAtYWltLXJvbGwtYnJha2UtMS5qcGc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0idGVzdC1pbWFnZXMvMjAxNy8xMC9mb3JpLW1mZy1kYXktYWd2LWRlbW8tMS5qcGciPnRlc3QtaW1hZ2VzLzIwMTcvMTAvZm9yaS1tZmctZGF5LWFndi1kZW1vLTEuanBnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InRlc3QtaW1hZ2VzLzIwMTcvMTAvZm9yaS1hdXRvbWF0aW9uLW1mZy1kYXktMTUuanBnIj50ZXN0LWltYWdlcy8yMDE3LzEwL2ZvcmktYXV0b21hdGlvbi1tZmctZGF5LTE1LmpwZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ0ZXN0LWltYWdlcy8yMDE3LzEwL2ZvcmktYXV0b21hdGlvbi1tZmctZGF5LTE0LTIuanBnIj50ZXN0LWltYWdlcy8yMDE3LzEwL2ZvcmktYXV0b21hdGlvbi1tZmctZGF5LTE0LTIuanBnPC9vcHRpb24+CgogICAgICAgICAgICA8L3NlbGVjdD4KICAgIAoKICAgICAgICAgICAgPGltZyBjbGFzcz0iZWNiX2ZpbGVfc2VsZWN0b3JfcHJldmlldyAiICBhbHQ9ImRlbW9fZmlsZV9zZWxlY3RvcjEiIGRhdGEtYWpheC11cmw9Imh0dHBzOi8vbG9jYWxob3N0L21vZHVsZS1kZXYvYWRtaW4vbW9kdWxlaW50ZXJmYWNlLnBocD9tYWN0PUVDQjIsbTFfLGFkbWluX2FqYXhfZ2V0X3RodW1iLDAmYW1wO19fYz1hYTMyOGYyZjQ3MzlhM2JhMjc0IiBkYXRhLXRvcC1kaXI9IiIgZGF0YS10aHVtYm5haWwtd2lkdGg9IjAiIGRhdGEtdGh1bWJuYWlsLWhlaWdodD0iMCI+CiAgICAKICAgIDwvZGl2PgoKCgo8L2ZpZWxkc2V0PgoKPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9ZmlsZV9zZWxlY3RvciBibG9jaz10ZXN0MTAgZmlsZXR5cGVzPSdqcGcsZ2lmLHBuZycgZXhjbHVkZXByZWZpeD0ndGh1bWJfJyByZWN1cnNlPTEgcHJldmlldz0xfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ2ZpbGVfc2VsZWN0b3InPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmZpbGV0eXBlcyAocmVxdWlyZWQpIC0gY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmlsZSBleHRlbnNpb25zIHRvIGRpc3BsYXksIGUuZy4gJ2pwZyxnaWYscG5nJzwvbGk+CiAgICA8bGk+ZGlyIChvcHRpb25hbCkgLSBzcGVjaWZ5IGEgc3ViIGRpcmVjdG9yeSBvZiAndXBsb2FkcycgdG8gdXNlPC9saT4KICAgIDxsaT5leGNsdWRlcHJlZml4IChvcHRpb25hbCkgLSBleGNsdWRlIGFueSBmaWxlcyB0aGF0IGhhdmUgdGhpcyBwcmVmaXgsIGUuZy4gJ3RodW1iXyc8L2xpPgogICAgPGxpPnJlY3Vyc2UgKG9wdGlvbmFsKSAtIGlmIHNldCB3aWxsIHNob3cgYWxsIGZpbGVzIGluIHN1YiBkaXJlY3RvcmllczwvbGk+CiAgICA8bGk+c29ydGZpbGVzIChvcHRpb25hbCkgLSB3aWxsIHNvcnQgZmlsZXMgYnkgZmlsZW5hbWU8L2xpPgogICAgPGxpPnByZXZpZXcgKG9wdGlvbmFsKSAtIHdpbGwgc2hvdyBhIHRodW1ibmFpbCBvZiB0aGUgaW1hZ2UgLSBvbmx5IGZvciBpbWFnZXM8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPgoKICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPGgyIGlkPSJmaWxlX3BpY2tlciIgY2xhc3M9Im1fYm90dG9tXzUiPmZpbGVfcGlja2VyPC9oMj4KICAgICAgICA8cD5UaGUgZmlsZV9waWNrZXIgZmllbGQgZW5hYmxlcyB0aGUgZWRpdG9yIHRvIHNlbGVjdCBhbiBpbWFnZSAob3IgZmlsZSkgZnJvbSBzcGVjaWZpZWQgZGlyZWN0b3J5LCB0byB1c2Ugb24gYSBwYWdlLiBQbHVzIGEgdGh1bWJuYWlsIG9mIHRoZSBzZWxlY3RlZCBpbWFnZSBpcyBzaG93biAoaWYgYW4gaW1hZ2UgaXMgc2VsZWN0ZWQpLjwvcD4KPHA+VGhpcyBmdW5jdGlvbmFsaXR5IGlzIHByb3ZpZGVkIGJ5IHRoZSBjb3JlIEZpbGVQaWNrZXIgbW9kdWxlLCB3aXRoIHRoZSBhZGRpdGlvbiBvZiB0aGUgdGh1bWJuYWlsLiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgdGh1bWJuYWlsIGl0J3MgYmV0dGVyIHRvIGp1c3QgdXNlIHRoZSBGaWxlUGlja2VyIGNvbnRlbnQgYmxvY2s6IDxjb2RlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RmlsZVBpY2tlciBibG9jaz1zdHJpbmcgW3Byb2ZpbGU9c3RyaW5nXX08L2NvZGU+IFNlZSB0aGUgRmlsZVBpY2tlciBtb2R1bGUgZm9yIGRldGFpbHMuPC9wPgoKPGZpZWxkc2V0PgogICAgCiAgICA8ZGl2IGNsYXNzPSJlY2JfZmlsZV9waWNrZXIgcHJldmlldyBlbXB0eSI+ICAgICAgICA8ZGl2IGNsYXNzPSJjbXNmcF9jb250Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkZW1vX2ZpbGVfcGlja2VyMSIgdmFsdWU9IiIgZGF0YS1jbXNmcC1pbnN0YW5jZT0iaTY5NWY3NDJhZWM4NjgiIHNpemU9IjgwIi8+CiAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICB2YXIgc2VsID0gJ1tkYXRhLWNtc2ZwLWluc3RhbmNlPSJpNjk1Zjc0MmFlYzg2OCJdJzsKICAgJChzZWwpLmZpbGVwaWNrZXIoewogICAgICBwYXJhbV9zaWc6ICdkY2I0ZDEyMDUwYjY5ZjU1YjAxOTZhNTZhNTQ2OGRmNScsCiAgICAgIHRpdGxlOiAnU2VsZWN0IGEgZmlsZScsCiAgICAgIHJlcXVpcmVkOiAwLAogICAgICByZW1vdmVfdGl0bGU6ICdDbGVhcicsCiAgICAgIHJlbW92ZV9sYWJlbDogJ0NsZWFyJywKICAgfSk7Cn0pCjwvc2NyaXB0Pgo8L2Rpdj4KCgogICAgICAgIDxpbWcgY2xhc3M9ImVjYl9maWxlX3BpY2tlcl9wcmV2aWV3IiBzcmM9IiIgYWx0PSJkZW1vX2ZpbGVfcGlja2VyMSIgZGF0YS1hamF4LXVybD0iaHR0cHM6Ly9sb2NhbGhvc3QvbW9kdWxlLWRldi9hZG1pbi9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9RUNCMixtMV8sYWRtaW5fYWpheF9nZXRfdGh1bWIsMCZhbXA7X19jPWFhMzI4ZjJmNDczOWEzYmEyNzQiIGRhdGEtdG9wLWRpcj0iIiBkYXRhLXRodW1ibmFpbC13aWR0aD0iMCIgZGF0YS10aHVtYm5haWwtaGVpZ2h0PSIwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJlY2JfZmlsZV9waWNrZXJfZmlsZV9pY29uIj48c3BhbiBjbGFzcz0iZWNiMi1pY29uLWZpbGUtbyI+PC9zcGFuPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImVjYl9maWxlX3BpY2tlcl90aXRsZSI+PC9kaXY+CiAgICA8L2Rpdj4KPC9maWVsZHNldD4KCjxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPWZpbGVfcGlja2VyIGJsb2NrPXRlc3R9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnZmlsZV9waWNrZXInPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPnByb2ZpbGUgKG9wdGlvbmFsKSAtIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHBpY2tlciBwcm9maWxlIHRvIHVzZS4gVGhlIHByb2ZpbGUgbXVzdCBleGlzdCB3aXRoaW4gdGhlIHNlbGVjdGVkIGZpbGUgcGlja2VyIG1vZHVsZSwgb3IgYSBkZWZhdWx0IHByb2ZpbGUgd2lsbCBiZSB1c2VkPC9saT4KICAgIDxsaT50b3AgKG9wdGlvbmFsKSAtIEEgdG9wIGRpcmVjdG9yeSwgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5LiBUaGlzIG92ZXJyaWRlcyBhbnkgdG9wIHZhbHVlIGFscmVhZHkgc3BlY2lmaWVkIGluIHRoZSBwcm9maWxlLjwvbGk+CiAgICA8bGk+ZmlsZXR5cGUgKG9wdGlvbmFsKSAtIEFuIGluZGljYXRpb24gb2YgdGhlIGZpbGUgdHlwZSB0aGF0IGNhbiBiZSBzZWxlY3RlZC4gUG9zc2libGUgdmFsdWVzIGFyZTogaW1hZ2UsYXVkaW8sdmlkZW8sbWVkaWEseG1sLGRvY3VtZW50LGFyY2hpdmUsYW55PC9saT4KICAgIDxsaT5wcmV2aWV3IChvcHRpb25hbCkgLSBkZWZhdWx0OiB0cnVlLCBzZXQgdG8gZmFsc2UgdG8gbm90IHNob3cgYSB0aHVtYm5haWwgKHJlY29tbWVkIHlvdSB1c2UgRmlsZVBpY2tlciBjb250ZW50IGJsb2NrIGluc3RlYWQhKTwvbGk+CiAgICA8bGk+dGh1bWJuYWlsX3dpZHRoIChvcHRpb25hbCkgLSBzZXRzIHRodW1ibmFpbCB3aWR0aCBmb3IgdGhpcyBmaWVsZHMgdGh1bWJuYWlscy4gSWYgdGh1bWJuYWlsX3dpZHRoIGlzIHNldCwgYnV0IHRodW1ibmFpbF9oZWlnaHQgaXMgbm90LCB0aGUgcmF0aW8gb2YgdGhlIGltYWdlIHdpbGwgYmUgdXNlZCB0byBjYWxjdWxhdGUgdGh1bWJuYWlsX2hlaWdodC4gVGhlc2Ugc2V0dGluZ3Mgd2lsbCBkZWZhdWx0IHRvIHRoZSBFQ0IyIFRodW1ibmFpbCBXaWR0aCAmIEhlaWdodCBvcHRpb25zLCBvciBDTVNNUyBUaHVtYm5haWwgV2lkdGggJiBIZWlnaHQgc2V0dGluZ3MuPC9saT4KICAgIDxsaT50aHVtYm5haWxfaGVpZ2h0IChvcHRpb25hbCkgLSBzZXRzIHRodW1ibmFpbCBoZWlnaHQgZm9yIHRoaXMgZmllbGRzIHRodW1ibmFpbHMuIElmIHRodW1ibmFpbF9oZWlnaHQgaXMgc2V0LCBidXQgdGh1bWJuYWlsX3dpZHRoIGlzIG5vdCwgdGhlIHJhdGlvIG9mIHRoZSBpbWFnZSB3aWxsIGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRodW1ibmFpbF93aWR0aC4gVGhlc2Ugc2V0dGluZ3Mgd2lsbCBkZWZhdWx0IHRvIHRoZSBFQ0IyIFRodW1ibmFpbCBXaWR0aCAmIEhlaWdodCBvcHRpb25zLCBvciBDTVNNUyBUaHVtYm5haWwgV2lkdGggJiBIZWlnaHQgc2V0dGluZ3MuPC9saT4KICAgIDxsaT5kZWZhdWx0X3ZhbHVlIChvcHRpb25hbCkgLSBpbml0aWFsIHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZTwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+CiAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgIDxoMiBpZD0icGFnZV9waWNrZXIiIGNsYXNzPSJtX2JvdHRvbV81Ij5wYWdlX3BpY2tlcjwvaDI+CiAgICAgICAgPHA+VGhlIHBhZ2VfcGlja2VyIGZpZWxkIGNyZWF0ZXMgYSBoaWVyYXJjaHkgb2YgZHJvcGRvd25zIHRvIHNlbGVjdCBhIGNvbnRlbnQgcGFnZS48L3A+Cgo8ZmllbGRzZXQ+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiB0aXRsZT0iVGhpcyBmaWVsZCBkaXNwbGF5cyB0aGUgc2VsZWN0ZWQgY29udGVudCBwYWdlLiAgVGhlIGFjdHVhbCBzdHJpbmcgZGlzcGxheWVkIChwYWdlIHRpdGxlIG9yIG1lbnUgdGV4dCkgaXMgZGVwZW5kZW50IG9uIHVzZXIgYW5kIHNpdGUgcHJlZmVyZW5jZS4iIG5hbWU9ImRlbW9fcGFnZV9waWNrZXIxIiBpZD0iY21zX2hpZXJkcm9wZG93bjIiIGNsYXNzPSJjbXNfaGllcmRyb3Bkb3duIiB2YWx1ZT0iMCIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iNTAiLz48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChmdW5jdGlvbigpeyAkKCcjY21zX2hpZXJkcm9wZG93bjInKS5oaWVyc2VsZWN0b3Ioe3ZhbHVlOiAwLGFsbG93Y3VycmVudDogZmFsc2UsYWxsb3dfYWxsOiBmYWxzZSx1c2VfcGVybXM6IGZhbHNlLGZvcl9jaGlsZDogZmFsc2UsaXNfbWFuYWdlcjogMX0pIH0pOzwvc2NyaXB0PgoKCjwvZmllbGRzZXQ+Cgo8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1wYWdlX3BpY2tlciBsYWJlbD0nU2VsZWN0IGEgcGFnZScgYmxvY2s9dGVzdDEwfTwvcHJlPgo8cD5Ob3RlOiBzZXRzIHRoZSBjb250ZW50IHBhZ2UgaWQuPC9wPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ3BhZ2VfcGlja2VyJywgYWxpYXM6ICc8Yj5wYWdlczwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmFsbG93Y3VycmVudCAtIChvcHRpb25hbCkgLSB3aGV0aGVyIG9yIG5vdCB0byBhbGxvdyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0gdG8gYmUgcmUtc2VsZWN0ZWQuIGRlZmF1bHQ6ZmFsc2U8L2xpPgogICAgPGxpPmFsbG93X2FsbCAtIChvcHRpb25hbCkgLSB3aGV0aGVyIG9yIG5vdCB0byBhbGxvdyBpbmFjdGl2ZSBjb250ZW50IGl0ZW1zLCBvciBjb250ZW50IGl0ZW1zIHRoYXQgZG8gbm90IGhhdmUgdXNhYmxlIGxpbmtzIHRvIGJlIHNlbGVjdGVkLiBkZWZhdWx0OmZhbHNlPC9saT4KICAgIDxsaT5kZWZhdWx0IChvcHRpb25hbCkgLSAoYWxpYXM6ICc8Yj5kZWZhdWx0X3ZhbHVlPC9iPicpIC0gaW5pdGlhbCB2YWx1ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2U8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgoKPC91bD4KICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPGgyIGlkPSJnYWxsZXJ5X3BpY2tlciIgY2xhc3M9Im1fYm90dG9tXzUiPmdhbGxlcnlfcGlja2VyPC9oMj4KICAgICAgICA8cD5UaGUgZ2FsbGVyeV9waWNrZXIgY3JlYXRlcyBhIGRyb3Bkb3duIHRvIGNob29zZSBmcm9tIGEgc2VsZWN0aW9uIG9mIGdhbGxlcmllcyBpbiB0aGUgR2FsbGVyeSBtb2R1bGUuPC9wPgoKPGZpZWxkc2V0PgogICAgCiAgICAgICAgPHNlbGVjdCBuYW1lPSJkZW1vX2dhbGxlcnlfcGlja2VyMSI+CjxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQ9InNlbGVjdGVkIj4tLS0gbm9uZSAtLS08L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZ2FsbGVyeSI+TWFpbiBHYWxsZXJ5PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImdhbGxlcnkvZ2FsbGVyeS0xIj5HYWxsZXJ5IDE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZ2FsbGVyeS9nYWxsZXJ5LTIiPkdhbGxlcnkgMjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJvbi1wYWdlLWdhbGxlcmllcyI+T24gUGFnZSBHYWxsZXJpZXM8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ib24tcGFnZS1nYWxsZXJpZXMvcGFnZS1nYWxsZXJ5LTEiPk9uIFBhZ2UgR2FsbGVyeSAxPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im9uLXBhZ2UtZ2FsbGVyaWVzL3BhZ2UtZ2FsbGVyeS0yIj5PbiBQYWdlIEdhbGxlcnkgMjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJwYWdlLXRvcC1nYWxsZXJpZXMiPlBhZ2UgVG9wIEdhbGxlcmllczwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJwYWdlLXRvcC1nYWxsZXJpZXMvaG9tZS1wYWdlLWdhbGxlcnkiPkhvbWUgUGFnZSBHYWxsZXJ5PC9vcHRpb24+Cjwvc2VsZWN0PgoKCgo8L2ZpZWxkc2V0PgoKPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9Z2FsbGVyeV9waWNrZXIgYmxvY2s9cGFnZVRvcEdhbGxlcnkgbGFiZWw9J1BhZ2UgVG9wIEdhbGxlcnknIGRpcj0ncGFnZS10b3AtZ2FsbGVyaWVzJ308L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdnYWxsZXJ5X3BpY2tlcic8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+ZGlyIChvcHRpb25hbCkgLSBvbmx5IHJldHVybnMgZ2FsbGVyaWVzIHRoYXQgYXJlIHN1Yi1nYWxsZXJpZXMgb2YgdGhpcyBnYWxsZXJ5IGRpciwgZGVmYXVsdCBpcyBhbGwgZ2FsbGVyaWVzLCBleGNsdWRpbmcgZGVmYXVsdCB0b3AgbGV2ZWwgZ2FsbGVyeTwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+CiAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgIDxoMiBpZD0ibW9kdWxlX3BpY2tlciIgY2xhc3M9Im1fYm90dG9tXzUiPm1vZHVsZV9waWNrZXI8L2gyPgogICAgICAgIDxwPlRoZSBtb2R1bGVfcGlja2VyIGZpZWxkIGNyZWF0ZXMgYSBkcm9wZG93biBvZiBhbGwgaW5zdGFsbGVkIG1vZHVsZXMgdG8gc2VsZWN0IGZyb20uPC9wPgoKPGZpZWxkc2V0PgogICAgCiAgICAgICAgPHNlbGVjdCBuYW1lPSJkZW1vX21vZHVsZV9waWNrZXIxIj4KPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD0ic2VsZWN0ZWQiPi0tLSBub25lIC0tLTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJBZG1pblNlYXJjaCI+QWRtaW4gU2VhcmNoPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IkNhcHRjaGEiPkNhcHRjaGE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iQ2FydDIiPkNhcnQyPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IkNHQmV0dGVyRm9ybXMiPkNHQmV0dGVyRm9ybXM8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iQ0dDb250ZW50VXRpbHMiPkNhbGd1eXMgQ29udGVudCBVdGlsaXRpZXM8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iQ0dFY29tbWVyY2VCYXNlIj5DYWxndXlzIEVjb21tZXJjZSBCYXNlPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IkNHRXh0ZW5zaW9ucyI+Q2FsZ3V5cyBNb2R1bGUgRXh0ZW5zaW9uczwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJDR1BheW1lbnRHYXRld2F5QmFzZSI+QmFzZSBtb2R1bGUgZm9yIHBheW1lbnQgZ2F0ZXdheXM8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iQ0dTaW1wbGVTbWFydHkiPkNHU2ltcGxlU21hcnR5PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IkNHU21hcnRJbWFnZSI+Q2FsZ3V5cyBTbWFydCBJbWFnZSBUb29sa2l0PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IkNNU0NvbnRlbnRNYW5hZ2VyIj5Db250ZW50IE1hbmFnZXI8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iQ21zSm9iTWFuYWdlciI+QmFja2dyb3VuZCBKb2IgTWFuYWdlcjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJDTVNNU0V4dCI+Q01TTVMgRXh0ZW5zaW9uczwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJDdXN0b21HUyI+V2Vic2l0ZSBTZXR0aW5nczwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJEZXNpZ25NYW5hZ2VyIj5EZXNpZ24gTWFuYWdlcjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJFQ0IyIj5FeHRlbmRlZCBDb250ZW50IEJsb2Nrczwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJGQ0IiPkZsZXhpYmxlIENvbnRlbnQgQmxvY2tzPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IkZpbGVNYW5hZ2VyIj5GaWxlIE1hbmFnZXI8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iRmlsZVBpY2tlciI+RmlsZSBQaWNrZXI8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iRm9ybUJ1aWxkZXIiPkZvcm0gQnVpbGRlcjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJGcm9udEVuZFVzZXJzIj5Gcm9udGVuZCBVc2VyIE1hbmFnZW1lbnQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iR2FsbGVyeSI+R2FsbGVyeTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJJbXBvcnRFeHBvcnQiPkltcG9ydCBFeHBvcnQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iSk1GaWxlUGlja2VyIj5KTUZpbGVQaWNrZXI8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iSlF1ZXJ5VG9vbHMiPkpRdWVyeSBUb29sYm94PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IkxJU0UiPkxJU0U8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iTElTRU5ld3MiPkxJU0UgTmV3czwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJMSVNFUHJvamVjdHMiPlByb2plY3RzPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Ik1pY3JvVGlueSI+TWljcm9UaW55IFdZU0lXWUcgZWRpdG9yPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Ik1vZHVsZU1hbmFnZXIiPk1vZHVsZSBNYW5hZ2VyPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Ik5hdmlnYXRvciI+Q01TTVMgTmF2aWdhdGlvbiBCdWlsZGVyPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Ik5ld3MiPk5ld3M8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iT3JkZXJzIj5PcmRlciBNYW5hZ2VyPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IlBheXBhbEdhdGV3YXkiPlBheXBhbCBHYXRld2F5PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IlByb2R1Y3RzIj5Qcm9kdWN0IE1hbmFnZXI8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iUmVjeWNsZUJpbiI+UmVjeWNsZSBCaW48L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iU2VhcmNoIj5TZWFyY2g8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iU2VsZlJlZ2lzdHJhdGlvbiI+U2VsZiBSZWdpc3RyYXRpb24gTW9kdWxlPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IlNFT0Jvb3N0Ij5TRU9Cb29zdDwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJTa2VsZXRvbjIiPlNrZWxldG9uMjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJTbWFydEZvcm1zIj5TbWFydEZvcm1zPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IlNtYXJ0SW1hZ2UiPkNNU01TIFNtYXJ0IEltYWdlIFRvb2xraXQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iVGlueU1DRSI+VGlueU1DRSBXWVNJV1lHIGVkaXRvcjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJVc2VyR3VpZGUiPlVzZXIgR3VpZGU8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iVXNlckd1aWRlMiI+VXNlciBHdWlkZSAyPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IlV0aWxpdGllcyI+VXRpbGl0aWVzPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IldpZGdldHMiPldpZGdldHM8L29wdGlvbj4KPC9zZWxlY3Q+CgoKCjwvZmllbGRzZXQ+Cgo8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1tb2R1bGUgYmxvY2s9dGVzdDEyIGxhYmVsPScxMjogbW9kdWxlX3BpY2tlcicgZGVmYXVsdD1Gb3JtQnVpbGRlcn08L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdtb2R1bGVfcGlja2VyJywgYWxpYXM6JzxiPm1vZHVsZTwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmRlZmF1bHQgKG9wdGlvbmFsKSAtIChhbGlhczogJzxiPmRlZmF1bHRfdmFsdWU8L2I+JykgLSBpbml0aWFsIHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZTwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+CiAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgIDxoMiBpZD0iaGlkZGVuIiBjbGFzcz0ibV9ib3R0b21fNSI+aGlkZGVuPC9oMj4KICAgICAgICA8cD5UaGUgaGlkZGVuIGZpZWxkIGNyZWF0ZXMgYSBzaW1wbGUgaGlkZGVuIGlucHV0LCBmb3Igc3RvcmluZyBhIHNpbmdsZSBzdHJpbmcuPC9wPgoKPGZpZWxkc2V0PgogICAgPGxlZ2VuZD5ub3RoaW5nIHRvIHNlZSBoZXJlITwvbGVnZW5kPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZW1vX2hpZGRlbjEiIHZhbHVlPSIiPgo8L2ZpZWxkc2V0PgoKPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9aGlkZGVuIGJsb2NrPXRlc3QgbGFiZWw9J1Rlc3QnIGRlZmF1bHQ9J2ZpbGwgaXQnfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ2hpZGRlbic8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+bGFiZWwgKG9wdGlvbmFsKSAtIFRpcDogSWYgeW91IGFkZCBsYWJlbD0nJm5ic3A7JyB0aGUgbGFiZWwgd2lsbCBiZSBoaWRkZW48L2xpPgogICAgPGxpPnZhbHVlIChvcHRpb25hbCkgLSBzZXRzIHRoZSB2YWx1ZTwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPgogICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICA8aDIgaWQ9Imdyb3VwIiBjbGFzcz0ibV9ib3R0b21fNSI+Z3JvdXA8L2gyPgogICAgICAgIDxwPlRoZSBncm91cCBmaWVsZCBjcmVhdGVzIGEgZ3JvdXAgb2Ygb25lIG9yIG1vcmUgc3ViIGZpZWxkcy4gQW4gdW5saW1pdGVkIG51bWJlciBvZiBncm91cHMgY2FuIGJlIGFkZGVkIGJ5IHRoZSBlZGl0b3JzLCBzb3J0ZWQgb3IgZGVsZXRlZC4gQ2FuIGJlIGRpc3BsYXllZCBpbiB0YWJsZSBvciBibG9jayBsYXlvdXQuPC9wPgoKPGZpZWxkc2V0PgogICAgCgogICAgPGRpdiBjbGFzcz0idGFibGUtcmVzcG9uc2l2ZSI+CiAgICAgICAgPHRhYmxlIGlkPSJkZW1vX2dyb3VwMS1yZXBlYXRlciIgY2xhc3M9ImVjYl9yZXBlYXRlciBzb3J0YWJsZSB0YWJsZS1sYXlvdXQiIGRhdGEtYmxvY2stbmFtZT0iZGVtb19ncm91cDEiIGRhdGEtaGlnaGVzdC1yb3c9IjEiICBkYXRhLXJlcGVhdGVyLWFkZD0iI2RlbW9fZ3JvdXAxLXJlcGVhdGVyLWFkZCI+CiAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0icmVwZWF0ZXItd3JhcHBlci1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0ibGVmdC1wYW5lbCI+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJzdWItZmllbGQtaGVhZGluZyBzdWItZmllbGQtaGVhZGluZy10ZXh0aW5wdXQgY29sMSIgZGF0YS1oZWFkaW5nLWZvcj0iLmNvbDEiPgogICAgICAgICAgICAgICAgICAgICAgICBIZWlnaHQKICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InN1Yi1maWVsZC1oZWFkaW5nIHN1Yi1maWVsZC1oZWFkaW5nLWRyb3Bkb3duIGNvbDIiIGRhdGEtaGVhZGluZy1mb3I9Ii5jb2wyIj4KICAgICAgICAgICAgICAgICAgICAgICAgRnJ1aXQKICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InN1Yi1maWVsZC1oZWFkaW5nIHN1Yi1maWVsZC1oZWFkaW5nLWNoZWNrYm94IGNvbDMiIGRhdGEtaGVhZGluZy1mb3I9Ii5jb2wzIj4KICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2sgdGhpcyBvdXQKICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InN1Yi1maWVsZC1oZWFkaW5nIHN1Yi1maWVsZC1oZWFkaW5nLXJhZGlvIGNvbDQiIGRhdGEtaGVhZGluZy1mb3I9Ii5jb2w0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgQSByYWRpbwogICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0icmlnaHQtcGFuZWwiPjwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgoKICAgICAgICAgICAgPHRib2R5IGNsYXNzPSIiPgogICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJyZXBlYXRlci13cmFwcGVyLXRlbXBsYXRlIHNvcnRhYmxlLWl0ZW0iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImxlZnQtcGFuZWwgaGFuZGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVjYjItaWNvbi1ncmlwLWRvdHMtdmVydGljYWwtc29saWQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InN1Yi1maWVsZCBzdWItZmllbGQtdGV4dGlucHV0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iIiBuYW1lPSIiIGNsYXNzPSIgcmVwZWF0ZXItZmllbGQiIHZhbHVlPSIiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjI1NSIgZGF0YS1yZXBlYXRlcj0iI2hlaWdodC1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJoZWlnaHQiIC8+CgogICAgCgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ic3ViLWZpZWxkIHN1Yi1maWVsZC1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgCiAgICAgICAgPHNlbGVjdCBpZD0iIiBjbGFzcz0iY21zX2Ryb3Bkb3duIHJlcGVhdGVyLWZpZWxkIiBuYW1lPSIiIGRhdGEtcmVwZWF0ZXI9IiNkZW1vX2dyb3VwMS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJmcnVpdCI+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD4tLS0gc2VsZWN0IG9uZSAtLS08L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBcHBsZSIgPkFwcGxlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iT3JhbmdlIiA+T3JhbmdlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS2l3aWZydWl0IiA+S2l3aWZydWl0PC9vcHRpb24+CiAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgIAoKCiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJzdWItZmllbGQgc3ViLWZpZWxkLWNoZWNrYm94Ij4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiIgdmFsdWU9IjAiPgogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iIiBpZD0iIiB2YWx1ZT0iMSIgY2xhc3M9ImNtc19jaGVja2JveCAgcmVwZWF0ZXItZmllbGQiIGNoZWNrZWQ9ImNoZWNrZWQiIGRhdGEtcmVwZWF0ZXI9IiNjaGVja2JveDEtcmVwZWF0ZXIiIGRhdGEtZmllbGQtbmFtZT0iY2hlY2tib3gxIj4KICAgICAgICAKICAgIAoKCiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJzdWItZmllbGQgc3ViLWZpZWxkLXJhZGlvIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IiIgdmFsdWU9IkFwcGxlIiBjbGFzcz0icmVwZWF0ZXItZmllbGQiICBkYXRhLXJlcGVhdGVyPSIjdGVzdDdyYWRpby1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ0ZXN0N3JhZGlvIiA+QXBwbGU8L2xhYmVsPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwogICAgICAgICAgICAgICAgICAgIDxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IiIgdmFsdWU9Ik9yYW5nZSIgY2xhc3M9InJlcGVhdGVyLWZpZWxkIiAgZGF0YS1yZXBlYXRlcj0iI3Rlc3Q3cmFkaW8tcmVwZWF0ZXIiIGRhdGEtZmllbGQtbmFtZT0idGVzdDdyYWRpbyIgPk9yYW5nZTwvbGFiZWw+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iIiB2YWx1ZT0iS2l3aWZydWl0IiBjbGFzcz0icmVwZWF0ZXItZmllbGQiICBkYXRhLXJlcGVhdGVyPSIjdGVzdDdyYWRpby1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ0ZXN0N3JhZGlvIiA+S2l3aWZydWl0PC9sYWJlbD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKICAgICAgICAKICAgIAoKICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InJpZ2h0LXBhbmVsIGNvbnRyb2xzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZWNiMi1yZXBlYXRlci1yZW1vdmUgZWNiMi1idG4gZWNiMi1idG4tZGVmYXVsdCBlY2IyLWljb24tb25seSIgZGF0YS1yZXBlYXRlcj0iI2RlbW9fZ3JvdXAxLXJlcGVhdGVyIiB0aXRsZT0iUmVtb3ZlIGxpbmUiIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJlY2IyLWljb24tdHJhc2gtY2FuLXJlZ3VsYXIiPjwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9InJlcGVhdGVyLXdyYXBwZXIgc29ydGFibGUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJsZWZ0LXBhbmVsIGhhbmRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlY2IyLWljb24tZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ic3ViLWZpZWxkIHJvdzEgY29sMSBzdWItZmllbGQtdGV4dGlucHV0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVtb19ncm91cDFfcl8wX2hlaWdodCIgbmFtZT0iZGVtb19ncm91cDFbcl8wXVtoZWlnaHRdIiBjbGFzcz0iIHJlcGVhdGVyLWZpZWxkIiB2YWx1ZT0iIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyNTUiLz4KCiAgICAKCiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJzdWItZmllbGQgcm93MSBjb2wyIHN1Yi1maWVsZC1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgIAogICAgICAgIDxzZWxlY3QgaWQ9ImRlbW9fZ3JvdXAxX3JfMF9mcnVpdCIgY2xhc3M9ImNtc19kcm9wZG93biByZXBlYXRlci1maWVsZCIgbmFtZT0iZGVtb19ncm91cDFbcl8wXVtmcnVpdF0iIGRhdGEtcmVwZWF0ZXI9IiNkZW1vX2dyb3VwMS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJmcnVpdCI+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD4tLS0gc2VsZWN0IG9uZSAtLS08L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBcHBsZSIgPkFwcGxlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iT3JhbmdlIiA+T3JhbmdlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS2l3aWZydWl0IiA+S2l3aWZydWl0PC9vcHRpb24+CiAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgIAoKCiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJzdWItZmllbGQgcm93MSBjb2wzIHN1Yi1maWVsZC1jaGVja2JveCI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAKICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZW1vX2dyb3VwMVtyXzBdW2NoZWNrYm94MV0iIHZhbHVlPSIwIj4KICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRlbW9fZ3JvdXAxW3JfMF1bY2hlY2tib3gxXSIgaWQ9ImRlbW9fZ3JvdXAxX3JfMF9jaGVja2JveDEiIHZhbHVlPSIxIiBjbGFzcz0iY21zX2NoZWNrYm94IHJlcGVhdGVyLWZpZWxkICIgY2hlY2tlZD0iY2hlY2tlZCI+CiAgICAgICAgCiAgICAKCgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ic3ViLWZpZWxkIHJvdzEgY29sNCBzdWItZmllbGQtcmFkaW8iPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZGVtb19ncm91cDFbcl8wXVt0ZXN0N3JhZGlvXSIgdmFsdWU9IkFwcGxlIiBpZD0iZGVtb19ncm91cDFfcl8wX3Rlc3Q3cmFkaW8iIC8+QXBwbGU8L2xhYmVsPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJkZW1vX2dyb3VwMVtyXzBdW3Rlc3Q3cmFkaW9dIiB2YWx1ZT0iT3JhbmdlIiBpZD0iZGVtb19ncm91cDFfcl8wX3Rlc3Q3cmFkaW8iIC8+T3JhbmdlPC9sYWJlbD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZGVtb19ncm91cDFbcl8wXVt0ZXN0N3JhZGlvXSIgdmFsdWU9Iktpd2lmcnVpdCIgaWQ9ImRlbW9fZ3JvdXAxX3JfMF90ZXN0N3JhZGlvIiAvPktpd2lmcnVpdDwvbGFiZWw+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IAoKICAgIAoKICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyaWdodC1wYW5lbCBjb250cm9scyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImVjYjItcmVwZWF0ZXItcmVtb3ZlIGVjYjItYnRuIGVjYjItYnRuLWRlZmF1bHQgZWNiMi1pY29uLW9ubHkiIGRhdGEtcmVwZWF0ZXI9IiNkZW1vX2dyb3VwMS1yZXBlYXRlciIgdGl0bGU9IlJlbW92ZSBsaW5lIiByb2xlPSJidXR0b24iIGFyaWEtZGlzYWJsZWQ9ImZhbHNlIj48c3BhbiBjbGFzcz0iZWNiMi1pY29uLXRyYXNoLWNhbi1yZWd1bGFyIj48L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgPC90YWJsZT4gICAgICAKICAgIDwvZGl2PgoKCiAgICA8ZGl2IGNsYXNzPSJlY2JfcmVwZWF0ZXJfZm9vdGVyIj4KICAgICAgICA8YnV0dG9uIGlkPSJkZW1vX2dyb3VwMS1yZXBlYXRlci1hZGQiIGNsYXNzPSJlY2IyLXJlcGVhdGVyLWFkZCBlY2IyLWJ0biBlY2IyLWJ0bi1kZWZhdWx0IiBkYXRhLXJlcGVhdGVyPSIjZGVtb19ncm91cDEtcmVwZWF0ZXIiIHRpdGxlPSJBZGQgbGluZSIgcm9sZT0iYnV0dG9uIiBhcmlhLWRpc2FibGVkPSJmYWxzZSI+PHNwYW4gY2xhc3M9ImVjYjItaWNvbi1wbHVzIj48L3NwYW4+Jm5ic3A7Jm5ic3A7QWRkIGl0ZW08L2J1dHRvbj4KICAgIDwvZGl2PgoKCjwvZmllbGRzZXQ+CjxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPWdyb3VwIGJsb2NrPXRlc3QyMCBhc3NpZ249dGVzdDIwCnN1YjFfZmllbGQ9dGV4dGlucHV0IHN1YjFfbmFtZT1oZWlnaHQgc3ViMV9sYWJlbD0nSGVpZ2h0JyBzdWIxX3NpemU9NSAKc3ViMl9maWVsZD1zZWxlY3Qgc3ViMl9uYW1lPWZydWl0IHN1YjJfbGFiZWw9J0ZydWl0JyBzdWIyX3ZhbHVlcz0nQXBwbGUsT3JhbmdlLEtpd2lmcnVpdCcgc3ViMl9maXJzdF92YWx1ZT0nLS0tIHNlbGVjdCBvbmUgLS0tJyAKc3ViM19maWVsZD1jaGVja2JveCBzdWIzX25hbWU9Y2hlY2tib3gxIHN1YjNfbGFiZWw9J0EgY2hlY2tib3gnIHN1YjNfZGVmYXVsdD0xCnN1YjRfZmllbGQ9cmFkaW8gc3ViNF9uYW1lPXRlc3Q3cmFkaW8gc3ViNF9sYWJlbD0ncmFkaW8gdGVzdCcgc3ViNF92YWx1ZXM9J0FwcGxlLE9yYW5nZSxLaXdpZnJ1aXQnIHN1YjRfaW5saW5lPTF9PC9wcmU+CgoKCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdncm91cCc8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+bGF5b3V0IChvcHRpb25hbCkgLSBlaXRoZXIgJ3RhYmxlJyAoZGVmYXVsdCksIG9yICdibG9jaycuPC9saT4KICAgIDxsaT5yZW1vdmVfZW1wdHkgKG9wdGlvbmFsKSAtIHdpbGwgcmVtb3ZlIGFueSBncm91cHMgd2hlcmUgYWxsIHN1Yl9maWVsZHMgYXJlICdlbXB0eScgLSBkZWZhdWx0IGZhbHNlPC9saT4KICAgIDxsaT5tYXhfYmxvY2tzIChvcHRpb25hbCkgLSB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwZWF0ZXIgZmllbGRzIHRoYXQgY2FuIGJlIGNyZWF0ZWQ8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgogICAgPGxpPmFzc2lnbiAocmVxdWlyZWQpIC0gdG8gcGFzcyB0aGUgc3ViIGZpZWxkIGRhdGEgdG8gYSBzbWFydHkgdmFyaWFibGU8L2xpPgo8L3VsPgo8cD5TdWIgZmllbGQgcGFyYW1ldGVyczo8L3A+CjxwPkVhY2ggc3ViIGZpZWxkIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgJ3N1YlhfeXl5eXknIHBhcmFtZXRlcnMgd2hlcmUgWCBpcyBhIG51bWJlciBhbmQgeXl5eXkgaXMgdGhlIHBhcmFtZXRlci4gZS5nLiAnc3ViMV9uYW1lPXRleHRpbnB1dCcuIEVhY2ggc3ViIGZpZWxkcyBoYXMgcmVxdWlyZWQgYW5kIG9wdGlvbmFsIHBhcmFtZXRlcnM8L3A+Cjx1bD4KICAgIDxsaT5zdWJYX2ZpZWxkIChyZXF1aXJlZCkgLSBtdXN0IGJlIG9uZSBvZiB0aGUgc3VwcG9ydGVkIHN1YiBmaWVsZCB0eXBlczo8YnI+CiAgICAgICAgdGV4dGlucHV0LCB0ZXh0YXJlYSwgZHJvcGRvd24sIGNoZWNrYm94LCByYWRpbywgY29sb3JfcGlja2VyLCBkYXRlX3RpbWVfcGlja2VyLCBmaWxlX3NlbGVjdG9yLCBmaWxlX3BpY2tlciwgcGFnZV9waWNrZXIsIGdhbGxlcnlfcGlja2VyLCBtb2R1bGVfcGlja2VyLCAgICAgPC9saT4KICAgIDxsaT5zdWJYX25hbWUgKHJlcXVpcmVkKSAtIHVzZWQgcmVmZXJlbmNlIHRoZSBzdWIgZmllbGQgLSBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgZm9sbG93ZWQgYnkgYW55IG51bWJlciBvZiBsZXR0ZXJzLCBudW1iZXJzIG9yIHVuZGVyc2NvcmVzICdfJy48L2xpPgogICAgPGxpPnN1YlhfPGk+cGFyYW1ldGVyPC9pPiAob3B0aW9uYWwpIC0gd2hlcmUgJzxpPnBhcmFtZXRlcjwvaT4nIGlzIGFueSBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IHdvcmsgd2l0aCB0aGF0IGZpZWxkIHR5cGUuIGUuZy4gZm9yIHRleHRpbnB1dCBzdWIgZmllbGQgdGhlIGZvbGxvd2luZyBjYW4gYmUgdXNlZDo8YnI+CiAgICAgICAgPHByZT5zdWIxX2ZpZWxkPXRleHRpbnB1dCBzdWIxX25hbWU9dGV4dDEgc3ViMV9zaXplPTIwIHN1YjFfbWF4X2xlbmd0aD01MDwvcHJlPgogICAgPC9saT4KCjwvdWw+Cgo8cD5PdXRwdXQgZm9ybWF0OjwvcD4KPHByZT4Ke2lmICFlbXB0eSgkdGVzdDIwLT5zdWJfZmllbGRzKX17KiB0ZXN0IGlmIGFueSBkYXRhIGV4aXN0cyAqfQogICAge2ZvcmVhY2ggJHRlc3QyMC0+c3ViX2ZpZWxkcyBhcyAkc3ViX2ZpZWxkfQogICAgICAgIHtmb3JlYWNoICRzdWJfZmllbGQgYXMgJG5hbWUgPT4gJHZhbHVlfQogICAgICAgICAgICB7JG5hbWV9OiB7JHZhbHVlfQogICAgICAgIHsvZm9yZWFjaH0KICAgICAgICB7KiBvciBkaXJlY3RseSBhY2Nlc3MgZWFjaCBzdWJfZmllbGQgKn0KICAgICAgICBIZWlnaHQgaXM6eyRzdWJfZmllbGQtPmhlaWdodH0KICAgICAgICBGcnVpdCBpczp7JHN1Yl9maWVsZC0+ZnJ1aXR9CiAgICB7L2ZvcmVhY2h9CnsvaWZ9CjwvcHJlPjxicj4KCjxwPk5vdGVzICYgdGlwczo8L3A+CjxvbD4KICAgIDxsaT5jaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBzdWJYXyBwYXJhbWV0ZXJzIHRvIGNoYW5nZSB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcyBpbiB0aGUgYWRtaW4gcGFnZS48L2xpPgogICAgPGxpPnRoZSBkZWZhdWx0IFBIUCBsaW1pdCBmb3IgaW5wdXRzIG9uIG9uZSBwYWdlIGlzIDEwMDAuIFRoaXMgaXMgc2V0IGJ5IG1heF9pbnB1dF92YXJzIGluIHBocC5pbmkuIElmIHlvdSBtYXkgbmVlZCBtb3JlIHRoYW4gdGhpcyBvbiBhIHNpbmdsZSBwYWdlIHlvdSBjYW4gaW5jcmVhc2UgbWF4X2lucHV0X3ZhcnMuIEVhY2ggc3ViIGZpZWxkIGluIGVhY2ggZ3JvdXAgcm93IGlzIDEgaW5wdXQsIHBsdXMgYWxsIG90aGVyIGZpZWxkcyBvbiB0aGUgcGFnZS48L2xpPgogICAgPGxpPnN1YiBmaWVsZCBwYXJhbWV0ZXJzIGxpa2UgJ3JlcGVhdGVyJywgJ21heC1ibG9ja3MnIGFuZCAnYXNzaWduJyBhcmUgaWdub3JlZC48L2xpPgogICAgPGxpPmlmIG9ubHkgb25lIGdyb3VwIGlzIGFkZGVkIGFuZCBhbGwgaXQncyB2YWx1ZXMgYXJlIGVtcHR5IHRoZSAtPnN1Yl9maWVsZHMgb2JqZWN0IHdpbGwgYmUgZW1wdHk8L2xpPgo8L29sPgoKICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJib3JkZXItYm90dG9tIG1fdG9wXzI1IHBfYm90dG9tXzUiPkFkbWluIG9ubHkgZmllbGRzPC9oMj4KICAgICAgICA8cD5UaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgb25seSB1c2VkIHRvIGZvcm1hdCBhbmQgYWRkIGNvbnRlbnQgdG8gdGhlIGFkbWluIHBhZ2VzLiBUaGV5IGRvIG5vdCBwcm92aWRlIGFueSB1c2VmdWwgY29udGVudCBmb3IgdGhlIGZyb250ZW5kIHdlYnNpdGUgcGFnZXMuPC9wPgogICAgICAgIDxicj4KICAgICAgICAgICAgICAgIDxoMiBpZD0iYWRtaW5fZmllbGRzZXRfc3RhcnQiIGNsYXNzPSJtX2JvdHRvbV81Ij5hZG1pbl9maWVsZHNldF9zdGFydDwvaDI+CiAgICAgICAgPHA+Q3JlYXRlcyB0aGUgc3RhcnQgb2YgYSBmaWVsZHNldCBmb3IgZ3JvdXBpbmcgcmVsYXZhbnQgYWRtaW4gZmllbGRzIHRvZ2V0aGVyLiBOb3RlOiBhIG1hdGNoaW5nICdhZG1pbl9maWVsZHNldF9lbmQnIGJsb2NrIGlzIHJlcXVpcmVkIGZvciBlYWNoICdhZG1pbl9maWVsZHNldF9zdGFydCcuPC9wPgoKCiAgICAgICAgICAgIDxmaWVsZHNldCBuYW1lPSJkZW1vX2FkbWluX2ZpZWxkc2V0X3N0YXJ0MSI+CiAgICAgICAgICAgICAgICAgICAgPGxlZ2VuZD5BIHNhbXBsZSBmaWVsZHNldCB3aXRoIGxlZ2VuZDwvbGVnZW5kPgogICAgICAgIAogICAgc29tZSBhZG1pbiBmaWVsZHMgY2FuIGdvIGluIGhlcmUgOikKICAgIDwvZmllbGRzZXQ+Cgo8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1hZG1pbl9maWVsZHNldF9zdGFydCBibG9jaz10ZXN0IGxhYmVsPScxNTogYWRtaW5fZmllbGRzZXRfc3RhcnQnfTwvcHJlPgoKPHA+VElQOiBzZXQgbGFiZWw9JyZuYnNwOycgdG8gbm90IHNob3cgdGhlIGZpZWxkIGxhYmVsLjwvcD4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdhZG1pbl9maWVsZHNldF9zdGFydCcsIGFsaWFzOiAnPGI+ZmllbGRzZXRfc3RhcnQ8L2I+JzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5sZWdlbmQgKG9wdGlvbmFsKSAtIHRleHQgdG8gc2hvdyBhcyBmaWVsZHNldCBsZWdlbmQgLSBkZWZhdWx0OiAnJzwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CjwvdWw+CiAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgIDxoMiBpZD0iYWRtaW5fZmllbGRzZXRfZW5kIiBjbGFzcz0ibV9ib3R0b21fNSI+YWRtaW5fZmllbGRzZXRfZW5kPC9oMj4KICAgICAgICA8cD5TaW1wbHkgdGhlIGFkbWluX2ZpZWxkc2V0X2VuZCB0byBjbG9zZSBhbiBhZG1pbl9maWVsZHNldF9zdGFydC4gU2VlIGFib3ZlIGZvciBkZW1vLjwvcD4KCjxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPWFkbWluX2ZpZWxkc2V0X2VuZCBibG9jaz10ZXN0MTYgbGFiZWw9JyZhbXA7bmJzcDsnfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ2FkbWluX2ZpZWxkc2V0X2VuZCcsIGFsaWFzOiAnPGI+ZmllbGRzZXRfZW5kPC9iPic8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KPC91bD4KCjxwPlRJUDogc2V0IGxhYmVsPScmYW1wO25ic3A7JyB0byBub3Qgc2hvdyB0aGUgZmllbGQgbGFiZWwuPC9wPgogICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICA8aDIgaWQ9ImFkbWluX2hyIiBjbGFzcz0ibV9ib3R0b21fNSI+YWRtaW5faHI8L2gyPgogICAgICAgIDxwPkRpc3BsYXlzIGFuICdocicgb24gdGhlIGFkbWluIHBhZ2UuPC9wPgoKPGZpZWxkc2V0PgogICAgICAgICAgICA8aHIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IGJvcmRlcjowIG5vbmU7IGJhY2tncm91bmQ6I2NjYzsiIC8+Cgo8L2ZpZWxkc2V0PgoKPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9YWRtaW5faHIgYmxvY2s9dGVzdDE3IGRlc2NyaXB0aW9uPSdDYW4gYWxzbyBhZGQgYSBkZXNjcmlwdGlvbiBpbiBoZXJlIDopJ308L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdhZG1pbl9ocicsIGFsaWFzOiAnPGI+aHI8L2I+JzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4KCjxwPlRJUDogc2V0IGxhYmVsPScmYW1wO25ic3A7JyB0byBub3Qgc2hvdyB0aGUgZmllbGQgbGFiZWwuPC9wPgogICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICA8aDIgaWQ9ImFkbWluX2ltYWdlIiBjbGFzcz0ibV9ib3R0b21fNSI+YWRtaW5faW1hZ2U8L2gyPgogICAgICAgIDxwPkRpc3BsYXlzIGFuIGltYWdlIG9uIGFuIGFkbWluIHBhZ2Ugb25seS4gVXNlZnVsbHkgdG8gcHJvdmlkZSBleHRyYSBndWlkYW5jZSB0byBlZGl0b3JzLjwvcD4KCjxmaWVsZHNldD4KICAgICAgICAgICAgVGhpcyBpcyBhbiBhZG1pbiBvbmx5IGltYWdlPGJyPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL2xvY2FsaG9zdC9tb2R1bGUtZGV2L21vZHVsZXMvRUNCMi9saWIvZmllbGRkZWZzL2FkbWluX2ltYWdlL3NhbXBsZV9hZG1pbl9vbmx5X2ltYWdlLnBuZyIgYWx0PSJkZW1vX2FkbWluX2ltYWdlMSIgc3R5bGU9Im1heC13aWR0aDoxMDAlIj4KPC9maWVsZHNldD4KCjxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPWFkbWluX2ltYWdlIGltYWdlPSdzYW1wbGVfYWRtaW5fb25seV9pbWFnZS5wbmcnIGJsb2NrPXRlc3QxOSBsYWJlbD0iMTk6IGFkbWluX2ltYWdlIiBkZXNjcmlwdGlvbj0iVGhpcyBpcyBhbiBhZG1pbiBvbmx5IGltYWdlIn08L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdhZG1pbl9pbWFnZScsIGFsaWFzOiAnPGI+aW1hZ2U8L2I+JzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5pbWFnZSAocmVxdWlyZWQpIC0gcGF0aCBhbmQgZmlsZW5hbWUgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5PC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4KICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPGgyIGlkPSJhZG1pbl9saW5rIiBjbGFzcz0ibV9ib3R0b21fNSI+YWRtaW5fbGluazwvaDI+CiAgICAgICAgPHA+VGhlIGFkbWluX2xpbmsgZmllbGQgY3JlYXRlcyBhIGxpbmsgb24gdGhlIGFkbWluIHBhZ2UgdG8gYW55IHNwZWNpZmllZCB1cmwuPC9wPgoKPGZpZWxkc2V0PgogICAgICAgICAgICA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5iaW5nLmNvbSI+YmluZyBzZWFyY2g8L2E+CjwvZmllbGRzZXQ+Cgo8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1hZG1pbl9saW5rIGJsb2NrPXRlc3QxNyB0YXJnZXQ9J19ibGFuaycgbGluaz0naHR0cDovL3d3dy5iaW5nLmNvbScgdGV4dD0nYmluZyBzZWFyY2gnIGxhYmVsPScxNzogYWRtaW5fbGluaycgZGVzY3JpcHRpb249J1Rlc3QgZGVzY3JpcHRpb24gKG9wdGlvbmFsKSBjYW4gYmUgc2hvd24gaGVyZSd9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnYWRtaW5fbGluaycsIGFsaWFzOiAnPGI+bGluazwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmxpbmsgKHJlcXVpcmVkKSAtIGluaXRpYWwgdmFsdWUgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlPC9saT4KICAgIDxsaT50ZXh0IChvcHRpb25hbCkgLSB0aGUgZGlzcGxheWVkIHRleHQ8L2xpPgogICAgPGxpPnRhcmdldCAob3B0aW9uYWwpIC0gZS5nLiAnX2JsYW5rJyAtIGRlZmF1bHQ6ICdfc2VsZic8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPgogICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICA8aDIgaWQ9ImFkbWluX21vZHVsZV9saW5rIiBjbGFzcz0ibV9ib3R0b21fNSI+YWRtaW5fbW9kdWxlX2xpbms8L2gyPgogICAgICAgIDxwPlRoZSBhZG1pbl9tb2R1bGVfbGluayBmaWVsZCBjcmVhdGVzIGEgbGluayBvbiB0aGUgYWRtaW4gcGFnZSB0byB0aGUgc3BlY2lmaWVkIG1vZHVsZS48L3A+Cgo8ZmllbGRzZXQ+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vbG9jYWxob3N0L21vZHVsZS1kZXYvYWRtaW4vbW9kdWxlaW50ZXJmYWNlLnBocD9tYWN0PUNNU0NvbnRlbnRNYW5hZ2VyLCxkZWZhdWx0YWRtaW4sMCZhbXA7X19jPWFhMzI4ZjJmNDczOWEzYmEyNzQiIHRhcmdldD0iX2JsYW5rIj5FZGl0IENvbnRlbnQgUGFnZXM8L2E+CjwvZmllbGRzZXQ+Cgo8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1hZG1pbl9tb2R1bGVfbGluayBibG9jaz10ZXN0MTggbW9kPUNNU0NvbnRlbnRNYW5hZ2VyIHRleHQ9J0VkaXQgQ29udGVudCBQYWdlcycgbGFiZWw9JzE4OiBtb2R1bGVfbGluazpDb250ZW50TWFuYWdlcicgdGFyZ2V0PSdfYmxhbmsnIGRlc2NyaXB0aW9uPSdUZXN0IGRlc2NyaXB0aW9uIChvcHRpb25hbCkgY2FuIGJlIHNob3duIGhlcmUnfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ2FkbWluX21vZHVsZV9saW5rJywgYWxpYXM6ICc8Yj5tb2R1bGVfbGluazwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPm1vZCAocmVxdWlyZWQpIC0gbmFtZSBvZiB0aGUgbW9kdWxlIHRvIGxpbmsgdG88YnI+CiAgICA8bGk+dGV4dCAob3B0aW9uYWwpIC0gdGV4dCB0byB1c2UgaW4gdGhlIGxpbms8L2xpPgogICAgPGxpPnRhcmdldCAob3B0aW9uYWwpIC0gZGVmYXVsdDogJ19zZWxmJzwvbGk+CiAgICA8bGk+ZGVmYXVsdCAob3B0aW9uYWwpIC0gKGFsaWFzOiAnPGI+ZGVmYXVsdF92YWx1ZTwvYj4nKSAtIGluaXRpYWwgdmFsdWUgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4KICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPGgyIGlkPSJhZG1pbl90ZXh0IiBjbGFzcz0ibV9ib3R0b21fNSI+YWRtaW5fdGV4dDwvaDI+CiAgICAgICAgPHA+VGhlIGFkbWluX3RleHQgZmllbGQganVzdCBhZGRzIHRleHQgaW50byB0aGUgYWRtaW4gcGFnZS48L3A+Cgo8ZmllbGRzZXQ+CiAgICAgICAgICAgIFNpbXBseSBhZGQgc29tZSB0ZXh0IGludG8gdGhlIGFkbWluIHBhZ2VzIHRvIGdpdmUgc29tZSBndWlkYW5jZSB0byB0aGUgZWRpdG9ycywgb3Igd2hhdGV2ZXIgZWxzZSB5b3Ugd2FudCByZWFsbHkgOikuCjwvZmllbGRzZXQ+Cgo8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1hZG1pbl90ZXh0IHRleHQ9J1NpbXBseSBhZGQgc29tZSB0ZXh0IGludG8gdGhlIGFkbWluIHBhZ2VzIHRvIGdpdmUgc29tZSBndWlkYW5jZSB0byB0aGUgZWRpdG9ycywgb3Igd2hhdGV2ZXIgZWxzZSB5b3Ugd2FudCByZWFsbHkgOikuJyBibG9jaz10ZXN0MTYgbGFiZWw9JzE2OiBUZXh0J308L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdhZG1pbl90ZXh0JywgYWxpYXM6ICc8Yj50ZXh0PC9iPic8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+dGV4dCAocmVxdWlyZWQpIC0gdGV4dCBpbiBhZG1pbiwgY2FuIGluY2x1ZGUgaHRtbCAoYWRkIGluZm9ybWF0aW9uIGZvciB1c2Vycyk8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPgogICAgICAgIDxicj4KICAgICAgICA8L2Rpdj4KCjwvZGl2PgoKCjxkaXYgaWQ9ImFib3V0X2MiPgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cD5FQ0IyIHByb3ZpZGVzIGFkZGl0aW9uYWwgQ29udGVudCBCbG9ja3MgZm9yIHVzZSBpbiBwYWdlIHRlbXBsYXRlcyBmb3IgQ01TIE1hZGUgU2ltcGxlIHYyKy48L3A+Cgo8cD5UaGFua3MgdG8gTWF0dCBARElHSTMgJiBTaW1vbiBAU2ltb242NiwgZm9yIHRoZSBzcG9uc29yc2hpcCBvZiB0aGlzIG1vZHVsZSB0aGF0IGhhdmUgc3VwcG9ydGVkIHRoZSBkZXZlbG9wbWVudCBvZiB0aGVzZSBuZXcgZmVhdHVyZXMuPC9wPgo8cD5UaGFua3MgdG8gVG9tIFBoYW5lIEB0b21waCwgZm9yIGhpcyBjb2RlIGltcHJvdmVtZW50cywgb3B0aW1pc2F0aW9ucywgYW5kIGhlbHAgY29udGVudCAoZXNwZWNpYWxseSBhIGdyZWF0IHNpbXBsZSBzbWFydHkgdGlwKS48L3A+CjxwPlRoZSBFQ0IyIG1vZHVsZSBpcyBhIGZvcmsgb2YgdGhlIG1vZHVsZSBFeHRlbmRlZCBDb250ZW50IEJsb2NrcyAoRUNCKSwgZm9yIENNU01TIHYxLCBkZXZlbG9wZWQgYnkgWmRlbm8gS3V6bWFueS48L3A+Cjxicj48YnI+Cgo8aDM+VXBncmFkaW5nIGZyb20gRUNCPC9oMz4KPHA+SW5zdGFsbCBFQ0IyIG1vZHVsZSBhbmQgY2hhbmdlIGFsbCAibW9kdWxlIiBwYXJhbWV0ZXJzLCBpbiBjb250ZW50X21vZHVsZSB0YWdzIHRvIGJlIG1vZHVsZT0iRUNCMiIgKHdhcyAiRUNCIikuIFRoZW4gRUNCIGNhbiBiZSB1bmluc3RhbGxlZC48L3A+PGJyPgoKPGgzPlVwZ3JhZGluZyBmcm9tIENHQ29udGVudFV0aWxzPC9oMz4KPHA+SW5zdGFsbCBFQ0IyIGFuZCBjaGFuZ2UgYWxsICJtb2R1bGUiIHBhcmFtZXRlcnMsIGluIGNvbnRlbnRfbW9kdWxlIHRhZ3MgdG8gYmUgbW9kdWxlPUVDQjIgKHdhcyAiQ0dDb250ZW50VXRpbHMiKS48L3A+CjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIG11c3Qgc3RheSB0aGUgc2FtZTwvbGk+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtIGNob29zZSB0aGUgYXBwcm9wcmlhdGUgRUNCMiBmaWVsZAogICAgPGxpPm90aGVyIHBhcmFtZXRlcnMgd2lsbCBiZSByZXF1aXJlZCBkZXBlbmRpbmcgb24gdGhlIGZpZWxkIGFuZCBwcmV2aW91cyBvcHRpb25zIHNldCBpbiBDR0NvbnRlbnRVdGlsczwvbGk+CjwvdWw+CjxwPkNoZWNrIGFsbCBhcmUgd29ya2luZyBhcyBleHBlY3RlZCwgdGhlbiBDR0NvbnRlbnRVdGlscyBjYW4gYmUgdW5pbnN0YWxsZWQuPC9wPgo8YnI+Cgo8aDM+SW1wbGVtZW50YXRpb248L2gzPgo8cD5FQ0IyIHVzZXMgdGhlIGNvcmUgY29udGVudCBibG9ja3MgdG8gc2F2ZSBhbGwgZmllbGQgdmFsdWVzLCBpbmNsdWRpbmcgbW9yZSBjb21wbGV4ICdncm91cCcgYW5kICdnYWxsZXJ5JyBmaWVsZHMgd2l0aCBtdWx0aXBsZSBzdWItZmllbGRzIGFuZCByb3dzLiBBbGwgc3VjaCBkYXRhIGlzIHN0b3JlZCBieSBjb3JlIGZ1bmN0aW9ucyBhbmQgcmV0cmlldmVkIHdpdGggbWluaW1hbCBvdmVyaGVhZC4gT25seSBhIGpzb25fZGVjb2RlIGlzIHJlcXVpcmVkIGZvciBlYWNoIGZpZWxkIGZvciBmcm9udGVuZCBhY3Rpb25zLjwvcD4KPHA+RWFjaCBFQ0IyIGZpZWxkIGlzIHN0b3JlZCBpbiB0aGUgJ19jb250ZW50X3Byb3BzJyB0YWJsZSwgdXNpbmcgdGhlICdsb25ndGV4dCcgZGF0YSB0eXBlIHRoYXQgY2FuIHN0b3JlIHVwIHRvIDRHQi48L3A+CjxwPkNvbnRlbnQgc2F2ZWQgaW4gRUNCMiBmaWVsZHMgaXMgYXV0b21hdGljYWxseSBpbmRleGVkIGJ5IHRoZSBTZWFyY2ggYW5kIEFkbWluIFNlYXJjaCBmdW5jdGlvbnMuPC9wPgo8YnI+Cgo8aDM+U3VwcG9ydDwvaDM+CjxwPkFzIHBlciB0aGUgR1BMIGxpY2VuY2UsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMgaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLgpUaGUgbW9kdWxlIGF1dGhvciBpcyBub3Qgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlLiBIb3dldmVyIHlvdSBtaWdodCBnZXQgc3VwcG9ydCB0aHJvdWdoIHRoZSBmb2xsb3dpbmc6PC9wPgo8dWw+CiAgICA8bGk+Rm9yIHN1cHBvcnQsIGZpcnN0IDxzdHJvbmc+c2VhcmNoPC9zdHJvbmc+IHRoZSA8YSBocmVmPSIvL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW08L2E+LCBmb3IgaXNzdWVzIHdpdGggdGhlIG1vZHVsZSBzaW1pbGFyIHRvIHRob3NlIHlvdSBhcmUgZmluZGluZy48L2xpPgogICAgPGxpPlRoZW4sIGlmIG5lY2Vzc2FyeSwgb3BlbiBhIDxzdHJvbmc+bmV3IGZvcnVtIHRvcGljPC9zdHJvbmc+IHRvIHJlcXVlc3QgaGVscCwgd2l0aCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQuPC9saT4KICAgIDxsaT5Bc2sgYSBxdWVzdGlvbiBvbiB0aGUgPGEgaHJlZj0iLy9jbXMtbWFkZS1zaW1wbGUuc2xhY2suY29tIiB0YXJnZXQ9Il9ibGFuayI+Q01TIE1hZGUgU2ltcGxlIFNsYWNrIGNoYW5uZWw8L2E+LCBvciBqdXN0IHNoYXJlIHlvdSB0aG91Z2h0cyBpZiB5b3UgZm91bmQgdGhlIE1vZHVsZSB1c2VmdWwuIDxhIGhyZWY9Ii8vd3d3LmNtc21hZGVzaW1wbGUub3JnL3N1cHBvcnQvZG9jdW1lbnRhdGlvbi9jaGF0IiB0YXJnZXQ9Il9ibGFuayI+Sm9pbiBDTVNNUyBvbiBTbGFjazwvYT48L2xpPgogICAgPGxpPklmIHlvdSBmaW5kIGEgYnVnIHlvdSBjYW4gPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9idWcvbGlzdC8xMzY2IiB0YXJnZXQ9Il9ibGFuayI+c3VibWl0IGEgQnVnIFJlcG9ydDwvYT4uPC9saT4KICAgIDxsaT5Gb3IgYW55IGdvb2QgaWRlYXMgeW91IGNhbiA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2ZlYXR1cmVfcmVxdWVzdC9saXN0LzEzNjYiIHRhcmdldD0iX2JsYW5rIj5zdWJtaXQgYSBGZWF0dXJlIFJlcXVlc3Q8L2E+LjwvbGk+CjwvdWw+PGJyPgoKPGgzPlNwb25zb3IgRGV2ZWxvcG1lbnQ8L2gzPgo8cD5JZiB5b3Ugd291bGQgbGlrZSBhIG5ldyBmaWVsZCBvciBmZWF0dXJlIGFkZGVkIHRvIHRoaXMgbW9kdWxlLCBwbGVhc2UgY29udGFjdCBtZS4gWW91IGNhbiBzcG9uc29yIGRldmVsb3BtZW50IGZyb20gwqM1MC48L3A+PGJyPgoKCjxoMz5Db3B5cmlnaHQgJmFtcDsgTGljZW5jZTwvaDM+CjxwPkNvcHlyaWdodCDCqSAyMDE5LCBDaHJpcyBUYXlsb3IgPCBjaHJpcyBhdCBiaW5ub3ZhdGl2ZSBkb3QgY28gZG90IHVrID4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD48YnI+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSBHTlUgUHVibGljIExpY2Vuc2UgdjMuIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiBZb3UgbWF5IG9ubHkgdXNlIHRoaXMgc29mdHdhcmUgd2hlbiB0aGVyZSBpcyBhIGNsZWFyIGFuZCBvYnZpb3VzIGluZGljYXRpb24gaW4gdGhlIGFkbWluIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBTaW1wbGUhPC9wPjxicj4KPGJyPgogICAgPC9kaXY+CjwvZGl2PgoKCgogICAgPC9kaXY+CjwvZGl2Pgo8YnI+CgoK]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBDaHJpcyBUYXlsb3IgJmx0O2NocmlzQGJpbm5vdmF0aXZlLmNvLnVrJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDIuNC40PGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PGgzPlZlcnNpb24gMi40LjQgLSAwOEphbjI1PC9oMz4KPHVsPgogICAgPGxpPmZ1cnRoZXIgYnVnIGZpeGVzIHNvIEVDQjIgZmllbGRzIHdvcmsgd2l0aCBUaW55TUNFIDggKGFzIHVzZWQgaW4gVGlueU1DRSBtb2R1bGUgdjQrKSBhbmQgb2xkZXIgdmVyc2lvbnM8L2xpPgogICAgPGxpPnR3ZWFrZWQgaGVscCBub3RlcyBmb3IgR2FsbGVyeSBmaWVsZCB0eXBlPC9saT4KPC91bD4KPGJyPgoKCjxoMz5WZXJzaW9uIDIuNC4zIC0gMDlEZWMyNTwvaDM+Cjx1bD4KICAgIDxsaT5hbGwgRUNCMiB0ZXh0IGNvbnRlbnQgaXMgbm93IHNhdmVkIGluIHRoZSBzZWFyY2ggaW5kZXguIFByZXZpb3VzbHkgZ3JvdXAgJiBnYWxsZXJ5IGZpZWxkIHRleHQgY29udGVudCB3YXMgbm90IGluZGV4ZWQuPC9saT4KICAgIDxsaT5ub3cgd29ya3Mgd2l0aCBUaW55TUNFIDgrLCBhcyB1c2VkIGluIFRpbnlNQ0UgbW9kdWxlIHY0KzwvbGk+CiAgICA8bGk+ZmlsZV9waWNrZXIgLSBidWcgZml4IGZvciB0aGUgJ3R5cGUnIHBhcmFtZXRlciAtIHBhcmFtZXRlciBpcyBub3cgY2FsbGVkICdmaWxldHlwZScuIFRoZSAndHlwZScgcGFyYW1ldGVyIGNsYXNoZWQgd2l0aCBhIGNvcmUgcGFyYW1ldGVyIGFuZCBkaWQgbm90IGZ1bmN0aW9uLjwvbGk+CiAgICA8bGk+Z3JvdXAgJiBnYWxsZXJ5IC0gbm93IHVzZSBkZWZhdWx0IHZhbHVlcyB3aGVuIGFkZGluZyBuZXcgaXRlbXMgZm9yIHRoZSBzdWJfZmllbGRzOiB0ZXh0aW5wdXQsIHRleHRhcmVhLCBkcm9wZG93biwgY2hlY2tib3ggLSBCUjEyNjcyPC9saT4KICAgIDxsaT5yZXBsYWNlIHVzZSBvZiBkZXByZWNpYXRlZCBGSUxURVJfU0FOSVRJWkVfU1RSSU5HPC9saT4KPC91bD4KPGJyPgoKCjxoMz5WZXJzaW9uIDIuNC4yIC0gMDJOb3YyMzwvaDM+Cjx1bD4KICAgIDxsaT5zb3J0YWJsZWxpc3QgLSBidWcgZml4IGZvciB3aGVuIHZhbHVlcyBiZWluZyByZXRyaWV2ZWQgZnJvbSBhbm90aGVyIG1vZHVsZSBhbmQgcmVzdWx0IGlzIGJlaW5nIGFzc2lnbmVkPC9saT4KICAgIDxsaT5pbWFnZSB0aHVtYm5haWwgLSBpbXByb3ZlIHRodW1ibmFpbCB1cmwgZ2VuZXJhdGlvbiAmIGNoYW5nZSB0byByZWxhdGl2ZSBhZG1pbiB1cmw8L2xpPgo8L3VsPgo8YnI+CgoKPGgzPlZlcnNpb24gMi40LjEgLSAzME9jdDIzPC9oMz4KPHVsPgogICAgPGxpPmRyb3Bkb3duIC0gYnVnIGZpeCBmb3Igd2hlbiB2YWx1ZXMgYmVpbmcgcmV0cmlldmVkIGZyb20gYW5vdGhlciBtb2R1bGUgYW5kIHJlc3VsdCBpcyBiZWluZyBhc3NpZ25lZDwvbGk+CjwvdWw+Cjxicj4KCgoKPGgzPlZlcnNpb24gMi40IC0gMTRTZXAyMzwvaDM+Cjx1bD4KICAgIDxsaT5maWxlX3BpY2tlciBjYW4gbm93IGJlIHVzZWQgYXMgYSBzdWIgZmllbGQgaW4gJ2dyb3VwJyBhbmQgJ2dhbGxlcnknPC9saT4KICAgIDxsaT5maWxlX3BpY2tlciAtIGltcHJvdmVkIGxheW91dCwgd2l0aCBzaW1pbGFyIHN0eWxlIHRvICdnYWxsZXJ5JyBwbHVzIHNob3dzIGEgc2ltcGxlIGZpbGUgaWNvbiBpZiBhIHRodW1ibmFpbCBjYW5ub3QgYmUgZ2VuZXJhdGVkPC9saT4KICAgIDxsaT5maWxlX3NlbGVjdG9yIC0gbm93IHVzZXMgYWN0dWFsIHRodW1ibmFpbHMgJiBidWcgZml4IGZvciB3aGVuIHVzZWQgYXMgZ2FsbGVyeSBzdWIgZmllbGQ8L2xpPgogICAgPGxpPkdhbGxlcnkgLSBkaXIgb3B0aW9uIGhlbHAgdXBkYXRlZCAtIHRvIGNvcnJlY3QgdG9wIGxldmVsIHBhdGggdG8gYmUgaW1hZ2VfdXBsb2Fkc19wYXRoIChkZWZhdWx0IGlzOiAvdXBsb2Fkcy9pbWFnZXMpPC9saT4KICAgIDxsaT5ncm91cCAtIHBhZ2VfcGlja2VyIHN1YiBmaWVsZCBidWcgZml4IC0gZGVsZXRpbmcgbGFzdCBncm91cCByb3cgbm93IHdvcmtzIGNvcnJlY3RseTwvbGk+CiAgICA8bGk+cGFnZV9waWNrZXIgLSBwYXJhbWV0ZXJzICdhbGxvd19hbGwnICYgJ2FsbG93Y3VycmVudCcgYWRkZWQgdG8gbWF0Y2ggY29yZSBmdW5jdGlvbmFsaXR5IChidWcgaW4gY29yZSB0byBiZSBmaXhlZCBmb3IgbmV4dCByZWxlYXNlKTwvbGk+CjwvdWw+Cjxicj4KCgo8aDM+VmVyc2lvbiAyLjMuMi4xIC0gMjlBdWcyMzwvaDM+Cjx1bD4KICAgIDxsaT5idWcgZml4IC0gc29tZSBmbG9hdGluZyBwb2ludCB2YWx1ZXMgbm8gbG9uZ2VyIGlnbm9yZWQ8L2xpPgo8L3VsPgo8YnI+CgoKPGgzPlZlcnNpb24gMi4zLjIgLSAxMkF1ZzIzPC9oMz4KPHVsPgogICAgPGxpPmJ1ZyBmaXggLSBBZG1pbiBEZXNjcmlwdGlvbiBub3cgd29ya3MgLSB0aGFua3MgQHRvbXBoPC9saT4KICAgIDxsaT5hZG1pbl90ZXh0IC0gd2lsbCBub3cgYWNjZXB0IGh0bWwgdGFncyB0byBiZSBkaXNwbGF5ZWQgb24gdGhlIGFkbWluIHBhZ2U8L2xpPgogICAgPGxpPmFsbCAnZGVzY3JpcHRpb25zJyBjYW4gbm93IGluY2x1ZGUgaHRtbCB0YWdzICh3ZXJlIHByZXZpb3VzbHkgcmVtb3ZlZCk8L2xpPgo8L3VsPgo8YnI+CgoKPGgzPlZlcnNpb24gMi4zLjEgLSAxMUp1bDIzPC9oMz4KPHVsPgogICAgPGxpPkdyb3VwIC0gYnVnIGZpeCAtIGRyb3Bkb3duIG11bHRpcGxlIG9wdGlvbnMgc3RvcHBlZCBuZXcgZ3JvdXBzIGJlaW5nIGFkZGVkIGFuZCBzYXZlZCBjb3JyZWN0bHk8L2xpPgogICAgPGxpPkdyb3VwIC0gYnVnIGZpeCAtIHRlc3RpbmcgZm9yIGVtcHR5IGdyb3VwIG5vdyBjb3JyZWN0bHkgdGVzdHMgcGFnZV9waWNrZXI8L2xpPgogICAgPGxpPkdhbGxlcnkgLSBidWcgZml4IC0gYWZ0ZXIgc29ydGluZywgb25seSBzaG93IHVwbG9hZCBwcm9tcHQgaWYgbWF4X2ZpbGVzIG5vdCBleGNlZWRlZDwvbGk+CiAgICA8bGk+cmVtb3ZlZCB0ZXN0IHRlbXBsYXRlcyAmIG5vdGVzIGZyb20gd2l0aGluIG1vZHVsZSBmb2xkZXJzPC9saT4KPC91bD4KPGJyPgoKCjxoMz5WZXJzaW9uIDIuMyAtIDI0SnVuMjM8L2gzPgo8dWw+CiAgICA8bGk+TkVXIGZpZWxkIHR5cGU6IGZpbGVfcGlja2VyIC0gaW1wbGVtZW50cyB0aGUgY29yZSBGaWxlUGlja2VyIGJ1dCB3aXRoIHRoZSBhZGRlZCBhZGRpdGlvbiBvZiBhIHRodW1ibmFpbDwvbGk+CiAgICA8bGk+bWlub3IgaGVscCB0d2Vha3M8L2xpPgogICAgPGxpPkJ1ZyBmaXggLSBtYWtlIG91dHB1dCB2YWx1ZXMgbW9yZSByb2J1c3QsIGluY2x1ZGluZyBoYW5kbGluZyBjaGFuZ2Ugb2YgZmllbGQgdHlwZSBhbmQgb3B0aW9ucywgZS5nLiBpbnB1dF9yZXBlYXRlciB0byBpbnB1dC48L2xpPgogICAgPGxpPkJ1ZyBmaXggLSAnZHJvcGRvd24nIGNvbXBhY3Qgb3B0aW9uIC0gdXBkYXRlIHNlbGVjdGlvbiBvbiBjaGFuZ2UgKyBtaW5vciBsYXlvdXQgdHdlYWs8L2xpPgogICAgPGxpPkJ1ZyBmaXggLSAnZ3JvdXAnIHN1YiBmaWVsZCBsYWJlbHMgLSB0d2Vha2VkIGNzcyB0byBzdG9wIHRoZW0gd3JhcHBpbmc8L2xpPgogICAgPGxpPkJ1ZyBmaXggLSAnZmlsZV9zZWxlY3RvcicgZmllbGQgLSBmaXggc2hvd2luZyB0aHVtYm5haWxzIGlmIG5vIGltYWdlIHNlbGVjdGVkIG9yIG5vbi1pbWFnZSBmaWxlIHR5cGU8L2xpPgogICAgPGxpPkJ1ZyBGaXggLSB3aGVuIHVwZ3JhZGluZyBmcm9tIG9sZGVyIEVDQjIgdmVyc2lvbiAoPCB2MS45OS4zKTwvbGk+CjwvdWw+Cjxicj4KCgo8aDM+VmVyc2lvbiAyLjIuMSAtIDA1QXByMjM8L2gzPgo8dWw+CiAgICA8bGk+J2dhbGxlcnknIEJ1ZyBGaXggLSB3aGVuIHVzaW5nIG11bHRpcGxlIGdhbGxlcnkgZmllbGRzIG9uIHRoZSBvbmUgcGFnZSB0aGUgdXBsb2FkIGRpYWxvZyBub3cgYWRkcyB0aGUgaW1hZ2UvcyB0byB0aGUgY29ycmVjdCBnYWxsZXJ5PC9saT4KPC91bD4KPGJyPgoKCjxoMz5WZXJzaW9uIDIuMiAtIDI3RmViMjM8L2gzPgo8dWw+CiAgICA8bGk+J2dhbGxlcnknIGZpbGVfbG9jYXRpb24gY2hhbmdlZCB0byByZWxhdGl2ZSBkaXIsIHdoZW4gYSBwYWdlIGlzIG5leHQgc2F2ZWQuIFRoaXMgbWFrZXMgc2F2ZWQgdmFsdWVzIG1vcmUgcG9ydGFibGUgd2hlbiBtb3ZpbmcgZnJvbSBvbmUgZG9tYWluIHRvIGFub3RoZXIuIFRoaXMgc2hvdWxkIG5vdCBjYXVzZSBhbiBpc3N1ZSAtIGlmIGl0IGRvZXMgcGxlYXNlIGNvbnRhY3QgbWUgYW5kIEknbGwgaGVscCBmaW5kIGEgc29sdXRpb24uPC9saT4KICAgIDxsaT50d2VhayAnZ2FsbGVyeScgdHlwZSBoZWxwIHRleHQ8L2xpPgogICAgPGxpPkJ1ZyBmaXggZm9yICdkcm9wZG93bicgbXVsdGlwbGUgZm9yIG91dHB1dCB0byBiZSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBhcyBwcmV2aW91c2x5ICh3YXMgYnJva2VuIGluIHYyLjAgd2hlbiBncm91cCB0eXBlIGFkZGVkKS48L2xpPgo8L3VsPgo8YnI+CgoKPGgzPlZlcnNpb24gMi4xIC0gMDFGZWIyMzwvaDM+Cjx1bD4KICAgIDxsaT5nYWxsZXJ5IGZpZWxkIC0gaW1hZ2VzIGNhbiBub3cgYmUgcmVvcmRlcmVkIGJ5IGRyYWdnaW5nIGFuZCBkcm9wcGluZzwvbGk+CiAgICA8bGk+Z2FsbGVyeSBmaWVsZCAtIGltYWdlcyBjYW4gbm93IGhhdmUgbXVsdGlwbGUgc3ViLWZpZWxkcywgZS5nLiB0aXRsZSwgZGVzY3JpcHRpb24sIGV0Yy48L2xpPgogICAgPGxpPkFkZGl0aW9ucyB0byBoZWxwIGZpbGVzIGJhc2VkIG9uIHVzZXIgcXVlc3Rpb25zPC9saT4KICAgIDxsaT5BZGRlZCBncm91cCBmaWxlICdyZW1vdmVfZW1wdHknIG9wdGlvbiAtIGlmIHNldCB3aWxsIHJlbW92ZSBhbnkgZ3JvdXBzIHdoZXJlIGFsbCBzdWJfZmllbGRzIGFyZSAnZW1wdHknPC9saT4KICAgIDxsaT50ZXh0YXJlYSwgcm93cyBkZWZhdWx0IGNoYW5nZWQgdG8gMyAtIHdhcyAyMDwvbGk+CiAgICA8bGk+QnVnIGZpeCBmb3IgdXBncmFkZSAtIHdpbGwgbm8gbG9uZ2VyIGZhaWwgaWYgZmllbGQgdHlwZSBub3QgdmFsaWQ8L2xpPgogICAgPGxpPkJ1ZyBmaXggZm9yIG11bHRpcGxlIGdhbGxlcmllcyBvbiBvbmUgcGFnZTwvbGk+CiAgICA8bGk+QnVnIGZpeCByZW1vdmluZyAxc3QgaW1hZ2Ugd2hlbiBtYXhfZmlsZXM9MSAtIGNhbiBub3cgYWRkIGFub3RoZXIgb25lPC9saT4KPC91bD4KPGJyPgoKCgo8aDM+VmVyc2lvbiAyLjAgLSAxMEphbjIzPC9oMz4KPHVsPgogICAgPGxpPk5FVzogZ2FsbGVyeSBmaWVsZCB0eXBlIC0gZW5hYmxlcyBtdWx0aXBsZSBpbWFnZXMgdG8gYWRkZWQgYnkgZHJhZ2dpbmcgYW5kIGRyb3BwaW5nIG9yIHVwbG9hZGluZy4gVGh1bWJuYWlscyBvZiB0aGUgaW1hZ2VzIGFyZSBkaXNwbGF5ZWQgYW5kIGNyZWF0ZWQgb24gdGhlIHNlcnZlciBhbmQgaW1hZ2VzIGNhbiBvcHRpb25hbGx5IGJlIGF1dG9tYXRpY2FsbHkgcmVzaXplZCBiZWZvcmUgdGhleSBhcmUgdXBsb2FkZWQuPC9saT4KICAgIDxsaT5ORVc6IGdyb3VwcyBmaWVsZCB0eXBlIC0gY3JlYXRlcyBhIGdyb3VwIG9mIG9uZSBvciBtb3JlIHN1YiBmaWVsZHMuIEFuIHVubGltaXRlZCBudW1iZXIgb2YgZ3JvdXBzIGNhbiBhZGRlZCBieSB0aGUgZWRpdG9ycywgc29ydGVkIG9yIGRlbGV0ZWQuIENhbiBiZSBkaXNwbGF5ZWQgaW4gdGFibGUgb3IgYmxvY2sgbGF5b3V0LjwvbGk+CiAgICA8bGk+QWRkZWQgJ2FkbWluX2dyb3Vwcycgb3B0aW9uIHRvIG1vc3QgZmllbGQgdHlwZXMuIFRvIHJlc3RyaWN0IHdoaWNoIHVzZXJzIGNhbiB2aWV3IGFuZCBlZGl0IHdoaWNoIGZpZWxkcy48L2xpPgogICAgPGxpPmJ1ZyBmaXggZm9yIHVzaW5nIGEgbW9kdWxlIGNhbGwgJ21vZCcgcGFyYW1ldGVyIC0gaWYgYW55IHBhcmFtZXRlcnMgYmVpbmcgcGFzc2VkIHRocm91Z2ggdG8gdGhlIG1vZHVsZSBjb250YWluIGEgc3BhY2UgaXQgd291bGQgcHJvYmFibHkgY2F1c2UgYW4gZXJyb3IuIEZpeGVkLjwvbGk+CiAgICA8bGk+YWRkZWQgZGF0YWJhc2UgdG8gc3RvcmUgZWNiMl9ibG9jayBkZWZpbml0aW9ucyAobm90IHlldCB1c2VkKTwvbGk+CiAgICA8bGk+YWRkZWQgcmVwZWF0ZXIgZnVuY3Rpb25hbGl0eSAtIHNvcnRhYmxlIGNvbnRlbnQgYmxvY2tzLCBvcHRpb25hbGx5IGxpbWl0ZWQgYnkgJ21heF9ibG9ja3MnPC9saT4KICAgIDxsaT5pbXByb3ZlZCBhZG1pbiBsYXlvdXQgJiBhZGRlZCBtb2R1bGUgY3VzdG9tIGljb25zPC9saT4KICAgIDxsaT5pbnB1dF9yZXBlYXRlciBpcyBub3cgYW4gYWxpYXMgb2YgdGV4dGlucHV0IChmdWxseSBjb21wYXRpYmxlKTwvbGk+CiAgICA8bGk+YnVnIGZpeCBmb3IgdXNpbmcgJ3NlbGVjdCcgYXMgYWxpYXMgb2YgdGV4dGlucHV0PC9saT4KICAgIDxsaT50ZXh0aW5wdXRzIG5vdyBjb3JyZWN0bHkgZXNjYXBlIHF1b3RlczwvbGk+CiAgICA8bGk+b3RoZXIgbWlub3IgYnVnIGZpeGVzPC9saT4KICAgIDxsaT5yZXN0cnVjdHVyZWQgZmllbGRfZGVmIG1ldGhvZHMgLSBpbXByb3ZlIGNsYXJpdHkgYW5kIGZsZXhpYmlsaXR5PC9saT4KPC91bD4KPGJyPgoKCjxoMz5WZXJzaW9uIDEuOTkuMyAtIDA2SnVsMjI8L2gzPgo8dWw+CiAgIDxsaT5hZGQgaW4gbW9kdWxlICdNYW5hZ2UnIHBlcm1pc3Npb25zIGZvciBhY2Nlc3MgdG8gbW9kdWxlIGFkbWluIHBhZ2U8L2xpPgogICA8bGk+YWRtaW5faW1hZ2UgLSBidWcgZml4PC9saT4KPC91bD4KPGJyPgoKCjxoMz5WZXJzaW9uIDEuOTkuMSAtIDA2SnVsMjI8L2gzPgo8dWw+CiAgIDxsaT5hYm91dCB0d2Vha3M8L2xpPgogICA8bGk+YWRtaW5faW1hZ2UgLSBlcnJvciBtZXNzYWdlIGFkZGVkIGlmIGltYWdlIGZpbGUgbm90IGZvdW5kIHBsdXMgYWRkIGluIHNhbXBsZSBpbWFnZSBmb3IgaGVscCBwYWdlLjwvbGk+CjwvdWw+Cjxicj4KCgo8aDM+VmVyc2lvbiAxLjk5IC0gMDVKdWwyMjwvaDM+Cjx1bD4KICAgPGxpPlNpZ25pZmljYW50bHkgcmVmYWN0b3JlZCBtb2R1bGUsIHRvIGVuYWJsZSBmdXR1cmUgZGV2ZWxvcG1lbnQgb2YgdGhlIG1vZHVsZSBhbmQgc2ltcGxpZnkgdXNlLiBJcyBmdWxseSBjb21wYXRpYmxlIHdpdGggYWxsIHByZXZpb3VzIHVzYWdlLiBQbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgeW91IG1heSBmaW5kLjwvbGk+CiAgIDxsaT5FeHBhbmRlZCBoZWxwIGNvbnRlbnQsIHdpdGggZXhhbXBsZSB0YWdzIGFuZCBkZW1vIGNvbnRlbnQgYmxvY2tzIGZvciBhbGwgZmllbGQgdHlwZXMuPC9saT4KICAgPGxpPlNvbWUgZmllbGQgdHlwZXMgaGF2ZSBiZWVuIHJlbmFtZWQsIHRvIG1ha2UgdGhlaXIgdXNlIG1vcmUgb2J2aW91cy4gQWxsIHByZXZpb3VzIGZpZWxkIHR5cGVzIGFyZSBmdWxseSBzdXBwb3J0ZWQgYXMgYW4gYWxpYXMgZm9yIHRoZSBuZXcgZmllbGQgbmFtZTwvbGk+CiAgIDxsaT4ndGV4dGlucHV0JyBmaWVsZCByZXBsYWNlcyAnaW5wdXQnLCBmaWVsZD1pbnB1dCBpcyBhIGZ1bGx5IHN1cHBvcnRlZCBhbGlhczwvbGk+CiAgIDxsaT4ndGV4dGFyZWEnIGZpZWxkIHJlcGxhY2VzICdlZGl0b3InLCB3aXRoIGEgd3lzaXd5ZyBvcHRpb24gYWRkZWQgKGRlZmF1bHQ9ZmFsc2UpLiBmaWVsZD1lZGl0b3IgaXMgYSBmdWxseSBzdXBwb3J0ZWQgYWxpYXM8L2xpPgogICA8bGk+J2Ryb3Bkb3duJyBmaWVsZCBub3cgcmVwbGFjZXMgJ2Ryb3Bkb3duX2Zyb21fbW9kdWxlJywgJ2Ryb3Bkb3duX2Zyb21fdWR0JywgJ2Ryb3Bkb3duX2Zyb21fY3VzdG9tZ3MnICYgJ2Ryb3Bkb3duX2Zyb21fZ2JjJywgcGx1cyBoYXMgYSBuZXcgYWxpYXMgJ3NlbGVjdCcuIEEgbmV3ICd0ZW1wbGF0ZScgcGFyYW1ldGVyIGVuYWJsZXMgZHJvcGRvd24gdmFsdWVzIHRvIGJlIHJldHJpZXZlZCBmcm9tIGEgc21hcnR5IHRlbXBsYXRlICgnZ2NiJyBwYXJhbWV0ZXIgaXMgYXMgYWxpYXMpLiBBIHNhbXBsZSBMSVNFIG1vZHVsZSB0ZW1wbGF0ZSBhZGRlZCBpbnRvIGhlbHA8L2xpPgogICA8bGk+J2NoZWNrYm94JyAtIGFkZGVkIGFuIGlubGluZV9sYWJlbCBvcHRpb248L2xpPgogICA8bGk+J3JhZGlvJyAtIGFkZGVkICdmbGlwX3ZhbHVlcycgb3B0aW9uIC0gc3dhcHMgdGhlIGRyb3Bkb3ducyB2YWx1ZXMgPC0+IHRleHQ8L2xpPgogICA8bGk+J2RhdGVfdGltZV9waWNrZXInIGZpZWxkIHJlcGxhY2VzICdkYXRlcGlja2VyJyBhbmQgJ3RpbWVwaWNrZXInIHdpdGggYm90aCBmdWxseSBzdXBwb3J0ZWQgYXMgYWxpYXNlczwvbGk+CiAgIDxsaT5wYXJhbWV0ZXIgJ2RlZmF1bHQnIG5vdyB1c2VkIGluc3RlYWQgb2YgJ2RlZmF1bHRfdmFsdWUnLCAoJ2RlZmF1bHRfdmFsdWUnIHBhcmFtZXRlciBpcyBhbiBhbGlhcykgLSBmb3IgYWxsIGZpZWxkcyB0aGF0IGNhbiBoYXZlIGEgZGVmYXVsdDwvbGk+CiAgIDxsaT4ncGFnZV9waWNrZXInLCByZW5hbWVkIGZyb20gdGhlIG5vdyBhbGlhczogJ3BhZ2VzJzwvbGk+CiAgIDxsaT4nbW9kdWxlX3BpY2tlcicsIHJlbmFtZWQgZnJvbSB0aGUgbm93IGFsaWFzOiAnbW9kdWxlJzwvbGk+CiAgIDxsaT4nYWRtaW5fZmllbGRzZXRfc3RhcnQnLCByZW5hbWVkIGZyb20gdGhlIG5vdyBhbGlhczogJ2ZpZWxkc2V0X3N0YXJ0JzwvbGk+CiAgIDxsaT4nYWRtaW5fZmllbGRzZXRfZW5kJywgcmVuYW1lZCBmcm9tIHRoZSBub3cgYWxpYXM6ICdmaWVsZHNldF9lbmQnPC9saT4KICAgPGxpPidhZG1pbl9ocicsIHJlbmFtZWQgZnJvbSB0aGUgbm93IGFsaWFzOiAnaHInPC9saT4KICAgPGxpPidhZG1pbl9pbWFnZScsIHJlbmFtZWQgZnJvbSB0aGUgbm93IGFsaWFzOiAnaW1hZ2UnPC9saT4KICAgPGxpPidhZG1pbl9saW5rJywgcmVuYW1lZCBmcm9tIHRoZSBub3cgYWxpYXM6ICdsaW5rJzwvbGk+CiAgIDxsaT4nYWRtaW5fbW9kdWxlX2xpbmsnLCByZW5hbWVkIGZyb20gdGhlIG5vdyBhbGlhczogJ21vZHVsZV9saW5rJzwvbGk+CiAgIDxsaT4nYWRtaW5fdGV4dCcsIHJlbmFtZWQgZnJvbSB0aGUgbm93IGFsaWFzOiAndGV4dCc8L2xpPgogICA8bGk+YWRkZWQgc2FtcGxlIExJU0UgdGVtcGxhdGUgaW50byBoZWxwPC9saT4KPC91bD4KPGJyPgoKCjxoMz5WZXJzaW9uIDEuOCAtIDIySnVuMjI8L2gzPgo8dWw+CiAgIDxsaT5kcm9wZG93biAmIHNvcnRhYmxlbGlzdCAtICdtb2QnIG9wdGlvbiBhZGRlZCAtIGNhbiBsb2FkIG9wdGlvbnMgZGlyZWN0bHkgZnJvbSBhIG1vZHVsZXMgdGVtcGxhdGU8L2xpPgogICA8bGk+ZHJvcGRvd24gJiBzb3J0YWJsZWxpc3QgLSAnZmxpcF92YWx1ZXMnIG9wdGlvbiBhZGRlZCAtIHN3YXBzIHRoZSBkcm9wZG93bnMgdmFsdWVzIDwtPiB0ZXh0LiBDYW4gc2ltcGxpZnkgdXNpbmcgZGF0YSBmcm9tIGFub3RoZXIgc291cmNlLjwvbGk+CiAgIDxsaT51bmRvY3VtZW50ZWQgJiBub24tZnVuY3Rpb25pbmcgbWV0aG9kIGdldF9kcm9wZG93bl9mcm9tX21vZHVsZSByZW1vdmVkLjwvbGk+CiAgIDxsaT5idWcgZml4IGZvciB2MS43IC0gY29sb3JfcGlja2VyIGhhZCBzdG9wcGVkIHdvcmtpbmc8L2xpPgogICA8bGk+dGltZV9waWNrZXIgJiBjb2xvdXJfcGlja2VyIGpzIG1vdmVkIGludG8gc2luZ2xlIGZpbGUgZWNiMl9hZG1pbi5qczwvbGk+CiAgIDxsaT5mb3JjZSByZWZyZXNoIG9mIGNzcyAmIGpzIGZpbGVzIGFmdGVyIG1vZHVsZSB1cGRhdGU8L2xpPgo8L3VsPgo8YnI+CgoKPGgzPlZlcnNpb24gMS43IC0gMjBKdW4yMjwvaDM+Cjx1bD4KICAgPGxpPmNvbG9yX3BpY2tlciAtIGNoYW5nZWQgdG8gdXNlIGNvbHBpY2sgZm9yIGNvbnNpc3RlbmN5IHdpdGggTElTRSAmIEN1c3RvbUdTLCBhZGRlZCBvcHRpb25zOiBjbGVhcl9jc3NfY2FjaGUgJiBub19oYXNoPC9saT4KICAgPGxpPmltYWdlIC0gYWRkZWQgZmllbGQgdHlwZSBmb3IgZGlzcGxheWluZyBhbiBpbWFnZSBvbiBhbiBhZG1pbiBwYWdlIG9ubHkuIFVzZWZ1bGx5IHRvIHByb3ZpZGUgZXh0cmEgZ3VpZGFuY2UgdG8gZWRpdG9ycy48L2xpPgo8L3VsPgo8YnI+CgoKPGgzPlZlcnNpb24gMS42LjIgLSAxOUphbjIyPC9oMz4KPHVsPgogICA8bGk+ZGF0ZXBpY2tlciAtIGFkZCBvcHRpb25zIGZvciBjaGFuZ2VfbW9udGgsIGNoYW5nZV95ZWFyLCB5ZWFyX3JhbmdlPC9saT4KICAgPGxpPmRhdGVwaWNrZXIgJiB0aW1lcGlja2VyIC0gbW92ZSBvdXB1dCBpbnRvIHNtYXJ0eSB0ZW1wbGF0ZSAnZGF0ZXBpY2tlcl90ZW1wbGF0ZS50cGwnLCBtb3ZlIGN1c3RvbSBqcyBmcm9tIGlubGluZSBpbnRvIGVjYjJfYWRtaW4uanM8L2xpPgogICA8bGk+YnVnIGZpeCBmb3IgaXNfZGF0ZXBpY2tlcl9saWJfbG9hZCAtIHNvIGl0J3Mgb25seSBsb2FkZWQgb25jZTwvbGk+CjwvdWw+Cjxicj4KCgo8aDM+VmVyc2lvbiAxLjYuMSAtIDI3SnVsMjA8L2gzPgo8dWw+CiAgIDxsaT5tb3ZlIGhlbHAgJiBjaGFuZ2Vsb2cgaW50byB0ZW1wbGF0ZXM8L2xpPgogICA8bGk+QnVnIGZpeDogZm9yICdjaGVja2JveCcgdXNpbmcgZGVmYXVsdCBvZiB0cnVlIChjaGVja2VkKSAtIHdvcmsgYXJvdW5kIGZvciBjb3JlIGJ1ZzwvbGk+CjwvdWw+Cjxicj4KCgo8aDM+VmVyc2lvbiAxLjYgLSAwM0p1bjIwPC9oMz4KPHVsPgogICA8bGk+YWxsICdkcm9wZG93bicgY29udGVudCBibG9ja3Mgbm93IGhhdmUgdGhlIG9wdGlvbiBmb3IgYSAnY29tcGFjdCcgZGlzcGxheSBvbiB0aGUgYWRtaW4gcGFnZS4gU2V0ICJjb21wYWN0PTEiIGluIHRoZSBwYXJhbWV0ZXJzIGEgc3VtbWFyeSBvZiB0aGUgc2VsZWN0ZWQgb3B0aW9ucyBpcyBkaXNwbGF5ZWQgYW5kIHRoZSBmdWxsIHNlbGVjdCBpcyBzaG93bi9oaWRkZW4gd2hlbiAnZWRpdC9oaWRlJyBpcyBjbGlja2VkPC9saT4KICAgPGxpPmZpbGVfc2VsZWN0b3IgY29udGVudCBibG9jayAtIHVwZGF0ZWQgbm93IHVzZXMgY29yZSBtZXRob2QgaW5zdGVhZCBvZiBDR0V4dGVuc2lvbnM8L2xpPgogICA8bGk+cmVtb3ZlZCBDR0V4dGVuc2lvbnMgZGVwZW5kYW5jeTwvbGk+CiAgIDxsaT5CdWcgZml4OiBkZWZhdWx0IHZhbHVlIG5vdyB3b3JrcyBmb3IgY2hlY2tib3gsIGlucHV0LCB0ZXh0YXJlYSAmIGVkaXRvciBjb250ZW50IGJsb2NrczwvbGk+CjwvdWw+Cjxicj4KCgo8aDM+VmVyc2lvbiAxLjUuMyAtIDE3SnVuMTk8L2gzPgo8dWw+CiAgIDxsaT5taW5vciBidWcgZml4IGluIGhlbHA8L2xpPgo8L3VsPgo8YnI+CgoKPGgzPlZlcnNpb24gMS41LjIgLSAxOUZlYjE5PC9oMz4KPHVsPgogICA8bGk+YnVnIGZpeCAtIGFkbWluIGpzIHVwZGF0ZWQgLSBmaXhlcyB2MS41LjEgbXVsdGlwbGUgc2VsZWN0J3MgJiBpbnB1dF9yZXBlYXRlciBub3Qgd29ya2luZyAtIHBsZWFzZSB1cGRhdGU8L2xpPgo8L3VsPgo8YnI+Cgo8aDM+VmVyc2lvbiAxLjUuMSAtIDE4RmViMTk8L2gzPgo8dWw+CiAgIDxsaT5nYWxsZXJ5X3BpY2tlciAtIGJ1ZyBmaXg8L2xpPgo8L3VsPgo8YnI+Cgo8aDM+VmVyc2lvbiAxLjUgLSAxNkZlYjE5PC9oMz4KPHVsPgogICA8bGk+aW5wdXRfcmVwZWF0ZXIgY29udGVudCBibG9jayAtIGFkZGVkIC0gdGhhbmtzIHRvIFNpbW9uIFJhZGZvcmQ8L2xpPgogICA8bGk+Z2FsbGVyeV9waWNrZXIgY29udGVudCBibG9jayAtIGFkZGVkPC9saT4KICAgPGxpPmRyb3Bkb3duX2Zyb21fY3VzdG9tZ3MgY29udGVudCBibG9jayAtIGFkZGVkPC9saT4KICAgPGxpPmFkZGVkIGVycm9yIG1lc3NhZ2UgZm9yIG1pc3Npbmcgb3IgaW5jb3JyZWN0bHkgc3BlbHQgZmllbGQgcGFyYW1hdGVyIC0gQlIjMTE1NTcgLSB0aGFua3MgTHVkZ2VyPC9saT4KICAgPGxpPnJlbW92ZWQgQWRtaW4gcGFnZSB0aGF0IG9ubHkgc2hvd2VkIGhlbHAgLSByZWR1bmRhbnQgYXMgaGVscCBlYXNpbHkgdmlzaWJsZSBmcm9tIHdpdGhpbiBNb2R1bGUgTWFuYWdlcjwvbGk+CiAgIDxsaT5yZW1vdmVkIFBlcm1pc3Npb24gJ1VzZSBFQ0IyJyAtIGFsc28gcmVkdW5kYW50PC9saT4KICAgPGxpPmNvZGUgdGlkeSB1cCAtIGNvbnNvbGlkYXRlIGpzICYgY3NzIGludG8gc2VwYXJhdGUgZXh0ZXJuYWwgZmlsZXM8L2xpPgo8L3VsPgo8YnI+Cgo8aDM+VmVyc2lvbiAxLjMuMSAtIDEySnVsMTc8L2gzPgo8dWw+CiAgIDxsaT5taW5vciBidWcgZml4PC9saT4KPC91bD4KPGJyPgoKPGgzPlZlcnNpb24gMS4zIC0gMTFKdWwxNzwvaDM+Cjx1bD4KICAgPGxpPnNvcnRhYmxlbGlzdCAtIGFkZGVkIG1heF9udW1iZXIgYW5kIHJlcXVpcmVkX251bWJlciBvcHRpb25zPC9saT4KICAgPGxpPkFkZGVkICdmaWVsZHNldF9zdGFydCcgYW5kICdmaWVsZHNldF9lbmQnIGZpZWxkczwvbGk+CjwvdWw+Cjxicj4KCjxoMz5WZXJzaW9uIDEuMi4yIC0gMDVKdWwxNzwvaDM+Cjx1bD4KICAgPGxpPnRlc3QgZm9yIGFuZCBkaXNwbGF5IHdhcm5pbmcgaW4gYWRtaW4gaWYgVURUIGRvZXMgbm90IGV4aXN0PC9saT4KPC91bD4KPGJyPgoKPGgzPlZlcnNpb24gMS4yLjEgLSAxOUFwcjE3PC9oMz4KPHVsPgogICA8bGk+YnVnIGZpeCBmb3IgY29sb3JfcGlja2VyLCBkZWZhdWx0X3ZhbHVlIC0gQlIjMTEzNTQgLSB0aGFua3MgU3R1YXJ0PC9saT4KICAgPGxpPmNvbG9yX3BpY2tlciAtIHR3ZWFrZWQgbGF5b3V0PC9saT4KICAgPGxpPnNvcnRhYmxlbGlzdCAtIG5vdyB1c2UganF1ZXJ5IHNvcnRhYmxlIGluc3RlYWQgb2YgQ0dFeHRlbnNpb25zLiBQYXJhbWV0ZXJzIHJlbW92ZWQ6ICd0ZW1wbGF0ZScuIFBhcmFtZXRlcnMgbm90IG9wZXJhdGlvbmFsOiAnbWF4X3NlbGVjdGVkJywgJ2FsbG93ZHVwbGljYXRlcycgKHBsZWFzZSBhZHZpc2UgaWYgeW91IHJlcXVpcmUgdGhlc2UpLiBQbHVzIHNvbWUgYnVnIGZpeGVzLjwvbGk+CjwvdWw+Cjxicj4KCjxoMz5WZXJzaW9uIDEuMiAtIDA3Tm92MTY8L2gzPgo8dWw+CiAgIDxsaT5BZGRlZCAnZGVzY3JpcHRpb24nIHBhcmFtZXRlciBmb3IgYWxsIGZpZWxkcyAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CiAgIDxsaT5BZGRlZCAnaGlkZGVuJyBmaWVsZCAtIENhbiBiZSB1c2VkIHRvIHNldCBhIHBhZ2UgYXR0cmlidXRlIHRoYXQgY2FuIHRoZW4gYmUgYWNjZXNzZWQgKGUuZy4gZnJvbSBhIE5hdmlnYXRvci1UZW1wbGF0ZSksIHVzaW5nIHtwYWdlX2F0dHIgcGFnZT0kbm9kZS0+YWxpYXMga2V5PSd0ZXN0aGlkZGVuJ308L2xpPgogICA8bGk+QnVnIGZpeCAtIGZvciBwaHAgbm90aWNlPC9saT4KPC91bD4KPGJyPgoKPGgzPlZlcnNpb24gMS4xIC0gMTVBcHIxNjwvaDM+Cjx1bD4KICAgIDxsaT5CdWcgZml4PC9saT4KPC91bD4KPGJyPgoKPGgzPlZlcnNpb24gMS4wIC0gMTVBcHIxNjwvaDM+Cjx1bD4KICAgIDxsaT5Jbml0aWFsIHJlbGVhc2UuIEEgZm9yayBvZiBFQ0IgbW9kdWxlIHYxLjYsIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIENNU01TIHYyKzwvbGk+CiAgICA8bGk+QWRkZWQgcmFkaW8gZmllbGQgLSB0byBwcm92aWRlIHJhZGlvIGJ1dHRvbnMgb24gYW4gYWRtaW4gcGFnZTwvbGk+CjwvdWw+Cjxicj48YnIgLz4=]]></about>
	<description><![CDATA[This module enables extra types of content block for page templates]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_ajax_get_thumb.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgppZiAoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCiRmaWxlX25hbWUgPSAkdGhpcy0+ZWNiMl9zYW5pdGl6ZV9zdHJpbmcoIGdldF9wYXJhbWV0ZXJfdmFsdWUoJF9QT1NULCdmaWxlX25hbWUnKSApOwokdG9wX2RpciA9ICR0aGlzLT5lY2IyX3Nhbml0aXplX3N0cmluZyggZ2V0X3BhcmFtZXRlcl92YWx1ZSgkX1BPU1QsJ3RvcF9kaXInKSApOwokdGh1bWJuYWlsX3dpZHRoID0gJHRoaXMtPmVjYjJfc2FuaXRpemVfc3RyaW5nKCBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRfUE9TVCwndGh1bWJuYWlsX3dpZHRoJykgKTsKJHRodW1ibmFpbF9oZWlnaHQgPSAkdGhpcy0+ZWNiMl9zYW5pdGl6ZV9zdHJpbmcoIGdldF9wYXJhbWV0ZXJfdmFsdWUoJF9QT1NULCd0aHVtYm5haWxfaGVpZ2h0JykgKTsKCmlmICggc3RydG9sb3dlcigkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSkhPSdwb3N0JyB8fCBlbXB0eSgkZmlsZV9uYW1lKSApIGV4aXQ7CgppZiAoIGVtcHR5KCR0b3BfZGlyKSApICR0b3BfZGlyID0gJyc7IAppZiAoIGVtcHR5KCR0aHVtYm5haWxfd2lkdGgpICkgJHRodW1ibmFpbF93aWR0aCA9IDA7IAppZiAoIGVtcHR5KCR0aHVtYm5haWxfaGVpZ2h0KSApICR0aHVtYm5haWxfaGVpZ2h0ID0gMDsgCgokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiRpbWdfc3JjID0gY21zX2pvaW5fcGF0aCggJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sICR0b3BfZGlyLCAkZmlsZV9uYW1lICApOwoKJHRodW1ibmFpbF91cmwgPSBlY2IyX0ZpbGVVdGlsczo6Z2V0X3RodW1ibmFpbF91cmwoJGltZ19zcmMsICR0aHVtYm5haWxfd2lkdGgsICR0aHVtYm5haWxfaGVpZ2h0KTsKCmVjaG8gJHRodW1ibmFpbF91cmw7ICAgIC8vICcnIGlmIG5vIHRodW1ibmFpbAoKCg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgppZiAoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCiMjIG5vdGhpbmcgLSBzaG91bGQgbm90IGdldCBoZXJlCgoK]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKEVDQjI6Ok1BTkFHRV9QRVJNKSApIHsKICAgICR0aGlzLT5TaG93RXJyb3JzKCAkdGhpcy0+TGFuZygnbmVlZF9wZXJtaXNzaW9uJykgKTsKICAgIHJldHVybjsKfQoKCi8vIHByb2Nlc3MgZWRpdHMgaWYgZm9ybSBzdWJtaXR0ZWQgLSBTYXZlIE9wdGlvbnMKaWYgKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgICBpZiAoICFlbXB0eSgkcGFyYW1zWydjdXN0b21Nb2R1bGVOYW1lJ10pICkgewogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjdXN0b21Nb2R1bGVOYW1lJywgJHBhcmFtc1snY3VzdG9tTW9kdWxlTmFtZSddKTsKICAgIH0KICAgIGlmICggIWVtcHR5KCRwYXJhbXNbJ2FkbWluU2VjdGlvbiddKSApIHsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5TZWN0aW9uJywgJHBhcmFtc1snYWRtaW5TZWN0aW9uJ10pOwogICAgfQogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3RodW1ibmFpbFdpZHRoJywgJHBhcmFtc1sndGh1bWJuYWlsV2lkdGgnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgndGh1bWJuYWlsSGVpZ2h0JywgJHBhcmFtc1sndGh1bWJuYWlsSGVpZ2h0J10pOwoKICAgICR0aGlzLT5TZXRNZXNzYWdlKCAkdGhpcy0+TGFuZygnb3B0aW9uc19zYXZlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoJ29wdGlvbnMnKTsKfQoKCmVjaG8gJHRoaXMtPmdldF9hZG1pbigpOwoKCg==]]></data>
	</file>
	<file>
	  <filename>/action.do_UploadFiles.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgppZiAoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCmlmICggIWVtcHR5KCRfRklMRVNbJ2ZpbGUnXSkgKSB7CgogICAgJHJlc3VsdCA9IFtdOwogICAgZm9yZWFjaCAoJF9GSUxFU1snZmlsZSddWydlcnJvciddIGFzICRrZXkgPT4gJGVycm9yKSB7CiAgICAgICAgJG5ld19maWxlbmFtZSA9IEZBTFNFOwogICAgICAgICRvcmlnaW5hbF9maWxlbmFtZSA9ICRfRklMRVNbJ2ZpbGUnXVsnbmFtZSddWyRrZXldOwogICAgICAgIGlmICggJGVycm9yPT1VUExPQURfRVJSX09LICkgewogICAgICAgICAgICAkdG1wX2ZpbGVuYW1lID0gJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddWyRrZXldOwogICAgICAgICAgICAkc3VjY2VzcyA9IGVjYjJfRmlsZVV0aWxzOjpFQ0IyTW92ZVVwbG9hZGVkRmlsZSggJG9yaWdpbmFsX2ZpbGVuYW1lLCAkdG1wX2ZpbGVuYW1lICk7CiAgICAgICAgfQovLyAgJHN1Y2Nlc3MgPSBGQUxTRTsgICAgIC8vIG9ubHkgZm9yIHRlc3RpbmchCiAgICAgICAgJHJlc3VsdFtdID0gWwogICAgICAgICAgICAnbmFtZScgPT4gJG9yaWdpbmFsX2ZpbGVuYW1lLAogICAgICAgICAgICAnc3VjY2VzcycgPT4gJHN1Y2Nlc3MgICAgCiAgICAgICAgXTsKICAgIH0KCiAgICBoZWFkZXIoJ0NvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbicpOwogICAgZWNobyBqc29uX2VuY29kZSgkcmVzdWx0KTsKICAgIGV4aXQoKTsKCn0KCg==]]></data>
	</file>
	<file>
	  <filename>/ECB2.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBBIGZvcmsgb2YgbW9kdWxlOiBFeHRlbmRlZCBDb250ZW50IEJsb2NrcyAoRUNCKQojIE9yaWdpbmFsIEF1dGhvcjogWmRlbm8gS3V6bWFueSAoemRlbm9Aa3V6bWFueS5iaXopIC8ga3V6bWFueS5iaXogIC8gdHdpdHRlci5jb20va3V6bWFueQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIE1hZGUgU2ltcGxlIChDKSAyMDA0LTIwMjMgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24gPGZvdW5kYXRpb25AY21zbWFkZXNpbXBsZS5vcmc+CiMgSG9tZXBhZ2U6IGh0dHBzOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMKIyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7CiMgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KIyBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMKIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4KIyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNsYXNzIEVDQjIgZXh0ZW5kcyBDTVNNb2R1bGUgewoKICAgIGNvbnN0IE1PRFVMRV9WRVJTSU9OID0gJzIuNC40JzsKICAgIGNvbnN0IERFVkVMT1BNRU5UX01PREUgPSBmYWxzZTsgICAgICAgICAgLy8gc2V0IHRvIGZhbHNlIGZvciBwcm9kdWN0aW9uIHJlbGVhc2VzCiAgICBjb25zdCBNQU5BR0VfUEVSTSA9ICdtYW5hZ2VfZWNiMic7ICAgICAgLy8gZHVwbGljYXRlZCBpbiB1cGdyYWRlIGFjdGlvbgoKICAgIGNvbnN0IEZJRUxEX1RZUEVTID0gWwogICAgICAgICd0ZXh0aW5wdXQnLAogICAgICAgICd0ZXh0YXJlYScsCiAgICAgICAgJ2Ryb3Bkb3duJywKICAgICAgICAnc29ydGFibGVsaXN0JywKICAgICAgICAnY2hlY2tib3gnLAogICAgICAgICdyYWRpbycsCiAgICAgICAgJ2dhbGxlcnknLAogICAgICAgICdjb2xvcl9waWNrZXInLAogICAgICAgICdkYXRlX3RpbWVfcGlja2VyJywKICAgICAgICAnZmlsZV9zZWxlY3RvcicsCiAgICAgICAgJ2ZpbGVfcGlja2VyJywKICAgICAgICAncGFnZV9waWNrZXInLAogICAgICAgICdnYWxsZXJ5X3BpY2tlcicsCiAgICAgICAgJ21vZHVsZV9waWNrZXInLAogICAgICAgICdoaWRkZW4nLAogICAgICAgICdncm91cCcsCiAgICAgICAgICAgIC8vIGFkbWluIG9ubHkgZmllbGRzIGJlbG93IGhlcmUuLi4gKG9ubHkgYmVjYXVzZSBvZiBhIGhlbHAgc3ViaGVhZGluZykKICAgICAgICAnYWRtaW5fZmllbGRzZXRfc3RhcnQnLAogICAgICAgICdhZG1pbl9maWVsZHNldF9lbmQnLAogICAgICAgICdhZG1pbl9ocicsCiAgICAgICAgJ2FkbWluX2ltYWdlJywKICAgICAgICAnYWRtaW5fbGluaycsCiAgICAgICAgJ2FkbWluX21vZHVsZV9saW5rJywKICAgICAgICAnYWRtaW5fdGV4dCcKICAgIF07CiAgICBjb25zdCBGSVJTVF9BRE1JTl9PTkxZX0ZJRUxEID0gJ2FkbWluX2ZpZWxkc2V0X3N0YXJ0JzsgICAgLy8gb25seSB0byB0cmlnZ2VyIGhlbHAgc3ViaGVhZGluZwogICAgY29uc3QgRklFTERfQUxJQVNFUyA9IFsKICAgICAgICAnaW5wdXQnID0+ICd0ZXh0aW5wdXQnLAogICAgICAgICdlZGl0b3InID0+ICd0ZXh0YXJlYScsCiAgICAgICAgJ3NlbGVjdCcgPT4gJ2Ryb3Bkb3duJywgCiAgICAgICAgJ2Ryb3Bkb3duX2Zyb21fbW9kdWxlJyA9PiAnZHJvcGRvd24nLCAKICAgICAgICAnZHJvcGRvd25fZnJvbV91ZHQnID0+ICdkcm9wZG93bicsCiAgICAgICAgJ2Ryb3Bkb3duX2Zyb21fZ2JjJyA9PiAnZHJvcGRvd24nLCAKICAgICAgICAnZHJvcGRvd25fZnJvbV9jdXN0b21ncycgPT4gJ2Ryb3Bkb3duJywKICAgICAgICAndGltZXBpY2tlcicgPT4gJ2RhdGVfdGltZV9waWNrZXInLAogICAgICAgICdkYXRlcGlja2VyJyA9PiAnZGF0ZV90aW1lX3BpY2tlcicsCiAgICAgICAgJ3BhZ2VzJyA9PiAncGFnZV9waWNrZXInLAogICAgICAgICdtb2R1bGUnID0+ICdtb2R1bGVfcGlja2VyJywKICAgICAgICAnZmllbGRzZXRfc3RhcnQnID0+ICdhZG1pbl9maWVsZHNldF9zdGFydCcsCiAgICAgICAgJ2ZpZWxkc2V0X2VuZCcgPT4gJ2FkbWluX2ZpZWxkc2V0X2VuZCcsCiAgICAgICAgJ2hyJyA9PiAnYWRtaW5faHInLAogICAgICAgICd0ZXh0JyA9PiAnYWRtaW5fdGV4dCcsCiAgICAgICAgJ2xpbmsnID0+ICdhZG1pbl9saW5rJywKICAgICAgICAnbW9kdWxlX2xpbmsnID0+ICdhZG1pbl9tb2R1bGVfbGluaycsCiAgICAgICAgJ2ltYWdlJyA9PiAnYWRtaW5faW1hZ2UnLAogICAgICAgICdpbnB1dF9yZXBlYXRlcicgPT4gJ3RleHRpbnB1dCcsCiAgICAgICAgJ2ltYWdlJyA9PiAnZ2FsbGVyeScKICAgIF07CiAgICBjb25zdCBPVVRQVVRfRk9STUFUX0RFRkFVTFQgPSAnc3RyaW5nJzsKICAgIGNvbnN0IE9VVFBVVF9GT1JNQVQgPSBbIC8vICdzdHJpbmcnIChkZWZhdWx0KSwgJ2FycmF5JywnYXJyYXlfb3Jfc3RyaW5nJywnb2JqZWN0Jywnc3RyaW5nX3NlcGFyYXRlZCcKICAgICAgICAnZ2FsbGVyeScgPT4gJ29iamVjdCcsCiAgICAgICAgJ2dyb3VwJyA9PiAnb2JqZWN0JywKICAgICAgICAndGV4dGlucHV0JyA9PiAnYXJyYXlfb3Jfc3RyaW5nJywKICAgICAgICAnaW5wdXQnID0+ICdhcnJheV9vcl9zdHJpbmcnLAogICAgICAgICd0ZXh0YXJlYScgPT4gJ2FycmF5X29yX3N0cmluZycsCiAgICAgICAgJ2VkaXRvcicgPT4gJ2FycmF5X29yX3N0cmluZycsCiAgICAgICAgJ2lucHV0X3JlcGVhdGVyJyA9PiAnc3RyaW5nX3NlcGFyYXRlZCcKICAgIF07CgogICAgY29uc3QgRklFTERfREVGX1BSRUZJWCA9ICdlY2IyZmRfJzsKICAgIGNvbnN0IEZJRUxEX0RFRl9DTEFTU19QUkVGSVggPSAnY2xhc3MuJzsKICAgIGNvbnN0IElOUFVUX1RFTVBMQVRFX1BSRUZJWCA9ICdpbnB1dC4nOwogICAgY29uc3QgSEVMUF9URU1QTEFURV9QUkVGSVggPSAnaGVscC4nOwogICAgY29uc3QgREVNT19CTE9DS19QUkVGSVggPSAnZGVtb18nOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXROYW1lKCkgeyByZXR1cm4gJ0VDQjInOyAgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7IHJldHVybiBzZWxmOjpNT0RVTEVfVkVSU0lPTjsgfQogICAgcHVibGljIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkgeyByZXR1cm4gJzIuMCc7IH0KICAgIC8vIHB1YmxpYyBmdW5jdGlvbiBMYXp5TG9hZEZyb250ZW5kKCkgeyByZXR1cm4gdHJ1ZTsgfSAgICAgICAgIC8vIGlzIHByb2JhYmx5IHJlcXVpcmVkIGZvciBtb3N0IHBhZ2VzCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yKCkgeyByZXR1cm4gJ0NocmlzIFRheWxvcic7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsgcmV0dXJuICdjaHJpc0BiaW5ub3ZhdGl2ZS5jby51ayc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKSB7IHJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9jaGFuZ2Vsb2cudHBsJyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZHVsZV9kZXNjcmlwdGlvbicpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0SGVscCgpIHsgcmV0dXJuICR0aGlzLT5nZXRfYWRtaW4oVFJVRSk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIHRydWU7fQogICAgcHVibGljIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpIHsgcmV0dXJuICggJHRoaXMtPkNoZWNrUGVybWlzc2lvbihzZWxmOjpNQU5BR0VfUEVSTSkgKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEhlYWRlckhUTUwoKSB7IHJldHVybiAkdGhpcy0+Z2V0X2FkbWluX2Nzc19qcygpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7fQogICAgcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTt9CiAgICBwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7fQoKCgogICAgcHVibGljIGZ1bmN0aW9uIEhhc0NhcGFiaWxpdHkoICRjYXBhYmlsaXR5LCAkcGFyYW1zID0gW10gKSAKICAgIHsKICAgICAgICBzd2l0Y2ggKCRjYXBhYmlsaXR5KSB7CiAgICAgICAgICAgIGNhc2UgQ21zQ29yZUNhcGFiaWxpdGllczo6Q09OVEVOVF9CTE9DS1M6CiAgICAgICAgICAgIGNhc2UgQ21zQ29yZUNhcGFiaWxpdGllczo6UExVR0lOX01PRFVMRToKICAgICAgICAgICAgICAgIHJldHVybiBUUlVFOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICB9CgoKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSAKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CgogICAgICAgIHNwbF9hdXRvbG9hZF9yZWdpc3RlciggYXJyYXkoJHRoaXMsICdfYXV0b2xvYWRlcicpICk7CgogICAgICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6YWRkX2hvb2soICdDb3JlOjpDb250ZW50RWRpdFByZScsIFsgJHRoaXMsICdDb250ZW50RWRpdFByZScgXSApOwoKICAgIH0KCgoKICAgIC8qKgogICAgICogIEludGVybmFsIGF1dG9sb2FkZXIKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBfYXV0b2xvYWRlcigkY2xhc3NuYW1lKQogICAgewogICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoJ1xcJywgJGNsYXNzbmFtZSk7CiAgICAgICAgJGNsYXNzbmFtZSA9IGVuZCgkcGFydHMpOwogICAgICAgICRmaWVsZGRlZl9kaXIgPSBzdHJfcmVwbGFjZShzZWxmOjpGSUVMRF9ERUZfUFJFRklYLCAnJywgJGNsYXNzbmFtZSk7CiAgICAgICAgJGZuID0gY21zX2pvaW5fcGF0aCggJHRoaXMtPkdldE1vZHVsZVBhdGgoKSwgJ2xpYicsICdmaWVsZGRlZnMnLCAkZmllbGRkZWZfZGlyLAogICAgICAgICAgICBzZWxmOjpGSUVMRF9ERUZfQ0xBU1NfUFJFRklYLiRjbGFzc25hbWUuJy5waHAnICk7CiAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRmbikpIHJlcXVpcmVfb25jZSgkZm4pOwogICAgfQoKCgogICAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpIAogICAgewogICAgICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgQHBhcmFtIGJvb2xlYW4gJGhlbHBfb25seSAtIG9ubHkgb3V0cHV0IHRoZSBoZWxwIHRhYnMKICAgICAqICBAcmV0dXJuIHN0cmluZyBhZG1pbiBwYWdlIGNvbnRlbnQgLSB1c2VzIHNtYXJ0eSB0ZW1wbGF0ZXMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9hZG1pbiggJGhlbHBfb25seT1GQUxTRSApCiAgICB7CiAgICAgICAgJHRoaXMtPmdldF9hZG1pbl9jc3NfanMoIFRSVUUgKTsKICAgICAgICAkb3V0cHV0ID0gJyc7CiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKCiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAkdGhpcy0+R2V0VGVtcGxhdGVSZXNvdXJjZSgnYWRtaW5fZGVmYXVsdC50cGwnKSwgbnVsbCwgbnVsbCwgJHNtYXJ0eSApOwogICAgICAgICR0cGwtPmFzc2lnbignbW9kJywgJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignaGVscF9vbmx5JywgJGhlbHBfb25seSk7CiAgICAgICAgJG91dHB1dCAuPSAkdHBsLT5mZXRjaCgpOwoKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICR0aGlzLT5HZXRUZW1wbGF0ZVJlc291cmNlKCdhZG1pbl9jb250ZW50X2Jsb2Nrcy50cGwnKSwgbnVsbCwgbnVsbCwgJHNtYXJ0eSApOwogICAgICAgICR0cGwtPmFzc2lnbignbW9kJywgJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZmllbGRfdHlwZXMnLCBzZWxmOjpGSUVMRF9UWVBFUyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmaXJzdF9hZG1pbl9vbmx5X2ZpZWxkJywgc2VsZjo6RklSU1RfQURNSU5fT05MWV9GSUVMRCk7CiAgICAgICAgJGZpZWxkX2hlbHAgPSBbXTsKICAgICAgICBmb3JlYWNoKHNlbGY6OkZJRUxEX1RZUEVTIGFzICRmaWVsZF90eXBlKSB7CiAgICAgICAgICAgICR0eXBlID0gc2VsZjo6RklFTERfREVGX1BSRUZJWC4kZmllbGRfdHlwZTsKICAgICAgICAgICAgaWYgKCBjbGFzc19leGlzdHMoJHR5cGUpICkgeyAgICAvLyBzdG9wcyBlcnJvcnMgd2l0aCBvbGQgZmllbGQgdHlwZXMgb24gdXBncmFkZQogICAgICAgICAgICAgICAgJGVjYjIgPSBuZXcgJHR5cGUoJHRoaXMsICR0aGlzOjpERU1PX0JMT0NLX1BSRUZJWC4kZmllbGRfdHlwZSwgTlVMTCwgWydmaWVsZCcgPT4gJGZpZWxkX3R5cGVdLCBUUlVFKTsKICAgICAgICAgICAgICAgICRmaWVsZF9oZWxwWyRmaWVsZF90eXBlXSA9ICRlY2IyLT5nZXRfZmllbGRfaGVscCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICR0cGwtPmFzc2lnbignZmllbGRfaGVscCcsICRmaWVsZF9oZWxwKTsKICAgICAgICAkb3V0cHV0IC49ICR0cGwtPmZldGNoKCk7CgogICAgICAgIGlmICghJGhlbHBfb25seSkgewogICAgICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICR0aGlzLT5HZXRUZW1wbGF0ZVJlc291cmNlKCdhZG1pbl9vcHRpb25zLnRwbCcpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignbW9kJywgJHRoaXMpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdjdXN0b21Nb2R1bGVOYW1lJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1c3RvbU1vZHVsZU5hbWUnLCAkdGhpcy0+TGFuZygnZXh0ZW5kZWRfY29udGVudF9ibG9ja3MnKSkgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnYWRtaW5TZWN0aW9uJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkbWluU2VjdGlvbicsICdleHRlbnNpb25zJykgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnYWRtaW5TZWN0aW9uT3B0aW9ucycsICR0aGlzLT5MYW5nKCdhZG1pblNlY3Rpb25PcHRpb25zJykgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAndGh1bWJuYWlsV2lkdGgnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGh1bWJuYWlsV2lkdGgnLCAnJykgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAndGh1bWJuYWlsSGVpZ2h0JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3RodW1ibmFpbEhlaWdodCcsICcnKSApOwogICAgICAgICAgICAkb3V0cHV0IC49ICR0cGwtPmZldGNoKCk7CiAgICAgICAgfQoKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSggJHRoaXMtPkdldFRlbXBsYXRlUmVzb3VyY2UoJ2FkbWluX2Fib3V0LnRwbCcpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdtb2QnLCAkdGhpcyk7CiAgICAgICAgJG91dHB1dCAuPSAkdHBsLT5mZXRjaCgpOwoKICAgICAgICByZXR1cm4gJG91dHB1dDsKICAgIH0KCgoKICAgIC8qKgogICAgICogIGxvYWQgRUNCMiBhZG1pbiBqcyAmIGNzcyAtIGJ1dCBvbmx5IG9uY2UhIC0gZS5nLiBpZiBmaXJzdCBFQ0IyIGNvbnRlbnQgYmxvY2sgb24gdGhlIHBhZ2UKICAgICAqICBhbGwganMgJiBjc3Mgc2hvdWxkIGJlIGluIHRoZXNlIGNvbWJpbmVkIGZpbGVzIChmb3Igbm93KQogICAgICogIEByZXR1cm4gc3RyaW5nIC0gaHRtbCB0byBsb2FkIGpzICYgY3NzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYWRtaW5fY3NzX2pzKCAkZWNob19ub3cgPSBGQUxTRSApCiAgICB7CiAgICAgICAgaWYgKGNtc191dGlsczo6Z2V0X2FwcF9kYXRhKCdFQ0IyX2pzX2Nzc19sb2FkZWQnKSkgcmV0dXJuICcnOwogICAgICAgICRwYXRoID0gJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKTsKICAgICAgICAkdmVyc2lvbiA9IHNlbGY6OkRFVkVMT1BNRU5UX01PREUgPyAnJyA6ICc/dj0nLnNlbGY6Ok1PRFVMRV9WRVJTSU9OOwogICAgICAgICRhZG1pbl9jc3NfanMgPSAnCiAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9IicuJHBhdGguJy9saWIvY3NzL2VjYjJfYWRtaW4uY3NzJy4kdmVyc2lvbi4nIj4KICAgICAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSInLiRwYXRoLicvbGliL2pzL2VjYjJfYWRtaW4uanMnLiR2ZXJzaW9uLiciPjwvc2NyaXB0Pic7CiAgICAgICAgY21zX3V0aWxzOjpzZXRfYXBwX2RhdGEoJ0VDQjJfanNfY3NzX2xvYWRlZCcsIDEpOwogICAgICAgIGlmICggJGVjaG9fbm93ICkgewogICAgICAgICAgICBlY2hvICRhZG1pbl9jc3NfanM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICRhZG1pbl9jc3NfanM7CiAgICAgICAgfQogICAgfQoKCgogICAgLyoqCiAgICAgKiBHZXQgYWRtaW4gcGFnZSBjb250ZW50IHJlcHJlc2VudGluZyB0aGUgVUkgZm9yIGEgbW9kdWxlLWNvbnRlbnQtYmxvY2sKICAgICAqIEBwYXJhbSBzdHJpbmcgJGJsb2NrTmFtZQogICAgICogQHBhcmFtIG1peGVkICR2YWx1ZSBNaWdodCBiZSBudWxsCiAgICAgKiBAcGFyYW0gYXJyYXkgJHBhcmFtcwogICAgICogQHBhcmFtIGJvb2xlYW4gJGFkZGluZyBmbGFnIHdoZXRoZXIgdGhpcyBhIG5ldyBwYWdlIGlzIGJlaW5nIHByb2Nlc3NlZAogICAgICogQHBhcmFtIG9iamVjdCAkY29udGVudF9vYmogdGhlIHBhZ2UgcHJvcGVydGllcwogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldENvbnRlbnRCbG9ja0ZpZWxkSW5wdXQoICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgQ29udGVudEJhc2UgJGNvbnRlbnRfb2JqICkgCiAgICB7CiAgICAgICAgaWYgKCBlbXB0eSgkcGFyYW1zWydmaWVsZCddKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lcnJvcl9tc2coICR0aGlzLT5MYW5nKCdmaWVsZF9lcnJvcicsICRibG9ja05hbWUpICk7CiAgICAgICAgfQoKICAgICAgICAvLyB3b3JrYXJvdW5kICRhZGRpbmcgbm90IHNldCBpbiBDb250ZW50TWFuYWdlciB2MS4wIGFjdGlvbiBhZG1pbl9lZGl0Y29udGVudAogICAgICAgIGlmICghJGFkZGluZyAmJiB2ZXJzaW9uX2NvbXBhcmUoQ01TX1ZFUlNJT04sICcyLjEnKSA8IDAgJiYgJGNvbnRlbnRfb2JqLT5JZCgpID09IDApIHsKICAgICAgICAgICAgJGFkZGluZyA9IHRydWU7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+Z2V0X2FkbWluX2Nzc19qcyggVFJVRSApOyAgIC8vIG91dHB1dCBjc3MgJiBqcyAtIGJ1dCBvbmx5IG9uY2UgcGVyIHBhZ2UKCiAgICAgICAgJHRoaXMtPkhhbmRsZUZpZWxkQWxpYXNlcygkcGFyYW1zKTsgICAgICAgCiAgICAgICAgaWYgKCAhaW5fYXJyYXkoJHBhcmFtc1siZmllbGQiXSwgc2VsZjo6RklFTERfVFlQRVMgKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lcnJvcl9tc2coICR0aGlzLT5MYW5nKCdmaWVsZF9lcnJvcicsICRibG9ja05hbWUpICk7CiAgICAgICAgfSAgICAgCgogICAgICAgICR0eXBlID0gc2VsZjo6RklFTERfREVGX1BSRUZJWC4kcGFyYW1zWyJmaWVsZCJdOwogICAgICAgICRlY2IyID0gbmV3ICR0eXBlKCR0aGlzLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRjb250ZW50X29iai0+SWQoKSk7CgogICAgICAgICRlY2IyX2NiID0gJGVjYjItPmdldF9jb250ZW50X2Jsb2NrX2lucHV0KCk7CiAgICAgICAgcmV0dXJuICRlY2IyX2NiOwoKICAgIH0KCgoKICAgIC8qKgogICAgICogIERhdGEgZW50ZXJlZCBieSB0aGUgZWRpdG9yIGlzIHByb2Nlc3NlZCBoZXJlIGJlZm9yZSBpdHMgc2F2ZWQgaW4gYSB0YWJsZQogICAgICogIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBmcm9tIGEge2NvbnRlbnRfbW9kdWxlfSB0YWcsIHdoZW4gdGhlIGNvbnRlbnQgZWRpdCBmb3JtIGlzIGJlaW5nIGVkaXRlZC4KICAgICAqICBHaXZlbiBpbnB1dCBwYXJhbWV0ZXJzIChpLmU6IHZpYSBfUE9TVCBvciBfUkVRVUVTVCksIHRoaXMgbWV0aG9kIHdpbGwgZXh0cmFjdCBhIHZhbHVlIGZvciB0aGUgCiAgICAgKiAgZ2l2ZW4gY29udGVudCBibG9jayBpbmZvcm1hdGlvbi4KICAgICAqICBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBpZiB0aGUgbW9kdWxlIGlzIHByb3ZpZGluZyBjb250ZW50IGJsb2NrIHR5cGVzIHRvIHRoZSBDTVNNUyAKICAgICAqICBjb250ZW50IG9iamVjdHMuCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkYmxvY2tOYW1lIC0gQ29udGVudCBibG9jayBuYW1lCiAgICAgKiAgQHBhcmFtIGFycmF5ICRibG9ja1BhcmFtcyAtIENvbnRlbnQgYmxvY2sgcGFyYW1ldGVycwogICAgICogIEBwYXJhbSBhcnJheSAkaW5wdXRQYXJhbXMgLSBpbnB1dCBwYXJhbWV0ZXJzCiAgICAgKiAgQHBhcmFtIG9iamVjdCAkY29udGVudF9vYmogLSBUaGUgY29udGVudCBvYmplY3QgYmVpbmcgZWRpdGVkLgogICAgICogIEByZXR1cm4gbWl4ZWR8ZmFsc2UgVGhlIGNvbnRlbnQgYmxvY2sgdmFsdWUgaWYgcG9zc2libGUuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRDb250ZW50QmxvY2tGaWVsZFZhbHVlKCAkYmxvY2tOYW1lLCAkYmxvY2tQYXJhbXMsICRpbnB1dFBhcmFtcywgQ29udGVudEJhc2UgJGNvbnRlbnRfb2JqICkKICAgIHsKICAgICAgICAvLyByZXR1cm5lZCBzdHJpbmdzIGFyZSBzdG9yZWQgaW4gdGhlIGRlZmF1bHQgJ2NvbnRlbnRfcHJvcHMnIHRhYmxlIGFzIGEgc3RyaW5nCiAgICAgICAgLy8gYXJyYXlzIGFyZSBhbHdheXMgc3RvcmVkIGFzIGpzb24gaW4gJ2NvbnRlbnRfcHJvcHMnCiAgICAgICAgaWYgKCAhaXNzZXQoJGlucHV0UGFyYW1zWyRibG9ja05hbWVdKSApIHsgICAgIC8vIHByb2IgbmV3IHBhZ2UKICAgICAgICAgICAgcmV0dXJuICcnOwoKICAgICAgICB9IGVsc2VpZiAoIGlzX3N0cmluZygkaW5wdXRQYXJhbXNbJGJsb2NrTmFtZV0pICYmICR0aGlzLT5PdXRwdXRGb3JtYXQoJGJsb2NrUGFyYW1zKT09J3N0cmluZycgKSB7CiAgICAgICAgICAgIHJldHVybiAkaW5wdXRQYXJhbXNbJGJsb2NrTmFtZV07CgogICAgICAgIH0gCiAgICAgICAgICAKICAgICAgICAvLyBlbHNlIGFycmF5IG9mIGlucHV0cyByZXR1cm5lZCAtIGdldCBmaWVsZERlZiBjbGFzcyB0byBtYW5pcHVsYXRlIGlucHV0IHZhbHVlcyAtIGlmIG5lY2Vzc2FyeQogICAgICAgICRpZCA9ICRjb250ZW50X29iai0+SWQoKTsKICAgICAgICAkdmFsdWUgPSAnJzsgICAgLy8ganVzdCB1c2UgZHVtbXkgdmFsdWUgaGVyZSwgcGFzcyBpbnB1dCBhcnJheSBpbnRvIGdldF9jb250ZW50X2Jsb2NrX3ZhbHVlKCkKICAgICAgICAkYWRkaW5nID0gKCRpZCA9PSAwKTsgCiAgICAgICAgJHRoaXMtPkhhbmRsZUZpZWxkQWxpYXNlcygkYmxvY2tQYXJhbXMpOyAKICAgICAgICAkdHlwZSA9IHNlbGY6OkZJRUxEX0RFRl9QUkVGSVguJGJsb2NrUGFyYW1zWydmaWVsZCddOwogICAgICAgICRlY2IyID0gbmV3ICR0eXBlKCR0aGlzLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRibG9ja1BhcmFtcywgJGFkZGluZywgJGlkKTsKCiAgICAgICAgJGVjYjJfdmFsdWUgPSAkZWNiMi0+Z2V0X2NvbnRlbnRfYmxvY2tfdmFsdWUoICRpbnB1dFBhcmFtc1skYmxvY2tOYW1lXSApOwoKICAgICAgICAvLyBhZGQgYW55IGpzb24gY29udGVudCB0byBzZWFyY2ggaW5kZXggYXMgaXQgaXMgb3RoZXJ3aXNlIGlnbm9yZWQKICAgICAgICBpZiAoICRlY2IyLT51c2VfanNvbl9mb3JtYXQgJiYgJGVjYjItPnNlYXJjaGFibGVfY29udGVudCApICRlY2IyLT5BZGRDb250ZW50VG9TZWFyY2hJbmRleCgkaWQpOwoKICAgICAgICByZXR1cm4gJGVjYjJfdmFsdWU7CgogICAgfQoKCgogICAgLyoqCiAgICAgKiAgUmVuZGVyIHRoZSB2YWx1ZSBvZiBhIG1vZHVsZSBjb250ZW50IGJsb2NrIG9uIHRoZSBmcm9udGVuZCBvZiB0aGUgd2Vic2l0ZS4KICAgICAqICBUaGlzIGdpdmVzIG1vZHVsZXMgdGhlIG9wcG9ydHVuaXR5IHRvIHJlbmRlciBkYXRhIHN0b3JlZCBpbiBjb250ZW50IGJsb2NrcyBkaWZmZXJlbnRseS4KICAgICAqCiAgICAgKiAgTm90ZTogYW55IGNoYW5nZXMgdG8gdGhlIGRhdGEgc2hvdWxkIGJlIGhhbmRsZWQgZHVyaW5nIHRoZSBhZG1pbiBzYXZlIG9wZXJhdGlvbgogICAgICogICAgICAgIEZvciBzcGVlZCBkdXJpbmcgYSBmcm9udCBlbmQgY2FsbCBvbmx5IGEganNvbl9kZWNvZGUgaXMgcmVxdWlyZWQgZm9yIHByb2Nlc3NpbmcKICAgICAqCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkYmxvY2tOYW1lIC0gQ29udGVudCBibG9jayBuYW1lCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkdmFsdWUgLSBDb250ZW50IGJsb2NrIHZhbHVlIGFzIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UKICAgICAqICBAcGFyYW0gYXJyYXkgJGJsb2NrcGFyYW1zIC0gQ29udGVudCBibG9jayBwYXJhbWV0ZXJzCiAgICAgKiAgQHBhcmFtIG9iamVjdCAkY29udGVudF9vYmogLSBUaGUgY29udGVudCBvYmplY3QgYmVpbmcgZWRpdGVkLgogICAgICogIEByZXR1cm4gc3RyaW5nIFRoZSBjb250ZW50IGJsb2NrIHZhbHVlIGlmIHBvc3NpYmxlLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gUmVuZGVyQ29udGVudEJsb2NrRmllbGQoICRibG9ja05hbWUsICR2YWx1ZSwgJGJsb2NrcGFyYW1zLCBDb250ZW50QmFzZSAkY29udGVudF9vYmogKSAKICAgIHsKICAgICAgICAkanNvbl9kYXRhID0ganNvbl9kZWNvZGUoJHZhbHVlKTsKICAgICAgICBpZiAoIGpzb25fbGFzdF9lcnJvcigpPT09SlNPTl9FUlJPUl9OT05FICYmICRqc29uX2RhdGEhPSR2YWx1ZSApIHsgIAogICAgICAgICAgICAvLyBKU09OIGlzIHZhbGlkIGFuZCBub3QganVzdCBhIHNpbXBsZSBzdHJpbmcKICAgICAgICAgICAgLy8gYSBoYWNrIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgaW5wdXRfcmVwZWF0ZXIgLSBpZiBhc3NpZ24gbm90IHVzZWQKICAgICAgICAgICAgc3dpdGNoICggJHRoaXMtPk91dHB1dEZvcm1hdCgkYmxvY2twYXJhbXMpICkgewogICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGpzb25fZGF0YS0+dmFsdWVzWzBdOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZ19zZXBhcmF0ZWQnOiAgICAgIC8vIGUuZy4gJ2lucHV0X3JlcGVhdGVyJyAmICdhc3NpZ24nIG5vdCBzZXQKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW1wbG9kZSgnfHwnLCAkanNvbl9kYXRhLT52YWx1ZXMpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ2FycmF5JzoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNzZXQoJGpzb25fZGF0YS0+dmFsdWVzKSA/ICRqc29uX2RhdGEtPnZhbHVlcyA6IFtdOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRqc29uX2RhdGE7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KCiAgICAgICAgfSBlbHNlIHsgICAgLy8gJHZhbHVlIGlzIGEgc3RyaW5nIAogICAgICAgICAgICBzd2l0Y2ggKCAkdGhpcy0+T3V0cHV0Rm9ybWF0KCRibG9ja3BhcmFtcykgKSB7CiAgICAgICAgICAgICAgICBjYXNlICdzdHJpbmcnOiAKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ2FycmF5JzoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhwbG9kZSgnfHwnLCAkdmFsdWUpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6CiAgICAgICAgICAgICAgICAgICAgJGZpZWxkX29iamVjdCA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICAgICAgICAgICAgICRmaWVsZF9vYmplY3QtPnZhbHVlc1tdID0gJHZhbHVlOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAkZmllbGRfb2JqZWN0OwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICB9CgoKCiAgICAvLyBub3QgdXNlZCAgICAgVmFsaWRhdGVDb250ZW50QmxvY2tGaWVsZFZhbHVlKCAkYmxvY2tOYW1lLCAkdmFsdWUsICRibG9ja3BhcmFtcywgJGNvbnRlbnRfb2JqICkKICAgIC8vIC8qKgogICAgLy8gICogIFZhbGlkYXRlIHRoZSB2YWx1ZSBmb3IgYSBtb2R1bGUgZ2VuZXJhdGVkIGNvbnRlbnQgYmxvY2sgdHlwZS4KICAgIC8vICAqICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgZnJvbSBhIHtjb250ZW50X21vZHVsZX0gdGFnLCB3aGVuIHRoZSBjb250ZW50IGVkaXQgZm9ybSBpcyBiZWluZyB2YWxpZGF0ZWQuCiAgICAvLyAgKiAgVGhpcyBtZXRob2QgY2FuIGJlIG92ZXJyaWRkZW4gaWYgdGhlIG1vZHVsZSBpcyBwcm92aWRpbmcgY29udGVudCBibG9jayB0eXBlcyB0byB0aGUgQ01TTVMgY29udGVudCAKICAgIC8vICAqICBvYmplY3RzLgogICAgLy8gICoKICAgIC8vICAqICBAcGFyYW0gc3RyaW5nICRibG9ja05hbWUgLSBDb250ZW50IGJsb2NrIG5hbWUKICAgIC8vICAqICBAcGFyYW0gc3RyaW5nICR2YWx1ZSAtIENvbnRlbnQgYmxvY2sgdmFsdWUgYXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZQogICAgLy8gICogIEBwYXJhbSBhcnJheSAkYmxvY2twYXJhbXMgLSBDb250ZW50IGJsb2NrIHBhcmFtZXRlcnMKICAgIC8vICAqICBAcGFyYW0gb2JqZWN0ICRjb250ZW50X29iaiAtIFRoZSBjb250ZW50IG9iamVjdCBiZWluZyBlZGl0ZWQuCiAgICAvLyAgKiAgQHJldHVybiBzdHJpbmcgQW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgdmFsdWUgaXMgaW52YWxpZCwgZW1wdHkgb3RoZXJ3aXNlLgogICAgLy8gICovCiAgICAvLyBwdWJsaWMgZnVuY3Rpb24gVmFsaWRhdGVDb250ZW50QmxvY2tGaWVsZFZhbHVlKCAkYmxvY2tOYW1lLCAkdmFsdWUsICRibG9ja3BhcmFtcywgJGNvbnRlbnRfb2JqICkKICAgIC8vIHsKICAgIC8vICAgICByZXR1cm4gJyc7CiAgICAvLyB9IAoKCgogICAgLyoqCiAgICAgKiAgY2xlYXJzIFN0eWxlc2hlZXQgY2FjaGUgaWYgdGhhdCBvcHRpb24gaXMgcmVxdWlyZWQgZm9yIGFuIEVDQjIgZmllbGQgd2hlcmUgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkCiAgICAgKiAgICAgIGUuZy4gY29sb3JfcGlja2VyCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBDb250ZW50RWRpdFByZSggJHBhcmFtcyApCiAgICB7CiAgICAgICAgJGNvbnRlbnRJZCA9ICRwYXJhbXNbJ2NvbnRlbnQnXS0+SWQoKTsKICAgICAgICAkcHJvcHMgPSAkcGFyYW1zWydjb250ZW50J10tPkdldEVkaXRhYmxlUHJvcGVydGllcygpOwogICAgICAgICRuZXdfcHJvcHMgPSAkcGFyYW1zWydjb250ZW50J10tPlByb3BlcnRpZXMoKTsKICAgICAgICAkY2xlYXJfY3NzX2NhY2hlID0gZmFsc2U7CgogICAgICAgIGZvcmVhY2ggKCRwcm9wcyBhcyAkcHJvcCkgewogICAgICAgICAgICBpZiAoICEkY2xlYXJfY3NzX2NhY2hlICYmIGlzc2V0KCRwcm9wLT5leHRyYSkgJiYgaXNzZXQoJHByb3AtPmV4dHJhWydtb2R1bGUnXSkgJiYgCiAgICAgICAgICAgICAgICAgJHByb3AtPmV4dHJhWydtb2R1bGUnXT09J0VDQjInICYmIGlzc2V0KCRwcm9wLT5leHRyYVsncGFyYW1zJ11bJ2NsZWFyX2Nzc19jYWNoZSddKSApIHsKICAgICAgICAgICAgICAgIC8vIHRlc3QgaWYgdmFsdWUgaGFzIGNoYW5nZWQKICAgICAgICAgICAgICAgICRkYiA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldERiKCk7CiAgICAgICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGNvbnRlbnQgRlJPTSAnLkNNU19EQl9QUkVGSVguJ2NvbnRlbnRfcHJvcHMgCiAgICAgICAgICAgICAgICAgICAgV0hFUkUgY29udGVudF9pZCA9ID8gQU5EIHByb3BfbmFtZSA9ID8nOwogICAgICAgICAgICAgICAgJG9sZF92YWx1ZSA9ICRkYi0+R2V0T25lKCAkcXVlcnksIFskY29udGVudElkLCAkcHJvcC0+bmFtZV0gKTsKICAgICAgICAgICAgICAgICRuZXdfdmFsdWUgPSAkbmV3X3Byb3BzWyRwcm9wLT5uYW1lXTsKICAgICAgICAgICAgICAgIGlmICgkbmV3X3ZhbHVlICE9ICRvbGRfdmFsdWUpICRjbGVhcl9jc3NfY2FjaGUgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgkY2xlYXJfY3NzX2NhY2hlKSB7CiAgICAgICAgICAgICR0aGlzLT5DbGVhclN0eWxlc2hlZXRDYWNoZSgpOwogICAgICAgIH0KICAgIH0KCgoKICAgIC8qKgogICAgICogIHNoYW1lbGVzc2x5IGNvcGllZCBmcm9tIEN1c3RvbUdTIC0gdGhhbmtzIFJvbGYgJiBKb3MgOikKICAgICAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBDbGVhclN0eWxlc2hlZXRDYWNoZSgpCgl7CgkJZm9yZWFjaCAoZ2xvYigiLi4vdG1wL2NhY2hlL3N0eWxlc2hlZXRfY29tYmluZWRfKi5jc3MiKSBhcyAkZmlsZW5hbWUpIHsKCQkJdG91Y2goICRmaWxlbmFtZSwgdGltZSgpIC0gMzYwMDAwICk7CgkJfQoJfQoKCgogICAgLyoqCiAgICAgKiAgdXBkYXRlcyBwYXJhbXMgaWYgZmllbGQgYWxpYXMgaGFzIGJlZW4gdXNlZCAtIGFsc28gc2V0cyAnZmllbGRfYWxpYXNfdXNlZCcKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBIYW5kbGVGaWVsZEFsaWFzZXMoICYkcGFyYW1zICkgCiAgICB7CiAgICAgICAgaWYgKCAhaW5fYXJyYXkoJHBhcmFtc1snZmllbGQnXSwgc2VsZjo6RklFTERfVFlQRVMpICYmIAogICAgICAgICAgICAgIGFycmF5X2tleV9leGlzdHMoJHBhcmFtc1snZmllbGQnXSwgc2VsZjo6RklFTERfQUxJQVNFUykgKSB7CiAgICAgICAgICAgICRwYXJhbXNbJ2ZpZWxkX2FsaWFzX3VzZWQnXSA9ICRwYXJhbXNbJ2ZpZWxkJ107CiAgICAgICAgICAgICRwYXJhbXNbJ2ZpZWxkJ10gPSBzZWxmOjpGSUVMRF9BTElBU0VTWyRwYXJhbXNbJ2ZpZWxkJ11dOwogICAgICAgIH0KICAgIH0KCgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nICdzdHJpbmcnIChkZWZhdWx0KSwgJ3N0cmluZ19zZXBhcmF0ZWQnLCAnYXJyYXknIG9yICdvYmplY3QnLgogICAgICogICAgICAgICAgICAgICAgICBub3RlOiBub3QgJ2FycmF5X29yX3N0cmluZycgLSB0aGlzIG1ldGhvZCBkZWNpZGVzIHdoaWNoIGlzIHJlcXVpcmVkCiAgICAgKiAgQHBhcmFtIGFycmF5ICRibG9ja3BhcmFtcyAtIG9wdGlvbnMgc2V0IGZvciB0aGlzIGZpZWxkIGJsb2NrCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gT3V0cHV0Rm9ybWF0KCAkYmxvY2twYXJhbXMgKQogICAgewogICAgICAgIGlmICggIWlzc2V0KHNlbGY6Ok9VVFBVVF9GT1JNQVRbICRibG9ja3BhcmFtc1snZmllbGQnXSBdKSApIHJldHVybiBzZWxmOjpPVVRQVVRfRk9STUFUX0RFRkFVTFQ7CgogICAgICAgIHN3aXRjaCAoIHNlbGY6Ok9VVFBVVF9GT1JNQVRbICRibG9ja3BhcmFtc1snZmllbGQnXSBdICkgewogICAgICAgICAgICBjYXNlICdzdHJpbmcnOgogICAgICAgICAgICBjYXNlICdzdHJpbmdfc2VwYXJhdGVkJzoKICAgICAgICAgICAgY2FzZSAnYXJyYXknOgogICAgICAgICAgICBjYXNlICdvYmplY3QnOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6Ok9VVFBVVF9GT1JNQVRbICRibG9ja3BhcmFtc1snZmllbGQnXSBdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIAogICAgICAgICAgICBjYXNlICdhcnJheV9vcl9zdHJpbmcnIDoKICAgICAgICAgICAgICAgIGlmICggZW1wdHkoJGJsb2NrcGFyYW1zWydyZXBlYXRlciddKSApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3N0cmluZyc7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAnYXJyYXknOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6Ok9VVFBVVF9GT1JNQVRfREVGQVVMVDsgCiAgICAgICAgfQoKICAgIH0KCgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGh0bWwgZXJyb3IgbWVzc2FnZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZXJyb3JfbXNnKCRtc2cpCiAgICB7CiAgICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJwYWdld2FybmluZyI+Jy4kbXNnLic8L2Rpdj48YnI+JzsKICAgIH0KCgoKICAgIC8qKgogICAgICogIEVDMkIgRklMVEVSX1NBTklUSVpFX1NUUklORyByZXBsYWNlbWVudCAtIHJlbW92ZXMgbnVsbCBieXRlcyBhbmQgaHRtbCB0YWdzIGFuZCBlbmNvZGVzIHF1b3RlcwogICAgICogIEBwYXJhbSBzdHJpbmcgJHZhbHVlIC0gdGhlIHN0cmluZyB0byBzYW5pdGl6ZQogICAgICogIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBlY2IyX3Nhbml0aXplX3N0cmluZygkdmFsdWUpIAogICAgewogICAgICAgICR2YWx1ZSA9IHByZWdfcmVwbGFjZSgnL1x4MDB8PFtePl0qPj8vJywgJycsICR2YWx1ZSk7CiAgICAgICAgcmV0dXJuIHN0cl9yZXBsYWNlKFsiJyIsICciJ10sIFsnJiMzOTsnLCAnJiMzNDsnXSwgJHZhbHVlKTsKICAgIH0KCgoKICAgIC8qKgogICAgICogIFByZXBhcmUgc2VhcmNoIHJlc3VsdCBmb3IgZGlzcGxheQogICAgICogIEBwYXJhbSBpbnQgJHJldHVybmlkIC0gcGFnZSBpZCB0byByZXR1cm4gcmVzdWx0cyB0bwogICAgICogIEBwYXJhbSBpbnQgJGFydGljbGVpZCAtIGFydGljbGUgaWQgdG8gc2VhcmNoIHdpdGhpbgogICAgICogIEBwYXJhbSBzdHJpbmcgJGF0dHIgLSBhdHRyaWJ1dGUgdG8gc2VhcmNoIHdpdGhpbgogICAgICogIEBwYXJhbSBzdHJpbmcgJHBhcmFtcyAtIGFkZGl0aW9uYWwgc2VhcmNoIHBhcmFtZXRlcnMKICAgICAqICBAcmV0dXJuIGFycmF5IC0gbW9kdWxlX25hbWUsIGRpc3BsYXkgdGV4dCwgdXJsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZWFyY2hSZXN1bHRXaXRoUGFyYW1zKCRyZXR1cm5pZCwgJGNvbnRlbnRpZCwgJGF0dHIgPSAnJywgJHBhcmFtcyA9ICcnKQogICAgewogICAgICAgICRyZXN1bHQgPSBbXTsKICAgICAgICAkaG0gPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgICAgICRub2RlID0gJGhtLT5HZXROb2RlQnlJZCgkY29udGVudGlkKTsKICAgICAgICBpZiAoaXNzZXQoJG5vZGUpKSB7CiAgICAgICAgICAgICRjb250ZW50ID0gJG5vZGUtPkdldENvbnRlbnQoKTsKICAgICAgICAgICAgJHJlc3VsdFswXSA9ICdFQ0IyX2NvbnRlbnQnOwogICAgICAgICAgICAkcmVzdWx0WzFdID0gJGNvbnRlbnQtPk5hbWUoKTsKICAgICAgICAgICAgJHJlc3VsdFsyXSA9ICRjb250ZW50LT5HZXRVUkwoIFRSVUUsIEZBTFNFICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKCiAgICAvKioKICAgICAqICAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNlYXJjaFJlaW5kZXgoJiRzZWFyY2hfbW9kdWxlKQogICAgewogICAgICAgICRjb250ZW50b3BzID0gQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRoaWVyYXJjaHlNYW5hZ2VyID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKICAgICAgICAkZnVsbF9saXN0ID0gYXJyYXlfa2V5cyggJGhpZXJhcmNoeU1hbmFnZXItPmdldEZsYXRMaXN0KCkgKTsKICAgICAgICAvLyBjaGVjayBlYWNoIGNvbnRlbnQgcGFnZQogICAgICAgIGZvcmVhY2goICRmdWxsX2xpc3QgYXMgJG9uZSApIHsKICAgICAgICAgICAgLy8gbG9hZCB0aGUgY29udGVudCBmb3IgdGhpcyBpZAogICAgICAgICAgICAkY29udGVudF9vYmogPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoJG9uZSk7CgogICAgICAgICAgICBpZiAoICRjb250ZW50X29iai0+QWN0aXZlKCkgJiYgJGNvbnRlbnRfb2JqLT5Jc1NlYXJjaGFibGUoKSApIHsKICAgICAgICAgICAgICAgICRibG9ja3MgPSAkY29udGVudF9vYmotPkdldEVkaXRhYmxlUHJvcGVydGllcygpOwoKICAgICAgICAgICAgICAgIGZvcmVhY2goICRibG9ja3MgYXMgJGJsb2NrICkgewogICAgICAgICAgICAgICAgICAgIGlmICggaXNzZXQoJGJsb2NrLT5leHRyYVsnbW9kdWxlJ10pICYmICRibG9jay0+ZXh0cmFbJ21vZHVsZSddPT0nRUNCMicgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRibG9ja05hbWUgPSAkYmxvY2stPm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9ICRjb250ZW50X29iai0+R2V0UHJvcGVydHlWYWx1ZSggJGJsb2NrTmFtZSApOwogICAgICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IGlmIHZhbHVlIGlzIHZhbGlkIGpzb24KICAgICAgICAgICAgICAgICAgICAgICAgJGpzb25fZGF0YSA9IGpzb25fZGVjb2RlKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgganNvbl9sYXN0X2Vycm9yKCk9PT1KU09OX0VSUk9SX05PTkUgJiYgJGpzb25fZGF0YSE9JHZhbHVlICkgeyAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBKU09OIGlzIHZhbGlkIGFuZCBub3QganVzdCBhIHNpbXBsZSBzdHJpbmcgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYmxvY2tQYXJhbXMgPSAkYmxvY2stPmV4dHJhWydwYXJhbXMnXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5IYW5kbGVGaWVsZEFsaWFzZXMoJGJsb2NrUGFyYW1zKTsgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGluX2FycmF5KCRibG9ja1BhcmFtc1siZmllbGQiXSwgc2VsZjo6RklFTERfVFlQRVMgKSApIHsgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlID0gc2VsZjo6RklFTERfREVGX1BSRUZJWC4kYmxvY2tQYXJhbXNbImZpZWxkIl07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVjYjIgPSBuZXcgJHR5cGUoJHRoaXMsICRibG9ja05hbWUsICR2YWx1ZSwgJGJsb2NrUGFyYW1zLCBGQUxTRSwgJG9uZSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlY2IyLT5BZGRTYXZlZENvbnRlbnRUb1NlYXJjaEluZGV4KCRvbmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNtc19jb250ZW50X2NhY2hlOjp1bmxvYWQoJG9uZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgoKCn0KCgo=]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiNyZWdpb24gTGFuZyBTdHJpbmdzCgokbGFuZ1snYWJvdXQnXSA9ICdBYm91dCc7CiRsYW5nWydhZGRfaXRlbSddID0gJ0FkZCBpdGVtJzsKJGxhbmdbJ2FkZF9saW5lJ10gPSAnQWRkIGxpbmUnOwokbGFuZ1snYWRtaW5fb25seV9oZWxwJ10gPSAnQWRtaW4gb25seSBmaWVsZHMnOwokbGFuZ1snYWRtaW5fb25seV9oZWxwX2ludHJvJ10gPSAnVGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlIG9ubHkgdXNlZCB0byBmb3JtYXQgYW5kIGFkZCBjb250ZW50IHRvIHRoZSBhZG1pbiBwYWdlcy4gVGhleSBkbyBub3QgcHJvdmlkZSBhbnkgdXNlZnVsIGNvbnRlbnQgZm9yIHRoZSBmcm9udGVuZCB3ZWJzaXRlIHBhZ2VzLic7CiRsYW5nWydhZG1pblNlY3Rpb25PcHRpb25zJ10gPSBbCiAgICAnbWFpbicgPT4gJ21haW4nLAogICAgJ2NvbnRlbnQnID0+ICdjb250ZW50JywKICAgICdsYXlvdXQnID0+ICdsYXlvdXQnLAogICAgJ3VzZXJzZ3JvdXBzJyA9PiAndXNlcnNncm91cHMnLAogICAgJ2V4dGVuc2lvbnMnID0+ICdleHRlbnNpb25zJywKICAgICdhZG1pbicgPT4gJ3NpdGVhZG1pbicsCiAgICAnbXlwcmVmcycgPT4gJ215cHJlZnMnCl07CgoKJGxhbmdbJ2NvbnRlbnRfYmxvY2tfbGFiZWxfc2VsZWN0ZWQnXSA9ICdTZWxlY3RlZCc7CiRsYW5nWydjb250ZW50X2Jsb2NrX2xhYmVsX2F2YWlsYWJsZSddID0gJ0F2YWlsYWJsZSc7CiRsYW5nWydjdXN0b21nc19maWVsZF9lcnJvciddID0gIlBsZWFzZSBjcmVhdGUgZmllbGQgJyVzJyBpbiBDdXN0b21HUyI7CgokbGFuZ1snZHJvcF9pdGVtcyddID0gJ05vIGl0ZW1zIHNlbGVjdGVkIC0gZHJvcCBzZWxlY3RlZCBpdGVtcyBoZXJlJzsKJGxhbmdbJ2Ryb3BfcmVxdWlyZWRfaXRlbXMnXSA9ICdEcm9wICVzIHJlcXVpcmVkIGl0ZW1zIGhlcmUnOwoKJGxhbmdbJ2Vycm9yX2Fzc2lnbl9yZXF1aXJlZCddID0gJ1RoZSBhc3NpZ24gcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIGNvcnJlY3RseSBvdXRwdXQgbXVsdGlwbGUgdmFsdWVzLic7CiRsYW5nWydlcnJvcl9maWxlbmFtZSddID0gJ1RoZSBmaWxlIFwnJXNcJyBmb3IgdGhlIFwnJXNcJyBwYXJhbWV0ZXIgY291bGQgbm90IGJlIGZvdW5kLic7CgokbGFuZ1snZXJyb3Jfc3ViX2ZpZWxkX3R5cGVfbWlzc2luZyddID0gJ0Egc3ViIGZpZWxkIHR5cGUgaGFzIG5vdCBiZWVuIHByb3ZpZGVkLic7CiRsYW5nWydlcnJvcl9zdWJfZmllbGRfdHlwZV9ub3RfYWxsb3dlZCddID0gJ1RoZSBzdWIgZmllbGQgdHlwZSBcJyVzXCcgaXMgbm90IHN1cHBvcnRlZC4nOwokbGFuZ1snZXJyb3Jfc3ViX2ZpZWxkX25hbWVfbWlzc2luZyddID0gJ1RoZSBzdWIgZmllbGQgdHlwZSBcJyVzXCcgcmVxdWlyZXMgYSB2YWxpZCBuYW1lIHRvIGJlIHByb3ZpZGVkLic7CiRsYW5nWydlcnJvcl9zdWJfZmllbGRfbmFtZV9mb3JtYXQnXSA9ICdUaGUgc3ViIGZpZWxkIG5hbWUgXCclc1wnLCBmb3IgdGhlIGZpZWxkIFwnJXNcJyBpcyBpbmNvcnJlY3QuIFRoZSBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBmb2xsb3dlZCBieSBhbnkgbnVtYmVyIG9mIGxldHRlcnMsIG51bWJlcnMgb3IgdW5kZXJzY29yZXMgXCdfXCcuJzsKJGxhbmdbJ2Vycm9yX25vX3N1Yl9maWVsZHMnXSA9ICdObyBzdWIgZmllbGRzIGRlZmluZWQuJzsKJGxhbmdbJ2V4dGVuZGVkX2NvbnRlbnRfYmxvY2tzJ10gPSAnRXh0ZW5kZWQgQ29udGVudCBCbG9ja3MnOwoKJGxhbmdbJ2ZpZWxkcyddID0gJ0ZpZWxkcyc7CiRsYW5nWydmaWVsZF9lcnJvciddID0gJ1BsZWFzZSBzcGVjaWZ5IGEgY29ycmVjdCBmaWVsZCBwYXJhbWV0ZXIgZm9yIHRoZSBFQ0IyIGNvbnRlbnQgYmxvY2sgXCclc1wnLic7CiRsYW5nWydmaWVsZF90eXBlcyddID0gJ0ZpZWxkIHR5cGVzJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0V4dGVuZGVkIENvbnRlbnQgQmxvY2tzJzsKCiRsYW5nWydnYWxsZXJ5X21vZHVsZV9lcnJvciddID0gJ0dhbGxlcnkgbW9kdWxlIGlzIG5vdCBpbnN0YWxsZWQuJzsKCiRsYW5nWydoZWxwX3RodW1ibmFpbFdpZHRoJ10gPSAnUHJvdmlkZXMgYSBkZWZhdWx0IHRodW1ibmFpbCB3aWR0aCBmb3IgYWxsIEVDQjIgZ2VuZXJhdGVkIHRodW1ibmFpbHMuIElmIHdpZHRoIGlzIG5vdCBzZXQgdGhlIHJhdGlvIG9mIHRoZSBpbWFnZSB3aWxsIGJlIHVzZWQgdG8gY2FsY3VsYXRlIGl0Ljxicj4KSWYgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBub3Qgc2V0LCB0aGUgQ01TTVMgVGh1bWJuYWlsIFdpZHRoICYgSGVpZ2h0IHdpbGwgYmUgdXNlZC48YnI+ClRodW1uYmFpbCB3aWR0aCAmIGhlaWdodCBjYW4gYWxzbyBiZSBzZXQgYnkgZWFjaCBjb250ZW50IGJsb2NrLic7CiRsYW5nWydoZWxwX3RodW1ibmFpbEhlaWdodCddID0gJ1Byb3ZpZGVzIGEgZGVmYXVsdCB0aHVtYm5haWwgaGVpZ2h0IGZvciBhbGwgRUNCMiBnZW5lcmF0ZWQgdGh1bWJuYWlscy4gSWYgaGVpZ2h0IGlzIG5vdCBzZXQgdGhlIHJhdGlvIG9mIHRoZSBpbWFnZSB3aWxsIGJlIHVzZWQgdG8gY2FsY3VsYXRlIGl0Ljxicj4KSWYgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBub3Qgc2V0LCB0aGUgQ01TTVMgVGh1bWJuYWlsIFdpZHRoICYgSGVpZ2h0IHdpbGwgYmUgdXNlZC48YnI+ClRodW1uYmFpbCB3aWR0aCAmIGhlaWdodCBjYW4gYWxzbyBiZSBzZXQgYnkgZWFjaCBjb250ZW50IGJsb2NrLic7CiRsYW5nWydoaWRlJ10gPSAnSGlkZSc7CgokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CgokbGFuZ1snbWF4X2ZpbGVzX3RleHQnXSA9ICdZb3UgaGF2ZSBhbHJlYWR5IHVwbG9hZGVkIHRoZSBtYXhpbXVtIG9mICVzIGZpbGVzJzsKJGxhbmdbJ21heF9maWxlc191bmxpbWl0ZWRfdGV4dCddID0gJ1lvdSBoYXZlIGFscmVhZHkgdXBsb2FkZWQgdGhlIG1heGltdW0gb2YgdW5saW1pdGVkIGZpbGVzJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ1RoaXMgbW9kdWxlIGVuYWJsZXMgZXh0cmEgdHlwZXMgb2YgY29udGVudCBibG9jayBmb3IgcGFnZSB0ZW1wbGF0ZXMnOwokbGFuZ1snbW9kdWxlX2Vycm9yJ10gPSAnVGhlIFwnJXNcJyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZS4nOwoKJGxhbmdbJ25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHBlcm1pc3Npb24gdG8gdXNlIHRoaXMgbW9kdWxlJzsKJGxhbmdbJ25vbmVfc2VsZWN0ZWQnXSA9ICctLS0gbm9uZSAtLS0nOwoKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25zJzsKJGxhbmdbJ29wdGlvbnNfc2F2ZWQnXSA9ICdPcHRpb25zIHNhdmVkJzsKCiRsYW5nWydwYXJhbWV0ZXJfbWlzc2luZyddID0gJ1BsZWFzZSBzcGVjaWZ5IGEgXCclc1wnIHBhcmFtZXRlciBmb3IgdGhlIEVDQjIgY29udGVudCBibG9jayBcJyVzXCcuJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRXh0ZW5kZWQgQ29udGVudCBCbG9ja3Mgd2FzIHN1Y2Nlc3NmdWwgaW5zdGFsbGVkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdFeHRlbmRlZCBDb250ZW50IEJsb2NrcyB3YXMgc3VjY2Vzc2Z1bCB1bmluc3RhbGxlZCc7CgokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1JlYWxseT8gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVuaW5zdGFsbCB0aGUgRUNCMiBtb2R1bGU/JzsKJGxhbmdbJ3JlbW92ZSddID0gJ1JlbW92ZSc7CiRsYW5nWydyZW1vdmVfbGluZSddID0gJ1JlbW92ZSBsaW5lJzsKCiRsYW5nWydzYXZlX29wdGlvbnMnXSA9ICdTYXZlIE9wdGlvbnMnOwokbGFuZ1snc2VsZWN0ZWQnXSA9ICdTZWxlY3RlZCc7CiRsYW5nWydzZWxlY3QnXSA9ICdTZWxlY3QnOwoKJGxhbmdbJ3RlbXBsYXRlX2Vycm9yJ10gPSAnSW52YWxpZCB0ZW1wbGF0ZSBuYW1lIFwnJXNcJyc7CiRsYW5nWyd0aXRsZV9jdXN0b21Nb2R1bGVOYW1lJ10gPSAnQ3VzdG9tIE1vZHVsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2FkbWluU2VjdGlvbiddID0gJ01vZHVsZSBBZG1pbiBTZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3RodW1ibmFpbFdpZHRoJ10gPSAnVGh1bWJuYWlsIHdpZHRoJzsKJGxhbmdbJ3RpdGxlX3RodW1ibmFpbEhlaWdodCddID0gJ1RodW1ibmFpbCBoZWlnaHQnOwoKJGxhbmdbJ3VkdF9lcnJvciddID0gJ1VzZXIgRGVmaW5lZCBUYWcgXCclc1wnIGRvZXMgbm90IGV4aXN0JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CgoKCgoKCgoKCgojcmVnaW9uIEhlbHAKCiRsYW5nWydnZW5lcmFsX2MnXSA9IDw8PCdFT0QnCjxwPlRoZSBFeHRlbmRlZCBDb250ZW50IEJsb2NrcyAoRUNCMikgbW9kdWxlIHRvIGdpdmUgeW91IG1vcmUgcGFnZSBlZGl0aW5nIG9wdGlvbnMuIE1hbnkgYWRpdGlvbmFsIGNvbnRlbnQgYmxvY2sgdHlwZXMgYXJlIGF2YWlsYWJsZSB0byB1c2UgaW4gZWFjaCBwYWdlIHRlbXBsYXRlLiBlLmcuIGRyb3Bkb3duLCBjb2xvdXIgcGlja2VyLCBjaGVja2JveCwgcmFkaW8gYnV0dG9uLCBhbmQgbWFueSBtb3JlLjwvcD4KPGJyPgoKPGgzPlVzYWdlPC9oMz4KPHA+VXNlIHRoZSBDTVNNUyBjb3JlIDxiPntjb250ZW50X21vZHVsZX08L2I+IHRhZyB0byBhZGQgYWxsIEVDQjIgY29udGVudCBibG9ja3MgdG8gYW55IHBhZ2UgdGVtcGxhdGUuPC9wPgo8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zb21lX2ZpZWxkX3R5cGUgYmxvY2s9J3NvbWUgbmFtZScgLi4ufTwvcHJlPgo8cD5UaGUgY29yZSBjb250ZW50X21vZHVsZSB0YWcgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGZvciBBTEwgb2YgdGhlIEVDQjIgY29udGVudCBibG9ja3M6PC9wPgo8dWw+CiAgICA8bGk+bW9kdWxlIChyZXF1aXJlZCkgLSAnRUNCMic8L2xpPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSBvbmUgb2YgRUNCMiBmaWVsZCB0eXBlcyBiZWxvdzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5sYWJlbCAob3B0aW9uYWwpIC0gQSBsYWJlbCBmb3IgdGhlIGNvbnRlbnQgYmxvY2sgZm9yIHVzZSB3aGVuIGVkaXRpbmcgdGhlIHBhZ2UuPC9saT4KICAgIDxsaT5yZXF1aXJlZCAob3B0aW9uYWwpIC0gQWxsb3dzIHNwZWNpZnlpbmcgdGhhdCB0aGUgY29udGVudCBibG9jayBtdXN0IGNvbnRhaW4gc29tZSB0ZXh0LjwvbGk+CiAgICA8bGk+dGFiIChvcHRpb25hbCkgLSBUaGUgZGVzaXJlZCB0YWIgdG8gZGlzcGxheSB0aGlzIGZpZWxkIG9uIGluIHRoZSBlZGl0IGZvcm0uPGJyPlVzZSB0aGUgZm9sbG93aW5nIHRvIHNob3cgb24gYSBjb3JlIHRhYjogdGFiPSd6el8xbmF2X3RhYl9fJywgJ3p6XzJsb2dpY190YWJfXycsIG9yICd6el8zb3B0aW9uc190YWJfXycuPC9saT4KICAgIDxsaT5wcmlvcml0eSAob3B0aW9uYWwpIGludGVnZXIgLSBBbGxvd3Mgc3BlY2lmeWluZyBhbiBpbnRlZ2VyIHByaW9yaXR5IGZvciB0aGUgYmxvY2sgd2l0aGluIHRoZSB0YWIuPC9saT4KICAgIDxsaT5hc3NpZ24gKG9wdGlvbmFsKSBzdHJpbmcgLSBBc3NpZ24gdGhlIHJlc3VsdHMgdG8gYSBzbWFydHkgdmFyaWFibGUgd2l0aCB0aGF0IG5hbWUuPC9saT4KPC91bD4KCjxwPjxiPlNtYXJ0eSB0aXBzPC9iPjogUGFyYW1ldGVyIHZhbHVlcyB0aGF0IGFyZSBzaW5nbGUtd29yZCBzdHJpbmdzIGRvIG5vdCBoYXZlIHRvIGJlIHF1b3RlZCBlLmcuIGZpZWxkPWNoZWNrYm94IGlzIHRoZSBzYW1lIGFzIGZpZWxkPSdjaGVja2JveCcuIElmIHBhcmFtZXRlciB2YWx1ZXMgYXJlIHdpdGggZG91YmxlIHF1b3RlcyBzaW1wbGUgc21hcnR5IHZhcmlhYmxlcyBvciB0YWdzIGNhbiBiZSBpbmNsdWRlZCBsaWtlIHZhcj0idGVzdCAkZm9vIHtjb3VudGVyfSB0ZXN0Ii48YnI+U2VlIDxhIGhyZWY9Ii8vd3d3LnNtYXJ0eS5uZXQvZG9jcy9lbi9sYW5ndWFnZS5zeW50YXgucXVvdGVzLnRwbCIgdGFyZ2V0PSJfYmxhbmsiPlNtYXJ0eSBkb2NzIGZvciBkZXRhaWxzPC9hPi48L3A+Cgo8YnI+PGJyPgpFT0Q7CgoKJGxhbmdbJ2Fib3V0X2MnXSA9IDw8PCdFT0QnCjxwPkVDQjIgcHJvdmlkZXMgYWRkaXRpb25hbCBDb250ZW50IEJsb2NrcyBmb3IgdXNlIGluIHBhZ2UgdGVtcGxhdGVzIGZvciBDTVMgTWFkZSBTaW1wbGUgdjIrLjwvcD4KCjxwPlRoYW5rcyB0byBNYXR0IEBESUdJMyAmIFNpbW9uIEBTaW1vbjY2LCBmb3IgdGhlIHNwb25zb3JzaGlwIG9mIHRoaXMgbW9kdWxlIHRoYXQgaGF2ZSBzdXBwb3J0ZWQgdGhlIGRldmVsb3BtZW50IG9mIHRoZXNlIG5ldyBmZWF0dXJlcy48L3A+CjxwPlRoYW5rcyB0byBUb20gUGhhbmUgQHRvbXBoLCBmb3IgaGlzIGNvZGUgaW1wcm92ZW1lbnRzLCBvcHRpbWlzYXRpb25zLCBhbmQgaGVscCBjb250ZW50IChlc3BlY2lhbGx5IGEgZ3JlYXQgc2ltcGxlIHNtYXJ0eSB0aXApLjwvcD4KPHA+VGhlIEVDQjIgbW9kdWxlIGlzIGEgZm9yayBvZiB0aGUgbW9kdWxlIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIChFQ0IpLCBmb3IgQ01TTVMgdjEsIGRldmVsb3BlZCBieSBaZGVubyBLdXptYW55LjwvcD4KPGJyPjxicj4KCjxoMz5VcGdyYWRpbmcgZnJvbSBFQ0I8L2gzPgo8cD5JbnN0YWxsIEVDQjIgbW9kdWxlIGFuZCBjaGFuZ2UgYWxsICJtb2R1bGUiIHBhcmFtZXRlcnMsIGluIGNvbnRlbnRfbW9kdWxlIHRhZ3MgdG8gYmUgbW9kdWxlPSJFQ0IyIiAod2FzICJFQ0IiKS4gVGhlbiBFQ0IgY2FuIGJlIHVuaW5zdGFsbGVkLjwvcD48YnI+Cgo8aDM+VXBncmFkaW5nIGZyb20gQ0dDb250ZW50VXRpbHM8L2gzPgo8cD5JbnN0YWxsIEVDQjIgYW5kIGNoYW5nZSBhbGwgIm1vZHVsZSIgcGFyYW1ldGVycywgaW4gY29udGVudF9tb2R1bGUgdGFncyB0byBiZSBtb2R1bGU9RUNCMiAod2FzICJDR0NvbnRlbnRVdGlscyIpLjwvcD4KPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gbXVzdCBzdGF5IHRoZSBzYW1lPC9saT4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gY2hvb3NlIHRoZSBhcHByb3ByaWF0ZSBFQ0IyIGZpZWxkCiAgICA8bGk+b3RoZXIgcGFyYW1ldGVycyB3aWxsIGJlIHJlcXVpcmVkIGRlcGVuZGluZyBvbiB0aGUgZmllbGQgYW5kIHByZXZpb3VzIG9wdGlvbnMgc2V0IGluIENHQ29udGVudFV0aWxzPC9saT4KPC91bD4KPHA+Q2hlY2sgYWxsIGFyZSB3b3JraW5nIGFzIGV4cGVjdGVkLCB0aGVuIENHQ29udGVudFV0aWxzIGNhbiBiZSB1bmluc3RhbGxlZC48L3A+Cjxicj4KCjxoMz5JbXBsZW1lbnRhdGlvbjwvaDM+CjxwPkVDQjIgdXNlcyB0aGUgY29yZSBjb250ZW50IGJsb2NrcyB0byBzYXZlIGFsbCBmaWVsZCB2YWx1ZXMsIGluY2x1ZGluZyBtb3JlIGNvbXBsZXggJ2dyb3VwJyBhbmQgJ2dhbGxlcnknIGZpZWxkcyB3aXRoIG11bHRpcGxlIHN1Yi1maWVsZHMgYW5kIHJvd3MuIEFsbCBzdWNoIGRhdGEgaXMgc3RvcmVkIGJ5IGNvcmUgZnVuY3Rpb25zIGFuZCByZXRyaWV2ZWQgd2l0aCBtaW5pbWFsIG92ZXJoZWFkLiBPbmx5IGEganNvbl9kZWNvZGUgaXMgcmVxdWlyZWQgZm9yIGVhY2ggZmllbGQgZm9yIGZyb250ZW5kIGFjdGlvbnMuPC9wPgo8cD5FYWNoIEVDQjIgZmllbGQgaXMgc3RvcmVkIGluIHRoZSAnX2NvbnRlbnRfcHJvcHMnIHRhYmxlLCB1c2luZyB0aGUgJ2xvbmd0ZXh0JyBkYXRhIHR5cGUgdGhhdCBjYW4gc3RvcmUgdXAgdG8gNEdCLjwvcD4KPHA+Q29udGVudCBzYXZlZCBpbiBFQ0IyIGZpZWxkcyBpcyBhdXRvbWF0aWNhbGx5IGluZGV4ZWQgYnkgdGhlIFNlYXJjaCBhbmQgQWRtaW4gU2VhcmNoIGZ1bmN0aW9ucy48L3A+Cjxicj4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+QXMgcGVyIHRoZSBHUEwgbGljZW5jZSwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcyBpcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuClRoZSBtb2R1bGUgYXV0aG9yIGlzIG5vdCBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGlzIGNvZGUuIEhvd2V2ZXIgeW91IG1pZ2h0IGdldCBzdXBwb3J0IHRocm91Z2ggdGhlIGZvbGxvd2luZzo8L3A+Cjx1bD4KICAgIDxsaT5Gb3Igc3VwcG9ydCwgZmlyc3QgPHN0cm9uZz5zZWFyY2g8L3N0cm9uZz4gdGhlIDxhIGhyZWY9Ii8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bTwvYT4sIGZvciBpc3N1ZXMgd2l0aCB0aGUgbW9kdWxlIHNpbWlsYXIgdG8gdGhvc2UgeW91IGFyZSBmaW5kaW5nLjwvbGk+CiAgICA8bGk+VGhlbiwgaWYgbmVjZXNzYXJ5LCBvcGVuIGEgPHN0cm9uZz5uZXcgZm9ydW0gdG9waWM8L3N0cm9uZz4gdG8gcmVxdWVzdCBoZWxwLCB3aXRoIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdC48L2xpPgogICAgPGxpPkFzayBhIHF1ZXN0aW9uIG9uIHRoZSA8YSBocmVmPSIvL2Ntcy1tYWRlLXNpbXBsZS5zbGFjay5jb20iIHRhcmdldD0iX2JsYW5rIj5DTVMgTWFkZSBTaW1wbGUgU2xhY2sgY2hhbm5lbDwvYT4sIG9yIGp1c3Qgc2hhcmUgeW91IHRob3VnaHRzIGlmIHlvdSBmb3VuZCB0aGUgTW9kdWxlIHVzZWZ1bC4gPGEgaHJlZj0iLy93d3cuY21zbWFkZXNpbXBsZS5vcmcvc3VwcG9ydC9kb2N1bWVudGF0aW9uL2NoYXQiIHRhcmdldD0iX2JsYW5rIj5Kb2luIENNU01TIG9uIFNsYWNrPC9hPjwvbGk+CiAgICA8bGk+SWYgeW91IGZpbmQgYSBidWcgeW91IGNhbiA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2J1Zy9saXN0LzEzNjYiIHRhcmdldD0iX2JsYW5rIj5zdWJtaXQgYSBCdWcgUmVwb3J0PC9hPi48L2xpPgogICAgPGxpPkZvciBhbnkgZ29vZCBpZGVhcyB5b3UgY2FuIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvZmVhdHVyZV9yZXF1ZXN0L2xpc3QvMTM2NiIgdGFyZ2V0PSJfYmxhbmsiPnN1Ym1pdCBhIEZlYXR1cmUgUmVxdWVzdDwvYT4uPC9saT4KPC91bD48YnI+Cgo8aDM+U3BvbnNvciBEZXZlbG9wbWVudDwvaDM+CjxwPklmIHlvdSB3b3VsZCBsaWtlIGEgbmV3IGZpZWxkIG9yIGZlYXR1cmUgYWRkZWQgdG8gdGhpcyBtb2R1bGUsIHBsZWFzZSBjb250YWN0IG1lLiBZb3UgY2FuIHNwb25zb3IgZGV2ZWxvcG1lbnQgZnJvbSDCozUwLjwvcD48YnI+CgoKPGgzPkNvcHlyaWdodCAmYW1wOyBMaWNlbmNlPC9oMz4KPHA+Q29weXJpZ2h0IMKpIDIwMTksIENocmlzIFRheWxvciA8IGNocmlzIGF0IGJpbm5vdmF0aXZlIGRvdCBjbyBkb3QgdWsgPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPjxicj4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIEdOVSBQdWJsaWMgTGljZW5zZSB2My4gSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuIFlvdSBtYXkgb25seSB1c2UgdGhpcyBzb2Z0d2FyZSB3aGVuIHRoZXJlIGlzIGEgY2xlYXIgYW5kIG9idmlvdXMgaW5kaWNhdGlvbiBpbiB0aGUgYWRtaW4gc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIFNpbXBsZSE8L3A+PGJyPgo8YnI+CkVPRDsKCgo=]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lang/LICENCE.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBNb2R1bGU6IEVDQjIgLSBFeHRlbmRlZCBDb250ZW50IEJsb2NrcyAyDQojIEF1dGhvcjogQ2hyaXMgVGF5bG9yDQojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrDQojIExpY2VuY2U6IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMw0KIyAgICAgICAgICBzZWUgL0VDQjIvbGFuZy9MSUNFTkNFLnR4dCBvciA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAuaHRtbD4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQSBmb3JrIG9mIG1vZHVsZTogRXh0ZW5kZWQgQ29udGVudCBCbG9ja3MgKEVDQikNCiMgT3JpZ2luYWwgQXV0aG9yOiBaZGVubyBLdXptYW55ICh6ZGVub0BrdXptYW55LmJpeikgLyBrdXptYW55LmJpeiAgLyB0d2l0dGVyLmNvbS9rdXptYW55DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIyBNb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9lY2IyDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMNCiMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7DQojIHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuDQojIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMNCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uDQojIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQ0KICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDMsIDI5IEp1bmUgMjAwNw0KDQogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPg0KIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcw0KIG9mIHRoaXMgbGljZW5zZSBkb2N1bWVudCwgYnV0IGNoYW5naW5nIGl0IGlzIG5vdCBhbGxvd2VkLg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUNCg0KICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcg0Kc29mdHdhcmUgYW5kIG90aGVyIGtpbmRzIG9mIHdvcmtzLg0KDQogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZA0KdG8gdGFrZSBhd2F5IHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIHRoZSB3b3Jrcy4gIEJ5IGNvbnRyYXN0LA0KdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8NCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQ0Kc29mdHdhcmUgZm9yIGFsbCBpdHMgdXNlcnMuICBXZSwgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgdXNlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vc3Qgb2Ygb3VyIHNvZnR3YXJlOyBpdCBhcHBsaWVzIGFsc28gdG8NCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bw0KeW91ciBwcm9ncmFtcywgdG9vLg0KDQogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QNCnByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UNCmhhdmUgdGhlIGZyZWVkb20gdG8gZGlzdHJpYnV0ZSBjb3BpZXMgb2YgZnJlZSBzb2Z0d2FyZSAoYW5kIGNoYXJnZSBmb3INCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91DQp3YW50IGl0LCB0aGF0IHlvdSBjYW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBvciB1c2UgcGllY2VzIG9mIGl0IGluIG5ldw0KZnJlZSBwcm9ncmFtcywgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuDQoNCiAgVG8gcHJvdGVjdCB5b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBwcmV2ZW50IG90aGVycyBmcm9tIGRlbnlpbmcgeW91DQp0aGVzZSByaWdodHMgb3IgYXNraW5nIHlvdSB0byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4gIFRoZXJlZm9yZSwgeW91IGhhdmUNCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZg0KeW91IG1vZGlmeSBpdDogcmVzcG9uc2liaWxpdGllcyB0byByZXNwZWN0IHRoZSBmcmVlZG9tIG9mIG90aGVycy4NCg0KICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyDQpncmF0aXMgb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBwYXNzIG9uIHRvIHRoZSByZWNpcGllbnRzIHRoZSBzYW1lDQpmcmVlZG9tcyB0aGF0IHlvdSByZWNlaXZlZC4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZQ0Kb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkNCmtub3cgdGhlaXIgcmlnaHRzLg0KDQogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoNCigxKSBhc3NlcnQgY29weXJpZ2h0IG9uIHRoZSBzb2Z0d2FyZSwgYW5kICgyKSBvZmZlciB5b3UgdGhpcyBMaWNlbnNlDQpnaXZpbmcgeW91IGxlZ2FsIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IGl0Lg0KDQogIEZvciB0aGUgZGV2ZWxvcGVycycgYW5kIGF1dGhvcnMnIHByb3RlY3Rpb24sIHRoZSBHUEwgY2xlYXJseSBleHBsYWlucw0KdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlIHNvZnR3YXJlLiAgRm9yIGJvdGggdXNlcnMnIGFuZA0KYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcw0KY2hhbmdlZCwgc28gdGhhdCB0aGVpciBwcm9ibGVtcyB3aWxsIG5vdCBiZSBhdHRyaWJ1dGVkIGVycm9uZW91c2x5IHRvDQphdXRob3JzIG9mIHByZXZpb3VzIHZlcnNpb25zLg0KDQogIFNvbWUgZGV2aWNlcyBhcmUgZGVzaWduZWQgdG8gZGVueSB1c2VycyBhY2Nlc3MgdG8gaW5zdGFsbCBvciBydW4NCm1vZGlmaWVkIHZlcnNpb25zIG9mIHRoZSBzb2Z0d2FyZSBpbnNpZGUgdGhlbSwgYWx0aG91Z2ggdGhlIG1hbnVmYWN0dXJlcg0KY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YNCnByb3RlY3RpbmcgdXNlcnMnIGZyZWVkb20gdG8gY2hhbmdlIHRoZSBzb2Z0d2FyZS4gIFRoZSBzeXN0ZW1hdGljDQpwYXR0ZXJuIG9mIHN1Y2ggYWJ1c2Ugb2NjdXJzIGluIHRoZSBhcmVhIG9mIHByb2R1Y3RzIGZvciBpbmRpdmlkdWFscyB0bw0KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlDQpoYXZlIGRlc2lnbmVkIHRoaXMgdmVyc2lvbiBvZiB0aGUgR1BMIHRvIHByb2hpYml0IHRoZSBwcmFjdGljZSBmb3IgdGhvc2UNCnByb2R1Y3RzLiAgSWYgc3VjaCBwcm9ibGVtcyBhcmlzZSBzdWJzdGFudGlhbGx5IGluIG90aGVyIGRvbWFpbnMsIHdlDQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMNCm9mIHRoZSBHUEwsIGFzIG5lZWRlZCB0byBwcm90ZWN0IHRoZSBmcmVlZG9tIG9mIHVzZXJzLg0KDQogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuDQpTdGF0ZXMgc2hvdWxkIG5vdCBhbGxvdyBwYXRlbnRzIHRvIHJlc3RyaWN0IGRldmVsb3BtZW50IGFuZCB1c2Ugb2YNCnNvZnR3YXJlIG9uIGdlbmVyYWwtcHVycG9zZSBjb21wdXRlcnMsIGJ1dCBpbiB0aG9zZSB0aGF0IGRvLCB3ZSB3aXNoIHRvDQphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQNCm1ha2UgaXQgZWZmZWN0aXZlbHkgcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHRoZSBHUEwgYXNzdXJlcyB0aGF0DQpwYXRlbnRzIGNhbm5vdCBiZSB1c2VkIHRvIHJlbmRlciB0aGUgcHJvZ3JhbSBub24tZnJlZS4NCg0KICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZA0KbW9kaWZpY2F0aW9uIGZvbGxvdy4NCg0KICAgICAgICAgICAgICAgICAgICAgICBURVJNUyBBTkQgQ09ORElUSU9OUw0KDQogIDAuIERlZmluaXRpb25zLg0KDQogICJUaGlzIExpY2Vuc2UiIHJlZmVycyB0byB2ZXJzaW9uIDMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLg0KDQogICJDb3B5cmlnaHQiIGFsc28gbWVhbnMgY29weXJpZ2h0LWxpa2UgbGF3cyB0aGF0IGFwcGx5IHRvIG90aGVyIGtpbmRzIG9mDQp3b3Jrcywgc3VjaCBhcyBzZW1pY29uZHVjdG9yIG1hc2tzLg0KDQogICJUaGUgUHJvZ3JhbSIgcmVmZXJzIHRvIGFueSBjb3B5cmlnaHRhYmxlIHdvcmsgbGljZW5zZWQgdW5kZXIgdGhpcw0KTGljZW5zZS4gIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLiAgIkxpY2Vuc2VlcyIgYW5kDQoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuDQoNCiAgVG8gIm1vZGlmeSIgYSB3b3JrIG1lYW5zIHRvIGNvcHkgZnJvbSBvciBhZGFwdCBhbGwgb3IgcGFydCBvZiB0aGUgd29yaw0KaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuDQpleGFjdCBjb3B5LiAgVGhlIHJlc3VsdGluZyB3b3JrIGlzIGNhbGxlZCBhICJtb2RpZmllZCB2ZXJzaW9uIiBvZiB0aGUNCmVhcmxpZXIgd29yayBvciBhIHdvcmsgImJhc2VkIG9uIiB0aGUgZWFybGllciB3b3JrLg0KDQogIEEgImNvdmVyZWQgd29yayIgbWVhbnMgZWl0aGVyIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0gb3IgYSB3b3JrIGJhc2VkDQpvbiB0aGUgUHJvZ3JhbS4NCg0KICBUbyAicHJvcGFnYXRlIiBhIHdvcmsgbWVhbnMgdG8gZG8gYW55dGhpbmcgd2l0aCBpdCB0aGF0LCB3aXRob3V0DQpwZXJtaXNzaW9uLCB3b3VsZCBtYWtlIHlvdSBkaXJlY3RseSBvciBzZWNvbmRhcmlseSBsaWFibGUgZm9yDQppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGENCmNvbXB1dGVyIG9yIG1vZGlmeWluZyBhIHByaXZhdGUgY29weS4gIFByb3BhZ2F0aW9uIGluY2x1ZGVzIGNvcHlpbmcsDQpkaXN0cmlidXRpb24gKHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24pLCBtYWtpbmcgYXZhaWxhYmxlIHRvIHRoZQ0KcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLg0KDQogIFRvICJjb252ZXkiIGEgd29yayBtZWFucyBhbnkga2luZCBvZiBwcm9wYWdhdGlvbiB0aGF0IGVuYWJsZXMgb3RoZXINCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaA0KYSBjb21wdXRlciBuZXR3b3JrLCB3aXRoIG5vIHRyYW5zZmVyIG9mIGEgY29weSwgaXMgbm90IGNvbnZleWluZy4NCg0KICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyINCnRvIHRoZSBleHRlbnQgdGhhdCBpdCBpbmNsdWRlcyBhIGNvbnZlbmllbnQgYW5kIHByb21pbmVudGx5IHZpc2libGUNCmZlYXR1cmUgdGhhdCAoMSkgZGlzcGxheXMgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSwgYW5kICgyKQ0KdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUNCmV4dGVudCB0aGF0IHdhcnJhbnRpZXMgYXJlIHByb3ZpZGVkKSwgdGhhdCBsaWNlbnNlZXMgbWF5IGNvbnZleSB0aGUNCndvcmsgdW5kZXIgdGhpcyBMaWNlbnNlLCBhbmQgaG93IHRvIHZpZXcgYSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gIElmDQp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQ0KbWVudSwgYSBwcm9taW5lbnQgaXRlbSBpbiB0aGUgbGlzdCBtZWV0cyB0aGlzIGNyaXRlcmlvbi4NCg0KICAxLiBTb3VyY2UgQ29kZS4NCg0KICBUaGUgInNvdXJjZSBjb2RlIiBmb3IgYSB3b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yaw0KZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQ0KZm9ybSBvZiBhIHdvcmsuDQoNCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwNCnN0YW5kYXJkIGRlZmluZWQgYnkgYSByZWNvZ25pemVkIHN0YW5kYXJkcyBib2R5LCBvciwgaW4gdGhlIGNhc2Ugb2YNCmludGVyZmFjZXMgc3BlY2lmaWVkIGZvciBhIHBhcnRpY3VsYXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIG9uZSB0aGF0DQppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4NCg0KICBUaGUgIlN5c3RlbSBMaWJyYXJpZXMiIG9mIGFuIGV4ZWN1dGFibGUgd29yayBpbmNsdWRlIGFueXRoaW5nLCBvdGhlcg0KdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YNCnBhY2thZ2luZyBhIE1ham9yIENvbXBvbmVudCwgYnV0IHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoYXQgTWFqb3INCkNvbXBvbmVudCwgYW5kIChiKSBzZXJ2ZXMgb25seSB0byBlbmFibGUgdXNlIG9mIHRoZSB3b3JrIHdpdGggdGhhdA0KTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuDQppbXBsZW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBpbiBzb3VyY2UgY29kZSBmb3JtLiAgQQ0KIk1ham9yIENvbXBvbmVudCIsIGluIHRoaXMgY29udGV4dCwgbWVhbnMgYSBtYWpvciBlc3NlbnRpYWwgY29tcG9uZW50DQooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtDQooaWYgYW55KSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSB3b3JrIHJ1bnMsIG9yIGEgY29tcGlsZXIgdXNlZCB0bw0KcHJvZHVjZSB0aGUgd29yaywgb3IgYW4gb2JqZWN0IGNvZGUgaW50ZXJwcmV0ZXIgdXNlZCB0byBydW4gaXQuDQoNCiAgVGhlICJDb3JyZXNwb25kaW5nIFNvdXJjZSIgZm9yIGEgd29yayBpbiBvYmplY3QgY29kZSBmb3JtIG1lYW5zIGFsbA0KdGhlIHNvdXJjZSBjb2RlIG5lZWRlZCB0byBnZW5lcmF0ZSwgaW5zdGFsbCwgYW5kIChmb3IgYW4gZXhlY3V0YWJsZQ0Kd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bw0KY29udHJvbCB0aG9zZSBhY3Rpdml0aWVzLiAgSG93ZXZlciwgaXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgd29yaydzDQpTeXN0ZW0gTGlicmFyaWVzLCBvciBnZW5lcmFsLXB1cnBvc2UgdG9vbHMgb3IgZ2VuZXJhbGx5IGF2YWlsYWJsZSBmcmVlDQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQNCndoaWNoIGFyZSBub3QgcGFydCBvZiB0aGUgd29yay4gIEZvciBleGFtcGxlLCBDb3JyZXNwb25kaW5nIFNvdXJjZQ0KaW5jbHVkZXMgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHNvdXJjZSBmaWxlcyBmb3INCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQ0KbGlua2VkIHN1YnByb2dyYW1zIHRoYXQgdGhlIHdvcmsgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIHJlcXVpcmUsDQpzdWNoIGFzIGJ5IGludGltYXRlIGRhdGEgY29tbXVuaWNhdGlvbiBvciBjb250cm9sIGZsb3cgYmV0d2VlbiB0aG9zZQ0Kc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLg0KDQogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBuZWVkIG5vdCBpbmNsdWRlIGFueXRoaW5nIHRoYXQgdXNlcnMNCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZw0KU291cmNlLg0KDQogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdA0Kc2FtZSB3b3JrLg0KDQogIDIuIEJhc2ljIFBlcm1pc3Npb25zLg0KDQogIEFsbCByaWdodHMgZ3JhbnRlZCB1bmRlciB0aGlzIExpY2Vuc2UgYXJlIGdyYW50ZWQgZm9yIHRoZSB0ZXJtIG9mDQpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZA0KY29uZGl0aW9ucyBhcmUgbWV0LiAgVGhpcyBMaWNlbnNlIGV4cGxpY2l0bHkgYWZmaXJtcyB5b3VyIHVubGltaXRlZA0KcGVybWlzc2lvbiB0byBydW4gdGhlIHVubW9kaWZpZWQgUHJvZ3JhbS4gIFRoZSBvdXRwdXQgZnJvbSBydW5uaW5nIGENCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cw0KY29udGVudCwgY29uc3RpdHV0ZXMgYSBjb3ZlcmVkIHdvcmsuICBUaGlzIExpY2Vuc2UgYWNrbm93bGVkZ2VzIHlvdXINCnJpZ2h0cyBvZiBmYWlyIHVzZSBvciBvdGhlciBlcXVpdmFsZW50LCBhcyBwcm92aWRlZCBieSBjb3B5cmlnaHQgbGF3Lg0KDQogIFlvdSBtYXkgbWFrZSwgcnVuIGFuZCBwcm9wYWdhdGUgY292ZXJlZCB3b3JrcyB0aGF0IHlvdSBkbyBub3QNCmNvbnZleSwgd2l0aG91dCBjb25kaXRpb25zIHNvIGxvbmcgYXMgeW91ciBsaWNlbnNlIG90aGVyd2lzZSByZW1haW5zDQppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlDQpvZiBoYXZpbmcgdGhlbSBtYWtlIG1vZGlmaWNhdGlvbnMgZXhjbHVzaXZlbHkgZm9yIHlvdSwgb3IgcHJvdmlkZSB5b3UNCndpdGggZmFjaWxpdGllcyBmb3IgcnVubmluZyB0aG9zZSB3b3JrcywgcHJvdmlkZWQgdGhhdCB5b3UgY29tcGx5IHdpdGgNCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvDQpub3QgY29udHJvbCBjb3B5cmlnaHQuICBUaG9zZSB0aHVzIG1ha2luZyBvciBydW5uaW5nIHRoZSBjb3ZlcmVkIHdvcmtzDQpmb3IgeW91IG11c3QgZG8gc28gZXhjbHVzaXZlbHkgb24geW91ciBiZWhhbGYsIHVuZGVyIHlvdXIgZGlyZWN0aW9uDQphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YNCnlvdXIgY29weXJpZ2h0ZWQgbWF0ZXJpYWwgb3V0c2lkZSB0aGVpciByZWxhdGlvbnNoaXAgd2l0aCB5b3UuDQoNCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXINCnRoZSBjb25kaXRpb25zIHN0YXRlZCBiZWxvdy4gIFN1YmxpY2Vuc2luZyBpcyBub3QgYWxsb3dlZDsgc2VjdGlvbiAxMA0KbWFrZXMgaXQgdW5uZWNlc3NhcnkuDQoNCiAgMy4gUHJvdGVjdGluZyBVc2VycycgTGVnYWwgUmlnaHRzIEZyb20gQW50aS1DaXJjdW12ZW50aW9uIExhdy4NCg0KICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwNCm1lYXN1cmUgdW5kZXIgYW55IGFwcGxpY2FibGUgbGF3IGZ1bGZpbGxpbmcgb2JsaWdhdGlvbnMgdW5kZXIgYXJ0aWNsZQ0KMTEgb2YgdGhlIFdJUE8gY29weXJpZ2h0IHRyZWF0eSBhZG9wdGVkIG9uIDIwIERlY2VtYmVyIDE5OTYsIG9yDQpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoDQptZWFzdXJlcy4NCg0KICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkDQpjaXJjdW12ZW50aW9uIG9mIHRlY2hub2xvZ2ljYWwgbWVhc3VyZXMgdG8gdGhlIGV4dGVudCBzdWNoIGNpcmN1bXZlbnRpb24NCmlzIGVmZmVjdGVkIGJ5IGV4ZXJjaXNpbmcgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZSB3aXRoIHJlc3BlY3QgdG8NCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3INCm1vZGlmaWNhdGlvbiBvZiB0aGUgd29yayBhcyBhIG1lYW5zIG9mIGVuZm9yY2luZywgYWdhaW5zdCB0aGUgd29yaydzDQp1c2VycywgeW91ciBvciB0aGlyZCBwYXJ0aWVzJyBsZWdhbCByaWdodHMgdG8gZm9yYmlkIGNpcmN1bXZlbnRpb24gb2YNCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuDQoNCiAgNC4gQ29udmV5aW5nIFZlcmJhdGltIENvcGllcy4NCg0KICBZb3UgbWF5IGNvbnZleSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncyBzb3VyY2UgY29kZSBhcyB5b3UNCnJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91IGNvbnNwaWN1b3VzbHkgYW5kDQphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7DQprZWVwIGludGFjdCBhbGwgbm90aWNlcyBzdGF0aW5nIHRoYXQgdGhpcyBMaWNlbnNlIGFuZCBhbnkNCm5vbi1wZXJtaXNzaXZlIHRlcm1zIGFkZGVkIGluIGFjY29yZCB3aXRoIHNlY3Rpb24gNyBhcHBseSB0byB0aGUgY29kZTsNCmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsDQpyZWNpcGllbnRzIGEgY29weSBvZiB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4NCg0KICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksDQphbmQgeW91IG1heSBvZmZlciBzdXBwb3J0IG9yIHdhcnJhbnR5IHByb3RlY3Rpb24gZm9yIGEgZmVlLg0KDQogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuDQoNCiAgWW91IG1heSBjb252ZXkgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBvciB0aGUgbW9kaWZpY2F0aW9ucyB0bw0KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUNCnRlcm1zIG9mIHNlY3Rpb24gNCwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOg0KDQogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkDQogICAgaXQsIGFuZCBnaXZpbmcgYSByZWxldmFudCBkYXRlLg0KDQogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMNCiAgICByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UgYW5kIGFueSBjb25kaXRpb25zIGFkZGVkIHVuZGVyIHNlY3Rpb24NCiAgICA3LiAgVGhpcyByZXF1aXJlbWVudCBtb2RpZmllcyB0aGUgcmVxdWlyZW1lbnQgaW4gc2VjdGlvbiA0IHRvDQogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4NCg0KICAgIGMpIFlvdSBtdXN0IGxpY2Vuc2UgdGhlIGVudGlyZSB3b3JrLCBhcyBhIHdob2xlLCB1bmRlciB0aGlzDQogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzDQogICAgTGljZW5zZSB3aWxsIHRoZXJlZm9yZSBhcHBseSwgYWxvbmcgd2l0aCBhbnkgYXBwbGljYWJsZSBzZWN0aW9uIDcNCiAgICBhZGRpdGlvbmFsIHRlcm1zLCB0byB0aGUgd2hvbGUgb2YgdGhlIHdvcmssIGFuZCBhbGwgaXRzIHBhcnRzLA0KICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vDQogICAgcGVybWlzc2lvbiB0byBsaWNlbnNlIHRoZSB3b3JrIGluIGFueSBvdGhlciB3YXksIGJ1dCBpdCBkb2VzIG5vdA0KICAgIGludmFsaWRhdGUgc3VjaCBwZXJtaXNzaW9uIGlmIHlvdSBoYXZlIHNlcGFyYXRlbHkgcmVjZWl2ZWQgaXQuDQoNCiAgICBkKSBJZiB0aGUgd29yayBoYXMgaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZhY2VzLCBlYWNoIG11c3QgZGlzcGxheQ0KICAgIEFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXM7IGhvd2V2ZXIsIGlmIHRoZSBQcm9ncmFtIGhhcyBpbnRlcmFjdGl2ZQ0KICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyDQogICAgd29yayBuZWVkIG5vdCBtYWtlIHRoZW0gZG8gc28uDQoNCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudA0Kd29ya3MsIHdoaWNoIGFyZSBub3QgYnkgdGhlaXIgbmF0dXJlIGV4dGVuc2lvbnMgb2YgdGhlIGNvdmVyZWQgd29yaywNCmFuZCB3aGljaCBhcmUgbm90IGNvbWJpbmVkIHdpdGggaXQgc3VjaCBhcyB0byBmb3JtIGEgbGFyZ2VyIHByb2dyYW0sDQppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuDQoiYWdncmVnYXRlIiBpZiB0aGUgY29tcGlsYXRpb24gYW5kIGl0cyByZXN1bHRpbmcgY29weXJpZ2h0IGFyZSBub3QNCnVzZWQgdG8gbGltaXQgdGhlIGFjY2VzcyBvciBsZWdhbCByaWdodHMgb2YgdGhlIGNvbXBpbGF0aW9uJ3MgdXNlcnMNCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yaw0KaW4gYW4gYWdncmVnYXRlIGRvZXMgbm90IGNhdXNlIHRoaXMgTGljZW5zZSB0byBhcHBseSB0byB0aGUgb3RoZXINCnBhcnRzIG9mIHRoZSBhZ2dyZWdhdGUuDQoNCiAgNi4gQ29udmV5aW5nIE5vbi1Tb3VyY2UgRm9ybXMuDQoNCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMNCm9mIHNlY3Rpb25zIDQgYW5kIDUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gY29udmV5IHRoZQ0KbWFjaGluZS1yZWFkYWJsZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLA0KaW4gb25lIG9mIHRoZXNlIHdheXM6DQoNCiAgICBhKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBpbiwgYSBwaHlzaWNhbCBwcm9kdWN0DQogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUNCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmaXhlZCBvbiBhIGR1cmFibGUgcGh5c2ljYWwgbWVkaXVtDQogICAgY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2UuDQoNCiAgICBiKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBpbiwgYSBwaHlzaWNhbCBwcm9kdWN0DQogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSBhDQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMNCiAgICBsb25nIGFzIHlvdSBvZmZlciBzcGFyZSBwYXJ0cyBvciBjdXN0b21lciBzdXBwb3J0IGZvciB0aGF0IHByb2R1Y3QNCiAgICBtb2RlbCwgdG8gZ2l2ZSBhbnlvbmUgd2hvIHBvc3Nlc3NlcyB0aGUgb2JqZWN0IGNvZGUgZWl0aGVyICgxKSBhDQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlDQogICAgcHJvZHVjdCB0aGF0IGlzIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLCBvbiBhIGR1cmFibGUgcGh5c2ljYWwNCiAgICBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2UsIGZvciBhIHByaWNlIG5vDQogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzDQogICAgY29udmV5aW5nIG9mIHNvdXJjZSwgb3IgKDIpIGFjY2VzcyB0byBjb3B5IHRoZQ0KICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZyb20gYSBuZXR3b3JrIHNlcnZlciBhdCBubyBjaGFyZ2UuDQoNCiAgICBjKSBDb252ZXkgaW5kaXZpZHVhbCBjb3BpZXMgb2YgdGhlIG9iamVjdCBjb2RlIHdpdGggYSBjb3B5IG9mIHRoZQ0KICAgIHdyaXR0ZW4gb2ZmZXIgdG8gcHJvdmlkZSB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBUaGlzDQogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQNCiAgICBvbmx5IGlmIHlvdSByZWNlaXZlZCB0aGUgb2JqZWN0IGNvZGUgd2l0aCBzdWNoIGFuIG9mZmVyLCBpbiBhY2NvcmQNCiAgICB3aXRoIHN1YnNlY3Rpb24gNmIuDQoNCiAgICBkKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGJ5IG9mZmVyaW5nIGFjY2VzcyBmcm9tIGEgZGVzaWduYXRlZA0KICAgIHBsYWNlIChncmF0aXMgb3IgZm9yIGEgY2hhcmdlKSwgYW5kIG9mZmVyIGVxdWl2YWxlbnQgYWNjZXNzIHRvIHRoZQ0KICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vDQogICAgZnVydGhlciBjaGFyZ2UuICBZb3UgbmVlZCBub3QgcmVxdWlyZSByZWNpcGllbnRzIHRvIGNvcHkgdGhlDQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UgYWxvbmcgd2l0aCB0aGUgb2JqZWN0IGNvZGUuICBJZiB0aGUgcGxhY2UgdG8NCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UNCiAgICBtYXkgYmUgb24gYSBkaWZmZXJlbnQgc2VydmVyIChvcGVyYXRlZCBieSB5b3Ugb3IgYSB0aGlyZCBwYXJ0eSkNCiAgICB0aGF0IHN1cHBvcnRzIGVxdWl2YWxlbnQgY29weWluZyBmYWNpbGl0aWVzLCBwcm92aWRlZCB5b3UgbWFpbnRhaW4NCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQ0KICAgIENvcnJlc3BvbmRpbmcgU291cmNlLiAgUmVnYXJkbGVzcyBvZiB3aGF0IHNlcnZlciBob3N0cyB0aGUNCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSwgeW91IHJlbWFpbiBvYmxpZ2F0ZWQgdG8gZW5zdXJlIHRoYXQgaXQgaXMNCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLg0KDQogICAgZSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uLCBwcm92aWRlZA0KICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nDQogICAgU291cmNlIG9mIHRoZSB3b3JrIGFyZSBiZWluZyBvZmZlcmVkIHRvIHRoZSBnZW5lcmFsIHB1YmxpYyBhdCBubw0KICAgIGNoYXJnZSB1bmRlciBzdWJzZWN0aW9uIDZkLg0KDQogIEEgc2VwYXJhYmxlIHBvcnRpb24gb2YgdGhlIG9iamVjdCBjb2RlLCB3aG9zZSBzb3VyY2UgY29kZSBpcyBleGNsdWRlZA0KZnJvbSB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgYXMgYSBTeXN0ZW0gTGlicmFyeSwgbmVlZCBub3QgYmUNCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4NCg0KICBBICJVc2VyIFByb2R1Y3QiIGlzIGVpdGhlciAoMSkgYSAiY29uc3VtZXIgcHJvZHVjdCIsIHdoaWNoIG1lYW5zIGFueQ0KdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwNCm9yIGhvdXNlaG9sZCBwdXJwb3Nlcywgb3IgKDIpIGFueXRoaW5nIGRlc2lnbmVkIG9yIHNvbGQgZm9yIGluY29ycG9yYXRpb24NCmludG8gYSBkd2VsbGluZy4gIEluIGRldGVybWluaW5nIHdoZXRoZXIgYSBwcm9kdWN0IGlzIGEgY29uc3VtZXIgcHJvZHVjdCwNCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcg0KcHJvZHVjdCByZWNlaXZlZCBieSBhIHBhcnRpY3VsYXIgdXNlciwgIm5vcm1hbGx5IHVzZWQiIHJlZmVycyB0byBhDQp0eXBpY2FsIG9yIGNvbW1vbiB1c2Ugb2YgdGhhdCBjbGFzcyBvZiBwcm9kdWN0LCByZWdhcmRsZXNzIG9mIHRoZSBzdGF0dXMNCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyDQphY3R1YWxseSB1c2VzLCBvciBleHBlY3RzIG9yIGlzIGV4cGVjdGVkIHRvIHVzZSwgdGhlIHByb2R1Y3QuICBBIHByb2R1Y3QNCmlzIGEgY29uc3VtZXIgcHJvZHVjdCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHByb2R1Y3QgaGFzIHN1YnN0YW50aWFsDQpjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudA0KdGhlIG9ubHkgc2lnbmlmaWNhbnQgbW9kZSBvZiB1c2Ugb2YgdGhlIHByb2R1Y3QuDQoNCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLA0KcHJvY2VkdXJlcywgYXV0aG9yaXphdGlvbiBrZXlzLCBvciBvdGhlciBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBpbnN0YWxsDQphbmQgZXhlY3V0ZSBtb2RpZmllZCB2ZXJzaW9ucyBvZiBhIGNvdmVyZWQgd29yayBpbiB0aGF0IFVzZXIgUHJvZHVjdCBmcm9tDQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QNCnN1ZmZpY2UgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbnRpbnVlZCBmdW5jdGlvbmluZyBvZiB0aGUgbW9kaWZpZWQgb2JqZWN0DQpjb2RlIGlzIGluIG5vIGNhc2UgcHJldmVudGVkIG9yIGludGVyZmVyZWQgd2l0aCBzb2xlbHkgYmVjYXVzZQ0KbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuDQoNCiAgSWYgeW91IGNvbnZleSBhbiBvYmplY3QgY29kZSB3b3JrIHVuZGVyIHRoaXMgc2VjdGlvbiBpbiwgb3Igd2l0aCwgb3INCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzDQpwYXJ0IG9mIGEgdHJhbnNhY3Rpb24gaW4gd2hpY2ggdGhlIHJpZ2h0IG9mIHBvc3Nlc3Npb24gYW5kIHVzZSBvZiB0aGUNClVzZXIgUHJvZHVjdCBpcyB0cmFuc2ZlcnJlZCB0byB0aGUgcmVjaXBpZW50IGluIHBlcnBldHVpdHkgb3IgZm9yIGENCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlDQpDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCB1bmRlciB0aGlzIHNlY3Rpb24gbXVzdCBiZSBhY2NvbXBhbmllZA0KYnkgdGhlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbi4gIEJ1dCB0aGlzIHJlcXVpcmVtZW50IGRvZXMgbm90IGFwcGx5DQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbA0KbW9kaWZpZWQgb2JqZWN0IGNvZGUgb24gdGhlIFVzZXIgUHJvZHVjdCAoZm9yIGV4YW1wbGUsIHRoZSB3b3JrIGhhcw0KYmVlbiBpbnN0YWxsZWQgaW4gUk9NKS4NCg0KICBUaGUgcmVxdWlyZW1lbnQgdG8gcHJvdmlkZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24gZG9lcyBub3QgaW5jbHVkZSBhDQpyZXF1aXJlbWVudCB0byBjb250aW51ZSB0byBwcm92aWRlIHN1cHBvcnQgc2VydmljZSwgd2FycmFudHksIG9yIHVwZGF0ZXMNCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yDQp0aGUgVXNlciBQcm9kdWN0IGluIHdoaWNoIGl0IGhhcyBiZWVuIG1vZGlmaWVkIG9yIGluc3RhbGxlZC4gIEFjY2VzcyB0byBhDQpuZXR3b3JrIG1heSBiZSBkZW5pZWQgd2hlbiB0aGUgbW9kaWZpY2F0aW9uIGl0c2VsZiBtYXRlcmlhbGx5IGFuZA0KYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kDQpwcm90b2NvbHMgZm9yIGNvbW11bmljYXRpb24gYWNyb3NzIHRoZSBuZXR3b3JrLg0KDQogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLA0KaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uIG11c3QgYmUgaW4gYSBmb3JtYXQgdGhhdCBpcyBwdWJsaWNseQ0KZG9jdW1lbnRlZCAoYW5kIHdpdGggYW4gaW1wbGVtZW50YXRpb24gYXZhaWxhYmxlIHRvIHRoZSBwdWJsaWMgaW4NCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcg0KdW5wYWNraW5nLCByZWFkaW5nIG9yIGNvcHlpbmcuDQoNCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4NCg0KICAiQWRkaXRpb25hbCBwZXJtaXNzaW9ucyIgYXJlIHRlcm1zIHRoYXQgc3VwcGxlbWVudCB0aGUgdGVybXMgb2YgdGhpcw0KTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLg0KQWRkaXRpb25hbCBwZXJtaXNzaW9ucyB0aGF0IGFyZSBhcHBsaWNhYmxlIHRvIHRoZSBlbnRpcmUgUHJvZ3JhbSBzaGFsbA0KYmUgdHJlYXRlZCBhcyB0aG91Z2ggdGhleSB3ZXJlIGluY2x1ZGVkIGluIHRoaXMgTGljZW5zZSwgdG8gdGhlIGV4dGVudA0KdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMNCmFwcGx5IG9ubHkgdG8gcGFydCBvZiB0aGUgUHJvZ3JhbSwgdGhhdCBwYXJ0IG1heSBiZSB1c2VkIHNlcGFyYXRlbHkNCnVuZGVyIHRob3NlIHBlcm1pc3Npb25zLCBidXQgdGhlIGVudGlyZSBQcm9ncmFtIHJlbWFpbnMgZ292ZXJuZWQgYnkNCnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4NCg0KICBXaGVuIHlvdSBjb252ZXkgYSBjb3B5IG9mIGEgY292ZXJlZCB3b3JrLCB5b3UgbWF5IGF0IHlvdXIgb3B0aW9uDQpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YNCml0LiAgKEFkZGl0aW9uYWwgcGVybWlzc2lvbnMgbWF5IGJlIHdyaXR0ZW4gdG8gcmVxdWlyZSB0aGVpciBvd24NCnJlbW92YWwgaW4gY2VydGFpbiBjYXNlcyB3aGVuIHlvdSBtb2RpZnkgdGhlIHdvcmsuKSAgWW91IG1heSBwbGFjZQ0KYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLA0KZm9yIHdoaWNoIHlvdSBoYXZlIG9yIGNhbiBnaXZlIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBwZXJtaXNzaW9uLg0KDQogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQ0KYWRkIHRvIGEgY292ZXJlZCB3b3JrLCB5b3UgbWF5IChpZiBhdXRob3JpemVkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVycyBvZg0KdGhhdCBtYXRlcmlhbCkgc3VwcGxlbWVudCB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIHdpdGggdGVybXM6DQoNCiAgICBhKSBEaXNjbGFpbWluZyB3YXJyYW50eSBvciBsaW1pdGluZyBsaWFiaWxpdHkgZGlmZmVyZW50bHkgZnJvbSB0aGUNCiAgICB0ZXJtcyBvZiBzZWN0aW9ucyAxNSBhbmQgMTYgb2YgdGhpcyBMaWNlbnNlOyBvcg0KDQogICAgYikgUmVxdWlyaW5nIHByZXNlcnZhdGlvbiBvZiBzcGVjaWZpZWQgcmVhc29uYWJsZSBsZWdhbCBub3RpY2VzIG9yDQogICAgYXV0aG9yIGF0dHJpYnV0aW9ucyBpbiB0aGF0IG1hdGVyaWFsIG9yIGluIHRoZSBBcHByb3ByaWF0ZSBMZWdhbA0KICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yDQoNCiAgICBjKSBQcm9oaWJpdGluZyBtaXNyZXByZXNlbnRhdGlvbiBvZiB0aGUgb3JpZ2luIG9mIHRoYXQgbWF0ZXJpYWwsIG9yDQogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4NCiAgICByZWFzb25hYmxlIHdheXMgYXMgZGlmZmVyZW50IGZyb20gdGhlIG9yaWdpbmFsIHZlcnNpb247IG9yDQoNCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yDQogICAgYXV0aG9ycyBvZiB0aGUgbWF0ZXJpYWw7IG9yDQoNCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lDQogICAgdHJhZGUgbmFtZXMsIHRyYWRlbWFya3MsIG9yIHNlcnZpY2UgbWFya3M7IG9yDQoNCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0DQogICAgbWF0ZXJpYWwgYnkgYW55b25lIHdobyBjb252ZXlzIHRoZSBtYXRlcmlhbCAob3IgbW9kaWZpZWQgdmVyc2lvbnMgb2YNCiAgICBpdCkgd2l0aCBjb250cmFjdHVhbCBhc3N1bXB0aW9ucyBvZiBsaWFiaWxpdHkgdG8gdGhlIHJlY2lwaWVudCwgZm9yDQogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbg0KICAgIHRob3NlIGxpY2Vuc29ycyBhbmQgYXV0aG9ycy4NCg0KICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcg0KcmVzdHJpY3Rpb25zIiB3aXRoaW4gdGhlIG1lYW5pbmcgb2Ygc2VjdGlvbiAxMC4gIElmIHRoZSBQcm9ncmFtIGFzIHlvdQ0KcmVjZWl2ZWQgaXQsIG9yIGFueSBwYXJ0IG9mIGl0LCBjb250YWlucyBhIG5vdGljZSBzdGF0aW5nIHRoYXQgaXQgaXMNCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcg0KcmVzdHJpY3Rpb24sIHlvdSBtYXkgcmVtb3ZlIHRoYXQgdGVybS4gIElmIGEgbGljZW5zZSBkb2N1bWVudCBjb250YWlucw0KYSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGJ1dCBwZXJtaXRzIHJlbGljZW5zaW5nIG9yIGNvbnZleWluZyB1bmRlciB0aGlzDQpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMNCm9mIHRoYXQgbGljZW5zZSBkb2N1bWVudCwgcHJvdmlkZWQgdGhhdCB0aGUgZnVydGhlciByZXN0cmljdGlvbiBkb2VzDQpub3Qgc3Vydml2ZSBzdWNoIHJlbGljZW5zaW5nIG9yIGNvbnZleWluZy4NCg0KICBJZiB5b3UgYWRkIHRlcm1zIHRvIGEgY292ZXJlZCB3b3JrIGluIGFjY29yZCB3aXRoIHRoaXMgc2VjdGlvbiwgeW91DQptdXN0IHBsYWNlLCBpbiB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzLCBhIHN0YXRlbWVudCBvZiB0aGUNCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZw0Kd2hlcmUgdG8gZmluZCB0aGUgYXBwbGljYWJsZSB0ZXJtcy4NCg0KICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQ0KZm9ybSBvZiBhIHNlcGFyYXRlbHkgd3JpdHRlbiBsaWNlbnNlLCBvciBzdGF0ZWQgYXMgZXhjZXB0aW9uczsNCnRoZSBhYm92ZSByZXF1aXJlbWVudHMgYXBwbHkgZWl0aGVyIHdheS4NCg0KICA4LiBUZXJtaW5hdGlvbi4NCg0KICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkNCnByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0IG90aGVyd2lzZSB0byBwcm9wYWdhdGUgb3INCm1vZGlmeSBpdCBpcyB2b2lkLCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlcg0KdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZA0KcGFyYWdyYXBoIG9mIHNlY3Rpb24gMTEpLg0KDQogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyDQpsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMgcmVpbnN0YXRlZCAoYSkNCnByb3Zpc2lvbmFsbHksIHVubGVzcyBhbmQgdW50aWwgdGhlIGNvcHlyaWdodCBob2xkZXIgZXhwbGljaXRseSBhbmQNCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQNCmhvbGRlciBmYWlscyB0byBub3RpZnkgeW91IG9mIHRoZSB2aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zDQpwcmlvciB0byA2MCBkYXlzIGFmdGVyIHRoZSBjZXNzYXRpb24uDQoNCiAgTW9yZW92ZXIsIHlvdXIgbGljZW5zZSBmcm9tIGEgcGFydGljdWxhciBjb3B5cmlnaHQgaG9sZGVyIGlzDQpyZWluc3RhdGVkIHBlcm1hbmVudGx5IGlmIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vdGlmaWVzIHlvdSBvZiB0aGUNCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUNCnJlY2VpdmVkIG5vdGljZSBvZiB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNlIChmb3IgYW55IHdvcmspIGZyb20gdGhhdA0KY29weXJpZ2h0IGhvbGRlciwgYW5kIHlvdSBjdXJlIHRoZSB2aW9sYXRpb24gcHJpb3IgdG8gMzAgZGF5cyBhZnRlcg0KeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuDQoNCiAgVGVybWluYXRpb24gb2YgeW91ciByaWdodHMgdW5kZXIgdGhpcyBzZWN0aW9uIGRvZXMgbm90IHRlcm1pbmF0ZSB0aGUNCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcg0KdGhpcyBMaWNlbnNlLiAgSWYgeW91ciByaWdodHMgaGF2ZSBiZWVuIHRlcm1pbmF0ZWQgYW5kIG5vdCBwZXJtYW5lbnRseQ0KcmVpbnN0YXRlZCwgeW91IGRvIG5vdCBxdWFsaWZ5IHRvIHJlY2VpdmUgbmV3IGxpY2Vuc2VzIGZvciB0aGUgc2FtZQ0KbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4NCg0KICA5LiBBY2NlcHRhbmNlIE5vdCBSZXF1aXJlZCBmb3IgSGF2aW5nIENvcGllcy4NCg0KICBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlIGluIG9yZGVyIHRvIHJlY2VpdmUgb3INCnJ1biBhIGNvcHkgb2YgdGhlIFByb2dyYW0uICBBbmNpbGxhcnkgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVkIHdvcmsNCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uDQp0byByZWNlaXZlIGEgY29weSBsaWtld2lzZSBkb2VzIG5vdCByZXF1aXJlIGFjY2VwdGFuY2UuICBIb3dldmVyLA0Kbm90aGluZyBvdGhlciB0aGFuIHRoaXMgTGljZW5zZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gcHJvcGFnYXRlIG9yDQptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbw0Kbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUsIGJ5IG1vZGlmeWluZyBvciBwcm9wYWdhdGluZyBhDQpjb3ZlcmVkIHdvcmssIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLg0KDQogIDEwLiBBdXRvbWF0aWMgTGljZW5zaW5nIG9mIERvd25zdHJlYW0gUmVjaXBpZW50cy4NCg0KICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5DQpyZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUgb3JpZ2luYWwgbGljZW5zb3JzLCB0byBydW4sIG1vZGlmeSBhbmQNCnByb3BhZ2F0ZSB0aGF0IHdvcmssIHN1YmplY3QgdG8gdGhpcyBMaWNlbnNlLiAgWW91IGFyZSBub3QgcmVzcG9uc2libGUNCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLg0KDQogIEFuICJlbnRpdHkgdHJhbnNhY3Rpb24iIGlzIGEgdHJhbnNhY3Rpb24gdHJhbnNmZXJyaW5nIGNvbnRyb2wgb2YgYW4NCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4NCm9yZ2FuaXphdGlvbiwgb3IgbWVyZ2luZyBvcmdhbml6YXRpb25zLiAgSWYgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVkDQp3b3JrIHJlc3VsdHMgZnJvbSBhbiBlbnRpdHkgdHJhbnNhY3Rpb24sIGVhY2ggcGFydHkgdG8gdGhhdA0KdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyDQpsaWNlbnNlcyB0byB0aGUgd29yayB0aGUgcGFydHkncyBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCBoYWQgb3IgY291bGQNCmdpdmUgdW5kZXIgdGhlIHByZXZpb3VzIHBhcmFncmFwaCwgcGx1cyBhIHJpZ2h0IHRvIHBvc3Nlc3Npb24gb2YgdGhlDQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYNCnRoZSBwcmVkZWNlc3NvciBoYXMgaXQgb3IgY2FuIGdldCBpdCB3aXRoIHJlYXNvbmFibGUgZWZmb3J0cy4NCg0KICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUNCnJpZ2h0cyBncmFudGVkIG9yIGFmZmlybWVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEZvciBleGFtcGxlLCB5b3UgbWF5DQpub3QgaW1wb3NlIGEgbGljZW5zZSBmZWUsIHJveWFsdHksIG9yIG90aGVyIGNoYXJnZSBmb3IgZXhlcmNpc2Ugb2YNCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24NCihpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0DQphbnkgcGF0ZW50IGNsYWltIGlzIGluZnJpbmdlZCBieSBtYWtpbmcsIHVzaW5nLCBzZWxsaW5nLCBvZmZlcmluZyBmb3INCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4NCg0KICAxMS4gUGF0ZW50cy4NCg0KICBBICJjb250cmlidXRvciIgaXMgYSBjb3B5cmlnaHQgaG9sZGVyIHdobyBhdXRob3JpemVzIHVzZSB1bmRlciB0aGlzDQpMaWNlbnNlIG9mIHRoZSBQcm9ncmFtIG9yIGEgd29yayBvbiB3aGljaCB0aGUgUHJvZ3JhbSBpcyBiYXNlZC4gIFRoZQ0Kd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuDQoNCiAgQSBjb250cmlidXRvcidzICJlc3NlbnRpYWwgcGF0ZW50IGNsYWltcyIgYXJlIGFsbCBwYXRlbnQgY2xhaW1zDQpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yDQpoZXJlYWZ0ZXIgYWNxdWlyZWQsIHRoYXQgd291bGQgYmUgaW5mcmluZ2VkIGJ5IHNvbWUgbWFubmVyLCBwZXJtaXR0ZWQNCmJ5IHRoaXMgTGljZW5zZSwgb2YgbWFraW5nLCB1c2luZywgb3Igc2VsbGluZyBpdHMgY29udHJpYnV0b3IgdmVyc2lvbiwNCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhDQpjb25zZXF1ZW5jZSBvZiBmdXJ0aGVyIG1vZGlmaWNhdGlvbiBvZiB0aGUgY29udHJpYnV0b3IgdmVyc2lvbi4gIEZvcg0KcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAiY29udHJvbCIgaW5jbHVkZXMgdGhlIHJpZ2h0IHRvIGdyYW50DQpwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YNCnRoaXMgTGljZW5zZS4NCg0KICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQ0KcGF0ZW50IGxpY2Vuc2UgdW5kZXIgdGhlIGNvbnRyaWJ1dG9yJ3MgZXNzZW50aWFsIHBhdGVudCBjbGFpbXMsIHRvDQptYWtlLCB1c2UsIHNlbGwsIG9mZmVyIGZvciBzYWxlLCBpbXBvcnQgYW5kIG90aGVyd2lzZSBydW4sIG1vZGlmeSBhbmQNCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uDQoNCiAgSW4gdGhlIGZvbGxvd2luZyB0aHJlZSBwYXJhZ3JhcGhzLCBhICJwYXRlbnQgbGljZW5zZSIgaXMgYW55IGV4cHJlc3MNCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudA0KKHN1Y2ggYXMgYW4gZXhwcmVzcyBwZXJtaXNzaW9uIHRvIHByYWN0aWNlIGEgcGF0ZW50IG9yIGNvdmVuYW50IG5vdCB0bw0Kc3VlIGZvciBwYXRlbnQgaW5mcmluZ2VtZW50KS4gIFRvICJncmFudCIgc3VjaCBhIHBhdGVudCBsaWNlbnNlIHRvIGENCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhDQpwYXRlbnQgYWdhaW5zdCB0aGUgcGFydHkuDQoNCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwNCmFuZCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2Ugb2YgdGhlIHdvcmsgaXMgbm90IGF2YWlsYWJsZSBmb3IgYW55b25lDQp0byBjb3B5LCBmcmVlIG9mIGNoYXJnZSBhbmQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwgdGhyb3VnaCBhDQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLA0KdGhlbiB5b3UgbXVzdCBlaXRoZXIgKDEpIGNhdXNlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB0byBiZSBzbw0KYXZhaWxhYmxlLCBvciAoMikgYXJyYW5nZSB0byBkZXByaXZlIHlvdXJzZWxmIG9mIHRoZSBiZW5lZml0IG9mIHRoZQ0KcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXINCmNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgTGljZW5zZSwgdG8gZXh0ZW5kIHRoZSBwYXRlbnQNCmxpY2Vuc2UgdG8gZG93bnN0cmVhbSByZWNpcGllbnRzLiAgIktub3dpbmdseSByZWx5aW5nIiBtZWFucyB5b3UgaGF2ZQ0KYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlDQpjb3ZlcmVkIHdvcmsgaW4gYSBjb3VudHJ5LCBvciB5b3VyIHJlY2lwaWVudCdzIHVzZSBvZiB0aGUgY292ZXJlZCB3b3JrDQppbiBhIGNvdW50cnksIHdvdWxkIGluZnJpbmdlIG9uZSBvciBtb3JlIGlkZW50aWZpYWJsZSBwYXRlbnRzIGluIHRoYXQNCmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuDQoNCiAgSWYsIHB1cnN1YW50IHRvIG9yIGluIGNvbm5lY3Rpb24gd2l0aCBhIHNpbmdsZSB0cmFuc2FjdGlvbiBvcg0KYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQ0KY292ZXJlZCB3b3JrLCBhbmQgZ3JhbnQgYSBwYXRlbnQgbGljZW5zZSB0byBzb21lIG9mIHRoZSBwYXJ0aWVzDQpyZWNlaXZpbmcgdGhlIGNvdmVyZWQgd29yayBhdXRob3JpemluZyB0aGVtIHRvIHVzZSwgcHJvcGFnYXRlLCBtb2RpZnkNCm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UNCnlvdSBncmFudCBpcyBhdXRvbWF0aWNhbGx5IGV4dGVuZGVkIHRvIGFsbCByZWNpcGllbnRzIG9mIHRoZSBjb3ZlcmVkDQp3b3JrIGFuZCB3b3JrcyBiYXNlZCBvbiBpdC4NCg0KICBBIHBhdGVudCBsaWNlbnNlIGlzICJkaXNjcmltaW5hdG9yeSIgaWYgaXQgZG9lcyBub3QgaW5jbHVkZSB3aXRoaW4NCnRoZSBzY29wZSBvZiBpdHMgY292ZXJhZ2UsIHByb2hpYml0cyB0aGUgZXhlcmNpc2Ugb2YsIG9yIGlzDQpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUNCnNwZWNpZmljYWxseSBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIFlvdSBtYXkgbm90IGNvbnZleSBhIGNvdmVyZWQNCndvcmsgaWYgeW91IGFyZSBhIHBhcnR5IHRvIGFuIGFycmFuZ2VtZW50IHdpdGggYSB0aGlyZCBwYXJ0eSB0aGF0IGlzDQppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50DQp0byB0aGUgdGhpcmQgcGFydHkgYmFzZWQgb24gdGhlIGV4dGVudCBvZiB5b3VyIGFjdGl2aXR5IG9mIGNvbnZleWluZw0KdGhlIHdvcmssIGFuZCB1bmRlciB3aGljaCB0aGUgdGhpcmQgcGFydHkgZ3JhbnRzLCB0byBhbnkgb2YgdGhlDQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkNCnBhdGVudCBsaWNlbnNlIChhKSBpbiBjb25uZWN0aW9uIHdpdGggY29waWVzIG9mIHRoZSBjb3ZlcmVkIHdvcmsNCmNvbnZleWVkIGJ5IHlvdSAob3IgY29waWVzIG1hZGUgZnJvbSB0aG9zZSBjb3BpZXMpLCBvciAoYikgcHJpbWFyaWx5DQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdA0KY29udGFpbiB0aGUgY292ZXJlZCB3b3JrLCB1bmxlc3MgeW91IGVudGVyZWQgaW50byB0aGF0IGFycmFuZ2VtZW50LA0Kb3IgdGhhdCBwYXRlbnQgbGljZW5zZSB3YXMgZ3JhbnRlZCwgcHJpb3IgdG8gMjggTWFyY2ggMjAwNy4NCg0KICBOb3RoaW5nIGluIHRoaXMgTGljZW5zZSBzaGFsbCBiZSBjb25zdHJ1ZWQgYXMgZXhjbHVkaW5nIG9yIGxpbWl0aW5nDQphbnkgaW1wbGllZCBsaWNlbnNlIG9yIG90aGVyIGRlZmVuc2VzIHRvIGluZnJpbmdlbWVudCB0aGF0IG1heQ0Kb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3Lg0KDQogIDEyLiBObyBTdXJyZW5kZXIgb2YgT3RoZXJzJyBGcmVlZG9tLg0KDQogIElmIGNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3INCm90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QNCmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhDQpjb3ZlcmVkIHdvcmsgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMNCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UgbWF5DQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UNCnRvIGNvbGxlY3QgYSByb3lhbHR5IGZvciBmdXJ0aGVyIGNvbnZleWluZyBmcm9tIHRob3NlIHRvIHdob20geW91IGNvbnZleQ0KdGhlIFByb2dyYW0sIHRoZSBvbmx5IHdheSB5b3UgY291bGQgc2F0aXNmeSBib3RoIHRob3NlIHRlcm1zIGFuZCB0aGlzDQpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uDQoNCiAgMTMuIFVzZSB3aXRoIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuDQoNCiAgTm90d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92aXNpb24gb2YgdGhpcyBMaWNlbnNlLCB5b3UgaGF2ZQ0KcGVybWlzc2lvbiB0byBsaW5rIG9yIGNvbWJpbmUgYW55IGNvdmVyZWQgd29yayB3aXRoIGEgd29yayBsaWNlbnNlZA0KdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQ0KY29tYmluZWQgd29yaywgYW5kIHRvIGNvbnZleSB0aGUgcmVzdWx0aW5nIHdvcmsuICBUaGUgdGVybXMgb2YgdGhpcw0KTGljZW5zZSB3aWxsIGNvbnRpbnVlIHRvIGFwcGx5IHRvIHRoZSBwYXJ0IHdoaWNoIGlzIHRoZSBjb3ZlcmVkIHdvcmssDQpidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsDQpzZWN0aW9uIDEzLCBjb25jZXJuaW5nIGludGVyYWN0aW9uIHRocm91Z2ggYSBuZXR3b3JrIHdpbGwgYXBwbHkgdG8gdGhlDQpjb21iaW5hdGlvbiBhcyBzdWNoLg0KDQogIDE0LiBSZXZpc2VkIFZlcnNpb25zIG9mIHRoaXMgTGljZW5zZS4NCg0KICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZg0KdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaCBuZXcgdmVyc2lvbnMgd2lsbA0KYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHByZXNlbnQgdmVyc2lvbiwgYnV0IG1heSBkaWZmZXIgaW4gZGV0YWlsIHRvDQphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4NCg0KICBFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZQ0KUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwNClB1YmxpYyBMaWNlbnNlICJvciBhbnkgbGF0ZXIgdmVyc2lvbiIgYXBwbGllcyB0byBpdCwgeW91IGhhdmUgdGhlDQpvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhhdCBudW1iZXJlZA0KdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YgdGhlDQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQNCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQoNCiAgSWYgdGhlIFByb2dyYW0gc3BlY2lmaWVzIHRoYXQgYSBwcm94eSBjYW4gZGVjaWRlIHdoaWNoIGZ1dHVyZQ0KdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MNCnB1YmxpYyBzdGF0ZW1lbnQgb2YgYWNjZXB0YW5jZSBvZiBhIHZlcnNpb24gcGVybWFuZW50bHkgYXV0aG9yaXplcyB5b3UNCnRvIGNob29zZSB0aGF0IHZlcnNpb24gZm9yIHRoZSBQcm9ncmFtLg0KDQogIExhdGVyIGxpY2Vuc2UgdmVyc2lvbnMgbWF5IGdpdmUgeW91IGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50DQpwZXJtaXNzaW9ucy4gIEhvd2V2ZXIsIG5vIGFkZGl0aW9uYWwgb2JsaWdhdGlvbnMgYXJlIGltcG9zZWQgb24gYW55DQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhDQpsYXRlciB2ZXJzaW9uLg0KDQogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5Lg0KDQogIFRIRVJFIElTIE5PIFdBUlJBTlRZIEZPUiBUSEUgUFJPR1JBTSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkNCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQNCkhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMgUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkNCk9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VEIE9SIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUg0KUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUyBUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0NCklTIFdJVEggWU9VLiAgU0hPVUxEIFRIRSBQUk9HUkFNIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRSBUSEUgQ09TVCBPRg0KQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLg0KDQogIDE2LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4NCg0KICBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdSSVRJTkcNCldJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTU9ESUZJRVMgQU5EL09SIENPTlZFWVMNClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQ0KR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgVEhFDQpVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgUFJPR1JBTSAoSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBMT1NTIE9GDQpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRA0KUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUiBQUk9HUkFNUyksDQpFVkVOIElGIFNVQ0ggSE9MREVSIE9SIE9USEVSIFBBUlRZIEhBUyBCRUVOIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GDQpTVUNIIERBTUFHRVMuDQoNCiAgMTcuIEludGVycHJldGF0aW9uIG9mIFNlY3Rpb25zIDE1IGFuZCAxNi4NCg0KICBJZiB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50eSBhbmQgbGltaXRhdGlvbiBvZiBsaWFiaWxpdHkgcHJvdmlkZWQNCmFib3ZlIGNhbm5vdCBiZSBnaXZlbiBsb2NhbCBsZWdhbCBlZmZlY3QgYWNjb3JkaW5nIHRvIHRoZWlyIHRlcm1zLA0KcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzDQphbiBhYnNvbHV0ZSB3YWl2ZXIgb2YgYWxsIGNpdmlsIGxpYWJpbGl0eSBpbiBjb25uZWN0aW9uIHdpdGggdGhlDQpQcm9ncmFtLCB1bmxlc3MgYSB3YXJyYW50eSBvciBhc3N1bXB0aW9uIG9mIGxpYWJpbGl0eSBhY2NvbXBhbmllcyBhDQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuDQoNCiAgICAgICAgICAgICAgICAgICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUw==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.ecb2Blocks.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNsYXNzIGVjYjJCbG9ja3MgCnsKCiAgICAvLyBwcml2YXRlICRjb250ZW50X2lkOwogICAgLy8gcHJpdmF0ZSAkcHJvcGVydGllczsKCgogICAgLyoqCiAgICAgKiAgdG8gYmUgdXNlZCBmb3IgbW9kdWxlIGluc3RhbGwvdXBncmFkZSBvbmx5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfZGF0YWJhc2UoKQogICAgewogICAgICAgIC8vICBjcmVhdGUgbW9kdWxlX2VjYjJfYmxvY2tzIHRhYmxlCiAgICAgICAgJGRiID0gQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0RGIoKTsKICAgICAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAgICAgJHRhYm9wdGFycmF5ID0gYXJyYXkoICdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyApOwogICAgICAgICRmaWVsZHMgPSAiCiAgICAgICAgICAgIGlkICAgICAgIEkgS0VZIEFVVE8sCiAgICAgICAgICAgIHR5cGUJIEMoMjUpIE5PVE5VTEwsCiAgICAgICAgICAgIG5hbWUJIEMoMjU1KSBOT1ROVUxMLAogICAgICAgICAgICBncm91cF9pZCBJLAogICAgICAgICAgICBhdHRyaWJzICBYLAogICAgICAgICAgICBwb3NpdGlvbiBJCiAgICAgICAgIjsKICAgICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2VjYjJfYmxvY2tzJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsKICAgICAgICAkcmVzID0gJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgdG8gYmUgdXNlZCBmb3IgbW9kdWxlIHVuaW5zdGFsbCBvbmx5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiByZW1vdmVfZGF0YWJhc2UoKQogICAgewogICAgICAgICRkYiA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldERiKCk7CiAgICAgICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CiAgICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2VjYjJfYmxvY2tzJyk7CiAgICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgfQoKCgoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.ecb2_FieldDefBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmFic3RyYWN0IGNsYXNzIGVjYjJfRmllbGREZWZCYXNlIAp7CiAgICBjb25zdCBFQ0IyX1NBTklUSVpFX1NUUklORyA9IDEwMDE7ICAgICAvLyBGSUxURVJfU0FOSVRJWkVfU1RSSU5HIHJlcGxhY2VtZW50CgogICAgcHJvdGVjdGVkICRtb2Q7CiAgICBwcm90ZWN0ZWQgJGJsb2NrX25hbWU7CiAgICBwcm90ZWN0ZWQgJGlkOwogICAgcHJvdGVjdGVkICRmaWVsZDsKICAgIHByb3RlY3RlZCAkdmFsdWU7ICAgICAgICAgICAgICAgLy8gdXNlZCB3aGVuIHVzaW5nIHNpbmdsZSBzdHJpbmcgdmFsdWVzIEVDQjIgdjEgZm9ybWF0CiAgICBwcm90ZWN0ZWQgJHZhbHVlczsgICAgICAgICAgICAgIC8vIHVzZWQgd2hlbiBqc29uIGZvcm1hdCAKICAgIHByb3RlY3RlZCAkc3ViX2ZpZWxkczsgICAgICAgICAgLy8gd2hlbiBtdWx0aXBsZSBmaWVsZHMgb2YgZGlmZmVyZW50IHR5cGVzCiAgICBwcm90ZWN0ZWQgJGZpZWxkX29iamVjdDsgICAgICAgIC8vIHN0ZENsYXNzIG9iamVjdCB0aGF0IGNvbnRhaW5zIGFsbCB2YWx1ZXMgZm9yIHNhdmluZwogICAgcHJvdGVjdGVkICRhZGRpbmc7CiAgICBwcm90ZWN0ZWQgJGRlZmF1bHRfcGFyYW1ldGVyczsKICAgIHByb3RlY3RlZCAkb3B0aW9uczsKICAgIHByb3RlY3RlZCAkYWxpYXM7CiAgICBwcm90ZWN0ZWQgJHJlc3RyaWN0X3BhcmFtczsKICAgIHByb3RlY3RlZCAkZmllbGRfYWxpYXNfdXNlZDsKICAgIHByb3RlY3RlZCAkcGFyYW1ldGVyX2FsaWFzZXM7CiAgICBwcm90ZWN0ZWQgJGRlbW9fY291bnQ7CiAgICBwcm90ZWN0ZWQgJGVycm9yOwogICAgcHJvdGVjdGVkICRpc19zdWJfZmllbGQ7CiAgICBwcm90ZWN0ZWQgJHN1Yl9wYXJlbnRfYmxvY2s7CiAgICBwcm90ZWN0ZWQgJHN1Yl9yb3dfbnVtYmVyOwogICAgcHJvdGVjdGVkICRzdWJfZmllbGRzX2lnbm9yZWRfcGFyYW1zOwogICAgcHJvdGVjdGVkICRzdWJfZmllbGRzX2lnbm9yZWRfbmFtZXM7CiAgICBwcm90ZWN0ZWQgJHN1Yl9maWVsZHNfcmVxdWlyZWQ7CiAgICBwcm90ZWN0ZWQgJGNhY2hlZF90ZW1wbGF0ZTsKICAgIAogICAgcHVibGljICR1c2VfanNvbl9mb3JtYXQ7CiAgICBwdWJsaWMgJGFsbG93ZWRfc3ViX2ZpZWxkczsKICAgIHB1YmxpYyAkc2VhcmNoYWJsZV9jb250ZW50OwogICAKCiAgICAvKioKICAgICAqICBAcGFyYW0gc3RyaW5nICRtb2QgLSBFQ0IyIG1vZHVsZSBjbGFzcwogICAgICogIEBwYXJhbSBzdHJpbmcgJGJsb2NrTmFtZQogICAgICogIEBwYXJhbSBzdHJpbmcgJGlkIC0gY29udGVudCBwYWdlIGlkIChwb3NzIG1vZHVsZSBpdGVtIGlkIC0gaW4gdGhlIGZ1dHVyZSkKICAgICAqICBAcGFyYW0gc3RyaW5nICR2YWx1ZQogICAgICogIEBwYXJhbSBhcnJheSAkcGFyYW1zCiAgICAgKiAgQHBhcmFtIGJvb2xlYW4gJGFkZGluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQ9MCkgCiAgICB7CiAgICAgICAgJHRoaXMtPm1vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUgPSAkYmxvY2tOYW1lOwogICAgICAgICR0aGlzLT5pZCA9ICRpZDsKICAgICAgICAkdGhpcy0+dmFsdWUgPSBOVUxMOwogICAgICAgICR0aGlzLT52YWx1ZXMgPSBbXTsKICAgICAgICAkdGhpcy0+c3ViX2ZpZWxkcyA9IE5VTEw7CiAgICAgICAgJHRoaXMtPmZpZWxkX29iamVjdCA9IE5VTEw7CiAgICAgICAgJHRoaXMtPmFsaWFzID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkYmxvY2tOYW1lLCBUUlVFKTsKICAgICAgICAkdGhpcy0+YWRkaW5nID0gJGFkZGluZzsKICAgICAgICAkdGhpcy0+ZmllbGQgPSAnJzsKICAgICAgICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzID0gW107CiAgICAgICAgJHRoaXMtPm9wdGlvbnMgPSBbXTsKICAgICAgICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zID0gVFJVRTsKICAgICAgICAkdGhpcy0+YWxsb3dlZF9zdWJfZmllbGRzID0gW107CiAgICAgICAgJHRoaXMtPmlzX3N1Yl9maWVsZCA9IEZBTFNFOwogICAgICAgICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrID0gJyc7CiAgICAgICAgJHRoaXMtPnN1Yl9yb3dfbnVtYmVyID0gTlVMTDsKICAgICAgICAkdGhpcy0+c3ViX2ZpZWxkc19pZ25vcmVkX3BhcmFtcyA9IFtdOwogICAgICAgICR0aGlzLT5zdWJfZmllbGRzX2lnbm9yZWRfbmFtZXMgPSBbXTsKICAgICAgICAkdGhpcy0+c3ViX2ZpZWxkc19yZXF1aXJlZCA9IEZBTFNFOwogICAgICAgIGlmICggaXNzZXQoJHBhcmFtc1snZmllbGRfYWxpYXNfdXNlZCddKSApIHsKICAgICAgICAgICAgJHRoaXMtPmZpZWxkX2FsaWFzX3VzZWQgPSAkcGFyYW1zWydmaWVsZF9hbGlhc191c2VkJ107CiAgICAgICAgfQogICAgICAgICR0aGlzLT5wYXJhbWV0ZXJfYWxpYXNlcyA9IFtdOwogICAgICAgICR0aGlzLT5kZW1vX2NvdW50ID0gMDsKICAgICAgICAkdGhpcy0+dXNlX2pzb25fZm9ybWF0ID0gRkFMU0U7ICAgICAvLyBzaW5nbGUgdmFsdWUgc3RvcmVkIGFzIHN0cmluZyBFQ0IyIHYxIGZvcm1hdCBmb3Igc2ltcGxlIGZpZWxkcwogICAgICAgIC8vICAgb25jZSBzdG9yZWQgYXMganNvbiBhbHdheXMgc3RvcmVkIGFzIGphc29uIChvdXRwdXQgYXMgb2JqZWN0IG5vdCBzdHJpbmcpIC0gY2hhbmdlZCB0byBvdXRwdXQgc2V0IGJ5IGZpZWxkdHlwZQogICAgICAgIC8vaWYgKCAhZW1wdHkoJHBhcmFtc1sncmVwZWF0ZXInXSkgKSAkdGhpcy0+dXNlX2pzb25fZm9ybWF0ID0gVFJVRTsgLy8gbW92ZSBpbnRvIGZpZWxkZGVmCiAgICAgICAgJHRoaXMtPnNlYXJjaGFibGVfY29udGVudCA9IEZBTFNFOwoKICAgIH0KCgoKICAgIC8qKgogICAgICogIEFCU1RSQUNUIE1FVEhPRFMKICAgICAqLwoKCgogICAgLyoqCiAgICAgKiAgc2V0cyB0aGUgYWxsb3dlZCBwYXJhbWV0ZXJzIGZvciB0aGlzIGZpZWxkIHR5cGUsICR0aGlzLT5wYXJhbWV0ZXJzICYgJHRoaXMtPnJlc3RyaWN0X3BhcmFtcwogICAgICovCiAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCgoKICAgIC8qKgogICAgICogIGdldCBjb250ZW50IGJsb2NrCiAgICAgKiAgQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX2lucHV0KCk7CgoKCiAgICAvKioKICAgICAqICBDT01NT04gTUVUSE9EUyAtIG1heSBiZSBvdmVycmlkZGVuIGJ5IHNvbWUgZmllbGQgdHlwZXMKICAgICAqLwoKICAgIC8qKgogICAgICogIHNldHMgJHRoaXMtPnZhbHVlIG9yICR0aGlzLT52YWx1ZXMgZnJvbSAkdmFsdWUgc2F2ZWQgZm9yIHRoZSBjb250ZW50IGJsb2NrIC0ganNvbiBvciBzdHJpbmcKICAgICAqICBNZXRob2QgY2FuIGJlIG92ZXJpZGRlbiBieSBjaGlsZCBjbGFzcywgaS5lLiBnYWxsZXJ5CiAgICAgKgogICAgICogIEBwYXJhbSBhcnJheSAkdmFsdWUgLSBzYXZlZCBjb250ZW50IGJsb2NrIHZhbHVlCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfdmFsdWVzKCR2YWx1ZSkgCiAgICB7CiAgICAgICAgJGpzb25fZGF0YSA9IGpzb25fZGVjb2RlKCR2YWx1ZSk7CiAgICAgICAgaWYgKCBqc29uX2xhc3RfZXJyb3IoKT09PUpTT05fRVJST1JfTk9ORSAmJiAhaXNfbnVtZXJpYygkanNvbl9kYXRhKSApIHsKICAgICAgICAgICAgLy8gSlNPTiBpcyB2YWxpZCAtIGVpdGhlciB1c2UgJGpzb25fZGF0YS0+dmFsdWVzIE9SICRqc29uX2RhdGEtPnN1Yl9maWVsZHMgLSBOT1QgYm90aCEKICAgICAgICAgICAgJHRoaXMtPmpzb25fZGF0YSA9ICRqc29uX2RhdGE7CiAgICAgICAgICAgICR0aGlzLT51c2VfanNvbl9mb3JtYXQgPSBUUlVFOwogICAgICAgICAgICBpZiAoICFlbXB0eSgkanNvbl9kYXRhLT52YWx1ZXMpICkgewogICAgICAgICAgICAgICAgJHRoaXMtPnZhbHVlcyA9ICRqc29uX2RhdGEtPnZhbHVlczsgIAogICAgICAgICAgICB9IGVsc2VpZiAoICFlbXB0eSgkanNvbl9kYXRhLT5zdWJfZmllbGRzKSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT52YWx1ZXMgPSAkanNvbl9kYXRhLT5zdWJfZmllbGRzOwogICAgICAgICAgICB9CgogICAgICAgIH0gZWxzZWlmICggJHRoaXMtPnVzZV9qc29uX2Zvcm1hdCApIHsgLy8gYnV0IEpTT04gbm90IHZhbGlkCiAgICAgICAgICAgICR0aGlzLT52YWx1ZXNbXSA9ICR2YWx1ZTsKCiAgICAgICAgfSBlbHNlIHsgLy8gc2luZ2xlIHN0cmluZyB2YWx1ZQogICAgICAgICAgICAkdGhpcy0+dmFsdWUgPSAkdmFsdWU7CgogICAgICAgIH0KICAgIH0KCgoKICAgIC8qKgogICAgICogIHNldHMgYWxsIGRlZmluZWQgJ29wdGlvbnMnIGFuZCBkZWZhdWx0cyBpZiBuZWNlc3NhcnkKICAgICAqICBAcGFyYW0gYXJyYXkgJHBhcmFtcyAtIGFsbCBDb250ZW50IEJsb2NrIHBhcmFtcwogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdGlhbGlzZV9vcHRpb25zKCRwYXJhbXMpCiAgICB7CiAgICAgICAgJHRoaXMtPmZpZWxkID0gJHBhcmFtc1snZmllbGQnXTsgICAgLy8gb25seSB2YWxpZCBmaWVsZCBuYW1lcyBjYW4gZ2V0IHRvIGhlcmUKICAgICAgICB1bnNldCgkcGFyYW1zWydmaWVsZCddKTsKCiAgICAgICAgLy8gc2V0IGRlZmF1bHRzCiAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycykgKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgYXMgJGRlZmF1bHRfcGFyYW0gPT4gJHNldHRpbmdzKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+b3B0aW9uc1skZGVmYXVsdF9wYXJhbV0gPSAkc2V0dGluZ3NbJ2RlZmF1bHQnXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gaGFuZGxlIGFueSBmaWVsZCBhbGlhc2VzCiAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCAoJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzIGFzICRwYXJhbV9hbGlhcyA9PiAkcGFyYW0pIHsKICAgICAgICAgICAgICAgIGlmICggaXNzZXQoJHBhcmFtc1skcGFyYW1fYWxpYXNdKSAmJiAhaXNzZXQoJHBhcmFtc1skcGFyYW1dKSApIHsKICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWyRwYXJhbV0gPSAkcGFyYW1zWyRwYXJhbV9hbGlhc107CiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHBhcmFtc1skcGFyYW1fYWxpYXNdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCBlbXB0eSgkcGFyYW1zKSApIHJldHVybjsKCiAgICAgICAgLy8gc2V0IGNsZWFuZWQgb3B0aW9ucwogICAgICAgIGlmICgkdGhpcy0+cmVzdHJpY3RfcGFyYW1zKSB7CiAgICAgICAgICAgIC8vIGp1c3QgYWRkIHByZS1kZWZpbmVkIHBhcmFtcwogICAgICAgICAgICBmb3JlYWNoICgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICAgICBpZiAoIGlzU2V0KCR0aGlzLT5vcHRpb25zWyRrZXldKSAmJiAhZW1wdHkoJHZhbHVlKSApIHsKICAgICAgICAgICAgICAgICAgICAkZmlsdGVyX3R5cGUgPSAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzWyRrZXldWydmaWx0ZXInXTsKICAgICAgICAgICAgICAgICAgICBpZiAoICRmaWx0ZXJfdHlwZT09c2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkcgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5vcHRpb25zWyRrZXldID0gJHRoaXMtPm1vZC0+ZWNiMl9zYW5pdGl6ZV9zdHJpbmcoICR2YWx1ZSApOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5vcHRpb25zWyRrZXldID0gZmlsdGVyX3ZhciggJHZhbHVlLCAkZmlsdGVyX3R5cGUgKTsgCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gYWRkIGFsbCBwYXJhbXMgYXMgb3B0aW9ucyAtIGUuZyB0byBwYXNzIHVua25vd24gcGFyYW1ldGVycyBvbnRvIG1vZHVsZXMKICAgICAgICAgICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgJHRoaXMtPm9wdGlvbnNbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIHNldCBkZWZhdWx0IHZhbHVlIGlmIGFkZGluZwogICAgICAgIGlmICggJHRoaXMtPmFkZGluZyAmJiBpc3NldCgkdGhpcy0+b3B0aW9uc1snZGVmYXVsdCddKSApIHsKICAgICAgICAgICAgaWYgKCAkdGhpcy0+dXNlX2pzb25fZm9ybWF0ICYmIGVtcHR5KCR0aGlzLT52YWx1ZXNbMF0pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+dmFsdWVzWzBdID0gJHRoaXMtPm9wdGlvbnNbJ2RlZmF1bHQnXTsKICAgICAgICAgICAgfSBlbHNlaWYgKCBlbXB0eSgkdGhpcy0+dmFsdWUpICkgewogICAgICAgICAgICAgICAgJHRoaXMtPnZhbHVlID0gJHRoaXMtPm9wdGlvbnNbJ2RlZmF1bHQnXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICB9CgoKCiAgICAvKioKICAgICAqICBjcmVhdGUgYSBzZXQgb2Ygc3ViX2ZpZWxkcyBmcm9tIENvbnRlbnQgQmxvY2sgc3ViWF9wYXJhbXMgLi4uCiAgICAgKiAgc2V0cyAkdGhpcy0+c3ViX2ZpZWxkcyB3aXRoIGFycmF5IG9mIHN1Yl9maWVsZCBlY2IyX0ZpZWxkRGVmJ3MKICAgICAqICBAcGFyYW0gYXJyYXkgJHBhcmFtcyAtIGFsbCBDb250ZW50IEJsb2NrIHBhcmFtcwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX3N1Yl9maWVsZHMoJHBhcmFtcykKICAgIHsKICAgICAgICAkc3ViX3BhcmFtcyA9IFtdOwogICAgICAgICRzdWJfZmllbGRfbGlzdCA9IFtdOwogICAgICAgICRzdWJfZmllbGRzID0gW107CiAgICAgICAgLy8gZ2V0IGFsbCBzdWJfcGFyYW1zIHRoYXQgc3BlY2lmeSBzdWJfZmllbGRzIG9wdGlvbnMKICAgICAgICBmb3JlYWNoICgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgIGlmICggcHJlZ19tYXRjaCgnL15zdWIoWzAtOV0qKV8oW0EtWmEtejAtOV9dKykvJywgJGtleSwgJG1hdGNoZXMpICkgewogICAgICAgICAgICAgICAgJHN1Yl9wYXJhbXNbJG1hdGNoZXNbMV1dWyRtYXRjaGVzWzJdXSA9ICR2YWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJHN1Yl9wYXJhbXMgYXMgJHN1Yl9maWVsZF9wYXJhbXMpIHsKICAgICAgICAgICAgLy8gaGFuZGxlIFN1YiBGaWVsZCBBbGlhc2VzCiAgICAgICAgICAgIGlmICggaXNzZXQoJHN1Yl9maWVsZF9wYXJhbXNbJ2ZpZWxkJ10pICYmIAogICAgICAgICAgICAgICAgICFpbl9hcnJheSgkc3ViX2ZpZWxkX3BhcmFtc1snZmllbGQnXSwgJHRoaXMtPm1vZDo6RklFTERfVFlQRVMpICYmIAogICAgICAgICAgICAgICAgIGFycmF5X2tleV9leGlzdHMoJHN1Yl9maWVsZF9wYXJhbXNbJ2ZpZWxkJ10sICR0aGlzLT5tb2Q6OkZJRUxEX0FMSUFTRVMpICkgCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRzdWJfZmllbGRfcGFyYW1zWydmaWVsZF9hbGlhc191c2VkJ10gPSAkc3ViX2ZpZWxkX3BhcmFtc1snZmllbGQnXTsKICAgICAgICAgICAgICAgICRzdWJfZmllbGRfcGFyYW1zWydmaWVsZCddID0gJHRoaXMtPm1vZDo6RklFTERfQUxJQVNFU1skc3ViX2ZpZWxkX3BhcmFtc1snZmllbGQnXV07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHRlc3QgZm9yIHZhbGlkIGZpZWxkIHR5cGUgJiBuYW1lCiAgICAgICAgICAgIGlmICggIWlzc2V0KCRzdWJfZmllbGRfcGFyYW1zWydmaWVsZCddKSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvciA9ICR0aGlzLT5tb2QtPkxhbmcoJ2Vycm9yX3N1Yl9maWVsZF90eXBlX21pc3NpbmcnKTsKICAgICAgICAgICAgICAgIHJldHVybjsgIAogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggIWluX2FycmF5KCRzdWJfZmllbGRfcGFyYW1zWydmaWVsZCddLCAkdGhpcy0+YWxsb3dlZF9zdWJfZmllbGRzKSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvciA9ICR0aGlzLT5tb2QtPkxhbmcoJ2Vycm9yX3N1Yl9maWVsZF90eXBlX25vdF9hbGxvd2VkJywgJHN1Yl9maWVsZF9wYXJhbXNbJ2ZpZWxkJ10pOwogICAgICAgICAgICAgICAgcmV0dXJuOyAgCiAgICAgICAgICAgIH0gCiAgICAgICAgICAgIGlmICggIWlzc2V0KCRzdWJfZmllbGRfcGFyYW1zWyduYW1lJ10pIHx8IAogICAgICAgICAgICAgICAgIGluX2FycmF5KCAkc3ViX2ZpZWxkX3BhcmFtc1snbmFtZSddLCAkdGhpcy0+c3ViX2ZpZWxkc19pZ25vcmVkX25hbWVzKSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvciA9ICR0aGlzLT5tb2QtPkxhbmcoJ2Vycm9yX3N1Yl9maWVsZF9uYW1lX21pc3NpbmcnLCAkc3ViX2ZpZWxkX3BhcmFtc1snZmllbGQnXSk7CiAgICAgICAgICAgICAgICByZXR1cm47ICAKICAgICAgICAgICAgfSAKICAgICAgICAgICAgaWYgKCAhcHJlZ19tYXRjaCgnL15bQS1aYS16XVtBLVphLXowLTlfXSovJywgJHN1Yl9maWVsZF9wYXJhbXNbJ25hbWUnXSkgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZXJyb3IgPSAkdGhpcy0+bW9kLT5MYW5nKCdlcnJvcl9zdWJfZmllbGRfbmFtZV9mb3JtYXQnLCAkc3ViX2ZpZWxkX3BhcmFtc1snbmFtZSddLAogICAgICAgICAgICAgICAgICAgICRzdWJfZmllbGRfcGFyYW1zWydmaWVsZCddKTsKICAgICAgICAgICAgICAgIHJldHVybjsgIAogICAgICAgICAgICB9IAoKICAgICAgICAgICAgJHN1Yl90eXBlID0gJHRoaXMtPm1vZDo6RklFTERfREVGX1BSRUZJWC4kc3ViX2ZpZWxkX3BhcmFtc1snZmllbGQnXTsKICAgICAgICAgICAgJHN1Yl9uYW1lID0gJHN1Yl9maWVsZF9wYXJhbXNbJ25hbWUnXTsKICAgICAgICAgICAgJHN1Yl9wYXJhbXMgPSAkc3ViX2ZpZWxkX3BhcmFtczsgICAgLy8gYWxsIGV4Y2VwdCAnbmFtZScKICAgICAgICAgICAgdW5zZXQoICRzdWJfcGFyYW1zWyduYW1lJ10gKTsgCiAgICAgICAgICAgIC8vIHJlbW92ZSBhbnkgc3ViX2ZpZWxkc19pZ25vcmVkX3BhcmFtcwogICAgICAgICAgICBmb3JlYWNoICgkc3ViX2ZpZWxkX3BhcmFtcyBhcyAkdG1wX3BhcmFtX25hbWUgPT4gJHRtcF92YWx1ZSkgewogICAgICAgICAgICAgICAgaWYgKCBpbl9hcnJheSgkdG1wX3BhcmFtX25hbWUsICR0aGlzLT5zdWJfZmllbGRzX2lnbm9yZWRfcGFyYW1zKSApIHsKICAgICAgICAgICAgICAgICAgICB1bnNldCggJHN1Yl9wYXJhbXNbJHRtcF9wYXJhbV9uYW1lXSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkc3ViX3ZhbHVlID0gJyc7ICAvLyB0ZW1wb3JhcnkgdmFsdWUgb25seSAtIGlzIHVwZGF0ZWQgYmVmb3JlIGVhY2ggZmllbGQgZ2VuZXJhdGVkCiAgICAgICAgICAgICRzdWJfZmllbGQgPSBuZXcgJHN1Yl90eXBlKCR0aGlzLT5tb2QsICRzdWJfbmFtZSwgJHN1Yl92YWx1ZSwgJHN1Yl9wYXJhbXMsICR0aGlzLT5hZGRpbmcsICR0aGlzLT5pZCk7CiAgICAgICAgICAgICRzdWJfZmllbGQtPnNldF9hc19zdWJmaWVsZCgkdGhpcy0+YmxvY2tfbmFtZSk7IC8vICRwYXJlbnRfYmxvY2tfbmFtZQogICAgICAgICAgICAkc3ViX2ZpZWxkc1tdID0gJHN1Yl9maWVsZDsKICAgICAgICB9CgogICAgICAgIGlmICggZW1wdHkoJHN1Yl9maWVsZHMpICYmICR0aGlzLT5zdWJfZmllbGRzX3JlcXVpcmVkKSB7CiAgICAgICAgICAgICR0aGlzLT5lcnJvciA9ICR0aGlzLT5tb2QtPkxhbmcoJ2Vycm9yX25vX3N1Yl9maWVsZHMnKTsKICAgICAgICAgICAgcmV0dXJuOyAgCiAgICAgICAgfSAKCiAgICAgICAgJHRoaXMtPnN1Yl9maWVsZHMgPSAkc3ViX2ZpZWxkczsKCiAgICB9CgoKCiAgICAvKioKICAgICAqICBzZXQgdGhlICR0aGlzLT52YWx1ZSBvZiB0aGUgZmllbGRkZWYgd2hlbiBiZWluZyB1c2VkIG11bGl0cGxlIHRpbWVzIHdpdGhpbiBhIGdyb3VwCiAgICAgKiAgQHBhcmFtIG9iamVjdCAkZmllbGRzIC0gYWxsIHZhbHVlcyBmb3IgdGhlIGVudGlyZSByb3cgb2YgZmllbGRzIGluIGEgZ3JvdXAKICAgICAqICBAcGFyYW0gaW50ZWdlciAkcm93X251bWJlciAtIHRvIGJlIHVzZWQgdG8gZ3JvdXAgYWxsIHJvdyB2YWx1ZXMgdG9nZXRoZXIKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9zdWJfZmllbGRfdmFsdWUoJGZpZWxkcywgJHJvd19udW1iZXIpCiAgICB7CiAgICAgICAgJHRoaXMtPnZhbHVlID0gJyc7ICAgICAgLy8gcmVzZXQgCiAgICAgICAgJHRoaXMtPnZhbHVlcyA9ICcnOyAgICAgLy8gcmVzZXQgCiAgICAgICAgLy8gc2V0IHZhbHVlIHRvIGRlZmF1bHQKICAgICAgICBpZiAoIGlzc2V0KCR0aGlzLT5vcHRpb25zWydkZWZhdWx0J10pICkgeyAgIAogICAgICAgICAgICAkdGhpcy0+dmFsdWUgPSAkdGhpcy0+b3B0aW9uc1snZGVmYXVsdCddOwogICAgICAgIH0KICAgICAgICAvLyBzZXQgdG8gZmllbGRzIHZhbHVlIGlmIGF2YWlsYWJsZQogICAgICAgIGlmICggaXNzZXQoJGZpZWxkcy0+eyR0aGlzLT5ibG9ja19uYW1lfSkgKSB7CiAgICAgICAgICAgICRibG9ja192YWx1ZSA9ICRmaWVsZHMtPnskdGhpcy0+YmxvY2tfbmFtZX07CiAgICAgICAgICAgIGlmICggaXNfc3RyaW5nKCRibG9ja192YWx1ZSkgfHwgaXNfbnVtZXJpYygkYmxvY2tfdmFsdWUpICkgewogICAgICAgICAgICAgICAgJHRoaXMtPnZhbHVlID0gJGJsb2NrX3ZhbHVlOwogICAgICAgICAgICB9IGVsc2VpZiAoIGlzX2FycmF5KCRibG9ja192YWx1ZSkgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+dmFsdWVzID0gJGJsb2NrX3ZhbHVlOwogICAgICAgICAgICB9IGVsc2VpZiAoIGlzX29iamVjdCgkYmxvY2tfdmFsdWUpICYmIGlzc2V0KCRibG9ja192YWx1ZS0+dmFsdWVzKSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT52YWx1ZXMgPSAkYmxvY2tfdmFsdWUtPnZhbHVlczsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+c3ViX3Jvd19udW1iZXIgPSAkcm93X251bWJlcjsKCiAgICB9CgoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBMYWJlbCBmb3IgdGhlIGZpZWxkIC0gZGVmYXVsdHMgdG8gYmxvY2tfbmFtZSBpZiBsYWJlbCBub3Qgc2V0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRfbGFiZWwoKQogICAgewogICAgICAgICRsYWJlbCA9ICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydsYWJlbCddKSApID8gJHRoaXMtPm9wdGlvbnNbJ2xhYmVsJ10gOiAkdGhpcy0+YmxvY2tfbmFtZTsKICAgICAgICByZXR1cm4gJGxhYmVsOwoKICAgIH0KCgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGlmIGkuZS4gJ2lubGluZV9sYWJlbCcgc2V0IHJldHVybiBGQUxTRSAtIGRlZmF1bHQgVFJVRQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNfZmllbGRfbGFiZWxfdmlzaWJsZSgpCiAgICB7CiAgICAgICAgJHZpc2libGUgPSAoIGVtcHR5KCR0aGlzLT5vcHRpb25zWydpbmxpbmVfbGFiZWwnXSkgKSA/IFRSVUUgOiBGQUxTRTsKICAgICAgICByZXR1cm4gJHZpc2libGU7CiAgICB9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBmaWVsZGRlZiBhcyBhIHN1Yl9maWVsZCBhbmQgc2V0cyB0aGUgc3ViX3BhcmVudF9ibG9jawogICAgICogIEBwYXJhbSBzdHJpbmcgJHBhcmVudF9ibG9ja19uYW1lIC0gYmxvY2tfbmFtZSBvZiB0aGUgcGFyZW50IGJsb2NrCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYXNfc3ViZmllbGQoJHBhcmVudF9ibG9ja19uYW1lKQogICAgewogICAgICAgICR0aGlzLT5pc19zdWJfZmllbGQgPSBUUlVFOwogICAgICAgICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrID0gJHBhcmVudF9ibG9ja19uYW1lOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgcmV0dXJucyB0aGUgZmllbGQgdHlwZSAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF90eXBlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmZpZWxkOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgcmV0dXJucyB0aGUgZGVmYXVsdCBpbnB1dCBzbWFydHkgdGVtcGxhdGUgY29udGVudHMgCiAgICAgKiAgcmV0cmlldmVkIGZyb20gY2FjaGVkX3RlbXBsYXRlIGlmIGFscmVhZHkgcmVhZCBhbmQgc2F2ZWQKICAgICAqICBzZWUgTElTRUZpZWxkZGVmQmFzZSBmb3IgaWRlYXMgOikKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF90ZW1wbGF0ZSgpCiAgICB7CiAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPmNhY2hlZF90ZW1wbGF0ZSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y2FjaGVkX3RlbXBsYXRlOwogICAgICAgIH0KCiAgICAgICAgLy8gZGVmYXVsdCBpbnB1dCBzbWFydHkgdGVtcGxhdGUgZmlsZW5hbWUKICAgICAgICAkZmlsZW5hbWUgPSAkdGhpcy0+bW9kLT5HZXRNb2R1bGVQYXRoKCkgLkRJUkVDVE9SWV9TRVBBUkFUT1IuICdsaWInIC5ESVJFQ1RPUllfU0VQQVJBVE9SLiAKICAgICAgICAgICAgJ2ZpZWxkZGVmcycgLkRJUkVDVE9SWV9TRVBBUkFUT1IuICR0aGlzLT5maWVsZCAuRElSRUNUT1JZX1NFUEFSQVRPUi4gCiAgICAgICAgICAgICR0aGlzLT5tb2Q6OklOUFVUX1RFTVBMQVRFX1BSRUZJWCAuICR0aGlzLT5tb2Q6OkZJRUxEX0RFRl9QUkVGSVggLiAkdGhpcy0+ZmllbGQgLiAnLnRwbCc7CgogICAgICAgIGlmIChpc19yZWFkYWJsZSgkZmlsZW5hbWUpKSB7CiAgICAgICAgICAgICR0aGlzLT5jYWNoZWRfdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZpbGVuYW1lKTsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jYWNoZWRfdGVtcGxhdGU7CiAgICAgICAgfQoKICAgIH0KCgoKICAgIC8qKgogICAgICogIEByZXR1cm4gYXJyYXkgb2YgJ3ZhbHVlJyA9PiAnVGV4dCcKICAgICAqICBAcGFyYW0gc3RyaW5nICRjb21tYV9zZXBhcmF0ZWRfbGlzdCBvZiAnVGV4dCcgb3IgJ1RleHQ9dmFsdWUnIGUuZy4gJ0FwcGxlPWFwcGxlLE9yYW5nZT1vcmFuZ2UsLi4uJwogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2FycmF5X2Zyb21fY3NsKCAkY29tbWFfc2VwYXJhdGVkX2xpc3QgKQogICAgewogICAgICAgICR2YWx1ZV9vcHRpb25zID0gW107CiAgICAgICAgaWYgKCAhZW1wdHkoJGNvbW1hX3NlcGFyYXRlZF9saXN0KSApIHsKICAgICAgICAgICAgJHRtcE9wdGlvbnMgPSBleHBsb2RlKCcsJywgJGNvbW1hX3NlcGFyYXRlZF9saXN0KTsKICAgICAgICAgICAgZm9yZWFjaCAoJHRtcE9wdGlvbnMgYXMgJG9wdCkgewogICAgICAgICAgICAgICAgJGtleV92YWwgPSBleHBsb2RlKCAnPScsIHRyaW0oJG9wdCkgKTsKICAgICAgICAgICAgICAgIGlmICggY291bnQoJGtleV92YWwpPjEgKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbHVlX29wdGlvbnNbJGtleV92YWxbMV1dID0gJGtleV92YWxbMF07CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICR2YWx1ZV9vcHRpb25zWyRrZXlfdmFsWzBdXSA9ICRrZXlfdmFsWzBdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9ICAgIAogICAgICAgIH0KICAgICAgICByZXR1cm4gJHZhbHVlX29wdGlvbnM7CiAgICB9CgoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIGFycmF5ICRvcHRpb25zIG9mICd2YWx1ZScgPT4gJ1RleHQnCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkbW9kdWxlX25hbWUKICAgICAqICBAcGFyYW0gYXJyYXkgJG1vZHVsZV9wYXJhbXMgIC0gaWYgcHJvdmlkZWQgYW4gYXJyYXkgb2YgYWxsIHBhcmFtYXRlcnMgdG8gYmUgcGFzc2VkIHRvIHRoZSBtb2R1bGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gaWYgbm90IHByb3ZpZGVkICR0aGlzLT5vcHRpb25zIGlzIHVzZWQKICAgICAqICBAcGFyYW0gYXJyYXkgJGV4Y2x1ZGVfb3B0aW9ucyAtIGV4Y2x1ZGVzIGFueSBzcGVjaWZpZWQgb3B0aW9ucyBmcm9tIGJlaW5nIHBhc3NlZCB0byB0aGUgbW9kdWxlCiAgICAgKgogICAgICogICAgICAgICBUaGUgbW9kdWxlIGNhbGwgbmVlZHMgdG8gZWl0aGVyOgogICAgICogICAgICAgICAgICAgICAgICAgICAgLSBzZXQgJG9wdGlvbnMgYXJyYXkgb2YgJ3ZhbHVlJyA9PiAnVGV4dCcgd2l0aCBzY29wZT1nbG9iYWwsIG9yIAogICAgICogICAgICAgICAgICAgICAgICAgICAgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mICdUZXh0LC4uLicgb3IgJ1RleHQ9dmFsdWUsLi4uJyAgCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfdmFsdWVzX2Zyb21fbW9kdWxlKCRtb2R1bGVfbmFtZSwgJG1vZHVsZV9wYXJhbXM9W10sICRleGNsdWRlX29wdGlvbnM9W10pCiAgICB7CiAgICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSggJG1vZHVsZV9uYW1lICk7CiAgICAgICAgaWYgKCAhJG1vZHVsZSApIHJldHVybjsKCiAgICAgICAgJG1vZHVsZV9wYXJhbXMgPSBbXTsKICAgICAgICBmb3JlYWNoICgkdGhpcy0+b3B0aW9ucyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICBpZiAoICFpbl9hcnJheSgka2V5LCAkZXhjbHVkZV9vcHRpb25zKSAmJiAhZW1wdHkoJHZhbHVlKSApICRtb2R1bGVfcGFyYW1zWyRrZXldID0gJHZhbHVlOwogICAgICAgIH0KICAgICAgICAkY21zX21vZHVsZV9jYWxsID0gIntjbXNfbW9kdWxlIG1vZHVsZT0iLiRtb2R1bGVfbmFtZTsKICAgICAgICBmb3JlYWNoICgkbW9kdWxlX3BhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAkY21zX21vZHVsZV9jYWxsIC49ICIgJGtleT1cIiR2YWx1ZVwiIjsKICAgICAgICB9CgogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJG1vZHVsZV92YWx1ZXMgPSB0cmltKHN0cmlwX3RhZ3MoJHNtYXJ0eS0+ZmV0Y2goJ3N0cmluZzonLiRjbXNfbW9kdWxlX2NhbGwuJ30nKSkpOwogICAgICAgICRvcHRpb25zID0gJHNtYXJ0eS0+Z2V0VGVtcGxhdGVWYXJzKCdvcHRpb25zJyk7CgogICAgICAgIGlmICggIWVtcHR5KCRvcHRpb25zKSAmJiBpc19hcnJheSgkb3B0aW9ucykgKSB7ICAgLy8gZmlyc3Qgc2VlIGlmICRvcHRpb25zIGFycmF5IHNldCAKICAgICAgICAgICAgcmV0dXJuICRvcHRpb25zOwogICAgICAgIH0KICAgICAgICBpZiAoICFlbXB0eSgkbW9kdWxlX3ZhbHVlcykgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Z2V0X2FycmF5X2Zyb21fY3NsKCAkbW9kdWxlX3ZhbHVlcyApOwogICAgICAgIH0KCiAgICB9CgoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIGFycmF5ICR0aGlzLT5vcHRpb25zW3ZhbHVlc10gdG8gdGhlIHJlc3VsdCBvZiBhIGNhbGwgdG8gbW9kdWxlICRtb2R1bGVfbmFtZQogICAgICogIEBwYXJhbSBzdHJpbmcgJHVkdF9uYW1lIC0gdWR0IG5lZWRzIHRvIHJldHVybiBlaXRoZXI6CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAtIGFuIGFycmF5IG9mICdUZXh0JyA9PiAndmFsdWUnIC0gZG9uJ3QgYXNrIGl0J3MgYSBsZWdhY3kgdGhpbmchCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgJ1RleHQsLi4uJyBvciAnVGV4dD12YWx1ZSwuLi4nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3ZhbHVlc19mcm9tX3VkdCgkdWR0X25hbWUpCiAgICB7CiAgICAgICAgaWYgKCFVc2VyVGFnT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPlVzZXJUYWdFeGlzdHMoJHRoaXMtPm9wdGlvbnNbJ3VkdCddKSkgewogICAgICAgICAgICAkdGhpcy0+ZXJyb3IgPSAkdGhpcy0+bW9kLT5MYW5nKCd1ZHRfZXJyb3InLCAkdGhpcy0+b3B0aW9uc1sndWR0J10pOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgICR0bXAgPSBbXTsKICAgICAgICAkdmFsdWVfb3B0aW9ucyA9IFVzZXJUYWdPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+Q2FsbFVzZXJUYWcoJHRoaXMtPm9wdGlvbnNbJ3VkdCddLCAkdG1wKTsKICAgICAgICBpZiAoICEkdmFsdWVfb3B0aW9ucyApIHsKICAgICAgICAgICAgJHZhbHVlX29wdGlvbnMgPSBbXTsKCiAgICAgICAgfSBlbHNlaWYgKCAhaXNfYXJyYXkoJHZhbHVlX29wdGlvbnMpICkgeyAgICAvLyBjb252ZXJ0IGNzbCBzdHJpbmcgaW50byBhcnJheQogICAgICAgICAgICAkdmFsdWVfb3B0aW9ucyA9ICR0aGlzLT5nZXRfYXJyYXlfZnJvbV9jc2woJHZhbHVlX29wdGlvbnMpOwoKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5X2ZsaXAoJHZhbHVlX29wdGlvbnMpOyAgLy8gZm9yIGxlZ2FjeSBjb21wYXRpYmlsaXR5CiAgICB9CgoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIGFycmF5ICRvcHRpb25zIGFycmF5IG9mICd2YWx1ZScgPT4gJ1RleHQnCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkdGVtcGxhdGVfbmFtZSAtIHRlbXBsYXRlIG5lZWRzIHRvIGVpdGhlcjoKICAgICAqICAgICAgICAgICAgICAgICAgICAgIC0gc2V0ICRvcHRpb25zIGFycmF5IG9mICd2YWx1ZScgPT4gJ1RleHQnIHdpdGggc2NvcGU9Z2xvYmFsLCBvciAKICAgICAqICAgICAgICAgICAgICAgICAgICAgIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiAnVGV4dCwuLi4nIG9yICdUZXh0PXZhbHVlLC4uLicgICAKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF92YWx1ZXNfZnJvbV90ZW1wbGF0ZSgkdGVtcGxhdGVfbmFtZSkKICAgIHsKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwoKICAgICAgICBpZiAoICEkc21hcnR5LT50ZW1wbGF0ZUV4aXN0cygnY21zX3RlbXBsYXRlOicuJHRlbXBsYXRlX25hbWUpICkgewogICAgICAgICAgICAkdGhpcy0+ZXJyb3IgPSAkdGhpcy0+bW9kLT5MYW5nKCd0ZW1wbGF0ZV9lcnJvcicsICR0ZW1wbGF0ZV9uYW1lKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgJHRlbXBsYXRlX3ZhbHVlcyA9IHRyaW0oICRzbWFydHktPmZldGNoKCAnY21zX3RlbXBsYXRlOicuJHRlbXBsYXRlX25hbWUgKSApOwogICAgICAgICRvcHRpb25zID0gJHNtYXJ0eS0+Z2V0VGVtcGxhdGVWYXJzKCdvcHRpb25zJyk7CgogICAgICAgIGlmICggIWVtcHR5KCRvcHRpb25zKSAmJiBpc19hcnJheSgkb3B0aW9ucykgKSB7ICAgLy8gZmlyc3Qgc2VlIGlmICRvcHRpb25zIGFycmF5IHNldCAKICAgICAgICAgICAgcmV0dXJuICRvcHRpb25zOwogICAgICAgIH0KICAgICAgICBpZiAoICFlbXB0eSgkdGVtcGxhdGVfdmFsdWVzKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRfYXJyYXlfZnJvbV9jc2woICR0ZW1wbGF0ZV92YWx1ZXMgKTsKICAgICAgICB9CgogICAgfQoKCgogICAgLyoqCiAgICAgKiAgQHJldHVybiBhcnJheSAkb3B0aW9ucyBhcnJheSBvZiAndmFsdWUnID0+ICdUZXh0JwogICAgICogIEBwYXJhbSBzdHJpbmcgJGN1c3RvbWdzX2ZpZWxkIC0gbmVlZHMgdG8gYmUgYSAndGV4dGFyZWEnIGNvbnRhaW5pbmcgYSBzZXQgb2YgJ1RleHQnIG9yICdUZXh0PXZhbHVlJywKICAgICAqICAgICAgZWl0aGVyIG9uIHNlcGFyYXRlIGxpbmVzIG9yIHNlcGFyYXRlZCBieSBjb21tYXMKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF92YWx1ZXNfZnJvbV9jdXN0b21ncygkY3VzdG9tZ3NfZmllbGQpCiAgICB7CiAgICAgICAgJEN1c3RvbUdTID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDdXN0b21HUycpOwogICAgICAgIGlmICggIWlzX29iamVjdCgkQ3VzdG9tR1MpICkgewogICAgICAgICAgICAkdGhpcy0+ZXJyb3IgPSAkdGhpcy0+bW9kLT5MYW5nKCdtb2R1bGVfZXJyb3InLCAnQ3VzdG9tIEdsb2JhbCBTZXR0aW5ncycpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkQ0dTX2ZpZWxkID0gJEN1c3RvbUdTLT5HZXRGaWVsZCggJGN1c3RvbWdzX2ZpZWxkICk7CiAgICAgICAgaWYgKCBlbXB0eSgkQ0dTX2ZpZWxkWyd2YWx1ZSddKSApIHsKICAgICAgICAgICAgJHRoaXMtPmVycm9yID0gJHRoaXMtPm1vZC0+TGFuZygnY3VzdG9tZ3NfZmllbGRfZXJyb3InLCAkY3VzdG9tZ3NfZmllbGQpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfSAKICAgICAgICAKICAgICAgICAvLyByZXBsYWNlIGFueSBuZXdsaW5lcyB3aXRoIGNvbW1hcyB0byBzZXBhcmF0ZSBlYWNoIHRpdGxlLXZhbHVlIHBhaXIKICAgICAgICAkQ0dTX2ZpZWxkID0gc3RyX3JlcGxhY2UoUEhQX0VPTCwgJywnLCAkQ0dTX2ZpZWxkWyd2YWx1ZSddKTsKICAgICAgICByZXR1cm4gJHRoaXMtPmdldF9hcnJheV9mcm9tX2NzbCggJENHU19maWVsZCApOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgQHJldHVybiBzdHJpbmcgZm9ybWF0dGVkIGh0bWwgZnJvbSBzbWFydHkgaGVscCB0ZW1wbGF0ZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX2hlbHAoKQogICAgewogICAgICAgICRoZWxwX2ZpbGVuYW1lID0gJHRoaXMtPm1vZC0+R2V0TW9kdWxlUGF0aCgpIC5ESVJFQ1RPUllfU0VQQVJBVE9SLiAnbGliJyAuRElSRUNUT1JZX1NFUEFSQVRPUi4gCiAgICAgICAgICAgICdmaWVsZGRlZnMnIC5ESVJFQ1RPUllfU0VQQVJBVE9SLiAkdGhpcy0+ZmllbGQgLkRJUkVDVE9SWV9TRVBBUkFUT1IuIAogICAgICAgICAgICAkdGhpcy0+bW9kOjpIRUxQX1RFTVBMQVRFX1BSRUZJWCAuICR0aGlzLT5tb2Q6OkZJRUxEX0RFRl9QUkVGSVggLiAkdGhpcy0+ZmllbGQgLiAnLnRwbCc7CiAgICAgICAgJGZpZWxkX2hlbHAgPSAoaXNfcmVhZGFibGUoJGhlbHBfZmlsZW5hbWUpKSA/IEBmaWxlX2dldF9jb250ZW50cygkaGVscF9maWxlbmFtZSkgOiAnJzsKCiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kZmllbGRfaGVscCwgbnVsbCwgbnVsbCwgJHNtYXJ0eSApOwogICAgICAgICR0cGwtPmFzc2lnbignZmllbGRkZWYnLCAkdGhpcyk7CiAgICAgICAgcmV0dXJuICR0cGwtPmZldGNoKCk7CiAgICB9CgoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBmb3JtYXR0ZWQgaHRtbCBmcm9tIHNtYXJ0eSBoZWxwIHRlbXBsYXRlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGVtb19pbnB1dCggJHBhcmFtcz1bXSApCiAgICB7CiAgICAgICAgJHBhcmFtc1snZmllbGQnXSA9ICR0aGlzLT5maWVsZDsKICAgICAgICAkdGhpcy0+dmFsdWUgPSBOVUxMOwogICAgICAgICR0aGlzLT5kZW1vX2NvdW50Kys7CiAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUgPSAkdGhpcy0+bW9kOjpERU1PX0JMT0NLX1BSRUZJWC4kdGhpcy0+ZmllbGQuJHRoaXMtPmRlbW9fY291bnQ7IAogICAgICAgIGlmICggJHRoaXMtPmVycm9yPT0kdGhpcy0+bW9kLT5MYW5nKCdlcnJvcl9ub19zdWJfZmllbGRzJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5lcnJvciA9IE5VTEw7ICAgIC8vIGlnbm9yZSBpbiBkZW1vIC0gY3JlYXRlX3N1Yl9maWVsZHMgY2FsbGVkIGFnYWluIGJlbG93CiAgICAgICAgfQoKICAgICAgICAvLyByZS1pbml0aWFsaXNlIHdpdGggbmV3ICRwYXJhbXMgZnJvbSBoZWxwIGNhbGwKICAgICAgICAkdGhpcy0+aW5pdGlhbGlzZV9vcHRpb25zKCRwYXJhbXMpOwoKICAgICAgICAvLyBzZXQgdXNlX2pzb25fZm9ybWF0IGlmIGlucHV0IGlzICdyZXBlYXRlcicKICAgICAgICBpZiAoICEkdGhpcy0+dXNlX2pzb25fZm9ybWF0ICYmICFlbXB0eSgkcGFyYW1zWydyZXBlYXRlciddKSApIHsKICAgICAgICAgICAgJHRoaXMtPnVzZV9qc29uX2Zvcm1hdCA9IFRSVUU7CiAgICAgICAgfQoKICAgICAgICBpZiAoICR0aGlzLT51c2VfanNvbl9mb3JtYXQgKSB7CiAgICAgICAgICAgICR0aGlzLT52YWx1ZXNbXSA9ICR0aGlzLT52YWx1ZTsKICAgICAgICB9CgogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5hbGxvd2VkX3N1Yl9maWVsZHMpICkgJHRoaXMtPmNyZWF0ZV9zdWJfZmllbGRzKCAkcGFyYW1zICk7CgogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKTsKCiAgICB9CgoKCiAgICAvKioKICAgICAqICBEYXRhIGVudGVyZWQgYnkgdGhlIGVkaXRvciBpcyBwcm9jZXNzZWQgYmVmb3JlIGl0cyBzYXZlZCBpbiBwcm9wcyB0YWJsZQogICAgICogIE1ldGhvZCBjYW4gYmUgb3ZlcmlkZGVuIGJ5IGNoaWxkIGNsYXNzLCBlLmcuIGdhbGxlcnksIGdyb3VwLCBkcm9wZG93bgogICAgICogIAogICAgICogIEByZXR1cm4gc3RyaW5nIGZvcm1hdHRlZCBqc29uIGNvbnRhaW5pbmcgYWxsIGZpZWxkIGRhdGEgcmVhZHkgdG8gYmUgc2F2ZWQgJiBvdXRwdXQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX3ZhbHVlKCAkaW5wdXRBcnJheSApIAogICAgewogICAgICAgICR0aGlzLT5maWVsZF9vYmplY3QgPSAkdGhpcy0+Y3JlYXRlX2ZpZWxkX29iamVjdCggJGlucHV0QXJyYXkgKTsKCiAgICAgICAgLy8gaW4gY2FzZSBmaWVsZHR5cGUgaGFzIGNoYW5nZWQgYW5kIG5vdyBvbmx5IHN0cmluZyBvdXRwdXQgcmVxdWlyZWQgLSBqdXN0IHVzZSBmaXJzdCB2YWx1ZQogICAgICAgIGlmICgkdGhpcy0+dXNlX2pzb25fZm9ybWF0PT1GQUxTRSkgcmV0dXJuICR0aGlzLT5maWVsZF9vYmplY3QtPnZhbHVlc1swXTsKCiAgICAgICAgcmV0dXJuICR0aGlzLT5FQ0IyX2pzb25fZW5jb2RlX2ZpZWxkX29iamVjdCgpOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgQHBhcmFtIGFycmF5ICRpbnB1dEFycmF5IC0gMSBvciBtb3JlIGFycmF5IGl0ZW1zIGZyb20gZWRpdGluZyB0aGUgZWNiMiBmaWVsZCAKICAgICAqICBAcmV0dXJuIHN0ZENsYXNzIGZpZWxkX29iamVjdCBpbiB0aGUgZm9ybWF0IG9mOgogICAgICogICAgICAgICgKICAgICAqICAgICAgICAgICAgW3ZhbHVlc10gPT4gQXJyYXkgewogICAgICogICAgICAgICAgICAgICAgWzBdID0+ICcxYyAjMSAtIGNoYW5nZWQ/JwogICAgICogICAgICAgICAgICAgICAgWzFdID0+ICcxYyAuLi4uIG5vdCBsaW5lIDQgOiknCiAgICAgKiAgICAgICAgICAgICAgICBbMl0gPT4gJzFjIGxpbmUgIzIgLSBjaGFuZ2VkPycKICAgICAqICAgICAgICAgICAgICAgIC4uLgogICAgICogICAgICAgICAgICB9CiAgICAgKiAgICAgICAgICAgICAgICBPUiAgICAgICAgICAgICAgICAgIC8vIGlmIGUuZy4gdHlwZSBpcyBhIGdyb3VwCiAgICAgKiAgICAgICAgICAgIFtzdWJfZmllbGRzXSA9PiBBcnJheSB7CiAgICAgKiAgICAgICAgICAgICAgICBbMF0gPT4gZmllbGQgc3RkQ2xhc3MgT2JqZWN0IHsKICAgICAqICAgICAgICAgICAgICAgICAgICBbZmllbGRfbmFtZTFdID0+ICcxc3QgdGV4dCcgICAgLy8gJHRlc3QxYy0+c3ViX2ZpZWxkc1swXS0+ZmllbGRfbmFtZTEgPSAnMXN0IHRleHQnIAogICAgICogICAgICAgICAgICAgICAgICAgIFtmaWVsZF9uYW1lMl0gPT4gJ2Fub3RoZXIgdGV4dCBsaW5lJwogICAgICogICAgICAgICAgICAgICAgfQogICAgICogICAgICAgICAgICAgICAgWzFdID0+IGZpZWxkIHN0ZENsYXNzIE9iamVjdCB7CiAgICAgKiAgICAgICAgICAgICAgICAgICAgIC4uLgogICAgICogICAgICAgICAgICAgICAgfSAKICAgICAqICAgICAgICAgICAgfQogICAgICogICAgICAgICAgICBbcGFyYW0xXSA9PiAnc29tZV90ZXh0X3N0cmluZycKICAgICAqICAgICAgICApCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjcmVhdGVfZmllbGRfb2JqZWN0KCAkaW5wdXRBcnJheSA9IFtdICkgCiAgICB7ICAgIAogICAgICAgICRmaWVsZF9vYmplY3QgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAvLyAkc3ViX2ZpZWxkcyA9IFtdOwogICAgICAgIGlmICggZW1wdHkoJGlucHV0QXJyYXkpIHx8IChjb3VudCgkaW5wdXRBcnJheSk9PTEgJiYgaXNzZXQoJGlucHV0QXJyYXlbJ2VtcHR5J10pKSApIHsKICAgICAgICAgICAgJGZpZWxkX29iamVjdC0+c3ViX2ZpZWxkcyA9IFtdOwogICAgICAgIH0KICAgICAgICBpZiAoICFlbXB0eSgkaW5wdXRBcnJheSkgKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRpbnB1dEFycmF5IGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICAgICAkc3ViX2ZpZWxkcyA9IFtdOwogICAgICAgICAgICAgICAgaWYgKCBwcmVnX21hdGNoKCcvXihyXyk/WzAtOV0rJC8nLCAka2V5KSApIHsgLy8gaXMgYSB2YWx1ZSBvciBjaGlsZDogcl8wIG9yIDAgCiAgICAgICAgICAgICAgICAgICAgaWYgKCBpc19hcnJheSgkdmFsdWUpICkgeyAgIC8vIHN1Yl9maWVsZHMKICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHZhbHVlIGFzICRmaWVsZF9uYW1lID0+ICRjaGlsZF92YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBpc19hcnJheSgkY2hpbGRfdmFsdWUpICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdWJfZmllbGRzWyRmaWVsZF9uYW1lXSA9IHNlbGY6OmNyZWF0ZV9maWVsZF9vYmplY3QoICRjaGlsZF92YWx1ZSApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3ViX2ZpZWxkc1skZmllbGRfbmFtZV0gPSAkY2hpbGRfdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJGZpZWxkX29iamVjdC0+c3ViX2ZpZWxkc1tdID0gJHN1Yl9maWVsZHM7CgogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7ICAgIC8vIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZF9vYmplY3QtPnZhbHVlc1tdID0gJHZhbHVlOwoKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGlzIG90aGVyIGRhdGEKICAgICAgICAgICAgICAgICAgICAkZmllbGRfb2JqZWN0LT4ka2V5ID0gJHZhbHVlOwoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAhaXNzZXQoJGZpZWxkX29iamVjdC0+dmFsdWVzKSAmJiAhaXNzZXQoJGZpZWxkX29iamVjdC0+c3ViX2ZpZWxkcykgKSB7CiAgICAgICAgICAgICRmaWVsZF9vYmplY3QtPnZhbHVlcyA9IFtdOyAgICAgICAgLy8gZW5zdXJlIHZhbHVlcyBzZXQgYXMgZW1wdHkgYXJyYXkgYXMgYSBtaW5pbXVtCiAgICAgICAgfQogICAgICAgIHJldHVybiAkZmllbGRfb2JqZWN0OwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgQHBhcmFtIGFycmF5ICRpbnB1dEFycmF5IC0gMSBvciBtb3JlIGFycmF5IGl0ZW1zIGZyb20gZWRpdGluZyB0aGUgZWNiMiBmaWVsZCAKICAgICAqICBAcmV0dXJuIHN0cmluZyBqc29uIGVuY29kZWQgJHRoaXMtPmZpZWxkX29iagogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gRUNCMl9qc29uX2VuY29kZV9maWVsZF9vYmplY3QoKSAKICAgIHsKICAgICAgICByZXR1cm4ganNvbl9lbmNvZGUoICR0aGlzLT5maWVsZF9vYmplY3QsIEpTT05fTlVNRVJJQ19DSEVDSyB8IEpTT05fUFJFU0VSVkVfWkVST19GUkFDVElPTiApOwogICAgfQoKCgoKICAgIC8qKgogICAgICogIERldGVybWluZXMgaWYgY3VycmVudCB1c2VyIGlzIGFibGUgdG8gdmlldyB0aGlzIGNvbnRlbnQgYmxvY2sKICAgICAqICAKICAgICAqICBAcGFyYW0gc3RyaW5nICR2YWxpZF9hZG1pbl9ncm91cHMgLSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgYWxsb3dlZCB0byBhY2Nlc3MgdGhpcyBmaWVsZAogICAgICogIEByZXR1cm4gYm9vbCAtIHRydWUgaWYgdXNlciBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZCAvIGNvbnRlbnQgYmxvY2sgCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBpc192YWxpZF9ncm91cF9tZW1iZXIoICR2YWxpZF9hZG1pbl9ncm91cHM9TlVMTCApCiAgICB7CiAgICAgICAgaWYgKCAhZW1wdHkoJHZhbGlkX2FkbWluX2dyb3VwcykgJiYgISR0aGlzLT5tb2QtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEFsbCBDb250ZW50JykpIHsKICAgICAgICAgICAgLy8gbWFuYWdlIGFsbCBjb250ZW50IGlzIGp1c3QgdGhhdC4uLiBtYW5hZ2UgZXZlcnl0aGluZy4KICAgICAgICAgICAgLy8gZ3JvdXBzIGFyZSBzcGVjaWZpZWQsIGFuZCB3ZSBkb24ndCBnZXQgc3VwZXJ1c2VyIHByaXZpbGVnZS4KICAgICAgICAgICAgJG15X3VpZCA9IGdldF91c2VyaWQoRkFMU0UpOwogICAgICAgICAgICBpZiAoICRteV91aWQgPD0gMCApIHJldHVybiBGQUxTRTsgLy8gbm90IGxvZ2dlZGluPwoKICAgICAgICAgICAgJGFsbGdyb3VwcyA9IGFycmF5KCk7CiAgICAgICAgICAgIC8vIGdldCBhIGhhc2ggb2YgYWxsIG9mIHRoZSBncm91cHMgYW5kIGlkcy4KICAgICAgICAgICAgJHRtcCA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldEdyb3VwT3BlcmF0aW9ucygpLT5Mb2FkR3JvdXBzKCk7CiAgICAgICAgICAgIGlmICggIWlzX2FycmF5KCR0bXApIHx8IGNvdW50KCR0bXApID09IDAgKSByZXR1cm4gRkFMU0U7IC8vIG5vIGdyb3Vwcz8KICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgaWYgKCAhJG9uZS0+YWN0aXZlICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkYWxsZ3JvdXBzW3N0cnRvbG93ZXIoJG9uZS0+bmFtZSldID0gJG9uZS0+aWQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGdldCB0aGUgZ2lkcyBvZiBhbGwgb2YgdGhlIGdyb3VwcyB0aGF0IHRoaXMgZmllbGQgaXMgdmlzaWJsZSB0by4KICAgICAgICAgICAgJGdyb3VwcyA9IGFycmF5KCk7CiAgICAgICAgICAgICR0bXAgPSBleHBsb2RlKCcsJywgc3RydG9sb3dlcigkdmFsaWRfYWRtaW5fZ3JvdXBzKSApOwogICAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkb25lID0gdHJpbSgkb25lKTsKICAgICAgICAgICAgICAgIGlmICggJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRhbGxncm91cHNbJG9uZV0pICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgJGdyb3Vwc1tdID0gJGFsbGdyb3Vwc1skb25lXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoIGNvdW50KCRncm91cHMpID09IDAgKSB7CiAgICAgICAgICAgICAgICAvLyBubyB2YWxpZCBncm91cHMgc3BlY2lmaWVkLi4uIHVzZXIgaGFzIHRvIGJlIGFuIGFkbWluaXN0cmF0b3IKICAgICAgICAgICAgICAgICRncm91cHNbXSA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIG5vdyBkbyB0aGUgY2hlY2sgdG8gc2VlIGlmIHRoZSBjdXJyZW50IHVzZXIgaXMgYSBtZW1iZXIgb2YgdGhlIHNwZWNpZmllZCBncm91cChzKQogICAgICAgICAgICAkZ3JvdXBzID0gYXJyYXlfdW5pcXVlKCRncm91cHMpOwogICAgICAgICAgICAkdmFsaWQgPSBGQUxTRTsKICAgICAgICAgICAgZm9yZWFjaCggJGdyb3VwcyBhcyAkZ2lkICkgewogICAgICAgICAgICAgICAgJHVzZXJzID0gQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0VXNlck9wZXJhdGlvbnMoKS0+TG9hZFVzZXJzSW5Hcm91cCgkZ2lkKTsKICAgICAgICAgICAgICAgIGlmICggIWlzX2FycmF5KCR1c2VycykgfHwgIWNvdW50KCR1c2VycykgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR1c2VycyBhcyAkdXNlciApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICR1c2VyLT5pZCA9PSAkbXlfdWlkICkgewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsaWQgPSBUUlVFOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoICR2YWxpZCApIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggISR2YWxpZCApIHsKICAgICAgICAgICAgICAgIC8vIHVzZXIgaXMgbm90IGEgbWVtYmVyIG9mIGFueSBvZiB0aGUgc3BlY2lmaWVkIGdyb3VwcwogICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCgoKICAgIC8qKgogICAgICogIHJldHVybnMgYW4gZW1wdHkgc3BhbiB0aGF0IGFsc28gdXNlcyBqcyB0byBoaWRlIHRoZSBjb250ZW50IGJsb2NrIGxhYmVsCiAgICAgKiAgCiAgICAgKiAgQHJldHVybiBzdHJpbmcgLSBlY2IyIGhpZGRlbiBmaWVsZCB0ZW1wbGF0ZSAKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGVjYjJfaGlkZGVuX2ZpZWxkKCkgCiAgICB7CiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICR0aGlzLT5tb2QtPkdldFRlbXBsYXRlUmVzb3VyY2UoJ2FkbWluX2hpZGRlbl9maWVsZC50cGwnKSwgbnVsbCwgbnVsbCwgJHNtYXJ0eSApOwogICAgICAgIHJldHVybiAkdHBsLT5mZXRjaCgpOwogICAgfSAKCgoKICAgIC8qKgogICAgICogQWRkcyBhbnkganNvbiBmb3JtYXR0ZWQgY29udGVudCB0byB0aGUgc2VhcmNoIGluZGV4IC0gYXMgQ29udGVudC9TZWFyY2ggbW9kdWxlcyBkb24ndAogICAgICogVGhpcyBzdXBsZW1lbnRzIHRoZSBzZWFyY2hfRG9FdmVudCBmdW5jdGlvbiBpbiBtb2R1bGVzL1NlYXJjaC9zZWFyY2gudG9vbHMucGhwCiAgICAgKiBAcGFyYW0gaW50ICRjb250ZW50X29ial9pZCAtIGNvbnRlbnQgb2JqZWN0IGlkCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEFkZENvbnRlbnRUb1NlYXJjaEluZGV4KCRjb250ZW50X29ial9pZCA9IC0xKQogICAgewogICAgICAgIGlmICggJHRoaXMtPnVzZV9qc29uX2Zvcm1hdCAmJiAhZW1wdHkoJHRoaXMtPmZpZWxkX29iamVjdCkgKSB7CiAgICAgICAgICAgICRzZWFyY2hfY29udGVudCA9ICcnOwoKICAgICAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPmZpZWxkX29iamVjdC0+dmFsdWVzKSAmJiBpc19hcnJheSgkdGhpcy0+ZmllbGRfb2JqZWN0LT52YWx1ZXMpICkgeyAgICAgICAgICAKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCAkdGhpcy0+ZmllbGRfb2JqZWN0LT52YWx1ZXMgYXMgJHZhbCApIHsKICAgICAgICAgICAgICAgICAgICAkc2VhcmNoX2NvbnRlbnQgLj0gJyAnIC4gc3RyaXBfdGFncyggdHJpbSggJHZhbCApICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGNyZWF0ZSBhcnJheSBvZiBzZWFyY2hhYmxlIGZpZWxkIG5hbWVzCiAgICAgICAgICAgICRzZWFyY2hhYmxlX2ZpZWxkX25hbWVzID0gW107CiAgICAgICAgICAgIGZvcmVhY2ggKCAkdGhpcy0+c3ViX2ZpZWxkcyBhcyAkc3ViX2ZpZWxkX29iaiApIHsKICAgICAgICAgICAgICAgIGlmICggJHN1Yl9maWVsZF9vYmotPnNlYXJjaGFibGVfY29udGVudCApIHsKICAgICAgICAgICAgICAgICAgICAkc2VhcmNoYWJsZV9maWVsZF9uYW1lc1tdID0gJHN1Yl9maWVsZF9vYmotPmJsb2NrX25hbWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gYWRkIGFueSBzZWFyY2hhYmxlIHN1Yl9maWVsZHMgY29udGVudCAKICAgICAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPmZpZWxkX29iamVjdC0+c3ViX2ZpZWxkcykgJiYgaXNfYXJyYXkoJHRoaXMtPmZpZWxkX29iamVjdC0+c3ViX2ZpZWxkcykgJiYgCiAgICAgICAgICAgICAgICAgIWVtcHR5KCRzZWFyY2hhYmxlX2ZpZWxkX25hbWVzKSApIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCAkdGhpcy0+ZmllbGRfb2JqZWN0LT5zdWJfZmllbGRzIGFzICRzdWJfZmllbGRfb2JqICkgewogICAgICAgICAgICAgICAgICAgIGlmICggaXNfYXJyYXkoJHN1Yl9maWVsZF9vYmopICkgewogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICggJHN1Yl9maWVsZF9vYmogYXMgJHN1Yl9maWVsZF9uYW1lID0+ICRzdWJfZmllbGRfdmFsdWUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGluX2FycmF5KCAkc3ViX2ZpZWxkX25hbWUsICRzZWFyY2hhYmxlX2ZpZWxkX25hbWVzICkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlYXJjaF9jb250ZW50IC49ICcgJyAuIHN0cmlwX3RhZ3MoIHRyaW0oICRzdWJfZmllbGRfdmFsdWUgKSApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBhZGQgdG8gc2VhcmNoIGluZGV4CiAgICAgICAgICAgICRzZWFyY2hfY29udGVudCA9IHRyaW0oICRzZWFyY2hfY29udGVudCApOwogICAgICAgICAgICBpZiAoICFlbXB0eSgkc2VhcmNoX2NvbnRlbnQpICkgewogICAgICAgICAgICAgICAgJHNlYXJjaF9tb2QgPSBcY21zX3V0aWxzOjpnZXRfc2VhcmNoX21vZHVsZSgpOwogICAgICAgICAgICAgICAgaWYgKCBpc19vYmplY3QoJHNlYXJjaF9tb2QgKSApIHsKICAgICAgICAgICAgICAgICAgICAkc2VhcmNoX21vZC0+QWRkV29yZHMoJ0VDQjInLCAkY29udGVudF9vYmpfaWQsICR0aGlzLT5ibG9ja19uYW1lLCAkc2VhcmNoX2NvbnRlbnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICAvKioKICAgICAqIEFkZHMgYW55IGFscmVhZHkgc2F2ZWQganNvbiBmb3JtYXR0ZWQgY29udGVudCB0byB0aGUgc2VhcmNoIGluZGV4IC0gYXMgQ29udGVudC9TZWFyY2ggbW9kdWxlcyBkb24ndAogICAgICogVXNlZCBkdXJpbmcgYSBmdWxsIHJlLWluZGV4aW5nIG9mIGNvbnRlbnQKICAgICAqIEBwYXJhbSBpbnQgJGNvbnRlbnRfb2JqX2lkIC0gY29udGVudCBvYmplY3QgaWQKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gQWRkU2F2ZWRDb250ZW50VG9TZWFyY2hJbmRleCgkY29udGVudF9vYmpfaWQgPSAtMSkKICAgIHsKICAgICAgICBpZiAoICEkdGhpcy0+dXNlX2pzb25fZm9ybWF0IHx8IGVtcHR5KCR0aGlzLT52YWx1ZXMpIHx8ICFpc19hcnJheSgkdGhpcy0+dmFsdWVzKSkgcmV0dXJuOwoKICAgICAgICAkc2VhcmNoX2NvbnRlbnQgPSAnJzsKCiAgICAgICAgaWYgKCBpc19vYmplY3QoICR0aGlzLT52YWx1ZXNbMF0gKSApIHsgIC8vIHNvIGFycmF5IG9mIHN1Yl9maWVsZHMgKG9iamVjdHMpCiAgICAgICAgICAgIC8vIGNyZWF0ZSBhcnJheSBvZiBzZWFyY2hhYmxlIGZpZWxkIG5hbWVzCiAgICAgICAgICAgICRzZWFyY2hhYmxlX2ZpZWxkX25hbWVzID0gW107CiAgICAgICAgICAgIGZvcmVhY2ggKCAkdGhpcy0+c3ViX2ZpZWxkcyBhcyAkc3ViX2ZpZWxkX29iaiApIHsKICAgICAgICAgICAgICAgIGlmICggJHN1Yl9maWVsZF9vYmotPnNlYXJjaGFibGVfY29udGVudCApIHsKICAgICAgICAgICAgICAgICAgICAkc2VhcmNoYWJsZV9maWVsZF9uYW1lc1tdID0gJHN1Yl9maWVsZF9vYmotPmJsb2NrX25hbWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gYWRkIGFueSBzZWFyY2hhYmxlIHN1Yl9maWVsZHMgY29udGVudCAKICAgICAgICAgICAgaWYgKCAhZW1wdHkoJHNlYXJjaGFibGVfZmllbGRfbmFtZXMpICkgewogICAgICAgICAgICAgICAgZm9yZWFjaCAoICR0aGlzLT52YWx1ZXMgYXMgJHN1Yl9maWVsZF9vYmogKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoICRzdWJfZmllbGRfb2JqIGFzICRzdWJfZmllbGRfbmFtZSA9PiAkc3ViX2ZpZWxkX3ZhbHVlICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGluX2FycmF5KCAkc3ViX2ZpZWxkX25hbWUsICRzZWFyY2hhYmxlX2ZpZWxkX25hbWVzICkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VhcmNoX2NvbnRlbnQgLj0gJyAnIC4gc3RyaXBfdGFncyggdHJpbSggJHN1Yl9maWVsZF92YWx1ZSApICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgfSBlbHNlIHsgICAgLy8gc28gc2ltcGxlIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMKICAgICAgICAgICAgZm9yZWFjaCAoICR0aGlzLT52YWx1ZXMgYXMgJHZhbCApIHsKICAgICAgICAgICAgICAgICRzZWFyY2hfY29udGVudCAuPSAnICcgLiBzdHJpcF90YWdzKCB0cmltKCAkdmFsICkgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAvLyBhZGQgdG8gc2VhcmNoIGluZGV4CiAgICAgICAgJHNlYXJjaF9jb250ZW50ID0gdHJpbSggJHNlYXJjaF9jb250ZW50ICk7CiAgICAgICAgaWYgKCAhZW1wdHkoJHNlYXJjaF9jb250ZW50KSApIHsKICAgICAgICAgICAgJHNlYXJjaF9tb2QgPSBcY21zX3V0aWxzOjpnZXRfc2VhcmNoX21vZHVsZSgpOwogICAgICAgICAgICBpZiAoIGlzX29iamVjdCgkc2VhcmNoX21vZCApICkgewogICAgICAgICAgICAgICAgJHNlYXJjaF9tb2QtPkFkZFdvcmRzKCdFQ0IyJywgJGNvbnRlbnRfb2JqX2lkLCAkdGhpcy0+YmxvY2tfbmFtZSwgJHNlYXJjaF9jb250ZW50KTsKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgCiAgICB9CgoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.ecb2_FileUtils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNsYXNzIGVjYjJfRmlsZVV0aWxzIAp7CgogICAgY29uc3QgRUNCMl9JTUFHRV9ESVIgPSAnX2VjYjJfaW1hZ2VzJzsKICAgIGNvbnN0IEVDQjJfSU1BR0VfVEVNUF9ESVIgPSAnX3RtcCc7ICAgICAvLyBzdWIgZGlyIG9mIEVDQjJfSU1BR0VfRElSCiAgICBjb25zdCBUSFVNQl9QUkVGSVggPSAndGh1bWJfJzsgCgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIHBhdGggdG8gRUNCMiBpbWFnZXMgdGVtcCBzdWIgZGlyOiAvRUNCMl9JTUFHRV9ESVIvRUNCMl9JTUFHRV9URU1QX0RJUgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEVDQjJJbWFnZXNUZW1wUGF0aCgpIAogICAgewogICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICByZXR1cm4gY21zX2pvaW5fcGF0aCggJGNvbmZpZ1snaW1hZ2VfdXBsb2Fkc19wYXRoJ10sIHNlbGY6OkVDQjJfSU1BR0VfRElSLCAKICAgICAgICAgICAgc2VsZjo6RUNCMl9JTUFHRV9URU1QX0RJUiApLkRJUkVDVE9SWV9TRVBBUkFUT1I7CiAgICB9CgoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBwYXRoIHRvIHVuaXF1ZSBFQ0IyIGltYWdlcyBzdWIgZGlyOiAvRUNCMl9JTUFHRV9ESVIvYmxvY2tuYW1lX21vZHVsZV9pZAogICAgICogIEBwYXJhbSBzdHJpbmcgJGJsb2NrbmFtZSAtIG5hbWUgb2YgcHJvcHMgYmxvY2tuYW1lCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkaWQgLSBjb250ZW50IGlkIC0gaS5lLiBwYWdlIGlkCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkbW9kdWxlIC0gaWYgbm90IENvbnRlbnQgcGFnZSAoZGVmYXVsdCkgLSBub3QgYWN0dWFsbHkgdXNlZCB5ZXQKICAgICAqICBAcGFyYW0gc3RyaW5nICR1cGxvYWRzX2RpciAtIGlmIHNldCBpcyBhIHN1YmRpciBvZiAvdXBsb2FkcyB0byB1c2UKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBFQ0IySW1hZ2VzUGF0aCggJGJsb2NrbmFtZSwgJGlkPScnLCAkbW9kdWxlPScnLCAkdXBsb2Fkc19kaXI9JycgKSAKICAgIHsKICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgaWYgKCAhZW1wdHkoJHVwbG9hZHNfZGlyKSApIHsKICAgICAgICAgICAgJGltYWdlc1BhdGggPSBjbXNfam9pbl9wYXRoKCAkY29uZmlnWydpbWFnZV91cGxvYWRzX3BhdGgnXSwgJHVwbG9hZHNfZGlyICk7CiAgICAgICAgICAgIHJldHVybiAkaW1hZ2VzUGF0aC5ESVJFQ1RPUllfU0VQQVJBVE9SOwogICAgICAgIH0KCiAgICAgICAgaWYgKCBlbXB0eSgkYmxvY2tuYW1lKSApIHJldHVybiBGQUxTRTsKCiAgICAgICAgJGltYWdlc1BhdGggPSBjbXNfam9pbl9wYXRoKCAkY29uZmlnWydpbWFnZV91cGxvYWRzX3BhdGgnXSwgc2VsZjo6RUNCMl9JTUFHRV9ESVIgKTsKICAgICAgICAkZGlybmFtZSA9IG11bmdlX3N0cmluZ190b191cmwoICRibG9ja25hbWUuICgkbW9kdWxlID8gJ18nLiRtb2R1bGUgOiAnJykgLiAoJGlkID8gJ18nLiRpZCA6ICcnKSApOwogICAgICAgIHJldHVybiAkaW1hZ2VzUGF0aC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRkaXJuYW1lLkRJUkVDVE9SWV9TRVBBUkFUT1I7CiAgICB9CgoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyB1cmwgdG8gZWl0aGVyIGEgc3ViZGlyIG9mIC91cGxvYWRzLCBvciBhIHVuaXF1ZSBFQ0IyIGltYWdlcyBzdWIgZGlyOiAKICAgICAqICAgICAgICAgICAgICAgICAgIC9FQ0IyX0lNQUdFX0RJUi9ibG9ja25hbWVfbW9kdWxlX2lkCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkYmxvY2tuYW1lIC0gbmFtZSBvZiBwcm9wcyBibG9ja25hbWUKICAgICAqICBAcGFyYW0gc3RyaW5nICRpZCAtIGNvbnRlbnQgaWQgLSBpLmUuIHBhZ2UgaWQKICAgICAqICBAcGFyYW0gc3RyaW5nICRtb2R1bGUgLSBpZiBub3QgQ29udGVudCBwYWdlIChkZWZhdWx0KSAtIG5vdCBhY3R1YWxseSB1c2VkIHlldAogICAgICogIEBwYXJhbSBzdHJpbmcgJHVwbG9hZHNfZGlyIC0gaWYgc2V0IGlzIGEgc3ViZGlyIG9mIC91cGxvYWRzIHRvIHVzZQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEVDQjJJbWFnZXNVcmwoICRibG9ja25hbWUsICRpZCwgJG1vZHVsZT0nJywgJHVwbG9hZHNfZGlyPScnICkgCiAgICB7CiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgIGlmICggIWVtcHR5KCR1cGxvYWRzX2RpcikgKSB7CiAgICAgICAgICAgICRlY2IyVXJsID0gY21zX2pvaW5fcGF0aCggJGNvbmZpZ1snaW1hZ2VfdXBsb2Fkc191cmwnXSwgJHVwbG9hZHNfZGlyICk7CiAgICAgICAgICAgIHJldHVybiAkZWNiMlVybC5ESVJFQ1RPUllfU0VQQVJBVE9SOwogICAgICAgIH0KCiAgICAgICAgaWYgKCBlbXB0eSgkYmxvY2tuYW1lKSApIHJldHVybiBGQUxTRTsKCiAgICAgICAgJGVjYjJVcmwgPSBjbXNfam9pbl9wYXRoKCAkY29uZmlnWydpbWFnZV91cGxvYWRzX3VybCddLCBzZWxmOjpFQ0IyX0lNQUdFX0RJUiApLkRJUkVDVE9SWV9TRVBBUkFUT1I7CiAgICAgICAgJGRpcm5hbWUgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCAkYmxvY2tuYW1lLiAoJG1vZHVsZSA/ICdfJy4kbW9kdWxlIDogJycpIC4gKCRpZCA/ICdfJy4kaWQgOiAnJykgKTsKICAgICAgICByZXR1cm4gJGVjYjJVcmwuJGRpcm5hbWUuRElSRUNUT1JZX1NFUEFSQVRPUjsKICAgIH0KCgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIHVybCByZWxhdGl2ZSB0byB0aGUgd2Vic2l0ZSByb290IHRvIGVpdGhlciBhIHN1YmRpciBvZiAvdXBsb2Fkcywgb3IgYSB1bmlxdWUgCiAgICAgKiAgICAgICAgICAgICAgICAgRUNCMiBpbWFnZXMgc3ViIGRpcjogIC9FQ0IyX0lNQUdFX0RJUi9ibG9ja25hbWVfbW9kdWxlX2lkCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkYmxvY2tuYW1lIC0gbmFtZSBvZiBwcm9wcyBibG9ja25hbWUKICAgICAqICBAcGFyYW0gc3RyaW5nICRpZCAtIGNvbnRlbnQgaWQgLSBpLmUuIHBhZ2UgaWQKICAgICAqICBAcGFyYW0gc3RyaW5nICRtb2R1bGUgLSBpZiBub3QgQ29udGVudCBwYWdlIChkZWZhdWx0KSAtIG5vdCBhY3R1YWxseSB1c2VkIHlldAogICAgICogIEBwYXJhbSBzdHJpbmcgJHVwbG9hZHNfZGlyIC0gaWYgc2V0IGlzIGEgc3ViZGlyIG9mIC91cGxvYWRzIHRvIHVzZQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEVDQjJJbWFnZXNSZWxhdGl2ZVVybCggJGJsb2NrbmFtZSwgJGlkLCAkbW9kdWxlPScnLCAkdXBsb2Fkc19kaXI9JycgKSAKICAgIHsKICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgJHJlbGF0aXZlVXBsb2Fkc0RpciA9IHN0cl9yZXBsYWNlKENNU19ST09UX1VSTCwgJycsICRjb25maWdbJ2ltYWdlX3VwbG9hZHNfdXJsJ10pOwogICAgICAgIGlmICggIWVtcHR5KCR1cGxvYWRzX2RpcikgKSB7CiAgICAgICAgICAgICRlY2IyVXJsID0gY21zX2pvaW5fcGF0aCggJHJlbGF0aXZlVXBsb2Fkc0RpciwgJHVwbG9hZHNfZGlyICk7CiAgICAgICAgICAgIHJldHVybiAkZWNiMlVybC5ESVJFQ1RPUllfU0VQQVJBVE9SOwogICAgICAgIH0KCiAgICAgICAgaWYgKCBlbXB0eSgkYmxvY2tuYW1lKSApIHJldHVybiBGQUxTRTsKCiAgICAgICAgJGVjYjJVcmwgPSBjbXNfam9pbl9wYXRoKCAkcmVsYXRpdmVVcGxvYWRzRGlyLCBzZWxmOjpFQ0IyX0lNQUdFX0RJUiApLkRJUkVDVE9SWV9TRVBBUkFUT1I7CiAgICAgICAgJGRpcm5hbWUgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCAkYmxvY2tuYW1lLiAoJG1vZHVsZSA/ICdfJy4kbW9kdWxlIDogJycpIC4gKCRpZCA/ICdfJy4kaWQgOiAnJykgKTsKICAgICAgICByZXR1cm4gJGVjYjJVcmwuJGRpcm5hbWUuRElSRUNUT1JZX1NFUEFSQVRPUjsKICAgIH0KCgoKICAgIC8qKgogICAgICogIGNyZWF0ZXMgdGhlIHVuaXF1ZSBFQ0IyIGltYWdlcyBzdWIgZGlyIC0gaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0OiAKICAgICAqICAgICAgICAgIC9FQ0IyX0lNQUdFX0RJUi9ibG9ja25hbWVfbW9kdWxlX2lkCiAgICAgKiAgICAgIG9yIHRoZSBFQ0IyX0lNQUdFX0RJUi9FQ0IyX0lNQUdFX1RFTVBfRElSIGlmIHBhcmFtcyBhbGwgZW1wdHkKICAgICAqICBAcGFyYW0gc3RyaW5nICRibG9ja25hbWUgLSBuYW1lIG9mIHByb3BzIGJsb2NrbmFtZQogICAgICogIEBwYXJhbSBzdHJpbmcgJGlkIC0gY29udGVudCBpZCAtIGkuZS4gcGFnZSBpZAogICAgICogIEBwYXJhbSBzdHJpbmcgJG1vZHVsZSAtIGlmIG5vdCBDb250ZW50IHBhZ2UgKGRlZmF1bHQpIC0gbm90IGFjdHVhbGx5IHVzZWQgeWV0CiAgICAgKiAgQHBhcmFtIHN0cmluZyAkdXBsb2Fkc19kaXIgLSBpZiBzZXQgaXMgYSBzdWJkaXIgb2YgL3VwbG9hZHMvaW1hZ2VzIHRvIHVzZSAoZGVmYXVsdCkKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBDcmVhdGVJbWFnZXNEaXIoICRibG9ja25hbWU9JycsICRpZD0nJywgJG1vZHVsZT0nJywgJHVwbG9hZHNfZGlyPScnICkKICAgIHsKICAgICAgICAkc3VjY2VzcyA9IGZhbHNlOwogICAgICAgIGlmICggIWVtcHR5KCR1cGxvYWRzX2RpcikgfHwgIWVtcHR5KCRibG9ja25hbWUpICkgewogICAgICAgICAgICAkZWNiMl9pbWFnZXNfZGlyID0gc2VsZjo6RUNCMkltYWdlc1BhdGgoICRibG9ja25hbWUsICRpZCwgJG1vZHVsZSwgJHVwbG9hZHNfZGlyICk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGVjYjJfaW1hZ2VzX2RpciA9IHNlbGY6OkVDQjJJbWFnZXNQYXRoKCBzZWxmOjpFQ0IyX0lNQUdFX1RFTVBfRElSICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICRlY2IyX2ltYWdlc19kaXIgJiYgIWZpbGVfZXhpc3RzKCRlY2IyX2ltYWdlc19kaXIpICkgewogICAgICAgICAgICAkc3VjY2VzcyA9IG1rZGlyKCRlY2IyX2ltYWdlc19kaXIsIDA3NTUsIHRydWUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHN1Y2Nlc3M7CiAgICB9CgoKCiAgICAvKiogTkI6IE5PVCBDVVJSRU5UTFkgVVNFRC4uLgogICAgICogIHVuaXF1ZSBmaWxlbmFtZSBmb3IgRUNCMiBpbWFnZXMsIGlmIGZpbGVuYW1lIGFscmVhZHkgZXhpc3RzLCBpdCBoYXMgX3ggCiAgICAgKiAgICAgIGFwcGVuZGVkIGJlZm9yZSB0aGUgc3VmZml4LCBlLmcuICduZXdfaW1hZ2VfMS5qcGcnLCB0aGVuICduZXdfaW1hZ2VfMi5qcGcnIAogICAgICoKICAgICAqICBAcmV0dXJuIHN0cmluZyB1bmlxdWUgZmlsZW5hbWUgCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkdXBsb2FkZWRfZmlsZW5hbWUgLSBvcmlnaW5hbCBmaWxlbmFtZSB0byBtYWtlIHVuaXF1ZQogICAgICogIEBwYXJhbSBzdHJpbmcgJGRpciAtIGRpcmVjdG9yeSB0byBjaGVjayBmb3IgdW5pcXVlIGZpbGVuYW1lCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gRUNCMlVuaXF1ZUZpbGVuYW1lKCAkdXBsb2FkZWRfZmlsZW5hbWUsICRkaXI9JycgKSAKICAgIHsKICAgICAgICBpZiAoIGVtcHR5KCR1cGxvYWRlZF9maWxlbmFtZSkgKSByZXR1cm47CgogICAgICAgICRkaXJfdG9fY2hlY2sgPSAoICFlbXB0eSgkZGlyKSApID8gJGRpciA6IHNlbGY6OkVDQjJJbWFnZXNQYXRoKCk7CiAgICAgICAgJHRtcF9maWxlbmFtZSA9IGJhc2VuYW1lKCR1cGxvYWRlZF9maWxlbmFtZSk7ICAgLy8gbWF5IHByZXZlbnQgZmlsZXN5c3RlbSB0cmF2ZXJzYWwgYXR0YWNrcwogICAgICAgICRmaWxlbmFtZV9vbmx5ID0gcGF0aGluZm8oJHRtcF9maWxlbmFtZSwgUEFUSElORk9fRklMRU5BTUUpOwogICAgICAgICRleHRlbnNpb25fb25seSA9ICBwYXRoaW5mbygkdG1wX2ZpbGVuYW1lLCBQQVRISU5GT19FWFRFTlNJT04pOwogICAgICAgICRGaWxlQ291bnRlciA9IDA7CgogICAgICAgIHdoaWxlICggZmlsZV9leGlzdHMoJGRpcl90b19jaGVjay4kdG1wX2ZpbGVuYW1lKSApIHsKICAgICAgICAgICAgJEZpbGVDb3VudGVyKys7CiAgICAgICAgICAgICR0bXBfZmlsZW5hbWUgPSAkZmlsZW5hbWVfb25seS4nXycuJEZpbGVDb3VudGVyLicuJy4kZXh0ZW5zaW9uX29ubHk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHRtcF9maWxlbmFtZTsKICAgIH0KCgoKICAgIC8qKgogICAgICogIHVwbG9hZCBmaWxlIGludG8gRUNCMkltYWdlc1RlbXBQYXRoCiAgICAgKgogICAgICogIEByZXR1cm4gYm9vbGVhbiAkc3VjY2VzcwogICAgICogIEBwYXJhbSBzdHJpbmcgJG9yaWdpbmFsX2ZpbGVuYW1lIC0gb3JpZ2luYWwgZmlsZW5hbWUgb2YgdXBsb2FkZWQgZmlsZQogICAgICogIEBwYXJhbSBzdHJpbmcgJHRtcF9maWxlbmFtZSAtIHRlbXAgZmlsZW5hbWUgb2YgdGhlIGZpbGUgb24gdGhlIHNlcnZlcgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEVDQjJNb3ZlVXBsb2FkZWRGaWxlKCAkb3JpZ2luYWxfZmlsZW5hbWUsICR0bXBfZmlsZW5hbWUgICkgCiAgICB7CiAgICAgICAgaWYgKCBlbXB0eSgkb3JpZ2luYWxfZmlsZW5hbWUpIHx8IGVtcHR5KCR0bXBfZmlsZW5hbWUpICkgcmV0dXJuIGZhbHNlOwoKICAgICAgICAkZWNiMl9pbWFnZXNfcGF0aCA9IHNlbGY6OkVDQjJJbWFnZXNUZW1wUGF0aCgpOwogICAgICAgICRzdWNjZXNzID0gY21zX21vdmVfdXBsb2FkZWRfZmlsZSggJHRtcF9maWxlbmFtZSwgJGVjYjJfaW1hZ2VzX3BhdGguJG9yaWdpbmFsX2ZpbGVuYW1lICk7CiAgICAgICAgcmV0dXJuICRzdWNjZXNzOwoKICAgIH0KCgoKICAgIC8qKgogICAgICogIG1vdmUgZmlsZXMgZnJvbSBfdG1wIGludG8gJGRpciwgZGVsZXRpbmcgYW55IHVud2FudGVkIGZpbGVzCiAgICAgKiAgZXhpc3RpbmcgZmlsZXMgd2l0aCBzYW1lIG5hbWUgd2lsbCBub3QgYmUgb3ZlcndyaXR0ZW4KICAgICAqCiAgICAgKiAgQHBhcmFtIGFycmF5ICR2YWx1ZXMgLSBmaWxlbmFtZXMgb2YgYWxsIGZpbGVzIGluIHRoZSBnYWxsZXJ5CiAgICAgKiAgQHBhcmFtIHN0cmluZyAkZGlyIC0gZGlyZWN0b3J5IHRvIGJlIHVwZGF0ZWQgd2l0aCBzZXQgZ2FsbGVyeSBpbWFnZXMKICAgICAqICBAcGFyYW0gYm9vbGVhbiAkYXV0b19hZGRfZGVsZXRlIC0gaWYgc2V0IGRlbGV0ZSBhbnkgdW51c2VkIGltYWdlcyAmIHRodW1ibmFpbHMKICAgICAqICBAcGFyYW0gYm9vbGVhbiAkdGh1bWJfd2lkdGggLSB0aHVtYm5haWwgd2lkdGggc2V0IGZvciB0aGlzIGNvbnRlbnQgYmxvY2sKICAgICAqICBAcGFyYW0gYm9vbGVhbiAkdGh1bWJfaGVpZ2h0IC0gdGh1bWJuYWlsIGhlaWdodCBzZXQgZm9yIHRoaXMgY29udGVudCBibG9jawogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZUdhbGxlcnlEaXIoICR2YWx1ZXMsICRkaXIsICRhdXRvX2FkZF9kZWxldGUsICR0aHVtYl93aWR0aD0wLCAKICAgICAgICAkdGh1bWJfaGVpZ2h0PTAgKQogICAgewogICAgICAgIGlmICggZW1wdHkoJHZhbHVlcykgJiYgISRhdXRvX2FkZF9kZWxldGUgKSByZXR1cm47CgogICAgICAgICR0bXBfZGlyID0gc2VsZjo6RUNCMkltYWdlc1RlbXBQYXRoKCk7CiAgICAgICAgLy8gY3JlYXRlICRkaXIgaWYgaXQgZG9lc24ndCBleGlzdAogICAgICAgIGlmICggJGRpciAmJiAhZmlsZV9leGlzdHMoJGRpcikgKSB7CiAgICAgICAgICAgICRzdWNjZXNzID0gbWtkaXIoJGRpciwgMDc1NSwgdHJ1ZSk7CiAgICAgICAgfQogICAgICAgIGZvcmVhY2ggKCR2YWx1ZXMgYXMgJGZpbGVuYW1lKSB7CiAgICAgICAgICAgIGlmICggIWZpbGVfZXhpc3RzKCRkaXIuJGZpbGVuYW1lKSAmJiBmaWxlX2V4aXN0cygkdG1wX2Rpci4kZmlsZW5hbWUpKSB7CiAgICAgICAgICAgICAgICByZW5hbWUoICR0bXBfZGlyLiRmaWxlbmFtZSwgJGRpci4kZmlsZW5hbWUgKTsgICAvLyBtb3ZlcyBmaWxlIGZyb20gX3RtcAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBkZWxldGUgYW55IHRodW1ibmFpbHMgdGhhdCBhcmUgbm90IHRoZSBjb3JyZWN0IHNpemUKICAgICAgICBzZWxmOjpnZXRfcmVxdWlyZWRfdGh1bWJuYWlsX3NpemUoICR0aHVtYl93aWR0aCwgJHRodW1iX2hlaWdodCApOwogICAgICAgIGZvcmVhY2ggKCBnbG9iKCAkZGlyLnNlbGY6OlRIVU1CX1BSRUZJWC4nKi4qJyApIGFzICR0aHVtYmZpbGVuYW1lKSB7CiAgICAgICAgICAgICR0bXBfdGh1bWJmaWxlbmFtZSA9IGJhc2VuYW1lKCR0aHVtYmZpbGVuYW1lKTsKICAgICAgICAgICAgbGlzdCgkd2lkdGgsICRoZWlnaHQpID0gZ2V0aW1hZ2VzaXplKCR0aHVtYmZpbGVuYW1lKTsKICAgICAgICAgICAgaWYgKCAoJHRodW1iX3dpZHRoPjAgJiYgJHdpZHRoIT0kdGh1bWJfd2lkdGgpIHx8IAogICAgICAgICAgICAgICAgICgkdGh1bWJfaGVpZ2h0PjAgJiYgJGhlaWdodCE9JHRodW1iX2hlaWdodCkgKSB7CiAgICAgICAgICAgICAgICB1bmxpbmsoJHRodW1iZmlsZW5hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBjcmVhdGUgYW55IG5ldyB0aHVtYm5haWxzCiAgICAgICAgZm9yZWFjaCAoICR2YWx1ZXMgYXMgJGZpbGVuYW1lKSB7CiAgICAgICAgICAgIGlmICggIWZpbGVfZXhpc3RzKCRkaXIuc2VsZjo6VEhVTUJfUFJFRklYLiRmaWxlbmFtZSkgKSB7CiAgICAgICAgICAgICAgICBzZWxmOjpjcmVhdGVfdGh1bWJuYWlsKCAkZGlyLiRmaWxlbmFtZSwgJHRodW1iX3dpZHRoLCAkdGh1bWJfaGVpZ2h0ICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIHJlbW92ZSBhbnkgdW51c2VkIGZpbGVzICYgdGhlaXIgdGh1bWJuYWlscyAKICAgICAgICBpZiAoJGF1dG9fYWRkX2RlbGV0ZSkgeyAgICAKICAgICAgICAgICAgJGZpbGVzQW5kVGh1bWJzID0gJHZhbHVlczsKICAgICAgICAgICAgZm9yZWFjaCAoICR2YWx1ZXMgYXMgJGZpbGVuYW1lKSB7CiAgICAgICAgICAgICAgICAkZmlsZXNBbmRUaHVtYnNbXSA9IHNlbGY6OlRIVU1CX1BSRUZJWC4kZmlsZW5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yZWFjaCAoIGdsb2IoICRkaXIuJyouKicgKSBhcyAkZmlsZW5hbWUpIHsKICAgICAgICAgICAgICAgICR0bXBfZmlsZW5hbWUgPSBiYXNlbmFtZSgkZmlsZW5hbWUpOwogICAgICAgICAgICAgICAgaWYgKCAhaW5fYXJyYXkoJHRtcF9maWxlbmFtZSwgJGZpbGVzQW5kVGh1bWJzKSApIHVubGluaygkZmlsZW5hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgCiAgICB9CgoKCiAgICAvKioKICAgICAqICBhZGRzIGFueSBhZGRpdGlvbmFsIGZpbGVzIGluICRkaXIgaW50byAkdmFsdWVzIG9iamVjdCAoJHRoaXMtPnZhbHVlcykgCiAgICAgKgogICAgICogIEBwYXJhbSBhcnJheSAkdmFsdWVzIC0gZmlsZW5hbWVzIG9mIGFscmVhZHkgc2VsZWN0ZWQgZmlsZXMgaW4gdGhlIGRpcgogICAgICogIEBwYXJhbSBzdHJpbmcgJGRpciAtIGRpcmVjdG9yeSB0byBiZSB1c2VkIGZvciB0aGlzIGdhbGxlcnkKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBhdXRvQWRkRGlySW1hZ2VzKCAmJHZhbHVlcywgJGRpciwgJHRodW1ibmFpbF93aWR0aD0wLCAkdGh1bWJuYWlsX2hlaWdodD0wKQogICAgewogICAgICAgICRhbGxfZmlsZW5hbWVzID0gW107CiAgICAgICAgZm9yZWFjaCAoJHZhbHVlcyBhcyAkZ2FsbGVyeV9pdGVtKSB7CiAgICAgICAgICAgIGlmICggIWVtcHR5KCRnYWxsZXJ5X2l0ZW0tPmZpbGVuYW1lKSApICRhbGxfZmlsZW5hbWVzW10gPSAkZ2FsbGVyeV9pdGVtLT5maWxlbmFtZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZm9yZWFjaCAoIGdsb2IoICRkaXIuJyouKicgKSBhcyAkZmlsZW5hbWUpIHsKICAgICAgICAgICAgJHRtcF9maWxlbmFtZSA9IGJhc2VuYW1lKCRmaWxlbmFtZSk7CiAgICAgICAgICAgIGlmICggIXNlbGY6OmlzRUNCMlRodW1iKCR0bXBfZmlsZW5hbWUpICYmICFpbl9hcnJheSgkdG1wX2ZpbGVuYW1lLCAkYWxsX2ZpbGVuYW1lcykgKSB7CiAgICAgICAgICAgICAgICAkbmV3X2l0ZW0gPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgICAgICRuZXdfaXRlbS0+ZmlsZW5hbWUgPSAkdG1wX2ZpbGVuYW1lOwogICAgICAgICAgICAgICAgJHZhbHVlc1tdID0gJG5ld19pdGVtOwogICAgICAgICAgICAgICAgc2VsZjo6Y3JlYXRlX3RodW1ibmFpbCgkZmlsZW5hbWUsICR0aHVtYm5haWxfd2lkdGgsICR0aHVtYm5haWxfaGVpZ2h0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICB9CgoKCiAgICAvKioKICAgICAqIEByZXR1cm4gYm9vbGVhbiB0cnVlIGlmICRoYXlzdGFjayBzdGFydHMgd2l0aCBzZWxmOjpUSFVNQl9QUkVGSVggKCd0aHVtYl8nKQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzRUNCMlRodW1iKCAkaGF5c3RhY2sgKSAKICAgIHsKICAgICAgICAkbGVuZ3RoID0gc3RybGVuKCBzZWxmOjpUSFVNQl9QUkVGSVggKTsKICAgICAgICByZXR1cm4gc3Vic3RyKCAkaGF5c3RhY2ssIDAsICRsZW5ndGggKSA9PT0gc2VsZjo6VEhVTUJfUFJFRklYOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgQ3JlYXRlcyBhIHRodW1ibmFpbCBmb3IgdGhlICRzcmMgZmlsZSBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QsIG9yIGlzIG5vdCB0aGUgcmVxdWlyZWQgc2l6ZQogICAgICoKICAgICAqICBAcGFyYW0gc3RyaW5nICRzcmMgLSBmaWxlbmFtZSBvZiBmaWxlIHRvIGNyZWF0ZSB0aHVtYm5haWwgZm9yCiAgICAgKiAgQHBhcmFtIGludCAkdGh1bWJfd2lkdGggLSB3aWR0aCBvZiB0aHVtYm5haWwgdG8gYmUgY3JlYXRlZCAoZGVmYXVsdDogbW9kdWxlIHByZWYsIHNpdGVwcmVmKQogICAgICogIEBwYXJhbSBpbnQgJHRodW1iX2hlaWdodCAtIGhlaWdodCBvZiB0aHVtYm5haWwgdG8gYmUgY3JlYXRlZCAoZGVmYXVsdDogbW9kdWxlIHByZWYsIHNpdGVwcmVmKQogICAgICogIEBwYXJhbSBzdHJpbmcgJGRlc3QgLSBhbHRlcm5hdGl2ZSBmaWxlbmFtZSBmb3IgbmV3IHRodW1ibmFpbAogICAgICogIEBwYXJhbSBib29sZWFuICRmb3JjZSAtIGlmIHNldCB0byBUUlVFIHdpbGwgb3ZlcndyaXRlIGFueSBleGlzdGluZyB0aHVtYm5haWwgZmlsZW5hbWUKICAgICAqICBAcmV0dXJuIGJvb2xlYW4gdHJ1ZSBpZiBuZXcgdGh1bWJuYWlsIGNyZWF0ZWQKICAgICAqICBiYXNlZCBvbiBGaWxlTWFuYWdlciA+IGNsYXNzLmZpbGVtYW5hZ2VyX3V0aWxzCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlX3RodW1ibmFpbCgkc3JjLCAkdGh1bWJfd2lkdGg9MCwgJHRodW1iX2hlaWdodD0wLCAkZGVzdD1OVUxMLCAkZm9yY2U9RkFMU0UpCiAgICB7CiAgICAgICAgaWYgKCAhZmlsZV9leGlzdHMoJHNyYykgfHwgIWlzX2ZpbGUoJHNyYykgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYgKCAhJGRlc3QgKSB7CiAgICAgICAgICAgICRibiA9IGJhc2VuYW1lKCRzcmMpOwogICAgICAgICAgICAkZG4gPSBkaXJuYW1lKCRzcmMpOwogICAgICAgICAgICAkZGVzdCA9ICRkbi5ESVJFQ1RPUllfU0VQQVJBVE9SLnNlbGY6OlRIVU1CX1BSRUZJWC4kYm47CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkZm9yY2UgJiYgKGZpbGVfZXhpc3RzKCRkZXN0KSAmJiAhaXNfd3JpdGFibGUoJGRlc3QpICkgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgCiAgICAgICAgJGluZm8gPSBnZXRpbWFnZXNpemUoJHNyYyk7CiAgICAgICAgaWYgKCAhJGluZm8gfHwgIWlzc2V0KCRpbmZvWydtaW1lJ10pICkgcmV0dXJuIEZBTFNFOwogICAgICAgICRzcmNfd2lkdGggPSAkaW5mb1swXTsKICAgICAgICAkc3JjX2hlaWdodCA9ICRpbmZvWzFdOwogICAgICAgICRzcmNfeCA9IDA7IAogICAgICAgICRzcmNfeSA9IDA7CgogICAgICAgIHNlbGY6OmdldF90aHVtYm5haWxfc2l6ZSgkc3JjX3dpZHRoLCAkc3JjX2hlaWdodCwgJHRodW1iX3dpZHRoLCAkdGh1bWJfaGVpZ2h0LCAkc3JjX3gsICRzcmNfeSk7CgogICAgICAgIC8vIGlmIHRodW1ibmFpbCBleGlzdHMgYW5kIGlzIG9mIGNvcnJlY3Qgc2l6ZSAtIGxlYXZlIGFzIGlzLCB1bmxlc3MgJGZvcmNlIHNldAogICAgICAgICR0aHVtYl9pbmZvID0gZ2V0aW1hZ2VzaXplKCRkZXN0KTsKICAgICAgICBpZiAoICEkZm9yY2UgfHwgISR0aHVtYl9pbmZvIHx8ICFpc3NldCgkdGh1bWJfaW5mb1snbWltZSddKSApIHsKICAgICAgICAgICAgaWYgKCAkdGh1bWJfaW5mb1swXT09JHRodW1iX3dpZHRoICYmICR0aHVtYl9pbmZvWzFdPT0kdGh1bWJfaGVpZ2h0ICkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGNyZWF0ZSBuZXcgdGh1bWJuYWlsCiAgICAgICAgJGlfc3JjID0gaW1hZ2VjcmVhdGVmcm9tc3RyaW5nKGZpbGVfZ2V0X2NvbnRlbnRzKCRzcmMpKTsKICAgICAgICAkaV9kZXN0ID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJHRodW1iX3dpZHRoLCAkdGh1bWJfaGVpZ2h0KTsKICAgICAgICBpbWFnZWFscGhhYmxlbmRpbmcoJGlfZGVzdCwgRkFMU0UpOwogICAgICAgICRjb2xvciA9IGltYWdlQ29sb3JBbGxvY2F0ZUFscGhhKCRpX3NyYywgMjU1LCAyNTUsIDI1NSwgMTI3KTsKICAgICAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJGlfZGVzdCwgJGNvbG9yKTsKICAgICAgICBpbWFnZWZpbGwoJGlfZGVzdCwgMCwgMCwgJGNvbG9yKTsKICAgICAgICBpbWFnZXNhdmVhbHBoYSgkaV9kZXN0LCBUUlVFKTsKICAgICAgICBpbWFnZWNvcHlyZXNhbXBsZWQoJGlfZGVzdCwgJGlfc3JjLCAwLDAsICRzcmNfeCwgJHNyY195LCAkdGh1bWJfd2lkdGgsICR0aHVtYl9oZWlnaHQsICRzcmNfd2lkdGgsICRzcmNfaGVpZ2h0KTsKCiAgICAgICAgJHJlcyA9IG51bGw7CiAgICAgICAgc3dpdGNoKCAkaW5mb1snbWltZSddICkgewogICAgICAgIGNhc2UgJ2ltYWdlL2dpZic6CiAgICAgICAgICAgICRyZXMgPSBpbWFnZWdpZigkaV9kZXN0LCRkZXN0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnaW1hZ2UvcG5nJzoKICAgICAgICAgICAgJHJlcyA9IGltYWdlcG5nKCRpX2Rlc3QsJGRlc3QsOSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2ltYWdlL2pwZWcnOgogICAgICAgICAgICAkcmVzID0gaW1hZ2VqcGVnKCRpX2Rlc3QsJGRlc3QsMTAwKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkcmVzICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgc2V0cyBwcm92aWRlZCBwYXJhbWV0ZXJzIHRodW1iX3dpZHRoICYgdGh1bWJfaGVpZ2h0CiAgICAgKiAgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHZhbHVlcywgZGVmYXVsdGluZyB0byBtb2R1bGUgcHJlZmVyZW5jZXMsIG9yIGdsb2JhbCBzaXRlcHJlZnMKICAgICAqCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkdGh1bWJfd2lkdGggLSB3aWR0aCBvZiB0aHVtYm5haWwgdG8gYmUgY3JlYXRlZCAoZGVmYXVsdDogbW9kdWxlIHByZWYsIHNpdGVwcmVmKQogICAgICogIEBwYXJhbSBzdHJpbmcgJHRodW1iX2hlaWdodCAtIGhlaWdodCBvZiB0aHVtYm5haWwgdG8gYmUgY3JlYXRlZCAoZGVmYXVsdDogbW9kdWxlIHByZWYsIHNpdGVwcmVmKQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9yZXF1aXJlZF90aHVtYm5haWxfc2l6ZSggJiR0aHVtYl93aWR0aD0wLCAmJHRodW1iX2hlaWdodD0wICkKICAgIHsKICAgICAgICAkdGh1bWJfd2lkdGggPSAoaW50KSAkdGh1bWJfd2lkdGg7CiAgICAgICAgJHRodW1iX2hlaWdodCA9IChpbnQpICR0aHVtYl9oZWlnaHQ7CiAgICAgICAgaWYgKCAkdGh1bWJfd2lkdGg9PTAgJiYgJHRodW1iX2hlaWdodD09MCApIHsgCiAgICAgICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoICdFQ0IyJyApOwogICAgICAgICAgICAkZWNiMl90aHVtYl93aWR0aCA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ3RodW1ibmFpbFdpZHRoJywgJycpOwogICAgICAgICAgICAkZWNiMl90aHVtYl9oZWlnaHQgPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCd0aHVtYm5haWxIZWlnaHQnLCAnJyk7CiAgICAgICAgICAgIGlmICggIWVtcHR5KCRlY2IyX3RodW1iX3dpZHRoKSB8fCAhZW1wdHkoJGVjYjJfdGh1bWJfaGVpZ2h0KSApIHsgLy8gdXNlIG1vZHVsZSBwcmVmZXJlbmNlcwogICAgICAgICAgICAgICAgJHRodW1iX3dpZHRoID0gKGludCkkZWNiMl90aHVtYl93aWR0aDsKICAgICAgICAgICAgICAgICR0aHVtYl9oZWlnaHQgPSAoaW50KSRlY2IyX3RodW1iX2hlaWdodDsKCiAgICAgICAgICAgIH0gZWxzZSB7ICAgIC8vIHVzZSBDTVNNUyBwcmVmZXJlbmNlcwogICAgICAgICAgICAgICAgJHRodW1iX3dpZHRoID0gKGludCljbXNfc2l0ZXByZWZzOjpnZXQoJ3RodW1ibmFpbF93aWR0aCcsOTYpOwogICAgICAgICAgICAgICAgJHRodW1iX2hlaWdodCA9IChpbnQpY21zX3NpdGVwcmVmczo6Z2V0KCd0aHVtYm5haWxfaGVpZ2h0Jyw5Nik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHByb3ZpZGVkIHBhcmFtZXRlcnMgdGh1bWJfd2lkdGggJiB0aHVtYl9oZWlnaHQsIHNyY195LCAmIHNyY195CiAgICAgKiAgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHZhbHVlcywgZGVmYXVsdGluZyB0byBtb2R1bGUgcHJlZmVyZW5jZXMsIG9yIGdsb2JhbCBzaXRlcHJlZnMKICAgICAqICBpZiBvbmx5IHdpZHRoIG9yIGhlaWdodCBzZXQgKHBhcmFtcyBvciBtb2R1bGUgcHJlZikgdGhlbiBoZWlnaHQgb3Igd2lkdGggMTAwJSAocmVzcGVjdGl2ZWx5KQogICAgICogIHRodW1ibmFpbCBjcm9wcGVkIHRvIHJldGFpbiBpbWFnZSByYXRpbwogICAgICoKICAgICAqICBAcGFyYW0gYXJyYXkgJHNyY193aWR0aCAtIHdpZHRoIG9mIHRoZSBzcmMgaW1hZ2UgCiAgICAgKiAgQHBhcmFtIGFycmF5ICRzcmNfaGVpZ2h0IC0gaGVpZ2h0IG9mIHRoZSBzcmMgaW1hZ2UKICAgICAqICBAcGFyYW0gc3RyaW5nICR0aHVtYl93aWR0aCAtIHdpZHRoIG9mIHRodW1ibmFpbCB0byBiZSBjcmVhdGVkIChkZWZhdWx0OiBtb2R1bGUgcHJlZiwgc2l0ZXByZWYpCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkdGh1bWJfaGVpZ2h0IC0gaGVpZ2h0IG9mIHRodW1ibmFpbCB0byBiZSBjcmVhdGVkIChkZWZhdWx0OiBtb2R1bGUgcHJlZiwgc2l0ZXByZWYpCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkc3JjX3ggLSAwIG9yIHNldCBpZiB3aWR0aCBjcm9wcGluZyByZXF1aXJlZAogICAgICogIEBwYXJhbSBib29sZWFuICRzcmNfeSAtIDAgb3Igc2V0IGlmIGhlaWdodCBjcm9wcGluZyByZXF1aXJlZAogICAgICogIGJhc2VkIG9uIEZpbGVNYW5hZ2VyID4gY2xhc3MuZmlsZW1hbmFnZXJfdXRpbHMKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfdGh1bWJuYWlsX3NpemUoICYkc3JjX3dpZHRoLCAmJHNyY19oZWlnaHQsICYkdGh1bWJfd2lkdGg9MCwgJiR0aHVtYl9oZWlnaHQ9MCwgJiRzcmNfeD0wLCAmJHNyY195PTAgKQogICAgewogICAgICAgIHNlbGY6OmdldF9yZXF1aXJlZF90aHVtYm5haWxfc2l6ZSggJHRodW1iX3dpZHRoLCAkdGh1bWJfaGVpZ2h0ICk7CgogICAgICAgIC8vIGlmIG9uZSBkaW1lbnNpb24gbm90IHNldCBjYWxjdWxhdGUgd2lkdGgvaGVpZ2h0IHJhdGlvCiAgICAgICAgaWYgKCAkdGh1bWJfd2lkdGghPTAgJiYgJHRodW1iX2hlaWdodCE9MCApIHsKICAgICAgICAgICAgJHRodW1iX3dpZHRoID0gKGludCkkdGh1bWJfd2lkdGg7CiAgICAgICAgICAgICR0aHVtYl9oZWlnaHQgPSAoaW50KSR0aHVtYl9oZWlnaHQ7CgogICAgICAgIH0gZWxzZWlmICggJHRodW1iX3dpZHRoPT0wICkgeyAgLy8gYnV0IG5vdCAkdGh1bWJfaGVpZ2h0CiAgICAgICAgICAgICR0aHVtYl93aWR0aCA9IChpbnQpKCRzcmNfd2lkdGggLyAkc3JjX2hlaWdodCAqICR0aHVtYl9oZWlnaHQpOwoKICAgICAgICB9IGVsc2UgeyAvLyAkdGh1bWJfaGVpZ2h0PT0wIGJ1dCBub3QgJHRodW1iX3dpZHRoCiAgICAgICAgICAgICR0aHVtYl9oZWlnaHQgPSAoaW50KSgkc3JjX2hlaWdodCAvICRzcmNfd2lkdGggKiAkdGh1bWJfd2lkdGgpOwoKICAgICAgICB9CgogICAgICAgIC8vIHNldCAkc3JjX3gvJHNyY195IHRvIGNyb3Agd2lkdGgvaGVpZ2h0IGlmIHJlcXVpcmVkICYgc2V0ICRzcmNfd2lkdGgvJHNyY19oZWlnaHQKICAgICAgICBpZiAoICRzcmNfaGVpZ2h0PT0wIHx8ICR0aHVtYl9oZWlnaHQ9PTApIHJldHVybjsKICAgICAgICAkcmF0aW9fc3JjID0gJHNyY193aWR0aCAvICRzcmNfaGVpZ2h0OwogICAgICAgICRyYXRpb190aHVtYiA9ICR0aHVtYl93aWR0aCAvICR0aHVtYl9oZWlnaHQ7CiAgICAgICAgaWYgKCRyYXRpb19zcmMgPiAkcmF0aW9fdGh1bWIpIHsgICAgLy8gc3JjX3dpZGVyX3RoYW5fdGh1bWIKICAgICAgICAgICAgJHNyY194ID0gKGludCkoKCRzcmNfd2lkdGggLSAkc3JjX2hlaWdodCAqICRyYXRpb190aHVtYikgLyAyKTsgCiAgICAgICAgICAgICRzcmNfd2lkdGggPSAoaW50KSgkc3JjX2hlaWdodCAqICRyYXRpb190aHVtYik7IAoKICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcmNfdGFsbGVyX3RoYW5fdGh1bWIKICAgICAgICAgICAgJHNyY195ID0gKGludCkoKCRzcmNfaGVpZ2h0IC0gJHNyY193aWR0aCAvICRyYXRpb190aHVtYikgLyAyKTsgCiAgICAgICAgICAgICRzcmNfaGVpZ2h0ID0gKGludCkoJHNyY193aWR0aCAvICRyYXRpb190aHVtYik7CgogICAgICAgIH0KCiAgICB9CgoKCiAgICAvKioKICAgICAqICBjb252ZXJ0cyBGaWxlIHN5c3RlbSBwYXRoIHRvIHJlbGF0aXZlIGFkbWluIFVSTAogICAgICogIAogICAgICogIEByZXR1cm4gc3RyaW5nIHJlbGF0aXZlIHVybCB0byBhY2Nlc3MgZ2l2ZW4gJGZpbGUKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBhZG1pbl9wYXRoMnVybCgkZmlsZSwgJFByb3RvY29sPSdodHRwczovLycpIAogICAgewogICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICAkcmVsYXRpdmVfYWRtaW5fcGF0aCA9ICcuLicuc3RyX3JlcGxhY2UoJGNvbmZpZ1sncm9vdF9wYXRoJ10sICcnLCAkZmlsZSk7CiAgICAgICAgcmV0dXJuICRyZWxhdGl2ZV9hZG1pbl9wYXRoOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgcHJvdmlkZXMgdGh1bWJuYWlsIHVybCBmb3IgJHNyYyBmaWxlLCBpdCdzIGNyZWF0ZWQgaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0ICYgY29ycmVjdCBzaXplCiAgICAgKgogICAgICogIEBwYXJhbSBzdHJpbmcgJHNyYyAtIGZpbGVuYW1lIG9mIGZpbGUgdG8gY3JlYXRlIHRodW1ibmFpbCBmb3IKICAgICAqICBAcGFyYW0gaW50ICR0aHVtYl93aWR0aCAtIHdpZHRoIG9mIHRodW1ibmFpbCB0byBiZSBjcmVhdGVkIChkZWZhdWx0OiBtb2R1bGUgcHJlZiwgc2l0ZXByZWYpCiAgICAgKiAgQHBhcmFtIGludCAkdGh1bWJfaGVpZ2h0IC0gaGVpZ2h0IG9mIHRodW1ibmFpbCB0byBiZSBjcmVhdGVkIChkZWZhdWx0OiBtb2R1bGUgcHJlZiwgc2l0ZXByZWYpCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkZGVzdCAtIGFsdGVybmF0aXZlIGZpbGVuYW1lIGZvciBuZXcgdGh1bWJuYWlsCiAgICAgKiAgQHBhcmFtIGJvb2xlYW4gJGZvcmNlIC0gaWYgc2V0IHRvIFRSVUUgd2lsbCBvdmVyd3JpdGUgYW55IGV4aXN0aW5nIHRodW1ibmFpbCBmaWxlbmFtZQogICAgICogIEByZXR1cm4gc3RyaW5nIHRodW1ibmFpbCB1cmwgZm9yIGdpdmVuICRzcmMgaW1hZ2Ugb3IgJycgaWYgaXQgZG9lc24ndCBleGlzdAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF90aHVtYm5haWxfdXJsKCRzcmMsICR0aHVtYl93aWR0aD0wLCAkdGh1bWJfaGVpZ2h0PTAsICRkZXN0PU5VTEwsICRmb3JjZT1GQUxTRSkKICAgIHsKICAgICAgICAkY3JlYXRlZCA9IHNlbGY6OmNyZWF0ZV90aHVtYm5haWwoJHNyYywgJHRodW1iX3dpZHRoLCAkdGh1bWJfaGVpZ2h0LCAkZGVzdCwgJGZvcmNlKTsKCiAgICAgICAgaWYgKCAhJGNyZWF0ZWQgKSByZXR1cm4gJyc7CgogICAgICAgIGlmICggISRkZXN0ICkgewogICAgICAgICAgICAkYm4gPSBiYXNlbmFtZSgkc3JjKTsKICAgICAgICAgICAgJGRuID0gZGlybmFtZSgkc3JjKTsKICAgICAgICAgICAgJGRlc3QgPSAkZG4uRElSRUNUT1JZX1NFUEFSQVRPUi5zZWxmOjpUSFVNQl9QUkVGSVguJGJuOwogICAgICAgIH0KICAgICAgICBpZiAoICFmaWxlX2V4aXN0cygkZGVzdCkgKSByZXR1cm4gJyc7CgogICAgICAgIHJldHVybiBzZWxmOjphZG1pbl9wYXRoMnVybCgkZGVzdCk7CgogICAgfQoKCgp9]]></data>
	</file>
	<file>
	  <filename>/lib/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/css/ecb2_admin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogZWNiMl9hZG1pbi5jc3MgLSB2MS4yIC0gMjRNYXIyMg0KDQogICAgLSB2MS4yIC0gMjRNYXIyMiAtIGFkZGQgaW4gY29scGljayBjc3MNCiAgICAtIHYxLjEgLSAxNkZlYjE5IC0gZWNiX3JlcGVhdGVyIGFkZGVkICYgYmVnYW4gY29uc29saWRhdGluZyBDU1MgaW50byB0aGlzIGZpbGUNCiAgICAtIHYxLjAgLSAxOEFwcjE3IC0gaW5pdGlhbCBjc3MgZmlsZQ0KDQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCi5zb3J0YWJsZS1lY2IyLWxpc3QgdHIge2N1cnNvcjptb3ZlO30NCiNsb2FkZXIge3BhZGRpbmctbGVmdDo1MHB4O30NCg0KLyogaWNvbnMgZnJvbSBpY29tb29uICovDQpAZm9udC1mYWNlIHtmb250LWZhbWlseTonaWNvbW9vbic7IA0KICAgIHNyYzogdXJsKCdpY29tb29uLmVvdD9mMWtpdGEnKTsNCiAgICBzcmM6IHVybCgnaWNvbW9vbi5lb3Q/ZjFraXRhI2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLA0KICAgICAgICAgdXJsKCdpY29tb29uLnR0Zj9mMWtpdGEnKSBmb3JtYXQoJ3RydWV0eXBlJyksDQogICAgICAgICB1cmwoJ2ljb21vb24ud29mZj9mMWtpdGEnKSBmb3JtYXQoJ3dvZmYnKSwNCiAgICAgICAgIHVybCgnaWNvbW9vbi5zdmc/ZjFraXRhI2ljb21vb24nKSBmb3JtYXQoJ3N2ZycpOw0KICAgIGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtZGlzcGxheTpibG9jazt9DQpbY2xhc3NePSdlY2IyLWljb24tJ10sIFtjbGFzcyo9JyBlY2IyLWljb24tJ10ge2ZvbnQtZmFtaWx5OidpY29tb29uJyAhaW1wb3J0YW50OyBmb250LXdlaWdodDpub3JtYWw7IA0KICAgIGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXZhcmlhbnQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxO3RleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtc2l6ZToxNnB4Ow0KICAgIGNvbG9yOmluaGVyaXQ7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7IC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTt9DQoNCg0KLmVjYjItaWNvbi1maWxlLW86YmVmb3JlIHtjb250ZW50OidcZTkwYSc7fQ0KLmVjYjItaWNvbi1taW51cy1zb2xpZDpiZWZvcmUge2NvbnRlbnQ6J1xlOTAwJzt9DQouZWNiMi1pY29uLXBsdXMtc29saWQ6YmVmb3JlIHtjb250ZW50OidcZTkwMSc7fQ0KLmVjYjItaWNvbi1pbWFnZTpiZWZvcmUge2NvbnRlbnQ6J1xlOTBkJzt9DQouZWNiMi1pY29uLWltYWdlczpiZWZvcmUge2NvbnRlbnQ6J1xlOTBlJzt9DQouZWNiMi1pY29uLW1lbnUyOmJlZm9yZSB7Y29udGVudDonXGU5YmUnO30NCi5lY2IyLWljb24tcGx1czpiZWZvcmUge2NvbnRlbnQ6J1xlYTBhJzt9DQouZWNiMi1pY29uLW1pbnVzOmJlZm9yZSB7Y29udGVudDonXGVhMGInO30NCi5lY2IyLWljb24tdHJhc2gtY2FuLXJlZ3VsYXI6YmVmb3JlIHtjb250ZW50OidcZTkwMic7fQ0KLmVjYjItaWNvbi10cmFzaC1yZWd1bGFyOmJlZm9yZSB7Y29udGVudDonXGU5MDUnO30NCi5lY2IyLWljb24tdHJhc2gtY2FuLXNvbGlkOmJlZm9yZSB7Y29udGVudDonXGU5MDYnO30NCi5lY2IyLWljb24tZ3JpcC1kb3RzLXNvbGlkOmJlZm9yZSB7Y29udGVudDonXGU5MDMnO30NCi5lY2IyLWljb24tZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkOmJlZm9yZSB7Y29udGVudDonXGU5MDQnO30NCi5lY2IyLWljb24tcGVuY2lsOmJlZm9yZSB7Y29udGVudDonXGU5MDcnO30NCi5lY2IyLWljb24teG1hcms6YmVmb3JlIHtjb250ZW50OidcZTkwOCc7fQ0KLmVjYjItaWNvbi1jaGVjazpiZWZvcmUge2NvbnRlbnQ6J1xlOTA5Jzt9DQoNCg0KLmVjYjItYnRuIHtib3gtc2l6aW5nOmJvcmRlci1ib3g7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW46MDsgcGFkZGluZzouMzQ0cmVtIC43NXJlbTsgDQogICAgZm9udC1mYW1pbHk6aW5oZXJpdDsgZm9udC1zaXplOjEycHg7IGZvbnQtd2VpZ2h0OjcwMDsgbGluZS1oZWlnaHQ6MTZweDsgY29sb3I6IzIxMjUyOTsNCiAgICBib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmFkaXVzOi4yNXJlbTsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsNCiAgICB0ZXh0LWFsaWduOmNlbnRlcjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06bm9uZTsgDQogICAgY3Vyc29yOnBvaW50ZXI7IC13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTsgLW1vei11c2VyLXNlbGVjdDpub25lOyB1c2VyLXNlbGVjdDpub25lOyANCiAgICB0cmFuc2l0aW9uOmNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDsgLXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjt9DQouZWNiMi1idG4uZWNiMi1pY29uLW9ubHkge3BhZGRpbmc6LjI1cmVtIDAuNXJlbX0NCi5lY2IyLWJ0bjpkaXNhYmxlZCB7b3BhY2l0eTouNDsgY3Vyc29yOmRlZmF1bHQ7fQ0KLmVjYjItYnRuLWRlZmF1bHQge2NvbG9yOiM2YzZjNmM7IGJvcmRlci1jb2xvcjojZDhkOGQ4OyBiYWNrZ3JvdW5kLWNvbG9yOiNkOGQ4ZDg7fQ0KLyogLmVjYjItYnRuLWRlZmF1bHQ6aG92ZXI6ZW5hYmxlZCB7Y29sb3I6I2ZmZjsgYmFja2dyb3VuZDojZmE4MDA0OyBib3JkZXI6MXB4IHNvbGlkICNmYTY3MDQ7fSAqLw0KLmVjYjItYnRuLWRlZmF1bHQ6aG92ZXI6bm90KGRpc2FibGVkKSB7Y29sb3I6I2ZmZjsgYmFja2dyb3VuZDojZmE4MDA0OyBib3JkZXI6MXB4IHNvbGlkICNmYTY3MDQ7fQ0KLmVjYjItYnRuIC5lY2IyLWljb24tcGx1cyB7Zm9udC1zaXplOjEwcHg7fQ0KLmVjYjItYnRuIC5lY2IyLWljb24tbWludXMge2ZvbnQtc2l6ZToxMHB4O30NCg0KLmlubGluZS1sYWJlbC5lY2IyLWhpZGUtbGFiZWwge21hcmdpbi10b3A6MXJlbTt9DQoNCi50YWJsZS1yZXNwb25zaXZlIHtvdmVyZmxvdy14OmF1dG87IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO30NCg0KLyogZWNiX3JlcGVhdGVyICovDQouZWNiX3JlcGVhdGVyICoge2JveC1zaXppbmc6Ym9yZGVyLWJveDt9DQouZWNiX3JlcGVhdGVyLnRhYmxlLWxheW91dCB7bWluLXdpZHRoOjEwMCU7fQ0KLmVjYl9yZXBlYXRlcl9mb290ZXIge3BhZGRpbmc6LjVyZW0gMDsgdGV4dC1hbGlnbjpyaWdodDt9DQouZWNiX3JlcGVhdGVyOm5vdCgudGFibGUtbGF5b3V0KSAucmVwZWF0ZXItd3JhcHBlciwgLmVjYl9yZXBlYXRlcjpub3QoLnRhYmxlLWxheW91dCkgLnJlcGVhdGVyLXdyYXBwZXItaGVhZGVyIHsNCiAgICBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAgM3JlbSAwIC4yNXJlbTt9DQouZWNiX3JlcGVhdGVyIC5yZXBlYXRlci13cmFwcGVyLCAuZWNiX3JlcGVhdGVyIC5yZXBlYXRlci13cmFwcGVyLWhlYWRlciB7DQogICAgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7IGJvcmRlci1ib3R0b20td2lkdGg6MDt9DQoNCi5lY2JfcmVwZWF0ZXIgLnJlcGVhdGVyLXdyYXBwZXI6bGFzdC1jaGlsZCwgLmVjYl9yZXBlYXRlciAucmVwZWF0ZXItd3JhcHBlcjpsYXN0LWNoaWxkIC5sZWZ0LXBhbmVsLA0KICAgIC5lY2JfcmVwZWF0ZXIgLnJlcGVhdGVyLXdyYXBwZXI6bGFzdC1jaGlsZCAucmlnaHQtcGFuZWwge2JvcmRlci1ib3R0b20td2lkdGg6MXB4O30NCi5lY2JfcmVwZWF0ZXIuc29ydGFibGU6bm90KC50YWJsZS1sYXlvdXQpIC5yZXBlYXRlci13cmFwcGVyIHttaW4taGVpZ2h0OjM5cHg7IHBhZGRpbmctbGVmdDoycmVtO30NCi5lY2JfcmVwZWF0ZXIgLmhhbmRsZSB7Y3Vyc29yOm1vdmU7IGN1cnNvcjpncmFiOyBjdXJzb3I6LW1vei1ncmFiOyBjdXJzb3I6LXdlYmtpdC1ncmFiO30NCi5lY2JfcmVwZWF0ZXIuc29ydGFibGUgLnJlcGVhdGVyLXdyYXBwZXItaGVhZGVyIHttaW4taGVpZ2h0OjM5cHg7IHBhZGRpbmctbGVmdDoycmVtO30NCi5lY2JfcmVwZWF0ZXI6bm90KC50YWJsZS1sYXlvdXQpIC5sZWZ0LXBhbmVsIHtwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgZGlzcGxheTpibG9jazt9DQouZWNiX3JlcGVhdGVyIC5sZWZ0LXBhbmVsIHsNCiAgICB3aWR0aDoyOHB4OyBtaW4td2lkdGg6MjhweDsgaGVpZ2h0OmNhbGMoMTAwJSArIDFweCk7IGNvbG9yOiM2YzZjNmM7IHRleHQtYWxpZ246Y2VudGVyOw0KICAgIGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2ViZWJlYjsgYm9yZGVyLWJvdHRvbS13aWR0aDowO30NCi5lY2JfcmVwZWF0ZXIgLmxlZnQtcGFuZWwuaGFuZGxlIHtiYWNrZ3JvdW5kLWNvbG9yOiNmNGY0ZjQ7fQ0KLmVjYl9yZXBlYXRlciAuc3ViX2ZpZWxkX2xhYmVsIHtkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzo2cHggOHB4Ow0KICAgIGNvbG9yOiM1ODU4NTg7IGZvbnQtd2VpZ2h0OjcwMDt9DQouZWNiX3JlcGVhdGVyOm5vdCgudGFibGUtbGF5b3V0KSAubGVmdC1wYW5lbCAuZWNiMi1pY29uLWdyaXAtZG90cy12ZXJ0aWNhbC1zb2xpZCB7DQogICAgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgbWFyZ2luOi04cHggYXV0byAwO30NCi5lY2JfcmVwZWF0ZXIgLnJpZ2h0LXBhbmVsIHt3aWR0aDoyLjVyZW07IGJhY2tncm91bmQtY29sb3I6I2Y0ZjRmNDsgdGV4dC1hbGlnbjpjZW50ZXI7IA0KICAgIHZlcnRpY2FsLWFsaWduOnRvcDsgYm9yZGVyLWJvdHRvbS13aWR0aDowOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNlYmViZWI7fQ0KLmVjYl9yZXBlYXRlcjpub3QoLnRhYmxlLWxheW91dCkgLnJpZ2h0LXBhbmVsIHtwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IGRpc3BsYXk6YmxvY2s7IA0KICAgIGhlaWdodDpjYWxjKDEwMCUgKyAxcHgpOyBib3JkZXItbGVmdDoxcHggc29saWQgI2ViZWJlYjt9DQouZWNiMi1yZXBlYXRlci1yZW1vdmUge21hcmdpbjouM3JlbSAwO30NCg0KLmVjYl9yZXBlYXRlci50YWJsZS1sYXlvdXQgLnN1Yi1maWVsZC1oZWFkaW5nIHtwYWRkaW5nOjZweCA4cHg7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2ViZWJlYjsgDQogICAgY29sb3I6IzU4NTg1ODsgZm9udC13ZWlnaHQ6NzAwOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7fQ0KLmVjYl9yZXBlYXRlci50YWJsZS1sYXlvdXQgLnN1Yi1maWVsZCB7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZWJlYmViOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7fQ0KLmVjYl9yZXBlYXRlci50YWJsZS1sYXlvdXQgLnN1Yi1maWVsZC1jaGVja2JveCB7bWluLXdpZHRoOjgwcHg7IHBhZGRpbmctdG9wOjRweDt9DQouZWNiX3JlcGVhdGVyLnRhYmxlLWxheW91dCAuc3ViLWZpZWxkLXJhZGlvIHtwYWRkaW5nOjRweCA4cHggNHB4IDA7fQ0KLmVjYl9yZXBlYXRlci50YWJsZS1sYXlvdXQgLnN1Yi1maWVsZC1maWxlX3BpY2tlciB7bWluLXdpZHRoOjE0MHB4O30NCi5lY2JfcmVwZWF0ZXIudGFibGUtbGF5b3V0IC5zdWItZmllbGQtdGV4dGFyZWEge21pbi13aWR0aDo1MDBweDt9DQouZWNiX3JlcGVhdGVyLnRhYmxlLWxheW91dCAuc3ViLWZpZWxkLWNoZWNrYm94Om5vdCguaW5saW5lLWxhYmVsKSwgDQogICAgLmVjYl9yZXBlYXRlci50YWJsZS1sYXlvdXQgLnN1Yi1maWVsZC1oZWFkaW5nLWNoZWNrYm94IHt0ZXh0LWFsaWduOmNlbnRlcjt9DQouZWNiX3JlcGVhdGVyIC5zdWItZmllbGQtY29sb3JfcGlja2VyIC5jb2xwaWNrIHt0b3A6YXV0byAhaW1wb3J0YW50OyBsZWZ0OmF1dG8gIWltcG9ydGFudDt9DQoNCi5lY2JfcmVwZWF0ZXIgaW5wdXQsIC5lY2JfcmVwZWF0ZXIgdGV4dGFyZWEsIC5lY2JfcmVwZWF0ZXIgc2VsZWN0IHttYXJnaW46NXB4IDhweDt9DQouZWNiX3JlcGVhdGVyIC5tY2UtdGlueW1jZSwgLmVjYl9yZXBlYXRlciAudG94LXRpbnltY2Uge21hcmdpbi10b3A6LjVyZW07IG1hcmdpbi1ib3R0b206LjVyZW07fQ0KLmVjYl9yZXBlYXRlciAuc3ViLWZpZWxkIC5tY2UtdGlueW1jZSwgLmVjYl9yZXBlYXRlciAuc3ViLWZpZWxkIC50b3gtdGlueW1jZSB7DQogICAgICAgIHdpZHRoOmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjVweCA4cHg7fQ0KLmVjYl9yZXBlYXRlci50YWJsZS1sYXlvdXQgLnJlcGVhdGVyLWZpZWxkLnd5c2l3eWcge3dpZHRoOjEwMCU7fQ0KLmVjYl9yZXBlYXRlciAucmVwZWF0ZXItZmllbGQge21heC13aWR0aDpjYWxjKDEwMCUgLSAxMnB4KTsgdmVydGljYWwtYWxpZ246bWlkZGxlO30NCi5lY2JfcmVwZWF0ZXIudGFibGUtbGF5b3V0IC5yZXBlYXRlci1maWVsZCB7bWF4LXdpZHRoOjEwMCU7fQ0KLmVjYl9yZXBlYXRlciAudWktc29ydGFibGUtaGVscGVyIHtib3gtc2hhZG93OjJweCAycHggM3B4IHJnYmEoMCwwLDAsLjMpO30NCi5lY2JfcmVwZWF0ZXIgLnJlcGVhdGVyLXBsYWNlaG9sZGVyIHtib3JkZXI6MXB4IHNvbGlkICNmY2VmYTE7IGJhY2tncm91bmQtY29sb3I6I2ZmZmJlNDsgdmlzaWJpbGl0eTp2aXNpYmxlO30NCg0KLmVjYl9yZXBlYXRlciAucmVwZWF0ZXItcGxhY2Vob2xkZXIge2hlaWdodDo0MHB4O30NCg0KDQouZWNiX3JlcGVhdGVyLnRhYmxlLWxheW91dCB7b3ZlcmZsb3cteDphdXRvOyBvdmVyZmxvdy15OmhpZGRlbjt9DQouZWNiX3JlcGVhdGVyLmJsb2NrLWxheW91dCAuc3ViLWZpZWxkIHttYXJnaW4tYm90dG9tOjVweDt9DQouZWNiX3JlcGVhdGVyLmJsb2NrLWxheW91dCAuc3ViX2ZpZWxkX2xhYmVsIHtkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLWJvdHRvbTowO30NCi5lY2JfcmVwZWF0ZXIuYmxvY2stbGF5b3V0IC5yZXBlYXRlci13cmFwcGVyIHtkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgcGFkZGluZy1ib3R0b206MXJlbTt9DQoNCg0KDQoNCi5lY2JfY29tcGFjdCAuZWNiX3NlbGVjdF9lZGl0OjpiZWZvcmUge2NvbnRlbnQ6J0hpZGUnO30NCi5lY2JfY29tcGFjdCBzZWxlY3Qge2Rpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXgtaGVpZ2h0Ojgwdmg7fQ0KLmVjYl9jb21wYWN0Om5vdCguc2hvdykgLmVjYl9zZWxlY3Rfc3VtbWFyeSB7bWFyZ2luLWJvdHRvbTo1cHg7fQ0KLmVjYl9jb21wYWN0Om5vdCguc2hvdykgLmVjYl9zZWxlY3RfZWRpdDo6YmVmb3JlIHtjb250ZW50OidFZGl0Jzt9DQouZWNiX2NvbXBhY3Q6bm90KC5zaG93KSBzZWxlY3Qge2Rpc3BsYXk6bm9uZTt9DQoucmVwZWF0ZXItd3JhcHBlciAuZWNiX2NvbXBhY3QgLmVjYl9zZWxlY3Rfc3VtbWFyeSB7bWFyZ2luLWxlZnQ6OHB4O30NCg0KLmVjYl9maWxlX3NlbGVjdG9yX3ByZXZpZXcge2Rpc3BsYXk6YmxvY2s7fQ0KLmVjYl9maWxlX3NlbGVjdG9yX3ByZXZpZXc6bm90KC5zaG93KSB7ZGlzcGxheTpub25lO30NCi5zdWItZmllbGQgLmVjYl9maWxlX3NlbGVjdG9yX3ByZXZpZXcge21hcmdpbi1sZWZ0OjhweDt9DQoNCg0KLmVjYl9maWxlX3BpY2tlci5wcmV2aWV3IHtwb3NpdGlvbjpyZWxhdGl2ZTsgbWluLWhlaWdodDozMnB4OyBtYXJnaW46NXB4IDJweDt9DQouZWNiX3JlcGVhdGVyIC5lY2JfZmlsZV9waWNrZXIucHJldmlldyB7bWFyZ2luOjVweCA4cHg7fQ0KLmVjYl9maWxlX3BpY2tlci5wcmV2aWV3IGlucHV0IHtkaXNwbGF5Om5vbmU7fQ0KLmVjYl9maWxlX3BpY2tlcl9wcmV2aWV3IHtwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjA7IGJvcmRlci1yYWRpdXM6LjI1cmVtO30NCi5lY2JfZmlsZV9waWNrZXJfcHJldmlldywgLmVjYl9maWxlX3BpY2tlcl9maWxlX2ljb24ge2Rpc3BsYXk6bm9uZTt9DQouZWNiX2ZpbGVfcGlja2VyLnByZXZpZXcudGh1bWJuYWlsIC5lY2JfZmlsZV9waWNrZXJfcHJldmlldyB7ZGlzcGxheTppbmxpbmUtYmxvY2s7fQ0KLmVjYl9maWxlX3BpY2tlci5wcmV2aWV3LmZpbGUtaWNvbiAuZWNiX2ZpbGVfcGlja2VyX2ZpbGVfaWNvbiB7ZGlzcGxheTppbmxpbmUtYmxvY2s7fQ0KLmVjYl9maWxlX3BpY2tlci5wcmV2aWV3IC5jbXNmcC1jaG9vc2UsIC5lY2JfZmlsZV9waWNrZXIucHJldmlldyAuY21zZnBfY2xlYXIgew0KICAgIHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHdpZHRoOjMycHg7IHBhZGRpbmc6MDsgZm9udC1zaXplOjA7IHRleHQtYWxpZ246Y2VudGVyOyANCiAgICBjb2xvcjojNmM2YzZjOyBib3JkZXI6MDsgYm9yZGVyLXJhZGl1czouMjVyZW07IGJhY2tncm91bmQtY29sb3I6I2Q4ZDhkODsgDQogICAgdHJhbnNpdGlvbjpjb2xvciAuMTVzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQ7fQ0KLmVjYl9maWxlX3BpY2tlci5wcmV2aWV3IC5jbXNmcC1jaG9vc2Uge3RvcDoycHg7IGxlZnQ6MnB4O30NCi5lY2JfZmlsZV9waWNrZXIucHJldmlldyAuY21zZnBfY2xlYXIge2JvdHRvbTo3cHg7IGxlZnQ6MnB4O30NCi5lY2JfZmlsZV9waWNrZXIucHJldmlldyAuY21zZnAtY2hvb3NlOmhvdmVyLCAuZWNiX2ZpbGVfcGlja2VyLnByZXZpZXcgLmNtc2ZwX2NsZWFyOmhvdmVyIHsNCiAgICBjb2xvcjojZmZmOyBiYWNrZ3JvdW5kOiNmYTgwMDQ7fQ0KLmVjYl9maWxlX3BpY2tlci5wcmV2aWV3IC5jbXNmcC1jaG9vc2U6OmJlZm9yZSwgLmVjYl9maWxlX3BpY2tlci5wcmV2aWV3IC5jbXNmcF9jbGVhcjo6YmVmb3JlIHsNCiAgICBmb250LWZhbWlseTonaWNvbW9vbicgIWltcG9ydGFudDsgZm9udC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IA0KICAgIGZvbnQtdmFyaWFudDpub3JtYWw7IGxpbmUtaGVpZ2h0OjI4cHg7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7fQ0KLmVjYl9maWxlX3BpY2tlci5wcmV2aWV3IC5jbXNmcC1jaG9vc2U6OmJlZm9yZSB7Y29udGVudDonXGU5MDcnO30NCi5lY2JfZmlsZV9waWNrZXIucHJldmlldyAuY21zZnBfY2xlYXI6OmJlZm9yZSB7Y29udGVudDonXGU5MDInO30NCi5lY2JfZmlsZV9waWNrZXIucHJldmlldy5lbXB0eSAuY21zZnAtY2hvb3NlIHt3aWR0aDo4MHB4O30NCi5lY2JfZmlsZV9waWNrZXIucHJldmlldy5lbXB0eSAuY21zZnAtY2hvb3NlOjpiZWZvcmUge2NvbnRlbnQ6J1xlYTBhJzsgbGluZS1oZWlnaHQ6MzJweDt9DQouZWNiX2ZpbGVfcGlja2VyLnByZXZpZXcuZmlsZS1pY29uIC5lY2JfZmlsZV9waWNrZXJfZmlsZV9pY29uIHt3aWR0aDoxNjBweDsgaGVpZ2h0OjgwcHg7IHRleHQtYWxpZ246Y2VudGVyOyANCiAgICBiYWNrZ3JvdW5kOiNmYWY2ZDQ7IGJvcmRlcjoxcHggc29saWQgI2VmZTdhMTsgYm9yZGVyLXJhZGl1czouMjVyZW07fQ0KLmVjYl9maWxlX3BpY2tlci5wcmV2aWV3LmZpbGUtaWNvbiAuZWNiX2ZpbGVfcGlja2VyX2ZpbGVfaWNvbiAuZWNiMi1pY29uLWZpbGUtbyB7DQogICAgZm9udC1zaXplOjI0cHg7IGxpbmUtaGVpZ2h0OjgwcHg7IGNvbG9yOiM2YzZjNmM7IGZvbnQtd2VpZ2h0OjcwMDt9DQouZWNiX2ZpbGVfcGlja2VyLnByZXZpZXcuZmlsZS1pY29uIC5jbXNmcF9jbGVhciB7Ym90dG9tOjJweDt9DQouZWNiX2ZpbGVfcGlja2VyX3ByZXZpZXc6aG92ZXIge2ZpbHRlcjpibHVyKDFweCk7fQ0KLmVjYl9maWxlX3BpY2tlcl90aXRsZSB7ZGlzcGxheTpub25lOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjM5JTsgbGVmdDozNHB4OyBtYXgtd2lkdGg6MTEwcHg7IHBhZGRpbmc6MCAuNGVtOyBmb250LXNpemU6MTNweDsNCiAgICBib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmFkaXVzOjNweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTsgDQogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO30NCi5lY2JfZmlsZV9waWNrZXIucHJldmlldy50aHVtYm5haWw6aG92ZXIgLmVjYl9maWxlX3BpY2tlcl90aXRsZSB7ZGlzcGxheTpibG9jazt9DQouZWNiX2ZpbGVfcGlja2VyLnByZXZpZXcuZmlsZS1pY29uIC5lY2JfZmlsZV9waWNrZXJfdGl0bGUge2Rpc3BsYXk6YmxvY2s7fQ0KLmVjYl9maWxlX3BpY2tlcl90aXRsZTpob3ZlciB7bWF4LXdpZHRoOm5vbmU7IGJvcmRlcjoxcHggc29saWQgcmdiYSgyMDAsMjAwLDIwMCwuOCk7DQogICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC44KTt9DQoNCi5lY2IyLWhlbHAgLmhlbHAtdG9jIHtwb3NpdGlvbjotd2Via2l0LXN0aWNreTsgcG9zaXRpb246c3RpY2t5OyByaWdodDowOyB0b3A6MDsgZmxvYXQ6cmlnaHQ7IHdpZHRoOjIwJTsNCiAgICBoZWlnaHQ6Y2FsYygxMDB2aCAtIDNyZW0pOyBvdmVyZmxvdy15OmF1dG87fQ0KLmVjYjItaGVscCAuaGVscC1jb250ZW50IHt3aWR0aDo3NyU7IG92ZXJmbG93OmhpZGRlbjt9DQouZWNiMi1oZWxwIGgxLCAuZWNiMi1oZWxwIGgyLCAuZWNiMi1oZWxwIGgzLCAuZWNiMi1oZWxwIGg0LCAuZWNiMi1oZWxwIGg1LCAuZWNiMi1oZWxwIGg2IHsNCiAgICBtYXJnaW4tdG9wOjA7IG1hcmdpbi1ib3R0b206LjVyZW07fQ0KLmVjYjItaGVscCBwIHttYXJnaW4tYm90dG9tOi41cmVtO30NCi5lY2IyLWhlbHAgdWwge21hcmdpbi10b3A6MCAhaW1wb3J0YW50O30NCi5lY2IyLWhlbHAgLmhlbHAtdG9jIHVsIHttYXJnaW46MCAwIC41cmVtIDAgIWltcG9ydGFudDt9DQouZWNiMi1oZWxwIC5oZWxwLXRvYyB1bCBsaSB7bWFyZ2luLWJvdHRvbTouNXJlbTt9DQouZWNiMi1oZWxwIC5oZWxwLXRvYyB1bCBhIHtjb2xvcjppbmhlcml0O30NCg0KLmVjYjItaGVscCAubXQtMCB7bWFyZ2luLXRvcDowO30NCi5lY2IyLWhlbHAgLm1iLTAge21hcmdpbi1ib3R0b206MDt9DQouZWNiMi1oZWxwIC5ib3JkZXItYm90dG9tIHtib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZTJlNiFpbXBvcnRhbnQ7fQ0KDQouZWNiMi1oZWxwIHByZSB7bWFyZ2luLWxlZnQ6MDt9DQouZWNiMi1oZWxwIGZpZWxkc2V0IHttaW4td2lkdGg6MDt9DQoNCi51aS1kYXRlcGlja2VyIHt6LWluZGV4OjEwMzAgIWltcG9ydGFudDt9IC8qIG5lZWRlZCB0byBwdWxsIGFib3ZlIGdhbGxlcnkgKi8NCg0KLyogY29scGljayBDb2xvciBQaWNrZXIgLyBodHRwczovL2dpdGh1Yi5jb20vam9zZWR2cS9jb2xwaWNrLWpRdWVyeS1Db2xvci1QaWNrZXIgIGh0dHA6Ly93d3cuaHRtbGRyaXZlLm5ldC9pdGVtcy9kZW1vLzEzNTgvY29scGljay1BLWpRdWVyeS1SR0ItSEVYLWFuZC1IU0ItQ29sb3ItUGlja2VyLXBsdWdpbi1pcy1mcmVlLWxpZ2h0d2VpZ2h0LWFuZC1jdXN0b21pemFibGUNCiovDQoNCi8qTWFpbiBjb250YWluZXIqLw0KLmNvbHBpY2sgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICBib3gtc2l6aW5nOmNvbnRlbnQtYm94Ow0KCXdpZHRoOiAzNDZweDsNCgloZWlnaHQ6IDE3MHB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQoJZGlzcGxheTogbm9uZTsNCglmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCiAgICBkaXJlY3Rpb246bHRyOw0KCWJhY2tncm91bmQ6I2ViZWJlYjsNCglib3JkZXI6IDFweCBzb2xpZCAjYmJiOw0KCS13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4Ow0KCS1tb3otYm9yZGVyLXJhZGl1czogNXB4Ow0KCWJvcmRlci1yYWRpdXM6IDVweDsNCiAgICB6LWluZGV4OjE7DQoJLypQcmV2ZW50cyBzZWxlY3RpbmcgdGV4dCB3aGVuIGRyYWdnaW5nIHRoZSBzZWxlY3RvcnMqLw0KCS13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7DQoJLW1vei11c2VyLXNlbGVjdDogbm9uZTsNCgktbXMtdXNlci1zZWxlY3Q6IG5vbmU7DQoJLW8tdXNlci1zZWxlY3Q6IG5vbmU7DQoJdXNlci1zZWxlY3Q6IG5vbmU7DQp9DQovKkNvbG9yIHNlbGVjdGlvbiBib3ggd2l0aCBncmFkaWVudHMqLw0KLmNvbHBpY2tfY29sb3Igew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglsZWZ0OiA3cHg7DQoJdG9wOiA3cHg7DQoJd2lkdGg6IDE1NnB4Ow0KCWhlaWdodDogMTU2cHg7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCglvdXRsaW5lOiAxcHggc29saWQgI2FhYTsNCgljdXJzb3I6IGNyb3NzaGFpcjsNCn0NCi5jb2xwaWNrX2NvbG9yX292ZXJsYXkxIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJbGVmdDowOw0KCXRvcDowOw0KCXdpZHRoOiAxNTZweDsNCgloZWlnaHQ6IDE1NnB4Ow0KCS1tcy1maWx0ZXI6ICJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoR3JhZGllbnRUeXBlPTEsc3RhcnRDb2xvcnN0cj0nI2ZmZmZmZicsIGVuZENvbG9yc3RyPScjMDBmZmZmZmYnKSI7IC8qIElFOCAqLw0KCWJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjU1LDI1NSwyNTUsMSkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7IC8qIEZGMy42KyAqLw0KCWJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLHJnYmEoMjU1LDI1NSwyNTUsMSkpLCBjb2xvci1zdG9wKDEwMCUscmdiYSgyNTUsMjU1LDI1NSwwKSkpOyAvKiBDaHJvbWUsU2FmYXJpNCsgKi8NCgliYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1NSwyNTUsMjU1LDEpIDAlLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7IC8qIENocm9tZTEwKyxTYWZhcmk1LjErICovDQoJYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjU1LDI1NSwyNTUsMSkgMCUscmdiYSgyNTUsMjU1LDI1NSwwKSAxMDAlKTsgLyogT3BlcmEgMTEuMTArICovDQoJYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1NSwyNTUsMjU1LDEpIDAlLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7IC8qIElFMTArICovDQoJYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwyNTUsMjU1LDEpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpOw0KCWZpbHRlcjogIHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChHcmFkaWVudFR5cGU9MSxzdGFydENvbG9yc3RyPScjZmZmZmZmJywgZW5kQ29sb3JzdHI9JyMwMGZmZmZmZicpOyAvKiBJRTYgJiBJRTcgKi8NCn0NCi5jb2xwaWNrX2NvbG9yX292ZXJsYXkyIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJbGVmdDowOw0KCXRvcDowOw0KCXdpZHRoOiAxNTZweDsNCgloZWlnaHQ6IDE1NnB4Ow0KCS1tcy1maWx0ZXI6ICJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoR3JhZGllbnRUeXBlPTAsc3RhcnRDb2xvcnN0cj0nIzAwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyMwMDAwMDAnKSI7IC8qIElFOCAqLw0KCWJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgwLDAsMCwxKSAxMDAlKTsgLyogRkYzLjYrICovDQoJYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSxyZ2JhKDAsMCwwLDApKSwgY29sb3Itc3RvcCgxMDAlLHJnYmEoMCwwLDAsMSkpKTsgLyogQ2hyb21lLFNhZmFyaTQrICovDQoJYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLDApIDAlLHJnYmEoMCwwLDAsMSkgMTAwJSk7IC8qIENocm9tZTEwKyxTYWZhcmk1LjErICovDQoJYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLDAsMCwwKSAwJSxyZ2JhKDAsMCwwLDEpIDEwMCUpOyAvKiBPcGVyYSAxMS4xMCsgKi8NCgliYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLDAsMCwwKSAwJSxyZ2JhKDAsMCwwLDEpIDEwMCUpOyAvKiBJRTEwKyAqLw0KCWJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwwLDAsMCkgMCUscmdiYSgwLDAsMCwxKSAxMDAlKTsgLyogVzNDICovDQoJZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyMwMDAwMDAwMCcsIGVuZENvbG9yc3RyPScjMDAwMDAwJyxHcmFkaWVudFR5cGU9MCApOyAvKiBJRTYtOSAqLw0KfQ0KLypDaXJjdWxhciBjb2xvciBzZWxlY3RvciovDQouY29scGlja19zZWxlY3Rvcl9vdXRlciB7DQoJYmFja2dyb3VuZDpub25lOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl3aWR0aDogMTFweDsNCgloZWlnaHQ6IDExcHg7DQoJbWFyZ2luOiAtNnB4IDAgMCAtNnB4Ow0KCWJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOw0KCWJvcmRlci1yYWRpdXM6IDUwJTsNCn0NCi5jb2xwaWNrX3NlbGVjdG9yX2lubmVyew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl3aWR0aDogOXB4Ow0KCWhlaWdodDogOXB4Ow0KCWJvcmRlcjogMXB4IHNvbGlkIHdoaXRlOw0KCWJvcmRlci1yYWRpdXM6IDUwJTsNCn0NCi8qVmVydGljYWwgaHVlIGJhciovDQouY29scGlja19odWUgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDZweDsNCglsZWZ0OiAxNzVweDsNCgl3aWR0aDogMTlweDsNCgloZWlnaHQ6IDE1NnB4Ow0KCWJvcmRlcjogMXB4IHNvbGlkICNhYWE7DQoJY3Vyc29yOiBuLXJlc2l6ZTsNCn0NCi8qSHVlIGJhciBzbGlkaW5nIGluZGljYXRvciovDQouY29scGlja19odWVfYXJycyB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWxlZnQ6IC04cHg7DQoJd2lkdGg6IDM1cHg7DQoJaGVpZ2h0OiA3cHg7DQoJbWFyZ2luOiAtN3B4IDAgMCAwOw0KfQ0KLmNvbHBpY2tfaHVlX2xhcnIgew0KCXBvc2l0aW9uOmFic29sdXRlOw0KCXdpZHRoOiAwOyANCgloZWlnaHQ6IDA7IA0KCWJvcmRlci10b3A6IDZweCBzb2xpZCB0cmFuc3BhcmVudDsNCglib3JkZXItYm90dG9tOiA2cHggc29saWQgdHJhbnNwYXJlbnQ7DQoJYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCAjODU4NTg1Ow0KfQ0KLmNvbHBpY2tfaHVlX3JhcnIgew0KCXBvc2l0aW9uOmFic29sdXRlOw0KCXJpZ2h0OjA7DQoJd2lkdGg6IDA7IA0KCWhlaWdodDogMDsgDQoJYm9yZGVyLXRvcDogNnB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KCWJvcmRlci1ib3R0b206IDZweCBzb2xpZCB0cmFuc3BhcmVudDsgDQoJYm9yZGVyLXJpZ2h0OiA3cHggc29saWQgIzg1ODU4NTsgDQp9DQovKk5ldyBjb2xvciBib3gqLw0KLmNvbHBpY2tfbmV3X2NvbG9yIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJbGVmdDogMjA3cHg7DQoJdG9wOiA2cHg7DQoJd2lkdGg6IDYwcHg7DQoJaGVpZ2h0OiAyN3B4Ow0KCWJhY2tncm91bmQ6ICNmMDA7DQoJYm9yZGVyOiAxcHggc29saWQgIzhmOGY4ZjsNCn0NCi8qQ3VycmVudCBjb2xvciBib3gqLw0KLmNvbHBpY2tfY3VycmVudF9jb2xvciB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWxlZnQ6IDI3N3B4Ow0KCXRvcDogNnB4Ow0KCXdpZHRoOiA2MHB4Ow0KCWhlaWdodDogMjdweDsNCgliYWNrZ3JvdW5kOiAjZjAwOw0KCWJvcmRlcjogMXB4IHNvbGlkICM4ZjhmOGY7DQp9DQovKklucHV0IGZpZWxkIGNvbnRhaW5lcnMqLw0KLmNvbHBpY2tfZmllbGQsIC5jb2xwaWNrX2hleF9maWVsZCAgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgloZWlnaHQ6IDIwcHg7DQoJd2lkdGg6IDYwcHg7DQoJb3ZlcmZsb3c6aGlkZGVuOw0KCWJhY2tncm91bmQ6I2YzZjNmMzsNCgljb2xvcjojYjhiOGI4Ow0KCWZvbnQtc2l6ZToxMnB4Ow0KCWJvcmRlcjoxcHggc29saWQgI2JkYmRiZDsNCgktd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDsNCgktbW96LWJvcmRlci1yYWRpdXM6IDNweDsNCglib3JkZXItcmFkaXVzOiAzcHg7DQp9DQouY29scGlja19yZ2JfciB7DQoJdG9wOiA0MHB4Ow0KCWxlZnQ6IDIwN3B4Ow0KfQ0KLmNvbHBpY2tfcmdiX2cgew0KCXRvcDogNjdweDsNCglsZWZ0OiAyMDdweDsNCn0NCi5jb2xwaWNrX3JnYl9iIHsNCgl0b3A6IDk0cHg7DQoJbGVmdDogMjA3cHg7DQp9DQouY29scGlja19oc2JfaCB7DQoJdG9wOiA0MHB4Ow0KCWxlZnQ6IDI3N3B4Ow0KfQ0KLmNvbHBpY2tfaHNiX3Mgew0KCXRvcDogNjdweDsNCglsZWZ0OiAyNzdweDsNCn0NCi5jb2xwaWNrX2hzYl9iIHsNCgl0b3A6IDk0cHg7DQoJbGVmdDogMjc3cHg7DQp9DQouY29scGlja19oZXhfZmllbGQgew0KCXdpZHRoOiA2OHB4Ow0KCWxlZnQ6IDIwN3B4Ow0KCXRvcDogMTIxcHg7DQp9DQovKlRleHQgZmllbGQgY29udGFpbmVyIG9uIGZvY3VzKi8NCi5jb2xwaWNrX2ZvY3VzIHsNCglib3JkZXItY29sb3I6ICM5OTk7DQp9DQovKkZpZWxkIGxhYmVsIGNvbnRhaW5lciovDQouY29scGlja19maWVsZF9sZXR0ZXIgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl3aWR0aDogMTJweDsNCgloZWlnaHQ6IDIwcHg7DQoJbGluZS1oZWlnaHQ6IDIwcHg7DQoJcGFkZGluZy1sZWZ0OiA0cHg7DQoJYmFja2dyb3VuZDogI2VmZWZlZjsNCglib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYmRiZGJkOw0KCWZvbnQtd2VpZ2h0OiBib2xkOw0KCWNvbG9yOiM3Nzc7DQp9DQovKlRleHQgaW5wdXRzKi8NCi5jb2xwaWNrX2ZpZWxkIGlucHV0LCAuY29scGlja19oZXhfZmllbGQgaW5wdXQgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglyaWdodDogMTFweDsNCgltYXJnaW46IDA7DQoJcGFkZGluZzogMDsNCgloZWlnaHQ6IDIwcHg7DQoJbGluZS1oZWlnaHQ6IDIwcHg7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQoJYm9yZGVyOiBub25lOw0KCWZvbnQtc2l6ZTogMTJweDsNCglmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCgljb2xvcjogIzU1NTsNCgl0ZXh0LWFsaWduOiByaWdodDsNCglvdXRsaW5lOiBub25lOw0KfQ0KLmNvbHBpY2tfaGV4X2ZpZWxkIGlucHV0IHsNCglyaWdodDogNHB4Ow0KfQ0KLypGaWVsZCB1cC9kb3duIGFycm93cyovDQouY29scGlja19maWVsZF9hcnJzIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCXJpZ2h0OiAwOw0KCXdpZHRoOiA5cHg7DQoJaGVpZ2h0OiAyMXB4Ow0KCWN1cnNvcjogbi1yZXNpemU7DQp9DQouY29scGlja19maWVsZF91YXJyIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiA1cHg7DQoJd2lkdGg6IDA7IA0KCWhlaWdodDogMDsgDQoJYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsNCglib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsNCglib3JkZXItYm90dG9tOiA0cHggc29saWQgIzk1OTU5NTsNCn0NCi5jb2xwaWNrX2ZpZWxkX2RhcnIgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglib3R0b206NXB4Ow0KCXdpZHRoOiAwOyANCgloZWlnaHQ6IDA7IA0KCWJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7DQoJYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7DQoJYm9yZGVyLXRvcDogNHB4IHNvbGlkICM5NTk1OTU7DQp9DQovKlN1Ym1pdC9TZWxlY3QgYnV0dG9uKi8NCi5jb2xwaWNrX3N1Ym1pdCB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWxlZnQ6IDIwN3B4Ow0KCXRvcDogMTQ5cHg7DQoJd2lkdGg6IDEzMHB4Ow0KCWhlaWdodDogMjJweDsNCglsaW5lLWhlaWdodDoyMnB4Ow0KCWJhY2tncm91bmQ6ICNlZmVmZWY7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCWNvbG9yOiAjNTU1Ow0KCWZvbnQtc2l6ZTogMTJweDsNCglmb250LXdlaWdodDpib2xkOw0KCWJvcmRlcjogMXB4IHNvbGlkICNiZGJkYmQ7DQoJLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7DQoJLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7DQoJYm9yZGVyLXJhZGl1czogM3B4Ow0KfQ0KLmNvbHBpY2tfc3VibWl0OmhvdmVyIHsNCgliYWNrZ3JvdW5kOiNmM2YzZjM7DQoJYm9yZGVyLWNvbG9yOiM5OTk7DQoJY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQovKmZ1bGwgbGF5b3V0IHdpdGggbm8gc3VibWl0IGJ1dHRvbiovDQouY29scGlja19mdWxsX25zICAuY29scGlja19zdWJtaXQsIC5jb2xwaWNrX2Z1bGxfbnMgLmNvbHBpY2tfY3VycmVudF9jb2xvcnsNCglkaXNwbGF5Om5vbmU7DQp9DQouY29scGlja19mdWxsX25zIC5jb2xwaWNrX25ld19jb2xvciB7DQoJd2lkdGg6IDEzMHB4Ow0KCWhlaWdodDogMjVweDsNCn0NCi5jb2xwaWNrX2Z1bGxfbnMgLmNvbHBpY2tfcmdiX3IsIC5jb2xwaWNrX2Z1bGxfbnMgLmNvbHBpY2tfaHNiX2ggew0KCXRvcDogNDJweDsNCn0NCi5jb2xwaWNrX2Z1bGxfbnMgLmNvbHBpY2tfcmdiX2csIC5jb2xwaWNrX2Z1bGxfbnMgLmNvbHBpY2tfaHNiX3Mgew0KCXRvcDogNzNweDsNCn0NCi5jb2xwaWNrX2Z1bGxfbnMgLmNvbHBpY2tfcmdiX2IsIC5jb2xwaWNrX2Z1bGxfbnMgLmNvbHBpY2tfaHNiX2Igew0KCXRvcDogMTA0cHg7DQp9DQouY29scGlja19mdWxsX25zIC5jb2xwaWNrX2hleF9maWVsZCB7DQoJdG9wOiAxMzVweDsNCn0NCg0KLypyZ2JoZXggbGF5b3V0Ki8NCi5jb2xwaWNrX3JnYmhleCAuY29scGlja19oc2JfaCwgLmNvbHBpY2tfcmdiaGV4IC5jb2xwaWNrX2hzYl9zLCAuY29scGlja19yZ2JoZXggLmNvbHBpY2tfaHNiX2Igew0KCWRpc3BsYXk6bm9uZTsNCn0NCi5jb2xwaWNrX3JnYmhleCB7DQoJd2lkdGg6MjgycHg7DQp9DQouY29scGlja19yZ2JoZXggLmNvbHBpY2tfZmllbGQsIC5jb2xwaWNrX3JnYmhleCAuY29scGlja19zdWJtaXQgew0KCXdpZHRoOjY4cHg7DQp9DQouY29scGlja19yZ2JoZXggLmNvbHBpY2tfbmV3X2NvbG9yIHsNCgl3aWR0aDozNHB4Ow0KCWJvcmRlci1yaWdodDpub25lOw0KfQ0KLmNvbHBpY2tfcmdiaGV4IC5jb2xwaWNrX2N1cnJlbnRfY29sb3Igew0KCXdpZHRoOjM0cHg7DQoJbGVmdDoyNDBweDsNCglib3JkZXItbGVmdDpub25lOw0KfQ0KDQovKnJnYmhleCBsYXlvdXQsIG5vIHN1Ym1pdCBidXR0b24qLw0KLmNvbHBpY2tfcmdiaGV4X25zICAuY29scGlja19zdWJtaXQsIC5jb2xwaWNrX3JnYmhleF9ucyAuY29scGlja19jdXJyZW50X2NvbG9yew0KCWRpc3BsYXk6bm9uZTsNCn0NCi5jb2xwaWNrX3JnYmhleF9ucyAuY29scGlja19uZXdfY29sb3J7DQoJd2lkdGg6NjhweDsNCglib3JkZXI6IDFweCBzb2xpZCAjOGY4ZjhmOw0KfQ0KLmNvbHBpY2tfcmdiaGV4X25zIC5jb2xwaWNrX3JnYl9yIHsNCgl0b3A6IDQycHg7DQp9DQouY29scGlja19yZ2JoZXhfbnMgLmNvbHBpY2tfcmdiX2cgew0KCXRvcDogNzNweDsNCn0NCi5jb2xwaWNrX3JnYmhleF9ucyAuY29scGlja19yZ2JfYiB7DQoJdG9wOiAxMDRweDsNCn0NCi5jb2xwaWNrX3JnYmhleF9ucyAuY29scGlja19oZXhfZmllbGQgew0KCXRvcDogMTM1cHg7DQp9DQoNCi8qaGV4IGxheW91dCovDQouY29scGlja19oZXggLmNvbHBpY2tfaHNiX2gsIC5jb2xwaWNrX2hleCAuY29scGlja19oc2JfcywgLmNvbHBpY2tfaGV4IC5jb2xwaWNrX2hzYl9iLCAuY29scGlja19oZXggLmNvbHBpY2tfcmdiX3IsIC5jb2xwaWNrX2hleCAuY29scGlja19yZ2JfZywgLmNvbHBpY2tfaGV4IC5jb2xwaWNrX3JnYl9iIHsNCglkaXNwbGF5Om5vbmU7DQp9DQouY29scGlja19oZXggew0KCXdpZHRoOjIwNnB4Ow0KCWhlaWdodDoyMDFweDsNCn0NCi5jb2xwaWNrX2hleCAuY29scGlja19oZXhfZmllbGQgew0KCXdpZHRoOjcycHg7DQoJaGVpZ2h0OjI1cHg7DQoJdG9wOjE2OHB4Ow0KCWxlZnQ6ODBweDsNCn0NCi5jb2xwaWNrX2hleCAuY29scGlja19oZXhfZmllbGQgZGl2LCAuY29scGlja19oZXggLmNvbHBpY2tfaGV4X2ZpZWxkIGlucHV0IHsNCgloZWlnaHQ6IDI1cHg7DQoJbGluZS1oZWlnaHQ6IDI1cHg7DQp9DQouY29scGlja19oZXggLmNvbHBpY2tfbmV3X2NvbG9yIHsNCglsZWZ0OjlweDsNCgl0b3A6MTY4cHg7DQoJd2lkdGg6MzBweDsNCglib3JkZXItcmlnaHQ6bm9uZTsNCn0NCi5jb2xwaWNrX2hleCAuY29scGlja19jdXJyZW50X2NvbG9yIHsNCglsZWZ0OjM5cHg7DQoJdG9wOjE2OHB4Ow0KCXdpZHRoOjMwcHg7DQoJYm9yZGVyLWxlZnQ6bm9uZTsNCn0NCi5jb2xwaWNrX2hleCAuY29scGlja19zdWJtaXQgew0KCWxlZnQ6MTY0cHg7DQoJdG9wOiAxNjhweDsNCgl3aWR0aDozMHB4Ow0KCWhlaWdodDoyNXB4Ow0KCWxpbmUtaGVpZ2h0OiAyNXB4Ow0KfQ0KDQovKmhleCBsYXlvdXQsIG5vIHN1Ym1pdCBidXR0b24qLw0KLmNvbHBpY2tfaGV4X25zICAuY29scGlja19zdWJtaXQsIC5jb2xwaWNrX2hleF9ucyAuY29scGlja19jdXJyZW50X2NvbG9yIHsNCglkaXNwbGF5Om5vbmU7DQp9DQouY29scGlja19oZXhfbnMgLmNvbHBpY2tfaGV4X2ZpZWxkIHsNCgl3aWR0aDo4MHB4Ow0KfQ0KLmNvbHBpY2tfaGV4X25zIC5jb2xwaWNrX25ld19jb2xvcnsNCgl3aWR0aDo2MHB4Ow0KCWJvcmRlcjogMXB4IHNvbGlkICM4ZjhmOGY7DQp9DQoNCi8qRGFyayBjb2xvciBzY2hlbWUqLw0KLmNvbHBpY2tfZGFyayB7DQoJYmFja2dyb3VuZDogIzE2MTYxNjsNCglib3JkZXItY29sb3I6ICMyYTJhMmE7DQp9DQouY29scGlja19kYXJrIC5jb2xwaWNrX2NvbG9yIHsNCglvdXRsaW5lLWNvbG9yOiAjMzMzOw0KfQ0KLmNvbHBpY2tfZGFyayAuY29scGlja19odWUgew0KCWJvcmRlci1jb2xvcjogIzU1NTsNCn0NCi5jb2xwaWNrX2RhcmsgLmNvbHBpY2tfZmllbGQsIC5jb2xwaWNrX2RhcmsgLmNvbHBpY2tfaGV4X2ZpZWxkIHsNCgliYWNrZ3JvdW5kOiAjMTAxMDEwOw0KCWJvcmRlci1jb2xvcjogIzJkMmQyZDsNCn0NCi5jb2xwaWNrX2RhcmsgLmNvbHBpY2tfZmllbGRfbGV0dGVyIHsNCgliYWNrZ3JvdW5kOiAjMTMxMzEzOw0KCWJvcmRlci1jb2xvcjogIzJkMmQyZDsNCgljb2xvcjogIzY5Njk2OTsNCn0NCi5jb2xwaWNrX2RhcmsgLmNvbHBpY2tfZmllbGQgaW5wdXQsIC5jb2xwaWNrX2RhcmsgLmNvbHBpY2tfaGV4X2ZpZWxkIGlucHV0IHsNCgljb2xvcjogIzdhN2E3YTsNCn0NCi5jb2xwaWNrX2RhcmsgLmNvbHBpY2tfZmllbGRfdWFyciB7DQoJYm9yZGVyLWJvdHRvbS1jb2xvcjojNjk2OTY5Ow0KfQ0KLmNvbHBpY2tfZGFyayAuY29scGlja19maWVsZF9kYXJyIHsNCglib3JkZXItdG9wLWNvbG9yOiM2OTY5Njk7DQp9DQouY29scGlja19kYXJrIC5jb2xwaWNrX2ZvY3VzIHsNCglib3JkZXItY29sb3I6IzQ0NDsNCn0NCi5jb2xwaWNrX2RhcmsgLmNvbHBpY2tfc3VibWl0IHsNCgliYWNrZ3JvdW5kOiAjMTMxMzEzOw0KCWJvcmRlci1jb2xvcjojMmQyZDJkOw0KCWNvbG9yOiM3YTdhN2E7DQp9DQouY29scGlja19kYXJrIC5jb2xwaWNrX3N1Ym1pdDpob3ZlciB7DQoJYmFja2dyb3VuZC1jb2xvcjojMTAxMDEwOw0KCWJvcmRlci1jb2xvcjojNDQ0Ow0KfQ0KDQoNCg0KLyogZHJvcHpvbmUgKi8NCkBrZXlmcmFtZXMgcGFzc2luZy10aHJvdWdoIHsNCiAgICAwJSB7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNDBweCk7b3BhY2l0eTowO30NCiAgICAzMCUsIDcwJSB7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMHB4KTtvcGFjaXR5OjE7fQ0KICAgIDEwMCUge3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00MHB4KTtvcGFjaXR5OjA7fQ0KfQ0KQGtleWZyYW1lcyBzbGlkZS1pbiB7DQogICAgMCUge3RyYW5zZm9ybTp0cmFuc2xhdGVZKDQwcHgpO29wYWNpdHk6MDt9DQogICAgMzAlIHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwcHgpO29wYWNpdHk6MTt9DQp9DQpAa2V5ZnJhbWVzIHB1bHNlIHsNCiAgICAwJSB7dHJhbnNmb3JtOnNjYWxlKDEpfQ0KICAgIDEwJSB7dHJhbnNmb3JtOnNjYWxlKDEuMSl9DQogICAgMjAlIHt0cmFuc2Zvcm06c2NhbGUoMSl9DQp9DQouZWNiMi1kcm9wem9uZSwgLmVjYjItZHJvcHpvbmUgKiB7Ym94LXNpemluZzpib3JkZXItYm94O30NCi5lY2IyLWRyb3B6b25lIHsvKm1pbi1oZWlnaHQ6NTBweDsqLyBtYXJnaW4tYm90dG9tOi0xcmVtOyBwYWRkaW5nOjRweCAzcHggM3B4IDNweDt9DQouZWNiMi1kcm9wem9uZS5kei1jbGlja2FibGUge2N1cnNvcjpwb2ludGVyfQ0KLmVjYjItZHJvcHpvbmUuZHotY2xpY2thYmxlICoge2N1cnNvcjpkZWZhdWx0fQ0KLmVjYjItZHJvcHpvbmUuZHotY2xpY2thYmxlIC5kei1tZXNzYWdlLCAuZWNiMi1kcm9wem9uZS5kei1jbGlja2FibGUgLmR6LW1lc3NhZ2UgKiB7Y3Vyc29yOnBvaW50ZXJ9DQouZWNiMi1kcm9wem9uZS5kei1zdGFydGVkIC5kei1tZXNzYWdlIHtkaXNwbGF5Om5vbmV9DQouZWNiMi1kcm9wem9uZS5kei1kcmFnLWhvdmVyIHtiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O30NCi5lY2IyLWRyb3B6b25lLmR6LWRyYWctaG92ZXIgLmR6LW1lc3NhZ2Uge29wYWNpdHk6LjV9DQouZWNiMi1kcm9wem9uZSAuZHotbWVzc2FnZSB7bWFyZ2luOjNlbSAwO3RleHQtYWxpZ246Y2VudGVyO30NCi5lY2IyLWRyb3B6b25lIC5kei1tZXNzYWdlIC5kei1idXR0b24ge2ZvbnQ6aW5oZXJpdDsgcGFkZGluZzowOyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6aW5oZXJpdDsgYm9yZGVyOm5vbmU7IG91dGxpbmU6aW5oZXJpdDtiYWNrZ3JvdW5kOm5vbmU7fQ0KLmVjYjItZHJvcHpvbmUgLmR6LXByZXZpZXcge3Bvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgLyptaW4taGVpZ2h0OjEwMHB4OyovIG1hcmdpbjowIDFyZW0gMXJlbSAwOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7fQ0KLmVjYjItZHJvcHpvbmUgLmR6LXByZXZpZXc6aG92ZXIge3otaW5kZXg6MTAwMDt9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldzpob3ZlciAuZHotZGV0YWlscyB7b3BhY2l0eToxO30NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWZpbGUtcHJldmlldyAuZHotaW1hZ2Uge2JvcmRlci1yYWRpdXM6MjBweDsgYmFja2dyb3VuZDojOTk5OyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNlZWUsICNkZGQpfQ0KLmVjYjItZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotZmlsZS1wcmV2aWV3IC5kei1kZXRhaWxzIHtvcGFjaXR5OjF9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldy5kei1pbWFnZS1wcmV2aWV3IHtiYWNrZ3JvdW5kOiNmZmZ9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldy5kei1pbWFnZS1wcmV2aWV3IC5kei1kZXRhaWxzIHt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGxpbmVhcn0NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1yZW1vdmUge2xpbmUtaGVpZ2h0OjI4cHg7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjMwOyANCiAgICByaWdodDoycHg7IHRvcDoycHg7IHdpZHRoOjMycHg7IHBhZGRpbmc6MDsgYm9yZGVyOm5vbmU7IGN1cnNvcjpwb2ludGVyO30NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1yZW1vdmUgLmVjYjItaWNvbi10cmFzaC1jYW4tcmVndWxhciB7dmVydGljYWwtYWxpZ246bWlkZGxlOyBjdXJzb3I6aW5oZXJpdDt9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotaGFuZGxlIHtkaXNwbGF5Om5vbmU7IGxpbmUtaGVpZ2h0OjI4cHg7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjMwOyANCiAgICBsZWZ0OjJweDsgdG9wOjJweDsgd2lkdGg6MzJweDsgcGFkZGluZzowOyBib3JkZXI6bm9uZTsgY3Vyc29yOnBvaW50ZXI7fQ0KLmVjYjItZHJvcHpvbmUuc29ydGFibGUgLmR6LXByZXZpZXcgLmR6LWhhbmRsZSB7ZGlzcGxheTpibG9jazt9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotaGFuZGxlIC5lY2IyLWljb24tZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGN1cnNvcjppbmhlcml0O30NCg0KLmVjYjItZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWVkaXQge2Rpc3BsYXk6YmxvY2s7IGxpbmUtaGVpZ2h0OjI4cHg7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjMwOyANCiAgICByaWdodDozNnB4OyB0b3A6MnB4OyB3aWR0aDozMnB4OyBwYWRkaW5nOjA7IGJvcmRlcjpub25lOyBjdXJzb3I6cG9pbnRlcjt9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotZWRpdCAuZWNiMi1pY29uLXBlbmNpbCB7dmVydGljYWwtYWxpZ246bWlkZGxlOyBjdXJzb3I6aW5oZXJpdDt9DQoNCi5lY2IyLWRyb3B6b25lIC51aS1zb3J0YWJsZS1oZWxwZXIge3otaW5kZXg6MTAwMSAhaW1wb3J0YW50OyBib3gtc2hhZG93OjNweCAzcHggNHB4IHJnYmEoMCwwLDAsLjUpO30NCi5lY2IyLWRyb3B6b25lIC5kei1zb3J0YWJsZS1wbGFjZWhvbGRlciB7ZGlzcGxheTppbmxpbmUtYmxvY2s7IHZpc2liaWxpdHk6dmlzaWJsZTsgdmVydGljYWwtYWxpZ246dG9wOyANCiAgICBtYXJnaW46MCBjYWxjKDFyZW0gLSAycHgpIGNhbGMoMXJlbSAtIDJweCkgMDsgYm9yZGVyOjFweCBzb2xpZCAjZmNlZmExOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZiZTQ7fQ0KDQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldzpob3ZlciAuZHotZGV0YWlscyB7b3BhY2l0eToxfQ0KLmVjYjItZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWRldGFpbHMge2ZvbnQtc2l6ZToxM3B4OyBsaW5lLWhlaWdodDoxNTAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoyMDsgdG9wOjA7IGxlZnQ6MDsgbWluLXdpZHRoOjEwMCU7IG1heC13aWR0aDoxMDAlOyBwYWRkaW5nOjNlbSAxZW0gMmVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgb3BhY2l0eTowOyBjb2xvcjpyZ2JhKDAsMCwwLC45KTt9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotc2l6ZSB7Zm9udC1zaXplOjE2cHg7bWFyZ2luLWJvdHRvbToxZW07IGRpc3BsYXk6bm9uZTt9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotZmlsZW5hbWUge3doaXRlLXNwYWNlOm5vd3JhcH0NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1maWxlbmFtZTpob3ZlciBzcGFuIHtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjAwLDIwMCwyMDAsLjgpOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjgpfQ0KLmVjYjItZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWRldGFpbHMgLmR6LWZpbGVuYW1lOm5vdCg6aG92ZXIpIHtvdmVyZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotZmlsZW5hbWU6bm90KDpob3Zlcikgc3BhbiB7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudH0NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1maWxlbmFtZSBzcGFuLCAuZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotc2l6ZSBzcGFuIHtwYWRkaW5nOjAgLjRlbTsgYm9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTt9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldzpob3ZlciAuZHotaW1hZ2UgaW1nIHt0cmFuc2Zvcm06c2NhbGUoMS4wNSwgMS4wNSk7IGZpbHRlcjpibHVyKDRweCl9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotaW1hZ2Uge3Bvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjEwOyBkaXNwbGF5OmJsb2NrOyBvdmVyZmxvdzpoaWRkZW47IA0KICAgIC8qd2lkdGg6MTIwcHg7IGhlaWdodDoxMjBweDsqLyBib3JkZXItcmFkaXVzOi4yNXJlbTt9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotaW1hZ2UgaW1nIHtkaXNwbGF5OmJsb2NrfQ0KLmVjYjItZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotc3VjY2VzcyAuZHotc3VjY2Vzcy1tYXJrIHt3aWR0aDo1NHB4OyBoZWlnaHQ6NTRweDsgDQogICAgYW5pbWF0aW9uOnBhc3NpbmctdGhyb3VnaCAzcyBjdWJpYy1iZXppZXIoLjc3LCAwLCAuMTc1LCAxKTsgdGV4dC1hbGlnbjpjZW50ZXI7fQ0KLmVjYjItZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotZXJyb3IgLmR6LWVycm9yLW1hcmsge3dpZHRoOjU0cHg7IGhlaWdodDo1NHB4OyANCiAgICBhbmltYXRpb246c2xpZGUtaW4gM3MgY3ViaWMtYmV6aWVyKC43NywgMCwgLjE3NSwgMSk7IHRleHQtYWxpZ246Y2VudGVyOyBvcGFjaXR5OjE7IH0NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1zdWNjZXNzLW1hcmssIC5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1lcnJvci1tYXJrIHtwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo1MDA7IHRvcDo1MCU7IGxlZnQ6NTAlOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOi0yN3B4OyBtYXJnaW4tbGVmdDotMjdweDsgcG9pbnRlci1ldmVudHM6bm9uZTsgb3BhY2l0eTowOyBib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpO30NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1zdWNjZXNzLW1hcmsgc3ZnLCAuZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotZXJyb3ItbWFyayBzdmcge2Rpc3BsYXk6YmxvY2s7IHdpZHRoOjU0cHg7IGhlaWdodDo1NHB4OyBmaWxsOiNmZmZ9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotc3VjY2Vzcy1tYXJrIC5lY2IyLWljb24tY2hlY2ssIC5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1lcnJvci1tYXJrIC5lY2IyLWljb24teG1hcmsge2ZvbnQtc2l6ZTo0MHB4OyBsaW5lLWhlaWdodDo1NHB4OyBjb2xvcjojZmZmO30NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3LmR6LXRodW1iLXNtIC5kei1lZGl0IHt0b3A6YXV0bzsgYm90dG9tOjJweDsgcmlnaHQ6MnB4O30NCg0KLmVjYjItZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotcHJvY2Vzc2luZyAuZHotcHJvZ3Jlc3Mge3RyYW5zaXRpb246YWxsIC4ycyBsaW5lYXI7b3BhY2l0eToxO30NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWNvbXBsZXRlIC5kei1wcm9ncmVzcyB7dHJhbnNpdGlvbjpvcGFjaXR5IC40cyBlYXNlLWluO29wYWNpdHk6MDt9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldzpub3QoLmR6LXByb2Nlc3NpbmcpIC5kei1wcm9ncmVzcyB7YW5pbWF0aW9uOnB1bHNlIDZzIGVhc2UgaW5maW5pdGV9DQouZWNiMi1kcm9wem9uZSAuZHotcHJldmlldyAuZHotcHJvZ3Jlc3Mge3Bvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwMDA7IHRvcDo1MCU7IHJpZ2h0OjE1JTsgbGVmdDoxNSU7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OjIwcHg7IG1hcmdpbi10b3A6LTEwcHg7IHBvaW50ZXItZXZlbnRzOm5vbmU7IG9wYWNpdHk6MTsgYm9yZGVyOjNweCBzb2xpZCByZ2JhKDAsMCwwLC44KTsgYm9yZGVyLXJhZGl1czoxMHB4OyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpO30NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1wcm9ncmVzcyAuZHotdXBsb2FkIHtwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpibG9jazsgd2lkdGg6MDsgaGVpZ2h0OjEwMCU7IHRyYW5zaXRpb246d2lkdGggMzAwbXMgZWFzZS1pbi1vdXQ7IGJvcmRlci1yYWRpdXM6MTdweDsgYmFja2dyb3VuZDojZmZmO30NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWVycm9yIC5kei1lcnJvci1tZXNzYWdlIHtkaXNwbGF5OmJsb2NrfQ0KLmVjYjItZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotZXJyb3I6aG92ZXIgLmR6LWVycm9yLW1lc3NhZ2Uge3BvaW50ZXItZXZlbnRzOmF1dG87b3BhY2l0eToxO30NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1lcnJvci1tZXNzYWdlIHtmb250LXNpemU6MTNweDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwMDsgdG9wOjUlOyBsZWZ0Oi0xMHB4OyBkaXNwbGF5OmJsb2NrOyBkaXNwbGF5Om5vbmU7IHdpZHRoOjE0MHB4OyBwYWRkaW5nOi41ZW0gMWVtOyB0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7IHBvaW50ZXItZXZlbnRzOm5vbmU7IG9wYWNpdHk6MDsgY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjhweDsgYmFja2dyb3VuZDojYjEwNjA2O30NCi5lY2IyLWRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1lcnJvci1tZXNzYWdlOmFmdGVyIHtwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi02cHg7IGxlZnQ6NjRweDsgd2lkdGg6MDsgaGVpZ2h0OjA7IGNvbnRlbnQ6Jyc7IGJvcmRlci1yaWdodDo2cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NnB4IHNvbGlkICNiMTA2MDY7Ym9yZGVyLWxlZnQ6NnB4IHNvbGlkIHRyYW5zcGFyZW50O30NCg0KLmVjYjItZmFsbGJhY2sge3Zpc2liaWxpdHk6aGlkZGVuOyBhbmltYXRpb246M3MgZmFkZUluOyBhbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzO30NCkBrZXlmcmFtZXMgZmFkZUluIHsNCiAgICA5OSUgIHt2aXNpYmlsaXR5OiBoaWRkZW47fQ0KICAgIDEwMCUge3Zpc2liaWxpdHk6IHZpc2libGU7fQ0KfQ0KDQouZWNiMi1kcm9wem9uZSAuZHotdXBsb2FkLXByb21wdCB7ZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47DQogICAganVzdGlmeS1jb250ZW50OmNlbnRlcjsgbWluLXdpZHRoOjgwcHg7IG1hcmdpbjowIDFyZW0gMXJlbSAwO30NCi5lY2IyLWRyb3B6b25lIC5kei11cGxvYWQtcHJvbXB0IC5lY2IyLWljb24tcGx1cyB7Zm9udC1zaXplOjFyZW07IGxpbmUtaGVpZ2h0OjJyZW07fQ0KLmVjYjItZHJvcHpvbmU6aG92ZXIgLmR6LXVwbG9hZC1wcm9tcHQge2JhY2tncm91bmQtY29sb3I6I2ZmY2E5NTsgYm9yZGVyOjFweCBzb2xpZCAjZmZjMzlkO30NCi5lY2IyLWRyb3B6b25lIC5kei11cGxvYWQtcHJvbXB0OmhvdmVyIHtjb2xvcjojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNmYTY3MDQ7IGJhY2tncm91bmQ6I2ZhODAwNDt9DQoNCi5lY2IyLWR6LXN1Yi1maWVsZHMgLnN1Yl9maWVsZF9sYWJlbCwgLnVpLWRpYWxvZyAuc3ViX2ZpZWxkX2xhYmVsIHsgZGlzcGxheTpibG9jazsgcGFkZGluZzoxNHB4IDhweCAwIDA7DQogICAgZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiM1ODU4NTg7fQ0KLmVjYjItZHotc3ViLWZpZWxkcyB7ZGlzcGxheTpub25lO30gDQouZWNiMi1kei1zdWItZmllbGRzIC5kei1zdWItZmllbGRzLXRlbXBsYXRlIHtkaXNwbGF5Om5vbmU7fSANCi51aS1kaWFsb2cudWktZnJvbnQge3otaW5kZXg6MTAyMDt9DQouZHotc3ViLWZpZWxkIC5zdWItZmllbGQtY29sb3JfcGlja2VyIC5jb2xwaWNrIHt0b3A6YXV0byAhaW1wb3J0YW50OyBsZWZ0OmF1dG8gIWltcG9ydGFudDt9DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/lib/css/icomoon.eot</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/css/icomoon.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgo8ZGVmcz4KPGZvbnQgaWQ9Imljb21vb24iIGhvcml6LWFkdi14PSIxMDI0Ij4KPGZvbnQtZmFjZSB1bml0cy1wZXItZW09IjEwMjQiIGFzY2VudD0iOTYwIiBkZXNjZW50PSItNjQiIC8+CjxtaXNzaW5nLWdseXBoIGhvcml6LWFkdi14PSIxMDI0IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjA7IiBob3Jpei1hZHYteD0iNTEyIiBkPSIiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAwOyIgZ2x5cGgtbmFtZT0ibWludXMtc29saWQiIGhvcml6LWFkdi14PSI4OTYiIGQ9Ik04MDAgMzg0aC03MDRjLTM1LjM4IDAtNjQgMjguNjQtNjQgNjQuMDIwczI4LjYyIDYzLjk4IDY0IDYzLjk4aDcwNGMzNS4zOCAwIDY0LTI4LjYgNjQtNjMuOThzLTI4LjYtNjQuMDIwLTY0LTY0LjAyMHoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAxOyIgZ2x5cGgtbmFtZT0icGx1cy1zb2xpZCIgaG9yaXotYWR2LXg9Ijg5NiIgZD0iTTg2NCA0NDhjMC0zNS4zOC0yOC42Ni02NC4wMjAtNjQtNjQuMDIwaC0yODh2LTI4OGMwLTM1LjM4LTI4LjY2LTYzLjk4LTY0LTYzLjk4cy02NCAyOC42LTY0IDYzLjk4djI4OGgtMjg4Yy0zNS4zNCAwLTY0IDI4LjY0LTY0IDY0LjAyMHMyOC42NiA2My45OCA2NCA2My45OGgyODh2Mjg4YzAgMzUuMzggMjguNjYgNjQuMDIwIDY0IDY0LjAyMHM2NC0yOC42NCA2NC02NC4wMjB2LTI4OGgyODhjMzUuNCAwLjAyMCA2NC0yOC41OCA2NC02My45OHoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAyOyIgZ2x5cGgtbmFtZT0idHJhc2gtY2FuLXJlZ3VsYXIiIGhvcml6LWFkdi14PSI4OTYiIGQ9Ik0zMjAgMTYwYzAtMTcuNi0xNC40LTMyLTMyLTMycy0zMiAxNC40LTMyIDMydjQxNmMwIDE3LjYgMTQuNCAzMiAzMiAzMnMzMi0xNC40IDMyLTMydi00MTZ6TTQ4MCAxNjBjMC0xNy42LTE0LjQtMzItMzItMzJzLTMyIDE0LjQtMzIgMzJ2NDE2YzAgMTcuNiAxNC40IDMyIDMyIDMyczMyLTE0LjQgMzItMzJ2LTQxNnpNNjQwIDE2MGMwLTE3LjYtMTQuNC0zMi0zMi0zMnMtMzIgMTQuNC0zMiAzMnY0MTZjMCAxNy42IDE0LjQgMzIgMzIgMzJzMzItMTQuNCAzMi0zMnYtNDE2ek02MzUgOTEwLjEybDczLjQtMTEwLjEyaDEzOS42YzI2LjYgMCA0OC0yMS41IDQ4LTQ4IDAtMjYuNi0yMS40LTQ4LTQ4LTQ4aC0xNnYtNjA4YzAtODguNC03MS42LTE2MC0xNjAtMTYwaC00NDhjLTg4LjM2IDAtMTYwIDcxLjYtMTYwIDE2MHY2MDhoLTE2Yy0yNi41IDAtNDggMjEuNC00OCA0OCAwIDI2LjUgMjEuNSA0OCA0OCA0OGgxMzkuNjRsNzMuMzYgMTEwLjEyYzIwLjggMzEuMTY2IDU1LjggNDkuODggOTMuMiA0OS44OGgxODcuNmMzNy40IDAgNzIuNC0xOC43MTYgOTMuMi00OS44OHYwek0zMDMgODAwaDI5MGwtMzggNTYuODhjLTMgNC40NC04IDcuMTItMTMuMiA3LjEyaC0xODcuNmMtNS4yIDAtMTItMi42OC0xMy4yLTcuMTJsLTM4LTU2Ljg4ek0xNjAgOTZjMC0zNS40IDI4LjY2LTY0IDY0LTY0aDQ0OGMzNS40IDAgNjQgMjguNiA2NCA2NHY2MDhoLTU3NnYtNjA4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDM7IiBnbHlwaC1uYW1lPSJncmlwLWRvdHMtc29saWQiIGhvcml6LWFkdi14PSI4OTYiIGQ9Ik03NjggNzA0YzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2ek00NDggNzA0YzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2ek0xMjggNTEyYy01My4wMjAgMC05NiA0My05NiA5NnM0Mi45OCA5NiA5NiA5NmM1My4wMjAgMCA5Ni00MyA5Ni05NnMtNDIuOTgtOTYtOTYtOTZ6TTc2OCAzODRjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZ6TTQ0OCAxOTJjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZ6TTEyOCAzODRjNTMuMDIwIDAgOTYtNDMgOTYtOTZzLTQyLjk4LTk2LTk2LTk2Yy01My4wMjAgMC05NiA0My05NiA5NnM0Mi45OCA5NiA5NiA5NnoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA0OyIgZ2x5cGgtbmFtZT0iZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIiBob3Jpei1hZHYteD0iNTEyIiBkPSJNMCA3NjhjMCA1My4wMjAgNDIuOTggOTYgOTYgOTZzOTYtNDIuOTggOTYtOTZjMC01My00Mi45OC05Ni05Ni05NnMtOTYgNDMtOTYgOTZ6TTAgNDQ4YzAgNTMgNDIuOTggOTYgOTYgOTZzOTYtNDMgOTYtOTZjMC01My00Mi45OC05Ni05Ni05NnMtOTYgNDMtOTYgOTZ6TTE5MiAxMjhjMC01My00Mi45OC05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCA1MyA0Mi45OCA5NiA5NiA5NnM5Ni00MyA5Ni05NnpNMzIwIDc2OGMwIDUzLjAyMCA0MyA5NiA5NiA5NnM5Ni00Mi45OCA5Ni05NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NnpNNTEyIDQ0OGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2ek0zMjAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNTsiIGdseXBoLW5hbWU9InRyYXNoLXJlZ3VsYXIiIGhvcml6LWFkdi14PSI4OTYiIGQ9Ik04NDggODAwYzI2LjYgMCA0OC0yMS41IDQ4LTQ4IDAtMjYuNi0yMS40LTQ4LTQ4LTQ4aC0yMy4ybC00OC02NDkuNGMtNS02Ni44LTYwLjYtMTE4LjYtMTI3LjYtMTE4LjZoLTQwMi40Yy02Ni45NiAwLTEyMi42MiA1MS44LTEyNy41OCAxMTguNmwtNDguMSA2NDkuNGgtMjMuMTJjLTI2LjUgMC00OCAyMS40LTQ4IDQ4IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDEzOS42NGw3My4zNiAxMTAuMTJjMjAuOCAzMS4xNjYgNTUuOCA0OS44OCA5My4yIDQ5Ljg4aDE4Ny42YzM3LjQgMCA3Mi40LTE4LjcxNiA5My4yLTQ5Ljg4bDczLjQtMTEwLjEyaDEzOS42ek0zNTQuMiA4NjRjLTUuMiAwLTEyLTIuNjgtMTMuMi03LjEybC0zOC01Ni44OGgyOTBsLTM4IDU2Ljg4Yy0zIDQuNDQtOCA3LjEyLTEzLjIgNy4xMmgtMTg3LjZ6TTcyOC42IDcwNGgtNTYxLjIybDQ3LjYyLTY0Mi40YzEuMi0xNi42IDE1LjItMjkuNiAzMS44LTI5LjZoNDAyLjRjMTYuNiAwIDMwLjYgMTMgMzEuOCAyOS42bDQ3LjYgNjQyLjR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNjsiIGdseXBoLW5hbWU9InRyYXNoLWNhbi1zb2xpZCIgaG9yaXotYWR2LXg9Ijg5NiIgZD0iTTI3MC40IDkyNC42MmMxMC44IDIxLjY4NCAzMyAzNS4zOCA1Ny4yIDM1LjM4aDI0MC44YzI0LjIgMCA0Ni40LTEzLjY5NiA1Ny4yLTM1LjM4bDE0LjQtMjguNjJoMTkyYzM1LjQgMCA2NC0yOC42NiA2NC02NHMtMjguNi02NC02NC02NGgtNzY4Yy0zNS4zNCAwLTY0IDI4LjY2LTY0IDY0czI4LjY2IDY0IDY0IDY0aDE5MmwxNC40IDI4LjYyek02Mi4yIDcwNGg3NjkuOHYtNjQwYzAtNzAuNi01Ny40LTEyOC0xMjgtMTI4aC01MTMuOGMtNjguOSAwLTEyOCA1Ny40LTEyOCAxMjh2NjQwek0yMjIuMiA1NDR2LTQ0OGMwLTE3LjYgMTYuMi0zMiAzMi0zMiAxOS40IDAgMzIgMTQuNCAzMiAzMnY0NDhjMCAxNy42LTEyLjYgMzItMzIgMzItMTUuOCAwLTMyLTE0LjQtMzItMzJ6TTQxNC4yIDU0NHYtNDQ4YzAtMTcuNiAxNi4yLTMyIDMyLTMyIDE5LjQgMCAzMy44IDE0LjQgMzMuOCAzMnY0NDhjMCAxNy42LTE0LjQgMzItMzMuOCAzMi0xNS44IDAtMzItMTQuNC0zMi0zMnpNNjA4IDU0NHYtNDQ4YzAtMTcuNiAxNC40LTMyIDMyLTMyczMyIDE0LjQgMzIgMzJ2NDQ4YzAgMTcuNi0xNC40IDMyLTMyIDMycy0zMi0xNC40LTMyLTMyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDc7IiBnbHlwaC1uYW1lPSJwZW5jaWwiIGhvcml6LWFkdi14PSI4NjYiIGQ9Ik0yMDcuNDI5IDgyLjI4Nmw1MiA1Mi0xMzQuMjg2IDEzNC4yODYtNTItNTJ2LTYxLjE0M2g3My4xNDN2LTczLjE0M2g2MS4xNDN6TTUwNi4yODYgNjEyLjU3MWMwIDcuNDI5LTUuMTQzIDEyLjU3MS0xMi41NzEgMTIuNTcxLTMuNDI5IDAtNi44NTctMS4xNDMtOS43MTQtNGwtMzA5LjcxNC0zMDkuNzE0Yy0yLjg1Ny0yLjg1Ny00LTYuMjg2LTQtOS43MTQgMC03LjQyOSA1LjE0My0xMi41NzEgMTIuNTcxLTEyLjU3MSAzLjQyOSAwIDYuODU3IDEuMTQzIDkuNzE0IDRsMzA5LjcxNCAzMDkuNzE0YzIuODU3IDIuODU3IDQgNi4yODYgNCA5LjcxNHpNNDc1LjQyOSA3MjIuMjg2bDIzNy43MTQtMjM3LjcxNC00NzUuNDI5LTQ3NS40MjloLTIzNy43MTR2MjM3LjcxNHpNODY1LjcxNCA2NjcuNDI5YzAtMTkuNDI5LTgtMzguMjg2LTIxLjE0My01MS40MjlsLTk0Ljg1Ny05NC44NTctMjM3LjcxNCAyMzcuNzE0IDk0Ljg1NyA5NC4yODZjMTMuMTQzIDEzLjcxNCAzMiAyMS43MTQgNTEuNDI5IDIxLjcxNHMzOC4yODYtOCA1Mi0yMS43MTRsMTM0LjI4Ni0xMzMuNzE0YzEzLjE0My0xMy43MTQgMjEuMTQzLTMyLjU3MSAyMS4xNDMtNTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwODsiIGdseXBoLW5hbWU9InhtYXJrIiBob3Jpei1hZHYteD0iNjQwIiBkPSJNNjIxLjIgMjM3LjJjMjUtMjUgMjUtNjUuNSAwLTkwLjUtMTIuNC0xMi41LTI4LjgtMTguNy00NS4yLTE4LjdzLTMyLjc2IDYuMjUtNDUuMjQgMTguNzVsLTIxMC43NiAyMTAuNjUtMjEwLjc0LTIxMC42Yy0xMi41LTEyLjYtMjguODgtMTguOC00NS4yNi0xOC44cy0zMi43NCA2LjItNDUuMjUgMTguOGMtMjUgMjUtMjUgNjUuNSAwIDkwLjVsMjEwLjggMjEwLjgtMjEwLjggMjEwLjdjLTI1IDI1LTI1IDY1LjUgMCA5MC41czY1LjUgMjUgOTAuNSAwbDIxMC43NS0yMTAuOSAyMTAuOCAyMTAuOGMyNSAyNSA2NS41IDI1IDkwLjUgMHMyNS02NS41IDAtOTAuNWwtMjEwLjgtMjEwLjggMjEwLjctMjEwLjd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwOTsiIGdseXBoLW5hbWU9ImNoZWNrIiBob3Jpei1hZHYteD0iODk2IiBkPSJNODc3LjIgNzQ5LjJjMjUtMjUgMjUtNjUuNCAwLTkwLjRsLTUxMi01MTJjLTI1LTI1LTY1LjQtMjUtOTAuNCAwbC0yNTYuMDU2IDI1NmMtMjQuOTkyIDI1LTI0Ljk5MiA2NS40IDAgOTAuNCAyNC45OTYgMjUgNjUuNTE2IDI1IDkwLjUxNiAwbDIwOC45NC0yMTAuNiA0NjguNiA0NjYuNmMyNSAyNS4wNDAgNjUuNCAyNS4wNDAgOTAuNCAwdjB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYTsiIGdseXBoLW5hbWU9ImZpbGUtbyIgaG9yaXotYWR2LXg9Ijg3OCIgZD0iTTgzOC44NTcgNzQyLjg1N2MyMS4xNDMtMjEuMTQzIDM4Ljg1Ny02My40MjkgMzguODU3LTkzLjcxNHYtNjU4LjI4NmMwLTMwLjI4Ni0yNC41NzEtNTQuODU3LTU0Ljg1Ny01NC44NTdoLTc2OGMtMzAuMjg2IDAtNTQuODU3IDI0LjU3MS01NC44NTcgNTQuODU3djkxNC4yODZjMCAzMC4yODYgMjQuNTcxIDU0Ljg1NyA1NC44NTcgNTQuODU3aDUxMmMzMC4yODYgMCA3Mi41NzEtMTcuNzE0IDkzLjcxNC0zOC44NTd6TTU4NS4xNDMgODgyLjI4NnYtMjE0Ljg1N2gyMTQuODU3Yy0zLjQyOSA5LjcxNC04LjU3MSAxOS40MjktMTIuNTcxIDIzLjQyOWwtMTc4Ljg1NyAxNzguODU3Yy00IDQtMTMuNzE0IDkuMTQzLTIzLjQyOSAxMi41NzF6TTgwNC41NzEgOS4xNDN2NTg1LjE0M2gtMjM3LjcxNGMtMzAuMjg2IDAtNTQuODU3IDI0LjU3MS01NC44NTcgNTQuODU3djIzNy43MTRoLTQzOC44NTd2LTg3Ny43MTRoNzMxLjQyOXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBkOyIgZ2x5cGgtbmFtZT0iaW1hZ2UiIGQ9Ik05NTkuODg0IDgzMmMwLjA0MC0wLjAzNCAwLjA4Mi0wLjA3NiAwLjExNi0wLjExNnYtNzY3Ljc3Yy0wLjAzNC0wLjA0MC0wLjA3Ni0wLjA4Mi0wLjExNi0wLjExNmgtODk1Ljc3Yy0wLjA0MCAwLjAzNC0wLjA4MiAwLjA3Ni0wLjExNCAwLjExNnY3NjcuNzcyYzAuMDM0IDAuMDQwIDAuMDc2IDAuMDgyIDAuMTE0IDAuMTE0aDg5NS43N3pNOTYwIDg5NmgtODk2Yy0zNS4yIDAtNjQtMjguOC02NC02NHYtNzY4YzAtMzUuMiAyOC44LTY0IDY0LTY0aDg5NmMzNS4yIDAgNjQgMjguOCA2NCA2NHY3NjhjMCAzNS4yLTI4LjggNjQtNjQgNjR2MHpNODMyIDY3MmMwLTUzLjAyMC00Mi45OC05Ni05Ni05NnMtOTYgNDIuOTgtOTYgOTYgNDIuOTggOTYgOTYgOTYgOTYtNDIuOTggOTYtOTZ6TTg5NiAxMjhoLTc2OHYxMjhsMjI0IDM4NCAyNTYtMzIwaDY0bDIyNCAxOTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwZTsiIGdseXBoLW5hbWU9ImltYWdlcyIgaG9yaXotYWR2LXg9IjExNTIiIGQ9Ik0xMDg4IDgzMmgtNjR2NjRjMCAzNS4yLTI4LjggNjQtNjQgNjRoLTg5NmMtMzUuMiAwLTY0LTI4LjgtNjQtNjR2LTc2OGMwLTM1LjIgMjguOC02NCA2NC02NGg2NHYtNjRjMC0zNS4yIDI4LjgtNjQgNjQtNjRoODk2YzM1LjIgMCA2NCAyOC44IDY0IDY0djc2OGMwIDM1LjItMjguOCA2NC02NCA2NHpNMTI4IDc2OHYtNjQwaC02My44ODZjLTAuMDQwIDAuMDM0LTAuMDgyIDAuMDc2LTAuMTE0IDAuMTE2djc2Ny43N2MwLjAzNCAwLjA0MCAwLjA3NiAwLjA4MiAwLjExNCAwLjExNGg4OTUuNzdjMC4wNDAtMC4wMzQgMC4wODItMC4wNzYgMC4xMTYtMC4xMTZ2LTYzLjg4NGgtNzY4Yy0zNS4yIDAtNjQtMjguOC02NC02NHYwek0xMDg4IDAuMTE2Yy0wLjAzNC0wLjA0MC0wLjA3Ni0wLjA4Mi0wLjExNi0wLjExNmgtODk1Ljc3Yy0wLjA0MCAwLjAzNC0wLjA4MiAwLjA3Ni0wLjExNCAwLjExNnY3NjcuNzdjMC4wMzQgMC4wNDAgMC4wNzYgMC4wODIgMC4xMTQgMC4xMTRoODk1Ljc3YzAuMDQwLTAuMDM0IDAuMDgyLTAuMDc2IDAuMTE2LTAuMTE2di03NjcuNzY4ek05NjAgNjA4YzAtNTMuMDIwLTQyLjk4LTk2LTk2LTk2cy05NiA0Mi45OC05NiA5NiA0Mi45OCA5NiA5NiA5NiA5Ni00Mi45OCA5Ni05NnpNMTAyNCA2NGgtNzY4djEyOGwyMjQgMzg0IDI1Ni0zMjBoNjRsMjI0IDE5MnoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOWJlOyIgZ2x5cGgtbmFtZT0ibWVudTIiIGhvcml6LWFkdi14PSIxNDA4IiBkPSJNMCA3NjhoODk2di0xOTJoLTg5NnYxOTJ6TTAgNTEyaDg5NnYtMTkyaC04OTZ2MTkyek0wIDI1Nmg4OTZ2LTE5MmgtODk2djE5MnpNOTkyIDM4NGwxOTItMTkyIDE5MiAxOTJ6TTEzNzYgNDQ4bC0xOTIgMTkyLTE5Mi0xOTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZWEwYTsiIGdseXBoLW5hbWU9InBsdXMiIGQ9Ik05OTIgNTc2aC0zNTJ2MzUyYzAgMTcuNjcyLTE0LjMyOCAzMi0zMiAzMmgtMTkyYy0xNy42NzIgMC0zMi0xNC4zMjgtMzItMzJ2LTM1MmgtMzUyYy0xNy42NzIgMC0zMi0xNC4zMjgtMzItMzJ2LTE5MmMwLTE3LjY3MiAxNC4zMjgtMzIgMzItMzJoMzUydi0zNTJjMC0xNy42NzIgMTQuMzI4LTMyIDMyLTMyaDE5MmMxNy42NzIgMCAzMiAxNC4zMjggMzIgMzJ2MzUyaDM1MmMxNy42NzIgMCAzMiAxNC4zMjggMzIgMzJ2MTkyYzAgMTcuNjcyLTE0LjMyOCAzMi0zMiAzMnoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlYTBiOyIgZ2x5cGgtbmFtZT0ibWludXMiIGQ9Ik0wIDU0NHYtMTkyYzAtMTcuNjcyIDE0LjMyOC0zMiAzMi0zMmg5NjBjMTcuNjcyIDAgMzIgMTQuMzI4IDMyIDMydjE5MmMwIDE3LjY3Mi0xNC4zMjggMzItMzIgMzJoLTk2MGMtMTcuNjcyIDAtMzItMTQuMzI4LTMyLTMyeiIgLz4KPC9mb250PjwvZGVmcz48L3N2Zz4=]]></data>
	</file>
	<file>
	  <filename>/lib/css/icomoon.ttf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/css/icomoon.woff</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[d09GRgABAAAAAA3EAAsAAAAADXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIGumNtYXAAAAFoAAAAbAAAAGzTbNOrZ2FzcAAAAdQAAAAIAAAACAAAABBnbHlmAAAB3AAACUgAAAlImR29omhlYWQAAAskAAAANgAAADYmysxhaGhlYQAAC1wAAAAkAAAAJAkiBVVobXR4AAALgAAAAFAAAABQP9AAhmxvY2EAAAvQAAAAKgAAACoW1BTMbWF4cAAAC/wAAAAgAAAAIAAbAGRuYW1lAAAMHAAAAYYAAAGGmUoJ+3Bvc3QAAA2kAAAAIAAAACAAAwAAAAMDhQGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA6gsDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEAFAAAAAQABAAAwAAAAEAIOkK6Q7pvuoL//3//wAAAAAAIOkA6Q3pvuoK//3//wAB/+MXBBcCFlMWCAADAAEAAAAAAAAAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAgAYADYAIAAA0AAAEhIiY1NDYzITIWFRQGAyD9QBslJRsCwBslJQGAJRsbJSUbGyUAAAEAIAAgA2ADYAAfAAABFAYjIREUBiMiJjURISImNTQ2MyERNDYzMhYVESEyFgNgJRv+4CUbGyX+4BslJRsBICUbGyUBIBslAcAbJf7gGyUlGwEgJRsbJQEgGyUlG/7gJQAAAAAGAAD/wAOAA8AADQAbACkATABXAGEAACUUBiMiJjURNDYzMhYVExQGIyImNRE0NjMyFhUTFAYjIiY1ETQ2MzIWFQMXMzIWFRQGKwERFAYjISImNREjIiY1NDY7ATc+ATsBMhYXBSEnLgErASIGDwEDFBYzITI2NREhAUATDQ0TEw0NE6ATDQ0TEw0NE6ATDQ0TEw0NEwVJjBQcHBQQXkL+QEJeEBQcHBSMSRAxHLwcMRD+tAEiJgIHBLwECAEmjyUbAcAbJf3AoA0TEw0BoA0TEw3+YA0TEw0BoA0TEw3+YA0TEw0BoA0TEw0BTm4cFBQc/aBCXl5CAmAcFBQcbhcbGxduOQMEBAM5/UAbJSUbAmAAAAAGACAAwANgAsAACwAXACMALwA7AEcAAAEyFhUUBiMiJjU0NiEyFhUUBiMiJjU0NgUiJjU0NjMyFhUUBgUyFhUUBiMiJjU0NgUiJjU0NjMyFhUUBiUyFhUUBiMiJjU0NgMAKDg4KCg4OP7oKDg4KCg4OP7oKDg4KCg4OAJYKDg4KCg4OP7oKDg4KCg4OP6YKDg4KCg4OALAOCgoODgoKDg4KCg4OCgoOMA4KCg4OCgoOIA4KCg4OCgoOMA4KCg4OCgoOMA4KCg4OCgoOAAGAAAAIAIAA2AACwAXACMALwA7AEcAABM0NjMyFhUUBiMiJhE0NjMyFhUUBiMiJhMUBiMiJjU0NjMyFhM0NjMyFhUUBiMiJhMUBiMiJjU0NjMyFgM0NjMyFhUUBiMiJgA4KCg4OCgoODgoKDg4KCg4wDgoKDg4KCg4gDgoKDg4KCg4wDgoKDg4KCg4wDgoKDg4KCg4AwAoODgoKDg4/ugoODgoKDg4/ugoODgoKDg4AlgoODgoKDg4/ugoODgoKDg4/pgoODgoKDg4AAADAAD/wAOAA8AAIQAsADYAAAEyFhUUBisBAw4BIyEiJicDIyImNTQ2OwE3PgE7ATIWHwElIgYPASEnLgErAQUhEx4BMyEyNjcDUBQcHBQXMARKMv5uMkoEMBcUHBwUjEkQMRy8HDEQSf6eBAgBJgEiJgIHBLwBd/3OMAESDQGSDRIBAyAcFBQc/XcyRUQzAokcFBQcbhcbGxduQAQDOTkDBKD9fg0REQ0AAAAABQAA/8ADgAPAABcAIgAwAD4ATAAAAT4BOwEyFh8BMzIWFRQGIyEiJjU0NjsBByERFAYjISImNREXERQWMzI2NRE0JiMiBhcRFBYzMjY1ETQmIyIGFxEUFjMyNjURNCYjIgYBDggfE/ATHgkOwBslJRv9ABslJRvAwgMCSzX9/jNNoBQMDxERDwwUwBQMDxMTDwwUwhMNDRMTDQ0TA50QExMQHSUbGyUlGxslwP2ANUtLNQKAoP5ADRMTDQHADRMTDf5ADRMTDQHADRMTDf5ADRMTDQHADRMTAAAAAAQAAAAJA2IDawAHABwAIQAyAAA/AScHFTMVMwE0JiMiBgcBDgEVFBYzMjY3AT4BNScXASM1ARQGDwEnNz4BMzIWHwEeARXPNIY0ST0BKwcFAwUC/soCAgcGAgUDATUCAh/u/iXuA2IMCV/uXwobDg8bCocJDFI0hzQ+SQITBQcCAv7KAgUCBgcCAgE2AgUDbe3+JO4BpA4bCl/uXgoMDAqGChsPAAAAAAEAEwCAAm0C7QAmAAAlFhQHDgEjIiYvAQcOASMiJicmND8BJyY0NzYyHwE3NjIXFhQPARcCbRMTCRgMDBgJ09MJGAwMGAkTE9PTExMSNRPT0xM1EhMT09PtEzUSCgkJCtLSCgkJChM1EtPTEzUSExPT0xMTEzUS09MAAAABABMAkwNtAu0AFAAAARYUBwEGIicBJjQ3NjIfAQE2MhcxA20TE/4AEzQT/wATExI2EtEB1RM0EwLtEzQT/gATEwEAEzQTExPSAdITEwAAAAMAAP/AA24DwAATAB0AJwAAAR4BFREUBiMhIiY1ETQ2MyEyFhcHFTMuAS8BLgEnExEjIiY9ASERIQNHEBcgF/0AFyAgFwIAFzcQTNcDBwOyAw4H3O4XIP5JAtwC5xA3F/1uFyAgFwOSFyAXECfXCA0DswMHAvyXAkkgF+78kgAABAAAAAAEAAOAABAAIQAtADQAAAE4ATEROAExITgBMRE4ATEhNSEiBhURFBYzITI2NRE0JiMHFAYjIiY1NDYzMhYTITUTATM3A8D8gAOA/IAaJiYaA4AaJiYagDgoKDg4KCg4QP0A4AEAQOADQP0AAwBAJhr9ABomJhoDABom4Cg4OCgoODj9uIABgP7AwAAABQAA/8AEgAPAABkALAA8AEgATwAAASM1NCYjISIGFREUFjsBFRQWMyEyNjURNCYFESM4ATEROAExITgBMRUhIgYVATgBMSE4ATEROAExITgBMQcUBiMiJjU0NjMyFhMhNRMBMzcEQEAmGvyAGiYmGkAmGgOAGiYm/CZAA4D9ABomA8D8gAOAgDgoKDg4KCg4QP0A4AEAQOADQEAaJiYa/QAaJkAaJiYaAwAaJkD9gAMAQCYa/QADAKAoODgoKDg4/biAAYD+wMAAAAAABQAAAEAFYAMAAAMABwALAA4AEQAAEyEVIRUhFSEVIRUhARc3NScHAAOA/IADgPyAA4D8gAPgwMDAwAMAwEDAQMABQMDAQMDAAAAAAAEAAP/ABAADwAAjAAABIRE0JisBIgYVESEiBh0BFBYzIREUFjsBMjY1ESEyNj0BNCYD4P6gEw3ADRP+oA0TEw0BYBMNwA0TAWANExMCQAFgDRMTDf6gEw3ADRP+oA0TEw0BYBMNwA0TAAAAAAEAAAFABAACQAAPAAATFRQWMyEyNj0BNCYjISIGABMNA8ANExMN/EANEwIgwA0TEw3ADRMTAAAAAQAAAAAAAAcKw5FfDzz1AAsEAAAAAADhJkPyAAAAAOEmQ/IAAP/ABWADwAAAAAgAAgAAAAAAAAABAAADwP/AAAAFgAAAAAAFYAABAAAAAAAAAAAAAAAAAAAAFAQAAAAAAAAAAAAAAAIAAAADgAAgA4AAIAOAAAADgAAgAgAAAAOAAAADgAAAA2IAAAKAABMDgAATA24AAAQAAAAEgAAABYAAAAQAAAAEAAAAAAAAAAAKABQAHgA4AGoA9AFaAcACFgKEAtgDFgM+A34DxgQsBFIEiASkAAAAAQAAABQAYgAGAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGljb21vb24AaQBjAG8AbQBvAG8AblZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGljb21vb24AaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AblJlZ3VsYXIAUgBlAGcAdQBsAGEAcmljb21vb24AaQBjAG8AbQBvAG8AbkZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></data>
	</file>
	<file>
	  <filename>/lib/css/selection.json</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyJJY29Nb29uVHlwZSI6InNlbGVjdGlvbiIsImljb25zIjpbeyJpY29uIjp7InBhdGhzIjpbIk04MzguODU3IDIxNy4xNDNjMjEuMTQzIDIxLjE0MyAzOC44NTcgNjMuNDI5IDM4Ljg1NyA5My43MTR2NjU4LjI4NmMwIDMwLjI4Ni0yNC41NzEgNTQuODU3LTU0Ljg1NyA1NC44NTdoLTc2OGMtMzAuMjg2IDAtNTQuODU3LTI0LjU3MS01NC44NTctNTQuODU3di05MTQuMjg2YzAtMzAuMjg2IDI0LjU3MS01NC44NTcgNTQuODU3LTU0Ljg1N2g1MTJjMzAuMjg2IDAgNzIuNTcxIDE3LjcxNCA5My43MTQgMzguODU3ek01ODUuMTQzIDc3LjcxNHYyMTQuODU3aDIxNC44NTdjLTMuNDI5LTkuNzE0LTguNTcxLTE5LjQyOS0xMi41NzEtMjMuNDI5bC0xNzguODU3LTE3OC44NTdjLTQtNC0xMy43MTQtOS4xNDMtMjMuNDI5LTEyLjU3MXpNODA0LjU3MSA5NTAuODU3di01ODUuMTQzaC0yMzcuNzE0Yy0zMC4yODYgMC01NC44NTctMjQuNTcxLTU0Ljg1Ny01NC44NTd2LTIzNy43MTRoLTQzOC44NTd2ODc3LjcxNGg3MzEuNDI5eiJdLCJhdHRycyI6W3t9XSwid2lkdGgiOjg3OCwiaXNNdWx0aWNvbG9yIjpmYWxzZSwiaXNNdWx0aWNvbG9yMiI6ZmFsc2UsInRhZ3MiOlsiZmlsZS1vIl0sImdyaWQiOjE2fSwiYXR0cnMiOlt7fV0sInByb3BlcnRpZXMiOnsib3JkZXIiOjE4LCJpZCI6MjcsInByZXZTaXplIjozMiwiY29kZSI6NTk2NTgsIm5hbWUiOiJmaWxlLW8ifSwic2V0SWR4IjowLCJzZXRJZCI6MSwiaWNvbklkeCI6MH0seyJpY29uIjp7InBhdGhzIjpbIk04MDAgNTc2aC03MDRjLTM1LjM4IDAtNjQtMjguNjQtNjQtNjQuMDIwczI4LjYyLTYzLjk4IDY0LTYzLjk4aDcwNGMzNS4zOCAwIDY0IDI4LjYgNjQgNjMuOThzLTI4LjYgNjQuMDIwLTY0IDY0LjAyMHoiXSwid2lkdGgiOjg5NiwiYXR0cnMiOlt7fV0sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbIm1pbnVzLXNvbGlkIl0sImdyaWQiOjE2LCJkZWZhdWx0Q29kZSI6NTk2NDh9LCJhdHRycyI6W3t9XSwicHJvcGVydGllcyI6eyJvcmRlciI6MTksImlkIjoxMiwibmFtZSI6Im1pbnVzLXNvbGlkIiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY0OH0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjF9LHsiaWNvbiI6eyJwYXRocyI6WyJNODY0IDUxMmMwIDM1LjM4LTI4LjY2IDY0LjAyMC02NCA2NC4wMjBoLTI4OHYyODhjMCAzNS4zOC0yOC42NiA2My45OC02NCA2My45OHMtNjQtMjguNi02NC02My45OHYtMjg4aC0yODhjLTM1LjM0IDAtNjQtMjguNjQtNjQtNjQuMDIwczI4LjY2LTYzLjk4IDY0LTYzLjk4aDI4OHYtMjg4YzAtMzUuMzggMjguNjYtNjQuMDIwIDY0LTY0LjAyMHM2NCAyOC42NCA2NCA2NC4wMjB2Mjg4aDI4OGMzNS40LTAuMDIwIDY0IDI4LjU4IDY0IDYzLjk4eiJdLCJ3aWR0aCI6ODk2LCJhdHRycyI6W3t9XSwiaXNNdWx0aWNvbG9yIjpmYWxzZSwiaXNNdWx0aWNvbG9yMiI6ZmFsc2UsInRhZ3MiOlsicGx1cy1zb2xpZCJdLCJncmlkIjoxNiwiZGVmYXVsdENvZGUiOjU5NjQ5fSwiYXR0cnMiOlt7fV0sInByb3BlcnRpZXMiOnsib3JkZXIiOjIwLCJpZCI6MTMsIm5hbWUiOiJwbHVzLXNvbGlkIiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY0OX0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjJ9LHsiaWNvbiI6eyJwYXRocyI6WyJNOTU5Ljg4NCAxMjhjMC4wNDAgMC4wMzQgMC4wODIgMC4wNzYgMC4xMTYgMC4xMTZ2NzY3Ljc3Yy0wLjAzNCAwLjA0MC0wLjA3NiAwLjA4Mi0wLjExNiAwLjExNmgtODk1Ljc3Yy0wLjA0MC0wLjAzNC0wLjA4Mi0wLjA3Ni0wLjExNC0wLjExNnYtNzY3Ljc3MmMwLjAzNC0wLjA0MCAwLjA3Ni0wLjA4MiAwLjExNC0wLjExNGg4OTUuNzd6TTk2MCA2NGgtODk2Yy0zNS4yIDAtNjQgMjguOC02NCA2NHY3NjhjMCAzNS4yIDI4LjggNjQgNjQgNjRoODk2YzM1LjIgMCA2NC0yOC44IDY0LTY0di03NjhjMC0zNS4yLTI4LjgtNjQtNjQtNjR2MHoiLCJNODMyIDI4OGMwIDUzLjAyMC00Mi45OCA5Ni05NiA5NnMtOTYtNDIuOTgtOTYtOTYgNDIuOTgtOTYgOTYtOTYgOTYgNDIuOTggOTYgOTZ6IiwiTTg5NiA4MzJoLTc2OHYtMTI4bDIyNC0zODQgMjU2IDMyMGg2NGwyMjQtMTkyeiJdLCJhdHRycyI6W10sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbImltYWdlIiwicGljdHVyZSIsInBob3RvIiwiZ3JhcGhpYyJdLCJkZWZhdWx0Q29kZSI6NTk2NjEsImdyaWQiOjE2fSwiYXR0cnMiOltdLCJwcm9wZXJ0aWVzIjp7ImxpZ2F0dXJlcyI6ImltYWdlLCBwaWN0dXJlIiwibmFtZSI6ImltYWdlIiwiaWQiOjE0LCJvcmRlciI6MjEsInByZXZTaXplIjozMiwiY29kZSI6NTk2NjF9LCJzZXRJZHgiOjAsInNldElkIjoxLCJpY29uSWR4IjozfSx7Imljb24iOnsicGF0aHMiOlsiTTEwODggMTI4aC02NHYtNjRjMC0zNS4yLTI4LjgtNjQtNjQtNjRoLTg5NmMtMzUuMiAwLTY0IDI4LjgtNjQgNjR2NzY4YzAgMzUuMiAyOC44IDY0IDY0IDY0aDY0djY0YzAgMzUuMiAyOC44IDY0IDY0IDY0aDg5NmMzNS4yIDAgNjQtMjguOCA2NC02NHYtNzY4YzAtMzUuMi0yOC44LTY0LTY0LTY0ek0xMjggMTkydjY0MGgtNjMuODg2Yy0wLjA0MC0wLjAzNC0wLjA4Mi0wLjA3Ni0wLjExNC0wLjExNnYtNzY3Ljc3YzAuMDM0LTAuMDQwIDAuMDc2LTAuMDgyIDAuMTE0LTAuMTE0aDg5NS43N2MwLjA0MCAwLjAzNCAwLjA4MiAwLjA3NiAwLjExNiAwLjExNnY2My44ODRoLTc2OGMtMzUuMiAwLTY0IDI4LjgtNjQgNjR2MHpNMTA4OCA5NTkuODg0Yy0wLjAzNCAwLjA0MC0wLjA3NiAwLjA4Mi0wLjExNiAwLjExNmgtODk1Ljc3Yy0wLjA0MC0wLjAzNC0wLjA4Mi0wLjA3Ni0wLjExNC0wLjExNnYtNzY3Ljc3YzAuMDM0LTAuMDQwIDAuMDc2LTAuMDgyIDAuMTE0LTAuMTE0aDg5NS43N2MwLjA0MCAwLjAzNCAwLjA4MiAwLjA3NiAwLjExNiAwLjExNnY3NjcuNzY4eiIsIk05NjAgMzUyYzAgNTMuMDIwLTQyLjk4IDk2LTk2IDk2cy05Ni00Mi45OC05Ni05NiA0Mi45OC05NiA5Ni05NiA5NiA0Mi45OCA5NiA5NnoiLCJNMTAyNCA4OTZoLTc2OHYtMTI4bDIyNC0zODQgMjU2IDMyMGg2NGwyMjQtMTkyeiJdLCJ3aWR0aCI6MTE1MiwiYXR0cnMiOltdLCJpc011bHRpY29sb3IiOmZhbHNlLCJpc011bHRpY29sb3IyIjpmYWxzZSwidGFncyI6WyJpbWFnZXMiLCJwaWN0dXJlcyIsInBob3RvcyIsImdyYXBoaWNzIl0sImRlZmF1bHRDb2RlIjo1OTY2MiwiZ3JpZCI6MTZ9LCJhdHRycyI6W10sInByb3BlcnRpZXMiOnsibGlnYXR1cmVzIjoiaW1hZ2VzLCBwaWN0dXJlcyIsIm5hbWUiOiJpbWFnZXMiLCJpZCI6MTUsIm9yZGVyIjoyMiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY2Mn0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjR9LHsiaWNvbiI6eyJwYXRocyI6WyJNMCAxOTJoODk2djE5MmgtODk2di0xOTJ6TTAgNDQ4aDg5NnYxOTJoLTg5NnYtMTkyek0wIDcwNGg4OTZ2MTkyaC04OTZ2LTE5MnoiLCJNOTkyIDU3NmwxOTIgMTkyIDE5Mi0xOTJ6IiwiTTEzNzYgNTEybC0xOTItMTkyLTE5MiAxOTJ6Il0sIndpZHRoIjoxNDA4LCJhdHRycyI6W10sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbIm1lbnUiLCJvcHRpb25zIiwiaGFtYnVyZ2VyIl0sImRlZmF1bHRDb2RlIjo1OTgzOCwiZ3JpZCI6MTZ9LCJhdHRycyI6W10sInByb3BlcnRpZXMiOnsibGlnYXR1cmVzIjoibWVudTIsIG9wdGlvbnMyIiwibmFtZSI6Im1lbnUyIiwiaWQiOjE2LCJvcmRlciI6MjMsInByZXZTaXplIjozMiwiY29kZSI6NTk4Mzh9LCJzZXRJZHgiOjAsInNldElkIjoxLCJpY29uSWR4Ijo1fSx7Imljb24iOnsicGF0aHMiOlsiTTk5MiAzODRoLTM1MnYtMzUyYzAtMTcuNjcyLTE0LjMyOC0zMi0zMi0zMmgtMTkyYy0xNy42NzIgMC0zMiAxNC4zMjgtMzIgMzJ2MzUyaC0zNTJjLTE3LjY3MiAwLTMyIDE0LjMyOC0zMiAzMnYxOTJjMCAxNy42NzIgMTQuMzI4IDMyIDMyIDMyaDM1MnYzNTJjMCAxNy42NzIgMTQuMzI4IDMyIDMyIDMyaDE5MmMxNy42NzIgMCAzMi0xNC4zMjggMzItMzJ2LTM1MmgzNTJjMTcuNjcyIDAgMzItMTQuMzI4IDMyLTMydi0xOTJjMC0xNy42NzItMTQuMzI4LTMyLTMyLTMyeiJdLCJhdHRycyI6W10sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbInBsdXMiLCJhZGQiLCJzdW0iXSwiZGVmYXVsdENvZGUiOjU5OTE0LCJncmlkIjoxNn0sImF0dHJzIjpbXSwicHJvcGVydGllcyI6eyJsaWdhdHVyZXMiOiJwbHVzLCBhZGQiLCJuYW1lIjoicGx1cyIsImlkIjoxNywib3JkZXIiOjI0LCJwcmV2U2l6ZSI6MzIsImNvZGUiOjU5OTE0fSwic2V0SWR4IjowLCJzZXRJZCI6MSwiaWNvbklkeCI6Nn0seyJpY29uIjp7InBhdGhzIjpbIk0wIDQxNnYxOTJjMCAxNy42NzIgMTQuMzI4IDMyIDMyIDMyaDk2MGMxNy42NzIgMCAzMi0xNC4zMjggMzItMzJ2LTE5MmMwLTE3LjY3Mi0xNC4zMjgtMzItMzItMzJoLTk2MGMtMTcuNjcyIDAtMzIgMTQuMzI4LTMyIDMyeiJdLCJhdHRycyI6W10sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbIm1pbnVzIiwic3VidHJhY3QiLCJtaW5pbWl6ZSIsImxpbmUiXSwiZGVmYXVsdENvZGUiOjU5OTE1LCJncmlkIjoxNn0sImF0dHJzIjpbXSwicHJvcGVydGllcyI6eyJsaWdhdHVyZXMiOiJtaW51cywgc3VidHJhY3QiLCJuYW1lIjoibWludXMiLCJpZCI6MTgsIm9yZGVyIjoyNSwicHJldlNpemUiOjMyLCJjb2RlIjo1OTkxNX0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjd9LHsiaWNvbiI6eyJwYXRocyI6WyJNMzIwIDgwMGMwIDE3LjYtMTQuNCAzMi0zMiAzMnMtMzItMTQuNC0zMi0zMnYtNDE2YzAtMTcuNiAxNC40LTMyIDMyLTMyczMyIDE0LjQgMzIgMzJ2NDE2ek00ODAgODAwYzAgMTcuNi0xNC40IDMyLTMyIDMycy0zMi0xNC40LTMyLTMydi00MTZjMC0xNy42IDE0LjQtMzIgMzItMzJzMzIgMTQuNCAzMiAzMnY0MTZ6TTY0MCA4MDBjMCAxNy42LTE0LjQgMzItMzIgMzJzLTMyLTE0LjQtMzItMzJ2LTQxNmMwLTE3LjYgMTQuNC0zMiAzMi0zMnMzMiAxNC40IDMyIDMydjQxNnpNNjM1IDQ5Ljg4bDczLjQgMTEwLjEyaDEzOS42YzI2LjYgMCA0OCAyMS41IDQ4IDQ4IDAgMjYuNi0yMS40IDQ4LTQ4IDQ4aC0xNnY2MDhjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBoLTQ0OGMtODguMzYgMC0xNjAtNzEuNi0xNjAtMTYwdi02MDhoLTE2Yy0yNi41IDAtNDgtMjEuNC00OC00OCAwLTI2LjUgMjEuNS00OCA0OC00OGgxMzkuNjRsNzMuMzYtMTEwLjEyYzIwLjgtMzEuMTY2IDU1LjgtNDkuODggOTMuMi00OS44OGgxODcuNmMzNy40IDAgNzIuNCAxOC43MTYgOTMuMiA0OS44OHYwek0zMDMgMTYwaDI5MGwtMzgtNTYuODhjLTMtNC40NC04LTcuMTItMTMuMi03LjEyaC0xODcuNmMtNS4yIDAtMTIgMi42OC0xMy4yIDcuMTJsLTM4IDU2Ljg4ek0xNjAgODY0YzAgMzUuNCAyOC42NiA2NCA2NCA2NGg0NDhjMzUuNCAwIDY0LTI4LjYgNjQtNjR2LTYwOGgtNTc2djYwOHoiXSwid2lkdGgiOjg5NiwiYXR0cnMiOlt7fV0sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbInRyYXNoLWNhbi1yZWd1bGFyIl0sImdyaWQiOjE2LCJkZWZhdWx0Q29kZSI6NTk2NTB9LCJhdHRycyI6W3t9XSwicHJvcGVydGllcyI6eyJvcmRlciI6MjYsImlkIjoxOSwibmFtZSI6InRyYXNoLWNhbi1yZWd1bGFyIiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY1MH0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjh9LHsiaWNvbiI6eyJwYXRocyI6WyJNODQ4IDE2MGMyNi42IDAgNDggMjEuNSA0OCA0OCAwIDI2LjYtMjEuNCA0OC00OCA0OGgtMjMuMmwtNDggNjQ5LjRjLTUgNjYuOC02MC42IDExOC42LTEyNy42IDExOC42aC00MDIuNGMtNjYuOTYgMC0xMjIuNjItNTEuOC0xMjcuNTgtMTE4LjZsLTQ4LjEtNjQ5LjRoLTIzLjEyYy0yNi41IDAtNDgtMjEuNC00OC00OCAwLTI2LjUgMjEuNS00OCA0OC00OGgxMzkuNjRsNzMuMzYtMTEwLjEyYzIwLjgtMzEuMTY2IDU1LjgtNDkuODggOTMuMi00OS44OGgxODcuNmMzNy40IDAgNzIuNCAxOC43MTYgOTMuMiA0OS44OGw3My40IDExMC4xMmgxMzkuNnpNMzU0LjIgOTZjLTUuMiAwLTEyIDIuNjgtMTMuMiA3LjEybC0zOCA1Ni44OGgyOTBsLTM4LTU2Ljg4Yy0zLTQuNDQtOC03LjEyLTEzLjItNy4xMmgtMTg3LjZ6TTcyOC42IDI1NmgtNTYxLjIybDQ3LjYyIDY0Mi40YzEuMiAxNi42IDE1LjIgMjkuNiAzMS44IDI5LjZoNDAyLjRjMTYuNiAwIDMwLjYtMTMgMzEuOC0yOS42bDQ3LjYtNjQyLjR6Il0sIndpZHRoIjo4OTYsImF0dHJzIjpbe31dLCJpc011bHRpY29sb3IiOmZhbHNlLCJpc011bHRpY29sb3IyIjpmYWxzZSwidGFncyI6WyJ0cmFzaC1yZWd1bGFyIl0sImdyaWQiOjE2LCJkZWZhdWx0Q29kZSI6NTk2NTN9LCJhdHRycyI6W3t9XSwicHJvcGVydGllcyI6eyJvcmRlciI6MjcsImlkIjoyMCwibmFtZSI6InRyYXNoLXJlZ3VsYXIiLCJwcmV2U2l6ZSI6MzIsImNvZGUiOjU5NjUzfSwic2V0SWR4IjowLCJzZXRJZCI6MSwiaWNvbklkeCI6OX0seyJpY29uIjp7InBhdGhzIjpbIk0yNzAuNCAzNS4zOGMxMC44LTIxLjY4NCAzMy0zNS4zOCA1Ny4yLTM1LjM4aDI0MC44YzI0LjIgMCA0Ni40IDEzLjY5NiA1Ny4yIDM1LjM4bDE0LjQgMjguNjJoMTkyYzM1LjQgMCA2NCAyOC42NiA2NCA2NHMtMjguNiA2NC02NCA2NGgtNzY4Yy0zNS4zNCAwLTY0LTI4LjY2LTY0LTY0czI4LjY2LTY0IDY0LTY0aDE5MmwxNC40LTI4LjYyek02Mi4yIDI1Nmg3NjkuOHY2NDBjMCA3MC42LTU3LjQgMTI4LTEyOCAxMjhoLTUxMy44Yy02OC45IDAtMTI4LTU3LjQtMTI4LTEyOHYtNjQwek0yMjIuMiA0MTZ2NDQ4YzAgMTcuNiAxNi4yIDMyIDMyIDMyIDE5LjQgMCAzMi0xNC40IDMyLTMydi00NDhjMC0xNy42LTEyLjYtMzItMzItMzItMTUuOCAwLTMyIDE0LjQtMzIgMzJ6TTQxNC4yIDQxNnY0NDhjMCAxNy42IDE2LjIgMzIgMzIgMzIgMTkuNCAwIDMzLjgtMTQuNCAzMy44LTMydi00NDhjMC0xNy42LTE0LjQtMzItMzMuOC0zMi0xNS44IDAtMzIgMTQuNC0zMiAzMnpNNjA4IDQxNnY0NDhjMCAxNy42IDE0LjQgMzIgMzIgMzJzMzItMTQuNCAzMi0zMnYtNDQ4YzAtMTcuNi0xNC40LTMyLTMyLTMycy0zMiAxNC40LTMyIDMyeiJdLCJ3aWR0aCI6ODk2LCJhdHRycyI6W3t9XSwiaXNNdWx0aWNvbG9yIjpmYWxzZSwiaXNNdWx0aWNvbG9yMiI6ZmFsc2UsInRhZ3MiOlsidHJhc2gtY2FuLXNvbGlkIl0sImdyaWQiOjE2LCJkZWZhdWx0Q29kZSI6NTk2NTR9LCJhdHRycyI6W3t9XSwicHJvcGVydGllcyI6eyJvcmRlciI6MjgsImlkIjoyMSwibmFtZSI6InRyYXNoLWNhbi1zb2xpZCIsInByZXZTaXplIjozMiwiY29kZSI6NTk2NTR9LCJzZXRJZHgiOjAsInNldElkIjoxLCJpY29uSWR4IjoxMH0seyJpY29uIjp7InBhdGhzIjpbIk03NjggMjU2YzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2Yy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2ek00NDggMjU2YzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2Yy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2ek0xMjggNDQ4Yy01My4wMjAgMC05Ni00My05Ni05NnM0Mi45OC05NiA5Ni05NmM1My4wMjAgMCA5NiA0MyA5NiA5NnMtNDIuOTggOTYtOTYgOTZ6TTc2OCA1NzZjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZ6TTQ0OCA3NjhjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZ6TTEyOCA1NzZjNTMuMDIwIDAgOTYgNDMgOTYgOTZzLTQyLjk4IDk2LTk2IDk2Yy01My4wMjAgMC05Ni00My05Ni05NnM0Mi45OC05NiA5Ni05NnoiXSwid2lkdGgiOjg5NiwiYXR0cnMiOlt7fV0sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbImdyaXAtZG90cy1zb2xpZCJdLCJncmlkIjoxNiwiZGVmYXVsdENvZGUiOjU5NjUxfSwiYXR0cnMiOlt7fV0sInByb3BlcnRpZXMiOnsib3JkZXIiOjI5LCJpZCI6MjIsIm5hbWUiOiJncmlwLWRvdHMtc29saWQiLCJwcmV2U2l6ZSI6MzIsImNvZGUiOjU5NjUxfSwic2V0SWR4IjowLCJzZXRJZCI6MSwiaWNvbklkeCI6MTF9LHsiaWNvbiI6eyJwYXRocyI6WyJNMCAxOTJjMC01My4wMjAgNDIuOTgtOTYgOTYtOTZzOTYgNDIuOTggOTYgOTZjMCA1My00Mi45OCA5Ni05NiA5NnMtOTYtNDMtOTYtOTZ6TTAgNTEyYzAtNTMgNDIuOTgtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA1My00Mi45OCA5Ni05NiA5NnMtOTYtNDMtOTYtOTZ6TTE5MiA4MzJjMCA1My00Mi45OCA5Ni05NiA5NnMtOTYtNDMtOTYtOTZjMC01MyA0Mi45OC05NiA5Ni05NnM5NiA0MyA5NiA5NnpNMzIwIDE5MmMwLTUzLjAyMCA0My05NiA5Ni05NnM5NiA0Mi45OCA5NiA5NmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NnpNNTEyIDUxMmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2ek0zMjAgODMyYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZ6Il0sIndpZHRoIjo1MTIsImF0dHJzIjpbe31dLCJpc011bHRpY29sb3IiOmZhbHNlLCJpc011bHRpY29sb3IyIjpmYWxzZSwidGFncyI6WyJncmlwLWRvdHMtdmVydGljYWwtc29saWQiXSwiZ3JpZCI6MTYsImRlZmF1bHRDb2RlIjo1OTY1Mn0sImF0dHJzIjpbe31dLCJwcm9wZXJ0aWVzIjp7Im9yZGVyIjozMCwiaWQiOjIzLCJuYW1lIjoiZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY1Mn0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjEyfSx7Imljb24iOnsicGF0aHMiOlsiTTIwNy40MjkgODc3LjcxNGw1Mi01Mi0xMzQuMjg2LTEzNC4yODYtNTIgNTJ2NjEuMTQzaDczLjE0M3Y3My4xNDNoNjEuMTQzek01MDYuMjg2IDM0Ny40MjljMC03LjQyOS01LjE0My0xMi41NzEtMTIuNTcxLTEyLjU3MS0zLjQyOSAwLTYuODU3IDEuMTQzLTkuNzE0IDRsLTMwOS43MTQgMzA5LjcxNGMtMi44NTcgMi44NTctNCA2LjI4Ni00IDkuNzE0IDAgNy40MjkgNS4xNDMgMTIuNTcxIDEyLjU3MSAxMi41NzEgMy40MjkgMCA2Ljg1Ny0xLjE0MyA5LjcxNC00bDMwOS43MTQtMzA5LjcxNGMyLjg1Ny0yLjg1NyA0LTYuMjg2IDQtOS43MTR6TTQ3NS40MjkgMjM3LjcxNGwyMzcuNzE0IDIzNy43MTQtNDc1LjQyOSA0NzUuNDI5aC0yMzcuNzE0di0yMzcuNzE0ek04NjUuNzE0IDI5Mi41NzFjMCAxOS40MjktOCAzOC4yODYtMjEuMTQzIDUxLjQyOWwtOTQuODU3IDk0Ljg1Ny0yMzcuNzE0LTIzNy43MTQgOTQuODU3LTk0LjI4NmMxMy4xNDMtMTMuNzE0IDMyLTIxLjcxNCA1MS40MjktMjEuNzE0czM4LjI4NiA4IDUyIDIxLjcxNGwxMzQuMjg2IDEzMy43MTRjMTMuMTQzIDEzLjcxNCAyMS4xNDMgMzIuNTcxIDIxLjE0MyA1MnoiXSwiYXR0cnMiOlt7fV0sIndpZHRoIjo4NjYsImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbInBlbmNpbCJdLCJncmlkIjoxNiwiZGVmYXVsdENvZGUiOjU5NjQ4fSwiYXR0cnMiOlt7fV0sInByb3BlcnRpZXMiOnsib3JkZXIiOjMxLCJpZCI6MjQsInByZXZTaXplIjozMiwibmFtZSI6InBlbmNpbCIsImNvZGUiOjU5NjU1fSwic2V0SWR4IjowLCJzZXRJZCI6MSwiaWNvbklkeCI6MTN9LHsiaWNvbiI6eyJwYXRocyI6WyJNNjIxLjIgNzIyLjhjMjUgMjUgMjUgNjUuNSAwIDkwLjUtMTIuNCAxMi41LTI4LjggMTguNy00NS4yIDE4LjdzLTMyLjc2LTYuMjUtNDUuMjQtMTguNzVsLTIxMC43Ni0yMTAuNjUtMjEwLjc0IDIxMC42Yy0xMi41IDEyLjYtMjguODggMTguOC00NS4yNiAxOC44cy0zMi43NC02LjItNDUuMjUtMTguOGMtMjUtMjUtMjUtNjUuNSAwLTkwLjVsMjEwLjgtMjEwLjgtMjEwLjgtMjEwLjdjLTI1LTI1LTI1LTY1LjUgMC05MC41czY1LjUtMjUgOTAuNSAwbDIxMC43NSAyMTAuOSAyMTAuOC0yMTAuOGMyNS0yNSA2NS41LTI1IDkwLjUgMHMyNSA2NS41IDAgOTAuNWwtMjEwLjggMjEwLjggMjEwLjcgMjEwLjd6Il0sImF0dHJzIjpbe31dLCJ3aWR0aCI6NjQwLCJpc011bHRpY29sb3IiOmZhbHNlLCJpc011bHRpY29sb3IyIjpmYWxzZSwiZ3JpZCI6MTYsInRhZ3MiOlsieG1hcmsiXSwiZGVmYXVsdENvZGUiOjU5NjU1fSwiYXR0cnMiOlt7fV0sInByb3BlcnRpZXMiOnsib3JkZXIiOjMyLCJpZCI6MjUsIm5hbWUiOiJ4bWFyayIsInByZXZTaXplIjozMiwiY29kZSI6NTk2NTZ9LCJzZXRJZHgiOjAsInNldElkIjoxLCJpY29uSWR4IjoxNH0seyJpY29uIjp7InBhdGhzIjpbIk04NzcuMiAyMTAuOGMyNSAyNSAyNSA2NS40IDAgOTAuNGwtNTEyIDUxMmMtMjUgMjUtNjUuNCAyNS05MC40IDBsLTI1Ni4wNTYtMjU2Yy0yNC45OTItMjUtMjQuOTkyLTY1LjQgMC05MC40IDI0Ljk5Ni0yNSA2NS41MTYtMjUgOTAuNTE2IDBsMjA4Ljk0IDIxMC42IDQ2OC42LTQ2Ni42YzI1LTI1LjA0MCA2NS40LTI1LjA0MCA5MC40IDB2MHoiXSwiYXR0cnMiOlt7fV0sIndpZHRoIjo4OTYsImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJncmlkIjoxNiwidGFncyI6WyJjaGVjayJdLCJkZWZhdWx0Q29kZSI6NTk2NTZ9LCJhdHRycyI6W3t9XSwicHJvcGVydGllcyI6eyJvcmRlciI6MzMsImlkIjoyNiwibmFtZSI6ImNoZWNrIiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY1N30sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjE1fV0sImhlaWdodCI6MTAyNCwibWV0YWRhdGEiOnsibmFtZSI6Imljb21vb24ifSwicHJlZmVyZW5jZXMiOnsic2hvd0dseXBocyI6dHJ1ZSwic2hvd0NvZGVzIjp0cnVlLCJzaG93UXVpY2tVc2UiOnRydWUsInNob3dRdWlja1VzZTIiOnRydWUsInNob3dTVkdzIjp0cnVlLCJmb250UHJlZiI6eyJwcmVmaXgiOiJpY29uLSIsIm1ldGFkYXRhIjp7ImZvbnRGYW1pbHkiOiJpY29tb29uIn0sIm1ldHJpY3MiOnsiZW1TaXplIjoxMDI0LCJiYXNlbGluZSI6Ni4yNSwid2hpdGVzcGFjZSI6NTB9LCJlbWJlZCI6ZmFsc2V9LCJpbWFnZVByZWYiOnsicHJlZml4IjoiaWNvbi0iLCJwbmciOnRydWUsInVzZUNsYXNzU2VsZWN0b3IiOnRydWUsImNvbG9yIjowLCJiZ0NvbG9yIjoxNjc3NzIxNX0sImhpc3RvcnlTaXplIjo1MCwiZ3JpZFNpemUiOjE2fX0=]]></data>
	</file>
	<file>
	  <filename>/lib/css/tiny_transparent.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_fieldset_end/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_fieldset_end/class.ecb2fd_admin_fieldset_end.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfYWRtaW5fZmllbGRzZXRfZW5kIGV4dGVuZHMgZWNiMl9GaWVsZERlZkJhc2UgCnsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQ9MCkgCgl7CQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQpOwoKICAgICAgICAkdGhpcy0+Z2V0X3ZhbHVlcygkdmFsdWUpOyAgICAgICAgICAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKCiAgICAgICAgJHRoaXMtPnNldF9maWVsZF9wYXJhbWV0ZXJzKCk7CgogICAgICAgICR0aGlzLT5pbml0aWFsaXNlX29wdGlvbnMoJHBhcmFtcyk7ICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAogICAgICAgIAoJfQoKCgogICAgLyoqCiAgICAgKiAgc2V0cyB0aGUgYWxsb3dlZCBwYXJhbWV0ZXJzIGZvciB0aGlzIGZpZWxkIHR5cGUKICAgICAqCiAgICAgKiAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyAtIGFycmF5IG9mIHBhcmFtZXRlcl9uYW1lcyA9PiBbIGRlZmF1bHRfdmFsdWUsIGZpbHRlcl90eXBlIF0KICAgICAqICAgICAgc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkcsIEZJTFRFUl9WQUxJREFURV9JTlQsIEZJTFRFUl9WQUxJREFURV9CT09MRUFOLCBGSUxURVJfU0FOSVRJWkVfRU1BSUwgCiAgICAgKiAgICAgIHNlZTogaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZmlsdGVyLmZpbHRlcnMucGhwCiAgICAgKiAgJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyAtIG9wdGlvbmFsbHkgYWxsb3cgYW55IG90aGVyIHBhcmFtZXRlcnMgdG8gYmUgaW5jbHVkZWQsIGUuZy4gbW9kdWxlIGNhbGxzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGRfcGFyYW1ldGVycygpIAogICAgewogICAgICAgICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICdhZG1pbl9ncm91cHMnICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10KICAgICAgICBdOwogICAgICAgIC8vICR0aGlzLT5wYXJhbWV0ZXJfYWxpYXNlcyA9IFsgJ2FsaWFzJyA9PiAncGFyYW1ldGVyJyBdOwogICAgICAgIC8vICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgPSBGQUxTRTsgICAgLy8gZGVmYXVsdDogdHJ1ZQoKICAgIH0KCgogICAgLyoqCiAgICAgKiAgQHJldHVybiBzdHJpbmcgY29tcGxldGUgY29udGVudCBibG9jayAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX2lucHV0KCkgCiAgICB7ICAgCiAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSAmJiAKICAgICAgICAgICAgICEkdGhpcy0+aXNfdmFsaWRfZ3JvdXBfbWVtYmVyKCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZWNiMl9oaWRkZW5fZmllbGQoKTsgCiAgICAgICAgfQogICAgICAgIAogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAnc3RyaW5nOicuJHRoaXMtPmdldF90ZW1wbGF0ZSgpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdpc19kZW1vJywgJHRoaXMtPmRlbW9fY291bnQ+MCApOwogICAgICAgIHJldHVybiAkdHBsLT5mZXRjaCgpOwogICAKICAgIH0KCgp9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_fieldset_end/help.ecb2fd_admin_fieldset_end.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfYWRtaW5fZmllbGRzZXRfZW5kLnRwbCAqfQo8cD5TaW1wbHkgdGhlIGFkbWluX2ZpZWxkc2V0X2VuZCB0byBjbG9zZSBhbiBhZG1pbl9maWVsZHNldF9zdGFydC4gU2VlIGFib3ZlIGZvciBkZW1vLjwvcD4KCjxwcmU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPWFkbWluX2ZpZWxkc2V0X2VuZCBibG9jaz10ZXN0MTYgbGFiZWw9JyZhbXA7bmJzcDsnfXsvbGl0ZXJhbH08L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdhZG1pbl9maWVsZHNldF9lbmQnLCBhbGlhczogJzxiPmZpZWxkc2V0X2VuZDwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CjwvdWw+Cgo8cD5USVA6IHNldCBsYWJlbD0nJmFtcDtuYnNwOycgdG8gbm90IHNob3cgdGhlIGZpZWxkIGxhYmVsLjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_fieldset_end/input.ecb2fd_admin_fieldset_end.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2FkbWluX2ZpZWxkc2V0X2VuZC50cGwgLSB2MS4wIC0gMjVKdW4yMiAKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0Ke2lmICEkaXNfZGVtb30KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgPC9maWVsZHNldD4KICAgIDxkaXY+CiAgICAgICAgPHA+CntlbHNlfQogICAgPC9maWVsZHNldD4Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_fieldset_start/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_fieldset_start/class.ecb2fd_admin_fieldset_start.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfYWRtaW5fZmllbGRzZXRfc3RhcnQgZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCk7CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgl9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBhbGxvd2VkIHBhcmFtZXRlcnMgZm9yIHRoaXMgZmllbGQgdHlwZQogICAgICoKICAgICAqICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzIC0gYXJyYXkgb2YgcGFyYW1ldGVyX25hbWVzID0+IFsgZGVmYXVsdF92YWx1ZSwgZmlsdGVyX3R5cGUgXQogICAgICogICAgICBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklORywgRklMVEVSX1ZBTElEQVRFX0lOVCwgRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4sIEZJTFRFUl9TQU5JVElaRV9FTUFJTCAKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZF9wYXJhbWV0ZXJzKCkgCiAgICB7CiAgICAgICAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ2xlZ2VuZCcgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwgCiAgICAgICAgICAgICdhZG1pbl9ncm91cHMnICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfREVGQVVMVF0KICAgICAgICBdOwogICAgICAgIC8vICR0aGlzLT5wYXJhbWV0ZXJfYWxpYXNlcyA9IFsgJ2FsaWFzJyA9PiAncGFyYW1ldGVyJyBdOwogICAgICAgIC8vICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgPSBGQUxTRTsgICAgLy8gZGVmYXVsdDogdHJ1ZQoKICAgIH0KCgogICAgLyoqCiAgICAgKiAgQHJldHVybiBzdHJpbmcgY29tcGxldGUgY29udGVudCBibG9jayAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX2lucHV0KCkgCiAgICB7CiAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSAmJiAKICAgICAgICAgICAgICEkdGhpcy0+aXNfdmFsaWRfZ3JvdXBfbWVtYmVyKCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZWNiMl9oaWRkZW5fZmllbGQoKTsgCiAgICAgICAgfQogICAgICAgIAogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAnc3RyaW5nOicuJHRoaXMtPmdldF90ZW1wbGF0ZSgpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdibG9ja19uYW1lJywgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2xlZ2VuZCcsICR0aGlzLT5vcHRpb25zWydsZWdlbmQnXSApOwogICAgICAgICR0cGwtPmFzc2lnbignZGVzY3JpcHRpb24nLCAkdGhpcy0+b3B0aW9uc1snZGVzY3JpcHRpb24nXSApOwogICAgICAgICR0cGwtPmFzc2lnbignaXNfZGVtbycsICR0aGlzLT5kZW1vX2NvdW50PjAgKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_fieldset_start/help.ecb2fd_admin_fieldset_start.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfYWRtaW5fZmllbGRzZXRfc3RhcnQudHBsICp9CjxwPkNyZWF0ZXMgdGhlIHN0YXJ0IG9mIGEgZmllbGRzZXQgZm9yIGdyb3VwaW5nIHJlbGF2YW50IGFkbWluIGZpZWxkcyB0b2dldGhlci4gTm90ZTogYSBtYXRjaGluZyAnYWRtaW5fZmllbGRzZXRfZW5kJyBibG9jayBpcyByZXF1aXJlZCBmb3IgZWFjaCAnYWRtaW5fZmllbGRzZXRfc3RhcnQnLjwvcD4KCgp7JGZpZWxkZGVmLT5nZXRfZGVtb19pbnB1dChbJ2xlZ2VuZCc9PidBIHNhbXBsZSBmaWVsZHNldCB3aXRoIGxlZ2VuZCddKX0KICAgIHNvbWUgYWRtaW4gZmllbGRzIGNhbiBnbyBpbiBoZXJlIDopCiAgICA8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9YWRtaW5fZmllbGRzZXRfc3RhcnQgYmxvY2s9dGVzdCBsYWJlbD0nMTU6IGFkbWluX2ZpZWxkc2V0X3N0YXJ0J317L2xpdGVyYWx9PC9wcmU+Cgo8cD5USVA6IHNldCBsYWJlbD0nJm5ic3A7JyB0byBub3Qgc2hvdyB0aGUgZmllbGQgbGFiZWwuPC9wPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ2FkbWluX2ZpZWxkc2V0X3N0YXJ0JywgYWxpYXM6ICc8Yj5maWVsZHNldF9zdGFydDwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmxlZ2VuZCAob3B0aW9uYWwpIC0gdGV4dCB0byBzaG93IGFzIGZpZWxkc2V0IGxlZ2VuZCAtIGRlZmF1bHQ6ICcnPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_fieldset_start/input.ecb2fd_admin_fieldset_start.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2FkbWluX2ZpZWxkc2V0X3N0YXJ0LnRwbCAtIHYxLjAgLSAyNUp1bjIyIAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7aWYgISRpc19kZW1vfQogICAgPC9wPgogICAgICAgIDwvZGl2Pgp7L2lmfQogICAgICAgICAgICA8ZmllbGRzZXQgbmFtZT0ieyRibG9ja19uYW1lfSI+CiAgICAgICAge2lmICRsZWdlbmR9CiAgICAgICAgICAgIDxsZWdlbmQ+eyRsZWdlbmR9PC9sZWdlbmQ+CiAgICAgICAgey9pZn0Ke2lmICFlbXB0eSgkZGVzY3JpcHRpb24pfQogICAgICAgICAgICB7JGRlc2NyaXB0aW9ufTxicj4Key9pZn0Ke2lmICEkaXNfZGVtb30KICAgICAgICA8ZGl2PgogICAgPHA+CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_hr/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_hr/class.ecb2fd_admin_hr.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfYWRtaW5faHIgZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCk7CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgl9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBhbGxvd2VkIHBhcmFtZXRlcnMgZm9yIHRoaXMgZmllbGQgdHlwZQogICAgICoKICAgICAqICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzIC0gYXJyYXkgb2YgcGFyYW1ldGVyX25hbWVzID0+IFsgZGVmYXVsdF92YWx1ZSwgZmlsdGVyX3R5cGUgXQogICAgICogICAgICBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklORywgRklMVEVSX1ZBTElEQVRFX0lOVCwgRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4sIEZJTFRFUl9TQU5JVElaRV9FTUFJTCAKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZF9wYXJhbWV0ZXJzKCkgCiAgICB7CiAgICAgICAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJycgICAgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJycgICAgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2RlZmF1bHRfdmFsdWUnID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwgCiAgICAgICAgICAgICdhZG1pbl9ncm91cHMnICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfREVGQVVMVF0KICAgICAgICBdOwogICAgICAgIC8vICR0aGlzLT5wYXJhbWV0ZXJfYWxpYXNlcyA9IFsgJ2FsaWFzJyA9PiAncGFyYW1ldGVyJyBdOwogICAgICAgIC8vICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgPSBGQUxTRTsgICAgLy8gZGVmYXVsdDogdHJ1ZQoKICAgIH0KCgogICAgLyoqCiAgICAgKiAgQHJldHVybiBzdHJpbmcgY29tcGxldGUgY29udGVudCBibG9jayAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX2lucHV0KCkgCiAgICB7CiAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSAmJiAKICAgICAgICAgICAgICEkdGhpcy0+aXNfdmFsaWRfZ3JvdXBfbWVtYmVyKCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZWNiMl9oaWRkZW5fZmllbGQoKTsgCiAgICAgICAgfQogICAgCiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Jsb2NrX25hbWUnLCAkdGhpcy0+YmxvY2tfbmFtZSApOwogICAgICAgICR0cGwtPmFzc2lnbigndmFsdWUnLCAkdGhpcy0+dmFsdWUgKTsKCiAgICAgICAgJHRwbC0+YXNzaWduKCdkZXNjcmlwdGlvbicsICR0aGlzLT5vcHRpb25zWydkZXNjcmlwdGlvbiddICk7CiAgICAgICAgcmV0dXJuICR0cGwtPmZldGNoKCk7CiAgIAogICAgfQoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_hr/help.ecb2fd_admin_hr.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfYWRtaW5faHIudHBsICp9CjxwPkRpc3BsYXlzIGFuICdocicgb24gdGhlIGFkbWluIHBhZ2UuPC9wPgoKPGZpZWxkc2V0PgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoKX0KPC9maWVsZHNldD4KCjxwcmU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPWFkbWluX2hyIGJsb2NrPXRlc3QxNyBkZXNjcmlwdGlvbj0nQ2FuIGFsc28gYWRkIGEgZGVzY3JpcHRpb24gaW4gaGVyZSA6KSd9ey9saXRlcmFsfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ2FkbWluX2hyJywgYWxpYXM6ICc8Yj5ocjwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPgoKPHA+VElQOiBzZXQgbGFiZWw9JyZhbXA7bmJzcDsnIHRvIG5vdCBzaG93IHRoZSBmaWVsZCBsYWJlbC48L3A+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_hr/input.ecb2fd_admin_hr.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2FkbWluX2hyLnRwbCAtIHYxLjAgLSAyNUp1bjIyIAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7aWYgIWVtcHR5KCRkZXNjcmlwdGlvbil9CiAgICAgICAgeyRkZXNjcmlwdGlvbn08YnI+CnsvaWZ9CiAgICAgICAgPGhyIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyBib3JkZXI6MCBub25lOyBiYWNrZ3JvdW5kOiNjY2M7IiAvPgo=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_image/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_image/class.ecb2fd_admin_image.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfYWRtaW5faW1hZ2UgZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCk7CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgl9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBhbGxvd2VkIHBhcmFtZXRlcnMgZm9yIHRoaXMgZmllbGQgdHlwZQogICAgICoKICAgICAqICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzIC0gYXJyYXkgb2YgcGFyYW1ldGVyX25hbWVzID0+IFsgZGVmYXVsdF92YWx1ZSwgZmlsdGVyX3R5cGUgXQogICAgICogICAgICBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklORywgRklMVEVSX1ZBTElEQVRFX0lOVCwgRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4sIEZJTFRFUl9TQU5JVElaRV9FTUFJTCAKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZF9wYXJhbWV0ZXJzKCkgCiAgICB7CiAgICAgICAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ2ltYWdlJyAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwgCiAgICAgICAgICAgICdhZG1pbl9ncm91cHMnICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfREVGQVVMVF0KICAgICAgICBdOwogICAgICAgIC8vICR0aGlzLT5wYXJhbWV0ZXJfYWxpYXNlcyA9IFsgJ2FsaWFzJyA9PiAncGFyYW1ldGVyJyBdOwogICAgICAgIC8vICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgPSBGQUxTRTsgICAgLy8gZGVmYXVsdDogdHJ1ZQoKICAgIH0KCgogICAgLyoqCiAgICAgKiAgQHJldHVybiBzdHJpbmcgY29tcGxldGUgY29udGVudCBibG9jayAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX2lucHV0KCkgCiAgICB7CiAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSAmJiAKICAgICAgICAgICAgICEkdGhpcy0+aXNfdmFsaWRfZ3JvdXBfbWVtYmVyKCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZWNiMl9oaWRkZW5fZmllbGQoKTsgCiAgICAgICAgfQoKICAgICAgICAkaGVscF9zYW1wbGVfZmlsZW5hbWUgPSAnc2FtcGxlX2FkbWluX29ubHlfaW1hZ2UucG5nJzsKICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgJGltZ191cmwgPSBjbXNfam9pbl9wYXRoKCAkY29uZmlnWyd1cGxvYWRzX3VybCddLCAkdGhpcy0+b3B0aW9uc1snaW1hZ2UnXSApOwogICAgICAgICRpbWdfcGF0aCA9IGNtc19qb2luX3BhdGgoICRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCAkdGhpcy0+b3B0aW9uc1snaW1hZ2UnXSApOwogICAgICAgIGlmICggJHRoaXMtPm9wdGlvbnNbJ2ltYWdlJ109PSRoZWxwX3NhbXBsZV9maWxlbmFtZSkgewogICAgICAgICAgICAvLyBqdXN0IHRvIG1ha2Ugc3VyZSB0aGUgaGVscCBpbWFnZSBhbHdheXMgd29ya3MhCiAgICAgICAgICAgICRpbWdfdXJsID0gJHRoaXMtPm1vZC0+R2V0TW9kdWxlVVJMUGF0aCgpIC5ESVJFQ1RPUllfU0VQQVJBVE9SLiAnbGliJyAuRElSRUNUT1JZX1NFUEFSQVRPUi4gCiAgICAgICAgICAgICAgICAnZmllbGRkZWZzJyAuRElSRUNUT1JZX1NFUEFSQVRPUi4gJHRoaXMtPmZpZWxkIC5ESVJFQ1RPUllfU0VQQVJBVE9SLiAKICAgICAgICAgICAgICAgICRoZWxwX3NhbXBsZV9maWxlbmFtZTsgICAgICAgCgogICAgICAgIH0gZWxzZWlmICggIWlzX3JlYWRhYmxlKCRpbWdfcGF0aCkpIHsKICAgICAgICAgICAgJHRoaXMtPmVycm9yID0gJHRoaXMtPm1vZC0+TGFuZygnZXJyb3JfZmlsZW5hbWUnLCAkaW1nX3VybCwgJ2ltYWdlJyk7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bW9kLT5lcnJvcl9tc2coJHRoaXMtPmVycm9yKTsKICAgICAgICB9CiAgICAKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSggJ3N0cmluZzonLiR0aGlzLT5nZXRfdGVtcGxhdGUoKSwgbnVsbCwgbnVsbCwgJHNtYXJ0eSApOwogICAgICAgICR0cGwtPmFzc2lnbignYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdpbWdfdXJsJywgJGltZ191cmwgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywgJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10gKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_image/help.ecb2fd_admin_image.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfYWRtaW5faW1hZ2UudHBsICp9CjxwPkRpc3BsYXlzIGFuIGltYWdlIG9uIGFuIGFkbWluIHBhZ2Ugb25seS4gVXNlZnVsbHkgdG8gcHJvdmlkZSBleHRyYSBndWlkYW5jZSB0byBlZGl0b3JzLjwvcD4KCjxmaWVsZHNldD4KICAgIHskZmllbGRkZWYtPmdldF9kZW1vX2lucHV0KFsnaW1hZ2UnPT4nc2FtcGxlX2FkbWluX29ubHlfaW1hZ2UucG5nJywgJ2Rlc2NyaXB0aW9uJz0+IlRoaXMgaXMgYW4gYWRtaW4gb25seSBpbWFnZSJdKX0KPC9maWVsZHNldD4KCjxwcmU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPWFkbWluX2ltYWdlIGltYWdlPSdzYW1wbGVfYWRtaW5fb25seV9pbWFnZS5wbmcnIGJsb2NrPXRlc3QxOSBsYWJlbD0iMTk6IGFkbWluX2ltYWdlIiBkZXNjcmlwdGlvbj0iVGhpcyBpcyBhbiBhZG1pbiBvbmx5IGltYWdlIn17L2xpdGVyYWx9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnYWRtaW5faW1hZ2UnLCBhbGlhczogJzxiPmltYWdlPC9iPic8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+aW1hZ2UgKHJlcXVpcmVkKSAtIHBhdGggYW5kIGZpbGVuYW1lIHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcmVjdG9yeTwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_image/input.ecb2fd_admin_image.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2FkbWluX2ltYWdlLnRwbCAtIHYxLjAgLSAyNUp1bjIyIAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7aWYgIWVtcHR5KCRkZXNjcmlwdGlvbil9CiAgICAgICAgeyRkZXNjcmlwdGlvbn08YnI+CnsvaWZ9CiAgICAgICAgPGltZyBzcmM9InskaW1nX3VybH0iIGFsdD0ieyRibG9ja19uYW1lfSIgc3R5bGU9Im1heC13aWR0aDoxMDAlIj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_image/sample_admin_only_image.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_link/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_link/class.ecb2fd_admin_link.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfYWRtaW5fbGluayBleHRlbmRzIGVjYjJfRmllbGREZWZCYXNlIAp7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkPTApIAoJewkKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkKTsKCiAgICAgICAgJHRoaXMtPmdldF92YWx1ZXMoJHZhbHVlKTsgICAgICAgICAgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCgogICAgICAgICR0aGlzLT5zZXRfZmllbGRfcGFyYW1ldGVycygpOwoKICAgICAgICAkdGhpcy0+aW5pdGlhbGlzZV9vcHRpb25zKCRwYXJhbXMpOyAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKICAgICAgICAKCX0KCgoKICAgIC8qKgogICAgICogIHNldHMgdGhlIGFsbG93ZWQgcGFyYW1ldGVycyBmb3IgdGhpcyBmaWVsZCB0eXBlCiAgICAgKgogICAgICogICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgLSBhcnJheSBvZiBwYXJhbWV0ZXJfbmFtZXMgPT4gWyBkZWZhdWx0X3ZhbHVlLCBmaWx0ZXJfdHlwZSBdCiAgICAgKiAgICAgIHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HLCBGSUxURVJfVkFMSURBVEVfSU5ULCBGSUxURVJfVkFMSURBVEVfQk9PTEVBTiwgRklMVEVSX1NBTklUSVpFX0VNQUlMIAogICAgICogICAgICBzZWU6IGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2ZpbHRlci5maWx0ZXJzLnBocAogICAgICogICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgLSBvcHRpb25hbGx5IGFsbG93IGFueSBvdGhlciBwYXJhbWV0ZXJzIHRvIGJlIGluY2x1ZGVkLCBlLmcuIG1vZHVsZSBjYWxscwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkX3BhcmFtZXRlcnMoKSAKICAgIHsKICAgICAgICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAndGV4dCcgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAndGFyZ2V0JyAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnX3NlbGYnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdsaW5rJyAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sIAogICAgICAgICAgICAnYWRtaW5fZ3JvdXBzJyAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnZGVzY3JpcHRpb24nICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gRklMVEVSX0RFRkFVTFRdCiAgICAgICAgXTsKICAgICAgICAvLyAkdGhpcy0+cGFyYW1ldGVyX2FsaWFzZXMgPSBbICdhbGlhcycgPT4gJ3BhcmFtZXRlcicgXTsKICAgICAgICAvLyAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zID0gRkFMU0U7ICAgIC8vIGRlZmF1bHQ6IHRydWUKCiAgICB9CgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGNvbXBsZXRlIGNvbnRlbnQgYmxvY2sgCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja19pbnB1dCgpIAogICAgewogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYgCiAgICAgICAgICAgICAhJHRoaXMtPmlzX3ZhbGlkX2dyb3VwX21lbWJlcigkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7IAogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJHRoaXMtPm9wdGlvbnNbJ2xpbmsnXSApIHJldHVybjsKICAgICAgICBpZiAoICEkdGhpcy0+b3B0aW9uc1sndGV4dCddICkgJHRoaXMtPm9wdGlvbnNbJ3RleHQnXSA9ICR0aGlzLT5vcHRpb25zWydsaW5rJ107CgogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAnc3RyaW5nOicuJHRoaXMtPmdldF90ZW1wbGF0ZSgpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0ZXh0JywgJHRoaXMtPm9wdGlvbnNbJ3RleHQnXSApOwogICAgICAgICR0cGwtPmFzc2lnbigndGFyZ2V0JywgJHRoaXMtPm9wdGlvbnNbJ3RhcmdldCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdsaW5rJywgJHRoaXMtPm9wdGlvbnNbJ2xpbmsnXSApOwogICAgICAgICR0cGwtPmFzc2lnbignZGVzY3JpcHRpb24nLCAkdGhpcy0+b3B0aW9uc1snZGVzY3JpcHRpb24nXSApOwogICAgICAgIHJldHVybiAkdHBsLT5mZXRjaCgpOwogICAKICAgIH0KCgp9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_link/help.ecb2fd_admin_link.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfYWRtaW5fbGluay50cGwgKn0KPHA+VGhlIGFkbWluX2xpbmsgZmllbGQgY3JlYXRlcyBhIGxpbmsgb24gdGhlIGFkbWluIHBhZ2UgdG8gYW55IHNwZWNpZmllZCB1cmwuPC9wPgoKPGZpZWxkc2V0PgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWydsaW5rJz0+Imh0dHA6Ly93d3cuYmluZy5jb20iLCAndGV4dCc9PiJiaW5nIHNlYXJjaCIsICd0YXJnZXQnPT4iX2JsYW5rIl0pfQo8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9YWRtaW5fbGluayBibG9jaz10ZXN0MTcgdGFyZ2V0PSdfYmxhbmsnIGxpbms9J2h0dHA6Ly93d3cuYmluZy5jb20nIHRleHQ9J2Jpbmcgc2VhcmNoJyBsYWJlbD0nMTc6IGFkbWluX2xpbmsnIGRlc2NyaXB0aW9uPSdUZXN0IGRlc2NyaXB0aW9uIChvcHRpb25hbCkgY2FuIGJlIHNob3duIGhlcmUnfXsvbGl0ZXJhbH08L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdhZG1pbl9saW5rJywgYWxpYXM6ICc8Yj5saW5rPC9iPic8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+bGluayAocmVxdWlyZWQpIC0gaW5pdGlhbCB2YWx1ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2U8L2xpPgogICAgPGxpPnRleHQgKG9wdGlvbmFsKSAtIHRoZSBkaXNwbGF5ZWQgdGV4dDwvbGk+CiAgICA8bGk+dGFyZ2V0IChvcHRpb25hbCkgLSBlLmcuICdfYmxhbmsnIC0gZGVmYXVsdDogJ19zZWxmJzwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_link/input.ecb2fd_admin_link.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2FkbWluX2xpbmsudHBsIC0gdjEuMCAtIDI1SnVuMjIgCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKip9CntpZiAhZW1wdHkoJGRlc2NyaXB0aW9uKX0KICAgICAgICB7JGRlc2NyaXB0aW9ufTxicj4Key9pZn0KICAgICAgICA8YSB0YXJnZXQ9InskdGFyZ2V0fSIgaHJlZj0ieyRsaW5rfSI+eyR0ZXh0fTwvYT4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_module_link/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_module_link/class.ecb2fd_admin_module_link.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfYWRtaW5fbW9kdWxlX2xpbmsgZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCk7CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgl9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBhbGxvd2VkIHBhcmFtZXRlcnMgZm9yIHRoaXMgZmllbGQgdHlwZQogICAgICoKICAgICAqICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzIC0gYXJyYXkgb2YgcGFyYW1ldGVyX25hbWVzID0+IFsgZGVmYXVsdF92YWx1ZSwgZmlsdGVyX3R5cGUgXQogICAgICogICAgICBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklORywgRklMVEVSX1ZBTElEQVRFX0lOVCwgRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4sIEZJTFRFUl9TQU5JVElaRV9FTUFJTCAKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZF9wYXJhbWV0ZXJzKCkgCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzID0gWwogICAgICAgICAgICAnZGVmYXVsdF92YWx1ZScgPT4gJ2RlZmF1bHQnCiAgICAgICAgXTsKICAgICAgICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAnbW9kJyAgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAndGV4dCcgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAndGFyZ2V0JyAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnX3NlbGYnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdzaXplJyAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+IDMwLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdtYXhfbGVuZ3RoJyAgICA9PiBbJ2RlZmF1bHQnID0+IDI1NSwgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnZGVmYXVsdCcgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLCAKICAgICAgICAgICAgJ2FkbWluX2dyb3VwcycgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IEZJTFRFUl9ERUZBVUxUXQogICAgICAgIF07CiAgICAgICAgLy8gJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzID0gWyAnYWxpYXMnID0+ICdwYXJhbWV0ZXInIF07CiAgICAgICAgLy8gJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyA9IEZBTFNFOyAgICAvLyBkZWZhdWx0OiB0cnVlCgogICAgfQoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBjb21wbGV0ZSBjb250ZW50IGJsb2NrIAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKSAKICAgIHsKICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICYmIAogICAgICAgICAgICAgISR0aGlzLT5pc192YWxpZF9ncm91cF9tZW1iZXIoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lY2IyX2hpZGRlbl9maWVsZCgpOyAKICAgICAgICB9CgogICAgICAgICR0YXJnZXRfbW9kID0gJyc7CiAgICAgICAgaWYgKCAkdGhpcy0+b3B0aW9uc1snbW9kJ10gKSB7CiAgICAgICAgICAgICR0YXJnZXRfbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCAkdGhpcy0+b3B0aW9uc1snbW9kJ10gKTsKICAgICAgICAgICAgaWYgKCAhaXNfb2JqZWN0KCR0YXJnZXRfbW9kKSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvciA9ICR0aGlzLT5tb2QtPkxhbmcoJ21vZHVsZV9lcnJvcicsICR0aGlzLT5vcHRpb25zWydtb2QnXSk7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1vZC0+ZXJyb3JfbXNnKCR0aGlzLT5lcnJvcik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRhZGR0ZXh0ID0gJ3RhcmdldD0iJy4kdGhpcy0+b3B0aW9uc1sndGFyZ2V0J10uJyInOwogICAgCiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RhcmdldF9tb2QnLCAkdGFyZ2V0X21vZCApOwogICAgICAgICR0cGwtPmFzc2lnbigndGFyZ2V0JywgJHRoaXMtPm9wdGlvbnNbJ3RhcmdldCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0ZXh0JywgJHRoaXMtPm9wdGlvbnNbJ3RleHQnXSApOwogICAgICAgICR0cGwtPmFzc2lnbignYWRkdGV4dCcsICRhZGR0ZXh0ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdkZXNjcmlwdGlvbicsICR0aGlzLT5vcHRpb25zWydkZXNjcmlwdGlvbiddICk7CiAgICAgICAgcmV0dXJuICR0cGwtPmZldGNoKCk7CiAgIAogICAgfQoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_module_link/help.ecb2fd_admin_module_link.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfYWRtaW5fbW9kdWxlX2xpbmsudHBsICp9CjxwPlRoZSBhZG1pbl9tb2R1bGVfbGluayBmaWVsZCBjcmVhdGVzIGEgbGluayBvbiB0aGUgYWRtaW4gcGFnZSB0byB0aGUgc3BlY2lmaWVkIG1vZHVsZS48L3A+Cgo8ZmllbGRzZXQ+CiAgICB7JGZpZWxkZGVmLT5nZXRfZGVtb19pbnB1dChbJ21vZCc9PiJDTVNDb250ZW50TWFuYWdlciIsICd0ZXh0Jz0+IkVkaXQgQ29udGVudCBQYWdlcyIsICd0YXJnZXQnPT4nX2JsYW5rJ10pfQo8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9YWRtaW5fbW9kdWxlX2xpbmsgYmxvY2s9dGVzdDE4IG1vZD1DTVNDb250ZW50TWFuYWdlciB0ZXh0PSdFZGl0IENvbnRlbnQgUGFnZXMnIGxhYmVsPScxODogbW9kdWxlX2xpbms6Q29udGVudE1hbmFnZXInIHRhcmdldD0nX2JsYW5rJyBkZXNjcmlwdGlvbj0nVGVzdCBkZXNjcmlwdGlvbiAob3B0aW9uYWwpIGNhbiBiZSBzaG93biBoZXJlJ317L2xpdGVyYWx9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnYWRtaW5fbW9kdWxlX2xpbmsnLCBhbGlhczogJzxiPm1vZHVsZV9saW5rPC9iPic8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+bW9kIChyZXF1aXJlZCkgLSBuYW1lIG9mIHRoZSBtb2R1bGUgdG8gbGluayB0bzxicj4KICAgIDxsaT50ZXh0IChvcHRpb25hbCkgLSB0ZXh0IHRvIHVzZSBpbiB0aGUgbGluazwvbGk+CiAgICA8bGk+dGFyZ2V0IChvcHRpb25hbCkgLSBkZWZhdWx0OiAnX3NlbGYnPC9saT4KICAgIDxsaT5kZWZhdWx0IChvcHRpb25hbCkgLSAoYWxpYXM6ICc8Yj5kZWZhdWx0X3ZhbHVlPC9iPicpIC0gaW5pdGlhbCB2YWx1ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2U8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_module_link/input.ecb2fd_admin_module_link.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2FkbWluX21vZHVsZV9saW5rLnRwbCAtIHYxLjAgLSAyNUp1bjIyIAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7aWYgIWVtcHR5KCRkZXNjcmlwdGlvbil9CiAgICAgICAgeyRkZXNjcmlwdGlvbn08YnI+CnsvaWZ9CiAgICAgICAgeyR0YXJnZXRfbW9kLT5DcmVhdGVMaW5rKCcnLCAnZGVmYXVsdGFkbWluJywgJycsICR0ZXh0LCBbXSwgJycsIGZhbHNlLCAwLCAkYWRkdGV4dCl9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_text/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_text/class.ecb2fd_admin_text.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfYWRtaW5fdGV4dCBleHRlbmRzIGVjYjJfRmllbGREZWZCYXNlIAp7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkPTApIAoJewkKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkKTsKCiAgICAgICAgJHRoaXMtPmdldF92YWx1ZXMoJHZhbHVlKTsgICAgICAgICAgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCgogICAgICAgICR0aGlzLT5zZXRfZmllbGRfcGFyYW1ldGVycygpOwoKICAgICAgICAkdGhpcy0+aW5pdGlhbGlzZV9vcHRpb25zKCRwYXJhbXMpOyAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKICAgICAgICAKCX0KCgoKICAgIC8qKgogICAgICogIHNldHMgdGhlIGFsbG93ZWQgcGFyYW1ldGVycyBmb3IgdGhpcyBmaWVsZCB0eXBlCiAgICAgKgogICAgICogICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgLSBhcnJheSBvZiBwYXJhbWV0ZXJfbmFtZXMgPT4gWyBkZWZhdWx0X3ZhbHVlLCBmaWx0ZXJfdHlwZSBdCiAgICAgKiAgICAgIHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HLCBGSUxURVJfVkFMSURBVEVfSU5ULCBGSUxURVJfVkFMSURBVEVfQk9PTEVBTiwgCiAgICAgKiAgICAgIEZJTFRFUl9TQU5JVElaRV9FTUFJTCwgRklMVEVSX0RFRkFVTFQgKGRvIG5vdGhpbmcpCiAgICAgKiAgICAgIHNlZTogaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZmlsdGVyLmZpbHRlcnMucGhwCiAgICAgKiAgJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyAtIG9wdGlvbmFsbHkgYWxsb3cgYW55IG90aGVyIHBhcmFtZXRlcnMgdG8gYmUgaW5jbHVkZWQsIGUuZy4gbW9kdWxlIGNhbGxzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGRfcGFyYW1ldGVycygpIAogICAgewogICAgICAgICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICd0ZXh0JyAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfREVGQVVMVF0sCiAgICAgICAgICAgICdhZG1pbl9ncm91cHMnICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfREVGQVVMVF0KICAgICAgICBdOwogICAgICAgIC8vICR0aGlzLT5wYXJhbWV0ZXJfYWxpYXNlcyA9IFsgJ2FsaWFzJyA9PiAncGFyYW1ldGVyJyBdOwogICAgICAgICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgPSBGQUxTRTsgICAgLy8gZGVmYXVsdDogdHJ1ZSAgLSB0byBlbmFibGUgdGV4dCB0byBpbmNsdWRlIGh0bWwKCiAgICB9CgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGNvbXBsZXRlIGNvbnRlbnQgYmxvY2sgCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja19pbnB1dCgpIAogICAgewogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYgCiAgICAgICAgICAgICAhJHRoaXMtPmlzX3ZhbGlkX2dyb3VwX21lbWJlcigkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7IAogICAgICAgIH0KCiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Jsb2NrX25hbWUnLCAkdGhpcy0+YmxvY2tfbmFtZSApOwogICAgICAgICR0cGwtPmFzc2lnbigndGV4dCcsICR0aGlzLT5vcHRpb25zWyd0ZXh0J10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywgJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10gKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_text/help.ecb2fd_admin_text.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfYWRtaW5fdGV4dC50cGwgKn0KPHA+VGhlIGFkbWluX3RleHQgZmllbGQganVzdCBhZGRzIHRleHQgaW50byB0aGUgYWRtaW4gcGFnZS48L3A+Cgo8ZmllbGRzZXQ+CiAgICB7JGZpZWxkZGVmLT5nZXRfZGVtb19pbnB1dChbJ3RleHQnPT4nU2ltcGx5IGFkZCBzb21lIHRleHQgaW50byB0aGUgYWRtaW4gcGFnZXMgdG8gZ2l2ZSBzb21lIGd1aWRhbmNlIHRvIHRoZSBlZGl0b3JzLCBvciB3aGF0ZXZlciBlbHNlIHlvdSB3YW50IHJlYWxseSA6KS4nXSl9CjwvZmllbGRzZXQ+Cgo8cHJlPntsaXRlcmFsfXtjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1hZG1pbl90ZXh0IHRleHQ9J1NpbXBseSBhZGQgc29tZSB0ZXh0IGludG8gdGhlIGFkbWluIHBhZ2VzIHRvIGdpdmUgc29tZSBndWlkYW5jZSB0byB0aGUgZWRpdG9ycywgb3Igd2hhdGV2ZXIgZWxzZSB5b3Ugd2FudCByZWFsbHkgOikuJyBibG9jaz10ZXN0MTYgbGFiZWw9JzE2OiBUZXh0J317L2xpdGVyYWx9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnYWRtaW5fdGV4dCcsIGFsaWFzOiAnPGI+dGV4dDwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPnRleHQgKHJlcXVpcmVkKSAtIHRleHQgaW4gYWRtaW4sIGNhbiBpbmNsdWRlIGh0bWwgKGFkZCBpbmZvcm1hdGlvbiBmb3IgdXNlcnMpPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/admin_text/input.ecb2fd_admin_text.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2FkbWluX3RleHQudHBsIC0gdjEuMCAtIDI1SnVuMjIgCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKip9CntpZiAhZW1wdHkoJGRlc2NyaXB0aW9uKX0KICAgICAgICB7JGRlc2NyaXB0aW9ufTxicj4Key9pZn0KICAgICAgICB7JHRleHR9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/checkbox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/checkbox/class.ecb2fd_checkbox.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfY2hlY2tib3ggZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCk7CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgl9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBhbGxvd2VkIHBhcmFtZXRlcnMgZm9yIHRoaXMgZmllbGQgdHlwZQogICAgICoKICAgICAqICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzIC0gYXJyYXkgb2YgcGFyYW1ldGVyX25hbWVzID0+IFsgZGVmYXVsdF92YWx1ZSwgZmlsdGVyX3R5cGUgXQogICAgICogICAgICBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklORywgRklMVEVSX1ZBTElEQVRFX0lOVCwgRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4sIEZJTFRFUl9TQU5JVElaRV9FTUFJTCAKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZF9wYXJhbWV0ZXJzKCkgCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzID0gWwogICAgICAgICAgICAnZGVmYXVsdF92YWx1ZScgPT4gJ2RlZmF1bHQnCiAgICAgICAgXTsKICAgICAgICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAnbGFiZWwnICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnaW5saW5lX2xhYmVsJyAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnZGVmYXVsdCcgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLCAKICAgICAgICAgICAgJ2FkbWluX2dyb3VwcycgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IEZJTFRFUl9ERUZBVUxUXQogICAgICAgIF07CiAgICAgICAgLy8gJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzID0gWyAnYWxpYXMnID0+ICdwYXJhbWV0ZXInIF07CiAgICAgICAgLy8gJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyA9IEZBTFNFOyAgICAvLyBkZWZhdWx0OiB0cnVlCgogICAgfQoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBjb21wbGV0ZSBjb250ZW50IGJsb2NrIAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKSAKICAgIHsKICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICYmIAogICAgICAgICAgICAgISR0aGlzLT5pc192YWxpZF9ncm91cF9tZW1iZXIoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lY2IyX2hpZGRlbl9maWVsZCgpOyAKICAgICAgICB9CgogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAnc3RyaW5nOicuJHRoaXMtPmdldF90ZW1wbGF0ZSgpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndmFsdWUnLCAkdGhpcy0+dmFsdWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdpbmxpbmVfbGFiZWwnLCAkdGhpcy0+b3B0aW9uc1snaW5saW5lX2xhYmVsJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdkZXNjcmlwdGlvbicsICR0aGlzLT5vcHRpb25zWydkZXNjcmlwdGlvbiddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnbGFiZWwnLCAkdGhpcy0+b3B0aW9uc1snbGFiZWwnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2lzX3N1Yl9maWVsZCcsICR0aGlzLT5pc19zdWJfZmllbGQgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdkZWZhdWx0JywgJHRoaXMtPm9wdGlvbnNbJ2RlZmF1bHQnXSApOwogICAgICAgIGlmICggJHRoaXMtPmlzX3N1Yl9maWVsZCApIHsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViX3Jvd19udW1iZXInLCAkdGhpcy0+c3ViX3Jvd19udW1iZXIgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViRmllbGROYW1lJywgJHRoaXMtPnN1Yl9wYXJlbnRfYmxvY2suJ1tyXycuJHRoaXMtPnN1Yl9yb3dfbnVtYmVyLiddWycuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZS4nXScgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViRmllbGRJZCcsICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrLidfcl8nLiR0aGlzLT5zdWJfcm93X251bWJlci4nXycuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZSApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/checkbox/help.ecb2fd_checkbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfY2hlY2tib3gudHBsICp9CjxwPlRoZSBjaGVja2JveCBmaWVsZCBjcmVhdGVzIGEgc2ltcGxlIGNoZWNrLWFibGUgaW5wdXQuPC9wPgoKPGZpZWxkc2V0PgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij5UZXN0IGNoZWNrYm94PC9wPgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWydkZWZhdWx0Jz0+MV0pfQo8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9Y2hlY2tib3ggYmxvY2s9dGVzdDUgbGFiZWw9J1Rlc3QgY2hlY2tib3gnIGRlZmF1bHQ9MX17L2xpdGVyYWx9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnY2hlY2tib3gnPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmlubGluZV9sYWJlbCAob3B0aW9uYWwpIC0gYWRkcyBhIGNsaWNrYWJsZSBpbmxpbmUgbGFiZWwgdG8gdGhlIGNoZWNrYm94LiBUaXA6IElmIHlvdSBhZGQgbGFiZWw9JyZhbXA7bmJzcDsnIHRoZSBsYWJlbCBhYm92ZSB0aGUgY2hlY2tib3ggd2lsbCBiZSBoaWRkZW48L2xpPgogICAgPGxpPmRlZmF1bHQgKG9wdGlvbmFsKSAtIChhbGlhczogJzxiPmRlZmF1bHRfdmFsdWU8L2I+JykgLSBpbml0aWFsIHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZTwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+Cgo8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPlNhbXBsZSBjaGVja2JveCB3aXRoIGlubGluZV9sYWJlbCAtIHVzZSAnaW5saW5lX2xhYmVsPSJpbmxpbmUgbGFiZWwgZm9yIGNoZWNrYm94IiBsYWJlbD0iJmFtcDtuYnNwOyInIDwvbGVnZW5kPgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWydpbmxpbmVfbGFiZWwnPT4iaW5saW5lIGxhYmVsIGZvciBjaGVja2JveCIsICdsYWJlbCc9PiImYW1wO25ic3A7IiwgJ2RlZmF1bHQnPT4xXSl9CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/checkbox/input.ecb2fd_checkbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2NoZWNrYm94LnRwbCAtIHYxLjAgLSAyNUp1bjIyIAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7aWYgIWVtcHR5KCRkZXNjcmlwdGlvbil9CiAgICAgICAgeyRkZXNjcmlwdGlvbn08YnI+CnsvaWZ9Cgp7aWYgJGlzX3N1Yl9maWVsZH0KICAgIHtpZiBpc19udWxsKCRzdWJfcm93X251bWJlcil9eyogb3V0cHV0IHRlbXBsYXRlIGZpZWxkICp9CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iIiB2YWx1ZT0iMCI+CiAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSIiIGlkPSIiIHZhbHVlPSIxIiBjbGFzcz0iY21zX2NoZWNrYm94IHtpZiAkaW5saW5lX2xhYmVsfWlubGluZS1sYWJlbCBlY2IyLWhpZGUtbGFiZWx7L2lmfSByZXBlYXRlci1maWVsZCIge2lmICRkZWZhdWx0fWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gZGF0YS1yZXBlYXRlcj0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIGRhdGEtZmllbGQtbmFtZT0ieyRibG9ja19uYW1lfSI+CiAgICAgICAge2lmICRpbmxpbmVfbGFiZWx9PGxhYmVsIGZvcj0iIj57JGlubGluZV9sYWJlbH0mbmJzcDs8L2xhYmVsPnsvaWZ9CgogICAge2Vsc2V9ICAgIAogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Inskc3ViRmllbGROYW1lfSIgdmFsdWU9IjAiPgogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRzdWJGaWVsZE5hbWV9IiBpZD0ieyRzdWJGaWVsZElkfSIgdmFsdWU9IjEiIGNsYXNzPSJjbXNfY2hlY2tib3ggcmVwZWF0ZXItZmllbGQge2lmICRpbmxpbmVfbGFiZWx9aW5saW5lLWxhYmVsIGVjYjItaGlkZS1sYWJlbHsvaWZ9IiB7aWYgJHZhbHVlfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0+CiAgICAgICAge2lmICRpbmxpbmVfbGFiZWx9PGxhYmVsIGZvcj0ieyRzdWJGaWVsZElkfSI+eyRpbmxpbmVfbGFiZWx9Jm5ic3A7PC9sYWJlbD57L2lmfQoKICAgIHsvaWZ9CgoKe2Vsc2V9CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRibG9ja19uYW1lfSIgdmFsdWU9IjAiPgogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InskYmxvY2tfbmFtZX0iIGNsYXNzPSJjbXNfY2hlY2tib3h7aWYgJGlubGluZV9sYWJlbH0gaW5saW5lLWxhYmVsIGVjYjItaGlkZS1sYWJlbHsvaWZ9IiBuYW1lPSJ7JGJsb2NrX25hbWV9IiB2YWx1ZT0iMSIge2lmICR2YWx1ZX1jaGVja2VkPSJjaGVja2VkInsvaWZ9PgogICAge2lmICRpbmxpbmVfbGFiZWx9CiAgICAgICAgPGxhYmVsIGZvcj0ieyRibG9ja19uYW1lfSI+IDxiPnskaW5saW5lX2xhYmVsfTwvYj48L2xhYmVsPgogICAgey9pZn0KCnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/color_picker/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/color_picker/class.ecb2fd_color_picker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfY29sb3JfcGlja2VyIGV4dGVuZHMgZWNiMl9GaWVsZERlZkJhc2UgCnsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQ9MCkgCgl7CQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQpOwoKICAgICAgICAkdGhpcy0+Z2V0X3ZhbHVlcygkdmFsdWUpOyAgICAgICAgICAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKCiAgICAgICAgJHRoaXMtPnNldF9maWVsZF9wYXJhbWV0ZXJzKCk7CgogICAgICAgICR0aGlzLT5pbml0aWFsaXNlX29wdGlvbnMoJHBhcmFtcyk7ICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAogICAgICAgIAoJfQoKCgogICAgLyoqCiAgICAgKiAgc2V0cyB0aGUgYWxsb3dlZCBwYXJhbWV0ZXJzIGZvciB0aGlzIGZpZWxkIHR5cGUKICAgICAqCiAgICAgKiAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyAtIGFycmF5IG9mIHBhcmFtZXRlcl9uYW1lcyA9PiBbIGRlZmF1bHRfdmFsdWUsIGZpbHRlcl90eXBlIF0KICAgICAqICAgICAgc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkcsIEZJTFRFUl9WQUxJREFURV9JTlQsIEZJTFRFUl9WQUxJREFURV9CT09MRUFOLCBGSUxURVJfU0FOSVRJWkVfRU1BSUwgCiAgICAgKiAgICAgIHNlZTogaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZmlsdGVyLmZpbHRlcnMucGhwCiAgICAgKiAgJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyAtIG9wdGlvbmFsbHkgYWxsb3cgYW55IG90aGVyIHBhcmFtZXRlcnMgdG8gYmUgaW5jbHVkZWQsIGUuZy4gbW9kdWxlIGNhbGxzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGRfcGFyYW1ldGVycygpIAogICAgewogICAgICAgICR0aGlzLT5wYXJhbWV0ZXJfYWxpYXNlcyA9IFsKICAgICAgICAgICAgJ2RlZmF1bHRfdmFsdWUnID0+ICdkZWZhdWx0JwogICAgICAgIF07CiAgICAgICAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ3NpemUnICAgICAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+IDEwLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ2xhYmVsJyAgICAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdub19oYXNoJyAgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiBGQUxTRSwgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnY2xlYXJfY3NzX2NhY2hlJyAgID0+IFsnZGVmYXVsdCcgPT4gRkFMU0UsICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9CT09MRUFOXSwKICAgICAgICAgICAgJ2RlZmF1bHQnICAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sIAogICAgICAgICAgICAnYWRtaW5fZ3JvdXBzJyAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfREVGQVVMVF0KICAgICAgICBdOwogICAgICAgIC8vICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgPSBGQUxTRTsgICAgLy8gZGVmYXVsdDogdHJ1ZQoKICAgIH0KCgogICAgLyoqCiAgICAgKiAgQHJldHVybiBzdHJpbmcgY29tcGxldGUgY29udGVudCBibG9jayAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX2lucHV0KCkgCiAgICB7CiAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSAmJiAKICAgICAgICAgICAgICEkdGhpcy0+aXNfdmFsaWRfZ3JvdXBfbWVtYmVyKCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZWNiMl9oaWRkZW5fZmllbGQoKTsgCiAgICAgICAgfQoKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICRjbGFzcyA9ICdjb2xvcnBpY2tlcic7CiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAnc3RyaW5nOicuJHRoaXMtPmdldF90ZW1wbGF0ZSgpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdibG9ja19uYW1lJywgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbHVlJywgJHRoaXMtPnZhbHVlICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdhbGlhcycsICR0aGlzLT5hbGlhcyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdzaXplJywgJHRoaXMtPm9wdGlvbnNbJ3NpemUnXSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdub19oYXNoJywgJHRoaXMtPm9wdGlvbnNbJ25vX2hhc2gnXSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdkZXNjcmlwdGlvbicsICR0aGlzLT5vcHRpb25zWydkZXNjcmlwdGlvbiddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnbGFiZWwnLCAkdGhpcy0+b3B0aW9uc1snbGFiZWwnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2lzX3N1Yl9maWVsZCcsICR0aGlzLT5pc19zdWJfZmllbGQgKTsKICAgICAgICBpZiAoICR0aGlzLT5pc19zdWJfZmllbGQgKSB7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1Yl9yb3dfbnVtYmVyJywgJHRoaXMtPnN1Yl9yb3dfbnVtYmVyICk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1YkZpZWxkTmFtZScsICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrLidbcl8nLiR0aGlzLT5zdWJfcm93X251bWJlci4nXVsnLgogICAgICAgICAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUuJ10nICk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1YkZpZWxkSWQnLCAkdGhpcy0+c3ViX3BhcmVudF9ibG9jay4nX3JfJy4kdGhpcy0+c3ViX3Jvd19udW1iZXIuJ18nLgogICAgICAgICAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAgICAgJGNsYXNzIC49ICcgcmVwZWF0ZXItZmllbGQnOwogICAgICAgIH0KICAgICAgICAkdHBsLT5hc3NpZ24oJ2NsYXNzJywgJGNsYXNzKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/color_picker/help.ecb2fd_color_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfY29sb3JfcGlja2VyLnRwbCAqfQo8cD5UaGUgY29sb3JfcGlja2VyIGZpZWxkIHByb3ZpZGVzIGEgc2ltcGxlIG9wdGlvbiBmb3Igc2VsZWN0aW5nIGEgSEVYIGNvbG9yIGNvZGUuPC9wPgoKPGZpZWxkc2V0PgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWyAnZGVmYXVsdCc9PicjMzMzOGM0J10pfQo8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9Y29sb3JfcGlja2VyIGJsb2NrPXRlc3Q3IGxhYmVsPSdDb2xvcicgZGVmYXVsdD0nIzMzMzhjNCd9ey9saXRlcmFsfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ2NvbG9yX3BpY2tlcic8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+c2l6ZSAob3B0aW9uYWwpIC0gZGVmYXVsdCAxMDwvbGk+CiAgICA8bGk+bm9faGFzaCAob3B0aW9uYWwpIC0gaWYgc2V0IHRoZSBoZXggdmFsdWUgZGlzcGxheWVkIGFuZCByZXR1cm5lZCBkb2VzIG5vdCBpbmNsdWRlIGEgJyMnPC9saT4KICAgIDxsaT5jbGVhcl9jc3NfY2FjaGUgKG9wdGlvbmFsKSAtIGlmIHNldCB0aGUgY3NzIGNhY2hlIGlzIHJlZnJlc2hlZCBpZiB0aGUgY29sb3IgaXMgY2hhbmdlZDwvbGk+CiAgICA8bGk+ZGVmYXVsdCAob3B0aW9uYWwpIC0gKGFsaWFzOiAnPGI+ZGVmYXVsdF92YWx1ZTwvYj4nKSAtIGluaXRpYWwgdmFsdWUgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4K]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/color_picker/input.ecb2fd_color_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2NvbG9yX3BpY2tlci50cGwgLSB2MS4wIC0gMjVKdW4yMiAKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0Ke2lmICFlbXB0eSgkZGVzY3JpcHRpb24pfQogICAgICAgIHskZGVzY3JpcHRpb259PGJyPgp7L2lmfQoKe2lmICRpc19zdWJfZmllbGR9CiAgICB7aWYgaXNfbnVsbCgkc3ViX3Jvd19udW1iZXIpfXsqIG91dHB1dCB0ZW1wbGF0ZSBmaWVsZCAqfQogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSIiIGlkPSIiIGNsYXNzPSJjb2xvcnBpY2tlci10ZW1wbGF0ZSByZXBlYXRlci1maWVsZCIgc2l6ZT0ieyRzaXplfSIgdmFsdWU9InskdmFsdWV9IiAgZGF0YS1yZXBlYXRlcj0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIGRhdGEtZmllbGQtbmFtZT0ieyRibG9ja19uYW1lfSIge2lmICFlbXB0eSgkbm9faGFzaCl9IGRhdGEtbm8taGFzaD0ieyRub19oYXNofSJ7L2lmfS8+CgogICAge2Vsc2V9ICAgIAogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JHN1YkZpZWxkTmFtZX0iIGlkPSJ7JHN1YkZpZWxkSWR9IiBjbGFzcz0ieyRjbGFzc30iIHNpemU9Inskc2l6ZX0iIHZhbHVlPSJ7JHZhbHVlfSIge2lmICFlbXB0eSgkbm9faGFzaCl9IGRhdGEtbm8taGFzaD0ieyRub19oYXNofSJ7L2lmfSAvPgoKICAgIHsvaWZ9Cgp7ZWxzZX0KICAgICAgICA8aW5wdXQgY2xhc3M9InskY2xhc3N9IiB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGJsb2NrX25hbWV9IiBpZD0ieyRhbGlhc30iIHNpemU9Inskc2l6ZX0iIHZhbHVlPSJ7JHZhbHVlfSIge2lmICFlbXB0eSgkbm9faGFzaCl9IGRhdGEtbm8taGFzaD0ieyRub19oYXNofSJ7L2lmfSAvPgoKey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/date_time_picker/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/date_time_picker/class.ecb2fd_date_time_picker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfZGF0ZV90aW1lX3BpY2tlciBleHRlbmRzIGVjYjJfRmllbGREZWZCYXNlIAp7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkPTApIAoJewkKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkKTsKCiAgICAgICAgJHRoaXMtPmdldF92YWx1ZXMoJHZhbHVlKTsgICAgICAgICAgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCgogICAgICAgICR0aGlzLT5zZXRfZmllbGRfcGFyYW1ldGVycygpOwoKICAgICAgICAkdGhpcy0+aW5pdGlhbGlzZV9vcHRpb25zKCRwYXJhbXMpOyAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKICAgICAgICAKCX0KCgoKICAgIC8qKgogICAgICogIHNldHMgdGhlIGFsbG93ZWQgcGFyYW1ldGVycyBmb3IgdGhpcyBmaWVsZCB0eXBlCiAgICAgKgogICAgICogICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgLSBhcnJheSBvZiBwYXJhbWV0ZXJfbmFtZXMgPT4gWyBkZWZhdWx0X3ZhbHVlLCBmaWx0ZXJfdHlwZSBdCiAgICAgKiAgICAgIHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HLCBGSUxURVJfVkFMSURBVEVfSU5ULCBGSUxURVJfVkFMSURBVEVfQk9PTEVBTiwgRklMVEVSX1NBTklUSVpFX0VNQUlMIAogICAgICogICAgICBzZWU6IGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2ZpbHRlci5maWx0ZXJzLnBocAogICAgICogICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgLSBvcHRpb25hbGx5IGFsbG93IGFueSBvdGhlciBwYXJhbWV0ZXJzIHRvIGJlIGluY2x1ZGVkLCBlLmcuIG1vZHVsZSBjYWxscwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkX3BhcmFtZXRlcnMoKSAKICAgIHsKICAgICAgICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAnc2l6ZScgICAgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gMjAsICAgICAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ2xhYmVsJyAgICAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnbWF4X2xlbmd0aCcgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gMjAsICAgICAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ2RhdGVfZm9ybWF0JyAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICd5eS1tbS1kZCcsJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAndGltZV9mb3JtYXQnICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJ0hIOm1tJywgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICd0aW1lJyAgICAgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2NoYW5nZV9tb250aCcgICAgICA9PiBbJ2RlZmF1bHQnID0+IEZBTFNFLCAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnY2hhbmdlX3llYXInICAgICAgID0+IFsnZGVmYXVsdCcgPT4gRkFMU0UsICAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfQk9PTEVBTl0sCiAgICAgICAgICAgICd5ZWFyX3JhbmdlJyAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ3Nob3dfdGltZScgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+IEZBTFNFLCAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnZGF0ZV9vbmx5JyAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gRkFMU0UsICAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfQk9PTEVBTl0sCiAgICAgICAgICAgICd0aW1lX29ubHknICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiBGQUxTRSwgICAgICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9CT09MRUFOXSwKICAgICAgICAgICAgJ2FkbWluX2dyb3VwcycgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnZGVzY3JpcHRpb24nICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICAgICAnZmlsdGVyJyA9PiBGSUxURVJfREVGQVVMVF0KICAgICAgICBdOwogICAgICAgICR0aGlzLT5wYXJhbWV0ZXJfYWxpYXNlcyA9IFsgJ3RpbWUnID0+ICdzaG93X3RpbWUnIF07CiAgICAgICAgLy8gJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyA9IEZBTFNFOyAgICAvLyBkZWZhdWx0OiB0cnVlCgogICAgfQoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBjb21wbGV0ZSBjb250ZW50IGJsb2NrIAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKSAKICAgIHsKICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICYmIAogICAgICAgICAgICAgISR0aGlzLT5pc192YWxpZF9ncm91cF9tZW1iZXIoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lY2IyX2hpZGRlbl9maWVsZCgpOyAKICAgICAgICB9CgogICAgICAgIC8vIHNldCAkY2xhc3MgdG8gJ2RhdGV0aW1lcGlja2VyJyAoZGVmYXVsdCksICdkYXRlcGlja2VyJyBvciAndGltZXBpY2tlcicgCiAgICAgICAgJGNsYXNzID0gJ2RhdGV0aW1lcGlja2VyJzsKICAgICAgICBpZiAoICggaXNzZXQoJHRoaXMtPmZpZWxkX2FsaWFzX3VzZWQpICYmICR0aGlzLT5maWVsZF9hbGlhc191c2VkPT0ndGltZXBpY2tlcicgKSB8fAogICAgICAgICAgICAgICAgJHRoaXMtPm9wdGlvbnNbJ3RpbWVfb25seSddICkgewogICAgICAgICAgICAkY2xhc3MgPSAndGltZXBpY2tlcic7CiAgICAgICAgfSBlbHNlaWYgKCAoIGlzc2V0KCR0aGlzLT5maWVsZF9hbGlhc191c2VkKSAmJiAkdGhpcy0+ZmllbGRfYWxpYXNfdXNlZD09J2RhdGVwaWNrZXInICYmIAogICAgICAgICAgICAgICAgISR0aGlzLT5vcHRpb25zWydzaG93X3RpbWUnXSApIHx8ICR0aGlzLT5vcHRpb25zWydkYXRlX29ubHknXSApIHsKICAgICAgICAgICAgJGNsYXNzID0gJ2RhdGVwaWNrZXInOwogICAgICAgIH0KICAgIAogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAnc3RyaW5nOicuJHRoaXMtPmdldF90ZW1wbGF0ZSgpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdibG9ja19uYW1lJywgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbHVlJywgJHRoaXMtPnZhbHVlICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdzaXplJywgJHRoaXMtPm9wdGlvbnNbJ3NpemUnXSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdtYXhfbGVuZ3RoJywgJHRoaXMtPm9wdGlvbnNbJ21heF9sZW5ndGgnXSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0aW1lX2Zvcm1hdCcsICR0aGlzLT5vcHRpb25zWyd0aW1lX2Zvcm1hdCddKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2NoYW5nZV9tb250aCcsICR0aGlzLT5vcHRpb25zWydjaGFuZ2VfbW9udGgnXSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdjaGFuZ2VfeWVhcicsICR0aGlzLT5vcHRpb25zWydjaGFuZ2VfeWVhciddKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3llYXJfcmFuZ2UnLCAkdGhpcy0+b3B0aW9uc1sneWVhcl9yYW5nZSddKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywgJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdsYWJlbCcsICR0aGlzLT5vcHRpb25zWydsYWJlbCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnaXNfc3ViX2ZpZWxkJywgJHRoaXMtPmlzX3N1Yl9maWVsZCApOwogICAgICAgIGlmICggJHRoaXMtPmlzX3N1Yl9maWVsZCApIHsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViX3Jvd19udW1iZXInLCAkdGhpcy0+c3ViX3Jvd19udW1iZXIgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViRmllbGROYW1lJywgJHRoaXMtPnN1Yl9wYXJlbnRfYmxvY2suJ1tyXycuJHRoaXMtPnN1Yl9yb3dfbnVtYmVyLiddWycuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZS4nXScgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViRmllbGRJZCcsICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrLidfcl8nLiR0aGlzLT5zdWJfcm93X251bWJlci4nXycuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZSApOwogICAgICAgICAgICAkY2xhc3MgLj0gJyByZXBlYXRlci1maWVsZCc7CiAgICAgICAgfQogICAgICAgICR0cGwtPmFzc2lnbignY2xhc3MnLCAkY2xhc3MpOyAgCiAgICAgICAgcmV0dXJuICR0cGwtPmZldGNoKCk7CiAgIAogICAgfQoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/date_time_picker/help.ecb2fd_date_time_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfZGF0ZV90aW1lX3BpY2tlci50cGwgKn0KPHA+VGhlIGRhdGVfdGltZV9waWNrZXIgZmllbGQgY3JlYXRlcyBhIHBvcHVwIGZvciBzZWxlY3RpbmcgYSBkYXRlLCBhIHRpbWUsIG9yIGJvdGguPC9wPgoKPGZpZWxkc2V0PgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoKX0KPC9maWVsZHNldD4KCjxwcmU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPWRhdGVfdGltZV9waWNrZXIgYmxvY2s9J3Rlc3Q4JyBsYWJlbD0nRGF0ZSBUaW1lIFBpY2tlcid9ey9saXRlcmFsfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ2RhdGVfdGltZV9waWNrZXInLCBvciBhbGlhczogJzxiPmRhdGVwaWNrZXI8L2I+JywgJzxiPnRpbWVwaWNrZXI8L2I+JzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5zaXplIChvcHRpb25hbCkgLSBzZXRzIHRoZSB3aWR0aCBvZiB0aGUgaHRtbCBpbnB1dCAtIGRlZmF1bHQ6IDIwPC9saT4KICAgIDxsaT5tYXhfbGVuZ3RoIChvcHRpb25hbCkgLSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIC0gZGVmYXVsdDogMTA8L2xpPgogICAgPGxpPnNob3dfdGltZSAob3B0aW9uYWwpIC0gKGFsaWFzOiAnPGI+dGltZTwvYj4nKSBhZGQgdGltZSBwaWNrZXIgLSBkZWZhdWx0OiB0cnVlPC9saT4KICAgIDxsaT5kYXRlX29ubHkgKG9wdGlvbmFsKSAtIG9ubHkgc2hvdyBkYXRlIHBpY2tlciAtIGRlZmF1bHQ6IGZhbHNlPC9saT4KICAgIDxsaT50aW1lX29ubHkgKG9wdGlvbmFsKSAtIG9ubHkgc2hvdyB0aW1lIHBpY2tlciAtIGRlZmF1bHQ6IGZhbHNlPC9saT4KICAgIDxsaT5kYXRlX2Zvcm1hdCAob3B0aW9uYWwpIC0gZGVmYXVsdDogJ3l5LW1tLWRkJzwvbGk+CiAgICA8bGk+dGltZV9mb3JtYXQgKG9wdGlvbmFsKSAtIGRlZmF1bHQ6ICdISDo6c3MnPC9saT4KICAgIDxsaT5jaGFuZ2VfbW9udGggKG9wdGlvbmFsKSAtIHdoZXRoZXIgdGhlIG1vbnRoIHNob3VsZCBiZSByZW5kZXJlZCBhcyBhIGRyb3Bkb3duIGluc3RlYWQgb2YgdGV4dCAtIGRlZmF1bHQ6IGZhbHNlLjwvbGk+CiAgICA8bGk+Y2hhbmdlX3llYXIgKG9wdGlvbmFsKSAtIHdoZXRoZXIgdGhlIHllYXIgc2hvdWxkIGJlIHJlbmRlcmVkIGFzIGEgZHJvcGRvd24gaW5zdGVhZCBvZiB0ZXh0LiBVc2UgdGhlIHllYXJfcmFuZ2Ugb3B0aW9uIHRvIGNvbnRyb2wgd2hpY2ggeWVhcnMgYXJlIG1hZGUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gLSBkZWZhdWx0OiBmYWxzZTwvbGk+CiAgICA8bGk+eWVhcl9yYW5nZSAob3B0aW9uYWwpIC0gdGhlIHJhbmdlIG9mIHllYXJzIGRpc3BsYXllZCBpbiB0aGUgeWVhciBkcm9wLWRvd246IGVpdGhlciByZWxhdGl2ZSB0byB0b2RheSdzIHllYXIgKCItbm46K25uIiksIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgeWVhciAoImMtbm46YytubiIpLCBhYnNvbHV0ZSAoIm5ubm46bm5ubiIpLCBvciBjb21iaW5hdGlvbnMgb2YgdGhlc2UgZm9ybWF0cyAoIm5ubm46LW5uIikgLSBkZWZhdWx0OiAnYy0xMDpjKzEwJzwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+Cgo8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPmRhdGVfdGltZV9waWNrZXIgd2l0aCBkYXRlX29ubHkgLSB1c2UgJ2RhdGVfb25seT0xJzwvbGVnZW5kPgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWydkYXRlX29ubHknPT4xXSl9CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPmRhdGVfdGltZV9waWNrZXIgd2l0aCB0aW1lX29ubHkgLSB1c2UgJ3RpbWVfb25seT0xJzwvbGVnZW5kPgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWyd0aW1lX29ubHknPT4xXSl9CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/date_time_picker/input.ecb2fd_date_time_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2RhdGVfdGltZV9waWNrZXIudHBsIC0gdjEuMCAtIDI1SnVuMjIgCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKip9CntpZiAhZW1wdHkoJGRlc2NyaXB0aW9uKX0KICAgICAgICB7JGRlc2NyaXB0aW9ufTxicj4Key9pZn0KCiAgICAgICAge3N0cmlwfQp7aWYgJGlzX3N1Yl9maWVsZH0KICAgIHtpZiBpc19udWxsKCRzdWJfcm93X251bWJlcil9eyogb3V0cHV0IHRlbXBsYXRlIGZpZWxkICp9CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSIiIG5hbWU9IiIgY2xhc3M9InskY2xhc3N8cmVwbGFjZToncGlja2VyJzoncGlja2VyLXRlbXBsYXRlJ30iIHZhbHVlPSIiIHNpemU9Inskc2l6ZX0iIG1heGxlbmd0aD0ieyRtYXhfbGVuZ3RofSIgZGF0YS1yZXBlYXRlcj0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIGRhdGEtZmllbGQtbmFtZT0ieyRibG9ja19uYW1lfSIKICAgICAgICAgICAge2lmICFlbXB0eSgkZGF0ZV9mb3JtYXQpfSBkYXRhLWRhdGUtZm9ybWF0PSJ7JGRhdGVfZm9ybWF0fSJ7L2lmfQogICAgICAgICAgICB7aWYgIWVtcHR5KCR0aW1lX2Zvcm1hdCl9IGRhdGEtdGltZS1mb3JtYXQ9InskdGltZV9mb3JtYXR9InsvaWZ9CiAgICAgICAgICAgIHtpZiAhZW1wdHkoJGNoYW5nZV9tb250aCl9IGRhdGEtY2hhbmdlLW1vbnRoPSJ7JGNoYW5nZV9tb250aH0iey9pZn0KICAgICAgICAgICAge2lmICFlbXB0eSgkY2hhbmdlX3llYXIpfSBkYXRhLWNoYW5nZS15ZWFyPSJ7JGNoYW5nZV95ZWFyfSJ7L2lmfQogICAgICAgICAgICB7aWYgIWVtcHR5KCR5ZWFyX3JhbmdlKX0gZGF0YS15ZWFyLXJhbmdlPSJ7JHllYXJfcmFuZ2V9InsvaWZ9CiAgICAgICAgLz4KCiAgICB7ZWxzZX0KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Inskc3ViRmllbGRJZH0iIG5hbWU9Inskc3ViRmllbGROYW1lfSIgY2xhc3M9InskY2xhc3N9IiB2YWx1ZT0ieyR2YWx1ZX0iIHNpemU9Inskc2l6ZX0iIG1heGxlbmd0aD0ieyRtYXhfbGVuZ3RofSIKICAgICAgICAgICAge2lmICFlbXB0eSgkZGF0ZV9mb3JtYXQpfSBkYXRhLWRhdGUtZm9ybWF0PSJ7JGRhdGVfZm9ybWF0fSJ7L2lmfQogICAgICAgICAgICB7aWYgIWVtcHR5KCR0aW1lX2Zvcm1hdCl9IGRhdGEtdGltZS1mb3JtYXQ9InskdGltZV9mb3JtYXR9InsvaWZ9CiAgICAgICAgICAgIHtpZiAhZW1wdHkoJGNoYW5nZV9tb250aCl9IGRhdGEtY2hhbmdlLW1vbnRoPSJ7JGNoYW5nZV9tb250aH0iey9pZn0KICAgICAgICAgICAge2lmICFlbXB0eSgkY2hhbmdlX3llYXIpfSBkYXRhLWNoYW5nZS15ZWFyPSJ7JGNoYW5nZV95ZWFyfSJ7L2lmfQogICAgICAgICAgICB7aWYgIWVtcHR5KCR5ZWFyX3JhbmdlKX0gZGF0YS15ZWFyLXJhbmdlPSJ7JHllYXJfcmFuZ2V9InsvaWZ9CiAgICAgICAgLz4KCiAgICB7L2lmfQoKe2Vsc2V9CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJ7JGNsYXNzfSIgbmFtZT0ieyRibG9ja19uYW1lfSIgc2l6ZT0ieyRzaXplfSIgbWF4bGVuZ3RoPSJ7JG1heF9sZW5ndGh9IiAKICAgICAgICAgICAgdmFsdWU9InskdmFsdWV9IgogICAgICAgICAgICB7aWYgIWVtcHR5KCRkYXRlX2Zvcm1hdCl9IGRhdGEtZGF0ZS1mb3JtYXQ9InskZGF0ZV9mb3JtYXR9InsvaWZ9CiAgICAgICAgICAgIHtpZiAhZW1wdHkoJHRpbWVfZm9ybWF0KX0gZGF0YS10aW1lLWZvcm1hdD0ieyR0aW1lX2Zvcm1hdH0iey9pZn0KICAgICAgICAgICAge2lmICFlbXB0eSgkY2hhbmdlX21vbnRoKX0gZGF0YS1jaGFuZ2UtbW9udGg9InskY2hhbmdlX21vbnRofSJ7L2lmfQogICAgICAgICAgICB7aWYgIWVtcHR5KCRjaGFuZ2VfeWVhcil9IGRhdGEtY2hhbmdlLXllYXI9InskY2hhbmdlX3llYXJ9InsvaWZ9CiAgICAgICAgICAgIHtpZiAhZW1wdHkoJHllYXJfcmFuZ2UpfSBkYXRhLXllYXItcmFuZ2U9InskeWVhcl9yYW5nZX0iey9pZn0KICAgICAgICAvPgp7L2lmfQp7L3N0cmlwfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/dropdown/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/dropdown/class.ecb2fd_dropdown.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfZHJvcGRvd24gZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCk7CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgl9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBhbGxvd2VkIHBhcmFtZXRlcnMgZm9yIHRoaXMgZmllbGQgdHlwZQogICAgICoKICAgICAqICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzIC0gYXJyYXkgb2YgcGFyYW1ldGVyX25hbWVzID0+IFsgZGVmYXVsdF92YWx1ZSwgZmlsdGVyX3R5cGUgXQogICAgICogICAgICBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklORywgRklMVEVSX1ZBTElEQVRFX0lOVCwgRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4sIEZJTFRFUl9TQU5JVElaRV9FTUFJTCAKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMgCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGRfcGFyYW1ldGVycygpIAogICAgewogICAgICAgICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgPSBGQUxTRTsgICAgLy8gZGVmYXVsdDogVFJVRSAtIG5lZWRlZCBmb3IgbW9kdWxlIGNhbGwKICAgICAgICAkdGhpcy0+cGFyYW1ldGVyX2FsaWFzZXMgPSBbCiAgICAgICAgICAgICdnY2InID0+ICd0ZW1wbGF0ZScsCiAgICAgICAgICAgICdkZWZhdWx0X3ZhbHVlJyA9PiAnZGVmYXVsdCcKICAgICAgICBdOwogICAgICAgICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICd2YWx1ZXMnICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sIAogICAgICAgICAgICAnZGVmYXVsdCcgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLCAKICAgICAgICAgICAgJ2xhYmVsJyAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwgCiAgICAgICAgICAgICdzaXplJyAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+IDUsICAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ211bHRpcGxlJyAgICAgID0+IFsnZGVmYXVsdCcgPT4gRkFMU0UsICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9CT09MRUFOXSwKICAgICAgICAgICAgJ2ZpcnN0X3ZhbHVlJyAgID0+IFsnZGVmYXVsdCcgPT4gRkFMU0UsICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9CT09MRUFOXSwKICAgICAgICAgICAgJ2NvbXBhY3QnICAgICAgID0+IFsnZGVmYXVsdCcgPT4gRkFMU0UsICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9CT09MRUFOXSwKICAgICAgICAgICAgJ2ZsaXBfdmFsdWVzJyAgID0+IFsnZGVmYXVsdCcgPT4gRkFMU0UsICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9CT09MRUFOXSwKICAgICAgICAgICAgJ21vZCcgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ3VkdCcgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ3RlbXBsYXRlJyAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2N1c3RvbWdzX2ZpZWxkJz0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2FkbWluX2dyb3VwcycgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IEZJTFRFUl9ERUZBVUxUXQogICAgICAgIF07CiAgICAgICAgLy8gJHRoaXMtPnVzZV9qc29uX2Zvcm1hdCA9IFRSVUU7ICAgIC8vIGRlZmF1bHQ6IEZBTFNFIC0gY2FuIG92ZXJyaWRlIGUuZy4gJ2dyb3VwcycgdHlwZQogICAgfQoKCgovLwoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGNvbXBsZXRlIGNvbnRlbnQgYmxvY2sgCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja19pbnB1dCgpIAogICAgewogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYgCiAgICAgICAgICAgICAhJHRoaXMtPmlzX3ZhbGlkX2dyb3VwX21lbWJlcigkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7IAogICAgICAgIH0KCiAgICAgICAgLy8gZ2V0IHRoZSBkcm9wZG93biB2YWx1ZXMvb3B0aW9ucwogICAgICAgIGlmICggJHRoaXMtPm9wdGlvbnNbJ21vZCddICkgeyAgCiAgICAgICAgICAgIC8vIGNhbGwgbW9kdWxlIHRvIGdldCB2YWx1ZXMgKGNvbW1hIHNlcGFyYXRlZCBsaXN0KQogICAgICAgICAgICAkZXhjbHVkZV9vcHRpb25zID0gWydzaXplJywnbXVsdGlwbGUnLCd2YWx1ZXMnLCdkZWZhdWx0X3ZhbHVlJywnZmlyc3RfdmFsdWUnLCdkZXNjcmlwdGlvbicsCiAgICAgICAgICAgICAgICAnY29tcGFjdCcsJ2ZpZWxkJywnbW9kJywnZmxpcF92YWx1ZXMnLCd0ZW1wbGF0ZScsJ3VkdCcsJ2diYycsJ2N1c3RvbWdzX2ZpZWxkJywnYXNzaWduJ107CiAgICAgICAgICAgICRvcHRpb25zID0gJHRoaXMtPmdldF92YWx1ZXNfZnJvbV9tb2R1bGUoJHRoaXMtPm9wdGlvbnNbJ21vZCddLCBbXSwgJGV4Y2x1ZGVfb3B0aW9ucyk7CgogICAgICAgIH0gZWxzZWlmICggJHRoaXMtPm9wdGlvbnNbJ3VkdCddICkgeyAgCiAgICAgICAgICAgIC8vIHJ1biBVRFQgdG8gZ2V0IHZhbHVlcyAoYXJyYXkgb3IgY29tbWEgc2VwYXJhdGVkIGxpc3QpCiAgICAgICAgICAgICRvcHRpb25zID0gJHRoaXMtPmdldF92YWx1ZXNfZnJvbV91ZHQoICR0aGlzLT5vcHRpb25zWyd1ZHQnXSApOwogICAgICAgICAgICBpZiAoJHRoaXMtPmVycm9yKSByZXR1cm4gJHRoaXMtPm1vZC0+ZXJyb3JfbXNnKCR0aGlzLT5lcnJvcik7CgogICAgICAgIH0gZWxzZWlmICggJHRoaXMtPm9wdGlvbnNbJ3RlbXBsYXRlJ10gKSB7ICAKICAgICAgICAgICAgLy8gc21hcnR5IHRlbXBsYXRlIHRvIGdldCB2YWx1ZXMgKGFycmF5IG9yIGNvbW1hIHNlcGFyYXRlZCBsaXN0KQogICAgICAgICAgICAkb3B0aW9ucyA9ICR0aGlzLT5nZXRfdmFsdWVzX2Zyb21fdGVtcGxhdGUoICR0aGlzLT5vcHRpb25zWyd0ZW1wbGF0ZSddICk7CiAgICAgICAgICAgIGlmICgkdGhpcy0+ZXJyb3IpIHJldHVybiAkdGhpcy0+bW9kLT5lcnJvcl9tc2coJHRoaXMtPmVycm9yKTsKCiAgICAgICAgfSBlbHNlaWYgKCAkdGhpcy0+b3B0aW9uc1snY3VzdG9tZ3NfZmllbGQnXSApIHsgIAogICAgICAgICAgICAvLyBDdXN0b21HUyBmaWVsZCB0byBnZXQgdmFsdWVzIGZyb20gKG5ld2xpbmUgb3IgY29tbWEgc2VwYXJhdGVkIGxpc3QpCiAgICAgICAgICAgICRvcHRpb25zID0gJHRoaXMtPmdldF92YWx1ZXNfZnJvbV9jdXN0b21ncyggJHRoaXMtPm9wdGlvbnNbJ2N1c3RvbWdzX2ZpZWxkJ10gKTsKICAgICAgICAgICAgaWYgKCR0aGlzLT5lcnJvcikgcmV0dXJuICR0aGlzLT5tb2QtPmVycm9yX21zZygkdGhpcy0+ZXJyb3IpOwoKICAgICAgICB9IGVsc2UgeyAKICAgICAgICAgICAgLy8gdXNlIHByb3ZpZGVkICd2YWx1ZXMnIChjb21tYSBzZXBhcmF0ZWQgbGlzdCkKICAgICAgICAgICAgJG9wdGlvbnMgPSAkdGhpcy0+Z2V0X2FycmF5X2Zyb21fY3NsKCAkdGhpcy0+b3B0aW9uc1sndmFsdWVzJ10gKTsKICAgICAgICAKICAgICAgICB9CgogICAgICAgIC8vIGFwcGx5IHNvbWUgb3RoZXIgcGFyYW1ldGVycwogICAgICAgIGlmICggJHRoaXMtPm9wdGlvbnNbJ2ZsaXBfdmFsdWVzJ10gJiYgIWVtcHR5KCRvcHRpb25zKSApIHsgCiAgICAgICAgICAgICRvcHRpb25zID0gYXJyYXlfZmxpcCgkb3B0aW9ucyk7CiAgICAgICAgfQogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydjb21wYWN0J10pICkgewogICAgICAgICAgICAkdGhpcy0+b3B0aW9uc1snc2l6ZSddID0gY291bnQoJG9wdGlvbnMpOwogICAgICAgIH0KICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+b3B0aW9uc1snZmlyc3RfdmFsdWUnXSkgKSB7CiAgICAgICAgICAgICRvcHRpb25zID0gYXJyYXkoICcnID0+ICR0aGlzLT5vcHRpb25zWydmaXJzdF92YWx1ZSddICkgKyAkb3B0aW9uczsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdtb2QnLCAkdGhpcy0+bW9kICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnZGVzY3JpcHRpb24nLCAkdGhpcy0+b3B0aW9uc1snZGVzY3JpcHRpb24nXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ211bHRpcGxlJywgJHRoaXMtPm9wdGlvbnNbJ211bHRpcGxlJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdjb21wYWN0JywgJHRoaXMtPm9wdGlvbnNbJ2NvbXBhY3QnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3NpemUnLCAkdGhpcy0+b3B0aW9uc1snc2l6ZSddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnc2VsZWN0ZWQnLCAkdGhpcy0+dmFsdWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdsYWJlbCcsICR0aGlzLT5vcHRpb25zWydsYWJlbCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnaXNfc3ViX2ZpZWxkJywgJHRoaXMtPmlzX3N1Yl9maWVsZCApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3N1Yl9wYXJlbnRfYmxvY2snLCAkdGhpcy0+c3ViX3BhcmVudF9ibG9jayApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3N1Yl9yb3dfbnVtYmVyJywgJHRoaXMtPnN1Yl9yb3dfbnVtYmVyICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnbm90X3N1Yl9maWVsZF90ZW1wbGF0ZScsICFpc19udWxsKCR0aGlzLT5zdWJfcm93X251bWJlcikgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICd1c2VfanNvbl9mb3JtYXQnLCAkdGhpcy0+dXNlX2pzb25fZm9ybWF0ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnZGVmYXVsdCcsICR0aGlzLT5vcHRpb25zWydkZWZhdWx0J10gKTsKCiAgICAgICAgaWYgKCAkdGhpcy0+b3B0aW9uc1snbXVsdGlwbGUnXSApIHsKICAgICAgICAgICAgJHNlbGVjdGVkX3ZhbHVlcyA9IFtdOwogICAgICAgICAgICAkc2VsZWN0ZWRfdGV4dCA9IFtdOwogICAgICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+dmFsdWVzKSApIHsKICAgICAgICAgICAgICAgICRzZWxlY3RlZF92YWx1ZXMgPSAkdGhpcy0+dmFsdWVzOwogICAgICAgICAgICB9IGVsc2VpZiAoICFlbXB0eSgkdGhpcy0+dmFsdWUpICkgewogICAgICAgICAgICAgICAgJHNlbGVjdGVkX3ZhbHVlcyA9IGV4cGxvZGUoJywnLCAkdGhpcy0+dmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvcmVhY2ggKCRzZWxlY3RlZF92YWx1ZXMgYXMgJHZhbHVlKSB7CiAgICAgICAgICAgICAgICAkc2VsZWN0ZWRfdGV4dFtdID0gaXNzZXQoJG9wdGlvbnNbJHZhbHVlXSkgPyAkb3B0aW9uc1skdmFsdWVdIDogJyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHNlbGVjdGVkX3RleHQgPSBpbXBsb2RlKCcsICcsICRzZWxlY3RlZF90ZXh0KTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc2VsZWN0ZWRfdmFsdWVzJywgJHNlbGVjdGVkX3ZhbHVlcyApOyAgLy8gYXJyYXkKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc2VsZWN0ZWRfdGV4dCcsICRzZWxlY3RlZF90ZXh0ICk7ICAgICAgLy8gdGV4dAogICAgICAgIH0KCiAgICAgICAgJHRwbC0+YXNzaWduKCdvcHRpb25zJywgJG9wdGlvbnMgKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKCiAgICAvKioKICAgICAqICBEYXRhIGVudGVyZWQgYnkgdGhlIGVkaXRvciBpcyBwcm9jZXNzZWQgYmVmb3JlIGl0cyBzYXZlZCBpbiBwcm9wcyB0YWJsZQogICAgICogIE1ldGhvZCBJUyBvdmVyaWRkZW4gYnkgdGhpcyBjaGlsZCBjbGFzcywgZS5nLiBnYWxsZXJ5LCBncm91cCwgZHJvcGRvd24KICAgICAqICAKICAgICAqICBAcmV0dXJuIHN0cmluZyBmb3JtYXR0ZWQganNvbiBjb250YWluaW5nIGFsbCBmaWVsZCBkYXRhIHJlYWR5IHRvIGJlIHNhdmVkICYgb3V0cHV0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja192YWx1ZSggJGlucHV0QXJyYXkgKSAKICAgIHsKICAgICAgICBpZiAoISR0aGlzLT5pc19zdWJfZmllbGQpIHsKICAgICAgICAgICAgLy8gcmV0dXJuIGNvbW1hIHNlcGFyYXRlZCBsaXN0CiAgICAgICAgICAgICR2YWx1ZSA9IGltcGxvZGUoJywnLCAkaW5wdXRBcnJheSk7CiAgICAgICAgICAgIHJldHVybiAkdmFsdWU7CiAgICAgICAgfQoKICAgICAgICAvLyBlbHNlIGlzIHN1Yl9maWVsZCBzbyByZXR1cm4gb2JqZWN0CiAgICAgICAgJHRoaXMtPmZpZWxkX29iamVjdCA9ICR0aGlzLT5jcmVhdGVfZmllbGRfb2JqZWN0KCAkaW5wdXRBcnJheSApOwogICAgICAgIHJldHVybiAkdGhpcy0+RUNCMl9qc29uX2VuY29kZV9maWVsZF9vYmplY3QoKTsKICAgIH0KCgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/dropdown/help.ecb2fd_dropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfZHJvcGRvd24udHBsICp9CjxwPkNyZWF0ZXMgYSBkcm9wZG93biAob3Igc2VsZWN0KSB0aGF0IHRoZSBlZGl0b3IgY2FuIGNob29zZSBmcm9tIHRoZSBwcm92aWRlZCBvcHRpb25zLiBUaGUgZHJvcGRvd24gb3B0aW9ucyBjYW4gYmUgZnJvbSBhOiBjb21tYSBzZXBhcmF0ZWQgbGlzdCAodmFsdWVzKSwgbW9kdWxlIGNhbGwgKG1vZCksIFVzZXIgRGVmaW5lZCBUYWcgKHVkdCksIG9yIGEgc21hcnR5IHRlbXBsYXRlICh0ZW1wbGF0ZSAvIHVkdCkuIE9uZSBvZiB0aGVzZSBwYXJhbWV0ZXJzIG11c3QgYmUgdXNlZCAoKikuPC9wPgoKPGZpZWxkc2V0Pgp7JGZpZWxkZGVmLT5nZXRfZGVtb19pbnB1dChbJ3ZhbHVlcyc9PidBcHBsZT1hcHBsZSxPcmFuZ2U9b3JhbmdlLEtpd2lmcnVpdD1raXdpZnJ1aXQnLCAnZmlyc3RfdmFsdWUnPT4nc2VsZWN0IGZydWl0J10pfQo8L2ZpZWxkc2V0PgoKe2xpdGVyYWx9CjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICc8Yj5kcm9wZG93bjwvYj4nLCBvciBhbGlhczogJzxiPnNlbGVjdDwvYj4nLCAnPGI+ZHJvcGRvd25fZnJvbV9tb2R1bGU8L2I+JywgJzxiPmRyb3Bkb3duX2Zyb21fdWR0PC9iPicsICc8Yj5kcm9wZG93bl9mcm9tX2diYzwvYj4nLCAnPGI+ZHJvcGRvd25fZnJvbV9jdXN0b21nczwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPnZhbHVlcyAoKikgLSBjb21tYSBzZXBhcmF0ZWQgc3RyaW5nIG9mICdUZXh0JyBvciAnVGV4dD12YWx1ZScuIEV4YW1wbGU6ICdBcHBsZT1hcHBsZSxPcmFuZ2U9b3JhbmdlLEdyZWVuPWdyZWVuJzxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBibG9jaz1kcm9wZG93bjEgZmllbGQ9ZHJvcGRvd24gdmFsdWVzPSdBcHBsZT1hcHBsZSxPcmFuZ2U9b3JhbmdlJyBmaXJzdF92YWx1ZT0nc2VsZWN0IGZydWl0JyBsYWJlbD0nRnJ1aXQnfTwvcHJlPgogICAgPC9saT4KICAgIDxsaT5tb2QgKCopIC0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgbW9kdWxlIHRvIGNhbGwgdG8gZ2V0IHRoZSBvcHRpb24gdmFsdWVzLiBUaGUgbW9kdWxlIGNhbGwgbmVlZHMgdG8gZWl0aGVyOiBzZXQgYW4gYXJyYXkgJG9wdGlvbnMgb2YgJ3ZhbHVlJyA9PiAnVGV4dCcgd2l0aCBzY29wZT1nbG9iYWwsIG9yIHJldHVybiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mICdUZXh0LC4uLicgb3IgJ1RleHQ9dmFsdWUsLi4uJy4gQW55IGFkZGl0aW9uYWwgcGFyYW1ldGVycyBhcmUgYWxzbyBwYXNzZWQgb250byB0aGUgc3BlY2lmaWVkIG1vZHVsZS4gWW91IG1heSB3YW50IHRvIGluY2x1ZGUgJ2FjdGlvbicgYW5kICd0ZW1wbGF0ZScgcGFyYW1ldGVycy48YnI+CiAgICAgICAgPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgYmxvY2s9ZHJvcGRvd24yIGZpZWxkPWRyb3Bkb3duIG1vZD1MSVNFUHJvamVjdHMgdGVtcGxhdGVfc3VtbWFyeT0naXRlbV9kcm9wZG93bicgcGFnZWxpbWl0PTIgbGFiZWw9J0Ryb3Bkb3duIC0gZnJvbSBtb2R1bGUnfTwvcHJlPgogICAgPC9saT4KICAgIDxsaT51ZHQgKCopIC0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgVXNlciBEZWZpbmVkIFRhZyB0byBjYWxsIHRvIGdldCB0aGUgb3B0aW9uIHZhbHVlcy4gVGhlIFVEVCBzaG91bGQgZWl0aGVyIHJldHVybiBhbiBhcnJheSBvZiAnVGV4dCcgPT4gJ3ZhbHVlJywgb3IgcmV0dXJuIGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiAnVGV4dCcgb3IgJ1RleHQ9dmFsdWUnLjxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBibG9jaz1kcm9wZG93bjMgZmllbGQ9ZHJvcGRvd24gdWR0PSdlY2IyX3Rlc3RfdWR0X29wdGlvbnMnIGxhYmVsPSdEcm9wZG93biAtIGZyb20gdWR0J308L3ByZT4KICAgIDwvbGk+CiAgICA8bGk+dGVtcGxhdGUgKCopIC0gKGFsaWFzOiAnPGI+Z2NiPC9iPicpIC0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgc21hcnR5IHRlbXBsYXRlIGZyb20gRGVzaWduIE1hbmFnZXIgdG8gY2FsbCB0byBnZXQgdGhlIG9wdGlvbiB2YWx1ZXMuIFRoZSB0ZW1wbGF0ZSBjYWxsIG5lZWRzIHRvIGVpdGhlcjogc2V0IGFuIGFycmF5ICRvcHRpb25zIG9mICd2YWx1ZScgPT4gJ1RleHQnIHdpdGggc2NvcGU9Z2xvYmFsLCBvciByZXR1cm4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiAnVGV4dCwuLi4nIG9yICdUZXh0PXZhbHVlLC4uLicuIDxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBibG9jaz1kcm9wZG93bjQgZmllbGQ9ZHJvcGRvd24gdGVtcGxhdGU9J0VDQjJfdGVzdF90ZW1wbGF0ZV9vcHRpb25zJyBsYWJlbD0nRHJvcGRvd24gLSBmcm9tIHRlbXBsYXRlJ308L3ByZT4KICAgIDwvbGk+CiAgICA8bGk+Y3VzdG9tZ3NfZmllbGQgKCopIC0gbmFtZSBvZiBjdXN0b21nc19maWVsZCB0byByZXRyaWV2ZSAod2l0aCBzcGFjZXMsIG5vdCB1bmRlcnNjb3JlcykgZS5nLiAnU2VjdGlvbiBTdHlsZXMnLiBUaGlzIG5lZWRzIHRvIGJlIGEgQ3VzdG9tR1MgJ3RleHRhcmVhJyBjb250YWluaW5nIGEgc2V0IG9mICdUZXh0JyBvciAnVGV4dD12YWx1ZScsIGVpdGhlciBvbiBzZXBhcmF0ZSBsaW5lcyBvciBzZXBhcmF0ZWQgYnkgY29tbWFzLjxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBibG9jaz1kcm9wZG93bjMgZmllbGQ9ZHJvcGRvd24gY3VzdG9tZ3NfZmllbGQ9J1NlY3Rpb24gU3R5bGVzJyAgbGFiZWw9J0Ryb3Bkb3duIC0gZnJvbSBDdXN0b21HUyd9PC9wcmU+CiAgICA8L2xpPgogICAgPGxpPmZpcnN0X3ZhbHVlIChvcHRpb25hbCkgLSBzZXRzIGFuIHRleHQgc3RpbmcgZm9yIHRoZSBmaXJzdCBibGFuayB2YWx1ZSwgZS5nLiAnLS0tIHNlbGVjdCBvbmUgLS0tJzwvbGk+CiAgICA8bGk+ZmxpcF92YWx1ZXMgKG9wdGlvbmFsKSAtIHN3YXBzIHRoZSBkcm9wZG93bnMgdmFsdWVzIDwtPiB0ZXh0PC9saT4KICAgIDxsaT5tdWx0aXBsZSAob3B0aW9uYWwpIC0gYWRkIG11bHRpcGxlIG9wdGlvbiBzZWxlY3Qgc3VwcG9ydDwvbGk+CiAgICA8bGk+c2l6ZSAob3B0aW9uYWwpIC0gbXVsdGlwbGUgZW5hYmxlZCBvbmx5PC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KICAgIDxsaT5jb21wYWN0IChvcHRpb25hbCkgLSBkZWZhdWx0OmZhbHNlIC0gaWYgc2V0LCBmb3IgbXVsdGlwbGUgb25seSwgYSBzdW1tYXJ5IG9mIHRoZSBzZWxlY3RlZCBvcHRpb25zIGlzIGRpc3BsYXllZCBhbmQgdGhlIGZ1bGwgc2VsZWN0IGlzIHNob3duL2hpZGRlbiB3aGVuICdlZGl0L2hpZGUnIGlzIGNsaWNrZWQ8L2xpPgogICAgPGxpPmRlZmF1bHQgKG9wdGlvbmFsKSAtIChhbGlhczogJzxiPmRlZmF1bHRfdmFsdWU8L2I+JykgLSBpbml0aWFsIHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZTwvbGk+CjwvdWw+Cjxicj4KPHA+U2FtcGxlIHRlbXBsYXRlIGZvciAnbW9kJyBwYXJhbWV0ZXIgZm9yIGEgTElTRSBJbnN0YW5jZSBzdW1tYXJ5IHRlbXBsYXRlLiBTaW1pbGFyIGNhbiBhbHNvIGJlIHVzZWQgd2l0aCB0aGUgJ3RlbXBsYXRlJyBwYXJhbWV0ZXIuPC9wPgo8cHJlPgp7KiBpdGVtX2Ryb3Bkb3duIC0gTElTRSBTdW1tYXJ5IHRlbXBsYXRlIGZvciBFQ0IyIGRyb3Bkb3duIG9yIHNvcnRhYmxlbGlzdCAqfQp7KiBFSVRIRVIgc2V0IHRoZSB2YXIgJG9wdGlvbnMgJiBzY29wZT1nbG9iYWwgKGltcG9ydGFudCEpICp9Cnskb3B0aW9ucz1bXX0Ke2ZvcmVhY2ggJGl0ZW1zIGFzICRpdGVtfQogICAgeyRvcHRpb25zWyRpdGVtLT5hbGlhc109JGl0ZW0tPnRpdGxlIHNjb3BlPWdsb2JhbH0Key9mb3JlYWNofQp7KiBPUiB1c2UgdGhlIGZvbGxvd2luZyBmb3JtYXQgdG8gcmV0dXJuIGEgY29tbWEgc2VwYXJhdGVkIGxpc3QgKn0KeyoKe2ZvcmVhY2ggJGl0ZW1zIGFzICRpdGVtfQogICAgeyRpdGVtLT50aXRsZX09eyRpdGVtLT5hbGlhc317aWYgISRpdGVtQGxhc3R9LHsvaWZ9CnsvZm9yZWFjaH0KKn0KPC9wcmU+CnsvbGl0ZXJhbH0KCjxmaWVsZHNldD4KICAgIDxsZWdlbmQ+U2FtcGxlIGRyb3Bkb3duIHdpdGggbXVsdGlwbGUgc2VsZWN0IC0gdXNlICdtdWx0aXBsZT0xJyA8L2xlZ2VuZD4KICAgIHskZmllbGRkZWYtPmdldF9kZW1vX2lucHV0KFsndmFsdWVzJz0+J0FwcGxlPWFwcGxlLE9yYW5nZT1vcmFuZ2UsS2l3aWZydWl0PWtpd2lmcnVpdCcsICdtdWx0aXBsZSc9PjEsICdzaXplJz0+NCwgZGVmYXVsdD0+J29yYW5nZSddKX0KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KPGxlZ2VuZD5TYW1wbGUgZHJvcGRvd24gd2l0aCBtdWx0aXBsZSAmIGNvbXBhY3Qgc2VsZWN0IC0gdXNlICdtdWx0aXBsZT0xIGNvbXBhY3Q9MScgPC9sZWdlbmQ+CnskZmllbGRkZWYtPmdldF9kZW1vX2lucHV0KFsndmFsdWVzJz0+J0FwcGxlPWFwcGxlLE9yYW5nZT1vcmFuZ2UsS2l3aWZydWl0PWtpd2lmcnVpdCcsICdtdWx0aXBsZSc9PjEsICdjb21wYWN0Jz0+MSwgJ3NpemUnPT40LCBkZWZhdWx0PT4nYXBwbGUsa2l3aWZydWl0J10pfQo8L2ZpZWxkc2V0PgoKPGJyPg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/dropdown/input.ecb2fd_dropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2Ryb3Bkb3duLnRwbCAtIHYxLjAgLSAyN0p1bjIyIAoKICAgIE5vdGU6ICRzZWxlY3RlZF92YWx1ZXMgaXMgYW4gYXJyYXkgc3VwcGxpZWQgd2hlbiBzZWxlY3QgaXMgbXVsdGlwbGUKICAgICAgICAgICRvcHRpb25zIGFycmF5IG9mOiAkdGV4dCA9PiAkdmFsdWUKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0Ke2lmICFlbXB0eSgkZGVzY3JpcHRpb24pfQogICAgICAgIHskZGVzY3JpcHRpb259PGJyPgp7L2lmfQoKe2lmICRpc19zdWJfZmllbGR9CiAgICB7aWYgJG11bHRpcGxlfQogICAgICAgIDxkaXYgY2xhc3M9ImVjYl9tdWx0aXBsZV9zZWxlY3QganNvbiBjbXNfZHJvcGRvd24ge2lmICRjb21wYWN0fWVjYl9jb21wYWN0ey9pZn0iPgogICAgICAgIHtpZiAkY29tcGFjdH0KICAgICAgICAgICAgeyRub25lX3NlbGVjdGVkPSRtb2QtPkxhbmcoJ25vbmVfc2VsZWN0ZWQnKX0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWNiX3NlbGVjdF9zdW1tYXJ5Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlY2Jfc2VsZWN0X3RleHQiIGRhdGEtZW1wdHk9Inskbm9uZV9zZWxlY3RlZH0iPnskc2VsZWN0ZWRfdGV4dHxkZWZhdWx0OiRub25lX3NlbGVjdGVkfTwvc3Bhbj4KICAgICAgICAgICAgICAgICZuYnNwOzxhIGNsYXNzPSJlY2Jfc2VsZWN0X2VkaXQiIGhyZWY9ImVkaXQvaGlkZSI+PC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICB7L2lmfQogICAgICAgIHsqIHVzZXMganNvbiBmb3JtYXQgKn0KICAgICAgICAgICAge3N0cmlwfTxzZWxlY3QgY2xhc3M9ImNtc19kcm9wZG93biByZXBlYXRlci1maWVsZCIgCiAgICAgICAgICAgIG5hbWU9IntpZiAkbm90X3N1Yl9maWVsZF90ZW1wbGF0ZX17JHN1Yl9wYXJlbnRfYmxvY2t9W3JfeyRzdWJfcm93X251bWJlcn1dW3skYmxvY2tfbmFtZX1dW117L2lmfSIgIGRhdGEtZmllbGQtbmFtZT0ieyRibG9ja19uYW1lfSIgbXVsdGlwbGUgc2l6ZT0ieyRzaXplfSI+ey9zdHJpcH0KICAgICAgICAgICAge2ZvcmVhY2ggJG9wdGlvbnMgYXMgJHZhbHVlID0+ICR0ZXh0fQogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ieyR2YWx1ZXxlc2NhcGV9IiB7aWYgJHZhbHVlfGluX2FycmF5OiRzZWxlY3RlZF92YWx1ZXN9c2VsZWN0ZWR7L2lmfT57JHRleHR8ZGVmYXVsdDokdmFsdWV8ZXNjYXBlfTwvb3B0aW9uPgogICAgICAgICAgICB7L2ZvcmVhY2h9CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgIDwvZGl2PgogICAge2Vsc2V9CgogICAgICAgIDxzZWxlY3QgaWQ9IntpZiAkbm90X3N1Yl9maWVsZF90ZW1wbGF0ZX17JHN1Yl9wYXJlbnRfYmxvY2t9X3JfeyRzdWJfcm93X251bWJlcn1feyRibG9ja19uYW1lfXsvaWZ9IiBjbGFzcz0iY21zX2Ryb3Bkb3duIHJlcGVhdGVyLWZpZWxkIiBuYW1lPSJ7aWYgJG5vdF9zdWJfZmllbGRfdGVtcGxhdGV9eyRzdWJfcGFyZW50X2Jsb2NrfVtyX3skc3ViX3Jvd19udW1iZXJ9XVt7JGJsb2NrX25hbWV9XXsvaWZ9IiBkYXRhLXJlcGVhdGVyPSIjeyRzdWJfcGFyZW50X2Jsb2NrfS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ7JGJsb2NrX25hbWV9Ij4KICAgICAgICB7Zm9yZWFjaCAkb3B0aW9ucyBhcyAkdmFsdWUgPT4gJHRleHR9CiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InskdmFsdWV8ZXNjYXBlfSIge2lmICRzZWxlY3RlZD09JHZhbHVlIHx8ICghJG5vdF9zdWJfZmllbGRfdGVtcGxhdGUgJiYgJHZhbHVlPT0kZGVmYXVsdCl9c2VsZWN0ZWR7L2lmfT57JHRleHR9PC9vcHRpb24+CiAgICAgICAgey9mb3JlYWNofQogICAgICAgIDwvc2VsZWN0PgogICAgey9pZn0KCgp7ZWxzZX17KiBub3QgJGlzX3N1Yl9maWVsZCAqfQogICAge2lmICRtdWx0aXBsZX0KICAgICAgICA8ZGl2IGNsYXNzPSJlY2JfbXVsdGlwbGVfc2VsZWN0IHtpZiAkdXNlX2pzb25fZm9ybWF0fWpzb257L2lmfSBjbXNfZHJvcGRvd24ge2lmICRjb21wYWN0fWVjYl9jb21wYWN0ey9pZn0iPgogICAgICAgIHtpZiAkY29tcGFjdH0KICAgICAgICAgICAgeyRub25lX3NlbGVjdGVkPSRtb2QtPkxhbmcoJ25vbmVfc2VsZWN0ZWQnKX0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWNiX3NlbGVjdF9zdW1tYXJ5Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlY2Jfc2VsZWN0X3RleHQiIGRhdGEtZW1wdHk9Inskbm9uZV9zZWxlY3RlZH0iPnskc2VsZWN0ZWRfdGV4dHxkZWZhdWx0OiRub25lX3NlbGVjdGVkfTwvc3Bhbj4KICAgICAgICAgICAgICAgICZuYnNwOzxhIGNsYXNzPSJlY2Jfc2VsZWN0X2VkaXQiIGhyZWY9ImVkaXQvaGlkZSI+PC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICB7L2lmfQogICAgICAgIHtpZiAkdXNlX2pzb25fZm9ybWF0fQogICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJjbXNfZHJvcGRvd24iIG5hbWU9InskYmxvY2tfbmFtZX1bXSIgbXVsdGlwbGUgc2l6ZT0ieyRzaXplfSI+CiAgICAgICAgICAgIHtmb3JlYWNoICRvcHRpb25zIGFzICR2YWx1ZSA9PiAkdGV4dH0KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InskdmFsdWV8ZXNjYXBlfSIge2lmICR2YWx1ZXxpbl9hcnJheTokc2VsZWN0ZWRfdmFsdWVzfXNlbGVjdGVkey9pZn0+eyR0ZXh0fGRlZmF1bHQ6JHZhbHVlfGVzY2FwZX08L29wdGlvbj4KICAgICAgICAgICAgey9mb3JlYWNofQogICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICB7ZWxzZX0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InskYmxvY2tfbmFtZX0iIGNsYXNzPSJlY2Jfc2VsZWN0X2lucHV0IiBuYW1lPSJ7JGJsb2NrX25hbWV9IiB2YWx1ZT0ieyRzZWxlY3RlZH0iIC8+CiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9ImNtc19kcm9wZG93biIgbmFtZT0ieyRibG9ja19uYW1lfV90bXAiIG11bHRpcGxlIHNpemU9Inskc2l6ZX0iPgogICAgICAgICAgICB7Zm9yZWFjaCAkb3B0aW9ucyBhcyAkdmFsdWUgPT4gJHRleHR9CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ7JHZhbHVlfGVzY2FwZX0iIHtpZiAkdmFsdWV8aW5fYXJyYXk6JHNlbGVjdGVkX3ZhbHVlc31zZWxlY3RlZHsvaWZ9PnskdGV4dHxkZWZhdWx0OiR2YWx1ZXxlc2NhcGV9PC9vcHRpb24+CiAgICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgey9pZn0KICAgICAgICA8L2Rpdj4KCiAgICB7ZWxzZX0KCiAgICAgICAgPHNlbGVjdCBjbGFzcz0iY21zX2Ryb3Bkb3duIiBuYW1lPSJ7JGJsb2NrX25hbWV9Ij4KICAgICAgICB7Zm9yZWFjaCAkb3B0aW9ucyBhcyAkdmFsdWUgPT4gJHRleHR9CiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InskdmFsdWV8ZXNjYXBlfSIge2lmICRzZWxlY3RlZD09JHZhbHVlfXNlbGVjdGVkey9pZn0+eyR0ZXh0fTwvb3B0aW9uPgogICAgICAgIHsvZm9yZWFjaH0KICAgICAgICA8L3NlbGVjdD4KICAgIHsvaWZ9CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/file_picker/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/file_picker/class.ecb2fd_file_picker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCnVzZSBcRmlsZVBpY2tlclxUZW1wb3JhcnlQcm9maWxlU3RvcmFnZTsKCmNsYXNzIGVjYjJmZF9maWxlX3BpY2tlciBleHRlbmRzIGVjYjJfRmllbGREZWZCYXNlIAp7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkPTApIAoJewkKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkKTsKCiAgICAgICAgJHRoaXMtPmdldF92YWx1ZXMoJHZhbHVlKTsgICAgICAgICAgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCgogICAgICAgICR0aGlzLT5zZXRfZmllbGRfcGFyYW1ldGVycygpOwoKICAgICAgICAkdGhpcy0+aW5pdGlhbGlzZV9vcHRpb25zKCRwYXJhbXMpOyAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKCiAgICAgICAgLy8gJHRoaXMtPmNyZWF0ZV9zdWJfZmllbGRzKCAkcGFyYW1zICk7ICAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QgKGlmIHJlcXVpcmVkKQoKCX0KCgoKICAgIC8qKgogICAgICogIHNldHMgdGhlIGFsbG93ZWQgcGFyYW1ldGVycyBmb3IgdGhpcyBmaWVsZCB0eXBlCiAgICAgKgogICAgICogICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgLSBhcnJheSBvZiBwYXJhbWV0ZXJfbmFtZXMgPT4gWyBkZWZhdWx0X3ZhbHVlLCBmaWx0ZXJfdHlwZSBdCiAgICAgKiAgICAgIHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HLCBGSUxURVJfVkFMSURBVEVfSU5ULCBGSUxURVJfVkFMSURBVEVfQk9PTEVBTiwgRklMVEVSX1NBTklUSVpFX0VNQUlMIAogICAgICogICAgICBzZWU6IGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2ZpbHRlci5maWx0ZXJzLnBocAogICAgICogICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgLSBvcHRpb25hbGx5IGFsbG93IGFueSBvdGhlciBwYXJhbWV0ZXJzIHRvIGJlIGluY2x1ZGVkLCBlLmcuIG1vZHVsZSBjYWxscwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkX3BhcmFtZXRlcnMoKSAKICAgIHsKICAgICAgICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAnbGFiZWwnICAgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ3Byb2ZpbGUnICAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICd0b3AnICAgICAgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnZmlsZXR5cGUnICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ3ByZXZpZXcnICAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+IFRSVUUsICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfQk9PTEVBTl0sCiAgICAgICAgICAgICd0aHVtYm5haWxfd2lkdGgnICAgPT4gWydkZWZhdWx0JyA9PiAwLCAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0lOVF0sCiAgICAgICAgICAgICd0aHVtYm5haWxfaGVpZ2h0JyAgPT4gWydkZWZhdWx0JyA9PiAwLCAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0lOVF0sCiAgICAgICAgICAgICdkZWZhdWx0X3ZhbHVlJyAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLCAKICAgICAgICAgICAgJ2FkbWluX2dyb3VwcycgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gRklMVEVSX0RFRkFVTFRdCiAgICAgICAgXTsKICAgICAgICAvLyAkdGhpcy0+cGFyYW1ldGVyX2FsaWFzZXMgPSBbICdhbGlhcycgPT4gJ3BhcmFtZXRlcicgXTsKICAgICAgICAvLyAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zID0gRkFMU0U7ICAgIC8vIGRlZmF1bHQ6IHRydWUKICAgICAgICAvLyAkdGhpcy0+dXNlX2pzb25fZm9ybWF0ID0gVFJVRTsgICAgIC8vIGRlZmF1bHQ6IEZBTFNFIC0gY2FuIG92ZXJyaWRlIGUuZy4gJ2dyb3VwcycgdHlwZQoKICAgIH0KCgogICAgLyoqCiAgICAgKiAgQHJldHVybiBzdHJpbmcgY29tcGxldGUgY29udGVudCBibG9jayAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX2lucHV0KCkgCiAgICB7CiAgICAgICAgaWYgKCAhZW1wdHkoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSAmJiAKICAgICAgICAgICAgICEkdGhpcy0+aXNfdmFsaWRfZ3JvdXBfbWVtYmVyKCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZWNiMl9oaWRkZW5fZmllbGQoKTsgCiAgICAgICAgfQogICAgCiAgICAgICAgJHRodW1ibmFpbF91cmwgPSAnJzsKICAgICAgICAkYWpheF91cmwgPSAnJzsKICAgICAgICAkRlBtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0ZpbGVQaWNrZXInKTsKICAgICAgICAkRlBwcm9maWxlID0gJEZQbW9kLT5nZXRfcHJvZmlsZV9vcl9kZWZhdWx0KCAkdGhpcy0+b3B0aW9uc1sncHJvZmlsZSddICk7CiAgICAgICAgaWYgKCAkdGhpcy0+b3B0aW9uc1sncHJldmlldyddICkgeyAgLy8gZ2V0IHRodW1ibmFpbAogICAgICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgICAgICR0b3BfZGlyID0gJHRoaXMtPm9wdGlvbnNbJ3RvcCddID8gJHRoaXMtPm9wdGlvbnNbJ3RvcCddIDogJEZQcHJvZmlsZS0+cmVsdG9wOwogICAgICAgICAgICAkaW1nX3NyYyA9IGNtc19qb2luX3BhdGgoICRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCAkdG9wX2RpciwgJHRoaXMtPnZhbHVlICk7CiAgICAgICAgICAgICR0aHVtYm5haWxfdXJsID0gZWNiMl9GaWxlVXRpbHM6OmdldF90aHVtYm5haWxfdXJsKCRpbWdfc3JjLCAKICAgICAgICAgICAgICAgICR0aGlzLT5vcHRpb25zWyd0aHVtYm5haWxfd2lkdGgnXSwgJHRoaXMtPm9wdGlvbnNbJ3RodW1ibmFpbF9oZWlnaHQnXSk7CiAgICAgICAgICAgICRhamF4X3VybCA9ICR0aGlzLT5tb2QtPmNyZWF0ZV91cmwoJ20xXycsICdhZG1pbl9hamF4X2dldF90aHVtYicpOwogICAgICAgIH0KCiAgICAgICAgJGNsYXNzID0gJyc7CiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdibG9ja19uYW1lJywgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICd2YWx1ZScsICR0aGlzLT52YWx1ZSApOwoKICAgICAgICAkdHBsLT5hc3NpZ24oICdkZXNjcmlwdGlvbicsICR0aGlzLT5vcHRpb25zWydkZXNjcmlwdGlvbiddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnbGFiZWwnLCAkdGhpcy0+b3B0aW9uc1snbGFiZWwnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3Byb2ZpbGUnLCAkdGhpcy0+b3B0aW9uc1sncHJvZmlsZSddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndG9wJywgJHRoaXMtPm9wdGlvbnNbJ3RvcCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnZmlsZXR5cGUnLCAkdGhpcy0+b3B0aW9uc1snZmlsZXR5cGUnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3ByZXZpZXcnLCAkdGhpcy0+b3B0aW9uc1sncHJldmlldyddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndGh1bWJuYWlsX3VybCcsICR0aHVtYm5haWxfdXJsICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndG9wX2RpcicsICR0b3BfZGlyICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndGh1bWJuYWlsX3dpZHRoJywgJHRoaXMtPm9wdGlvbnNbJ3RodW1ibmFpbF93aWR0aCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndGh1bWJuYWlsX2hlaWdodCcsICR0aGlzLT5vcHRpb25zWyd0aHVtYm5haWxfaGVpZ2h0J10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdhamF4X3VybCcsICRhamF4X3VybCApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2lzX3N1Yl9maWVsZCcsICR0aGlzLT5pc19zdWJfZmllbGQgKTsKICAgICAgICBpZiAoICR0aGlzLT5pc19zdWJfZmllbGQgKSB7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1Yl9yb3dfbnVtYmVyJywgJHRoaXMtPnN1Yl9yb3dfbnVtYmVyICk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1YkZpZWxkTmFtZScsICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrLidbcl8nLiR0aGlzLT5zdWJfcm93X251bWJlci4nXVsnLgogICAgICAgICAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUuJ10nICk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1YkZpZWxkSWQnLCAkdGhpcy0+c3ViX3BhcmVudF9ibG9jay4nX3JfJy4kdGhpcy0+c3ViX3Jvd19udW1iZXIuJ18nLgogICAgICAgICAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAgICAgJHByb2ZpbGVfc2lnID0gVGVtcG9yYXJ5UHJvZmlsZVN0b3JhZ2U6OnNldCggJEZQcHJvZmlsZSApOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdwcm9maWxlX3NpZycsICRwcm9maWxlX3NpZyApOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdsYW5nX2NsZWFyJywgJEZQbW9kLT5MYW5nKCdjbGVhcicpICk7CiAgICAgICAgICAgICRjbGFzcyAuPSAnIHJlcGVhdGVyLWZpZWxkJzsKICAgICAgICB9CiAgICAgICAgJHRwbC0+YXNzaWduKCdjbGFzcycsICRjbGFzcyk7ICAKCiAgICAgICAgcmV0dXJuICR0cGwtPmZldGNoKCk7CiAgIAogICAgfQoKCgogICAgLy8gLyoqCiAgICAvLyAgKiAgRGF0YSBlbnRlcmVkIGJ5IHRoZSBlZGl0b3IgaXMgcHJvY2Vzc2VkIGJlZm9yZSBpdHMgc2F2ZWQgaW4gcHJvcHMgdGFibGUKICAgIC8vICAqICBUaGlzIG1ldGhvZCwgaWYgcmVxdWlyZWQsIG92ZXJpZGVzIHRoZSBwYXJlbnQgY2xhc3MgbWV0aG9kLCB0byBlbmFibGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIAogICAgLy8gICogIGJlZm9yZSB0aGUgZGF0YSBpcyBzYXZlZC4KICAgIC8vICAqICBDYW4gYmUgb21pdHRlZCBhbmQgZWNiMl9GaWVsZERlZkJhc2Ugd2lsbCBoYW5kbGUgZGVmYXVsdCBwcm9jZXNzaW5nCiAgICAvLyAgKgogICAgLy8gICogIEByZXR1cm4gc3RyaW5nIGZvcm1hdHRlZCBqc29uIGNvbnRhaW5pbmcgYWxsIGZpZWxkIGRhdGEgcmVhZHkgdG8gYmUgc2F2ZWQgJiBvdXRwdXQKICAgIC8vICAqLwogICAgLy8gcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX3ZhbHVlKCAkaW5wdXRBcnJheSApIAogICAgLy8gewogICAgLy8gICAgICR0aGlzLT5zZXRfZmllbGRfb2JqZWN0KCAkaW5wdXRBcnJheSApOwogICAgLy8KICAgIC8vICAgICAvLyBkbyBvdGhlciBzdHVmZiBoZXJlCiAgICAvLwogICAgLy8gICAgIHJldHVybiAkdGhpcy0+RUNCMl9qc29uX2VuY29kZV9maWVsZF9vYmplY3QoKTsgCiAgICAvLyB9CgoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/file_picker/help.ecb2fd_file_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfZmlsZV9waWNrZXIudHBsICp9CjxwPlRoZSBmaWxlX3BpY2tlciBmaWVsZCBlbmFibGVzIHRoZSBlZGl0b3IgdG8gc2VsZWN0IGFuIGltYWdlIChvciBmaWxlKSBmcm9tIHNwZWNpZmllZCBkaXJlY3RvcnksIHRvIHVzZSBvbiBhIHBhZ2UuIFBsdXMgYSB0aHVtYm5haWwgb2YgdGhlIHNlbGVjdGVkIGltYWdlIGlzIHNob3duIChpZiBhbiBpbWFnZSBpcyBzZWxlY3RlZCkuPC9wPgo8cD5UaGlzIGZ1bmN0aW9uYWxpdHkgaXMgcHJvdmlkZWQgYnkgdGhlIGNvcmUgRmlsZVBpY2tlciBtb2R1bGUsIHdpdGggdGhlIGFkZGl0aW9uIG9mIHRoZSB0aHVtYm5haWwuIElmIHlvdSBkb24ndCB3YW50IHRoZSB0aHVtYm5haWwgaXQncyBiZXR0ZXIgdG8ganVzdCB1c2UgdGhlIEZpbGVQaWNrZXIgY29udGVudCBibG9jazogPGNvZGU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1GaWxlUGlja2VyIGJsb2NrPXN0cmluZyBbcHJvZmlsZT1zdHJpbmddfXsvbGl0ZXJhbH08L2NvZGU+IFNlZSB0aGUgRmlsZVBpY2tlciBtb2R1bGUgZm9yIGRldGFpbHMuPC9wPgoKPGZpZWxkc2V0PgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoW10pfQo8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9ZmlsZV9waWNrZXIgYmxvY2s9dGVzdH17L2xpdGVyYWx9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnZmlsZV9waWNrZXInPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPnByb2ZpbGUgKG9wdGlvbmFsKSAtIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHBpY2tlciBwcm9maWxlIHRvIHVzZS4gVGhlIHByb2ZpbGUgbXVzdCBleGlzdCB3aXRoaW4gdGhlIHNlbGVjdGVkIGZpbGUgcGlja2VyIG1vZHVsZSwgb3IgYSBkZWZhdWx0IHByb2ZpbGUgd2lsbCBiZSB1c2VkPC9saT4KICAgIDxsaT50b3AgKG9wdGlvbmFsKSAtIEEgdG9wIGRpcmVjdG9yeSwgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5LiBUaGlzIG92ZXJyaWRlcyBhbnkgdG9wIHZhbHVlIGFscmVhZHkgc3BlY2lmaWVkIGluIHRoZSBwcm9maWxlLjwvbGk+CiAgICA8bGk+ZmlsZXR5cGUgKG9wdGlvbmFsKSAtIEFuIGluZGljYXRpb24gb2YgdGhlIGZpbGUgdHlwZSB0aGF0IGNhbiBiZSBzZWxlY3RlZC4gUG9zc2libGUgdmFsdWVzIGFyZTogaW1hZ2UsYXVkaW8sdmlkZW8sbWVkaWEseG1sLGRvY3VtZW50LGFyY2hpdmUsYW55PC9saT4KICAgIDxsaT5wcmV2aWV3IChvcHRpb25hbCkgLSBkZWZhdWx0OiB0cnVlLCBzZXQgdG8gZmFsc2UgdG8gbm90IHNob3cgYSB0aHVtYm5haWwgKHJlY29tbWVkIHlvdSB1c2UgRmlsZVBpY2tlciBjb250ZW50IGJsb2NrIGluc3RlYWQhKTwvbGk+CiAgICA8bGk+dGh1bWJuYWlsX3dpZHRoIChvcHRpb25hbCkgLSBzZXRzIHRodW1ibmFpbCB3aWR0aCBmb3IgdGhpcyBmaWVsZHMgdGh1bWJuYWlscy4gSWYgdGh1bWJuYWlsX3dpZHRoIGlzIHNldCwgYnV0IHRodW1ibmFpbF9oZWlnaHQgaXMgbm90LCB0aGUgcmF0aW8gb2YgdGhlIGltYWdlIHdpbGwgYmUgdXNlZCB0byBjYWxjdWxhdGUgdGh1bWJuYWlsX2hlaWdodC4gVGhlc2Ugc2V0dGluZ3Mgd2lsbCBkZWZhdWx0IHRvIHRoZSBFQ0IyIFRodW1ibmFpbCBXaWR0aCAmIEhlaWdodCBvcHRpb25zLCBvciBDTVNNUyBUaHVtYm5haWwgV2lkdGggJiBIZWlnaHQgc2V0dGluZ3MuPC9saT4KICAgIDxsaT50aHVtYm5haWxfaGVpZ2h0IChvcHRpb25hbCkgLSBzZXRzIHRodW1ibmFpbCBoZWlnaHQgZm9yIHRoaXMgZmllbGRzIHRodW1ibmFpbHMuIElmIHRodW1ibmFpbF9oZWlnaHQgaXMgc2V0LCBidXQgdGh1bWJuYWlsX3dpZHRoIGlzIG5vdCwgdGhlIHJhdGlvIG9mIHRoZSBpbWFnZSB3aWxsIGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRodW1ibmFpbF93aWR0aC4gVGhlc2Ugc2V0dGluZ3Mgd2lsbCBkZWZhdWx0IHRvIHRoZSBFQ0IyIFRodW1ibmFpbCBXaWR0aCAmIEhlaWdodCBvcHRpb25zLCBvciBDTVNNUyBUaHVtYm5haWwgV2lkdGggJiBIZWlnaHQgc2V0dGluZ3MuPC9saT4KICAgIDxsaT5kZWZhdWx0X3ZhbHVlIChvcHRpb25hbCkgLSBpbml0aWFsIHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZTwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/file_picker/input.ecb2fd_file_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2ZpbGVfcGlja2VyLnRwbCAtIHYxLjAgLSAyNUp1bjIyIAoKICAgIE5vdGU6IEV4aXN0aW5nIGZpbGVfcGlja2VyIGZpbGVzIGFyZSBpbml0aWF0ZWQgdXNpbmcgdGhlIG5vcm1hbCBjbXNfZmlsZXBpY2tlciB0YWcuCiAgICAgICAgICBBbnkgbmV3bHkgYWRkZWQgcm93cyAoZ3JvdXBzKSBoYXZlIHRoZSBmaWxlX3BpY2tlciBpbnB1dCBpbml0aWF0ZWQgYnkgdGhlIGVjYiBqcy4KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0Ke2lmICFlbXB0eSgkZGVzY3JpcHRpb24pfQogICAgICAgIHskZGVzY3JpcHRpb259PGJyPgp7L2lmfQoKICAgIDxkaXYgY2xhc3M9ImVjYl9maWxlX3BpY2tlcntpZiAkcHJldmlld30gcHJldmlld3svaWZ9IHtpZiBlbXB0eSgkdmFsdWUpfWVtcHR5e2Vsc2UgaWYgIWVtcHR5KCR0aHVtYm5haWxfdXJsKX10aHVtYm5haWx7ZWxzZX1maWxlLWljb257L2lmfSI+eyogY2xhc3MgdG8gaW5jbHVkZSAnZW1wdHknLCAndGh1bWJuYWlsJyBvciAnZmlsZS1pY29uJyAqfQp7aWYgJGlzX3N1Yl9maWVsZH0KICAgIHtpZiBpc19udWxsKCRzdWJfcm93X251bWJlcil9eyogc3ViX2ZpZWxkIHRlbXBsYXRlIGZpZWxkICp9CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IiIgdmFsdWU9InskdmFsdWV9IiBjbGFzcz0icmVwZWF0ZXItZmllbGQgZWNiMi1maWxlLXBpY2tlci10ZW1wbGF0ZSIgZGF0YS1yZXBlYXRlcj0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIGRhdGEtZmllbGQtbmFtZT0ieyRibG9ja19uYW1lfSIgZGF0YS1jbXNmcC1pbnN0YW5jZT0iIiBkYXRhLWZwLXByb2ZpbGU9InskcHJvZmlsZV9zaWd9IiBkYXRhLWxhbmctY2xlYXI9InskbGFuZ19jbGVhcn0iIHNpemU9IjgwIi8+CgogICAge2Vsc2V9eyogc3ViX2ZpZWxkICp9CiAgICAgICAge2Ntc19maWxlcGlja2VyIGlkPSRzdWJGaWVsZElkIG5hbWU9JHN1YkZpZWxkTmFtZSB2YWx1ZT0kdmFsdWUgcHJvZmlsZT0kcHJvZmlsZSB0b3A9JHRvcCB0eXBlPSRmaWxldHlwZX0KCiAgICB7L2lmfQoKe2Vsc2V9CiAgICAgICAge2Ntc19maWxlcGlja2VyIG5hbWU9JGJsb2NrX25hbWUgdmFsdWU9JHZhbHVlIHByb2ZpbGU9JHByb2ZpbGUgdG9wPSR0b3AgdHlwZT0kZmlsZXR5cGV9Cgp7L2lmfQoKe2lmICRwcmV2aWV3fQogICAgICAgIDxpbWcgY2xhc3M9ImVjYl9maWxlX3BpY2tlcl9wcmV2aWV3IiBzcmM9IntpZiAhZW1wdHkoJHRodW1ibmFpbF91cmwpfXskdGh1bWJuYWlsX3VybH0/eyRzbWFydHkubm93fXsvaWZ9IiBhbHQ9InskYmxvY2tfbmFtZX0iIGRhdGEtYWpheC11cmw9InskYWpheF91cmx9IiBkYXRhLXRvcC1kaXI9InskdG9wX2Rpcn0iIGRhdGEtdGh1bWJuYWlsLXdpZHRoPSJ7JHRodW1ibmFpbF93aWR0aH0iIGRhdGEtdGh1bWJuYWlsLWhlaWdodD0ieyR0aHVtYm5haWxfaGVpZ2h0fSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZWNiX2ZpbGVfcGlja2VyX2ZpbGVfaWNvbiI+PHNwYW4gY2xhc3M9ImVjYjItaWNvbi1maWxlLW8iPjwvc3Bhbj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJlY2JfZmlsZV9waWNrZXJfdGl0bGUiPnskdmFsdWV9PC9kaXY+CnsvaWZ9CiAgICA8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/file_selector/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/file_selector/class.ecb2fd_file_selector.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfZmlsZV9zZWxlY3RvciBleHRlbmRzIGVjYjJfRmllbGREZWZCYXNlIAp7CgogICAgY29uc3QgU1VQUE9SVEVEX0VYVEVOU0lPTlMgPSAnanBnLGpwZWcscG5nLGdpZic7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkPTApIAoJewkKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkKTsKCiAgICAgICAgJHRoaXMtPmdldF92YWx1ZXMoJHZhbHVlKTsgICAgICAgICAgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCgogICAgICAgICR0aGlzLT5zZXRfZmllbGRfcGFyYW1ldGVycygpOwoKICAgICAgICAkdGhpcy0+aW5pdGlhbGlzZV9vcHRpb25zKCRwYXJhbXMpOyAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKICAgICAgICAKCX0KCgoKICAgIC8qKgogICAgICogIHNldHMgdGhlIGFsbG93ZWQgcGFyYW1ldGVycyBmb3IgdGhpcyBmaWVsZCB0eXBlCiAgICAgKgogICAgICogICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgLSBhcnJheSBvZiBwYXJhbWV0ZXJfbmFtZXMgPT4gWyBkZWZhdWx0X3ZhbHVlLCBmaWx0ZXJfdHlwZSBdCiAgICAgKiAgICAgIHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HLCBGSUxURVJfVkFMSURBVEVfSU5ULCBGSUxURVJfVkFMSURBVEVfQk9PTEVBTiwgRklMVEVSX1NBTklUSVpFX0VNQUlMIAogICAgICogICAgICBzZWU6IGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2ZpbHRlci5maWx0ZXJzLnBocAogICAgICogICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgLSBvcHRpb25hbGx5IGFsbG93IGFueSBvdGhlciBwYXJhbWV0ZXJzIHRvIGJlIGluY2x1ZGVkLCBlLmcuIG1vZHVsZSBjYWxscwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkX3BhcmFtZXRlcnMoKSAKICAgIHsKICAgICAgICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAnbGFiZWwnICAgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2ZpbGV0eXBlcycgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdleGNsdWRlcHJlZml4JyAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAncmVjdXJzZScgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9CT09MRUFOXSwKICAgICAgICAgICAgJ3NvcnRmaWxlcycgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfQk9PTEVBTl0sCiAgICAgICAgICAgICdkaXInICAgICAgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAncHJldmlldycgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9CT09MRUFOXSwKICAgICAgICAgICAgJ3RodW1ibmFpbF93aWR0aCcgICA9PiBbJ2RlZmF1bHQnID0+IDAsICAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ3RodW1ibmFpbF9oZWlnaHQnICA9PiBbJ2RlZmF1bHQnID0+IDAsICAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ2FkbWluX2dyb3VwcycgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gRklMVEVSX0RFRkFVTFRdCiAgICAgICAgXTsKICAgICAgICAvLyAkdGhpcy0+cGFyYW1ldGVyX2FsaWFzZXMgPSBbICdhbGlhcycgPT4gJ3BhcmFtZXRlcicgXTsKICAgICAgICAvLyAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zID0gRkFMU0U7ICAgIC8vIGRlZmF1bHQ6IHRydWUKCiAgICB9CgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGNvbXBsZXRlIGNvbnRlbnQgYmxvY2sgCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja19pbnB1dCgpIAogICAgewogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYgCiAgICAgICAgICAgICAhJHRoaXMtPmlzX3ZhbGlkX2dyb3VwX21lbWJlcigkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7IAogICAgICAgIH0KCiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICRhZGRkaXIgPSBnZXRfc2l0ZV9wcmVmZXJlbmNlKCdjb250ZW50aW1hZ2VfcGF0aCcpOwogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1snZGlyJ10pICRhZGRkaXIgPSAkdGhpcy0+b3B0aW9uc1snZGlyJ107CiAgICAgICAgJHVwbG9hZHNfdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXTsKCiAgICAgICAgLy8gR2V0IHRoZSBkaXJlY3RvcnkgY29udGVudHMKICAgICAgICAkZGlyID0gY21zX2pvaW5fcGF0aCggJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sICRhZGRkaXIgKTsKICAgICAgICAkZmlsZXR5cGVzID0gW107CiAgICAgICAgaWYgKCFlbXB0eSgkdGhpcy0+b3B0aW9uc1snZmlsZXR5cGVzJ10pKSB7CiAgICAgICAgICAgICRmaWxldHlwZXMgPSBleHBsb2RlKCcsJywgJHRoaXMtPm9wdGlvbnNbJ2ZpbGV0eXBlcyddKTsKICAgICAgICB9CgogICAgICAgICRleGNsdWRlcyA9ICR0aGlzLT5vcHRpb25zWydleGNsdWRlcHJlZml4J107CiAgICAgICAgaWYgKCRleGNsdWRlcyAhPSAnJykgewogICAgICAgICAgICAkZXhjbHVkZXMgPSBleHBsb2RlKCcsJywgJGV4Y2x1ZGVzKTsKICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJGV4Y2x1ZGVzKTsgJGkrKykgewogICAgICAgICAgICAgICAgJGV4Y2x1ZGVzWyRpXSA9ICRleGNsdWRlc1skaV0gLiAnKic7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJG1heGRlcHRoID0gIWVtcHR5KCR0aGlzLT5vcHRpb25zWydyZWN1cnNlJ10pID8gLTEgOiAwOyAgIC8vIGRlZmF1bHQKICAgICAgICAkZmwgPSBnZXRfcmVjdXJzaXZlX2ZpbGVfbGlzdCggJGRpciwgJGV4Y2x1ZGVzLCAkbWF4ZGVwdGgsICdGSUxFUycgKTsKCiAgICAgICAgLy8gUmVtb3ZlIHByZWZpeAogICAgICAgICRmaWxlbGlzdCA9IFtdOwogICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRmbCk7ICRpKyspIHsKICAgICAgICAgICAgaWYgKGluX2FycmF5KCBwYXRoaW5mbygkZmxbJGldLCBQQVRISU5GT19FWFRFTlNJT04pLCAkZmlsZXR5cGVzICkpIHsKICAgICAgICAgICAgICAgICRmaWxlbGlzdFtdID0gc3RyX3JlcGxhY2UoJGRpciwgJycsICRmbFskaV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBTb3J0CiAgICAgICAgaWYgKGlzX2FycmF5KCRmaWxlbGlzdCkgJiYgJHRoaXMtPm9wdGlvbnNbJ3NvcnRmaWxlcyddKSB7CiAgICAgICAgICAgIHNvcnQoJGZpbGVsaXN0KTsKICAgICAgICB9CgogICAgICAgIC8vIGNyZWF0ZSBzZWxlY3Qgb3B0aW9ucwogICAgICAgICRvcHRzID0gYXJyYXkoKTsKICAgICAgICAkdXJsX3ByZWZpeCA9ICRhZGRkaXI7CiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJGZpbGVsaXN0KTsgJGkrKykgewogICAgICAgICAgICAkb3B0c1skdXJsX3ByZWZpeC4kZmlsZWxpc3RbJGldXSA9ICRmaWxlbGlzdFskaV07CiAgICAgICAgfQogICAgICAgICRvcHRzID0gYXJyYXkoJycgPT4gJycpICsgJG9wdHM7CgogICAgICAgIC8vIHByZXZpZXcKICAgICAgICAkdGh1bWJuYWlsX3VybCA9ICcnOwogICAgICAgICRhamF4X3VybCA9ICcnOwogICAgICAgICRjbGFzcyA9ICdjbXNfZHJvcGRvd24nOwogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAnc3RyaW5nOicuJHRoaXMtPmdldF90ZW1wbGF0ZSgpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdibG9ja19uYW1lJywgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbHVlJywgJHRoaXMtPnZhbHVlICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdvcHRzJywgJG9wdHMgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ByZXZpZXcnLCAkdGhpcy0+b3B0aW9uc1sncHJldmlldyddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd1cGxvYWRzX3VybCcsICR1cGxvYWRzX3VybCApOwogICAgICAgICR0cGwtPmFzc2lnbignZGVzY3JpcHRpb24nLCAkdGhpcy0+b3B0aW9uc1snZGVzY3JpcHRpb24nXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2xhYmVsJywgJHRoaXMtPm9wdGlvbnNbJ2xhYmVsJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdpc19zdWJfZmllbGQnLCAkdGhpcy0+aXNfc3ViX2ZpZWxkICk7CiAgICAgICAgaWYgKCAkdGhpcy0+aXNfc3ViX2ZpZWxkICkgewogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJfcm93X251bWJlcicsICR0aGlzLT5zdWJfcm93X251bWJlciApOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJGaWVsZE5hbWUnLCAkdGhpcy0+c3ViX3BhcmVudF9ibG9jay4nW3JfJy4kdGhpcy0+c3ViX3Jvd19udW1iZXIuJ11bJy4KICAgICAgICAgICAgICAgICR0aGlzLT5ibG9ja19uYW1lLiddJyApOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJGaWVsZElkJywgJHRoaXMtPnN1Yl9wYXJlbnRfYmxvY2suJ19yXycuJHRoaXMtPnN1Yl9yb3dfbnVtYmVyLidfJy4KICAgICAgICAgICAgICAgICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgJGNsYXNzIC49ICcgcmVwZWF0ZXItZmllbGQnOwogICAgICAgIH0KICAgICAgICAkdHBsLT5hc3NpZ24oJ2NsYXNzJywgJGNsYXNzKTsgCiAgICAgICAgLy8gJHRwbC0+YXNzaWduKCdzdXBwb3J0ZWRfZXh0ZW5zaW9ucycsIHNlbGY6OlNVUFBPUlRFRF9FWFRFTlNJT05TKTsgCgogICAgICAgIC8vIHByZXZpZXcKICAgICAgICBpZiAoICR0aGlzLT5vcHRpb25zWydwcmV2aWV3J10gKSB7ICAvLyBnZXQgdGh1bWJuYWlsCiAgICAgICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICAgICAgJHRvcF9kaXIgPSAkdGhpcy0+b3B0aW9uc1snZGlyJ10gPyAkdGhpcy0+b3B0aW9uc1snZGlyJ10gOiAnJzsKICAgICAgICAgICAgLy8gbm90ZTogdmFsdWUgaW5jbHVkZXMgJHRvcF9kaXIKICAgICAgICAgICAgJGltZ19zcmMgPSBjbXNfam9pbl9wYXRoKCAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwgJHRoaXMtPnZhbHVlICk7CiAgICAgICAgICAgICR0aHVtYm5haWxfdXJsID0gZWNiMl9GaWxlVXRpbHM6OmdldF90aHVtYm5haWxfdXJsKCRpbWdfc3JjLCAKICAgICAgICAgICAgICAgICR0aGlzLT5vcHRpb25zWyd0aHVtYm5haWxfd2lkdGgnXSwgJHRoaXMtPm9wdGlvbnNbJ3RodW1ibmFpbF9oZWlnaHQnXSk7CiAgICAgICAgICAgICRhamF4X3VybCA9ICR0aGlzLT5tb2QtPmNyZWF0ZV91cmwoJ20xXycsICdhZG1pbl9hamF4X2dldF90aHVtYicpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ3RodW1ibmFpbF91cmwnLCAkdGh1bWJuYWlsX3VybCk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignYWpheF91cmwnLCAkYWpheF91cmwpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ3RvcF9kaXInLCAkdG9wX2Rpcik7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3RodW1ibmFpbF93aWR0aCcsICR0aGlzLT5vcHRpb25zWyd0aHVtYm5haWxfd2lkdGgnXSApOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICd0aHVtYm5haWxfaGVpZ2h0JywgJHRoaXMtPm9wdGlvbnNbJ3RodW1ibmFpbF9oZWlnaHQnXSApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR0cGwtPmZldGNoKCk7CiAgIAogICAgfQoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/file_selector/help.ecb2fd_file_selector.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfZmlsZV9zZWxlY3Rvci50cGwgKn0KPHA+VGhlIGZpbGVfc2VsZWN0b3IgZmllbGQgZW5hYmxlcyBhIGZpbGUgdG8gYmUgc2VsZWN0ZWQgZnJvbSBhIHNldCBkaXJlY3RvcnkgYW5kIGNhbiBvcHRpb25hbGx5IHNob3cgYSB0aHVtYm5haWwuPC9wPgoKPGZpZWxkc2V0PgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWydmaWxldHlwZXMnPT4ianBnLGdpZixwbmciLCAnZXhjbHVkZXByZWZpeCc9PiJ0aHVtYl8iLCAncHJldmlldyc9PjEsICdyZWN1cnNlJz0+MV0pfQo8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9ZmlsZV9zZWxlY3RvciBibG9jaz10ZXN0MTAgZmlsZXR5cGVzPSdqcGcsZ2lmLHBuZycgZXhjbHVkZXByZWZpeD0ndGh1bWJfJyByZWN1cnNlPTEgcHJldmlldz0xfXsvbGl0ZXJhbH08L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdmaWxlX3NlbGVjdG9yJzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5maWxldHlwZXMgKHJlcXVpcmVkKSAtIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpbGUgZXh0ZW5zaW9ucyB0byBkaXNwbGF5LCBlLmcuICdqcGcsZ2lmLHBuZyc8L2xpPgogICAgPGxpPmRpciAob3B0aW9uYWwpIC0gc3BlY2lmeSBhIHN1YiBkaXJlY3Rvcnkgb2YgJ3VwbG9hZHMnIHRvIHVzZTwvbGk+CiAgICA8bGk+ZXhjbHVkZXByZWZpeCAob3B0aW9uYWwpIC0gZXhjbHVkZSBhbnkgZmlsZXMgdGhhdCBoYXZlIHRoaXMgcHJlZml4LCBlLmcuICd0aHVtYl8nPC9saT4KICAgIDxsaT5yZWN1cnNlIChvcHRpb25hbCkgLSBpZiBzZXQgd2lsbCBzaG93IGFsbCBmaWxlcyBpbiBzdWIgZGlyZWN0b3JpZXM8L2xpPgogICAgPGxpPnNvcnRmaWxlcyAob3B0aW9uYWwpIC0gd2lsbCBzb3J0IGZpbGVzIGJ5IGZpbGVuYW1lPC9saT4KICAgIDxsaT5wcmV2aWV3IChvcHRpb25hbCkgLSB3aWxsIHNob3cgYSB0aHVtYm5haWwgb2YgdGhlIGltYWdlIC0gb25seSBmb3IgaW1hZ2VzPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4K]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/file_selector/input.ecb2fd_file_selector.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2ZpbGVfc2VsZWN0b3IudHBsIC0gdjEuMCAtIDI1SnVuMjIgCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKip9CntpZiAhZW1wdHkoJGRlc2NyaXB0aW9uKX0KICAgICAgICB7JGRlc2NyaXB0aW9ufTxicj4Key9pZn0KCiAgICA8ZGl2IGNsYXNzPSJlY2JfZmlsZV9zZWxlY3RvciI+CiAgICB7aWYgJGlzX3N1Yl9maWVsZH0KICAgICAgICB7aWYgaXNfbnVsbCgkc3ViX3Jvd19udW1iZXIpfXsqIG91dHB1dCB0ZW1wbGF0ZSBmaWVsZCAqfQogICAgICAgICAgICA8c2VsZWN0IGlkPSIiIG5hbWU9IiIgY2xhc3M9InskY2xhc3N9IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ7JGJsb2NrX25hbWV9Ij4KICAgICAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kdmFsdWV9CiAgICAgICAgICAgIDwvc2VsZWN0PgoKICAgICAgICB7ZWxzZX0gICAgCiAgICAgICAgICAgIDxzZWxlY3QgaWQ9Inskc3ViRmllbGRJZH0iIG5hbWU9Inskc3ViRmllbGROYW1lfSIgY2xhc3M9InskY2xhc3N9Ij4KICAgICAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kdmFsdWV9CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgIHsvaWZ9CgogICAge2Vsc2V9CiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9ImNtc19kcm9wZG93biIgbmFtZT0ieyRibG9ja19uYW1lfSI+CiAgICAgICAgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG9wdHMgc2VsZWN0ZWQ9JHZhbHVlfQogICAgICAgICAgICA8L3NlbGVjdD4KICAgIHsvaWZ9Cgp7KiB7aWYgJHByZXZpZXd9ICAgICAgCiAgICAgICAgPGltZyBzdHlsZT0ibWF4LXdpZHRoOjEzMHB4OyIgY2xhc3M9ImVjYl9maWxlX3NlbGVjdG9yX3ByZXZpZXcge2lmICFlbXB0eSgkdmFsdWUpfXNob3d7L2lmfSIge2lmICFlbXB0eSgkdmFsdWUpfXNyYz0ieyR1cGxvYWRzX3VybH0veyR2YWx1ZX0iey9pZn0gYWx0PSJ7JGJsb2NrX25hbWV9IiBkYXRhLXVwbG9hZHN1cmw9InskdXBsb2Fkc191cmx9IiBkYXRhLXN1cHBvcnRlZC1leHRlbnNpb25zPSJ7JHN1cHBvcnRlZF9leHRlbnNpb25zfSI+CnsvaWZ9ICp9CgogICAge2lmICRwcmV2aWV3fQogICAgICAgIDxpbWcgY2xhc3M9ImVjYl9maWxlX3NlbGVjdG9yX3ByZXZpZXcge2lmICFlbXB0eSgkdGh1bWJuYWlsX3VybCl9c2hvd3svaWZ9IiB7aWYgIWVtcHR5KCR0aHVtYm5haWxfdXJsKX1zcmM9InskdGh1bWJuYWlsX3VybH0/eyRzbWFydHkubm93fSJ7L2lmfSBhbHQ9InskYmxvY2tfbmFtZX0iIGRhdGEtYWpheC11cmw9InskYWpheF91cmx9IiBkYXRhLXRvcC1kaXI9InskdG9wX2Rpcn0iIGRhdGEtdGh1bWJuYWlsLXdpZHRoPSJ7JHRodW1ibmFpbF93aWR0aH0iIGRhdGEtdGh1bWJuYWlsLWhlaWdodD0ieyR0aHVtYm5haWxfaGVpZ2h0fSI+CiAgICB7L2lmfQoKICAgIDwvZGl2PgoKCg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/gallery/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/gallery/class.ecb2fd_gallery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfZ2FsbGVyeSBleHRlbmRzIGVjYjJfRmllbGREZWZCYXNlIAp7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkPTApIAoJewkKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCAkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCApOwoKICAgICAgICAkdGhpcy0+Z2V0X3ZhbHVlcyggJHZhbHVlICk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucyggJHBhcmFtcyApOyAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKICAgICAgICAKICAgICAgICAkdGhpcy0+Y3JlYXRlX3N1Yl9maWVsZHMoICRwYXJhbXMgKTsgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoJfQoKCgogICAgLyoqCiAgICAgKiAgT3ZlcmlkZXMgcGFyZW50IGNsYXNzCiAgICAgKiAgc2V0cyAkdGhpcy0+dmFsdWUgb3IgJHRoaXMtPnZhbHVlcyBmcm9tICR2YWx1ZSBzYXZlZCBmb3IgdGhlIGNvbnRlbnQgYmxvY2sgLSBqc29uIG9yIHN0cmluZwogICAgICoKICAgICAqICBAcGFyYW0gYXJyYXkgJHZhbHVlIC0gc2F2ZWQgY29udGVudCBibG9jayB2YWx1ZQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3ZhbHVlcygkdmFsdWUpIAogICAgewogICAgICAgIGlmICggZW1wdHkoJHZhbHVlKSApIHJldHVybjsKCiAgICAgICAgJGpzb25fZGF0YSA9IGpzb25fZGVjb2RlKCR2YWx1ZSk7CiAgICAgICAgaWYgKCBqc29uX2xhc3RfZXJyb3IoKT09PUpTT05fRVJST1JfTk9ORSAmJiAhaXNfaW50ZWdlcigkanNvbl9kYXRhKSAmJiAKICAgICAgICAgICAgIGlzc2V0KCRqc29uX2RhdGEtPnN1Yl9maWVsZHMpICkgewogICAgICAgICAgICAvLyBKU09OIGlzIHZhbGlkIC0gZ2FsbGVyeSB1c2VzICRqc29uX2RhdGEtPnN1Yl9maWVsZHMKICAgICAgICAgICAgJHRoaXMtPmpzb25fZGF0YSA9ICRqc29uX2RhdGE7CiAgICAgICAgICAgICR0aGlzLT51c2VfanNvbl9mb3JtYXQgPSBUUlVFOwogICAgICAgICAgICAkdGhpcy0+dmFsdWVzID0gJGpzb25fZGF0YS0+c3ViX2ZpZWxkczsKCiAgICAgICAgfSBlbHNlIHsgLy8gYnV0IEpTT04gbm90IHZhbGlkCiAgICAgICAgICAgICR0aGlzLT52YWx1ZXNbXSA9ICR2YWx1ZTsKCiAgICAgICAgfSAKICAgIH0KCgoKICAgIC8qKgogICAgICogIHNldHMgdGhlIGFsbG93ZWQgcGFyYW1ldGVycyBmb3IgdGhpcyBmaWVsZCB0eXBlCiAgICAgKgogICAgICogICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgLSBhcnJheSBvZiBwYXJhbWV0ZXJfbmFtZXMgPT4gWyBkZWZhdWx0X3ZhbHVlLCBmaWx0ZXJfdHlwZSBdCiAgICAgKiAgICAgIHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HLCBGSUxURVJfVkFMSURBVEVfSU5ULCBGSUxURVJfVkFMSURBVEVfQk9PTEVBTiwgRklMVEVSX1NBTklUSVpFX0VNQUlMIAogICAgICogICAgICBzZWU6IGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2ZpbHRlci5maWx0ZXJzLnBocAogICAgICogICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgLSBvcHRpb25hbGx5IGFsbG93IGFueSBvdGhlciBwYXJhbWV0ZXJzIHRvIGJlIGluY2x1ZGVkLCBlLmcuIG1vZHVsZSBjYWxscwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkX3BhcmFtZXRlcnMoKSAKICAgIHsKICAgICAgICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAnZGlyJyAgICAgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdyZXNpemVfd2lkdGgnICAgICAgPT4gWydkZWZhdWx0JyA9PiAwLCAgICAgICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9JTlRdLAogICAgICAgICAgICAncmVzaXplX2hlaWdodCcgICAgID0+IFsnZGVmYXVsdCcgPT4gMCwgICAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ3Jlc2l6ZV9tZXRob2QnICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAndGh1bWJuYWlsX3dpZHRoJyAgID0+IFsnZGVmYXVsdCcgPT4gMCwgICAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ3RodW1ibmFpbF9oZWlnaHQnICA9PiBbJ2RlZmF1bHQnID0+IDAsICAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0lOVF0sCiAgICAgICAgICAgICdtYXhfZmlsZXMnICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAwLCAgICAgICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9JTlRdLAogICAgICAgICAgICAnYXV0b19hZGRfZGVsZXRlJyAgID0+IFsnZGVmYXVsdCcgPT4gdHJ1ZSwgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfQk9PTEVBTl0sCiAgICAgICAgICAgICdkZWZhdWx0X3ZhbHVlJyAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwgCiAgICAgICAgICAgICdhZG1pbl9ncm91cHMnICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX0RFRkFVTFRdCiAgICAgICAgXTsKICAgICAgICAvLyAkdGhpcy0+cGFyYW1ldGVyX2FsaWFzZXMgPSBbICdhbGlhcycgPT4gJ3BhcmFtZXRlcicgXTsKICAgICAgICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zID0gRkFMU0U7ICAgIC8vIGRlZmF1bHQ6IHRydWUKICAgICAgICAkdGhpcy0+dXNlX2pzb25fZm9ybWF0ID0gVFJVRTsgICAgIC8vIGRlZmF1bHQ6IEZBTFNFIC0gY2FuIG92ZXJyaWRlIGUuZy4gJ2dyb3VwcycgdHlwZQogICAgICAgICR0aGlzLT5zZWFyY2hhYmxlX2NvbnRlbnQgPSBUUlVFOwogICAgICAgICR0aGlzLT5hbGxvd2VkX3N1Yl9maWVsZHMgPSBbCiAgICAgICAgICAgICd0ZXh0aW5wdXQnLAogICAgICAgICAgICAndGV4dGFyZWEnLAogICAgICAgICAgICAnZHJvcGRvd24nLAogICAgICAgICAgICAnY2hlY2tib3gnLAogICAgICAgICAgICAncmFkaW8nLAogICAgICAgICAgICAnY29sb3JfcGlja2VyJywKICAgICAgICAgICAgJ2RhdGVfdGltZV9waWNrZXInLAogICAgICAgICAgICAnZmlsZV9zZWxlY3RvcicsCiAgICAgICAgICAgICdmaWxlX3BpY2tlcicsCiAgICAgICAgICAgICdwYWdlX3BpY2tlcicsCiAgICAgICAgICAgICdnYWxsZXJ5X3BpY2tlcicsCiAgICAgICAgICAgICdtb2R1bGVfcGlja2VyJyAgICAgCiAgICAgICAgXTsKICAgICAgICAkdGhpcy0+c3ViX2ZpZWxkc19pZ25vcmVkX3BhcmFtcyA9IFsKICAgICAgICAgICAgJ2Fzc2lnbicsCiAgICAgICAgICAgICdyZXBlYXRlcicsCiAgICAgICAgICAgICdtYXhfYmxvY2tzJwogICAgICAgIF07CiAgICAgICAgJHRoaXMtPnN1Yl9maWVsZHNfaWdub3JlZF9uYW1lcyA9IFsKICAgICAgICAgICAgJ2ZpbGVuYW1lJywKICAgICAgICAgICAgJ2ZpbGVfbG9jYXRpb24nCiAgICAgICAgXTsKCgogICAgfQoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBjb21wbGV0ZSBjb250ZW50IGJsb2NrIAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKSAKICAgIHsKICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICYmIAogICAgICAgICAgICAgISR0aGlzLT5pc192YWxpZF9ncm91cF9tZW1iZXIoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lY2IyX2hpZGRlbl9maWVsZCgpOyAKICAgICAgICB9CgogICAgICAgICRsb2NhdGlvbiA9IGVjYjJfRmlsZVV0aWxzOjpFQ0IySW1hZ2VzVXJsKCAkdGhpcy0+YmxvY2tfbmFtZSwgJHRoaXMtPmlkLCAnJywgJHRoaXMtPm9wdGlvbnNbJ2RpciddICk7CiAgICAgICAgJGRpciA9IGVjYjJfRmlsZVV0aWxzOjpFQ0IySW1hZ2VzUGF0aCggJHRoaXMtPmJsb2NrX25hbWUsICR0aGlzLT5pZCwgJycsICR0aGlzLT5vcHRpb25zWydkaXInXSApOwogICAgICAgIGlmICggJHRoaXMtPm9wdGlvbnNbJ2F1dG9fYWRkX2RlbGV0ZSddICkgewogICAgICAgICAgICBlY2IyX0ZpbGVVdGlsczo6YXV0b0FkZERpckltYWdlcyggJHRoaXMtPnZhbHVlcywgJGRpciwgJHRoaXMtPm9wdGlvbnNbJ3RodW1ibmFpbF93aWR0aCddLCAkdGhpcy0+b3B0aW9uc1sndGh1bWJuYWlsX2hlaWdodCddKTsKICAgICAgICB9CiAgICAgICAgJHJlc2l6ZV9tZXRob2QgPSAoJHRoaXMtPm9wdGlvbnNbJ3Jlc2l6ZV9tZXRob2QnXT09J2Nyb3AnKSA/ICdjcm9wJyA6ICcnOyAvLyBkZWZhdWx0OiAnY29udGFpbicKICAgICAgICAkdGh1bWJuYWlsX3dpZHRoID0gJHRoaXMtPm9wdGlvbnNbJ3RodW1ibmFpbF93aWR0aCddOwogICAgICAgICR0aHVtYm5haWxfaGVpZ2h0ID0gJHRoaXMtPm9wdGlvbnNbJ3RodW1ibmFpbF9oZWlnaHQnXTsKICAgICAgICBlY2IyX0ZpbGVVdGlsczo6Z2V0X3JlcXVpcmVkX3RodW1ibmFpbF9zaXplKCAkdGh1bWJuYWlsX3dpZHRoLCAkdGh1bWJuYWlsX2hlaWdodCApOwogICAgICAgICRtYXhfZmlsZXMgPSAkdGhpcy0+b3B0aW9uc1snbWF4X2ZpbGVzJ107CiAgICAgICAgaWYgKCAkbWF4X2ZpbGVzPjAgKSB7CiAgICAgICAgICAgICRtYXhfZmlsZXNfdGV4dCA9ICR0aGlzLT5tb2QtPkxhbmcoICdtYXhfZmlsZXNfdGV4dCcsICRtYXhfZmlsZXMgKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkbWF4X2ZpbGVzX3RleHQgPSAkdGhpcy0+bW9kLT5MYW5nKCAnbWF4X2ZpbGVzX3VubGltaXRlZF90ZXh0JyApOwogICAgICAgIH0KCiAgICAgICAgJGFjdGlvbnBhcm1zID0gW107CiAgICAgICAgJGFjdGlvbl91cmwgPSAkdGhpcy0+bW9kLT5jcmVhdGVfdXJsKCAnbTFfJywgJ2RvX1VwbG9hZEZpbGVzJywgJycsICRhY3Rpb25wYXJtcyk7CiAgICAgICAgJGZpbGVuYW1lcyA9IFtdOwogICAgICAgIGZvcmVhY2ggKCR0aGlzLT52YWx1ZXMgYXMgJGdhbGxlcnlfaXRlbSkgewogICAgICAgICAgICBpZiAoICFlbXB0eSgkZ2FsbGVyeV9pdGVtLT5maWxlbmFtZSkgKSAkZmlsZW5hbWVzW10gPSAkZ2FsbGVyeV9pdGVtLT5maWxlbmFtZTsKICAgICAgICB9CiAgICAgICAgJGpzb25fZmlsZW5hbWVzID0ganNvbl9lbmNvZGUoJGZpbGVuYW1lcywgSlNPTl9IRVhfQVBPUyk7CgogICAgICAgIGlmICgkdGhpcy0+ZXJyb3IpIHJldHVybiAkdGhpcy0+bW9kLT5lcnJvcl9tc2coJHRoaXMtPmVycm9yKTsKCiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdibG9ja19uYW1lJywgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICd2YWx1ZXMnLCAkdGhpcy0+dmFsdWVzICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnanNvbl9maWxlbmFtZXMnLCAkanNvbl9maWxlbmFtZXMgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJfZmllbGRzJywgJHRoaXMtPnN1Yl9maWVsZHMgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdsb2NhdGlvbicsICRsb2NhdGlvbiApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3Jlc2l6ZV93aWR0aCcsICR0aGlzLT5vcHRpb25zWydyZXNpemVfd2lkdGgnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3Jlc2l6ZV9oZWlnaHQnLCAkdGhpcy0+b3B0aW9uc1sncmVzaXplX2hlaWdodCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAncmVzaXplX21ldGhvZCcsICRyZXNpemVfbWV0aG9kICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndGh1bWJuYWlsX3dpZHRoJywgJHRodW1ibmFpbF93aWR0aCApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3RodW1ibmFpbF9oZWlnaHQnLCAkdGh1bWJuYWlsX2hlaWdodCApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ21heF9maWxlcycsICRtYXhfZmlsZXMgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdtYXhfZmlsZXNfdGV4dCcsICRtYXhfZmlsZXNfdGV4dCApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3RodW1ibmFpbF9wcmVmaXgnLCBlY2IyX0ZpbGVVdGlsczo6VEhVTUJfUFJFRklYICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndHlwZScsICR0aGlzLT5maWVsZCApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2FjdGlvbl91cmwnLCAkYWN0aW9uX3VybCApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2Rlc2NyaXB0aW9uJywgJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10gKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKCiAgICAvKioKICAgICAqICBEYXRhIGVudGVyZWQgYnkgdGhlIGVkaXRvciBpcyBwcm9jZXNzZWQgYmVmb3JlIGl0cyBzYXZlZCBpbiBwcm9wcyB0YWJsZQogICAgICogIE1ldGhvZCBjYW4gYmUgb3ZlcmlkZGVuIGJ5IHRoaXMgY2xhc3MgKHVzdWFsbHkgYWxzbyBjYWxscyBwYXJlbnQgY2xhc3MpCiAgICAgKiAgCiAgICAgKiAgQHJldHVybiBzdHJpbmcgZm9ybWF0dGVkIGpzb24gY29udGFpbmluZyBhbGwgZmllbGQgZGF0YSByZWFkeSB0byBiZSBzYXZlZCAmIG91dHB1dAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfdmFsdWUoICRpbnB1dEFycmF5ICkgCiAgICB7CiAgICAgICAgaWYgKCBpc19hcnJheSgkaW5wdXRBcnJheSkgKSB7CiAgICAgICAgICAgIC8vIGlmIGEgZ2FsbGVyeSBpdGVtIGRvZXMgbm90IGluY2x1ZGUgZmlsZW5hbWUgKHNob3VsZCBub3QgaGFwcGVuKSBvcgogICAgICAgICAgICAvLyAgICAgIGtleSBpcyAnZW1wdHknIHJlbW92ZSB0aGF0IGdhbGxlcnkgaXRlbQogICAgICAgICAgICBmb3JlYWNoICgkaW5wdXRBcnJheSBhcyAkcm93X251bWJlciA9PiAkZ2FsbGVyeUFycmF5KSB7CiAgICAgICAgICAgICAgICBpZiAoIGVtcHR5KCRnYWxsZXJ5QXJyYXlbJ2ZpbGVuYW1lJ10pIHx8ICRyb3dfbnVtYmVyPT0nZW1wdHknICkgewogICAgICAgICAgICAgICAgICAgIHVuc2V0KCAkaW5wdXRBcnJheVskcm93X251bWJlcl0gKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIGVtcHR5KCRpbnB1dEFycmF5KSApICRpbnB1dEFycmF5ID0gYXJyYXkoJ3N1Yl9maWVsZHMnID0+IFtdKTsKCiAgICAgICAgJHRoaXMtPmZpZWxkX29iamVjdCA9ICR0aGlzLT5jcmVhdGVfZmllbGRfb2JqZWN0KCAkaW5wdXRBcnJheSApOwogICAgICAgIC8vIGFkZCAnZmlsZV9sb2NhdGlvbicgZmllbGQgdG8gYWxsIGdhbGxlcnkgaXRlbXMKICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+ZmllbGRfb2JqZWN0LT5zdWJfZmllbGRzKSApIHsKICAgICAgICAgICAgJGdhbGxlcnlSZWxhdGl2ZVVybCA9IGVjYjJfRmlsZVV0aWxzOjpFQ0IySW1hZ2VzUmVsYXRpdmVVcmwoICR0aGlzLT5ibG9ja19uYW1lLCAkdGhpcy0+aWQsICcnLCAKICAgICAgICAgICAgICAgICR0aGlzLT5vcHRpb25zWydkaXInXSApOwogICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZmllbGRfb2JqZWN0LT5zdWJfZmllbGRzIGFzICYkcm93KSB7CiAgICAgICAgICAgICAgICBpZiAoICFlbXB0eSgkcm93WydmaWxlbmFtZSddKSApICRyb3dbJ2ZpbGVfbG9jYXRpb24nXSA9ICRnYWxsZXJ5UmVsYXRpdmVVcmw7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGhhbmRsZSBtb3ZpbmcgZmlsZXMgZnJvbSBfdG1wIGludG8gZ2FsbGVyeURpciwgY3JlYXRlIHRodW1ibmFpbHMgJiBkZWxldGUgYW55IHVud2FudGVkIGZpbGVzCiAgICAgICAgJGdhbGxlcnlEaXIgPSBlY2IyX0ZpbGVVdGlsczo6RUNCMkltYWdlc1BhdGgoICR0aGlzLT5ibG9ja19uYW1lLCAkdGhpcy0+aWQsICcnLCAKICAgICAgICAgICAgJHRoaXMtPm9wdGlvbnNbJ2RpciddICk7CiAgICAgICAgJGZpbGVuYW1lcyA9IFtdOwogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5maWVsZF9vYmplY3QtPnN1Yl9maWVsZHMgYXMgJGZpbGVBcnJheSkgewogICAgICAgICAgICBpZiAoICFlbXB0eSgkZmlsZUFycmF5WydmaWxlbmFtZSddKSApICRmaWxlbmFtZXNbXSA9ICRmaWxlQXJyYXlbJ2ZpbGVuYW1lJ107CiAgICAgICAgfQogICAgICAgIGVjYjJfRmlsZVV0aWxzOjp1cGRhdGVHYWxsZXJ5RGlyKCAkZmlsZW5hbWVzLCAkZ2FsbGVyeURpciwgJHRoaXMtPm9wdGlvbnNbJ2F1dG9fYWRkX2RlbGV0ZSddLCAKICAgICAgICAgICAgJHRoaXMtPm9wdGlvbnNbJ3RodW1ibmFpbF93aWR0aCddLCAkdGhpcy0+b3B0aW9uc1sndGh1bWJuYWlsX2hlaWdodCddICk7CiAgICAKICAgICAgICByZXR1cm4gJHRoaXMtPkVDQjJfanNvbl9lbmNvZGVfZmllbGRfb2JqZWN0KCk7IAogICAgfQoKCgp9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/gallery/help.ecb2fd_gallery.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfZ2FsbGVyeS50cGwgKn0KPHA+VGhlIGdhbGxlcnkgZmllbGQgZW5hYmxlcyBtdWx0aXBsZSBpbWFnZXMgdG8gYWRkZWQgYnkgZHJhZ2dpbmcgYW5kIGRyb3BwaW5nIG9yIHVwbG9hZGluZy4gVGh1bWJuYWlscyBvZiB0aGUgaW1hZ2VzIGFyZSBkaXNwbGF5ZWQgYW5kIGNyZWF0ZWQgb24gdGhlIHNlcnZlciBhbmQgaW1hZ2VzIGNhbiBvcHRpb25hbGx5IGJlIGF1dG9tYXRpY2FsbHkgcmVzaXplZCBiZWZvcmUgdGhleSBhcmUgdXBsb2FkZWQuIEVhY2ggaW1hZ2UgY2FuIGFsc28gaGF2ZSBtdWx0aXBsZSBzdWItZmllbGRzLiBJZiBtb3JlIHRoYW4gMSBpbWFnZSBpcyB1cGxvYWRlZCB0aGV5IGNhbiBhbHNvIGJlIGRyYWdnZWQgYW5kIGRyb3BwZWQgdG8gcmVvcmRlciB0aGUgaW1hZ2VzLjwvcD4KCjxmaWVsZHNldD4KICAgIHskZmllbGRkZWYtPmdldF9kZW1vX2lucHV0KFsnYXNzaWduJyA9PiAndGVzdDIwYScsCiAgICAgICAgJ3N1YjFfZmllbGQnID0+ICd0ZXh0aW5wdXQnLCAnc3ViMV9uYW1lJyA9PiAndGl0bGUnLCAnc3ViMV9sYWJlbCcgPT4gJ1RpdGxlJywKICAgICAgICAnc3ViMl9maWVsZCcgPT4gJ2VkaXRvcicsICdzdWIyX25hbWUnID0+ICdkZXNjcmlwdGlvbicsICdzdWIyX2xhYmVsJyA9PiAnRGVzY3JpcHRpb24nLAogICAgICAgICdzdWIzX2ZpZWxkJyA9PiAncGFnZV9waWNrZXInLCAnc3ViM19uYW1lJyA9PiAnbGlua190bycsICdzdWIzX2xhYmVsJyA9PiAnU2VsZWN0IGEgcGFnZScKICAgIF0pfQo8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9Z2FsbGVyeSBibG9jaz10ZXN0MjBhIGxhYmVsPSdBIHNhbXBsZSBHYWxsZXJ5JyBhc3NpZ249dGVzdDIwYQpzdWIxX2ZpZWxkPXRleHRpbnB1dCBzdWIxX25hbWU9dGl0bGUgc3ViMV9sYWJlbD0nVGl0bGUnCnN1YjJfZmllbGQ9ZWRpdG9yIHN1YjJfbmFtZT1kZXNjcmlwdGlvbiBzdWIyX2xhYmVsPSdEZXNjcmlwdGlvbicKc3ViM19maWVsZD1wYWdlX3BpY2tlciBzdWIzX25hbWU9bGlua190byBzdWIzX2xhYmVsPSdTZWxlY3QgYSBwYWdlJ317L2xpdGVyYWx9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnZ2FsbGVyeSc8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+ZGlyIChvcHRpb25hbCkgLSBhIHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGltYWdlX3VwbG9hZHNfcGF0aCAoZGVmYXVsdCBpczogL3VwbG9hZHMvaW1hZ2VzKSwgaWYgbm90IHNldCBhIHVuaXF1ZSBkaXJlY3RvcnkgaXMgY3JlYXRlZCBmb3IgdGhpcyBjb250ZW50IGJsb2NrIGZvciBlYWNoIHBhZ2UuPC9saT4KICAgIDxsaT5yZXNpemVfd2lkdGggKG9wdGlvbmFsKSAtIGlmIHNldCwgaW1hZ2VzIHdpbGwgYmUgcmVzaXplZCB0byB0aGlzIHdpZHRoIGJlZm9yZSBiZWluZyB1cGxvYWRlZC4gSWYgb25seSBvbmUgb2YgcmVzaXplX3dpZHRoIG9yIHJlc2l6ZV9oZWlnaHQgaXMgc2V0LCB0aGUgb3JpZ2luYWwgYXNwZWN0IHJhdGlvIG9mIHRoZSBpbWFnZSBpcyBwcmVzZXJ2ZWQuPC9saT4KICAgIDxsaT5yZXNpemVfaGVpZ2h0IChvcHRpb25hbCkgLSBpZiBzZXQsIGltYWdlcyB3aWxsIGJlIHJlc2l6ZWQgdG8gdGhpcyBoZWlnaHQgYmVmb3JlIGJlaW5nIHVwbG9hZGVkLiBJZiBvbmx5IG9uZSBvZiByZXNpemVfd2lkdGggb3IgcmVzaXplX2hlaWdodCBpcyBzZXQsIHRoZSBvcmlnaW5hbCBhc3BlY3QgcmF0aW8gb2YgdGhlIGltYWdlIGlzIHByZXNlcnZlZC48L2xpPgogICAgPGxpPnJlc2l6ZV9tZXRob2QgKG9wdGlvbmFsKSAtICdjb250YWluJyAoZGVmYXVsdCksIG9yICdjcm9wJyBjYW4gYmUgdXNlZC48L2xpPgogICAgPGxpPnRodW1ibmFpbF93aWR0aCAob3B0aW9uYWwpIC0gc2V0cyB0aHVtYm5haWwgd2lkdGggZm9yIHRoaXMgZmllbGRzIHRodW1ibmFpbHMuIElmIHRodW1ibmFpbF93aWR0aCBpcyBzZXQsIGJ1dCB0aHVtYm5haWxfaGVpZ2h0IGlzIG5vdCwgdGhlIHJhdGlvIG9mIHRoZSBpbWFnZSB3aWxsIGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRodW1ibmFpbF9oZWlnaHQuIFRoZXNlIHNldHRpbmdzIHdpbGwgZGVmYXVsdCB0byB0aGUgRUNCMiBUaHVtYm5haWwgV2lkdGggJiBIZWlnaHQgb3B0aW9ucywgb3IgQ01TTVMgVGh1bWJuYWlsIFdpZHRoICYgSGVpZ2h0IHNldHRpbmdzLiBSZWNvbW1lbmRlZCBtaW5pbXVtIHdpZHRoIDEwNCAocHgpLjwvbGk+CiAgICA8bGk+dGh1bWJuYWlsX2hlaWdodCAob3B0aW9uYWwpIC0gc2V0cyB0aHVtYm5haWwgaGVpZ2h0IGZvciB0aGlzIGZpZWxkcyB0aHVtYm5haWxzLiBJZiB0aHVtYm5haWxfaGVpZ2h0IGlzIHNldCwgYnV0IHRodW1ibmFpbF93aWR0aCBpcyBub3QsIHRoZSByYXRpbyBvZiB0aGUgaW1hZ2Ugd2lsbCBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aHVtYm5haWxfd2lkdGguIFRoZXNlIHNldHRpbmdzIHdpbGwgZGVmYXVsdCB0byB0aGUgRUNCMiBUaHVtYm5haWwgV2lkdGggJiBIZWlnaHQgb3B0aW9ucywgb3IgQ01TTVMgVGh1bWJuYWlsIFdpZHRoICYgSGVpZ2h0IHNldHRpbmdzLjwvbGk+CiAgICA8bGk+bWF4X2ZpbGVzIChvcHRpb25hbCkgLSBzZXRzIGEgbWF4aW11bSBudW1iZXIgb2YgZmlsZXMgdGhhdCBjYW4gYmUgdXBsb2FkZWQ8L2xpPgogICAgPGxpPmF1dG9fYWRkX2RlbGV0ZSAob3B0aW9uYWwpIGRlZmF1bHQ6dHJ1ZSAtIHdpbGwgYXV0b21hdGljYWxseSBkZWxldGUgdW51c2VkIGZpbGVzICYgdGh1bWJuYWlscyBmcm9tIHRoZSBkaXJlY3Rvcnk8L2xpPgogICAgPGxpPmRlZmF1bHRfdmFsdWUgKG9wdGlvbmFsKSAtIGluaXRpYWwgdmFsdWUgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD48YnI+Cgo8cD5TdWIgZmllbGQgcGFyYW1ldGVyczo8L3A+CjxwPkVhY2ggaW1hZ2UgY2FuIGhhdmUgbXVsdGlwbGUgc3ViIGZpZWxkcywgdGhhdCBjYW4gYmUgc3BlY2lmaWVkIHVzaW5nICdzdWJYX3l5eXl5JyBwYXJhbWV0ZXJzIHdoZXJlIFggaXMgYSBudW1iZXIgYW5kIHl5eXl5IGlzIHRoZSBwYXJhbWV0ZXIuIGUuZy4gJ3N1YjFfbmFtZT10ZXh0aW5wdXQnLiBFYWNoIHN1YiBmaWVsZHMgaGFzIHJlcXVpcmVkIGFuZCBvcHRpb25hbCBwYXJhbWV0ZXJzPC9wPgo8dWw+CiAgICA8bGk+c3ViWF9maWVsZCAocmVxdWlyZWQpIC0gbXVzdCBiZSBvbmUgb2YgdGhlIHN1cHBvcnRlZCBzdWIgZmllbGQgdHlwZXM6PGJyPgogICAgICAgIHtmb3JlYWNoICRmaWVsZGRlZi0+YWxsb3dlZF9zdWJfZmllbGRzIGFzICRhbGxvd2VkX3R5cGVzfXskYWxsb3dlZF90eXBlc30sIHsvZm9yZWFjaH0KICAgIDwvbGk+CiAgICA8bGk+c3ViWF9uYW1lIChyZXF1aXJlZCkgLSB1c2VkIHJlZmVyZW5jZSB0aGUgc3ViIGZpZWxkIC0gbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyIGZvbGxvd2VkIGJ5IGFueSBudW1iZXIgb2YgbGV0dGVycywgbnVtYmVycyBvciB1bmRlcnNjb3JlcyAnXycuPC9saT4KICAgIDxsaT5zdWJYXzxpPnBhcmFtZXRlcjwvaT4gKG9wdGlvbmFsKSAtIHdoZXJlICc8aT5wYXJhbWV0ZXI8L2k+JyBpcyBhbnkgb2YgdGhlIHBhcmFtZXRlcnMgdGhhdCB3b3JrIHdpdGggdGhhdCBmaWVsZCB0eXBlLiBlLmcuIGZvciB0ZXh0aW5wdXQgc3ViIGZpZWxkIHRoZSBmb2xsb3dpbmcgY2FuIGJlIHVzZWQ6PGJyPgogICAgICAgIDxwcmU+c3ViMV9maWVsZD10ZXh0aW5wdXQgc3ViMV9uYW1lPXRleHQxIHN1YjFfc2l6ZT0yMCBzdWIxX21heF9sZW5ndGg9NTA8L3ByZT4KICAgIDwvbGk+Cgo8L3VsPgoKPHA+T3V0cHV0IGZvcm1hdDo8L3A+CjxwcmU+e2xpdGVyYWx9CntpZiAhZW1wdHkoJHRlc3QyMGEtPnN1Yl9maWVsZHMpfXsqIHRlc3QgaWYgYW55IGRhdGEgZXhpc3RzICp9CiAgICB7Zm9yZWFjaCAkdGVzdDIwYS0+c3ViX2ZpZWxkcyBhcyAkc3ViX2ZpZWxkfQogICAgICAgIHtmb3JlYWNoICRzdWJfZmllbGQgYXMgJG5hbWUgPT4gJHZhbHVlfQogICAgICAgICAgICB7JG5hbWV9OiB7JHZhbHVlfQogICAgICAgIHsvZm9yZWFjaH0KICAgICAgICB7KiBvciBkaXJlY3RseSBhY2Nlc3MgZWFjaCBzdWJfZmllbGQgKn0KICAgICAgICBIZWlnaHQgaXM6eyRzdWJfZmllbGQtPmhlaWdodH0KICAgICAgICBGcnVpdCBpczp7JHN1Yl9maWVsZC0+ZnJ1aXR9CiAgICB7L2ZvcmVhY2h9CnsvaWZ9CnsvbGl0ZXJhbH08L3ByZT48YnI+Cgo8cD5Ob3RlcyAmIHRpcHM6PC9wPgo8b2w+CiAgICA8bGk+Y2hhbmdlIHRoZSBvcmRlciBvZiB0aGUgc3ViWF8gcGFyYW1ldGVycyB0byBjaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBmaWVsZHMgaW4gdGhlIGFkbWluIHBhZ2UuPC9saT4KICAgIDxsaT50aGUgZGVmYXVsdCBQSFAgbGltaXQgZm9yIGlucHV0cyBvbiBvbmUgcGFnZSBpcyAxMDAwLiBUaGlzIGlzIHNldCBieSBtYXhfaW5wdXRfdmFycyBpbiBwaHAuaW5pLiBJZiB5b3UgbWF5IG5lZWQgbW9yZSB0aGFuIHRoaXMgb24gYSBzaW5nbGUgcGFnZSB5b3UgY2FuIGluY3JlYXNlIG1heF9pbnB1dF92YXJzLiBFYWNoIHN1YiBmaWVsZCBpbiBlYWNoIGdyb3VwIHJvdyBpcyAxIGlucHV0LCBwbHVzIGFsbCBvdGhlciBmaWVsZHMgb24gdGhlIHBhZ2UuPC9saT4KICAgIDxsaT5zdWIgZmllbGQgcGFyYW1ldGVycyBsaWtlICdyZXBlYXRlcicsICdtYXgtYmxvY2tzJyBhbmQgJ2Fzc2lnbicgYXJlIGlnbm9yZWQuPC9saT4KICAgIDxsaT5pZiBvbmx5IG9uZSBncm91cCBpcyBhZGRlZCBhbmQgYWxsIGl0J3MgdmFsdWVzIGFyZSBlbXB0eSB0aGUgLT5zdWJfZmllbGRzIG9iamVjdCB3aWxsIGJlIGVtcHR5PC9saT4KPC9vbD4KCg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/gallery/input.ecb2fd_gallery.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2dhbGxlcnkudHBsIC0gdjEuMCAtIDI1SnVuMjIgCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKip9CntpZiAhZW1wdHkoJGRlc2NyaXB0aW9uKX0KICAgICAgICB7JGRlc2NyaXB0aW9ufTxicj4Key9pZn0KCjxkaXYgY2xhc3M9ImVjYjItZHJvcHpvbmUge2lmICRtYXhfZmlsZXMhPTF9c29ydGFibGV7L2lmfSBkcm9wem9uZS1wcmV2aWV3cyIgZGF0YS1kcm9wem9uZS11cmw9InskYWN0aW9uX3VybH0iIGRhdGEtYmxvY2stbmFtZT0ieyRibG9ja19uYW1lfSIgZGF0YS1sb2NhdGlvbj0ieyRsb2NhdGlvbn0iIGRhdGEtZHJvcHpvbmUtdmFsdWVzPSJ7JGpzb25fZmlsZW5hbWVzfGNtc19lc2NhcGV9IiBkYXRhLWRyb3B6b25lLXRodW1ibmFpbC13aWR0aD0ieyR0aHVtYm5haWxfd2lkdGh9IiBkYXRhLWRyb3B6b25lLXRodW1ibmFpbC1oZWlnaHQ9InskdGh1bWJuYWlsX2hlaWdodH0iIGRhdGEtZHJvcHpvbmUtdGh1bWJuYWlsLXByZWZpeD0ieyR0aHVtYm5haWxfcHJlZml4fSJ7aWYgJHJlc2l6ZV93aWR0aH0gZGF0YS1kcm9wem9uZS1yZXNpemUtd2lkdGg9InskcmVzaXplX3dpZHRofSJ7L2lmfXtpZiAkcmVzaXplX2hlaWdodH0gZGF0YS1kcm9wem9uZS1yZXNpemUtaGVpZ2h0PSJ7JHJlc2l6ZV9oZWlnaHR9InsvaWZ9e2lmICRyZXNpemVfbWV0aG9kfSBkYXRhLWRyb3B6b25lLXJlc2l6ZS1tZXRob2Q9InskcmVzaXplX21ldGhvZH0iey9pZn17aWYgJG1heF9maWxlcz4wfSBkYXRhLWRyb3B6b25lLW1heC1maWxlcz0ieyRtYXhfZmlsZXN9InsvaWZ9IGRhdGEtZHJvcHpvbmUtbWF4LWZpbGVzLXRleHQ9InskbWF4X2ZpbGVzX3RleHR9IiBkYXRhLWhpZ2hlc3Qtcm93PSJ7JHZhbHVlc3xAY291bnR9Ij4KICAgIDxkaXYgY2xhc3M9ImZhbGxiYWNrIGVjYjItZmFsbGJhY2siPgogICAgICAgIDxpbnB1dCBuYW1lPSJmaWxlIiB0eXBlPSJmaWxlIiBtdWx0aXBsZSAvPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZHJvcHpvbmUtcHJldmlldy10ZW1wbGF0ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZHotcHJldmlldyBkei1maWxlLXByZXZpZXcge2lmICR0aHVtYm5haWxfd2lkdGg8MTA0fWR6LXRodW1iLXNtey9pZn0iIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBkYXRhLXJvdz0iIj4KICAgICAgICAgICAgPGlucHV0IGlkPSIiIG5hbWU9IiIgY2xhc3M9ImR6LWlucHV0LWZpbGVuYW1lIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiLz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHotaW1hZ2UiIHN0eWxlPSJ7aWYgJHRodW1ibmFpbF93aWR0aH13aWR0aDp7JHRodW1ibmFpbF93aWR0aH1weDt7L2lmfXtpZiAkdGh1bWJuYWlsX2hlaWdodH0gaGVpZ2h0OnskdGh1bWJuYWlsX2hlaWdodH1weDt7L2lmfSI+CiAgICAgICAgICAgICAgICA8aW1nIGRhdGEtZHotdGh1bWJuYWlsPSIiPgogICAgICAgICAgICA8L2Rpdj4gIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkei1kZXRhaWxzIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR6LWZpbGVuYW1lIj48c3BhbiBkYXRhLWR6LW5hbWU+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHotc2l6ZSIgZGF0YS1kei1zaXplPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHotaGFuZGxlIGVjYjItYnRuIGVjYjItYnRuLWRlZmF1bHQiPjxzcGFuIGNsYXNzPSJlY2IyLWljb24tZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIj48L3NwYW4+PC9kaXY+CiAgICAgICAge2lmICFlbXB0eSgkc3ViX2ZpZWxkcyl9CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImR6LWVkaXQgZWNiMi1idG4gZWNiMi1idG4tZGVmYXVsdCIgdGl0bGU9IkVkaXQgc3ViLWZpZWxkcyIgcm9sZT0iYnV0dG9uIiBhcmlhLWRpc2FibGVkPSJmYWxzZSI+PHNwYW4gY2xhc3M9ImVjYjItaWNvbi1wZW5jaWwiPjwvc3Bhbj48L2J1dHRvbj4KICAgICAgICB7L2lmfQogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkei1yZW1vdmUgZWNiMi1idG4gZWNiMi1idG4tZGVmYXVsdCIgZGF0YS1kei1yZW1vdmUgdGl0bGU9IlJlbW92ZSBpbWFnZSIgcm9sZT0iYnV0dG9uIiBhcmlhLWRpc2FibGVkPSJmYWxzZSI+PHNwYW4gY2xhc3M9ImVjYjItaWNvbi10cmFzaC1jYW4tcmVndWxhciI+PC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkei1wcm9ncmVzcyI+PHNwYW4gY2xhc3M9ImR6LXVwbG9hZCIgZGF0YS1kei11cGxvYWRwcm9ncmVzcz48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR6LXN1Y2Nlc3MtbWFyayI+PGkgY2xhc3M9ImVjYjItaWNvbi1jaGVjayI+PC9pPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkei1lcnJvci1tYXJrIj48aSBjbGFzcz0iZWNiMi1pY29uLXhtYXJrIj48L2k+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR6LWVycm9yLW1lc3NhZ2UiPjxzcGFuIGRhdGEtZHotZXJyb3JtZXNzYWdlPjwvc3Bhbj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9InskYmxvY2tfbmFtZX0tdXBsb2FkLXByb21wdCIgY2xhc3M9ImR6LXVwbG9hZC1wcm9tcHQgZWNiMi1idG4gZWNiMi1idG4tZGVmYXVsdCIgc3R5bGU9IntpZiAkdGh1bWJuYWlsX2hlaWdodH0gaGVpZ2h0OnskdGh1bWJuYWlsX2hlaWdodH1weDt7L2lmfSIgdGl0bGU9IkRyb3AgaW1hZ2VzIGhlcmUgb3IgY2xpY2sgdG8gdXBsb2FkIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZWNiMi1pY29uLXBsdXMiPjwvc3Bhbj4KICAgICAgICA8aW5wdXQgaWQ9IiIgbmFtZT0ieyRibG9ja19uYW1lfVtlbXB0eV0iIGNsYXNzPSJkei1pbnB1dC1maWxlbmFtZSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIi8+eyogZm9yY2UgaW5wdXQgYXJyYXkgZXZlbiBpZiBlbXB0eSAtIHNvIGFueSBkZWxldGVkIGltYWdlcyBjYW4sIGlmIHJlcXVpcmVkLCBiZSByZW1vdmVkIGZyb20gZGlyICp9CiAgICA8L2Rpdj4KPC9kaXY+Cgp7KiBzdWItZmllbGRzIG91dHNpZGUgb2YgZHJvcHpvbmUgdG8gZW5zdXJlIHRoZXkgYXJlIGxhdGVyIGluIHRoZSBET00gKn0KCjxkaXYgaWQ9InskYmxvY2tfbmFtZX0tc3ViLWZpZWxkcyIgY2xhc3M9ImVjYjItZHotc3ViLWZpZWxkcyI+CiAgICA8ZGl2IGNsYXNzPSJkei1zdWItZmllbGRzLXRlbXBsYXRlIiBkYXRhLXN1Yi1maWVsZC1wYXJlbnQ9InskYmxvY2tfbmFtZX0tc3ViLWZpZWxkcyI+CiAgICAgICAge2ZvcmVhY2ggJHN1Yl9maWVsZHMgYXMgJGZpZWxkX2RlZn0KICAgICAgICA8ZGl2IGNsYXNzPSJzdWItZmllbGQgc3ViLWZpZWxkLXskZmllbGRfZGVmLT5nZXRfdHlwZSgpfSI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ic3ViX2ZpZWxkX2xhYmVsIj57JGZpZWxkX2RlZi0+Z2V0X2ZpZWxkX2xhYmVsKCl9PC9sYWJlbD4KICAgICAgICAgICAgeyRmaWVsZF9kZWYtPmdldF9jb250ZW50X2Jsb2NrX2lucHV0KCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgey9mb3JlYWNofQogICAgPC9kaXY+CgogICAge2ZvcmVhY2ggJHZhbHVlcyBhcyAkcm93ID0+ICRmaWVsZHN9CiAgICA8ZGl2IGlkPSJ7JGJsb2NrX25hbWV9X3JfeyRyb3crMX1fc3ViX2ZpZWxkcyIgY2xhc3M9ImR6LXN1Yi1maWVsZCIgZGF0YS1zdWItZmllbGQtcGFyZW50PSJ7JGJsb2NrX25hbWV9LXN1Yi1maWVsZHMiPgogICAgICAgIHtmb3JlYWNoICRzdWJfZmllbGRzIGFzICRmaWVsZF9kZWZ9CiAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWZpZWxkIHJvd3skZmllbGRzQGl0ZXJhdGlvbn0gY29seyRmaWVsZF9kZWZAaXRlcmF0aW9ufSBzdWItZmllbGQteyRmaWVsZF9kZWYtPmdldF90eXBlKCl9Ij4KICAgICAgICB7aWYgJGZpZWxkX2RlZi0+aXNfZmllbGRfbGFiZWxfdmlzaWJsZSgpfQogICAgICAgICAgICA8bGFiZWwgY2xhc3M9InN1Yl9maWVsZF9sYWJlbCI+eyRmaWVsZF9kZWYtPmdldF9maWVsZF9sYWJlbCgpfTo8L2xhYmVsPgogICAgICAgIHsvaWZ9CiAgICAgICAgICAgIHskZmllbGRfZGVmLT5zZXRfc3ViX2ZpZWxkX3ZhbHVlKCRmaWVsZHMsICRyb3crMSl9CiAgICAgICAgICAgIHskZmllbGRfZGVmLT5nZXRfY29udGVudF9ibG9ja19pbnB1dCgpfQogICAgICAgIDwvZGl2PgogICAgICAgIHsvZm9yZWFjaH0KICAgIDwvZGl2PgogICAgey9mb3JlYWNofQo8L2Rpdj4KCgoKCgoKCgo=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/gallery_picker/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/gallery_picker/class.ecb2fd_gallery_picker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfZ2FsbGVyeV9waWNrZXIgZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCk7CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgl9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBhbGxvd2VkIHBhcmFtZXRlcnMgZm9yIHRoaXMgZmllbGQgdHlwZQogICAgICoKICAgICAqICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzIC0gYXJyYXkgb2YgcGFyYW1ldGVyX25hbWVzID0+IFsgZGVmYXVsdF92YWx1ZSwgZmlsdGVyX3R5cGUgXQogICAgICogICAgICBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklORywgRklMVEVSX1ZBTElEQVRFX0lOVCwgRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4sIEZJTFRFUl9TQU5JVElaRV9FTUFJTCAKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZF9wYXJhbWV0ZXJzKCkgCiAgICB7CiAgICAgICAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ2xhYmVsJyAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2RpcicgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2FkbWluX2dyb3VwcycgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IEZJTFRFUl9ERUZBVUxUXQogICAgICAgIF07CiAgICAgICAgLy8gJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzID0gWyAnYWxpYXMnID0+ICdwYXJhbWV0ZXInIF07CiAgICAgICAgLy8gJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyA9IEZBTFNFOyAgICAvLyBkZWZhdWx0OiB0cnVlCgogICAgfQoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBjb21wbGV0ZSBjb250ZW50IGJsb2NrIAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKSAKICAgIHsKICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICYmIAogICAgICAgICAgICAgISR0aGlzLT5pc192YWxpZF9ncm91cF9tZW1iZXIoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lY2IyX2hpZGRlbl9maWVsZCgpOyAKICAgICAgICB9CgogICAgICAgICRkaXIgPSAkdGhpcy0+b3B0aW9uc1snZGlyJ10uJy8nOyAgICAvLyBkZWZhdWx0IGRpciAobmVlZHMgJy8nIGF0IGVuZCkKICAgICAgICAkR2FsbGVyeU1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnR2FsbGVyeScpOwogICAgICAgIGlmICghaXNfb2JqZWN0KCRHYWxsZXJ5TW9kdWxlKSkgewogICAgICAgICAgICAkdGhpcy0+ZXJyb3IgPSAkdGhpcy0+bW9kLT5MYW5nKCdnYWxsZXJ5X21vZHVsZV9lcnJvcicpOwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1vZC0+ZXJyb3JfbXNnKCR0aGlzLT5lcnJvcik7CiAgICAgICAgfQoKICAgICAgICAkZ2FsbGVyaWVzID0gR2FsbGVyeV91dGlsczo6R2V0R2FsbGVyaWVzKCk7CiAgICAgICAgJGdhbGxlcnlBcnJheSA9IGFycmF5KCcnID0+ICR0aGlzLT5tb2QtPkxhbmcoJ25vbmVfc2VsZWN0ZWQnKSApOwoKICAgICAgICBmb3JlYWNoICgkZ2FsbGVyaWVzIGFzICRnYWxsZXJ5KSB7CiAgICAgICAgICAgIGlmICgkZ2FsbGVyeVsnZmlsZW5hbWUnXSE9JycpIHsgICAgLy8gaWdub3JlcyBkZWZhdWx0IGdhbGxlcnkKICAgICAgICAgICAgICAgIGlmICgkZGlyIT0nLycpIHsKICAgICAgICAgICAgICAgIC8vIG9ubHkgc2VsZWN0IHN1Yi1nYWxsZXJpZXMgb2YgJGRpcgogICAgICAgICAgICAgICAgJGlzU3ViRGlyID0gc3RyaXBvcygkZ2FsbGVyeVsnZmlsZXBhdGgnXSwgJGRpcik7CgogICAgICAgICAgICAgICAgaWYgKCRpc1N1YkRpciE9PUZBTFNFICYmICRpc1N1YkRpcj09MCkgewogICAgICAgICAgICAgICAgICAgICRnYWxsZXJ5X2RpciA9ICRnYWxsZXJ5WydmaWxlcGF0aCddLnJ0cmltKCRnYWxsZXJ5WydmaWxlbmFtZSddLCAnLycpOwogICAgICAgICAgICAgICAgICAgICRnYWxsZXJ5QXJyYXlbJGdhbGxlcnlfZGlyXSA9ICRnYWxsZXJ5Wyd0aXRsZSddOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBzZWxlY3QgYWxsIGdhbGxlcmllcwogICAgICAgICAgICAgICAgJGdhbGxlcnlfZGlyID0gJGdhbGxlcnlbJ2ZpbGVwYXRoJ10ucnRyaW0oJGdhbGxlcnlbJ2ZpbGVuYW1lJ10sICcvJyk7CiAgICAgICAgICAgICAgICAkZ2FsbGVyeUFycmF5WyRnYWxsZXJ5X2Rpcl0gPSAkZ2FsbGVyeVsndGl0bGUnXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAKICAgICAgICAkY2xhc3MgPSAnJzsKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSggJ3N0cmluZzonLiR0aGlzLT5nZXRfdGVtcGxhdGUoKSwgbnVsbCwgbnVsbCwgJHNtYXJ0eSApOwogICAgICAgICR0cGwtPmFzc2lnbignYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd2YWx1ZScsICR0aGlzLT52YWx1ZSApOwogICAgICAgICR0cGwtPmFzc2lnbignZ2FsbGVyeUFycmF5JywgJGdhbGxlcnlBcnJheSApOwogICAgICAgICR0cGwtPmFzc2lnbignZGVzY3JpcHRpb24nLCAkdGhpcy0+b3B0aW9uc1snZGVzY3JpcHRpb24nXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2xhYmVsJywgJHRoaXMtPm9wdGlvbnNbJ2xhYmVsJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdpc19zdWJfZmllbGQnLCAkdGhpcy0+aXNfc3ViX2ZpZWxkICk7CiAgICAgICAgaWYgKCAkdGhpcy0+aXNfc3ViX2ZpZWxkICkgewogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJfcm93X251bWJlcicsICR0aGlzLT5zdWJfcm93X251bWJlciApOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJGaWVsZE5hbWUnLCAkdGhpcy0+c3ViX3BhcmVudF9ibG9jay4nW3JfJy4kdGhpcy0+c3ViX3Jvd19udW1iZXIuJ11bJy4KICAgICAgICAgICAgICAgICR0aGlzLT5ibG9ja19uYW1lLiddJyApOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJGaWVsZElkJywgJHRoaXMtPnN1Yl9wYXJlbnRfYmxvY2suJ19yXycuJHRoaXMtPnN1Yl9yb3dfbnVtYmVyLidfJy4KICAgICAgICAgICAgICAgICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgICAgICRjbGFzcyAuPSAnIHJlcGVhdGVyLWZpZWxkJzsKICAgICAgICB9CiAgICAgICAgJHRwbC0+YXNzaWduKCdjbGFzcycsICRjbGFzcyk7ICAKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/gallery_picker/help.ecb2fd_gallery_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfZ2FsbGVyeV9waWNrZXIudHBsICp9CjxwPlRoZSBnYWxsZXJ5X3BpY2tlciBjcmVhdGVzIGEgZHJvcGRvd24gdG8gY2hvb3NlIGZyb20gYSBzZWxlY3Rpb24gb2YgZ2FsbGVyaWVzIGluIHRoZSBHYWxsZXJ5IG1vZHVsZS48L3A+Cgo8ZmllbGRzZXQ+CiAgICB7JGZpZWxkZGVmLT5nZXRfZGVtb19pbnB1dCgpfQo8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9Z2FsbGVyeV9waWNrZXIgYmxvY2s9cGFnZVRvcEdhbGxlcnkgbGFiZWw9J1BhZ2UgVG9wIEdhbGxlcnknIGRpcj0ncGFnZS10b3AtZ2FsbGVyaWVzJ317L2xpdGVyYWx9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnZ2FsbGVyeV9waWNrZXInPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmRpciAob3B0aW9uYWwpIC0gb25seSByZXR1cm5zIGdhbGxlcmllcyB0aGF0IGFyZSBzdWItZ2FsbGVyaWVzIG9mIHRoaXMgZ2FsbGVyeSBkaXIsIGRlZmF1bHQgaXMgYWxsIGdhbGxlcmllcywgZXhjbHVkaW5nIGRlZmF1bHQgdG9wIGxldmVsIGdhbGxlcnk8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/gallery_picker/input.ecb2fd_gallery_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2dhbGxlcnlfcGlja2VyLnRwbCAtIHYxLjAgLSAyNUp1bjIyIAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7aWYgIWVtcHR5KCRkZXNjcmlwdGlvbil9CiAgICAgICAgeyRkZXNjcmlwdGlvbn08YnI+CnsvaWZ9Cgp7aWYgJGlzX3N1Yl9maWVsZH0KICAgIHtpZiBpc19udWxsKCRzdWJfcm93X251bWJlcil9eyogc3ViX2ZpZWxkIHRlbXBsYXRlIGZpZWxkICp9CiAgICAgICAgPHNlbGVjdCBpZD0iIiBuYW1lPSIiIGNsYXNzPSJ7JGNsYXNzfSIgZGF0YS1yZXBlYXRlcj0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIGRhdGEtZmllbGQtbmFtZT0ieyRibG9ja19uYW1lfSI+CiAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZ2FsbGVyeUFycmF5IHNlbGVjdGVkPSR2YWx1ZX0KICAgICAgICA8L3NlbGVjdD4KCiAgICB7ZWxzZX17KiBzdWJfZmllbGQgKn0KICAgICAgICA8c2VsZWN0IGlkPSJ7JHN1YkZpZWxkSWR9IiBuYW1lPSJ7JHN1YkZpZWxkTmFtZX0iIGNsYXNzPSJ7JGNsYXNzfSI+CiAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZ2FsbGVyeUFycmF5IHNlbGVjdGVkPSR2YWx1ZX0KICAgICAgICA8L3NlbGVjdD4KCiAgICB7L2lmfQoKe2Vsc2V9CiAgICAgICAge2h0bWxfb3B0aW9ucyBuYW1lPSRibG9ja19uYW1lIG9wdGlvbnM9JGdhbGxlcnlBcnJheSBzZWxlY3RlZD0kdmFsdWV9Cgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/group/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/group/class.ecb2fd_group.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfZ3JvdXAgZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCggJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQgKTsKCiAgICAgICAgJHRoaXMtPmdldF92YWx1ZXMoICR2YWx1ZSApOyAgICAgICAgICAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKCiAgICAgICAgJHRoaXMtPnNldF9maWVsZF9wYXJhbWV0ZXJzKCk7CgogICAgICAgICR0aGlzLT5pbml0aWFsaXNlX29wdGlvbnMoICRwYXJhbXMgKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCgogICAgICAgICR0aGlzLT5jcmVhdGVfc3ViX2ZpZWxkcyggJHBhcmFtcyApOyAgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgl9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBhbGxvd2VkIHBhcmFtZXRlcnMgZm9yIHRoaXMgZmllbGQgdHlwZQogICAgICoKICAgICAqICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzIC0gYXJyYXkgb2YgcGFyYW1ldGVyX25hbWVzID0+IFsgZGVmYXVsdF92YWx1ZSwgZmlsdGVyX3R5cGUgXQogICAgICogICAgICBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklORywgRklMVEVSX1ZBTElEQVRFX0lOVCwgRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4sIEZJTFRFUl9TQU5JVElaRV9FTUFJTCAKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZF9wYXJhbWV0ZXJzKCkgCiAgICB7CiAgICAgICAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ21heF9ibG9ja3MnICAgID0+IFsnZGVmYXVsdCcgPT4gMCwgICAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0lOVF0sCiAgICAgICAgICAgICdsYXlvdXQnICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICd0YWJsZScsICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ3JlbW92ZV9lbXB0eScgID0+IFsnZGVmYXVsdCcgPT4gMCwgICAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnYWRtaW5fZ3JvdXBzJyAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdhc3NpZ24nICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX0RFRkFVTFRdCiAgICAgICAgXTsKICAgICAgICAvLyAkdGhpcy0+cGFyYW1ldGVyX2FsaWFzZXMgPSBbICdhbGlhcycgPT4gJ3BhcmFtZXRlcicgXTsKICAgICAgICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zID0gRkFMU0U7ICAgIC8vIGRlZmF1bHQ6IHRydWUKICAgICAgICAkdGhpcy0+dXNlX2pzb25fZm9ybWF0ID0gVFJVRTsgICAgIC8vIGRlZmF1bHQ6IEZBTFNFIC0gY2FuIG92ZXJyaWRlIGUuZy4gJ2dyb3VwcycgdHlwZQogICAgICAgICR0aGlzLT5zZWFyY2hhYmxlX2NvbnRlbnQgPSBUUlVFOwogICAgICAgICR0aGlzLT5hbGxvd2VkX3N1Yl9maWVsZHMgPSBbCiAgICAgICAgICAgICd0ZXh0aW5wdXQnLAogICAgICAgICAgICAndGV4dGFyZWEnLAogICAgICAgICAgICAnZHJvcGRvd24nLAogICAgICAgICAgICAnY2hlY2tib3gnLAogICAgICAgICAgICAncmFkaW8nLAogICAgICAgICAgICAnY29sb3JfcGlja2VyJywKICAgICAgICAgICAgJ2RhdGVfdGltZV9waWNrZXInLAogICAgICAgICAgICAnZmlsZV9zZWxlY3RvcicsCiAgICAgICAgICAgICdmaWxlX3BpY2tlcicsCiAgICAgICAgICAgICdwYWdlX3BpY2tlcicsCiAgICAgICAgICAgICdnYWxsZXJ5X3BpY2tlcicsCiAgICAgICAgICAgICdtb2R1bGVfcGlja2VyJyAgICAgCiAgICAgICAgXTsKICAgICAgICAkdGhpcy0+c3ViX2ZpZWxkc19pZ25vcmVkX3BhcmFtcyA9IFsKICAgICAgICAgICAgJ2Fzc2lnbicsCiAgICAgICAgICAgICdyZXBlYXRlcicsCiAgICAgICAgICAgICdtYXhfYmxvY2tzJwogICAgICAgIF07CiAgICAgICAgLy8gJHRoaXMtPnN1Yl9maWVsZHNfaWdub3JlZF9uYW1lcyA9IFtdOwogICAgICAgICR0aGlzLT5zdWJfZmllbGRzX3JlcXVpcmVkID0gVFJVRTsKICAgICAgICAkdGhpcy0+bGF5b3V0X29wdGlvbnMgPSBbJ3RhYmxlJywnYmxvY2snXTsgIC8vIGJsb2NrLCBncmlkIC4uLgoKICAgIH0KCgoKICAgIC8qKgogICAgICogIHNvbWUgZXh0cmEgdHdlYWtzIHRvIG9wdGlvbnMgaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgaW5pdGlhbGlzYXRpb24gKEZpZWxkRGVmQmFzZSkKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKQogICAgewoJCXBhcmVudDo6aW5pdGlhbGlzZV9vcHRpb25zKCRwYXJhbXMpOwoKICAgICAgICBpZiAoICFpbl9hcnJheSgkdGhpcy0+b3B0aW9uc1snbGF5b3V0J10sICR0aGlzLT5sYXlvdXRfb3B0aW9ucykgKSB7CiAgICAgICAgICAgICR0aGlzLT5vcHRpb25zWydsYXlvdXQnXSA9ICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnNbJ2xheW91dCddWydkZWZhdWx0J107CiAgICAgICAgfQoKICAgIH0KCgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGNvbXBsZXRlIGNvbnRlbnQgYmxvY2sgCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja19pbnB1dCgpIAogICAgewogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYgCiAgICAgICAgICAgICAhJHRoaXMtPmlzX3ZhbGlkX2dyb3VwX21lbWJlcigkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7IAogICAgICAgIH0KCiAgICAgICAgaWYgKCBlbXB0eSgkdGhpcy0+dmFsdWVzKSApICR0aGlzLT52YWx1ZXNbXSA9IE5VTEw7CgogICAgICAgIGlmICgkdGhpcy0+ZXJyb3IpIHJldHVybiAkdGhpcy0+bW9kLT5lcnJvcl9tc2coJHRoaXMtPmVycm9yKTsKCiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdibG9ja19uYW1lJywgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAvLyAkdHBsLT5hc3NpZ24oICd2YWx1ZScsICR0aGlzLT52YWx1ZSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ21vZCcsICR0aGlzLT5tb2QgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdibG9ja19uYW1lJywgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICd0eXBlJywgJHRoaXMtPmZpZWxkICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndmFsdWVzJywgJHRoaXMtPnZhbHVlcyApOyAgICAgIC8vIHN1Yl9maWVsZCB2YWx1ZXMKICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJfZmllbGRzJywgJHRoaXMtPnN1Yl9maWVsZHMgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdtYXhfYmxvY2tzJywgJHRoaXMtPm9wdGlvbnNbJ21heF9ibG9ja3MnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2Rlc2NyaXB0aW9uJywgJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdsYXlvdXQnLCAkdGhpcy0+b3B0aW9uc1snbGF5b3V0J10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdhc3NpZ24nLCAkdGhpcy0+b3B0aW9uc1snYXNzaWduJ10gKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKCiAgICAvKioKICAgICAqICBEYXRhIGVudGVyZWQgYnkgdGhlIGVkaXRvciBpcyBwcm9jZXNzZWQgYmVmb3JlIGl0cyBzYXZlZCBpbiBwcm9wcyB0YWJsZQogICAgICogIFRoaXMgbWV0aG9kLCAgb3ZlcmlkZXMgdGhlIHBhcmVudCBjbGFzcyBtZXRob2QsIHRvIGVuYWJsZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgCiAgICAgKiAgYmVmb3JlIHRoZSBkYXRhIGlzIHNhdmVkLgogICAgICoKICAgICAqICBAcmV0dXJuIHN0cmluZyBmb3JtYXR0ZWQganNvbiBjb250YWluaW5nIGFsbCBmaWVsZCBkYXRhIHJlYWR5IHRvIGJlIHNhdmVkICYgb3V0cHV0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja192YWx1ZSggJGlucHV0QXJyYXkgKSAKICAgIHsKICAgICAgICAvLyBpZiByZW1vdmVfZW1wdHkgb3B0aW9uIHNldCAtIHJlbW92ZSBhbnkgZW1wdHkgZ3JvdXBzICh3aGVyZSBhbGwgc3ViX2ZpZWxkcyBlbXB0eSkKICAgICAgICAvLyBvciBpZiBvbmx5IDEgZ3JvdXAgYW5kIGl0J3MgZW1wdHkgcmV0dXJuIGFuZCBlbXB0eSAnc3ViX2ZpZWxkcycgb2JqZWN0CiAgICAgICAgJHJlbW92ZV9yb3dzID0gW107CiAgICAgICAgaWYgKCBpc19hcnJheSgkaW5wdXRBcnJheSkgJiYgKCBjb3VudCgkaW5wdXRBcnJheSk9PTEgfHwgJHRoaXMtPm9wdGlvbnNbJ3JlbW92ZV9lbXB0eSddICkgKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRpbnB1dEFycmF5IGFzICRyb3dfbnVtYmVyID0+ICRncm91cEFycmF5KSB7CiAgICAgICAgICAgICAgICBpZiAoIHNlbGY6OmlzX2VtcHR5X2dyb3VwKCRncm91cEFycmF5KSApICRyZW1vdmVfcm93c1tdID0gJHJvd19udW1iZXI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yZWFjaCAoJHJlbW92ZV9yb3dzIGFzICRyb3dfbnVtYmVyKSB7CiAgICAgICAgICAgIHVuc2V0KCAkaW5wdXRBcnJheVskcm93X251bWJlcl0gKTsKICAgICAgICB9CiAgICAgICAgaWYgKCBlbXB0eSgkaW5wdXRBcnJheSkgKSAkaW5wdXRBcnJheSA9IGFycmF5KCdzdWJfZmllbGRzJyA9PiBbXSk7CgogICAgICAgICR0aGlzLT5maWVsZF9vYmplY3QgPSAkdGhpcy0+Y3JlYXRlX2ZpZWxkX29iamVjdCggJGlucHV0QXJyYXkgKTsKICAgIAogICAgICAgIHJldHVybiAkdGhpcy0+RUNCMl9qc29uX2VuY29kZV9maWVsZF9vYmplY3QoKTsgCiAgICB9CgoKCiAgICAvKioKICAgICAqICBAcGFyYW0gYXJyYXkgZ3JvdXBBcnJheSAtIGFuIGFycmF5IG9mIGFsbCBzdWJfZmllbGRzIGZvciBvbmUgZ3JvdXAgcm93CiAgICAgKgogICAgICogIEByZXR1cm4gYm9vbGVhbiB0cnVlIGlmIGdyb3VwIGlzIGVtcHR5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpc19lbXB0eV9ncm91cCggJGdyb3VwQXJyYXk9W10gKSAKICAgIHsKICAgICAgICAkaXNFbXB0eSA9IFRSVUU7CiAgICAgICAgZm9yZWFjaCAoJGdyb3VwQXJyYXkgYXMgJHZhbHVlKSB7CiAgICAgICAgICAgIGlmICghZW1wdHkoJHZhbHVlKSAmJiAoaW50KSR2YWx1ZSE9LTEpIHsKICAgICAgICAgICAgICAgICRpc0VtcHR5ID0gRkFMU0U7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJGlzRW1wdHk7CgogICAgfQoKCgp9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/group/help.ecb2fd_group.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfZ3JvdXAudHBsICp9CjxwPlRoZSBncm91cCBmaWVsZCBjcmVhdGVzIGEgZ3JvdXAgb2Ygb25lIG9yIG1vcmUgc3ViIGZpZWxkcy4gQW4gdW5saW1pdGVkIG51bWJlciBvZiBncm91cHMgY2FuIGJlIGFkZGVkIGJ5IHRoZSBlZGl0b3JzLCBzb3J0ZWQgb3IgZGVsZXRlZC4gQ2FuIGJlIGRpc3BsYXllZCBpbiB0YWJsZSBvciBibG9jayBsYXlvdXQuPC9wPgoKPGZpZWxkc2V0PgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWydhc3NpZ24nPT4ndGVzdDIwJywKICAgICdzdWIxX2ZpZWxkJyA9PiAndGV4dGlucHV0JywgJ3N1YjFfbmFtZScgPT4gJ2hlaWdodCcsICdzdWIxX2xhYmVsJyA9PiAnSGVpZ2h0JywgJ3N1YjFfc2l6ZScgPT4gJzIwJywKICAgICdzdWIyX2ZpZWxkJyA9PiAnc2VsZWN0JywgJ3N1YjJfbmFtZScgPT4gJ2ZydWl0JywgJ3N1YjJfbGFiZWwnID0+ICdGcnVpdCcsICdzdWIyX3ZhbHVlcycgPT4gJ0FwcGxlLE9yYW5nZSxLaXdpZnJ1aXQnLCAnc3ViMl9maXJzdF92YWx1ZScgPT4gJy0tLSBzZWxlY3Qgb25lIC0tLScsCiAgICAnc3ViM19maWVsZCcgPT4gJ2NoZWNrYm94JywgJ3N1YjNfbmFtZScgPT4gJ2NoZWNrYm94MScsICdzdWIzX2xhYmVsJyA9PiAnQ2hlY2sgdGhpcyBvdXQnLCAnc3ViM19kZWZhdWx0JyA9PiAnMScsCiAgICAnc3ViNF9maWVsZCcgPT4gJ3JhZGlvJywgJ3N1YjRfbmFtZScgPT4gJ3Rlc3Q3cmFkaW8nLCAnc3ViNF9sYWJlbCcgPT4gJ0EgcmFkaW8nLCAnc3ViNF92YWx1ZXMnID0+ICdBcHBsZSxPcmFuZ2UsS2l3aWZydWl0JywgJ3N1YjRfaW5saW5lJyA9PiAnMSddKX0KPC9maWVsZHNldD4KPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9Z3JvdXAgYmxvY2s9dGVzdDIwIGFzc2lnbj10ZXN0MjAKc3ViMV9maWVsZD10ZXh0aW5wdXQgc3ViMV9uYW1lPWhlaWdodCBzdWIxX2xhYmVsPSdIZWlnaHQnIHN1YjFfc2l6ZT01IApzdWIyX2ZpZWxkPXNlbGVjdCBzdWIyX25hbWU9ZnJ1aXQgc3ViMl9sYWJlbD0nRnJ1aXQnIHN1YjJfdmFsdWVzPSdBcHBsZSxPcmFuZ2UsS2l3aWZydWl0JyBzdWIyX2ZpcnN0X3ZhbHVlPSctLS0gc2VsZWN0IG9uZSAtLS0nIApzdWIzX2ZpZWxkPWNoZWNrYm94IHN1YjNfbmFtZT1jaGVja2JveDEgc3ViM19sYWJlbD0nQSBjaGVja2JveCcgc3ViM19kZWZhdWx0PTEKc3ViNF9maWVsZD1yYWRpbyBzdWI0X25hbWU9dGVzdDdyYWRpbyBzdWI0X2xhYmVsPSdyYWRpbyB0ZXN0JyBzdWI0X3ZhbHVlcz0nQXBwbGUsT3JhbmdlLEtpd2lmcnVpdCcgc3ViNF9pbmxpbmU9MX17L2xpdGVyYWx9PC9wcmU+CgoKCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdncm91cCc8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+bGF5b3V0IChvcHRpb25hbCkgLSBlaXRoZXIgJ3RhYmxlJyAoZGVmYXVsdCksIG9yICdibG9jaycuPC9saT4KICAgIDxsaT5yZW1vdmVfZW1wdHkgKG9wdGlvbmFsKSAtIHdpbGwgcmVtb3ZlIGFueSBncm91cHMgd2hlcmUgYWxsIHN1Yl9maWVsZHMgYXJlICdlbXB0eScgLSBkZWZhdWx0IGZhbHNlPC9saT4KICAgIDxsaT5tYXhfYmxvY2tzIChvcHRpb25hbCkgLSB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwZWF0ZXIgZmllbGRzIHRoYXQgY2FuIGJlIGNyZWF0ZWQ8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgogICAgPGxpPmFzc2lnbiAocmVxdWlyZWQpIC0gdG8gcGFzcyB0aGUgc3ViIGZpZWxkIGRhdGEgdG8gYSBzbWFydHkgdmFyaWFibGU8L2xpPgo8L3VsPgo8cD5TdWIgZmllbGQgcGFyYW1ldGVyczo8L3A+CjxwPkVhY2ggc3ViIGZpZWxkIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgJ3N1YlhfeXl5eXknIHBhcmFtZXRlcnMgd2hlcmUgWCBpcyBhIG51bWJlciBhbmQgeXl5eXkgaXMgdGhlIHBhcmFtZXRlci4gZS5nLiAnc3ViMV9uYW1lPXRleHRpbnB1dCcuIEVhY2ggc3ViIGZpZWxkcyBoYXMgcmVxdWlyZWQgYW5kIG9wdGlvbmFsIHBhcmFtZXRlcnM8L3A+Cjx1bD4KICAgIDxsaT5zdWJYX2ZpZWxkIChyZXF1aXJlZCkgLSBtdXN0IGJlIG9uZSBvZiB0aGUgc3VwcG9ydGVkIHN1YiBmaWVsZCB0eXBlczo8YnI+CiAgICAgICAge2ZvcmVhY2ggJGZpZWxkZGVmLT5hbGxvd2VkX3N1Yl9maWVsZHMgYXMgJGFsbG93ZWRfdHlwZXN9eyRhbGxvd2VkX3R5cGVzfSwgey9mb3JlYWNofQogICAgPC9saT4KICAgIDxsaT5zdWJYX25hbWUgKHJlcXVpcmVkKSAtIHVzZWQgcmVmZXJlbmNlIHRoZSBzdWIgZmllbGQgLSBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgZm9sbG93ZWQgYnkgYW55IG51bWJlciBvZiBsZXR0ZXJzLCBudW1iZXJzIG9yIHVuZGVyc2NvcmVzICdfJy48L2xpPgogICAgPGxpPnN1YlhfPGk+cGFyYW1ldGVyPC9pPiAob3B0aW9uYWwpIC0gd2hlcmUgJzxpPnBhcmFtZXRlcjwvaT4nIGlzIGFueSBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IHdvcmsgd2l0aCB0aGF0IGZpZWxkIHR5cGUuIGUuZy4gZm9yIHRleHRpbnB1dCBzdWIgZmllbGQgdGhlIGZvbGxvd2luZyBjYW4gYmUgdXNlZDo8YnI+CiAgICAgICAgPHByZT5zdWIxX2ZpZWxkPXRleHRpbnB1dCBzdWIxX25hbWU9dGV4dDEgc3ViMV9zaXplPTIwIHN1YjFfbWF4X2xlbmd0aD01MDwvcHJlPgogICAgPC9saT4KCjwvdWw+Cgo8cD5PdXRwdXQgZm9ybWF0OjwvcD4KPHByZT57bGl0ZXJhbH0Ke2lmICFlbXB0eSgkdGVzdDIwLT5zdWJfZmllbGRzKX17KiB0ZXN0IGlmIGFueSBkYXRhIGV4aXN0cyAqfQogICAge2ZvcmVhY2ggJHRlc3QyMC0+c3ViX2ZpZWxkcyBhcyAkc3ViX2ZpZWxkfQogICAgICAgIHtmb3JlYWNoICRzdWJfZmllbGQgYXMgJG5hbWUgPT4gJHZhbHVlfQogICAgICAgICAgICB7JG5hbWV9OiB7JHZhbHVlfQogICAgICAgIHsvZm9yZWFjaH0KICAgICAgICB7KiBvciBkaXJlY3RseSBhY2Nlc3MgZWFjaCBzdWJfZmllbGQgKn0KICAgICAgICBIZWlnaHQgaXM6eyRzdWJfZmllbGQtPmhlaWdodH0KICAgICAgICBGcnVpdCBpczp7JHN1Yl9maWVsZC0+ZnJ1aXR9CiAgICB7L2ZvcmVhY2h9CnsvaWZ9CnsvbGl0ZXJhbH08L3ByZT48YnI+Cgo8cD5Ob3RlcyAmIHRpcHM6PC9wPgo8b2w+CiAgICA8bGk+Y2hhbmdlIHRoZSBvcmRlciBvZiB0aGUgc3ViWF8gcGFyYW1ldGVycyB0byBjaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBmaWVsZHMgaW4gdGhlIGFkbWluIHBhZ2UuPC9saT4KICAgIDxsaT50aGUgZGVmYXVsdCBQSFAgbGltaXQgZm9yIGlucHV0cyBvbiBvbmUgcGFnZSBpcyAxMDAwLiBUaGlzIGlzIHNldCBieSBtYXhfaW5wdXRfdmFycyBpbiBwaHAuaW5pLiBJZiB5b3UgbWF5IG5lZWQgbW9yZSB0aGFuIHRoaXMgb24gYSBzaW5nbGUgcGFnZSB5b3UgY2FuIGluY3JlYXNlIG1heF9pbnB1dF92YXJzLiBFYWNoIHN1YiBmaWVsZCBpbiBlYWNoIGdyb3VwIHJvdyBpcyAxIGlucHV0LCBwbHVzIGFsbCBvdGhlciBmaWVsZHMgb24gdGhlIHBhZ2UuPC9saT4KICAgIDxsaT5zdWIgZmllbGQgcGFyYW1ldGVycyBsaWtlICdyZXBlYXRlcicsICdtYXgtYmxvY2tzJyBhbmQgJ2Fzc2lnbicgYXJlIGlnbm9yZWQuPC9saT4KICAgIDxsaT5pZiBvbmx5IG9uZSBncm91cCBpcyBhZGRlZCBhbmQgYWxsIGl0J3MgdmFsdWVzIGFyZSBlbXB0eSB0aGUgLT5zdWJfZmllbGRzIG9iamVjdCB3aWxsIGJlIGVtcHR5PC9saT4KPC9vbD4K]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/group/input.ecb2fd_group.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2dyb3VwLnRwbCAtIHYxLjEgLSAxNFNlcDIzIAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7aWYgIWVtcHR5KCRkZXNjcmlwdGlvbil9CiAgICB7JGRlc2NyaXB0aW9ufTxicj4Key9pZn0KCntpZiBlbXB0eSgkYXNzaWduKX0KICAgIDxkaXYgY2xhc3M9InBhZ2V3YXJuaW5nIj4KICAgICAgICB7JG1vZC0+TGFuZygnZXJyb3JfYXNzaWduX3JlcXVpcmVkJyl9CiAgICA8L2Rpdj48YnI+CnsvaWZ9Cgp7aWYgJGxheW91dCE9J3RhYmxlJ30KICAgIDxkaXYgaWQ9InskYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIGNsYXNzPSJlY2JfcmVwZWF0ZXIgeyRsYXlvdXR9LWxheW91dCBzb3J0YWJsZSIgZGF0YS1ibG9jay1uYW1lPSJ7JGJsb2NrX25hbWV9IiBkYXRhLWhpZ2hlc3Qtcm93PSJ7JHZhbHVlc3xAY291bnR9IiB7aWYgJG1heF9ibG9ja3M+MH1kYXRhLW1heC1ibG9ja3M9InskbWF4X2Jsb2Nrc30iey9pZn0gZGF0YS1yZXBlYXRlci1hZGQ9IiN7JGJsb2NrX25hbWV9LXJlcGVhdGVyLWFkZCI+CgogICAgICAgIDxkaXYgY2xhc3M9InJlcGVhdGVyLXdyYXBwZXItdGVtcGxhdGUgc29ydGFibGUtaXRlbSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWZ0LXBhbmVsIGhhbmRsZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZWNiMi1pY29uLWdyaXAtZG90cy12ZXJ0aWNhbC1zb2xpZCI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICB7Zm9yZWFjaCAkc3ViX2ZpZWxkcyBhcyAkZmllbGRfZGVmfQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItZmllbGQgc3ViLWZpZWxkLXskZmllbGRfZGVmLT5nZXRfdHlwZSgpfSI+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InN1Yl9maWVsZF9sYWJlbCI+eyRmaWVsZF9kZWYtPmdldF9maWVsZF9sYWJlbCgpfTwvbGFiZWw+CiAgICAgICAgICAgICAgICB7JGZpZWxkX2RlZi0+Z2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgey9mb3JlYWNofQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyaWdodC1wYW5lbCBjb250cm9scyI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJlY2IyLXJlcGVhdGVyLXJlbW92ZSBlY2IyLWJ0biBlY2IyLWJ0bi1kZWZhdWx0IGVjYjItaWNvbi1vbmx5IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgdGl0bGU9InskbW9kLT5MYW5nKCdyZW1vdmVfbGluZScpfSIgcm9sZT0iYnV0dG9uIiBhcmlhLWRpc2FibGVkPSJmYWxzZSI+PHNwYW4gY2xhc3M9ImVjYjItaWNvbi10cmFzaC1jYW4tcmVndWxhciI+PC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICB7Zm9yZWFjaCAkdmFsdWVzIGFzICRyb3cgPT4gJGZpZWxkc30KICAgICAgICA8ZGl2IGNsYXNzPSJyZXBlYXRlci13cmFwcGVyIHNvcnRhYmxlLWl0ZW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWZ0LXBhbmVsIGhhbmRsZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZWNiMi1pY29uLWdyaXAtZG90cy12ZXJ0aWNhbC1zb2xpZCI+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAge2ZvcmVhY2ggJHN1Yl9maWVsZHMgYXMgJGZpZWxkX2RlZn0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWZpZWxkIHJvd3skZmllbGRzQGl0ZXJhdGlvbn0gY29seyRmaWVsZF9kZWZAaXRlcmF0aW9ufSBzdWItZmllbGQteyRmaWVsZF9kZWYtPmdldF90eXBlKCl9Ij4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ic3ViX2ZpZWxkX2xhYmVsIj57JGZpZWxkX2RlZi0+Z2V0X2ZpZWxkX2xhYmVsKCl9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICB7JGZpZWxkX2RlZi0+c2V0X3N1Yl9maWVsZF92YWx1ZSgkZmllbGRzLCAkcm93KX0KICAgICAgICAgICAgICAgIHskZmllbGRfZGVmLT5nZXRfY29udGVudF9ibG9ja19pbnB1dCgpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICB7L2ZvcmVhY2h9CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyaWdodC1wYW5lbCBjb250cm9scyI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJlY2IyLXJlcGVhdGVyLXJlbW92ZSBlY2IyLWJ0biBlY2IyLWJ0bi1kZWZhdWx0IGVjYjItaWNvbi1vbmx5IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgdGl0bGU9InskbW9kLT5MYW5nKCdyZW1vdmVfbGluZScpfSIgcm9sZT0iYnV0dG9uIiBhcmlhLWRpc2FibGVkPSJmYWxzZSI+PHNwYW4gY2xhc3M9ImVjYjItaWNvbi10cmFzaC1jYW4tcmVndWxhciI+PC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIHsvZm9yZWFjaH0KCiAgICA8L2Rpdj4gICAgICAgIAoKCntlbHNlfXsqIGxheW91dCAndGFibGUnICp9CiAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4KICAgICAgICA8dGFibGUgaWQ9InskYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIGNsYXNzPSJlY2JfcmVwZWF0ZXIgc29ydGFibGUgeyRsYXlvdXR9LWxheW91dCIgZGF0YS1ibG9jay1uYW1lPSJ7JGJsb2NrX25hbWV9IiBkYXRhLWhpZ2hlc3Qtcm93PSJ7JHZhbHVlc3xAY291bnR9IiB7aWYgJG1heF9ibG9ja3M+MH1kYXRhLW1heC1ibG9ja3M9InskbWF4X2Jsb2Nrc30iey9pZn0gZGF0YS1yZXBlYXRlci1hZGQ9IiN7JGJsb2NrX25hbWV9LXJlcGVhdGVyLWFkZCI+CiAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0icmVwZWF0ZXItd3JhcHBlci1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0ibGVmdC1wYW5lbCI+PC90aD4KICAgICAgICAgICAgICAgIHtmb3JlYWNoICRzdWJfZmllbGRzIGFzICRmaWVsZF9kZWZ9CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJzdWItZmllbGQtaGVhZGluZyBzdWItZmllbGQtaGVhZGluZy17JGZpZWxkX2RlZi0+Z2V0X3R5cGUoKX0gY29seyRmaWVsZF9kZWZAaXRlcmF0aW9ufSIgZGF0YS1oZWFkaW5nLWZvcj0iLmNvbHskZmllbGRfZGVmQGl0ZXJhdGlvbn0iPgogICAgICAgICAgICAgICAgICAgICAgICB7JGZpZWxkX2RlZi0+Z2V0X2ZpZWxkX2xhYmVsKCl9CiAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InJpZ2h0LXBhbmVsIj48L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90aGVhZD4KCiAgICAgICAgICAgIDx0Ym9keSBjbGFzcz0ieypzb3J0YWJsZSp9Ij4KICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0icmVwZWF0ZXItd3JhcHBlci10ZW1wbGF0ZSBzb3J0YWJsZS1pdGVtIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJsZWZ0LXBhbmVsIGhhbmRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlY2IyLWljb24tZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIHtmb3JlYWNoICRzdWJfZmllbGRzIGFzICRmaWVsZF9kZWZ9CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJzdWItZmllbGQgc3ViLWZpZWxkLXskZmllbGRfZGVmLT5nZXRfdHlwZSgpfSI+CiAgICAgICAgICAgICAgICAgICAgICAgIHskZmllbGRfZGVmLT5nZXRfY29udGVudF9ibG9ja19pbnB1dCgpfQogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICB7L2ZvcmVhY2h9CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyaWdodC1wYW5lbCBjb250cm9scyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImVjYjItcmVwZWF0ZXItcmVtb3ZlIGVjYjItYnRuIGVjYjItYnRuLWRlZmF1bHQgZWNiMi1pY29uLW9ubHkiIGRhdGEtcmVwZWF0ZXI9IiN7JGJsb2NrX25hbWV9LXJlcGVhdGVyIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3JlbW92ZV9saW5lJyl9IiByb2xlPSJidXR0b24iIGFyaWEtZGlzYWJsZWQ9ImZhbHNlIj48c3BhbiBjbGFzcz0iZWNiMi1pY29uLXRyYXNoLWNhbi1yZWd1bGFyIj48L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CgogICAgICAgICAgICB7Zm9yZWFjaCAkdmFsdWVzIGFzICRyb3cgPT4gJGZpZWxkc30KICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0icmVwZWF0ZXItd3JhcHBlciBzb3J0YWJsZS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImxlZnQtcGFuZWwgaGFuZGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVjYjItaWNvbi1ncmlwLWRvdHMtdmVydGljYWwtc29saWQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgoKICAgICAgICAgICAgICAgIHtmb3JlYWNoICRzdWJfZmllbGRzIGFzICRmaWVsZF9kZWZ9CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJzdWItZmllbGQgcm93eyRmaWVsZHNAaXRlcmF0aW9ufSBjb2x7JGZpZWxkX2RlZkBpdGVyYXRpb259IHN1Yi1maWVsZC17JGZpZWxkX2RlZi0+Z2V0X3R5cGUoKX0iPgogICAgICAgICAgICAgICAgICAgICAgICB7JGZpZWxkX2RlZi0+c2V0X3N1Yl9maWVsZF92YWx1ZSgkZmllbGRzLCAkcm93KX0KICAgICAgICAgICAgICAgICAgICAgICAgeyRmaWVsZF9kZWYtPmdldF9jb250ZW50X2Jsb2NrX2lucHV0KCl9CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0KCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJyaWdodC1wYW5lbCBjb250cm9scyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImVjYjItcmVwZWF0ZXItcmVtb3ZlIGVjYjItYnRuIGVjYjItYnRuLWRlZmF1bHQgZWNiMi1pY29uLW9ubHkiIGRhdGEtcmVwZWF0ZXI9IiN7JGJsb2NrX25hbWV9LXJlcGVhdGVyIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3JlbW92ZV9saW5lJyl9IiByb2xlPSJidXR0b24iIGFyaWEtZGlzYWJsZWQ9ImZhbHNlIj48c3BhbiBjbGFzcz0iZWNiMi1pY29uLXRyYXNoLWNhbi1yZWd1bGFyIj48L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICA8L3RhYmxlPiAgICAgIAogICAgPC9kaXY+Cgp7L2lmfQoKICAgIDxkaXYgY2xhc3M9ImVjYl9yZXBlYXRlcl9mb290ZXIiPgogICAgICAgIDxidXR0b24gaWQ9InskYmxvY2tfbmFtZX0tcmVwZWF0ZXItYWRkIiBjbGFzcz0iZWNiMi1yZXBlYXRlci1hZGQgZWNiMi1idG4gZWNiMi1idG4tZGVmYXVsdCIgZGF0YS1yZXBlYXRlcj0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIHRpdGxlPSJ7JG1vZC0+TGFuZygnYWRkX2xpbmUnKX0iIHJvbGU9ImJ1dHRvbiIge2lmICFlbXB0eSgkbWF4X2Jsb2NrcykgJiYgJHZhbHVlc3xjb3VudD49JG1heF9ibG9ja3N9IGRpc2FibGVkIGFyaWEtZGlzYWJsZWQ9InRydWUie2Vsc2V9YXJpYS1kaXNhYmxlZD0iZmFsc2Uiey9pZn0+PHNwYW4gY2xhc3M9ImVjYjItaWNvbi1wbHVzIj48L3NwYW4+Jm5ic3A7Jm5ic3A7eyRtb2QtPkxhbmcoJ2FkZF9pdGVtJyl9PC9idXR0b24+CiAgICA8L2Rpdj4KCg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/hidden/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/hidden/class.ecb2fd_hidden.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfaGlkZGVuIGV4dGVuZHMgZWNiMl9GaWVsZERlZkJhc2UgCnsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQ9MCkgCgl7CQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQpOwoKICAgICAgICAkdGhpcy0+Z2V0X3ZhbHVlcygkdmFsdWUpOyAgICAgICAgICAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKCiAgICAgICAgJHRoaXMtPnNldF9maWVsZF9wYXJhbWV0ZXJzKCk7CgogICAgICAgICR0aGlzLT5pbml0aWFsaXNlX29wdGlvbnMoJHBhcmFtcyk7ICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAogICAgICAgIAoJfQoKCgogICAgLyoqCiAgICAgKiAgc2V0cyB0aGUgYWxsb3dlZCBwYXJhbWV0ZXJzIGZvciB0aGlzIGZpZWxkIHR5cGUKICAgICAqCiAgICAgKiAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyAtIGFycmF5IG9mIHBhcmFtZXRlcl9uYW1lcyA9PiBbIGRlZmF1bHRfdmFsdWUsIGZpbHRlcl90eXBlIF0KICAgICAqICAgICAgc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkcsIEZJTFRFUl9WQUxJREFURV9JTlQsIEZJTFRFUl9WQUxJREFURV9CT09MRUFOLCBGSUxURVJfU0FOSVRJWkVfRU1BSUwgCiAgICAgKiAgICAgIHNlZTogaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZmlsdGVyLmZpbHRlcnMucGhwCiAgICAgKiAgJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyAtIG9wdGlvbmFsbHkgYWxsb3cgYW55IG90aGVyIHBhcmFtZXRlcnMgdG8gYmUgaW5jbHVkZWQsIGUuZy4gbW9kdWxlIGNhbGxzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGRfcGFyYW1ldGVycygpIAogICAgewogICAgICAgICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICd2YWx1ZScgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLCAKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IEZJTFRFUl9ERUZBVUxUXQogICAgICAgIF07CiAgICAgICAgLy8gJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzID0gWyAnYWxpYXMnID0+ICdwYXJhbWV0ZXInIF07CiAgICAgICAgLy8gJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyA9IEZBTFNFOyAgICAvLyBkZWZhdWx0OiB0cnVlCgogICAgfQoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBjb21wbGV0ZSBjb250ZW50IGJsb2NrIAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKSAKICAgIHsKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSggJ3N0cmluZzonLiR0aGlzLT5nZXRfdGVtcGxhdGUoKSwgbnVsbCwgbnVsbCwgJHNtYXJ0eSApOwogICAgICAgICR0cGwtPmFzc2lnbignYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd2YWx1ZScsICR0aGlzLT5vcHRpb25zWyd2YWx1ZSddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdkZXNjcmlwdGlvbicsICR0aGlzLT5vcHRpb25zWydkZXNjcmlwdGlvbiddICk7CiAgICAgICAgcmV0dXJuICR0cGwtPmZldGNoKCk7CiAgIAogICAgfQoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/hidden/help.ecb2fd_hidden.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfaGlkZGVuLnRwbCAqfQo8cD5UaGUgaGlkZGVuIGZpZWxkIGNyZWF0ZXMgYSBzaW1wbGUgaGlkZGVuIGlucHV0LCBmb3Igc3RvcmluZyBhIHNpbmdsZSBzdHJpbmcuPC9wPgoKPGZpZWxkc2V0PgogICAgPGxlZ2VuZD5ub3RoaW5nIHRvIHNlZSBoZXJlITwvbGVnZW5kPgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoKX0KPC9maWVsZHNldD4KCjxwcmU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPWhpZGRlbiBibG9jaz10ZXN0IGxhYmVsPSdUZXN0JyBkZWZhdWx0PSdmaWxsIGl0J317L2xpdGVyYWx9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAnaGlkZGVuJzwvbGk+CiAgICA8bGk+YmxvY2sgKHJlcXVpcmVkKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5sYWJlbCAob3B0aW9uYWwpIC0gVGlwOiBJZiB5b3UgYWRkIGxhYmVsPScmbmJzcDsnIHRoZSBsYWJlbCB3aWxsIGJlIGhpZGRlbjwvbGk+CiAgICA8bGk+dmFsdWUgKG9wdGlvbmFsKSAtIHNldHMgdGhlIHZhbHVlPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/hidden/input.ecb2fd_hidden.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX2hpZGRlbi50cGwgLSB2MS4wIC0gMjVKdW4yMiAKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0Ke2lmICFlbXB0eSgkZGVzY3JpcHRpb24pfQogICAgICAgIHskZGVzY3JpcHRpb259PGJyPgp7L2lmfQogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYmxvY2tfbmFtZX0iIHZhbHVlPSJ7JHZhbHVlfSI+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/module_picker/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/module_picker/class.ecb2fd_module_picker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfbW9kdWxlX3BpY2tlciBleHRlbmRzIGVjYjJfRmllbGREZWZCYXNlIAp7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkPTApIAoJewkKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRtb2QsICRibG9ja05hbWUsICR2YWx1ZSwgJHBhcmFtcywgJGFkZGluZywgJGlkKTsKCiAgICAgICAgJHRoaXMtPmdldF92YWx1ZXMoJHZhbHVlKTsgICAgICAgICAgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCgogICAgICAgICR0aGlzLT5zZXRfZmllbGRfcGFyYW1ldGVycygpOwoKICAgICAgICAkdGhpcy0+aW5pdGlhbGlzZV9vcHRpb25zKCRwYXJhbXMpOyAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKICAgICAgICAKCX0KCgoKICAgIC8qKgogICAgICogIHNldHMgdGhlIGFsbG93ZWQgcGFyYW1ldGVycyBmb3IgdGhpcyBmaWVsZCB0eXBlCiAgICAgKgogICAgICogICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgLSBhcnJheSBvZiBwYXJhbWV0ZXJfbmFtZXMgPT4gWyBkZWZhdWx0X3ZhbHVlLCBmaWx0ZXJfdHlwZSBdCiAgICAgKiAgICAgIHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HLCBGSUxURVJfVkFMSURBVEVfSU5ULCBGSUxURVJfVkFMSURBVEVfQk9PTEVBTiwgRklMVEVSX1NBTklUSVpFX0VNQUlMIAogICAgICogICAgICBzZWU6IGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2ZpbHRlci5maWx0ZXJzLnBocAogICAgICogICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgLSBvcHRpb25hbGx5IGFsbG93IGFueSBvdGhlciBwYXJhbWV0ZXJzIHRvIGJlIGluY2x1ZGVkLCBlLmcuIG1vZHVsZSBjYWxscwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkX3BhcmFtZXRlcnMoKSAKICAgIHsKICAgICAgICAkdGhpcy0+cGFyYW1ldGVyX2FsaWFzZXMgPSBbCiAgICAgICAgICAgICdkZWZhdWx0X3ZhbHVlJyA9PiAnZGVmYXVsdCcKICAgICAgICBdOwogICAgICAgICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICdsYWJlbCcgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICd0ZXh0JyAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdsaW5rJyAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZWZhdWx0JyAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sIAogICAgICAgICAgICAnYWRtaW5fZ3JvdXBzJyAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnZGVzY3JpcHRpb24nICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gRklMVEVSX0RFRkFVTFRdCiAgICAgICAgXTsKICAgICAgICAvLyAkdGhpcy0+cGFyYW1ldGVyX2FsaWFzZXMgPSBbICdhbGlhcycgPT4gJ3BhcmFtZXRlcicgXTsKICAgICAgICAvLyAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zID0gRkFMU0U7ICAgIC8vIGRlZmF1bHQ6IHRydWUKCiAgICB9CgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGNvbXBsZXRlIGNvbnRlbnQgYmxvY2sgCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja19pbnB1dCgpIAogICAgewogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYgCiAgICAgICAgICAgICAhJHRoaXMtPmlzX3ZhbGlkX2dyb3VwX21lbWJlcigkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7IAogICAgICAgIH0KCiAgICAgICAgJG1vZG9wcyA9IGNtc21zKCktPkdldE1vZHVsZU9wZXJhdGlvbnMoKTsKICAgICAgICAkbW9kdWxlcyA9ICRtb2RvcHMtPkdldEluc3RhbGxlZE1vZHVsZXMoKTsKICAgICAgICAkbW9kdWxlc2FycmF5ID0gWycnID0+ICR0aGlzLT5tb2QtPkxhbmcoJ25vbmVfc2VsZWN0ZWQnKSBdOwogICAgICAgIGZvcmVhY2ggKCRtb2R1bGVzIGFzICRtb2R1bGUpIHsKICAgICAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kdWxlKTsKICAgICAgICAgICAgaWYgKGlzX29iamVjdCgkbW9kKSkgewogICAgICAgICAgICAgICAgJG5hbWUgPSAkbW9kLT5HZXRGcmllbmRseU5hbWUoKTsKICAgICAgICAgICAgICAgICRtb2R1bGVzYXJyYXlbJG1vZHVsZV0gPSAoJG5hbWUpID8gJG5hbWUgOiAkbW9kdWxlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChjbGFzc19leGlzdHMoJ0NvbGxhdG9yJykpIHsKICAgICAgICAgICAgJGNvbGwgPSBuZXcgQ29sbGF0b3IoJ2VuX1VTJyk7IC8vIFRPRE8gZGVmYXVsdCBsb2NhbGUgYWx3YXlzIG9rPwogICAgICAgICAgICB1a3NvcnQoJG1vZHVsZXNhcnJheSwgZnVuY3Rpb24oJGEsICRiKSB1c2UgKCRjb2xsKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY29sbGF0b3JfY29tcGFyZSgkY29sbCwgJGEsICRiKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgCiAgICAgICAgJGNsYXNzID0gJyc7CiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Jsb2NrX25hbWUnLCAkdGhpcy0+YmxvY2tfbmFtZSApOwogICAgICAgICR0cGwtPmFzc2lnbigndmFsdWUnLCAkdGhpcy0+dmFsdWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ21vZHVsZXNhcnJheScsICRtb2R1bGVzYXJyYXkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywgJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdsYWJlbCcsICR0aGlzLT5vcHRpb25zWydsYWJlbCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnaXNfc3ViX2ZpZWxkJywgJHRoaXMtPmlzX3N1Yl9maWVsZCApOwogICAgICAgIGlmICggJHRoaXMtPmlzX3N1Yl9maWVsZCApIHsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViX3Jvd19udW1iZXInLCAkdGhpcy0+c3ViX3Jvd19udW1iZXIgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViRmllbGROYW1lJywgJHRoaXMtPnN1Yl9wYXJlbnRfYmxvY2suJ1tyXycuJHRoaXMtPnN1Yl9yb3dfbnVtYmVyLiddWycuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZS4nXScgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViRmllbGRJZCcsICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrLidfcl8nLiR0aGlzLT5zdWJfcm93X251bWJlci4nXycuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZSApOwogICAgICAgICAgICAkY2xhc3MgLj0gJyByZXBlYXRlci1maWVsZCc7CiAgICAgICAgfQogICAgICAgICR0cGwtPmFzc2lnbignY2xhc3MnLCAkY2xhc3MpOyAgICAgICAgICAKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/module_picker/help.ecb2fd_module_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfbW9kdWxlX3BpY2tlci50cGwgKn0KPHA+VGhlIG1vZHVsZV9waWNrZXIgZmllbGQgY3JlYXRlcyBhIGRyb3Bkb3duIG9mIGFsbCBpbnN0YWxsZWQgbW9kdWxlcyB0byBzZWxlY3QgZnJvbS48L3A+Cgo8ZmllbGRzZXQ+CiAgICB7JGZpZWxkZGVmLT5nZXRfZGVtb19pbnB1dCgpfQo8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9bW9kdWxlIGJsb2NrPXRlc3QxMiBsYWJlbD0nMTI6IG1vZHVsZV9waWNrZXInIGRlZmF1bHQ9Rm9ybUJ1aWxkZXJ9ey9saXRlcmFsfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ21vZHVsZV9waWNrZXInLCBhbGlhczonPGI+bW9kdWxlPC9iPic8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+ZGVmYXVsdCAob3B0aW9uYWwpIC0gKGFsaWFzOiAnPGI+ZGVmYXVsdF92YWx1ZTwvYj4nKSAtIGluaXRpYWwgdmFsdWUgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/module_picker/input.ecb2fd_module_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX21vZHVsZV9waWNrZXIudHBsIC0gdjEuMCAtIDI1SnVuMjIgCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKip9CntpZiAhZW1wdHkoJGRlc2NyaXB0aW9uKX0KICAgICAgICB7JGRlc2NyaXB0aW9ufTxicj4Key9pZn0KCntpZiAkaXNfc3ViX2ZpZWxkfQogICAge2lmIGlzX251bGwoJHN1Yl9yb3dfbnVtYmVyKX17KiBzdWJfZmllbGQgdGVtcGxhdGUgZmllbGQgKn0KICAgICAgICA8c2VsZWN0IGlkPSIiIG5hbWU9IiIgY2xhc3M9InskY2xhc3N9IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ7JGJsb2NrX25hbWV9Ij4KICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRtb2R1bGVzYXJyYXkgc2VsZWN0ZWQ9JHZhbHVlfQogICAgICAgIDwvc2VsZWN0PgoKICAgIHtlbHNlfXsqIHN1Yl9maWVsZCAqfQogICAgICAgIDxzZWxlY3QgaWQ9Inskc3ViRmllbGRJZH0iIG5hbWU9Inskc3ViRmllbGROYW1lfSIgY2xhc3M9InskY2xhc3N9Ij4KICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRtb2R1bGVzYXJyYXkgc2VsZWN0ZWQ9JHZhbHVlfQogICAgICAgIDwvc2VsZWN0PgoKICAgIHsvaWZ9Cgp7ZWxzZX0KICAgICAgICB7aHRtbF9vcHRpb25zIG5hbWU9JGJsb2NrX25hbWUgb3B0aW9ucz0kbW9kdWxlc2FycmF5IHNlbGVjdGVkPSR2YWx1ZX0KCnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/page_picker/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/page_picker/class.ecb2fd_page_picker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfcGFnZV9waWNrZXIgZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCk7CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgl9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBhbGxvd2VkIHBhcmFtZXRlcnMgZm9yIHRoaXMgZmllbGQgdHlwZQogICAgICoKICAgICAqICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzIC0gYXJyYXkgb2YgcGFyYW1ldGVyX25hbWVzID0+IFsgZGVmYXVsdF92YWx1ZSwgZmlsdGVyX3R5cGUgXQogICAgICogICAgICBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklORywgRklMVEVSX1ZBTElEQVRFX0lOVCwgRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4sIEZJTFRFUl9TQU5JVElaRV9FTUFJTCAKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZF9wYXJhbWV0ZXJzKCkgCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzID0gWwogICAgICAgICAgICAnZGVmYXVsdF92YWx1ZScgPT4gJ2RlZmF1bHQnCiAgICAgICAgXTsKICAgICAgICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAnbGFiZWwnICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnYWxsb3djdXJyZW50JyAgPT4gWydkZWZhdWx0JyA9PiAwLCAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnYWxsb3dfYWxsJyAgICAgPT4gWydkZWZhdWx0JyA9PiAwLCAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnZGVmYXVsdCcgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLCAKICAgICAgICAgICAgJ2FkbWluX2dyb3VwcycgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IEZJTFRFUl9ERUZBVUxUXQogICAgICAgIF07CiAgICAgICAgLy8gJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzID0gWyAnYWxpYXMnID0+ICdwYXJhbWV0ZXInIF07CiAgICAgICAgLy8gJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyA9IEZBTFNFOyAgICAvLyBkZWZhdWx0OiB0cnVlCgogICAgfQoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBjb21wbGV0ZSBjb250ZW50IGJsb2NrIAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKSAKICAgIHsKICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICYmIAogICAgICAgICAgICAgISR0aGlzLT5pc192YWxpZF9ncm91cF9tZW1iZXIoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lY2IyX2hpZGRlbl9maWVsZCgpOyAKICAgICAgICB9CgogICAgICAgICRjb250ZW50T3BzID0gXENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsKICAgIAogICAgICAgICRjbGFzcyA9ICcnOwogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAnc3RyaW5nOicuJHRoaXMtPmdldF90ZW1wbGF0ZSgpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdibG9ja19uYW1lJywgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbHVlJywgJHRoaXMtPnZhbHVlICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdjb250ZW50T3BzJywgJGNvbnRlbnRPcHMgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywgJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdsYWJlbCcsICR0aGlzLT5vcHRpb25zWydsYWJlbCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnYWxsb3djdXJyZW50JywgJHRoaXMtPm9wdGlvbnNbJ2FsbG93Y3VycmVudCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnYWxsb3dfYWxsJywgJHRoaXMtPm9wdGlvbnNbJ2FsbG93X2FsbCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnaXNfc3ViX2ZpZWxkJywgJHRoaXMtPmlzX3N1Yl9maWVsZCApOwogICAgICAgIGlmICggJHRoaXMtPmlzX3N1Yl9maWVsZCApIHsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViX3Jvd19udW1iZXInLCAkdGhpcy0+c3ViX3Jvd19udW1iZXIgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViRmllbGROYW1lJywgJHRoaXMtPnN1Yl9wYXJlbnRfYmxvY2suJ1tyXycuJHRoaXMtPnN1Yl9yb3dfbnVtYmVyLiddWycuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZS4nXScgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViRmllbGRJZCcsICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrLidfcl8nLiR0aGlzLT5zdWJfcm93X251bWJlci4nXycuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZSApOwogICAgICAgICAgICAkY2xhc3MgLj0gJyByZXBlYXRlci1maWVsZCc7CiAgICAgICAgfQogICAgICAgICR0cGwtPmFzc2lnbignY2xhc3MnLCAkY2xhc3MpOyAgCiAgICAgICAgcmV0dXJuICR0cGwtPmZldGNoKCk7CiAgIAogICAgfQoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/page_picker/help.ecb2fd_page_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfcGFnZV9waWNrZXIudHBsICp9CjxwPlRoZSBwYWdlX3BpY2tlciBmaWVsZCBjcmVhdGVzIGEgaGllcmFyY2h5IG9mIGRyb3Bkb3ducyB0byBzZWxlY3QgYSBjb250ZW50IHBhZ2UuPC9wPgoKPGZpZWxkc2V0PgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoKX0KPC9maWVsZHNldD4KCjxwcmU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXBhZ2VfcGlja2VyIGxhYmVsPSdTZWxlY3QgYSBwYWdlJyBibG9jaz10ZXN0MTB9ey9saXRlcmFsfTwvcHJlPgo8cD5Ob3RlOiBzZXRzIHRoZSBjb250ZW50IHBhZ2UgaWQuPC9wPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJ3BhZ2VfcGlja2VyJywgYWxpYXM6ICc8Yj5wYWdlczwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmFsbG93Y3VycmVudCAtIChvcHRpb25hbCkgLSB3aGV0aGVyIG9yIG5vdCB0byBhbGxvdyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0gdG8gYmUgcmUtc2VsZWN0ZWQuIGRlZmF1bHQ6ZmFsc2U8L2xpPgogICAgPGxpPmFsbG93X2FsbCAtIChvcHRpb25hbCkgLSB3aGV0aGVyIG9yIG5vdCB0byBhbGxvdyBpbmFjdGl2ZSBjb250ZW50IGl0ZW1zLCBvciBjb250ZW50IGl0ZW1zIHRoYXQgZG8gbm90IGhhdmUgdXNhYmxlIGxpbmtzIHRvIGJlIHNlbGVjdGVkLiBkZWZhdWx0OmZhbHNlPC9saT4KICAgIDxsaT5kZWZhdWx0IChvcHRpb25hbCkgLSAoYWxpYXM6ICc8Yj5kZWZhdWx0X3ZhbHVlPC9iPicpIC0gaW5pdGlhbCB2YWx1ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2U8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgoKPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/page_picker/input.ecb2fd_page_picker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX3BhZ2VfcGlja2VyLnRwbCAtIHYxLjAgLSAyNUp1bjIyIAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7aWYgIWVtcHR5KCRkZXNjcmlwdGlvbil9CiAgICAgICAgeyRkZXNjcmlwdGlvbn08YnI+CnsvaWZ9CntpZiAkaXNfc3ViX2ZpZWxkfQogICAge2lmIGlzX251bGwoJHN1Yl9yb3dfbnVtYmVyKX17KiBvdXRwdXQgdGVtcGxhdGUgZmllbGQgKn0KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iIiBuYW1lPSIiIGNsYXNzPSJ7JGNsYXNzfSIgdmFsdWU9Ii0xIiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ7JGJsb2NrX25hbWV9Ii8+CgogICAge2Vsc2V9CiAgICAgICAge3BhZ2Vfc2VsZWN0b3IgaWQ9JHN1YkZpZWxkSWQgbmFtZT0kc3ViRmllbGROYW1lIHZhbHVlPSR2YWx1ZSBhbGxvd2N1cnJlbnQ9JGFsbG93Y3VycmVudAphbGxvd19hbGw9JGFsbG93X2FsbH17KiBjbGFzcyBub3Qgc3VwcG9ydGVkIC0gdXNlIGpzIHRvIGFkZCAqfQogICAgey9pZn0KCntlbHNlfQogICAgICAgIHtwYWdlX3NlbGVjdG9yIG5hbWU9JGJsb2NrX25hbWUgdmFsdWU9JHZhbHVlIGFsbG93Y3VycmVudD0kYWxsb3djdXJyZW50IGFsbG93X2FsbD0kYWxsb3dfYWxsfQoKey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/radio/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/radio/class.ecb2fd_radio.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfcmFkaW8gZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCk7CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgl9CgoKCiAgICAvKioKICAgICAqICBzZXRzIHRoZSBhbGxvd2VkIHBhcmFtZXRlcnMgZm9yIHRoaXMgZmllbGQgdHlwZQogICAgICoKICAgICAqICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzIC0gYXJyYXkgb2YgcGFyYW1ldGVyX25hbWVzID0+IFsgZGVmYXVsdF92YWx1ZSwgZmlsdGVyX3R5cGUgXQogICAgICogICAgICBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklORywgRklMVEVSX1ZBTElEQVRFX0lOVCwgRklMVEVSX1ZBTElEQVRFX0JPT0xFQU4sIEZJTFRFUl9TQU5JVElaRV9FTUFJTCAKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZF9wYXJhbWV0ZXJzKCkgCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzID0gWwogICAgICAgICAgICAnZGVmYXVsdF92YWx1ZScgPT4gJ2RlZmF1bHQnCiAgICAgICAgXTsKICAgICAgICAkdGhpcy0+ZGVmYXVsdF9wYXJhbWV0ZXJzID0gWwogICAgICAgICAgICAndmFsdWVzJyAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnbGFiZWwnICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnaW5saW5lJyAgICAgICAgPT4gWydkZWZhdWx0JyA9PiBGQUxTRSwgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnZmxpcF92YWx1ZXMnICAgPT4gWydkZWZhdWx0JyA9PiBGQUxTRSwgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnZGVmYXVsdCcgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLCAKICAgICAgICAgICAgJ2FkbWluX2dyb3VwcycgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IEZJTFRFUl9ERUZBVUxUXQogICAgICAgIF07CiAgICAgICAgLy8gJHRoaXMtPnBhcmFtZXRlcl9hbGlhc2VzID0gWyAnYWxpYXMnID0+ICdwYXJhbWV0ZXInIF07CiAgICAgICAgLy8gJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyA9IEZBTFNFOyAgICAvLyBkZWZhdWx0OiB0cnVlCgogICAgfQoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBjb21wbGV0ZSBjb250ZW50IGJsb2NrIAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKSAKICAgIHsKICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICYmIAogICAgICAgICAgICAgISR0aGlzLT5pc192YWxpZF9ncm91cF9tZW1iZXIoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lY2IyX2hpZGRlbl9maWVsZCgpOyAKICAgICAgICB9CgogICAgICAgICRvcHRpb25zID0gJHRoaXMtPmdldF9hcnJheV9mcm9tX2NzbCggJHRoaXMtPm9wdGlvbnNbJ3ZhbHVlcyddICk7CiAgICAgICAgaWYgKCAkdGhpcy0+b3B0aW9uc1snZmxpcF92YWx1ZXMnXSAmJiAhZW1wdHkoJG9wdGlvbnMpICkgeyAKICAgICAgICAgICAgJG9wdGlvbnMgPSBhcnJheV9mbGlwKCRvcHRpb25zKTsKICAgICAgICB9CiAgICAgICAgJHNlcGFyYXRvciA9ICgkdGhpcy0+b3B0aW9uc1snaW5saW5lJ10pID8gJyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOycgOiAnPGJyPic7CgogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAnc3RyaW5nOicuJHRoaXMtPmdldF90ZW1wbGF0ZSgpLCBudWxsLCBudWxsLCAkc21hcnR5ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdibG9ja19uYW1lJywgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbHVlJywgJHRoaXMtPnZhbHVlICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdvcHRpb25zJywgJG9wdGlvbnMgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3NlcGFyYXRvcicsICRzZXBhcmF0b3IgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywgJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdsYWJlbCcsICR0aGlzLT5vcHRpb25zWydsYWJlbCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnaXNfc3ViX2ZpZWxkJywgJHRoaXMtPmlzX3N1Yl9maWVsZCApOwogICAgICAgIGlmICggJHRoaXMtPmlzX3N1Yl9maWVsZCApIHsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViX3Jvd19udW1iZXInLCAkdGhpcy0+c3ViX3Jvd19udW1iZXIgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViRmllbGROYW1lJywgJHRoaXMtPnN1Yl9wYXJlbnRfYmxvY2suJ1tyXycuJHRoaXMtPnN1Yl9yb3dfbnVtYmVyLiddWycuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZS4nXScgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnc3ViRmllbGRJZCcsICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrLidfcl8nLiR0aGlzLT5zdWJfcm93X251bWJlci4nXycuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZSApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/radio/help.ecb2fd_radio.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfcmFkaW8udHBsICp9CjxwPlRoZSByYWRpbyBmaWVsZCBjcmVhdGVzIGEgc2ltcGxlIHRleHQgaW5wdXQsIGZvciBzdG9yaW5nIGEgc2luZ2xlIHN0cmluZy48L3A+Cgo8ZmllbGRzZXQ+CiAgICB7JGZpZWxkZGVmLT5nZXRfZGVtb19pbnB1dChbJ3ZhbHVlcyc9PiJBcHBsZT1hcHBsZSxPcmFuZ2U9b3JhbmdlLEtpd2lmcnVpdD1raXdpZnJ1aXQiLCAnZGVmYXVsdCc9PiJvcmFuZ2UiXSl9CjwvZmllbGRzZXQ+Cgo8cHJlPntsaXRlcmFsfXtjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1yYWRpbyBibG9jaz10ZXN0MTcgbGFiZWw9J0ZydWl0JyB2YWx1ZXM9J0FwcGxlPWFwcGxlLE9yYW5nZT1vcmFuZ2UsS2l3aWZydWl0PWtpd2lmcnVpdCcgZGVmYXVsdD0nb3JhbmdlJ317L2xpdGVyYWx9PC9wcmU+Cgo8cD5QYXJhbWV0ZXJzOjwvcD4KPHVsPgogICAgPGxpPmZpZWxkIChyZXF1aXJlZCkgLSAncmFkaW8nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPnZhbHVlcyAocmVxdWlyZWQpIC0gY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgJ1RleHQnIG9yICdUZXh0PXZhbHVlJy4gRXhhbXBsZTogJ0FwcGxlPWFwcGxlLE9yYW5nZT1vcmFuZ2UsS2l3aWZydWl0PWtpd2lmcnVpdCc8L2xpPgogICAgPGxpPmZsaXBfdmFsdWVzIChvcHRpb25hbCkgLSBzd2FwcyB0aGUgZHJvcGRvd25zIHZhbHVlcyA8LT4gdGV4dDwvbGk+CiAgICA8bGk+aW5saW5lIChvcHRpb25hbCkgLSBpZiBzZXQgZGlzcGxheXMgYWRtaW4gcmFkaW8gYnV0dG9ucyBpbmxpbmU8L2xpPgogICAgPGxpPmRlZmF1bHQgKG9wdGlvbmFsKSAtIChhbGlhczogJzxiPmRlZmF1bHRfdmFsdWU8L2I+JykgLSBpbml0aWFsIHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZTwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+Cgo8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPnJhZGlvIHdpdGggaW5saW5lIGJ1dHRvbnMgLSB1c2UgJ2lubGluZT0xJzwvbGVnZW5kPgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWyd2YWx1ZXMnPT4nQXBwbGU9YXBwbGUsT3JhbmdlPW9yYW5nZSxLaXdpZnJ1aXQ9a2l3aWZydWl0JywgJ2lubGluZSc9PjEsICdkZWZhdWx0Jz0+J29yYW5nZSddKX0KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/radio/input.ecb2fd_radio.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX3JhZGlvLnRwbCAtIHYxLjAgLSAyNUp1bjIyIAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7aWYgIWVtcHR5KCRkZXNjcmlwdGlvbil9CiAgICAgICAgeyRkZXNjcmlwdGlvbn08YnI+CnsvaWZ9Cgp7aWYgJGlzX3N1Yl9maWVsZH0KICAgIHtpZiBpc19udWxsKCRzdWJfcm93X251bWJlcil9eyogb3V0cHV0IHRlbXBsYXRlIGZpZWxkICp9CiAgICAgICAge2ZvcmVhY2ggJG9wdGlvbnMgYXMgJG9wdF9rZXkgPT4gJG9wdF90ZXh0fQogICAgICAgICAgICA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSIiIHZhbHVlPSJ7JG9wdF9rZXl9IiBjbGFzcz0icmVwZWF0ZXItZmllbGQiICBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ7JGJsb2NrX25hbWV9IiB7aWYgJG9wdF9rZXk9PSR2YWx1ZX1jaGVja2VkPSJjaGVja2VkInsvaWZ9Pnskb3B0X3RleHR8ZXNjYXBlfTwvbGFiZWw+eyRzZXBhcmF0b3J9CiAgICAgICAgey9mb3JlYWNofQoKICAgIHtlbHNlfSAgICAKICAgICAgICB7aHRtbF9yYWRpb3MgaWQ9JHN1YkZpZWxkSWQgbmFtZT0kc3ViRmllbGROYW1lIG9wdGlvbnM9JG9wdGlvbnMgc2VwYXJhdG9yPSRzZXBhcmF0b3Igc2VsZWN0ZWQ9JHZhbHVlfSAKCiAgICB7L2lmfQoKe2Vsc2V9CiAgICAgICAge2h0bWxfcmFkaW9zIG5hbWU9JGJsb2NrX25hbWUgb3B0aW9ucz0kb3B0aW9ucyBzZXBhcmF0b3I9JHNlcGFyYXRvciBzZWxlY3RlZD0kdmFsdWV9IAoKey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/sortablelist/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/sortablelist/class.ecb2fd_sortablelist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfc29ydGFibGVsaXN0IGV4dGVuZHMgZWNiMl9GaWVsZERlZkJhc2UgCnsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQ9MCkgCgl7CQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQpOwoKICAgICAgICAkdGhpcy0+Z2V0X3ZhbHVlcygkdmFsdWUpOyAgICAgICAgICAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKCiAgICAgICAgJHRoaXMtPnNldF9maWVsZF9wYXJhbWV0ZXJzKCk7CgogICAgICAgICR0aGlzLT5pbml0aWFsaXNlX29wdGlvbnMoJHBhcmFtcyk7ICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAogICAgICAgIAoJfQoKCgogICAgLyoqCiAgICAgKiAgc2V0cyB0aGUgYWxsb3dlZCBwYXJhbWV0ZXJzIGZvciB0aGlzIGZpZWxkIHR5cGUKICAgICAqCiAgICAgKiAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyAtIGFycmF5IG9mIHBhcmFtZXRlcl9uYW1lcyA9PiBbIGRlZmF1bHRfdmFsdWUsIGZpbHRlcl90eXBlIF0KICAgICAqICAgICAgc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkcsIEZJTFRFUl9WQUxJREFURV9JTlQsIEZJTFRFUl9WQUxJREFURV9CT09MRUFOLCBGSUxURVJfU0FOSVRJWkVfRU1BSUwgCiAgICAgKiAgICAgIHNlZTogaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZmlsdGVyLmZpbHRlcnMucGhwCiAgICAgKiAgJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyAtIG9wdGlvbmFsbHkgYWxsb3cgYW55IG90aGVyIHBhcmFtZXRlcnMgdG8gYmUgaW5jbHVkZWQsIGUuZy4gbW9kdWxlIGNhbGxzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGRfcGFyYW1ldGVycygpIAogICAgewogICAgICAgICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgPSBGQUxTRTsgICAgLy8gZGVmYXVsdDogVFJVRSAtIG5lZWRlZCBmb3IgbW9kdWxlIGNhbGwKICAgICAgICAkdGhpcy0+cGFyYW1ldGVyX2FsaWFzZXMgPSBbCiAgICAgICAgICAgICdkZWZhdWx0X3ZhbHVlJyA9PiAnZGVmYXVsdCcKICAgICAgICBdOwogICAgICAgICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICd2YWx1ZXMnICAgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLCAKICAgICAgICAgICAgJ2RlZmF1bHQnICAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sIAogICAgICAgICAgICAnYWxsb3dkdXBsaWNhdGVzJyAgID0+IFsnZGVmYXVsdCcgPT4gRkFMU0UsICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ21heF9zZWxlY3RlZCcgICAgICA9PiBbJ2RlZmF1bHQnID0+IC0xLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ21heF9udW1iZXInICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwgCiAgICAgICAgICAgICdyZXF1aXJlZF9udW1iZXInICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0lOVF0sIAogICAgICAgICAgICAnbGFiZWxfbGVmdCcgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2xhYmVsX3JpZ2h0JyAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdmbGlwX3ZhbHVlcycgICAgICAgPT4gWydkZWZhdWx0JyA9PiBGQUxTRSwgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnbW9kJyAgICAgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ3VkdCcgICAgICAgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICd0ZW1wbGF0ZScgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnY3VzdG9tZ3NfZmllbGQnICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2FkbWluX2dyb3VwcycgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gRklMVEVSX0RFRkFVTFRdCiAgICAgICAgXTsKCiAgICB9CgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGNvbXBsZXRlIGNvbnRlbnQgYmxvY2sgCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja19pbnB1dCgpIAogICAgewogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYgCiAgICAgICAgICAgICAhJHRoaXMtPmlzX3ZhbGlkX2dyb3VwX21lbWJlcigkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7IAogICAgICAgIH0KCiAgICAgICAgLy8gZ2V0IHRoZSBkcm9wZG93biB2YWx1ZXMvb3B0aW9ucwogICAgICAgIGlmICggJHRoaXMtPm9wdGlvbnNbJ21vZCddICkgeyAgCiAgICAgICAgICAgIC8vIGNhbGwgbW9kdWxlIHRvIGdldCB2YWx1ZXMgKGNvbW1hIHNlcGFyYXRlZCBsaXN0KQogICAgICAgICAgICAkZXhjbHVkZV9vcHRpb25zID0gWyd2YWx1ZXMnLCd1ZHQnLCdkZWZhdWx0X3ZhbHVlJywnZmlyc3RfdmFsdWUnLCdkZXNjcmlwdGlvbicsJ2xhYmVsX2xlZnQnLCdsYWJlbF9yaWdodCcsJ21heF9udW1iZXInLCdyZXF1aXJlZF9udW1iZXInLCdtb2QnLCdmbGlwX3ZhbHVlcycsJ2NvbXBhY3QnLCdmaWVsZCcsJ2FsbG93ZHVwbGljYXRlcycsJ21heF9zZWxlY3RlZCcsJ2Fzc2lnbiddOwogICAgICAgICAgICAKICAgICAgICAgICAgJG9wdGlvbnMgPSAkdGhpcy0+Z2V0X3ZhbHVlc19mcm9tX21vZHVsZSgkdGhpcy0+b3B0aW9uc1snbW9kJ10sIFtdLCAkZXhjbHVkZV9vcHRpb25zKTsgICAgICAgICAgICAKCgogICAgICAgIH0gZWxzZWlmICggJHRoaXMtPm9wdGlvbnNbJ3VkdCddICkgeyAgCiAgICAgICAgICAgIC8vIHJ1biBVRFQgdG8gZ2V0IHZhbHVlcyAoYXJyYXkgb3IgY29tbWEgc2VwYXJhdGVkIGxpc3QpCiAgICAgICAgICAgICRvcHRpb25zID0gJHRoaXMtPmdldF92YWx1ZXNfZnJvbV91ZHQoICR0aGlzLT5vcHRpb25zWyd1ZHQnXSApOwogICAgICAgICAgICBpZiAoJHRoaXMtPmVycm9yKSByZXR1cm4gJHRoaXMtPm1vZC0+ZXJyb3JfbXNnKCR0aGlzLT5lcnJvcik7CiAgICAgICAgICAgIGlmICggJG9wdGlvbnMgKSAkb3B0aW9ucyA9IGFycmF5X2ZsaXAoJG9wdGlvbnMpOwoKICAgICAgICB9IGVsc2VpZiAoICR0aGlzLT5vcHRpb25zWyd0ZW1wbGF0ZSddICkgeyAgCiAgICAgICAgICAgIC8vIHNtYXJ0eSB0ZW1wbGF0ZSB0byBnZXQgdmFsdWVzIChhcnJheSBvciBjb21tYSBzZXBhcmF0ZWQgbGlzdCkKICAgICAgICAgICAgJG9wdGlvbnMgPSAkdGhpcy0+Z2V0X3ZhbHVlc19mcm9tX3RlbXBsYXRlKCAkdGhpcy0+b3B0aW9uc1sndGVtcGxhdGUnXSApOwogICAgICAgICAgICBpZiAoJHRoaXMtPmVycm9yKSByZXR1cm4gJHRoaXMtPm1vZC0+ZXJyb3JfbXNnKCR0aGlzLT5lcnJvcik7CgogICAgICAgIH0gZWxzZWlmICggJHRoaXMtPm9wdGlvbnNbJ2N1c3RvbWdzX2ZpZWxkJ10gKSB7ICAKICAgICAgICAgICAgLy8gQ3VzdG9tR1MgZmllbGQgdG8gZ2V0IHZhbHVlcyBmcm9tIChuZXdsaW5lIG9yIGNvbW1hIHNlcGFyYXRlZCBsaXN0KQogICAgICAgICAgICAkb3B0aW9ucyA9ICR0aGlzLT5nZXRfdmFsdWVzX2Zyb21fY3VzdG9tZ3MoICR0aGlzLT5vcHRpb25zWydjdXN0b21nc19maWVsZCddICk7CiAgICAgICAgICAgIGlmICgkdGhpcy0+ZXJyb3IpIHJldHVybiAkdGhpcy0+bW9kLT5lcnJvcl9tc2coJHRoaXMtPmVycm9yKTsKCiAgICAgICAgfSBlbHNlIHsgCiAgICAgICAgICAgIC8vIHVzZSBwcm92aWRlZCAndmFsdWVzJyAoY29tbWEgc2VwYXJhdGVkIGxpc3QpCiAgICAgICAgICAgICRvcHRpb25zID0gJHRoaXMtPmdldF9hcnJheV9mcm9tX2NzbCggJHRoaXMtPm9wdGlvbnNbJ3ZhbHVlcyddICk7CiAgICAgICAgICAgIGlmICggJG9wdGlvbnMgKSAkb3B0aW9ucyA9IGFycmF5X2ZsaXAoJG9wdGlvbnMpOwogICAgICAgIAogICAgICAgIH0KCiAgICAgICAgLy8gYXBwbHkgc29tZSBvdGhlciBwYXJhbWV0ZXJzCiAgICAgICAgaWYgKCAkdGhpcy0+b3B0aW9uc1snZmxpcF92YWx1ZXMnXSAmJiAhZW1wdHkoJG9wdGlvbnMpICkgeyAKICAgICAgICAgICAgJG9wdGlvbnMgPSBhcnJheV9mbGlwKCRvcHRpb25zKTsKICAgICAgICB9CiAgICAgICAgJHNlbGVjdGVkTGlzdCA9IGV4cGxvZGUoJywnLCAkdGhpcy0+dmFsdWUpOwogICAgICAgICRhdmFpbGFibGUgPSAkb3B0aW9uczsKICAgICAgICAkc2VsZWN0ZWQgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2ggKCRzZWxlY3RlZExpc3QgYXMgJGl0ZW0pIHsKICAgICAgICAgICAgaWYgKCAhZW1wdHkoJGF2YWlsYWJsZSkgJiYgYXJyYXlfa2V5X2V4aXN0cygkaXRlbSwgJGF2YWlsYWJsZSkgKSB7CiAgICAgICAgICAgICAgICAkc2VsZWN0ZWRbJGl0ZW1dID0gJGF2YWlsYWJsZVskaXRlbV07CiAgICAgICAgICAgICAgICB1bnNldCgkYXZhaWxhYmxlWyRpdGVtXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWyJtYXhfbnVtYmVyIl0pIC8vIG1heF9udW1iZXIgdGFrZXMgcHJlY2lkZW5jZSBpZiBib3RoIHNldAogICAgICAgICAgICAkdGhpcy0+b3B0aW9uc1sicmVxdWlyZWRfbnVtYmVyIl0gPSAiIjsKCiAgICAgICAgCiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdtb2QnLCAkdGhpcy0+bW9kICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnZGVzY3JpcHRpb24nLCAkdGhpcy0+b3B0aW9uc1snZGVzY3JpcHRpb24nXSApOwoKICAgICAgICAkdHBsLT5hc3NpZ24oICdzZWxlY3RlZCcsICR0aGlzLT52YWx1ZSApOwoKICAgICR0cGwtPmFzc2lnbignc2VsZWN0YXJlYV9wcmVmaXgnLCR0aGlzLT5ibG9ja19uYW1lKTsKICAgICR0cGwtPmFzc2lnbignc2VsZWN0ZWRfc3RyJywkdGhpcy0+dmFsdWUpOwogICAgJHRwbC0+YXNzaWduKCdzZWxlY3RlZCcsJHNlbGVjdGVkKTsKICAgICR0cGwtPmFzc2lnbignYXZhaWxhYmxlJywgJGF2YWlsYWJsZSk7CiAgICAkdHBsLT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywgJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10pOwogICAgJHRwbC0+YXNzaWduKCdsYWJlbExlZnQnLCAkdGhpcy0+b3B0aW9uc1sibGFiZWxfbGVmdCJdKTsKICAgICR0cGwtPmFzc2lnbignbGFiZWxSaWdodCcsICR0aGlzLT5vcHRpb25zWyJsYWJlbF9yaWdodCJdKTsKICAgICR0cGwtPmFzc2lnbignbWF4TnVtYmVyJywgJHRoaXMtPm9wdGlvbnNbIm1heF9udW1iZXIiXSk7CiAgICAkdHBsLT5hc3NpZ24oJ3JlcXVpcmVkTnVtYmVyJywgJHRoaXMtPm9wdGlvbnNbInJlcXVpcmVkX251bWJlciJdKTsKCiAgICAgICAgJHRwbC0+YXNzaWduKCdvcHRpb25zJywgJG9wdGlvbnMgKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCgoKICAgICAgICAvLyAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdFQ0IyJyk7CiAgICAgICAgLy8gJG9wdGlvbnMgPSBhcnJheSgpOwogICAgICAgIC8vICR0bXAgPSBhcnJheSgpOwoKICAgICAgICAvLyBpZiAoICR0aGlzLT5vcHRpb25zWydtb2QnXSApIHsKICAgICAgICAvLyAgICAgLy8gY2FsbCBtb2R1bGUgdG8gZ2V0IHZhbHVlcwogICAgICAgIC8vICAgICAkZXhjbHVkZV9vcHRpb25zID0gWyd2YWx1ZXMnLCd1ZHQnLCdkZWZhdWx0X3ZhbHVlJywnZmlyc3RfdmFsdWUnLCdkZXNjcmlwdGlvbicsJ2xhYmVsX2xlZnQnLCdsYWJlbF9yaWdodCcsJ21heF9udW1iZXInLCdyZXF1aXJlZF9udW1iZXInLCdtb2QnLCdmbGlwX3ZhbHVlcycsJ2NvbXBhY3QnLCdmaWVsZCcsJ2FsbG93ZHVwbGljYXRlcycsJ21heF9zZWxlY3RlZCddOwogICAgICAgIC8vICAgICAkcGFyYW1zID0gW107CiAgICAgICAgLy8gICAgIGZvcmVhY2ggKCR0aGlzLT5vcHRpb25zIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgLy8gICAgICAgICBpZiAoICFpbl9hcnJheSgka2V5LCAkZXhjbHVkZV9vcHRpb25zKSApICRwYXJhbXNbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgLy8gICAgIH0KICAgICAgICAvLyAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSggJHRoaXMtPm9wdGlvbnNbJ21vZCddICk7CiAgICAgICAgLy8gICAgIGlmICggJG1vZHVsZSApIHsgCiAgICAgICAgLy8gICAgICAgICAkdG1wX2FjdGlvbiA9IGlzc2V0KCR0aGlzLT5vcHRpb25zWydhY3Rpb24nXSkgPyAkdGhpcy0+b3B0aW9uc1snYWN0aW9uJ10gOiAnJzsKICAgICAgICAvLyAgICAgICAgICRjbXNfbW9kdWxlX2NhbGwgPSAie2Ntc19tb2R1bGUgbW9kdWxlPSIuJHRoaXMtPm9wdGlvbnNbJ21vZCddOwogICAgICAgIC8vICAgICAgICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgIC8vICAgICAgICAgICAgICRjbXNfbW9kdWxlX2NhbGwgLj0gIiAka2V5PSR2YWx1ZSI7CiAgICAgICAgLy8gICAgICAgICB9OwogICAgICAgIC8vICAgICAgICAgJGNtc19tb2R1bGVfY2FsbCAuPSAifSI7CiAgICAgICAgLy8gICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgIC8vICAgICAgICAgJHRoaXMtPm9wdGlvbnNbInZhbHVlcyJdID0gc3RyaXBfdGFncygkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJGNtc19tb2R1bGVfY2FsbCkpOwogICAgICAgIC8vICAgICB9CiAgICAgICAgLy8gfQoKCgoKICAgICAgICAvLyBpZiAoICR0aGlzLT5vcHRpb25zWyd1ZHQnXSApIHsKICAgICAgICAvLyAgICAgJG9wdGlvbnMgPSBVc2VyVGFnT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPkNhbGxVc2VyVGFnKCR0aGlzLT5vcHRpb25zWyd1ZHQnXSwgJHRtcCk7CiAgICAgICAgLy8gfQogICAgICAgIC8vIC8vIGNyZWF0ZSAkb3B0aW9uc2FycmF5IG9mIGtleSA9PiB0ZXh0IGZyb20gY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiAna2V5PXRleHQsa2V5Mj10ZXh0MicKICAgICAgICAvLyAkb3B0aW9uc2FycmF5ID0gZXhwbG9kZSgnLCcsICR0aGlzLT5vcHRpb25zWyJ2YWx1ZXMiXSk7CiAgICAgICAgLy8gaWYgKGVtcHR5KCRvcHRpb25zYXJyYXkpKSByZXR1cm47CiAgICAgICAgLy8gZm9yZWFjaCAoJG9wdGlvbnNhcnJheSBhcyAkb3B0aW9uKSB7CiAgICAgICAgLy8gICAgIGlmICgkb3B0aW9uIT0nJykgewogICAgICAgIC8vICAgICAgICAgJGtleV92YWwgPSBleHBsb2RlKCc9JywgJG9wdGlvbik7CiAgICAgICAgLy8gICAgICAgICAkb3B0aW9uc1ska2V5X3ZhbFswXV0gPSAka2V5X3ZhbFsxXTsKICAgICAgICAvLyAgICAgfQogICAgICAgIC8vIH0KICAgICAgICAvLyBpZiAoICR0aGlzLT5vcHRpb25zWydtb2QnXSApIHsgIC8vIGZvcm1hdCByZXZlcnNlZCBpbiBtb2R1bGUgb3V0cHV0IGZvciBzb3J0YWJsZWxpc3QKICAgICAgICAvLyAgICAgJG9wdGlvbnMgPSBhcnJheV9mbGlwKCRvcHRpb25zKTsKICAgICAgICAvLyB9CiAgICAgICAgLy8gaWYgKCAkdGhpcy0+b3B0aW9uc1snZmxpcF92YWx1ZXMnXSApIHsgCiAgICAgICAgLy8gICAgICRvcHRpb25zID0gYXJyYXlfZmxpcCgkb3B0aW9ucyk7CiAgICAgICAgLy8gfQogICAgICAgIC8vIGlmIChlbXB0eSgkdGhpcy0+b3B0aW9uc1snZmlyc3RfdmFsdWUnXSkgPT0gZmFsc2UpCiAgICAgICAgLy8gICAgICRvcHRpb25zID0gYXJyYXkoJHRoaXMtPm9wdGlvbnNbJ2ZpcnN0X3ZhbHVlJ10gPT4gJycpICsgJG9wdGlvbnM7CgoKICAgICAgICAvLyAkc2VsZWN0ZWRMaXN0ID0gZXhwbG9kZSgnLCcsICR0aGlzLT52YWx1ZSk7CiAgICAgICAgLy8gJGF2YWlsYWJsZSA9ICRvcHRpb25zOwogICAgICAgIC8vICRzZWxlY3RlZCA9IGFycmF5KCk7CiAgICAgICAgLy8gZm9yZWFjaCAoJHNlbGVjdGVkTGlzdCBhcyAkaXRlbSkgewogICAgICAgIC8vICAgICBpZiAoIGFycmF5X2tleV9leGlzdHMoJGl0ZW0sICRhdmFpbGFibGUpICkgewogICAgICAgIC8vICAgICAgICAgJHNlbGVjdGVkWyRpdGVtXSA9ICRhdmFpbGFibGVbJGl0ZW1dOwogICAgICAgIC8vICAgICAgICAgdW5zZXQoJGF2YWlsYWJsZVskaXRlbV0pOwogICAgICAgIC8vICAgICB9CiAgICAgICAgLy8gfQogICAgICAgIC8vIGlmICgkdGhpcy0+b3B0aW9uc1sibWF4X251bWJlciJdKSAvLyBtYXhfbnVtYmVyIHRha2VzIHByZWNpZGVuY2UgaWYgYm90aCBzZXQKICAgICAgICAvLyAgICAgJHRoaXMtPm9wdGlvbnNbInJlcXVpcmVkX251bWJlciJdID0gIiI7CiAgICAgICAgLy8gJHNtYXJ0eSA9IFNtYXJ0eV9DTVM6OmdldF9pbnN0YW5jZSgpOwogICAgICAgIC8vICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgkbW9kLT5HZXRUZW1wbGF0ZVJlc291cmNlKCdzb3J0YWJsZWxpc3RfdGVtcGxhdGUudHBsJyksIG51bGwsIG51bGwsICRzbWFydHkpOwogICAgICAgIC8vICR0cGwtPmFzc2lnbignc2VsZWN0YXJlYV9wcmVmaXgnLCR0aGlzLT5ibG9ja19uYW1lKTsKICAgICAgICAvLyAkdHBsLT5hc3NpZ24oJ3NlbGVjdGVkX3N0cicsJHRoaXMtPnZhbHVlKTsKICAgICAgICAvLyAkdHBsLT5hc3NpZ24oJ3NlbGVjdGVkJywkc2VsZWN0ZWQpOwogICAgICAgIC8vICR0cGwtPmFzc2lnbignYXZhaWxhYmxlJywgJGF2YWlsYWJsZSk7CiAgICAgICAgLy8gJHRwbC0+YXNzaWduKCdkZXNjcmlwdGlvbicsICR0aGlzLT5vcHRpb25zWydkZXNjcmlwdGlvbiddKTsKICAgICAgICAvLyAkdHBsLT5hc3NpZ24oJ2xhYmVsTGVmdCcsICR0aGlzLT5vcHRpb25zWyJsYWJlbF9sZWZ0Il0pOwogICAgICAgIC8vICR0cGwtPmFzc2lnbignbGFiZWxSaWdodCcsICR0aGlzLT5vcHRpb25zWyJsYWJlbF9yaWdodCJdKTsKICAgICAgICAvLyAkdHBsLT5hc3NpZ24oJ21vZCcsJG1vZCk7CiAgICAgICAgLy8gJHRwbC0+YXNzaWduKCdtYXhOdW1iZXInLCAkdGhpcy0+b3B0aW9uc1sibWF4X251bWJlciJdKTsKICAgICAgICAvLyAkdHBsLT5hc3NpZ24oJ3JlcXVpcmVkTnVtYmVyJywgJHRoaXMtPm9wdGlvbnNbInJlcXVpcmVkX251bWJlciJdKTsKICAgICAgICAvLyByZXR1cm4gJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10uJHRwbC0+ZmV0Y2goKTsKCgogICAgfQoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/sortablelist/help.ecb2fd_sortablelist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfc29ydGFibGVsaXN0LnRwbCAqfQo8cD5DcmVhdGVzIGEgc29ydGFibGVsaXN0IHRoYXQgdGhlIGVkaXRvciBjYW4gZHJhZy1hbmQtZHJvcCB0byBzZWxlY3QgZnJvbSB0aGUgbGlzdC4gVGhlIG9wdGlvbnMgY2FuIGJlIGNyZWF0ZWQgZnJvbSBhOiBjb21tYSBzZXBhcmF0ZWQgbGlzdCAodmFsdWVzKSwgbW9kdWxlIGNhbGwgKG1vZCksIFVzZXIgRGVmaW5lZCBUYWcgKHVkdCksIG9yIGEgc21hcnR5IHRlbXBsYXRlICh0ZW1wbGF0ZSAvIHVkdCkuIE9uZSBvZiB0aGVzZSBwYXJhbWV0ZXJzIG11c3QgYmUgdXNlZCAoKikuPC9wPgoKPGZpZWxkc2V0Pgp7JGZpZWxkZGVmLT5nZXRfZGVtb19pbnB1dChbJ3ZhbHVlcyc9PidhcHBsZT1BcHBsZSxvcmFuZ2U9T3JhbmdlLGdyZWVuPUdyZWVuLHZhbHVlPUxhYmVsJywgJ2RlZmF1bHQnPT4nb3JhbmdlJ10pfQo8L2ZpZWxkc2V0PgoKe2xpdGVyYWx9CjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdzb3J0YWJsZWxpc3QnPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPnZhbHVlcyAoKikgLSBjb21tYSBzZXBhcmF0ZWQgc3RyaW5nIG9mICdUZXh0JyBvciAndmFsdWU9VGV4dCcuIChOb3RlOiB0aGlzIGlzIHJldmVyc2VkIGNvbXBhcmVkIHRvICdkcm9wZG93bicgdmFsdWVzIC0gdXNlIGZsaXBfdmFsdWVzIGlmIG5lY2Vzc2FyeSkgZS5nOjxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zb3J0YWJsZWxpc3QgYmxvY2s9dGVzdDQgbGFiZWw9J0ZydWl0JyB2YWx1ZXM9J2FwcGxlPUFwcGxlLG9yYW5nZT1PcmFuZ2UsZ3JlZW49R3JlZW4sdmFsdWU9TGFiZWwnfTwvcHJlPgogICAgPC9saT4gICAKICAgIDxsaT5tb2QgKCopIC0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgbW9kdWxlIHRvIGNhbGwgdG8gZ2V0IHRoZSBvcHRpb24gdmFsdWVzLiAKICAgIFRoZSB0ZW1wbGF0ZSBjYWxsIG5lZWRzIHRvIGVpdGhlcjogc2V0IGFuIGFycmF5ICRvcHRpb25zIG9mICd2YWx1ZScgPT4gJ1RleHQnIHdpdGggc2NvcGU9Z2xvYmFsLCBvciByZXR1cm4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiAnVGV4dCwuLi4nIG9yICdUZXh0PXZhbHVlLC4uLicuIEFueSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgYXJlIGFsc28gcGFzc2VkIG9udG8gdGhlIHNwZWNpZmllZCBtb2R1bGUuIFlvdSBtYXkgd2FudCB0byBpbmNsdWRlICdhY3Rpb24nIGFuZCAndGVtcGxhdGUnIHBhcmFtZXRlcnMuIGUuZzo8YnI+CiAgICAgICAgPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9c29ydGFibGVsaXN0IGJsb2NrPXRlc3Q0YSBsYWJlbD0nU29ydGFibGUgTGlzdCAtIGZyb20gbW9kdWxlJyBtb2Q9TElTRVByb2plY3RzIHRlbXBsYXRlX3N1bW1hcnk9J2l0ZW1fZHJvcGRvd24nIHBhZ2VsaW1pdD0yfTwvcHJlPgogICAgPC9saT4KICAgIDxsaT51ZHQgKCopIC0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgVXNlciBEZWZpbmVkIFRhZyB0byBjYWxsIHRvIGdldCB0aGUgb3B0aW9uIHZhbHVlcy4gVGhlIFVEVCBzaG91bGQgZWl0aGVyIHJldHVybiBhbiBhcnJheSBvZiAndmFsdWUnID0+ICdUZXh0Jywgb3IgcmV0dXJuIGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiAnVGV4dCcgb3IgJ1RleHQ9dmFsdWUnLjxicj4KICAgICAgICA8cHJlPntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zb3J0YWJsZWxpc3QgYmxvY2s9dGVzdDRiIHVkdD0nZWNiMl90ZXN0X3VkdF9vcHRpb25zJyBsYWJlbD0nU29ydGFibGUgTGlzdCAtIGZyb20gdWR0J308L3ByZT4KICAgIDwvbGk+CiAgICA8bGk+dGVtcGxhdGUgKCopIC0gc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgc21hcnR5IHRlbXBsYXRlIGZyb20gRGVzaWduIE1hbmFnZXIgdG8gY2FsbCB0byBnZXQgdGhlIG9wdGlvbiB2YWx1ZXMuIFRoZSB0ZW1wbGF0ZSBjYWxsIG5lZWRzIHRvIGVpdGhlcjogc2V0IGFuIGFycmF5ICRvcHRpb25zIG9mICd2YWx1ZScgPT4gJ1RleHQnIHdpdGggc2NvcGU9Z2xvYmFsLCBvciByZXR1cm4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiAnVGV4dCwuLi4nIG9yICdUZXh0PXZhbHVlLC4uLicuPGJyPgogICAgICAgIDxwcmU+e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXNvcnRhYmxlbGlzdCBibG9jaz10ZXN0NGMgdGVtcGxhdGU9J0VDQjJfdGVzdF90ZW1wbGF0ZV9vcHRpb25zJyBsYWJlbD0nU29ydGFibGUgTGlzdCAtIGZyb20gdGVtcGxhdGUnIGxhYmVsX2xlZnQ9J1NlbGVjdGVkIGl0ZW1zIGZyb20gdGVtcGxhdGUnIGxhYmVsX3JpZ2h0PSdBdmFpbGFibGUgaXRlbXMgZnJvbSB0ZW1wbGF0ZSd9PC9wcmU+CiAgICA8L2xpPgogICAgPGxpPmN1c3RvbWdzX2ZpZWxkICgqKSAtIG5hbWUgb2YgY3VzdG9tZ3NfZmllbGQgdG8gcmV0cmlldmUgKHdpdGggc3BhY2VzLCBub3QgdW5kZXJzY29yZXMpIGUuZy4gJ1NlY3Rpb24gU3R5bGVzJy4gVGhpcyBuZWVkcyB0byBiZSBhIEN1c3RvbUdTICd0ZXh0YXJlYScgY29udGFpbmluZyBhIHNldCBvZiAnVGV4dCcgb3IgJ1RleHQ9dmFsdWUnLCBlaXRoZXIgb24gc2VwYXJhdGUgbGluZXMgb3Igc2VwYXJhdGVkIGJ5IGNvbW1hcy48YnI+CiAgICAgICAgPHByZT57Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9c29ydGFibGVsaXN0IGJsb2NrPXRlc3Q0ZCBjdXN0b21nc19maWVsZD0nU2VjdGlvbiBTdHlsZXMnIGxhYmVsPSdTb3J0YWJsZSBMaXN0IC0gZnJvbSBDdXN0b21HUyd9PC9wcmU+CiAgICA8L2xpPgogICAgPGxpPmxhYmVsX2xlZnQgKG9wdGlvbmFsKSAtIGRlZmF1bHQ6ICdTZWxlY3RlZCc8L2xpPgogICAgPGxpPmxhYmVsX3JpZ2h0IChvcHRpb25hbCkgLSBkZWZhdWx0OiAnQXZhaWxhYmxlJzwvbGk+CiAgICA8bGk+bWF4X251bWJlciAob3B0aW9uYWwpIC0gbGltaXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0aGF0IGNhbiBiZSBzZWxlY3RlZDwvbGk+CiAgICA8bGk+cmVxdWlyZWRfbnVtYmVyIChvcHRpb25hbCkgLSBzZXRzIGEgc3BlY2lmaWMgbnVtYmVyIG9mIGl0ZW1zIHRoYXQgbXVzdCBiZSBzZWxlY3RlZCAob3Igbm9uZSk8L2xpPgogICAgPGxpPmZsaXBfdmFsdWVzIChvcHRpb25hbCkgLSBzd2FwcyB0aGUgZHJvcGRvd25zIHZhbHVlcyA8LT4gdGV4dDwvbGk+CiAgICA8bGk+ZGVmYXVsdCAob3B0aW9uYWwpIC0gKGFsaWFzOiAnPGI+ZGVmYXVsdF92YWx1ZTwvYj4nKSAtIGluaXRpYWwgdmFsdWUgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4KPGJyPgp7L2xpdGVyYWx9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/sortablelist/input.ecb2fd_sortablelist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX3NvcnRhYmxlbGlzdC50cGwgLSB2MS4wIC0gMjlKdW4yMiAKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0Ke2lmICFlbXB0eSgkZGVzY3JpcHRpb24pfQogICAgICAgIHskZGVzY3JpcHRpb259PGJyPgp7L2lmfQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ieyRzZWxlY3RhcmVhX3ByZWZpeH0iIG5hbWU9Inskc2VsZWN0YXJlYV9wcmVmaXh9IiB2YWx1ZT0ieyRzZWxlY3RlZF9zdHJ9IiBzaXplPSIxMDAiLz4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIGVjYjItY2IgeyRzZWxlY3RhcmVhX3ByZWZpeH0iPgogICAgPGRpdiBjbGFzcz0iZ3JpZF82IGFscGhhIj4KICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgIDxsZWdlbmQ+e2lmICRsYWJlbExlZnQhPScnfXskbGFiZWxMZWZ0fXtlbHNlfXskbW9kLT5MYW5nKCdjb250ZW50X2Jsb2NrX2xhYmVsX3NlbGVjdGVkJyl9ey9pZn08L2xlZ2VuZD4KICAgICAgICAgICAgPGRpdiBpZD0ic2VsZWN0ZWQtaXRlbXMiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJzb3J0YWJsZS1lY2IyLWxpc3Qgc29ydGFibGUtbGlzdCBzZWxlY3RlZC1pdGVtcyIgZGF0YS1jbXNtcy1jYi1pbnB1dD0ieyRzZWxlY3RhcmVhX3ByZWZpeH0iCiAgICAgICAgICAgICAgICB7aWYgJG1heE51bWJlcn0gZGF0YS1tYXgtbnVtYmVyPSJ7JG1heE51bWJlcn0iey9pZn17aWYgJHJlcXVpcmVkTnVtYmVyfSBkYXRhLXJlcXVpcmVkLW51bWJlcj0ieyRyZXF1aXJlZE51bWJlcn0iey9pZn0+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJwbGFjZWhvbGRlciBuby1zb3J0IHtpZiAkc2VsZWN0ZWR8QGNvdW50PjB9IGhpZGRlbnsvaWZ9Ij57aWYgJHJlcXVpcmVkTnVtYmVyfXskbW9kLT5MYW5nKCdkcm9wX3JlcXVpcmVkX2l0ZW1zJywgJHJlcXVpcmVkTnVtYmVyKX17ZWxzZX17JG1vZC0+TGFuZygnZHJvcF9pdGVtcycpfXsvaWZ9PC9saT4KICAgICAgICAgICAgICAgICAgICB7Zm9yZWFjaCAkc2VsZWN0ZWQgYXMgJGFsaWFzID0+ICRuYW1lfQogICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQgY2Ygc29ydGFibGUtaXRlbSIgZGF0YS1jbXNtcy1pdGVtLWlkPSJ7JGFsaWFzfSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JG5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3JlbW92ZScpfSIgY2xhc3M9InVpLWljb24gdWktaWNvbi10cmFzaCBzb3J0YWJsZS1yZW1vdmUiPnskbW9kLT5MYW5nKCdyZW1vdmUnKX08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgey9mb3JlYWNofQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9maWVsZHNldD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ3JpZF82IG9tZWdhIGRyYWdnYWJsZS1hcmVhIj4KICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgIDxsZWdlbmQ+e2lmICRsYWJlbFJpZ2h0IT0nJ317JGxhYmVsUmlnaHR9e2Vsc2V9eyRtb2QtPkxhbmcoJ2NvbnRlbnRfYmxvY2tfbGFiZWxfYXZhaWxhYmxlJyl9ey9pZn08L2xlZ2VuZD4KICAgICAgICAgICAgPGRpdiBpZD0iYXZhaWxhYmxlLWl0ZW1zIj4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ic29ydGFibGUtZWNiMi1saXN0IHNvcnRhYmxlLWxpc3QgYXZhaWxhYmxlLWl0ZW1zIj4KICAgICAgICAgICAgICAgIHtmb3JlYWNoICRhdmFpbGFibGUgYXMgJGFsaWFzID0+ICRuYW1lfQogICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQiIGRhdGEtY21zbXMtaXRlbS1pZD0ieyRhbGlhc30iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyRuYW1lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9InskbW9kLT5MYW5nKCdyZW1vdmUnKX0iIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tdHJhc2ggc29ydGFibGUtcmVtb3ZlIGhpZGRlbiI+eyRtb2QtPkxhbmcoJ3JlbW92ZScpfTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZmllbGRzZXQ+CiAgICA8L2Rpdj4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/textarea/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/textarea/class.ecb2fd_textarea.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfdGV4dGFyZWEgZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZSAKewoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZD0wKSAKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbW9kLCAkYmxvY2tOYW1lLCAkdmFsdWUsICRwYXJhbXMsICRhZGRpbmcsICRpZCk7CgogICAgICAgIGlmICggIWVtcHR5KCRwYXJhbXNbJ3JlcGVhdGVyJ10pICkgJHRoaXMtPnVzZV9qc29uX2Zvcm1hdCA9IFRSVUU7CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCiAgICAgICAgaWYgKCBpc3NldCgkdGhpcy0+ZmllbGRfYWxpYXNfdXNlZCkgJiYgJHRoaXMtPmZpZWxkX2FsaWFzX3VzZWQ9PSdlZGl0b3InICkgewogICAgICAgICAgICAkdGhpcy0+b3B0aW9uc1snd3lzaXd5ZyddID0gVFJVRTsKICAgICAgICB9CgoJfQoKCgogICAgLyoqCiAgICAgKiAgc2V0cyB0aGUgYWxsb3dlZCBwYXJhbWV0ZXJzIGZvciB0aGlzIGZpZWxkIHR5cGUKICAgICAqCiAgICAgKiAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyAtIGFycmF5IG9mIHBhcmFtZXRlcl9uYW1lcyA9PiBbIGRlZmF1bHRfdmFsdWUsIGZpbHRlcl90eXBlIF0KICAgICAqICAgICAgc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkcsIEZJTFRFUl9WQUxJREFURV9JTlQsIEZJTFRFUl9WQUxJREFURV9CT09MRUFOLCBGSUxURVJfU0FOSVRJWkVfRU1BSUwgCiAgICAgKiAgICAgIHNlZTogaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZmlsdGVyLmZpbHRlcnMucGhwCiAgICAgKiAgJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyAtIG9wdGlvbmFsbHkgYWxsb3cgYW55IG90aGVyIHBhcmFtZXRlcnMgdG8gYmUgaW5jbHVkZWQsIGUuZy4gbW9kdWxlIGNhbGxzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGRfcGFyYW1ldGVycygpIAogICAgewogICAgICAgIC8vICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgPSBGQUxTRTsgICAgLy8gZGVmYXVsdDogdHJ1ZQogICAgICAgIC8vICR0aGlzLT51c2VfanNvbl9mb3JtYXQgPSBUUlVFOyAgICAvLyBkZWZhdWx0OiBGQUxTRSAtIGNhbiBvdmVycmlkZSBlLmcuICdncm91cHMnIHR5cGUKICAgICAgICAkdGhpcy0+c2VhcmNoYWJsZV9jb250ZW50ID0gVFJVRTsKICAgICAgICAkdGhpcy0+cGFyYW1ldGVyX2FsaWFzZXMgPSBbCiAgICAgICAgICAgICdkZWZhdWx0X3ZhbHVlJyA9PiAnZGVmYXVsdCcKICAgICAgICBdOwogICAgICAgICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICdkZWZhdWx0JyAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sIAogICAgICAgICAgICAnbGFiZWwnICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAncm93cycgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiA0LCAgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ2NvbHMnICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gODAsICAgICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9JTlRdLAogICAgICAgICAgICAnd3lzaXd5ZycgICAgICAgPT4gWydkZWZhdWx0JyA9PiBGQUxTRSwgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAncmVwZWF0ZXInICAgICAgPT4gWydkZWZhdWx0JyA9PiBGQUxTRSwgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnbWF4X2Jsb2NrcycgICAgPT4gWydkZWZhdWx0JyA9PiAwLCAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0lOVF0sCiAgICAgICAgICAgICdhZG1pbl9ncm91cHMnICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdhc3NpZ24nICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfREVGQVVMVF0KICAgICAgICBdOwoKICAgIH0KCgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGNvbXBsZXRlIGNvbnRlbnQgYmxvY2sgCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja19pbnB1dCgpIAogICAgewogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYgCiAgICAgICAgICAgICAhJHRoaXMtPmlzX3ZhbGlkX2dyb3VwX21lbWJlcigkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7IAogICAgICAgIH0KCiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdtb2QnLCAkdGhpcy0+bW9kICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndHlwZScsICR0aGlzLT5maWVsZCApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3ZhbHVlJywgJHRoaXMtPnZhbHVlICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndmFsdWVzJywgJHRoaXMtPnZhbHVlcyApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3Jvd3MnLCAkdGhpcy0+b3B0aW9uc1sncm93cyddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnY29scycsICR0aGlzLT5vcHRpb25zWydjb2xzJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICd3eXNpd3lnJywgJHRoaXMtPm9wdGlvbnNbJ3d5c2l3eWcnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3JlcGVhdGVyJywgJHRoaXMtPm9wdGlvbnNbJ3JlcGVhdGVyJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdtYXhfYmxvY2tzJywgJHRoaXMtPm9wdGlvbnNbJ21heF9ibG9ja3MnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2Rlc2NyaXB0aW9uJywgJHRoaXMtPm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdhc3NpZ24nLCAkdGhpcy0+b3B0aW9uc1snYXNzaWduJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICd1c2VfanNvbl9mb3JtYXQnLCAkdGhpcy0+dXNlX2pzb25fZm9ybWF0ICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnbGFiZWwnLCAkdGhpcy0+b3B0aW9uc1snbGFiZWwnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2lzX3N1Yl9maWVsZCcsICR0aGlzLT5pc19zdWJfZmllbGQgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdkZWZhdWx0JywgJHRoaXMtPm9wdGlvbnNbJ2RlZmF1bHQnXSApOwogICAgICAgICRjbGFzcyA9ICcnOwogICAgICAgIGlmICggJHRoaXMtPm9wdGlvbnNbJ3d5c2l3eWcnXSApICRjbGFzcyAuPSAnIHd5c2l3eWcgVGlueU1DRSc7CiAgICAgICAgaWYgKCAkdGhpcy0+aXNfc3ViX2ZpZWxkICkgewogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJfcm93X251bWJlcicsICR0aGlzLT5zdWJfcm93X251bWJlciApOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJGaWVsZE5hbWUnLCAkdGhpcy0+c3ViX3BhcmVudF9ibG9jay4nW3JfJy4kdGhpcy0+c3ViX3Jvd19udW1iZXIuJ11bJy4KICAgICAgICAgICAgICAgICR0aGlzLT5ibG9ja19uYW1lLiddJyApOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oICdzdWJGaWVsZElkJywgJHRoaXMtPnN1Yl9wYXJlbnRfYmxvY2suJ19yXycuJHRoaXMtPnN1Yl9yb3dfbnVtYmVyLidfJy4KICAgICAgICAgICAgICAgICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgICAgICRjbGFzcyAuPSAnIHJlcGVhdGVyLWZpZWxkJzsKICAgICAgICB9CiAgICAgICAgJHRwbC0+YXNzaWduKCAnY2xhc3MnLCAkY2xhc3MgKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/textarea/help.ecb2fd_textarea.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfdGV4dGFyZWEudHBsICp9CjxwPlRoZSB0ZXh0YXJlYSBmaWVsZCBjcmVhdGVzIGVpdGhlciBhIHNpbXBsZSB0ZXh0YXJlYSBpbnB1dCwgZm9yIHBhcmFncmFwaHMgb2YgdGV4dCwgb3Igb3B0aW9uYWxseSBhIGZ1bGwgV1lTSVdZRyBlZGl0b3IgdG8gY3JlYXRlIGZvcm1hdHRlZCBodG1sLjwvcD4KCjxmaWVsZHNldD4KeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWydyb3dzJz0+MywgJ2NvbHMnPT4xMDAsICdkZWZhdWx0Jz0+J2Egc2FtcGxlIHRleHRhcmVhJ10pfQo8L2ZpZWxkc2V0PgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9dGV4dGFyZWEgbGFiZWw9J1RleHRhcmVhJyBibG9jaz10ZXN0NiByb3dzPTMgY29scz0xMDAgZGVmYXVsdD0nYSBzYW1wbGUgdGV4dGFyZWEnfXsvbGl0ZXJhbH08L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICc8Yj50ZXh0YXJlYTwvYj4nLCBvciBhbGlhczogJzxiPmVkaXRvcjwvYj4nIChzZXRzIHd5c2l3eWc9dHJ1ZSk8L2xpPgogICAgPGxpPmJsb2NrIChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+YXNzaWduIChyZXF1aXJlZCBmb3IgcmVwZWF0ZXIqKSAtIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrPC9saT4KICAgIDxsaT5yb3dzIChvcHRpb25hbCkgLSBzZXRzIHRoZSBoZWlnaHQgb2YgdGhlIHRleHRhcmVhLiBNYXkgYmUgb3ZlcnJpZGRlbiBieSBjc3MgLSBkZWZhdWx0IDIwPC9saT4KICAgIDxsaT5jb2xzIChvcHRpb25hbCkgLSBzZXRzIHRoZSB3aWR0aCBvZiB0aGUgdGV4dGFyZWEuIE1heSBiZSBvdmVycmlkZGVuIGJ5IGNzcyAtIGRlZmF1bHQgODA8L2xpPgogICAgPGxpPnJlcGVhdGVyIChvcHRpb25hbCkgLSBlbmFibGVzIDEgb3IgbW9yZSB0ZXh0YXJlYSBmaWVsZHMgdG8gYmUgY3JlYXRlZCBhbmQgc29ydGVkIGJ5IGNsaWNraW5nICYgZHJhZ2dpbmcuIE5vdGU6IGFzc2lnbiBtdXN0IGJlIHVzZWQgdG8gY29ycmVjdGx5IHN1cHBseSB0aGUgbXVsdGlwbGUgdmFsdWVzIHRvIHRoZSBwYWdlIHRlbXBsYXRlIGFzIGFuIGFycmF5LjwvbGk+CiAgICA8bGk+bWF4X2Jsb2NrcyAob3B0aW9uYWwpIC0gdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcGVhdGVyIGZpZWxkcyB0aGF0IGNhbiBiZSBjcmVhdGVkPC9saT4KICAgIDxsaT53eXNpd3lnIChvcHRpb25hbCkgLSBlbmFibGVzIGEgd3lzaXd5ZyBlZGl0b3Igb24gdGhlIHRleHRhcmVhIC0gZGVmYXVsdCBmYWxzZTwvbGk+CiAgICA8bGk+ZGVmYXVsdCAob3B0aW9uYWwpIC0gKGFsaWFzOiAnPGI+ZGVmYXVsdF92YWx1ZTwvYj4nKSAtIGluaXRpYWwgdmFsdWUgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlPC9saT4KICAgIDxsaT5hZG1pbl9ncm91cHMgKG9wdGlvbmFsKSAtIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzIHRoYXQgY2FuIHZpZXcgJiBlZGl0IHRoaXMgZmllbGQ8L2xpPgogICAgPGxpPmRlc2NyaXB0aW9uIChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBleHBsYW5hdGlvbiBmb3IgZWRpdG9yPC9saT4KPC91bD4KCjxmaWVsZHNldD4KICAgIDxsZWdlbmQ+U2FtcGxlIHRleHRhcmVhIHdpdGggd3lzaXd5ZyAtIHVzZSAnd3lzaXd5Zz0xJyA8L2xlZ2VuZD4KICAgIHskZmllbGRkZWYtPmdldF9kZW1vX2lucHV0KFsnZGVmYXVsdCc9PiJhIHNhbXBsZSB3eXNpd3lnIHRleHRhcmVhIiwgJ3d5c2l3eWcnPT4xLCAncm93cyc9PjJdKX0KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KICAgIDxsZWdlbmQ+U2FtcGxlIHRleHRhcmVhIHdpdGggd3lzaXd5ZyAmIHJlcGVhdGVyIC0gdXNlIHJlcGVhdGVyICYgbWF4X2Jsb2NrcyAtIHVzZSAncmVwZWF0ZXI9MSBtYXhfYmxvY2tzPTQgYXNzaWduPXRtcCB3eXNpd3lnPTEnIDwvbGVnZW5kPgogICAgeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWydkZWZhdWx0Jz0+ImEgc2FtcGxlIHd5c2l3eWcgdGV4dGFyZWEiLCAnd3lzaXd5Zyc9PjEsICdyb3dzJz0+MywKICAgICAgICAncmVwZWF0ZXInPT4xLCAnbWF4X2Jsb2Nrcyc9PjQsICdhc3NpZ24nPT4ndG1wJ10pfQo8L2ZpZWxkc2V0Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/textarea/input.ecb2fd_textarea.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX3RleHRhcmVhLnRwbCAtIHYxLjAgLSAyNUp1bjIyIAoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQp7aWYgIWVtcHR5KCRkZXNjcmlwdGlvbil9CiAgICAgICAgeyRkZXNjcmlwdGlvbn08YnI+CnsvaWZ9Cgp7aWYgJGlzX3N1Yl9maWVsZH0gICAgICAKICAgIHtpZiBpc19udWxsKCRzdWJfcm93X251bWJlcil9eyogb3V0cHV0IHRlbXBsYXRlIGZpZWxkICp9CiAgICAgICAgPHRleHRhcmVhIGlkPSIiIG5hbWU9IiIgY2xhc3M9InskY2xhc3N9IiBjb2xzPSJ7JGNvbHN9IiByb3dzPSJ7JHJvd3N9IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ7JGJsb2NrX25hbWV9IiB7aWYgJHd5c2l3eWd9c3R5bGU9ImRpc3BsYXk6bm9uZTsiey9pZn0+eyRkZWZhdWx0fTwvdGV4dGFyZWE+CgogICAge2Vsc2V9ICAgIAogICAgICAgIHtjbXNfdGV4dGFyZWEgaWQ9JHN1YkZpZWxkSWQgbmFtZT0kc3ViRmllbGROYW1lIGVuYWJsZXd5c2l3eWc9JHd5c2l3eWcgcm93cz0kcm93cyBjb2xzPSRjb2xzIHZhbHVlPSR2YWx1ZSBjbGFzcz0kY2xhc3N9CgogICAgey9pZn0KCntlbHNlaWYgISRyZXBlYXRlciAmJiAhJHVzZV9qc29uX2Zvcm1hdH0KICAgICAgICB7Y21zX3RleHRhcmVhIG5hbWU9JGJsb2NrX25hbWUgZW5hYmxld3lzaXd5Zz0kd3lzaXd5ZyByb3dzPSRyb3dzIGNvbHM9JGNvbHMgdmFsdWU9JHZhbHVlIGNsYXNzPSd3eXNpd3lnJ30KCntlbHNlaWYgISRyZXBlYXRlciAmJiAkdXNlX2pzb25fZm9ybWF0fQogICAgICAgIHtjbXNfdGV4dGFyZWEgbmFtZT0iJGJsb2NrX25hbWVbXSIgZW5hYmxld3lzaXd5Zz0kd3lzaXd5ZyByb3dzPSRyb3dzIGNvbHM9JGNvbHMgdmFsdWU9JHZhbHVlc1swXSAgY2xhc3M9JGNsYXNzfQoKe2Vsc2V9eyogJHJlcGVhdGVyICp9CiAgICB7aWYgZW1wdHkoJGFzc2lnbikgJiYgIShpc3NldCgkZmllbGRfYWxpYXNfdXNlZCkgJiYgJGZpZWxkX2FsaWFzX3VzZWQ9PSdpbnB1dF9yZXBlYXRlcicpfQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2V3YXJuaW5nIj4KICAgICAgICAgICAgeyRtb2QtPkxhbmcoJ2Vycm9yX2Fzc2lnbl9yZXF1aXJlZCcpfQogICAgICAgIDwvZGl2Pjxicj4KICAgIHsvaWZ9CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ieyRibG9ja19uYW1lfS1yZXBlYXRlciIgY2xhc3M9ImVjYl9yZXBlYXRlciBzb3J0YWJsZSB7aWYgJHd5c2l3eWd9d3lzaXd5Z3svaWZ9IiBkYXRhLWJsb2NrLW5hbWU9InskYmxvY2tfbmFtZX0iIGRhdGEtaGlnaGVzdC1yb3c9InskdmFsdWVzfEBjb3VudH0iIHtpZiAkbWF4X2Jsb2Nrcz4wfWRhdGEtbWF4LWJsb2Nrcz0ieyRtYXhfYmxvY2tzfSJ7L2lmfSBkYXRhLXJlcGVhdGVyLWFkZD0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXItYWRkIj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlcGVhdGVyLXdyYXBwZXItdGVtcGxhdGUgc29ydGFibGUtaXRlbSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVmdC1wYW5lbCBoYW5kbGUiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlY2IyLWljb24tZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iIiBuYW1lPSIiIGNsYXNzPSJyZXBlYXRlci1maWVsZCB3eXNpd3lnIiBjb2xzPSJ7JGNvbHN9IiByb3dzPSJ7JHJvd3N9IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyaWdodC1wYW5lbCI+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZWNiMi1yZXBlYXRlci1yZW1vdmUgZWNiMi1idG4gZWNiMi1idG4tZGVmYXVsdCBlY2IyLWljb24tb25seSIgZGF0YS1yZXBlYXRlcj0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIHRpdGxlPSJ7JG1vZC0+TGFuZygncmVtb3ZlX2xpbmUnKX0iIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJlY2IyLWljb24tdHJhc2gtY2FuLXJlZ3VsYXIiPjwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCgogICAgICAgIHtmb3JlYWNoICR2YWx1ZXMgYXMgJHZhbHVlfQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXBlYXRlci13cmFwcGVyIHNvcnRhYmxlLWl0ZW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVmdC1wYW5lbCBoYW5kbGUiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlY2IyLWljb24tZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIHtjbXNfdGV4dGFyZWEgaWQ9InskYmxvY2tfbmFtZX1fcl97JHZhbHVlQGl0ZXJhdGlvbn0iIG5hbWU9InskYmxvY2tfbmFtZX1bcl97JHZhbHVlQGl0ZXJhdGlvbn1dIiBjbGFzcz0ncmVwZWF0ZXItZmllbGQgd3lzaXd5ZycgZW5hYmxld3lzaXd5Zz0kd3lzaXd5ZyByb3dzPSRyb3dzIGNvbHM9JGNvbHMgdmFsdWU9JHZhbHVlIGFkZHRleHQ9ImRhdGEtcmVwZWF0ZXI9XCIjeyRibG9ja19uYW1lfS1yZXBlYXRlclwiIn0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJpZ2h0LXBhbmVsIj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJlY2IyLXJlcGVhdGVyLXJlbW92ZSBlY2IyLWJ0biBlY2IyLWJ0bi1kZWZhdWx0IGVjYjItaWNvbi1vbmx5IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgdGl0bGU9InskbW9kLT5MYW5nKCdyZW1vdmVfbGluZScpfSIgcm9sZT0iYnV0dG9uIiBhcmlhLWRpc2FibGVkPSJmYWxzZSI+PHNwYW4gY2xhc3M9ImVjYjItaWNvbi10cmFzaC1jYW4tcmVndWxhciI+PC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIHsvZm9yZWFjaH0KCiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImVjYl9yZXBlYXRlcl9mb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGlkPSJ7JGJsb2NrX25hbWV9LXJlcGVhdGVyLWFkZCIgY2xhc3M9ImVjYjItcmVwZWF0ZXItYWRkIGVjYjItYnRuIGVjYjItYnRuLWRlZmF1bHQiIGRhdGEtcmVwZWF0ZXI9IiN7JGJsb2NrX25hbWV9LXJlcGVhdGVyIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2FkZF9saW5lJyl9IiByb2xlPSJidXR0b24iIHtpZiAhZW1wdHkoJG1heF9ibG9ja3MpICYmICR2YWx1ZXN8Y291bnQ+PSRtYXhfYmxvY2tzfSBkaXNhYmxlZCBhcmlhLWRpc2FibGVkPSJ0cnVlIntlbHNlfWFyaWEtZGlzYWJsZWQ9ImZhbHNlInsvaWZ9PjxzcGFuIGNsYXNzPSJlY2IyLWljb24tcGx1cyI+PC9zcGFuPiZuYnNwOyZuYnNwO3skbW9kLT5MYW5nKCdhZGRfaXRlbScpfTwvYnV0dG9uPgogICAgICAgIDwvZGl2Pgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/textinput/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/textinput/class.ecb2fd_textinput.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfdGV4dGlucHV0IGV4dGVuZHMgZWNiMl9GaWVsZERlZkJhc2UgCnsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQ9MCkgCgl7CQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQpOwoKICAgICAgICAvLyBzZXQgdXNlX2pzb25fZm9ybWF0IChpZiBuZWNlc3NhcnkpIGJlZm9yZSBnZXRfdmFsdWVzKCkKICAgICAgICBpZiAoICFlbXB0eSgkcGFyYW1zWydyZXBlYXRlciddKSB8fCAKICAgICAgICAgICAgICggaXNzZXQoJHBhcmFtc1snZmllbGRfYWxpYXNfdXNlZCddKSAmJiAkcGFyYW1zWydmaWVsZF9hbGlhc191c2VkJ109PSdpbnB1dF9yZXBlYXRlcicpICkgewogICAgICAgICAgICAkdGhpcy0+dXNlX2pzb25fZm9ybWF0ID0gVFJVRTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5nZXRfdmFsdWVzKCR2YWx1ZSk7ICAgICAgICAgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsgICAgIC8vIGNvbW1vbiBGaWVsZERlZkJhc2UgbWV0aG9kCiAgICAgICAgCgoJfQoKCgogICAgLyoqCiAgICAgKiAgc2V0cyB0aGUgYWxsb3dlZCBwYXJhbWV0ZXJzIGZvciB0aGlzIGZpZWxkIHR5cGUKICAgICAqCiAgICAgKiAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyAtIGFycmF5IG9mIHBhcmFtZXRlcl9uYW1lcyA9PiBbIGRlZmF1bHRfdmFsdWUsIGZpbHRlcl90eXBlIF0KICAgICAqICAgICAgc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkcsIEZJTFRFUl9WQUxJREFURV9JTlQsIEZJTFRFUl9WQUxJREFURV9CT09MRUFOLCBGSUxURVJfU0FOSVRJWkVfRU1BSUwgCiAgICAgKiAgICAgIHNlZTogaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZmlsdGVyLmZpbHRlcnMucGhwCiAgICAgKiAgJHRoaXMtPnJlc3RyaWN0X3BhcmFtcyAtIG9wdGlvbmFsbHkgYWxsb3cgYW55IG90aGVyIHBhcmFtZXRlcnMgdG8gYmUgaW5jbHVkZWQsIGUuZy4gbW9kdWxlIGNhbGxzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGRfcGFyYW1ldGVycygpIAogICAgewogICAgICAgICR0aGlzLT5wYXJhbWV0ZXJfYWxpYXNlcyA9IFsKICAgICAgICAgICAgJ2RlZmF1bHRfdmFsdWUnID0+ICdkZWZhdWx0JwogICAgICAgIF07CiAgICAgICAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ2RlZmF1bHQnICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwgCiAgICAgICAgICAgICdsYWJlbCcgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sIAogICAgICAgICAgICAnc2l6ZScgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAzMCwgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0lOVF0sCiAgICAgICAgICAgICdtYXhfbGVuZ3RoJyAgICA9PiBbJ2RlZmF1bHQnID0+IDI1NSwgICAnZmlsdGVyJyA9PiBGSUxURVJfVkFMSURBVEVfSU5UXSwKICAgICAgICAgICAgJ3JlcGVhdGVyJyAgICAgID0+IFsnZGVmYXVsdCcgPT4gRkFMU0UsICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9CT09MRUFOXSwKICAgICAgICAgICAgJ21heF9ibG9ja3MnICAgID0+IFsnZGVmYXVsdCcgPT4gMCwgICAgICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9JTlRdLAogICAgICAgICAgICAnYWRtaW5fZ3JvdXBzJyAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnYXNzaWduJyAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnZGVzY3JpcHRpb24nICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgJ2ZpbHRlcicgPT4gRklMVEVSX0RFRkFVTFRdCiAgICAgICAgXTsKICAgICAgICAvLyAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zID0gRkFMU0U7ICAgIC8vIGRlZmF1bHQ6IHRydWUKICAgICAgICAvLyAkdGhpcy0+dXNlX2pzb25fZm9ybWF0ID0gVFJVRTsgICAgLy8gZGVmYXVsdDogRkFMU0UgLSBjYW4gb3ZlcnJpZGUgZS5nLiAnZ3JvdXBzJyB0eXBlCiAgICAgICAgJHRoaXMtPnNlYXJjaGFibGVfY29udGVudCA9IFRSVUU7CgoKICAgIH0KCgoKICAgIC8qKgogICAgICogIEByZXR1cm4gc3RyaW5nIGNvbXBsZXRlIGNvbnRlbnQgYmxvY2sgCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9ibG9ja19pbnB1dCgpIAogICAgewogICAgICAgIGlmICggIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYgCiAgICAgICAgICAgICAhJHRoaXMtPmlzX3ZhbGlkX2dyb3VwX21lbWJlcigkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7IAogICAgICAgIH0KCiAgICAgICAgaWYgKCAkdGhpcy0+ZmllbGRfYWxpYXNfdXNlZD09J2lucHV0X3JlcGVhdGVyJyApIHsKICAgICAgICAgICAgJHRoaXMtPm9wdGlvbnNbJ3JlcGVhdGVyJ10gPSBUUlVFOwogICAgICAgICAgICBpZiAoIGVtcHR5KCR0aGlzLT52YWx1ZXMpICkgewogICAgICAgICAgICAgICAgJHRoaXMtPnZhbHVlcyA9IGV4cGxvZGUoJ3x8JywgJHRoaXMtPnZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoICR0aGlzLT5vcHRpb25zWydyZXBlYXRlciddICYmIGVtcHR5KCR0aGlzLT52YWx1ZXMpICkgJHRoaXMtPnZhbHVlc1tdID0gTlVMTDsKCiAgICAgICAgJGNsYXNzID0gJyc7CiAgICAgICAgJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoICdzdHJpbmc6Jy4kdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdtb2QnLCAkdGhpcy0+bW9kICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAndHlwZScsICR0aGlzLT5maWVsZCApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2xhYmVsJywgJHRoaXMtPm9wdGlvbnNbJ2xhYmVsJ10gKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICd2YWx1ZScsICR0aGlzLT52YWx1ZSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3ZhbHVlcycsICR0aGlzLT52YWx1ZXMgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdzaXplJywgJHRoaXMtPm9wdGlvbnNbJ3NpemUnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ21heF9sZW5ndGgnLCAkdGhpcy0+b3B0aW9uc1snbWF4X2xlbmd0aCddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAncmVwZWF0ZXInLCAkdGhpcy0+b3B0aW9uc1sncmVwZWF0ZXInXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ21heF9ibG9ja3MnLCAkdGhpcy0+b3B0aW9uc1snbWF4X2Jsb2NrcyddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnZGVzY3JpcHRpb24nLCAkdGhpcy0+b3B0aW9uc1snZGVzY3JpcHRpb24nXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2Fzc2lnbicsICR0aGlzLT5vcHRpb25zWydhc3NpZ24nXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2ZpZWxkX2FsaWFzX3VzZWQnLCAkdGhpcy0+ZmllbGRfYWxpYXNfdXNlZCApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ3VzZV9qc29uX2Zvcm1hdCcsICR0aGlzLT51c2VfanNvbl9mb3JtYXQgKTsKICAgICAgICAkdHBsLT5hc3NpZ24oICdpc19zdWJfZmllbGQnLCAkdGhpcy0+aXNfc3ViX2ZpZWxkICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnZGVmYXVsdCcsICR0aGlzLT5vcHRpb25zWydkZWZhdWx0J10gKTsKICAgICAgICBpZiAoICR0aGlzLT5pc19zdWJfZmllbGQgKSB7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1Yl9yb3dfbnVtYmVyJywgJHRoaXMtPnN1Yl9yb3dfbnVtYmVyICk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1YkZpZWxkTmFtZScsICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrLidbcl8nLiR0aGlzLT5zdWJfcm93X251bWJlci4nXVsnLgogICAgICAgICAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUuJ10nICk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1YkZpZWxkSWQnLCAkdGhpcy0+c3ViX3BhcmVudF9ibG9jay4nX3JfJy4kdGhpcy0+c3ViX3Jvd19udW1iZXIuJ18nLgogICAgICAgICAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAgICAgJGNsYXNzIC49ICcgcmVwZWF0ZXItZmllbGQnOwogICAgICAgIH0KICAgICAgICAkdHBsLT5hc3NpZ24oJ2NsYXNzJywgJGNsYXNzKTsgIAogICAgICAgIHJldHVybiAkdHBsLT5mZXRjaCgpOwogICAKICAgIH0KCgp9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/textinput/help.ecb2fd_textinput.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfdGV4dGlucHV0LnRwbCAqfQo8cD5UaGUgdGV4dGlucHV0IGZpZWxkIGNyZWF0ZXMgYSBzaW1wbGUgdGV4dCBpbnB1dCwgZm9yIHN0b3JpbmcgYSBzaW5nbGUgc3RyaW5nLiBFaXRoZXIganVzdCBjcmVhdGUgYSBzaW1wbGUgc2luZ2xlIHRleHQgaW5wdXQgb3IgdXNlIHRoZSByZXBlYXRlciBvcHRpb24gdG8gY3JlYXRlIGFuIHVubGltaXRlZCBudW1iZXIgb2Ygc29ydGFibGUgaW5wdXRzLjwvcD4KCjxmaWVsZHNldD4KeyRmaWVsZGRlZi0+Z2V0X2RlbW9faW5wdXQoWydzaXplJz0+NTUsICdtYXhfbGVuZ3RoJz0+NTUsICdkZWZhdWx0Jz0+ImEgc2FtcGxlIHRleHRpbnB1dCJdKX0KPC9maWVsZHNldD4KCjxwcmU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXRleHRpbnB1dCBibG9jaz10ZXN0NSBsYWJlbD0nVGV4dCcgc2l6ZT01NSBtYXhfbGVuZ3RoPTU1IGRlZmF1bHQ9J2Egc2FtcGxlIHRleHRpbnB1dCd9ey9saXRlcmFsfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT5maWVsZCAocmVxdWlyZWQpIC0gJzxiPnRleHRpbnB1dDwvYj4nLCBvciBhbGlhczogJzxiPmlucHV0PC9iPicsICc8Yj5pbnB1dF9yZXBlYXRlcjwvYj4nPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPmFzc2lnbiAocmVxdWlyZWQgZm9yIHJlcGVhdGVyKikgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+c2l6ZSAob3B0aW9uYWwpIC0gc2V0cyB0aGUgd2lkdGggb2YgdGhlIGh0bWwgaW5wdXQuIE1heSBiZSBvdmVycmlkZGVuIGJ5IGNzcyAtIGRlZmF1bHQgMzA8L2xpPgogICAgPGxpPm1heF9sZW5ndGggKG9wdGlvbmFsKSAtIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgLSBkZWZhdWx0IDI1NTwvbGk+CiAgICA8bGk+cmVwZWF0ZXIgKG9wdGlvbmFsKSAtIGVuYWJsZXMgMSBvciBtb3JlIHRleHRpbnB1dCBmaWVsZHMgdG8gYmUgY3JlYXRlZCBhbmQgc29ydGVkIGJ5IGNsaWNraW5nICYgZHJhZ2dpbmcuIE5vdGU6IGFzc2lnbiBtdXN0IGJlIHVzZWQgdG8gY29ycmVjdGx5IHN1cHBseSB0aGUgbXVsdGlwbGUgdmFsdWVzIHRvIHRoZSBwYWdlIHRlbXBsYXRlIGFzIGFuIGFycmF5LjwvbGk+CiAgICA8bGk+bWF4X2Jsb2NrcyAob3B0aW9uYWwpIC0gdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcGVhdGVyIGZpZWxkcyB0aGF0IGNhbiBiZSBjcmVhdGVkPC9saT4KICAgIDxsaT5kZWZhdWx0IChvcHRpb25hbCkgLSAoYWxpYXM6ICc8Yj5kZWZhdWx0X3ZhbHVlPC9iPicpIC0gaW5pdGlhbCB2YWx1ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2U8L2xpPgogICAgPGxpPmFkbWluX2dyb3VwcyAob3B0aW9uYWwpIC0gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyAmIGVkaXQgdGhpcyBmaWVsZDwvbGk+CiAgICA8bGk+ZGVzY3JpcHRpb24gKG9wdGlvbmFsKSAtIGFkZHMgYWRkaXRpb25hbCB0ZXh0IGV4cGxhbmF0aW9uIGZvciBlZGl0b3I8L2xpPgo8L3VsPgo8cD5Ob3RlOiBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGFuICc8Yj5pbnB1dF9yZXBlYXRlcjwvYj4nIGZpZWxkIHdpbGwgc3RpbGwgYmUgb3V0cHV0IGFzIGEgc2luZ2xlIHN0cmluZywgd2l0aCBlYWNoIHNlcGFyYXRlIGZpZWxkIGRlbGltaXRlZCBieSAnfHwnLiBUbyBtYWtlIHRoZSBvdXRwdXQgYSBtb3JlIHVzZWZ1bCBhcnJheSB1c2UgJ2V4cGxvZGUnLCBlLmcuIHtsaXRlcmFsfXsifHwifGV4cGxvZGU6JGNvbnRlbnRfYmxvY2tfbmFtZX17L2xpdGVyYWx9LiBUbyBvdXRwdXQgYXMgYW4gYXJyYXksIHVzZSB0aGUgJzxiPmFzc2lnbjwvYj4nIHBhcmFtZXRlci48L3A+CgoKPGZpZWxkc2V0PgogICAgPGxlZ2VuZD5TYW1wbGUgdGV4dGlucHV0IHdpdGggcmVwZWF0ZXIgJiBtYXhfYmxvY2tzIC0gdXNlICdyZXBlYXRlcj0xIG1heF9ibG9ja3M9NCBhc3NpZ249dG1wJyA8L2xlZ2VuZD4KICAgIHskZmllbGRkZWYtPmdldF9kZW1vX2lucHV0KFsnc2l6ZSc9PjEwMCwgJ2RlZmF1bHQnPT4iYSBzYW1wbGUgdGV4dGlucHV0IiwgJ3JlcGVhdGVyJz0+MSwgJ21heF9ibG9ja3MnPT40LCAnYXNzaWduJz0+J3RtcCddKX0KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/textinput/input.ecb2fd_textinput.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX3RleHRpbnB1dC50cGwgLSB2MS4wIC0gMjVKdW4yMiAKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0Ke2lmICFlbXB0eSgkZGVzY3JpcHRpb24pfQogICAgICAgIHskZGVzY3JpcHRpb259PGJyPgp7L2lmfQoKe2lmICRpc19zdWJfZmllbGR9CiAgICB7aWYgaXNfbnVsbCgkc3ViX3Jvd19udW1iZXIpfXsqIG91dHB1dCB0ZW1wbGF0ZSBmaWVsZCAqfQogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iIiBuYW1lPSIiIGNsYXNzPSJ7JGNsYXNzfSIgdmFsdWU9InskZGVmYXVsdH0iIHNpemU9Inskc2l6ZX0iIG1heGxlbmd0aD0ieyRtYXhfbGVuZ3RofSIgZGF0YS1yZXBlYXRlcj0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIGRhdGEtZmllbGQtbmFtZT0ieyRibG9ja19uYW1lfSIgLz4KCiAgICB7ZWxzZX0gICAgCiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ7JHN1YkZpZWxkSWR9IiBuYW1lPSJ7JHN1YkZpZWxkTmFtZX0iIGNsYXNzPSJ7JGNsYXNzfSIgdmFsdWU9InskdmFsdWV8ZXNjYXBlfSIgc2l6ZT0ieyRzaXplfSIgbWF4bGVuZ3RoPSJ7JG1heF9sZW5ndGh9Ii8+CgogICAgey9pZn0KCntlbHNlaWYgISRyZXBlYXRlcn0KICAgIHtpZiAhJHVzZV9qc29uX2Zvcm1hdH0KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRibG9ja19uYW1lfSIgc2l6ZT0ieyRzaXplfSIgbWF4bGVuZ3RoPSJ7JG1heF9sZW5ndGh9IiB2YWx1ZT0ieyR2YWx1ZXxlc2NhcGV9Ii8+CgogICAge2Vsc2V9CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYmxvY2tfbmFtZX1bXSIgc2l6ZT0ieyRzaXplfSIgbWF4bGVuZ3RoPSJ7JG1heF9sZW5ndGh9IiB2YWx1ZT0ieyR2YWx1ZXNbMF18ZXNjYXBlfSIvPgogICAgey9pZn0KCntlbHNlfXsqIGlzIHJlcGVhdGVyICp9CiAgICB7aWYgZW1wdHkoJGFzc2lnbikgJiYgJGZpZWxkX2FsaWFzX3VzZWQhPSdpbnB1dF9yZXBlYXRlcid9CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZXdhcm5pbmciPgogICAgICAgICAgICB7JG1vZC0+TGFuZygnZXJyb3JfYXNzaWduX3JlcXVpcmVkJyl9CiAgICAgICAgPC9kaXY+PGJyPgogICAgey9pZn0KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJ7JGJsb2NrX25hbWV9LXJlcGVhdGVyIiBjbGFzcz0iZWNiX3JlcGVhdGVyIHNvcnRhYmxlIiBkYXRhLWJsb2NrLW5hbWU9InskYmxvY2tfbmFtZX0iIGRhdGEtaGlnaGVzdC1yb3c9InskdmFsdWVzfEBjb3VudH0iIHtpZiAkbWF4X2Jsb2Nrcz4wfWRhdGEtbWF4LWJsb2Nrcz0ieyRtYXhfYmxvY2tzfSJ7L2lmfSBkYXRhLXJlcGVhdGVyLWFkZD0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXItYWRkIj4KICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVwZWF0ZXItd3JhcHBlci10ZW1wbGF0ZSBzb3J0YWJsZS1pdGVtIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWZ0LXBhbmVsIGhhbmRsZSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVjYjItaWNvbi1ncmlwLWRvdHMtdmVydGljYWwtc29saWQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlucHV0IGlkPSIiIG5hbWU9IiIgY2xhc3M9InJlcGVhdGVyLWZpZWxkIiBzaXplPSJ7JHNpemV9IiBtYXhsZW5ndGg9InskbWF4X2xlbmd0aH0iIHZhbHVlPSIiIGRhdGEtcmVwZWF0ZXI9IiN7JGJsb2NrX25hbWV9LXJlcGVhdGVyIi8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyaWdodC1wYW5lbCI+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZWNiMi1yZXBlYXRlci1yZW1vdmUgZWNiMi1idG4gZWNiMi1idG4tZGVmYXVsdCBlY2IyLWljb24tb25seSIgZGF0YS1yZXBlYXRlcj0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIHRpdGxlPSJ7JG1vZC0+TGFuZygncmVtb3ZlX2xpbmUnKX0iIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJlY2IyLWljb24tdHJhc2gtY2FuLXJlZ3VsYXIiPjwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAge2ZvcmVhY2ggJHZhbHVlcyBhcyAkdmFsdWV9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlcGVhdGVyLXdyYXBwZXIgc29ydGFibGUtaXRlbSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWZ0LXBhbmVsIGhhbmRsZSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVjYjItaWNvbi1ncmlwLWRvdHMtdmVydGljYWwtc29saWQiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlucHV0IGlkPSJ7JGJsb2NrX25hbWV9X3JfeyR2YWx1ZUBpdGVyYXRpb259IiBuYW1lPSJ7JGJsb2NrX25hbWV9W3JfeyR2YWx1ZUBpdGVyYXRpb259XSIgY2xhc3M9InJlcGVhdGVyLWZpZWxkIiBzaXplPSJ7JHNpemV9IiBtYXhsZW5ndGg9InskbWF4X2xlbmd0aH0iIHZhbHVlPSJ7JHZhbHVlfGVzY2FwZX0iIGRhdGEtcmVwZWF0ZXI9IiN7JGJsb2NrX25hbWV9LXJlcGVhdGVyIi8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyaWdodC1wYW5lbCI+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZWNiMi1yZXBlYXRlci1yZW1vdmUgZWNiMi1idG4gZWNiMi1idG4tZGVmYXVsdCBlY2IyLWljb24tb25seSIgZGF0YS1yZXBlYXRlcj0iI3skYmxvY2tfbmFtZX0tcmVwZWF0ZXIiIHRpdGxlPSJ7JG1vZC0+TGFuZygncmVtb3ZlX2xpbmUnKX0iIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJlY2IyLWljb24tdHJhc2gtY2FuLXJlZ3VsYXIiPjwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICB7L2ZvcmVhY2h9CgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJlY2JfcmVwZWF0ZXJfZm9vdGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiBpZD0ieyRibG9ja19uYW1lfS1yZXBlYXRlci1hZGQiIGNsYXNzPSJlY2IyLXJlcGVhdGVyLWFkZCBlY2IyLWJ0biBlY2IyLWJ0bi1kZWZhdWx0IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgdGl0bGU9InskbW9kLT5MYW5nKCdhZGRfbGluZScpfSIgcm9sZT0iYnV0dG9uIiB7aWYgIWVtcHR5KCRtYXhfYmxvY2tzKSAmJiAkdmFsdWVzfGNvdW50Pj0kbWF4X2Jsb2Nrc30gZGlzYWJsZWQgYXJpYS1kaXNhYmxlZD0idHJ1ZSJ7ZWxzZX1hcmlhLWRpc2FibGVkPSJmYWxzZSJ7L2lmfT48c3BhbiBjbGFzcz0iZWNiMi1pY29uLXBsdXMiPjwvc3Bhbj4mbmJzcDsmbmJzcDt7JG1vZC0+TGFuZygnYWRkX2l0ZW0nKX08L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KCnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/_default_field_def/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/_default_field_def/class.ecb2fd_ZZZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBlY2IyZmRfWlpaIGV4dGVuZHMgZWNiMl9GaWVsZERlZkJhc2UgCnsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQ9MCkgCgl7CQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQpOwoKICAgICAgICAkdGhpcy0+Z2V0X3ZhbHVlcygkdmFsdWUpOyAgICAgICAgICAgICAgLy8gY29tbW9uIEZpZWxkRGVmQmFzZSBtZXRob2QKCiAgICAgICAgJHRoaXMtPnNldF9maWVsZF9wYXJhbWV0ZXJzKCk7CgogICAgICAgICR0aGlzLT5pbml0aWFsaXNlX29wdGlvbnMoJHBhcmFtcyk7ICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZAoKICAgICAgICAvLyAkdGhpcy0+Y3JlYXRlX3N1Yl9maWVsZHMoICRwYXJhbXMgKTsgICAgICAvLyBjb21tb24gRmllbGREZWZCYXNlIG1ldGhvZCAoaWYgcmVxdWlyZWQpCgoJfQoKCgogICAgLyoqCiAgICAgKiAgc2V0cyB0aGUgYWxsb3dlZCBwYXJhbWV0ZXJzIGZvciB0aGlzIGZpZWxkIHR5cGUKICAgICAqCiAgICAgKiAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyAtIGFycmF5IG9mIHBhcmFtZXRlcl9uYW1lcyA9PiBbIGRlZmF1bHRfdmFsdWUsIGZpbHRlcl90eXBlIF0KICAgICAqICAgICAgc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkcsIEZJTFRFUl9WQUxJREFURV9JTlQsIEZJTFRFUl9WQUxJREFURV9CT09MRUFOLCAKICAgICAqICAgICAgRklMVEVSX1NBTklUSVpFX0VNQUlMLCBGSUxURVJfREVGQVVMVCAoZG8gbm90aGluZykKICAgICAqICAgICAgc2VlOiBodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9maWx0ZXIuZmlsdGVycy5waHAKICAgICAqICAkdGhpcy0+cmVzdHJpY3RfcGFyYW1zIC0gb3B0aW9uYWxseSBhbGxvdyBhbnkgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZCwgZS5nLiBtb2R1bGUgY2FsbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZF9wYXJhbWV0ZXJzKCkgCiAgICB7CiAgICAgICAgJHRoaXMtPmRlZmF1bHRfcGFyYW1ldGVycyA9IFsKICAgICAgICAgICAgJ2xhYmVsJyAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJycgICAgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJycgICAgICAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2RlZmF1bHRfdmFsdWUnID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwgCiAgICAgICAgICAgICdhZG1pbl9ncm91cHMnICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAnZmlsdGVyJyA9PiBGSUxURVJfREVGQVVMVF0KICAgICAgICBdOwogICAgICAgIC8vICR0aGlzLT5wYXJhbWV0ZXJfYWxpYXNlcyA9IFsgJ2FsaWFzJyA9PiAncGFyYW1ldGVyJyBdOwogICAgICAgIC8vICR0aGlzLT5yZXN0cmljdF9wYXJhbXMgPSBGQUxTRTsgICAgLy8gZGVmYXVsdDogdHJ1ZQogICAgICAgIC8vICR0aGlzLT51c2VfanNvbl9mb3JtYXQgPSBUUlVFOyAgICAgLy8gZGVmYXVsdDogRkFMU0UgLSBjYW4gb3ZlcnJpZGUgZS5nLiAnZ3JvdXBzJyB0eXBlCiAgICAgICAgLy8gJHRoaXMtPnNlYXJjaGFibGVfY29udGVudCA9IFRSVUU7ICAvLyBkZWZhdWx0OiBGQUxTRSAgIAogICAgfQoKCiAgICAvKioKICAgICAqICBAcmV0dXJuIHN0cmluZyBjb21wbGV0ZSBjb250ZW50IGJsb2NrIAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfaW5wdXQoKSAKICAgIHsKICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+b3B0aW9uc1snYWRtaW5fZ3JvdXBzJ10pICYmIAogICAgICAgICAgICAgISR0aGlzLT5pc192YWxpZF9ncm91cF9tZW1iZXIoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lY2IyX2hpZGRlbl9maWVsZCgpOyAKICAgICAgICB9CiAgICAKICAgICAgICAkY2xhc3MgPSAnJzsKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSggJ3N0cmluZzonLiR0aGlzLT5nZXRfdGVtcGxhdGUoKSwgbnVsbCwgbnVsbCwgJHNtYXJ0eSApOwogICAgICAgICR0cGwtPmFzc2lnbignYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd2YWx1ZScsICR0aGlzLT52YWx1ZSApOwoKCiAgICAgICAgJHRwbC0+YXNzaWduKCdkZXNjcmlwdGlvbicsICR0aGlzLT5vcHRpb25zWydkZXNjcmlwdGlvbiddICk7CiAgICAgICAgJHRwbC0+YXNzaWduKCAnbGFiZWwnLCAkdGhpcy0+b3B0aW9uc1snbGFiZWwnXSApOwogICAgICAgICR0cGwtPmFzc2lnbiggJ2lzX3N1Yl9maWVsZCcsICR0aGlzLT5pc19zdWJfZmllbGQgKTsKICAgICAgICBpZiAoICR0aGlzLT5pc19zdWJfZmllbGQgKSB7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1Yl9yb3dfbnVtYmVyJywgJHRoaXMtPnN1Yl9yb3dfbnVtYmVyICk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1YkZpZWxkTmFtZScsICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrLidbcl8nLiR0aGlzLT5zdWJfcm93X251bWJlci4nXVsnLgogICAgICAgICAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUuJ10nICk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ3N1YkZpZWxkSWQnLCAkdGhpcy0+c3ViX3BhcmVudF9ibG9jay4nX3JfJy4kdGhpcy0+c3ViX3Jvd19udW1iZXIuJ18nLgogICAgICAgICAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUgKTsKICAgICAgICAgICAgJGNsYXNzIC49ICcgcmVwZWF0ZXItZmllbGQnOwogICAgICAgIH0KICAgICAgICAkdHBsLT5hc3NpZ24oJ2NsYXNzJywgJGNsYXNzKTsgIAoKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgCiAgICB9CgoKCiAgICAvLyAvKioKICAgIC8vICAqICBEYXRhIGVudGVyZWQgYnkgdGhlIGVkaXRvciBpcyBwcm9jZXNzZWQgYmVmb3JlIGl0cyBzYXZlZCBpbiBwcm9wcyB0YWJsZQogICAgLy8gICogIFRoaXMgbWV0aG9kLCBpZiByZXF1aXJlZCwgb3ZlcmlkZXMgdGhlIHBhcmVudCBjbGFzcyBtZXRob2QsIHRvIGVuYWJsZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgCiAgICAvLyAgKiAgYmVmb3JlIHRoZSBkYXRhIGlzIHNhdmVkLgogICAgLy8gICogIENhbiBiZSBvbWl0dGVkIGFuZCBlY2IyX0ZpZWxkRGVmQmFzZSB3aWxsIGhhbmRsZSBkZWZhdWx0IHByb2Nlc3NpbmcKICAgIC8vICAqCiAgICAvLyAgKiAgQHJldHVybiBzdHJpbmcgZm9ybWF0dGVkIGpzb24gY29udGFpbmluZyBhbGwgZmllbGQgZGF0YSByZWFkeSB0byBiZSBzYXZlZCAmIG91dHB1dAogICAgLy8gICovCiAgICAvLyBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfdmFsdWUoICRpbnB1dEFycmF5ICkgCiAgICAvLyB7CiAgICAvLyAgICAgJHRoaXMtPnNldF9maWVsZF9vYmplY3QoICRpbnB1dEFycmF5ICk7CiAgICAvLwogICAgLy8gICAgIC8vIGRvIG90aGVyIHN0dWZmIGhlcmUKICAgIC8vCiAgICAvLyAgICAgcmV0dXJuICR0aGlzLT5FQ0IyX2pzb25fZW5jb2RlX2ZpZWxkX29iamVjdCgpOyAKICAgIC8vIH0KCgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/_default_field_def/help.ecb2fd_ZZZ.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGVscC5lY2IyZmRfWlpaLnRwbCAqfQo8cD5UaGUgWlpaIGZpZWxkIGNyZWF0ZXMgYSBzaW1wbGUgdGV4dCBpbnB1dCwgZm9yIHN0b3JpbmcgYSBzaW5nbGUgc3RyaW5nLjwvcD4KCjxmaWVsZHNldD4KICAgIHskZmllbGRkZWYtPmdldF9kZW1vX2lucHV0KFtdKX0KPC9maWVsZHNldD4KCjxwcmU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPVpaWiBibG9jaz10ZXN0IGxhYmVsPSdUZXN0JyBkZWZhdWx0PSdhIHNhbXBsZSBaWlonfXsvbGl0ZXJhbH08L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+ZmllbGQgKHJlcXVpcmVkKSAtICdaWlonPC9saT4KICAgIDxsaT5ibG9jayAocmVxdWlyZWQpIC0gdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2s8L2xpPgogICAgPGxpPjwvbGk+CiAgICA8bGk+PC9saT4KICAgIDxsaT5kZWZhdWx0X3ZhbHVlIChvcHRpb25hbCkgLSBpbml0aWFsIHZhbHVlIHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZTwvbGk+CiAgICA8bGk+YWRtaW5fZ3JvdXBzIChvcHRpb25hbCkgLSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkbWluIGdyb3VwcyB0aGF0IGNhbiB2aWV3ICYgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT5kZXNjcmlwdGlvbiAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+CjwvdWw+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/_default_field_def/input.ecb2fd_ZZZ.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW5wdXQuZWNiMmZkX1paWi50cGwgLSB2MS4wIC0gMjVKdW4yMiAKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0Ke2lmICFlbXB0eSgkZGVzY3JpcHRpb24pfQogICAgICAgIHskZGVzY3JpcHRpb259PGJyPgp7L2lmfQoKe2lmICRpc19zdWJfZmllbGR9CiAgICB7aWYgaXNfbnVsbCgkc3ViX3Jvd19udW1iZXIpfXsqIHN1Yl9maWVsZCB0ZW1wbGF0ZSBmaWVsZCAqfQogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iIiBuYW1lPSIiIGNsYXNzPSJ7JGNsYXNzfSIgdmFsdWU9IiIgc2l6ZT0ieyRzaXplfSIgbWF4bGVuZ3RoPSJ7JG1heF9sZW5ndGh9IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ7JGJsb2NrX25hbWV9Ii8+CgogICAge2Vsc2V9eyogc3ViX2ZpZWxkICp9CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ7JHN1YkZpZWxkSWR9IiBuYW1lPSJ7JHN1YkZpZWxkTmFtZX0iIGNsYXNzPSJ7JGNsYXNzfSIgdmFsdWU9InskdmFsdWV9IiBzaXplPSJ7JHNpemV9IiBtYXhsZW5ndGg9InskbWF4X2xlbmd0aH0iLz4KCiAgICB7L2lmfQoKe2Vsc2V9CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYmxvY2tfbmFtZX0iIHZhbHVlPSJ7JHZhbHVlfSIvPgoKey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/lib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/js/ecb2_admin.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gZWNiMl9hZG1pbi5qcyAtIHYxLjIgLSAxNkZlYjE5DQovLw0KLy8gICAgICAtIHYxLjQgLSAyMkp1bjIyIC0gYnJpbmcgY29scGljayAmIGpRdWVyeSB0aW1lcGlja2VyIGFkZG9uIGludG8gdGhpcyBmaWxlDQovLyAgICAgLSB2MS4zIC0gMjBKdW4yMiAtIGJ1ZyBmaXggLSB0ZXN0IGlmICdjb2xwaWNrJyBtZXRob2QgZXhpc3RzIGJlZm9yZSBjYWxsaW5nIGl0IQ0KLy8gICAgIC0gdjEuMiAtIDE2RmViMTkgLSBlY2JfcmVwZWF0ZXIgYWRkZWQNCi8vICAgICAgICAgICAgICAgICAgICAgIC0gYmVnYW4gY29uc29saWRhdGluZyBhbGwganMgaW50byB0aGlzIGZpbGUNCi8vICAgICAtIHYxLjEgLSAxMUp1bDE3IC0gdXBkYXRlZCBmb3IgbWF4X251bWJlciAmIHJlcXVpcmVkX251bWJlciAmIHVwZGF0ZUVDQjJQbGFjZWhvbGRlcigpDQovLyAgICAgLSB2MS4wIC0gMThBcHIxNyAtIGluaXRpYWwganMgZmlsZQ0KLy8NCi8vICAgIGVuYWJsZXMgZHJhZy1uLWRyb3Agc2VsZWN0aW9uIG9mIGxpc3QgaXRlbXMsIHJlcXVpcmVzIGpxdWVyeSB1aSBzb3J0YWJsZQ0KLy8NCi8vI3JlZ2lvbg0KDQoNCi8qDQpjb2xwaWNrIENvbG9yIFBpY2tlcg0KQ29weXJpZ2h0IDIwMTMgSm9zZSBWYXJnYXMuIExpY2Vuc2VkIHVuZGVyIEdQTCBsaWNlbnNlLiBCYXNlZCBvbiBTdGVmYW4gUGV0cmUncyBDb2xvciBQaWNrZXIgd3d3LmV5ZWNvbi5ybywgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXMNCg0KRm9yIHVzYWdlIGFuZCBleGFtcGxlczogY29scGljay5jb20vcGx1Z2luDQogKi8NCiFmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSJdLHQpOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz90KHJlcXVpcmUoImpxdWVyeSIpKTp0KGpRdWVyeSl9KChmdW5jdGlvbih0KXt2YXIgZSxpLGEsbyxjLGwscixuLGQscyxwLHUsZixoLHYsZyxrLF8sbSxiLHkseCx3LEksTSxDLHEsVCxTLEUsRD0oaT17c2hvd0V2ZW50OiJjbGljayIsb25TaG93OmZ1bmN0aW9uKCl7fSxvbkJlZm9yZVNob3c6ZnVuY3Rpb24oKXt9LG9uSGlkZTpmdW5jdGlvbigpe30sb25DaGFuZ2U6ZnVuY3Rpb24oKXt9LG9uU3VibWl0OmZ1bmN0aW9uKCl7fSxjb2xvclNjaGVtZToibGlnaHQiLGNvbG9yOiIzMjg5YzciLGxpdmVQcmV2aWV3OiEwLGZsYXQ6ITEsbGF5b3V0OiJmdWxsIixzdWJtaXQ6MSxzdWJtaXRUZXh0OiJPSyIsaGVpZ2h0OjE1Nixwb2x5ZmlsbDohMX0sYT1mdW5jdGlvbihlLGkpe3ZhciBhPU4oZSk7dChpKS5kYXRhKCJjb2xwaWNrIikuZmllbGRzLmVxKDEpLnZhbChhLnIpLmVuZCgpLmVxKDIpLnZhbChhLmcpLmVuZCgpLmVxKDMpLnZhbChhLmIpLmVuZCgpfSxvPWZ1bmN0aW9uKGUsaSl7dChpKS5kYXRhKCJjb2xwaWNrIikuZmllbGRzLmVxKDQpLnZhbChNYXRoLnJvdW5kKGUuaCkpLmVuZCgpLmVxKDUpLnZhbChNYXRoLnJvdW5kKGUucykpLmVuZCgpLmVxKDYpLnZhbChNYXRoLnJvdW5kKGUuYikpLmVuZCgpfSxjPWZ1bmN0aW9uKGUsaSl7dChpKS5kYXRhKCJjb2xwaWNrIikuZmllbGRzLmVxKDApLnZhbCh6KGUpKX0sbD1mdW5jdGlvbihlLGkpe3QoaSkuZGF0YSgiY29scGljayIpLnNlbGVjdG9yLmNzcygiYmFja2dyb3VuZENvbG9yIiwiIyIreih7aDplLmgsczoxMDAsYjoxMDB9KSksdChpKS5kYXRhKCJjb2xwaWNrIikuc2VsZWN0b3JJbmRpYy5jc3Moe2xlZnQ6cGFyc2VJbnQodChpKS5kYXRhKCJjb2xwaWNrIikuaGVpZ2h0KmUucy8xMDAsMTApLHRvcDpwYXJzZUludCh0KGkpLmRhdGEoImNvbHBpY2siKS5oZWlnaHQqKDEwMC1lLmIpLzEwMCwxMCl9KX0scj1mdW5jdGlvbihlLGkpe3QoaSkuZGF0YSgiY29scGljayIpLmh1ZS5jc3MoInRvcCIscGFyc2VJbnQodChpKS5kYXRhKCJjb2xwaWNrIikuaGVpZ2h0LXQoaSkuZGF0YSgiY29scGljayIpLmhlaWdodCplLmgvMzYwLDEwKSl9LG49ZnVuY3Rpb24oZSxpKXt0KGkpLmRhdGEoImNvbHBpY2siKS5jdXJyZW50Q29sb3IuY3NzKCJiYWNrZ3JvdW5kQ29sb3IiLCIjIit6KGUpKX0sZD1mdW5jdGlvbihlLGkpe3QoaSkuZGF0YSgiY29scGljayIpLm5ld0NvbG9yLmNzcygiYmFja2dyb3VuZENvbG9yIiwiIyIreihlKSl9LHM9ZnVuY3Rpb24oZSl7dmFyIGksbj10KHRoaXMpLnBhcmVudCgpLnBhcmVudCgpO3RoaXMucGFyZW50Tm9kZS5jbGFzc05hbWUuaW5kZXhPZigiX2hleCIpPjA/KG4uZGF0YSgiY29scGljayIpLmNvbG9yPWk9WShUKHRoaXMudmFsdWUpKSxhKGksbi5nZXQoMCkpLG8oaSxuLmdldCgwKSkpOnRoaXMucGFyZW50Tm9kZS5jbGFzc05hbWUuaW5kZXhPZigiX2hzYiIpPjA/KG4uZGF0YSgiY29scGljayIpLmNvbG9yPWk9Qyh7aDpwYXJzZUludChuLmRhdGEoImNvbHBpY2siKS5maWVsZHMuZXEoNCkudmFsKCksMTApLHM6cGFyc2VJbnQobi5kYXRhKCJjb2xwaWNrIikuZmllbGRzLmVxKDUpLnZhbCgpLDEwKSxiOnBhcnNlSW50KG4uZGF0YSgiY29scGljayIpLmZpZWxkcy5lcSg2KS52YWwoKSwxMCl9KSxhKGksbi5nZXQoMCkpLGMoaSxuLmdldCgwKSkpOihuLmRhdGEoImNvbHBpY2siKS5jb2xvcj1pPUgocSh7cjpwYXJzZUludChuLmRhdGEoImNvbHBpY2siKS5maWVsZHMuZXEoMSkudmFsKCksMTApLGc6cGFyc2VJbnQobi5kYXRhKCJjb2xwaWNrIikuZmllbGRzLmVxKDIpLnZhbCgpLDEwKSxiOnBhcnNlSW50KG4uZGF0YSgiY29scGljayIpLmZpZWxkcy5lcSgzKS52YWwoKSwxMCl9KSksYyhpLG4uZ2V0KDApKSxvKGksbi5nZXQoMCkpKSxsKGksbi5nZXQoMCkpLHIoaSxuLmdldCgwKSksZChpLG4uZ2V0KDApKSxuLmRhdGEoImNvbHBpY2siKS5vbkNoYW5nZS5hcHBseShuLnBhcmVudCgpLFtpLHooaSksTihpKSxuLmRhdGEoImNvbHBpY2siKS5lbCwwXSl9LHA9ZnVuY3Rpb24oZSl7dCh0aGlzKS5wYXJlbnQoKS5yZW1vdmVDbGFzcygiY29scGlja19mb2N1cyIpfSx1PWZ1bmN0aW9uKCl7dCh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5kYXRhKCJjb2xwaWNrIikuZmllbGRzLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJjb2xwaWNrX2ZvY3VzIiksdCh0aGlzKS5wYXJlbnQoKS5hZGRDbGFzcygiY29scGlja19mb2N1cyIpfSxmPWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOmUucmV0dXJuVmFsdWU9ITE7dmFyIGk9dCh0aGlzKS5wYXJlbnQoKS5maW5kKCJpbnB1dCIpLmZvY3VzKCksYT17ZWw6dCh0aGlzKS5wYXJlbnQoKS5hZGRDbGFzcygiY29scGlja19zbGlkZXIiKSxtYXg6dGhpcy5wYXJlbnROb2RlLmNsYXNzTmFtZS5pbmRleE9mKCJfaHNiX2giKT4wPzM2MDp0aGlzLnBhcmVudE5vZGUuY2xhc3NOYW1lLmluZGV4T2YoIl9oc2IiKT4wPzEwMDoyNTUseTplLnBhZ2VZLGZpZWxkOmksdmFsOnBhcnNlSW50KGkudmFsKCksMTApLHByZXZpZXc6dCh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5kYXRhKCJjb2xwaWNrIikubGl2ZVByZXZpZXd9O3QoZG9jdW1lbnQpLm1vdXNldXAoYSx2KSx0KGRvY3VtZW50KS5tb3VzZW1vdmUoYSxoKX0saD1mdW5jdGlvbih0KXtyZXR1cm4gdC5kYXRhLmZpZWxkLnZhbChNYXRoLm1heCgwLE1hdGgubWluKHQuZGF0YS5tYXgscGFyc2VJbnQodC5kYXRhLnZhbC10LnBhZ2VZK3QuZGF0YS55LDEwKSkpKSx0LmRhdGEucHJldmlldyYmcy5hcHBseSh0LmRhdGEuZmllbGQuZ2V0KDApLFshMF0pLCExfSx2PWZ1bmN0aW9uKGUpe3JldHVybiBzLmFwcGx5KGUuZGF0YS5maWVsZC5nZXQoMCksWyEwXSksZS5kYXRhLmVsLnJlbW92ZUNsYXNzKCJjb2xwaWNrX3NsaWRlciIpLmZpbmQoImlucHV0IikuZm9jdXMoKSx0KGRvY3VtZW50KS5vZmYoIm1vdXNldXAiLHYpLHQoZG9jdW1lbnQpLm9mZigibW91c2Vtb3ZlIixoKSwhMX0sZz1mdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0P2UucHJldmVudERlZmF1bHQoKTplLnJldHVyblZhbHVlPSExO3ZhciBpPXtjYWw6dCh0aGlzKS5wYXJlbnQoKSx5OnQodGhpcykub2Zmc2V0KCkudG9wfTt0KGRvY3VtZW50KS5vbigibW91c2V1cCB0b3VjaGVuZCIsaSxfKSx0KGRvY3VtZW50KS5vbigibW91c2Vtb3ZlIHRvdWNobW92ZSIsaSxrKTt2YXIgYT0idG91Y2hzdGFydCI9PWUudHlwZT9lLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVk6ZS5wYWdlWTtyZXR1cm4gcy5hcHBseShpLmNhbC5kYXRhKCJjb2xwaWNrIikuZmllbGRzLmVxKDQpLnZhbChwYXJzZUludCgzNjAqKGkuY2FsLmRhdGEoImNvbHBpY2siKS5oZWlnaHQtKGEtaS55KSkvaS5jYWwuZGF0YSgiY29scGljayIpLmhlaWdodCwxMCkpLmdldCgwKSxbaS5jYWwuZGF0YSgiY29scGljayIpLmxpdmVQcmV2aWV3XSksITF9LGs9ZnVuY3Rpb24odCl7dmFyIGU9InRvdWNobW92ZSI9PXQudHlwZT90Lm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVk6dC5wYWdlWTtyZXR1cm4gcy5hcHBseSh0LmRhdGEuY2FsLmRhdGEoImNvbHBpY2siKS5maWVsZHMuZXEoNCkudmFsKHBhcnNlSW50KDM2MCoodC5kYXRhLmNhbC5kYXRhKCJjb2xwaWNrIikuaGVpZ2h0LU1hdGgubWF4KDAsTWF0aC5taW4odC5kYXRhLmNhbC5kYXRhKCJjb2xwaWNrIikuaGVpZ2h0LGUtdC5kYXRhLnkpKSkvdC5kYXRhLmNhbC5kYXRhKCJjb2xwaWNrIikuaGVpZ2h0LDEwKSkuZ2V0KDApLFt0LmRhdGEucHJldmlld10pLCExfSxfPWZ1bmN0aW9uKGUpe3JldHVybiBhKGUuZGF0YS5jYWwuZGF0YSgiY29scGljayIpLmNvbG9yLGUuZGF0YS5jYWwuZ2V0KDApKSxjKGUuZGF0YS5jYWwuZGF0YSgiY29scGljayIpLmNvbG9yLGUuZGF0YS5jYWwuZ2V0KDApKSx0KGRvY3VtZW50KS5vZmYoIm1vdXNldXAgdG91Y2hlbmQiLF8pLHQoZG9jdW1lbnQpLm9mZigibW91c2Vtb3ZlIHRvdWNobW92ZSIsayksITF9LG09ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdD9lLnByZXZlbnREZWZhdWx0KCk6ZS5yZXR1cm5WYWx1ZT0hMTt2YXIgaSxhLG89e2NhbDp0KHRoaXMpLnBhcmVudCgpLHBvczp0KHRoaXMpLm9mZnNldCgpfTtyZXR1cm4gby5wcmV2aWV3PW8uY2FsLmRhdGEoImNvbHBpY2siKS5saXZlUHJldmlldyx0KGRvY3VtZW50KS5vbigibW91c2V1cCB0b3VjaGVuZCIsbyx5KSx0KGRvY3VtZW50KS5vbigibW91c2Vtb3ZlIHRvdWNobW92ZSIsbyxiKSwidG91Y2hzdGFydCI9PWUudHlwZT8oaT1lLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgsYT1lLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVkpOihpPWUucGFnZVgsYT1lLnBhZ2VZKSxzLmFwcGx5KG8uY2FsLmRhdGEoImNvbHBpY2siKS5maWVsZHMuZXEoNikudmFsKHBhcnNlSW50KDEwMCooby5jYWwuZGF0YSgiY29scGljayIpLmhlaWdodC0oYS1vLnBvcy50b3ApKS9vLmNhbC5kYXRhKCJjb2xwaWNrIikuaGVpZ2h0LDEwKSkuZW5kKCkuZXEoNSkudmFsKHBhcnNlSW50KDEwMCooaS1vLnBvcy5sZWZ0KS9vLmNhbC5kYXRhKCJjb2xwaWNrIikuaGVpZ2h0LDEwKSkuZ2V0KDApLFtvLnByZXZpZXddKSwhMX0sYj1mdW5jdGlvbih0KXt2YXIgZSxpO3JldHVybiJ0b3VjaG1vdmUiPT10LnR5cGU/KGU9dC5vcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VYLGk9dC5vcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZKTooZT10LnBhZ2VYLGk9dC5wYWdlWSkscy5hcHBseSh0LmRhdGEuY2FsLmRhdGEoImNvbHBpY2siKS5maWVsZHMuZXEoNikudmFsKHBhcnNlSW50KDEwMCoodC5kYXRhLmNhbC5kYXRhKCJjb2xwaWNrIikuaGVpZ2h0LU1hdGgubWF4KDAsTWF0aC5taW4odC5kYXRhLmNhbC5kYXRhKCJjb2xwaWNrIikuaGVpZ2h0LGktdC5kYXRhLnBvcy50b3ApKSkvdC5kYXRhLmNhbC5kYXRhKCJjb2xwaWNrIikuaGVpZ2h0LDEwKSkuZW5kKCkuZXEoNSkudmFsKHBhcnNlSW50KDEwMCpNYXRoLm1heCgwLE1hdGgubWluKHQuZGF0YS5jYWwuZGF0YSgiY29scGljayIpLmhlaWdodCxlLXQuZGF0YS5wb3MubGVmdCkpL3QuZGF0YS5jYWwuZGF0YSgiY29scGljayIpLmhlaWdodCwxMCkpLmdldCgwKSxbdC5kYXRhLnByZXZpZXddKSwhMX0seT1mdW5jdGlvbihlKXtyZXR1cm4gYShlLmRhdGEuY2FsLmRhdGEoImNvbHBpY2siKS5jb2xvcixlLmRhdGEuY2FsLmdldCgwKSksYyhlLmRhdGEuY2FsLmRhdGEoImNvbHBpY2siKS5jb2xvcixlLmRhdGEuY2FsLmdldCgwKSksdChkb2N1bWVudCkub2ZmKCJtb3VzZXVwIHRvdWNoZW5kIix5KSx0KGRvY3VtZW50KS5vZmYoIm1vdXNlbW92ZSB0b3VjaG1vdmUiLGIpLCExfSx4PWZ1bmN0aW9uKGUpe3ZhciBpPXQodGhpcykucGFyZW50KCksYT1pLmRhdGEoImNvbHBpY2siKS5jb2xvcjtpLmRhdGEoImNvbHBpY2siKS5vcmlnQ29sb3I9YSxuKGEsaS5nZXQoMCkpLGkuZGF0YSgiY29scGljayIpLm9uU3VibWl0KGEseihhKSxOKGEpLGkuZGF0YSgiY29scGljayIpLmVsKX0sdz1mdW5jdGlvbihlKXtlJiZlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBpPXQoIiMiK3QodGhpcykuZGF0YSgiY29scGlja0lkIikpO2UmJiFpLmRhdGEoImNvbHBpY2siKS5wb2x5ZmlsbCYmZS5wcmV2ZW50RGVmYXVsdCgpLGkuZGF0YSgiY29scGljayIpLm9uQmVmb3JlU2hvdy5hcHBseSh0aGlzLFtpLmdldCgwKV0pO3ZhciBhPXQodGhpcykub2Zmc2V0KCksbz1hLnRvcCt0aGlzLm9mZnNldEhlaWdodCxjPWEubGVmdCxsPU0oKSxyPWkud2lkdGgoKTtjK3I+bC5sK2wudyYmKGMtPXIpLGkuY3NzKHtsZWZ0OmMrInB4Iix0b3A6bysicHgifSksMCE9aS5kYXRhKCJjb2xwaWNrIikub25TaG93LmFwcGx5KHRoaXMsW2kuZ2V0KDApXSkmJmkuc2hvdygpLHQoImh0bWwiKS5tb3VzZWRvd24oe2NhbDppfSxJKSxpLm1vdXNlZG93bigoZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0pKX0sST1mdW5jdGlvbihlKXt2YXIgaT10KCIjIit0KHRoaXMpLmRhdGEoImNvbHBpY2tJZCIpKTtlJiYoaT1lLmRhdGEuY2FsKSwwIT1pLmRhdGEoImNvbHBpY2siKS5vbkhpZGUuYXBwbHkodGhpcyxbaS5nZXQoMCldKSYmaS5oaWRlKCksdCgiaHRtbCIpLm9mZigibW91c2Vkb3duIixJKX0sTT1mdW5jdGlvbigpe3ZhciB0PSJDU1MxQ29tcGF0Ij09ZG9jdW1lbnQuY29tcGF0TW9kZTtyZXR1cm57bDp3aW5kb3cucGFnZVhPZmZzZXR8fCh0P2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0OmRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCksdzp3aW5kb3cuaW5uZXJXaWR0aHx8KHQ/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOmRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgpfX0sQz1mdW5jdGlvbih0KXtyZXR1cm57aDpNYXRoLm1pbigzNjAsTWF0aC5tYXgoMCx0LmgpKSxzOk1hdGgubWluKDEwMCxNYXRoLm1heCgwLHQucykpLGI6TWF0aC5taW4oMTAwLE1hdGgubWF4KDAsdC5iKSl9fSxxPWZ1bmN0aW9uKHQpe3JldHVybntyOk1hdGgubWluKDI1NSxNYXRoLm1heCgwLHQucikpLGc6TWF0aC5taW4oMjU1LE1hdGgubWF4KDAsdC5nKSksYjpNYXRoLm1pbigyNTUsTWF0aC5tYXgoMCx0LmIpKX19LFQ9ZnVuY3Rpb24odCl7dmFyIGU9Ni10Lmxlbmd0aDtpZigzPT1lKXtmb3IodmFyIGk9W10sYT0wO2E8ZTthKyspaS5wdXNoKHRbYV0pLGkucHVzaCh0W2FdKTt0PWkuam9pbigiIil9ZWxzZSBpZihlPjApe2Zvcih2YXIgbz1bXSxjPTA7YzxlO2MrKylvLnB1c2goIjAiKTtvLnB1c2godCksdD1vLmpvaW4oIiIpfXJldHVybiB0fSxlPTAsUz1mdW5jdGlvbigpe3JldHVybiBlKz0xfSxFPWZ1bmN0aW9uKCl7dmFyIGU9dCh0aGlzKS5wYXJlbnQoKSxpPWUuZGF0YSgiY29scGljayIpLm9yaWdDb2xvcjtlLmRhdGEoImNvbHBpY2siKS5jb2xvcj1pLGEoaSxlLmdldCgwKSksYyhpLGUuZ2V0KDApKSxvKGksZS5nZXQoMCkpLGwoaSxlLmdldCgwKSkscihpLGUuZ2V0KDApKSxkKGksZS5nZXQoMCkpfSx7aW5pdDpmdW5jdGlvbihlKXtpZigic3RyaW5nIj09dHlwZW9mKGU9dC5leHRlbmQoe30saSxlfHx7fSkpLmNvbG9yKWUuY29sb3I9WShlLmNvbG9yKTtlbHNlIGlmKG51bGwhPWUuY29sb3IuciYmbnVsbCE9ZS5jb2xvci5nJiZudWxsIT1lLmNvbG9yLmIpZS5jb2xvcj1IKGUuY29sb3IpO2Vsc2V7aWYobnVsbD09ZS5jb2xvci5ofHxudWxsPT1lLmNvbG9yLnN8fG51bGw9PWUuY29sb3IuYilyZXR1cm4gdGhpcztlLmNvbG9yPUMoZS5jb2xvcil9cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtpZighdCh0aGlzKS5kYXRhKCJjb2xwaWNrSWQiKSl7dmFyIGk9dC5leHRlbmQoe30sZSk7aWYoaS5vcmlnQ29sb3I9ZS5jb2xvciwiZnVuY3Rpb24iPT10eXBlb2YgZS5wb2x5ZmlsbCYmKGkucG9seWZpbGw9ZS5wb2x5ZmlsbCh0aGlzKSksaS5pbnB1dD10KHRoaXMpLmlzKCJpbnB1dCIpLGkucG9seWZpbGwmJmkuaW5wdXQmJiJjb2xvciI9PT10aGlzLnR5cGUpcmV0dXJuO3ZhciBoPSJjb2xvcnBpY2tlcl8iK1MoKTt0KHRoaXMpLmRhdGEoImNvbHBpY2tJZCIsaCk7dmFyIHY9dCgnPGRpdiBjbGFzcz0iY29scGljayI+PGRpdiBjbGFzcz0iY29scGlja19jb2xvciI+PGRpdiBjbGFzcz0iY29scGlja19jb2xvcl9vdmVybGF5MSI+PGRpdiBjbGFzcz0iY29scGlja19jb2xvcl9vdmVybGF5MiI+PGRpdiBjbGFzcz0iY29scGlja19zZWxlY3Rvcl9vdXRlciI+PGRpdiBjbGFzcz0iY29scGlja19zZWxlY3Rvcl9pbm5lciI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29scGlja19odWUiPjxkaXYgY2xhc3M9ImNvbHBpY2tfaHVlX2FycnMiPjxkaXYgY2xhc3M9ImNvbHBpY2tfaHVlX2xhcnIiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbHBpY2tfaHVlX3JhcnIiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbHBpY2tfbmV3X2NvbG9yIj48L2Rpdj48ZGl2IGNsYXNzPSJjb2xwaWNrX2N1cnJlbnRfY29sb3IiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbHBpY2tfaGV4X2ZpZWxkIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX2xldHRlciI+IzwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjYiIHNpemU9IjYiIC8+PC9kaXY+PGRpdiBjbGFzcz0iY29scGlja19yZ2JfciBjb2xwaWNrX2ZpZWxkIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX2xldHRlciI+UjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHNpemU9IjMiIC8+PGRpdiBjbGFzcz0iY29scGlja19maWVsZF9hcnJzIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX3VhcnIiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbHBpY2tfZmllbGRfZGFyciI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29scGlja19yZ2JfZyBjb2xwaWNrX2ZpZWxkIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX2xldHRlciI+RzwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHNpemU9IjMiIC8+PGRpdiBjbGFzcz0iY29scGlja19maWVsZF9hcnJzIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX3VhcnIiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbHBpY2tfZmllbGRfZGFyciI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29scGlja19yZ2JfYiBjb2xwaWNrX2ZpZWxkIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX2xldHRlciI+QjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHNpemU9IjMiIC8+PGRpdiBjbGFzcz0iY29scGlja19maWVsZF9hcnJzIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX3VhcnIiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbHBpY2tfZmllbGRfZGFyciI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29scGlja19oc2JfaCBjb2xwaWNrX2ZpZWxkIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX2xldHRlciI+SDwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHNpemU9IjMiIC8+PGRpdiBjbGFzcz0iY29scGlja19maWVsZF9hcnJzIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX3VhcnIiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbHBpY2tfZmllbGRfZGFyciI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29scGlja19oc2JfcyBjb2xwaWNrX2ZpZWxkIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX2xldHRlciI+UzwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHNpemU9IjMiIC8+PGRpdiBjbGFzcz0iY29scGlja19maWVsZF9hcnJzIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX3VhcnIiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbHBpY2tfZmllbGRfZGFyciI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29scGlja19oc2JfYiBjb2xwaWNrX2ZpZWxkIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX2xldHRlciI+QjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHNpemU9IjMiIC8+PGRpdiBjbGFzcz0iY29scGlja19maWVsZF9hcnJzIj48ZGl2IGNsYXNzPSJjb2xwaWNrX2ZpZWxkX3VhcnIiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbHBpY2tfZmllbGRfZGFyciI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29scGlja19zdWJtaXQiPjwvZGl2PjwvZGl2PicpLmF0dHIoImlkIixoKTt2LmFkZENsYXNzKCJjb2xwaWNrXyIraS5sYXlvdXQrKGkuc3VibWl0PyIiOiIgY29scGlja18iK2kubGF5b3V0KyJfbnMiKSksImxpZ2h0IiE9aS5jb2xvclNjaGVtZSYmdi5hZGRDbGFzcygiY29scGlja18iK2kuY29sb3JTY2hlbWUpLHYuZmluZCgiZGl2LmNvbHBpY2tfc3VibWl0IikuaHRtbChpLnN1Ym1pdFRleHQpLmNsaWNrKHgpLGkuZmllbGRzPXYuZmluZCgiaW5wdXQiKS5jaGFuZ2UocykuYmx1cihwKS5mb2N1cyh1KSx2LmZpbmQoImRpdi5jb2xwaWNrX2ZpZWxkX2FycnMiKS5tb3VzZWRvd24oZikuZW5kKCkuZmluZCgiZGl2LmNvbHBpY2tfY3VycmVudF9jb2xvciIpLmNsaWNrKEUpLGkuc2VsZWN0b3I9di5maW5kKCJkaXYuY29scGlja19jb2xvciIpLm9uKCJtb3VzZWRvd24gdG91Y2hzdGFydCIsbSksaS5zZWxlY3RvckluZGljPWkuc2VsZWN0b3IuZmluZCgiZGl2LmNvbHBpY2tfc2VsZWN0b3Jfb3V0ZXIiKSxpLmVsPXRoaXMsaS5odWU9di5maW5kKCJkaXYuY29scGlja19odWVfYXJycyIpO3ZhciBrPWkuaHVlLnBhcmVudCgpLF89bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLGI9Ik1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciI9PT1uYXZpZ2F0b3IuYXBwTmFtZSx5PWI/cGFyc2VGbG9hdChfLm1hdGNoKC9tc2llIChbMC05XXsxLH1bXC4wLTldezAsfSkvKVsxXSk6MCxJPVsiI2ZmMDAwMCIsIiNmZjAwODAiLCIjZmYwMGZmIiwiIzgwMDBmZiIsIiMwMDAwZmYiLCIjMDA4MGZmIiwiIzAwZmZmZiIsIiMwMGZmODAiLCIjMDBmZjAwIiwiIzgwZmYwMCIsIiNmZmZmMDAiLCIjZmY4MDAwIiwiI2ZmMDAwMCJdO2lmKGImJnk8MTApe3ZhciBNLEM7Zm9yKE09MDtNPD0xMTtNKyspQz10KCI8ZGl2PjwvZGl2PiIpLmF0dHIoInN0eWxlIiwiaGVpZ2h0OjguMzMzMzMzJTsgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChHcmFkaWVudFR5cGU9MCxzdGFydENvbG9yc3RyPSIrSVtNXSsiLCBlbmRDb2xvcnN0cj0iK0lbTSsxXSsnKTsgLW1zLWZpbHRlcjogInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChHcmFkaWVudFR5cGU9MCxzdGFydENvbG9yc3RyPScrSVtNXSsiLCBlbmRDb2xvcnN0cj0iK0lbTSsxXSsnKSI7Jyksay5hcHBlbmQoQyl9ZWxzZXt2YXIgcT1JLmpvaW4oIiwiKTtrLmF0dHIoInN0eWxlIiwiYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIitxKyIpOyBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCIrcSsiKTsgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIitxKyIpOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwiK3ErIik7IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwiK3ErIik7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwiK3ErIik7ICIpfXYuZmluZCgiZGl2LmNvbHBpY2tfaHVlIikub24oIm1vdXNlZG93biB0b3VjaHN0YXJ0IixnKSxpLm5ld0NvbG9yPXYuZmluZCgiZGl2LmNvbHBpY2tfbmV3X2NvbG9yIiksaS5jdXJyZW50Q29sb3I9di5maW5kKCJkaXYuY29scGlja19jdXJyZW50X2NvbG9yIiksdi5kYXRhKCJjb2xwaWNrIixpKSxhKGkuY29sb3Isdi5nZXQoMCkpLG8oaS5jb2xvcix2LmdldCgwKSksYyhpLmNvbG9yLHYuZ2V0KDApKSxyKGkuY29sb3Isdi5nZXQoMCkpLGwoaS5jb2xvcix2LmdldCgwKSksbihpLmNvbG9yLHYuZ2V0KDApKSxkKGkuY29sb3Isdi5nZXQoMCkpLGkuZmxhdD8odi5hcHBlbmRUbyh0aGlzKS5zaG93KCksdi5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiYmxvY2sifSkpOih2LmFwcGVuZFRvKHQodGhpcykucGFyZW50KCkpLHQodGhpcykub24oaS5zaG93RXZlbnQsdyksdi5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSJ9KSl9fSkpfSxzaG93UGlja2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXt0KHRoaXMpLmRhdGEoImNvbHBpY2tJZCIpJiZ3LmFwcGx5KHRoaXMpfSkpfSxoaWRlUGlja2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXt0KHRoaXMpLmRhdGEoImNvbHBpY2tJZCIpJiZJLmFwcGx5KHRoaXMpfSkpfSxzZXRDb2xvcjpmdW5jdGlvbihlLGkpe2lmKG51bGwhPWUpe2lmKGk9dm9pZCAwPT09aT8xOmksInN0cmluZyI9PXR5cGVvZiBlKWU9WShlKTtlbHNlIGlmKG51bGwhPWUuciYmbnVsbCE9ZS5nJiZudWxsIT1lLmIpZT1IKGUpO2Vsc2V7aWYobnVsbD09ZS5ofHxudWxsPT1lLnN8fG51bGw9PWUuYilyZXR1cm4gdGhpcztlPUMoZSl9cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtpZih0KHRoaXMpLmRhdGEoImNvbHBpY2tJZCIpKXt2YXIgcz10KCIjIit0KHRoaXMpLmRhdGEoImNvbHBpY2tJZCIpKTtzLmRhdGEoImNvbHBpY2siKS5jb2xvcj1lLHMuZGF0YSgiY29scGljayIpLm9yaWdDb2xvcj1lLGEoZSxzLmdldCgwKSksbyhlLHMuZ2V0KDApKSxjKGUscy5nZXQoMCkpLHIoZSxzLmdldCgwKSksbChlLHMuZ2V0KDApKSxkKGUscy5nZXQoMCkpLHMuZGF0YSgiY29scGljayIpLm9uQ2hhbmdlLmFwcGx5KHMucGFyZW50KCksW2UseihlKSxOKGUpLHMuZGF0YSgiY29scGljayIpLmVsLDFdKSxpJiZuKGUscy5nZXQoMCkpfX0pKX19LGRlc3Ryb3k6ZnVuY3Rpb24oZSxpKXt0KCIjIit0KHRoaXMpLmRhdGEoImNvbHBpY2tJZCIpKS5yZW1vdmUoKX19KSxQPWZ1bmN0aW9uKHQpe3JldHVybntyOih0PXBhcnNlSW50KHQuaW5kZXhPZigiIyIpPi0xP3Quc3Vic3RyaW5nKDEpOnQsMTYpKT4+MTYsZzooNjUyODAmdCk+PjgsYjoyNTUmdH19LFk9ZnVuY3Rpb24odCl7cmV0dXJuIEgoUCh0KSl9LEg9ZnVuY3Rpb24odCl7dmFyIGU9e2g6MCxzOjAsYjowfSxpPU1hdGgubWluKHQucix0LmcsdC5iKSxhPU1hdGgubWF4KHQucix0LmcsdC5iKSxvPWEtaTtyZXR1cm4gZS5iPWEsZS5zPTAhPWE/MjU1Km8vYTowLDAhPWUucz90LnI9PWE/ZS5oPSh0LmctdC5iKS9vOnQuZz09YT9lLmg9MisodC5iLXQucikvbzplLmg9NCsodC5yLXQuZykvbzplLmg9LTEsZS5oKj02MCxlLmg8MCYmKGUuaCs9MzYwKSxlLnMqPTEwMC8yNTUsZS5iKj0xMDAvMjU1LGV9LE49ZnVuY3Rpb24odCl7dmFyIGU9e30saT10LmgsYT0yNTUqdC5zLzEwMCxvPTI1NSp0LmIvMTAwO2lmKDA9PWEpZS5yPWUuZz1lLmI9bztlbHNle3ZhciBjPW8sbD0oMjU1LWEpKm8vMjU1LHI9aSU2MCooYy1sKS82MDszNjA9PWkmJihpPTApLGk8NjA/KGUucj1jLGUuYj1sLGUuZz1sK3IpOmk8MTIwPyhlLmc9YyxlLmI9bCxlLnI9Yy1yKTppPDE4MD8oZS5nPWMsZS5yPWwsZS5iPWwrcik6aTwyNDA/KGUuYj1jLGUucj1sLGUuZz1jLXIpOmk8MzAwPyhlLmI9YyxlLmc9bCxlLnI9bCtyKTppPDM2MD8oZS5yPWMsZS5nPWwsZS5iPWMtcik6KGUucj0wLGUuZz0wLGUuYj0wKX1yZXR1cm57cjpNYXRoLnJvdW5kKGUuciksZzpNYXRoLnJvdW5kKGUuZyksYjpNYXRoLnJvdW5kKGUuYil9fSxqPWZ1bmN0aW9uKGUpe3ZhciBpPVtlLnIudG9TdHJpbmcoMTYpLGUuZy50b1N0cmluZygxNiksZS5iLnRvU3RyaW5nKDE2KV07cmV0dXJuIHQuZWFjaChpLChmdW5jdGlvbih0LGUpezE9PWUubGVuZ3RoJiYoaVt0XT0iMCIrZSl9KSksaS5qb2luKCIiKX0sej1mdW5jdGlvbih0KXtyZXR1cm4gaihOKHQpKX07dC5mbi5leHRlbmQoe2NvbHBpY2s6RC5pbml0LGNvbHBpY2tIaWRlOkQuaGlkZVBpY2tlcixjb2xwaWNrU2hvdzpELnNob3dQaWNrZXIsY29scGlja1NldENvbG9yOkQuc2V0Q29sb3IsY29scGlja0Rlc3Ryb3k6RC5kZXN0cm95fSksdC5leHRlbmQoe2NvbHBpY2s6e3JnYlRvSGV4OmoscmdiVG9Ic2I6SCxoc2JUb0hleDp6LGhzYlRvUmdiOk4saGV4VG9Ic2I6WSxoZXhUb1JnYjpQfX0pfSkpOw0KDQoNCg0KLyoNCiAqIGpRdWVyeSB0aW1lcGlja2VyIGFkZG9uDQogKiBCeTogVHJlbnQgUmljaGFyZHNvbiBbaHR0cDovL3RyZW50cmljaGFyZHNvbi5jb21dDQogKiBWZXJzaW9uIDEuMS4xDQogKiBMYXN0IE1vZGlmaWVkOiAxMS8wNy8yMDEyDQogKg0KICogQ29weXJpZ2h0IDIwMTIgVHJlbnQgUmljaGFyZHNvbg0KICogWW91IG1heSB1c2UgdGhpcyBwcm9qZWN0IHVuZGVyIE1JVCBvciBHUEwgbGljZW5zZXMuDQogKiBodHRwOi8vdHJlbnRyaWNoYXJkc29uLmNvbS9JbXByb21wdHUvR1BMLUxJQ0VOU0UudHh0DQogKiBodHRwOi8vdHJlbnRyaWNoYXJkc29uLmNvbS9JbXByb21wdHUvTUlULUxJQ0VOU0UudHh0DQogKi8NCihmdW5jdGlvbigkKXtpZigkLnVpLnRpbWVwaWNrZXI9JC51aS50aW1lcGlja2VyfHx7fSwhJC51aS50aW1lcGlja2VyLnZlcnNpb24peyQuZXh0ZW5kKCQudWkse3RpbWVwaWNrZXI6e3ZlcnNpb246IjEuMS4xIn19KSwkLmV4dGVuZChUaW1lcGlja2VyLnByb3RvdHlwZSx7JGlucHV0Om51bGwsJGFsdElucHV0Om51bGwsJHRpbWVPYmo6bnVsbCxpbnN0Om51bGwsaG91cl9zbGlkZXI6bnVsbCxtaW51dGVfc2xpZGVyOm51bGwsc2Vjb25kX3NsaWRlcjpudWxsLG1pbGxpc2VjX3NsaWRlcjpudWxsLHRpbWV6b25lX3NlbGVjdDpudWxsLGhvdXI6MCxtaW51dGU6MCxzZWNvbmQ6MCxtaWxsaXNlYzowLHRpbWV6b25lOm51bGwsZGVmYXVsdFRpbWV6b25lOiIrMDAwMCIsaG91ck1pbk9yaWdpbmFsOm51bGwsbWludXRlTWluT3JpZ2luYWw6bnVsbCxzZWNvbmRNaW5PcmlnaW5hbDpudWxsLG1pbGxpc2VjTWluT3JpZ2luYWw6bnVsbCxob3VyTWF4T3JpZ2luYWw6bnVsbCxtaW51dGVNYXhPcmlnaW5hbDpudWxsLHNlY29uZE1heE9yaWdpbmFsOm51bGwsbWlsbGlzZWNNYXhPcmlnaW5hbDpudWxsLGFtcG06IiIsZm9ybWF0dGVkRGF0ZToiIixmb3JtYXR0ZWRUaW1lOiIiLGZvcm1hdHRlZERhdGVUaW1lOiIiLHRpbWV6b25lTGlzdDpudWxsLHVuaXRzOlsiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsIm1pbGxpc2VjIl0sY29udHJvbDpudWxsLHNldERlZmF1bHRzOmZ1bmN0aW9uKGUpe3JldHVybiBleHRlbmRSZW1vdmUodGhpcy5fZGVmYXVsdHMsZXx8e30pLHRoaXN9LF9uZXdJbnN0OmZ1bmN0aW9uKCRpbnB1dCxvKXt2YXIgdHBfaW5zdD1uZXcgVGltZXBpY2tlcixpbmxpbmVTZXR0aW5ncz17fSxmbnM9e30sb3ZlcnJpZGVzLGk7Zm9yKHZhciBhdHRyTmFtZSBpbiB0aGlzLl9kZWZhdWx0cylpZih0aGlzLl9kZWZhdWx0cy5oYXNPd25Qcm9wZXJ0eShhdHRyTmFtZSkpe3ZhciBhdHRyVmFsdWU9JGlucHV0LmF0dHIoInRpbWU6IithdHRyTmFtZSk7aWYoYXR0clZhbHVlKXRyeXtpbmxpbmVTZXR0aW5nc1thdHRyTmFtZV09ZXZhbChhdHRyVmFsdWUpfWNhdGNoKGUpe2lubGluZVNldHRpbmdzW2F0dHJOYW1lXT1hdHRyVmFsdWV9fWZvcihpIGluIG92ZXJyaWRlcz17YmVmb3JlU2hvdzpmdW5jdGlvbihlLHQpe2lmKCQuaXNGdW5jdGlvbih0cF9pbnN0Ll9kZWZhdWx0cy5ldm50cy5iZWZvcmVTaG93KSlyZXR1cm4gdHBfaW5zdC5fZGVmYXVsdHMuZXZudHMuYmVmb3JlU2hvdy5jYWxsKCRpbnB1dFswXSxlLHQsdHBfaW5zdCl9LG9uQ2hhbmdlTW9udGhZZWFyOmZ1bmN0aW9uKGUsdCxpKXt0cF9pbnN0Ll91cGRhdGVEYXRlVGltZShpKSwkLmlzRnVuY3Rpb24odHBfaW5zdC5fZGVmYXVsdHMuZXZudHMub25DaGFuZ2VNb250aFllYXIpJiZ0cF9pbnN0Ll9kZWZhdWx0cy5ldm50cy5vbkNoYW5nZU1vbnRoWWVhci5jYWxsKCRpbnB1dFswXSxlLHQsaSx0cF9pbnN0KX0sb25DbG9zZTpmdW5jdGlvbihlLHQpeyEwPT09dHBfaW5zdC50aW1lRGVmaW5lZCYmIiIhPT0kaW5wdXQudmFsKCkmJnRwX2luc3QuX3VwZGF0ZURhdGVUaW1lKHQpLCQuaXNGdW5jdGlvbih0cF9pbnN0Ll9kZWZhdWx0cy5ldm50cy5vbkNsb3NlKSYmdHBfaW5zdC5fZGVmYXVsdHMuZXZudHMub25DbG9zZS5jYWxsKCRpbnB1dFswXSxlLHQsdHBfaW5zdCl9fSxvdmVycmlkZXMpb3ZlcnJpZGVzLmhhc093blByb3BlcnR5KGkpJiYoZm5zW2ldPW9baV18fG51bGwpO2lmKHRwX2luc3QuX2RlZmF1bHRzPSQuZXh0ZW5kKHt9LHRoaXMuX2RlZmF1bHRzLGlubGluZVNldHRpbmdzLG8sb3ZlcnJpZGVzLHtldm50czpmbnMsdGltZXBpY2tlcjp0cF9pbnN0fSksdHBfaW5zdC5hbU5hbWVzPSQubWFwKHRwX2luc3QuX2RlZmF1bHRzLmFtTmFtZXMsKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvVXBwZXJDYXNlKCl9KSksdHBfaW5zdC5wbU5hbWVzPSQubWFwKHRwX2luc3QuX2RlZmF1bHRzLnBtTmFtZXMsKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvVXBwZXJDYXNlKCl9KSksInN0cmluZyI9PXR5cGVvZiB0cF9pbnN0Ll9kZWZhdWx0cy5jb250cm9sVHlwZT8odm9pZCAwPT09JC5mblt0cF9pbnN0Ll9kZWZhdWx0cy5jb250cm9sVHlwZV0mJih0cF9pbnN0Ll9kZWZhdWx0cy5jb250cm9sVHlwZT0ic2VsZWN0IiksdHBfaW5zdC5jb250cm9sPXRwX2luc3QuX2NvbnRyb2xzW3RwX2luc3QuX2RlZmF1bHRzLmNvbnRyb2xUeXBlXSk6dHBfaW5zdC5jb250cm9sPXRwX2luc3QuX2RlZmF1bHRzLmNvbnRyb2xUeXBlLG51bGw9PT10cF9pbnN0Ll9kZWZhdWx0cy50aW1lem9uZUxpc3Qpe3ZhciB0aW1lem9uZUxpc3Q9WyItMTIwMCIsIi0xMTAwIiwiLTEwMDAiLCItMDkzMCIsIi0wOTAwIiwiLTA4MDAiLCItMDcwMCIsIi0wNjAwIiwiLTA1MDAiLCItMDQzMCIsIi0wNDAwIiwiLTAzMzAiLCItMDMwMCIsIi0wMjAwIiwiLTAxMDAiLCIrMDAwMCIsIiswMTAwIiwiKzAyMDAiLCIrMDMwMCIsIiswMzMwIiwiKzA0MDAiLCIrMDQzMCIsIiswNTAwIiwiKzA1MzAiLCIrMDU0NSIsIiswNjAwIiwiKzA2MzAiLCIrMDcwMCIsIiswODAwIiwiKzA4NDUiLCIrMDkwMCIsIiswOTMwIiwiKzEwMDAiLCIrMTAzMCIsIisxMTAwIiwiKzExMzAiLCIrMTIwMCIsIisxMjQ1IiwiKzEzMDAiLCIrMTQwMCJdO3RwX2luc3QuX2RlZmF1bHRzLnRpbWV6b25lSXNvODYwMSYmKHRpbWV6b25lTGlzdD0kLm1hcCh0aW1lem9uZUxpc3QsKGZ1bmN0aW9uKGUpe3JldHVybiIrMDAwMCI9PWU/IloiOmUuc3Vic3RyaW5nKDAsMykrIjoiK2Uuc3Vic3RyaW5nKDMpfSkpKSx0cF9pbnN0Ll9kZWZhdWx0cy50aW1lem9uZUxpc3Q9dGltZXpvbmVMaXN0fXJldHVybiB0cF9pbnN0LnRpbWV6b25lPXRwX2luc3QuX2RlZmF1bHRzLnRpbWV6b25lLHRwX2luc3QuaG91cj10cF9pbnN0Ll9kZWZhdWx0cy5ob3VyLHRwX2luc3QubWludXRlPXRwX2luc3QuX2RlZmF1bHRzLm1pbnV0ZSx0cF9pbnN0LnNlY29uZD10cF9pbnN0Ll9kZWZhdWx0cy5zZWNvbmQsdHBfaW5zdC5taWxsaXNlYz10cF9pbnN0Ll9kZWZhdWx0cy5taWxsaXNlYyx0cF9pbnN0LmFtcG09IiIsdHBfaW5zdC4kaW5wdXQ9JGlucHV0LG8uYWx0RmllbGQmJih0cF9pbnN0LiRhbHRJbnB1dD0kKG8uYWx0RmllbGQpLmNzcyh7Y3Vyc29yOiJwb2ludGVyIn0pLmZvY3VzKChmdW5jdGlvbigpeyRpbnB1dC50cmlnZ2VyKCJmb2N1cyIpfSkpKSwwIT09dHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZSYmMCE9PXRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGVUaW1lfHwodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZT1uZXcgRGF0ZSksMCE9PXRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUmJjAhPT10cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlVGltZXx8KHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGU9bmV3IERhdGUpLHZvaWQgMCE9PXRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGUmJnRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGUgaW5zdGFuY2VvZiBEYXRlJiYodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWU9bmV3IERhdGUodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZS5nZXRUaW1lKCkpKSx2b2lkIDAhPT10cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZSYmdHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUgaW5zdGFuY2VvZiBEYXRlJiYodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZT1uZXcgRGF0ZSh0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZS5nZXRUaW1lKCkpKSx2b2lkIDAhPT10cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlJiZ0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlIGluc3RhbmNlb2YgRGF0ZSYmKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGVUaW1lPW5ldyBEYXRlKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUuZ2V0VGltZSgpKSksdm9pZCAwIT09dHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWUmJnRwX2luc3QuX2RlZmF1bHRzLm1heERhdGVUaW1lIGluc3RhbmNlb2YgRGF0ZSYmKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGU9bmV3IERhdGUodHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWUuZ2V0VGltZSgpKSksdHBfaW5zdC4kaW5wdXQuYmluZCgiZm9jdXMiLChmdW5jdGlvbigpe3RwX2luc3QuX29uRm9jdXMoKX0pKSx0cF9pbnN0fSxfYWRkVGltZVBpY2tlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLiRhbHRJbnB1dCYmdGhpcy5fZGVmYXVsdHMuYWx0RmllbGRUaW1lT25seT90aGlzLiRpbnB1dC52YWwoKSsiICIrdGhpcy4kYWx0SW5wdXQudmFsKCk6dGhpcy4kaW5wdXQudmFsKCk7dGhpcy50aW1lRGVmaW5lZD10aGlzLl9wYXJzZVRpbWUodCksdGhpcy5fbGltaXRNaW5NYXhEYXRlVGltZShlLCExKSx0aGlzLl9pbmplY3RUaW1lUGlja2VyKCl9LF9wYXJzZVRpbWU6ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmluc3R8fCh0aGlzLmluc3Q9JC5kYXRlcGlja2VyLl9nZXRJbnN0KHRoaXMuJGlucHV0WzBdKSksdHx8IXRoaXMuX2RlZmF1bHRzLnRpbWVPbmx5KXt2YXIgaT0kLmRhdGVwaWNrZXIuX2dldCh0aGlzLmluc3QsImRhdGVGb3JtYXQiKTt0cnl7dmFyIHM9cGFyc2VEYXRlVGltZUludGVybmFsKGksdGhpcy5fZGVmYXVsdHMudGltZUZvcm1hdCxlLCQuZGF0ZXBpY2tlci5fZ2V0Rm9ybWF0Q29uZmlnKHRoaXMuaW5zdCksdGhpcy5fZGVmYXVsdHMpO2lmKCFzLnRpbWVPYmopcmV0dXJuITE7JC5leHRlbmQodGhpcyxzLnRpbWVPYmopfWNhdGNoKHQpe3JldHVybiAkLmRhdGVwaWNrZXIubG9nKCJFcnJvciBwYXJzaW5nIHRoZSBkYXRlL3RpbWUgc3RyaW5nOiAiK3QrIlxuZGF0ZS90aW1lIHN0cmluZyA9ICIrZSsiXG50aW1lRm9ybWF0ID0gIit0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0KyJcbmRhdGVGb3JtYXQgPSAiK2kpLCExfXJldHVybiEwfXZhciBhPSQuZGF0ZXBpY2tlci5wYXJzZVRpbWUodGhpcy5fZGVmYXVsdHMudGltZUZvcm1hdCxlLHRoaXMuX2RlZmF1bHRzKTtyZXR1cm4hIWEmJigkLmV4dGVuZCh0aGlzLGEpLCEwKX0sX2luamVjdFRpbWVQaWNrZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmluc3QuZHBEaXYsdD10aGlzLmluc3Quc2V0dGluZ3MsaT10aGlzLHM9IiIsYT0iIixuPXt9LHI9e30sbD1udWxsO2lmKDA9PT1lLmZpbmQoImRpdi51aS10aW1lcGlja2VyLWRpdiIpLmxlbmd0aCYmdC5zaG93VGltZXBpY2tlcil7Zm9yKHZhciBvPScgc3R5bGU9ImRpc3BsYXk6bm9uZTsiJyx1PSc8ZGl2IGNsYXNzPSJ1aS10aW1lcGlja2VyLWRpdicrKHQuaXNSVEw/IiB1aS10aW1lcGlja2VyLXJ0bCI6IiIpKyciPjxkbD48ZHQgY2xhc3M9InVpX3RwaWNrZXJfdGltZV9sYWJlbCInKyh0LnNob3dUaW1lPyIiOm8pKyI+Iit0LnRpbWVUZXh0Kyc8L2R0PjxkZCBjbGFzcz0idWlfdHBpY2tlcl90aW1lIicrKHQuc2hvd1RpbWU/IiI6bykrIj48L2RkPiIsZD0wLG09dGhpcy51bml0cy5sZW5ndGg7ZDxtO2QrKyl7aWYoYT0ocz10aGlzLnVuaXRzW2RdKS5zdWJzdHIoMCwxKS50b1VwcGVyQ2FzZSgpK3Muc3Vic3RyKDEpLG5bc109cGFyc2VJbnQodFtzKyJNYXgiXS0odFtzKyJNYXgiXS10W3MrIk1pbiJdKSV0WyJzdGVwIithXSwxMCkscltzXT0wLHUrPSc8ZHQgY2xhc3M9InVpX3RwaWNrZXJfJytzKydfbGFiZWwiJysodFsic2hvdyIrYV0/IiI6bykrIj4iK3RbcysiVGV4dCJdKyc8L2R0PjxkZCBjbGFzcz0idWlfdHBpY2tlcl8nK3MrJyI+PGRpdiBjbGFzcz0idWlfdHBpY2tlcl8nK3MrJ19zbGlkZXIiJysodFsic2hvdyIrYV0/IiI6bykrIj48L2Rpdj4iLHRbInNob3ciK2FdJiZ0W3MrIkdyaWQiXT4wKXtpZih1Kz0nPGRpdiBzdHlsZT0icGFkZGluZy1sZWZ0OiAxcHgiPjx0YWJsZSBjbGFzcz0idWktdHBpY2tlci1ncmlkLWxhYmVsIj48dHI+JywiaG91ciI9PXMpZm9yKHZhciBjPXRbcysiTWluIl07Yzw9bltzXTtjKz1wYXJzZUludCh0W3MrIkdyaWQiXSwxMCkpe3Jbc10rKzt2YXIgaD0kLmRhdGVwaWNrZXIuZm9ybWF0VGltZSh1c2VBbXBtKHQucGlja2VyVGltZUZvcm1hdHx8dC50aW1lRm9ybWF0KT8iaGh0IjoiSEgiLHtob3VyOmN9LHQpO3UrPSc8dGQgZGF0YS1mb3I9IicrcysnIj4nK2grIjwvdGQ+In1lbHNlIGZvcih2YXIgcD10W3MrIk1pbiJdO3A8PW5bc107cCs9cGFyc2VJbnQodFtzKyJHcmlkIl0sMTApKXJbc10rKyx1Kz0nPHRkIGRhdGEtZm9yPSInK3MrJyI+JysocDwxMD8iMCI6IiIpK3ArIjwvdGQ+Ijt1Kz0iPC90cj48L3RhYmxlPjwvZGl2PiJ9dSs9IjwvZGQ+In11Kz0nPGR0IGNsYXNzPSJ1aV90cGlja2VyX3RpbWV6b25lX2xhYmVsIicrKHQuc2hvd1RpbWV6b25lPyIiOm8pKyI+Iit0LnRpbWV6b25lVGV4dCsiPC9kdD4iLHUrPSc8ZGQgY2xhc3M9InVpX3RwaWNrZXJfdGltZXpvbmUiICcrKHQuc2hvd1RpbWV6b25lPyIiOm8pKyI+PC9kZD4iO3ZhciBmPSQodSs9IjwvZGw+PC9kaXY+Iik7ITA9PT10LnRpbWVPbmx5JiYoZi5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJ1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItYWxsIj48ZGl2IGNsYXNzPSJ1aS1kYXRlcGlja2VyLXRpdGxlIj4nK3QudGltZU9ubHlUaXRsZSsiPC9kaXY+PC9kaXY+IiksZS5maW5kKCIudWktZGF0ZXBpY2tlci1oZWFkZXIsIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIikuaGlkZSgpKTtmb3IoZD0wLG09aS51bml0cy5sZW5ndGg7ZDxtO2QrKylhPShzPWkudW5pdHNbZF0pLnN1YnN0cigwLDEpLnRvVXBwZXJDYXNlKCkrcy5zdWJzdHIoMSksaVtzKyJfc2xpZGVyIl09aS5jb250cm9sLmNyZWF0ZShpLGYuZmluZCgiLnVpX3RwaWNrZXJfIitzKyJfc2xpZGVyIikscyxpW3NdLHRbcysiTWluIl0sbltzXSx0WyJzdGVwIithXSksdFsic2hvdyIrYV0mJnRbcysiR3JpZCJdPjAmJihsPTEwMCpyW3NdKnRbcysiR3JpZCJdLyhuW3NdLXRbcysiTWluIl0pLGYuZmluZCgiLnVpX3RwaWNrZXJfIitzKyIgdGFibGUiKS5jc3Moe3dpZHRoOmwrIiUiLG1hcmdpbkxlZnQ6dC5pc1JUTD8iMCI6bC8oLTIqcltzXSkrIiUiLG1hcmdpblJpZ2h0OnQuaXNSVEw/bC8oLTIqcltzXSkrIiUiOiIwIixib3JkZXJDb2xsYXBzZToiY29sbGFwc2UifSkuZmluZCgidGQiKS5jbGljaygoZnVuY3Rpb24oZSl7dmFyIHQ9JCh0aGlzKSxhPXQuaHRtbCgpLG49cGFyc2VJbnQoYS5yZXBsYWNlKC9bXjAtOV0vZyksMTApLHI9YS5yZXBsYWNlKC9bXmFwbV0vZ2kpLGw9dC5kYXRhKCJmb3IiKTsiaG91ciI9PWwmJigtMSE9PXIuaW5kZXhPZigicCIpJiZuPDEyP24rPTEyOi0xIT09ci5pbmRleE9mKCJhIikmJjEyPT09biYmKG49MCkpLGkuY29udHJvbC52YWx1ZShpLGlbbCsiX3NsaWRlciJdLHMsbiksaS5fb25UaW1lQ2hhbmdlKCksaS5fb25TZWxlY3RIYW5kbGVyKCl9KSkuY3NzKHtjdXJzb3I6InBvaW50ZXIiLHdpZHRoOjEwMC9yW3NdKyIlIix0ZXh0QWxpZ246ImNlbnRlciIsb3ZlcmZsb3c6ImhpZGRlbiJ9KSk7aWYodGhpcy50aW1lem9uZV9zZWxlY3Q9Zi5maW5kKCIudWlfdHBpY2tlcl90aW1lem9uZSIpLmFwcGVuZCgiPHNlbGVjdD48L3NlbGVjdD4iKS5maW5kKCJzZWxlY3QiKSwkLmZuLmFwcGVuZC5hcHBseSh0aGlzLnRpbWV6b25lX3NlbGVjdCwkLm1hcCh0LnRpbWV6b25lTGlzdCwoZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCgiPG9wdGlvbiAvPiIpLnZhbCgib2JqZWN0Ij09dHlwZW9mIGU/ZS52YWx1ZTplKS50ZXh0KCJvYmplY3QiPT10eXBlb2YgZT9lLmxhYmVsOmUpfSkpKSx2b2lkIDAhPT10aGlzLnRpbWV6b25lJiZudWxsIT09dGhpcy50aW1lem9uZSYmIiIhPT10aGlzLnRpbWV6b25lKXt2YXIgXz1uZXcgRGF0ZSh0aGlzLmluc3Quc2VsZWN0ZWRZZWFyLHRoaXMuaW5zdC5zZWxlY3RlZE1vbnRoLHRoaXMuaW5zdC5zZWxlY3RlZERheSwxMik7JC50aW1lcGlja2VyLnRpbWVab25lT2Zmc2V0U3RyaW5nKF8pPT10aGlzLnRpbWV6b25lP3NlbGVjdExvY2FsVGltZVpvbmUoaSk6dGhpcy50aW1lem9uZV9zZWxlY3QudmFsKHRoaXMudGltZXpvbmUpfWVsc2Ugdm9pZCAwIT09dGhpcy5ob3VyJiZudWxsIT09dGhpcy5ob3VyJiYiIiE9PXRoaXMuaG91cj90aGlzLnRpbWV6b25lX3NlbGVjdC52YWwodC5kZWZhdWx0VGltZXpvbmUpOnNlbGVjdExvY2FsVGltZVpvbmUoaSk7dGhpcy50aW1lem9uZV9zZWxlY3QuY2hhbmdlKChmdW5jdGlvbigpe2kuX2RlZmF1bHRzLnVzZUxvY2FsVGltZXpvbmU9ITEsaS5fb25UaW1lQ2hhbmdlKCl9KSk7dmFyIGc9ZS5maW5kKCIudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIik7aWYoZy5sZW5ndGg/Zy5iZWZvcmUoZik6ZS5hcHBlbmQoZiksdGhpcy4kdGltZU9iaj1mLmZpbmQoIi51aV90cGlja2VyX3RpbWUiKSxudWxsIT09dGhpcy5pbnN0KXt2YXIgdj10aGlzLnRpbWVEZWZpbmVkO3RoaXMuX29uVGltZUNoYW5nZSgpLHRoaXMudGltZURlZmluZWQ9dn1pZih0aGlzLl9kZWZhdWx0cy5hZGRTbGlkZXJBY2Nlc3Mpe3ZhciBrPXRoaXMuX2RlZmF1bHRzLnNsaWRlckFjY2Vzc0FyZ3MsVD10aGlzLl9kZWZhdWx0cy5pc1JUTDtrLmlzUlRMPVQsc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpZigwPT09Zi5maW5kKCIudWktc2xpZGVyLWFjY2VzcyIpLmxlbmd0aCl7Zi5maW5kKCIudWktc2xpZGVyOnZpc2libGUiKS5zbGlkZXJBY2Nlc3Moayk7dmFyIGU9Zi5maW5kKCIudWktc2xpZGVyLWFjY2VzczplcSgwKSIpLm91dGVyV2lkdGgoITApO2UmJmYuZmluZCgidGFibGU6dmlzaWJsZSIpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9JCh0aGlzKSxpPXQub3V0ZXJXaWR0aCgpLHM9dC5jc3MoVD8ibWFyZ2luUmlnaHQiOiJtYXJnaW5MZWZ0IikudG9TdHJpbmcoKS5yZXBsYWNlKCIlIiwiIiksYT1pLWUsbj1zKmEvaSsiJSIscj17d2lkdGg6YSxtYXJnaW5SaWdodDowLG1hcmdpbkxlZnQ6MH07cltUPyJtYXJnaW5SaWdodCI6Im1hcmdpbkxlZnQiXT1uLHQuY3NzKHIpfSkpfX0pLDEwKX19fSxfbGltaXRNaW5NYXhEYXRlVGltZTpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuX2RlZmF1bHRzLHM9bmV3IERhdGUoZS5zZWxlY3RlZFllYXIsZS5zZWxlY3RlZE1vbnRoLGUuc2VsZWN0ZWREYXkpO2lmKHRoaXMuX2RlZmF1bHRzLnNob3dUaW1lcGlja2VyKXtpZihudWxsIT09JC5kYXRlcGlja2VyLl9nZXQoZSwibWluRGF0ZVRpbWUiKSYmdm9pZCAwIT09JC5kYXRlcGlja2VyLl9nZXQoZSwibWluRGF0ZVRpbWUiKSYmcyl7dmFyIGE9JC5kYXRlcGlja2VyLl9nZXQoZSwibWluRGF0ZVRpbWUiKSxuPW5ldyBEYXRlKGEuZ2V0RnVsbFllYXIoKSxhLmdldE1vbnRoKCksYS5nZXREYXRlKCksMCwwLDAsMCk7bnVsbCE9PXRoaXMuaG91ck1pbk9yaWdpbmFsJiZudWxsIT09dGhpcy5taW51dGVNaW5PcmlnaW5hbCYmbnVsbCE9PXRoaXMuc2Vjb25kTWluT3JpZ2luYWwmJm51bGwhPT10aGlzLm1pbGxpc2VjTWluT3JpZ2luYWx8fCh0aGlzLmhvdXJNaW5PcmlnaW5hbD1pLmhvdXJNaW4sdGhpcy5taW51dGVNaW5PcmlnaW5hbD1pLm1pbnV0ZU1pbix0aGlzLnNlY29uZE1pbk9yaWdpbmFsPWkuc2Vjb25kTWluLHRoaXMubWlsbGlzZWNNaW5PcmlnaW5hbD1pLm1pbGxpc2VjTWluKSxlLnNldHRpbmdzLnRpbWVPbmx5fHxuLmdldFRpbWUoKT09cy5nZXRUaW1lKCk/KHRoaXMuX2RlZmF1bHRzLmhvdXJNaW49YS5nZXRIb3VycygpLHRoaXMuaG91cjw9dGhpcy5fZGVmYXVsdHMuaG91ck1pbj8odGhpcy5ob3VyPXRoaXMuX2RlZmF1bHRzLmhvdXJNaW4sdGhpcy5fZGVmYXVsdHMubWludXRlTWluPWEuZ2V0TWludXRlcygpLHRoaXMubWludXRlPD10aGlzLl9kZWZhdWx0cy5taW51dGVNaW4/KHRoaXMubWludXRlPXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbix0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW49YS5nZXRTZWNvbmRzKCksdGhpcy5zZWNvbmQ8PXRoaXMuX2RlZmF1bHRzLnNlY29uZE1pbj8odGhpcy5zZWNvbmQ9dGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluLHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluPWEuZ2V0TWlsbGlzZWNvbmRzKCkpOih0aGlzLm1pbGxpc2VjPHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluJiYodGhpcy5taWxsaXNlYz10aGlzLl9kZWZhdWx0cy5taWxsaXNlY01pbiksdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW49dGhpcy5taWxsaXNlY01pbk9yaWdpbmFsKSk6KHRoaXMuX2RlZmF1bHRzLnNlY29uZE1pbj10aGlzLnNlY29uZE1pbk9yaWdpbmFsLHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluPXRoaXMubWlsbGlzZWNNaW5PcmlnaW5hbCkpOih0aGlzLl9kZWZhdWx0cy5taW51dGVNaW49dGhpcy5taW51dGVNaW5PcmlnaW5hbCx0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW49dGhpcy5zZWNvbmRNaW5PcmlnaW5hbCx0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01pbj10aGlzLm1pbGxpc2VjTWluT3JpZ2luYWwpKToodGhpcy5fZGVmYXVsdHMuaG91ck1pbj10aGlzLmhvdXJNaW5PcmlnaW5hbCx0aGlzLl9kZWZhdWx0cy5taW51dGVNaW49dGhpcy5taW51dGVNaW5PcmlnaW5hbCx0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW49dGhpcy5zZWNvbmRNaW5PcmlnaW5hbCx0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01pbj10aGlzLm1pbGxpc2VjTWluT3JpZ2luYWwpfWlmKG51bGwhPT0kLmRhdGVwaWNrZXIuX2dldChlLCJtYXhEYXRlVGltZSIpJiZ2b2lkIDAhPT0kLmRhdGVwaWNrZXIuX2dldChlLCJtYXhEYXRlVGltZSIpJiZzKXt2YXIgcj0kLmRhdGVwaWNrZXIuX2dldChlLCJtYXhEYXRlVGltZSIpLGw9bmV3IERhdGUoci5nZXRGdWxsWWVhcigpLHIuZ2V0TW9udGgoKSxyLmdldERhdGUoKSwwLDAsMCwwKTtudWxsIT09dGhpcy5ob3VyTWF4T3JpZ2luYWwmJm51bGwhPT10aGlzLm1pbnV0ZU1heE9yaWdpbmFsJiZudWxsIT09dGhpcy5zZWNvbmRNYXhPcmlnaW5hbHx8KHRoaXMuaG91ck1heE9yaWdpbmFsPWkuaG91ck1heCx0aGlzLm1pbnV0ZU1heE9yaWdpbmFsPWkubWludXRlTWF4LHRoaXMuc2Vjb25kTWF4T3JpZ2luYWw9aS5zZWNvbmRNYXgsdGhpcy5taWxsaXNlY01heE9yaWdpbmFsPWkubWlsbGlzZWNNYXgpLGUuc2V0dGluZ3MudGltZU9ubHl8fGwuZ2V0VGltZSgpPT1zLmdldFRpbWUoKT8odGhpcy5fZGVmYXVsdHMuaG91ck1heD1yLmdldEhvdXJzKCksdGhpcy5ob3VyPj10aGlzLl9kZWZhdWx0cy5ob3VyTWF4Pyh0aGlzLmhvdXI9dGhpcy5fZGVmYXVsdHMuaG91ck1heCx0aGlzLl9kZWZhdWx0cy5taW51dGVNYXg9ci5nZXRNaW51dGVzKCksdGhpcy5taW51dGU+PXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heD8odGhpcy5taW51dGU9dGhpcy5fZGVmYXVsdHMubWludXRlTWF4LHRoaXMuX2RlZmF1bHRzLnNlY29uZE1heD1yLmdldFNlY29uZHMoKSk6dGhpcy5zZWNvbmQ+PXRoaXMuX2RlZmF1bHRzLnNlY29uZE1heD8odGhpcy5zZWNvbmQ9dGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4LHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4PXIuZ2V0TWlsbGlzZWNvbmRzKCkpOih0aGlzLm1pbGxpc2VjPnRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4JiYodGhpcy5taWxsaXNlYz10aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCksdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNYXg9dGhpcy5taWxsaXNlY01heE9yaWdpbmFsKSk6KHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heD10aGlzLm1pbnV0ZU1heE9yaWdpbmFsLHRoaXMuX2RlZmF1bHRzLnNlY29uZE1heD10aGlzLnNlY29uZE1heE9yaWdpbmFsLHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4PXRoaXMubWlsbGlzZWNNYXhPcmlnaW5hbCkpOih0aGlzLl9kZWZhdWx0cy5ob3VyTWF4PXRoaXMuaG91ck1heE9yaWdpbmFsLHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heD10aGlzLm1pbnV0ZU1heE9yaWdpbmFsLHRoaXMuX2RlZmF1bHRzLnNlY29uZE1heD10aGlzLnNlY29uZE1heE9yaWdpbmFsLHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4PXRoaXMubWlsbGlzZWNNYXhPcmlnaW5hbCl9aWYodm9pZCAwIT09dCYmITA9PT10KXt2YXIgbz1wYXJzZUludCh0aGlzLl9kZWZhdWx0cy5ob3VyTWF4LSh0aGlzLl9kZWZhdWx0cy5ob3VyTWF4LXRoaXMuX2RlZmF1bHRzLmhvdXJNaW4pJXRoaXMuX2RlZmF1bHRzLnN0ZXBIb3VyLDEwKSx1PXBhcnNlSW50KHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1heC0odGhpcy5fZGVmYXVsdHMubWludXRlTWF4LXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbikldGhpcy5fZGVmYXVsdHMuc3RlcE1pbnV0ZSwxMCksZD1wYXJzZUludCh0aGlzLl9kZWZhdWx0cy5zZWNvbmRNYXgtKHRoaXMuX2RlZmF1bHRzLnNlY29uZE1heC10aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4pJXRoaXMuX2RlZmF1bHRzLnN0ZXBTZWNvbmQsMTApLG09cGFyc2VJbnQodGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNYXgtKHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4LXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluKSV0aGlzLl9kZWZhdWx0cy5zdGVwTWlsbGlzZWMsMTApO3RoaXMuaG91cl9zbGlkZXImJih0aGlzLmNvbnRyb2wub3B0aW9ucyh0aGlzLHRoaXMuaG91cl9zbGlkZXIsImhvdXIiLHttaW46dGhpcy5fZGVmYXVsdHMuaG91ck1pbixtYXg6b30pLHRoaXMuY29udHJvbC52YWx1ZSh0aGlzLHRoaXMuaG91cl9zbGlkZXIsImhvdXIiLHRoaXMuaG91cikpLHRoaXMubWludXRlX3NsaWRlciYmKHRoaXMuY29udHJvbC5vcHRpb25zKHRoaXMsdGhpcy5taW51dGVfc2xpZGVyLCJtaW51dGUiLHttaW46dGhpcy5fZGVmYXVsdHMubWludXRlTWluLG1heDp1fSksdGhpcy5jb250cm9sLnZhbHVlKHRoaXMsdGhpcy5taW51dGVfc2xpZGVyLCJtaW51dGUiLHRoaXMubWludXRlKSksdGhpcy5zZWNvbmRfc2xpZGVyJiYodGhpcy5jb250cm9sLm9wdGlvbnModGhpcyx0aGlzLnNlY29uZF9zbGlkZXIsInNlY29uZCIse21pbjp0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4sbWF4OmR9KSx0aGlzLmNvbnRyb2wudmFsdWUodGhpcyx0aGlzLnNlY29uZF9zbGlkZXIsInNlY29uZCIsdGhpcy5zZWNvbmQpKSx0aGlzLm1pbGxpc2VjX3NsaWRlciYmKHRoaXMuY29udHJvbC5vcHRpb25zKHRoaXMsdGhpcy5taWxsaXNlY19zbGlkZXIsIm1pbGxpc2VjIix7bWluOnRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluLG1heDptfSksdGhpcy5jb250cm9sLnZhbHVlKHRoaXMsdGhpcy5taWxsaXNlY19zbGlkZXIsIm1pbGxpc2VjIix0aGlzLm1pbGxpc2VjKSl9fX0sX29uVGltZUNoYW5nZTpmdW5jdGlvbigpe3ZhciBlPSEhdGhpcy5ob3VyX3NsaWRlciYmdGhpcy5jb250cm9sLnZhbHVlKHRoaXMsdGhpcy5ob3VyX3NsaWRlciwiaG91ciIpLHQ9ISF0aGlzLm1pbnV0ZV9zbGlkZXImJnRoaXMuY29udHJvbC52YWx1ZSh0aGlzLHRoaXMubWludXRlX3NsaWRlciwibWludXRlIiksaT0hIXRoaXMuc2Vjb25kX3NsaWRlciYmdGhpcy5jb250cm9sLnZhbHVlKHRoaXMsdGhpcy5zZWNvbmRfc2xpZGVyLCJzZWNvbmQiKSxzPSEhdGhpcy5taWxsaXNlY19zbGlkZXImJnRoaXMuY29udHJvbC52YWx1ZSh0aGlzLHRoaXMubWlsbGlzZWNfc2xpZGVyLCJtaWxsaXNlYyIpLGE9ISF0aGlzLnRpbWV6b25lX3NlbGVjdCYmdGhpcy50aW1lem9uZV9zZWxlY3QudmFsKCksbj10aGlzLl9kZWZhdWx0cyxyPW4ucGlja2VyVGltZUZvcm1hdHx8bi50aW1lRm9ybWF0LGw9bi5waWNrZXJUaW1lU3VmZml4fHxuLnRpbWVTdWZmaXg7Im9iamVjdCI9PXR5cGVvZiBlJiYoZT0hMSksIm9iamVjdCI9PXR5cGVvZiB0JiYodD0hMSksIm9iamVjdCI9PXR5cGVvZiBpJiYoaT0hMSksIm9iamVjdCI9PXR5cGVvZiBzJiYocz0hMSksIm9iamVjdCI9PXR5cGVvZiBhJiYoYT0hMSksITEhPT1lJiYoZT1wYXJzZUludChlLDEwKSksITEhPT10JiYodD1wYXJzZUludCh0LDEwKSksITEhPT1pJiYoaT1wYXJzZUludChpLDEwKSksITEhPT1zJiYocz1wYXJzZUludChzLDEwKSk7dmFyIG89bltlPDEyPyJhbU5hbWVzIjoicG1OYW1lcyJdWzBdLHU9ZSE9dGhpcy5ob3VyfHx0IT10aGlzLm1pbnV0ZXx8aSE9dGhpcy5zZWNvbmR8fHMhPXRoaXMubWlsbGlzZWN8fHRoaXMuYW1wbS5sZW5ndGg+MCYmZTwxMiE9KC0xIT09JC5pbkFycmF5KHRoaXMuYW1wbS50b1VwcGVyQ2FzZSgpLHRoaXMuYW1OYW1lcykpfHxudWxsPT09dGhpcy50aW1lem9uZSYmYSE9dGhpcy5kZWZhdWx0VGltZXpvbmV8fG51bGwhPT10aGlzLnRpbWV6b25lJiZhIT10aGlzLnRpbWV6b25lO3UmJighMSE9PWUmJih0aGlzLmhvdXI9ZSksITEhPT10JiYodGhpcy5taW51dGU9dCksITEhPT1pJiYodGhpcy5zZWNvbmQ9aSksITEhPT1zJiYodGhpcy5taWxsaXNlYz1zKSwhMSE9PWEmJih0aGlzLnRpbWV6b25lPWEpLHRoaXMuaW5zdHx8KHRoaXMuaW5zdD0kLmRhdGVwaWNrZXIuX2dldEluc3QodGhpcy4kaW5wdXRbMF0pKSx0aGlzLl9saW1pdE1pbk1heERhdGVUaW1lKHRoaXMuaW5zdCwhMCkpLHVzZUFtcG0obi50aW1lRm9ybWF0KSYmKHRoaXMuYW1wbT1vKSx0aGlzLmZvcm1hdHRlZFRpbWU9JC5kYXRlcGlja2VyLmZvcm1hdFRpbWUobi50aW1lRm9ybWF0LHRoaXMsbiksdGhpcy4kdGltZU9iaiYmKHI9PT1uLnRpbWVGb3JtYXQ/dGhpcy4kdGltZU9iai50ZXh0KHRoaXMuZm9ybWF0dGVkVGltZStsKTp0aGlzLiR0aW1lT2JqLnRleHQoJC5kYXRlcGlja2VyLmZvcm1hdFRpbWUocix0aGlzLG4pK2wpKSx0aGlzLnRpbWVEZWZpbmVkPSEwLHUmJnRoaXMuX3VwZGF0ZURhdGVUaW1lKCl9LF9vblNlbGVjdEhhbmRsZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9kZWZhdWx0cy5vblNlbGVjdHx8dGhpcy5pbnN0LnNldHRpbmdzLm9uU2VsZWN0LHQ9dGhpcy4kaW5wdXQ/dGhpcy4kaW5wdXRbMF06bnVsbDtlJiZ0JiZlLmFwcGx5KHQsW3RoaXMuZm9ybWF0dGVkRGF0ZVRpbWUsdGhpc10pfSxfdXBkYXRlRGF0ZVRpbWU6ZnVuY3Rpb24oZSl7ZT10aGlzLmluc3R8fGU7dmFyIHQ9JC5kYXRlcGlja2VyLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShlLnNlbGVjdGVkWWVhcixlLnNlbGVjdGVkTW9udGgsZS5zZWxlY3RlZERheSkpLGk9JC5kYXRlcGlja2VyLl9nZXQoZSwiZGF0ZUZvcm1hdCIpLHM9JC5kYXRlcGlja2VyLl9nZXRGb3JtYXRDb25maWcoZSksYT1udWxsIT09dCYmdGhpcy50aW1lRGVmaW5lZDt0aGlzLmZvcm1hdHRlZERhdGU9JC5kYXRlcGlja2VyLmZvcm1hdERhdGUoaSxudWxsPT09dD9uZXcgRGF0ZTp0LHMpO3ZhciBuPXRoaXMuZm9ybWF0dGVkRGF0ZTtpZighMD09PXRoaXMuX2RlZmF1bHRzLnRpbWVPbmx5P249dGhpcy5mb3JtYXR0ZWRUaW1lOiEwIT09dGhpcy5fZGVmYXVsdHMudGltZU9ubHkmJih0aGlzLl9kZWZhdWx0cy5hbHdheXNTZXRUaW1lfHxhKSYmKG4rPXRoaXMuX2RlZmF1bHRzLnNlcGFyYXRvcit0aGlzLmZvcm1hdHRlZFRpbWUrdGhpcy5fZGVmYXVsdHMudGltZVN1ZmZpeCksdGhpcy5mb3JtYXR0ZWREYXRlVGltZT1uLHRoaXMuX2RlZmF1bHRzLnNob3dUaW1lcGlja2VyKWlmKHRoaXMuJGFsdElucHV0JiYhMD09PXRoaXMuX2RlZmF1bHRzLmFsdEZpZWxkVGltZU9ubHkpdGhpcy4kYWx0SW5wdXQudmFsKHRoaXMuZm9ybWF0dGVkVGltZSksdGhpcy4kaW5wdXQudmFsKHRoaXMuZm9ybWF0dGVkRGF0ZSk7ZWxzZSBpZih0aGlzLiRhbHRJbnB1dCl7dGhpcy4kaW5wdXQudmFsKG4pO3ZhciByPSIiLGw9dGhpcy5fZGVmYXVsdHMuYWx0U2VwYXJhdG9yP3RoaXMuX2RlZmF1bHRzLmFsdFNlcGFyYXRvcjp0aGlzLl9kZWZhdWx0cy5zZXBhcmF0b3Isbz10aGlzLl9kZWZhdWx0cy5hbHRUaW1lU3VmZml4P3RoaXMuX2RlZmF1bHRzLmFsdFRpbWVTdWZmaXg6dGhpcy5fZGVmYXVsdHMudGltZVN1ZmZpeDsocj10aGlzLl9kZWZhdWx0cy5hbHRGb3JtYXQ/JC5kYXRlcGlja2VyLmZvcm1hdERhdGUodGhpcy5fZGVmYXVsdHMuYWx0Rm9ybWF0LG51bGw9PT10P25ldyBEYXRlOnQscyk6dGhpcy5mb3JtYXR0ZWREYXRlKSYmKHIrPWwpLHRoaXMuX2RlZmF1bHRzLmFsdFRpbWVGb3JtYXQ/cis9JC5kYXRlcGlja2VyLmZvcm1hdFRpbWUodGhpcy5fZGVmYXVsdHMuYWx0VGltZUZvcm1hdCx0aGlzLHRoaXMuX2RlZmF1bHRzKStvOnIrPXRoaXMuZm9ybWF0dGVkVGltZStvLHRoaXMuJGFsdElucHV0LnZhbChyKX1lbHNlIHRoaXMuJGlucHV0LnZhbChuKTtlbHNlIHRoaXMuJGlucHV0LnZhbCh0aGlzLmZvcm1hdHRlZERhdGUpO3RoaXMuJGlucHV0LnRyaWdnZXIoImNoYW5nZSIpfSxfb25Gb2N1czpmdW5jdGlvbigpe2lmKCF0aGlzLiRpbnB1dC52YWwoKSYmdGhpcy5fZGVmYXVsdHMuZGVmYXVsdFZhbHVlKXt0aGlzLiRpbnB1dC52YWwodGhpcy5fZGVmYXVsdHMuZGVmYXVsdFZhbHVlKTt2YXIgZT0kLmRhdGVwaWNrZXIuX2dldEluc3QodGhpcy4kaW5wdXQuZ2V0KDApKSx0PSQuZGF0ZXBpY2tlci5fZ2V0KGUsInRpbWVwaWNrZXIiKTtpZih0JiZ0Ll9kZWZhdWx0cy50aW1lT25seSYmZS5pbnB1dC52YWwoKSE9ZS5sYXN0VmFsKXRyeXskLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIoZSl9Y2F0Y2goZSl7JC5kYXRlcGlja2VyLmxvZyhlKX19fSxfY29udHJvbHM6e3NsaWRlcjp7Y3JlYXRlOmZ1bmN0aW9uKGUsdCxpLHMsYSxuLHIpe3ZhciBsPWUuX2RlZmF1bHRzLmlzUlRMO3JldHVybiB0LnByb3AoInNsaWRlIixudWxsKS5zbGlkZXIoe29yaWVudGF0aW9uOiJob3Jpem9udGFsIix2YWx1ZTpsPy0xKnM6cyxtaW46bD8tMSpuOmEsbWF4Omw/LTEqYTpuLHN0ZXA6cixzbGlkZTpmdW5jdGlvbih0LHMpe2UuY29udHJvbC52YWx1ZShlLCQodGhpcyksaSxsPy0xKnMudmFsdWU6cy52YWx1ZSksZS5fb25UaW1lQ2hhbmdlKCl9LHN0b3A6ZnVuY3Rpb24odCxpKXtlLl9vblNlbGVjdEhhbmRsZXIoKX19KX0sb3B0aW9uczpmdW5jdGlvbihlLHQsaSxzLGEpe2lmKGUuX2RlZmF1bHRzLmlzUlRMKXtpZigic3RyaW5nIj09dHlwZW9mIHMpcmV0dXJuIm1pbiI9PXN8fCJtYXgiPT1zP3ZvaWQgMCE9PWE/dC5zbGlkZXIocywtMSphKTpNYXRoLmFicyh0LnNsaWRlcihzKSk6dC5zbGlkZXIocyk7dmFyIG49cy5taW4scj1zLm1heDtyZXR1cm4gcy5taW49cy5tYXg9bnVsbCx2b2lkIDAhPT1uJiYocy5tYXg9LTEqbiksdm9pZCAwIT09ciYmKHMubWluPS0xKnIpLHQuc2xpZGVyKHMpfXJldHVybiJzdHJpbmciPT10eXBlb2YgcyYmdm9pZCAwIT09YT90LnNsaWRlcihzLGEpOnQuc2xpZGVyKHMpfSx2YWx1ZTpmdW5jdGlvbihlLHQsaSxzKXtyZXR1cm4gZS5fZGVmYXVsdHMuaXNSVEw/dm9pZCAwIT09cz90LnNsaWRlcigidmFsdWUiLC0xKnMpOk1hdGguYWJzKHQuc2xpZGVyKCJ2YWx1ZSIpKTp2b2lkIDAhPT1zP3Quc2xpZGVyKCJ2YWx1ZSIscyk6dC5zbGlkZXIoInZhbHVlIil9fSxzZWxlY3Q6e2NyZWF0ZTpmdW5jdGlvbihlLHQsaSxzLGEsbixyKXtmb3IodmFyIGw9JzxzZWxlY3QgY2xhc3M9InVpLXRpbWVwaWNrZXItc2VsZWN0IiBkYXRhLXVuaXQ9IicraSsnIiBkYXRhLW1pbj0iJythKyciIGRhdGEtbWF4PSInK24rJyIgZGF0YS1zdGVwPSInK3IrJyI+JyxvPShlLl9kZWZhdWx0cy50aW1lRm9ybWF0LmluZGV4T2YoInQiKSxhKTtvPD1uO28rPXIpbCs9JzxvcHRpb24gdmFsdWU9IicrbysnIicrKG89PXM/IiBzZWxlY3RlZCI6IiIpKyI+IiwiaG91ciI9PWkmJnVzZUFtcG0oZS5fZGVmYXVsdHMucGlja2VyVGltZUZvcm1hdHx8ZS5fZGVmYXVsdHMudGltZUZvcm1hdCk/bCs9JC5kYXRlcGlja2VyLmZvcm1hdFRpbWUoImhoIFRUIix7aG91cjpvfSxlLl9kZWZhdWx0cyk6bCs9Im1pbGxpc2VjIj09aXx8bz49MTA/bzoiMCIrby50b1N0cmluZygpLGwrPSI8L29wdGlvbj4iO3JldHVybiBsKz0iPC9zZWxlY3Q+Iix0LmNoaWxkcmVuKCJzZWxlY3QiKS5yZW1vdmUoKSwkKGwpLmFwcGVuZFRvKHQpLmNoYW5nZSgoZnVuY3Rpb24odCl7ZS5fb25UaW1lQ2hhbmdlKCksZS5fb25TZWxlY3RIYW5kbGVyKCl9KSksdH0sb3B0aW9uczpmdW5jdGlvbihlLHQsaSxzLGEpe3ZhciBuPXt9LHI9dC5jaGlsZHJlbigic2VsZWN0Iik7aWYoInN0cmluZyI9PXR5cGVvZiBzKXtpZih2b2lkIDA9PT1hKXJldHVybiByLmRhdGEocyk7bltzXT1hfWVsc2Ugbj1zO3JldHVybiBlLmNvbnRyb2wuY3JlYXRlKGUsdCxyLmRhdGEoInVuaXQiKSxyLnZhbCgpLG4ubWlufHxyLmRhdGEoIm1pbiIpLG4ubWF4fHxyLmRhdGEoIm1heCIpLG4uc3RlcHx8ci5kYXRhKCJzdGVwIikpfSx2YWx1ZTpmdW5jdGlvbihlLHQsaSxzKXt2YXIgYT10LmNoaWxkcmVuKCJzZWxlY3QiKTtyZXR1cm4gdm9pZCAwIT09cz9hLnZhbChzKTphLnZhbCgpfX19fSksJC5mbi5leHRlbmQoe3RpbWVwaWNrZXI6ZnVuY3Rpb24oZSl7ZT1lfHx7fTt2YXIgdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmKHRbMF09JC5leHRlbmQoZSx7dGltZU9ubHk6ITB9KSksJCh0aGlzKS5lYWNoKChmdW5jdGlvbigpeyQuZm4uZGF0ZXRpbWVwaWNrZXIuYXBwbHkoJCh0aGlzKSx0KX0pKX0sZGF0ZXRpbWVwaWNrZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzO3JldHVybiJzdHJpbmciPT10eXBlb2YoZT1lfHx7fSk/ImdldERhdGUiPT1lPyQuZm4uZGF0ZXBpY2tlci5hcHBseSgkKHRoaXNbMF0pLHQpOnRoaXMuZWFjaCgoZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMpO2UuZGF0ZXBpY2tlci5hcHBseShlLHQpfSkpOnRoaXMuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD0kKHRoaXMpO3QuZGF0ZXBpY2tlcigkLnRpbWVwaWNrZXIuX25ld0luc3QodCxlKS5fZGVmYXVsdHMpfSkpfX0pLCQuZGF0ZXBpY2tlci5wYXJzZURhdGVUaW1lPWZ1bmN0aW9uKGUsdCxpLHMsYSl7dmFyIG49cGFyc2VEYXRlVGltZUludGVybmFsKGUsdCxpLHMsYSk7aWYobi50aW1lT2JqKXt2YXIgcj1uLnRpbWVPYmo7bi5kYXRlLnNldEhvdXJzKHIuaG91cixyLm1pbnV0ZSxyLnNlY29uZCxyLm1pbGxpc2VjKX1yZXR1cm4gbi5kYXRlfSwkLmRhdGVwaWNrZXIucGFyc2VUaW1lPWZ1bmN0aW9uKGUsdCxpKXt2YXIgcz1leHRlbmRSZW1vdmUoZXh0ZW5kUmVtb3ZlKHt9LCQudGltZXBpY2tlci5fZGVmYXVsdHMpLGl8fHt9KSxhPWZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxhPSJeIitlLnRvU3RyaW5nKCkucmVwbGFjZSgvKFtoSF17MSwyfXxtbT98c3M/fFt0VF17MSwyfXxbbHpdfCcuKj8nKS9nLChmdW5jdGlvbihlKXtzd2l0Y2goZS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSl7Y2FzZSJoIjpjYXNlIm0iOmNhc2UicyI6cmV0dXJuIihcXGQ/XFxkKSI7Y2FzZSJsIjpyZXR1cm4iKFxcZD9cXGQ/XFxkKSI7Y2FzZSJ6IjpyZXR1cm4iKHp8Wy0rXVxcZFxcZDo/XFxkXFxkfFxcUyspPyI7Y2FzZSJ0IjpyZXR1cm4gdD1pLmFtTmFtZXMscz1pLnBtTmFtZXMsYT1bXSx0JiYkLm1lcmdlKGEsdCkscyYmJC5tZXJnZShhLHMpLCIoIisoYT0kLm1hcChhLChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bLiorP3woKVxbXF17fVxcXS9nLCJcXCQmIil9KSkpLmpvaW4oInwiKSsiKT8iO2RlZmF1bHQ6cmV0dXJuIigiK2UucmVwbGFjZSgvXCcvZywiIikucmVwbGFjZSgvKFwufFwkfFxefFxcfFwvfFwofFwpfFxbfFxdfFw/fFwrfFwqKS9nLChmdW5jdGlvbihlKXtyZXR1cm4iXFwiK2V9KSkrIik/In12YXIgdCxzLGF9KSkucmVwbGFjZSgvXHMvZywiXFxzPyIpK2kudGltZVN1ZmZpeCsiJCIsbj1mdW5jdGlvbihlKXt2YXIgdD1lLnRvTG93ZXJDYXNlKCkubWF0Y2goLyhoezEsMn18bXsxLDJ9fHN7MSwyfXxsezF9fHR7MSwyfXx6fCcuKj8nKS9nKSxpPXtoOi0xLG06LTEsczotMSxsOi0xLHQ6LTEsejotMX07aWYodClmb3IodmFyIHM9MDtzPHQubGVuZ3RoO3MrKyktMT09aVt0W3NdLnRvU3RyaW5nKCkuY2hhckF0KDApXSYmKGlbdFtzXS50b1N0cmluZygpLmNoYXJBdCgwKV09cysxKTtyZXR1cm4gaX0oZSkscj0iIixsPXtob3VyOjAsbWludXRlOjAsc2Vjb25kOjAsbWlsbGlzZWM6MH07aWYocz10Lm1hdGNoKG5ldyBSZWdFeHAoYSwiaSIpKSl7aWYoLTEhPT1uLnQmJih2b2lkIDA9PT1zW24udF18fDA9PT1zW24udF0ubGVuZ3RoPyhyPSIiLGwuYW1wbT0iIik6KHI9LTEhPT0kLmluQXJyYXkoc1tuLnRdLnRvVXBwZXJDYXNlKCksaS5hbU5hbWVzKT8iQU0iOiJQTSIsbC5hbXBtPWlbIkFNIj09cj8iYW1OYW1lcyI6InBtTmFtZXMiXVswXSkpLC0xIT09bi5oJiYoIkFNIj09ciYmIjEyIj09c1tuLmhdP2wuaG91cj0wOiJQTSI9PXImJiIxMiIhPXNbbi5oXT9sLmhvdXI9cGFyc2VJbnQoc1tuLmhdLDEwKSsxMjpsLmhvdXI9TnVtYmVyKHNbbi5oXSkpLC0xIT09bi5tJiYobC5taW51dGU9TnVtYmVyKHNbbi5tXSkpLC0xIT09bi5zJiYobC5zZWNvbmQ9TnVtYmVyKHNbbi5zXSkpLC0xIT09bi5sJiYobC5taWxsaXNlYz1OdW1iZXIoc1tuLmxdKSksLTEhPT1uLnomJnZvaWQgMCE9PXNbbi56XSl7dmFyIG89c1tuLnpdLnRvVXBwZXJDYXNlKCk7c3dpdGNoKG8ubGVuZ3RoKXtjYXNlIDE6bz1pLnRpbWV6b25lSXNvODYwMT8iWiI6IiswMDAwIjticmVhaztjYXNlIDU6aS50aW1lem9uZUlzbzg2MDEmJihvPSIwMDAwIj09by5zdWJzdHJpbmcoMSk/IloiOm8uc3Vic3RyaW5nKDAsMykrIjoiK28uc3Vic3RyaW5nKDMpKTticmVhaztjYXNlIDY6aS50aW1lem9uZUlzbzg2MDE/IjAwOjAwIj09by5zdWJzdHJpbmcoMSkmJihvPSJaIik6bz0iWiI9PW98fCIwMDowMCI9PW8uc3Vic3RyaW5nKDEpPyIrMDAwMCI6by5yZXBsYWNlKC86LywiIil9bC50aW1lem9uZT1vfXJldHVybiBsfXJldHVybiExfTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcy5wYXJzZT9zLnBhcnNlKGUsdCxzKToibG9vc2UiPT09cy5wYXJzZT9mdW5jdGlvbihlLHQsaSl7dHJ5e3ZhciBzPW5ldyBEYXRlKCIyMDEyLTAxLTAxICIrdCk7cmV0dXJue2hvdXI6cy5nZXRIb3VycygpLG1pbnV0ZXM6cy5nZXRNaW51dGVzKCksc2Vjb25kczpzLmdldFNlY29uZHMoKSxtaWxsaXNlYzpzLmdldE1pbGxpc2Vjb25kcygpLHRpbWV6b25lOiQudGltZXBpY2tlci50aW1lWm9uZU9mZnNldFN0cmluZyhzKX19Y2F0Y2gocyl7dHJ5e3JldHVybiBhKGUsdCxpKX1jYXRjaChpKXskLmRhdGVwaWNrZXIubG9nKCJVbmFibGUgdG8gcGFyc2UgXG50aW1lU3RyaW5nOiAiK3QrIlxudGltZUZvcm1hdDogIitlKX19cmV0dXJuITF9KGUsdCxzKTphKGUsdCxzKX0sJC5kYXRlcGlja2VyLmZvcm1hdFRpbWU9ZnVuY3Rpb24oZSx0LGkpe2k9aXx8e30saT0kLmV4dGVuZCh7fSwkLnRpbWVwaWNrZXIuX2RlZmF1bHRzLGkpLHQ9JC5leHRlbmQoe2hvdXI6MCxtaW51dGU6MCxzZWNvbmQ6MCxtaWxsaXNlYzowLHRpbWV6b25lOiIrMDAwMCJ9LHQpO3ZhciBzPWUsYT1pLmFtTmFtZXNbMF0sbj1wYXJzZUludCh0LmhvdXIsMTApO3JldHVybiBuPjExJiYoYT1pLnBtTmFtZXNbMF0pLHM9cy5yZXBsYWNlKC8oPzpISD98aGg/fG1tP3xzcz98W3RUXXsxLDJ9fFtsel18KCcuKj8nfCIuKj8iKSkvZywoZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UiSEgiOnJldHVybigiMCIrbikuc2xpY2UoLTIpO2Nhc2UiSCI6cmV0dXJuIG47Y2FzZSJoaCI6cmV0dXJuKCIwIitjb252ZXJ0MjR0bzEyKG4pKS5zbGljZSgtMik7Y2FzZSJoIjpyZXR1cm4gY29udmVydDI0dG8xMihuKTtjYXNlIm1tIjpyZXR1cm4oIjAiK3QubWludXRlKS5zbGljZSgtMik7Y2FzZSJtIjpyZXR1cm4gdC5taW51dGU7Y2FzZSJzcyI6cmV0dXJuKCIwIit0LnNlY29uZCkuc2xpY2UoLTIpO2Nhc2UicyI6cmV0dXJuIHQuc2Vjb25kO2Nhc2UibCI6cmV0dXJuKCIwMCIrdC5taWxsaXNlYykuc2xpY2UoLTMpO2Nhc2UieiI6cmV0dXJuIG51bGw9PT10LnRpbWV6b25lP2kuZGVmYXVsdFRpbWV6b25lOnQudGltZXpvbmU7Y2FzZSJUIjpyZXR1cm4gYS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTtjYXNlIlRUIjpyZXR1cm4gYS50b1VwcGVyQ2FzZSgpO2Nhc2UidCI6cmV0dXJuIGEuY2hhckF0KDApLnRvTG93ZXJDYXNlKCk7Y2FzZSJ0dCI6cmV0dXJuIGEudG9Mb3dlckNhc2UoKTtkZWZhdWx0OnJldHVybiBlLnJlcGxhY2UoL1wnL2csIiIpfHwiJyJ9fSkpLHM9JC50cmltKHMpfSwkLmRhdGVwaWNrZXIuX2Jhc2Vfc2VsZWN0RGF0ZT0kLmRhdGVwaWNrZXIuX3NlbGVjdERhdGUsJC5kYXRlcGlja2VyLl9zZWxlY3REYXRlPWZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy5fZ2V0SW5zdCgkKGUpWzBdKSxzPXRoaXMuX2dldChpLCJ0aW1lcGlja2VyIik7cz8ocy5fbGltaXRNaW5NYXhEYXRlVGltZShpLCEwKSxpLmlubGluZT1pLnN0YXlfb3Blbj0hMCx0aGlzLl9iYXNlX3NlbGVjdERhdGUoZSx0KSxpLmlubGluZT1pLnN0YXlfb3Blbj0hMSx0aGlzLl9ub3RpZnlDaGFuZ2UoaSksdGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihpKSk6dGhpcy5fYmFzZV9zZWxlY3REYXRlKGUsdCl9LCQuZGF0ZXBpY2tlci5fYmFzZV91cGRhdGVEYXRlcGlja2VyPSQuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlciwkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pbnB1dFswXTtpZighKCQuZGF0ZXBpY2tlci5fY3VySW5zdCYmJC5kYXRlcGlja2VyLl9jdXJJbnN0IT1lJiYkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nJiYkLmRhdGVwaWNrZXIuX2xhc3RJbnB1dCE9dHx8ImJvb2xlYW4iPT10eXBlb2YgZS5zdGF5X29wZW4mJiExIT09ZS5zdGF5X29wZW4pKXt0aGlzLl9iYXNlX3VwZGF0ZURhdGVwaWNrZXIoZSk7dmFyIGk9dGhpcy5fZ2V0KGUsInRpbWVwaWNrZXIiKTtpZihpJiYoaS5fYWRkVGltZVBpY2tlcihlKSxpLl9kZWZhdWx0cy51c2VMb2NhbFRpbWV6b25lKSl7dmFyIHM9bmV3IERhdGUoZS5zZWxlY3RlZFllYXIsZS5zZWxlY3RlZE1vbnRoLGUuc2VsZWN0ZWREYXksMTIpO3NlbGVjdExvY2FsVGltZVpvbmUoaSxzKSxpLl9vblRpbWVDaGFuZ2UoKX19fSwkLmRhdGVwaWNrZXIuX2Jhc2VfZG9LZXlQcmVzcz0kLmRhdGVwaWNrZXIuX2RvS2V5UHJlc3MsJC5kYXRlcGlja2VyLl9kb0tleVByZXNzPWZ1bmN0aW9uKGUpe3ZhciB0PSQuZGF0ZXBpY2tlci5fZ2V0SW5zdChlLnRhcmdldCksaT0kLmRhdGVwaWNrZXIuX2dldCh0LCJ0aW1lcGlja2VyIik7aWYoaSYmJC5kYXRlcGlja2VyLl9nZXQodCwiY29uc3RyYWluSW5wdXQiKSl7dmFyIHM9dXNlQW1wbShpLl9kZWZhdWx0cy50aW1lRm9ybWF0KSxhPSQuZGF0ZXBpY2tlci5fcG9zc2libGVDaGFycygkLmRhdGVwaWNrZXIuX2dldCh0LCJkYXRlRm9ybWF0IikpLG49aS5fZGVmYXVsdHMudGltZUZvcm1hdC50b1N0cmluZygpLnJlcGxhY2UoL1tobXNdL2csIiIpLnJlcGxhY2UoL1RUL2cscz8iQVBNIjoiIikucmVwbGFjZSgvVHQvZyxzPyJBYVBwTW0iOiIiKS5yZXBsYWNlKC90VC9nLHM/IkFhUHBNbSI6IiIpLnJlcGxhY2UoL1QvZyxzPyJBUCI6IiIpLnJlcGxhY2UoL3R0L2cscz8iYXBtIjoiIikucmVwbGFjZSgvdC9nLHM/ImFwIjoiIikrIiAiK2kuX2RlZmF1bHRzLnNlcGFyYXRvcitpLl9kZWZhdWx0cy50aW1lU3VmZml4KyhpLl9kZWZhdWx0cy5zaG93VGltZXpvbmU/aS5fZGVmYXVsdHMudGltZXpvbmVMaXN0LmpvaW4oIiIpOiIiKStpLl9kZWZhdWx0cy5hbU5hbWVzLmpvaW4oIiIpK2kuX2RlZmF1bHRzLnBtTmFtZXMuam9pbigiIikrYSxyPVN0cmluZy5mcm9tQ2hhckNvZGUodm9pZCAwPT09ZS5jaGFyQ29kZT9lLmtleUNvZGU6ZS5jaGFyQ29kZSk7cmV0dXJuIGUuY3RybEtleXx8cjwiICJ8fCFhfHxuLmluZGV4T2Yocik+LTF9cmV0dXJuICQuZGF0ZXBpY2tlci5fYmFzZV9kb0tleVByZXNzKGUpfSwkLmRhdGVwaWNrZXIuX2Jhc2VfdXBkYXRlQWx0ZXJuYXRlPSQuZGF0ZXBpY2tlci5fdXBkYXRlQWx0ZXJuYXRlLCQuZGF0ZXBpY2tlci5fdXBkYXRlQWx0ZXJuYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2dldChlLCJ0aW1lcGlja2VyIik7aWYodCl7dmFyIGk9dC5fZGVmYXVsdHMuYWx0RmllbGQ7aWYoaSl7dC5fZGVmYXVsdHMuYWx0Rm9ybWF0fHx0Ll9kZWZhdWx0cy5kYXRlRm9ybWF0O3ZhciBzPXRoaXMuX2dldERhdGUoZSksYT0kLmRhdGVwaWNrZXIuX2dldEZvcm1hdENvbmZpZyhlKSxuPSIiLHI9dC5fZGVmYXVsdHMuYWx0U2VwYXJhdG9yP3QuX2RlZmF1bHRzLmFsdFNlcGFyYXRvcjp0Ll9kZWZhdWx0cy5zZXBhcmF0b3IsbD10Ll9kZWZhdWx0cy5hbHRUaW1lU3VmZml4P3QuX2RlZmF1bHRzLmFsdFRpbWVTdWZmaXg6dC5fZGVmYXVsdHMudGltZVN1ZmZpeCxvPW51bGwhPT10Ll9kZWZhdWx0cy5hbHRUaW1lRm9ybWF0P3QuX2RlZmF1bHRzLmFsdFRpbWVGb3JtYXQ6dC5fZGVmYXVsdHMudGltZUZvcm1hdDtuKz0kLmRhdGVwaWNrZXIuZm9ybWF0VGltZShvLHQsdC5fZGVmYXVsdHMpK2wsdC5fZGVmYXVsdHMudGltZU9ubHl8fHQuX2RlZmF1bHRzLmFsdEZpZWxkVGltZU9ubHl8fChuPXQuX2RlZmF1bHRzLmFsdEZvcm1hdD8kLmRhdGVwaWNrZXIuZm9ybWF0RGF0ZSh0Ll9kZWZhdWx0cy5hbHRGb3JtYXQsbnVsbD09PXM/bmV3IERhdGU6cyxhKStyK246dC5mb3JtYXR0ZWREYXRlK3IrbiksJChpKS52YWwobil9fWVsc2UgJC5kYXRlcGlja2VyLl9iYXNlX3VwZGF0ZUFsdGVybmF0ZShlKX0sJC5kYXRlcGlja2VyLl9iYXNlX2RvS2V5VXA9JC5kYXRlcGlja2VyLl9kb0tleVVwLCQuZGF0ZXBpY2tlci5fZG9LZXlVcD1mdW5jdGlvbihlKXt2YXIgdD0kLmRhdGVwaWNrZXIuX2dldEluc3QoZS50YXJnZXQpLGk9JC5kYXRlcGlja2VyLl9nZXQodCwidGltZXBpY2tlciIpO2lmKGkmJmkuX2RlZmF1bHRzLnRpbWVPbmx5JiZ0LmlucHV0LnZhbCgpIT10Lmxhc3RWYWwpdHJ5eyQuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlcih0KX1jYXRjaChlKXskLmRhdGVwaWNrZXIubG9nKGUpfXJldHVybiAkLmRhdGVwaWNrZXIuX2Jhc2VfZG9LZXlVcChlKX0sJC5kYXRlcGlja2VyLl9iYXNlX2dvdG9Ub2RheT0kLmRhdGVwaWNrZXIuX2dvdG9Ub2RheSwkLmRhdGVwaWNrZXIuX2dvdG9Ub2RheT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9nZXRJbnN0KCQoZSlbMF0pLGk9dC5kcERpdjt0aGlzLl9iYXNlX2dvdG9Ub2RheShlKTt2YXIgcz10aGlzLl9nZXQodCwidGltZXBpY2tlciIpO3NlbGVjdExvY2FsVGltZVpvbmUocyk7dmFyIGE9bmV3IERhdGU7dGhpcy5fc2V0VGltZSh0LGEpLCQoIi51aS1kYXRlcGlja2VyLXRvZGF5IixpKS5jbGljaygpfSwkLmRhdGVwaWNrZXIuX2Rpc2FibGVUaW1lcGlja2VyRGF0ZXBpY2tlcj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9nZXRJbnN0KGUpO2lmKHQpe3ZhciBpPXRoaXMuX2dldCh0LCJ0aW1lcGlja2VyIik7JChlKS5kYXRlcGlja2VyKCJnZXREYXRlIiksaSYmKGkuX2RlZmF1bHRzLnNob3dUaW1lcGlja2VyPSExLGkuX3VwZGF0ZURhdGVUaW1lKHQpKX19LCQuZGF0ZXBpY2tlci5fZW5hYmxlVGltZXBpY2tlckRhdGVwaWNrZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZ2V0SW5zdChlKTtpZih0KXt2YXIgaT10aGlzLl9nZXQodCwidGltZXBpY2tlciIpOyQoZSkuZGF0ZXBpY2tlcigiZ2V0RGF0ZSIpLGkmJihpLl9kZWZhdWx0cy5zaG93VGltZXBpY2tlcj0hMCxpLl9hZGRUaW1lUGlja2VyKHQpLGkuX3VwZGF0ZURhdGVUaW1lKHQpKX19LCQuZGF0ZXBpY2tlci5fc2V0VGltZT1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuX2dldChlLCJ0aW1lcGlja2VyIik7aWYoaSl7dmFyIHM9aS5fZGVmYXVsdHM7aS5ob3VyPXQ/dC5nZXRIb3VycygpOnMuaG91cixpLm1pbnV0ZT10P3QuZ2V0TWludXRlcygpOnMubWludXRlLGkuc2Vjb25kPXQ/dC5nZXRTZWNvbmRzKCk6cy5zZWNvbmQsaS5taWxsaXNlYz10P3QuZ2V0TWlsbGlzZWNvbmRzKCk6cy5taWxsaXNlYyxpLl9saW1pdE1pbk1heERhdGVUaW1lKGUsITApLGkuX29uVGltZUNoYW5nZSgpLGkuX3VwZGF0ZURhdGVUaW1lKGUpfX0sJC5kYXRlcGlja2VyLl9zZXRUaW1lRGF0ZXBpY2tlcj1mdW5jdGlvbihlLHQsaSl7dmFyIHM9dGhpcy5fZ2V0SW5zdChlKTtpZihzKXt2YXIgYSxuPXRoaXMuX2dldChzLCJ0aW1lcGlja2VyIik7aWYobil0aGlzLl9zZXREYXRlRnJvbUZpZWxkKHMpLHQmJigic3RyaW5nIj09dHlwZW9mIHQ/KG4uX3BhcnNlVGltZSh0LGkpLChhPW5ldyBEYXRlKS5zZXRIb3VycyhuLmhvdXIsbi5taW51dGUsbi5zZWNvbmQsbi5taWxsaXNlYykpOmE9bmV3IERhdGUodC5nZXRUaW1lKCkpLCJJbnZhbGlkIERhdGUiPT1hLnRvU3RyaW5nKCkmJihhPXZvaWQgMCksdGhpcy5fc2V0VGltZShzLGEpKX19LCQuZGF0ZXBpY2tlci5fYmFzZV9zZXREYXRlRGF0ZXBpY2tlcj0kLmRhdGVwaWNrZXIuX3NldERhdGVEYXRlcGlja2VyLCQuZGF0ZXBpY2tlci5fc2V0RGF0ZURhdGVwaWNrZXI9ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLl9nZXRJbnN0KGUpO2lmKGkpe3ZhciBzPXQgaW5zdGFuY2VvZiBEYXRlP25ldyBEYXRlKHQuZ2V0VGltZSgpKTp0O3RoaXMuX3VwZGF0ZURhdGVwaWNrZXIoaSksdGhpcy5fYmFzZV9zZXREYXRlRGF0ZXBpY2tlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fc2V0VGltZURhdGVwaWNrZXIoZSxzLCEwKX19LCQuZGF0ZXBpY2tlci5fYmFzZV9nZXREYXRlRGF0ZXBpY2tlcj0kLmRhdGVwaWNrZXIuX2dldERhdGVEYXRlcGlja2VyLCQuZGF0ZXBpY2tlci5fZ2V0RGF0ZURhdGVwaWNrZXI9ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLl9nZXRJbnN0KGUpO2lmKGkpe3ZhciBzPXRoaXMuX2dldChpLCJ0aW1lcGlja2VyIik7aWYocyl7dm9pZCAwPT09aS5sYXN0VmFsJiZ0aGlzLl9zZXREYXRlRnJvbUZpZWxkKGksdCk7dmFyIGE9dGhpcy5fZ2V0RGF0ZShpKTtyZXR1cm4gYSYmcy5fcGFyc2VUaW1lKCQoZSkudmFsKCkscy50aW1lT25seSkmJmEuc2V0SG91cnMocy5ob3VyLHMubWludXRlLHMuc2Vjb25kLHMubWlsbGlzZWMpLGF9cmV0dXJuIHRoaXMuX2Jhc2VfZ2V0RGF0ZURhdGVwaWNrZXIoZSx0KX19LCQuZGF0ZXBpY2tlci5fYmFzZV9wYXJzZURhdGU9JC5kYXRlcGlja2VyLnBhcnNlRGF0ZSwkLmRhdGVwaWNrZXIucGFyc2VEYXRlPWZ1bmN0aW9uKGUsdCxpKXt2YXIgczt0cnl7cz10aGlzLl9iYXNlX3BhcnNlRGF0ZShlLHQsaSl9Y2F0Y2goYSl7cz10aGlzLl9iYXNlX3BhcnNlRGF0ZShlLHQuc3Vic3RyaW5nKDAsdC5sZW5ndGgtKGEubGVuZ3RoLWEuaW5kZXhPZigiOiIpLTIpKSxpKSwkLmRhdGVwaWNrZXIubG9nKCJFcnJvciBwYXJzaW5nIHRoZSBkYXRlIHN0cmluZzogIithKyJcbmRhdGUgc3RyaW5nID0gIit0KyJcbmRhdGUgZm9ybWF0ID0gIitlKX1yZXR1cm4gc30sJC5kYXRlcGlja2VyLl9iYXNlX2Zvcm1hdERhdGU9JC5kYXRlcGlja2VyLl9mb3JtYXREYXRlLCQuZGF0ZXBpY2tlci5fZm9ybWF0RGF0ZT1mdW5jdGlvbihlLHQsaSxzKXt2YXIgYT10aGlzLl9nZXQoZSwidGltZXBpY2tlciIpO3JldHVybiBhPyhhLl91cGRhdGVEYXRlVGltZShlKSxhLiRpbnB1dC52YWwoKSk6dGhpcy5fYmFzZV9mb3JtYXREYXRlKGUpfSwkLmRhdGVwaWNrZXIuX2Jhc2Vfb3B0aW9uRGF0ZXBpY2tlcj0kLmRhdGVwaWNrZXIuX29wdGlvbkRhdGVwaWNrZXIsJC5kYXRlcGlja2VyLl9vcHRpb25EYXRlcGlja2VyPWZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxhPXRoaXMuX2dldEluc3QoZSk7aWYoIWEpcmV0dXJuIG51bGw7dmFyIG49dGhpcy5fZ2V0KGEsInRpbWVwaWNrZXIiKTtpZihuKXt2YXIgcixsPW51bGwsbz1udWxsLHU9bnVsbCxkPW4uX2RlZmF1bHRzLmV2bnRzLG09e307aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZigibWluRGF0ZSI9PT10fHwibWluRGF0ZVRpbWUiPT09dClsPWk7ZWxzZSBpZigibWF4RGF0ZSI9PT10fHwibWF4RGF0ZVRpbWUiPT09dClvPWk7ZWxzZSBpZigib25TZWxlY3QiPT09dCl1PWk7ZWxzZSBpZihkLmhhc093blByb3BlcnR5KHQpKXtpZih2b2lkIDA9PT1pKXJldHVybiBkW3RdO21bdF09aSxzPXt9fX1lbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgdClmb3IociBpbiB0Lm1pbkRhdGU/bD10Lm1pbkRhdGU6dC5taW5EYXRlVGltZT9sPXQubWluRGF0ZVRpbWU6dC5tYXhEYXRlP289dC5tYXhEYXRlOnQubWF4RGF0ZVRpbWUmJihvPXQubWF4RGF0ZVRpbWUpLGQpZC5oYXNPd25Qcm9wZXJ0eShyKSYmdFtyXSYmKG1bcl09dFtyXSk7Zm9yKHIgaW4gbSltLmhhc093blByb3BlcnR5KHIpJiYoZFtyXT1tW3JdLHN8fChzPSQuZXh0ZW5kKHt9LHQpKSxkZWxldGUgc1tyXSk7aWYocyYmaXNFbXB0eU9iamVjdChzKSlyZXR1cm47bD8obD0wPT09bD9uZXcgRGF0ZTpuZXcgRGF0ZShsKSxuLl9kZWZhdWx0cy5taW5EYXRlPWwsbi5fZGVmYXVsdHMubWluRGF0ZVRpbWU9bCk6bz8obz0wPT09bz9uZXcgRGF0ZTpuZXcgRGF0ZShvKSxuLl9kZWZhdWx0cy5tYXhEYXRlPW8sbi5fZGVmYXVsdHMubWF4RGF0ZVRpbWU9byk6dSYmKG4uX2RlZmF1bHRzLm9uU2VsZWN0PXUpfXJldHVybiB2b2lkIDA9PT1pP3RoaXMuX2Jhc2Vfb3B0aW9uRGF0ZXBpY2tlci5jYWxsKCQuZGF0ZXBpY2tlcixlLHQpOnRoaXMuX2Jhc2Vfb3B0aW9uRGF0ZXBpY2tlci5jYWxsKCQuZGF0ZXBpY2tlcixlLHN8fHQsaSl9O3ZhciBpc0VtcHR5T2JqZWN0PWZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4hMTtyZXR1cm4hMH0sZXh0ZW5kUmVtb3ZlPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpIGluICQuZXh0ZW5kKGUsdCksdCludWxsIT09dFtpXSYmdm9pZCAwIT09dFtpXXx8KGVbaV09dFtpXSk7cmV0dXJuIGV9LHVzZUFtcG09ZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1lLmluZGV4T2YoInQiKSYmLTEhPT1lLmluZGV4T2YoImgiKX0sY29udmVydDI0dG8xMj1mdW5jdGlvbihlKXtyZXR1cm4gZT4xMiYmKGUtPTEyKSwwPT1lJiYoZT0xMiksU3RyaW5nKGUpfSxzcGxpdERhdGVUaW1lPWZ1bmN0aW9uKGUsdCxpLHMpe3RyeXt2YXIgYT1zJiZzLnNlcGFyYXRvcj9zLnNlcGFyYXRvcjokLnRpbWVwaWNrZXIuX2RlZmF1bHRzLnNlcGFyYXRvcixuPShzJiZzLnRpbWVGb3JtYXQ/cy50aW1lRm9ybWF0OiQudGltZXBpY2tlci5fZGVmYXVsdHMudGltZUZvcm1hdCkuc3BsaXQoYSkubGVuZ3RoLHI9dC5zcGxpdChhKSxsPXIubGVuZ3RoO2lmKGw+MSlyZXR1cm5bci5zcGxpY2UoMCxsLW4pLmpvaW4oYSksci5zcGxpY2UoMCxuKS5qb2luKGEpXX1jYXRjaChpKXtpZigkLmRhdGVwaWNrZXIubG9nKCJDb3VsZCBub3Qgc3BsaXQgdGhlIGRhdGUgZnJvbSB0aGUgdGltZS4gUGxlYXNlIGNoZWNrIHRoZSBmb2xsb3dpbmcgZGF0ZXRpbWVwaWNrZXIgb3B0aW9uc1xudGhyb3duIGVycm9yOiAiK2krIlxuZGF0ZVRpbWVTdHJpbmciK3QrIlxuZGF0ZUZvcm1hdCA9ICIrZSsiXG5zZXBhcmF0b3IgPSAiK3Muc2VwYXJhdG9yKyJcbnRpbWVGb3JtYXQgPSAiK3MudGltZUZvcm1hdCksaS5pbmRleE9mKCI6Iik+PTApe3ZhciBvPXQubGVuZ3RoLShpLmxlbmd0aC1pLmluZGV4T2YoIjoiKS0yKTt0LnN1YnN0cmluZyhvKTtyZXR1cm5bJC50cmltKHQuc3Vic3RyaW5nKDAsbykpLCQudHJpbSh0LnN1YnN0cmluZyhvKSldfXRocm93IGl9cmV0dXJuW3QsIiJdfSxwYXJzZURhdGVUaW1lSW50ZXJuYWw9ZnVuY3Rpb24oZSx0LGkscyxhKXt2YXIgbixyPXNwbGl0RGF0ZVRpbWUoZSxpLHMsYSk7aWYobj0kLmRhdGVwaWNrZXIuX2Jhc2VfcGFyc2VEYXRlKGUsclswXSxzKSwiIiE9PXJbMV0pe3ZhciBsPXJbMV0sbz0kLmRhdGVwaWNrZXIucGFyc2VUaW1lKHQsbCxhKTtpZihudWxsPT09byl0aHJvdyJXcm9uZyB0aW1lIGZvcm1hdCI7cmV0dXJue2RhdGU6bix0aW1lT2JqOm99fXJldHVybntkYXRlOm59fSxzZWxlY3RMb2NhbFRpbWVab25lPWZ1bmN0aW9uKGUsdCl7aWYoZSYmZS50aW1lem9uZV9zZWxlY3Qpe2UuX2RlZmF1bHRzLnVzZUxvY2FsVGltZXpvbmU9ITA7dmFyIGk9dm9pZCAwIT09dD90Om5ldyBEYXRlLHM9JC50aW1lcGlja2VyLnRpbWVab25lT2Zmc2V0U3RyaW5nKGkpO2UuX2RlZmF1bHRzLnRpbWV6b25lSXNvODYwMSYmKHM9cy5zdWJzdHJpbmcoMCwzKSsiOiIrcy5zdWJzdHJpbmcoMykpLGUudGltZXpvbmVfc2VsZWN0LnZhbChzKX19OyQudGltZXBpY2tlcj1uZXcgVGltZXBpY2tlciwkLnRpbWVwaWNrZXIudGltZVpvbmVPZmZzZXRTdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9LTEqZS5nZXRUaW1lem9uZU9mZnNldCgpLGk9dCU2MDtyZXR1cm4odD49MD8iKyI6Ii0iKSsoIjAiKygxMDEqKCh0LWkpLzYwKSkudG9TdHJpbmcoKSkuc3Vic3RyKC0yKSsoIjAiKygxMDEqaSkudG9TdHJpbmcoKSkuc3Vic3RyKC0yKX0sJC50aW1lcGlja2VyLnRpbWVSYW5nZT1mdW5jdGlvbihlLHQsaSl7cmV0dXJuICQudGltZXBpY2tlci5oYW5kbGVSYW5nZSgidGltZXBpY2tlciIsZSx0LGkpfSwkLnRpbWVwaWNrZXIuZGF0ZVRpbWVSYW5nZT1mdW5jdGlvbihlLHQsaSl7JC50aW1lcGlja2VyLmRhdGVSYW5nZShlLHQsaSwiZGF0ZXRpbWVwaWNrZXIiKX0sJC50aW1lcGlja2VyLmRhdGVSYW5nZT1mdW5jdGlvbihlLHQsaSxzKXtzPXN8fCJkYXRlcGlja2VyIiwkLnRpbWVwaWNrZXIuaGFuZGxlUmFuZ2UocyxlLHQsaSl9LCQudGltZXBpY2tlci5oYW5kbGVSYW5nZT1mdW5jdGlvbihlLHQsaSxzKXtmdW5jdGlvbiBhKGUscyxhKXtzLnZhbCgpJiZuZXcgRGF0ZSh0LnZhbCgpKT5uZXcgRGF0ZShpLnZhbCgpKSYmcy52YWwoYSl9ZnVuY3Rpb24gbih0LGkscyl7aWYoJCh0KS52YWwoKSl7dmFyIGE9JCh0KVtlXS5jYWxsKCQodCksImdldERhdGUiKTthLmdldFRpbWUmJiQoaSlbZV0uY2FsbCgkKGkpLCJvcHRpb24iLHMsYSl9fXJldHVybiAkLmZuW2VdLmNhbGwodCwkLmV4dGVuZCh7b25DbG9zZTpmdW5jdGlvbihlLHQpe2EodGhpcyxpLGUpfSxvblNlbGVjdDpmdW5jdGlvbihlKXtuKHRoaXMsaSwibWluRGF0ZSIpfX0scyxzLnN0YXJ0KSksJC5mbltlXS5jYWxsKGksJC5leHRlbmQoe29uQ2xvc2U6ZnVuY3Rpb24oZSxpKXthKHRoaXMsdCxlKX0sb25TZWxlY3Q6ZnVuY3Rpb24oZSl7bih0aGlzLHQsIm1heERhdGUiKX19LHMscy5lbmQpKSwidGltZXBpY2tlciIhPWUmJnMucmVmb3JtYXQmJiQoW3QsaV0pLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9JCh0aGlzKVtlXS5jYWxsKCQodGhpcyksIm9wdGlvbiIsImRhdGVGb3JtYXQiKSxpPW5ldyBEYXRlKCQodGhpcykudmFsKCkpOyQodGhpcykudmFsKCkmJmkmJiQodGhpcykudmFsKCQuZGF0ZXBpY2tlci5mb3JtYXREYXRlKHQsaSkpfSkpLGEodCxpLHQudmFsKCkpLG4odCxpLCJtaW5EYXRlIiksbihpLHQsIm1heERhdGUiKSwkKFt0LmdldCgwKSxpLmdldCgwKV0pfSwkLnRpbWVwaWNrZXIudmVyc2lvbj0iMS4xLjEifWZ1bmN0aW9uIFRpbWVwaWNrZXIoKXt0aGlzLnJlZ2lvbmFsPVtdLHRoaXMucmVnaW9uYWxbIiJdPXtjdXJyZW50VGV4dDoiTm93IixjbG9zZVRleHQ6IkRvbmUiLGFtTmFtZXM6WyJBTSIsIkEiXSxwbU5hbWVzOlsiUE0iLCJQIl0sdGltZUZvcm1hdDoiSEg6bW0iLHRpbWVTdWZmaXg6IiIsdGltZU9ubHlUaXRsZToiQ2hvb3NlIFRpbWUiLHRpbWVUZXh0OiJUaW1lIixob3VyVGV4dDoiSG91ciIsbWludXRlVGV4dDoiTWludXRlIixzZWNvbmRUZXh0OiJTZWNvbmQiLG1pbGxpc2VjVGV4dDoiTWlsbGlzZWNvbmQiLHRpbWV6b25lVGV4dDoiVGltZSBab25lIixpc1JUTDohMX0sdGhpcy5fZGVmYXVsdHM9e3Nob3dCdXR0b25QYW5lbDohMCx0aW1lT25seTohMSxzaG93SG91cjohMCxzaG93TWludXRlOiEwLHNob3dTZWNvbmQ6ITEsc2hvd01pbGxpc2VjOiExLHNob3dUaW1lem9uZTohMSxzaG93VGltZTohMCxzdGVwSG91cjoxLHN0ZXBNaW51dGU6MSxzdGVwU2Vjb25kOjEsc3RlcE1pbGxpc2VjOjEsaG91cjowLG1pbnV0ZTowLHNlY29uZDowLG1pbGxpc2VjOjAsdGltZXpvbmU6bnVsbCx1c2VMb2NhbFRpbWV6b25lOiExLGRlZmF1bHRUaW1lem9uZToiKzAwMDAiLGhvdXJNaW46MCxtaW51dGVNaW46MCxzZWNvbmRNaW46MCxtaWxsaXNlY01pbjowLGhvdXJNYXg6MjMsbWludXRlTWF4OjU5LHNlY29uZE1heDo1OSxtaWxsaXNlY01heDo5OTksbWluRGF0ZVRpbWU6bnVsbCxtYXhEYXRlVGltZTpudWxsLG9uU2VsZWN0Om51bGwsaG91ckdyaWQ6MCxtaW51dGVHcmlkOjAsc2Vjb25kR3JpZDowLG1pbGxpc2VjR3JpZDowLGFsd2F5c1NldFRpbWU6ITAsc2VwYXJhdG9yOiIgIixhbHRGaWVsZFRpbWVPbmx5OiEwLGFsdFRpbWVGb3JtYXQ6bnVsbCxhbHRTZXBhcmF0b3I6bnVsbCxhbHRUaW1lU3VmZml4Om51bGwscGlja2VyVGltZUZvcm1hdDpudWxsLHBpY2tlclRpbWVTdWZmaXg6bnVsbCxzaG93VGltZXBpY2tlcjohMCx0aW1lem9uZUlzbzg2MDE6ITEsdGltZXpvbmVMaXN0Om51bGwsYWRkU2xpZGVyQWNjZXNzOiExLHNsaWRlckFjY2Vzc0FyZ3M6bnVsbCxjb250cm9sVHlwZToic2xpZGVyIixkZWZhdWx0VmFsdWU6bnVsbCxwYXJzZToic3RyaWN0In0sJC5leHRlbmQodGhpcy5fZGVmYXVsdHMsdGhpcy5yZWdpb25hbFsiIl0pfX0pKGpRdWVyeSk7DQoNCg0KDQovKiANCiAqICBEcm9wem9uZSAtIGNvcHlyaWdodCAoYykgMjAyMSBNYXRpYXMgTWVubyA8bUB0aWFzLm1lPiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiANCiAqICB3d3cuZHJvcHpvbmUuZGV2L2pzDQogKi8NCiFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lLmRlZmF1bHQ6ZX1mdW5jdGlvbiB0KGUpe2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZX1mdW5jdGlvbiBpKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbihlLHQpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbj10W2ldO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbi5rZXksbil9fWZ1bmN0aW9uIHIoZSx0LGkpe3JldHVybiB0JiZuKGUucHJvdG90eXBlLHQpLGkmJm4oZSxpKSxlfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0sYShlKX1mdW5jdGlvbiBvKGUsdCl7cmV0dXJuIG89T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9LG8oZSx0KX1mdW5jdGlvbiBsKGUsdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHQmJm8oZSx0KX1mdW5jdGlvbiBzKGUsaSl7cmV0dXJuIWl8fCJvYmplY3QiIT0oKG49aSkmJm4uY29uc3RydWN0b3I9PT1TeW1ib2w/InN5bWJvbCI6dHlwZW9mIG4pJiYiZnVuY3Rpb24iIT10eXBlb2YgaT90KGUpOmk7dmFyIG59dmFyIHU7ZnVuY3Rpb24gYyhlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKXx8IltvYmplY3QgT2JqZWN0XSI9PXt9LnRvU3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24gZChlKXtyZXR1cm4hZXx8Im9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZX11PWZ1bmN0aW9uIGUoKXt2YXIgdD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyksaT0hMTsiYm9vbGVhbiI9PXR5cGVvZiB0WzBdJiYoaT10LnNoaWZ0KCkpO3ZhciBuPXRbMF07aWYoZChuKSl0aHJvdyBuZXcgRXJyb3IoImV4dGVuZGVlIG11c3QgYmUgYW4gb2JqZWN0Iik7Zm9yKHZhciByPXQuc2xpY2UoMSksYT1yLmxlbmd0aCxvPTA7bzxhO28rKyl7dmFyIGw9cltvXTtmb3IodmFyIHMgaW4gbClpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobCxzKSl7dmFyIHU9bFtzXTtpZihpJiZjKHUpKXt2YXIgaD1BcnJheS5pc0FycmF5KHUpP1tdOnt9O25bc109ZSghMCxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixzKSYmIWQobltzXSk/bltzXTpoLHUpfWVsc2UgbltzXT11fX1yZXR1cm4gbn07dmFyIGg9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSgpe2kodGhpcyxlKX1yZXR1cm4gcihlLFt7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sdGhpcy5fY2FsbGJhY2tzW2VdfHwodGhpcy5fY2FsbGJhY2tzW2VdPVtdKSx0aGlzLl9jYWxsYmFja3NbZV0ucHVzaCh0KSx0aGlzfX0se2tleToiZW1pdCIsdmFsdWU6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsaT1uZXcgQXJyYXkodD4xP3QtMTowKSxuPTE7bjx0O24rKylpW24tMV09YXJndW1lbnRzW25dO3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9O3ZhciByPXRoaXMuX2NhbGxiYWNrc1tlXSxhPSEwLG89ITEsbD12b2lkIDA7aWYocil0cnl7Zm9yKHZhciBzLHU9cltTeW1ib2wuaXRlcmF0b3JdKCk7IShhPShzPXUubmV4dCgpKS5kb25lKTthPSEwKXt2YXIgYz1zLnZhbHVlO2MuYXBwbHkodGhpcyxpKX19Y2F0Y2goZSl7bz0hMCxsPWV9ZmluYWxseXt0cnl7YXx8bnVsbD09dS5yZXR1cm58fHUucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IGx9fXJldHVybiB0aGlzLmVsZW1lbnQmJnRoaXMuZWxlbWVudC5kaXNwYXRjaEV2ZW50KHRoaXMubWFrZUV2ZW50KCJkcm9wem9uZToiK2Use2FyZ3M6aX0pKSx0aGlzfX0se2tleToibWFrZUV2ZW50Iix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBpPXtidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsZGV0YWlsOnR9O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZlbnQpcmV0dXJuIG5ldyBDdXN0b21FdmVudChlLGkpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJDdXN0b21FdmVudCIpO3JldHVybiBuLmluaXRDdXN0b21FdmVudChlLGkuYnViYmxlcyxpLmNhbmNlbGFibGUsaS5kZXRhaWwpLG59fSx7a2V5OiJvZmYiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7aWYoIXRoaXMuX2NhbGxiYWNrc3x8MD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX2NhbGxiYWNrcz17fSx0aGlzO3ZhciBpPXRoaXMuX2NhbGxiYWNrc1tlXTtpZighaSlyZXR1cm4gdGhpcztpZigxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1tlXSx0aGlzO2Zvcih2YXIgbj0wO248aS5sZW5ndGg7bisrKXt2YXIgcj1pW25dO2lmKHI9PT10KXtpLnNwbGljZShuLDEpO2JyZWFrfX1yZXR1cm4gdGhpc319XSksZX0oKTt2YXIgcD17dXJsOm51bGwsbWV0aG9kOiJwb3N0Iix3aXRoQ3JlZGVudGlhbHM6ITEsdGltZW91dDpudWxsLHBhcmFsbGVsVXBsb2FkczoyLHVwbG9hZE11bHRpcGxlOiExLGNodW5raW5nOiExLGZvcmNlQ2h1bmtpbmc6ITEsY2h1bmtTaXplOjIwOTcxNTIscGFyYWxsZWxDaHVua1VwbG9hZHM6ITEscmV0cnlDaHVua3M6ITEscmV0cnlDaHVua3NMaW1pdDozLG1heEZpbGVzaXplOjI1NixwYXJhbU5hbWU6ImZpbGUiLGNyZWF0ZUltYWdlVGh1bWJuYWlsczohMCxtYXhUaHVtYm5haWxGaWxlc2l6ZToxMCx0aHVtYm5haWxXaWR0aDoxMjAsdGh1bWJuYWlsSGVpZ2h0OjEyMCx0aHVtYm5haWxNZXRob2Q6ImNyb3AiLHJlc2l6ZVdpZHRoOm51bGwscmVzaXplSGVpZ2h0Om51bGwscmVzaXplTWltZVR5cGU6bnVsbCxyZXNpemVRdWFsaXR5Oi44LHJlc2l6ZU1ldGhvZDoiY29udGFpbiIsZmlsZXNpemVCYXNlOjFlMyxtYXhGaWxlczpudWxsLGhlYWRlcnM6bnVsbCxkZWZhdWx0SGVhZGVyczohMCxjbGlja2FibGU6ITAsaWdub3JlSGlkZGVuRmlsZXM6ITAsYWNjZXB0ZWRGaWxlczpudWxsLGFjY2VwdGVkTWltZVR5cGVzOm51bGwsYXV0b1Byb2Nlc3NRdWV1ZTohMCxhdXRvUXVldWU6ITAsYWRkUmVtb3ZlTGlua3M6ITEscHJldmlld3NDb250YWluZXI6bnVsbCxkaXNhYmxlUHJldmlld3M6ITEsaGlkZGVuSW5wdXRDb250YWluZXI6ImJvZHkiLGNhcHR1cmU6bnVsbCxyZW5hbWVGaWxlbmFtZTpudWxsLHJlbmFtZUZpbGU6bnVsbCxmb3JjZUZhbGxiYWNrOiExLGRpY3REZWZhdWx0TWVzc2FnZToiRHJvcCBmaWxlcyBoZXJlIHRvIHVwbG9hZCIsZGljdEZhbGxiYWNrTWVzc2FnZToiWW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZHJhZyduJ2Ryb3AgZmlsZSB1cGxvYWRzLiIsZGljdEZhbGxiYWNrVGV4dDoiUGxlYXNlIHVzZSB0aGUgZmFsbGJhY2sgZm9ybSBiZWxvdyB0byB1cGxvYWQgeW91ciBmaWxlcyBsaWtlIGluIHRoZSBvbGRlbiBkYXlzLiIsZGljdEZpbGVUb29CaWc6IkZpbGUgaXMgdG9vIGJpZyAoe3tmaWxlc2l6ZX19TWlCKS4gTWF4IGZpbGVzaXplOiB7e21heEZpbGVzaXplfX1NaUIuIixkaWN0SW52YWxpZEZpbGVUeXBlOiJZb3UgY2FuJ3QgdXBsb2FkIGZpbGVzIG9mIHRoaXMgdHlwZS4iLGRpY3RSZXNwb25zZUVycm9yOiJTZXJ2ZXIgcmVzcG9uZGVkIHdpdGgge3tzdGF0dXNDb2RlfX0gY29kZS4iLGRpY3RDYW5jZWxVcGxvYWQ6IkNhbmNlbCB1cGxvYWQiLGRpY3RVcGxvYWRDYW5jZWxlZDoiVXBsb2FkIGNhbmNlbGVkLiIsZGljdENhbmNlbFVwbG9hZENvbmZpcm1hdGlvbjoiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNhbmNlbCB0aGlzIHVwbG9hZD8iLGRpY3RSZW1vdmVGaWxlOiJSZW1vdmUgZmlsZSIsZGljdFJlbW92ZUZpbGVDb25maXJtYXRpb246bnVsbCxkaWN0TWF4RmlsZXNFeGNlZWRlZDoiWW91IGNhbiBub3QgdXBsb2FkIGFueSBtb3JlIGZpbGVzLiIsZGljdEZpbGVTaXplVW5pdHM6e3RiOiJUQiIsZ2I6IkdCIixtYjoiTUIiLGtiOiJLQiIsYjoiYiJ9LGluaXQ6ZnVuY3Rpb24oKXt9LHBhcmFtczpmdW5jdGlvbihlLHQsaSl7aWYoaSlyZXR1cm57ZHp1dWlkOmkuZmlsZS51cGxvYWQudXVpZCxkemNodW5raW5kZXg6aS5pbmRleCxkenRvdGFsZmlsZXNpemU6aS5maWxlLnNpemUsZHpjaHVua3NpemU6dGhpcy5vcHRpb25zLmNodW5rU2l6ZSxkenRvdGFsY2h1bmtjb3VudDppLmZpbGUudXBsb2FkLnRvdGFsQ2h1bmtDb3VudCxkemNodW5rYnl0ZW9mZnNldDppLmluZGV4KnRoaXMub3B0aW9ucy5jaHVua1NpemV9fSxhY2NlcHQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCgpfSxjaHVua3NVcGxvYWRlZDpmdW5jdGlvbihlLHQpe3QoKX0sYmluYXJ5Qm9keTohMSxmYWxsYmFjazpmdW5jdGlvbigpe3ZhciBlO3RoaXMuZWxlbWVudC5jbGFzc05hbWU9IiIuY29uY2F0KHRoaXMuZWxlbWVudC5jbGFzc05hbWUsIiBkei1icm93c2VyLW5vdC1zdXBwb3J0ZWQiKTt2YXIgdD0hMCxpPSExLG49dm9pZCAwO3RyeXtmb3IodmFyIHIsYT10aGlzLmVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KHI9YS5uZXh0KCkpLmRvbmUpO3Q9ITApe3ZhciBvPXIudmFsdWU7aWYoLyhefCApZHotbWVzc2FnZSgkfCApLy50ZXN0KG8uY2xhc3NOYW1lKSl7ZT1vLG8uY2xhc3NOYW1lPSJkei1tZXNzYWdlIjticmVha319fWNhdGNoKGUpe2k9ITAsbj1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PWEucmV0dXJufHxhLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBufX1lfHwoZT1mLmNyZWF0ZUVsZW1lbnQoJzxkaXYgY2xhc3M9ImR6LW1lc3NhZ2UiPjxzcGFuPjwvc3Bhbj48L2Rpdj4nKSx0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZSkpO3ZhciBsPWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNwYW4iKVswXTtyZXR1cm4gbCYmKG51bGwhPWwudGV4dENvbnRlbnQ/bC50ZXh0Q29udGVudD10aGlzLm9wdGlvbnMuZGljdEZhbGxiYWNrTWVzc2FnZTpudWxsIT1sLmlubmVyVGV4dCYmKGwuaW5uZXJUZXh0PXRoaXMub3B0aW9ucy5kaWN0RmFsbGJhY2tNZXNzYWdlKSksdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZ2V0RmFsbGJhY2tGb3JtKCkpfSxyZXNpemU6ZnVuY3Rpb24oZSx0LGksbil7dmFyIHI9e3NyY1g6MCxzcmNZOjAsc3JjV2lkdGg6ZS53aWR0aCxzcmNIZWlnaHQ6ZS5oZWlnaHR9LGE9ZS53aWR0aC9lLmhlaWdodDtudWxsPT10JiZudWxsPT1pPyh0PXIuc3JjV2lkdGgsaT1yLnNyY0hlaWdodCk6bnVsbD09dD90PWkqYTpudWxsPT1pJiYoaT10L2EpO3ZhciBvPSh0PU1hdGgubWluKHQsci5zcmNXaWR0aCkpLyhpPU1hdGgubWluKGksci5zcmNIZWlnaHQpKTtpZihyLnNyY1dpZHRoPnR8fHIuc3JjSGVpZ2h0PmkpaWYoImNyb3AiPT09bilhPm8/KHIuc3JjSGVpZ2h0PWUuaGVpZ2h0LHIuc3JjV2lkdGg9ci5zcmNIZWlnaHQqbyk6KHIuc3JjV2lkdGg9ZS53aWR0aCxyLnNyY0hlaWdodD1yLnNyY1dpZHRoL28pO2Vsc2V7aWYoImNvbnRhaW4iIT09bil0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcmVzaXplTWV0aG9kICciLmNvbmNhdChuLCInIikpO2E+bz9pPXQvYTp0PWkqYX1yZXR1cm4gci5zcmNYPShlLndpZHRoLXIuc3JjV2lkdGgpLzIsci5zcmNZPShlLmhlaWdodC1yLnNyY0hlaWdodCkvMixyLnRyZ1dpZHRoPXQsci50cmdIZWlnaHQ9aSxyfSx0cmFuc2Zvcm1GaWxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKHRoaXMub3B0aW9ucy5yZXNpemVXaWR0aHx8dGhpcy5vcHRpb25zLnJlc2l6ZUhlaWdodCkmJmUudHlwZS5tYXRjaCgvaW1hZ2UuKi8pP3RoaXMucmVzaXplSW1hZ2UoZSx0aGlzLm9wdGlvbnMucmVzaXplV2lkdGgsdGhpcy5vcHRpb25zLnJlc2l6ZUhlaWdodCx0aGlzLm9wdGlvbnMucmVzaXplTWV0aG9kLHQpOnQoZSl9LHByZXZpZXdUZW1wbGF0ZTplKCc8ZGl2IGNsYXNzPSJkei1maWxlLXByZXZpZXcgZHotcHJldmlldyI+IDxkaXYgY2xhc3M9ImR6LWltYWdlIj48aW1nIGRhdGEtZHotdGh1bWJuYWlsPSIiPjwvZGl2PiA8ZGl2IGNsYXNzPSJkei1kZXRhaWxzIj4gPGRpdiBjbGFzcz0iZHotc2l6ZSI+PHNwYW4gZGF0YS1kei1zaXplPSIiPjwvc3Bhbj48L2Rpdj4gPGRpdiBjbGFzcz0iZHotZmlsZW5hbWUiPjxzcGFuIGRhdGEtZHotbmFtZT0iIj48L3NwYW4+PC9kaXY+IDwvZGl2PiA8ZGl2IGNsYXNzPSJkei1wcm9ncmVzcyI+IDxzcGFuIGNsYXNzPSJkei11cGxvYWQiIGRhdGEtZHotdXBsb2FkcHJvZ3Jlc3M9IiI+PC9zcGFuPiA8L2Rpdj4gPGRpdiBjbGFzcz0iZHotZXJyb3ItbWVzc2FnZSI+PHNwYW4gZGF0YS1kei1lcnJvcm1lc3NhZ2U9IiI+PC9zcGFuPjwvZGl2PiA8ZGl2IGNsYXNzPSJkei1zdWNjZXNzLW1hcmsiPiA8c3ZnIHdpZHRoPSI1NCIgaGVpZ2h0PSI1NCIgZmlsbD0iI2ZmZiI+PHBhdGggZD0ibTEwLjIwNyAyOS43OTMgNC4wODYtNC4wODZhMSAxIDAgMCAxIDEuNDE0IDBsNS41ODYgNS41ODZhMSAxIDAgMCAwIDEuNDE0IDBsMTUuNTg2LTE1LjU4NmExIDEgMCAwIDEgMS40MTQgMGw0LjA4NiA0LjA4NmExIDEgMCAwIDEgMCAxLjQxNEwyMi43MDcgNDIuMjkzYTEgMSAwIDAgMS0xLjQxNCAwTDEwLjIwNyAzMS4yMDdhMSAxIDAgMCAxIDAtMS40MTRaIi8+PC9zdmc+IDwvZGl2PiA8ZGl2IGNsYXNzPSJkei1lcnJvci1tYXJrIj4gPHN2ZyB3aWR0aD0iNTQiIGhlaWdodD0iNTQiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Im0yNi4yOTMgMjAuMjkzLTcuMDg2LTcuMDg2YTEgMSAwIDAgMC0xLjQxNCAwbC00LjU4NiA0LjU4NmExIDEgMCAwIDAgMCAxLjQxNGw3LjA4NiA3LjA4NmExIDEgMCAwIDEgMCAxLjQxNGwtNy4wODYgNy4wODZhMSAxIDAgMCAwIDAgMS40MTRsNC41ODYgNC41ODZhMSAxIDAgMCAwIDEuNDE0IDBsNy4wODYtNy4wODZhMSAxIDAgMCAxIDEuNDE0IDBsNy4wODYgNy4wODZhMSAxIDAgMCAwIDEuNDE0IDBsNC41ODYtNC41ODZhMSAxIDAgMCAwIDAtMS40MTRsLTcuMDg2LTcuMDg2YTEgMSAwIDAgMSAwLTEuNDE0bDcuMDg2LTcuMDg2YTEgMSAwIDAgMCAwLTEuNDE0bC00LjU4Ni00LjU4NmExIDEgMCAwIDAtMS40MTQgMGwtNy4wODYgNy4wODZhMSAxIDAgMCAxLTEuNDE0IDBaIi8+PC9zdmc+IDwvZGl2PiA8L2Rpdj4nKSxkcm9wOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiZHotZHJhZy1ob3ZlciIpfSxkcmFnc3RhcnQ6ZnVuY3Rpb24oZSl7fSxkcmFnZW5kOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiZHotZHJhZy1ob3ZlciIpfSxkcmFnZW50ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkei1kcmFnLWhvdmVyIil9LGRyYWdvdmVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZHotZHJhZy1ob3ZlciIpfSxkcmFnbGVhdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJkei1kcmFnLWhvdmVyIil9LHBhc3RlOmZ1bmN0aW9uKGUpe30scmVzZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImR6LXN0YXJ0ZWQiKX0sYWRkZWRmaWxlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZWxlbWVudD09PXRoaXMucHJldmlld3NDb250YWluZXImJnRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkei1zdGFydGVkIiksdGhpcy5wcmV2aWV3c0NvbnRhaW5lciYmIXRoaXMub3B0aW9ucy5kaXNhYmxlUHJldmlld3Mpe3ZhciB0PXRoaXM7ZS5wcmV2aWV3RWxlbWVudD1mLmNyZWF0ZUVsZW1lbnQodGhpcy5vcHRpb25zLnByZXZpZXdUZW1wbGF0ZS50cmltKCkpLGUucHJldmlld1RlbXBsYXRlPWUucHJldmlld0VsZW1lbnQsdGhpcy5wcmV2aWV3c0NvbnRhaW5lci5hcHBlbmRDaGlsZChlLnByZXZpZXdFbGVtZW50KTt2YXIgaT0hMCxuPSExLHI9dm9pZCAwO3RyeXtmb3IodmFyIGEsbz1lLnByZXZpZXdFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWR6LW5hbWVdIilbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0oYT1vLm5leHQoKSkuZG9uZSk7aT0hMCl7dmFyIGw9YS52YWx1ZTtsLnRleHRDb250ZW50PWUubmFtZX19Y2F0Y2goZSl7bj0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihuKXRocm93IHJ9fXZhciBzPSEwLHU9ITEsYz12b2lkIDA7dHJ5e2Zvcih2YXIgZCxoPWUucHJldmlld0VsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtZHotc2l6ZV0iKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShzPShkPWgubmV4dCgpKS5kb25lKTtzPSEwKShsPWQudmFsdWUpLmlubmVySFRNTD10aGlzLmZpbGVzaXplKGUuc2l6ZSl9Y2F0Y2goZSl7dT0hMCxjPWV9ZmluYWxseXt0cnl7c3x8bnVsbD09aC5yZXR1cm58fGgucmV0dXJuKCl9ZmluYWxseXtpZih1KXRocm93IGN9fXRoaXMub3B0aW9ucy5hZGRSZW1vdmVMaW5rcyYmKGUuX3JlbW92ZUxpbms9Zi5jcmVhdGVFbGVtZW50KCc8YSBjbGFzcz0iZHotcmVtb3ZlIiBocmVmPSJqYXZhc2NyaXB0OnVuZGVmaW5lZDsiIGRhdGEtZHotcmVtb3ZlPicuY29uY2F0KHRoaXMub3B0aW9ucy5kaWN0UmVtb3ZlRmlsZSwiPC9hPiIpKSxlLnByZXZpZXdFbGVtZW50LmFwcGVuZENoaWxkKGUuX3JlbW92ZUxpbmspKTt2YXIgcD1mdW5jdGlvbihpKXt2YXIgbj10O2lmKGkucHJldmVudERlZmF1bHQoKSxpLnN0b3BQcm9wYWdhdGlvbigpLGUuc3RhdHVzPT09Zi5VUExPQURJTkcpcmV0dXJuIGYuY29uZmlybSh0Lm9wdGlvbnMuZGljdENhbmNlbFVwbG9hZENvbmZpcm1hdGlvbiwoZnVuY3Rpb24oKXtyZXR1cm4gbi5yZW1vdmVGaWxlKGUpfSkpO3ZhciByPXQ7cmV0dXJuIHQub3B0aW9ucy5kaWN0UmVtb3ZlRmlsZUNvbmZpcm1hdGlvbj9mLmNvbmZpcm0odC5vcHRpb25zLmRpY3RSZW1vdmVGaWxlQ29uZmlybWF0aW9uLChmdW5jdGlvbigpe3JldHVybiByLnJlbW92ZUZpbGUoZSl9KSk6dC5yZW1vdmVGaWxlKGUpfSxtPSEwLHY9ITEseT12b2lkIDA7dHJ5e2Zvcih2YXIgZyxiPWUucHJldmlld0VsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtZHotcmVtb3ZlXSIpW1N5bWJvbC5pdGVyYXRvcl0oKTshKG09KGc9Yi5uZXh0KCkpLmRvbmUpO209ITApe2cudmFsdWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHApfX1jYXRjaChlKXt2PSEwLHk9ZX1maW5hbGx5e3RyeXttfHxudWxsPT1iLnJldHVybnx8Yi5yZXR1cm4oKX1maW5hbGx5e2lmKHYpdGhyb3cgeX19fX0scmVtb3ZlZGZpbGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUucHJldmlld0VsZW1lbnQmJm51bGwhPWUucHJldmlld0VsZW1lbnQucGFyZW50Tm9kZSYmZS5wcmV2aWV3RWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUucHJldmlld0VsZW1lbnQpLHRoaXMuX3VwZGF0ZU1heEZpbGVzUmVhY2hlZENsYXNzKCl9LHRodW1ibmFpbDpmdW5jdGlvbihlLHQpe2lmKGUucHJldmlld0VsZW1lbnQpe2UucHJldmlld0VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiZHotZmlsZS1wcmV2aWV3Iik7dmFyIGk9ITAsbj0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBhLG89ZS5wcmV2aWV3RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1kei10aHVtYm5haWxdIilbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0oYT1vLm5leHQoKSkuZG9uZSk7aT0hMCl7dmFyIGw9YS52YWx1ZTtsLmFsdD1lLm5hbWUsbC5zcmM9dH19Y2F0Y2goZSl7bj0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihuKXRocm93IHJ9fXJldHVybiBzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLnByZXZpZXdFbGVtZW50LmNsYXNzTGlzdC5hZGQoImR6LWltYWdlLXByZXZpZXciKX0pLDEpfX0sZXJyb3I6ZnVuY3Rpb24oZSx0KXtpZihlLnByZXZpZXdFbGVtZW50KXtlLnByZXZpZXdFbGVtZW50LmNsYXNzTGlzdC5hZGQoImR6LWVycm9yIiksInN0cmluZyIhPXR5cGVvZiB0JiZ0LmVycm9yJiYodD10LmVycm9yKTt2YXIgaT0hMCxuPSExLHI9dm9pZCAwO3RyeXtmb3IodmFyIGEsbz1lLnByZXZpZXdFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWR6LWVycm9ybWVzc2FnZV0iKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShhPW8ubmV4dCgpKS5kb25lKTtpPSEwKXthLnZhbHVlLnRleHRDb250ZW50PXR9fWNhdGNoKGUpe249ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobil0aHJvdyByfX19fSxlcnJvcm11bHRpcGxlOmZ1bmN0aW9uKCl7fSxwcm9jZXNzaW5nOmZ1bmN0aW9uKGUpe2lmKGUucHJldmlld0VsZW1lbnQmJihlLnByZXZpZXdFbGVtZW50LmNsYXNzTGlzdC5hZGQoImR6LXByb2Nlc3NpbmciKSxlLl9yZW1vdmVMaW5rKSlyZXR1cm4gZS5fcmVtb3ZlTGluay5pbm5lckhUTUw9dGhpcy5vcHRpb25zLmRpY3RDYW5jZWxVcGxvYWR9LHByb2Nlc3NpbmdtdWx0aXBsZTpmdW5jdGlvbigpe30sdXBsb2FkcHJvZ3Jlc3M6ZnVuY3Rpb24oZSx0LGkpe3ZhciBuPSEwLHI9ITEsYT12b2lkIDA7aWYoZS5wcmV2aWV3RWxlbWVudCl0cnl7Zm9yKHZhciBvLGw9ZS5wcmV2aWV3RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1kei11cGxvYWRwcm9ncmVzc10iKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShvPWwubmV4dCgpKS5kb25lKTtuPSEwKXt2YXIgcz1vLnZhbHVlOyJQUk9HUkVTUyI9PT1zLm5vZGVOYW1lP3MudmFsdWU9dDpzLnN0eWxlLndpZHRoPSIiLmNvbmNhdCh0LCIlIil9fWNhdGNoKGUpe3I9ITAsYT1lfWZpbmFsbHl7dHJ5e258fG51bGw9PWwucmV0dXJufHxsLnJldHVybigpfWZpbmFsbHl7aWYocil0aHJvdyBhfX19LHRvdGFsdXBsb2FkcHJvZ3Jlc3M6ZnVuY3Rpb24oKXt9LHNlbmRpbmc6ZnVuY3Rpb24oKXt9LHNlbmRpbmdtdWx0aXBsZTpmdW5jdGlvbigpe30sc3VjY2VzczpmdW5jdGlvbihlKXtpZihlLnByZXZpZXdFbGVtZW50KXJldHVybiBlLnByZXZpZXdFbGVtZW50LmNsYXNzTGlzdC5hZGQoImR6LXN1Y2Nlc3MiKX0sc3VjY2Vzc211bHRpcGxlOmZ1bmN0aW9uKCl7fSxjYW5jZWxlZDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lbWl0KCJlcnJvciIsZSx0aGlzLm9wdGlvbnMuZGljdFVwbG9hZENhbmNlbGVkKX0sY2FuY2VsZWRtdWx0aXBsZTpmdW5jdGlvbigpe30sY29tcGxldGU6ZnVuY3Rpb24oZSl7aWYoZS5fcmVtb3ZlTGluayYmKGUuX3JlbW92ZUxpbmsuaW5uZXJIVE1MPXRoaXMub3B0aW9ucy5kaWN0UmVtb3ZlRmlsZSksZS5wcmV2aWV3RWxlbWVudClyZXR1cm4gZS5wcmV2aWV3RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkei1jb21wbGV0ZSIpfSxjb21wbGV0ZW11bHRpcGxlOmZ1bmN0aW9uKCl7fSxtYXhmaWxlc2V4Y2VlZGVkOmZ1bmN0aW9uKCl7fSxtYXhmaWxlc3JlYWNoZWQ6ZnVuY3Rpb24oKXt9LHF1ZXVlY29tcGxldGU6ZnVuY3Rpb24oKXt9LGFkZGVkZmlsZXM6ZnVuY3Rpb24oKXt9fSxmPWZ1bmN0aW9uKG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4scil7dmFyIGwsYyxkLGg7aWYoaSh0aGlzLG8pLChsPXModGhpcywoYz1vLGEoYykpLmNhbGwodGhpcykpKS5lbGVtZW50PW4sbC5jbGlja2FibGVFbGVtZW50cz1bXSxsLmxpc3RlbmVycz1bXSxsLmZpbGVzPVtdLCJzdHJpbmciPT10eXBlb2YgbC5lbGVtZW50JiYobC5lbGVtZW50PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IobC5lbGVtZW50KSksIWwuZWxlbWVudHx8bnVsbD09bC5lbGVtZW50Lm5vZGVUeXBlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBkcm9wem9uZSBlbGVtZW50LiIpO2lmKGwuZWxlbWVudC5kcm9wem9uZSl0aHJvdyBuZXcgRXJyb3IoIkRyb3B6b25lIGFscmVhZHkgYXR0YWNoZWQuIik7by5pbnN0YW5jZXMucHVzaCh0KGwpKSxsLmVsZW1lbnQuZHJvcHpvbmU9dChsKTt2YXIgZj1udWxsIT0oaD1vLm9wdGlvbnNGb3JFbGVtZW50KGwuZWxlbWVudCkpP2g6e307aWYobC5vcHRpb25zPWUodSkoITAse30scCxmLG51bGwhPXI/cjp7fSksbC5vcHRpb25zLnByZXZpZXdUZW1wbGF0ZT1sLm9wdGlvbnMucHJldmlld1RlbXBsYXRlLnJlcGxhY2UoL1xuKi9nLCIiKSxsLm9wdGlvbnMuZm9yY2VGYWxsYmFja3x8IW8uaXNCcm93c2VyU3VwcG9ydGVkKCkpcmV0dXJuIHMobCxsLm9wdGlvbnMuZmFsbGJhY2suY2FsbCh0KGwpKSk7aWYobnVsbD09bC5vcHRpb25zLnVybCYmKGwub3B0aW9ucy51cmw9bC5lbGVtZW50LmdldEF0dHJpYnV0ZSgiYWN0aW9uIikpLCFsLm9wdGlvbnMudXJsKXRocm93IG5ldyBFcnJvcigiTm8gVVJMIHByb3ZpZGVkLiIpO2lmKGwub3B0aW9ucy5hY2NlcHRlZEZpbGVzJiZsLm9wdGlvbnMuYWNjZXB0ZWRNaW1lVHlwZXMpdGhyb3cgbmV3IEVycm9yKCJZb3UgY2FuJ3QgcHJvdmlkZSBib3RoICdhY2NlcHRlZEZpbGVzJyBhbmQgJ2FjY2VwdGVkTWltZVR5cGVzJy4gJ2FjY2VwdGVkTWltZVR5cGVzJyBpcyBkZXByZWNhdGVkLiIpO2lmKGwub3B0aW9ucy51cGxvYWRNdWx0aXBsZSYmbC5vcHRpb25zLmNodW5raW5nKXRocm93IG5ldyBFcnJvcigiWW91IGNhbm5vdCBzZXQgYm90aDogdXBsb2FkTXVsdGlwbGUgYW5kIGNodW5raW5nLiIpO2lmKGwub3B0aW9ucy5iaW5hcnlCb2R5JiZsLm9wdGlvbnMudXBsb2FkTXVsdGlwbGUpdGhyb3cgbmV3IEVycm9yKCJZb3UgY2Fubm90IHNldCBib3RoOiBiaW5hcnlCb2R5IGFuZCB1cGxvYWRNdWx0aXBsZS4iKTtyZXR1cm4gbC5vcHRpb25zLmFjY2VwdGVkTWltZVR5cGVzJiYobC5vcHRpb25zLmFjY2VwdGVkRmlsZXM9bC5vcHRpb25zLmFjY2VwdGVkTWltZVR5cGVzLGRlbGV0ZSBsLm9wdGlvbnMuYWNjZXB0ZWRNaW1lVHlwZXMpLG51bGwhPWwub3B0aW9ucy5yZW5hbWVGaWxlbmFtZSYmKGwub3B0aW9ucy5yZW5hbWVGaWxlPWZ1bmN0aW9uKGUpe3JldHVybiBsLm9wdGlvbnMucmVuYW1lRmlsZW5hbWUuY2FsbCh0KGwpLGUubmFtZSxlKX0pLCJzdHJpbmciPT10eXBlb2YgbC5vcHRpb25zLm1ldGhvZCYmKGwub3B0aW9ucy5tZXRob2Q9bC5vcHRpb25zLm1ldGhvZC50b1VwcGVyQ2FzZSgpKSwoZD1sLmdldEV4aXN0aW5nRmFsbGJhY2soKSkmJmQucGFyZW50Tm9kZSYmZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpLCExIT09bC5vcHRpb25zLnByZXZpZXdzQ29udGFpbmVyJiYobC5vcHRpb25zLnByZXZpZXdzQ29udGFpbmVyP2wucHJldmlld3NDb250YWluZXI9by5nZXRFbGVtZW50KGwub3B0aW9ucy5wcmV2aWV3c0NvbnRhaW5lciwicHJldmlld3NDb250YWluZXIiKTpsLnByZXZpZXdzQ29udGFpbmVyPWwuZWxlbWVudCksbC5vcHRpb25zLmNsaWNrYWJsZSYmKCEwPT09bC5vcHRpb25zLmNsaWNrYWJsZT9sLmNsaWNrYWJsZUVsZW1lbnRzPVtsLmVsZW1lbnRdOmwuY2xpY2thYmxlRWxlbWVudHM9by5nZXRFbGVtZW50cyhsLm9wdGlvbnMuY2xpY2thYmxlLCJjbGlja2FibGUiKSksbC5pbml0KCksbH1yZXR1cm4gbChvLG4pLHIobyxbe2tleToiZ2V0QWNjZXB0ZWRGaWxlcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxlcy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFjY2VwdGVkfSkpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSl9fSx7a2V5OiJnZXRSZWplY3RlZEZpbGVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGVzLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIWUuYWNjZXB0ZWR9KSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX19LHtrZXk6ImdldEZpbGVzV2l0aFN0YXR1cyIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmlsZXMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGF0dXM9PT1lfSkpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSl9fSx7a2V5OiJnZXRRdWV1ZWRGaWxlcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRGaWxlc1dpdGhTdGF0dXMoby5RVUVVRUQpfX0se2tleToiZ2V0VXBsb2FkaW5nRmlsZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RmlsZXNXaXRoU3RhdHVzKG8uVVBMT0FESU5HKX19LHtrZXk6ImdldEFkZGVkRmlsZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RmlsZXNXaXRoU3RhdHVzKG8uQURERUQpfX0se2tleToiZ2V0QWN0aXZlRmlsZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsZXMuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5zdGF0dXM9PT1vLlVQTE9BRElOR3x8ZS5zdGF0dXM9PT1vLlFVRVVFRH0pKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpfX0se2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcyxpPXRoaXMsbj10aGlzLHI9dGhpcyxhPXRoaXMsbD10aGlzLHM9dGhpcyx1PXRoaXMsYz10aGlzLGQ9dGhpcztpZigiZm9ybSI9PT10aGlzLmVsZW1lbnQudGFnTmFtZSYmdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgiZW5jdHlwZSIsIm11bHRpcGFydC9mb3JtLWRhdGEiKSx0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJkcm9wem9uZSIpJiYhdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kei1tZXNzYWdlIikmJnRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChvLmNyZWF0ZUVsZW1lbnQoJzxkaXYgY2xhc3M9ImR6LWRlZmF1bHQgZHotbWVzc2FnZSI+PGJ1dHRvbiBjbGFzcz0iZHotYnV0dG9uIiB0eXBlPSJidXR0b24iPicuY29uY2F0KHRoaXMub3B0aW9ucy5kaWN0RGVmYXVsdE1lc3NhZ2UsIjwvYnV0dG9uPjwvZGl2PiIpKSksdGhpcy5jbGlja2FibGVFbGVtZW50cy5sZW5ndGgpe3ZhciBoPXRoaXMscD1mdW5jdGlvbigpe3ZhciBlPWg7aC5oaWRkZW5GaWxlSW5wdXQmJmguaGlkZGVuRmlsZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaC5oaWRkZW5GaWxlSW5wdXQpLGguaGlkZGVuRmlsZUlucHV0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksaC5oaWRkZW5GaWxlSW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwiZmlsZSIpLChudWxsPT09aC5vcHRpb25zLm1heEZpbGVzfHxoLm9wdGlvbnMubWF4RmlsZXM+MSkmJmguaGlkZGVuRmlsZUlucHV0LnNldEF0dHJpYnV0ZSgibXVsdGlwbGUiLCJtdWx0aXBsZSIpLGguaGlkZGVuRmlsZUlucHV0LmNsYXNzTmFtZT0iZHotaGlkZGVuLWlucHV0IixudWxsIT09aC5vcHRpb25zLmFjY2VwdGVkRmlsZXMmJmguaGlkZGVuRmlsZUlucHV0LnNldEF0dHJpYnV0ZSgiYWNjZXB0IixoLm9wdGlvbnMuYWNjZXB0ZWRGaWxlcyksbnVsbCE9PWgub3B0aW9ucy5jYXB0dXJlJiZoLmhpZGRlbkZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoImNhcHR1cmUiLGgub3B0aW9ucy5jYXB0dXJlKSxoLmhpZGRlbkZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSxoLmhpZGRlbkZpbGVJbnB1dC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLGguaGlkZGVuRmlsZUlucHV0LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaC5oaWRkZW5GaWxlSW5wdXQuc3R5bGUudG9wPSIwIixoLmhpZGRlbkZpbGVJbnB1dC5zdHlsZS5sZWZ0PSIwIixoLmhpZGRlbkZpbGVJbnB1dC5zdHlsZS5oZWlnaHQ9IjAiLGguaGlkZGVuRmlsZUlucHV0LnN0eWxlLndpZHRoPSIwIixvLmdldEVsZW1lbnQoaC5vcHRpb25zLmhpZGRlbklucHV0Q29udGFpbmVyLCJoaWRkZW5JbnB1dENvbnRhaW5lciIpLmFwcGVuZENoaWxkKGguaGlkZGVuRmlsZUlucHV0KSxoLmhpZGRlbkZpbGVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChmdW5jdGlvbigpe3ZhciB0PWUuaGlkZGVuRmlsZUlucHV0LmZpbGVzLGk9ITAsbj0hMSxyPXZvaWQgMDtpZih0Lmxlbmd0aCl0cnl7Zm9yKHZhciBhLG89dFtTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShhPW8ubmV4dCgpKS5kb25lKTtpPSEwKXt2YXIgbD1hLnZhbHVlO2UuYWRkRmlsZShsKX19Y2F0Y2goZSl7bj0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihuKXRocm93IHJ9fWUuZW1pdCgiYWRkZWRmaWxlcyIsdCkscCgpfSkpfTtwKCl9dGhpcy5VUkw9bnVsbCE9PXdpbmRvdy5VUkw/d2luZG93LlVSTDp3aW5kb3cud2Via2l0VVJMO3ZhciBmPSEwLG09ITEsdj12b2lkIDA7dHJ5e2Zvcih2YXIgeSxnPXRoaXMuZXZlbnRzW1N5bWJvbC5pdGVyYXRvcl0oKTshKGY9KHk9Zy5uZXh0KCkpLmRvbmUpO2Y9ITApe3ZhciBiPXkudmFsdWU7dGhpcy5vbihiLHRoaXMub3B0aW9uc1tiXSl9fWNhdGNoKGUpe209ITAsdj1lfWZpbmFsbHl7dHJ5e2Z8fG51bGw9PWcucmV0dXJufHxnLnJldHVybigpfWZpbmFsbHl7aWYobSl0aHJvdyB2fX10aGlzLm9uKCJ1cGxvYWRwcm9ncmVzcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGUudXBkYXRlVG90YWxVcGxvYWRQcm9ncmVzcygpfSkpLHRoaXMub24oInJlbW92ZWRmaWxlIiwoZnVuY3Rpb24oKXtyZXR1cm4gdC51cGRhdGVUb3RhbFVwbG9hZFByb2dyZXNzKCl9KSksdGhpcy5vbigiY2FuY2VsZWQiLChmdW5jdGlvbihlKXtyZXR1cm4gaS5lbWl0KCJjb21wbGV0ZSIsZSl9KSksdGhpcy5vbigiY29tcGxldGUiLChmdW5jdGlvbihlKXt2YXIgdD1uO2lmKDA9PT1uLmdldEFkZGVkRmlsZXMoKS5sZW5ndGgmJjA9PT1uLmdldFVwbG9hZGluZ0ZpbGVzKCkubGVuZ3RoJiYwPT09bi5nZXRRdWV1ZWRGaWxlcygpLmxlbmd0aClyZXR1cm4gc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gdC5lbWl0KCJxdWV1ZWNvbXBsZXRlIil9KSwwKX0pKTt2YXIgaz1mdW5jdGlvbihlKXtpZihmdW5jdGlvbihlKXtpZihlLmRhdGFUcmFuc2Zlci50eXBlcylmb3IodmFyIHQ9MDt0PGUuZGF0YVRyYW5zZmVyLnR5cGVzLmxlbmd0aDt0KyspaWYoIkZpbGVzIj09PWUuZGF0YVRyYW5zZmVyLnR5cGVzW3RdKXJldHVybiEwO3JldHVybiExfShlKSlyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0P2UucHJldmVudERlZmF1bHQoKTplLnJldHVyblZhbHVlPSExfTtyZXR1cm4gdGhpcy5saXN0ZW5lcnM9W3tlbGVtZW50OnRoaXMuZWxlbWVudCxldmVudHM6e2RyYWdzdGFydDpmdW5jdGlvbihlKXtyZXR1cm4gci5lbWl0KCJkcmFnc3RhcnQiLGUpfSxkcmFnZW50ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGsoZSksYS5lbWl0KCJkcmFnZW50ZXIiLGUpfSxkcmFnb3ZlcjpmdW5jdGlvbihlKXt2YXIgdDt0cnl7dD1lLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkfWNhdGNoKGUpe31yZXR1cm4gZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0ibW92ZSI9PT10fHwibGlua01vdmUiPT09dD8ibW92ZSI6ImNvcHkiLGsoZSksbC5lbWl0KCJkcmFnb3ZlciIsZSl9LGRyYWdsZWF2ZTpmdW5jdGlvbihlKXtyZXR1cm4gcy5lbWl0KCJkcmFnbGVhdmUiLGUpfSxkcm9wOmZ1bmN0aW9uKGUpe3JldHVybiBrKGUpLHUuZHJvcChlKX0sZHJhZ2VuZDpmdW5jdGlvbihlKXtyZXR1cm4gYy5lbWl0KCJkcmFnZW5kIixlKX19fV0sdGhpcy5jbGlja2FibGVFbGVtZW50cy5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1kO3JldHVybiBkLmxpc3RlbmVycy5wdXNoKHtlbGVtZW50OmUsZXZlbnRzOntjbGljazpmdW5jdGlvbihpKXtyZXR1cm4oZSE9PXQuZWxlbWVudHx8aS50YXJnZXQ9PT10LmVsZW1lbnR8fG8uZWxlbWVudEluc2lkZShpLnRhcmdldCx0LmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmR6LW1lc3NhZ2UiKSkpJiZ0LmhpZGRlbkZpbGVJbnB1dC5jbGljaygpLCEwfX19KX0pKSx0aGlzLmVuYWJsZSgpLHRoaXMub3B0aW9ucy5pbml0LmNhbGwodGhpcyl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc2FibGUoKSx0aGlzLnJlbW92ZUFsbEZpbGVzKCEwKSwobnVsbCE9dGhpcy5oaWRkZW5GaWxlSW5wdXQ/dGhpcy5oaWRkZW5GaWxlSW5wdXQucGFyZW50Tm9kZTp2b2lkIDApJiYodGhpcy5oaWRkZW5GaWxlSW5wdXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmhpZGRlbkZpbGVJbnB1dCksdGhpcy5oaWRkZW5GaWxlSW5wdXQ9bnVsbCksZGVsZXRlIHRoaXMuZWxlbWVudC5kcm9wem9uZSxvLmluc3RhbmNlcy5zcGxpY2Uoby5pbnN0YW5jZXMuaW5kZXhPZih0aGlzKSwxKX19LHtrZXk6InVwZGF0ZVRvdGFsVXBsb2FkUHJvZ3Jlc3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD0wLGk9MDtpZih0aGlzLmdldEFjdGl2ZUZpbGVzKCkubGVuZ3RoKXt2YXIgbj0hMCxyPSExLGE9dm9pZCAwO3RyeXtmb3IodmFyIG8sbD10aGlzLmdldEFjdGl2ZUZpbGVzKClbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0obz1sLm5leHQoKSkuZG9uZSk7bj0hMCl7dmFyIHM9by52YWx1ZTt0Kz1zLnVwbG9hZC5ieXRlc1NlbnQsaSs9cy51cGxvYWQudG90YWx9fWNhdGNoKGUpe3I9ITAsYT1lfWZpbmFsbHl7dHJ5e258fG51bGw9PWwucmV0dXJufHxsLnJldHVybigpfWZpbmFsbHl7aWYocil0aHJvdyBhfX1lPTEwMCp0L2l9ZWxzZSBlPTEwMDtyZXR1cm4gdGhpcy5lbWl0KCJ0b3RhbHVwbG9hZHByb2dyZXNzIixlLGksdCl9fSx7a2V5OiJfZ2V0UGFyYW1OYW1lIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLnBhcmFtTmFtZT90aGlzLm9wdGlvbnMucGFyYW1OYW1lKGUpOiIiLmNvbmNhdCh0aGlzLm9wdGlvbnMucGFyYW1OYW1lKS5jb25jYXQodGhpcy5vcHRpb25zLnVwbG9hZE11bHRpcGxlPyJbIi5jb25jYXQoZSwiXSIpOiIiKX19LHtrZXk6Il9yZW5hbWVGaWxlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5vcHRpb25zLnJlbmFtZUZpbGU/ZS5uYW1lOnRoaXMub3B0aW9ucy5yZW5hbWVGaWxlKGUpfX0se2tleToiZ2V0RmFsbGJhY2tGb3JtIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ7aWYoZT10aGlzLmdldEV4aXN0aW5nRmFsbGJhY2soKSlyZXR1cm4gZTt2YXIgaT0nPGRpdiBjbGFzcz0iZHotZmFsbGJhY2siPic7dGhpcy5vcHRpb25zLmRpY3RGYWxsYmFja1RleHQmJihpKz0iPHA+Ii5jb25jYXQodGhpcy5vcHRpb25zLmRpY3RGYWxsYmFja1RleHQsIjwvcD4iKSksaSs9JzxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSInLmNvbmNhdCh0aGlzLl9nZXRQYXJhbU5hbWUoMCksJyIgJykuY29uY2F0KHRoaXMub3B0aW9ucy51cGxvYWRNdWx0aXBsZT8nbXVsdGlwbGU9Im11bHRpcGxlIic6dm9pZCAwLCcgLz48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkISI+PC9kaXY+Jyk7dmFyIG49by5jcmVhdGVFbGVtZW50KGkpO3JldHVybiJGT1JNIiE9PXRoaXMuZWxlbWVudC50YWdOYW1lPyh0PW8uY3JlYXRlRWxlbWVudCgnPGZvcm0gYWN0aW9uPSInLmNvbmNhdCh0aGlzLm9wdGlvbnMudXJsLCciIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0iJykuY29uY2F0KHRoaXMub3B0aW9ucy5tZXRob2QsJyI+PC9mb3JtPicpKSkuYXBwZW5kQ2hpbGQobik6KHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoImVuY3R5cGUiLCJtdWx0aXBhcnQvZm9ybS1kYXRhIiksdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgibWV0aG9kIix0aGlzLm9wdGlvbnMubWV0aG9kKSksbnVsbCE9dD90Om59fSx7a2V5OiJnZXRFeGlzdGluZ0ZhbGxiYWNrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKGUpe3ZhciB0PSEwLGk9ITEsbj12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0ocj1hLm5leHQoKSkuZG9uZSk7dD0hMCl7dmFyIG89ci52YWx1ZTtpZigvKF58IClmYWxsYmFjaygkfCApLy50ZXN0KG8uY2xhc3NOYW1lKSlyZXR1cm4gb319Y2F0Y2goZSl7aT0hMCxuPWV9ZmluYWxseXt0cnl7dHx8bnVsbD09YS5yZXR1cm58fGEucmV0dXJuKCl9ZmluYWxseXtpZihpKXRocm93IG59fX0sdD0hMCxpPSExLG49dm9pZCAwO3RyeXtmb3IodmFyIHIsYT1bImRpdiIsImZvcm0iXVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShyPWEubmV4dCgpKS5kb25lKTt0PSEwKXt2YXIgbyxsPXIudmFsdWU7aWYobz1lKHRoaXMuZWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShsKSkpcmV0dXJuIG99fWNhdGNoKGUpe2k9ITAsbj1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PWEucmV0dXJufHxhLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBufX19fSx7a2V5OiJzZXR1cEV2ZW50TGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxpc3RlbmVycy5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgaSBpbiBlLmV2ZW50cyl7dmFyIG49ZS5ldmVudHNbaV07dC5wdXNoKGUuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGksbiwhMSkpfXJldHVybiB0fSgpfSkpfX0se2tleToicmVtb3ZlRXZlbnRMaXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGlzdGVuZXJzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBpIGluIGUuZXZlbnRzKXt2YXIgbj1lLmV2ZW50c1tpXTt0LnB1c2goZS5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoaSxuLCExKSl9cmV0dXJuIHR9KCl9KSl9fSx7a2V5OiJkaXNhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY2xpY2thYmxlRWxlbWVudHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NMaXN0LnJlbW92ZSgiZHotY2xpY2thYmxlIil9KSksdGhpcy5yZW1vdmVFdmVudExpc3RlbmVycygpLHRoaXMuZGlzYWJsZWQ9ITAsdGhpcy5maWxlcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmNhbmNlbFVwbG9hZCh0KX0pKX19LHtrZXk6ImVuYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZGVsZXRlIHRoaXMuZGlzYWJsZWQsdGhpcy5jbGlja2FibGVFbGVtZW50cy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc0xpc3QuYWRkKCJkei1jbGlja2FibGUiKX0pKSx0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcnMoKX19LHtrZXk6ImZpbGVzaXplIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD0wLGk9ImIiO2lmKGU+MCl7Zm9yKHZhciBuPVsidGIiLCJnYiIsIm1iIiwia2IiLCJiIl0scj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgYT1uW3JdO2lmKGU+PU1hdGgucG93KHRoaXMub3B0aW9ucy5maWxlc2l6ZUJhc2UsNC1yKS8xMCl7dD1lL01hdGgucG93KHRoaXMub3B0aW9ucy5maWxlc2l6ZUJhc2UsNC1yKSxpPWE7YnJlYWt9fXQ9TWF0aC5yb3VuZCgxMCp0KS8xMH1yZXR1cm4iPHN0cm9uZz4iLmNvbmNhdCh0LCI8L3N0cm9uZz4gIikuY29uY2F0KHRoaXMub3B0aW9ucy5kaWN0RmlsZVNpemVVbml0c1tpXSl9fSx7a2V5OiJfdXBkYXRlTWF4RmlsZXNSZWFjaGVkQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPXRoaXMub3B0aW9ucy5tYXhGaWxlcyYmdGhpcy5nZXRBY2NlcHRlZEZpbGVzKCkubGVuZ3RoPj10aGlzLm9wdGlvbnMubWF4RmlsZXM/KHRoaXMuZ2V0QWNjZXB0ZWRGaWxlcygpLmxlbmd0aD09PXRoaXMub3B0aW9ucy5tYXhGaWxlcyYmdGhpcy5lbWl0KCJtYXhmaWxlc3JlYWNoZWQiLHRoaXMuZmlsZXMpLHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkei1tYXgtZmlsZXMtcmVhY2hlZCIpKTp0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiZHotbWF4LWZpbGVzLXJlYWNoZWQiKX19LHtrZXk6ImRyb3AiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKGUuZGF0YVRyYW5zZmVyKXt0aGlzLmVtaXQoImRyb3AiLGUpO2Zvcih2YXIgdD1bXSxpPTA7aTxlLmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGg7aSsrKXRbaV09ZS5kYXRhVHJhbnNmZXIuZmlsZXNbaV07aWYodC5sZW5ndGgpe3ZhciBuPWUuZGF0YVRyYW5zZmVyLml0ZW1zO24mJm4ubGVuZ3RoJiZudWxsIT1uWzBdLndlYmtpdEdldEFzRW50cnk/dGhpcy5fYWRkRmlsZXNGcm9tSXRlbXMobik6dGhpcy5oYW5kbGVGaWxlcyh0KX10aGlzLmVtaXQoImFkZGVkZmlsZXMiLHQpfX19LHtrZXk6InBhc3RlIix2YWx1ZTpmdW5jdGlvbihlKXtpZihudWxsIT0odD1udWxsIT1lP2UuY2xpcGJvYXJkRGF0YTp2b2lkIDAsaT1mdW5jdGlvbihlKXtyZXR1cm4gZS5pdGVtc30sbnVsbCE9dD9pKHQpOnZvaWQgMCkpe3ZhciB0LGk7dGhpcy5lbWl0KCJwYXN0ZSIsZSk7dmFyIG49ZS5jbGlwYm9hcmREYXRhLml0ZW1zO3JldHVybiBuLmxlbmd0aD90aGlzLl9hZGRGaWxlc0Zyb21JdGVtcyhuKTp2b2lkIDB9fX0se2tleToiaGFuZGxlRmlsZXMiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PSEwLGk9ITEsbj12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0ocj1hLm5leHQoKSkuZG9uZSk7dD0hMCl7dmFyIG89ci52YWx1ZTt0aGlzLmFkZEZpbGUobyl9fWNhdGNoKGUpe2k9ITAsbj1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PWEucmV0dXJufHxhLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBufX19fSx7a2V5OiJfYWRkRmlsZXNGcm9tSXRlbXMiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9W10sbj0hMCxyPSExLGE9dm9pZCAwO3RyeXtmb3IodmFyIG8sbD1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKG49KG89bC5uZXh0KCkpLmRvbmUpO249ITApe3ZhciBzLHU9by52YWx1ZTtudWxsIT11LndlYmtpdEdldEFzRW50cnkmJihzPXUud2Via2l0R2V0QXNFbnRyeSgpKT9zLmlzRmlsZT9pLnB1c2godC5hZGRGaWxlKHUuZ2V0QXNGaWxlKCkpKTpzLmlzRGlyZWN0b3J5P2kucHVzaCh0Ll9hZGRGaWxlc0Zyb21EaXJlY3RvcnkocyxzLm5hbWUpKTppLnB1c2godm9pZCAwKTpudWxsIT11LmdldEFzRmlsZSYmKG51bGw9PXUua2luZHx8ImZpbGUiPT09dS5raW5kKT9pLnB1c2godC5hZGRGaWxlKHUuZ2V0QXNGaWxlKCkpKTppLnB1c2godm9pZCAwKX19Y2F0Y2goZSl7cj0hMCxhPWV9ZmluYWxseXt0cnl7bnx8bnVsbD09bC5yZXR1cm58fGwucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IGF9fXJldHVybiBpfSgpfX0se2tleToiX2FkZEZpbGVzRnJvbURpcmVjdG9yeSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLG49ZS5jcmVhdGVSZWFkZXIoKSxyPWZ1bmN0aW9uKGUpe3JldHVybiB0PWNvbnNvbGUsaT0ibG9nIixuPWZ1bmN0aW9uKHQpe3JldHVybiB0LmxvZyhlKX0sbnVsbCE9dCYmImZ1bmN0aW9uIj09dHlwZW9mIHRbaV0/bih0LGkpOnZvaWQgMDt2YXIgdCxpLG59LGE9ZnVuY3Rpb24oKXt2YXIgZT1pO3JldHVybiBuLnJlYWRFbnRyaWVzKChmdW5jdGlvbihpKXtpZihpLmxlbmd0aD4wKXt2YXIgbj0hMCxyPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIGwscz1pW1N5bWJvbC5pdGVyYXRvcl0oKTshKG49KGw9cy5uZXh0KCkpLmRvbmUpO249ITApe3ZhciB1PWwudmFsdWUsYz1lO3UuaXNGaWxlP3UuZmlsZSgoZnVuY3Rpb24oZSl7aWYoIWMub3B0aW9ucy5pZ25vcmVIaWRkZW5GaWxlc3x8Ii4iIT09ZS5uYW1lLnN1YnN0cmluZygwLDEpKXJldHVybiBlLmZ1bGxQYXRoPSIiLmNvbmNhdCh0LCIvIikuY29uY2F0KGUubmFtZSksYy5hZGRGaWxlKGUpfSkpOnUuaXNEaXJlY3RvcnkmJmUuX2FkZEZpbGVzRnJvbURpcmVjdG9yeSh1LCIiLmNvbmNhdCh0LCIvIikuY29uY2F0KHUubmFtZSkpfX1jYXRjaChlKXtyPSEwLG89ZX1maW5hbGx5e3RyeXtufHxudWxsPT1zLnJldHVybnx8cy5yZXR1cm4oKX1maW5hbGx5e2lmKHIpdGhyb3cgb319YSgpfXJldHVybiBudWxsfSkscil9O3JldHVybiBhKCl9fSx7a2V5OiJhY2NlcHQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5vcHRpb25zLm1heEZpbGVzaXplJiZlLnNpemU+MTA0ODU3Nip0aGlzLm9wdGlvbnMubWF4RmlsZXNpemU/dCh0aGlzLm9wdGlvbnMuZGljdEZpbGVUb29CaWcucmVwbGFjZSgie3tmaWxlc2l6ZX19IixNYXRoLnJvdW5kKGUuc2l6ZS8xMDI0LzEwLjI0KS8xMDApLnJlcGxhY2UoInt7bWF4RmlsZXNpemV9fSIsdGhpcy5vcHRpb25zLm1heEZpbGVzaXplKSk6by5pc1ZhbGlkRmlsZShlLHRoaXMub3B0aW9ucy5hY2NlcHRlZEZpbGVzKT9udWxsIT10aGlzLm9wdGlvbnMubWF4RmlsZXMmJnRoaXMuZ2V0QWNjZXB0ZWRGaWxlcygpLmxlbmd0aD49dGhpcy5vcHRpb25zLm1heEZpbGVzPyh0KHRoaXMub3B0aW9ucy5kaWN0TWF4RmlsZXNFeGNlZWRlZC5yZXBsYWNlKCJ7e21heEZpbGVzfX0iLHRoaXMub3B0aW9ucy5tYXhGaWxlcykpLHRoaXMuZW1pdCgibWF4ZmlsZXNleGNlZWRlZCIsZSkpOnRoaXMub3B0aW9ucy5hY2NlcHQuY2FsbCh0aGlzLGUsdCk6dCh0aGlzLm9wdGlvbnMuZGljdEludmFsaWRGaWxlVHlwZSl9fSx7a2V5OiJhZGRGaWxlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO2UudXBsb2FkPXt1dWlkOm8udXVpZHY0KCkscHJvZ3Jlc3M6MCx0b3RhbDplLnNpemUsYnl0ZXNTZW50OjAsZmlsZW5hbWU6dGhpcy5fcmVuYW1lRmlsZShlKX0sdGhpcy5maWxlcy5wdXNoKGUpLGUuc3RhdHVzPW8uQURERUQsdGhpcy5lbWl0KCJhZGRlZGZpbGUiLGUpLHRoaXMuX2VucXVldWVUaHVtYm5haWwoZSksdGhpcy5hY2NlcHQoZSwoZnVuY3Rpb24oaSl7aT8oZS5hY2NlcHRlZD0hMSx0Ll9lcnJvclByb2Nlc3NpbmcoW2VdLGkpKTooZS5hY2NlcHRlZD0hMCx0Lm9wdGlvbnMuYXV0b1F1ZXVlJiZ0LmVucXVldWVGaWxlKGUpKSx0Ll91cGRhdGVNYXhGaWxlc1JlYWNoZWRDbGFzcygpfSkpfX0se2tleToiZW5xdWV1ZUZpbGVzIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD0hMCxpPSExLG49dm9pZCAwO3RyeXtmb3IodmFyIHIsYT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KHI9YS5uZXh0KCkpLmRvbmUpO3Q9ITApe3ZhciBvPXIudmFsdWU7dGhpcy5lbnF1ZXVlRmlsZShvKX19Y2F0Y2goZSl7aT0hMCxuPWV9ZmluYWxseXt0cnl7dHx8bnVsbD09YS5yZXR1cm58fGEucmV0dXJuKCl9ZmluYWxseXtpZihpKXRocm93IG59fXJldHVybiBudWxsfX0se2tleToiZW5xdWV1ZUZpbGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKGUuc3RhdHVzIT09by5BRERFRHx8ITAhPT1lLmFjY2VwdGVkKXRocm93IG5ldyBFcnJvcigiVGhpcyBmaWxlIGNhbid0IGJlIHF1ZXVlZCBiZWNhdXNlIGl0IGhhcyBhbHJlYWR5IGJlZW4gcHJvY2Vzc2VkIG9yIHdhcyByZWplY3RlZC4iKTt2YXIgdD10aGlzO2lmKGUuc3RhdHVzPW8uUVVFVUVELHRoaXMub3B0aW9ucy5hdXRvUHJvY2Vzc1F1ZXVlKXJldHVybiBzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiB0LnByb2Nlc3NRdWV1ZSgpfSksMCl9fSx7a2V5OiJfZW5xdWV1ZVRodW1ibmFpbCIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYodGhpcy5vcHRpb25zLmNyZWF0ZUltYWdlVGh1bWJuYWlscyYmZS50eXBlLm1hdGNoKC9pbWFnZS4qLykmJmUuc2l6ZTw9MTA0ODU3Nip0aGlzLm9wdGlvbnMubWF4VGh1bWJuYWlsRmlsZXNpemUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3RodW1ibmFpbFF1ZXVlLnB1c2goZSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gdC5fcHJvY2Vzc1RodW1ibmFpbFF1ZXVlKCl9KSwwKX19fSx7a2V5OiJfcHJvY2Vzc1RodW1ibmFpbFF1ZXVlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX3Byb2Nlc3NpbmdUaHVtYm5haWwmJjAhPT10aGlzLl90aHVtYm5haWxRdWV1ZS5sZW5ndGgpe3RoaXMuX3Byb2Nlc3NpbmdUaHVtYm5haWw9ITA7dmFyIHQ9dGhpcy5fdGh1bWJuYWlsUXVldWUuc2hpZnQoKTtyZXR1cm4gdGhpcy5jcmVhdGVUaHVtYm5haWwodCx0aGlzLm9wdGlvbnMudGh1bWJuYWlsV2lkdGgsdGhpcy5vcHRpb25zLnRodW1ibmFpbEhlaWdodCx0aGlzLm9wdGlvbnMudGh1bWJuYWlsTWV0aG9kLCEwLChmdW5jdGlvbihpKXtyZXR1cm4gZS5lbWl0KCJ0aHVtYm5haWwiLHQsaSksZS5fcHJvY2Vzc2luZ1RodW1ibmFpbD0hMSxlLl9wcm9jZXNzVGh1bWJuYWlsUXVldWUoKX0pKX19fSx7a2V5OiJyZW1vdmVGaWxlIix2YWx1ZTpmdW5jdGlvbihlKXtpZihlLnN0YXR1cz09PW8uVVBMT0FESU5HJiZ0aGlzLmNhbmNlbFVwbG9hZChlKSx0aGlzLmZpbGVzPW0odGhpcy5maWxlcyxlKSx0aGlzLmVtaXQoInJlbW92ZWRmaWxlIixlKSwwPT09dGhpcy5maWxlcy5sZW5ndGgpcmV0dXJuIHRoaXMuZW1pdCgicmVzZXQiKX19LHtrZXk6InJlbW92ZUFsbEZpbGVzIix2YWx1ZTpmdW5jdGlvbihlKXtudWxsPT1lJiYoZT0hMSk7dmFyIHQ9ITAsaT0hMSxuPXZvaWQgMDt0cnl7Zm9yKHZhciByLGE9dGhpcy5maWxlcy5zbGljZSgpW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KHI9YS5uZXh0KCkpLmRvbmUpO3Q9ITApe3ZhciBsPXIudmFsdWU7KGwuc3RhdHVzIT09by5VUExPQURJTkd8fGUpJiZ0aGlzLnJlbW92ZUZpbGUobCl9fWNhdGNoKGUpe2k9ITAsbj1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PWEucmV0dXJufHxhLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBufX1yZXR1cm4gbnVsbH19LHtrZXk6InJlc2l6ZUltYWdlIix2YWx1ZTpmdW5jdGlvbihlLHQsaSxuLHIpe3ZhciBhPXRoaXM7cmV0dXJuIHRoaXMuY3JlYXRlVGh1bWJuYWlsKGUsdCxpLG4sITAsKGZ1bmN0aW9uKHQsaSl7aWYobnVsbD09aSlyZXR1cm4gcihlKTt2YXIgbj1hLm9wdGlvbnMucmVzaXplTWltZVR5cGU7bnVsbD09biYmKG49ZS50eXBlKTt2YXIgbD1pLnRvRGF0YVVSTChuLGEub3B0aW9ucy5yZXNpemVRdWFsaXR5KTtyZXR1cm4iaW1hZ2UvanBlZyIhPT1uJiYiaW1hZ2UvanBnIiE9PW58fChsPWcucmVzdG9yZShlLmRhdGFVUkwsbCkpLHIoby5kYXRhVVJJdG9CbG9iKGwpKX0pKX19LHtrZXk6ImNyZWF0ZVRodW1ibmFpbCIsdmFsdWU6ZnVuY3Rpb24oZSx0LGksbixyLGEpe3ZhciBvPXRoaXMsbD1uZXcgRmlsZVJlYWRlcjtsLm9ubG9hZD1mdW5jdGlvbigpe2UuZGF0YVVSTD1sLnJlc3VsdCwiaW1hZ2Uvc3ZnK3htbCIhPT1lLnR5cGU/by5jcmVhdGVUaHVtYm5haWxGcm9tVXJsKGUsdCxpLG4scixhKTpudWxsIT1hJiZhKGwucmVzdWx0KX0sbC5yZWFkQXNEYXRhVVJMKGUpfX0se2tleToiZGlzcGxheUV4aXN0aW5nRmlsZSIsdmFsdWU6ZnVuY3Rpb24oZSx0LGksbixyKXt2YXIgYT12b2lkIDA9PT1yfHxyO2lmKHRoaXMuZW1pdCgiYWRkZWRmaWxlIixlKSx0aGlzLmVtaXQoImNvbXBsZXRlIixlKSxhKXt2YXIgbz10aGlzO2UuZGF0YVVSTD10LHRoaXMuY3JlYXRlVGh1bWJuYWlsRnJvbVVybChlLHRoaXMub3B0aW9ucy50aHVtYm5haWxXaWR0aCx0aGlzLm9wdGlvbnMudGh1bWJuYWlsSGVpZ2h0LHRoaXMub3B0aW9ucy50aHVtYm5haWxNZXRob2QsdGhpcy5vcHRpb25zLmZpeE9yaWVudGF0aW9uLChmdW5jdGlvbih0KXtvLmVtaXQoInRodW1ibmFpbCIsZSx0KSxpJiZpKCl9KSxuKX1lbHNlIHRoaXMuZW1pdCgidGh1bWJuYWlsIixlLHQpLGkmJmkoKX19LHtrZXk6ImNyZWF0ZVRodW1ibmFpbEZyb21VcmwiLHZhbHVlOmZ1bmN0aW9uKGUsdCxpLG4scixhLG8pe3ZhciBsPXRoaXMscz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtyZXR1cm4gbyYmKHMuY3Jvc3NPcmlnaW49bykscj0iZnJvbS1pbWFnZSIhPWdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuaW1hZ2VPcmllbnRhdGlvbiYmcixzLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBvPWwsdT1mdW5jdGlvbihlKXtyZXR1cm4gZSgxKX07cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBFWElGJiZudWxsIT09RVhJRiYmciYmKHU9ZnVuY3Rpb24oZSl7cmV0dXJuIEVYSUYuZ2V0RGF0YShzLChmdW5jdGlvbigpe3JldHVybiBlKEVYSUYuZ2V0VGFnKHRoaXMsIk9yaWVudGF0aW9uIikpfSkpfSksdSgoZnVuY3Rpb24ocil7ZS53aWR0aD1zLndpZHRoLGUuaGVpZ2h0PXMuaGVpZ2h0O3ZhciBsPW8ub3B0aW9ucy5yZXNpemUuY2FsbChvLGUsdCxpLG4pLHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksYz11LmdldENvbnRleHQoIjJkIik7c3dpdGNoKHUud2lkdGg9bC50cmdXaWR0aCx1LmhlaWdodD1sLnRyZ0hlaWdodCxyPjQmJih1LndpZHRoPWwudHJnSGVpZ2h0LHUuaGVpZ2h0PWwudHJnV2lkdGgpLHIpe2Nhc2UgMjpjLnRyYW5zbGF0ZSh1LndpZHRoLDApLGMuc2NhbGUoLTEsMSk7YnJlYWs7Y2FzZSAzOmMudHJhbnNsYXRlKHUud2lkdGgsdS5oZWlnaHQpLGMucm90YXRlKE1hdGguUEkpO2JyZWFrO2Nhc2UgNDpjLnRyYW5zbGF0ZSgwLHUuaGVpZ2h0KSxjLnNjYWxlKDEsLTEpO2JyZWFrO2Nhc2UgNTpjLnJvdGF0ZSguNSpNYXRoLlBJKSxjLnNjYWxlKDEsLTEpO2JyZWFrO2Nhc2UgNjpjLnJvdGF0ZSguNSpNYXRoLlBJKSxjLnRyYW5zbGF0ZSgwLC11LndpZHRoKTticmVhaztjYXNlIDc6Yy5yb3RhdGUoLjUqTWF0aC5QSSksYy50cmFuc2xhdGUodS5oZWlnaHQsLXUud2lkdGgpLGMuc2NhbGUoLTEsMSk7YnJlYWs7Y2FzZSA4OmMucm90YXRlKC0uNSpNYXRoLlBJKSxjLnRyYW5zbGF0ZSgtdS5oZWlnaHQsMCl9eShjLHMsbnVsbCE9bC5zcmNYP2wuc3JjWDowLG51bGwhPWwuc3JjWT9sLnNyY1k6MCxsLnNyY1dpZHRoLGwuc3JjSGVpZ2h0LG51bGwhPWwudHJnWD9sLnRyZ1g6MCxudWxsIT1sLnRyZ1k/bC50cmdZOjAsbC50cmdXaWR0aCxsLnRyZ0hlaWdodCk7dmFyIGQ9dS50b0RhdGFVUkwoImltYWdlL3BuZyIpO2lmKG51bGwhPWEpcmV0dXJuIGEoZCx1KX0pKX0sbnVsbCE9YSYmKHMub25lcnJvcj1hKSxzLnNyYz1lLmRhdGFVUkx9fSx7a2V5OiJwcm9jZXNzUXVldWUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLnBhcmFsbGVsVXBsb2Fkcyx0PXRoaXMuZ2V0VXBsb2FkaW5nRmlsZXMoKS5sZW5ndGgsaT10O2lmKCEodD49ZSkpe3ZhciBuPXRoaXMuZ2V0UXVldWVkRmlsZXMoKTtpZihuLmxlbmd0aD4wKXtpZih0aGlzLm9wdGlvbnMudXBsb2FkTXVsdGlwbGUpcmV0dXJuIHRoaXMucHJvY2Vzc0ZpbGVzKG4uc2xpY2UoMCxlLXQpKTtmb3IoO2k8ZTspe2lmKCFuLmxlbmd0aClyZXR1cm47dGhpcy5wcm9jZXNzRmlsZShuLnNoaWZ0KCkpLGkrK319fX19LHtrZXk6InByb2Nlc3NGaWxlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wcm9jZXNzRmlsZXMoW2VdKX19LHtrZXk6InByb2Nlc3NGaWxlcyIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9ITAsaT0hMSxuPXZvaWQgMDt0cnl7Zm9yKHZhciByLGE9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShyPWEubmV4dCgpKS5kb25lKTt0PSEwKXt2YXIgbD1yLnZhbHVlO2wucHJvY2Vzc2luZz0hMCxsLnN0YXR1cz1vLlVQTE9BRElORyx0aGlzLmVtaXQoInByb2Nlc3NpbmciLGwpfX1jYXRjaChlKXtpPSEwLG49ZX1maW5hbGx5e3RyeXt0fHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgbn19cmV0dXJuIHRoaXMub3B0aW9ucy51cGxvYWRNdWx0aXBsZSYmdGhpcy5lbWl0KCJwcm9jZXNzaW5nbXVsdGlwbGUiLGUpLHRoaXMudXBsb2FkRmlsZXMoZSl9fSx7a2V5OiJfZ2V0RmlsZXNXaXRoWGhyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5maWxlcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnhocj09PWV9KSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX19LHtrZXk6ImNhbmNlbFVwbG9hZCIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoZS5zdGF0dXM9PT1vLlVQTE9BRElORyl7dmFyIHQ9dGhpcy5fZ2V0RmlsZXNXaXRoWGhyKGUueGhyKSxpPSEwLG49ITEscj12b2lkIDA7dHJ5e2Zvcih2YXIgYSxsPXRbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0oYT1sLm5leHQoKSkuZG9uZSk7aT0hMCl7KHA9YS52YWx1ZSkuc3RhdHVzPW8uQ0FOQ0VMRUR9fWNhdGNoKGUpe249ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PWwucmV0dXJufHxsLnJldHVybigpfWZpbmFsbHl7aWYobil0aHJvdyByfX12b2lkIDAhPT1lLnhociYmZS54aHIuYWJvcnQoKTt2YXIgcz0hMCx1PSExLGM9dm9pZCAwO3RyeXtmb3IodmFyIGQsaD10W1N5bWJvbC5pdGVyYXRvcl0oKTshKHM9KGQ9aC5uZXh0KCkpLmRvbmUpO3M9ITApe3ZhciBwPWQudmFsdWU7dGhpcy5lbWl0KCJjYW5jZWxlZCIscCl9fWNhdGNoKGUpe3U9ITAsYz1lfWZpbmFsbHl7dHJ5e3N8fG51bGw9PWgucmV0dXJufHxoLnJldHVybigpfWZpbmFsbHl7aWYodSl0aHJvdyBjfX10aGlzLm9wdGlvbnMudXBsb2FkTXVsdGlwbGUmJnRoaXMuZW1pdCgiY2FuY2VsZWRtdWx0aXBsZSIsdCl9ZWxzZSBlLnN0YXR1cyE9PW8uQURERUQmJmUuc3RhdHVzIT09by5RVUVVRUR8fChlLnN0YXR1cz1vLkNBTkNFTEVELHRoaXMuZW1pdCgiY2FuY2VsZWQiLGUpLHRoaXMub3B0aW9ucy51cGxvYWRNdWx0aXBsZSYmdGhpcy5lbWl0KCJjYW5jZWxlZG11bHRpcGxlIixbZV0pKTtpZih0aGlzLm9wdGlvbnMuYXV0b1Byb2Nlc3NRdWV1ZSlyZXR1cm4gdGhpcy5wcm9jZXNzUXVldWUoKX19LHtrZXk6InJlc29sdmVPcHRpb24iLHZhbHVlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KHQ+MT90LTE6MCksbj0xO248dDtuKyspaVtuLTFdPWFyZ3VtZW50c1tuXTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsaSk6ZX19LHtrZXk6InVwbG9hZEZpbGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnVwbG9hZEZpbGVzKFtlXSl9fSx7a2V5OiJ1cGxvYWRGaWxlcyIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLl90cmFuc2Zvcm1GaWxlcyhlLChmdW5jdGlvbihpKXtpZih0Lm9wdGlvbnMuY2h1bmtpbmcpe3ZhciBuPWlbMF07ZVswXS51cGxvYWQuY2h1bmtlZD10Lm9wdGlvbnMuY2h1bmtpbmcmJih0Lm9wdGlvbnMuZm9yY2VDaHVua2luZ3x8bi5zaXplPnQub3B0aW9ucy5jaHVua1NpemUpLGVbMF0udXBsb2FkLnRvdGFsQ2h1bmtDb3VudD1NYXRoLmNlaWwobi5zaXplL3Qub3B0aW9ucy5jaHVua1NpemUpfWlmKGVbMF0udXBsb2FkLmNodW5rZWQpe3ZhciByPXQsYT10LGw9ZVswXTtuPWlbMF07bC51cGxvYWQuY2h1bmtzPVtdO3ZhciBzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dm9pZCAwIT09bC51cGxvYWQuY2h1bmtzW3RdOyl0Kys7aWYoISh0Pj1sLnVwbG9hZC50b3RhbENodW5rQ291bnQpKXswO3ZhciBpPXQqci5vcHRpb25zLmNodW5rU2l6ZSxhPU1hdGgubWluKGkrci5vcHRpb25zLmNodW5rU2l6ZSxuLnNpemUpLHM9e25hbWU6ci5fZ2V0UGFyYW1OYW1lKDApLGRhdGE6bi53ZWJraXRTbGljZT9uLndlYmtpdFNsaWNlKGksYSk6bi5zbGljZShpLGEpLGZpbGVuYW1lOmwudXBsb2FkLmZpbGVuYW1lLGNodW5rSW5kZXg6dH07bC51cGxvYWQuY2h1bmtzW3RdPXtmaWxlOmwsaW5kZXg6dCxkYXRhQmxvY2s6cyxzdGF0dXM6by5VUExPQURJTkcscHJvZ3Jlc3M6MCxyZXRyaWVzOjB9LHIuX3VwbG9hZERhdGEoZSxbc10pfX07aWYobC51cGxvYWQuZmluaXNoZWRDaHVua1VwbG9hZD1mdW5jdGlvbih0LGkpe3ZhciBuPWEscj0hMDt0LnN0YXR1cz1vLlNVQ0NFU1MsdC5kYXRhQmxvY2s9bnVsbCx0LnJlc3BvbnNlPXQueGhyLnJlc3BvbnNlVGV4dCx0LnJlc3BvbnNlSGVhZGVycz10Lnhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSx0Lnhocj1udWxsO2Zvcih2YXIgdT0wO3U8bC51cGxvYWQudG90YWxDaHVua0NvdW50O3UrKyl7aWYodm9pZCAwPT09bC51cGxvYWQuY2h1bmtzW3VdKXJldHVybiBzKCk7bC51cGxvYWQuY2h1bmtzW3VdLnN0YXR1cyE9PW8uU1VDQ0VTUyYmKHI9ITEpfXImJmEub3B0aW9ucy5jaHVua3NVcGxvYWRlZChsLChmdW5jdGlvbigpe24uX2ZpbmlzaGVkKGUsaSxudWxsKX0pKX0sdC5vcHRpb25zLnBhcmFsbGVsQ2h1bmtVcGxvYWRzKWZvcih2YXIgdT0wO3U8bC51cGxvYWQudG90YWxDaHVua0NvdW50O3UrKylzKCk7ZWxzZSBzKCl9ZWxzZXt2YXIgYz1bXTtmb3IodT0wO3U8ZS5sZW5ndGg7dSsrKWNbdV09e25hbWU6dC5fZ2V0UGFyYW1OYW1lKHUpLGRhdGE6aVt1XSxmaWxlbmFtZTplW3VdLnVwbG9hZC5maWxlbmFtZX07dC5fdXBsb2FkRGF0YShlLGMpfX0pKX19LHtrZXk6Il9nZXRDaHVuayIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGk9MDtpPGUudXBsb2FkLnRvdGFsQ2h1bmtDb3VudDtpKyspaWYodm9pZCAwIT09ZS51cGxvYWQuY2h1bmtzW2ldJiZlLnVwbG9hZC5jaHVua3NbaV0ueGhyPT09dClyZXR1cm4gZS51cGxvYWQuY2h1bmtzW2ldfX0se2tleToiX3VwbG9hZERhdGEiLHZhbHVlOmZ1bmN0aW9uKHQsaSl7dmFyIG49dGhpcyxyPXRoaXMsYT10aGlzLG89dGhpcyxsPW5ldyBYTUxIdHRwUmVxdWVzdCxzPSEwLGM9ITEsZD12b2lkIDA7dHJ5e2Zvcih2YXIgaD10W1N5bWJvbC5pdGVyYXRvcl0oKTshKHM9KHg9aC5uZXh0KCkpLmRvbmUpO3M9ITApeyhnPXgudmFsdWUpLnhocj1sfX1jYXRjaChlKXtjPSEwLGQ9ZX1maW5hbGx5e3RyeXtzfHxudWxsPT1oLnJldHVybnx8aC5yZXR1cm4oKX1maW5hbGx5e2lmKGMpdGhyb3cgZH19dFswXS51cGxvYWQuY2h1bmtlZCYmKHRbMF0udXBsb2FkLmNodW5rc1tpWzBdLmNodW5rSW5kZXhdLnhocj1sKTt2YXIgcD10aGlzLnJlc29sdmVPcHRpb24odGhpcy5vcHRpb25zLm1ldGhvZCx0LGkpLGY9dGhpcy5yZXNvbHZlT3B0aW9uKHRoaXMub3B0aW9ucy51cmwsdCxpKTtsLm9wZW4ocCxmLCEwKSx0aGlzLnJlc29sdmVPcHRpb24odGhpcy5vcHRpb25zLnRpbWVvdXQsdCkmJihsLnRpbWVvdXQ9dGhpcy5yZXNvbHZlT3B0aW9uKHRoaXMub3B0aW9ucy50aW1lb3V0LHQpKSxsLndpdGhDcmVkZW50aWFscz0hIXRoaXMub3B0aW9ucy53aXRoQ3JlZGVudGlhbHMsbC5vbmxvYWQ9ZnVuY3Rpb24oZSl7bi5fZmluaXNoZWRVcGxvYWRpbmcodCxsLGUpfSxsLm9udGltZW91dD1mdW5jdGlvbigpe3IuX2hhbmRsZVVwbG9hZEVycm9yKHQsbCwiUmVxdWVzdCB0aW1lZG91dCBhZnRlciAiLmNvbmNhdChyLm9wdGlvbnMudGltZW91dC8xZTMsIiBzZWNvbmRzIikpfSxsLm9uZXJyb3I9ZnVuY3Rpb24oKXthLl9oYW5kbGVVcGxvYWRFcnJvcih0LGwpfSwobnVsbCE9bC51cGxvYWQ/bC51cGxvYWQ6bCkub25wcm9ncmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gby5fdXBkYXRlRmlsZXNVcGxvYWRQcm9ncmVzcyh0LGwsZSl9O3ZhciBtPXRoaXMub3B0aW9ucy5kZWZhdWx0SGVhZGVycz97QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ2FjaGUtQ29udHJvbCI6Im5vLWNhY2hlIiwiWC1SZXF1ZXN0ZWQtV2l0aCI6IlhNTEh0dHBSZXF1ZXN0In06e307Zm9yKHZhciB2IGluIHRoaXMub3B0aW9ucy5iaW5hcnlCb2R5JiYobVsiQ29udGVudC1UeXBlIl09dFswXS50eXBlKSx0aGlzLm9wdGlvbnMuaGVhZGVycyYmZSh1KShtLHRoaXMub3B0aW9ucy5oZWFkZXJzKSxtKXt2YXIgeT1tW3ZdO3kmJmwuc2V0UmVxdWVzdEhlYWRlcih2LHkpfWlmKHRoaXMub3B0aW9ucy5iaW5hcnlCb2R5KXtzPSEwLGM9ITEsZD12b2lkIDA7dHJ5e2ZvcihoPXRbU3ltYm9sLml0ZXJhdG9yXSgpOyEocz0oeD1oLm5leHQoKSkuZG9uZSk7cz0hMCl7dmFyIGc9eC52YWx1ZTt0aGlzLmVtaXQoInNlbmRpbmciLGcsbCl9fWNhdGNoKGUpe2M9ITAsZD1lfWZpbmFsbHl7dHJ5e3N8fG51bGw9PWgucmV0dXJufHxoLnJldHVybigpfWZpbmFsbHl7aWYoYyl0aHJvdyBkfX10aGlzLm9wdGlvbnMudXBsb2FkTXVsdGlwbGUmJnRoaXMuZW1pdCgic2VuZGluZ211bHRpcGxlIix0LGwpLHRoaXMuc3VibWl0UmVxdWVzdChsLG51bGwsdCl9ZWxzZXt2YXIgYj1uZXcgRm9ybURhdGE7aWYodGhpcy5vcHRpb25zLnBhcmFtcyl7dmFyIGs9dGhpcy5vcHRpb25zLnBhcmFtcztmb3IodmFyIHcgaW4iZnVuY3Rpb24iPT10eXBlb2YgayYmKGs9ay5jYWxsKHRoaXMsdCxsLHRbMF0udXBsb2FkLmNodW5rZWQ/dGhpcy5fZ2V0Q2h1bmsodFswXSxsKTpudWxsKSksayl7dmFyIEY9a1t3XTtpZihBcnJheS5pc0FycmF5KEYpKWZvcih2YXIgRT0wO0U8Ri5sZW5ndGg7RSsrKWIuYXBwZW5kKHcsRltFXSk7ZWxzZSBiLmFwcGVuZCh3LEYpfX1zPSEwLGM9ITEsZD12b2lkIDA7dHJ5e3ZhciB4O2ZvcihoPXRbU3ltYm9sLml0ZXJhdG9yXSgpOyEocz0oeD1oLm5leHQoKSkuZG9uZSk7cz0hMCl7Zz14LnZhbHVlO3RoaXMuZW1pdCgic2VuZGluZyIsZyxsLGIpfX1jYXRjaChlKXtjPSEwLGQ9ZX1maW5hbGx5e3RyeXtzfHxudWxsPT1oLnJldHVybnx8aC5yZXR1cm4oKX1maW5hbGx5e2lmKGMpdGhyb3cgZH19dGhpcy5vcHRpb25zLnVwbG9hZE11bHRpcGxlJiZ0aGlzLmVtaXQoInNlbmRpbmdtdWx0aXBsZSIsdCxsLGIpLHRoaXMuX2FkZEZvcm1FbGVtZW50RGF0YShiKTtmb3IoRT0wO0U8aS5sZW5ndGg7RSsrKXt2YXIgej1pW0VdO2IuYXBwZW5kKHoubmFtZSx6LmRhdGEsei5maWxlbmFtZSl9dGhpcy5zdWJtaXRSZXF1ZXN0KGwsYix0KX19fSx7a2V5OiJfdHJhbnNmb3JtRmlsZXMiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPXRoaXMsbj1mdW5jdGlvbihuKXtpLm9wdGlvbnMudHJhbnNmb3JtRmlsZS5jYWxsKGksZVtuXSwoZnVuY3Rpb24oaSl7cltuXT1pLCsrYT09PWUubGVuZ3RoJiZ0KHIpfSkpfSxyPVtdLGE9MCxvPTA7bzxlLmxlbmd0aDtvKyspbihvKX19LHtrZXk6Il9hZGRGb3JtRWxlbWVudERhdGEiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PSEwLGk9ITEsbj12b2lkIDA7aWYoIkZPUk0iPT09dGhpcy5lbGVtZW50LnRhZ05hbWUpdHJ5e2Zvcih2YXIgcj10aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGJ1dHRvbiIpW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KHM9ci5uZXh0KCkpLmRvbmUpO3Q9ITApe3ZhciBhPXMudmFsdWUsbz1hLmdldEF0dHJpYnV0ZSgibmFtZSIpLGw9YS5nZXRBdHRyaWJ1dGUoInR5cGUiKTtpZihsJiYobD1sLnRvTG93ZXJDYXNlKCkpLG51bGwhPW8paWYoIlNFTEVDVCI9PT1hLnRhZ05hbWUmJmEuaGFzQXR0cmlidXRlKCJtdWx0aXBsZSIpKXt0PSEwLGk9ITEsbj12b2lkIDA7dHJ5e3ZhciBzO2ZvcihyPWEub3B0aW9uc1tTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShzPXIubmV4dCgpKS5kb25lKTt0PSEwKXt2YXIgdT1zLnZhbHVlO3Uuc2VsZWN0ZWQmJmUuYXBwZW5kKG8sdS52YWx1ZSl9fWNhdGNoKGUpe2k9ITAsbj1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PXIucmV0dXJufHxyLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBufX19ZWxzZSghbHx8ImNoZWNrYm94IiE9PWwmJiJyYWRpbyIhPT1sfHxhLmNoZWNrZWQpJiZlLmFwcGVuZChvLGEudmFsdWUpfX1jYXRjaChlKXtpPSEwLG49ZX1maW5hbGx5e3RyeXt0fHxudWxsPT1yLnJldHVybnx8ci5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgbn19fX0se2tleToiX3VwZGF0ZUZpbGVzVXBsb2FkUHJvZ3Jlc3MiLHZhbHVlOmZ1bmN0aW9uKGUsdCxpKXt2YXIgbj0hMCxyPSExLGE9dm9pZCAwO2lmKGVbMF0udXBsb2FkLmNodW5rZWQpe2M9ZVswXTt2YXIgbz10aGlzLl9nZXRDaHVuayhjLHQpO2k/KG8ucHJvZ3Jlc3M9MTAwKmkubG9hZGVkL2kudG90YWwsby50b3RhbD1pLnRvdGFsLG8uYnl0ZXNTZW50PWkubG9hZGVkKTooby5wcm9ncmVzcz0xMDAsby5ieXRlc1NlbnQ9by50b3RhbCksYy51cGxvYWQucHJvZ3Jlc3M9MCxjLnVwbG9hZC50b3RhbD0wLGMudXBsb2FkLmJ5dGVzU2VudD0wO2Zvcih2YXIgbD0wO2w8Yy51cGxvYWQudG90YWxDaHVua0NvdW50O2wrKyljLnVwbG9hZC5jaHVua3NbbF0mJnZvaWQgMCE9PWMudXBsb2FkLmNodW5rc1tsXS5wcm9ncmVzcyYmKGMudXBsb2FkLnByb2dyZXNzKz1jLnVwbG9hZC5jaHVua3NbbF0ucHJvZ3Jlc3MsYy51cGxvYWQudG90YWwrPWMudXBsb2FkLmNodW5rc1tsXS50b3RhbCxjLnVwbG9hZC5ieXRlc1NlbnQrPWMudXBsb2FkLmNodW5rc1tsXS5ieXRlc1NlbnQpO2MudXBsb2FkLnByb2dyZXNzPWMudXBsb2FkLnByb2dyZXNzL2MudXBsb2FkLnRvdGFsQ2h1bmtDb3VudCx0aGlzLmVtaXQoInVwbG9hZHByb2dyZXNzIixjLGMudXBsb2FkLnByb2dyZXNzLGMudXBsb2FkLmJ5dGVzU2VudCl9ZWxzZSB0cnl7Zm9yKHZhciBzLHU9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShzPXUubmV4dCgpKS5kb25lKTtuPSEwKXt2YXIgYzsoYz1zLnZhbHVlKS51cGxvYWQudG90YWwmJmMudXBsb2FkLmJ5dGVzU2VudCYmYy51cGxvYWQuYnl0ZXNTZW50PT1jLnVwbG9hZC50b3RhbHx8KGk/KGMudXBsb2FkLnByb2dyZXNzPTEwMCppLmxvYWRlZC9pLnRvdGFsLGMudXBsb2FkLnRvdGFsPWkudG90YWwsYy51cGxvYWQuYnl0ZXNTZW50PWkubG9hZGVkKTooYy51cGxvYWQucHJvZ3Jlc3M9MTAwLGMudXBsb2FkLmJ5dGVzU2VudD1jLnVwbG9hZC50b3RhbCksdGhpcy5lbWl0KCJ1cGxvYWRwcm9ncmVzcyIsYyxjLnVwbG9hZC5wcm9ncmVzcyxjLnVwbG9hZC5ieXRlc1NlbnQpKX19Y2F0Y2goZSl7cj0hMCxhPWV9ZmluYWxseXt0cnl7bnx8bnVsbD09dS5yZXR1cm58fHUucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IGF9fX19LHtrZXk6Il9maW5pc2hlZFVwbG9hZGluZyIsdmFsdWU6ZnVuY3Rpb24oZSx0LGkpe3ZhciBuO2lmKGVbMF0uc3RhdHVzIT09by5DQU5DRUxFRCYmND09PXQucmVhZHlTdGF0ZSl7aWYoImFycmF5YnVmZmVyIiE9PXQucmVzcG9uc2VUeXBlJiYiYmxvYiIhPT10LnJlc3BvbnNlVHlwZSYmKG49dC5yZXNwb25zZVRleHQsdC5nZXRSZXNwb25zZUhlYWRlcigiY29udGVudC10eXBlIikmJn50LmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LXR5cGUiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIikpKXRyeXtuPUpTT04ucGFyc2Uobil9Y2F0Y2goZSl7aT1lLG49IkludmFsaWQgSlNPTiByZXNwb25zZSBmcm9tIHNlcnZlci4ifXRoaXMuX3VwZGF0ZUZpbGVzVXBsb2FkUHJvZ3Jlc3MoZSx0KSwyMDA8PXQuc3RhdHVzJiZ0LnN0YXR1czwzMDA/ZVswXS51cGxvYWQuY2h1bmtlZD9lWzBdLnVwbG9hZC5maW5pc2hlZENodW5rVXBsb2FkKHRoaXMuX2dldENodW5rKGVbMF0sdCksbik6dGhpcy5fZmluaXNoZWQoZSxuLGkpOnRoaXMuX2hhbmRsZVVwbG9hZEVycm9yKGUsdCxuKX19fSx7a2V5OiJfaGFuZGxlVXBsb2FkRXJyb3IiLHZhbHVlOmZ1bmN0aW9uKGUsdCxpKXtpZihlWzBdLnN0YXR1cyE9PW8uQ0FOQ0VMRUQpe2lmKGVbMF0udXBsb2FkLmNodW5rZWQmJnRoaXMub3B0aW9ucy5yZXRyeUNodW5rcyl7dmFyIG49dGhpcy5fZ2V0Q2h1bmsoZVswXSx0KTtpZihuLnJldHJpZXMrKzx0aGlzLm9wdGlvbnMucmV0cnlDaHVua3NMaW1pdClyZXR1cm4gdm9pZCB0aGlzLl91cGxvYWREYXRhKGUsW24uZGF0YUJsb2NrXSk7Y29uc29sZS53YXJuKCJSZXRyaWVkIHRoaXMgY2h1bmsgdG9vIG9mdGVuLiBHaXZpbmcgdXAuIil9dGhpcy5fZXJyb3JQcm9jZXNzaW5nKGUsaXx8dGhpcy5vcHRpb25zLmRpY3RSZXNwb25zZUVycm9yLnJlcGxhY2UoInt7c3RhdHVzQ29kZX19Iix0LnN0YXR1cyksdCl9fX0se2tleToic3VibWl0UmVxdWVzdCIsdmFsdWU6ZnVuY3Rpb24oZSx0LGkpe2lmKDE9PWUucmVhZHlTdGF0ZSlpZih0aGlzLm9wdGlvbnMuYmluYXJ5Qm9keSlpZihpWzBdLnVwbG9hZC5jaHVua2VkKXt2YXIgbj10aGlzLl9nZXRDaHVuayhpWzBdLGUpO2Uuc2VuZChuLmRhdGFCbG9jay5kYXRhKX1lbHNlIGUuc2VuZChpWzBdKTtlbHNlIGUuc2VuZCh0KTtlbHNlIGNvbnNvbGUud2FybigiQ2Fubm90IHNlbmQgdGhpcyByZXF1ZXN0IGJlY2F1c2UgdGhlIFhNTEh0dHBSZXF1ZXN0LnJlYWR5U3RhdGUgaXMgbm90IE9QRU5FRC4iKX19LHtrZXk6Il9maW5pc2hlZCIsdmFsdWU6ZnVuY3Rpb24oZSx0LGkpe3ZhciBuPSEwLHI9ITEsYT12b2lkIDA7dHJ5e2Zvcih2YXIgbCxzPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0obD1zLm5leHQoKSkuZG9uZSk7bj0hMCl7dmFyIHU9bC52YWx1ZTt1LnN0YXR1cz1vLlNVQ0NFU1MsdGhpcy5lbWl0KCJzdWNjZXNzIix1LHQsaSksdGhpcy5lbWl0KCJjb21wbGV0ZSIsdSl9fWNhdGNoKGUpe3I9ITAsYT1lfWZpbmFsbHl7dHJ5e258fG51bGw9PXMucmV0dXJufHxzLnJldHVybigpfWZpbmFsbHl7aWYocil0aHJvdyBhfX1pZih0aGlzLm9wdGlvbnMudXBsb2FkTXVsdGlwbGUmJih0aGlzLmVtaXQoInN1Y2Nlc3NtdWx0aXBsZSIsZSx0LGkpLHRoaXMuZW1pdCgiY29tcGxldGVtdWx0aXBsZSIsZSkpLHRoaXMub3B0aW9ucy5hdXRvUHJvY2Vzc1F1ZXVlKXJldHVybiB0aGlzLnByb2Nlc3NRdWV1ZSgpfX0se2tleToiX2Vycm9yUHJvY2Vzc2luZyIsdmFsdWU6ZnVuY3Rpb24oZSx0LGkpe3ZhciBuPSEwLHI9ITEsYT12b2lkIDA7dHJ5e2Zvcih2YXIgbCxzPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0obD1zLm5leHQoKSkuZG9uZSk7bj0hMCl7dmFyIHU9bC52YWx1ZTt1LnN0YXR1cz1vLkVSUk9SLHRoaXMuZW1pdCgiZXJyb3IiLHUsdCxpKSx0aGlzLmVtaXQoImNvbXBsZXRlIix1KX19Y2F0Y2goZSl7cj0hMCxhPWV9ZmluYWxseXt0cnl7bnx8bnVsbD09cy5yZXR1cm58fHMucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IGF9fWlmKHRoaXMub3B0aW9ucy51cGxvYWRNdWx0aXBsZSYmKHRoaXMuZW1pdCgiZXJyb3JtdWx0aXBsZSIsZSx0LGkpLHRoaXMuZW1pdCgiY29tcGxldGVtdWx0aXBsZSIsZSkpLHRoaXMub3B0aW9ucy5hdXRvUHJvY2Vzc1F1ZXVlKXJldHVybiB0aGlzLnByb2Nlc3NRdWV1ZSgpfX1dLFt7a2V5OiJpbml0Q2xhc3MiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wcm90b3R5cGUuRW1pdHRlcj1oLHRoaXMucHJvdG90eXBlLmV2ZW50cz1bImRyb3AiLCJkcmFnc3RhcnQiLCJkcmFnZW5kIiwiZHJhZ2VudGVyIiwiZHJhZ292ZXIiLCJkcmFnbGVhdmUiLCJhZGRlZGZpbGUiLCJhZGRlZGZpbGVzIiwicmVtb3ZlZGZpbGUiLCJ0aHVtYm5haWwiLCJlcnJvciIsImVycm9ybXVsdGlwbGUiLCJwcm9jZXNzaW5nIiwicHJvY2Vzc2luZ211bHRpcGxlIiwidXBsb2FkcHJvZ3Jlc3MiLCJ0b3RhbHVwbG9hZHByb2dyZXNzIiwic2VuZGluZyIsInNlbmRpbmdtdWx0aXBsZSIsInN1Y2Nlc3MiLCJzdWNjZXNzbXVsdGlwbGUiLCJjYW5jZWxlZCIsImNhbmNlbGVkbXVsdGlwbGUiLCJjb21wbGV0ZSIsImNvbXBsZXRlbXVsdGlwbGUiLCJyZXNldCIsIm1heGZpbGVzZXhjZWVkZWQiLCJtYXhmaWxlc3JlYWNoZWQiLCJxdWV1ZWNvbXBsZXRlIl0sdGhpcy5wcm90b3R5cGUuX3RodW1ibmFpbFF1ZXVlPVtdLHRoaXMucHJvdG90eXBlLl9wcm9jZXNzaW5nVGh1bWJuYWlsPSExfX0se2tleToidXVpZHY0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiJ4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZywoZnVuY3Rpb24oZSl7dmFyIHQ9MTYqTWF0aC5yYW5kb20oKXwwO3JldHVybigieCI9PT1lP3Q6MyZ0fDgpLnRvU3RyaW5nKDE2KX0pKX19XSksb30oaCk7Zi5pbml0Q2xhc3MoKSxmLm9wdGlvbnM9e30sZi5vcHRpb25zRm9yRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImlkIik/Zi5vcHRpb25zW3YoZS5nZXRBdHRyaWJ1dGUoImlkIikpXTp2b2lkIDB9LGYuaW5zdGFuY2VzPVtdLGYuZm9yRWxlbWVudD1mdW5jdGlvbihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUmJihlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSkpLG51bGw9PShudWxsIT1lP2UuZHJvcHpvbmU6dm9pZCAwKSl0aHJvdyBuZXcgRXJyb3IoIk5vIERyb3B6b25lIGZvdW5kIGZvciBnaXZlbiBlbGVtZW50LiBUaGlzIGlzIHByb2JhYmx5IGJlY2F1c2UgeW91J3JlIHRyeWluZyB0byBhY2Nlc3MgaXQgYmVmb3JlIERyb3B6b25lIGhhZCB0aGUgdGltZSB0byBpbml0aWFsaXplLiBVc2UgdGhlIGBpbml0YCBvcHRpb24gdG8gc2V0dXAgYW55IGFkZGl0aW9uYWwgb2JzZXJ2ZXJzIG9uIHlvdXIgRHJvcHpvbmUuIik7cmV0dXJuIGUuZHJvcHpvbmV9LGYuZGlzY292ZXI9ZnVuY3Rpb24oKXt2YXIgZTtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKWU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmRyb3B6b25lIik7ZWxzZXtlPVtdO3ZhciB0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBpPVtdLG49ITAscj0hMSxhPXZvaWQgMDt0cnl7Zm9yKHZhciBvLGw9dFtTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShvPWwubmV4dCgpKS5kb25lKTtuPSEwKXt2YXIgcz1vLnZhbHVlOy8oXnwgKWRyb3B6b25lKCR8ICkvLnRlc3Qocy5jbGFzc05hbWUpP2kucHVzaChlLnB1c2gocykpOmkucHVzaCh2b2lkIDApfX1jYXRjaChlKXtyPSEwLGE9ZX1maW5hbGx5e3RyeXtufHxudWxsPT1sLnJldHVybnx8bC5yZXR1cm4oKX1maW5hbGx5e2lmKHIpdGhyb3cgYX19cmV0dXJuIGl9KCl9O3QoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpKSx0KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmb3JtIikpfXJldHVybiBmdW5jdGlvbigpe3ZhciB0PVtdLGk9ITAsbj0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBhLG89ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShhPW8ubmV4dCgpKS5kb25lKTtpPSEwKXt2YXIgbD1hLnZhbHVlOyExIT09Zi5vcHRpb25zRm9yRWxlbWVudChsKT90LnB1c2gobmV3IGYobCkpOnQucHVzaCh2b2lkIDApfX1jYXRjaChlKXtuPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKG4pdGhyb3cgcn19cmV0dXJuIHR9KCl9LGYuYmxvY2tlZEJyb3dzZXJzPVsvb3BlcmEuKihNYWNpbnRvc2h8V2luZG93cyBQaG9uZSkuKnZlcnNpb25cLzEyL2ldLGYuaXNCcm93c2VyU3VwcG9ydGVkPWZ1bmN0aW9uKCl7dmFyIGU9ITA7aWYod2luZG93LkZpbGUmJndpbmRvdy5GaWxlUmVhZGVyJiZ3aW5kb3cuRmlsZUxpc3QmJndpbmRvdy5CbG9iJiZ3aW5kb3cuRm9ybURhdGEmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IpaWYoImNsYXNzTGlzdCJpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpe3ZvaWQgMCE9PWYuYmxhY2tsaXN0ZWRCcm93c2VycyYmKGYuYmxvY2tlZEJyb3dzZXJzPWYuYmxhY2tsaXN0ZWRCcm93c2Vycyk7dmFyIHQ9ITAsaT0hMSxuPXZvaWQgMDt0cnl7Zm9yKHZhciByLGE9Zi5ibG9ja2VkQnJvd3NlcnNbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0ocj1hLm5leHQoKSkuZG9uZSk7dD0hMCl7ci52YWx1ZS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYoZT0hMSl9fWNhdGNoKGUpe2k9ITAsbj1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PWEucmV0dXJufHxhLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBufX19ZWxzZSBlPSExO2Vsc2UgZT0hMTtyZXR1cm4gZX0sZi5kYXRhVVJJdG9CbG9iPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1hdG9iKGUuc3BsaXQoIiwiKVsxXSksaT1lLnNwbGl0KCIsIilbMF0uc3BsaXQoIjoiKVsxXS5zcGxpdCgiOyIpWzBdLG49bmV3IEFycmF5QnVmZmVyKHQubGVuZ3RoKSxyPW5ldyBVaW50OEFycmF5KG4pLGE9MCxvPXQubGVuZ3RoLGw9MDw9bztsP2E8PW86YT49bztsP2ErKzphLS0pclthXT10LmNoYXJDb2RlQXQoYSk7cmV0dXJuIG5ldyBCbG9iKFtuXSx7dHlwZTppfSl9O3ZhciBtPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXR9KSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX0sdj1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXC1fXShcdykvZywoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCl9KSl9O2YuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5pbm5lckhUTUw9ZSx0LmNoaWxkTm9kZXNbMF19LGYuZWxlbWVudEluc2lkZT1mdW5jdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiEwO2Zvcig7ZT1lLnBhcmVudE5vZGU7KWlmKGU9PT10KXJldHVybiEwO3JldHVybiExfSxmLmdldEVsZW1lbnQ9ZnVuY3Rpb24oZSx0KXt2YXIgaTtpZigic3RyaW5nIj09dHlwZW9mIGU/aT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGUpOm51bGwhPWUubm9kZVR5cGUmJihpPWUpLG51bGw9PWkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGAiLmNvbmNhdCh0LCJgIG9wdGlvbiBwcm92aWRlZC4gUGxlYXNlIHByb3ZpZGUgYSBDU1Mgc2VsZWN0b3Igb3IgYSBwbGFpbiBIVE1MIGVsZW1lbnQuIikpO3JldHVybiBpfSxmLmdldEVsZW1lbnRzPWZ1bmN0aW9uKGUsdCl7dmFyIGksbjtpZihlIGluc3RhbmNlb2YgQXJyYXkpe249W107dHJ5e3ZhciByPSEwLGE9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgbD1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKHI9KHM9bC5uZXh0KCkpLmRvbmUpO3I9ITApaT1zLnZhbHVlLG4ucHVzaCh0aGlzLmdldEVsZW1lbnQoaSx0KSl9Y2F0Y2goZSl7YT0hMCxvPWV9ZmluYWxseXt0cnl7cnx8bnVsbD09bC5yZXR1cm58fGwucmV0dXJuKCl9ZmluYWxseXtpZihhKXRocm93IG99fX1jYXRjaChlKXtuPW51bGx9fWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKXtuPVtdO3I9ITAsYT0hMSxvPXZvaWQgMDt0cnl7dmFyIHM7Zm9yKGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShyPShzPWwubmV4dCgpKS5kb25lKTtyPSEwKWk9cy52YWx1ZSxuLnB1c2goaSl9Y2F0Y2goZSl7YT0hMCxvPWV9ZmluYWxseXt0cnl7cnx8bnVsbD09bC5yZXR1cm58fGwucmV0dXJuKCl9ZmluYWxseXtpZihhKXRocm93IG99fX1lbHNlIG51bGwhPWUubm9kZVR5cGUmJihuPVtlXSk7aWYobnVsbD09bnx8IW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBgIi5jb25jYXQodCwiYCBvcHRpb24gcHJvdmlkZWQuIFBsZWFzZSBwcm92aWRlIGEgQ1NTIHNlbGVjdG9yLCBhIHBsYWluIEhUTUwgZWxlbWVudCBvciBhIGxpc3Qgb2YgdGhvc2UuIikpO3JldHVybiBufSxmLmNvbmZpcm09ZnVuY3Rpb24oZSx0LGkpe3JldHVybiB3aW5kb3cuY29uZmlybShlKT90KCk6bnVsbCE9aT9pKCk6dm9pZCAwfSxmLmlzVmFsaWRGaWxlPWZ1bmN0aW9uKGUsdCl7aWYoIXQpcmV0dXJuITA7dD10LnNwbGl0KCIsIik7dmFyIGk9ZS50eXBlLG49aS5yZXBsYWNlKC9cLy4qJC8sIiIpLHI9ITAsYT0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciBsLHM9dFtTeW1ib2wuaXRlcmF0b3JdKCk7IShyPShsPXMubmV4dCgpKS5kb25lKTtyPSEwKXt2YXIgdT1sLnZhbHVlO2lmKCIuIj09PSh1PXUudHJpbSgpKS5jaGFyQXQoMCkpe2lmKC0xIT09ZS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih1LnRvTG93ZXJDYXNlKCksZS5uYW1lLmxlbmd0aC11Lmxlbmd0aCkpcmV0dXJuITB9ZWxzZSBpZigvXC9cKiQvLnRlc3QodSkpe2lmKG49PT11LnJlcGxhY2UoL1wvLiokLywiIikpcmV0dXJuITB9ZWxzZSBpZihpPT09dSlyZXR1cm4hMH19Y2F0Y2goZSl7YT0hMCxvPWV9ZmluYWxseXt0cnl7cnx8bnVsbD09cy5yZXR1cm58fHMucmV0dXJuKCl9ZmluYWxseXtpZihhKXRocm93IG99fXJldHVybiExfSwidW5kZWZpbmVkIiE9dHlwZW9mIGpRdWVyeSYmbnVsbCE9PWpRdWVyeSYmKGpRdWVyeS5mbi5kcm9wem9uZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3JldHVybiBuZXcgZih0aGlzLGUpfSkpfSksZi5BRERFRD0iYWRkZWQiLGYuUVVFVUVEPSJxdWV1ZWQiLGYuQUNDRVBURUQ9Zi5RVUVVRUQsZi5VUExPQURJTkc9InVwbG9hZGluZyIsZi5QUk9DRVNTSU5HPWYuVVBMT0FESU5HLGYuQ0FOQ0VMRUQ9ImNhbmNlbGVkIixmLkVSUk9SPSJlcnJvciIsZi5TVUNDRVNTPSJzdWNjZXNzIjt2YXIgeT1mdW5jdGlvbihlLHQsaSxuLHIsYSxvLGwscyx1KXt2YXIgYz1mdW5jdGlvbihlKXtlLm5hdHVyYWxXaWR0aDt2YXIgdD1lLm5hdHVyYWxIZWlnaHQsaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtpLndpZHRoPTEsaS5oZWlnaHQ9dDt2YXIgbj1pLmdldENvbnRleHQoIjJkIik7bi5kcmF3SW1hZ2UoZSwwLDApO2Zvcih2YXIgcj1uLmdldEltYWdlRGF0YSgxLDAsMSx0KS5kYXRhLGE9MCxvPXQsbD10O2w+YTspMD09PXJbNCoobC0xKSszXT9vPWw6YT1sLGw9bythPj4xO3ZhciBzPWwvdDtyZXR1cm4gMD09PXM/MTpzfSh0KTtyZXR1cm4gZS5kcmF3SW1hZ2UodCxpLG4scixhLG8sbCxzLHUvYyl9LGc9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSgpe2kodGhpcyxlKX1yZXR1cm4gcihlLG51bGwsW3trZXk6ImluaXRDbGFzcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLktFWV9TVFI9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89In19LHtrZXk6ImVuY29kZTY0Iix2YWx1ZTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9IiIsaT12b2lkIDAsbj12b2lkIDAscj0iIixhPXZvaWQgMCxvPXZvaWQgMCxsPXZvaWQgMCxzPSIiLHU9MDthPShpPWVbdSsrXSk+PjIsbz0oMyZpKTw8NHwobj1lW3UrK10pPj40LGw9KDE1Jm4pPDwyfChyPWVbdSsrXSk+PjYscz02MyZyLGlzTmFOKG4pP2w9cz02NDppc05hTihyKSYmKHM9NjQpLHQ9dCt0aGlzLktFWV9TVFIuY2hhckF0KGEpK3RoaXMuS0VZX1NUUi5jaGFyQXQobykrdGhpcy5LRVlfU1RSLmNoYXJBdChsKSt0aGlzLktFWV9TVFIuY2hhckF0KHMpLGk9bj1yPSIiLGE9bz1sPXM9IiIsdTxlLmxlbmd0aDspO3JldHVybiB0fX0se2tleToicmVzdG9yZSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtpZighZS5tYXRjaCgiZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwiKSlyZXR1cm4gdDt2YXIgaT10aGlzLmRlY29kZTY0KGUucmVwbGFjZSgiZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwiLCIiKSksbj10aGlzLnNsaWNlMlNlZ21lbnRzKGkpLHI9dGhpcy5leGlmTWFuaXB1bGF0aW9uKHQsbik7cmV0dXJuImRhdGE6aW1hZ2UvanBlZztiYXNlNjQsIi5jb25jYXQodGhpcy5lbmNvZGU2NChyKSl9fSx7a2V5OiJleGlmTWFuaXB1bGF0aW9uIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuZ2V0RXhpZkFycmF5KHQpLG49dGhpcy5pbnNlcnRFeGlmKGUsaSk7cmV0dXJuIG5ldyBVaW50OEFycmF5KG4pfX0se2tleToiZ2V0RXhpZkFycmF5Iix2YWx1ZTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9dm9pZCAwLGk9MDtpPGUubGVuZ3RoOyl7aWYoMjU1PT09KHQ9ZVtpXSlbMF0mMjI1PT09dFsxXSlyZXR1cm4gdDtpKyt9cmV0dXJuW119fSx7a2V5OiJpbnNlcnRFeGlmIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBpPWUucmVwbGFjZSgiZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwiLCIiKSxuPXRoaXMuZGVjb2RlNjQoaSkscj1uLmluZGV4T2YoMjU1LDMpLGE9bi5zbGljZSgwLHIpLG89bi5zbGljZShyKSxsPWE7cmV0dXJuIGw9KGw9bC5jb25jYXQodCkpLmNvbmNhdChvKX19LHtrZXk6InNsaWNlMlNlZ21lbnRzIix2YWx1ZTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxpPVtdOzspe2lmKDI1NT09PWVbdF0mMjE4PT09ZVt0KzFdKWJyZWFrO2lmKDI1NT09PWVbdF0mMjE2PT09ZVt0KzFdKXQrPTI7ZWxzZXt2YXIgbj10KygyNTYqZVt0KzJdK2VbdCszXSkrMixyPWUuc2xpY2UodCxuKTtpLnB1c2gociksdD1ufWlmKHQ+ZS5sZW5ndGgpYnJlYWt9cmV0dXJuIGl9fSx7a2V5OiJkZWNvZGU2NCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dm9pZCAwLGk9dm9pZCAwLG49IiIscj12b2lkIDAsYT12b2lkIDAsbz0iIixsPTAscz1bXTtmb3IoL1teQS1aYS16MC05XCtcL1w9XS9nLmV4ZWMoZSkmJmNvbnNvbGUud2FybigiVGhlcmUgd2VyZSBpbnZhbGlkIGJhc2U2NCBjaGFyYWN0ZXJzIGluIHRoZSBpbnB1dCB0ZXh0LlxuVmFsaWQgYmFzZTY0IGNoYXJhY3RlcnMgYXJlIEEtWiwgYS16LCAwLTksICcrJywgJy8nLGFuZCAnPSdcbkV4cGVjdCBlcnJvcnMgaW4gZGVjb2RpbmcuIiksZT1lLnJlcGxhY2UoL1teQS1aYS16MC05XCtcL1w9XS9nLCIiKTt0PXRoaXMuS0VZX1NUUi5pbmRleE9mKGUuY2hhckF0KGwrKykpPDwyfChyPXRoaXMuS0VZX1NUUi5pbmRleE9mKGUuY2hhckF0KGwrKykpKT4+NCxpPSgxNSZyKTw8NHwoYT10aGlzLktFWV9TVFIuaW5kZXhPZihlLmNoYXJBdChsKyspKSk+PjIsbj0oMyZhKTw8Nnwobz10aGlzLktFWV9TVFIuaW5kZXhPZihlLmNoYXJBdChsKyspKSkscy5wdXNoKHQpLDY0IT09YSYmcy5wdXNoKGkpLDY0IT09byYmcy5wdXNoKG4pLHQ9aT1uPSIiLHI9YT1vPSIiLGw8ZS5sZW5ndGg7KTtyZXR1cm4gc319XSksZX0oKTtnLmluaXRDbGFzcygpO3dpbmRvdy5Ecm9wem9uZT1mfSgpOw0KDQoNCg0KDQokKGZ1bmN0aW9uKCkgew0KDQogICAgLy8gKioqIEFkZCBzbW9vdGggc2Nyb2xsaW5nIHRvIGFsbCAuc21vb3RoLXNjcm9sbCBsaW5rcw0KICAgICQoImEuc21vb3RoLXNjcm9sbCIpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7DQogICAgICAgIGlmICh0aGlzLmhhc2ggIT09ICIiKSB7DQogICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgICAgdmFyIG9mZnNldCA9IDA7DQogICAgICAgICAgICB2YXIgaGFzaCA9IHRoaXMuaGFzaDsNCiAgICAgICAgICAgIHZhciBuZXdVcmwgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAiLy8iICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIGhhc2g7DQogICAgICAgICAgICBoZWFkZXJIZWlnaHQgPSAkKCdoZWFkZXIuc3RpY2t5LXRvcCcpLmhlaWdodCgpOw0KICAgICAgICAgICAgJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoe3Njcm9sbFRvcDogJChoYXNoKS5vZmZzZXQoKS50b3AgLSBoZWFkZXJIZWlnaHQgLSBvZmZzZXR9LCA4MDApOw0KICAgICAgICAgICAgLy8gaGlzdG9yeS5wdXNoU3RhdGUoe30sICcnLCBuZXdVcmwpOw0KICAgICAgICB9DQogICAgfSk7DQoNCg0KICAgIC8vIGVjYl9maWxlX3NlbGVjdG9yICAmIGVjYl9maWxlX3NlbGVjdG9yX3ByZXZpZXcgDQogICAgJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcuZWNiX2ZpbGVfc2VsZWN0b3Igc2VsZWN0JywgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICB2YXIgZmlsZV9uYW1lID0gJCh0aGlzKS52YWwoKSwNCiAgICAgICAgICAgICRmaWxlX3RodW1iID0gJCh0aGlzKS5jbG9zZXN0KCcuZWNiX2ZpbGVfc2VsZWN0b3InKS5maW5kKCcuZWNiX2ZpbGVfc2VsZWN0b3JfcHJldmlldycpOw0KICAgICAgICAkZmlsZV90aHVtYi5hdHRyKCdzcmMnLCAnJykucmVtb3ZlQ2xhc3MoJ3Nob3cnKTsgLy8gcmVzZXQgdGh1bWJuYWlsDQogICAgICAgIGlmIChmaWxlX25hbWUhPScnKSB7DQogICAgICAgICAgICAvLyByZXRyaWV2ZSB0aHVtYm5haWwgKGNyZWF0ZSBpZiBuZWNlc3NhcnkpDQogICAgICAgICAgICAkLmFqYXgoew0KICAgICAgICAgICAgICAgIHVybDogJGZpbGVfdGh1bWIuZGF0YSgnYWpheC11cmwnKSsnJnNob3d0ZW1wbGF0ZT1mYWxzZScsDQogICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsDQogICAgICAgICAgICAgICAgZGF0YTogew0KICAgICAgICAgICAgICAgICAgICAnZmlsZV9uYW1lJzogZmlsZV9uYW1lLA0KICAgICAgICAgICAgICAgICAgICAndG9wX2Rpcic6ICcnLCAvLyBpbmNsdWRlZCBpbiBmaWxlbmFtZQ0KICAgICAgICAgICAgICAgICAgICAndGh1bWJuYWlsX3dpZHRoJzogJGZpbGVfdGh1bWIuZGF0YSgndGh1bWJuYWlsLXdpZHRoJyksDQogICAgICAgICAgICAgICAgICAgICd0aHVtYm5haWxfaGVpZ2h0JzogJGZpbGVfdGh1bWIuZGF0YSgndGh1bWJuYWlsLWhlaWdodCcpDQogICAgICAgICAgICAgICAgfQ0KCSAgICAgICAgfSkuZG9uZSggZnVuY3Rpb24odGh1bWJfdXJsKSB7DQogICAgICAgICAgICAgICAgaWYgKHRodW1iX3VybCkgeyAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJGZpbGVfdGh1bWIuYXR0cignc3JjJywgdGh1bWJfdXJsKyc/JytEYXRlLm5vdygpKS5hZGRDbGFzcygnc2hvdycpOw0KICAgICAgICAgICAgICAgIH0NCgkJICAgIH0pDQogICAgICAgIH0NCiAgICB9KTsNCiAgICAkKGRvY3VtZW50KS5vbignZXJyb3InLCAnLmVjYl9maWxlX3NlbGVjdG9yX3ByZXZpZXcnLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ3Nob3cnKTsgDQogICAgfSk7DQoNCg0KICAgIC8vIGVjYl9maWxlX3BpY2tlciAmIGVjYl9maWxlX3BpY2tlcl9wcmV2aWV3IA0KICAgIC8vICAgICAtIGVjYl9maWxlX3BpY2tlciB0byBoYXZlIHN0YXR1cyBjbGFzcyBvZiBlaXRoZXI6ICdlbXB0eScsICd0aHVtYm5haWwnIG9yICdmaWxlLWljb24nDQogICAgJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcuZWNiX2ZpbGVfcGlja2VyIC5jbXNmcF9lbGVtJywgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICB2YXIgZmlsZV9uYW1lID0gJCh0aGlzKS52YWwoKSwNCiAgICAgICAgICAgICRmaWxlX3BpY2tlciA9ICQodGhpcykuY2xvc2VzdCgnLmVjYl9maWxlX3BpY2tlcicpLA0KICAgICAgICAgICAgJGZpbGVfdGh1bWIgPSAkZmlsZV9waWNrZXIuZmluZCgnLmVjYl9maWxlX3BpY2tlcl9wcmV2aWV3JyksDQogICAgICAgICAgICAkZmlsZV90aXRsZSA9ICRmaWxlX3BpY2tlci5maW5kKCcuZWNiX2ZpbGVfcGlja2VyX3RpdGxlJyk7DQogICAgICAgICRmaWxlX3BpY2tlci5hZGRDbGFzcygnZW1wdHknKS5yZW1vdmVDbGFzcygndGh1bWJuYWlsIGZpbGUtaWNvbicpOyAgLy8gcmVzZXQgZmlsZV9waWNrZXIgDQogICAgICAgICRmaWxlX3RodW1iLmF0dHIoJ3NyYycsICcnKTsgICAvLyByZXNldCB0aHVtYm5haWwNCiAgICAgICAgJGZpbGVfdGl0bGUuaHRtbCgnJyk7DQogICAgICAgIGlmIChmaWxlX25hbWUhPScnKSB7DQogICAgICAgICAgICAvLyByZXRyaWV2ZSB0aHVtYm5haWwgKGNyZWF0ZSBpZiBuZWNlc3NhcnkpDQogICAgICAgICAgICAkZmlsZV9waWNrZXIucmVtb3ZlQ2xhc3MoJ2VtcHR5JykuYWRkQ2xhc3MoJ2ZpbGUtaWNvbicpOw0KICAgICAgICAgICAgJGZpbGVfdGl0bGUuaHRtbChmaWxlX25hbWUpOw0KICAgICAgICAgICAgJC5hamF4KHsNCiAgICAgICAgICAgICAgICB1cmw6ICRmaWxlX3RodW1iLmRhdGEoJ2FqYXgtdXJsJykrJyZzaG93dGVtcGxhdGU9ZmFsc2UnLA0KICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLA0KICAgICAgICAgICAgICAgIGRhdGE6IHsNCiAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfbmFtZSc6IGZpbGVfbmFtZSwNCiAgICAgICAgICAgICAgICAgICAgJ3RvcF9kaXInOiAkZmlsZV90aHVtYi5kYXRhKCd0b3AtZGlyJyksDQogICAgICAgICAgICAgICAgICAgICd0aHVtYm5haWxfd2lkdGgnOiAkZmlsZV90aHVtYi5kYXRhKCd0aHVtYm5haWwtd2lkdGgnKSwNCiAgICAgICAgICAgICAgICAgICAgJ3RodW1ibmFpbF9oZWlnaHQnOiAkZmlsZV90aHVtYi5kYXRhKCd0aHVtYm5haWwtaGVpZ2h0JykNCiAgICAgICAgICAgICAgICB9DQoJICAgICAgICB9KS5kb25lKCBmdW5jdGlvbih0aHVtYl91cmwpIHsNCiAgICAgICAgICAgICAgICBpZiAodGh1bWJfdXJsKSB7ICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAkZmlsZV90aHVtYi5hdHRyKCdzcmMnLCB0aHVtYl91cmwrJz8nK0RhdGUubm93KCkpOw0KICAgICAgICAgICAgICAgICAgICAkZmlsZV9waWNrZXIuYWRkQ2xhc3MoJ3RodW1ibmFpbCcpLnJlbW92ZUNsYXNzKCdmaWxlLWljb24nKTsNCiAgICAgICAgICAgICAgICB9IA0KCQkgICAgfSkNCiAgICAgICAgfQ0KICAgIH0pOw0KDQoNCg0KICAgIC8vIGVjYl9tdWx0aXBsZV9zZWxlY3QNCiAgICAkKGRvY3VtZW50KS5vbignY2hhbmdlJywgJy5lY2JfbXVsdGlwbGVfc2VsZWN0IHNlbGVjdCcsIGZ1bmN0aW9uIChlKSB7DQogICAgICAgIHZhciBzZWxlY3RlZFZhbHVlcyA9ICQodGhpcykudmFsKCkgPyAkKHRoaXMpLnZhbCgpLmpvaW4oJywnKSA6ICcnOw0KICAgICAgICAkKHRoaXMpLnNpYmxpbmdzKCcuZWNiX3NlbGVjdF9pbnB1dCcpLnZhbCggc2VsZWN0ZWRWYWx1ZXMgKTsNCiAgICAgICAgLy8gdGhlbiB1cGRhdGUgc3VtbWFyeSB0ZXh0IC0gaWYgaXQgZXhpc3RzDQogICAgICAgIHZhciAkc2VsZWN0U3VtbWFyeSA9ICQodGhpcykuc2libGluZ3MoJy5lY2Jfc2VsZWN0X3N1bW1hcnknKTsNCiAgICAgICAgaWYgKCAkc2VsZWN0U3VtbWFyeS5sZW5ndGg+MCApIHsNCiAgICAgICAgICAgIHZhciBzZWxlY3RlZFRleHQgPSAkKHRoaXMpLmNoaWxkcmVuKCdvcHRpb246c2VsZWN0ZWQnKS5tYXAoZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICQodGhpcykudGV4dCgpOw0KICAgICAgICAgICAgICAgIH0pLmdldCgpLmpvaW4oJywgJyk7DQogICAgICAgICAgICAkKHRoaXMpLnNpYmxpbmdzKCcuZWNiX3NlbGVjdF9zdW1tYXJ5JykudmFsKCBzZWxlY3RlZFRleHQgKTsNCiAgICAgICAgICAgIHZhciAkc3VtbWFyeVRleHQgPSAkKHRoaXMpLnNpYmxpbmdzKCcuZWNiX3NlbGVjdF9zdW1tYXJ5JykuY2hpbGRyZW4oJy5lY2Jfc2VsZWN0X3RleHQnKTsNCiAgICAgICAgICAgIGlmICggc2VsZWN0ZWRUZXh0PT0nJyApIHsNCiAgICAgICAgICAgICAgICAkc2VsZWN0U3VtbWFyeS5jaGlsZHJlbignLmVjYl9zZWxlY3RfdGV4dCcpLmh0bWwoICRzdW1tYXJ5VGV4dC5kYXRhKCdlbXB0eScpICk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICRzZWxlY3RTdW1tYXJ5LmNoaWxkcmVuKCcuZWNiX3NlbGVjdF90ZXh0JykuaHRtbCggc2VsZWN0ZWRUZXh0ICk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9KTsNCg0KICAgIC8vIGVjYl9jb21wYWN0IC0gc2hvdyAmIGhpZGUgdGhlIGZ1bGwgc2VsZWN0ICYgdXBkYXRlIHN1bW1hcnkgdGV4dA0KICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICcuZWNiX2NvbXBhY3QgLmVjYl9zZWxlY3RfZWRpdCcsIGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5lY2JfY29tcGFjdCcpLnRvZ2dsZUNsYXNzKCdzaG93Jyk7DQogICAgfSk7DQoNCg0KDQogICAgLy8gZWNiMi1oaWRlLWxhYmVsIGZ1bmN0aW9uYWxpdHkNCiAgICAkKCcuZWNiMi1oaWRlLWxhYmVsJykucGFyZW50KCkuc2libGluZ3MoJy5wYWdldGV4dCcpLmhpZGUoKTsNCg0KDQoNCg0KDQoNCg0KDQoNCiAgICAvLyByZWdpb24gUkVQRUFURVINCiAgICAvLyBhbGwgZnVuY3Rpb25zIHJlbGF0ZWQgdG8gdGhlIEVDQjIgUmVwZWF0ZXIgZmllbGRzDQogICAgJCgnLmVjYl9yZXBlYXRlci5zb3J0YWJsZScpLnNvcnRhYmxlKHsNCiAgICAgICAgaXRlbXM6ICcuc29ydGFibGUtaXRlbScsDQogICAgICAgIHBsYWNlaG9sZGVyOiAncmVwZWF0ZXItcGxhY2Vob2xkZXInLA0KICAgICAgICBoYW5kbGU6ICcuaGFuZGxlJywNCiAgICAgICAgLy8gZm9yY2VQbGFjZWhvbGRlclNpemU6IHRydWUsDQogICAgICAgIG9wYWNpdHk6IDAuOCwNCiAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKGUsIHVpKSB7DQogICAgICAgICAgICBpZiAodHlwZW9mIHRpbnlNQ0UhPT0ndW5kZWZpbmVkJykgew0KICAgICAgICAgICAgICAgIHRpbnlNQ0UudHJpZ2dlclNhdmUoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgc3RvcDogZnVuY3Rpb24oZSx1aSkgew0KICAgICAgICAgICAgJCh0aGlzKS5maW5kKCd0ZXh0YXJlYS53eXNpd3lnJykuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRpbnlNQ0UhPT0ndW5kZWZpbmVkJykgew0KICAgICAgICAgICAgICAgICAgICAvLyB0aW55TUNFLmV4ZWNDb21tYW5kKCAnbWNlUmVtb3ZlRWRpdG9yJywgZmFsc2UsICQodGhpcykuYXR0cignaWQnKSApOw0KICAgICAgICAgICAgICAgICAgICBFQ0IyVGlueU1DRVJlbW92ZSAoICQodGhpcykuYXR0cignaWQnKSApOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgLy8gcmUtYWRkIGVkaXRvcg0KICAgICAgICAgICAgICAgICAgICAvLyB0aW55TUNFLmV4ZWNDb21tYW5kKCAnbWNlQWRkRWRpdG9yJywgZmFsc2UsICQodGhpcykuYXR0cignaWQnKSApOw0KICAgICAgICAgICAgICAgICAgICBFQ0IyVGlueU1DRUFkZCggJCh0aGlzKS5hdHRyKCdpZCcpICk7DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gdGlueW1jZS5hY3RpdmVFZGl0b3Iuc2hvdygpOw0KDQogICAgICAgICAgICAgICAgICAgIC8vIHRpbnlNQ0UuZXhlY0NvbW1hbmQoJ21jZVJlbW92ZUVkaXRvcicsIGZhbHNlLCAkKHRoaXMpLmF0dHIoJ2lkJykpOw0KICAgICAgICAgICAgICAgICAgICAvLyB0aW55TUNFLmV4ZWNDb21tYW5kKCdtY2VBZGRFZGl0b3InLCBmYWxzZSwgJCh0aGlzKS5hdHRyKCdpZCcpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gdGlueW1jZS5hY3RpdmVFZGl0b3Iuc2hvdygpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgfSk7DQogICAgLy8gcmVwZWF0ZXIgYWRkDQogICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJy5lY2IyLXJlcGVhdGVyLWFkZCcsIGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICB2YXIgJHJlcGVhdGVyID0gJCgkKHRoaXMpLmRhdGEoJ3JlcGVhdGVyJykpLA0KICAgICAgICAgICAgJG5ld1JlcGVhdGVyV3JhcHBlciA9ICRyZXBlYXRlci5maW5kKCcucmVwZWF0ZXItd3JhcHBlci10ZW1wbGF0ZScpLmNsb25lKCksDQogICAgICAgICAgICBoaWdoZXN0Um93ID0gJHJlcGVhdGVyLmRhdGEoJ2hpZ2hlc3Qtcm93JykrMSwNCiAgICAgICAgICAgIGJsb2NrTmFtZSA9ICRyZXBlYXRlci5kYXRhKCdibG9jay1uYW1lJyksDQogICAgICAgICAgICBmaWVsZE5hbWUgPSAnJzsgICAgIC8vIHJlcXVpcmVkIGZvciBzdWJfZmllbGRzDQogICAgICAgICRuZXdSZXBlYXRlcldyYXBwZXIucmVtb3ZlQ2xhc3MoJ3JlcGVhdGVyLXdyYXBwZXItdGVtcGxhdGUnKQ0KICAgICAgICAgICAgLmFkZENsYXNzKCdyZXBlYXRlci13cmFwcGVyJykNCiAgICAgICAgICAgIC5jc3MoJ2Rpc3BsYXknLCAnJyk7DQogICAgICAgIEVDQjJJbml0aWFsaXNlU3ViRmllbGRzKCAkbmV3UmVwZWF0ZXJXcmFwcGVyLCBibG9ja05hbWUsIGhpZ2hlc3RSb3cgKTsNCg0KICAgICAgICAkcmVwZWF0ZXIuZGF0YSgnaGlnaGVzdC1yb3cnLCBoaWdoZXN0Um93KTsgLy8gYWRkcyAxDQogICAgICAgIGlmICggJG5ld1JlcGVhdGVyV3JhcHBlci5maW5kKCd0ZXh0YXJlYS53eXNpd3lnJykubGVuZ3RoICkgew0KICAgICAgICAgICAgRUNCMlJlcGVhdGVyRWRpdG9yQWRkICgkcmVwZWF0ZXIsICRuZXdSZXBlYXRlcldyYXBwZXIpOw0KICAgICAgICB9IGVsc2UgeyAvLyBldmVyeXRoaW5nIG90aGVyIHRoYW4gYSBXWVNJV1lHDQogICAgICAgICAgICAkcmVwZWF0ZXIuYXBwZW5kKCRuZXdSZXBlYXRlcldyYXBwZXIpOw0KICAgICAgICB9DQogICAgICAgIHVwZGF0ZUVDQjJSZXBlYXRlck1heEJsb2NrcygkcmVwZWF0ZXIpOw0KICAgIH0pOw0KICAgIC8vIHJlcGVhdGVyIHJlbW92ZQ0KICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICcuZWNiMi1yZXBlYXRlci1yZW1vdmUnLCBmdW5jdGlvbihlKSB7DQogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsNCiAgICAgICAgdmFyICRyZXBlYXRlciA9ICQodGhpcykuY2xvc2VzdCgnLmVjYl9yZXBlYXRlcicpLA0KICAgICAgICAgICAgJHJlcGVhdGVyV3JhcHBlciA9ICQodGhpcykuY2xvc2VzdCgnLnJlcGVhdGVyLXdyYXBwZXInKSwNCiAgICAgICAgICAgIHJlcGVhdGVyV3JhcHBlckNvdW50ID0gJHJlcGVhdGVyLmZpbmQoJy5yZXBlYXRlci13cmFwcGVyJykubGVuZ3RoOw0KICAgICAgICBpZiAoICRyZXBlYXRlcldyYXBwZXIuZmluZCgndGV4dGFyZWEud3lzaXd5ZycpLmxlbmd0aCApIHsgICAvLyBoYXMgRWRpdG9yDQogICAgICAgICAgICBFQ0IyUmVwZWF0ZXJFZGl0b3JSZW1vdmUgKCRyZXBlYXRlciwgJHJlcGVhdGVyV3JhcHBlciwgcmVwZWF0ZXJXcmFwcGVyQ291bnQpOw0KICAgICAgICB9IGVsc2UgaWYgKHJlcGVhdGVyV3JhcHBlckNvdW50ID4gMSkgew0KICAgICAgICAgICAgJHJlcGVhdGVyV3JhcHBlci5yZW1vdmUoKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRyZXBlYXRlcldyYXBwZXIucmVtb3ZlKCk7DQogICAgICAgICAgICAkKCRyZXBlYXRlci5kYXRhKCdyZXBlYXRlci1hZGQnKSkudHJpZ2dlcignY2xpY2snKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGRhdGVFQ0IyUmVwZWF0ZXJNYXhCbG9ja3MoJHJlcGVhdGVyKTsNCiAgICB9KTsNCg0KICAgIC8vIHNldCBnbG9iYWwgdmFyaWFibGUgZm9yIFRpbnlNQ0UgY29uZmlnLCBiYXNlZCBvbiBleGlzdGluZyBUaW55TUNFIHNldHRpbmdzDQogICAgdmFyIGVjYjJUaW55TUNFQ29uZmlnID0gbnVsbDsNCiAgICB2YXIgaXNUaW55TUNFOFBsdXMgPSBudWxsOyANCiAgICAgICANCiAgICAvLyBmdW5jdGlvbiB0byBnZXQgVGlueU1DRSBjb25maWcgZnJvbSBleGlzdGluZyBhY3RpdmUgZWRpdG9yIC0gc29tZSBzZXR0aW5ncyBtYXkgYmUgbWlzc2luZywgY2FuIGJlIGFkZGVkIGFzIG5lZWRlZA0KICAgIGZ1bmN0aW9uIEVDQjJHZXRUaW55TUNFQ29uZmlnICgpIHsNCiAgICAgICAgaWYgKGVjYjJUaW55TUNFQ29uZmlnIT09bnVsbCAmJiB0eXBlb2YgZWNiMlRpbnlNQ0VDb25maWc9PT0nb2JqZWN0JyAmJiBPYmplY3Qua2V5cyhlY2IyVGlueU1DRUNvbmZpZykubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIHZhciBjb25maWdfcGFyYW1zID0gWw0KICAgICAgICAgICAgJ2xpY2Vuc2Vfa2V5JywNCiAgICAgICAgICAgICdwbHVnaW5zJywNCiAgICAgICAgICAgICdtZW51YmFyJywNCiAgICAgICAgICAgICd0b29sYmFyJywNCiAgICAgICAgICAgICd0b29sYmFyMScsDQogICAgICAgICAgICAndG9vbGJhcjInLA0KICAgICAgICAgICAgJ2NvbnRlbnRfY3NzJywNCiAgICAgICAgICAgICdzdHlsZV9mb3JtYXRzJywNCiAgICAgICAgICAgICdsaW5rX2NsYXNzX2xpc3QnLA0KICAgICAgICAgICAgJ2ltYWdlX2NsYXNzX2xpc3QnLA0KICAgICAgICAgICAgJ2ZpbGVfcGlja2VyX3R5cGVzJywNCiAgICAgICAgICAgICdmaWxlX3BpY2tlcl9jYWxsYmFjaycsDQogICAgICAgICAgICAnZXh0ZXJuYWxfcGx1Z2lucycsDQogICAgICAgICAgICAnd2lkdGgnLA0KICAgICAgICAgICAgJ2hlaWdodCcsDQogICAgICAgICAgICAnbWluX2hlaWdodCcsDQogICAgICAgICAgICAnbWF4X2hlaWdodCcsDQogICAgICAgICAgICAnc3RhdHVzYmFyJywNCiAgICAgICAgICAgICdyZWxhdGl2ZV91cmxzJywNCiAgICAgICAgICAgICdyZW1vdmVfc2NyaXB0X2hvc3QnLA0KICAgICAgICAgICAgJ2NvbnZlcnRfdXJscycsDQogICAgICAgICAgICAnZW50aXR5X2VuY29kaW5nJywNCiAgICAgICAgICAgICdmb3JjZWRfcm9vdF9ibG9jaycsDQogICAgICAgICAgICAncGFzdGVfYXNfdGV4dCcsDQogICAgICAgICAgICAnc2V0dXAnLA0KICAgICAgICAgICAgJ3Jlc2l6ZScsDQogICAgICAgICAgICAnY29udGVudF9zdHlsZScsDQogICAgICAgIF07DQogICAgICAgIHZhciBjb25maWcgPSB7fTsNCg0KICAgICAgICBmb3IgKHZhciBpPTA7IGk8Y29uZmlnX3BhcmFtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIHBhcmFtID0gY29uZmlnX3BhcmFtc1tpXTsgICAgICAgDQogICAgICAgICAgICBjb25maWdbcGFyYW1dID0gdGlueW1jZS5hY3RpdmVFZGl0b3Iub3B0aW9ucy5nZXQocGFyYW0pOw0KICAgICAgICB9DQogICAgICAgIGVjYjJUaW55TUNFQ29uZmlnID0gY29uZmlnOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCg0KICAgIC8vIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIFRpbnlNQ0UgdmVyc2lvbiBpcyA4IG9yIGhpZ2hlciwgY2FjaGUgcmVzdWx0DQogICAgZnVuY3Rpb24gRUNCMmlzVGlueU1DRThQbHVzICgpIHsNCiAgICAgICAgaWYgKGlzVGlueU1DRThQbHVzPT09bnVsbCkgew0KICAgICAgICAgICAgaXNUaW55TUNFOFBsdXMgPSB0aW55bWNlLm1ham9yVmVyc2lvbiA+PSA4IHx8ICh0aW55bWNlLm1ham9yVmVyc2lvbiA9PT0gdW5kZWZpbmVkICYmIHBhcnNlSW50KHRpbnltY2UudmVyc2lvbikgPj0gOCk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIGlzVGlueU1DRThQbHVzOw0KICAgIH07DQoNCiAgICAvLyBmdW5jdGlvbiB0byBhZGQgVGlueU1DRSBlZGl0b3IgdG8gYSB0ZXh0YXJlYSwgdXNpbmcgVGlueU1DRSBvbGRlciA8djUgb3IgbmV3ZXIgQVBJICh2NSspDQogICAgZnVuY3Rpb24gRUNCMlRpbnlNQ0VBZGQgKCBlZGl0b3JJZCApIHsNCiAgICAgICAgaWYgKCBFQ0IyaXNUaW55TUNFOFBsdXMoKSApIHsgIC8vIFRpbnlNQ0UgOCsgLSBpbml0aWFsaXplIG5ldyBlZGl0b3INCiAgICAgICAgICAgIA0KICAgICAgICAgICAgRUNCMkdldFRpbnlNQ0VDb25maWcoKTsNCiAgICAgICAgICAgIHRpbnltY2UuaW5pdCh7DQogICAgICAgICAgICAgICAgc2VsZWN0b3I6ICcjJyArIGVkaXRvcklkLA0KICAgICAgICAgICAgICAgIC4uLmVjYjJUaW55TUNFQ29uZmlnLA0KICAgICAgICAgICAgICAgIHNldHVwOiBmdW5jdGlvbihlZGl0b3IpIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb3JpZ2luYWwgc2V0dXAgZnVuY3Rpb24gdG8gcmVnaXN0ZXIgY3VzdG9tIGJ1dHRvbnMNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVjYjJUaW55TUNFQ29uZmlnLnNldHVwICYmIHR5cGVvZiBlY2IyVGlueU1DRUNvbmZpZy5zZXR1cCA9PT0gJ2Z1bmN0aW9uJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWNiMlRpbnlNQ0VDb25maWcuc2V0dXAuY2FsbCh0aGlzLCBlZGl0b3IpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVkaXRvci5vbignaW5pdCcsIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBXWVNJV1lHIHZpc2libGUgYWZ0ZXIgZWRpdG9yIGlzIGluaXRpYWxpemVkDQogICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IuZ2V0Q29udGFpbmVyKCkuc3R5bGUudmlzaWJpbGl0eSA9ICcnOw0KICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLmdldENvbnRhaW5lcigpLnN0eWxlLmRpc3BsYXkgPSAnJzsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIC8vIFRpbnlNQ0UgNyBhbmQgZWFybGllciAtIHVzZSBleGVjQ29tbWFuZA0KICAgICAgICAgICAgdGlueU1DRS5leGVjQ29tbWFuZCgnbWNlQWRkRWRpdG9yJywgZmFsc2UsIGVkaXRvcklkKTsNCiAgICAgICAgICAgIC8vIHRpbnlNQ0UuZXhlY0NvbW1hbmQoJ21jZUFkZEVkaXRvcicsIGZhbHNlLCAkKHRoaXMpLmF0dHIoJ2lkJykpOw0KICAgICAgICAgICAgLy8gdGlueW1jZS5hY3RpdmVFZGl0b3Iuc2hvdygpOw0KICAgICAgICAgICAgaWYgKHRpbnltY2UuYWN0aXZlRWRpdG9yKSB7DQogICAgICAgICAgICAgICAgdGlueW1jZS5hY3RpdmVFZGl0b3Iuc2hvdygpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9Ow0KDQogICAgLy8gZnVuY3Rpb24gdG8gcmVtb3ZlIFRpbnlNQ0UgZWRpdG9yIGZyb20gYSB0ZXh0YXJlYSwgdXNpbmcgVGlueU1DRSBvbGRlciA8djUgb3IgbmV3ZXIgQVBJICh2NSspDQogICAgZnVuY3Rpb24gRUNCMlRpbnlNQ0VSZW1vdmUgKCBlZGl0b3JJZCApIHsNCiAgICAgICAgaWYgKCBFQ0IyaXNUaW55TUNFOFBsdXMoKSApIHsNCiAgICAgICAgICAgIHZhciBlZGl0b3IgPSB0aW55bWNlLmdldCggZWRpdG9ySWQgKTsNCiAgICAgICAgICAgIGlmIChlZGl0b3IgIT0gbnVsbCkgew0KICAgICAgICAgICAgICAgIGVkaXRvci5zYXZlKCk7DQogICAgICAgICAgICAgICAgZWRpdG9yLnJlbW92ZSgpOw0KICAgICAgICAgICAgICAgIC8vIHRpbnltY2UuRWRpdG9yTWFuYWdlci5leGVjQ29tbWFuZCgnbWNlUmVtb3ZlRWRpdG9yJywgdHJ1ZSwgJGVkaXRvcklkKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICB9IGVsc2UgeyAgICAvLyBUaW55TUNFIDcgYW5kIGVhcmxpZXIgLSB1c2UgZXhlY0NvbW1hbmQNCiAgICAgICAgICAgIC8vIHRpbnlNQ0UuZXhlY0NvbW1hbmQoICdtY2VSZW1vdmVFZGl0b3InLCBmYWxzZSwgJCh0aGlzKS5hdHRyKCdpZCcpICk7DQogICAgICAgICAgICAgICAgdGlueU1DRS5leGVjQ29tbWFuZCggJ21jZVJlbW92ZUVkaXRvcicsIGZhbHNlLCBlZGl0b3JJZCApOw0KICAgICAgICB9DQogICAgfTsNCg0KICAgIC8vIEVkaXRvciBmdW5jdGlvbnMgc3VwcG9ydCBNaWNyb1Rpbnkgb3IgVGlueU1DRSB3eXNpd3lnDQogICAgZnVuY3Rpb24gRUNCMlJlcGVhdGVyRWRpdG9yQWRkICgkcmVwZWF0ZXIsICRuZXdSZXBlYXRlcldyYXBwZXIpIHsNCiAgICAgICAgJHJlcGVhdGVyLmFwcGVuZCgkbmV3UmVwZWF0ZXJXcmFwcGVyKTsNCiAgICAgICAgJG5ld1JlcGVhdGVyV3JhcHBlci5maW5kKCd0ZXh0YXJlYS53eXNpd3lnJykuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgIHZhciBlZGl0b3JJZCA9ICQodGhpcykuYXR0cignaWQnKTsNCiAgICAgICAgICAgIEVDQjJUaW55TUNFQWRkKCBlZGl0b3JJZCApOw0KICAgICAgICB9KTsNCiAgICB9DQogICAgZnVuY3Rpb24gRUNCMlJlcGVhdGVyRWRpdG9yUmVtb3ZlICgkcmVwZWF0ZXIsICRyZXBlYXRlcldyYXBwZXIsIHJlcGVhdGVyV3JhcHBlckNvdW50KSB7DQogICAgICAgICRyZXBlYXRlcldyYXBwZXIuZmluZCgndGV4dGFyZWEud3lzaXd5ZycpLmVhY2goZnVuY3Rpb24oKSB7DQogICAgICAgICAgICB2YXIgZWRpdG9yID0gdGlueW1jZS5nZXQoICQodGhpcykuYXR0cignaWQnKSApOw0KICAgICAgICAgICAgaWYgKCByZXBlYXRlcldyYXBwZXJDb3VudCA+IDEgKSB7IC8vIGRlbGV0ZSByZXBlYXRlciBlZGl0b3INCiAgICAgICAgICAgICAgICBpZiAoZWRpdG9yKSB7DQogICAgICAgICAgICAgICAgICAgIGVkaXRvci5yZW1vdmUoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJHJlcGVhdGVyV3JhcHBlci5yZW1vdmUoKTsNCiAgICAgICAgICAgIH0gZWxzZSB7IC8vIG9ubHkgMSByZXBlYXRlciAtIHNvIGp1c3QgY2xlYXIgZWRpdG9yIGNvbnRlbnRzDQogICAgICAgICAgICAgICAgaWYgKGVkaXRvcikgew0KICAgICAgICAgICAgICAgICAgICBlZGl0b3Iuc2V0Q29udGVudCgnJyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9DQogICAgZnVuY3Rpb24gdXBkYXRlRUNCMlJlcGVhdGVyTWF4QmxvY2tzKCRyZXBlYXRlcikgew0KICAgICAgICBpZiAoICRyZXBlYXRlci5kYXRhKCdtYXgtYmxvY2tzJykgKSB7DQogICAgICAgICAgICB2YXIgbWF4QmxvY2tzID0gJHJlcGVhdGVyLmRhdGEoJ21heC1ibG9ja3MnKSwNCiAgICAgICAgICAgICAgICBibG9ja0NvdW50ID0gJHJlcGVhdGVyLmNoaWxkcmVuKCcucmVwZWF0ZXItd3JhcHBlcicpLmxlbmd0aDsNCiAgICAgICAgICAgIGlmICggYmxvY2tDb3VudD49bWF4QmxvY2tzICkgew0KICAgICAgICAgICAgICAgICQoJHJlcGVhdGVyLmRhdGEoJ3JlcGVhdGVyLWFkZCcpKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkKCRyZXBlYXRlci5kYXRhKCdyZXBlYXRlci1hZGQnKSkucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQoNCg0KICAgIC8vIEluaXRpYWxpc2Ugc3ViIGZpZWxkcyAtIHdoZW4gZmlyc3QgYWRkZWQgdG8gcGFnZQ0KICAgIGZ1bmN0aW9uIEVDQjJJbml0aWFsaXNlU3ViRmllbGRzKCAkd3JhcHBlciwgYmxvY2tOYW1lLCByb3cgKSB7DQogICAgICAgICR3cmFwcGVyLmZpbmQoJy5yZXBlYXRlci1maWVsZCcpLmVhY2goIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgbGV0IGZpZWxkTmFtZSA9ICQodGhpcykuZGF0YSgnZmllbGQtbmFtZScpOw0KICAgICAgICAgICAgbGV0IG11bHRpcGxlID0gJCh0aGlzKS5hdHRyKCdtdWx0aXBsZScpID8gJ1tdJyA6ICcnOw0KICAgICAgICAgICAgLy8gc2V0IGlkIGFuZCBuYW1lIGF0dHJpYnV0ZXMgZm9yIG5ldyBpbnB1dC9zDQogICAgICAgICAgICBpZiAoZmllbGROYW1lKSB7ICAgIC8vIHN1Yl9maWVsZHMNCiAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ25hbWUnLCBibG9ja05hbWUrJ1tyXycrcm93KyddWycrZmllbGROYW1lKyddJyttdWx0aXBsZSkNCiAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ2lkJywgYmxvY2tOYW1lKydfcl8nK3JvdysnXycrZmllbGROYW1lKTsgICAgLy8gc2V0IHVuaXF1ZSBpZA0KICAgICAgICAgICAgfSBlbHNlIHsgICAgLy8gcmVwZWF0ZXIgZmllbGQNCiAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ25hbWUnLCBibG9ja05hbWUrJ1tyXycrcm93KyddJykNCiAgICAgICAgICAgICAgICAuYXR0cignaWQnLCBibG9ja05hbWUrJ19yXycrcm93KTsgICAgLy8gc2V0IHVuaXF1ZSBpZA0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCAkKHRoaXMpLmhhc0NsYXNzKCdjbXNfY2hlY2tib3gnKSApIHsgICAvLyBzZXQgbGFiZWwgJ2ZvcicNCiAgICAgICAgICAgICAgICAkKHRoaXMpLnNpYmxpbmdzKCdsYWJlbCcpLmF0dHIoJ2ZvcicsICQodGhpcykuYXR0cignaWQnKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoICQodGhpcykuaGFzQ2xhc3MoJ2NvbG9ycGlja2VyLXRlbXBsYXRlJykgKSB7ICAgLy8gc2V0dXAgDQogICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnY29sb3JwaWNrZXItdGVtcGxhdGUnKS5hZGRDbGFzcygnY29sb3JwaWNrZXInKTsNCiAgICAgICAgICAgICAgICBpbml0YWlsaXNlQ29sb3JQaWNrZXIoICQodGhpcykgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICggJCh0aGlzKS5oYXNDbGFzcygnZGF0ZXRpbWVwaWNrZXItdGVtcGxhdGUnKSApIHsgICAvLyBzZXR1cCANCiAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdkYXRldGltZXBpY2tlci10ZW1wbGF0ZScpLmFkZENsYXNzKCdkYXRldGltZXBpY2tlcicpOw0KICAgICAgICAgICAgICAgIGluaXRhaWxpc2VEYXRlVGltZVBpY2tlciggJCh0aGlzKSApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCAkKHRoaXMpLmhhc0NsYXNzKCdkYXRlcGlja2VyLXRlbXBsYXRlJykgKSB7ICAgLy8gc2V0dXAgDQogICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnZGF0ZXBpY2tlci10ZW1wbGF0ZScpLmFkZENsYXNzKCdkYXRlcGlja2VyJyk7DQogICAgICAgICAgICAgICAgaW5pdGFpbGlzZURhdGVQaWNrZXIoICQodGhpcykgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICggJCh0aGlzKS5oYXNDbGFzcygndGltZXBpY2tlci10ZW1wbGF0ZScpICkgeyAgIC8vIHNldHVwIA0KICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ3RpbWVwaWNrZXItdGVtcGxhdGUnKS5hZGRDbGFzcygndGltZXBpY2tlcicpOw0KICAgICAgICAgICAgICAgIGluaXRhaWxpc2VUaW1lUGlja2VyKCAkKHRoaXMpICk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoICQodGhpcykuaGFzQ2xhc3MoJ2VjYjItZmlsZS1waWNrZXItdGVtcGxhdGUnKSApIHsgICAvLyBzZXR1cCANCiAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdlY2IyLWZpbGUtcGlja2VyLXRlbXBsYXRlJykuYWRkQ2xhc3MoJ2VjYjItZmlsZS1waWNrZXInKTsNCiAgICAgICAgICAgICAgICBpbml0YWlsaXNlRmlsZVBpY2tlciggJCh0aGlzKSApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCAkKHRoaXMpLnBhcmVudCgnLnN1Yi1maWVsZC1wYWdlX3BpY2tlcicpLmxlbmd0aCApIHsgICAvLyBzZXR1cCANCiAgICAgICAgICAgICAgICAkKHRoaXMpLmhpZXJzZWxlY3Rvcih7dmFsdWU6IC0xLGFsbG93Y3VycmVudDogZmFsc2UsYWxsb3dfYWxsOiBmYWxzZSx1c2VfcGVybXM6IGZhbHNlLGZvcl9jaGlsZDogZmFsc2UsaXNfbWFuYWdlcjogMX0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9DQogICAgLy8gYWN0aXZlIHN1YiBmaWVsZHMgLSB3aGVuIGZpcnN0IHZpc2libGUgb24gcGFnZQ0KICAgIGZ1bmN0aW9uIEVDQjJBY3RpdmF0ZVN1YkZpZWxkcyggJHdyYXBwZXIgKSB7DQogICAgICAgIC8vIC4uLg0KICAgICAgICAkd3JhcHBlci5maW5kKCcucmVwZWF0ZXItZmllbGQnKS5lYWNoKCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgIGlmICggJCh0aGlzKS5oYXNDbGFzcygnd3lzaXd5ZycpICkgew0KICAgICAgICAgICAgICAgIHZhciBlZGl0b3JJZCA9ICQodGhpcykuYXR0cignaWQnKTsNCg0KICAgICAgICAgICAgICAgIEVDQjJUaW55TUNFQWRkKCBlZGl0b3JJZCApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCg0KICAgIH0NCiAgICAvLyBkZWFjdGl2ZSBzdWIgZmllbGRzIC0gd2hlbiBoaWRkZW4gb24gcGFnZQ0KICAgIGZ1bmN0aW9uIEVDQjJEZWFjdGl2YXRlU3ViRmllbGRzKCAkd3JhcHBlciApIHsNCiAgICAgICAgJHdyYXBwZXIuZmluZCgnLnJlcGVhdGVyLWZpZWxkJykuZWFjaCggZnVuY3Rpb24oKSB7DQogICAgICAgICAgICBpZiAoICQodGhpcykuaGFzQ2xhc3MoJ3d5c2l3eWcnKSApIHsNCiAgICAgICAgICAgICAgICB2YXIgZWRpdG9yID0gdGlueW1jZS5nZXQoICQodGhpcykuYXR0cignaWQnKSApOw0KICAgICAgICAgICAgICAgIGlmIChlZGl0b3IgIT0gbnVsbCkgew0KICAgICAgICAgICAgICAgICAgICBlZGl0b3Iuc2F2ZSgpOw0KICAgICAgICAgICAgICAgICAgICBlZGl0b3IucmVtb3ZlKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9DQoNCg0KDQoNCg0KDQogICAvLyNyZWdpb24gU09SVEFCTEUgTElTVFMNCiAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgJCgndWwuc29ydGFibGUtZWNiMi1saXN0JykuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgdmFyICRwYXJlbnQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5lY2IyLWNiJyk7DQogICAgICAgIHZhciAkc2VsZWN0ZWQgPSAkcGFyZW50LmZpbmQoJ3VsLnNlbGVjdGVkLWl0ZW1zJyk7DQogICAgICAgICQodGhpcykuc29ydGFibGUoew0KICAgICAgICAgICAgY29ubmVjdFdpdGg6ICRzZWxlY3RlZCwNCiAgICAgICAgICAgIGRlbGF5OiAxNTAsDQogICAgICAgICAgICByZXZlcnQ6IDMwMCwNCiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAndWktc3RhdGUtaGlnaGxpZ2h0JywNCiAgICAgICAgICAgIGl0ZW1zOiAnbGk6bm90KC5uby1zb3J0KScsDQogICAgICAgICAgICBoZWxwZXI6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KICAgICAgICAgICAgICAgIGlmICghdWkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpIHsNCiAgICAgICAgICAgICAgICAgICAgdWkuYWRkQ2xhc3MoJ3NlbGVjdGVkJykNCiAgICAgICAgICAgICAgICAgICAgICAgIC5zaWJsaW5ncygpDQogICAgICAgICAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkJyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBlbGVtZW50cyA9IHVpLnBhcmVudCgpDQogICAgICAgICAgICAgICAgICAgIC5jaGlsZHJlbignLnNlbGVjdGVkJykNCiAgICAgICAgICAgICAgICAgICAgLmNsb25lKCksDQogICAgICAgICAgICAgICAgICAgIGhlbHBlciA9ICQoJzxsaS8+Jyk7DQogICAgICAgICAgICAgICAgdWkuZGF0YSgnbXVsdGlkcmFnJywgZWxlbWVudHMpLnNpYmxpbmdzKCcuc2VsZWN0ZWQnKS5yZW1vdmUoKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gaGVscGVyLmFwcGVuZChlbGVtZW50cyk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgc3RvcDogZnVuY3Rpb24oZXZlbnQsIHVpKSB7DQogICAgICAgICAgICAgICAgdmFyIGVsZW1lbnRzID0gdWkuaXRlbS5kYXRhKCdtdWx0aWRyYWcnKTsNCiAgICAgICAgICAgICAgICB2YXIgJHVsU2VsZWN0ZWQgPSAkKHVpLml0ZW0pLnBhcmVudCgpOw0KICAgICAgICAgICAgICAgIHVpLml0ZW0uYWZ0ZXIoZWxlbWVudHMpLnJlbW92ZSgpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUVDQjJDQklucHV0KCR1bFNlbGVjdGVkKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICByZWNlaXZlOiBmdW5jdGlvbihldmVudCwgdWkpIHsNCiAgICAgICAgICAgICAgICB2YXIgZWxlbWVudHMgPSB1aS5pdGVtLmRhdGEoJ211bHRpZHJhZycpOw0KICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ21heC1udW1iZXInKSAmJiAkKHRoaXMpLmNoaWxkcmVuKCkubGVuZ3RoIC0gMSA+ICQodGhpcykuZGF0YSgnbWF4LW51bWJlcicpKSB7DQogICAgICAgICAgICAgICAgICAgICQodWkuc2VuZGVyKS5zb3J0YWJsZSgnY2FuY2VsJyk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgdXBkYXRlRUNCMlBsYWNlaG9sZGVyKCQodGhpcykpOw0KICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnRzKS5yZW1vdmVDbGFzcygnc2VsZWN0ZWQgdWktc3RhdGUtaG92ZXInKQ0KICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5zb3J0YWJsZS1yZW1vdmUnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCg0KICAgIC8vIHJlbW92ZSBmcm9tIHNlbGVjdGVkIGxpc3QgLSBieSBkcmFnZ2luZyBiYWNrIHRvIGF2YWlsYWJsZQ0KICAgICQoJ3VsLnNlbGVjdGVkLWl0ZW1zJykuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgdmFyICRwYXJlbnQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5lY2IyLWNiJyk7DQogICAgICAgIHZhciAkYXZhaWxhYmxlID0gJHBhcmVudC5maW5kKCd1bC5hdmFpbGFibGUtaXRlbXMnKTsNCiAgICAgICAgJCh0aGlzKS5zb3J0YWJsZSh7DQogICAgICAgICAgICBjb25uZWN0V2l0aDogJGF2YWlsYWJsZSwNCiAgICAgICAgICAgIGRlbGF5OiAxNTAsDQogICAgICAgICAgICByZXZlcnQ6IDMwMCwNCiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAndWktc3RhdGUtaGlnaGxpZ2h0JywNCiAgICAgICAgICAgIHN0b3A6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KICAgICAgICAgICAgICAgIHZhciAkdWxTZWxlY3RlZCA9ICQodWkuaXRlbSkuY2xvc2VzdCgnLmVjYjItY2InKS5maW5kKCcuc2VsZWN0ZWQtaXRlbXMnKTsNCiAgICAgICAgICAgICAgICAkKHVpLml0ZW0pLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCcpDQogICAgICAgICAgICAgICAgJCh1aS5pdGVtKS5jaGlsZHJlbignLnNvcnRhYmxlLXJlbW92ZScpLmFkZENsYXNzKCdoaWRkZW4nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVFQ0IyQ0JJbnB1dCgkdWxTZWxlY3RlZCk7DQogICAgICAgICAgICAgICAgdXBkYXRlRUNCMlBsYWNlaG9sZGVyKCR1bFNlbGVjdGVkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQoNCiAgICAvLyByZW1vdmUgZnJvbSBzZWxlY3RlZCBsaXN0IC0gYnkgY2xpY2tpbmcgcmVtb3ZlIGljb24NCiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnI3NlbGVjdGVkLWl0ZW1zIC5zb3J0YWJsZS1yZW1vdmUnLCBmdW5jdGlvbihlKSB7DQogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsNCiAgICAgICAgdmFyICR1bFNlbGVjdGVkID0gJCh0aGlzKS5jbG9zZXN0KCd1bC5zZWxlY3RlZC1pdGVtcycpOw0KICAgICAgICB2YXIgJHVsQXZhaWxhYmxlID0gJCh0aGlzKS5jbG9zZXN0KCcuZWNiMi1jYicpLmZpbmQoJy5hdmFpbGFibGUtaXRlbXMnKTsNCiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnaGlkZGVuJykNCiAgICAgICAgICAgIC5wYXJlbnQoJ2xpJykucmVtb3ZlQ2xhc3MoJ25vLXNvcnQnKQ0KICAgICAgICAgICAgLmFwcGVuZFRvKCR1bEF2YWlsYWJsZSk7DQogICAgICAgIHVwZGF0ZUVDQjJDQklucHV0KCR1bFNlbGVjdGVkKTsNCiAgICAgICAgdXBkYXRlRUNCMlBsYWNlaG9sZGVyKCR1bFNlbGVjdGVkKTsNCiAgICB9KTsNCg0KICAgIGZ1bmN0aW9uIHVwZGF0ZUVDQjJDQklucHV0KCR1bFNlbGVjdGVkKSB7DQogICAgICAgIHZhciAkYWxsU2VsZWN0ZWQgPSAkdWxTZWxlY3RlZC5jaGlsZHJlbignbGk6bm90KC5wbGFjZWhvbGRlciknKTsNCiAgICAgICAgdmFyICR0YXJnZXRJbnB1dCA9ICQoJyMnICsgJHVsU2VsZWN0ZWQuZGF0YSgnY21zbXMtY2ItaW5wdXQnKSk7DQogICAgICAgIHZhciBzZWxlY3RlZFN0ciA9ICcnOw0KICAgICAgICB2YXIgcmVxdWlyZWROdW1iZXIgPSAkdWxTZWxlY3RlZC5kYXRhKCdyZXF1aXJlZC1udW1iZXInKTsNCiAgICAgICAgaWYgKHJlcXVpcmVkTnVtYmVyICYmICRhbGxTZWxlY3RlZC5sZW5ndGggIT0gcmVxdWlyZWROdW1iZXIpIHsNCiAgICAgICAgICAgICR0YXJnZXRJbnB1dC52YWwoJycpOyAvLyBzZXQgdG8gZW1wdHkNCg0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJGFsbFNlbGVjdGVkLmVhY2goZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkU3RyID09ICcnKSB7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkU3RyID0gJCh0aGlzKS5kYXRhKCdjbXNtcy1pdGVtLWlkJyk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTdHIgPSBzZWxlY3RlZFN0ciArICcsJyArICQodGhpcykuZGF0YSgnY21zbXMtaXRlbS1pZCcpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgJHRhcmdldElucHV0LnZhbChzZWxlY3RlZFN0cik7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBmdW5jdGlvbiB1cGRhdGVFQ0IyUGxhY2Vob2xkZXIoJHVsU2VsZWN0ZWQpIHsNCiAgICAgICAgdmFyIHJlcXVpcmVkTnVtYmVyID0gJHVsU2VsZWN0ZWQuZGF0YSgncmVxdWlyZWQtbnVtYmVyJyk7DQogICAgICAgIHZhciBudW1iZXJTZWxlY3RlZCA9ICR1bFNlbGVjdGVkLmNoaWxkcmVuKCkubGVuZ3RoIC0gMTsgLy8gZXhjbHVkZSBwbGFjZWhvbGRlcg0KICAgICAgICBpZiAoKCFyZXF1aXJlZE51bWJlciAmJiBudW1iZXJTZWxlY3RlZCA+IDApIHx8IChyZXF1aXJlZE51bWJlciA+IDAgJiYgbnVtYmVyU2VsZWN0ZWQgPT0gcmVxdWlyZWROdW1iZXIpKSB7DQogICAgICAgICAgICAkdWxTZWxlY3RlZC5jaGlsZHJlbignLnBsYWNlaG9sZGVyJykuYWRkQ2xhc3MoJ2hpZGRlbicpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJHVsU2VsZWN0ZWQuY2hpbGRyZW4oJy5wbGFjZWhvbGRlcicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTsNCiAgICAgICAgfQ0KDQoNCiAgICB9DQoNCg0KDQoNCg0KDQogICAgLy8jcmVnaW9uIFBJQ0tFUlMNCiAgICAvLyBkYXRlcGlja2VyICYgdGltZXBpY2tlciBmdW5jdGlvbnMgICAgDQogICAgaW5pdGFpbGlzZVRpbWVQaWNrZXIoICQoJy50aW1lcGlja2VyJykgKTsNCiAgICBmdW5jdGlvbiBpbml0YWlsaXNlVGltZVBpY2tlciAoJHRpbWVwaWNrZXIpIHsNCiAgICAgICAgJHRpbWVwaWNrZXIudGltZXBpY2tlciggew0KICAgICAgICAgICAgdGltZUZvcm1hdDogJCh0aGlzKS5kYXRhKCd0aW1lLWZvcm1hdCcpDQogICAgICAgIH0pOw0KICAgIH0NCiAgICBpbml0YWlsaXNlRGF0ZVBpY2tlciggJCgnLmRhdGVwaWNrZXInKSApOw0KICAgIGZ1bmN0aW9uIGluaXRhaWxpc2VEYXRlUGlja2VyICgkZGF0ZXBpY2tlcikgew0KICAgICAgICAkZGF0ZXBpY2tlci5kYXRlcGlja2VyKCB7DQogICAgICAgICAgICBzaG93T3RoZXJNb250aHM6IHRydWUsDQogICAgICAgICAgICBzZWxlY3RPdGhlck1vbnRoczogdHJ1ZSwNCiAgICAgICAgICAgIGRhdGVGb3JtYXQ6ICQodGhpcykuZGF0YSgnZGF0ZS1mb3JtYXQnKSwNCiAgICAgICAgICAgIGNoYW5nZU1vbnRoOiAkKHRoaXMpLmRhdGEoJ2NoYW5nZS1tb250aCcpLA0KICAgICAgICAgICAgY2hhbmdlWWVhcjogJCh0aGlzKS5kYXRhKCdjaGFuZ2UteWVhcicpLA0KICAgICAgICAgICAgeWVhclJhbmdlOiAkKHRoaXMpLmRhdGEoJ3llYXItcmFuZ2UnKQ0KICAgICAgICB9KTsNCiAgICB9DQogICAgaW5pdGFpbGlzZURhdGVUaW1lUGlja2VyKCAkKCcuZGF0ZXRpbWVwaWNrZXInKSApOw0KICAgIGZ1bmN0aW9uIGluaXRhaWxpc2VEYXRlVGltZVBpY2tlciAoJGRhdGV0aW1lcGlja2VyKSB7DQogICAgICAgICRkYXRldGltZXBpY2tlci5kYXRldGltZXBpY2tlciggew0KICAgICAgICAgICAgc2hvd090aGVyTW9udGhzOiB0cnVlLA0KICAgICAgICAgICAgc2VsZWN0T3RoZXJNb250aHM6IHRydWUsDQogICAgICAgICAgICBkYXRlRm9ybWF0OiAkKHRoaXMpLmRhdGEoJ2RhdGUtZm9ybWF0JyksDQogICAgICAgICAgICB0aW1lRm9ybWF0OiAkKHRoaXMpLmRhdGEoJ3RpbWUtZm9ybWF0JyksDQogICAgICAgICAgICBjaGFuZ2VNb250aDogJCh0aGlzKS5kYXRhKCdjaGFuZ2UtbW9udGgnKSwNCiAgICAgICAgICAgIGNoYW5nZVllYXI6ICQodGhpcykuZGF0YSgnY2hhbmdlLXllYXInKSwNCiAgICAgICAgICAgIHllYXJSYW5nZTogJCh0aGlzKS5kYXRhKCd5ZWFyLXJhbmdlJykNCiAgICAgICAgfSk7DQogICAgfQ0KDQogICAgLyogY29sb3IgcGlja2VyIC0gY29scGljayAqLw0KICAgIGluaXRhaWxpc2VDb2xvclBpY2tlciggJCgnLmNvbG9ycGlja2VyJykgKTsNCiAgICBmdW5jdGlvbiBpbml0YWlsaXNlQ29sb3JQaWNrZXIgKCRjb2xvcnBpY2tlcikgew0KICAgICAgICAkY29sb3JwaWNrZXIuY29scGljayh7DQogICAgICAgICAgICBjb2xvclNjaGVtZTogJ2RhcmsnLA0KICAgICAgICAgICAgc3VibWl0IDogZmFsc2UsDQogICAgICAgICAgICBvbkNoYW5nZTpmdW5jdGlvbihoc2IsaGV4LHJnYixlbCkgew0KICAgICAgICAgICAgICAgIHZhciBoYXNoID0gJChlbCkuZGF0YSgnbm8taGFzaCcpID8gJycgOiAnIyc7IA0KICAgICAgICAgICAgICAgICQoZWwpLnZhbChoYXNoK2hleCkuY3NzKCdib3JkZXItcmlnaHQnLCAnMzBweCBzb2xpZCAjJytoZXgpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIG9uQmVmb3JlU2hvdzogZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWU9PScnKSB7DQogICAgICAgICAgICAgICAgICAgICQodGhpcykuY3NzKCdib3JkZXItcmlnaHQnLCAnMzBweCBzb2xpZCB0cmFuc3BhcmVudCcpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICQodGhpcykuY29scGlja1NldENvbG9yKHRoaXMudmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSkNCiAgICAgICAgLm9uKCdrZXl1cCcsIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgaWYgKHRoaXMudmFsdWU9PScnKSB7DQogICAgICAgICAgICAgICAgJCh0aGlzKS5jc3MoJ2JvcmRlci1yaWdodCcsICczMHB4IHNvbGlkIHRyYW5zcGFyZW50Jyk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICQodGhpcykuY29scGlja1NldENvbG9yKHRoaXMudmFsdWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgICAuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlPT0nJykgew0KICAgICAgICAgICAgICAgICQodGhpcykuY3NzKCdib3JkZXItcmlnaHQnLCAnMzBweCBzb2xpZCB0cmFuc3BhcmVudCcpOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkKHRoaXMpLmNzcygnYm9yZGVyLXJpZ2h0JywgJzMwcHggc29saWQgIycrdGhpcy52YWx1ZS5yZXBsYWNlQWxsKCcjJywgJycpKTsNCiAgICAgICAgICAgIH0gDQogICAgICAgIH0pOw0KICAgIH0NCg0KICAgIC8qIGNtc21zIGZpbGVfcGlja2VyICovDQogICAgZnVuY3Rpb24gaW5pdGFpbGlzZUZpbGVQaWNrZXIgKCRmaWxlcGlja2VyKSB7DQogICAgICAgICRmaWxlcGlja2VyLmF0dHIoJ2RhdGEtY21zZnAtaW5zdGFuY2UnLCAkZmlsZXBpY2tlci5hdHRyKCdpZCcpKTsgICAgLy8gdW5pcXVlIGlkIA0KICAgICAgICAkZmlsZXBpY2tlci5maWxlcGlja2VyKHsNCiAgICAgICAgICAgIHBhcmFtX3NpZzogJGZpbGVwaWNrZXIuZGF0YSgnZnAtcHJvZmlsZScpLA0KICAgICAgICAgICAgcmVxdWlyZWQ6IDAsDQogICAgICAgICAgICByZW1vdmVfdGl0bGU6ICRmaWxlcGlja2VyLmRhdGEoJ2xhbmctY2xlYXInKSwNCiAgICAgICAgICAgIHJlbW92ZV9sYWJlbDogJGZpbGVwaWNrZXIuZGF0YSgnbGFuZy1jbGVhcicpLA0KICAgICAgICB9KTsNCiAgICB9DQoNCg0KDQoNCg0KDQoNCg0KDQoNCiAgICAvLyNyZWdpb24gRFJPUFpPTkUNCiAgICAvLw0KICAgICQoJy5lY2IyLWRyb3B6b25lLnNvcnRhYmxlJykuc29ydGFibGUoew0KICAgICAgICBpdGVtczogJz4gKjpub3QoLnVuc29ydGFibGUpJywNCiAgICAgICAgcGxhY2Vob2xkZXI6ICdkei1zb3J0YWJsZS1wbGFjZWhvbGRlcicsDQogICAgICAgIGhhbmRsZTogJy5kei1oYW5kbGUnLA0KICAgICAgICBmb3JjZVBsYWNlaG9sZGVyU2l6ZTogdHJ1ZSwNCiAgICAgICAgb3BhY2l0eTogMC44LA0KICAgICAgICBzdGFydDogZnVuY3Rpb24oZSwgdWkpIHsNCiAgICAgICAgICAgIHVpLml0ZW0uc2libGluZ3MoJy5kei11cGxvYWQtcHJvbXB0JykuaGlkZSgpOw0KICAgICAgICB9LA0KICAgICAgICBzdG9wOiBmdW5jdGlvbihlLHVpKSB7DQogICAgICAgICAgICBsZXQgbWF4X2ZpbGVzID0gJCh0aGlzKS5kYXRhKCdkcm9wem9uZS1tYXgtZmlsZXMnKSwNCiAgICAgICAgICAgICAgICB1cGxvYWRlZF9maWxlcyA9ICQodGhpcykuY2hpbGRyZW4oJy5kei1wcmV2aWV3JykubGVuZ3RoOw0KICAgICAgICAgICAgaWYgKCFtYXhfZmlsZXMgfHwgdXBsb2FkZWRfZmlsZXMgPCBtYXhfZmlsZXMpIHsNCiAgICAgICAgICAgICAgICB1aS5pdGVtLnNpYmxpbmdzKCcuZHotdXBsb2FkLXByb21wdCcpLnNob3coKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0pOw0KDQogICAgLy8gRHJvcHpvbmUgZnVuY3Rpb25hbGl0eQ0KICAgICQoIi5lY2IyLWRyb3B6b25lIikuZWFjaCggZnVuY3Rpb24oaSkgeyANCiAgICAgICAgdmFyIGFjdGlvbl91cmwgPSAkKHRoaXMpLmRhdGEoJ2Ryb3B6b25lLXVybCcpLA0KICAgICAgICAgICAganNvbl92YWx1ZXMgPSAkKHRoaXMpLmRhdGEoJ2Ryb3B6b25lLXZhbHVlcycpLA0KICAgICAgICAgICAgcmVzaXplX3dpZHRoID0gJCh0aGlzKS5kYXRhKCdkcm9wem9uZS1yZXNpemUtd2lkdGgnKSwNCiAgICAgICAgICAgIHJlc2l6ZV9oZWlnaHQgPSAkKHRoaXMpLmRhdGEoJ2Ryb3B6b25lLXJlc2l6ZS1oZWlnaHQnKSwNCiAgICAgICAgICAgIHJlc2l6ZV9tZXRob2QgPSAkKHRoaXMpLmRhdGEoJ2Ryb3B6b25lLXJlc2l6ZS1tZXRob2QnKSwNCiAgICAgICAgICAgIHRodW1ibmFpbF93aWR0aCA9ICQodGhpcykuZGF0YSgnZHJvcHpvbmUtdGh1bWJuYWlsLXdpZHRoJyksDQogICAgICAgICAgICB0aHVtYm5haWxfaGVpZ2h0ID0gJCh0aGlzKS5kYXRhKCdkcm9wem9uZS10aHVtYm5haWwtaGVpZ2h0JyksDQogICAgICAgICAgICB0aHVtYm5haWxfcHJlZml4ID0gJCh0aGlzKS5kYXRhKCdkcm9wem9uZS10aHVtYm5haWwtcHJlZml4JyksDQogICAgICAgICAgICBtYXhfZmlsZXMgPSAkKHRoaXMpLmRhdGEoJ2Ryb3B6b25lLW1heC1maWxlcycpLA0KICAgICAgICAgICAgbWF4X2ZpbGVzX3RleHQgPSAkKHRoaXMpLmRhdGEoJ2Ryb3B6b25lLW1heC1maWxlcy10ZXh0JyksDQogICAgICAgICAgICBkelRlbXBsYXRlID0gJCh0aGlzKS5maW5kKCcuZHJvcHpvbmUtcHJldmlldy10ZW1wbGF0ZScpLmNsb25lKCksDQogICAgICAgICAgICBsb2NhdGlvbiA9ICQodGhpcykuZGF0YSgnbG9jYXRpb24nKTsNCiAgICAgICAgZHpUZW1wbGF0ZS5maW5kKCcuZHotcHJldmlldycpLmNzcygnZGlzcGxheScsICcnKTsNCiAgICAgICAgcmVzaXplX3dpZHRoID0gKHJlc2l6ZV93aWR0aD09PXVuZGVmaW5lZCB8fCByZXNpemVfd2lkdGg9PTAgKSA/IG51bGwgOiByZXNpemVfd2lkdGg7DQogICAgICAgIHJlc2l6ZV9oZWlnaHQgPSAocmVzaXplX2hlaWdodD09PXVuZGVmaW5lZCB8fCByZXNpemVfaGVpZ2h0PT0wICkgPyBudWxsIDogcmVzaXplX2hlaWdodDsNCiAgICAgICAgcmVzaXplX21ldGhvZCA9IChyZXNpemVfbWV0aG9kPT09dW5kZWZpbmVkKSA/ICdjb250YWluJyA6IHJlc2l6ZV9tZXRob2Q7DQogICAgICAgIHRodW1ibmFpbF93aWR0aCA9ICh0aHVtYm5haWxfd2lkdGg9PT11bmRlZmluZWQgfHwgdGh1bWJuYWlsX3dpZHRoPT0wICkgPyBudWxsIDogdGh1bWJuYWlsX3dpZHRoOw0KICAgICAgICB0aHVtYm5haWxfaGVpZ2h0ID0gKHRodW1ibmFpbF9oZWlnaHQ9PT11bmRlZmluZWQgfHwgdGh1bWJuYWlsX2hlaWdodD09MCApID8gbnVsbCA6IHRodW1ibmFpbF9oZWlnaHQ7DQogICAgICAgIG1heF9uZXdfZmlsZXMgPSAobWF4X2ZpbGVzPT09dW5kZWZpbmVkIHx8IG1heF9maWxlcz09MCApID8gbnVsbCA6IG1heF9maWxlcyAtIGpzb25fdmFsdWVzLmxlbmd0aDsNCiAgICAgICAgJCh0aGlzKS5kcm9wem9uZSh7DQogICAgICAgICAgICB1cmw6IGFjdGlvbl91cmwsDQogICAgICAgICAgICB1cGxvYWRNdWx0aXBsZTogdHJ1ZSwNCiAgICAgICAgICAgIHBhcmFsbGVsVXBsb2FkczogNSwNCiAgICAgICAgICAgIHByZXZpZXdUZW1wbGF0ZTogZHpUZW1wbGF0ZS5odG1sKCksDQogICAgICAgICAgICBjbGlja2FibGU6ICcjJyskKHRoaXMpLmRhdGEoJ2Jsb2NrLW5hbWUnKSsnLXVwbG9hZC1wcm9tcHQnLA0KICAgICAgICAgICAgcmVzaXplV2lkdGg6IHJlc2l6ZV93aWR0aCwNCiAgICAgICAgICAgIHJlc2l6ZUhlaWdodDogcmVzaXplX2hlaWdodCwNCiAgICAgICAgICAgIHJlc2l6ZU1ldGhvZDogcmVzaXplX21ldGhvZCwNCiAgICAgICAgICAgIHRodW1ibmFpbFdpZHRoOiB0aHVtYm5haWxfd2lkdGgsDQogICAgICAgICAgICB0aHVtYm5haWxIZWlnaHQ6IHRodW1ibmFpbF9oZWlnaHQsDQogICAgICAgICAgICBtYXhGaWxlczogbWF4X25ld19maWxlcywNCiAgICAgICAgICAgIGRpY3RNYXhGaWxlc0V4Y2VlZGVkOiBtYXhfZmlsZXNfdGV4dCwNCiAgICAgICAgICAgIGluaXQ6IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIGxldCB0aGlzX2R6ID0gdGhpczsNCiAgICAgICAgICAgICAgICAkZHogPSAkKHRoaXMuZWxlbWVudCk7DQogICAgICAgICAgICAgICAgdGhpcy5vbigiYWRkZWRmaWxlcyIsIGZ1bmN0aW9uKGZpbGVzKSB7DQogICAgICAgICAgICAgICAgICAgICQodGhpcy5lbGVtZW50KS5jaGlsZHJlbignLmR6LXVwbG9hZC1wcm9tcHQnKS5oaWRlKCk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgdGhpcy5vbignc3VjY2Vzc211bHRpcGxlJywgZnVuY3Rpb24oZmlsZSwgcmVzcG9uc2VUZXh0KSB7ICAgICANCiAgICAgICAgICAgICAgICAgICAgbGV0ICRkeiA9ICQodGhpcy5lbGVtZW50KTsNCiAgICAgICAgICAgICAgICAgICAgZmlsZS5mb3JFYWNoKChmaWxlLCBpKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYmxvY2tOYW1lID0gJGR6LmRhdGEoJ2Jsb2NrLW5hbWUnKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cgPSAkZHouZGF0YSgnaGlnaGVzdC1yb3cnKSsxLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkelN1YkZpZWxkcyA9ICQoJyMnK2Jsb2NrTmFtZSsnLXN1Yi1maWVsZHMnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZVRleHRbaV0uc3VjY2Vzcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZmlsZS5wcmV2aWV3RWxlbWVudCkuZmluZCgnLmR6LWlucHV0LWZpbGVuYW1lJykudmFsKGZpbGUubmFtZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ25hbWUnLCBibG9ja05hbWUrJ1tyXycrcm93KyddW2ZpbGVuYW1lXScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZmlsZS5wcmV2aWV3RWxlbWVudCkuZGF0YSgncm93Jywgcm93KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZmlsZS5wcmV2aWV3RWxlbWVudCkucmVtb3ZlQ2xhc3MoJ2R6LXN1Y2Nlc3MnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgJzMwMDAnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgc3ViX2ZpZWxkcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdTdWJGaWVsZHMgPSAkZHpTdWJGaWVsZHMuZmluZCgnLmR6LXN1Yi1maWVsZHMtdGVtcGxhdGUnKS5jbG9uZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdTdWJGaWVsZHMuYXR0cignaWQnLCBibG9ja05hbWUrJ19yXycrcm93Kydfc3ViX2ZpZWxkcycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdTdWJGaWVsZHMucmVtb3ZlQ2xhc3MoJ2R6LXN1Yi1maWVsZHMtdGVtcGxhdGUnKS5hZGRDbGFzcygnZHotc3ViLWZpZWxkJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IG5hbWUgJiBpZCBmb3IgZWFjaCBpbnB1dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVDQjJJbml0aWFsaXNlU3ViRmllbGRzKCAkbmV3U3ViRmllbGRzLCBibG9ja05hbWUsIHJvdyApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGR6U3ViRmllbGRzLmFwcGVuZCgkbmV3U3ViRmllbGRzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZHouZGF0YSgnaGlnaGVzdC1yb3cnLCByb3cpOyAgIC8vIGFkZHMgMQ0KDQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZmlsZS5wcmV2aWV3RWxlbWVudCkuYWRkQ2xhc3MoJ2R6LWVycm9yJykucmVtb3ZlQ2xhc3MoJ2R6LXN1Y2Nlc3MnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkZHouaGFzQ2xhc3MoJ3NvcnRhYmxlJykgKSAkZHouc29ydGFibGUoJ2VuYWJsZScpOw0KDQogICAgICAgICAgICAgICAgICAgIHJlZnJlc2hFQ0IyRHJvcHpvbmVQcm9tcHRzKHRoaXMpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHRoaXMub24oJ21heGZpbGVzZXhjZWVkZWQnLCBmdW5jdGlvbigpIHsgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaEVDQjJEcm9wem9uZVByb21wdHModGhpcyk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgdGhpcy5vbigicmVtb3ZlZGZpbGUiLCBmdW5jdGlvbihmaWxlKSB7DQogICAgICAgICAgICAgICAgICAgIGxldCByZW1vdmVkX3JvdyA9ICQoZmlsZS5wcmV2aWV3RWxlbWVudCkuZGF0YSgncm93Jyk7DQogICAgICAgICAgICAgICAgICAgIGlmICggcmVtb3ZlZF9yb3cgKSB7ICAgIC8vIHJlbW92ZSBzdWJfZmllbGRzDQogICAgICAgICAgICAgICAgICAgICAgICAkKCAnIycrJGR6LmRhdGEoJ2Jsb2NrLW5hbWUnKSsnX3JfJytyZW1vdmVkX3JvdysnX3N1Yl9maWVsZHMnICkucmVtb3ZlKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaEVDQjJEcm9wem9uZVByb21wdHModGhpcyk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgLy8gY3JlYXRlIGRyb3B6b25lIHByZXZpZXdzIGZvciBlYWNoIHNhdmVkIGdhbGxlcnkgaXRlbSwgb24gcGFnZSBsb2FkL3JlZnJlc2gNCiAgICAgICAgICAgICAgICBqc29uX3ZhbHVlcy5mb3JFYWNoKChzYXZlZF9maWxlbmFtZSwgaSkgPT4gew0KICAgICAgICAgICAgICAgICAgICBpZiAoc2F2ZWRfZmlsZW5hbWUhPScnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlFeGlzdGluZ0ZpbGUoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOnNhdmVkX2ZpbGVuYW1lLCBzaXplOjEyMzQ1IH0sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uK3RodW1ibmFpbF9wcmVmaXgrc2F2ZWRfZmlsZW5hbWUsICAgLy8gdGh1bWIvZmlsZSB1cmwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCAgICAgLy8gY2FsbGJhY2sgLSBvcHRpb25hbCBjYWxsYmFjayB3aGVuIGl0J3MgZG9uZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsICAgICAvLyBjcm9zc09yaWdpbiAtIEFkZGVkIHRvIHRoZSBgaW1nYCB0YWcgZm9yIGNyb3NzT3JpZ2luIGhhbmRsaW5nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgICAgIC8vIHNob3VsZCBEcm9wem9uZSByZXNpemUgdGhlIGltYWdlIGZpcnN0DQogICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgLy8gZmlsbCBhbnkgZW1wdHkgZHotaW5wdXQtZmlsZW5hbWUgd2l0aCBmaWxlbmFtZQ0KICAgICAgICAgICAgICAgICRkei5jaGlsZHJlbignLmR6LXByZXZpZXcnKS5lYWNoKCBmdW5jdGlvbihpKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciAkaW5wdXRfZmlsZW5hbWUgPSAkKHRoaXMpLmZpbmQoJy5kei1pbnB1dC1maWxlbmFtZScpLA0KICAgICAgICAgICAgICAgICAgICAgICAgcm93ID0gaSsxLA0KICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tOYW1lID0gJGR6LmRhdGEoJ2Jsb2NrLW5hbWUnKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkaW5wdXRfZmlsZW5hbWUudmFsKCk9PScnICkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGlucHV0X2ZpbGVuYW1lLnZhbCggJCh0aGlzKS5maW5kKCcuZHotZmlsZW5hbWUgc3BhbicpLmh0bWwoKSApOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICggJGlucHV0X2ZpbGVuYW1lLmF0dHIoJ25hbWUnKT09JycgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXRfZmlsZW5hbWUuYXR0cignbmFtZScsIGJsb2NrTmFtZSsnW3JfJytyb3crJ11bZmlsZW5hbWVdJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXRfZmlsZW5hbWUuYXR0cignaWQnLCBibG9ja05hbWUrJ19yXycrcm93KydfZmlsZW5hbWUnKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoICQodGhpcykuZGF0YSgncm93Jyk9PScnICkgJCh0aGlzKS5kYXRhKCdyb3cnLCByb3cpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJlZnJlc2hFQ0IyRHJvcHpvbmVQcm9tcHRzKHRoaXMpOyAgICAgDQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIGZ1bmN0aW9uIHJlZnJlc2hFQ0IyRHJvcHpvbmVQcm9tcHRzKHRoaXNfZHopIHsNCiAgICAgICAgbGV0ICRkeiA9ICQodGhpc19kei5lbGVtZW50KSwNCiAgICAgICAgICAgIG1heF9maWxlcyA9ICRkei5kYXRhKCdkcm9wem9uZS1tYXgtZmlsZXMnKSwNCiAgICAgICAgICAgIHVwbG9hZGVkX2ZpbGVzID0gJGR6LmNoaWxkcmVuKCcuZHotcHJldmlldycpLmxlbmd0aCwgICAgLy8gLmR6LWNvbXBsZXRlDQogICAgICAgICAgICAkZHpfdXBsb2FkX3Byb21wdCA9ICRkei5jaGlsZHJlbignLmR6LXVwbG9hZC1wcm9tcHQnKSwNCiAgICAgICAgICAgIG1heF9uZXdfZmlsZXMgPSBNYXRoLm1heCgwLCBtYXhfZmlsZXMgLSB1cGxvYWRlZF9maWxlcyk7DQogICAgICAgIGlmIChtYXhfZmlsZXM+MCkgdGhpc19kei5vcHRpb25zLm1heEZpbGVzID0gbWF4X25ld19maWxlczsgLy8gbWF4IG5ldyBmaWxlcw0KICAgICAgICBpZiAodXBsb2FkZWRfZmlsZXM9PTApIHsNCiAgICAgICAgICAgICRkel91cGxvYWRfcHJvbXB0LnNob3coKTsNCiAgICAgICAgfSBlbHNlIGlmICh1cGxvYWRlZF9maWxlcz4wKSB7IC8vIG1vdmUgcHJvbXB0IHRvIGxhc3QgcG9zaXRpb24NCiAgICAgICAgICAgICRkel91cGxvYWRfcHJvbXB0LnJlbW92ZSgpLmluc2VydEFmdGVyKCAkZHouY2hpbGRyZW4oJy5kei1wcmV2aWV3Omxhc3QnKSApLnNob3coKTsNCiAgICAgICAgfSAodXBsb2FkZWRfZmlsZXM9PTApDQogICAgICAgIGlmIChtYXhfZmlsZXMgPiAwICYmIHVwbG9hZGVkX2ZpbGVzID49IG1heF9maWxlcykgeyAvLyBoaWRlIHByb21wdA0KICAgICAgICAgICAgJGR6X3VwbG9hZF9wcm9tcHQuaGlkZSgpOw0KICAgICAgICB9DQogICAgfQ0KICAgIC8vIGVkaXQgRHJvcHpvbmUgc3ViLWZpZWxkcw0KICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICcuZHotZWRpdCcsIGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICBsZXQgYmxvY2tOYW1lID0gJCh0aGlzKS5jbG9zZXN0KCcuZWNiMi1kcm9wem9uZScpLmRhdGEoJ2Jsb2NrTmFtZScpLA0KICAgICAgICAgICAgcm93ID0gJCh0aGlzKS5jbG9zZXN0KCcuZHotcHJldmlldycpLmRhdGEoJ3JvdycpLA0KICAgICAgICAgICAgJHN1YkZpZWxkcyA9ICQoJyMnK2Jsb2NrTmFtZSsnX3JfJytyb3crJ19zdWJfZmllbGRzJyk7DQogICAgICAgICRzdWJGaWVsZHMuZGlhbG9nKHsNCiAgICAgICAgICAgIG1vZGFsOiB0cnVlLA0KICAgICAgICAgICAgd2lkdGg6IDYwMCwNCiAgICAgICAgICAgIHRpdGxlOiAnRWRpdCBkZXRhaWxzJywNCiAgICAgICAgICAgIGJ1dHRvbnM6IHsNCiAgICAgICAgICAgICAgICBPazogZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICQoIHRoaXMgKS5kaWFsb2coICJjbG9zZSIgKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KICAgICAgICAgICAgICAgIEVDQjJEZWFjdGl2YXRlU3ViRmllbGRzKCAkKGV2ZW50LnRhcmdldCkgKTsgLy8ga2lsbCBhbnkgYWN0aXZlIGVkaXRvcnMNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBvcGVuOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KICAgICAgICAgICAgICAgIEVDQjJBY3RpdmF0ZVN1YkZpZWxkcyggJChldmVudC50YXJnZXQpICk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7DQogICAgICAgICAgICAgICAgJChldmVudC50YXJnZXQpLmRpYWxvZygnZGVzdHJveScpOw0KICAgICAgICAgICAgICAgIEVDQjJEZWFjdGl2YXRlU3ViRmllbGRzKCAkKGV2ZW50LnRhcmdldCkgKTsNCiAgICAgICAgICAgICAgICAkKGV2ZW50LnRhcmdldCkuYXBwZW5kVG8oJyMnKyQodGhpcykuZGF0YSgnc3ViLWZpZWxkLXBhcmVudCcpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSkNCg0KDQoNCn0pOw==]]></data>
	</file>
	<file>
	  <filename>/lib/js/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCi8vIFNldHVwIE1vZHVsZSBQZXJtaXNzaW9ucwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbihFQ0IyOjpNQU5BR0VfUEVSTSwnRXh0ZW5kZWQgQ29udGVudCBCbG9ja3MgMiAtIE1hbmFnZScpOwoKLy8gIGNyZWF0ZSBtb2R1bGVfZWNiMl9ibG9ja3MgdGFibGUKJGJsb2Nrc190YWJsZSA9IG5ldyBlY2IyQmxvY2tzKCk7CiRibG9ja3NfdGFibGUtPmNyZWF0ZV9kYXRhYmFzZSgpOwoKZWNiMl9GaWxlVXRpbHM6OkNyZWF0ZUltYWdlc0RpcigpOwoK]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLy8gcmVtb3ZlIHRoZSBwZXJtaXNzaW9ucywgZXRjCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKEVDQjI6Ok1BTkFHRV9QRVJNKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CgoKCi8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGVzICYgaW5kZXgKJGJsb2Nrc190YWJsZSA9IG5ldyBlY2IyQmxvY2tzKCk7CiRibG9ja3NfdGFibGUtPnJlbW92ZV9kYXRhYmFzZSgpOwoKCg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRUNCMiAtIEV4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIKIyBBdXRob3I6IENocmlzIFRheWxvcgojIENvcHlyaWdodDogKEMpIDIwMTYtMjAyMyBDaHJpcyBUYXlsb3IsIGNocmlzQGJpbm5vdmF0aXZlLmNvLnVrCiMgTGljZW5jZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAzCiMgICAgICAgICAgc2VlIC9FQ0IyL2xhbmcvTElDRU5DRS50eHQgb3IgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWw+CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmRlZmluZSgnTUFOQUdFX1BFUk0nLCAnbWFuYWdlX2VjYjInKTsgICAvLyBkdXBsaWNhdGVkIGZyb20gRUNCMi5tb2R1bGUucGhwCgovLyByZW1vdmUgcGVybWlzc2lvbiBVU0VfRUNCMgpkZWZpbmUoJ1VTRV9FQ0IyJywgJ1VzZSBFeHRlbmRlZCBDb250ZW50IEJsb2NrcycpOwokZGIgPSAkdGhpcy0+R2V0RGIoKTsKaWYgKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sICcxLjQnKSA8IDAgKSB7CiAgICAkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbihVU0VfRUNCMik7Cn0KJG1vZHVsZV9wYXRoID0gJHRoaXMtPkdldE1vZHVsZVBhdGgoKTsKaWYgKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sICcxLjgnKSA8IDAgKSB7CiAgICAvLyByZW1vdmUgc3ViIGRpcnMKICAgICRkaXJzVG9SZW1vdmUgPSBbJy9saWIvanMvaW1hZ2VzJywgJy9pY29ucyddOwogICAgZm9yZWFjaCAoJGRpcnNUb1JlbW92ZSBhcyAkZGVsRGlyKSB7CiAgICAgICAgZm9yZWFjaCAoZ2xvYigkbW9kdWxlX3BhdGguJGRlbERpci4nLyouKicpIGFzICRmaWxlbmFtZSkgQHVubGluaygkZmlsZW5hbWUpOwogICAgICAgIEBybWRpcigkbW9kdWxlX3BhdGguJGRlbERpcik7CiAgICB9CiAgICAvLyBpbmRpdmlkdWFsIGZpbGVzIHRvIHJlbW92ZQogICAgJGZpbGVzVG9SZW1vdmUgPSBbJy9saWIvanMvbUNvbG9yUGlja2VyLm1pbi5qcycsICcvY2hhbmdlbG9nLmluYycsICcvbGliL2pzL2pxdWVyeS11aS10aW1lcGlja2VyLWFkZG9uLmpzJywgCiAgICAgICAgJy9saWIvanMvY29scGljay5qcyddOwogICAgZm9yZWFjaCAoJGZpbGVzVG9SZW1vdmUgYXMgJGRlbEZpbGUpIEB1bmxpbmsoJG1vZHVsZV9wYXRoLiRkZWxGaWxlKTsKfQoKaWYgKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sICcyLjAnKSA8IDAgKSB7CiAgICAvLyByZW1vdmUgc3ViIGRpcnMKICAgICRkaXJzVG9SZW1vdmUgPSBbJy9saWIvZmllbGRkZWZzL2lucHV0X3JlcGVhdGVyJ107CiAgICBmb3JlYWNoICgkZGlyc1RvUmVtb3ZlIGFzICRkZWxEaXIpIHsKICAgICAgICBpZiAoIGZpbGVfZXhpc3RzKCRtb2R1bGVfcGF0aC4kZGVsRGlyKSApIHsKICAgICAgICAgICAgZm9yZWFjaCAoZ2xvYigkbW9kdWxlX3BhdGguJGRlbERpci4nLyouKicpIGFzICRmaWxlbmFtZSkgQHVubGluaygkZmlsZW5hbWUpOwogICAgICAgICAgICBAcm1kaXIoJG1vZHVsZV9wYXRoLiRkZWxEaXIpOwogICAgICAgIH0KICAgIH0KICAgIC8vIGluZGl2aWR1YWwgZmlsZXMgdG8gcmVtb3ZlCiAgICAkZmlsZXNUb1JlbW92ZSA9IFsKICAgICAgICAnL2xpYi9jbGFzcy5lY2IyX3Rvb2xzLnBocCcsCiAgICAgICAgJy90ZXN0L2VjYjJfc29ydGFibGVfdWR0X3Rlc3QucGhwJywKICAgICAgICAnL3RlbXBsYXRlcy9jb2xvcnBpY2tlcl90ZW1wbGF0ZS50cGwnLAogICAgICAgICcvdGVtcGxhdGVzL2RhdGVwaWNrZXJfdGVtcGxhdGUudHBsJywKICAgICAgICAnL3RlbXBsYXRlcy9pbWFnZV90ZW1wbGF0ZS50cGwnLAogICAgICAgICcvdGVtcGxhdGVzL2lucHV0X3JlcGVhdGVyX3RlbXBsYXRlLnRwbCcsCiAgICAgICAgJy90ZW1wbGF0ZXMvc2VsZWN0X3RlbXBsYXRlLnRwbCcsCiAgICAgICAgJy90ZW1wbGF0ZXMvc29ydGFibGVsaXN0X3RlbXBsYXRlLnRwbCcsCiAgICAgICAgJy90ZW1wbGF0ZXMvX2hlbHAudHBsJywKICAgICAgICAnL3RlbXBsYXRlcy9fY2hhbmdlbG9nLnRwbCcsCiAgICAgICAgJy9hY3Rpb24ucmVmcmVzaC5waHAnCiAgICBdOwogICAgZm9yZWFjaCAoJGZpbGVzVG9SZW1vdmUgYXMgJGRlbEZpbGUpIEB1bmxpbmsoJG1vZHVsZV9wYXRoLiRkZWxGaWxlKTsKCiAgICBlY2IyX0ZpbGVVdGlsczo6Q3JlYXRlSW1hZ2VzRGlyKCk7Cn0KCmlmICggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCAnMS45OS4zJykgPCAwICkgewogICAgJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oTUFOQUdFX1BFUk0sJ0V4dGVuZGVkIENvbnRlbnQgQmxvY2tzIDIgLSBNYW5hZ2UnKTsKfQoKaWYgKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sICcxLjk5LjUnKSA8IDAgKSB7CiAgICAvLyAgY3JlYXRlIG1vZHVsZV9lY2IyX2Jsb2NrcyB0YWJsZQogICAgJGJsb2Nrc190YWJsZSA9IG5ldyBlY2IyQmxvY2tzKCk7CiAgICAkYmxvY2tzX3RhYmxlLT5jcmVhdGVfZGF0YWJhc2UoKTsKfQoKaWYgKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sICcyLjMnKSA8PSAwICkgeyAvLyBpZiB2Mi4zIG9yIGxvd2VyCiAgICAkZGlyc1RvUmVtb3ZlID0gWycvdGVzdCddOwogICAgZm9yZWFjaCAoJGRpcnNUb1JlbW92ZSBhcyAkZGVsRGlyKSB7CiAgICAgICAgaWYgKCBmaWxlX2V4aXN0cygkbW9kdWxlX3BhdGguJGRlbERpcikgKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKGdsb2IoJG1vZHVsZV9wYXRoLiRkZWxEaXIuJy8qLionKSBhcyAkZmlsZW5hbWUpIEB1bmxpbmsoJGZpbGVuYW1lKTsKICAgICAgICAgICAgQHJtZGlyKCRtb2R1bGVfcGF0aC4kZGVsRGlyKTsKICAgICAgICB9CiAgICB9CiAgICAkZmlsZXNUb1JlbW92ZSA9IFsnL3RlbXBsYXRlcy9FQ0IyX1Rlc3RfVGVtcGxhdGUudHBsJ107CiAgICBmb3JlYWNoICgkZmlsZXNUb1JlbW92ZSBhcyAkZGVsRmlsZSkgewogICAgICAgIEB1bmxpbmsoJG1vZHVsZV9wYXRoLiRkZWxGaWxlKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJFQ0IyIgp2ZXJzaW9uID0gIjIuNC40IgphdXRob3IgPSAiQ2hyaXMgVGF5bG9yIgphdXRob3JlbWFpbCA9ICJjaHJpc0BiaW5ub3ZhdGl2ZS5jby51ayIKbWluY21zdmVyc2lvbiA9IDIuMApsYXp5bG9hZGFkbWluID0gMApsYXp5bG9hZGZyb250ZW5kID0gMAo=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_about.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogRUNCMiBhZG1pbl9hYm91dC50cGwgKn0KCjxkaXYgaWQ9ImFib3V0X2MiPgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICB7JG1vZC0+TGFuZygnYWJvdXRfYycpfQogICAgPC9kaXY+CjwvZGl2PgoKCgp7KiBub3RlOiBleHRyYSA8L2Rpdj4ncyB0byBjbG9zZSAjcGFnZV9jb250ZW50IGZyb20gYWRtaW5fZGVmYXVsdC50cGwgKn0KICAgIDwvZGl2Pgo8L2Rpdj4KPGJyPgoKCg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogRUNCMiBhZG1pbl9jaGFuZ2Vsb2cudHBsICp9DQoNCjxoMz5WZXJzaW9uIDIuNC40IC0gMDhKYW4yNTwvaDM+DQo8dWw+DQogICAgPGxpPmZ1cnRoZXIgYnVnIGZpeGVzIHNvIEVDQjIgZmllbGRzIHdvcmsgd2l0aCBUaW55TUNFIDggKGFzIHVzZWQgaW4gVGlueU1DRSBtb2R1bGUgdjQrKSBhbmQgb2xkZXIgdmVyc2lvbnM8L2xpPg0KICAgIDxsaT50d2Vha2VkIGhlbHAgbm90ZXMgZm9yIEdhbGxlcnkgZmllbGQgdHlwZTwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCjxoMz5WZXJzaW9uIDIuNC4zIC0gMDlEZWMyNTwvaDM+DQo8dWw+DQogICAgPGxpPmFsbCBFQ0IyIHRleHQgY29udGVudCBpcyBub3cgc2F2ZWQgaW4gdGhlIHNlYXJjaCBpbmRleC4gUHJldmlvdXNseSBncm91cCAmIGdhbGxlcnkgZmllbGQgdGV4dCBjb250ZW50IHdhcyBub3QgaW5kZXhlZC48L2xpPg0KICAgIDxsaT5ub3cgd29ya3Mgd2l0aCBUaW55TUNFIDgrLCBhcyB1c2VkIGluIFRpbnlNQ0UgbW9kdWxlIHY0KzwvbGk+DQogICAgPGxpPmZpbGVfcGlja2VyIC0gYnVnIGZpeCBmb3IgdGhlICd0eXBlJyBwYXJhbWV0ZXIgLSBwYXJhbWV0ZXIgaXMgbm93IGNhbGxlZCAnZmlsZXR5cGUnLiBUaGUgJ3R5cGUnIHBhcmFtZXRlciBjbGFzaGVkIHdpdGggYSBjb3JlIHBhcmFtZXRlciBhbmQgZGlkIG5vdCBmdW5jdGlvbi48L2xpPg0KICAgIDxsaT5ncm91cCAmIGdhbGxlcnkgLSBub3cgdXNlIGRlZmF1bHQgdmFsdWVzIHdoZW4gYWRkaW5nIG5ldyBpdGVtcyBmb3IgdGhlIHN1Yl9maWVsZHM6IHRleHRpbnB1dCwgdGV4dGFyZWEsIGRyb3Bkb3duLCBjaGVja2JveCAtIEJSMTI2NzI8L2xpPg0KICAgIDxsaT5yZXBsYWNlIHVzZSBvZiBkZXByZWNpYXRlZCBGSUxURVJfU0FOSVRJWkVfU1RSSU5HPC9saT4NCjwvdWw+DQo8YnI+DQoNCg0KPGgzPlZlcnNpb24gMi40LjIgLSAwMk5vdjIzPC9oMz4NCjx1bD4NCiAgICA8bGk+c29ydGFibGVsaXN0IC0gYnVnIGZpeCBmb3Igd2hlbiB2YWx1ZXMgYmVpbmcgcmV0cmlldmVkIGZyb20gYW5vdGhlciBtb2R1bGUgYW5kIHJlc3VsdCBpcyBiZWluZyBhc3NpZ25lZDwvbGk+DQogICAgPGxpPmltYWdlIHRodW1ibmFpbCAtIGltcHJvdmUgdGh1bWJuYWlsIHVybCBnZW5lcmF0aW9uICYgY2hhbmdlIHRvIHJlbGF0aXZlIGFkbWluIHVybDwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCjxoMz5WZXJzaW9uIDIuNC4xIC0gMzBPY3QyMzwvaDM+DQo8dWw+DQogICAgPGxpPmRyb3Bkb3duIC0gYnVnIGZpeCBmb3Igd2hlbiB2YWx1ZXMgYmVpbmcgcmV0cmlldmVkIGZyb20gYW5vdGhlciBtb2R1bGUgYW5kIHJlc3VsdCBpcyBiZWluZyBhc3NpZ25lZDwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCg0KPGgzPlZlcnNpb24gMi40IC0gMTRTZXAyMzwvaDM+DQo8dWw+DQogICAgPGxpPmZpbGVfcGlja2VyIGNhbiBub3cgYmUgdXNlZCBhcyBhIHN1YiBmaWVsZCBpbiAnZ3JvdXAnIGFuZCAnZ2FsbGVyeSc8L2xpPg0KICAgIDxsaT5maWxlX3BpY2tlciAtIGltcHJvdmVkIGxheW91dCwgd2l0aCBzaW1pbGFyIHN0eWxlIHRvICdnYWxsZXJ5JyBwbHVzIHNob3dzIGEgc2ltcGxlIGZpbGUgaWNvbiBpZiBhIHRodW1ibmFpbCBjYW5ub3QgYmUgZ2VuZXJhdGVkPC9saT4NCiAgICA8bGk+ZmlsZV9zZWxlY3RvciAtIG5vdyB1c2VzIGFjdHVhbCB0aHVtYm5haWxzICYgYnVnIGZpeCBmb3Igd2hlbiB1c2VkIGFzIGdhbGxlcnkgc3ViIGZpZWxkPC9saT4NCiAgICA8bGk+R2FsbGVyeSAtIGRpciBvcHRpb24gaGVscCB1cGRhdGVkIC0gdG8gY29ycmVjdCB0b3AgbGV2ZWwgcGF0aCB0byBiZSBpbWFnZV91cGxvYWRzX3BhdGggKGRlZmF1bHQgaXM6IC91cGxvYWRzL2ltYWdlcyk8L2xpPg0KICAgIDxsaT5ncm91cCAtIHBhZ2VfcGlja2VyIHN1YiBmaWVsZCBidWcgZml4IC0gZGVsZXRpbmcgbGFzdCBncm91cCByb3cgbm93IHdvcmtzIGNvcnJlY3RseTwvbGk+DQogICAgPGxpPnBhZ2VfcGlja2VyIC0gcGFyYW1ldGVycyAnYWxsb3dfYWxsJyAmICdhbGxvd2N1cnJlbnQnIGFkZGVkIHRvIG1hdGNoIGNvcmUgZnVuY3Rpb25hbGl0eSAoYnVnIGluIGNvcmUgdG8gYmUgZml4ZWQgZm9yIG5leHQgcmVsZWFzZSk8L2xpPg0KPC91bD4NCjxicj4NCg0KDQo8aDM+VmVyc2lvbiAyLjMuMi4xIC0gMjlBdWcyMzwvaDM+DQo8dWw+DQogICAgPGxpPmJ1ZyBmaXggLSBzb21lIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBubyBsb25nZXIgaWdub3JlZDwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCjxoMz5WZXJzaW9uIDIuMy4yIC0gMTJBdWcyMzwvaDM+DQo8dWw+DQogICAgPGxpPmJ1ZyBmaXggLSBBZG1pbiBEZXNjcmlwdGlvbiBub3cgd29ya3MgLSB0aGFua3MgQHRvbXBoPC9saT4NCiAgICA8bGk+YWRtaW5fdGV4dCAtIHdpbGwgbm93IGFjY2VwdCBodG1sIHRhZ3MgdG8gYmUgZGlzcGxheWVkIG9uIHRoZSBhZG1pbiBwYWdlPC9saT4NCiAgICA8bGk+YWxsICdkZXNjcmlwdGlvbnMnIGNhbiBub3cgaW5jbHVkZSBodG1sIHRhZ3MgKHdlcmUgcHJldmlvdXNseSByZW1vdmVkKTwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCjxoMz5WZXJzaW9uIDIuMy4xIC0gMTFKdWwyMzwvaDM+DQo8dWw+DQogICAgPGxpPkdyb3VwIC0gYnVnIGZpeCAtIGRyb3Bkb3duIG11bHRpcGxlIG9wdGlvbnMgc3RvcHBlZCBuZXcgZ3JvdXBzIGJlaW5nIGFkZGVkIGFuZCBzYXZlZCBjb3JyZWN0bHk8L2xpPg0KICAgIDxsaT5Hcm91cCAtIGJ1ZyBmaXggLSB0ZXN0aW5nIGZvciBlbXB0eSBncm91cCBub3cgY29ycmVjdGx5IHRlc3RzIHBhZ2VfcGlja2VyPC9saT4NCiAgICA8bGk+R2FsbGVyeSAtIGJ1ZyBmaXggLSBhZnRlciBzb3J0aW5nLCBvbmx5IHNob3cgdXBsb2FkIHByb21wdCBpZiBtYXhfZmlsZXMgbm90IGV4Y2VlZGVkPC9saT4NCiAgICA8bGk+cmVtb3ZlZCB0ZXN0IHRlbXBsYXRlcyAmIG5vdGVzIGZyb20gd2l0aGluIG1vZHVsZSBmb2xkZXJzPC9saT4NCjwvdWw+DQo8YnI+DQoNCg0KPGgzPlZlcnNpb24gMi4zIC0gMjRKdW4yMzwvaDM+DQo8dWw+DQogICAgPGxpPk5FVyBmaWVsZCB0eXBlOiBmaWxlX3BpY2tlciAtIGltcGxlbWVudHMgdGhlIGNvcmUgRmlsZVBpY2tlciBidXQgd2l0aCB0aGUgYWRkZWQgYWRkaXRpb24gb2YgYSB0aHVtYm5haWw8L2xpPg0KICAgIDxsaT5taW5vciBoZWxwIHR3ZWFrczwvbGk+DQogICAgPGxpPkJ1ZyBmaXggLSBtYWtlIG91dHB1dCB2YWx1ZXMgbW9yZSByb2J1c3QsIGluY2x1ZGluZyBoYW5kbGluZyBjaGFuZ2Ugb2YgZmllbGQgdHlwZSBhbmQgb3B0aW9ucywgZS5nLiBpbnB1dF9yZXBlYXRlciB0byBpbnB1dC48L2xpPg0KICAgIDxsaT5CdWcgZml4IC0gJ2Ryb3Bkb3duJyBjb21wYWN0IG9wdGlvbiAtIHVwZGF0ZSBzZWxlY3Rpb24gb24gY2hhbmdlICsgbWlub3IgbGF5b3V0IHR3ZWFrPC9saT4NCiAgICA8bGk+QnVnIGZpeCAtICdncm91cCcgc3ViIGZpZWxkIGxhYmVscyAtIHR3ZWFrZWQgY3NzIHRvIHN0b3AgdGhlbSB3cmFwcGluZzwvbGk+DQogICAgPGxpPkJ1ZyBmaXggLSAnZmlsZV9zZWxlY3RvcicgZmllbGQgLSBmaXggc2hvd2luZyB0aHVtYm5haWxzIGlmIG5vIGltYWdlIHNlbGVjdGVkIG9yIG5vbi1pbWFnZSBmaWxlIHR5cGU8L2xpPg0KICAgIDxsaT5CdWcgRml4IC0gd2hlbiB1cGdyYWRpbmcgZnJvbSBvbGRlciBFQ0IyIHZlcnNpb24gKDwgdjEuOTkuMyk8L2xpPg0KPC91bD4NCjxicj4NCg0KDQo8aDM+VmVyc2lvbiAyLjIuMSAtIDA1QXByMjM8L2gzPg0KPHVsPg0KICAgIDxsaT4nZ2FsbGVyeScgQnVnIEZpeCAtIHdoZW4gdXNpbmcgbXVsdGlwbGUgZ2FsbGVyeSBmaWVsZHMgb24gdGhlIG9uZSBwYWdlIHRoZSB1cGxvYWQgZGlhbG9nIG5vdyBhZGRzIHRoZSBpbWFnZS9zIHRvIHRoZSBjb3JyZWN0IGdhbGxlcnk8L2xpPg0KPC91bD4NCjxicj4NCg0KDQo8aDM+VmVyc2lvbiAyLjIgLSAyN0ZlYjIzPC9oMz4NCjx1bD4NCiAgICA8bGk+J2dhbGxlcnknIGZpbGVfbG9jYXRpb24gY2hhbmdlZCB0byByZWxhdGl2ZSBkaXIsIHdoZW4gYSBwYWdlIGlzIG5leHQgc2F2ZWQuIFRoaXMgbWFrZXMgc2F2ZWQgdmFsdWVzIG1vcmUgcG9ydGFibGUgd2hlbiBtb3ZpbmcgZnJvbSBvbmUgZG9tYWluIHRvIGFub3RoZXIuIFRoaXMgc2hvdWxkIG5vdCBjYXVzZSBhbiBpc3N1ZSAtIGlmIGl0IGRvZXMgcGxlYXNlIGNvbnRhY3QgbWUgYW5kIEknbGwgaGVscCBmaW5kIGEgc29sdXRpb24uPC9saT4NCiAgICA8bGk+dHdlYWsgJ2dhbGxlcnknIHR5cGUgaGVscCB0ZXh0PC9saT4NCiAgICA8bGk+QnVnIGZpeCBmb3IgJ2Ryb3Bkb3duJyBtdWx0aXBsZSBmb3Igb3V0cHV0IHRvIGJlIGNvbW1hIHNlcGFyYXRlZCBsaXN0IGFzIHByZXZpb3VzbHkgKHdhcyBicm9rZW4gaW4gdjIuMCB3aGVuIGdyb3VwIHR5cGUgYWRkZWQpLjwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCjxoMz5WZXJzaW9uIDIuMSAtIDAxRmViMjM8L2gzPg0KPHVsPg0KICAgIDxsaT5nYWxsZXJ5IGZpZWxkIC0gaW1hZ2VzIGNhbiBub3cgYmUgcmVvcmRlcmVkIGJ5IGRyYWdnaW5nIGFuZCBkcm9wcGluZzwvbGk+DQogICAgPGxpPmdhbGxlcnkgZmllbGQgLSBpbWFnZXMgY2FuIG5vdyBoYXZlIG11bHRpcGxlIHN1Yi1maWVsZHMsIGUuZy4gdGl0bGUsIGRlc2NyaXB0aW9uLCBldGMuPC9saT4NCiAgICA8bGk+QWRkaXRpb25zIHRvIGhlbHAgZmlsZXMgYmFzZWQgb24gdXNlciBxdWVzdGlvbnM8L2xpPg0KICAgIDxsaT5BZGRlZCBncm91cCBmaWxlICdyZW1vdmVfZW1wdHknIG9wdGlvbiAtIGlmIHNldCB3aWxsIHJlbW92ZSBhbnkgZ3JvdXBzIHdoZXJlIGFsbCBzdWJfZmllbGRzIGFyZSAnZW1wdHknPC9saT4NCiAgICA8bGk+dGV4dGFyZWEsIHJvd3MgZGVmYXVsdCBjaGFuZ2VkIHRvIDMgLSB3YXMgMjA8L2xpPg0KICAgIDxsaT5CdWcgZml4IGZvciB1cGdyYWRlIC0gd2lsbCBubyBsb25nZXIgZmFpbCBpZiBmaWVsZCB0eXBlIG5vdCB2YWxpZDwvbGk+DQogICAgPGxpPkJ1ZyBmaXggZm9yIG11bHRpcGxlIGdhbGxlcmllcyBvbiBvbmUgcGFnZTwvbGk+DQogICAgPGxpPkJ1ZyBmaXggcmVtb3ZpbmcgMXN0IGltYWdlIHdoZW4gbWF4X2ZpbGVzPTEgLSBjYW4gbm93IGFkZCBhbm90aGVyIG9uZTwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCg0KPGgzPlZlcnNpb24gMi4wIC0gMTBKYW4yMzwvaDM+DQo8dWw+DQogICAgPGxpPk5FVzogZ2FsbGVyeSBmaWVsZCB0eXBlIC0gZW5hYmxlcyBtdWx0aXBsZSBpbWFnZXMgdG8gYWRkZWQgYnkgZHJhZ2dpbmcgYW5kIGRyb3BwaW5nIG9yIHVwbG9hZGluZy4gVGh1bWJuYWlscyBvZiB0aGUgaW1hZ2VzIGFyZSBkaXNwbGF5ZWQgYW5kIGNyZWF0ZWQgb24gdGhlIHNlcnZlciBhbmQgaW1hZ2VzIGNhbiBvcHRpb25hbGx5IGJlIGF1dG9tYXRpY2FsbHkgcmVzaXplZCBiZWZvcmUgdGhleSBhcmUgdXBsb2FkZWQuPC9saT4NCiAgICA8bGk+TkVXOiBncm91cHMgZmllbGQgdHlwZSAtIGNyZWF0ZXMgYSBncm91cCBvZiBvbmUgb3IgbW9yZSBzdWIgZmllbGRzLiBBbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGdyb3VwcyBjYW4gYWRkZWQgYnkgdGhlIGVkaXRvcnMsIHNvcnRlZCBvciBkZWxldGVkLiBDYW4gYmUgZGlzcGxheWVkIGluIHRhYmxlIG9yIGJsb2NrIGxheW91dC48L2xpPg0KICAgIDxsaT5BZGRlZCAnYWRtaW5fZ3JvdXBzJyBvcHRpb24gdG8gbW9zdCBmaWVsZCB0eXBlcy4gVG8gcmVzdHJpY3Qgd2hpY2ggdXNlcnMgY2FuIHZpZXcgYW5kIGVkaXQgd2hpY2ggZmllbGRzLjwvbGk+DQogICAgPGxpPmJ1ZyBmaXggZm9yIHVzaW5nIGEgbW9kdWxlIGNhbGwgJ21vZCcgcGFyYW1ldGVyIC0gaWYgYW55IHBhcmFtZXRlcnMgYmVpbmcgcGFzc2VkIHRocm91Z2ggdG8gdGhlIG1vZHVsZSBjb250YWluIGEgc3BhY2UgaXQgd291bGQgcHJvYmFibHkgY2F1c2UgYW4gZXJyb3IuIEZpeGVkLjwvbGk+DQogICAgPGxpPmFkZGVkIGRhdGFiYXNlIHRvIHN0b3JlIGVjYjJfYmxvY2sgZGVmaW5pdGlvbnMgKG5vdCB5ZXQgdXNlZCk8L2xpPg0KICAgIDxsaT5hZGRlZCByZXBlYXRlciBmdW5jdGlvbmFsaXR5IC0gc29ydGFibGUgY29udGVudCBibG9ja3MsIG9wdGlvbmFsbHkgbGltaXRlZCBieSAnbWF4X2Jsb2Nrcyc8L2xpPg0KICAgIDxsaT5pbXByb3ZlZCBhZG1pbiBsYXlvdXQgJiBhZGRlZCBtb2R1bGUgY3VzdG9tIGljb25zPC9saT4NCiAgICA8bGk+aW5wdXRfcmVwZWF0ZXIgaXMgbm93IGFuIGFsaWFzIG9mIHRleHRpbnB1dCAoZnVsbHkgY29tcGF0aWJsZSk8L2xpPg0KICAgIDxsaT5idWcgZml4IGZvciB1c2luZyAnc2VsZWN0JyBhcyBhbGlhcyBvZiB0ZXh0aW5wdXQ8L2xpPg0KICAgIDxsaT50ZXh0aW5wdXRzIG5vdyBjb3JyZWN0bHkgZXNjYXBlIHF1b3RlczwvbGk+DQogICAgPGxpPm90aGVyIG1pbm9yIGJ1ZyBmaXhlczwvbGk+DQogICAgPGxpPnJlc3RydWN0dXJlZCBmaWVsZF9kZWYgbWV0aG9kcyAtIGltcHJvdmUgY2xhcml0eSBhbmQgZmxleGliaWxpdHk8L2xpPg0KPC91bD4NCjxicj4NCg0KDQo8aDM+VmVyc2lvbiAxLjk5LjMgLSAwNkp1bDIyPC9oMz4NCjx1bD4NCiAgIDxsaT5hZGQgaW4gbW9kdWxlICdNYW5hZ2UnIHBlcm1pc3Npb25zIGZvciBhY2Nlc3MgdG8gbW9kdWxlIGFkbWluIHBhZ2U8L2xpPg0KICAgPGxpPmFkbWluX2ltYWdlIC0gYnVnIGZpeDwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCjxoMz5WZXJzaW9uIDEuOTkuMSAtIDA2SnVsMjI8L2gzPg0KPHVsPg0KICAgPGxpPmFib3V0IHR3ZWFrczwvbGk+DQogICA8bGk+YWRtaW5faW1hZ2UgLSBlcnJvciBtZXNzYWdlIGFkZGVkIGlmIGltYWdlIGZpbGUgbm90IGZvdW5kIHBsdXMgYWRkIGluIHNhbXBsZSBpbWFnZSBmb3IgaGVscCBwYWdlLjwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCjxoMz5WZXJzaW9uIDEuOTkgLSAwNUp1bDIyPC9oMz4NCjx1bD4NCiAgIDxsaT5TaWduaWZpY2FudGx5IHJlZmFjdG9yZWQgbW9kdWxlLCB0byBlbmFibGUgZnV0dXJlIGRldmVsb3BtZW50IG9mIHRoZSBtb2R1bGUgYW5kIHNpbXBsaWZ5IHVzZS4gSXMgZnVsbHkgY29tcGF0aWJsZSB3aXRoIGFsbCBwcmV2aW91cyB1c2FnZS4gUGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHlvdSBtYXkgZmluZC48L2xpPg0KICAgPGxpPkV4cGFuZGVkIGhlbHAgY29udGVudCwgd2l0aCBleGFtcGxlIHRhZ3MgYW5kIGRlbW8gY29udGVudCBibG9ja3MgZm9yIGFsbCBmaWVsZCB0eXBlcy48L2xpPg0KICAgPGxpPlNvbWUgZmllbGQgdHlwZXMgaGF2ZSBiZWVuIHJlbmFtZWQsIHRvIG1ha2UgdGhlaXIgdXNlIG1vcmUgb2J2aW91cy4gQWxsIHByZXZpb3VzIGZpZWxkIHR5cGVzIGFyZSBmdWxseSBzdXBwb3J0ZWQgYXMgYW4gYWxpYXMgZm9yIHRoZSBuZXcgZmllbGQgbmFtZTwvbGk+DQogICA8bGk+J3RleHRpbnB1dCcgZmllbGQgcmVwbGFjZXMgJ2lucHV0JywgZmllbGQ9aW5wdXQgaXMgYSBmdWxseSBzdXBwb3J0ZWQgYWxpYXM8L2xpPg0KICAgPGxpPid0ZXh0YXJlYScgZmllbGQgcmVwbGFjZXMgJ2VkaXRvcicsIHdpdGggYSB3eXNpd3lnIG9wdGlvbiBhZGRlZCAoZGVmYXVsdD1mYWxzZSkuIGZpZWxkPWVkaXRvciBpcyBhIGZ1bGx5IHN1cHBvcnRlZCBhbGlhczwvbGk+DQogICA8bGk+J2Ryb3Bkb3duJyBmaWVsZCBub3cgcmVwbGFjZXMgJ2Ryb3Bkb3duX2Zyb21fbW9kdWxlJywgJ2Ryb3Bkb3duX2Zyb21fdWR0JywgJ2Ryb3Bkb3duX2Zyb21fY3VzdG9tZ3MnICYgJ2Ryb3Bkb3duX2Zyb21fZ2JjJywgcGx1cyBoYXMgYSBuZXcgYWxpYXMgJ3NlbGVjdCcuIEEgbmV3ICd0ZW1wbGF0ZScgcGFyYW1ldGVyIGVuYWJsZXMgZHJvcGRvd24gdmFsdWVzIHRvIGJlIHJldHJpZXZlZCBmcm9tIGEgc21hcnR5IHRlbXBsYXRlICgnZ2NiJyBwYXJhbWV0ZXIgaXMgYXMgYWxpYXMpLiBBIHNhbXBsZSBMSVNFIG1vZHVsZSB0ZW1wbGF0ZSBhZGRlZCBpbnRvIGhlbHA8L2xpPg0KICAgPGxpPidjaGVja2JveCcgLSBhZGRlZCBhbiBpbmxpbmVfbGFiZWwgb3B0aW9uPC9saT4NCiAgIDxsaT4ncmFkaW8nIC0gYWRkZWQgJ2ZsaXBfdmFsdWVzJyBvcHRpb24gLSBzd2FwcyB0aGUgZHJvcGRvd25zIHZhbHVlcyA8LT4gdGV4dDwvbGk+DQogICA8bGk+J2RhdGVfdGltZV9waWNrZXInIGZpZWxkIHJlcGxhY2VzICdkYXRlcGlja2VyJyBhbmQgJ3RpbWVwaWNrZXInIHdpdGggYm90aCBmdWxseSBzdXBwb3J0ZWQgYXMgYWxpYXNlczwvbGk+DQogICA8bGk+cGFyYW1ldGVyICdkZWZhdWx0JyBub3cgdXNlZCBpbnN0ZWFkIG9mICdkZWZhdWx0X3ZhbHVlJywgKCdkZWZhdWx0X3ZhbHVlJyBwYXJhbWV0ZXIgaXMgYW4gYWxpYXMpIC0gZm9yIGFsbCBmaWVsZHMgdGhhdCBjYW4gaGF2ZSBhIGRlZmF1bHQ8L2xpPg0KICAgPGxpPidwYWdlX3BpY2tlcicsIHJlbmFtZWQgZnJvbSB0aGUgbm93IGFsaWFzOiAncGFnZXMnPC9saT4NCiAgIDxsaT4nbW9kdWxlX3BpY2tlcicsIHJlbmFtZWQgZnJvbSB0aGUgbm93IGFsaWFzOiAnbW9kdWxlJzwvbGk+DQogICA8bGk+J2FkbWluX2ZpZWxkc2V0X3N0YXJ0JywgcmVuYW1lZCBmcm9tIHRoZSBub3cgYWxpYXM6ICdmaWVsZHNldF9zdGFydCc8L2xpPg0KICAgPGxpPidhZG1pbl9maWVsZHNldF9lbmQnLCByZW5hbWVkIGZyb20gdGhlIG5vdyBhbGlhczogJ2ZpZWxkc2V0X2VuZCc8L2xpPg0KICAgPGxpPidhZG1pbl9ocicsIHJlbmFtZWQgZnJvbSB0aGUgbm93IGFsaWFzOiAnaHInPC9saT4NCiAgIDxsaT4nYWRtaW5faW1hZ2UnLCByZW5hbWVkIGZyb20gdGhlIG5vdyBhbGlhczogJ2ltYWdlJzwvbGk+DQogICA8bGk+J2FkbWluX2xpbmsnLCByZW5hbWVkIGZyb20gdGhlIG5vdyBhbGlhczogJ2xpbmsnPC9saT4NCiAgIDxsaT4nYWRtaW5fbW9kdWxlX2xpbmsnLCByZW5hbWVkIGZyb20gdGhlIG5vdyBhbGlhczogJ21vZHVsZV9saW5rJzwvbGk+DQogICA8bGk+J2FkbWluX3RleHQnLCByZW5hbWVkIGZyb20gdGhlIG5vdyBhbGlhczogJ3RleHQnPC9saT4NCiAgIDxsaT5hZGRlZCBzYW1wbGUgTElTRSB0ZW1wbGF0ZSBpbnRvIGhlbHA8L2xpPg0KPC91bD4NCjxicj4NCg0KDQo8aDM+VmVyc2lvbiAxLjggLSAyMkp1bjIyPC9oMz4NCjx1bD4NCiAgIDxsaT5kcm9wZG93biAmIHNvcnRhYmxlbGlzdCAtICdtb2QnIG9wdGlvbiBhZGRlZCAtIGNhbiBsb2FkIG9wdGlvbnMgZGlyZWN0bHkgZnJvbSBhIG1vZHVsZXMgdGVtcGxhdGU8L2xpPg0KICAgPGxpPmRyb3Bkb3duICYgc29ydGFibGVsaXN0IC0gJ2ZsaXBfdmFsdWVzJyBvcHRpb24gYWRkZWQgLSBzd2FwcyB0aGUgZHJvcGRvd25zIHZhbHVlcyA8LT4gdGV4dC4gQ2FuIHNpbXBsaWZ5IHVzaW5nIGRhdGEgZnJvbSBhbm90aGVyIHNvdXJjZS48L2xpPg0KICAgPGxpPnVuZG9jdW1lbnRlZCAmIG5vbi1mdW5jdGlvbmluZyBtZXRob2QgZ2V0X2Ryb3Bkb3duX2Zyb21fbW9kdWxlIHJlbW92ZWQuPC9saT4NCiAgIDxsaT5idWcgZml4IGZvciB2MS43IC0gY29sb3JfcGlja2VyIGhhZCBzdG9wcGVkIHdvcmtpbmc8L2xpPg0KICAgPGxpPnRpbWVfcGlja2VyICYgY29sb3VyX3BpY2tlciBqcyBtb3ZlZCBpbnRvIHNpbmdsZSBmaWxlIGVjYjJfYWRtaW4uanM8L2xpPg0KICAgPGxpPmZvcmNlIHJlZnJlc2ggb2YgY3NzICYganMgZmlsZXMgYWZ0ZXIgbW9kdWxlIHVwZGF0ZTwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCjxoMz5WZXJzaW9uIDEuNyAtIDIwSnVuMjI8L2gzPg0KPHVsPg0KICAgPGxpPmNvbG9yX3BpY2tlciAtIGNoYW5nZWQgdG8gdXNlIGNvbHBpY2sgZm9yIGNvbnNpc3RlbmN5IHdpdGggTElTRSAmIEN1c3RvbUdTLCBhZGRlZCBvcHRpb25zOiBjbGVhcl9jc3NfY2FjaGUgJiBub19oYXNoPC9saT4NCiAgIDxsaT5pbWFnZSAtIGFkZGVkIGZpZWxkIHR5cGUgZm9yIGRpc3BsYXlpbmcgYW4gaW1hZ2Ugb24gYW4gYWRtaW4gcGFnZSBvbmx5LiBVc2VmdWxseSB0byBwcm92aWRlIGV4dHJhIGd1aWRhbmNlIHRvIGVkaXRvcnMuPC9saT4NCjwvdWw+DQo8YnI+DQoNCg0KPGgzPlZlcnNpb24gMS42LjIgLSAxOUphbjIyPC9oMz4NCjx1bD4NCiAgIDxsaT5kYXRlcGlja2VyIC0gYWRkIG9wdGlvbnMgZm9yIGNoYW5nZV9tb250aCwgY2hhbmdlX3llYXIsIHllYXJfcmFuZ2U8L2xpPg0KICAgPGxpPmRhdGVwaWNrZXIgJiB0aW1lcGlja2VyIC0gbW92ZSBvdXB1dCBpbnRvIHNtYXJ0eSB0ZW1wbGF0ZSAnZGF0ZXBpY2tlcl90ZW1wbGF0ZS50cGwnLCBtb3ZlIGN1c3RvbSBqcyBmcm9tIGlubGluZSBpbnRvIGVjYjJfYWRtaW4uanM8L2xpPg0KICAgPGxpPmJ1ZyBmaXggZm9yIGlzX2RhdGVwaWNrZXJfbGliX2xvYWQgLSBzbyBpdCdzIG9ubHkgbG9hZGVkIG9uY2U8L2xpPg0KPC91bD4NCjxicj4NCg0KDQo8aDM+VmVyc2lvbiAxLjYuMSAtIDI3SnVsMjA8L2gzPg0KPHVsPg0KICAgPGxpPm1vdmUgaGVscCAmIGNoYW5nZWxvZyBpbnRvIHRlbXBsYXRlczwvbGk+DQogICA8bGk+QnVnIGZpeDogZm9yICdjaGVja2JveCcgdXNpbmcgZGVmYXVsdCBvZiB0cnVlIChjaGVja2VkKSAtIHdvcmsgYXJvdW5kIGZvciBjb3JlIGJ1ZzwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCjxoMz5WZXJzaW9uIDEuNiAtIDAzSnVuMjA8L2gzPg0KPHVsPg0KICAgPGxpPmFsbCAnZHJvcGRvd24nIGNvbnRlbnQgYmxvY2tzIG5vdyBoYXZlIHRoZSBvcHRpb24gZm9yIGEgJ2NvbXBhY3QnIGRpc3BsYXkgb24gdGhlIGFkbWluIHBhZ2UuIFNldCAiY29tcGFjdD0xIiBpbiB0aGUgcGFyYW1ldGVycyBhIHN1bW1hcnkgb2YgdGhlIHNlbGVjdGVkIG9wdGlvbnMgaXMgZGlzcGxheWVkIGFuZCB0aGUgZnVsbCBzZWxlY3QgaXMgc2hvd24vaGlkZGVuIHdoZW4gJ2VkaXQvaGlkZScgaXMgY2xpY2tlZDwvbGk+DQogICA8bGk+ZmlsZV9zZWxlY3RvciBjb250ZW50IGJsb2NrIC0gdXBkYXRlZCBub3cgdXNlcyBjb3JlIG1ldGhvZCBpbnN0ZWFkIG9mIENHRXh0ZW5zaW9uczwvbGk+DQogICA8bGk+cmVtb3ZlZCBDR0V4dGVuc2lvbnMgZGVwZW5kYW5jeTwvbGk+DQogICA8bGk+QnVnIGZpeDogZGVmYXVsdCB2YWx1ZSBub3cgd29ya3MgZm9yIGNoZWNrYm94LCBpbnB1dCwgdGV4dGFyZWEgJiBlZGl0b3IgY29udGVudCBibG9ja3M8L2xpPg0KPC91bD4NCjxicj4NCg0KDQo8aDM+VmVyc2lvbiAxLjUuMyAtIDE3SnVuMTk8L2gzPg0KPHVsPg0KICAgPGxpPm1pbm9yIGJ1ZyBmaXggaW4gaGVscDwvbGk+DQo8L3VsPg0KPGJyPg0KDQoNCjxoMz5WZXJzaW9uIDEuNS4yIC0gMTlGZWIxOTwvaDM+DQo8dWw+DQogICA8bGk+YnVnIGZpeCAtIGFkbWluIGpzIHVwZGF0ZWQgLSBmaXhlcyB2MS41LjEgbXVsdGlwbGUgc2VsZWN0J3MgJiBpbnB1dF9yZXBlYXRlciBub3Qgd29ya2luZyAtIHBsZWFzZSB1cGRhdGU8L2xpPg0KPC91bD4NCjxicj4NCg0KPGgzPlZlcnNpb24gMS41LjEgLSAxOEZlYjE5PC9oMz4NCjx1bD4NCiAgIDxsaT5nYWxsZXJ5X3BpY2tlciAtIGJ1ZyBmaXg8L2xpPg0KPC91bD4NCjxicj4NCg0KPGgzPlZlcnNpb24gMS41IC0gMTZGZWIxOTwvaDM+DQo8dWw+DQogICA8bGk+aW5wdXRfcmVwZWF0ZXIgY29udGVudCBibG9jayAtIGFkZGVkIC0gdGhhbmtzIHRvIFNpbW9uIFJhZGZvcmQ8L2xpPg0KICAgPGxpPmdhbGxlcnlfcGlja2VyIGNvbnRlbnQgYmxvY2sgLSBhZGRlZDwvbGk+DQogICA8bGk+ZHJvcGRvd25fZnJvbV9jdXN0b21ncyBjb250ZW50IGJsb2NrIC0gYWRkZWQ8L2xpPg0KICAgPGxpPmFkZGVkIGVycm9yIG1lc3NhZ2UgZm9yIG1pc3Npbmcgb3IgaW5jb3JyZWN0bHkgc3BlbHQgZmllbGQgcGFyYW1hdGVyIC0gQlIjMTE1NTcgLSB0aGFua3MgTHVkZ2VyPC9saT4NCiAgIDxsaT5yZW1vdmVkIEFkbWluIHBhZ2UgdGhhdCBvbmx5IHNob3dlZCBoZWxwIC0gcmVkdW5kYW50IGFzIGhlbHAgZWFzaWx5IHZpc2libGUgZnJvbSB3aXRoaW4gTW9kdWxlIE1hbmFnZXI8L2xpPg0KICAgPGxpPnJlbW92ZWQgUGVybWlzc2lvbiAnVXNlIEVDQjInIC0gYWxzbyByZWR1bmRhbnQ8L2xpPg0KICAgPGxpPmNvZGUgdGlkeSB1cCAtIGNvbnNvbGlkYXRlIGpzICYgY3NzIGludG8gc2VwYXJhdGUgZXh0ZXJuYWwgZmlsZXM8L2xpPg0KPC91bD4NCjxicj4NCg0KPGgzPlZlcnNpb24gMS4zLjEgLSAxMkp1bDE3PC9oMz4NCjx1bD4NCiAgIDxsaT5taW5vciBidWcgZml4PC9saT4NCjwvdWw+DQo8YnI+DQoNCjxoMz5WZXJzaW9uIDEuMyAtIDExSnVsMTc8L2gzPg0KPHVsPg0KICAgPGxpPnNvcnRhYmxlbGlzdCAtIGFkZGVkIG1heF9udW1iZXIgYW5kIHJlcXVpcmVkX251bWJlciBvcHRpb25zPC9saT4NCiAgIDxsaT5BZGRlZCAnZmllbGRzZXRfc3RhcnQnIGFuZCAnZmllbGRzZXRfZW5kJyBmaWVsZHM8L2xpPg0KPC91bD4NCjxicj4NCg0KPGgzPlZlcnNpb24gMS4yLjIgLSAwNUp1bDE3PC9oMz4NCjx1bD4NCiAgIDxsaT50ZXN0IGZvciBhbmQgZGlzcGxheSB3YXJuaW5nIGluIGFkbWluIGlmIFVEVCBkb2VzIG5vdCBleGlzdDwvbGk+DQo8L3VsPg0KPGJyPg0KDQo8aDM+VmVyc2lvbiAxLjIuMSAtIDE5QXByMTc8L2gzPg0KPHVsPg0KICAgPGxpPmJ1ZyBmaXggZm9yIGNvbG9yX3BpY2tlciwgZGVmYXVsdF92YWx1ZSAtIEJSIzExMzU0IC0gdGhhbmtzIFN0dWFydDwvbGk+DQogICA8bGk+Y29sb3JfcGlja2VyIC0gdHdlYWtlZCBsYXlvdXQ8L2xpPg0KICAgPGxpPnNvcnRhYmxlbGlzdCAtIG5vdyB1c2UganF1ZXJ5IHNvcnRhYmxlIGluc3RlYWQgb2YgQ0dFeHRlbnNpb25zLiBQYXJhbWV0ZXJzIHJlbW92ZWQ6ICd0ZW1wbGF0ZScuIFBhcmFtZXRlcnMgbm90IG9wZXJhdGlvbmFsOiAnbWF4X3NlbGVjdGVkJywgJ2FsbG93ZHVwbGljYXRlcycgKHBsZWFzZSBhZHZpc2UgaWYgeW91IHJlcXVpcmUgdGhlc2UpLiBQbHVzIHNvbWUgYnVnIGZpeGVzLjwvbGk+DQo8L3VsPg0KPGJyPg0KDQo8aDM+VmVyc2lvbiAxLjIgLSAwN05vdjE2PC9oMz4NCjx1bD4NCiAgIDxsaT5BZGRlZCAnZGVzY3JpcHRpb24nIHBhcmFtZXRlciBmb3IgYWxsIGZpZWxkcyAob3B0aW9uYWwpIC0gYWRkcyBhZGRpdGlvbmFsIHRleHQgZXhwbGFuYXRpb24gZm9yIGVkaXRvcjwvbGk+DQogICA8bGk+QWRkZWQgJ2hpZGRlbicgZmllbGQgLSBDYW4gYmUgdXNlZCB0byBzZXQgYSBwYWdlIGF0dHJpYnV0ZSB0aGF0IGNhbiB0aGVuIGJlIGFjY2Vzc2VkIChlLmcuIGZyb20gYSBOYXZpZ2F0b3ItVGVtcGxhdGUpLCB1c2luZyB7bGRlbGltfXBhZ2VfYXR0ciBwYWdlPSRub2RlLT5hbGlhcyBrZXk9J3Rlc3RoaWRkZW4ne3JkZWxpbX08L2xpPg0KICAgPGxpPkJ1ZyBmaXggLSBmb3IgcGhwIG5vdGljZTwvbGk+DQo8L3VsPg0KPGJyPg0KDQo8aDM+VmVyc2lvbiAxLjEgLSAxNUFwcjE2PC9oMz4NCjx1bD4NCiAgICA8bGk+QnVnIGZpeDwvbGk+DQo8L3VsPg0KPGJyPg0KDQo8aDM+VmVyc2lvbiAxLjAgLSAxNUFwcjE2PC9oMz4NCjx1bD4NCiAgICA8bGk+SW5pdGlhbCByZWxlYXNlLiBBIGZvcmsgb2YgRUNCIG1vZHVsZSB2MS42LCB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCBDTVNNUyB2Mis8L2xpPg0KICAgIDxsaT5BZGRlZCByYWRpbyBmaWVsZCAtIHRvIHByb3ZpZGUgcmFkaW8gYnV0dG9ucyBvbiBhbiBhZG1pbiBwYWdlPC9saT4NCjwvdWw+DQo8YnI+]]></data>
	</file>
	<file>
	  <filename>/templates/admin_content_blocks.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogRUNCMiBhZG1pbl9jb250ZW50X2Jsb2Nrcy50cGwgKn0KCjxkaXYgaWQ9ImVjYl9jIj4KCiAgICA8ZGl2IGNsYXNzPSJoZWxwLXRvYyI+CiAgICAgICAgPGgzIGNsYXNzPSJib3JkZXItYm90dG9tIG1fdG9wXzE1IHBfYm90dG9tXzUiPnskbW9kLT5MYW5nKCdmaWVsZF90eXBlcycpfTwvaDM+CiAgICAgICAgPHVsPgogICAgICAgIHtmb3JlYWNoICRmaWVsZF90eXBlcyBhcyAkZmllbGRfdHlwZX0KICAgICAgICAgICAge2lmICRmaWVsZF90eXBlPT0kZmlyc3RfYWRtaW5fb25seV9maWVsZH0KICAgICAgICAgICAgPGg1IGNsYXNzPSJib3JkZXItYm90dG9tIG1fdG9wXzI1IHBfYm90dG9tXzUiPnskbW9kLT5MYW5nKCdhZG1pbl9vbmx5X2hlbHAnKX08L2g1PgogICAgICAgICAgICB7L2lmfQogICAgICAgICAgICA8bGk+PGEgY2xhc3M9InNtb290aC1zY3JvbGwiIGhyZWY9IiN7JGZpZWxkX3R5cGV9Ij57JGZpZWxkX3R5cGV9PC9hPjwvbGk+ICAgCiAgICAgICAgey9mb3JlYWNofQogICAgICAgIDwvdWw+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJoZWxwLWNvbnRlbnQiPgogICAgICAgIHskbW9kLT5MYW5nKCdnZW5lcmFsX2MnKX0KICAgICAgICAKICAgICAgICA8aDIgY2xhc3M9ImJvcmRlci1ib3R0b20gcF9ib3R0b21fNSBtX2JvdHRvbV8xNSI+eyRtb2QtPkxhbmcoJ2ZpZWxkX3R5cGVzJyl9PC9oMj4KCiAgICB7Zm9yZWFjaCAkZmllbGRfaGVscCBhcyAkZmllbGRfdHlwZSA9PiAkaGVscF9jb250ZW50fQogICAgICAgIHtpZiAkZmllbGRfdHlwZT09JGZpcnN0X2FkbWluX29ubHlfZmllbGR9CiAgICAgICAgPGgyIGNsYXNzPSJib3JkZXItYm90dG9tIG1fdG9wXzI1IHBfYm90dG9tXzUiPnskbW9kLT5MYW5nKCdhZG1pbl9vbmx5X2hlbHAnKX08L2gyPgogICAgICAgIDxwPnskbW9kLT5MYW5nKCdhZG1pbl9vbmx5X2hlbHBfaW50cm8nKX08L3A+CiAgICAgICAgPGJyPgogICAgICAgIHsvaWZ9CiAgICAgICAgPGgyIGlkPSJ7JGZpZWxkX3R5cGV9IiBjbGFzcz0ibV9ib3R0b21fNSI+eyRmaWVsZF90eXBlfTwvaDI+CiAgICAgICAgeyRoZWxwX2NvbnRlbnR9CiAgICAgICAgPGJyPgogICAgey9mb3JlYWNofQogICAgPC9kaXY+Cgo8L2Rpdj4KCgo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_default.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogRUNCMiBhZG1pbl9kZWZhdWx0LnRwbCAqfQoKCjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KCnt0YWJfaGVhZGVyIG5hbWU9J2VjYicgbGFiZWw9JG1vZC0+TGFuZygnZXh0ZW5kZWRfY29udGVudF9ibG9ja3MnKX0Ke2lmICEkaGVscF9vbmx5fQogICAge3RhYl9oZWFkZXIgbmFtZT0nb3B0aW9ucycgbGFiZWw9JG1vZC0+TGFuZygnb3B0aW9ucycpfQp7L2lmfQp7dGFiX2hlYWRlciBuYW1lPSdhYm91dCcgbGFiZWw9JG1vZC0+TGFuZygnYWJvdXQnKX0KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgoKPGRpdiBpZD0icGFnZV9jb250ZW50IiBjbGFzcz0iZWNiMi1oZWxwIj4Keyogbm90ZTogZXh0cmEgPC9kaXY+ICBhZGRlZCBhZnRlciBsYXN0IHRhYiBjb250ZW50ICp9CgoK]]></data>
	</file>
	<file>
	  <filename>/templates/admin_hidden_field.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogRUNCMiBhZG1pbl9oaWRkZW5fZmllbGQudHBsIAoKICAgIHVzZXMganMgdG8gaGlkZSB0aGUgbGFiZWwKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQogICAgICAgIDxzcGFuIGNsYXNzPSJlY2IyLWhpZGUtbGFiZWwiPjwvc3Bhbj4=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_options.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogYWRtaW5fb3B0aW9ucy50cGwgKn0KCjxkaXYgaWQ9Im9wdGlvbnNfYyI+CgogICAge2Zvcm1fc3RhcnQgYWN0aW9uPWRlZmF1bHRhZG1pbn0KCiAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndGl0bGVfdGh1bWJuYWlsV2lkdGgnKX06PC9wPgogICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXRodW1ibmFpbFdpZHRoIiB2YWx1ZT0ieyR0aHVtYm5haWxXaWR0aH0iIHNpemU9IjUiLz4KICAgICAgICAgICAgICAgIHtjbXNfaGVscCBrZXkyPSdoZWxwX3RodW1ibmFpbFdpZHRoJyB0aXRsZT0nVGh1bWJuYWlsIFdpZHRoJ30KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3RpdGxlX3RodW1ibmFpbEhlaWdodCcpfTo8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9dGh1bWJuYWlsSGVpZ2h0IiB2YWx1ZT0ieyR0aHVtYm5haWxIZWlnaHR9IiBzaXplPSI1Ii8+CiAgICAgICAgICAgICAgICB7Y21zX2hlbHAga2V5Mj0naGVscF90aHVtYm5haWxIZWlnaHQnIHRpdGxlPSdUaHVtYm5haWwgSGVpZ2h0J30KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3RpdGxlX2N1c3RvbU1vZHVsZU5hbWUnKX06PC9wPgogICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbU1vZHVsZU5hbWUiIHZhbHVlPSJ7JGN1c3RvbU1vZHVsZU5hbWV9IiBzaXplPSI1MCIvPgogICAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndGl0bGVfYWRtaW5TZWN0aW9uJyl9OjwvcD4KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgICAgICB7aHRtbF9vcHRpb25zIG5hbWU9InskYWN0aW9uaWR9YWRtaW5TZWN0aW9uIiBvcHRpb25zPSRhZG1pblNlY3Rpb25PcHRpb25zIHNlbGVjdGVkPSRhZG1pblNlY3Rpb259CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgICAgICA8cD4mbmJzcDs8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc2F2ZV9vcHRpb25zJyl9Ii8+CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgIHtmb3JtX2VuZH0KCjwvZGl2PgoKCg==]]></data>
	</file>
</module>
