<?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>Lytebox</name>
	<version>0.1.0dev1</version>
  <mincmsversion>1.2.0</mincmsversion>
	<help>ICAgIDxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPgogICAgPHA+QSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLjwvcD4KICAgIDxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgogICAgPG9sPgogICAgICAgIDxsaT4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgIEluIHRoZSBwYWdlIHdoZXJlIHlvdSB3YW50IHVzZSB0aGlzIG1vZHVsZSwgYWRkIHRoaXMgdG8gdGhlIHBhZ2UgbWV0YWRhdGE6PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e3N0eWxlc2hlZXQgbmFtZT0nTW9kdWxlOiBMeXRlYm94JyBtZWRpYT0nc2NyZWVuJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPk9yIHlvdSBjYW4gYXR0YWNoIHRoZSBzdHlsZXNoZWV0ICZxdW90O01vZHVsZTogTHl0ZWJveCZxdW90OyB0byB5b3VyIHRlbXBsYXRlLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBDb250ZW50IEV4YW1wbGVzPC9zdHJvbmc+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT48ZW0+U2luZ2xlIEltYWdlIEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyB0aXRsZT0nSW1hZ2UgRGVzY3JpcHRpb24nIHRleHQ9J0ltYWdlICMxJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5Hcm91cGVkIEltYWdlcyBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyB0aXRsZT0nTW9tIGFuZCBEYWQnIHRleHQ9J01vbSBhbmQgRGFkJ308L2NvZGU+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMi5qcGcnIGdyb3VwPSd2YWNhdGlvbicgdGl0bGU9J015IFNpc3RlcicgdGV4dD0nTXkgU2lzdGVyJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5TbGlkZXNob3cgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIGdyb3VwPSd2YWNhdGlvbicgZGlzcGxheT0nc2hvdycgdGl0bGU9J01vbSBhbmQgRGFkJyB0ZXh0PSdNb20gYW5kIERhZCd9PC9jb2RlPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTIuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIHRpdGxlPSdNeSBTaXN0ZXInIHRleHQ9J015IFNpc3Rlcid9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkhUTUwgQ29udGVudCBFeGFtcGxlczwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+PGVtPlNpbmdsZSBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0naHR0cDovL3d3dy5nb29nbGUuY29tLycgZGlzcGxheT0nZnJhbWUnIHRpdGxlPSdTZWFyY2ggR29vZ2xlJyB0ZXh0PSdHb29nbGUgU2VhcmNoJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5Hcm91cGVkIEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J2NhdGFsb2cxLmh0bScgZ3JvdXA9J2NhdGFsb2cnIGRpc3BsYXk9J2ZyYW1lJyB0aXRsZT0nU3VtbWVyIENhdGFsb2cnIHRleHQ9J1N1bW1lciBDYXRhbG9nJ308L2NvZGU+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0nY2F0YWxvZzIuaHRtJyBncm91cD0nY2F0YWxvZycgZGlzcGxheT0nZnJhbWUnIHRpdGxlPSdXaW50ZXIgQ2F0YWxvZycgdGV4dD0nV2ludGVyIENhdGFsb2cnfTwvY29kZT4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5Vc2UgdGh1bWJuYWlsczwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+PGVtPlNpbmdsZSBJbWFnZSBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgdGl0bGU9J0ltYWdlIERlc2NyaXB0aW9uJyB0ZXh0PSdJbWFnZSAjMScgdGh1bWJzcmM9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEtdGh1bWIuanBnJyBhbHQ9J0ltYWdlICMxJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5Hcm91cGVkIEltYWdlcyBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyB0aXRsZT0nTW9tIGFuZCBEYWQnIHRleHQ9J01vbSBhbmQgRGFkJyB0aHVtYnNyYz0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS10aHVtYi5qcGcnIHRodW1iYWx0PSdNb20gYW5kIERhZCd9PC9jb2RlPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTIuanBnJyBncm91cD0ndmFjYXRpb24nIHRpdGxlPSdNeSBTaXN0ZXInIHRleHQ9J015IFNpc3RlcicgdGh1bWJzcmM9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTItdGh1bWIuanBnJyB0aHVtYmFsdD0nTXkgU2lzdGVyJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5TbGlkZXNob3cgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIGdyb3VwPSd2YWNhdGlvbicgZGlzcGxheT0nc2hvdycgdGl0bGU9J01vbSBhbmQgRGFkJyB0ZXh0PSdNb20gYW5kIERhZCd9PC9jb2RlPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTIuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIHRpdGxlPSdNeSBTaXN0ZXInIHRleHQ9J015IFNpc3Rlcid9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPlNldCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBMeXRlYm94IGphdmFzY3JpcHQ8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPjxlbT5TaW5nbGUgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIHRoZW1lPSdibHVlJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5Hcm91cGVkIEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIGF1dG9FbmQ9JzAnfTwvY29kZT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyBkaXNwbGF5PSdzaG93J308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICA8L29sPgogICAgPGNpdGU+KERlc2NyaXB0aW9uIGlzIHRha2VuIGZyb20gdGhlIDxhIGhyZWY9Imh0dHA6Ly9kb2xlbS5jb20vbHl0ZWJveC8iPkx5dGVib3ggaG9tZXBhZ2U8L2E+Lik8L2NpdGU+CiAgICA8aDM+U3VwcG9ydDwvaDM+CiAgICA8cD5QbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBpbnNpZGUgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KICAgIDxwPkZvciBhZGRpdGlvbmFsIGhlbHAgeW91IGNhbiBhbHNvIHRyeSB0byBhc2sgYSBxdWVzdGlvbiBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnLyI+Q01TTVMgZm9ydW08L2E+LjwvcD4KICAgIDxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPkx5dGVib3ggQ01TTVMgbW9kdWxlPC9zdHJvbmc+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5Db3B5cmlnaHQgwqkgMjAwOCwgQ2Fyc3RlbiBXaWVkbWFubiA8YSBocmVmPSJtYWlsdG86Y2Fyc3Rlbl9zdHRndEBnbXguZGUiPiZsdDtjYXJzdGVuX3N0dGd0QGdteC5kZSZndDs8L2E+LiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY29weXJpZ2h0L2ZyZWVic2QtbGljZW5zZS5odG1sIj5GcmVlQlNEIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkx5dGVib3ggSmF2YVNjcmlwdCBjbGFzczwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+QXV0aG9yOiBNYXJrdXMgRi4gSGF5PC9saT4KICAgICAgICAgICAgICAgIDxsaT5XZWJzaXRlOiA8YSBocmVmPSJodHRwOi8vZG9sZW0uY29tL2x5dGVib3gvIj5odHRwOi8vZG9sZW0uY29tL2x5dGVib3gvPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+TGljZW5zZTogPGEgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLyI+Q3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAzLjAgTGljZW5zZTwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICA8L3VsPjxoMz5QYXJhbWV0ZXI8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjb25maWc9ImludGVybmFsIHVzYWdlIiAtIDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcGF1c2VPblByZXZDbGljaz0iMSIgLSAxIHRvIHBhdXNlIHRoZSBzbGlkZXNob3cgd2hlbiB0aGUgJnF1b3Q7UHJldiZxdW90OyBidXR0b24gaXMgY2xpY2tlZDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcGF1c2VPbk5leHRDbGljaz0iMCIgLSAxIHRvIHBhdXNlIHRoZSBzbGlkZXNob3cgd2hlbiB0aGUgJnF1b3Q7TmV4dCZxdW90OyBidXR0b24gaXMgY2xpY2tlZDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYXV0b0VuZD0iMSIgLSAxIHRvIGF1dG9tYXRpY2FsbHkgY2xvc2UgTHl0ZWJveCBhZnRlciB0aGUgbGFzdCBpbWFnZSBpcyByZWFjaGVkLCAwIHRvIGtlZXAgb3BlbjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2hvd1BsYXlQYXVzZT0iMSIgLSAxIHRvIGRpc3BsYXkgcGF1c2UvcGxheSBidXR0b25zIG5leHQgdG8gY2xvc2UgYnV0dG9uLCAwIHRvIGhpZGU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3dEZXRhaWxzPSIxIiAtIDEgdG8gZGlzcGxheSBpbWFnZSBkZXRhaWxzIChjYXB0aW9uLCBjb3VudCksIDAgdG8gaGlkZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2hvd0Nsb3NlPSIxIiAtIDEgdG8gZGlzcGxheSB0aGUgQ2xvc2UgYnV0dG9uLCAwIHRvIGhpZGU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3dOYXZpZ2F0aW9uPSIxIiAtIDEgdG8gZGlzcGxheSBOZXh0L1ByZXYgYnV0dG9ucy90ZXh0IGR1cmluZyBzbGlkZXNob3csIDAgdG8gaGlkZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2xpZGVJbnRlcnZhbD0iNDAwMCIgLSBDaGFuZ2UgdmFsdWUgKG1pbGxpc2Vjb25kcykgdG8gaW5jcmVhc2UvZGVjcmVhc2UgdGhlIHRpbWUgYmV0d2VlbiAmcXVvdDtzbGlkZXMmcXVvdDsgKDEwMDAwID0gMTAgc2Vjb25kcyk8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGJvcmRlclNpemU9IjEyIiAtIGlmIHlvdSBhZGp1c3QgdGhlIHBhZGRpbmcgaW4gdGhlIENTUywgeW91IHdpbGwgbmVlZCB0byB1cGRhdGUgdGhpcyB2YXJpYWJsZSAtLSBvdGhlcndpc2UsIGxlYXZlIHRoaXMgYWxvbmUuLi48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGRvQW5pbWF0aW9ucz0iMSIgLSBjb250cm9scyB3aGV0aGVyIG9yIG5vdCAmcXVvdDthbmltYXRlJnF1b3Q7IEx5dGVib3gsIGkuZS4gcmVzaXplIHRyYW5zaXRpb24gYmV0d2VlbiBpbWFnZXMsIGZhZGUgaW4vb3V0IGVmZmVjdHMsIGV0Yy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGF1dG9SZXNpemU9IjEiIC0gY29udHJvbHMgd2hldGhlciBvciBub3QgaW1hZ2VzIHNob3VsZCBiZSByZXNpemVkIGlmIGxhcmdlciB0aGFuIHRoZSBicm93c2VyIHdpbmRvdyBkaW1lbnNpb25zPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBuYXZUeXBlPSIxIiAtIDEgPSAmcXVvdDtQcmV2L05leHQmcXVvdDsgYnV0dG9ucyBvbiB0b3AgbGVmdCBhbmQgbGVmdCAoZGVmYXVsdCksIDIgPSAmcXVvdDsmbHQ7Jmx0OyBwcmV2IHwgbmV4dCAmZ3Q7Jmd0OyZxdW90OyBsaW5rcyBuZXh0IHRvIGltYWdlIG51bWJlcjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbWF4T3BhY2l0eT0iODAiIC0gaGlnaGVyIG9wYWNpdHkgPSBkYXJrZXIgb3ZlcmxheSwgbG93ZXIgb3BhY2l0eSA9IGxpZ2h0ZXIgb3ZlcmxheTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcmVzaXplU3BlZWQ9IjgiIC0gY29udHJvbHMgdGhlIHNwZWVkIG9mIHRoZSBpbWFnZSByZXNpemluZyAoMT1zbG93ZXN0IGFuZCAxMD1mYXN0ZXN0KTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gb3V0ZXJCb3JkZXI9IjEiIC0gY29udHJvbHMgd2hldGhlciB0byBzaG93IHRoZSBvdXRlciBncmV5IChvciB0aGVtZSkgYm9yZGVyPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoaWRlRmxhc2g9IjEiIC0gY29udHJvbHMgd2hldGhlciBvciBub3QgRmxhc2ggb2JqZWN0cyBzaG91bGQgYmUgaGlkZGVuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB0aGVtZT0iZ3JleSIgLSB0aGVtZXM6IGdyZXkgKGRlZmF1bHQpLCByZWQsIGdyZWVuLCBibHVlLCBnb2xkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB0aHVtYmV4dHJhPSIiIC0gYW55IGV4dHJhIGF0dHJpYnV0ZShzKSB5b3Ugd2FudCBnaXZlIHRoZSBJTUcgZWxlbWVudDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdGh1bWJhbHQ9ImJhc2VuYW1lKCR0aHVtYnNyYykiIC0gdGhpcyBpcyB0ZXh0IHRvIGJlIGRpc3BsYXllZCBpbiBwbGFjZSBvZiBhbiBpbWFnZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdGh1bWJzcmM9IiIgLSBpbmRpY2F0ZXMgdGhlIFVSSSB0byByZWZlcmVuY2UgdGhlIHRodW1ibmFpbDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdGV4dD0iYmFzZW5hbWUoJGhyZWYpIiAtIHRleHQgZm9yIHRoZSBoeXBlcmxpbms8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGV4dHJhPSIiIC0gYW55IGV4dHJhIGF0dHJpYnV0ZShzKSB5b3Ugd2FudCBnaXZlIHRoZSBBIGVsZW1lbnQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHRpdGxlPSJiYXNlbmFtZSgkaHJlZikiIC0gdGhpcyBhdHRyaWJ1dGUgc3VnZ2VzdHMgYSB0aXRsZSAoYWR2aXNvcnkgb25seSkgZm9yIHRoZSBkZXN0aW5hdGlvbiByZXNvdXJjZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZnJhbWVhdHRyPSJ3aWR0aDogNDAwcHg7IGhlaWdodDogNDAwcHg7IHNjcm9sbGluZzogYXV0bzsiIC0gY29udHJvbHMgdGhlIHdpZHRoLCBoZWlnaHQgYW5kIHNjcm9sbGluZyBvZiB0aGUgd2luZG93PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBncm91cD0iIiAtIGlmIHlvdSB3YW50IGdyb3VwIDIgb3IgbW9yZSBoeXBlcmxpbmssIGdpdmUgdGhlIGdyb3VwIGEgbmFtZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGlzcGxheT0iYm94IiAtIGh5cGVybGluayhzKSBhcmUgc2hvd2VkIGFzIGJveCwgc2hvdyBvciBmcmFtZTwvbGk+PGxpPmhyZWY9IiIgLSB0aGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgdGhlIFVSSSB0byBiZSBsb2FkZWQgd2hlbiB0aGUgaHlwZXJsaW5rIGlzIGFjdGl2YXRlZDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gRGllc2VyIFBhcmFtZXRlciBsZWd0IGRpZSB2ZXJ3ZW5kZXRlIFNwcmFjaGUgZiZ1dW1sO3IgZGllIEFuemVpZ2UgaW0gRnJvbnRlbmQgZmVzdCwgd2lyZCBqZWRvY2ggbmljaHQgdm9uIGFsbGVuIE1vZHVsZW4gdW50ZXJzdCZ1dW1sO3R6dCBiencuIGJlbiZvdW1sO3RpZ3QuPC9saT48L3VsPg==</help>
	<about>PGJyIC8+QXV0b3I6IENhcnN0ZW4gV2llZG1hbm4gJmx0O2NhcnN0ZW5fc3R0Z3RAZ214LmRlJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDAuMS4wZGV2MTxiciAvPjxiciAvPiZBdW1sO25kZXJ1bmdzdmVybGF1Zjo8YnIgLz4gICAgPHVsPgogICAgICAgIDxsaT5WZXJzaW9uIDAuMS4wZGV2MQogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+SW5pdGlhbCBSZWxlYXNlPC9saT4KICAgICAgICAgICAgICAgIDxsaT5MeXRlYm94IHYzLjIyPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgPC91bD48YnIgLz4=</about>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IGFjdGlvbi5kZWZhdWx0LnBocCAyIDIwMDgtMDUtMDggMDA6MzU6MDJaIHdpZWRtYW5uICQKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9MeXRlYm94CiAqLwoKaWYgKCFpc3NldCgkZ0NtcykpIHsKICAgIGV4aXQ7Cn0KCmlmICghY2xhc3NfZXhpc3RzKCdMeXRlYm94X0FjdGlvbkRlZmF1bHQnKSkgewogICAgLyoqCiAgICAgKiBEZWZhdWx0IGFjdGlvbiBmcm9tIHRoZSBMeXRlYm94IG1vZHVsZS4KICAgICAqCiAgICAgKiBVc2FnZToKICAgICAqIDxvbD4KICAgICAqICAgICA8bGk+CiAgICAgKiAgICAgICAgIDx1bD4KICAgICAqICAgICAgICAgICAgIDxsaT4KICAgICAqICAgICAgICAgICAgICAgICBJbiB0aGUgcGFnZSB3aGVyZSB5b3Ugd2FudCB1c2UgdGhpcyBtb2R1bGUsIGFkZCB0aGlzIHRvIHRoZSBwYWdlIG1ldGFkYXRhOjxiciAvPgogICAgICogICAgICAgICAgICAgICAgIDxzYW1wPntzdHlsZXNoZWV0IG5hbWU9J01vZHVsZTogTHl0ZWJveCcgbWVkaWE9J3NjcmVlbid9PC9zYW1wPgogICAgICogICAgICAgICAgICAgPC9saT4KICAgICAqICAgICAgICAgICAgIDxsaT5PciB5b3UgY2FuIGF0dGFjaCB0aGUgc3R5bGVzaGVldCAmcXVvdDtNb2R1bGU6IEx5dGVib3gmcXVvdDsgdG8geW91ciB0ZW1wbGF0ZS48L2xpPgogICAgICogICAgICAgICA8L3VsPgogICAgICogICAgIDwvbGk+CiAgICAgKiAgICAgPGxpPjxiPkltYWdlIENvbnRlbnQgRXhhbXBsZXM8L2I+CiAgICAgKiAgICAgICAgIDx1bD4KICAgICAqICAgICAgICAgICAgIDxsaT5TaW5nbGUgSW1hZ2UgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjxiciAvPgogICAgICogICAgICAgICAgICAgICAgIDxzYW1wPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyB0aXRsZT0nSW1hZ2UgRGVzY3JpcHRpb24nIHRleHQ9J0ltYWdlICMxJ308L3NhbXA+CiAgICAgKiAgICAgICAgICAgICA8L2xpPgogICAgICogICAgICAgICAgICAgPGxpPkdyb3VwZWQgSW1hZ2VzIEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8YnIgLz4KICAgICAqICAgICAgICAgICAgICAgICA8c2FtcD57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyB0aXRsZT0nTW9tIGFuZCBEYWQnIHRleHQ9J01vbSBhbmQgRGFkJ308L3NhbXA+PGJyIC8+CiAgICAgKiAgICAgICAgICAgICAgICAgPHNhbXA+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMi5qcGcnIGdyb3VwPSd2YWNhdGlvbicgdGl0bGU9J015IFNpc3RlcicgdGV4dD0nTXkgU2lzdGVyJ308L2NvZGU+CiAgICAgKiAgICAgICAgICAgICA8L2xpPgogICAgICogICAgICAgICAgICAgPGxpPlNsaWRlc2hvdyBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PGJyIC8+CiAgICAgKiAgICAgICAgICAgICAgICAgPHNhbXA+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIGdyb3VwPSd2YWNhdGlvbicgZGlzcGxheT0nc2hvdycgdGl0bGU9J01vbSBhbmQgRGFkJyB0ZXh0PSdNb20gYW5kIERhZCd9PC9zYW1wPjxiciAvPgogICAgICogICAgICAgICAgICAgICAgIDxzYW1wPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTIuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIHRpdGxlPSdNeSBTaXN0ZXInIHRleHQ9J015IFNpc3Rlcid9PC9zYW1wPgogICAgICogICAgICAgICAgICAgPC9saT4KICAgICAqICAgICAgICAgPC91bD4KICAgICAqICAgICA8L2xpPgogICAgICogPC9vbD4KICAgICAqCiAgICAgKiAoRGVzY3JpcHRpb24gaXMgdGFrZW4gZnJvbSB0aGUge0BsaW5rIGh0dHA6Ly9kb2xlbS5jb20vbHl0ZWJveC8gTHl0ZWJveCBob21lcGFnZX0uKQogICAgICoKICAgICAqIEBjYXRlZ29yeSAgIE1vZHVsZXMKICAgICAqIEBwYWNrYWdlICAgIEx5dGVib3gKICAgICAqIEBhdXRob3IgICAgIENhcnN0ZW4gV2llZG1hbm4gPGNhcnN0ZW5fc3R0Z3RAZ214LmRlPgogICAgICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jb3B5cmlnaHQvZnJlZWJzZC1saWNlbnNlLmh0bWwgIEZyZWVCU0QgTGljZW5zZQogICAgICogQHZlcnNpb24gICAgUmVsZWFzZTogMC4xLjBkZXYxCiAgICAgKiBAbGluayAgICAgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL0x5dGVib3gKICAgICAqIEBzZWUgICAgICAgIEx5dGVib3gKICAgICAqLwogICAgY2xhc3MgTHl0ZWJveF9BY3Rpb25EZWZhdWx0IGV4dGVuZHMgTHl0ZWJveAogICAgewogICAgICAgIC8qKgogICAgICAgICAqIGNvbnRhaW5zIHRoZSBhY3Rpb24gdG8gcGVyZm9ybQogICAgICAgICAqCiAgICAgICAgICogQHZhciBzdHJpbmcKICAgICAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICAgICAqLwogICAgICAgIHZhciAkbmFtZTsKCiAgICAgICAgLyoqCiAgICAgICAgICogY29udGFpbnMgdGhlIG1vZHVsZSBpZAogICAgICAgICAqCiAgICAgICAgICogQHZhciBzdHJpbmcKICAgICAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICAgICAqLwogICAgICAgIHZhciAkaWQ7CgogICAgICAgIC8qKgogICAgICAgICAqIGNvbnRhaW5zIHRoZSBtb2R1bGUgcGFyYW1ldGVycwogICAgICAgICAqCiAgICAgICAgICogQHZhciBhcnJheQogICAgICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgICAgICovCiAgICAgICAgdmFyICRwYXJhbXM7CgogICAgICAgIC8qKgogICAgICAgICAqIGNvbnRhaW5zIHRoZSBtb2R1bGUgcmV0dXJuaWQKICAgICAgICAgKgogICAgICAgICAqIEB2YXIgc3RyaW5nCiAgICAgICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAgICAgKi8KICAgICAgICB2YXIgJHJldHVybmlkOwoKICAgICAgICAvKioKICAgICAgICAgKiBob3cgb2Z0ZW4gaXMgdGhlIGFjdGlvbiBjYWxsZWQ/CiAgICAgICAgICoKICAgICAgICAgKiBAc3RhdGljdmFyIGludAogICAgICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgICAgICovCiAgICAgICAgdmFyICRjb3VudGNhbGxzOwoKICAgICAgICAvKioKICAgICAgICAgKiBMeXRlYm94X0FjdGlvbkRlZmF1bHQoKQogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHN0cmluZyAmJG5hbWUgICAgIE5hbWUgb2YgdGhlIGFjdGlvbiB0byBwZXJmb3JtCiAgICAgICAgICogQHBhcmFtIHN0cmluZyAmJGlkICAgICAgIHRoZSBpZCBmb3IgdGhpcyBtb2R1bGUKICAgICAgICAgKiBAcGFyYW0gYXJyYXkgICYkcGFyYW1zICAgdGhlIHBhcmFtZXRlcnMgdGFyZ2V0ZWQgZm9yIHRoaXMgbW9kdWxlCiAgICAgICAgICogQHBhcmFtIHN0cmluZyAmJHJldHVybmlkIHRoZSByZXR1cm5pZCBmb3IgdGhpcyBtb2R1bGUKICAgICAgICAgKgogICAgICAgICAqIEBzdGF0aWN2YXIgaW50IGNvdW50Y2FsbHMgIGhvdyBvZnRlbiBpcyB0aGUgYWN0aW9uIGNhbGxlZD8KICAgICAgICAgKgogICAgICAgICAqIEB1c2VzIEx5dGVib3goKQogICAgICAgICAqIEB1c2VzICRuYW1lCiAgICAgICAgICogQHVzZXMgJGlkCiAgICAgICAgICogQHVzZXMgJHBhcmFtcwogICAgICAgICAqIEB1c2VzICRyZXR1cm5pZAogICAgICAgICAqIEB1c2VzICRjb3VudGNhbGxzCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIEx5dGVib3hfQWN0aW9uRGVmYXVsdCgmJG5hbWUsICYkaWQsICYkcGFyYW1zLCAmJHJldHVybmlkKQogICAgICAgIHsKICAgICAgICAgICAgcGFyZW50OjpMeXRlYm94KCk7CgogICAgICAgICAgICAkdGhpcy0+bmFtZSAgICAgPSYgJG5hbWU7CiAgICAgICAgICAgICR0aGlzLT5pZCAgICAgICA9JiAkaWQ7CiAgICAgICAgICAgICR0aGlzLT5wYXJhbXMgICA9JiAkcGFyYW1zOwogICAgICAgICAgICAkdGhpcy0+cmV0dXJuaWQgPSYgJHJldHVybmlkOwoKICAgICAgICAgICAgc3RhdGljICRjb3VudGNhbGxzID0gMDsKICAgICAgICAgICAgJHRoaXMtPmNvdW50Y2FsbHMgPSYgJGNvdW50Y2FsbHM7CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBEb0FjdGlvbigpCiAgICAgICAgICoKICAgICAgICAgKiBAdXNlcyBDcmVhdGVGcm9udGVuZExpbmsoKQogICAgICAgICAqIEB1c2VzIFByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCkKICAgICAgICAgKiBAdXNlcyAkY29uZmlnCiAgICAgICAgICogQHVzZXMgJHNtYXJ0eQogICAgICAgICAqIEB1c2VzICRpZAogICAgICAgICAqIEB1c2VzICRyZXR1cm5pZAogICAgICAgICAqIEB1c2VzICRwYXJhbXMKICAgICAgICAgKiBAdXNlcyAkY291bnRjYWxscwogICAgICAgICAqCiAgICAgICAgICogQHJldHVybiBzdHJpbmcKICAgICAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIERvQWN0aW9uKCkKICAgICAgICB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIGxvYWQgdGhlIEphdmFzY3JpcHQKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGlmICgwIDwgJHRoaXMtPmNvdW50Y2FsbHMpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmNsZWFyX2Fzc2lnbignTHl0ZWJveF9sb2Fkc2NyaXB0Jyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICogY3JlYXRlIGphdmFzY3JpcHQgY29uZmlndXJhdGlvbgogICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zID0gYXJyYXkoKTsKCiAgICAgICAgICAgICAgICAvKiBMeXRlYm94IEdsb2JhbCBDb25maWd1cmF0aW9uICovCiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzBdID0gZW1wdHkoJHRoaXMtPnBhcmFtc1sndGhlbWUnXSkgPyAnZ3JleScgOiB0cmltKCR0aGlzLT5wYXJhbXNbJ3RoZW1lJ10pOwogICAgICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxXSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydoaWRlRmxhc2gnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snaGlkZUZsYXNoJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzJdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ291dGVyQm9yZGVyJ10pID8gMSA6ICR0aGlzLT5wYXJhbXNbJ291dGVyQm9yZGVyJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzNdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3Jlc2l6ZVNwZWVkJ10pID8gOCA6ICR0aGlzLT5wYXJhbXNbJ3Jlc2l6ZVNwZWVkJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzRdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ21heE9wYWNpdHknXSkgPyA4MCA6ICR0aGlzLT5wYXJhbXNbJ21heE9wYWNpdHknXTsKICAgICAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbNV0gPSAhaXNzZXQoJHRoaXMtPnBhcmFtc1snbmF2VHlwZSddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWyduYXZUeXBlJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzZdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ2F1dG9SZXNpemUnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snYXV0b1Jlc2l6ZSddOwogICAgICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1s3XSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydkb0FuaW1hdGlvbnMnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snZG9BbmltYXRpb25zJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzhdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ2JvcmRlclNpemUnXSkgPyAxMiA6ICR0aGlzLT5wYXJhbXNbJ2JvcmRlclNpemUnXTsKCiAgICAgICAgICAgICAgICAvKiBMeXRlYm94IFNsaWRlc2hvdyBPcHRpb25zICovCiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzldICA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydzbGlkZUludGVydmFsJ10pID8gNDAwMCA6ICR0aGlzLT5wYXJhbXNbJ3NsaWRlSW50ZXJ2YWwnXTsKICAgICAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTBdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3Nob3dOYXZpZ2F0aW9uJ10pID8gMSA6ICR0aGlzLT5wYXJhbXNbJ3Nob3dOYXZpZ2F0aW9uJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzExXSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydzaG93Q2xvc2UnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snc2hvd0Nsb3NlJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzEyXSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydzaG93RGV0YWlscyddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWydzaG93RGV0YWlscyddOwogICAgICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxM10gPSAhaXNzZXQoJHRoaXMtPnBhcmFtc1snc2hvd1BsYXlQYXVzZSddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWydzaG93UGxheVBhdXNlJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzE0XSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydhdXRvRW5kJ10pID8gMSA6ICR0aGlzLT5wYXJhbXNbJ2F1dG9FbmQnXTsKICAgICAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTVdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3BhdXNlT25OZXh0Q2xpY2snXSkgPyAwIDogJHRoaXMtPnBhcmFtc1sncGF1c2VPbk5leHRDbGljayddOwogICAgICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxNl0gPSAhaXNzZXQoJHRoaXMtPnBhcmFtc1sncGF1c2VPblByZXZDbGljayddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWydwYXVzZU9uUHJldkNsaWNrJ107CgogICAgICAgICAgICAgICAgJHNjcmlwdHBhcmFtcyA9IGJhc2U2NF9lbmNvZGUoaW1wbG9kZSgnLCcsICRzY3JpcHRwYXJhbXMpKTsKICAgICAgICAgICAgICAgICRzY3JpcHRwYXJhbXMgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAnY29uZmlnJyA9PiAkc2NyaXB0cGFyYW1zLAogICAgICAgICAgICAgICAgICAgICdzaG93dGVtcGxhdGUnID0+ICdmYWxzZScsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgKiBjcmVhdGUgamF2YXNjcmlwdCBsaW5rCiAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICRzY3JpcHRsaW5rICAgPSAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRMaW5rKCR0aGlzLT5pZCwgJHRoaXMtPnJldHVybmlkLCAnZ2V0anMnLCAnJywgJHNjcmlwdHBhcmFtcywgJycsIHRydWUsIHRydWUsICcnLCB0cnVlLCAnJyk7CiAgICAgICAgICAgICAgICAkc2NyaXB0bGluayAgID0gbHRyaW0oc3RyX3JlcGxhY2UoJHRoaXMtPmNvbmZpZ1sncm9vdF91cmwnXSwgJycsICRzY3JpcHRsaW5rKSwgJy8nKTsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF9sb2Fkc2NyaXB0JywgIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiIHNyYz1cInskc2NyaXB0bGlua31cIj48L3NjcmlwdD5cbiIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBzZXQgcGFyYW1zIGZvciB0aGUgaHlwZXJsaW5rCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPnBhcmFtc1snaHJlZiddKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X2hyZWYnLCB0cmltKCR0aGlzLT5wYXJhbXNbJ2hyZWYnXSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5jbGVhcl9hc3NpZ24oJ0x5dGVib3hfZnJhbWVhdHRyJyk7CiAgICAgICAgICAgIGlmIChlbXB0eSgkdGhpcy0+cGFyYW1zWydkaXNwbGF5J10pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0x5dGVib3hfZGlzcGxheScsICdseXRlYm94Jyk7CiAgICAgICAgICAgIH0gZWxzZWlmICgnZnJhbWUnID09ICR0aGlzLT5wYXJhbXNbJ2Rpc3BsYXknXSkgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X2Rpc3BsYXknLCAnbHl0ZWZyYW1lJyk7CgogICAgICAgICAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5wYXJhbXNbJ2ZyYW1lYXR0ciddKSkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF9mcmFtZWF0dHInLCAnd2lkdGg6IDQwMHB4OyBoZWlnaHQ6IDQwMHB4OyBzY3JvbGxpbmc6IGF1dG87Jyk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF9mcmFtZWF0dHInLCB0cmltKCR0aGlzLT5wYXJhbXNbJ2ZyYW1lYXR0ciddKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZWlmICgnc2hvdycgPT0gJHRoaXMtPnBhcmFtc1snZGlzcGxheSddKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0x5dGVib3hfZGlzcGxheScsICdseXRlc2hvdycpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X2Rpc3BsYXknLCAnbHl0ZWJveCcpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPnBhcmFtc1snZ3JvdXAnXSkpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF9ncm91cCcsICcnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF9ncm91cCcsICdbJy50cmltKCR0aGlzLT5wYXJhbXNbJ2dyb3VwJ10pLiddJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChlbXB0eSgkdGhpcy0+cGFyYW1zWyd0ZXh0J10pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0x5dGVib3hfdGV4dCcsIGJhc2VuYW1lKCR0aGlzLT5wYXJhbXNbJ2hyZWYnXSkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X3RleHQnLCB0cmltKCR0aGlzLT5wYXJhbXNbJ3RleHQnXSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPnBhcmFtc1sndGl0bGUnXSkpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF90aXRsZScsIGJhc2VuYW1lKCR0aGlzLT5wYXJhbXNbJ2hyZWYnXSkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X3RpdGxlJywgdHJpbSgkdGhpcy0+cGFyYW1zWyd0aXRsZSddKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChlbXB0eSgkdGhpcy0+cGFyYW1zWydleHRyYSddKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+Y2xlYXJfYXNzaWduKCdMeXRlYm94X2V4dHJhJyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0x5dGVib3hfZXh0cmEnLCB0cmltKCR0aGlzLT5wYXJhbXNbJ2V4dHJhJ10pKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogc2V0IHBhcmFtcyBmb3IgdGhlIHRodW1ibmFpbAogICAgICAgICAgICAgKi8KICAgICAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5wYXJhbXNbJ3RodW1ic3JjJ10pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5jbGVhcl9hc3NpZ24oJ0x5dGVib3hfdGh1bWJzcmMnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF90aHVtYnNyYycsIHRyaW0oJHRoaXMtPnBhcmFtc1sndGh1bWJzcmMnXSkpOwoKICAgICAgICAgICAgICAgIGlmIChlbXB0eSgkdGhpcy0+cGFyYW1zWyd0aHVtYmFsdCddKSkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF90aHVtYmFsdCcsIGJhc2VuYW1lKCR0aGlzLT5wYXJhbXNbJ3RodW1ic3JjJ10pKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X3RodW1iYWx0JywgdHJpbSgkdGhpcy0+cGFyYW1zWydleHRyYSddKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5wYXJhbXNbJ3RodW1iZXh0cmEnXSkpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5jbGVhcl9hc3NpZ24oJ0x5dGVib3hfdGh1bWJleHRyYScpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0x5dGVib3hfdGh1bWJleHRyYScsIHRyaW0oJHRoaXMtPnBhcmFtc1sndGh1bWJleHRyYSddKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIG91dHB1dCB0aGUgaHlwZXJsaW5rCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkdGVtcGxhdGUgPSAne2lmIGlzc2V0KCRMeXRlYm94X2xvYWRzY3JpcHQpfXskTHl0ZWJveF9sb2Fkc2NyaXB0fXsvaWZ9PGEgaHJlZj0ieyRMeXRlYm94X2hyZWZ9IiByZWw9InskTHl0ZWJveF9kaXNwbGF5fXskTHl0ZWJveF9ncm91cH0ie2lmIGlzc2V0KCRMeXRlYm94X2ZyYW1lYXR0cil9IHJldj0ieyRMeXRlYm94X2ZyYW1lYXR0cn0iey9pZn0gdGl0bGU9InskTHl0ZWJveF90aXRsZX0ie2lmIGlzc2V0KCRMeXRlYm94X2V4dHJhKX0geyRMeXRlYm94X2V4dHJhfXsvaWZ9PntpZiBpc3NldCgkTHl0ZWJveF90aHVtYnNyYyl9PGltZyBzcmM9InskTHl0ZWJveF90aHVtYnNyY30iIHRpdGxlPSJ7JEx5dGVib3hfdGl0bGV9IiBhbHQ9InskTHl0ZWJveF90aHVtYmFsdH0ie2lmIGlzc2V0KCRMeXRlYm94X3RodW1iZXh0cmEpfSB7JEx5dGVib3hfdGh1bWJleHRyYX17L2lmfSAvPnsvaWZ9eyRMeXRlYm94X3RleHR9PC9hPic7CiAgICAgICAgICAgICRvdXRwdXQgICA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGVtcGxhdGUpOwoKICAgICAgICAgICAgZWNobyAiXG4iLiRvdXRwdXQuIlxuIjsKCiAgICAgICAgICAgICR0aGlzLT5jb3VudGNhbGxzKys7CiAgICAgICAgfQogICAgfQp9CgokYWN0aW9uID0gbmV3IEx5dGVib3hfQWN0aW9uRGVmYXVsdCgkbmFtZSwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwokYWN0aW9uLT5Eb0FjdGlvbigpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.getjs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IGFjdGlvbi5nZXRqcy5waHAgMiAyMDA4LTA1LTA4IDAwOjM1OjAyWiB3aWVkbWFubiAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvTHl0ZWJveAogKi8KCmlmICghaXNzZXQoJGdDbXMpKSB7CiAgICBleGl0Owp9CgovKioKICogR2V0SlMgYWN0aW9uIGZyb20gdGhlIEx5dGVib3ggbW9kdWxlLgogKgogKiBZb3UgY2FuIGNhbGwgdGhpcyBhY3Rpb24gd2l0aCBhIGZyb250ZW5kIGxpbmsgKHtAbGluayBDcmVhdGVGcm9udGVuZExpbmsoKX0pLgogKiBKdXN0IG1ha2Ugc3VyZSwgeW91IHNldCAkdGFyZ2V0Y29udGVudG9ubHkgdG8gdHJ1ZS4KICoKICogWW91IG5lZWQgdHdvIGVudHJpZXMgaW4gdGhlICRwYXJhbXMgYXJyYXk6CiAqIC0gJ3Nob3d0ZW1wbGF0ZScgPT4gJ2ZhbHNlJwogKiAtICdjb25maWcnID0+ICRzY3JpcHRwYXJhbXMKICoKICoge0BsaW5rICRzY3JpcHRwYXJhbXN9IGlzIGEgY29tbWEgc2VwYXJhdGVkLCBiYXNlNjRlbmNvZGVkIHN0cmluZywgd2l0aCBvbmx5IHRoZSB2YWx1ZXMKICogZm9yIHRoZSBzZXR0aW5ncyBpbiB0aGlzIG9yZGVyICh5b3UgbXVzdCBnaXZlIGFsbCBzZXR0aW5ncyk6CiAqIDEuIHRoZW1lCiAqIDIuIGhpZGVGbGFzaAogKiAzLiBvdXRlckJvcmRlcgogKiA0LiByZXNpemVTcGVlZAogKiA1LiBtYXhPcGFjaXR5CiAqIDYuIG5hdlR5cGUKICogNy4gYXV0b1Jlc2l6ZQogKiA4LiBkb0FuaW1hdGlvbnMKICogOS4gYm9yZGVyU2l6ZQogKiAxMC4gc2xpZGVJbnRlcnZhbAogKiAxMS4gc2hvd05hdmlnYXRpb24KICogMTIuIHNob3dDbG9zZQogKiAxMy4gc2hvd0RldGFpbHMKICogMTQuIHNob3dQbGF5UGF1c2UKICogMTUuIGF1dG9FbmQKICogMTYuIHBhdXNlT25OZXh0Q2xpY2sKICogMTcuIHRoaXMucGF1c2VPblByZXZDbGljawogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY29weXJpZ2h0L2ZyZWVic2QtbGljZW5zZS5odG1sICBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgUmVsZWFzZTogMC4xLjBkZXYxCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvTHl0ZWJveAogKiBAc2VlICAgICAgICBMeXRlYm94CiAqLwpjbGFzcyBMeXRlYm94X0FjdGlvbkdldEpTIGV4dGVuZHMgTHl0ZWJveAp7CiAgICAvKioKICAgICAqIGNvbnRhaW5zIHRoZSBhY3Rpb24gdG8gcGVyZm9ybQogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICB2YXIgJG5hbWU7CgogICAgLyoqCiAgICAgKiBjb250YWlucyB0aGUgbW9kdWxlIGlkCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHZhciAkaWQ7CgogICAgLyoqCiAgICAgKiBjb250YWlucyB0aGUgbW9kdWxlIHBhcmFtZXRlcnMKICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICB2YXIgJHBhcmFtczsKCiAgICAvKioKICAgICAqIGNvbnRhaW5zIHRoZSBtb2R1bGUgcmV0dXJuaWQKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgdmFyICRyZXR1cm5pZDsKCiAgICAvKioKICAgICAqIEx5dGVib3hfQWN0aW9uR2V0SlMoKQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJiRuYW1lICAgICBOYW1lIG9mIHRoZSBhY3Rpb24gdG8gcGVyZm9ybQogICAgICogQHBhcmFtIHN0cmluZyAmJGlkICAgICAgIHRoZSBpZCBmb3IgdGhpcyBtb2R1bGUKICAgICAqIEBwYXJhbSBhcnJheSAgJiRwYXJhbXMgICB0aGUgcGFyYW1ldGVycyB0YXJnZXRlZCBmb3IgdGhpcyBtb2R1bGUKICAgICAqIEBwYXJhbSBzdHJpbmcgJiRyZXR1cm5pZCB0aGUgcmV0dXJuaWQgZm9yIHRoaXMgbW9kdWxlCiAgICAgKgogICAgICogQHVzZXMgTHl0ZWJveCgpCiAgICAgKiBAdXNlcyAkbmFtZQogICAgICogQHVzZXMgJGlkCiAgICAgKiBAdXNlcyAkcGFyYW1zCiAgICAgKiBAdXNlcyAkcmV0dXJuaWQKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIEx5dGVib3hfQWN0aW9uR2V0SlMoJiRuYW1lLCAmJGlkLCAmJHBhcmFtcywgJiRyZXR1cm5pZCkKICAgIHsKICAgICAgICBwYXJlbnQ6Okx5dGVib3goKTsKCiAgICAgICAgJHRoaXMtPm5hbWUgICAgID0mICRuYW1lOwogICAgICAgICR0aGlzLT5pZCAgICAgICA9JiAkaWQ7CiAgICAgICAgJHRoaXMtPnBhcmFtcyAgID0mICRwYXJhbXM7CiAgICAgICAgJHRoaXMtPnJldHVybmlkID0mICRyZXR1cm5pZDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldEphdmFzY3JpcHQoKQogICAgICoKICAgICAqIEBhdXRob3IgIE1hcmt1cyBGLiBIYXkKICAgICAqIEBsaWNlbnNlIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC8gQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAzLjAgTGljZW5zZQogICAgICogQHZlcnNpb24gUmVsZWFzZTogMy4yMgogICAgICogQGxpbmsgICAgaHR0cDovL2RvbGVtLmNvbS9seXRlYm94LwogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBKYWNhU2NyaXB0IGNvbnRlbnQKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEphdmFzY3JpcHQoKQogICAgewogICAgICAgICRqc2NvbnRlbnQgPSA8PDxFT1QKQXJyYXkucHJvdG90eXBlLnJlbW92ZUR1cGxpY2F0ZXMgPSBmdW5jdGlvbiAoKSB7IGZvciAodmFyIGkgPSAxOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykgeyBpZiAodGhpc1tpXVswXSA9PSB0aGlzW2ktMV1bMF0pIHsgdGhpcy5zcGxpY2UoaSwxKTsgfSB9IH0KQXJyYXkucHJvdG90eXBlLmVtcHR5ID0gZnVuY3Rpb24gKCkgeyBmb3IgKHZhciBpID0gMDsgaSA8PSB0aGlzLmxlbmd0aDsgaSsrKSB7IHRoaXMuc2hpZnQoKTsgfSB9ClN0cmluZy5wcm90b3R5cGUudHJpbSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMucmVwbGFjZSgvXlxccyt8XFxzK1wkL2csICcnKTsgfQoKZnVuY3Rpb24gTHl0ZUJveCgpIHsKICAgIC8qKiogU3RhcnQgR2xvYmFsIENvbmZpZ3VyYXRpb24gKioqLwogICAgICAgIHRoaXMudGhlbWUgICAgICAgICAgICAgID0gJyVzJzsgICAvLyB0aGVtZXM6IGdyZXkgKGRlZmF1bHQpLCByZWQsIGdyZWVuLCBibHVlLCBnb2xkCiAgICAgICAgdGhpcy5oaWRlRmxhc2ggICAgICAgICAgPSAlczsgICAgIC8vIGNvbnRyb2xzIHdoZXRoZXIgb3Igbm90IEZsYXNoIG9iamVjdHMgc2hvdWxkIGJlIGhpZGRlbgogICAgICAgIHRoaXMub3V0ZXJCb3JkZXIgICAgICAgID0gJXM7ICAgICAvLyBjb250cm9scyB3aGV0aGVyIHRvIHNob3cgdGhlIG91dGVyIGdyZXkgKG9yIHRoZW1lKSBib3JkZXIKICAgICAgICB0aGlzLnJlc2l6ZVNwZWVkICAgICAgICA9ICVkOyAgICAgICAgLy8gY29udHJvbHMgdGhlIHNwZWVkIG9mIHRoZSBpbWFnZSByZXNpemluZyAoMT1zbG93ZXN0IGFuZCAxMD1mYXN0ZXN0KQogICAgICAgIHRoaXMubWF4T3BhY2l0eSAgICAgICAgID0gJWQ7ICAgICAgIC8vIGhpZ2hlciBvcGFjaXR5ID0gZGFya2VyIG92ZXJsYXksIGxvd2VyIG9wYWNpdHkgPSBsaWdodGVyIG92ZXJsYXkKICAgICAgICB0aGlzLm5hdlR5cGUgICAgICAgICAgICA9ICVkOyAgICAgICAgLy8gMSA9ICJQcmV2L05leHQiIGJ1dHRvbnMgb24gdG9wIGxlZnQgYW5kIGxlZnQgKGRlZmF1bHQpLCAyID0gIjw8IHByZXYgfCBuZXh0ID4+IiBsaW5rcyBuZXh0IHRvIGltYWdlIG51bWJlcgogICAgICAgIHRoaXMuYXV0b1Jlc2l6ZSAgICAgICAgID0gJXM7ICAgICAvLyBjb250cm9scyB3aGV0aGVyIG9yIG5vdCBpbWFnZXMgc2hvdWxkIGJlIHJlc2l6ZWQgaWYgbGFyZ2VyIHRoYW4gdGhlIGJyb3dzZXIgd2luZG93IGRpbWVuc2lvbnMKICAgICAgICB0aGlzLmRvQW5pbWF0aW9ucyAgICAgICA9ICVzOyAgICAgLy8gY29udHJvbHMgd2hldGhlciBvciBub3QgImFuaW1hdGUiIEx5dGVib3gsIGkuZS4gcmVzaXplIHRyYW5zaXRpb24gYmV0d2VlbiBpbWFnZXMsIGZhZGUgaW4vb3V0IGVmZmVjdHMsIGV0Yy4KICAgICAgICB0aGlzLmJvcmRlclNpemUgICAgICAgICA9ICVkOyAgICAgICAvLyBpZiB5b3UgYWRqdXN0IHRoZSBwYWRkaW5nIGluIHRoZSBDU1MsIHlvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIHRoaXMgdmFyaWFibGUgLS0gb3RoZXJ3aXNlLCBsZWF2ZSB0aGlzIGFsb25lLi4uCiAgICAvKioqIEVuZCBHbG9iYWwgQ29uZmlndXJhdGlvbiAqKiovCgogICAgLyoqKiBDb25maWd1cmUgU2xpZGVzaG93IE9wdGlvbnMgKioqLwogICAgICAgIHRoaXMuc2xpZGVJbnRlcnZhbCAgICAgID0gJWQ7ICAgICAvLyBDaGFuZ2UgdmFsdWUgKG1pbGxpc2Vjb25kcykgdG8gaW5jcmVhc2UvZGVjcmVhc2UgdGhlIHRpbWUgYmV0d2VlbiAic2xpZGVzIiAoMTAwMDAgPSAxMCBzZWNvbmRzKQogICAgICAgIHRoaXMuc2hvd05hdmlnYXRpb24gICAgID0gJXM7ICAgICAvLyB0cnVlIHRvIGRpc3BsYXkgTmV4dC9QcmV2IGJ1dHRvbnMvdGV4dCBkdXJpbmcgc2xpZGVzaG93LCBmYWxzZSB0byBoaWRlCiAgICAgICAgdGhpcy5zaG93Q2xvc2UgICAgICAgICAgPSAlczsgICAgIC8vIHRydWUgdG8gZGlzcGxheSB0aGUgQ2xvc2UgYnV0dG9uLCBmYWxzZSB0byBoaWRlCiAgICAgICAgdGhpcy5zaG93RGV0YWlscyAgICAgICAgPSAlczsgICAgIC8vIHRydWUgdG8gZGlzcGxheSBpbWFnZSBkZXRhaWxzIChjYXB0aW9uLCBjb3VudCksIGZhbHNlIHRvIGhpZGUKICAgICAgICB0aGlzLnNob3dQbGF5UGF1c2UgICAgICA9ICVzOyAgICAgLy8gdHJ1ZSB0byBkaXNwbGF5IHBhdXNlL3BsYXkgYnV0dG9ucyBuZXh0IHRvIGNsb3NlIGJ1dHRvbiwgZmFsc2UgdG8gaGlkZQogICAgICAgIHRoaXMuYXV0b0VuZCAgICAgICAgICAgID0gJXM7ICAgICAvLyB0cnVlIHRvIGF1dG9tYXRpY2FsbHkgY2xvc2UgTHl0ZWJveCBhZnRlciB0aGUgbGFzdCBpbWFnZSBpcyByZWFjaGVkLCBmYWxzZSB0byBrZWVwIG9wZW4KICAgICAgICB0aGlzLnBhdXNlT25OZXh0Q2xpY2sgICA9ICVzOyAgICAvLyB0cnVlIHRvIHBhdXNlIHRoZSBzbGlkZXNob3cgd2hlbiB0aGUgIk5leHQiIGJ1dHRvbiBpcyBjbGlja2VkCiAgICAgICAgdGhpcy5wYXVzZU9uUHJldkNsaWNrICAgPSAlczsgICAgIC8vIHRydWUgdG8gcGF1c2UgdGhlIHNsaWRlc2hvdyB3aGVuIHRoZSAiUHJldiIgYnV0dG9uIGlzIGNsaWNrZWQKICAgIC8qKiogRW5kIFNsaWRlc2hvdyBDb25maWd1cmF0aW9uICoqKi8KCiAgICBpZih0aGlzLnJlc2l6ZVNwZWVkID4gMTApIHsgdGhpcy5yZXNpemVTcGVlZCA9IDEwOyB9CiAgICBpZih0aGlzLnJlc2l6ZVNwZWVkIDwgMSkgeyByZXNpemVTcGVlZCA9IDE7IH0KICAgIHRoaXMucmVzaXplRHVyYXRpb24gPSAoMTEgLSB0aGlzLnJlc2l6ZVNwZWVkKSAqIDAuMTU7CiAgICB0aGlzLnJlc2l6ZVdUaW1lckFycmF5ICAgICAgPSBuZXcgQXJyYXkoKTsKICAgIHRoaXMucmVzaXplV1RpbWVyQ291bnQgICAgICA9IDA7CiAgICB0aGlzLnJlc2l6ZUhUaW1lckFycmF5ICAgICAgPSBuZXcgQXJyYXkoKTsKICAgIHRoaXMucmVzaXplSFRpbWVyQ291bnQgICAgICA9IDA7CiAgICB0aGlzLnNob3dDb250ZW50VGltZXJBcnJheSAgPSBuZXcgQXJyYXkoKTsKICAgIHRoaXMuc2hvd0NvbnRlbnRUaW1lckNvdW50ICA9IDA7CiAgICB0aGlzLm92ZXJsYXlUaW1lckFycmF5ICAgICAgPSBuZXcgQXJyYXkoKTsKICAgIHRoaXMub3ZlcmxheVRpbWVyQ291bnQgICAgICA9IDA7CiAgICB0aGlzLmltYWdlVGltZXJBcnJheSAgICAgICAgPSBuZXcgQXJyYXkoKTsKICAgIHRoaXMuaW1hZ2VUaW1lckNvdW50ICAgICAgICA9IDA7CiAgICB0aGlzLnRpbWVySURBcnJheSAgICAgICAgICAgPSBuZXcgQXJyYXkoKTsKICAgIHRoaXMudGltZXJJRENvdW50ICAgICAgICAgICA9IDA7CiAgICB0aGlzLnNsaWRlc2hvd0lEQXJyYXkgICAgICAgPSBuZXcgQXJyYXkoKTsKICAgIHRoaXMuc2xpZGVzaG93SURDb3VudCAgICAgICA9IDA7CiAgICB0aGlzLmltYWdlQXJyYXkgID0gbmV3IEFycmF5KCk7CiAgICB0aGlzLmFjdGl2ZUltYWdlID0gbnVsbDsKICAgIHRoaXMuc2xpZGVBcnJheSAgPSBuZXcgQXJyYXkoKTsKICAgIHRoaXMuYWN0aXZlU2xpZGUgPSBudWxsOwogICAgdGhpcy5mcmFtZUFycmF5ICA9IG5ldyBBcnJheSgpOwogICAgdGhpcy5hY3RpdmVGcmFtZSA9IG51bGw7CiAgICB0aGlzLmNoZWNrRnJhbWUoKTsKICAgIHRoaXMuaXNTbGlkZXNob3cgPSBmYWxzZTsKICAgIHRoaXMuaXNMeXRlZnJhbWUgPSBmYWxzZTsKICAgIC8qQGNjX29uCiAgICAgICAgLypAaWYgKEBfanNjcmlwdCkKICAgICAgICAgICAgdGhpcy5pZSA9IChkb2N1bWVudC5hbGwgJiYgIXdpbmRvdy5vcGVyYSkgPyB0cnVlIDogZmFsc2U7CiAgICAgICAgLypAZWxzZSBAKi8KICAgICAgICAgICAgdGhpcy5pZSA9IGZhbHNlOwogICAgICAgIC8qQGVuZAogICAgQCovCiAgICB0aGlzLmllNyA9ICh0aGlzLmllICYmIHdpbmRvdy5YTUxIdHRwUmVxdWVzdCk7CiAgICB0aGlzLmluaXRpYWxpemUoKTsKfQpMeXRlQm94LnByb3RvdHlwZS5pbml0aWFsaXplID0gZnVuY3Rpb24oKSB7CiAgICB0aGlzLnVwZGF0ZUx5dGVib3hJdGVtcygpOwogICAgdmFyIG9iakJvZHkgPSB0aGlzLmRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpLml0ZW0oMCk7CiAgICBpZiAodGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiT3ZlcmxheScpKSB7CiAgICAgICAgb2JqQm9keS5yZW1vdmVDaGlsZCh0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgibGJPdmVybGF5IikpOwogICAgICAgIG9iakJvZHkucmVtb3ZlQ2hpbGQodGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoImxiTWFpbiIpKTsKICAgIH0KICAgIHZhciBvYmpPdmVybGF5ID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgb2JqT3ZlcmxheS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJPdmVybGF5Jyk7CiAgICAgICAgb2JqT3ZlcmxheS5zZXRBdHRyaWJ1dGUoKHRoaXMuaWUgPyAnY2xhc3NOYW1lJyA6ICdjbGFzcycpLCB0aGlzLnRoZW1lKTsKICAgICAgICBpZiAoKHRoaXMuaWUgJiYgIXRoaXMuaWU3KSB8fCAodGhpcy5pZTcgJiYgdGhpcy5kb2MuY29tcGF0TW9kZSA9PSAnQmFja0NvbXBhdCcpKSB7CiAgICAgICAgICAgIG9iak92ZXJsYXkuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgICAgIH0KICAgICAgICBvYmpPdmVybGF5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgb2JqQm9keS5hcHBlbmRDaGlsZChvYmpPdmVybGF5KTsKICAgIHZhciBvYmpMeXRlYm94ID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgb2JqTHl0ZWJveC5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJNYWluJyk7CiAgICAgICAgb2JqTHl0ZWJveC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIG9iakJvZHkuYXBwZW5kQ2hpbGQob2JqTHl0ZWJveCk7CiAgICB2YXIgb2JqT3V0ZXJDb250YWluZXIgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICBvYmpPdXRlckNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJPdXRlckNvbnRhaW5lcicpOwogICAgICAgIG9iak91dGVyQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgodGhpcy5pZSA/ICdjbGFzc05hbWUnIDogJ2NsYXNzJyksIHRoaXMudGhlbWUpOwogICAgICAgIG9iakx5dGVib3guYXBwZW5kQ2hpbGQob2JqT3V0ZXJDb250YWluZXIpOwogICAgdmFyIG9iaklmcmFtZUNvbnRhaW5lciA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIG9iaklmcmFtZUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJJZnJhbWVDb250YWluZXInKTsKICAgICAgICBvYmpJZnJhbWVDb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICBvYmpPdXRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpJZnJhbWVDb250YWluZXIpOwogICAgdmFyIG9iaklmcmFtZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwogICAgICAgIG9iaklmcmFtZS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJJZnJhbWUnKTsKICAgICAgICBvYmpJZnJhbWUuc2V0QXR0cmlidXRlKCduYW1lJywnbGJJZnJhbWUnKTsKICAgICAgICBvYmpJZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICBvYmpJZnJhbWVDb250YWluZXIuYXBwZW5kQ2hpbGQob2JqSWZyYW1lKTsKICAgIHZhciBvYmpJbWFnZUNvbnRhaW5lciA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIG9iakltYWdlQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCdsYkltYWdlQ29udGFpbmVyJyk7CiAgICAgICAgb2JqT3V0ZXJDb250YWluZXIuYXBwZW5kQ2hpbGQob2JqSW1hZ2VDb250YWluZXIpOwogICAgdmFyIG9iakx5dGVib3hJbWFnZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImltZyIpOwogICAgICAgIG9iakx5dGVib3hJbWFnZS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJJbWFnZScpOwogICAgICAgIG9iakltYWdlQ29udGFpbmVyLmFwcGVuZENoaWxkKG9iakx5dGVib3hJbWFnZSk7CiAgICB2YXIgb2JqTG9hZGluZyA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIG9iakxvYWRpbmcuc2V0QXR0cmlidXRlKCdpZCcsJ2xiTG9hZGluZycpOwogICAgICAgIG9iak91dGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKG9iakxvYWRpbmcpOwogICAgdmFyIG9iakRldGFpbHNDb250YWluZXIgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICBvYmpEZXRhaWxzQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCdsYkRldGFpbHNDb250YWluZXInKTsKICAgICAgICBvYmpEZXRhaWxzQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgodGhpcy5pZSA/ICdjbGFzc05hbWUnIDogJ2NsYXNzJyksIHRoaXMudGhlbWUpOwogICAgICAgIG9iakx5dGVib3guYXBwZW5kQ2hpbGQob2JqRGV0YWlsc0NvbnRhaW5lcik7CiAgICB2YXIgb2JqRGV0YWlsc0RhdGEgPXRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIG9iakRldGFpbHNEYXRhLnNldEF0dHJpYnV0ZSgnaWQnLCdsYkRldGFpbHNEYXRhJyk7CiAgICAgICAgb2JqRGV0YWlsc0RhdGEuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7CiAgICAgICAgb2JqRGV0YWlsc0NvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpEZXRhaWxzRGF0YSk7CiAgICB2YXIgb2JqRGV0YWlscyA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIG9iakRldGFpbHMuc2V0QXR0cmlidXRlKCdpZCcsJ2xiRGV0YWlscycpOwogICAgICAgIG9iakRldGFpbHNEYXRhLmFwcGVuZENoaWxkKG9iakRldGFpbHMpOwogICAgdmFyIG9iakNhcHRpb24gPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgICAgb2JqQ2FwdGlvbi5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJDYXB0aW9uJyk7CiAgICAgICAgb2JqRGV0YWlscy5hcHBlbmRDaGlsZChvYmpDYXB0aW9uKTsKICAgIHZhciBvYmpIb3Zlck5hdiA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIG9iakhvdmVyTmF2LnNldEF0dHJpYnV0ZSgnaWQnLCdsYkhvdmVyTmF2Jyk7CiAgICAgICAgb2JqSW1hZ2VDb250YWluZXIuYXBwZW5kQ2hpbGQob2JqSG92ZXJOYXYpOwogICAgdmFyIG9iakJvdHRvbU5hdiA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIG9iakJvdHRvbU5hdi5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJCb3R0b21OYXYnKTsKICAgICAgICBvYmpEZXRhaWxzRGF0YS5hcHBlbmRDaGlsZChvYmpCb3R0b21OYXYpOwogICAgdmFyIG9ialByZXYgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJhIik7CiAgICAgICAgb2JqUHJldi5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJQcmV2Jyk7CiAgICAgICAgb2JqUHJldi5zZXRBdHRyaWJ1dGUoKHRoaXMuaWUgPyAnY2xhc3NOYW1lJyA6ICdjbGFzcycpLCB0aGlzLnRoZW1lKTsKICAgICAgICBvYmpQcmV2LnNldEF0dHJpYnV0ZSgnaHJlZicsJyMnKTsKICAgICAgICBvYmpIb3Zlck5hdi5hcHBlbmRDaGlsZChvYmpQcmV2KTsKICAgIHZhciBvYmpOZXh0ID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgICAgIG9iak5leHQuc2V0QXR0cmlidXRlKCdpZCcsJ2xiTmV4dCcpOwogICAgICAgIG9iak5leHQuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7CiAgICAgICAgb2JqTmV4dC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCcjJyk7CiAgICAgICAgb2JqSG92ZXJOYXYuYXBwZW5kQ2hpbGQob2JqTmV4dCk7CiAgICB2YXIgb2JqTnVtYmVyRGlzcGxheSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICBvYmpOdW1iZXJEaXNwbGF5LnNldEF0dHJpYnV0ZSgnaWQnLCdsYk51bWJlckRpc3BsYXknKTsKICAgICAgICBvYmpEZXRhaWxzLmFwcGVuZENoaWxkKG9iak51bWJlckRpc3BsYXkpOwogICAgdmFyIG9iak5hdkRpc3BsYXkgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgICAgb2JqTmF2RGlzcGxheS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJOYXZEaXNwbGF5Jyk7CiAgICAgICAgb2JqTmF2RGlzcGxheS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIG9iakRldGFpbHMuYXBwZW5kQ2hpbGQob2JqTmF2RGlzcGxheSk7CiAgICB2YXIgb2JqQ2xvc2UgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJhIik7CiAgICAgICAgb2JqQ2xvc2Uuc2V0QXR0cmlidXRlKCdpZCcsJ2xiQ2xvc2UnKTsKICAgICAgICBvYmpDbG9zZS5zZXRBdHRyaWJ1dGUoKHRoaXMuaWUgPyAnY2xhc3NOYW1lJyA6ICdjbGFzcycpLCB0aGlzLnRoZW1lKTsKICAgICAgICBvYmpDbG9zZS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCcjJyk7CiAgICAgICAgb2JqQm90dG9tTmF2LmFwcGVuZENoaWxkKG9iakNsb3NlKTsKICAgIHZhciBvYmpQYXVzZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgICAgICBvYmpQYXVzZS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJQYXVzZScpOwogICAgICAgIG9ialBhdXNlLnNldEF0dHJpYnV0ZSgodGhpcy5pZSA/ICdjbGFzc05hbWUnIDogJ2NsYXNzJyksIHRoaXMudGhlbWUpOwogICAgICAgIG9ialBhdXNlLnNldEF0dHJpYnV0ZSgnaHJlZicsJyMnKTsKICAgICAgICBvYmpQYXVzZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIG9iakJvdHRvbU5hdi5hcHBlbmRDaGlsZChvYmpQYXVzZSk7CiAgICB2YXIgb2JqUGxheSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgICAgICBvYmpQbGF5LnNldEF0dHJpYnV0ZSgnaWQnLCdsYlBsYXknKTsKICAgICAgICBvYmpQbGF5LnNldEF0dHJpYnV0ZSgodGhpcy5pZSA/ICdjbGFzc05hbWUnIDogJ2NsYXNzJyksIHRoaXMudGhlbWUpOwogICAgICAgIG9ialBsYXkuc2V0QXR0cmlidXRlKCdocmVmJywnIycpOwogICAgICAgIG9ialBsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICBvYmpCb3R0b21OYXYuYXBwZW5kQ2hpbGQob2JqUGxheSk7Cn07Ckx5dGVCb3gucHJvdG90eXBlLnVwZGF0ZUx5dGVib3hJdGVtcyA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGFuY2hvcnMgPSAodGhpcy5pc0ZyYW1lKSA/IHdpbmRvdy5wYXJlbnQuZnJhbWVzW3dpbmRvdy5uYW1lXS5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpIDogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYW5jaG9ycy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBhbmNob3IgPSBhbmNob3JzW2ldOwogICAgICAgIHZhciByZWxBdHRyaWJ1dGUgPSBTdHJpbmcoYW5jaG9yLmdldEF0dHJpYnV0ZSgncmVsJykpOwogICAgICAgIGlmIChhbmNob3IuZ2V0QXR0cmlidXRlKCdocmVmJykpIHsKICAgICAgICAgICAgaWYgKHJlbEF0dHJpYnV0ZS50b0xvd2VyQ2FzZSgpLm1hdGNoKCdseXRlYm94JykpIHsKICAgICAgICAgICAgICAgIGFuY2hvci5vbmNsaWNrID0gZnVuY3Rpb24gKCkgeyBteUx5dGVib3guc3RhcnQodGhpcywgZmFsc2UsIGZhbHNlKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsQXR0cmlidXRlLnRvTG93ZXJDYXNlKCkubWF0Y2goJ2x5dGVzaG93JykpIHsKICAgICAgICAgICAgICAgIGFuY2hvci5vbmNsaWNrID0gZnVuY3Rpb24gKCkgeyBteUx5dGVib3guc3RhcnQodGhpcywgdHJ1ZSwgZmFsc2UpOyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgICAgfSBlbHNlIGlmIChyZWxBdHRyaWJ1dGUudG9Mb3dlckNhc2UoKS5tYXRjaCgnbHl0ZWZyYW1lJykpIHsKICAgICAgICAgICAgICAgIGFuY2hvci5vbmNsaWNrID0gZnVuY3Rpb24gKCkgeyBteUx5dGVib3guc3RhcnQodGhpcywgZmFsc2UsIHRydWUpOyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfTsKTHl0ZUJveC5wcm90b3R5cGUuc3RhcnQgPSBmdW5jdGlvbihpbWFnZUxpbmssIGRvU2xpZGUsIGRvRnJhbWUpIHsKICAgIGlmICh0aGlzLmllICYmICF0aGlzLmllNykgeyB0aGlzLnRvZ2dsZVNlbGVjdHMoJ2hpZGUnKTsgfQogICAgaWYgKHRoaXMuaGlkZUZsYXNoKSB7IHRoaXMudG9nZ2xlRmxhc2goJ2hpZGUnKTsgfQogICAgdGhpcy5pc0x5dGVmcmFtZSA9IChkb0ZyYW1lID8gdHJ1ZSA6IGZhbHNlKTsKICAgIHZhciBwYWdlU2l6ZSAgICA9IHRoaXMuZ2V0UGFnZVNpemUoKTsKICAgIHZhciBvYmpPdmVybGF5ICA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk92ZXJsYXknKTsKICAgIHZhciBvYmpCb2R5ICAgICA9IHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IikuaXRlbSgwKTsKICAgIG9iak92ZXJsYXkuc3R5bGUuaGVpZ2h0ID0gcGFnZVNpemVbMV0gKyAicHgiOwogICAgb2JqT3ZlcmxheS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICB0aGlzLmFwcGVhcignbGJPdmVybGF5JywgKHRoaXMuZG9BbmltYXRpb25zID8gMCA6IHRoaXMubWF4T3BhY2l0eSkpOwogICAgdmFyIGFuY2hvcnMgPSAodGhpcy5pc0ZyYW1lKSA/IHdpbmRvdy5wYXJlbnQuZnJhbWVzW3dpbmRvdy5uYW1lXS5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpIDogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKTsKICAgIGlmICh0aGlzLmlzTHl0ZWZyYW1lKSB7CiAgICAgICAgdGhpcy5mcmFtZUFycmF5ID0gW107CiAgICAgICAgdGhpcy5mcmFtZU51bSA9IDA7CiAgICAgICAgaWYgKChpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdyZWwnKSA9PSAnbHl0ZWZyYW1lJykpIHsKICAgICAgICAgICAgdmFyIHJldiA9IGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3JldicpOwogICAgICAgICAgICB0aGlzLmZyYW1lQXJyYXkucHVzaChuZXcgQXJyYXkoaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpLCBpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCd0aXRsZScpLCAocmV2ID09IG51bGwgfHwgcmV2ID09ICcnID8gJ3dpZHRoOiA0MDBweDsgaGVpZ2h0OiA0MDBweDsgc2Nyb2xsaW5nOiBhdXRvOycgOiByZXYpKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3JlbCcpLmluZGV4T2YoJ2x5dGVmcmFtZScpICE9IC0xKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFuY2hvcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB2YXIgYW5jaG9yID0gYW5jaG9yc1tpXTsKICAgICAgICAgICAgICAgICAgICBpZiAoYW5jaG9yLmdldEF0dHJpYnV0ZSgnaHJlZicpICYmIChhbmNob3IuZ2V0QXR0cmlidXRlKCdyZWwnKSA9PSBpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdyZWwnKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJldiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoJ3JldicpOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lQXJyYXkucHVzaChuZXcgQXJyYXkoYW5jaG9yLmdldEF0dHJpYnV0ZSgnaHJlZicpLCBhbmNob3IuZ2V0QXR0cmlidXRlKCd0aXRsZScpLCAocmV2ID09IG51bGwgfHwgcmV2ID09ICcnID8gJ3dpZHRoOiA0MDBweDsgaGVpZ2h0OiA0MDBweDsgc2Nyb2xsaW5nOiBhdXRvOycgOiByZXYpKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhpcy5mcmFtZUFycmF5LnJlbW92ZUR1cGxpY2F0ZXMoKTsKICAgICAgICAgICAgICAgIHdoaWxlKHRoaXMuZnJhbWVBcnJheVt0aGlzLmZyYW1lTnVtXVswXSAhPSBpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdocmVmJykpIHsgdGhpcy5mcmFtZU51bSsrOyB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIHRoaXMuaW1hZ2VBcnJheSA9IFtdOwogICAgICAgIHRoaXMuaW1hZ2VOdW0gPSAwOwogICAgICAgIHRoaXMuc2xpZGVBcnJheSA9IFtdOwogICAgICAgIHRoaXMuc2xpZGVOdW0gPSAwOwogICAgICAgIGlmICgoaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmVsJykgPT0gJ2x5dGVib3gnKSkgewogICAgICAgICAgICB0aGlzLmltYWdlQXJyYXkucHVzaChuZXcgQXJyYXkoaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpLCBpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCd0aXRsZScpKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3JlbCcpLmluZGV4T2YoJ2x5dGVib3gnKSAhPSAtMSkgewogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbmNob3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGFuY2hvciA9IGFuY2hvcnNbaV07CiAgICAgICAgICAgICAgICAgICAgaWYgKGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSAmJiAoYW5jaG9yLmdldEF0dHJpYnV0ZSgncmVsJykgPT0gaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmVsJykpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VBcnJheS5wdXNoKG5ldyBBcnJheShhbmNob3IuZ2V0QXR0cmlidXRlKCdocmVmJyksIGFuY2hvci5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmltYWdlQXJyYXkucmVtb3ZlRHVwbGljYXRlcygpOwogICAgICAgICAgICAgICAgd2hpbGUodGhpcy5pbWFnZUFycmF5W3RoaXMuaW1hZ2VOdW1dWzBdICE9IGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkgeyB0aGlzLmltYWdlTnVtKys7IH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmVsJykuaW5kZXhPZignbHl0ZXNob3cnKSAhPSAtMSkgewogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbmNob3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGFuY2hvciA9IGFuY2hvcnNbaV07CiAgICAgICAgICAgICAgICAgICAgaWYgKGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSAmJiAoYW5jaG9yLmdldEF0dHJpYnV0ZSgncmVsJykgPT0gaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmVsJykpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVBcnJheS5wdXNoKG5ldyBBcnJheShhbmNob3IuZ2V0QXR0cmlidXRlKCdocmVmJyksIGFuY2hvci5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLnNsaWRlQXJyYXkucmVtb3ZlRHVwbGljYXRlcygpOwogICAgICAgICAgICAgICAgd2hpbGUodGhpcy5zbGlkZUFycmF5W3RoaXMuc2xpZGVOdW1dWzBdICE9IGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkgeyB0aGlzLnNsaWRlTnVtKys7IH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHZhciBvYmplY3QgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJNYWluJyk7CiAgICAgICAgb2JqZWN0LnN0eWxlLnRvcCA9ICh0aGlzLmdldFBhZ2VTY3JvbGwoKSArIChwYWdlU2l6ZVszXSAvIDE1KSkgKyAicHgiOwogICAgICAgIG9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICBpZiAoIXRoaXMub3V0ZXJCb3JkZXIpIHsKICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnN0eWxlLmJvcmRlciA9ICdub25lJzsKICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJEZXRhaWxzQ29udGFpbmVyJykuc3R5bGUuYm9yZGVyID0gJ25vbmUnOwogICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnN0eWxlLmJvcmRlckJvdHRvbSA9ICcnOwogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk91dGVyQ29udGFpbmVyJykuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7CiAgICB9CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdmVybGF5Jykub25jbGljayA9IGZ1bmN0aW9uKCkgeyBteUx5dGVib3guZW5kKCk7IHJldHVybiBmYWxzZTsgfQogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTWFpbicpLm9uY2xpY2sgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIGUgPSBlOwogICAgICAgIGlmICghZSkgewogICAgICAgICAgICBpZiAod2luZG93LnBhcmVudC5mcmFtZXNbd2luZG93Lm5hbWVdICYmIChwYXJlbnQuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ZyYW1lc2V0JykubGVuZ3RoIDw9IDApKSB7CiAgICAgICAgICAgICAgICBlID0gd2luZG93LnBhcmVudC53aW5kb3cuZXZlbnQ7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlID0gd2luZG93LmV2ZW50OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZhciBpZCA9IChlLnRhcmdldCA/IGUudGFyZ2V0LmlkIDogZS5zcmNFbGVtZW50LmlkKTsKICAgICAgICBpZiAoaWQgPT0gJ2xiTWFpbicpIHsgbXlMeXRlYm94LmVuZCgpOyByZXR1cm4gZmFsc2U7IH0KICAgIH0KICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkNsb3NlJykub25jbGljayA9IGZ1bmN0aW9uKCkgeyBteUx5dGVib3guZW5kKCk7IHJldHVybiBmYWxzZTsgfQogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUGF1c2UnKS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7IG15THl0ZWJveC50b2dnbGVQbGF5UGF1c2UoImxiUGF1c2UiLCAibGJQbGF5Iik7IHJldHVybiBmYWxzZTsgfQogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUGxheScpLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsgbXlMeXRlYm94LnRvZ2dsZVBsYXlQYXVzZSgibGJQbGF5IiwgImxiUGF1c2UiKTsgcmV0dXJuIGZhbHNlOyB9CiAgICB0aGlzLmlzU2xpZGVzaG93ID0gZG9TbGlkZTsKICAgIHRoaXMuaXNQYXVzZWQgPSAodGhpcy5zbGlkZU51bSAhPSAwID8gdHJ1ZSA6IGZhbHNlKTsKICAgIGlmICh0aGlzLmlzU2xpZGVzaG93ICYmIHRoaXMuc2hvd1BsYXlQYXVzZSAmJiB0aGlzLmlzUGF1c2VkKSB7CiAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUGxheScpLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQYXVzZScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB9CiAgICBpZiAodGhpcy5pc0x5dGVmcmFtZSkgewogICAgICAgIHRoaXMuY2hhbmdlQ29udGVudCh0aGlzLmZyYW1lTnVtKTsKICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHRoaXMuaXNTbGlkZXNob3cpIHsKICAgICAgICAgICAgdGhpcy5jaGFuZ2VDb250ZW50KHRoaXMuc2xpZGVOdW0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuY2hhbmdlQ29udGVudCh0aGlzLmltYWdlTnVtKTsKICAgICAgICB9CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLmNoYW5nZUNvbnRlbnQgPSBmdW5jdGlvbihpbWFnZU51bSkgewogICAgaWYgKHRoaXMuaXNTbGlkZXNob3cpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2xpZGVzaG93SURDb3VudDsgaSsrKSB7IHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zbGlkZXNob3dJREFycmF5W2ldKTsgfQogICAgfQogICAgdGhpcy5hY3RpdmVJbWFnZSA9IHRoaXMuYWN0aXZlU2xpZGUgPSB0aGlzLmFjdGl2ZUZyYW1lID0gaW1hZ2VOdW07CiAgICBpZiAoIXRoaXMub3V0ZXJCb3JkZXIpIHsKICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnN0eWxlLmJvcmRlciA9ICdub25lJzsKICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJEZXRhaWxzQ29udGFpbmVyJykuc3R5bGUuYm9yZGVyID0gJ25vbmUnOwogICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnN0eWxlLmJvcmRlckJvdHRvbSA9ICcnOwogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk91dGVyQ29udGFpbmVyJykuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7CiAgICB9CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJMb2FkaW5nJykuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiSW1hZ2UnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiSWZyYW1lJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlByZXYnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJZnJhbWVDb250YWluZXInKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiRGV0YWlsc0NvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOdW1iZXJEaXNwbGF5Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIGlmICh0aGlzLm5hdlR5cGUgPT0gMiB8fCB0aGlzLmlzTHl0ZWZyYW1lKSB7CiAgICAgICAgb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpOwogICAgICAgIG9iamVjdC5pbm5lckhUTUwgPSAnJm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gaWQ9ImxiUHJldjJfT2ZmIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIGNsYXNzPSInICsgdGhpcy50aGVtZSArICciPiZsYXF1bzsgcHJldjwvc3Bhbj48YSBocmVmPSIjIiBpZD0ibGJQcmV2MiIgY2xhc3M9IicgKyB0aGlzLnRoZW1lICsgJyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4mbGFxdW87IHByZXY8L2E+IDxiIGlkPSJsYlNwYWNlciIgY2xhc3M9IicgKyB0aGlzLnRoZW1lICsgJyI+fHw8L2I+IDxzcGFuIGlkPSJsYk5leHQyX09mZiIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiBjbGFzcz0iJyArIHRoaXMudGhlbWUgKyAnIj5uZXh0ICZyYXF1bzs8L3NwYW4+PGEgaHJlZj0iIyIgaWQ9ImxiTmV4dDIiIGNsYXNzPSInICsgdGhpcy50aGVtZSArICciIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+bmV4dCAmcmFxdW87PC9hPic7CiAgICAgICAgb2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB9CiAgICBpZiAodGhpcy5pc0x5dGVmcmFtZSkgewogICAgICAgIHZhciBpZnJhbWUgPSBteUx5dGVib3guZG9jLmdldEVsZW1lbnRCeUlkKCdsYklmcmFtZScpOwogICAgICAgIHZhciBzdHlsZXMgPSB0aGlzLmZyYW1lQXJyYXlbdGhpcy5hY3RpdmVGcmFtZV1bMl07CiAgICAgICAgdmFyIGFTdHlsZXMgPSBzdHlsZXMuc3BsaXQoJzsnKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFTdHlsZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGFTdHlsZXNbaV0uaW5kZXhPZignd2lkdGg6JykgPj0gMCkgewogICAgICAgICAgICAgICAgdmFyIHcgPSBhU3R5bGVzW2ldLnJlcGxhY2UoJ3dpZHRoOicsICcnKTsKICAgICAgICAgICAgICAgIGlmcmFtZS53aWR0aCA9IHcudHJpbSgpOwogICAgICAgICAgICB9IGVsc2UgaWYgKGFTdHlsZXNbaV0uaW5kZXhPZignaGVpZ2h0OicpID49IDApIHsKICAgICAgICAgICAgICAgIHZhciBoID0gYVN0eWxlc1tpXS5yZXBsYWNlKCdoZWlnaHQ6JywgJycpOwogICAgICAgICAgICAgICAgaWZyYW1lLmhlaWdodCA9IGgudHJpbSgpOwogICAgICAgICAgICB9IGVsc2UgaWYgKGFTdHlsZXNbaV0uaW5kZXhPZignc2Nyb2xsaW5nOicpID49IDApIHsKICAgICAgICAgICAgICAgIHZhciBzID0gYVN0eWxlc1tpXS5yZXBsYWNlKCdzY3JvbGxpbmc6JywgJycpOwogICAgICAgICAgICAgICAgaWZyYW1lLnNjcm9sbGluZyA9IHMudHJpbSgpOwogICAgICAgICAgICB9IGVsc2UgaWYgKGFTdHlsZXNbaV0uaW5kZXhPZignYm9yZGVyOicpID49IDApIHsKICAgICAgICAgICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCB5ZXQsIGFzIHRoZXJlIGFyZSBjcm9zcy1wbGF0Zm9ybSBpc3N1ZXMgd2l0aCBzZXR0aW5nIHRoZSBib3JkZXIgKGZyb20gYSBHVUkgc3RhbmRwb2ludCkKICAgICAgICAgICAgICAgIC8vdmFyIGIgPSBhU3R5bGVzW2ldLnJlcGxhY2UoJ2JvcmRlcjonLCAnJyk7CiAgICAgICAgICAgICAgICAvL2lmcmFtZS5zdHlsZS5ib3JkZXIgPSBiLnRyaW0oKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLnJlc2l6ZUNvbnRhaW5lcihwYXJzZUludChpZnJhbWUud2lkdGgpLCBwYXJzZUludChpZnJhbWUuaGVpZ2h0KSk7CiAgICB9IGVsc2UgewogICAgICAgIGltZ1ByZWxvYWRlciA9IG5ldyBJbWFnZSgpOwogICAgICAgIGltZ1ByZWxvYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGltYWdlV2lkdGggPSBpbWdQcmVsb2FkZXIud2lkdGg7CiAgICAgICAgICAgIHZhciBpbWFnZUhlaWdodCA9IGltZ1ByZWxvYWRlci5oZWlnaHQ7CiAgICAgICAgICAgIGlmIChteUx5dGVib3guYXV0b1Jlc2l6ZSkgewogICAgICAgICAgICAgICAgdmFyIHBhZ2VzaXplID0gbXlMeXRlYm94LmdldFBhZ2VTaXplKCk7CiAgICAgICAgICAgICAgICB2YXIgeCA9IHBhZ2VzaXplWzJdIC0gMTUwOwogICAgICAgICAgICAgICAgdmFyIHkgPSBwYWdlc2l6ZVszXSAtIDE1MDsKICAgICAgICAgICAgICAgIGlmIChpbWFnZVdpZHRoID4geCkgewogICAgICAgICAgICAgICAgICAgIGltYWdlSGVpZ2h0ID0gTWF0aC5yb3VuZChpbWFnZUhlaWdodCAqICh4IC8gaW1hZ2VXaWR0aCkpOwogICAgICAgICAgICAgICAgICAgIGltYWdlV2lkdGggPSB4OwogICAgICAgICAgICAgICAgICAgIGlmIChpbWFnZUhlaWdodCA+IHkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VXaWR0aCA9IE1hdGgucm91bmQoaW1hZ2VXaWR0aCAqICh5IC8gaW1hZ2VIZWlnaHQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VIZWlnaHQgPSB5OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW1hZ2VIZWlnaHQgPiB5KSB7CiAgICAgICAgICAgICAgICAgICAgaW1hZ2VXaWR0aCA9IE1hdGgucm91bmQoaW1hZ2VXaWR0aCAqICh5IC8gaW1hZ2VIZWlnaHQpKTsKICAgICAgICAgICAgICAgICAgICBpbWFnZUhlaWdodCA9IHk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGltYWdlV2lkdGggPiB4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlSGVpZ2h0ID0gTWF0aC5yb3VuZChpbWFnZUhlaWdodCAqICh4IC8gaW1hZ2VXaWR0aCkpOwogICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVdpZHRoID0geDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGxiSW1hZ2UgPSBteUx5dGVib3guZG9jLmdldEVsZW1lbnRCeUlkKCdsYkltYWdlJykKICAgICAgICAgICAgbGJJbWFnZS5zcmMgPSAobXlMeXRlYm94LmlzU2xpZGVzaG93ID8gbXlMeXRlYm94LnNsaWRlQXJyYXlbbXlMeXRlYm94LmFjdGl2ZVNsaWRlXVswXSA6IG15THl0ZWJveC5pbWFnZUFycmF5W215THl0ZWJveC5hY3RpdmVJbWFnZV1bMF0pOwogICAgICAgICAgICBsYkltYWdlLndpZHRoID0gaW1hZ2VXaWR0aDsKICAgICAgICAgICAgbGJJbWFnZS5oZWlnaHQgPSBpbWFnZUhlaWdodDsKICAgICAgICAgICAgbXlMeXRlYm94LnJlc2l6ZUNvbnRhaW5lcihpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCk7CiAgICAgICAgICAgIGltZ1ByZWxvYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHt9OwogICAgICAgIH0KICAgICAgICBpbWdQcmVsb2FkZXIuc3JjID0gKHRoaXMuaXNTbGlkZXNob3cgPyB0aGlzLnNsaWRlQXJyYXlbdGhpcy5hY3RpdmVTbGlkZV1bMF0gOiB0aGlzLmltYWdlQXJyYXlbdGhpcy5hY3RpdmVJbWFnZV1bMF0pOwogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS5yZXNpemVDb250YWluZXIgPSBmdW5jdGlvbihpbWdXaWR0aCwgaW1nSGVpZ2h0KSB7CiAgICB0aGlzLndDdXIgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLm9mZnNldFdpZHRoOwogICAgdGhpcy5oQ3VyID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiT3V0ZXJDb250YWluZXInKS5vZmZzZXRIZWlnaHQ7CiAgICB0aGlzLnhTY2FsZSA9ICgoaW1nV2lkdGggICsgKHRoaXMuYm9yZGVyU2l6ZSAqIDIpKSAvIHRoaXMud0N1cikgKiAxMDA7CiAgICB0aGlzLnlTY2FsZSA9ICgoaW1nSGVpZ2h0ICArICh0aGlzLmJvcmRlclNpemUgKiAyKSkgLyB0aGlzLmhDdXIpICogMTAwOwogICAgdmFyIHdEaWZmID0gKHRoaXMud0N1ciAtIHRoaXMuYm9yZGVyU2l6ZSAqIDIpIC0gaW1nV2lkdGg7CiAgICB2YXIgaERpZmYgPSAodGhpcy5oQ3VyIC0gdGhpcy5ib3JkZXJTaXplICogMikgLSBpbWdIZWlnaHQ7CiAgICBpZiAoIShoRGlmZiA9PSAwKSkgewogICAgICAgIHRoaXMuaERvbmUgPSBmYWxzZTsKICAgICAgICB0aGlzLnJlc2l6ZUgoJ2xiT3V0ZXJDb250YWluZXInLCB0aGlzLmhDdXIsIGltZ0hlaWdodCArIHRoaXMuYm9yZGVyU2l6ZSoyLCB0aGlzLmdldFBpeGVsUmF0ZSh0aGlzLmhDdXIsIGltZ0hlaWdodCkpOwogICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmhEb25lID0gdHJ1ZTsKICAgIH0KICAgIGlmICghKHdEaWZmID09IDApKSB7CiAgICAgICAgdGhpcy53RG9uZSA9IGZhbHNlOwogICAgICAgIHRoaXMucmVzaXplVygnbGJPdXRlckNvbnRhaW5lcicsIHRoaXMud0N1ciwgaW1nV2lkdGggKyB0aGlzLmJvcmRlclNpemUqMiwgdGhpcy5nZXRQaXhlbFJhdGUodGhpcy53Q3VyLCBpbWdXaWR0aCkpOwogICAgfSBlbHNlIHsKICAgICAgICB0aGlzLndEb25lID0gdHJ1ZTsKICAgIH0KICAgIGlmICgoaERpZmYgPT0gMCkgJiYgKHdEaWZmID09IDApKSB7CiAgICAgICAgaWYgKHRoaXMuaWUpeyB0aGlzLnBhdXNlKDI1MCk7IH0gZWxzZSB7IHRoaXMucGF1c2UoMTAwKTsgfQogICAgfQogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUHJldicpLnN0eWxlLmhlaWdodCA9IGltZ0hlaWdodCArICJweCI7CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOZXh0Jykuc3R5bGUuaGVpZ2h0ID0gaW1nSGVpZ2h0ICsgInB4IjsKICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkRldGFpbHNDb250YWluZXInKS5zdHlsZS53aWR0aCA9IChpbWdXaWR0aCArICh0aGlzLmJvcmRlclNpemUgKiAyKSArICh0aGlzLmllICYmIHRoaXMuZG9jLmNvbXBhdE1vZGUgPT0gIkJhY2tDb21wYXQiICYmIHRoaXMub3V0ZXJCb3JkZXIgPyAyIDogMCkpICsgInB4IjsKICAgIHRoaXMuc2hvd0NvbnRlbnQoKTsKfTsKTHl0ZUJveC5wcm90b3R5cGUuc2hvd0NvbnRlbnQgPSBmdW5jdGlvbigpIHsKICAgIGlmICh0aGlzLndEb25lICYmIHRoaXMuaERvbmUpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2hvd0NvbnRlbnRUaW1lckNvdW50OyBpKyspIHsgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnNob3dDb250ZW50VGltZXJBcnJheVtpXSk7IH0KICAgICAgICBpZiAodGhpcy5vdXRlckJvcmRlcikgewogICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLnN0eWxlLmJvcmRlckJvdHRvbSA9ICdub25lJzsKICAgICAgICB9CiAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTG9hZGluZycpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgaWYgKHRoaXMuaXNMeXRlZnJhbWUpIHsKICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiSWZyYW1lJykuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICB0aGlzLmFwcGVhcignbGJJZnJhbWUnLCAodGhpcy5kb0FuaW1hdGlvbnMgPyAwIDogMTAwKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiSW1hZ2UnKS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgICAgIHRoaXMuYXBwZWFyKCdsYkltYWdlJywgKHRoaXMuZG9BbmltYXRpb25zID8gMCA6IDEwMCkpOwogICAgICAgICAgICB0aGlzLnByZWxvYWROZWlnaGJvckltYWdlcygpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5pc1NsaWRlc2hvdykgewogICAgICAgICAgICBpZih0aGlzLmFjdGl2ZVNsaWRlID09ICh0aGlzLnNsaWRlQXJyYXkubGVuZ3RoIC0gMSkpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9FbmQpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlc2hvd0lEQXJyYXlbdGhpcy5zbGlkZXNob3dJRENvdW50KytdID0gc2V0VGltZW91dCgibXlMeXRlYm94LmVuZCgnc2xpZGVzaG93JykiLCB0aGlzLnNsaWRlSW50ZXJ2YWwpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzUGF1c2VkKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXNob3dJREFycmF5W3RoaXMuc2xpZGVzaG93SURDb3VudCsrXSA9IHNldFRpbWVvdXQoIm15THl0ZWJveC5jaGFuZ2VDb250ZW50KCIrKHRoaXMuYWN0aXZlU2xpZGUrMSkrIikiLCB0aGlzLnNsaWRlSW50ZXJ2YWwpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkhvdmVyTmF2Jykuc3R5bGUuZGlzcGxheSA9ICh0aGlzLnNob3dOYXZpZ2F0aW9uICYmIHRoaXMubmF2VHlwZSA9PSAxID8gJycgOiAnbm9uZScpOwogICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJDbG9zZScpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5zaG93Q2xvc2UgPyAnJyA6ICdub25lJyk7CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkRldGFpbHMnKS5zdHlsZS5kaXNwbGF5ID0gKHRoaXMuc2hvd0RldGFpbHMgPyAnJyA6ICdub25lJyk7CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlBhdXNlJykuc3R5bGUuZGlzcGxheSA9ICh0aGlzLnNob3dQbGF5UGF1c2UgJiYgIXRoaXMuaXNQYXVzZWQgPyAnJyA6ICdub25lJyk7CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlBsYXknKS5zdHlsZS5kaXNwbGF5ID0gKHRoaXMuc2hvd1BsYXlQYXVzZSAmJiAhdGhpcy5pc1BhdXNlZCA/ICdub25lJyA6ICcnKTsKICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5zaG93TmF2aWdhdGlvbiAmJiB0aGlzLm5hdlR5cGUgPT0gMiA/ICcnIDogJ25vbmUnKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJIb3Zlck5hdicpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5uYXZUeXBlID09IDEgJiYgIXRoaXMuaXNMeXRlZnJhbWUgPyAnJyA6ICdub25lJyk7CiAgICAgICAgICAgIGlmICgodGhpcy5uYXZUeXBlID09IDIgJiYgIXRoaXMuaXNMeXRlZnJhbWUgJiYgdGhpcy5pbWFnZUFycmF5Lmxlbmd0aCA+IDEpIHx8ICh0aGlzLmZyYW1lQXJyYXkubGVuZ3RoID4gMSAmJiB0aGlzLmlzTHl0ZWZyYW1lKSkgewogICAgICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5hdkRpc3BsYXknKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkNsb3NlJykuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJEZXRhaWxzJykuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQYXVzZScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlBsYXknKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIH0KICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJbWFnZUNvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5pc0x5dGVmcmFtZSA/ICdub25lJyA6ICcnKTsKICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJZnJhbWVDb250YWluZXInKS5zdHlsZS5kaXNwbGF5ID0gKHRoaXMuaXNMeXRlZnJhbWUgPyAnJyA6ICdub25lJyk7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiSWZyYW1lJykuc3JjID0gdGhpcy5mcmFtZUFycmF5W3RoaXMuYWN0aXZlRnJhbWVdWzBdOwogICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICB9IGVsc2UgewogICAgICAgIHRoaXMuc2hvd0NvbnRlbnRUaW1lckFycmF5W3RoaXMuc2hvd0NvbnRlbnRUaW1lckNvdW50KytdID0gc2V0VGltZW91dCgibXlMeXRlYm94LnNob3dDb250ZW50KCkiLCAyMDApOwogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS51cGRhdGVEZXRhaWxzID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiQ2FwdGlvbicpOwogICAgdmFyIHNUaXRsZSA9ICh0aGlzLmlzU2xpZGVzaG93ID8gdGhpcy5zbGlkZUFycmF5W3RoaXMuYWN0aXZlU2xpZGVdWzFdIDogKHRoaXMuaXNMeXRlZnJhbWUgPyB0aGlzLmZyYW1lQXJyYXlbdGhpcy5hY3RpdmVGcmFtZV1bMV0gOiB0aGlzLmltYWdlQXJyYXlbdGhpcy5hY3RpdmVJbWFnZV1bMV0pKTsKICAgIG9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICBvYmplY3QuaW5uZXJIVE1MID0gKHNUaXRsZSA9PSBudWxsID8gJycgOiBzVGl0bGUpOwogICAgdGhpcy51cGRhdGVOYXYoKTsKICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkRldGFpbHNDb250YWluZXInKS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICBvYmplY3QgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOdW1iZXJEaXNwbGF5Jyk7CiAgICBpZiAodGhpcy5pc1NsaWRlc2hvdyAmJiB0aGlzLnNsaWRlQXJyYXkubGVuZ3RoID4gMSkgewogICAgICAgIG9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgb2JqZWN0LmlubmVySFRNTCA9ICJJbWFnZSAiICsgZXZhbCh0aGlzLmFjdGl2ZVNsaWRlICsgMSkgKyAiIG9mICIgKyB0aGlzLnNsaWRlQXJyYXkubGVuZ3RoOwogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5hdkRpc3BsYXknKS5zdHlsZS5kaXNwbGF5ID0gKHRoaXMubmF2VHlwZSA9PSAyICYmIHRoaXMuc2hvd05hdmlnYXRpb24gPyAnJyA6ICdub25lJyk7CiAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VBcnJheS5sZW5ndGggPiAxICYmICF0aGlzLmlzTHl0ZWZyYW1lKSB7CiAgICAgICAgb2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICBvYmplY3QuaW5uZXJIVE1MID0gIkltYWdlICIgKyBldmFsKHRoaXMuYWN0aXZlSW1hZ2UgKyAxKSArICIgb2YgIiArIHRoaXMuaW1hZ2VBcnJheS5sZW5ndGg7CiAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5uYXZUeXBlID09IDIgPyAnJyA6ICdub25lJyk7CiAgICB9IGVsc2UgaWYgKHRoaXMuZnJhbWVBcnJheS5sZW5ndGggPiAxICYmIHRoaXMuaXNMeXRlZnJhbWUpIHsKICAgICAgICBvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgIG9iamVjdC5pbm5lckhUTUwgPSAiUGFnZSAiICsgZXZhbCh0aGlzLmFjdGl2ZUZyYW1lICsgMSkgKyAiIG9mICIgKyB0aGlzLmZyYW1lQXJyYXkubGVuZ3RoOwogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5hdkRpc3BsYXknKS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICB9IGVsc2UgewogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5hdkRpc3BsYXknKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgfQogICAgdGhpcy5hcHBlYXIoJ2xiRGV0YWlsc0NvbnRhaW5lcicsICh0aGlzLmRvQW5pbWF0aW9ucyA/IDAgOiAxMDApKTsKfTsKTHl0ZUJveC5wcm90b3R5cGUudXBkYXRlTmF2ID0gZnVuY3Rpb24oKSB7CiAgICBpZiAodGhpcy5pc1NsaWRlc2hvdykgewogICAgICAgIGlmICh0aGlzLmFjdGl2ZVNsaWRlICE9IDApIHsKICAgICAgICAgICAgdmFyIG9iamVjdCA9ICh0aGlzLm5hdlR5cGUgPT0gMiA/IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlByZXYyJykgOiB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2JykpOwogICAgICAgICAgICAgICAgb2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICAgICAgICAgIG9iamVjdC5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKG15THl0ZWJveC5wYXVzZU9uUHJldkNsaWNrKSB7IG15THl0ZWJveC50b2dnbGVQbGF5UGF1c2UoImxiUGF1c2UiLCAibGJQbGF5Iik7IH0KICAgICAgICAgICAgICAgICAgICBteUx5dGVib3guY2hhbmdlQ29udGVudChteUx5dGVib3guYWN0aXZlU2xpZGUgLSAxKTsgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmICh0aGlzLm5hdlR5cGUgPT0gMikgeyB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2Ml9PZmYnKS5zdHlsZS5kaXNwbGF5ID0gJyc7IH0KICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuYWN0aXZlU2xpZGUgIT0gKHRoaXMuc2xpZGVBcnJheS5sZW5ndGggLSAxKSkgewogICAgICAgICAgICB2YXIgb2JqZWN0ID0gKHRoaXMubmF2VHlwZSA9PSAyID8gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dDInKSA6IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQnKSk7CiAgICAgICAgICAgICAgICBvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICAgICAgb2JqZWN0Lm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBpZiAobXlMeXRlYm94LnBhdXNlT25OZXh0Q2xpY2spIHsgbXlMeXRlYm94LnRvZ2dsZVBsYXlQYXVzZSgibGJQYXVzZSIsICJsYlBsYXkiKTsgfQogICAgICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVTbGlkZSArIDEpOyByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHRoaXMubmF2VHlwZSA9PSAyKSB7IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQyX09mZicpLnN0eWxlLmRpc3BsYXkgPSAnJzsgfQogICAgICAgIH0KICAgIH0gZWxzZSBpZiAodGhpcy5pc0x5dGVmcmFtZSkgewogICAgICAgIGlmKHRoaXMuYWN0aXZlRnJhbWUgIT0gMCkgewogICAgICAgICAgICB2YXIgb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUHJldjInKTsKICAgICAgICAgICAgICAgIG9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgICAgICAgICBvYmplY3Qub25jbGljayA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVGcmFtZSAtIDEpOyByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUHJldjJfT2ZmJykuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgIH0KICAgICAgICBpZih0aGlzLmFjdGl2ZUZyYW1lICE9ICh0aGlzLmZyYW1lQXJyYXkubGVuZ3RoIC0gMSkpIHsKICAgICAgICAgICAgdmFyIG9iamVjdCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQyJyk7CiAgICAgICAgICAgICAgICBvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICAgICAgb2JqZWN0Lm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBteUx5dGVib3guY2hhbmdlQ29udGVudChteUx5dGVib3guYWN0aXZlRnJhbWUgKyAxKTsgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQyX09mZicpLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGlmKHRoaXMuYWN0aXZlSW1hZ2UgIT0gMCkgewogICAgICAgICAgICB2YXIgb2JqZWN0ID0gKHRoaXMubmF2VHlwZSA9PSAyID8gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUHJldjInKSA6IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlByZXYnKSk7CiAgICAgICAgICAgICAgICBvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICAgICAgb2JqZWN0Lm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBteUx5dGVib3guY2hhbmdlQ29udGVudChteUx5dGVib3guYWN0aXZlSW1hZ2UgLSAxKTsgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmICh0aGlzLm5hdlR5cGUgPT0gMikgeyB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2Ml9PZmYnKS5zdHlsZS5kaXNwbGF5ID0gJyc7IH0KICAgICAgICB9CiAgICAgICAgaWYodGhpcy5hY3RpdmVJbWFnZSAhPSAodGhpcy5pbWFnZUFycmF5Lmxlbmd0aCAtIDEpKSB7CiAgICAgICAgICAgIHZhciBvYmplY3QgPSAodGhpcy5uYXZUeXBlID09IDIgPyB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOZXh0MicpIDogdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dCcpKTsKICAgICAgICAgICAgICAgIG9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgICAgICAgICBvYmplY3Qub25jbGljayA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVJbWFnZSArIDEpOyByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHRoaXMubmF2VHlwZSA9PSAyKSB7IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQyX09mZicpLnN0eWxlLmRpc3BsYXkgPSAnJzsgfQogICAgICAgIH0KICAgIH0KICAgIHRoaXMuZW5hYmxlS2V5Ym9hcmROYXYoKTsKfTsKTHl0ZUJveC5wcm90b3R5cGUuZW5hYmxlS2V5Ym9hcmROYXYgPSBmdW5jdGlvbigpIHsgZG9jdW1lbnQub25rZXlkb3duID0gdGhpcy5rZXlib2FyZEFjdGlvbjsgfTsKTHl0ZUJveC5wcm90b3R5cGUuZGlzYWJsZUtleWJvYXJkTmF2ID0gZnVuY3Rpb24oKSB7IGRvY3VtZW50Lm9ua2V5ZG93biA9ICcnOyB9OwpMeXRlQm94LnByb3RvdHlwZS5rZXlib2FyZEFjdGlvbiA9IGZ1bmN0aW9uKGUpIHsKICAgIHZhciBrZXljb2RlID0ga2V5ID0gZXNjYXBlID0gbnVsbDsKICAgIGtleWNvZGUgPSAoZSA9PSBudWxsKSA/IGV2ZW50LmtleUNvZGUgOiBlLndoaWNoOwogICAga2V5ICAgICA9IFN0cmluZy5mcm9tQ2hhckNvZGUoa2V5Y29kZSkudG9Mb3dlckNhc2UoKTsKICAgIGVzY2FwZSAgPSAoZSA9PSBudWxsKSA/IDI3IDogZS5ET01fVktfRVNDQVBFOwogICAgaWYgKChrZXkgPT0gJ3gnKSB8fCAoa2V5ID09ICdjJykgfHwgKGtleWNvZGUgPT0gZXNjYXBlKSkgewogICAgICAgIG15THl0ZWJveC5lbmQoKTsKICAgIH0gZWxzZSBpZiAoKGtleSA9PSAncCcpIHx8IChrZXljb2RlID09IDM3KSkgewogICAgICAgIGlmIChteUx5dGVib3guaXNTbGlkZXNob3cpIHsKICAgICAgICAgICAgaWYobXlMeXRlYm94LmFjdGl2ZVNsaWRlICE9IDApIHsKICAgICAgICAgICAgICAgIG15THl0ZWJveC5kaXNhYmxlS2V5Ym9hcmROYXYoKTsKICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVTbGlkZSAtIDEpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChteUx5dGVib3guaXNMeXRlZnJhbWUpIHsKICAgICAgICAgICAgaWYobXlMeXRlYm94LmFjdGl2ZUZyYW1lICE9IDApIHsKICAgICAgICAgICAgICAgIG15THl0ZWJveC5kaXNhYmxlS2V5Ym9hcmROYXYoKTsKICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVGcmFtZSAtIDEpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYobXlMeXRlYm94LmFjdGl2ZUltYWdlICE9IDApIHsKICAgICAgICAgICAgICAgIG15THl0ZWJveC5kaXNhYmxlS2V5Ym9hcmROYXYoKTsKICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVJbWFnZSAtIDEpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSBlbHNlIGlmICgoa2V5ID09ICduJykgfHwgKGtleWNvZGUgPT0gMzkpKSB7CiAgICAgICAgaWYgKG15THl0ZWJveC5pc1NsaWRlc2hvdykgewogICAgICAgICAgICBpZihteUx5dGVib3guYWN0aXZlU2xpZGUgIT0gKG15THl0ZWJveC5zbGlkZUFycmF5Lmxlbmd0aCAtIDEpKSB7CiAgICAgICAgICAgICAgICBteUx5dGVib3guZGlzYWJsZUtleWJvYXJkTmF2KCk7CiAgICAgICAgICAgICAgICBteUx5dGVib3guY2hhbmdlQ29udGVudChteUx5dGVib3guYWN0aXZlU2xpZGUgKyAxKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAobXlMeXRlYm94LmlzTHl0ZWZyYW1lKSB7CiAgICAgICAgICAgIGlmKG15THl0ZWJveC5hY3RpdmVGcmFtZSAhPSAobXlMeXRlYm94LmZyYW1lQXJyYXkubGVuZ3RoIC0gMSkpIHsKICAgICAgICAgICAgICAgIG15THl0ZWJveC5kaXNhYmxlS2V5Ym9hcmROYXYoKTsKICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVGcmFtZSArIDEpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYobXlMeXRlYm94LmFjdGl2ZUltYWdlICE9IChteUx5dGVib3guaW1hZ2VBcnJheS5sZW5ndGggLSAxKSkgewogICAgICAgICAgICAgICAgbXlMeXRlYm94LmRpc2FibGVLZXlib2FyZE5hdigpOwogICAgICAgICAgICAgICAgbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZUltYWdlICsgMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLnByZWxvYWROZWlnaGJvckltYWdlcyA9IGZ1bmN0aW9uKCkgewogICAgaWYgKHRoaXMuaXNTbGlkZXNob3cpIHsKICAgICAgICBpZiAoKHRoaXMuc2xpZGVBcnJheS5sZW5ndGggLSAxKSA+IHRoaXMuYWN0aXZlU2xpZGUpIHsKICAgICAgICAgICAgcHJlbG9hZE5leHRJbWFnZSA9IG5ldyBJbWFnZSgpOwogICAgICAgICAgICBwcmVsb2FkTmV4dEltYWdlLnNyYyA9IHRoaXMuc2xpZGVBcnJheVt0aGlzLmFjdGl2ZVNsaWRlICsgMV1bMF07CiAgICAgICAgfQogICAgICAgIGlmKHRoaXMuYWN0aXZlU2xpZGUgPiAwKSB7CiAgICAgICAgICAgIHByZWxvYWRQcmV2SW1hZ2UgPSBuZXcgSW1hZ2UoKTsKICAgICAgICAgICAgcHJlbG9hZFByZXZJbWFnZS5zcmMgPSB0aGlzLnNsaWRlQXJyYXlbdGhpcy5hY3RpdmVTbGlkZSAtIDFdWzBdOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKCh0aGlzLmltYWdlQXJyYXkubGVuZ3RoIC0gMSkgPiB0aGlzLmFjdGl2ZUltYWdlKSB7CiAgICAgICAgICAgIHByZWxvYWROZXh0SW1hZ2UgPSBuZXcgSW1hZ2UoKTsKICAgICAgICAgICAgcHJlbG9hZE5leHRJbWFnZS5zcmMgPSB0aGlzLmltYWdlQXJyYXlbdGhpcy5hY3RpdmVJbWFnZSArIDFdWzBdOwogICAgICAgIH0KICAgICAgICBpZih0aGlzLmFjdGl2ZUltYWdlID4gMCkgewogICAgICAgICAgICBwcmVsb2FkUHJldkltYWdlID0gbmV3IEltYWdlKCk7CiAgICAgICAgICAgIHByZWxvYWRQcmV2SW1hZ2Uuc3JjID0gdGhpcy5pbWFnZUFycmF5W3RoaXMuYWN0aXZlSW1hZ2UgLSAxXVswXTsKICAgICAgICB9CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLnRvZ2dsZVBsYXlQYXVzZSA9IGZ1bmN0aW9uKGhpZGVJRCwgc2hvd0lEKSB7CiAgICBpZiAodGhpcy5pc1NsaWRlc2hvdyAmJiBoaWRlSUQgPT0gImxiUGF1c2UiKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNsaWRlc2hvd0lEQ291bnQ7IGkrKykgeyB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuc2xpZGVzaG93SURBcnJheVtpXSk7IH0KICAgIH0KICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKGhpZGVJRCkuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKHNob3dJRCkuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgaWYgKGhpZGVJRCA9PSAibGJQbGF5IikgewogICAgICAgIHRoaXMuaXNQYXVzZWQgPSBmYWxzZTsKICAgICAgICBpZiAodGhpcy5hY3RpdmVTbGlkZSA9PSAodGhpcy5zbGlkZUFycmF5Lmxlbmd0aCAtIDEpKSB7CiAgICAgICAgICAgIHRoaXMuZW5kKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5jaGFuZ2VDb250ZW50KHRoaXMuYWN0aXZlU2xpZGUgKyAxKTsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIHRoaXMuaXNQYXVzZWQgPSB0cnVlOwogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbihjYWxsZXIpIHsKICAgIHZhciBjbG9zZUNsaWNrID0gKGNhbGxlciA9PSAnc2xpZGVzaG93JyA/IGZhbHNlIDogdHJ1ZSk7CiAgICBpZiAodGhpcy5pc1NsaWRlc2hvdyAmJiB0aGlzLmlzUGF1c2VkICYmICFjbG9zZUNsaWNrKSB7IHJldHVybjsgfQogICAgdGhpcy5kaXNhYmxlS2V5Ym9hcmROYXYoKTsKICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk1haW4nKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgdGhpcy5mYWRlKCdsYk92ZXJsYXknLCAodGhpcy5kb0FuaW1hdGlvbnMgPyB0aGlzLm1heE9wYWNpdHkgOiAwKSk7CiAgICB0aGlzLnRvZ2dsZVNlbGVjdHMoJ3Zpc2libGUnKTsKICAgIGlmICh0aGlzLmhpZGVGbGFzaCkgeyB0aGlzLnRvZ2dsZUZsYXNoKCd2aXNpYmxlJyk7IH0KICAgIGlmICh0aGlzLmlzU2xpZGVzaG93KSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNsaWRlc2hvd0lEQ291bnQ7IGkrKykgeyB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuc2xpZGVzaG93SURBcnJheVtpXSk7IH0KICAgIH0KICAgIGlmICh0aGlzLmlzTHl0ZWZyYW1lKSB7CiAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpOwogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS5jaGVja0ZyYW1lID0gZnVuY3Rpb24oKSB7CiAgICBpZiAod2luZG93LnBhcmVudC5mcmFtZXNbd2luZG93Lm5hbWVdICYmIChwYXJlbnQuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ZyYW1lc2V0JykubGVuZ3RoIDw9IDApKSB7CiAgICAgICAgdGhpcy5pc0ZyYW1lID0gdHJ1ZTsKICAgICAgICB0aGlzLmx5dGVib3ggPSAid2luZG93LnBhcmVudC4iICsgd2luZG93Lm5hbWUgKyAiLm15THl0ZWJveCI7CiAgICAgICAgdGhpcy5kb2MgPSBwYXJlbnQuZG9jdW1lbnQ7CiAgICB9IGVsc2UgewogICAgICAgIHRoaXMuaXNGcmFtZSA9IGZhbHNlOwogICAgICAgIHRoaXMubHl0ZWJveCA9ICJteUx5dGVib3giOwogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQ7CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLmdldFBpeGVsUmF0ZSA9IGZ1bmN0aW9uKGN1ciwgaW1nKSB7CiAgICB2YXIgZGlmZiA9IChpbWcgPiBjdXIpID8gaW1nIC0gY3VyIDogY3VyIC0gaW1nOwogICAgaWYgKGRpZmYgPj0gMCAmJiBkaWZmIDw9IDEwMCkgeyByZXR1cm4gMTA7IH0KICAgIGlmIChkaWZmID4gMTAwICYmIGRpZmYgPD0gMjAwKSB7IHJldHVybiAxNTsgfQogICAgaWYgKGRpZmYgPiAyMDAgJiYgZGlmZiA8PSAzMDApIHsgcmV0dXJuIDIwOyB9CiAgICBpZiAoZGlmZiA+IDMwMCAmJiBkaWZmIDw9IDQwMCkgeyByZXR1cm4gMjU7IH0KICAgIGlmIChkaWZmID4gNDAwICYmIGRpZmYgPD0gNTAwKSB7IHJldHVybiAzMDsgfQogICAgaWYgKGRpZmYgPiA1MDAgJiYgZGlmZiA8PSA2MDApIHsgcmV0dXJuIDM1OyB9CiAgICBpZiAoZGlmZiA+IDYwMCAmJiBkaWZmIDw9IDcwMCkgeyByZXR1cm4gNDA7IH0KICAgIGlmIChkaWZmID4gNzAwKSB7IHJldHVybiA0NTsgfQp9OwpMeXRlQm94LnByb3RvdHlwZS5hcHBlYXIgPSBmdW5jdGlvbihpZCwgb3BhY2l0eSkgewogICAgdmFyIG9iamVjdCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZTsKICAgIG9iamVjdC5vcGFjaXR5ID0gKG9wYWNpdHkgLyAxMDApOwogICAgb2JqZWN0Lk1vek9wYWNpdHkgPSAob3BhY2l0eSAvIDEwMCk7CiAgICBvYmplY3QuS2h0bWxPcGFjaXR5ID0gKG9wYWNpdHkgLyAxMDApOwogICAgb2JqZWN0LmZpbHRlciA9ICJhbHBoYShvcGFjaXR5PSIgKyAob3BhY2l0eSArIDEwKSArICIpIjsKICAgIGlmIChvcGFjaXR5ID09IDEwMCAmJiAoaWQgPT0gJ2xiSW1hZ2UnIHx8IGlkID09ICdsYklmcmFtZScpKSB7CiAgICAgICAgdHJ5IHsgb2JqZWN0LnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIik7IH0gY2F0Y2goZSkge30gICAvKiBGaXggYWRkZWQgZm9yIElFIEFscGhhIE9wYWNpdHkgRmlsdGVyIGJ1Zy4gKi8KICAgICAgICB0aGlzLnVwZGF0ZURldGFpbHMoKTsKICAgIH0gZWxzZSBpZiAob3BhY2l0eSA+PSB0aGlzLm1heE9wYWNpdHkgJiYgaWQgPT0gJ2xiT3ZlcmxheScpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub3ZlcmxheVRpbWVyQ291bnQ7IGkrKykgeyB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMub3ZlcmxheVRpbWVyQXJyYXlbaV0pOyB9CiAgICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmIChvcGFjaXR5ID49IDEwMCAmJiBpZCA9PSAnbGJEZXRhaWxzQ29udGFpbmVyJykgewogICAgICAgIHRyeSB7IG9iamVjdC5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpOyB9IGNhdGNoKGUpIHt9ICAgLyogRml4IGFkZGVkIGZvciBJRSBBbHBoYSBPcGFjaXR5IEZpbHRlciBidWcuICovCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmltYWdlVGltZXJDb3VudDsgaSsrKSB7IHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5pbWFnZVRpbWVyQXJyYXlbaV0pOyB9CiAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiT3ZlcmxheScpLnN0eWxlLmhlaWdodCA9IHRoaXMuZ2V0UGFnZVNpemUoKVsxXSArICJweCI7CiAgICB9IGVsc2UgewogICAgICAgIGlmIChpZCA9PSAnbGJPdmVybGF5JykgewogICAgICAgICAgICB0aGlzLm92ZXJsYXlUaW1lckFycmF5W3RoaXMub3ZlcmxheVRpbWVyQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3guYXBwZWFyKCciICsgaWQgKyAiJywgIiArIChvcGFjaXR5KzIwKSArICIpIiwgMSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5pbWFnZVRpbWVyQXJyYXlbdGhpcy5pbWFnZVRpbWVyQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3guYXBwZWFyKCciICsgaWQgKyAiJywgIiArIChvcGFjaXR5KzEwKSArICIpIiwgMSk7CiAgICAgICAgfQogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS5mYWRlID0gZnVuY3Rpb24oaWQsIG9wYWNpdHkpIHsKICAgIHZhciBvYmplY3QgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGU7CiAgICBvYmplY3Qub3BhY2l0eSA9IChvcGFjaXR5IC8gMTAwKTsKICAgIG9iamVjdC5Nb3pPcGFjaXR5ID0gKG9wYWNpdHkgLyAxMDApOwogICAgb2JqZWN0LktodG1sT3BhY2l0eSA9IChvcGFjaXR5IC8gMTAwKTsKICAgIG9iamVjdC5maWx0ZXIgPSAiYWxwaGEob3BhY2l0eT0iICsgb3BhY2l0eSArICIpIjsKICAgIGlmIChvcGFjaXR5IDw9IDApIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBvYmplY3QuZGlzcGxheSA9ICdub25lJzsKICAgICAgICB9IGNhdGNoKGVycikgeyB9CiAgICB9IGVsc2UgaWYgKGlkID09ICdsYk92ZXJsYXknKSB7CiAgICAgICAgdGhpcy5vdmVybGF5VGltZXJBcnJheVt0aGlzLm92ZXJsYXlUaW1lckNvdW50KytdID0gc2V0VGltZW91dCgibXlMeXRlYm94LmZhZGUoJyIgKyBpZCArICInLCAiICsgKG9wYWNpdHktMjApICsgIikiLCAxKTsKICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy50aW1lcklEQXJyYXlbdGhpcy50aW1lcklEQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3guZmFkZSgnIiArIGlkICsgIicsICIgKyAob3BhY2l0eS0xMCkgKyAiKSIsIDEpOwogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS5yZXNpemVXID0gZnVuY3Rpb24oaWQsIGN1clcsIG1heFcsIHBpeGVscmF0ZSwgc3BlZWQpIHsKICAgIGlmICghdGhpcy5oRG9uZSkgewogICAgICAgIHRoaXMucmVzaXplV1RpbWVyQXJyYXlbdGhpcy5yZXNpemVXVGltZXJDb3VudCsrXSA9IHNldFRpbWVvdXQoIm15THl0ZWJveC5yZXNpemVXKCciICsgaWQgKyAiJywgIiArIGN1clcgKyAiLCAiICsgbWF4VyArICIsICIgKyBwaXhlbHJhdGUgKyAiKSIsIDEwMCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIG9iamVjdCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKGlkKTsKICAgIHZhciB0aW1lciA9IHNwZWVkID8gc3BlZWQgOiAodGhpcy5yZXNpemVEdXJhdGlvbi8yKTsKICAgIHZhciBuZXdXID0gKHRoaXMuZG9BbmltYXRpb25zID8gY3VyVyA6IG1heFcpOwogICAgb2JqZWN0LnN0eWxlLndpZHRoID0gKG5ld1cpICsgInB4IjsKICAgIGlmIChuZXdXIDwgbWF4VykgewogICAgICAgIG5ld1cgKz0gKG5ld1cgKyBwaXhlbHJhdGUgPj0gbWF4VykgPyAobWF4VyAtIG5ld1cpIDogcGl4ZWxyYXRlOwogICAgfSBlbHNlIGlmIChuZXdXID4gbWF4VykgewogICAgICAgIG5ld1cgLT0gKG5ld1cgLSBwaXhlbHJhdGUgPD0gbWF4VykgPyAobmV3VyAtIG1heFcpIDogcGl4ZWxyYXRlOwogICAgfQogICAgdGhpcy5yZXNpemVXVGltZXJBcnJheVt0aGlzLnJlc2l6ZVdUaW1lckNvdW50KytdID0gc2V0VGltZW91dCgibXlMeXRlYm94LnJlc2l6ZVcoJyIgKyBpZCArICInLCAiICsgbmV3VyArICIsICIgKyBtYXhXICsgIiwgIiArIHBpeGVscmF0ZSArICIsICIgKyAodGltZXIrMC4wMikgKyAiKSIsIHRpbWVyKzAuMDIpOwogICAgaWYgKHBhcnNlSW50KG9iamVjdC5zdHlsZS53aWR0aCkgPT0gbWF4VykgewogICAgICAgIHRoaXMud0RvbmUgPSB0cnVlOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5yZXNpemVXVGltZXJDb3VudDsgaSsrKSB7IHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5yZXNpemVXVGltZXJBcnJheVtpXSk7IH0KICAgIH0KfTsKTHl0ZUJveC5wcm90b3R5cGUucmVzaXplSCA9IGZ1bmN0aW9uKGlkLCBjdXJILCBtYXhILCBwaXhlbHJhdGUsIHNwZWVkKSB7CiAgICB2YXIgdGltZXIgPSBzcGVlZCA/IHNwZWVkIDogKHRoaXMucmVzaXplRHVyYXRpb24vMik7CiAgICB2YXIgb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgdmFyIG5ld0ggPSAodGhpcy5kb0FuaW1hdGlvbnMgPyBjdXJIIDogbWF4SCk7CiAgICBvYmplY3Quc3R5bGUuaGVpZ2h0ID0gKG5ld0gpICsgInB4IjsKICAgIGlmIChuZXdIIDwgbWF4SCkgewogICAgICAgIG5ld0ggKz0gKG5ld0ggKyBwaXhlbHJhdGUgPj0gbWF4SCkgPyAobWF4SCAtIG5ld0gpIDogcGl4ZWxyYXRlOwogICAgfSBlbHNlIGlmIChuZXdIID4gbWF4SCkgewogICAgICAgIG5ld0ggLT0gKG5ld0ggLSBwaXhlbHJhdGUgPD0gbWF4SCkgPyAobmV3SCAtIG1heEgpIDogcGl4ZWxyYXRlOwogICAgfQogICAgdGhpcy5yZXNpemVIVGltZXJBcnJheVt0aGlzLnJlc2l6ZUhUaW1lckNvdW50KytdID0gc2V0VGltZW91dCgibXlMeXRlYm94LnJlc2l6ZUgoJyIgKyBpZCArICInLCAiICsgbmV3SCArICIsICIgKyBtYXhIICsgIiwgIiArIHBpeGVscmF0ZSArICIsICIgKyAodGltZXIrLjAyKSArICIpIiwgdGltZXIrLjAyKTsKICAgIGlmIChwYXJzZUludChvYmplY3Quc3R5bGUuaGVpZ2h0KSA9PSBtYXhIKSB7CiAgICAgICAgdGhpcy5oRG9uZSA9IHRydWU7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnJlc2l6ZUhUaW1lckNvdW50OyBpKyspIHsgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZUhUaW1lckFycmF5W2ldKTsgfQogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS5nZXRQYWdlU2Nyb2xsID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoc2VsZi5wYWdlWU9mZnNldCkgewogICAgICAgIHJldHVybiB0aGlzLmlzRnJhbWUgPyBwYXJlbnQucGFnZVlPZmZzZXQgOiBzZWxmLnBhZ2VZT2Zmc2V0OwogICAgfSBlbHNlIGlmICh0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQgJiYgdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCl7CiAgICAgICAgcmV0dXJuIHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7CiAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmJvZHkpIHsKICAgICAgICByZXR1cm4gdGhpcy5kb2MuYm9keS5zY3JvbGxUb3A7CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLmdldFBhZ2VTaXplID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgeFNjcm9sbCwgeVNjcm9sbCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodDsKICAgIGlmICh3aW5kb3cuaW5uZXJIZWlnaHQgJiYgd2luZG93LnNjcm9sbE1heFkpIHsKICAgICAgICB4U2Nyb2xsID0gdGhpcy5kb2Muc2Nyb2xsV2lkdGg7CiAgICAgICAgeVNjcm9sbCA9ICh0aGlzLmlzRnJhbWUgPyBwYXJlbnQuaW5uZXJIZWlnaHQgOiBzZWxmLmlubmVySGVpZ2h0KSArICh0aGlzLmlzRnJhbWUgPyBwYXJlbnQuc2Nyb2xsTWF4WSA6IHNlbGYuc2Nyb2xsTWF4WSk7CiAgICB9IGVsc2UgaWYgKHRoaXMuZG9jLmJvZHkuc2Nyb2xsSGVpZ2h0ID4gdGhpcy5kb2MuYm9keS5vZmZzZXRIZWlnaHQpewogICAgICAgIHhTY3JvbGwgPSB0aGlzLmRvYy5ib2R5LnNjcm9sbFdpZHRoOwogICAgICAgIHlTY3JvbGwgPSB0aGlzLmRvYy5ib2R5LnNjcm9sbEhlaWdodDsKICAgIH0gZWxzZSB7CiAgICAgICAgeFNjcm9sbCA9IHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIikuaXRlbSgwKS5vZmZzZXRXaWR0aDsKICAgICAgICB5U2Nyb2xsID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKS5pdGVtKDApLm9mZnNldEhlaWdodDsKICAgICAgICB4U2Nyb2xsID0gKHhTY3JvbGwgPCB0aGlzLmRvYy5ib2R5Lm9mZnNldFdpZHRoKSA/IHRoaXMuZG9jLmJvZHkub2Zmc2V0V2lkdGggOiB4U2Nyb2xsOwogICAgICAgIHlTY3JvbGwgPSAoeVNjcm9sbCA8IHRoaXMuZG9jLmJvZHkub2Zmc2V0SGVpZ2h0KSA/IHRoaXMuZG9jLmJvZHkub2Zmc2V0SGVpZ2h0IDogeVNjcm9sbDsKICAgIH0KICAgIGlmIChzZWxmLmlubmVySGVpZ2h0KSB7CiAgICAgICAgd2luZG93V2lkdGggPSAodGhpcy5pc0ZyYW1lKSA/IHBhcmVudC5pbm5lcldpZHRoIDogc2VsZi5pbm5lcldpZHRoOwogICAgICAgIHdpbmRvd0hlaWdodCA9ICh0aGlzLmlzRnJhbWUpID8gcGFyZW50LmlubmVySGVpZ2h0IDogc2VsZi5pbm5lckhlaWdodDsKICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpIHsKICAgICAgICB3aW5kb3dXaWR0aCA9IHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDsKICAgICAgICB3aW5kb3dIZWlnaHQgPSB0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OwogICAgfSBlbHNlIGlmIChkb2N1bWVudC5ib2R5KSB7CiAgICAgICAgd2luZG93V2lkdGggPSB0aGlzLmRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpLml0ZW0oMCkuY2xpZW50V2lkdGg7CiAgICAgICAgd2luZG93SGVpZ2h0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKS5pdGVtKDApLmNsaWVudEhlaWdodDsKICAgICAgICB3aW5kb3dXaWR0aCA9ICh3aW5kb3dXaWR0aCA9PSAwKSA/IHRoaXMuZG9jLmJvZHkuY2xpZW50V2lkdGggOiB3aW5kb3dXaWR0aDsKICAgICAgICB3aW5kb3dIZWlnaHQgPSAod2luZG93SGVpZ2h0ID09IDApID8gdGhpcy5kb2MuYm9keS5jbGllbnRIZWlnaHQgOiB3aW5kb3dIZWlnaHQ7CiAgICB9CiAgICB2YXIgcGFnZUhlaWdodCA9ICh5U2Nyb2xsIDwgd2luZG93SGVpZ2h0KSA/IHdpbmRvd0hlaWdodCA6IHlTY3JvbGw7CiAgICB2YXIgcGFnZVdpZHRoID0gKHhTY3JvbGwgPCB3aW5kb3dXaWR0aCkgPyB3aW5kb3dXaWR0aCA6IHhTY3JvbGw7CiAgICByZXR1cm4gbmV3IEFycmF5KHBhZ2VXaWR0aCwgcGFnZUhlaWdodCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCk7Cn07Ckx5dGVCb3gucHJvdG90eXBlLnRvZ2dsZUZsYXNoID0gZnVuY3Rpb24oc3RhdGUpIHsKICAgIHZhciBvYmplY3RzID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3RzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgb2JqZWN0c1tpXS5zdHlsZS52aXNpYmlsaXR5ID0gKHN0YXRlID09ICJoaWRlIikgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJzsKICAgIH0KICAgIHZhciBlbWJlZHMgPSB0aGlzLmRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZW1iZWQiKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW1iZWRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgZW1iZWRzW2ldLnN0eWxlLnZpc2liaWxpdHkgPSAoc3RhdGUgPT0gImhpZGUiKSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnOwogICAgfQogICAgaWYgKHRoaXMuaXNGcmFtZSkgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyZW50LmZyYW1lcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgb2JqZWN0cyA9IHBhcmVudC5mcmFtZXNbaV0ud2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgb2JqZWN0cy5sZW5ndGg7IGorKykgewogICAgICAgICAgICAgICAgICAgIG9iamVjdHNbal0uc3R5bGUudmlzaWJpbGl0eSA9IChzdGF0ZSA9PSAiaGlkZSIpID8gJ2hpZGRlbicgOiAndmlzaWJsZSc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBlbWJlZHMgPSBwYXJlbnQuZnJhbWVzW2ldLndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZW1iZWQiKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZW1iZWRzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgZW1iZWRzW2pdLnN0eWxlLnZpc2liaWxpdHkgPSAoc3RhdGUgPT0gImhpZGUiKSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoKGUpIHsgfQogICAgICAgIH0KICAgIH0KfTsKTHl0ZUJveC5wcm90b3R5cGUudG9nZ2xlU2VsZWN0cyA9IGZ1bmN0aW9uKHN0YXRlKSB7CiAgICB2YXIgc2VsZWN0cyA9IHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzZWxlY3QiKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKyApIHsKICAgICAgICBzZWxlY3RzW2ldLnN0eWxlLnZpc2liaWxpdHkgPSAoc3RhdGUgPT0gImhpZGUiKSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnOwogICAgfQogICAgaWYgKHRoaXMuaXNGcmFtZSkgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyZW50LmZyYW1lcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgc2VsZWN0cyA9IHBhcmVudC5mcmFtZXNbaV0ud2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzZWxlY3QiKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc2VsZWN0cy5sZW5ndGg7IGorKykgewogICAgICAgICAgICAgICAgICAgIHNlbGVjdHNbal0uc3R5bGUudmlzaWJpbGl0eSA9IChzdGF0ZSA9PSAiaGlkZSIpID8gJ2hpZGRlbicgOiAndmlzaWJsZSc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgfQogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uKG51bWJlck1pbGxpcykgewogICAgdmFyIG5vdyA9IG5ldyBEYXRlKCk7CiAgICB2YXIgZXhpdFRpbWUgPSBub3cuZ2V0VGltZSgpICsgbnVtYmVyTWlsbGlzOwogICAgd2hpbGUgKHRydWUpIHsKICAgICAgICBub3cgPSBuZXcgRGF0ZSgpOwogICAgICAgIGlmIChub3cuZ2V0VGltZSgpID4gZXhpdFRpbWUpIHsgcmV0dXJuOyB9CiAgICB9Cn07CmlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGluaXRMeXRlYm94LGZhbHNlKTsKfSBlbHNlIGlmICh3aW5kb3cuYXR0YWNoRXZlbnQpIHsKICAgIHdpbmRvdy5hdHRhY2hFdmVudCgib25sb2FkIixpbml0THl0ZWJveCk7Cn0gZWxzZSB7CiAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7aW5pdEx5dGVib3goKTt9Cn0KZnVuY3Rpb24gaW5pdEx5dGVib3goKSB7IG15THl0ZWJveCA9IG5ldyBMeXRlQm94KCk7IH0KRU9UOwoKICAgICAgICByZXR1cm4gdXRmOF9lbmNvZGUoJGpzY29udGVudCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBEb0FjdGlvbigpCiAgICAgKgogICAgICogQHVzZXMgUHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoKQogICAgICogQHVzZXMgJHBhcmFtcwogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBEb0FjdGlvbigpCiAgICB7CiAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5wYXJhbXNbJ2NvbmZpZyddKSkgewogICAgICAgICAgICBleGl0OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXMgPSBleHBsb2RlKCcsJywgYmFzZTY0X2RlY29kZSgkdGhpcy0+cGFyYW1zWydjb25maWcnXSkpOwoKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogYWRqdXN0IGJvb2xlYW4gdmFsdWVzCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAvKiBMeXRlYm94IEdsb2JhbCBDb25maWd1cmF0aW9uICovCiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMV0gPSAhJHNjcmlwdHBhcmFtc1sxXSA/ICdmYWxzZScgOiAndHJ1ZSc7CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMl0gPSAhJHNjcmlwdHBhcmFtc1syXSA/ICdmYWxzZScgOiAndHJ1ZSc7CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbNl0gPSAhJHNjcmlwdHBhcmFtc1s2XSA/ICdmYWxzZScgOiAndHJ1ZSc7CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbN10gPSAhJHNjcmlwdHBhcmFtc1s3XSA/ICdmYWxzZScgOiAndHJ1ZSc7CgogICAgICAgICAgICAvKiBMeXRlYm94IFNsaWRlc2hvdyBPcHRpb25zICovCiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTBdID0gISRzY3JpcHRwYXJhbXNbMTBdID8gJ2ZhbHNlJyA6ICd0cnVlJzsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxMV0gPSAhJHNjcmlwdHBhcmFtc1sxMV0gPyAnZmFsc2UnIDogJ3RydWUnOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzEyXSA9ICEkc2NyaXB0cGFyYW1zWzEyXSA/ICdmYWxzZScgOiAndHJ1ZSc7CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTNdID0gISRzY3JpcHRwYXJhbXNbMTNdID8gJ2ZhbHNlJyA6ICd0cnVlJzsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxNF0gPSAhJHNjcmlwdHBhcmFtc1sxNF0gPyAnZmFsc2UnIDogJ3RydWUnOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzE1XSA9ICEkc2NyaXB0cGFyYW1zWzE1XSA/ICdmYWxzZScgOiAndHJ1ZSc7CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTZdID0gISRzY3JpcHRwYXJhbXNbMTZdID8gJ2ZhbHNlJyA6ICd0cnVlJzsKICAgICAgICB9CgogICAgICAgIC8qCiAgICAgICAgICogb3V0cHV0IHRoZSBzdHlsZXNoZWV0CiAgICAgICAgICovCiAgICAgICAgd2hpbGUgKEBvYl9lbmRfY2xlYW4oKSk7CgogICAgICAgICRnbWRhdGUgPSBnbWRhdGUoJ0QsIGQgTSBZIEg6aTpzJykuJyBHTVQnOwogICAgICAgIGhlYWRlcigiRXhwaXJlczogeyRnbWRhdGV9Iik7CiAgICAgICAgaGVhZGVyKCJEYXRlOiB7JGdtZGF0ZX0iKTsKICAgICAgICBoZWFkZXIoIkxhc3QtTW9kaWZpZWQ6IHskZ21kYXRlfSIpOwogICAgICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZScpOwogICAgICAgIGhlYWRlcignUHJhZ21hOiBuby1jYWNoZScpOwogICAgICAgIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2phdmFzY3JpcHQ7IGNoYXJzZXQ9dXRmLTgnKTsKICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9Imx5dGVib3guanMiJyk7CgogICAgICAgIHZwcmludGYoJHRoaXMtPkdldEphdmFzY3JpcHQoKSwgJHNjcmlwdHBhcmFtcyk7CiAgICAgICAgZXhpdDsKICAgIH0KfQoKJGFjdGlvbiA9IG5ldyBMeXRlYm94X0FjdGlvbkdldEpTKCRuYW1lLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiRhY3Rpb24tPkRvQWN0aW9uKCk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/blank.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==]]></data>
	</file>
	<file>
	  <filename>/images/close_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/close_gold.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/close_green.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABUpJREFUWIXlmG1sU1UYx39nYniZsTdoIq+uJisKiWuVDBjbsruJidGYdchYigktWyAKIR0JL34xu5MvCF8aMTGEjHWJhN5qpPODGkPoFhkjAVwJojHo1kUiLwHXiSjbgMcPt7RcaUGMhGT8k/vhnv8553+e/33Oc3qqRER4iFHwoBfwf6LnZM+98zJO4FruElWqJHIgkpOPHIiIKlXiWu6ytY8LA4obioUFCBWIWqDEjJs2PnIwImqBEioRSpHihuIMd18MiCfjEk/GZeivofsxvQ0un8sKvg6hHmEJohYqicStTIjEI6IWKuGlNF+LsBBx+axMUCJWEewa6CLUG6Lzh04A3NPcGDUG3rleAPQ2ne5kN7I1f80M94Vp/qKZ4avDmTb/C35Cr4bQJmkApK6mCHwWsOmEXg2hP6NjHDRojbfmnDuX7uHvD1PRWIFMEZhBtqKdA/W7orG+kT2f7EEeF5iW5m4AZ0BdVfS09zABIHYqRl1HHY5JDoKlQbTJGrHvYqSupLJqY8BI3tiJnYqxat8q3NPdGF4DbZJG6FCIjiMdpC6niPljAHjDXrr7uwlWBDPjtImWOVy3NPzz/TinOvOLpbF43mLMHSYNmxuQIYHpaWIWyFmh7dM2eAJ46hZz0sGbO0zK5pZZRdCxxSGOLQ7pO9OXN9WqdlYJwfw7pqi1SBxbHDL0pz3tb44buDQgIiIEkaqdVRn+1v4tX7YIQSR+On4Pm0AkeigqqkwJryG8jbAux/MWwiuIKlMSPRTNjC2InYgxPDxMYH4Az0xPfrtH82dA8lKSwbODeOd60SZrNi4wPwAjEEtYGVBUWET3qW5iJ6x3W/9raY0bd/34NtSX12PuMFG/KTgHTMzx/AJq2Pry9eX1mbEFiWQCRsFb4r2zyjUsE3IgeTEJo+DUnLdxzqlOGIXUZWs7hVeGcTzioO6DOvTtOl0/dmU7X7c0qt+vRjUpVJPC6DT+jQfUl9fTtKIJLuQIfiJwEZpWNNmCB5hwU/Suro+R1wBupLnrd+f0Z3WS25M0f9xMxzcdVJ+spn1NO4HKQMYAf6Uf55NOq/8c/S4Ls2AeNmnb1wYzsQL+J2ZD2742lry4hIbFDZnmAudUJ4xAoj9xZ4U7FEHP0x5rjp9vnyPRn4AR8MzObi9tikZ4TZi+rX0wAkbEsIh0EQyUBzCWGhhLDfS5+p3XBZi9Jr7NPmSWQAm5M6AEZIbg2+zD7DWzBnhLvTAGoc6QreqnrqRIDNwS0LW0CTmgFWq4Z7rpPNxpG5O6kiLUGcLxqAN9np5pyxjn9FA1p4rBXwezBowB93A7MY+Y+Db5kOcEFgGFWBX/JPA50Jd+fwxYDDJb8G3yYR6xTJigFWq0LGuhdW8rnnUeAi8HSP2RInwgjFaokQwnLaV0Bhh7DdsC9Od19BKd0KoQ1e9Uo2/WCSwJABDrjTF4YZD2De1ohVaxa97VTPJ8Er1EJ3k+Sfe33dQuqs0aMALhr8N0neiy6Rhv2nUBen7qwbfRh8wQ8JA96o6BGlSsblzN7vBupECgMs2VgYwKvo0+ZoVnZe8C7V+1i3u1W6hBqEFq362VvtPZY7FqQ1WGu/VpCbdk+sQTcdsc7tVu2X9ov+3ICn4YlCJfkVCDOF53iH+bX4YuW0dhS7glpwY1+Y9f11qXUIGwDeEjhJWIqlASPWodddGjUVGVSmhC2IXwHsIixLXW+iU4Pu4Ca4stE95IB38sauOjx6KiKpSwDKEcKV57n+8CDwKu9S4r+OPRnHz0uGWCa/04vA3eRE9/zz3zmcvQw4px9Y/Qf8HfjJhm7C1L3swAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/close_grey.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/close_red.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABUpJREFUWIXlmG1oU1cYx3+n7VadSq74stWXJdNep4WtURhDneSG9YswZ8oo4bIPjVQF59Tu42DDFIV9XHwpMqSYjg17I4w4Bm4oa7tRnczRrpvYmqjJpLYV0dS5RHH67ENvY1rTqOhe6P5wPuT5n3Of8/zvef6cGyUiwv8YRf/2Bp4kEh0dj87LBMEOXZeNSklXS0tevqulRTYqJTt0fVR8QpyAnbpOXyzGVBH2mSbdkcgovtuy2GeaTBPht1iMnbqe5ZTIk/eAdFsbAKVuN8Wa9qQfPwofLVpEMhZjCVAK9AFXlOKdgwd5ye/nF8ui0TSZKcJc4CZwFnhe13n/7Nl7HnCjrY3zPh+dStGpFD1uN0PRaDZRzDDoVKrgZq6Gw3RrGr1eL71eL93Tp5MMBLiTSmXn3Eml7stzwxasPxjMxseOfLh4/DjJeBwHMNUWYAEwQ4RG0+SL9etpNE1mibAQmARMA6YAyXiciydOUAJwNRqlp7qaYoeD2du2UaJpXI1GuZWz8VtAplDx0Sg969YxpbISZzBIsabRHwrR19xMJpVisS3mGZ+P6+3tlG3bll2n7FPyp51jdm0tpS5XQbEB5q9YwRbLYq/fT58IC+y4DhSLcKypiTmAEyi2uQvAH0qx1bKYv3z5sAm2OhzS6nDI9c7OcU3mlMcjRwt45vdOp7Q6HHL72rW869IXLoiIyFGQUx5Pls+df277djkKcrW1ddw8+XA6EpFNSkkQ5HOQljzjM5APQTYpJacjkezaooFolN+HhpgVCDDN7R5X7UInIJ1IcC2ZRPP5KBnT87MDATJA/0g7OZ1cam9nwP6dO/+2nePuA9/9aFTU1LDFshhUiiTwVJ4RY9gbtlgWFTU12bVFV7q6SAOzfL6CSW4C6XG4G4kEaaAkz7EtdblIA2m7nV4Oh7ntcNBeXc23hsFlu/9hWIA0cMzrxVIKSyl+DQYfrACwpKaG1XV19AFP5xkDwOq6OpbkFA9QMpL0QarfYnwB7trc7YfgZhsGbyQSnKyvJ97cTNLr5bUDB9ADgawA5bW1TLXFnGkYD9jZMHosiyNNTTgZLngsXMCRpib0qioW+/3ZeNFkl4sMMNjVVTBBoRaY7naTAQbyPGOwq4sMoOW019OaxqpwmDWdnWSAH+y3PGKCCwIBlgaDLA0Gee4hBOixLPaaJi4RlpG/BZYB80XYY5r0WNY9AV7w+UgDJ0Oh0a6fSnE5p6BCJ6BU05hSWcnpw4dHr0mlOBkKccfhYI5dSG6OmW43MzweBpNJ4F4LPIoH9FoWe0yTChFWAJPt+E9ABDgJCPAMsApw2SL02iKUlGoar2zfzncNDXzidlMZCHAzleLncJhJmsbWRCIrQAZoH9OTLsPAaRgYoRCfer2EDYPKQGB4c9EoQ8kkbx44QKltdt/U15NKJHAaBkOJBGfb23lx7dqsABmgMxzmfI43AHjyeEF/Rwe7TZO5Iizl3ofNCSCpFNUbNvDl/v0UieCxuRXATRF2myYfzJs3fA/wBINMdbnoCIX4uqEBgIq1a6nKSTpigiP8CF4HnLYIb7e28lV9PW27dgFQVlnJW6EQFTkGW6Rp9CcSnGloYJLDQUVtLWtCoawAaeBEc/N9xeYToGzlShaXl9Mbi3Ed0IDjdvH1lkV5TQ0LqqrY5ffzowivAteAS0BFeTllK1f+PVfhfxp7dZ2eeJxngUGleM+yWJjj9ucOHeJjv58yES4BS8rLeTcWGyYf6cbxH0ajrstmpSSec8nJRTwSkc1KSeOYr8EJI4CIyEBHxyPzE6IFHgcT4v+Ax8FfyEaXwPSt6YIAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/next_blue.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////H1+/L1+/H0+vD0+vDz+eXr+OPp9uHo9dfh9NPd8MvY8crX8MnW78jV7sfU7cbT7MXS68TR6sPQ6sHP6bfI6LDE6q/D6a3B56q+5Ka64Jax45Sv4ZKt35Cr3Y6p24yn2oql2Iij1oah1ISf0nmb2nSW1W+T2G+R0WqMzGKK1WiJymSIzmGGzF+H01mBzVZ9ylN6x055zFB3xE10wUpxv0ZuvDpsyjdoxzZkvi5jxzZiti9hwCpfxCZbwCdZuSJXvCRWtidWsR5TuBpPtRZLsRJHrQ5Dqgk/pv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEkALAAAAAA/ACAAAAf/gElJAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihOhaFGzoLAK46s7MAJzcGhAY3JwAqtMAboD04CYQcPQwAyCUczhwAAjguhC44AgAXzi49zRzKnz4+MgEAHT4N5uiIGD4Y7RiH5+miQPYmAB5ADvn7iS88eLxApI+fqCEwWAzJ8GHIAwANh0j8YOiAxAOIGj4URSTGgBw/WhCBAAAEERQgQJAsVIEIkQqITK4MVWQGAAVFckYAEKLIzkMEgsyYEYTAoZ4/QxmhQUiDESMSAIiAiiiFEQQIjKQ4NDWqqCM1Cq04MgHAiCMrRqgdAWDCEbZmOskaOltWFBIbhQrsoACABJK/gAsI2WFoh5AChfzyTcW4sWMAgCP/fUy5suXLmDNr3kzpEWdGgj4zCgQAOw==]]></data>
	</file>
	<file>
	  <filename>/images/next_gold.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////n57/j47/f37/b27/T03/Hx3+/v3+7uz+joz+rqv+jov+fnv+Xlv+Tkv+Liv+Dgv9/fv93dv9/fn9zcv93dn9vbr9ran9bWn9TUf9HRf8/Pn87Of8vLf8jIf8XFf8bGX8LCf8TET7+/f76+X7y8f7+/P7m5f7q6P7e3X7S0T6+vX7CwT7GxP7CwL62tP6urX6+vD6ioP6mpD6qqAKOjP5+fP6SkAJqaP56eAJ2dD5qaH5aWP5eXAJOTD5KSAI2NL4yMD4yMAISEH4WFAH9/AHl5AHNzAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEgALAAAAAA/ACAAAAf/gEhIAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihNBOFGTQKAK40s7MAIjEFhAUxIgAmtMAZoDczCIQaNwsAyCAazhoAATMohCgzAQAVzig3zRrKnzk5LtgcOQwA5uiHFzkX7ReH6qM99SQAHT0N+PqJLTo6WiDKt0/UjxcqfmDw8MMBAIY/InowZCCiAUQMHYoSIkPADh8shDwA8EFIig8fRhayIESIBUQlVYYiUgNAAiI4IQAIQUTnoQFBatQIMuAQT5+hitggtKFIkQgARjxFtKLIgQNFVhySClWUERyFYBiRAKCEERgl0pYAIMHI2rJjOQ2ZJSvqCI9CBIBQAHDiiN+/BIYAMQRkCIFCffemWsy4MYC/kP06nky5suXLmDNrpvRoMyNBnhkFAgA7]]></data>
	</file>
	<file>
	  <filename>/images/next_green.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP///+/27+/17+/07+/z79/v39/r39/p38/lz8/fz7/ev7/bv7/cv7/Zv7/Yv7/Wv7/Uv7/Tv7/Rv7/Pv6/Mr5/On5/Ln5/Jn5/En5+8n3+9f3+6f3+3f3+zf3+wf3+tf3+pf3+mf3+jf3+gf1+oX1+gX0+lT1+YX1+QXz+cP0+TT1+MXz+XP0+OTz+NPz+JPz+EPy+KLz9+Pz96Pz90Pw+EDz9wPw99DwB8AB9vHw9xDy9kLwB1AABvAA9lDwBoAB9YHw9eDwBiAABbAABUAABOAABHAABBAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEgALAAAAAA/ACAAAAf/gEhIAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihOBWFGjgKAK44s7MAJjUFhAU1JgAptMAaoDw3CIQbPAwAyCQbzhsAATcshCw3AQAWziw8zRvKnz09MdgcPQsA5uiHFz0X7ReH6qM/9SUAHT8N+PqJLjo6XCDKt0+UkBcqhGDwIMQBAIZCInowZCCiAUQMHYoaAkNADh8thjwA8GHIiQ8fRhaiMGQIBUQlVYYiIgNAAiI4IQAAQUTnoQFBZMgIMuAQT5+hiswglKFIkQgAQjxFhKLIgQNFUBySClWUERqFVhiRAECEkRUi0ooAIMHI2rJjOQ2ZJSvqiI1CBHZMADDiiN+/BIDsMLQDCIFCffemWsy4MYC/kP06nky5suXLmDNrpvRoMyNBnhkFAgA7]]></data>
	</file>
	<file>
	  <filename>/images/next_grey.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////f39/b29vX19fT09PPz8+/v7+zs7Onp6ebm5t/f397e3tzc3Nra2tjY2NfX19XV1dPT09HR0dDQ0M3NzcrKysXFxcDAwL29vby8vLm5ubW1tbKysq+vr6ysrKurq6ioqKSkpKOjo6GhoaCgoJubm5WVlZKSkpGRkZCQkI2NjYuLi4iIiIeHh4KCgoGBgXx8fHp6enZ2dnV1dXNzc3JycnFxcWxsbGhoaGZmZmVlZWFhYV9fX1paWldXV1FRUUlJSUNDQ////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEIALAAAAAA/ACAAAAf/gEJCAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihLxOFFy8KAK4vs7MAICwGhAYsIAAktMAXoDEuCYQZMQsAyB4ZzhkAAS4lhCUuAQAUziUxzRnKnzQ0KgIAGjQM5uiIFTQV7RWH5+miN/YiABs3Dfn7iSkzZqRApI+fKB0rTOiwwEGHAwANdUjkYOiAxAOIGj4UxaPFgBo4UPB4AKADjxIdOpAsRIEHDwqITK4M5eMFAAU+ckIA8MHHzkMEdszaQeBQz5+hfsAghOHHjwi2niI68QMBgh8nDoGQKgqIjEIqgEgAEAKIihBoQwCQAEQtWbGGOMqOFRXERqECOViNCMK3b4EeOQzl6FGg0F5WqRIrXgwAiOPHjxlLnky5suXLmDNTeqSZkaDOjAIBADs=]]></data>
	</file>
	<file>
	  <filename>/images/next_red.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////nv7/vv7/bv7/jv7/nf3/Tf3/Df3/TPz+vPz/C/v/K/v+6/v+u/v+a/v+m/v+S/v+K/v9+/v92/v+Cvr+yfn+mfn+Wfn96fn9Ofn+Z/f+F/f9x/f9h/f9N/f85/f8l/f8R/f8B/f7t/f9pfX85fX8JfX7ZfX7BfX9xPT8JPT7tPT9k/P9M/P8Q/P70/P7U/P64/P6c/P6A/P5k/P8cvL5AvL6kfH9APD8cPD4gfH7YPD6MPD5oPD80AAMQAALoAALEAAKcAAJ0AAJQAAIoAAIEAAHcAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEgALAAAAAA/ACAAAAf/gEhIAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihPhWFGj4LAK4+s7MAKTgFhAU4KQAstMAaoD85CIQbPwoAyCQbzhsAAjkthC05AgAWzi0/zRvKn0BANdgcQAwA5uiHF0AX7ReH6qNB9SUAHUEN+PqJLjs7XCDKt0+UkBcqhGDwIOQBAIZCInowZCCiAUQMHYoaAiPADR4rhjgA8GGIiQ8fRhaiMGQIBUQlVYYiEgNAAiI4IQAAQUTnIQI9YsToQeAQT5+hisgglKFIkQgAQjxFdKLIgQNFThySClWUkRmFUBiRAECEERQi0ooAIMHI2rJjOQ2ZJSvqCI1CA2xMADDiiN+/A3TYMGRDx4BCffemWsy4MYC/kP06nky5suXLmDNrpvRoMyNBnhkFAgA7]]></data>
	</file>
	<file>
	  <filename>/images/pause_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABKJJREFUWIXlmH9MVXUUwD/3vnsfPng8UAETRSAzxg9/VC8jsVr+3NQlE1On1dailpS2ajpdy7XpWkZlo036pc5Ny9SYilloxTAkJqbmy/zJZASpiD9AcRTnPvrjwYXL4z3ItTnybPePe8655573ud9zzvf7lNbW1lbuYFFvdwK3W7TbncCtipq+wU/nLX+2R1tX6bMAAPpFpaEoCqqq0HTxmMUWEpWKato8AWP0aQC6bkNVFRRF8bPZda0NTvAY2ujscvPG6bDxYJKLpyYPxp3k8nPOWFTB+qUpJMWFWfTP5f7OoVON/Pp5ukU/Orscd5KLdUtSALh+U3hzfSXFR68CkBQXytJ5CbiTXOTvquHjXTXdJtk1bru0A1C7AaBpakA4Fj8Rg9iBIWQ+EkNt/V/sLK1j36F69r7nZkhUiOm4o7SOa9f/ZmPRn7ydPcISxDC8iBh+wUUMDMNr3i/KO0nFyQaenhILwA+/XMbpsAHg9fpizBwfY3lvMLHrNnOZdxW93dYzAOGuAU5eyhwGgPvecJZ/eoqC/edZNCvBdPy65Dwiwt6DdSybn4grtKN6DMNARLoBIBhGB5iff7vM2ORIls1PBCAnM86M4wMgZGZEMzY5spcANFQlQAloNrM/BBO1a5LhDhsigtfb8eVqLjVT5qnniYxorjY2s6/ikiVIbwEMitQo89Sbz3eG2A7g32xL7JoNXbdh121+Nl3z6e1a8DanighXGpspP36FbcW1vP/VGUSEye5o02nd7ipEhFeyEhnUX+ezwnOWIIYEAdCpNN5dmIzDDtmrDzN3RQXlx6/4AZiz4iDxs4uIn13Emq1ngwOwa9h1Dbvd/0fqmua7uoHTWTQRA8/Za2S94WuG4aEauTmppCSEm05f7qtm4gNRDI1xkPXYYD7Ycobj5xpJTfQ1St8KCNQDOvTpqQMoy3+UFetOsO3HGkqPXWLN4lHMmTAUr7cVEYMnJwwlLsbh80/pHzR5XQ+8zO323pWAJiKkJrpY9UIaAONGRlkctnz/B1cbm4kdGEKZp54hUf0QET7ZUUneq/d1AtBzCQC4wnQ+XDyK7BnxTFxcwupNJ9oAtK2Ax2P9cggIQAs2BdptwWNoIoKznxrwpV8UnUNEyC84TX7BaVNfWFrDyufTiHDqhDlURARPZQMjh0cA4KlsQEQIc3QM4oYbLUQ4dQDS7o7goeRIDnjqgVvsAUHGoN42BnsxBayjqrNUX2ii5MhFFs4awTs5Y0z95qIqcnIr2H2glgVTE5g3aRiFP9Uw7bVicrJG0HCjhc1FVYgYvJh5j/ncsrVHqb7QxPgx0VRfuEnJkYtMHxfbCYDBpu+q2H+0zpLH8mdSAwDQgmyEbKiKitJTCbSIIIZ//QJ8tP0ULSLMnxJv0S+YmsDreYfI23qCBVMTmJExhE1vPcyqDR5WrvdtSUcOj2TtEjfjR3c0U2eojcraRooPn8cVpjN3Uhy5L99vAmgRYeMe/8YXGEDgnaCu+eD01AOUvnocVtM3MH3mbBPAroKtlsPQlGmZKG0l8G1hwf/zMPTNzu0BbXv37OhVjD67Av4rueP/ELnjAfwDgHL1POVd5jsAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/pause_gold.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABAxJREFUWIXlmM1rE10Uh5+USVOstIOYGiKYmEXRFvuRgKAuOlUqBb/6Cm7cdFx1af6E9D+IdKUgTndC1aZ+oOjCBKUlIrFvIC0GTNNqS2gXbdWgM1OtiyGTTtOk8UWQvv3BLOaec88997nn3syNbX19fZ1drJq/ncDflvC3E/ivGhiwlbTdvLm+rW2zdiwAAKcTbDaoqYFcrnrbRu1oAHa7MUlb6YIjCEUAlSSMjBR72+2NOJ0Szc1BnE6pxDkSEZGkKKLYYWmPRiWWlmJcuWIts5ERG05nF5IUBUDXV3jzRmZhYQwAUWynoyOM0ymRSoWYmhrcMsnNcTdPshKArWwWP02D+noPPp9MPp8lkxkmmx2jr2+G+nqv6ZjJKOTzq0xPhzlxQrEE0XXQtNLgmmbYCopG+1hcjHHkyHUAPn6MIAgiAD9+GP4+X79l3IrJV1jl3wKwb5+XtrYQAPv3S7x+fY10WqGzM2Q6vn+voGmQyUQIBFaorRVN29paeQBra8X3T59iuFxdBAJhAI4dC5lxCgAOH5ZxuaRq5v9HtkDN5lWy20U0zUiooC9fsszNxfB6+/n6dZWZmYglSLUV4HB4mJuLkc0a/TdCLAD4+bNywhslCAYEu728TdjmlKvRNMjnV5ifjzI9rTAxEULTwOPpM53evQujaRAIhHA4PCQSYUuQaiugq0sBGnn06B8ePJCYn4+atgKA+/e7GRqyMTRkIx4PVUy+MMFyAApPJQmaBgsL/3L3bjcADkcjp0/fweksHnTJpMKhQ5doaPDS3CwzMTHI4uIkTU2GT7UVcPCghCxnefkySCo1zMxMN729d2htlU0Ara39NDR4AXC7pW0BlCvzSjYLAFWFpqZ2enqMVfV4rIMmkwqfP6+yZ4+X2dkoe/d6UVWIx8NcuKCYAFS1NLiqWgEAOBwivb0KnZ1Bbt/uJBoNmQBUFY4elUtyKJu8YEyw3BlQzmbx03UQBLHsoImEgq7D+PgNxsdvmO2pVISenhXq6kQEQUTXIZebxOUyqiKXm6QQu6Dv3w1/gAMHOnC7u5idjQHGFtB1+J2byXYAqvoV2GqVClpezpJOxzh58jrnzxf3fSKhcO/eNaamIvj9Mm1tMsnkGLduSZw6FeTbtxUSCQVVhePHg2a/x4+DLC9n8fkkM3ZLyyUTgKrC27cKHz5ELXmcORPaMr9KZV71h5CuWw+qjXr1Koyug98vW9r9fpnR0SCxWBi/X6alpY+rV0d58SLEs2fGx4zb3c7lyyF8PsnsV1srsrSUJZ0epK6ukfb2fi5eDJsAdB3i8eGSPMoBqKYCtgNg26nX4YEBG+fOFQE8fGi9DJ09W7Q9ffo/vQw9eVLe9vx5dTF2bAX8Ke36P0R2PYBf6lysE2b9C7oAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/pause_green.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA9JJREFUWIXlmE9oHFUcxz8TQ4ItZaeiJ8WdQqkHxd2QHBSqO3MICoZmc9KDuBMaVPSwc9CDh9ApUtCCMKlWrVjyghA8ubPgpRZ0plFRaMlEDFgqZntSD5pZ/4A7Wp+H2cz+zXajgRDzhXeY9/293/vO7/1+v9m3ipRSsocxsNMCdhqDOy3g30IZUzrm5GV5U64duzYAANwFKMR5fL2Nu7M+341rwu4OwBCNl9wK14QBZVZhY6inVPKLebw1r6uxekol+D7omNfP6yiznWmnzCro5/XkOfwjJL+YT/bLns0me9kf2zRraR6bYqhpbIVrwiA1SB9MY46ZVH6usHBlgXJQZu2lNbSDWmIoLguq1SrOJQfxuGj18idQ6+K9VufqyIs8/nc+xaNFANxVF3VYjckbsX1htIB2m9buqTuG+c8ZMEgE2gENe9wGQD+kM704jfhSYD9qJ4biCwERuMsu4bEQ9Va14eUvIOriPapzdfjf+OQO53COOQDY43bDz43Y3hw10Q/rvVVvYCMA3ZKk3xKg1ipeHVbjk2sSXvmpgr/qUxgpUK1WcQO31UvE5hnQ5Du9P42/6uOuxOs7glgD/u4tuAUbKT7cg7tJCQwQQfhLiHfVQ3wmsEs2RJC/P58YOR85EIH9mE36QBrngtPqpc8MEE8JUrekmDozhX5ax7vqNch6BhivGijHFZTjCnbZ7q1+uMdLbqUHrHy7gvGyAUBqX4r5wjzZu7MN4Z8IJu+bRLtdw3zA5OQHJwmuB2TTdZs+e4B+j07ldAXrPYuFpQWMrwzmn57HfNhs9ICHCmh3aLH9Eb23+m34CgxSg4yWwTHjU9Xvbd1UeILqehVN1fBWvbhB1cD50EE8L2KjPksAQN2nIp4RWI9YjLw4gv2+HQegXgLmUbNDw6bYriaoDqmbbiouCohgzp1jzp1L5t1PXUIzRN2vxn0jgmAtIHsozopgLYCIRpcHwt9je4CsliV3JIf/tR+T9RJgKzeTXgHoxTVhsNspbaDyYwX/ik8xX8R5tlH34qJg+rVp3M9dzHETUzcpXyqjv6BjTVmEv4Vx4GpgTVjJOutti8oPFfSMnviefHAyJuslIC4IvMBr0WE/aXcX2E8J9PgZEcNA5qyc7IbiG0WJgVy+ttzBpSZSMjOTSZ5LSyWZmclIDCQGMjOTkaWlUoe/9BNpiYFMTaRk4ZWCXP91XUop5QlxIlnbPrqBUSRvITmH5B0ko7RyDpLXkZxt5dqh7NbrsDKmwHM0MuBM22VohsY94dz/9TL0Zg/u3f5c7NoM2C7s+T9E9nwA/gF4+O4BwphdfgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/pause_grey.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABFdJREFUWIXlmF9IU28Yxz8b+5MtUFGom+aJMYUoGSKsxqAop2RMBbsq0JtB6FUXIULgxW6GeNHNELqKIiJhkQsK0l04UUFKRdFD3jQSCXbRn4XBeV+ndhE77Ti31u/3g/DX9+48z/M+e97v8z3Pe96Z9vb29viLYf7TBfxpWP50Af8Uzc3NBbY3b9780rcfh5YAgOPHj2MymTCbzXz48KFsXz4ONQFWqxWz2YzJZDrQlyOgFCzhcFh/sNvtKIqC1+tFUZSC4OHhYXp7ezlx4oTB/uDBA96/f8/Q0JDBHg6Hqauro7e3FwBN04jH46yvrwM/utTW1oaiKCSTSZLJ5IFF7s+bv8liBFgslqI+Q5wQgqqqKpqamvjy5QuLi4usrKxw+/Ztqqur9cDFxUW+fv3K7Ows3d3dhiTb29sIIQqSCyHY3t7Wnx89ekQqlcLn8wGgqip2ux2AbDaLEIKmpiaqqqpKFr2fgIO6XLYChBAcO3aMy5cvA+B0OhkbG+P169e0trbqgfPz8wghWFpaor29nYqKit8m4O3bt7hcLq5evQrApUuX9Dw7OzsIIfB4PLhcrrIIsNlsmEymf/UKmIUQSCl1g91uRwhBNpvVbZ8+fUJVVTweD5lMhpWVFUMSKWVRAvJzOxwOVFXV1+eTmFPA7u7uL7b9ExaLBavVitVqLeqzWEqPOYsQgkwmw/r6Oh8/fiSRSCCE4OzZs3rQ5OQkQgiuXLnC2toar169wuv16v5yFXD9+nVGR0eJRqPU19cTDAZpaGgAfipgZGREjw8GgwSDwaLF5xRwUJdzM+CXr4CUknfv3hGJRIAfXenp6eHkyZN60NTUFGfOnKGmpgav18v4+DgbGxs4nU7gR/fyO52DlNKgpIaGBiKRCI8fP2ZmZobV1VVCoRB+v5+dnR2klPj9fmprawFwu90liy8l81LkGAjQNM0wqU+fPm0ISCaTfP78mcrKSlRVpbq6Gk3TePHiBX19ffpGNU0rSK5pWgExR48eJRQK0dLSwuDgIE+ePMHv95PNZtE0DZ/PV1BD0eJLTPqyTwEpJTabreiPJhIJpJTE43Hi8bhun52dpaenB4fDgc1mQ0pJKpXi1KlTAKRSKXK5c/j27RsOhwMARVFwu92sra0B6Ar4nRlQ6hQom4CDupRDOp1mYWGBzs5Obt68qdsnJye5e/cuc3NzBAIBLly4wPT0NAMDA3R1dbG1tUUikUDTNNrb2/V19+7dI51O09jYqOc+d+4cgK6AiYkJlpeXDXXcuHHjwPpKybzUN4KBACmlYVDl4+nTp0gpaWlpMdgDgQDRaJRYLEYgEOD8+fPcuXOHhw8fcv/+fQBcLhe3bt2isbFRX3fkyBE2NzdZWFjA4XBw8eJF+vv7gZ8KePnyZUEdxQgo1eVyj0HTYb0ONzc3c+3aNX2TY2NjhstQR0eHTs6zZ8/+n5ehWCxW1Pf8+fOychxaBfxX+Ov/EPnrCfgO/GLx1Cs7v1AAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/pause_red.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA8JJREFUWIXlmN1r5GQUxn+p046ywqTsUFi/JstSXRXsFAT3ZrcZ8MKbtbPg/bxlwRsvmj8h8x+kggiC9p2r9a6Zq71YxAmC9cY2VUulsrtBa1sKCxnXzrTdXepFk0zmK52KUGofCEPOOTnveZ885yQZ5fDw8JBzjKHTLuC0kTrtAv4tbitKl+3LQMxJvk6cWQIA8oDCkYx/PIEvjjNNwDCtTXYileCLY2hJUQiPFVXlfrHI41qtZ/CKqtJ03S77uq6z1EN2S4rCuq5H5898n/vFYrTeWj4frbVlmsRriR/9MAyMBL8n8cWRagLpXI4xIdj3PLYrFbarVd59+JC0pkWBO1Lyd73OhmUxLmVbkgOg2SN5MygixFqxSN1xeGl2FoBHts2QqgLwJIgfK5Xa1k1CkgJCX3/6jpBqAGlN4zXTBOCCrrM6M8OGlFwJbAC/S0kD2LBtLvs+qaBwgD2g0SN5A0jHzrcch9GpKS5bFgCvmmaU50kQnxWC0ZhqkpC0yYFboAnsxw2qShN4Gt+I57HpOGRLJR7X62zZdluSfforIJ6bXI5Nx2E7uD5O4tMg/tkxBceR4oiEXjIPfccNuaFd4C/fZ6dW44GULJsmu8BYsRgF/WpZ7AKvmybkcvwS3MEQe8Buj+S7gS/EhJQcZDJ8e+sW3+g6O7FZcxDE3ysUuKMo3FEUfo4psBfCDfYjIDySkGoAjZUVNgsFAEYyGa7NzzOaz0dBq1JyaXqaC5rGK0KwXC7zyHW5GMQktUCcgDFd50PP4wfD4LdKBa9Q4Mb8PONCRC0wXirxYjADsse0wjBHEu83A4YYYAY0gezEBNeDu/pyx6JrUlKv19E0jT9rNV7QNJrAsmXxfjAMk4bgQYdtRFW5ISVvGQZfT07yvWkyLkTUAleE6KqhH5I2OTABDeBQVfsu6gbDb3FujsW5uci+attc933SqgqqSgPYcV3GAlXsuO6RKmJ9vh/GA9l8notTU/zhOEBrCJ5kBiRtMpXga4vrGlQx+J7HuuPw3uwsH8T63pWS6swMa7ZNXgjeFIKfqlW+0nWuGQZ7vo8rJfvApGFE1901DHzPQ9P1KPcb09NA6zG4JCUPOt5D9D6zYJDH4HFPgVQjgYDvLIsG8I4Qbfa8ECwYBjXLIi8EV4tFPlpY4J5pcrdcBuDSxAQ3TRMtpqznVJVtz2OtXOb5TIa3SyVuBsSGClisVLrqSCIgSQGDEKCc1c/h24rCJ7QI+JT2j6GPaRHwOf/Tj6HPEnxfDJjjzCrgv8K5/0Pk3BPwD7hoZTZfcvSOAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/play_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABCRJREFUWIXll21MlWUYx3/3c87hcCAO8nY6ikOUyRRxtLQ2pehDE+fSZklzw4otMM1yspZrc7S10dLGnJPamGPNVcvmG8miD2ClGToQXC3e4kSAvIooEEeNU/d9Th+OnDjhOTzgBzvrv90fnuu6/vd9Xf/neq49t/B4PB7+x9AedAIPGiEvwL4jLVwd+mPO/JAXoL51hNScCk6c658TP+QFMGgC5RHkFn1HUXnbrPm6BMgoqPetzN2NFH7koLF93OfPL2kjo6Be14GZuxtp773jZ3PeUWTubiS/pE2XfSqEAIPRTLh1PvuPNpL9Zq2uPCahSwApJbZoA69unM9TGdGcbRwmb38T/TdcACilkFLOuM+Z2uuMOV18Uu3frlERBnZsWkBdywhnaq/77PuPdTLmdLF3a1LgAjSBpgmssXZi7Cmcu9xD+ks19A1P6ClNvwD2WBOvb07i/YKlFL+SgpSSiguDgH4BTn8/iJSSmsvXGb/jH/9y9gJs84wcPtUFQP/wBKfPD7BpTRzLkiID7imEQNM0wkxGHrLGYl+8kt/6naRvq6KuZWzGnPQJoBRKKd9zVIQBqRRut/cXQimFnOK/F/qGJ7jUfJNnM22MOl2cbRieFrPvxSX0DN3m8Kku9pa1YjEL3ng+OXgBQqAJgdlkxGwyEhFuIXHRcjyahaydVXz5w7Xg/KDeu5BSMuJ0UdcywsnzAxw83oGUknWr4wF9HfBxVTdSSvbkJPNwjInyqu5pMetWJ7A6NYryr7q42HSDvPWJLEwID16AJhCaICzM4FuWCAtJKWnYFiwm5+1q9pQ2B+bPXL5XgKaOUbYU1VF4+Ce6B5yUvJZGWnIUoE+AL77p4elH41iYYGFLlp2mjlFausanxRW+sITR8QksYZD/TOBvfxLibgeYTEa/ZTAI3EqCxytSIBhnPAFQUrFisZXi7ekArF0Z5+9XbpQM/Akc/7aXsXEXifHhXGq6ycKEcJRUHKnspLTwEb/YNelxKKlYnjQPa6Rpxtwmh6DZZPDZ3Erxq6OZv1y3qTy4gY1rbQH5ugSQUhIZrk0rfBIzdcDn1d72L6twUFbh8Nmravso3r6C6H8VKqX0mznBIPDOgTCTt5Rbzt9xtP1MjNVM/WebmR9nDsrXLUCwhCYFOPBpi5/9iQwbSfYILvx4jZ3PLeXArn/e9rGabnaVNPD1xX5ys5Nndd5UaJqG0ARGo8bQYB8d7a08uWoRZw9l6uLrFEChlDugXyk3UireO9rkZ9+Xl87YrT+RUpGbvcjPl5udzFulV/jwxC/3ECD4eVMxOQOudjro7+1iz7ZVfLBjmS4ugAj16/DWd69Qea6dedZIjr6TyYbH42fF19UB/2kIQWqyjZpDWdhjw2ZPD/UOqG4YYf1jsXPmh7wA94uQvw7fL/4GI9O46Clck28AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/play_gold.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA8pJREFUWIXllzFsE1cYx3/n+HASJcYegqlE7IvUJiYDsYKCBEPrRLJYgpqlUjth1E4ZaFYGVBcYOjCYAZYMGIaKKghcBAghQW2phEbEDhiRgBUZO5IjBErkEFvBdwlmOJzYNXZeYKBW/9Ib7nvfd+/7/9//vdNJhUKhwP8Yhs/dwOdG3Qtw7doxFhdTH11f9wKkUv9w/PiXTE398VH1dS+AJEnAKqOjP3D9+rEt1wsJMDYmrY9g0MK9e0O8ehVanw+F3IyNSUILBoMWMpmHZTFNyxAMWgiF3ELxUkgSGI1gNhe4ceM3zp7tF+qjCCEBVBVk2UFX1y/YbEMkk39y+3Y/uVzyfaN6zmZIJALkckvMzPjL4rJswen0kU6HSSQC6/HJyRFyuSV6evxUgySBwQBWK9hsMD0d4tSpr8hk5kSoiQtgMins2eNj//4A+/adR1UhHtebXV0VE+DZswCqColEEFXNlM05nSNs2+YgEvEBkM0mefr0Anb7YaxWV3UCBl0EWQazGRQFFhZmOXnSSTL596Y9CQugaRvPsmxBVWFtTX8WccDycpK5uTCKcphsdonnz4MVOX19fhYXU0xO+rh71wtsx+Xy1Xxv0QGyrI/GRrDbwWhc4fTpr3n8uPblKCxALpchnQ4xMxPg/n0fqgoOxxAg5oCpKT+qCnv3+jCZHESjlbZWlCHa2r4hEvGTSoXp7h6htVWpTaDEAcXR1AQdHbBzZ4Fz577nypWfqtdvyh6d3Pz8Iy5d6ufmzSMsLCQZGDhPW5tuTREHxGIB7PZvMZsVOju9zM8/4uXLhxV5fX0+stklJGk7LteISHtlDiiOhgZ4+xYKBTAYql/QRpEF8nnYsaMHj0ffNYfDXTavaXpONcRiAV6/XqK5WSGVCtHSopDPw8SEn0OHAmW57e1u8nmw2VyYTJZNeyt1QBFrazA7CysrRo4e/Z3u7u+q1gsJoGlgNFoqiBexulp+R/wb0WgATYPx8TOMj59Zjz95EsTjydDYWE5U0/R3ikCSNj6FAMvLEI9Dc7OFEydimM3tNeuFHVCLYNEBd+74yuIdHW6sVoV4PMyBAz8zOLhx7qPRAJcvH2F6Okhvr3dL65WieAk2NMCLF/rO797dy/BwRKhe2AG1dqTogFu3fi2Lezzw5k0GTaOCZG+vl6tXRwiH/RVzW3FA8Qgkk5BOSxw8+CODg6NixYBU77/DFy8O8ODBX7S0NOH1XqCrq/p5/xCEHPDfRoFdu75geHiC1tba5/1DqHsHxONjdHZubddLUfcCfCrq/nf4U/EOChqCzBTag5oAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/play_green.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA55JREFUWIXlmE9oHGUYxn+ziYmtjRkbQSvEHWkCrZVkzcUeNJkFg4iULGKwAWEnNAfBQ0dvEUqnlEAPFib1UCHWfBUJJD04gSJqQWclapY2dRNIIRBxt1AriO2MKDHjynjYTbLrujuT9lAXH5jL++f73veZ531hRvJ93+d/jMi9LuBeo+4JGH1vlNxPuTvOr3sC5q/N0/FyB9NfTN9Rft0TIEUk8n6eobeHGJ0Y3XZ+KAKkY9LmI4/JJKYS2D/Ym371nIp0TAp1oTwmk7mZKbM5fzjIYzLqOTWUvaKDJvDbfE69f4r4m/FQdZSmB2MdojujHO89TqIjwWxmlvjZONnb2YL/z0JMEMQVgeu6mF+ZZXb5fhmj1yC1kkJcEZt2fVYvxL9oUhURoAF4FFDATtt0vtbJ9Z+vh2otHAEeKC0KRr+BeFUw+cokeCDSxWLzhZggiHkBHljfWThrTplPf04nuiuK8YkBQPZWlvPfnicZSxJ7LFb9UKnYRTPQBhyA1Rur7Bvax9y1ucCaQiugtEG5WS7Y8kWDR6ACsr9kSS2nSD6dxHVdrIxVEWMOmORu5jAuGmhCozXSivGCUfvgBrYIaAZ2AU/CWtMavSO9TM/VXo6hFeD86mCv2IivBcbHBniQ6EoU/CEUYH5uggfGSwbRlijmZ5WyTnQn6HuiD/NTk9RyCr1PR2lTah9cqoCNpwXoAn+vz+G3DjPy7kjV9NAKWFxdJH4yzvDZYbI/ZplMThJ7vCjNEDtAfCkYeGoA5WEF7aDG4uoimVymIs44ZOA6Lq0Nrej9enBtESoJaAYagb8KIVJD9QXdGHwDsA7dSjemVnhr6gG13B8wAsIWuLddFFnBXrZRdiuwDuZFE/GGKItV96uwDrG9MeSdcnBtpQRsIA8sQOPvjUydmWLw4GDV9HAEeCA3yZWNl15YYwTEJQEejFvjjFvjm3ZrzsLRHOQH/tGox9Z+CULpCADcAtIgPyiz9OES7bvba6aHVkDNGS8qwPjIKDOrXSrKIwqphRRHE0cxX9+ae3FJMHx6GOsbC61f2959pdhQwH3A98BV6Hmmh4V3FkKlh1ZAzTdSVMCJD06U25Pg/OaAB9rzWplL69fQz+iYM2YlAdtRwAYBSyCtSBxJHmFiZCJkMuDXOeIn4z7P4u84tMOfuTyz7fxwCvgPw8dnT+ce0qfTtD9Ue97/DZLv1/cPkQtXLzDYU33LB6HuCbhb1P3n8N3ib8CbMDCJxCViAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/play_grey.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA+9JREFUWIXlmE0odG8Yxn9zGMOYiFlgoZlQNBnZIKNZ+SgiYqU0NkrWVjaUjWwMskJJk50FCyQKyTDJRz4mLIgSUhiJc85g3sXbTCavmcO7eP/T/6pT59zPfT3nvq9znefpHJXP5/PxP4bwrwv414h4AYaHh7m5ufkxP+IFODw8pL6+nqWlpR/xI14AQRB4f3+no6OD0dHRb/OjlSR1d3cHzjUaDUajkaKiIoxGIwDj4+Ocn5/T2dkZdq7e3l6am5tJTU0NxERRZGBggNTUVJqbm8PGP0KlUqHRaNDpdIyMjOB2u+nr61PSFqDQAZIkERcXR0lJCVlZWezt7TEyMsL9/T0AXq8XSZLCzrO9vc3j4yNra2tB8djYWKxWKycnJ2xvbwfiMzMzPD4+UlFR8XUDgoAgCKSkpGA0GtnY2KCpqYnb21slrSkXQKfTUVpaSkNDA3V1dUiSxObmJqBcAJfLhSRJ7Ozs8PLyEjRmsVjQarXMzc0BcHd3x/r6OmazmbS0tC/nVKlUqFQq1Go1SUlJmEwmLi8vaWxsxO12h61JsQCyLAeuNRoNkiTx+voKgCzLYQW4u7vD7XaTn5+Px+Nhb2/vU05NTQ3X19fMzs7icDgQBCHk04ffAgiCgFqtRq1WExcXR3Z2NtHR0bS0tLC6uhqSr1gAj8fD8fExTqeTqakpJEnCbDYDyhywsLCAJElUVlai0+mYn5//lJOXl4fBYGB+fp7Dw0OsVivJycmhGxCEgAP8h1arxWQyYTAYaG9vZ3Bw8Gu+gv6RZZnT01N6enoYHh7m6uoKm81Geno6AK+vr0EO+ROWl5fJzc1Fr9dTVFTE6ekpFxcXn/Kqq6vxeDxERUVRWloatraPr8DHQxAE3t7efjcpfN2mol1AFEUMBkNgJTaZTEHjsiwjiuKX/JWVFe7v70lMTMTtdpOUlIQoiszMzNDW1haUm5OTgyiKZGRkoNVqw9bmXwRjYmICsbe3N/b393l+fmZgYIDi4uIv+YoEkGWZmJiYT4374fV6QzpgcXERWZaZnp5meno6EF9bW8NmsxEfH//pfl6vV0lpAIE1AODh4YHd3V0SEhJwOBzo9fqQXMUOCNWg3wETExNBcbPZTEpKCltbW9TW1tLa2hoYW1hYwG6343Q6KS8v/9b9PsK/BkRFRXFxccHBwQGFhYXY7XZFfMUOCPVE/A4YGxsLittsNp6enpBlmbKysqCx8vJyhoaGmJyc/CTAdxzg3wWOjo44OzvDZrMFCR0WvghHV1eXz2Kx+Kqqqnwul+vbfEUO+K8jMzOT/v7+sFvmn6Dy+SL7h8jm5iYFBQU/5ke8AH+LiP8c/lv8Ajp5n+J0+x2EAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/play_red.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA4xJREFUWIXlmE9oFGcYxn+zppb8KfmEWIya7liMxoJNahUvoru04Km4F0FP2aAUSg/OwUtKwVEvuTm5FIqHjJeAenAj0npzBoQorWlmqRJT/0yipiXVOkNkptHV8ZDZuLsxOxM92KUPfId95332e99nn/eFWSkIgoD/MRLvuoB3jZoX4KfeXh5PTLwxv+YFsK9c4fv168mfPv1G/JoXICFJBIUCP+zfz8Xe3qXz4ySNSNL8sYTgdibDjGHMPx9PpRiRpFgXWkLgj46WxZ47DpYQjKdSseKlkIB6YG0QcK6vjx/T6Vh1FBFLAB94kUzScuQIDZkMfw0NkU+nmbVtAJ6GOVGY1nWeuC73Na0svkwIVqoqf5sm07o+H7+jKDxxXdZU5Fc2kADagE+AvGHQ196OOzkZp7V4AngAssxHqkq7rrNuYAAPuB8W+28xJwKTuj7Hy+UoOE7Zs9WKwotkkpuqCoBv29inTiG6u2ns6lr0O6XwvAesBLYBD2/d4lhHB5OXL0fWFNsBs6UkIfCBQvh5lmgHeLbNlGnS0t3NjOvyZy63IKdd03g8McFNVWUkm6XQ3My6UJBqDSSA5eFpAj4DGnyfvp07uRGxHGM7YMZxmDYM7uo6o6qKB3yYyQBzAkQ5YEzT8IANqoqUTHL9NbZelcnQtGsXv2sa90yTNkWhQZYj60sw54DiaQK2Ah1BwIl9+zh/8GBVbiQ8YMqyuJBOc6mnh4e2zecDA6wIrRlnBG7oOi179tAoy6zNZpmyLP6pWIYAm1QV13UpNDezQVEia0vwagRKjwQ8K+ZUWdB1kTcwZ++Wzk52hL/amoqtHDUCY7qO67rIsswDw6BelvGB3zSNL0qWHkBrKoUPrOjqYrkQkbVJvHJAEQXgF2Cmro7Dg4Ns3Lt3UX4sATwgEGJB40VEjcBouPyG+/sZ7u+fj1/P5djhOLxf0ahH+c6phtIlCPAIGAYaheB4Ps8HbW1V+bEdUK2gogPMioWVTKUQssy4abL90CF2l8y9pesM9fQwlsvRmc0u6b5SFEdgGXAb+BX4dMsWvr52LRY/tgOiBPCAn48eLYt/CfiOgwdsrmiyM5vlnKJgaNoCAZbqgARgAWOSxFcHDrD75MmYbCCocQym08G3EHxXXx/8cebMkvmxHPBfhhQEyK2tfHP1Ko0R874Iv7b/ELlz9iwfV9nyUah5Ad4WNf86/LZ4Cd5FOYTT5KnPAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/prev_blue.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////L1+/H0+/Dz+uTr+OHn9Nji9Nfh9NXf8tPd8NHb7svY8crX8MnW78jV7sfU7cbT7MXS68TR6sPQ6sHP6brK6rbH57LD463B56zA5qq+5Km945614pqy3pax45Sv4ZKt35Cr3Y6p24yn2omn34ql2Iij1oah1ISf0nyd3Hmb2neVz2+T2GyR1mGGzF+H01yE0FmBzVZ9ylV6wlN6x055zE10wUdzxUpxv0Ryy0Rvw0ZuvDpsykFsvz1rxDNlxDZkvi5jxy9hwDJhuipfxCtdvCZbwCtatCdZuSJXvB5TuCBSshpPtRxOrxZLsRJHrQ5Dqgk/pv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFIALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGUlKLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipm0GsPCwLgh6sQTwpAYILs7MLJEEGgwZBJKJEOR8qREQEAB9EKh8vRC2CDEQvH9gfBAfOg8gHokYwghhGIAAgRg2CNUaCDeaGNT+DPzWjSTGCFUkhACFJHAAQ4EOIIAf9DHFIkgFAhiQcRim58UDDDSUIAIiYKKOIEg2CHigZqUTGIAElAchQImAUk5dMkGwQNIKJDiBMOgyCwITGiBEzB7lgwtMFKSc9IkQgVMJJhARIB0VwUuKQBSdDnFgg9cSGIRNPJAAAa0KQhCdlDy15sqQUFByGSU5AmQBgwJEmBQBMeHui74m8glZAWVEqyg5DKKJQEHQhygwAFKJInrxYkIIoClRp3sx50OTPUTqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/prev_gold.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////r67/n57/j47/f37/T03+7u3+/vz+7uz+rqz+rqv+joz+jov+fnv+Xlz+Xlv+Tkv+Liv+Dgv9/fv9/fr93dv9zcv9nZr9ran9jYn9bWn9PTr9TUn9TUf9LSj9HRf87Of8/Pb8zMj8vLf8jIf8rKX8XFf8bGX8LCf8TET7+/f7y8f8DAT7m5f7q6P7Ozb7a2P7GxP7CwT7CwL62tP6+vH6+vD6ioP6qqAKamL6WlH6SkD6SkAKGhL5+fP56eT5qaP5ubL56eD56eAJqaH5aWP5iYD5iYAJSUH5OTD5KSAImJH4yMAIeHD4WFAIGBD4CAAHl5AHNzAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFMALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGU1OLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipmzisNikKgh2sODYlAYIKs7MKITgHgwc4IaI8NR8nPDwFAB88Jx8uPCyCDDwuH9gfBQjOg8gIokMwghhDIAAgQw2CM0OCDeaGMzuDOzOjRzGCFEcjACNHHgAQoEOIoAf9DHk4kgFAhiMeRinJAUFDDiUJAJCYSMOIEg2CICgZqYTGoAElAdBQMmAUk5dMknAQZIJJDyJMRAyKwOSGCRMzB8lgwlMGKSdBJEgghMKJhAVIB0lwguLQBSdInFwgBcWHIRVQJgAAq0LQBChlDzWB0qRUFCCGSVZEqQCAwJInBgBUeLui74q8gl5EeVFKShFDLaRYELRByg8AFqRInrxYkAMpDlRp3sx50OTPUjqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/prev_green.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP///+/27+/37+/17+/079/u39/o38/mz8/lz8/hz8/fz8/bz7/ev7/bv7/cv7/Zv7/Yv7/Wv7/Uv7/Tv7/Qv7/Rv6/Qr6/Kr6/Er5/Jn5/Gn5/En5/Cn4+9j3+9f4+3j3+6f3+3f3+zf3+wf2+1b3+tf3+qf3+nf3+kf3+gf1+tX1+oX0+lT2+Yb0+gTz+XP0+OTz+TPz+NPz+JPz+EPy+KL099Tz97Px+GHy9/Lz92Py96Lz9xPw+EDx96Hy90Lw93Dx9wHwB8AA9xDx9qHwB1AA9rDwBvAA9mDx9fHwBoAABiAA9aDwBcAA9UDwBVAABQAABJAABCAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFMALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGU1OLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipm0KsPSwMgh6sQj0qAoIMs7MMJEIHgwdCJKJFOCArRUUFACBFKyAvRS6CDkUvINggBQjOg8gIokcxghlHIQAhRw2CNUeCDeaGNUCDQDWjSjKCFkoiACJKHgAI4GOIoAf9DHVQogGABiUdRi3JAWFDjiUJAIyYOMPIkg2CICwZuWTGoAElAcxYMmBUk5dNkHAQVKLJjiBNPgyK0IRGiRIzB8FowhMGqSc/JEggZOKJBAVIB0l4YuLQhSdEnlwgBeWGoRNQJgAAe0LQBChlDzGBwqRUFB2GSVBEqQCAQBInBgBUeIuiL4q8glpEaVFKCg9DKaRQEIRBig0AFKRInrxY0AIpC1Rp3sx50OTPUjqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/prev_grey.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////f39/b29vX19fT09O7u7ujo6Ofn5+bm5uLi4t/f397e3tzc3Nra2tjY2NfX19XV1dPT09HR0dDQ0MrKysjIyMXFxcTExMPDw8DAwL6+vry8vLm5ubi4uLW1tbKysrCwsK+vr6ysrKurq6ioqKSkpKOjo6GhoZubm5iYmJaWlpGRkZCQkI2NjYuLi4qKioiIiIeHh4GBgX5+fn19fXx8fHt7e3p6enZ2dnV1dXNzc3JycnFxcW5ubmxsbGtra2hoaGVlZV9fX1tbW1dXV1RUVFFRUUlJSUNDQ////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEkALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGSUmLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipmzKsMCQKghmsMjAgAYIKs7MKHTIHgwcyHaI3LxsiNzcFABs3IhsoNyaCCzcoG9gbBQjOg8gIojoqghQ6HAAcOgyCLTqCDOaGLTaDNi2jPiyCEj4eAB4+GgAQMCOHoAb9DGnwUQFABR8aRgWR4cCCjCAJAHyY6KJHEAuCHAQZGcTFoAElAbgIMmCUkJdCgGAQFEJIjR1Czgl6ICRGiBAzB60QwnMFKSI4IEAgNIIIBAVIB0EgMuIQBSI/iFAgZaSGIRJGIgAAS0JQBCNlDw0xMqTUERyGSUockQCAgJAiBgBIeFuib4m8glIcSVEKCQ9DJ5BMEHQBCQ0AE5BInrz4HZJ1qjJr3izoiOfPnjmLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/prev_red.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////rv7/nv7/zv7/fv7/jf3+/f3/bPz/TPz+7Pz+vPz+XPz/C/v/K/v+6/v+u/v+m/v+a/v+G/v+S/v9+/v92/v+evr92vr9Svr+Wfn+Kfn92fn9qfn92Pj9SPj+Z/f+F/f9x/f9h/f9J/f81/f8l/f8R/f79/f7p/f+Nvb7dvb+BfX9pfX9xPT9ZPT7tPT6BPT9M/P8s/P8Q/P7w/P7Q/P6Y/P58/P5g/P8cvL7YvL64vL6cvL8sfH7ofH6gfH6AfH9APD48fH74PD7YPD6sPD6IPD80AAJAPD8QAAIcPD7oAALEAAKYAAJwAAJMAAIkAAIAAAHYAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFMALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGU1OLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipm0esQS0Ngh+sR0ErA4INs7MNKUcHgwdHKaJJPSAsSUkFACBJLCAxSS6CDEkxINggBQjOg8gIoksyghlLIQAhSw6COUuCDuaGOUODQzmjTDOCFkwiACJMHgAI4IOIoAf9DHVgogGABiYdRjXRAWGDjiYJAIyYSKNIkw2CIDQZ2YTGIAElAdBoImCUk5dOjHAQRMLJjh9OPAyK4KQGCRIzB71wwvMFqSc8JkwgVOLJBAVIB014UuLQhSdAnlwgBcWGIRNQJAAAa0KQBChlDyGBgqRUlBuGSU5EoQCAgBAlBgBQeHui74m8glREUVFKCg5DKKRUEIRBCgwAFaRInrxY0AIpC1Rp3sx50OTPUjqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></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[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCi8qIEBjaGFyc2V0PXV0Zi04ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IGVuX1VTLnBocCAyIDIwMDgtMDUtMDggMDA6MzU6MDJaIHdpZWRtYW5uICQKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9MeXRlYm94CiAqLwoKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddICAgICAgICAgICA9ICdMeXRlYm94JzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gICAgICAgICAgICA9ICdUaGUgTHl0ZWJveCBtb2R1bGUgaXMgaW5zdGFsbGVkLiBQbGVhc2UgcmVhZCB0aGUgaGVscCBwYWdlLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gICAgICAgICAgPSAnVGhlIEx5dGVib3ggbW9kdWxlIGlzIHVuaW5zdGFsbGVkLic7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gICAgICAgPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVuaW5zdGFsbCB0aGUgTHl0ZWJveCBtb2R1bGU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gICAgICAgICAgICA9ICdNb2R1bGUgdW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddICAgICAgICAgICAgICA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gICAgICAgICAgICAgICA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSAgICAgICAgID0gJ0Egc2ltcGxlIHdyYXBwZXIgdG8gdGhlIEx5dGVib3ggSmF2YVNjcmlwdCBjbGFzcy4nOwokbGFuZ1snY2hhbmdlbG9nJ10gICAgICAgICAgICAgID0gPDw8RU9UCiAgICA8dWw+CiAgICAgICAgPGxpPlZlcnNpb24gMC4xLjBkZXYxCiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5Jbml0aWFsIFJlbGVhc2U8L2xpPgogICAgICAgICAgICAgICAgPGxpPkx5dGVib3ggdjMuMjI8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICA8L3VsPgpFT1Q7CiRsYW5nWydoZWxwJ10gICAgICAgICAgICAgICAgICAgPSA8PDxFT1QKICAgIDxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPgogICAgPHA+QSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLjwvcD4KICAgIDxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgogICAgPG9sPgogICAgICAgIDxsaT4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgIEluIHRoZSBwYWdlIHdoZXJlIHlvdSB3YW50IHVzZSB0aGlzIG1vZHVsZSwgYWRkIHRoaXMgdG8gdGhlIHBhZ2UgbWV0YWRhdGE6PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e3N0eWxlc2hlZXQgbmFtZT0nTW9kdWxlOiBMeXRlYm94JyBtZWRpYT0nc2NyZWVuJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPk9yIHlvdSBjYW4gYXR0YWNoIHRoZSBzdHlsZXNoZWV0ICZxdW90O01vZHVsZTogTHl0ZWJveCZxdW90OyB0byB5b3VyIHRlbXBsYXRlLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBDb250ZW50IEV4YW1wbGVzPC9zdHJvbmc+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT48ZW0+U2luZ2xlIEltYWdlIEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyB0aXRsZT0nSW1hZ2UgRGVzY3JpcHRpb24nIHRleHQ9J0ltYWdlICMxJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5Hcm91cGVkIEltYWdlcyBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyB0aXRsZT0nTW9tIGFuZCBEYWQnIHRleHQ9J01vbSBhbmQgRGFkJ308L2NvZGU+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMi5qcGcnIGdyb3VwPSd2YWNhdGlvbicgdGl0bGU9J015IFNpc3RlcicgdGV4dD0nTXkgU2lzdGVyJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5TbGlkZXNob3cgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIGdyb3VwPSd2YWNhdGlvbicgZGlzcGxheT0nc2hvdycgdGl0bGU9J01vbSBhbmQgRGFkJyB0ZXh0PSdNb20gYW5kIERhZCd9PC9jb2RlPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTIuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIHRpdGxlPSdNeSBTaXN0ZXInIHRleHQ9J015IFNpc3Rlcid9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkhUTUwgQ29udGVudCBFeGFtcGxlczwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+PGVtPlNpbmdsZSBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0naHR0cDovL3d3dy5nb29nbGUuY29tLycgZGlzcGxheT0nZnJhbWUnIHRpdGxlPSdTZWFyY2ggR29vZ2xlJyB0ZXh0PSdHb29nbGUgU2VhcmNoJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5Hcm91cGVkIEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J2NhdGFsb2cxLmh0bScgZ3JvdXA9J2NhdGFsb2cnIGRpc3BsYXk9J2ZyYW1lJyB0aXRsZT0nU3VtbWVyIENhdGFsb2cnIHRleHQ9J1N1bW1lciBDYXRhbG9nJ308L2NvZGU+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0nY2F0YWxvZzIuaHRtJyBncm91cD0nY2F0YWxvZycgZGlzcGxheT0nZnJhbWUnIHRpdGxlPSdXaW50ZXIgQ2F0YWxvZycgdGV4dD0nV2ludGVyIENhdGFsb2cnfTwvY29kZT4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5Vc2UgdGh1bWJuYWlsczwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+PGVtPlNpbmdsZSBJbWFnZSBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgdGl0bGU9J0ltYWdlIERlc2NyaXB0aW9uJyB0ZXh0PSdJbWFnZSAjMScgdGh1bWJzcmM9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEtdGh1bWIuanBnJyBhbHQ9J0ltYWdlICMxJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5Hcm91cGVkIEltYWdlcyBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyB0aXRsZT0nTW9tIGFuZCBEYWQnIHRleHQ9J01vbSBhbmQgRGFkJyB0aHVtYnNyYz0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS10aHVtYi5qcGcnIHRodW1iYWx0PSdNb20gYW5kIERhZCd9PC9jb2RlPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTIuanBnJyBncm91cD0ndmFjYXRpb24nIHRpdGxlPSdNeSBTaXN0ZXInIHRleHQ9J015IFNpc3RlcicgdGh1bWJzcmM9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTItdGh1bWIuanBnJyB0aHVtYmFsdD0nTXkgU2lzdGVyJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5TbGlkZXNob3cgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIGdyb3VwPSd2YWNhdGlvbicgZGlzcGxheT0nc2hvdycgdGl0bGU9J01vbSBhbmQgRGFkJyB0ZXh0PSdNb20gYW5kIERhZCd9PC9jb2RlPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTIuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIHRpdGxlPSdNeSBTaXN0ZXInIHRleHQ9J015IFNpc3Rlcid9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPlNldCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBMeXRlYm94IGphdmFzY3JpcHQ8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPjxlbT5TaW5nbGUgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIHRoZW1lPSdibHVlJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxlbT5Hcm91cGVkIEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIGF1dG9FbmQ9JzAnfTwvY29kZT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyBkaXNwbGF5PSdzaG93J308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICA8L29sPgogICAgPGNpdGU+KERlc2NyaXB0aW9uIGlzIHRha2VuIGZyb20gdGhlIDxhIGhyZWY9Imh0dHA6Ly9kb2xlbS5jb20vbHl0ZWJveC8iPkx5dGVib3ggaG9tZXBhZ2U8L2E+Lik8L2NpdGU+CiAgICA8aDM+U3VwcG9ydDwvaDM+CiAgICA8cD5QbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBpbnNpZGUgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KICAgIDxwPkZvciBhZGRpdGlvbmFsIGhlbHAgeW91IGNhbiBhbHNvIHRyeSB0byBhc2sgYSBxdWVzdGlvbiBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnLyI+Q01TTVMgZm9ydW08L2E+LjwvcD4KICAgIDxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgogICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPkx5dGVib3ggQ01TTVMgbW9kdWxlPC9zdHJvbmc+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5Db3B5cmlnaHQgwqkgMjAwOCwgQ2Fyc3RlbiBXaWVkbWFubiA8YSBocmVmPSJtYWlsdG86Y2Fyc3Rlbl9zdHRndEBnbXguZGUiPiZsdDtjYXJzdGVuX3N0dGd0QGdteC5kZSZndDs8L2E+LiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY29weXJpZ2h0L2ZyZWVic2QtbGljZW5zZS5odG1sIj5GcmVlQlNEIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkx5dGVib3ggSmF2YVNjcmlwdCBjbGFzczwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+QXV0aG9yOiBNYXJrdXMgRi4gSGF5PC9saT4KICAgICAgICAgICAgICAgIDxsaT5XZWJzaXRlOiA8YSBocmVmPSJodHRwOi8vZG9sZW0uY29tL2x5dGVib3gvIj5odHRwOi8vZG9sZW0uY29tL2x5dGVib3gvPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+TGljZW5zZTogPGEgaHJlZj0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLyI+Q3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAzLjAgTGljZW5zZTwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICA8L3VsPgpFT1Q7CiRsYW5nWydoZWxwX2hyZWYnXSAgICAgICAgICAgICAgPSAndGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoZSBVUkkgdG8gYmUgbG9hZGVkIHdoZW4gdGhlIGh5cGVybGluayBpcyBhY3RpdmF0ZWQnOwokbGFuZ1snaGVscF9kaXNwbGF5J10gICAgICAgICAgID0gJ2h5cGVybGluayhzKSBhcmUgc2hvd2VkIGFzIGJveCwgc2hvdyBvciBmcmFtZSc7CiRsYW5nWydoZWxwX2dyb3VwJ10gICAgICAgICAgICAgPSAnaWYgeW91IHdhbnQgZ3JvdXAgMiBvciBtb3JlIGh5cGVybGluaywgZ2l2ZSB0aGUgZ3JvdXAgYSBuYW1lJzsKJGxhbmdbJ2hlbHBfZnJhbWVhdHRyJ10gICAgICAgICA9ICdjb250cm9scyB0aGUgd2lkdGgsIGhlaWdodCBhbmQgc2Nyb2xsaW5nIG9mIHRoZSB3aW5kb3cnOwokbGFuZ1snaGVscF90aXRsZSddICAgICAgICAgICAgID0gJ3RoaXMgYXR0cmlidXRlIHN1Z2dlc3RzIGEgdGl0bGUgKGFkdmlzb3J5IG9ubHkpIGZvciB0aGUgZGVzdGluYXRpb24gcmVzb3VyY2UnOwokbGFuZ1snaGVscF9leHRyYSddICAgICAgICAgICAgID0gJ2FueSBleHRyYSBhdHRyaWJ1dGUocykgeW91IHdhbnQgZ2l2ZSB0aGUgQSBlbGVtZW50JzsKJGxhbmdbJ2hlbHBfdGV4dCddICAgICAgICAgICAgICA9ICd0ZXh0IGZvciB0aGUgaHlwZXJsaW5rJzsKJGxhbmdbJ2hlbHBfdGh1bWJzcmMnXSAgICAgICAgICA9ICdpbmRpY2F0ZXMgdGhlIFVSSSB0byByZWZlcmVuY2UgdGhlIHRodW1ibmFpbCc7CiRsYW5nWydoZWxwX3RodW1iYWx0J10gICAgICAgICAgPSAndGhpcyBpcyB0ZXh0IHRvIGJlIGRpc3BsYXllZCBpbiBwbGFjZSBvZiBhbiBpbWFnZSc7CiRsYW5nWydoZWxwX3RodW1iZXh0cmEnXSAgICAgICAgPSAnYW55IGV4dHJhIGF0dHJpYnV0ZShzKSB5b3Ugd2FudCBnaXZlIHRoZSBJTUcgZWxlbWVudCc7CiRsYW5nWydoZWxwX3RoZW1lJ10gICAgICAgICAgICAgPSAndGhlbWVzOiBncmV5IChkZWZhdWx0KSwgcmVkLCBncmVlbiwgYmx1ZSwgZ29sZCc7CiRsYW5nWydoZWxwX2hpZGVGbGFzaCddICAgICAgICAgPSAnY29udHJvbHMgd2hldGhlciBvciBub3QgRmxhc2ggb2JqZWN0cyBzaG91bGQgYmUgaGlkZGVuJzsKJGxhbmdbJ2hlbHBfb3V0ZXJCb3JkZXInXSAgICAgICA9ICdjb250cm9scyB3aGV0aGVyIHRvIHNob3cgdGhlIG91dGVyIGdyZXkgKG9yIHRoZW1lKSBib3JkZXInOwokbGFuZ1snaGVscF9yZXNpemVTcGVlZCddICAgICAgID0gJ2NvbnRyb2xzIHRoZSBzcGVlZCBvZiB0aGUgaW1hZ2UgcmVzaXppbmcgKDE9c2xvd2VzdCBhbmQgMTA9ZmFzdGVzdCknOwokbGFuZ1snaGVscF9tYXhPcGFjaXR5J10gICAgICAgID0gJ2hpZ2hlciBvcGFjaXR5ID0gZGFya2VyIG92ZXJsYXksIGxvd2VyIG9wYWNpdHkgPSBsaWdodGVyIG92ZXJsYXknOwokbGFuZ1snaGVscF9uYXZUeXBlJ10gICAgICAgICAgID0gJzEgPSAmcXVvdDtQcmV2L05leHQmcXVvdDsgYnV0dG9ucyBvbiB0b3AgbGVmdCBhbmQgbGVmdCAoZGVmYXVsdCksIDIgPSAmcXVvdDsmbHQ7Jmx0OyBwcmV2IHwgbmV4dCAmZ3Q7Jmd0OyZxdW90OyBsaW5rcyBuZXh0IHRvIGltYWdlIG51bWJlcic7CiRsYW5nWydoZWxwX2F1dG9SZXNpemUnXSAgICAgICAgPSAnY29udHJvbHMgd2hldGhlciBvciBub3QgaW1hZ2VzIHNob3VsZCBiZSByZXNpemVkIGlmIGxhcmdlciB0aGFuIHRoZSBicm93c2VyIHdpbmRvdyBkaW1lbnNpb25zJzsKJGxhbmdbJ2hlbHBfZG9BbmltYXRpb25zJ10gICAgICA9ICdjb250cm9scyB3aGV0aGVyIG9yIG5vdCAmcXVvdDthbmltYXRlJnF1b3Q7IEx5dGVib3gsIGkuZS4gcmVzaXplIHRyYW5zaXRpb24gYmV0d2VlbiBpbWFnZXMsIGZhZGUgaW4vb3V0IGVmZmVjdHMsIGV0Yy4nOwokbGFuZ1snaGVscF9ib3JkZXJTaXplJ10gICAgICAgID0gJ2lmIHlvdSBhZGp1c3QgdGhlIHBhZGRpbmcgaW4gdGhlIENTUywgeW91IHdpbGwgbmVlZCB0byB1cGRhdGUgdGhpcyB2YXJpYWJsZSAtLSBvdGhlcndpc2UsIGxlYXZlIHRoaXMgYWxvbmUuLi4nOwokbGFuZ1snaGVscF9zbGlkZUludGVydmFsJ10gICAgID0gJ0NoYW5nZSB2YWx1ZSAobWlsbGlzZWNvbmRzKSB0byBpbmNyZWFzZS9kZWNyZWFzZSB0aGUgdGltZSBiZXR3ZWVuICZxdW90O3NsaWRlcyZxdW90OyAoMTAwMDAgPSAxMCBzZWNvbmRzKSc7CiRsYW5nWydoZWxwX3Nob3dOYXZpZ2F0aW9uJ10gICAgPSAnMSB0byBkaXNwbGF5IE5leHQvUHJldiBidXR0b25zL3RleHQgZHVyaW5nIHNsaWRlc2hvdywgMCB0byBoaWRlJzsKJGxhbmdbJ2hlbHBfc2hvd0Nsb3NlJ10gICAgICAgICA9ICcxIHRvIGRpc3BsYXkgdGhlIENsb3NlIGJ1dHRvbiwgMCB0byBoaWRlJzsKJGxhbmdbJ2hlbHBfc2hvd0RldGFpbHMnXSAgICAgICA9ICcxIHRvIGRpc3BsYXkgaW1hZ2UgZGV0YWlscyAoY2FwdGlvbiwgY291bnQpLCAwIHRvIGhpZGUnOwokbGFuZ1snaGVscF9zaG93UGxheVBhdXNlJ10gICAgID0gJzEgdG8gZGlzcGxheSBwYXVzZS9wbGF5IGJ1dHRvbnMgbmV4dCB0byBjbG9zZSBidXR0b24sIDAgdG8gaGlkZSc7CiRsYW5nWydoZWxwX2F1dG9FbmQnXSAgICAgICAgICAgPSAnMSB0byBhdXRvbWF0aWNhbGx5IGNsb3NlIEx5dGVib3ggYWZ0ZXIgdGhlIGxhc3QgaW1hZ2UgaXMgcmVhY2hlZCwgMCB0byBrZWVwIG9wZW4nOwokbGFuZ1snaGVscF9wYXVzZU9uTmV4dENsaWNrJ10gID0gJzEgdG8gcGF1c2UgdGhlIHNsaWRlc2hvdyB3aGVuIHRoZSAmcXVvdDtOZXh0JnF1b3Q7IGJ1dHRvbiBpcyBjbGlja2VkJzsKJGxhbmdbJ2hlbHBfcGF1c2VPblByZXZDbGljayddICA9ICcxIHRvIHBhdXNlIHRoZSBzbGlkZXNob3cgd2hlbiB0aGUgJnF1b3Q7UHJldiZxdW90OyBidXR0b24gaXMgY2xpY2tlZCc7CiRsYW5nWydoZWxwX2NvbmZpZyddICAgICAgICAgICAgPSAnaW50ZXJuYWwgdXNhZ2UnOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/Lytebox.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IEx5dGVib3gubW9kdWxlLnBocCAyIDIwMDgtMDUtMDggMDA6MzU6MDJaIHdpZWRtYW5uICQKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9MeXRlYm94CiAqLwoKaWYgKCFpc3NldCgkZ0NtcykpIHsKICAgIGV4aXQ7Cn0KCi8qKgogKiBMeXRlYm94IG1vZHVsZSBmb3IgQ01TTVMgLSBBIHNpbXBsZSB3cmFwcGVyIHRvIHRoZSBMeXRlYm94IEphdmFTY3JpcHQgY2xhc3MuCiAqCiAqIEBjYXRlZ29yeSAgIE1vZHVsZXMKICogQHBhY2thZ2UgICAgTHl0ZWJveAogKiBAYXV0aG9yICAgICBDYXJzdGVuIFdpZWRtYW5uIDxjYXJzdGVuX3N0dGd0QGdteC5kZT4KICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jb3B5cmlnaHQvZnJlZWJzZC1saWNlbnNlLmh0bWwgIEZyZWVCU0QgTGljZW5zZQogKiBAdmVyc2lvbiAgICBSZWxlYXNlOiAwLjEuMGRldjEKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9MeXRlYm94CiAqIEBzZWUgICAgICAgIENNU01vZHVsZQogKi8KY2xhc3MgTHl0ZWJveCBleHRlbmRzIENNU01vZHVsZQp7CiAgICAvKioKICAgICAqIEdldEF1dGhvcigpCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgdGhlIG5hbWUgb2YgdGhlIGF1dGhvcgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gR2V0QXV0aG9yKCkKICAgIHsKICAgICAgICByZXR1cm4gJ0NhcnN0ZW4gV2llZG1hbm4nOwogICAgfQoKICAgIC8qKgogICAgICogR2V0QXV0aG9yRW1haWwoKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBhdXRob3IKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKICAgIHsKICAgICAgICByZXR1cm4gJ2NhcnN0ZW5fc3R0Z3RAZ214LmRlJzsKICAgIH0KCiAgICAvKioKICAgICAqIEdldENoYW5nZUxvZygpCiAgICAgKgogICAgICogQHVzZXMgTGFuZygpCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgdGhlIGNoYW5nZWxvZyBmb3IgdGhlIG1vZHVsZQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0RGVzY3JpcHRpb24oKQogICAgICoKICAgICAqIEB1c2VzIExhbmcoKQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgYSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgbW9kdWxlCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBHZXREZXNjcmlwdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0SGVscCgpCiAgICAgKgogICAgICogQHVzZXMgTGFuZygpCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgdGhlIGhlbHAgZm9yIHRoZSBtb2R1bGUKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEhlbHAoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0TmFtZSgpCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gR2V0TmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICdMeXRlYm94JzsKICAgIH0KCiAgICAvKioKICAgICAqIEdldFZlcnNpb24oKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldFZlcnNpb24oKQogICAgewogICAgICAgIHJldHVybiAnMC4xLjBkZXYxJzsKICAgIH0KCiAgICAvKioKICAgICAqIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgICAgKgogICAgICogQHVzZXMgTGFuZygpCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgYSBtZXNzYWdlIGFmdGVyIGEgc3VjY2Vzc2Z1bCBpbnN0YWxsYXRpb24gb2YgdGhlIG1vZHVsZQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBJc1BsdWdpbk1vZHVsZSgpCiAgICAgKgogICAgICogQHJldHVybiBib29sZWFuIHRydWUgaWYgdGhlIG1vZHVsZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBhIHBsdWdpbiBtb2R1bGUKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKICAgIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIE1heGltdW1DTVNWZXJzaW9uKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyB0aGUgbWF4aW11bSB2ZXJzaW9uIG5lY2Vzc2FyeSB0byBydW4gdGhpcyB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJzEuOS45JzsKICAgIH0KCiAgICAvKioKICAgICAqIE1pbmltdW1DTVNWZXJzaW9uKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyB0aGUgbWluaW11bSB2ZXJzaW9uIG5lY2Vzc2FyeSB0byBydW4gdGhpcyB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJzEuMi4wJzsKICAgIH0KCiAgICAvKioKICAgICAqIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICAgICAqCiAgICAgKiBAdXNlcyBMYW5nKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyBhIG1lc3NhZ2UgYWZ0ZXIgYSBzdWNjZXNzZnVsIHVuaW5zdGFsbCBvZiB0aGUgbW9kdWxlCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICAgICAqCiAgICAgKiBAdXNlcyBMYW5nKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyBhIG1lc3NhZ2UgYmVmb3JlIGRvaW5nIGFuIHVuaW5zdGFsbAogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBMeXRlYm94KCkKICAgICAqCiAgICAgKiBAdXNlcyBDTVNNb2R1bGUoKQogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gTHl0ZWJveCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpDTVNNb2R1bGUoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldFBhcmFtZXRlcnMoKQogICAgICoKICAgICAqIEB1c2VzIFJlZ2lzdGVyTW9kdWxlUGx1Z2luKCkKICAgICAqIEB1c2VzIFJlc3RyaWN0VW5rbm93blBhcmFtcygpCiAgICAgKiBAdXNlcyBDcmVhdGVQYXJhbWV0ZXIoKQogICAgICogQHVzZXMgU2V0UGFyYW1ldGVyVHlwZSgpCiAgICAgKiBAdXNlcyBMYW5nKCkKICAgICAqIEB1c2VzIENMRUFOX1NUUklORwogICAgICogQHVzZXMgQ0xFQU5fSU5UCiAgICAgKiBAdXNlcyBDTEVBTl9OT05FCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkKICAgIHsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgoKICAgICAgICAvKgogICAgICAgICAqIHNldHVwIG1vZHVsZSBwYXJhbWV0ZXJzCiAgICAgICAgICovCiAgICAgICAgLyogVGFnIFBhcmFtZXRlcnMgKi8KICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdocmVmJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX2hyZWYnKSwgZmFsc2UpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdocmVmJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkaXNwbGF5JywgJ2JveCcsICR0aGlzLT5MYW5nKCdoZWxwX2Rpc3BsYXknKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Rpc3BsYXknLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2dyb3VwJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX2dyb3VwJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdncm91cCcsIENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZnJhbWVhdHRyJywgJ3dpZHRoOiA0MDBweDsgaGVpZ2h0OiA0MDBweDsgc2Nyb2xsaW5nOiBhdXRvOycsICR0aGlzLT5MYW5nKCdoZWxwX2ZyYW1lYXR0cicpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZnJhbWVhdHRyJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd0aXRsZScsICdiYXNlbmFtZSgkaHJlZiknLCAkdGhpcy0+TGFuZygnaGVscF90aXRsZScpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndGl0bGUnLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2V4dHJhJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX2V4dHJhJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdleHRyYScsIENMRUFOX05PTkUpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3RleHQnLCAnYmFzZW5hbWUoJGhyZWYpJywgJHRoaXMtPkxhbmcoJ2hlbHBfdGV4dCcpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndGV4dCcsIENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGh1bWJzcmMnLCAnJywgJHRoaXMtPkxhbmcoJ2hlbHBfdGh1bWJzcmMnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RodW1ic3JjJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd0aHVtYmFsdCcsICdiYXNlbmFtZSgkdGh1bWJzcmMpJywgJHRoaXMtPkxhbmcoJ2hlbHBfdGh1bWJhbHQnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RodW1iYWx0JywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd0aHVtYmV4dHJhJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX3RodW1iZXh0cmEnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RodW1iZXh0cmEnLCBDTEVBTl9TVFJJTkcpOwoKICAgICAgICAvKiBMeXRlYm94IEdsb2JhbCBDb25maWd1cmF0aW9uICovCiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGhlbWUnLCAnZ3JleScsICR0aGlzLT5MYW5nKCdoZWxwX3RoZW1lJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd0aGVtZScsIENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGlkZUZsYXNoJywgMSwgJHRoaXMtPkxhbmcoJ2hlbHBfaGlkZUZsYXNoJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdoaWRlRmxhc2gnLCBDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ291dGVyQm9yZGVyJywgMSwgJHRoaXMtPkxhbmcoJ2hlbHBfb3V0ZXJCb3JkZXInKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ291dGVyQm9yZGVyJywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdyZXNpemVTcGVlZCcsIDgsICR0aGlzLT5MYW5nKCdoZWxwX3Jlc2l6ZVNwZWVkJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXNpemVTcGVlZCcsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbWF4T3BhY2l0eScsIDgwLCAkdGhpcy0+TGFuZygnaGVscF9tYXhPcGFjaXR5JyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtYXhPcGFjaXR5JywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCduYXZUeXBlJywgMSwgJHRoaXMtPkxhbmcoJ2hlbHBfbmF2VHlwZScpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbmF2VHlwZScsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYXV0b1Jlc2l6ZScsIDEsICR0aGlzLT5MYW5nKCdoZWxwX2F1dG9SZXNpemUnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2F1dG9SZXNpemUnLCBDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2RvQW5pbWF0aW9ucycsIDEsICR0aGlzLT5MYW5nKCdoZWxwX2RvQW5pbWF0aW9ucycpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZG9BbmltYXRpb25zJywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdib3JkZXJTaXplJywgMTIsICR0aGlzLT5MYW5nKCdoZWxwX2JvcmRlclNpemUnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2JvcmRlclNpemUnLCBDTEVBTl9JTlQpOwoKICAgICAgICAvKiBMeXRlYm94IFNsaWRlc2hvdyBPcHRpb25zICovCiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2xpZGVJbnRlcnZhbCcsIDQwMDAsICR0aGlzLT5MYW5nKCdoZWxwX3NsaWRlSW50ZXJ2YWwnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NsaWRlSW50ZXJ2YWwnLCBDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Nob3dOYXZpZ2F0aW9uJywgMSwgJHRoaXMtPkxhbmcoJ2hlbHBfc2hvd05hdmlnYXRpb24nKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Nob3dOYXZpZ2F0aW9uJywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaG93Q2xvc2UnLCAxLCAkdGhpcy0+TGFuZygnaGVscF9zaG93Q2xvc2UnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Nob3dDbG9zZScsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2hvd0RldGFpbHMnLCAxLCAkdGhpcy0+TGFuZygnaGVscF9zaG93RGV0YWlscycpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2hvd0RldGFpbHMnLCBDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Nob3dQbGF5UGF1c2UnLCAxLCAkdGhpcy0+TGFuZygnaGVscF9zaG93UGxheVBhdXNlJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaG93UGxheVBhdXNlJywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhdXRvRW5kJywgMSwgJHRoaXMtPkxhbmcoJ2hlbHBfYXV0b0VuZCcpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYXV0b0VuZCcsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncGF1c2VPbk5leHRDbGljaycsIDAsICR0aGlzLT5MYW5nKCdoZWxwX3BhdXNlT25OZXh0Q2xpY2snKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhdXNlT25OZXh0Q2xpY2snLCBDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3BhdXNlT25QcmV2Q2xpY2snLCAxLCAkdGhpcy0+TGFuZygnaGVscF9wYXVzZU9uUHJldkNsaWNrJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwYXVzZU9uUHJldkNsaWNrJywgQ0xFQU5fSU5UKTsKCiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY29uZmlnJywgJHRoaXMtPkxhbmcoJ2hlbHBfY29uZmlnJyksICcnLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY29uZmlnJywgQ0xFQU5fTk9ORSk7CiAgICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IG1ldGhvZC5pbnN0YWxsLnBocCAyIDIwMDgtMDUtMDggMDA6MzU6MDJaIHdpZWRtYW5uICQKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9MeXRlYm94CiAqLwoKaWYgKCFpc3NldCgkZ0NtcykpIHsKICAgIGV4aXQ7Cn0KCi8qKgogKiBJbnN0YWxscyB0aGUgTHl0ZWJveCBtb2R1bGUuCiAqCiAqIEBjYXRlZ29yeSAgIE1vZHVsZXMKICogQHBhY2thZ2UgICAgTHl0ZWJveAogKiBAYXV0aG9yICAgICBDYXJzdGVuIFdpZWRtYW5uIDxjYXJzdGVuX3N0dGd0QGdteC5kZT4KICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jb3B5cmlnaHQvZnJlZWJzZC1saWNlbnNlLmh0bWwgIEZyZWVCU0QgTGljZW5zZQogKiBAdmVyc2lvbiAgICBSZWxlYXNlOiAwLjEuMGRldjEKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9MeXRlYm94CiAqIEBzZWUgICAgICAgIEx5dGVib3gKICovCmNsYXNzIEx5dGVib3hfSW5zdGFsbCBleHRlbmRzIEx5dGVib3gKewogICAgLyoqCiAgICAgKiBMeXRlYm94X0luc3RhbGwoKQogICAgICoKICAgICAqIEBwYXJhbSBvYmplY3QgJiRnQ21zIHRoZSBnQ21zIG9iamVjdAogICAgICoKICAgICAqIEB1c2VzIEx5dGVib3goKQogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gTHl0ZWJveF9JbnN0YWxsKCkKICAgIHsKICAgICAgICBwYXJlbnQ6Okx5dGVib3goKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldFN0eWxlc2hlZXQoKQogICAgICoKICAgICAqIEBhdXRob3IgIE1hcmt1cyBGLiBIYXkKICAgICAqIEBsaWNlbnNlIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC8gQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAzLjAgTGljZW5zZQogICAgICogQHZlcnNpb24gUmVsZWFzZTogMy4yMgogICAgICogQGxpbmsgICAgaHR0cDovL2RvbGVtLmNvbS9seXRlYm94LwogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBzdHlsZXNoZWV0IGNvbnRlbnQKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldFN0eWxlc2hlZXQoKQogICAgewogICAgICAgICRzdHlsZXNoZWV0Y29udGVudCA9IDw8PEVPVAojbGJPdmVybGF5IHsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHotaW5kZXg6IDk5OTk4OyB3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MDBweDsgfQogICAgI2xiT3ZlcmxheS5ncmV5IHsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDsgfQogICAgI2xiT3ZlcmxheS5yZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMwMDAwOyB9CiAgICAjbGJPdmVybGF5LmdyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogIzAwMzMwMDsgfQogICAgI2xiT3ZlcmxheS5ibHVlIHsgYmFja2dyb3VuZC1jb2xvcjogIzAxMUQ1MDsgfQogICAgI2xiT3ZlcmxheS5nb2xkIHsgYmFja2dyb3VuZC1jb2xvcjogIzY2NjYwMDsgfQoKI2xiTWFpbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDk5OTk5OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVpZ2h0OiAwOyB9CiNsYk1haW4gYSBpbWcgeyBib3JkZXI6IG5vbmU7IH0KCiNsYk91dGVyQ29udGFpbmVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IG1hcmdpbjogMCBhdXRvOyB9CiAgICAjbGJPdXRlckNvbnRhaW5lci5ncmV5IHsgYm9yZGVyOiAzcHggc29saWQgIzg4ODg4ODsgfQogICAgI2xiT3V0ZXJDb250YWluZXIucmVkIHsgYm9yZGVyOiAzcHggc29saWQgI0REMDAwMDsgfQogICAgI2xiT3V0ZXJDb250YWluZXIuZ3JlZW4geyBib3JkZXI6IDNweCBzb2xpZCAjMDBCMDAwOyB9CiAgICAjbGJPdXRlckNvbnRhaW5lci5ibHVlIHsgYm9yZGVyOiAzcHggc29saWQgIzVGODlEODsgfQogICAgI2xiT3V0ZXJDb250YWluZXIuZ29sZCB7IGJvcmRlcjogM3B4IHNvbGlkICNCMEIwMDA7IH0KCiNsYkRldGFpbHNDb250YWluZXIgeyAgIGZvbnQ6IDEwcHggVmVyZGFuYSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMTAwJTsgbGluZS1oZWlnaHQ6IDEuNGVtOyBvdmVyZmxvdzogYXV0bzsgbWFyZ2luOiAwIGF1dG87IH0KICAgICNsYkRldGFpbHNDb250YWluZXIuZ3JleSB7IGJvcmRlcjogM3B4IHNvbGlkICM4ODg4ODg7IGJvcmRlci10b3A6IG5vbmU7IH0KICAgICNsYkRldGFpbHNDb250YWluZXIucmVkIHsgYm9yZGVyOiAzcHggc29saWQgI0REMDAwMDsgYm9yZGVyLXRvcDogbm9uZTsgfQogICAgI2xiRGV0YWlsc0NvbnRhaW5lci5ncmVlbiB7IGJvcmRlcjogM3B4IHNvbGlkICMwMEIwMDA7IGJvcmRlci10b3A6IG5vbmU7IH0KICAgICNsYkRldGFpbHNDb250YWluZXIuYmx1ZSB7IGJvcmRlcjogM3B4IHNvbGlkICM1Rjg5RDg7IGJvcmRlci10b3A6IG5vbmU7IH0KICAgICNsYkRldGFpbHNDb250YWluZXIuZ29sZCB7IGJvcmRlcjogM3B4IHNvbGlkICNCMEIwMDA7IGJvcmRlci10b3A6IG5vbmU7IH0KCiNsYkltYWdlQ29udGFpbmVyLCAjbGJJZnJhbWVDb250YWluZXIgeyBwYWRkaW5nOiAxMHB4OyB9CiNsYkxvYWRpbmcgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDUlOyBsZWZ0OiAwJTsgaGVpZ2h0OiAzMnB4OyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMDsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvbG9hZGluZy5naWYpIGNlbnRlciBuby1yZXBlYXQ7IH0KCiNsYkhvdmVyTmF2IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDEwOyB9CiNsYkltYWdlQ29udGFpbmVyPiNsYkhvdmVyTmF2IHsgbGVmdDogMDsgfQojbGJIb3Zlck5hdiBhIHsgb3V0bGluZTogbm9uZTsgfQoKI2xiUHJldiB7IHdpZHRoOiA0OSU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvYmxhbmsuZ2lmKSBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyBsZWZ0OiAwOyBmbG9hdDogbGVmdDsgfQogICAgI2xiUHJldi5ncmV5OmhvdmVyLCAjbGJQcmV2LmdyZXk6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL3ByZXZfZ3JleS5naWYpIGxlZnQgMTUlIG5vLXJlcGVhdDsgfQogICAgI2xiUHJldi5yZWQ6aG92ZXIsICNsYlByZXYucmVkOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wcmV2X3JlZC5naWYpIGxlZnQgMTUlIG5vLXJlcGVhdDsgfQogICAgI2xiUHJldi5ncmVlbjpob3ZlciwgI2xiUHJldi5ncmVlbjp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvcHJldl9ncmVlbi5naWYpIGxlZnQgMTUlIG5vLXJlcGVhdDsgfQogICAgI2xiUHJldi5ibHVlOmhvdmVyLCAjbGJQcmV2LmJsdWU6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL3ByZXZfYmx1ZS5naWYpIGxlZnQgMTUlIG5vLXJlcGVhdDsgfQogICAgI2xiUHJldi5nb2xkOmhvdmVyLCAjbGJQcmV2LmdvbGQ6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL3ByZXZfZ29sZC5naWYpIGxlZnQgMTUlIG5vLXJlcGVhdDsgfQoKI2xiTmV4dCB7IHdpZHRoOiA0OSU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvYmxhbmsuZ2lmKSBuby1yZXBlYXQ7IGRpc3BsYXk6IGJsb2NrOyByaWdodDogMDsgZmxvYXQ6IHJpZ2h0OyB9CiAgICAjbGJOZXh0LmdyZXk6aG92ZXIsICNsYk5leHQuZ3JleTp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvbmV4dF9ncmV5LmdpZikgcmlnaHQgMTUlIG5vLXJlcGVhdDsgfQogICAgI2xiTmV4dC5yZWQ6aG92ZXIsICNsYk5leHQucmVkOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9uZXh0X3JlZC5naWYpIHJpZ2h0IDE1JSBuby1yZXBlYXQ7IH0KICAgICNsYk5leHQuZ3JlZW46aG92ZXIsICNsYk5leHQuZ3JlZW46dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL25leHRfZ3JlZW4uZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9CiAgICAjbGJOZXh0LmJsdWU6aG92ZXIsICNsYk5leHQuYmx1ZTp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvbmV4dF9ibHVlLmdpZikgcmlnaHQgMTUlIG5vLXJlcGVhdDsgfQogICAgI2xiTmV4dC5nb2xkOmhvdmVyLCAjbGJOZXh0LmdvbGQ6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL25leHRfZ29sZC5naWYpIHJpZ2h0IDE1JSBuby1yZXBlYXQ7IH0KCiNsYlByZXYyLCAjbGJOZXh0MiB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0KICAgICNsYlByZXYyLmdyZXksICNsYk5leHQyLmdyZXksICNsYlNwYWNlci5ncmV5IHsgY29sb3I6ICMzMzMzMzM7IH0KICAgICNsYlByZXYyLnJlZCwgI2xiTmV4dDIucmVkLCAjbGJTcGFjZXIucmVkIHsgY29sb3I6ICM2MjAwMDA7IH0KICAgICNsYlByZXYyLmdyZWVuLCAjbGJOZXh0Mi5ncmVlbiwgI2xiU3BhY2VyLmdyZWVuIHsgY29sb3I6ICMwMDMzMDA7IH0KICAgICNsYlByZXYyLmJsdWUsICNsYk5leHQyLmJsdWUsICNsYlNwYWNlci5ibHVlIHsgY29sb3I6ICMwMTM3OUU7IH0KICAgICNsYlByZXYyLmdvbGQsICNsYk5leHQyLmdvbGQsICNsYlNwYWNlci5nb2xkIHsgY29sb3I6ICM2NjY2MDA7IH0KCiNsYlByZXYyX09mZiwgI2xiTmV4dDJfT2ZmIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0KICAgICNsYlByZXYyX09mZi5ncmV5LCAjbGJOZXh0Ml9PZmYuZ3JleSB7IGNvbG9yOiAjQ0NDQ0NDOyB9CiAgICAjbGJQcmV2Ml9PZmYucmVkLCAjbGJOZXh0Ml9PZmYucmVkIHsgY29sb3I6ICNGRkNDQ0M7IH0KICAgICNsYlByZXYyX09mZi5ncmVlbiwgI2xiTmV4dDJfT2ZmLmdyZWVuIHsgY29sb3I6ICM4MkZGODI7IH0KICAgICNsYlByZXYyX09mZi5ibHVlLCAjbGJOZXh0Ml9PZmYuYmx1ZSB7IGNvbG9yOiAjQjdDQUVFOyB9CiAgICAjbGJQcmV2Ml9PZmYuZ29sZCwgI2xiTmV4dDJfT2ZmLmdvbGQgeyBjb2xvcjogI0UxRTEwMDsgfQoKI2xiRGV0YWlsc0RhdGEgeyBwYWRkaW5nOiAwIDEwcHg7IH0KICAgICNsYkRldGFpbHNEYXRhLmdyZXkgeyBjb2xvcjogIzMzMzMzMzsgfQogICAgI2xiRGV0YWlsc0RhdGEucmVkIHsgY29sb3I6ICM2MjAwMDA7IH0KICAgICNsYkRldGFpbHNEYXRhLmdyZWVuIHsgY29sb3I6ICMwMDMzMDA7IH0KICAgICNsYkRldGFpbHNEYXRhLmJsdWUgeyBjb2xvcjogIzAxMzc5RTsgfQogICAgI2xiRGV0YWlsc0RhdGEuZ29sZCB7IGNvbG9yOiAjNjY2NjAwOyB9CgojbGJEZXRhaWxzIHsgd2lkdGg6IDYwJTsgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IGxlZnQ7IH0KI2xiQ2FwdGlvbiB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXdlaWdodDogYm9sZDsgfQojbGJOdW1iZXJEaXNwbGF5IHsgZmxvYXQ6IGxlZnQ7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLWJvdHRvbTogMS4wZW07IH0KI2xiTmF2RGlzcGxheSB7IGZsb2F0OiBsZWZ0OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1ib3R0b206IDEuMGVtOyB9CgojbGJDbG9zZSB7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDI4cHg7IGZsb2F0OiByaWdodDsgbWFyZ2luLWJvdHRvbTogMXB4OyB9CiAgICAjbGJDbG9zZS5ncmV5IHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvY2xvc2VfZ3JleS5wbmcpIG5vLXJlcGVhdDsgfQogICAgI2xiQ2xvc2UucmVkIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvY2xvc2VfcmVkLnBuZykgbm8tcmVwZWF0OyB9CiAgICAjbGJDbG9zZS5ncmVlbiB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL2Nsb3NlX2dyZWVuLnBuZykgbm8tcmVwZWF0OyB9CiAgICAjbGJDbG9zZS5ibHVlIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvY2xvc2VfYmx1ZS5wbmcpIG5vLXJlcGVhdDsgfQogICAgI2xiQ2xvc2UuZ29sZCB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL2Nsb3NlX2dvbGQucG5nKSBuby1yZXBlYXQ7IH0KCiNsYlBsYXkgeyB3aWR0aDogNjRweDsgaGVpZ2h0OiAyOHB4OyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1ib3R0b206IDFweDsgfQogICAgI2xiUGxheS5ncmV5IHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvcGxheV9ncmV5LnBuZykgbm8tcmVwZWF0OyB9CiAgICAjbGJQbGF5LnJlZCB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL3BsYXlfcmVkLnBuZykgbm8tcmVwZWF0OyB9CiAgICAjbGJQbGF5LmdyZWVuIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvcGxheV9ncmVlbi5wbmcpIG5vLXJlcGVhdDsgfQogICAgI2xiUGxheS5ibHVlIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvcGxheV9ibHVlLnBuZykgbm8tcmVwZWF0OyB9CiAgICAjbGJQbGF5LmdvbGQgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wbGF5X2dvbGQucG5nKSBuby1yZXBlYXQ7IH0KCiNsYlBhdXNlIHsgd2lkdGg6IDY0cHg7IGhlaWdodDogMjhweDsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tYm90dG9tOiAxcHg7IH0KICAgICNsYlBhdXNlLmdyZXkgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wYXVzZV9ncmV5LnBuZykgbm8tcmVwZWF0OyB9CiAgICAjbGJQYXVzZS5yZWQgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wYXVzZV9yZWQucG5nKSBuby1yZXBlYXQ7IH0KICAgICNsYlBhdXNlLmdyZWVuIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvcGF1c2VfZ3JlZW4ucG5nKSBuby1yZXBlYXQ7IH0KICAgICNsYlBhdXNlLmJsdWUgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wYXVzZV9ibHVlLnBuZykgbm8tcmVwZWF0OyB9CiAgICAjbGJQYXVzZS5nb2xkIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvcGF1c2VfZ29sZC5wbmcpIG5vLXJlcGVhdDsgfQpFT1Q7CgogICAgICAgIHJldHVybiB1dGY4X2VuY29kZSgkc3R5bGVzaGVldGNvbnRlbnQpOwogICAgfQoKICAgIC8qKgogICAgICogRG9JbnN0YWxsKCkKICAgICAqCiAgICAgKiBAdXNlcyBHZXRTdHlsZXNoZWV0T3BlcmF0aW9ucygpCiAgICAgKiBAdXNlcyBTdHlsZXNoZWV0KCkKICAgICAqIEB1c2VzIEluc2VydFN0eWxlc2hlZXQoKQogICAgICogQHVzZXMgU2V0UHJlZmVyZW5jZSgpCiAgICAgKiBAdXNlcyBBdWRpdCgpCiAgICAgKiBAdXNlcyBMYW5nKCkKICAgICAqIEB1c2VzIEdldFZlcnNpb24oKQogICAgICogQHVzZXMgR2V0U3R5bGVzaGVldCgpCiAgICAgKiBAdXNlcyAkY21zCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBEb0luc3RhbGwoKQogICAgewoKICAgICAgICAvKgogICAgICAgICAqIGNyZWF0ZSBuZXcgc3R5bGVzaGVldAogICAgICAgICAqLwogICAgICAgICRzdHlsZXNoZWV0b3BzID0mICR0aGlzLT5jbXMtPkdldFN0eWxlc2hlZXRPcGVyYXRpb25zKCk7CiAgICAgICAgJHN0eWxlc2hlZXQgICAgPSAgbmV3IFN0eWxlc2hlZXQoKTsKCiAgICAgICAgJHN0eWxlc2hlZXQtPm5hbWUgICAgICAgPSAnTW9kdWxlOiBMeXRlYm94JzsKICAgICAgICAkc3R5bGVzaGVldC0+dmFsdWUgICAgICA9ICR0aGlzLT5HZXRTdHlsZXNoZWV0KCk7CiAgICAgICAgJHN0eWxlc2hlZXQtPm1lZGlhX3R5cGUgPSAnc2NyZWVuJzsKCiAgICAgICAgLyoKICAgICAgICAgKiBzYXZlIHN0eWxlc2hlZXQgaW4gZGF0YWJhc2UKICAgICAgICAgKi8KICAgICAgICAkY3NzaWQgPSAkc3R5bGVzaGVldG9wcy0+SW5zZXJ0U3R5bGVzaGVldCgkc3R5bGVzaGVldCk7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Nzc2lkJywgKHN0cmluZykgJGNzc2lkKTsKCiAgICAgICAgLyoKICAgICAgICAgKiBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKICAgICAgICAgKi8KICAgICAgICAkdGhpcy0+QXVkaXQoMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwogICAgfQp9CgokaW5zdGFsbCA9IG5ldyBMeXRlYm94X0luc3RhbGwoJGdDbXMpOwokaW5zdGFsbC0+RG9JbnN0YWxsKCk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IG1ldGhvZC51bmluc3RhbGwucGhwIDIgMjAwOC0wNS0wOCAwMDozNTowMlogd2llZG1hbm4gJAogKiBAbGluayAgICAgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL0x5dGVib3gKICovCgppZiAoIWlzc2V0KCRnQ21zKSkgewogICAgZXhpdDsKfQoKLyoqCiAqIFVuaW5zdGFsbHMgdGhlIEx5dGVib3ggbW9kdWxlLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY29weXJpZ2h0L2ZyZWVic2QtbGljZW5zZS5odG1sICBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgUmVsZWFzZTogMC4xLjBkZXYxCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvTHl0ZWJveAogKiBAc2VlICAgICAgICBMeXRlYm94CiAqLwpjbGFzcyBMeXRlYm94X1VuaW5zdGFsbCBleHRlbmRzIEx5dGVib3gKewogICAgLyoqCiAgICAgKiBMeXRlYm94X1VuaW5zdGFsbCgpCiAgICAgKgogICAgICogQHVzZXMgTHl0ZWJveCgpCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBMeXRlYm94X1VuaW5zdGFsbCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpMeXRlYm94KCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBEb1VuaW5zdGFsbCgpCiAgICAgKgogICAgICogQHVzZXMgR2V0U3R5bGVzaGVldE9wZXJhdGlvbnMoKQogICAgICogQHVzZXMgRGVsZXRlU3R5bGVzaGVldEJ5SUQoKQogICAgICogQHVzZXMgR2V0UHJlZmVyZW5jZSgpCiAgICAgKiBAdXNlcyBSZW1vdmVQcmVmZXJlbmNlKCkKICAgICAqIEB1c2VzIEF1ZGl0KCkKICAgICAqIEB1c2VzIExhbmcoKQogICAgICogQHVzZXMgJGNtcwogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gRG9Vbmluc3RhbGwoKQogICAgewogICAgICAgIC8qCiAgICAgICAgICogcmVtb3ZlIHN0eWxlc2hlZXQgZnJvbSBkYXRhYmFzZQogICAgICAgICAqLwogICAgICAgICRjc3NpZCA9IChpbnQpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjc3NpZCcsICctMScpOwogICAgICAgIGlmICgtMSAhPSAkY3NzaWQpIHsKICAgICAgICAgICAgJHN0eWxlc2hlZXRvcHMgPSYgJHRoaXMtPmNtcy0+R2V0U3R5bGVzaGVldE9wZXJhdGlvbnMoKTsKICAgICAgICAgICAgJHN0eWxlc2hlZXRvcHMtPkRlbGV0ZVN0eWxlc2hlZXRCeUlEKCRjc3NpZCk7CiAgICAgICAgfQoKICAgICAgICAvKgogICAgICAgICAqIHJlbW92ZSBzZXR0aW5ncyBmcm9tIGRhdGFiYXNlCiAgICAgICAgICovCiAgICAgICAgJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKCiAgICAgICAgLyoKICAgICAgICAgKiBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKICAgICAgICAgKi8KICAgICAgICAkdGhpcy0+QXVkaXQoMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7CiAgICB9Cn0KCiR1bmluc3RhbGwgPSBuZXcgTHl0ZWJveF9Vbmluc3RhbGwoKTsKJHVuaW5zdGFsbC0+RG9Vbmluc3RhbGwoKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IG1ldGhvZC51cGdyYWRlLnBocCAyIDIwMDgtMDUtMDggMDA6MzU6MDJaIHdpZWRtYW5uICQKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9MeXRlYm94CiAqLwoKaWYgKCFpc3NldCgkZ0NtcykpIHsKICAgIGV4aXQ7Cn0KCi8qKgogKiBVcGdyYWRlcyB0aGUgTHl0ZWJveCBtb2R1bGUuCiAqCiAqIEBjYXRlZ29yeSAgIE1vZHVsZXMKICogQHBhY2thZ2UgICAgTHl0ZWJveAogKiBAYXV0aG9yICAgICBDYXJzdGVuIFdpZWRtYW5uIDxjYXJzdGVuX3N0dGd0QGdteC5kZT4KICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jb3B5cmlnaHQvZnJlZWJzZC1saWNlbnNlLmh0bWwgIEZyZWVCU0QgTGljZW5zZQogKiBAdmVyc2lvbiAgICBSZWxlYXNlOiAwLjEuMGRldjEKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9MeXRlYm94CiAqIEBzZWUgICAgICAgIEx5dGVib3gKICovCmNsYXNzIEx5dGVib3hfVW5pbnN0YWxsIGV4dGVuZHMgTHl0ZWJveAp7CiAgICAvKioKICAgICAqIGNvbnRhaW5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBvbGQgbW9kdWxlCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHZhciAkb2xkdmVyc2lvbjsKCiAgICAvKioKICAgICAqIGNvbnRhaW5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBuZXcgbW9kdWxlCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHZhciAkbmV3dmVyc2lvbjsKCiAgICAvKioKICAgICAqIEx5dGVib3hfVXBncmFkZSgpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAmJG9sZHZlcnNpb24gVGhlIHZlcnNpb24gd2UgYXJlIHVwZ3JhZGluZyBmcm9tCiAgICAgKiBAcGFyYW0gc3RyaW5nICYkbmV3dmVyc2lvbiBUaGUgdmVyc2lvbiB3ZSBhcmUgdXBncmFkaW5nIHRvCiAgICAgKgogICAgICogQHVzZXMgTHl0ZWJveCgpCiAgICAgKiBAdXNlcyAkb2xkdmVyc2lvbgogICAgICogQHVzZXMgJG5ld3ZlcnNpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIEx5dGVib3hfVXBncmFkZSgmJG9sZHZlcnNpb24sICYkbmV3dmVyc2lvbikKICAgIHsKICAgICAgICBwYXJlbnQ6Okx5dGVib3goKTsKCiAgICAgICAgJHRoaXMtPm9sZHZlcnNpb24gPSYgJG9sZHZlcnNpb247CiAgICAgICAgJHRoaXMtPm5ld3ZlcnNpb24gPSYgJG5ld3ZlcnNpb247CiAgICB9CgogICAgLyoqCiAgICAgKiBEb1VwZ3JhZGUoKQogICAgICoKICAgICAqIEB1c2VzIEF1ZGl0KCkKICAgICAqIEB1c2VzIExhbmcoKQogICAgICogQHVzZXMgR2V0VmVyc2lvbigpCiAgICAgKiBAdXNlcyAkb2xkdmVyc2lvbgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gRG9VcGdyYWRlKCkKICAgIHsKICAgICAgICAvKgogICAgICAgICAqIG1ha2UgdGhlIHVwZ3JhZGUgdGFza3MKICAgICAgICAgKi8KICAgICAgICBzd2l0Y2ggKCR0aGlzLT5vbGR2ZXJzaW9uKSB7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgLyoKICAgICAgICAgKiBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKICAgICAgICAgKi8KICAgICAgICAkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwogICAgfQp9CgokdXBncmFkZSA9IG5ldyBMeXRlYm94X1VwZ3JhZGUoJG9sZHZlcnNpb24sICRuZXd2ZXJzaW9uKTsKJHVwZ3JhZGUtPkRvVXBncmFkZSgpOwoKPz4K]]></data>
	</file>
</module>
