<?xml version="1.0" encoding="ISO-8859-1"?>
<gallerytpl>
	<name>PhotoSwipe</name>
	<version>4.1.1-1</version>
	<galleryversion>2.1.6</galleryversion>
	<about>PHA+VGhpcyBHYWxsZXJ5dGVtcGxhdGUgdXNlcyB0aGUgUGhvdG9Td2lwZSBzY3JpcHQgdmVyc2lvbiA0LjEuMcKgYnnCoDxhIGhyZWY9Imh0dHA6Ly93d3cuY29kZWNvbXB1dGVybG92ZS5jb20vIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5Db2RlIENvbXB1dGVybG92ZTwvYT4gYW5kIHdhcyBjb250cmlidXRlZCBieSBSb2xmIFRqYXNzZW5zLjwvcD4NCjxwPjxzdHJvbmc+Tk9URTo8L3N0cm9uZz4gVGhlIHNtYXJ0eXRlbXBsYXRlIG1ha2VzIHVzZSBvZiBhIG1ldGhvZCBkZXNjcmliZWQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5jbXNjYW5iZXNpbXBsZS5vcmcvYmxvZy9nZXR0aW5nLXRoZS1pbWFnZS1kaW1lbnNpb25zLWluLXNtYXJ0eSIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+d3d3LmNtc2NhbmJlc2ltcGxlLm9yZy9ibG9nL2dldHRpbmctdGhlLWltYWdlLWRpbWVuc2lvbnMtaW4tc21hcnR5PC9hPjxiciAvPiBCZWNhdXNlIG9mIHRoaXMgeW91IG5lZWQgdG8gYWRkIHRoaXMgbGluZSB0byB0aGUgY29uZmlnLnBocCBmaWxlOiA8Y29kZT4kY29uZmlnWydwZXJtaXNzaXZlX3NtYXJ0eSddID0gMTs8L2NvZGU+PC9wPg0KPHA+RG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgYXQgPGEgaHJlZj0iaHR0cDovL3Bob3Rvc3dpcGUuY29tLyIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+cGhvdG9zd2lwZS5jb208L2E+PC9wPg0KPHA+RmlsZXMgdGhhdCBjb21lIHdpdGggUGhvdG9Td2lwZSBhcmUgc3RvcmVkIGluIDxlbT5tb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL3Bob3Rvc3dpcGUvPC9lbT48L3A+DQo8cD5QaG90b1N3aXBlIGlzIGZyZWUgdG8gdXNlIGZvciBwZXJzb25hbCBhbmQgY29tbWVyY2lhbCBwcm9qZWN0cy4gSXQgZmFsbHMgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwIj5NSVQgbGljZW5zZTwvYT4uPC9wPg==</about>
	<thumbwidth>150</thumbwidth>
	<thumbheight>150</thumbheight>
	<resizemethod>cr</resizemethod>
	<maxnumber></maxnumber>
	<sortitems>0</sortitems>
	<tplcode>eyoNClBob3RvU3dpcGUgaXMgZnJlZSB0byB1c2UgZm9yIHBlcnNvbmFsIGFuZCBjb21tZXJjaWFsIHByb2plY3RzLCBpdCBmYWxscyB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuIE1vcmUgaW5mbzogd3d3LnBob3Rvc3dpcGUuY29tDQpUaGlzIHRlbXBsYXRlIG1ha2VzIHVzZSBvZiBodHRwOi8vd3d3LmNtc2NhbmJlc2ltcGxlLm9yZy9ibG9nL2dldHRpbmctdGhlLWltYWdlLWRpbWVuc2lvbnMtaW4tc21hcnR5DQpCZWNhdXNlIG9mIHRoaXMgeW91IG5lZWQgdG8gYWRkIHRvIHRoZSBjb25maWcucGhwIGZpbGU6ICRjb25maWdbJ3Blcm1pc3NpdmVfc21hcnR5J10gPSAxOw0KKn0NCg0KPGRpdiBjbGFzcz0iZ2FsbGVyeSI+DQogICAge2lmICFlbXB0eSgkbW9kdWxlX21lc3NhZ2UpfTxoND57JG1vZHVsZV9tZXNzYWdlfGVzY2FwZX08L2g0PnsvaWZ9DQogICAge2lmICFlbXB0eSgkZ2FsbGVyeXRpdGxlKX08aDM+eyRnYWxsZXJ5dGl0bGV9PC9oMz57L2lmfQ0KICAgIHtpZiAhZW1wdHkoJGdhbGxlcnljb21tZW50KX08ZGl2IGNsYXNzPSJnYWxsZXJ5Y29tbWVudCI+eyRnYWxsZXJ5Y29tbWVudH08L2Rpdj57L2lmfQ0KICAgIDxwPnskaW1hZ2Vjb3VudH08L3A+DQogICAgPGRpdiBjbGFzcz0icGFnZW5hdmlnYXRpb24iPg0KICAgICAgICB7aWYgJHBhZ2VzID4gMX0NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZwYWdlIj57JHByZXZwYWdlfTwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV4dHBhZ2UiPnskbmV4dHBhZ2V9PC9kaXY+DQogICAgICAgIHsvaWZ9DQogICAgICAgIHtpZiAhJGhpZGVwYXJlbnRsaW5rICYmICFlbXB0eSgkcGFyZW50bGluayl9PGRpdiBjbGFzcz0icGFyZW50bGluayI+eyRwYXJlbnRsaW5rfTwvZGl2PnsvaWZ9DQogICAgICAgIHtpZiAkcGFnZXMgPiAxfTxkaXYgY2xhc3M9InBhZ2VsaW5rcyI+eyRwYWdlbGlua3N9PC9kaXY+ey9pZn0NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9ImdhbGxlcnljbGVhcmZpeCIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9JbWFnZUdhbGxlcnkiPg0KICAgICAgICB7Zm9yZWFjaCBmcm9tPSRpbWFnZXMgaXRlbT1pbWFnZX0NCiAgICAgICAgICAgIHtpZiAkaW1hZ2UtPmlzZGlyfQ0KICAgICAgICAgICAgICAgIDxmaWd1cmUgaXRlbXByb3A9ImFzc29jaWF0ZWRNZWRpYSIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9JbWFnZU9iamVjdCIgY2xhc3M9ImltZyI+DQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InskaW1hZ2UtPmZpbGV9IiBpdGVtcHJvcD0iY29udGVudFVybCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0ieyRpbWFnZS0+dGh1bWJ8ZXNjYXBlOid1cmwnfHJlcGxhY2U6JyUyRic6Jy8nfSIgaXRlbXByb3A9InRodW1ibmFpbCIgYWx0PSJ7JGltYWdlLT50aXRsZX0iIC8+DQogICAgICAgICAgICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gaXRlbXByb3A9ImNhcHRpb24gZGVzY3JpcHRpb24iPnskaW1hZ2UtPnRpdGxlfTwvZmlnY2FwdGlvbj4NCiAgICAgICAgICAgICAgICAgPC9maWd1cmU+DQogICAgICAgICAgICB7L2lmfQ0KICAgICAgICB7L2ZvcmVhY2h9DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJQaG90b1N3aXBlIGdhbGxlcnljbGVhcmZpeCIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9JbWFnZUdhbGxlcnkiPg0KICAgICAgICB7Zm9yZWFjaCBmcm9tPSRpbWFnZXMgaXRlbT1pbWFnZX0NCiAgICAgICAgICAgIHtpZiAhJGltYWdlLT5pc2Rpcn0NCiAgICAgICAgICAgICAgICA8ZmlndXJlIGl0ZW1wcm9wPSJhc3NvY2lhdGVkTWVkaWEiIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvSW1hZ2VPYmplY3QiIGNsYXNzPSJpbWciPg0KICAgICAgICAgICAgICAgICAgICB7JGltYWdlc2l6ZT1nZXRpbWFnZXNpemUoJGltYWdlLT5maWxlKX0NCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ieyRpbWFnZS0+ZmlsZXxlc2NhcGU6J3VybCd8cmVwbGFjZTonJTJGJzonLyd9IiBpdGVtcHJvcD0iY29udGVudFVybCIgZGF0YS1zaXplPSJ7JGltYWdlc2l6ZVswXX14eyRpbWFnZXNpemVbMV19Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJ7JGltYWdlLT50aHVtYnxlc2NhcGU6J3VybCd8cmVwbGFjZTonJTJGJzonLyd9IiBpdGVtcHJvcD0idGh1bWJuYWlsIiBhbHQ9InskaW1hZ2UtPnRpdGxlfSIgLz4NCiAgICAgICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgICAgICAgICA8ZmlnY2FwdGlvbiBpdGVtcHJvcD0iY2FwdGlvbiBkZXNjcmlwdGlvbiI+eyRpbWFnZS0+dGl0bGV9PC9maWdjYXB0aW9uPg0KICAgICAgICAgICAgICAgICA8L2ZpZ3VyZT4NCiAgICAgICAgICAgIHsvaWZ9DQogICAgICAgIHsvZm9yZWFjaH0NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwc3dwIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1oaWRkZW49InRydWUiPg0KICAgIDxkaXYgY2xhc3M9InBzd3BfX2JnIj48L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwc3dwX19zY3JvbGwtd3JhcCI+DQogICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX2NvbnRhaW5lciI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwc3dwX19pdGVtIj48L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX2l0ZW0iPjwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHN3cF9faXRlbSI+PC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJwc3dwX191aSBwc3dwX191aS0taGlkZGVuIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX3RvcC1iYXIiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX2NvdW50ZXIiPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InBzd3BfX2J1dHRvbiBwc3dwX19idXR0b24tLWNsb3NlIiB0aXRsZT0iQ2xvc2UgKEVzYykiPjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InBzd3BfX2J1dHRvbiBwc3dwX19idXR0b24tLXNoYXJlIiB0aXRsZT0iU2hhcmUiPjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InBzd3BfX2J1dHRvbiBwc3dwX19idXR0b24tLWZzIiB0aXRsZT0iVG9nZ2xlIGZ1bGxzY3JlZW4iPjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InBzd3BfX2J1dHRvbiBwc3dwX19idXR0b24tLXpvb20iIHRpdGxlPSJab29tIGluL291dCI+PC9idXR0b24+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHN3cF9fcHJlbG9hZGVyIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHN3cF9fcHJlbG9hZGVyX19pY24iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHN3cF9fcHJlbG9hZGVyX19jdXQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX3ByZWxvYWRlcl9fZG9udXQiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwc3dwX19zaGFyZS1tb2RhbCBwc3dwX19zaGFyZS1tb2RhbC0taGlkZGVuIHBzd3BfX3NpbmdsZS10YXAiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX3NoYXJlLXRvb2x0aXAiPjwvZGl2PiANCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icHN3cF9fYnV0dG9uIHBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQiIHRpdGxlPSJQcmV2aW91cyAoYXJyb3cgbGVmdCkiPjwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icHN3cF9fYnV0dG9uIHBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IiB0aXRsZT0iTmV4dCAoYXJyb3cgcmlnaHQpIj48L2J1dHRvbj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX2NhcHRpb24iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX2NhcHRpb25fX2NlbnRlciI+PC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQo8L2Rpdj4=</tplcode>
	<tplcss>LmdhbGxlcnkgLmltZyB7DQogICAgaGVpZ2h0OiAxNTBweDsNCiAgICB3aWR0aDogMTUwcHg7DQogICAgZmxvYXQ6IGxlZnQ7DQogICAgbWFyZ2luOiAxMHB4IDEwcHggMjVweCAxMHB4Ow0KICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KLmdhbGxlcnkgLmltZyBhIHsgZGlzcGxheTogaW5saW5lLWJsb2NrIH0NCg0KLmdhbGxlcnkgLmltZyBhOmhvdmVyIHsNCiAgICBvcGFjaXR5OiAwLjg7DQogICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTgwKTsNCiAgICAtbXMtZmlsdGVyOiAiYWxwaGEob3BhY2l0eT04MCkiOw0KICAgIC1raHRtbC1vcGFjaXR5OiAwLjg7DQogICAgLW1vei1vcGFjaXR5OiAwLjg7DQp9DQoNCi5nYWxsZXJ5IGltZyB7IGJvcmRlcjogbm9uZSB9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiB7IGhlaWdodDogNTBweCB9DQoNCi5nYWxsZXJ5IC5wcmV2cGFnZSBhLA0KLmdhbGxlcnkgLnByZXZwYWdlIGVtIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICB3aWR0aDogNTBweDsNCiAgICBoZWlnaHQ6IDM5cHg7DQogICAgZmxvYXQ6IGxlZnQ7DQogICAgbWFyZ2luOiAwOw0KICAgIHRleHQtaW5kZW50OiAtMTAwMHB4Ow0KICAgIGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvcHJldmlvdXMucG5nKSB0cmFuc3BhcmVudCBuby1yZXBlYXQgMCAwOw0KICAgIG92ZXJmbG93OiBoaWRkZW47DQp9DQoNCi5nYWxsZXJ5IC5uZXh0cGFnZSBhLA0KLmdhbGxlcnkgLm5leHRwYWdlIGVtIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICB3aWR0aDogNTBweDsNCiAgICBoZWlnaHQ6IDM5cHg7DQogICAgZmxvYXQ6IGxlZnQ7DQogICAgbWFyZ2luOiAwIDZweCAwIDA7DQogICAgdGV4dC1pbmRlbnQ6IC0xMDAwcHg7DQogICAgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9uZXh0LnBuZykgdHJhbnNwYXJlbnQgbm8tcmVwZWF0IDAgMDsNCiAgICBvdmVyZmxvdzogaGlkZGVuOw0KfQ0KDQouZ2FsbGVyeSAucGFyZW50bGluayBhIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICB3aWR0aDogNTBweDsNCiAgICBoZWlnaHQ6IDM5cHg7DQogICAgZmxvYXQ6IGxlZnQ7DQogICAgdGV4dC1pbmRlbnQ6IC0xMDAwcHg7DQogICAgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy91cHBhZ2UucG5nKSB0cmFuc3BhcmVudCBuby1yZXBlYXQgMCAwOw0KICAgIG92ZXJmbG93OiBoaWRkZW47DQp9DQoNCi5nYWxsZXJ5IC5wYWdlbmF2aWdhdGlvbiBhOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDBweCB9DQoNCi5nYWxsZXJ5IC5wcmV2cGFnZSBlbSwNCi5nYWxsZXJ5IC5uZXh0cGFnZSBlbSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTgwcHggfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIHsNCiAgICBmbG9hdDogcmlnaHQ7DQogICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzY2NjsNCn0NCg0KLmdhbGxlcnkgLnBhZ2VsaW5rcyBhLA0KLmdhbGxlcnkgLnBhZ2VsaW5rcyBlbSB7DQogICAgbWFyZ2luLXRvcDogNnB4Ow0KICAgIHBhZGRpbmc6IDAgNnB4Ow0KICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgZm9udDogYm9sZCAxMXB4IHZlcmRhbmE7IGNvbG9yOiAjNjY2Ow0KfQ0KDQouZ2FsbGVyeSAucGFnZWxpbmtzIGVtIHsgY29sb3I6ICMwMDA7IH0NCg0KLmdhbGxlcnljbGVhcmZpeCB7IG92ZXJmbG93OiBhdXRvOyB9</tplcss>
	<tpljs>PCEtLSBDb3JlIENTUyBmaWxlIC0tPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJtb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL3Bob3Rvc3dpcGUvcGhvdG9zd2lwZS5jc3MiPg0KDQo8IS0tIFNraW4gQ1NTIGZpbGUgLS0+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvcGhvdG9zd2lwZS9kZWZhdWx0LXNraW4vZGVmYXVsdC1za2luLmNzcyI+DQoNCjwhLS0gQ29yZSBKUyBmaWxlIC0tPg0KPHNjcmlwdCBzcmM9Im1vZHVsZXMvR2FsbGVyeS90ZW1wbGF0ZXMvcGhvdG9zd2lwZS9waG90b3N3aXBlLm1pbi5qcyI+PC9zY3JpcHQ+DQoNCjwhLS0gVUkgSlMgZmlsZSAtLT4NCjxzY3JpcHQgc3JjPSJtb2R1bGVzL0dhbGxlcnkvdGVtcGxhdGVzL3Bob3Rvc3dpcGUvcGhvdG9zd2lwZS11aS1kZWZhdWx0Lm1pbi5qcyI+PC9zY3JpcHQ+DQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCnZhciBpbml0UGhvdG9Td2lwZUZyb21ET00gPSBmdW5jdGlvbihnYWxsZXJ5U2VsZWN0b3IpIHsNCg0KICAgIC8vIHBhcnNlIHNsaWRlIGRhdGEgKHVybCwgdGl0bGUsIHNpemUgLi4uKSBmcm9tIERPTSBlbGVtZW50cyANCiAgICAvLyAoY2hpbGRyZW4gb2YgZ2FsbGVyeVNlbGVjdG9yKQ0KICAgIHZhciBwYXJzZVRodW1ibmFpbEVsZW1lbnRzID0gZnVuY3Rpb24oZWwpIHsNCiAgICAgICAgdmFyIHRodW1iRWxlbWVudHMgPSBlbC5jaGlsZE5vZGVzLA0KICAgICAgICAgICAgbnVtTm9kZXMgPSB0aHVtYkVsZW1lbnRzLmxlbmd0aCwNCiAgICAgICAgICAgIGl0ZW1zID0gW10sDQogICAgICAgICAgICBmaWd1cmVFbCwNCiAgICAgICAgICAgIGxpbmtFbCwNCiAgICAgICAgICAgIHNpemUsDQogICAgICAgICAgICBpdGVtOw0KDQogICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBudW1Ob2RlczsgaSsrKSB7DQoNCiAgICAgICAgICAgIGZpZ3VyZUVsID0gdGh1bWJFbGVtZW50c1tpXTsgLy8gPGZpZ3VyZT4gZWxlbWVudA0KDQogICAgICAgICAgICAvLyBpbmNsdWRlIG9ubHkgZWxlbWVudCBub2RlcyANCiAgICAgICAgICAgIGlmKGZpZ3VyZUVsLm5vZGVUeXBlICE9PSAxKSB7DQogICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGxpbmtFbCA9IGZpZ3VyZUVsLmNoaWxkcmVuWzBdOyAvLyA8YT4gZWxlbWVudA0KDQogICAgICAgICAgICBzaXplID0gbGlua0VsLmdldEF0dHJpYnV0ZSgnZGF0YS1zaXplJykuc3BsaXQoJ3gnKTsNCg0KICAgICAgICAgICAgLy8gY3JlYXRlIHNsaWRlIG9iamVjdA0KICAgICAgICAgICAgaXRlbSA9IHsNCiAgICAgICAgICAgICAgICBzcmM6IGxpbmtFbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSwNCiAgICAgICAgICAgICAgICB3OiBwYXJzZUludChzaXplWzBdLCAxMCksDQogICAgICAgICAgICAgICAgaDogcGFyc2VJbnQoc2l6ZVsxXSwgMTApDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBpZihmaWd1cmVFbC5jaGlsZHJlbi5sZW5ndGggPiAxKSB7DQogICAgICAgICAgICAgICAgLy8gPGZpZ2NhcHRpb24+IGNvbnRlbnQNCiAgICAgICAgICAgICAgICBpdGVtLnRpdGxlID0gZmlndXJlRWwuY2hpbGRyZW5bMV0uaW5uZXJIVE1MOyANCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYobGlua0VsLmNoaWxkcmVuLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgICAgICAvLyA8aW1nPiB0aHVtYm5haWwgZWxlbWVudCwgcmV0cmlldmluZyB0aHVtYm5haWwgdXJsDQogICAgICAgICAgICAgICAgaXRlbS5tc3JjID0gbGlua0VsLmNoaWxkcmVuWzBdLmdldEF0dHJpYnV0ZSgnc3JjJyk7DQogICAgICAgICAgICB9IA0KDQogICAgICAgICAgICBpdGVtLmVsID0gZmlndXJlRWw7IC8vIHNhdmUgbGluayB0byBlbGVtZW50IGZvciBnZXRUaHVtYkJvdW5kc0ZuDQogICAgICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIGl0ZW1zOw0KICAgIH07DQoNCiAgICAvLyBmaW5kIG5lYXJlc3QgcGFyZW50IGVsZW1lbnQNCiAgICB2YXIgY2xvc2VzdCA9IGZ1bmN0aW9uIGNsb3Nlc3QoZWwsIGZuKSB7DQogICAgICAgIHJldHVybiBlbCAmJiAoIGZuKGVsKSA/IGVsIDogY2xvc2VzdChlbC5wYXJlbnROb2RlLCBmbikgKTsNCiAgICB9Ow0KDQogICAgLy8gdHJpZ2dlcnMgd2hlbiB1c2VyIGNsaWNrcyBvbiB0aHVtYm5haWwNCiAgICB2YXIgb25UaHVtYm5haWxzQ2xpY2sgPSBmdW5jdGlvbihlKSB7DQogICAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDsNCiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCA/IGUucHJldmVudERlZmF1bHQoKSA6IGUucmV0dXJuVmFsdWUgPSBmYWxzZTsNCg0KICAgICAgICB2YXIgZVRhcmdldCA9IGUudGFyZ2V0IHx8IGUuc3JjRWxlbWVudDsNCg0KICAgICAgICAvLyBmaW5kIHJvb3QgZWxlbWVudCBvZiBzbGlkZQ0KICAgICAgICB2YXIgY2xpY2tlZExpc3RJdGVtID0gY2xvc2VzdChlVGFyZ2V0LCBmdW5jdGlvbihlbCkgew0KICAgICAgICAgICAgcmV0dXJuIChlbC50YWdOYW1lICYmIGVsLnRhZ05hbWUudG9VcHBlckNhc2UoKSA9PT0gJ0ZJR1VSRScpOw0KICAgICAgICB9KTsNCg0KICAgICAgICBpZighY2xpY2tlZExpc3RJdGVtKSB7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICAvLyBmaW5kIGluZGV4IG9mIGNsaWNrZWQgaXRlbSBieSBsb29waW5nIHRocm91Z2ggYWxsIGNoaWxkIG5vZGVzDQogICAgICAgIC8vIGFsdGVybmF0aXZlbHksIHlvdSBtYXkgZGVmaW5lIGluZGV4IHZpYSBkYXRhLSBhdHRyaWJ1dGUNCiAgICAgICAgdmFyIGNsaWNrZWRHYWxsZXJ5ID0gY2xpY2tlZExpc3RJdGVtLnBhcmVudE5vZGUsDQogICAgICAgICAgICBjaGlsZE5vZGVzID0gY2xpY2tlZExpc3RJdGVtLnBhcmVudE5vZGUuY2hpbGROb2RlcywNCiAgICAgICAgICAgIG51bUNoaWxkTm9kZXMgPSBjaGlsZE5vZGVzLmxlbmd0aCwNCiAgICAgICAgICAgIG5vZGVJbmRleCA9IDAsDQogICAgICAgICAgICBpbmRleDsNCg0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUNoaWxkTm9kZXM7IGkrKykgew0KICAgICAgICAgICAgaWYoY2hpbGROb2Rlc1tpXS5ub2RlVHlwZSAhPT0gMSkgeyANCiAgICAgICAgICAgICAgICBjb250aW51ZTsgDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmKGNoaWxkTm9kZXNbaV0gPT09IGNsaWNrZWRMaXN0SXRlbSkgew0KICAgICAgICAgICAgICAgIGluZGV4ID0gbm9kZUluZGV4Ow0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgbm9kZUluZGV4Kys7DQogICAgICAgIH0NCg0KICAgICAgICBpZihpbmRleCA+PSAwKSB7DQogICAgICAgICAgICAvLyBvcGVuIFBob3RvU3dpcGUgaWYgdmFsaWQgaW5kZXggZm91bmQNCiAgICAgICAgICAgIG9wZW5QaG90b1N3aXBlKCBpbmRleCwgY2xpY2tlZEdhbGxlcnkgKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgfTsNCg0KICAgIC8vIHBhcnNlIHBpY3R1cmUgaW5kZXggYW5kIGdhbGxlcnkgaW5kZXggZnJvbSBVUkwgKCMmcGlkPTEmZ2lkPTIpDQogICAgdmFyIHBob3Rvc3dpcGVQYXJzZUhhc2ggPSBmdW5jdGlvbigpIHsNCiAgICAgICAgdmFyIGhhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksDQogICAgICAgIHBhcmFtcyA9IHt9Ow0KDQogICAgICAgIGlmKGhhc2gubGVuZ3RoIDwgNSkgew0KICAgICAgICAgICAgcmV0dXJuIHBhcmFtczsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciB2YXJzID0gaGFzaC5zcGxpdCgnJicpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmKCF2YXJzW2ldKSB7DQogICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgcGFpciA9IHZhcnNbaV0uc3BsaXQoJz0nKTsgIA0KICAgICAgICAgICAgaWYocGFpci5sZW5ndGggPCAyKSB7DQogICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICB9ICAgICAgICAgICANCiAgICAgICAgICAgIHBhcmFtc1twYWlyWzBdXSA9IHBhaXJbMV07DQogICAgICAgIH0NCg0KICAgICAgICBpZihwYXJhbXMuZ2lkKSB7DQogICAgICAgICAgICBwYXJhbXMuZ2lkID0gcGFyc2VJbnQocGFyYW1zLmdpZCwgMTApOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHBhcmFtczsNCiAgICB9Ow0KDQogICAgdmFyIG9wZW5QaG90b1N3aXBlID0gZnVuY3Rpb24oaW5kZXgsIGdhbGxlcnlFbGVtZW50LCBkaXNhYmxlQW5pbWF0aW9uLCBmcm9tVVJMKSB7DQogICAgICAgIHZhciBwc3dwRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wc3dwJylbMF0sDQogICAgICAgICAgICBnYWxsZXJ5LA0KICAgICAgICAgICAgb3B0aW9ucywNCiAgICAgICAgICAgIGl0ZW1zOw0KDQogICAgICAgIGl0ZW1zID0gcGFyc2VUaHVtYm5haWxFbGVtZW50cyhnYWxsZXJ5RWxlbWVudCk7DQoNCiAgICAgICAgLy8gZGVmaW5lIG9wdGlvbnMgKGlmIG5lZWRlZCkNCiAgICAgICAgb3B0aW9ucyA9IHsNCg0KICAgICAgICAgICAgLy8gZGVmaW5lIGdhbGxlcnkgaW5kZXggKGZvciBVUkwpDQogICAgICAgICAgICBnYWxsZXJ5VUlEOiBnYWxsZXJ5RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtcHN3cC11aWQnKSwNCg0KICAgICAgICAgICAgZ2V0VGh1bWJCb3VuZHNGbjogZnVuY3Rpb24oaW5kZXgpIHsNCiAgICAgICAgICAgICAgICAvLyBTZWUgT3B0aW9ucyAtPiBnZXRUaHVtYkJvdW5kc0ZuIHNlY3Rpb24gb2YgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvDQogICAgICAgICAgICAgICAgdmFyIHRodW1ibmFpbCA9IGl0ZW1zW2luZGV4XS5lbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW1nJylbMF0sIC8vIGZpbmQgdGh1bWJuYWlsDQogICAgICAgICAgICAgICAgICAgIHBhZ2VZU2Nyb2xsID0gd2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AsDQogICAgICAgICAgICAgICAgICAgIHJlY3QgPSB0aHVtYm5haWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IA0KDQogICAgICAgICAgICAgICAgcmV0dXJuIHt4OnJlY3QubGVmdCwgeTpyZWN0LnRvcCArIHBhZ2VZU2Nyb2xsLCB3OnJlY3Qud2lkdGh9Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH07DQoNCiAgICAgICAgLy8gUGhvdG9Td2lwZSBvcGVuZWQgZnJvbSBVUkwNCiAgICAgICAgaWYoZnJvbVVSTCkgew0KICAgICAgICAgICAgaWYob3B0aW9ucy5nYWxsZXJ5UElEcykgew0KICAgICAgICAgICAgICAgIC8vIHBhcnNlIHJlYWwgaW5kZXggd2hlbiBjdXN0b20gUElEcyBhcmUgdXNlZCANCiAgICAgICAgICAgICAgICAvLyBodHRwOi8vcGhvdG9zd2lwZS5jb20vZG9jdW1lbnRhdGlvbi9mYXEuaHRtbCNjdXN0b20tcGlkLWluLXVybA0KICAgICAgICAgICAgICAgIGZvcih2YXIgaiA9IDA7IGogPCBpdGVtcy5sZW5ndGg7IGorKykgew0KICAgICAgICAgICAgICAgICAgICBpZihpdGVtc1tqXS5waWQgPT0gaW5kZXgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuaW5kZXggPSBqOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIC8vIGluIFVSTCBpbmRleGVzIHN0YXJ0IGZyb20gMQ0KICAgICAgICAgICAgICAgIG9wdGlvbnMuaW5kZXggPSBwYXJzZUludChpbmRleCwgMTApIC0gMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIG9wdGlvbnMuaW5kZXggPSBwYXJzZUludChpbmRleCwgMTApOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gZXhpdCBpZiBpbmRleCBub3QgZm91bmQNCiAgICAgICAgaWYoIGlzTmFOKG9wdGlvbnMuaW5kZXgpICkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYoZGlzYWJsZUFuaW1hdGlvbikgew0KICAgICAgICAgICAgb3B0aW9ucy5zaG93QW5pbWF0aW9uRHVyYXRpb24gPSAwOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gUGFzcyBkYXRhIHRvIFBob3RvU3dpcGUgYW5kIGluaXRpYWxpemUgaXQNCiAgICAgICAgZ2FsbGVyeSA9IG5ldyBQaG90b1N3aXBlKCBwc3dwRWxlbWVudCwgUGhvdG9Td2lwZVVJX0RlZmF1bHQsIGl0ZW1zLCBvcHRpb25zKTsNCiAgICAgICAgZ2FsbGVyeS5pbml0KCk7DQogICAgfTsNCg0KICAgIC8vIGxvb3AgdGhyb3VnaCBhbGwgZ2FsbGVyeSBlbGVtZW50cyBhbmQgYmluZCBldmVudHMNCiAgICB2YXIgZ2FsbGVyeUVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCggZ2FsbGVyeVNlbGVjdG9yICk7DQoNCiAgICBmb3IodmFyIGkgPSAwLCBsID0gZ2FsbGVyeUVsZW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKykgew0KICAgICAgICBnYWxsZXJ5RWxlbWVudHNbaV0uc2V0QXR0cmlidXRlKCdkYXRhLXBzd3AtdWlkJywgaSsxKTsNCiAgICAgICAgZ2FsbGVyeUVsZW1lbnRzW2ldLm9uY2xpY2sgPSBvblRodW1ibmFpbHNDbGljazsNCiAgICB9DQoNCiAgICAvLyBQYXJzZSBVUkwgYW5kIG9wZW4gZ2FsbGVyeSBpZiBpdCBjb250YWlucyAjJnBpZD0zJmdpZD0xDQogICAgdmFyIGhhc2hEYXRhID0gcGhvdG9zd2lwZVBhcnNlSGFzaCgpOw0KICAgIGlmKGhhc2hEYXRhLnBpZCAmJiBoYXNoRGF0YS5naWQpIHsNCiAgICAgICAgb3BlblBob3RvU3dpcGUoIGhhc2hEYXRhLnBpZCAsICBnYWxsZXJ5RWxlbWVudHNbIGhhc2hEYXRhLmdpZCAtIDEgXSwgdHJ1ZSwgdHJ1ZSApOw0KICAgIH0NCn07DQoNCi8vIGV4ZWN1dGUgYWJvdmUgZnVuY3Rpb24NCmluaXRQaG90b1N3aXBlRnJvbURPTSgnLlBob3RvU3dpcGUnKTsNCg0KPC9zY3JpcHQ+</tpljs>
	<jsposition>1</jsposition>
	<file>
	  <filename>/default-skin/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/default-skin/default-skin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIFBob3RvU3dpcGUgRGVmYXVsdCBVSSBDU1MgYnkgRG1pdHJ5IFNlbWVub3YgfCBwaG90b3N3aXBlLmNvbSB8IE1JVCBsaWNlbnNlICovCi8qCgoJQ29udGVudHM6CgoJMS4gQnV0dG9ucwoJMi4gU2hhcmUgbW9kYWwgYW5kIGxpbmtzCgkzLiBJbmRleCBpbmRpY2F0b3IgKCIxIG9mIFgiIGNvdW50ZXIpCgk0LiBDYXB0aW9uCgk1LiBMb2FkaW5nIGluZGljYXRvcgoJNi4gQWRkaXRpb25hbCBzdHlsZXMgKHJvb3QgZWxlbWVudCwgdG9wIGJhciwgaWRsZSBzdGF0ZSwgaGlkZGVuIHN0YXRlLCBldGMuKQoKKi8KLyoKCQoJMS4gQnV0dG9ucwoKICovCi8qIDxidXR0b24+IGNzcyByZXNldCAqLwoucHN3cF9fYnV0dG9uIHsKICB3aWR0aDogNDRweDsKICBoZWlnaHQ6IDQ0cHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIGJhY2tncm91bmQ6IG5vbmU7CiAgY3Vyc29yOiBwb2ludGVyOwogIG92ZXJmbG93OiB2aXNpYmxlOwogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICBkaXNwbGF5OiBibG9jazsKICBib3JkZXI6IDA7CiAgcGFkZGluZzogMDsKICBtYXJnaW46IDA7CiAgZmxvYXQ6IHJpZ2h0OwogIG9wYWNpdHk6IDAuNzU7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfQogIC5wc3dwX19idXR0b246Zm9jdXMsCiAgLnBzd3BfX2J1dHRvbjpob3ZlciB7CiAgICBvcGFjaXR5OiAxOyB9CiAgLnBzd3BfX2J1dHRvbjphY3RpdmUgewogICAgb3V0bGluZTogbm9uZTsKICAgIG9wYWNpdHk6IDAuOTsgfQogIC5wc3dwX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIgewogICAgcGFkZGluZzogMDsKICAgIGJvcmRlcjogMDsgfQoKLyogcHN3cF9fdWktLW92ZXItY2xvc2UgY2xhc3MgaXQgYWRkZWQgd2hlbiBtb3VzZSBpcyBvdmVyIGVsZW1lbnQgdGhhdCBzaG91bGQgY2xvc2UgZ2FsbGVyeSAqLwoucHN3cF9fdWktLW92ZXItY2xvc2UgLnBzd3BfX2J1dHRvbi0tY2xvc2UgewogIG9wYWNpdHk6IDE7IH0KCi5wc3dwX19idXR0b24sCi5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSwKLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7CiAgYmFja2dyb3VuZDogdXJsKGRlZmF1bHQtc2tpbi5wbmcpIDAgMCBuby1yZXBlYXQ7CiAgYmFja2dyb3VuZC1zaXplOiAyNjRweCA4OHB4OwogIHdpZHRoOiA0NHB4OwogIGhlaWdodDogNDRweDsgfQoKQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMSksICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMDkzNzUpLCAobWluLXJlc29sdXRpb246IDEwNWRwaSksIChtaW4tcmVzb2x1dGlvbjogMS4xZHBweCkgewogIC8qIFNlcnZlIFNWRyBzcHJpdGUgaWYgYnJvd3NlciBzdXBwb3J0cyBTVkcgYW5kIHJlc29sdXRpb24gaXMgbW9yZSB0aGFuIDEwNWRwaSAqLwogIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbiwKICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSwKICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUgewogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRlZmF1bHQtc2tpbi5zdmcpOyB9CiAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCwKICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7CiAgICBiYWNrZ3JvdW5kOiBub25lOyB9IH0KCi5wc3dwX19idXR0b24tLWNsb3NlIHsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00NHB4OyB9CgoucHN3cF9fYnV0dG9uLS1zaGFyZSB7CiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ0cHggLTQ0cHg7IH0KCi5wc3dwX19idXR0b24tLWZzIHsKICBkaXNwbGF5OiBub25lOyB9CgoucHN3cC0tc3VwcG9ydHMtZnMgLnBzd3BfX2J1dHRvbi0tZnMgewogIGRpc3BsYXk6IGJsb2NrOyB9CgoucHN3cC0tZnMgLnBzd3BfX2J1dHRvbi0tZnMgewogIGJhY2tncm91bmQtcG9zaXRpb246IC00NHB4IDA7IH0KCi5wc3dwX19idXR0b24tLXpvb20gewogIGRpc3BsYXk6IG5vbmU7CiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTg4cHggMDsgfQoKLnBzd3AtLXpvb20tYWxsb3dlZCAucHN3cF9fYnV0dG9uLS16b29tIHsKICBkaXNwbGF5OiBibG9jazsgfQoKLnBzd3AtLXpvb21lZC1pbiAucHN3cF9fYnV0dG9uLS16b29tIHsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTMycHggMDsgfQoKLyogbm8gYXJyb3dzIG9uIHRvdWNoIHNjcmVlbnMgKi8KLnBzd3AtLXRvdWNoIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LAoucHN3cC0tdG91Y2ggLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHsKICB2aXNpYmlsaXR5OiBoaWRkZW47IH0KCi8qCglBcnJvdyBidXR0b25zIGhpdCBhcmVhCgkoaWNvbiBpcyBhZGRlZCB0byA6YmVmb3JlIHBzZXVkby1lbGVtZW50KQoqLwoucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCwKLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHsKICBiYWNrZ3JvdW5kOiBub25lOwogIHRvcDogNTAlOwogIG1hcmdpbi10b3A6IC01MHB4OwogIHdpZHRoOiA3MHB4OwogIGhlaWdodDogMTAwcHg7CiAgcG9zaXRpb246IGFic29sdXRlOyB9CgoucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCB7CiAgbGVmdDogMDsgfQoKLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHsKICByaWdodDogMDsgfQoKLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlLAoucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHsKICBjb250ZW50OiAnJzsKICB0b3A6IDM1cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpOwogIGhlaWdodDogMzBweDsKICB3aWR0aDogMzJweDsKICBwb3NpdGlvbjogYWJzb2x1dGU7IH0KCi5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSB7CiAgbGVmdDogNnB4OwogIGJhY2tncm91bmQtcG9zaXRpb246IC0xMzhweCAtNDRweDsgfQoKLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7CiAgcmlnaHQ6IDZweDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTRweCAtNDRweDsgfQoKLyoKCgkyLiBTaGFyZSBtb2RhbC9wb3B1cCBhbmQgbGlua3MKCiAqLwoucHN3cF9fY291bnRlciwKLnBzd3BfX3NoYXJlLW1vZGFsIHsKICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsgfQoKLnBzd3BfX3NoYXJlLW1vZGFsIHsKICBkaXNwbGF5OiBibG9jazsKICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIHRvcDogMDsKICBsZWZ0OiAwOwogIHBhZGRpbmc6IDEwcHg7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHotaW5kZXg6IDE2MDA7CiAgb3BhY2l0eTogMDsKICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0OwogIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOwogIHdpbGwtY2hhbmdlOiBvcGFjaXR5OyB9CgoucHN3cF9fc2hhcmUtbW9kYWwtLWhpZGRlbiB7CiAgZGlzcGxheTogbm9uZTsgfQoKLnBzd3BfX3NoYXJlLXRvb2x0aXAgewogIHotaW5kZXg6IDE2MjA7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGJhY2tncm91bmQ6ICNGRkY7CiAgdG9wOiA1NnB4OwogIGJvcmRlci1yYWRpdXM6IDJweDsKICBkaXNwbGF5OiBibG9jazsKICB3aWR0aDogYXV0bzsKICByaWdodDogNDRweDsKICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMjUpOwogICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTsKICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjI1czsKICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1czsKICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsKICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyB9CiAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYSB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgY29sb3I6ICMwMDA7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMThweDsgfQogICAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYTpob3ZlciB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgY29sb3I6ICMwMDA7IH0KICAgIC5wc3dwX19zaGFyZS10b29sdGlwIGE6Zmlyc3QtY2hpbGQgewogICAgICAvKiByb3VuZCBjb3JuZXJzIG9uIHRoZSBmaXJzdC9sYXN0IGxpc3QgaXRlbSAqLwogICAgICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDsgfQogICAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYTpsYXN0LWNoaWxkIHsKICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDJweCAycHg7IH0KCi5wc3dwX19zaGFyZS1tb2RhbC0tZmFkZS1pbiB7CiAgb3BhY2l0eTogMTsgfQogIC5wc3dwX19zaGFyZS1tb2RhbC0tZmFkZS1pbiAucHN3cF9fc2hhcmUtdG9vbHRpcCB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KCi8qIGluY3JlYXNlIHNpemUgb2Ygc2hhcmUgbGlua3Mgb24gdG91Y2ggZGV2aWNlcyAqLwoucHN3cC0tdG91Y2ggLnBzd3BfX3NoYXJlLXRvb2x0aXAgYSB7CiAgcGFkZGluZzogMTZweCAxMnB4OyB9CgphLnBzd3BfX3NoYXJlLS1mYWNlYm9vazpiZWZvcmUgewogIGNvbnRlbnQ6ICcnOwogIGRpc3BsYXk6IGJsb2NrOwogIHdpZHRoOiAwOwogIGhlaWdodDogMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAtMTJweDsKICByaWdodDogMTVweDsKICBib3JkZXI6IDZweCBzb2xpZCB0cmFuc3BhcmVudDsKICBib3JkZXItYm90dG9tLWNvbG9yOiAjRkZGOwogIC13ZWJraXQtcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgLW1vei1wb2ludGVyLWV2ZW50czogbm9uZTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsgfQoKYS5wc3dwX19zaGFyZS0tZmFjZWJvb2s6aG92ZXIgewogIGJhY2tncm91bmQ6ICMzRTVDOUE7CiAgY29sb3I6ICNGRkY7IH0KICBhLnBzd3BfX3NoYXJlLS1mYWNlYm9vazpob3ZlcjpiZWZvcmUgewogICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzNFNUM5QTsgfQoKYS5wc3dwX19zaGFyZS0tdHdpdHRlcjpob3ZlciB7CiAgYmFja2dyb3VuZDogIzU1QUNFRTsKICBjb2xvcjogI0ZGRjsgfQoKYS5wc3dwX19zaGFyZS0tcGludGVyZXN0OmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjQ0NDOwogIGNvbG9yOiAjQ0UyNzJEOyB9CgphLnBzd3BfX3NoYXJlLS1kb3dubG9hZDpob3ZlciB7CiAgYmFja2dyb3VuZDogI0RERDsgfQoKLyoKCgkzLiBJbmRleCBpbmRpY2F0b3IgKCIxIG9mIFgiIGNvdW50ZXIpCgogKi8KLnBzd3BfX2NvdW50ZXIgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBsZWZ0OiAwOwogIHRvcDogMDsKICBoZWlnaHQ6IDQ0cHg7CiAgZm9udC1zaXplOiAxM3B4OwogIGxpbmUtaGVpZ2h0OiA0NHB4OwogIGNvbG9yOiAjRkZGOwogIG9wYWNpdHk6IDAuNzU7CiAgcGFkZGluZzogMCAxMHB4OyB9CgovKgoJCgk0LiBDYXB0aW9uCgogKi8KLnBzd3BfX2NhcHRpb24gewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBsZWZ0OiAwOwogIGJvdHRvbTogMDsKICB3aWR0aDogMTAwJTsKICBtaW4taGVpZ2h0OiA0NHB4OyB9CiAgLnBzd3BfX2NhcHRpb24gc21hbGwgewogICAgZm9udC1zaXplOiAxMXB4OwogICAgY29sb3I6ICNCQkI7IH0KCi5wc3dwX19jYXB0aW9uX19jZW50ZXIgewogIHRleHQtYWxpZ246IGxlZnQ7CiAgbWF4LXdpZHRoOiA0MjBweDsKICBtYXJnaW46IDAgYXV0bzsKICBmb250LXNpemU6IDEzcHg7CiAgcGFkZGluZzogMTBweDsKICBsaW5lLWhlaWdodDogMjBweDsKICBjb2xvcjogI0NDQzsgfQoKLnBzd3BfX2NhcHRpb24tLWVtcHR5IHsKICBkaXNwbGF5OiBub25lOyB9CgovKiBGYWtlIGNhcHRpb24gZWxlbWVudCwgdXNlZCB0byBjYWxjdWxhdGUgaGVpZ2h0IG9mIG5leHQvcHJldiBpbWFnZSAqLwoucHN3cF9fY2FwdGlvbi0tZmFrZSB7CiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9CgovKgoKCTUuIExvYWRpbmcgaW5kaWNhdG9yIChwcmVsb2FkZXIpCgoJWW91IGNhbiBwbGF5IHdpdGggaXQgaGVyZSAtIGh0dHA6Ly9jb2RlcGVuLmlvL2RpbXNlbWVub3YvcGVuL3l5QldvUgoKICovCi5wc3dwX19wcmVsb2FkZXIgewogIHdpZHRoOiA0NHB4OwogIGhlaWdodDogNDRweDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAwOwogIGxlZnQ6IDUwJTsKICBtYXJnaW4tbGVmdDogLTIycHg7CiAgb3BhY2l0eTogMDsKICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0OwogIHdpbGwtY2hhbmdlOiBvcGFjaXR5OwogIGRpcmVjdGlvbjogbHRyOyB9CgoucHN3cF9fcHJlbG9hZGVyX19pY24gewogIHdpZHRoOiAyMHB4OwogIGhlaWdodDogMjBweDsKICBtYXJnaW46IDEycHg7IH0KCi5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSB7CiAgb3BhY2l0eTogMTsgfQogIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSAucHN3cF9fcHJlbG9hZGVyX19pY24gewogICAgLyogV2UgdXNlIC5naWYgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IENTUyBhbmltYXRpb24gKi8KICAgIGJhY2tncm91bmQ6IHVybChwcmVsb2FkZXIuZ2lmKSAwIDAgbm8tcmVwZWF0OyB9CgoucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgewogIG9wYWNpdHk6IDE7IH0KICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgLnBzd3BfX3ByZWxvYWRlcl9faWNuIHsKICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjbG9ja3dpc2UgNTAwbXMgbGluZWFyIGluZmluaXRlOwogICAgICAgICAgICBhbmltYXRpb246IGNsb2Nrd2lzZSA1MDBtcyBsaW5lYXIgaW5maW5pdGU7IH0KICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgLnBzd3BfX3ByZWxvYWRlcl9fZG9udXQgewogICAgLXdlYmtpdC1hbmltYXRpb246IGRvbnV0LXJvdGF0ZSAxMDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSkgaW5maW5pdGU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZG9udXQtcm90YXRlIDEwMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKSBpbmZpbml0ZTsgfQoKLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlcl9faWNuIHsKICBiYWNrZ3JvdW5kOiBub25lOwogIG9wYWNpdHk6IDAuNzU7CiAgd2lkdGg6IDE0cHg7CiAgaGVpZ2h0OiAxNHB4OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBsZWZ0OiAxNXB4OwogIHRvcDogMTVweDsKICBtYXJnaW46IDA7IH0KCi5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2N1dCB7CiAgLyogCgkJCVRoZSBpZGVhIG9mIGFuaW1hdGluZyBpbm5lciBjaXJjbGUgaXMgYmFzZWQgb24gUG9seW1lciAoIm1hdGVyaWFsIikgbG9hZGluZyBpbmRpY2F0b3IgCgkJCSBieSBLZWFudSBMZWUgaHR0cHM6Ly9ibG9nLmtlYW51bGVlLmNvbS8yMDE0LzEwLzIwL3RoZS10YWxlLW9mLXRocmVlLXNwaW5uZXJzLmh0bWwKCQkqLwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB3aWR0aDogN3B4OwogIGhlaWdodDogMTRweDsKICBvdmVyZmxvdzogaGlkZGVuOyB9CgoucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyX19kb251dCB7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB3aWR0aDogMTRweDsKICBoZWlnaHQ6IDE0cHg7CiAgYm9yZGVyOiAycHggc29saWQgI0ZGRjsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDA7CiAgbGVmdDogMDsKICBiYWNrZ3JvdW5kOiBub25lOwogIG1hcmdpbjogMDsgfQoKQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7CiAgLnBzd3BfX3ByZWxvYWRlciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBsZWZ0OiBhdXRvOwogICAgdG9wOiBhdXRvOwogICAgbWFyZ2luOiAwOwogICAgZmxvYXQ6IHJpZ2h0OyB9IH0KCkAtd2Via2l0LWtleWZyYW1lcyBjbG9ja3dpc2UgewogIDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgMTAwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfQoKQGtleWZyYW1lcyBjbG9ja3dpc2UgewogIDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgMTAwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfQoKQC13ZWJraXQta2V5ZnJhbWVzIGRvbnV0LXJvdGF0ZSB7CiAgMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0KICA1MCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7IH0KICAxMDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH0KCkBrZXlmcmFtZXMgZG9udXQtcm90YXRlIHsKICAwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApOwogICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfQogIDUwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTsgfQogIDEwMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfQoKLyoKCQoJNi4gQWRkaXRpb25hbCBzdHlsZXMKCiAqLwovKiByb290IGVsZW1lbnQgb2YgVUkgKi8KLnBzd3BfX3VpIHsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvOwogIHZpc2liaWxpdHk6IHZpc2libGU7CiAgb3BhY2l0eTogMTsKICB6LWluZGV4OiAxNTUwOyB9CgovKiB0b3AgYmxhY2sgYmFyIHdpdGggYnV0dG9ucyBhbmQgIjEgb2YgWCIgaW5kaWNhdG9yICovCi5wc3dwX190b3AtYmFyIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbGVmdDogMDsKICB0b3A6IDA7CiAgaGVpZ2h0OiA0NHB4OwogIHdpZHRoOiAxMDAlOyB9CgoucHN3cF9fY2FwdGlvbiwKLnBzd3BfX3RvcC1iYXIsCi5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsCi5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHsKICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsKICB3aWxsLWNoYW5nZTogb3BhY2l0eTsKICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9CgovKiBwc3dwLS1oYXNfbW91c2UgY2xhc3MgaXMgYWRkZWQgb25seSB3aGVuIHR3byBzdWJzZXF1ZW50IG1vdXNlbW92ZSBldmVudHMgb2NjdXIgKi8KLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCwKLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQgewogIHZpc2liaWxpdHk6IHZpc2libGU7IH0KCi5wc3dwX190b3AtYmFyLAoucHN3cF9fY2FwdGlvbiB7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpOyB9CgovKiBwc3dwX191aS0tZml0IGNsYXNzIGlzIGFkZGVkIHdoZW4gbWFpbiBpbWFnZSAiZml0cyIgYmV0d2VlbiB0b3AgYmFyIGFuZCBib3R0b20gYmFyIChjYXB0aW9uKSAqLwoucHN3cF9fdWktLWZpdCAucHN3cF9fdG9wLWJhciwKLnBzd3BfX3VpLS1maXQgLnBzd3BfX2NhcHRpb24gewogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTsgfQoKLyogcHN3cF9fdWktLWlkbGUgY2xhc3MgaXMgYWRkZWQgd2hlbiBtb3VzZSBpc24ndCBtb3ZpbmcgZm9yIHNldmVyYWwgc2Vjb25kcyAoSlMgb3B0aW9uIHRpbWVUb0lkbGUpICovCi5wc3dwX191aS0taWRsZSAucHN3cF9fdG9wLWJhciB7CiAgb3BhY2l0eTogMDsgfQoKLnBzd3BfX3VpLS1pZGxlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LAoucHN3cF9fdWktLWlkbGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHsKICBvcGFjaXR5OiAwOyB9CgovKgoJcHN3cF9fdWktLWhpZGRlbiBjbGFzcyBpcyBhZGRlZCB3aGVuIGNvbnRyb2xzIGFyZSBoaWRkZW4KCWUuZy4gd2hlbiB1c2VyIHRhcHMgdG8gdG9nZ2xlIHZpc2liaWxpdHkgb2YgY29udHJvbHMKKi8KLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX3RvcC1iYXIsCi5wc3dwX191aS0taGlkZGVuIC5wc3dwX19jYXB0aW9uLAoucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCwKLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHsKICAvKiBGb3JjZSBwYWludCAmIGNyZWF0ZSBjb21wb3NpdGlvbiBsYXllciBmb3IgY29udHJvbHMuICovCiAgb3BhY2l0eTogMC4wMDE7IH0KCi8qIHBzd3BfX3VpLS1vbmUtc2xpZGUgY2xhc3MgaXMgYWRkZWQgd2hlbiB0aGVyZSBpcyBqdXN0IG9uZSBpdGVtIGluIGdhbGxlcnkgKi8KLnBzd3BfX3VpLS1vbmUtc2xpZGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsCi5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCwKLnBzd3BfX3VpLS1vbmUtc2xpZGUgLnBzd3BfX2NvdW50ZXIgewogIGRpc3BsYXk6IG5vbmU7IH0KCi5wc3dwX19lbGVtZW50LS1kaXNhYmxlZCB7CiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9CgoucHN3cC0tbWluaW1hbC0tZGFyayAucHN3cF9fdG9wLWJhciB7CiAgYmFja2dyb3VuZDogbm9uZTsgfQo=]]></data>
	</file>
	<file>
	  <filename>/default-skin/default-skin.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAQgAAABYCAQAAACjBqE3AAAB6klEQVR4Ae3bsWpUQRTG8YkkanwCa7GzVotsI/gEgk9h4Vu4ySLYmMYgbJrc3lrwZbJwC0FMt4j7F6Y4oIZrsXtgxvx/1c0ufEX4cnbmLCmSJEmSJEmSJEmSJP3XCBPvbJU+8doWmDFwyZpLBmYlNJebz0KwzykwsuSYJSNwykEJreV2BaBMaLIQZ2xYcFgqDlmw4ayE/FwL0dDk4Qh4W37DAjgqIT+3HRbigjH+iikVdxgZStgyN0Su2sXIeTwTT+esdpcbIlfNAuZ/TxresG4zV8kYWSZNiKUTokMMSWeIwTNEn4fK2TW3gRNgVkJLuVksROA9G+bEvoATNlBCa7nZXEwdxEZxzpKRKFh+bsv8LmPFmhX1OwfIz81jIRJQ5eeqG9B+riRJkiRJkiRJkiRJkiRJkiRJUkvA/8RQoEpKlJWINFkJ62AlrEP/mNBibnv2yz/A3t7Uq3LcpoxP8COjC1T5vxoAD5VdoEqdDrd5QuW1swtUSaueh3zkiuBiqgtA2OlkeMcP/uDqugsJdbjHF65VdPMKwS0+WQc/MgKvrIOHysB9vgPwk8+85hmPbnQdvHZyDMAFD7L3EOpgMcVdvnHFS0/vlatrXvCVx0U9gt3fxvnA0/hB4nmRJEmSJEmSJEmSJGmHfgFLaDPoMu5xWwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/default-skin/default-skin.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN2ZyB3aWR0aD0iMjY0IiBoZWlnaHQ9Ijg4IiB2aWV3Qm94PSIwIDAgMjY0IDg4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5kZWZhdWx0LXNraW4gMjwvdGl0bGU+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Zz48cGF0aCBkPSJNNjcuMDAyIDU5LjV2My43NjhjLTYuMzA3Ljg0LTkuMTg0IDUuNzUtMTAuMDAyIDkuNzMyIDIuMjItMi44MyA1LjU2NC01LjA5OCAxMC4wMDItNS4wOThWNzEuNUw3MyA2NS41ODUgNjcuMDAyIDU5LjV6IiBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiLz48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMTMgMjl2LTVoMnYzaDN2MmgtNXpNMTMgMTVoNXYyaC0zdjNoLTJ2LTV6TTMxIDE1djVoLTJ2LTNoLTN2LTJoNXpNMzEgMjloLTV2LTJoM3YtM2gydjV6IiBpZD0iU2hhcGUiLz48L2c+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTYyIDI0djVoLTJ2LTNoLTN2LTJoNXpNNjIgMjBoLTV2LTJoM3YtM2gydjV6TTcwIDIwdi01aDJ2M2gzdjJoLTV6TTcwIDI0aDV2MmgtM3YzaC0ydi01eiIvPjwvZz48cGF0aCBkPSJNMjAuNTg2IDY2bC01LjY1Ni01LjY1NiAxLjQxNC0xLjQxNEwyMiA2NC41ODZsNS42NTYtNS42NTYgMS40MTQgMS40MTRMMjMuNDE0IDY2bDUuNjU2IDUuNjU2LTEuNDE0IDEuNDE0TDIyIDY3LjQxNGwtNS42NTYgNS42NTYtMS40MTQtMS40MTRMMjAuNTg2IDY2eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMTEuNzg1IDY1LjAzTDExMCA2My41bDMtMy41aC0xMHYtMmgxMGwtMy0zLjUgMS43ODUtMS40NjhMMTE3IDU5bC01LjIxNSA2LjAzeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xNTIuMjE1IDY1LjAzTDE1NCA2My41bC0zLTMuNWgxMHYtMmgtMTBsMy0zLjUtMS43ODUtMS40NjhMMTQ3IDU5bDUuMjE1IDYuMDN6IiBmaWxsPSIjZmZmIi8+PGc+PHBhdGggaWQ9IlJlY3RhbmdsZS0xMSIgZmlsbD0iI2ZmZiIgZD0iTTE2MC45NTcgMjguNTQzbC0zLjI1LTMuMjUtMS40MTMgMS40MTQgMy4yNSAzLjI1eiIvPjxwYXRoIGQ9Ik0xNTIuNSAyN2MzLjAzOCAwIDUuNS0yLjQ2MiA1LjUtNS41cy0yLjQ2Mi01LjUtNS41LTUuNS01LjUgMi40NjItNS41IDUuNSAyLjQ2MiA1LjUgNS41IDUuNXoiIGlkPSJPdmFsLTEiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTUwIDIxaDV2MWgtNXoiLz48L2c+PGc+PHBhdGggZD0iTTExNi45NTcgMjguNTQzbC0xLjQxNCAxLjQxNC0zLjI1LTMuMjUgMS40MTQtMS40MTQgMy4yNSAzLjI1eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMDguNSAyN2MzLjAzOCAwIDUuNS0yLjQ2MiA1LjUtNS41cy0yLjQ2Mi01LjUtNS41LTUuNS01LjUgMi40NjItNS41IDUuNSAyLjQ2MiA1LjUgNS41IDUuNXoiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTA2IDIxaDV2MWgtNXoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTA5LjA0MyAxOS4wMDhsLS4wODUgNS0xLS4wMTcuMDg1LTV6Ii8+PC9nPjwvZz48L2c+PC9zdmc+]]></data>
	</file>
	<file>
	  <filename>/default-skin/preloader.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAPMIAIeHhz8/P1dXVycnJ8/Pz7e3t5+fn29vb////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBwAIACwAAAAAFAAUAEAEUxDJSatFxtwaggWAdIyHJAhXoRYSQUhDPGx0TbmujahbXGWZWqdDAYEsp5NupLPkdDwE7oXwWVasimzWrAE1tKFHErQRK8eL8mMUlRBJVI307uoiACH5BAUHAAgALAEAAQASABIAAAROEMkpS6E4W5upMdUmEQT2feFIltMJYivbvhnZ3R0A4NMwIDodz+cL7nDEn5CH8DGZh8MtEMBEoxkqlXKVIgQCibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpjaE4W5spANUmFQX2feFIltMJYivbvhnZ3d1x4BNBIDodz+cL7nDEn5CH8DGZAsFtMMBEoxkqlXKVIgIBibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpAaA4W5vpOdUmGQb2feFIltMJYivbvhnZ3Z0g4FNRIDodz+cL7nDEn5CH8DGZgcCNQMBEoxkqlXKVIgYDibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpz6E4W5upENUmAQD2feFIltMJYivbvhnZ3V0Q4JNhIDodz+cL7nDEn5CH8DGZg8GtUMBEoxkqlXKVIggEibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkphaA4W5tpCNUmHQf2feFIltMJYivbvhnZ3d0w4BMAIDodz+cL7nDEn5CH8DGZBMLNYMBEoxkqlXKVIgoFibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpQ6A4W5vpGNUmCQL2feFIltMJYivbvhnZ3R1B4NNxIDodz+cL7nDEn5CH8DGZhcINAMBEoxkqlXKVIgwGibbK9YLBYvLtHH5K0J0IACH5BAUHAAcALAEAAQASABIAAANCeLo6wzA6FxkhbaoQ4L3ZxnXLh0EjWZ4RV71VUcCLIByyTNt2PsO8m452sBGJBsNxkUwuD03lAQBASqnUJ7aq5UYSADs=]]></data>
	</file>
	<file>
	  <filename>/default-skin/thumb_default-skin.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAFGUlEQVR42u2cQWhURxjHf99DJC0S0hBCEkREbCoS0oMi6SVCkJyiJwMWUhGplPbopRQPpQehh2IPHnpoaUsVegiFghGqiFRPUeqhIYgItsbSDZVSgpVS2zD/HjIrz7Cpb94ru9n6/WDZNx/7n52Z75t5MwMz4DiO4ziO4ziO4ziO4ziO4zjOM4ekIUlnJB3K2Q5F21DBPLY00G9JLMdYCOEjSbtL1qOSvllkDWwDkqaAXTnbrmgbKFj5rgb6rqKFCiF0STpmZjuANyV1pFSqqr7VDsDMrkq6kmvQK2Z2tWimZlbI9i/6YTMLwGlJ3cD2lEpV1TeTDWtE8Lksy2YeeynLZiTtKBj9A5Im8g0uCTObkPSrmdUKZLMHOGNm30h6HtgNzCfUq6q+tT1gjYYt+tMhMzu5OvolnQSGCubRD1yXNAB8C7yYWK9+4Hp8LqNvqQMemNn9Bt36PvCgQJ4PgDlgMWdbNLO5gnqAjcASMAbUJG1KrFddT0l964YgM5sFZhvYvyg4/s4CL6+ynQJOJZRrGegAuoCNZracWK9loENSJ7BUQr/+hqAWTIffAk4DB4FQUr9YVv/MOyDLsg+A18zsrKQNZfS2Qin9s+6ADZKyGMlZiXJW1bfOAZJGJB1uYD8saaRA1x+R9L2k4znb8WgbKTh8/AX0ADPA5oSX92o9ZfSt7gGdknobVKoX6CyQZ6ek4TgVzE8LhwvqMbMFYMTMliTtM7PfExdiC8BILHeyvuULsYrMAyeAF1atIU6YWdHF0CzwTlzFviGplliGqvqWb0XsDyFM5PZWJsxsf8Hoq5nZzOqFmJnNFFwFA9wEfgOOAfNmNhwXZTRJ31oHSBo1s725BtwLjDarUGb2EPgYuAR8CNyVNNosfauHoBpwFriRs92ItqIRvNRAv5TohMcLQknTZtbVTL2TI4SwLYSwrVV6x3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Gc/xUp54v/S22zyNrAB1P1wxaJjZ8BUx7C1XuAQgh9qboQQp8SztZ6D1jbAWdLRvJU1DoVHXAghHCthO6apAPegtUdsEnST5IGEzSDUbNpvddvXR7fDCG8DkzW75uQ1GtmExQ/7D0B9AJf1V8DkqazLPukLRxQv9vHzO41SjeBl4DxeiI6oj+hB/SzcsI+n8dcO/WAsfj9+RrplCFkEKjFY0OFMLNzkn6pR6+ZvcuTJ26epr8BPJT0Xs6B19tp3D0i6XwufV7SkZJ5jUsaq1CWrZLupByyi1fm3JG0tV2noZcl7YwVGQB2ApdL/kcHMFnBAePAXMIJS+Jv56K2/RxgZvfM7BawL35ulRn/JfUArwDjZWckZjYpabrEf0+b2STtiqSjks7Fz9EyWwExj7/jana0ZDkW4oHrVF23pIV2dkBPCOFRCOFRjOTUqWRvCGEhhKAQgiSdLlmOgxXqcJB2RtIFSRcqvMgVo18hhEVfVjZpLyiEwOoXr5n5vkzqECTpUfz0JDqgW9KPepI93qppPeAAcBG4mLqpZWabgT5JV4H3gdusXOTnFN0LkjRpZl/G5KvApwn5Dkq6Z2ZvA31xW+BPb+6CPUDSFjPbIemSpEvxOeXu5+1m9pmk74A/gGlv6rQhaAy4mWVZLcuyGiv37xTeTpD0HPB1lmXLwG1JPvykDkGrojYpgs3sZ+CH+HzXmzndAZefkn5aD5jPsuwvb94WEULo9lZwHMdxHMdxHMdxHMdxHMdxnHXDP2SXH3+wFAliAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/default-skin/thumb_preloader.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhYABgAOMAAAQCBGxubLS2tDw+PJyenCQmJISGhMzOzFRWVAAACQAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAABgAGAAAAT+EMhJq7046827/2AojmRpnmiqrmx5vHDczmtsH3R+3rLuizzYb/gJvohIi3GJSw6ZRucTypP+qFWrDnvTegTgsDjDtWUK6LQaKW4LyGUhRk0vsN1heLx5qa+JeHkYe0dzfmh3gXpxZ4d2OYGRghKEfACOmI8qkpKLXYaZfix4B2GleJ5moGoDaa2iK5xtp2+DUauhr5opYrSyqT19rKGIsbKoK8Swm8duLMp1o81tz9B/zJG0vtXWxdi9v8loun66rTqdROXeP+lDw9ftkUiYicjvjvbO6vle/v8AAwocSJAGgYMIExIoSGGAw4cQB4hQSJHhhIgYJ1JMaFECxoj+Gjce7AjgI8SQIkmafNhBpEuEAVfKlHjh5cuYM01i2CgAYc+DP0cC/IjgYdGPO22mHJoTac2EQW3ibOrwaFKlFZlSPfkUq8KpVale9QpT61aHY8kuNHv2atSgcMv+y3kUJAepHWei3KhS5t6sFiHWZRkCb2C/hW/mRUyysePHkCM/NkC5smUkCDJr3ozEsmcDmDeL7vy5cmjRmkmXBk0ENWciqymfdq0jtm3WKlzrHr3idmwWu4MjYFGagGXjn4EL103cd2nlqAMIb14ZuW/owqW/VuH8OYYA4MOLz7Ccee/unjOIXx+AfHnU1NHL/s4+vHvN2pfH725cfX3w971+px111q1WIAX/JWjfBO/Bl4Nt/in4X4CZ5aeadxdImCCFvA1xXHr0iWdAeCOSOB4GwV2YXIgBlKhheyjupiKIGb7I3n35pUaSjTdK1gGP6/n4I48uCsmBgi72aGSESWq45AcKPjmCiUFKGUKUVoKAZZYe/Dcil2CGKeaYkkUAADs=]]></data>
	</file>
	<file>
	  <filename>/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VGhlIE1JVCBMaWNlbnNlIChNSVQpCgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNSBEbWl0cnkgU2VtZW5vdiwgaHR0cDovL2RpbXNlbWVub3YuY29tCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbApjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCmFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KVEhFIFNPRlRXQVJFLg==]]></data>
	</file>
	<file>
	  <filename>/photoswipe-ui-default.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIFBob3RvU3dpcGUgRGVmYXVsdCBVSSAtIDQuMS4xIC0gMjAxNS0xMi0yNAoqIGh0dHA6Ly9waG90b3N3aXBlLmNvbQoqIENvcHlyaWdodCAoYykgMjAxNSBEbWl0cnkgU2VtZW5vdjsgKi8KIWZ1bmN0aW9uKGEsYil7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoYik6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWIoKTphLlBob3RvU3dpcGVVSV9EZWZhdWx0PWIoKX0odGhpcyxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgYT1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHY9dGhpcyx3PSExLHg9ITAseT0hMCx6PXtiYXJzU2l6ZTp7dG9wOjQ0LGJvdHRvbToiYXV0byJ9LGNsb3NlRWxDbGFzc2VzOlsiaXRlbSIsImNhcHRpb24iLCJ6b29tLXdyYXAiLCJ1aSIsInRvcC1iYXIiXSx0aW1lVG9JZGxlOjRlMyx0aW1lVG9JZGxlT3V0c2lkZToxZTMsbG9hZGluZ0luZGljYXRvckRlbGF5OjFlMyxhZGRDYXB0aW9uSFRNTEZuOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEudGl0bGU/KGIuY2hpbGRyZW5bMF0uaW5uZXJIVE1MPWEudGl0bGUsITApOihiLmNoaWxkcmVuWzBdLmlubmVySFRNTD0iIiwhMSl9LGNsb3NlRWw6ITAsY2FwdGlvbkVsOiEwLGZ1bGxzY3JlZW5FbDohMCx6b29tRWw6ITAsc2hhcmVFbDohMCxjb3VudGVyRWw6ITAsYXJyb3dFbDohMCxwcmVsb2FkZXJFbDohMCx0YXBUb0Nsb3NlOiExLHRhcFRvVG9nZ2xlQ29udHJvbHM6ITAsY2xpY2tUb0Nsb3NlTm9uWm9vbWFibGU6ITAsc2hhcmVCdXR0b25zOlt7aWQ6ImZhY2Vib29rIixsYWJlbDoiU2hhcmUgb24gRmFjZWJvb2siLHVybDoiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci9zaGFyZXIucGhwP3U9e3t1cmx9fSJ9LHtpZDoidHdpdHRlciIsbGFiZWw6IlR3ZWV0Iix1cmw6Imh0dHBzOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3RleHQ9e3t0ZXh0fX0mdXJsPXt7dXJsfX0ifSx7aWQ6InBpbnRlcmVzdCIsbGFiZWw6IlBpbiBpdCIsdXJsOiJodHRwOi8vd3d3LnBpbnRlcmVzdC5jb20vcGluL2NyZWF0ZS9idXR0b24vP3VybD17e3VybH19Jm1lZGlhPXt7aW1hZ2VfdXJsfX0mZGVzY3JpcHRpb249e3t0ZXh0fX0ifSx7aWQ6ImRvd25sb2FkIixsYWJlbDoiRG93bmxvYWQgaW1hZ2UiLHVybDoie3tyYXdfaW1hZ2VfdXJsfX0iLGRvd25sb2FkOiEwfV0sZ2V0SW1hZ2VVUkxGb3JTaGFyZTpmdW5jdGlvbigpe3JldHVybiBhLmN1cnJJdGVtLnNyY3x8IiJ9LGdldFBhZ2VVUkxGb3JTaGFyZTpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZn0sZ2V0VGV4dEZvclNoYXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGEuY3Vyckl0ZW0udGl0bGV8fCIifSxpbmRleEluZGljYXRvclNlcDoiIC8gIixmaXRDb250cm9sc1dpZHRoOjEyMDB9LEE9ZnVuY3Rpb24oYSl7aWYocilyZXR1cm4hMDthPWF8fHdpbmRvdy5ldmVudCxxLnRpbWVUb0lkbGUmJnEubW91c2VVc2VkJiYhayYmSygpO2Zvcih2YXIgYyxkLGU9YS50YXJnZXR8fGEuc3JjRWxlbWVudCxmPWUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixnPTA7ZzxTLmxlbmd0aDtnKyspYz1TW2ddLGMub25UYXAmJmYuaW5kZXhPZigicHN3cF9fIitjLm5hbWUpPi0xJiYoYy5vblRhcCgpLGQ9ITApO2lmKGQpe2Euc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLHI9ITA7dmFyIGg9Yi5mZWF0dXJlcy5pc09sZEFuZHJvaWQ/NjAwOjMwO3M9c2V0VGltZW91dChmdW5jdGlvbigpe3I9ITF9LGgpfX0sQj1mdW5jdGlvbigpe3JldHVybiFhLmxpa2VseVRvdWNoRGV2aWNlfHxxLm1vdXNlVXNlZHx8c2NyZWVuLndpZHRoPnEuZml0Q29udHJvbHNXaWR0aH0sQz1mdW5jdGlvbihhLGMsZCl7YlsoZD8iYWRkIjoicmVtb3ZlIikrIkNsYXNzIl0oYSwicHN3cF9fIitjKX0sRD1mdW5jdGlvbigpe3ZhciBhPTE9PT1xLmdldE51bUl0ZW1zRm4oKTthIT09cCYmKEMoZCwidWktLW9uZS1zbGlkZSIsYSkscD1hKX0sRT1mdW5jdGlvbigpe0MoaSwic2hhcmUtbW9kYWwtLWhpZGRlbiIseSl9LEY9ZnVuY3Rpb24oKXtyZXR1cm4geT0heSx5PyhiLnJlbW92ZUNsYXNzKGksInBzd3BfX3NoYXJlLW1vZGFsLS1mYWRlLWluIiksc2V0VGltZW91dChmdW5jdGlvbigpe3kmJkUoKX0sMzAwKSk6KEUoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eXx8Yi5hZGRDbGFzcyhpLCJwc3dwX19zaGFyZS1tb2RhbC0tZmFkZS1pbiIpfSwzMCkpLHl8fEgoKSwhMX0sRz1mdW5jdGlvbihiKXtiPWJ8fHdpbmRvdy5ldmVudDt2YXIgYz1iLnRhcmdldHx8Yi5zcmNFbGVtZW50O3JldHVybiBhLnNob3V0KCJzaGFyZUxpbmtDbGljayIsYixjKSxjLmhyZWY/Yy5oYXNBdHRyaWJ1dGUoImRvd25sb2FkIik/ITA6KHdpbmRvdy5vcGVuKGMuaHJlZiwicHN3cF9zaGFyZSIsInNjcm9sbGJhcnM9eWVzLHJlc2l6YWJsZT15ZXMsdG9vbGJhcj1ubyxsb2NhdGlvbj15ZXMsd2lkdGg9NTUwLGhlaWdodD00MjAsdG9wPTEwMCxsZWZ0PSIrKHdpbmRvdy5zY3JlZW4/TWF0aC5yb3VuZChzY3JlZW4ud2lkdGgvMi0yNzUpOjEwMCkpLHl8fEYoKSwhMSk6ITF9LEg9ZnVuY3Rpb24oKXtmb3IodmFyIGEsYixjLGQsZSxmPSIiLGc9MDtnPHEuc2hhcmVCdXR0b25zLmxlbmd0aDtnKyspYT1xLnNoYXJlQnV0dG9uc1tnXSxjPXEuZ2V0SW1hZ2VVUkxGb3JTaGFyZShhKSxkPXEuZ2V0UGFnZVVSTEZvclNoYXJlKGEpLGU9cS5nZXRUZXh0Rm9yU2hhcmUoYSksYj1hLnVybC5yZXBsYWNlKCJ7e3VybH19IixlbmNvZGVVUklDb21wb25lbnQoZCkpLnJlcGxhY2UoInt7aW1hZ2VfdXJsfX0iLGVuY29kZVVSSUNvbXBvbmVudChjKSkucmVwbGFjZSgie3tyYXdfaW1hZ2VfdXJsfX0iLGMpLnJlcGxhY2UoInt7dGV4dH19IixlbmNvZGVVUklDb21wb25lbnQoZSkpLGYrPSc8YSBocmVmPSInK2IrJyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJwc3dwX19zaGFyZS0tJythLmlkKyciJysoYS5kb3dubG9hZD8iZG93bmxvYWQiOiIiKSsiPiIrYS5sYWJlbCsiPC9hPiIscS5wYXJzZVNoYXJlQnV0dG9uT3V0JiYoZj1xLnBhcnNlU2hhcmVCdXR0b25PdXQoYSxmKSk7aS5jaGlsZHJlblswXS5pbm5lckhUTUw9ZixpLmNoaWxkcmVuWzBdLm9uY2xpY2s9R30sST1mdW5jdGlvbihhKXtmb3IodmFyIGM9MDtjPHEuY2xvc2VFbENsYXNzZXMubGVuZ3RoO2MrKylpZihiLmhhc0NsYXNzKGEsInBzd3BfXyIrcS5jbG9zZUVsQ2xhc3Nlc1tjXSkpcmV0dXJuITB9LEo9MCxLPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHUpLEo9MCxrJiZ2LnNldElkbGUoITEpfSxMPWZ1bmN0aW9uKGEpe2E9YT9hOndpbmRvdy5ldmVudDt2YXIgYj1hLnJlbGF0ZWRUYXJnZXR8fGEudG9FbGVtZW50O2ImJiJIVE1MIiE9PWIubm9kZU5hbWV8fChjbGVhclRpbWVvdXQodSksdT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7di5zZXRJZGxlKCEwKX0scS50aW1lVG9JZGxlT3V0c2lkZSkpfSxNPWZ1bmN0aW9uKCl7cS5mdWxsc2NyZWVuRWwmJiFiLmZlYXR1cmVzLmlzT2xkQW5kcm9pZCYmKGN8fChjPXYuZ2V0RnVsbHNjcmVlbkFQSSgpKSxjPyhiLmJpbmQoZG9jdW1lbnQsYy5ldmVudEssdi51cGRhdGVGdWxsc2NyZWVuKSx2LnVwZGF0ZUZ1bGxzY3JlZW4oKSxiLmFkZENsYXNzKGEudGVtcGxhdGUsInBzd3AtLXN1cHBvcnRzLWZzIikpOmIucmVtb3ZlQ2xhc3MoYS50ZW1wbGF0ZSwicHN3cC0tc3VwcG9ydHMtZnMiKSl9LE49ZnVuY3Rpb24oKXtxLnByZWxvYWRlckVsJiYoTyghMCksbCgiYmVmb3JlQ2hhbmdlIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChvKSxvPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmN1cnJJdGVtJiZhLmN1cnJJdGVtLmxvYWRpbmc/KCFhLmFsbG93UHJvZ3Jlc3NpdmVJbWcoKXx8YS5jdXJySXRlbS5pbWcmJiFhLmN1cnJJdGVtLmltZy5uYXR1cmFsV2lkdGgpJiZPKCExKTpPKCEwKX0scS5sb2FkaW5nSW5kaWNhdG9yRGVsYXkpfSksbCgiaW1hZ2VMb2FkQ29tcGxldGUiLGZ1bmN0aW9uKGIsYyl7YS5jdXJySXRlbT09PWMmJk8oITApfSkpfSxPPWZ1bmN0aW9uKGEpe24hPT1hJiYoQyhtLCJwcmVsb2FkZXItLWFjdGl2ZSIsIWEpLG49YSl9LFA9ZnVuY3Rpb24oYSl7dmFyIGM9YS52R2FwO2lmKEIoKSl7dmFyIGc9cS5iYXJzU2l6ZTtpZihxLmNhcHRpb25FbCYmImF1dG8iPT09Zy5ib3R0b20paWYoZnx8KGY9Yi5jcmVhdGVFbCgicHN3cF9fY2FwdGlvbiBwc3dwX19jYXB0aW9uLS1mYWtlIiksZi5hcHBlbmRDaGlsZChiLmNyZWF0ZUVsKCJwc3dwX19jYXB0aW9uX19jZW50ZXIiKSksZC5pbnNlcnRCZWZvcmUoZixlKSxiLmFkZENsYXNzKGQsInBzd3BfX3VpLS1maXQiKSkscS5hZGRDYXB0aW9uSFRNTEZuKGEsZiwhMCkpe3ZhciBoPWYuY2xpZW50SGVpZ2h0O2MuYm90dG9tPXBhcnNlSW50KGgsMTApfHw0NH1lbHNlIGMuYm90dG9tPWcudG9wO2Vsc2UgYy5ib3R0b209ImF1dG8iPT09Zy5ib3R0b20/MDpnLmJvdHRvbTtjLnRvcD1nLnRvcH1lbHNlIGMudG9wPWMuYm90dG9tPTB9LFE9ZnVuY3Rpb24oKXtxLnRpbWVUb0lkbGUmJmwoIm1vdXNlVXNlZCIsZnVuY3Rpb24oKXtiLmJpbmQoZG9jdW1lbnQsIm1vdXNlbW92ZSIsSyksYi5iaW5kKGRvY3VtZW50LCJtb3VzZW91dCIsTCksdD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe0orKywyPT09SiYmdi5zZXRJZGxlKCEwKX0scS50aW1lVG9JZGxlLzIpfSl9LFI9ZnVuY3Rpb24oKXtsKCJvblZlcnRpY2FsRHJhZyIsZnVuY3Rpb24oYSl7eCYmLjk1PmE/di5oaWRlQ29udHJvbHMoKToheCYmYT49Ljk1JiZ2LnNob3dDb250cm9scygpfSk7dmFyIGE7bCgib25QaW5jaENsb3NlIixmdW5jdGlvbihiKXt4JiYuOT5iPyh2LmhpZGVDb250cm9scygpLGE9ITApOmEmJiF4JiZiPi45JiZ2LnNob3dDb250cm9scygpfSksbCgiem9vbUdlc3R1cmVFbmRlZCIsZnVuY3Rpb24oKXthPSExLGEmJiF4JiZ2LnNob3dDb250cm9scygpfSl9LFM9W3tuYW1lOiJjYXB0aW9uIixvcHRpb246ImNhcHRpb25FbCIsb25Jbml0OmZ1bmN0aW9uKGEpe2U9YX19LHtuYW1lOiJzaGFyZS1tb2RhbCIsb3B0aW9uOiJzaGFyZUVsIixvbkluaXQ6ZnVuY3Rpb24oYSl7aT1hfSxvblRhcDpmdW5jdGlvbigpe0YoKX19LHtuYW1lOiJidXR0b24tLXNoYXJlIixvcHRpb246InNoYXJlRWwiLG9uSW5pdDpmdW5jdGlvbihhKXtoPWF9LG9uVGFwOmZ1bmN0aW9uKCl7RigpfX0se25hbWU6ImJ1dHRvbi0tem9vbSIsb3B0aW9uOiJ6b29tRWwiLG9uVGFwOmEudG9nZ2xlRGVza3RvcFpvb219LHtuYW1lOiJjb3VudGVyIixvcHRpb246ImNvdW50ZXJFbCIsb25Jbml0OmZ1bmN0aW9uKGEpe2c9YX19LHtuYW1lOiJidXR0b24tLWNsb3NlIixvcHRpb246ImNsb3NlRWwiLG9uVGFwOmEuY2xvc2V9LHtuYW1lOiJidXR0b24tLWFycm93LS1sZWZ0IixvcHRpb246ImFycm93RWwiLG9uVGFwOmEucHJldn0se25hbWU6ImJ1dHRvbi0tYXJyb3ctLXJpZ2h0IixvcHRpb246ImFycm93RWwiLG9uVGFwOmEubmV4dH0se25hbWU6ImJ1dHRvbi0tZnMiLG9wdGlvbjoiZnVsbHNjcmVlbkVsIixvblRhcDpmdW5jdGlvbigpe2MuaXNGdWxsc2NyZWVuKCk/Yy5leGl0KCk6Yy5lbnRlcigpfX0se25hbWU6InByZWxvYWRlciIsb3B0aW9uOiJwcmVsb2FkZXJFbCIsb25Jbml0OmZ1bmN0aW9uKGEpe209YX19XSxUPWZ1bmN0aW9uKCl7dmFyIGEsYyxlLGY9ZnVuY3Rpb24oZCl7aWYoZClmb3IodmFyIGY9ZC5sZW5ndGgsZz0wO2Y+ZztnKyspe2E9ZFtnXSxjPWEuY2xhc3NOYW1lO2Zvcih2YXIgaD0wO2g8Uy5sZW5ndGg7aCsrKWU9U1toXSxjLmluZGV4T2YoInBzd3BfXyIrZS5uYW1lKT4tMSYmKHFbZS5vcHRpb25dPyhiLnJlbW92ZUNsYXNzKGEsInBzd3BfX2VsZW1lbnQtLWRpc2FibGVkIiksZS5vbkluaXQmJmUub25Jbml0KGEpKTpiLmFkZENsYXNzKGEsInBzd3BfX2VsZW1lbnQtLWRpc2FibGVkIikpfX07ZihkLmNoaWxkcmVuKTt2YXIgZz1iLmdldENoaWxkQnlDbGFzcyhkLCJwc3dwX190b3AtYmFyIik7ZyYmZihnLmNoaWxkcmVuKX07di5pbml0PWZ1bmN0aW9uKCl7Yi5leHRlbmQoYS5vcHRpb25zLHosITApLHE9YS5vcHRpb25zLGQ9Yi5nZXRDaGlsZEJ5Q2xhc3MoYS5zY3JvbGxXcmFwLCJwc3dwX191aSIpLGw9YS5saXN0ZW4sUigpLGwoImJlZm9yZUNoYW5nZSIsdi51cGRhdGUpLGwoImRvdWJsZVRhcCIsZnVuY3Rpb24oYil7dmFyIGM9YS5jdXJySXRlbS5pbml0aWFsWm9vbUxldmVsO2EuZ2V0Wm9vbUxldmVsKCkhPT1jP2Euem9vbVRvKGMsYiwzMzMpOmEuem9vbVRvKHEuZ2V0RG91YmxlVGFwWm9vbSghMSxhLmN1cnJJdGVtKSxiLDMzMyl9KSxsKCJwcmV2ZW50RHJhZ0V2ZW50IixmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS50YXJnZXR8fGEuc3JjRWxlbWVudDtkJiZkLmdldEF0dHJpYnV0ZSgiY2xhc3MiKSYmYS50eXBlLmluZGV4T2YoIm1vdXNlIik+LTEmJihkLmdldEF0dHJpYnV0ZSgiY2xhc3MiKS5pbmRleE9mKCJfX2NhcHRpb24iKT4wfHwvKFNNQUxMfFNUUk9OR3xFTSkvaS50ZXN0KGQudGFnTmFtZSkpJiYoYy5wcmV2ZW50PSExKX0pLGwoImJpbmRFdmVudHMiLGZ1bmN0aW9uKCl7Yi5iaW5kKGQsInBzd3BUYXAgY2xpY2siLEEpLGIuYmluZChhLnNjcm9sbFdyYXAsInBzd3BUYXAiLHYub25HbG9iYWxUYXApLGEubGlrZWx5VG91Y2hEZXZpY2V8fGIuYmluZChhLnNjcm9sbFdyYXAsIm1vdXNlb3ZlciIsdi5vbk1vdXNlT3Zlcil9KSxsKCJ1bmJpbmRFdmVudHMiLGZ1bmN0aW9uKCl7eXx8RigpLHQmJmNsZWFySW50ZXJ2YWwodCksYi51bmJpbmQoZG9jdW1lbnQsIm1vdXNlb3V0IixMKSxiLnVuYmluZChkb2N1bWVudCwibW91c2Vtb3ZlIixLKSxiLnVuYmluZChkLCJwc3dwVGFwIGNsaWNrIixBKSxiLnVuYmluZChhLnNjcm9sbFdyYXAsInBzd3BUYXAiLHYub25HbG9iYWxUYXApLGIudW5iaW5kKGEuc2Nyb2xsV3JhcCwibW91c2VvdmVyIix2Lm9uTW91c2VPdmVyKSxjJiYoYi51bmJpbmQoZG9jdW1lbnQsYy5ldmVudEssdi51cGRhdGVGdWxsc2NyZWVuKSxjLmlzRnVsbHNjcmVlbigpJiYocS5oaWRlQW5pbWF0aW9uRHVyYXRpb249MCxjLmV4aXQoKSksYz1udWxsKX0pLGwoImRlc3Ryb3kiLGZ1bmN0aW9uKCl7cS5jYXB0aW9uRWwmJihmJiZkLnJlbW92ZUNoaWxkKGYpLGIucmVtb3ZlQ2xhc3MoZSwicHN3cF9fY2FwdGlvbi0tZW1wdHkiKSksaSYmKGkuY2hpbGRyZW5bMF0ub25jbGljaz1udWxsKSxiLnJlbW92ZUNsYXNzKGQsInBzd3BfX3VpLS1vdmVyLWNsb3NlIiksYi5hZGRDbGFzcyhkLCJwc3dwX191aS0taGlkZGVuIiksdi5zZXRJZGxlKCExKX0pLHEuc2hvd0FuaW1hdGlvbkR1cmF0aW9ufHxiLnJlbW92ZUNsYXNzKGQsInBzd3BfX3VpLS1oaWRkZW4iKSxsKCJpbml0aWFsWm9vbUluIixmdW5jdGlvbigpe3Euc2hvd0FuaW1hdGlvbkR1cmF0aW9uJiZiLnJlbW92ZUNsYXNzKGQsInBzd3BfX3VpLS1oaWRkZW4iKX0pLGwoImluaXRpYWxab29tT3V0IixmdW5jdGlvbigpe2IuYWRkQ2xhc3MoZCwicHN3cF9fdWktLWhpZGRlbiIpfSksbCgicGFyc2VWZXJ0aWNhbE1hcmdpbiIsUCksVCgpLHEuc2hhcmVFbCYmaCYmaSYmKHk9ITApLEQoKSxRKCksTSgpLE4oKX0sdi5zZXRJZGxlPWZ1bmN0aW9uKGEpe2s9YSxDKGQsInVpLS1pZGxlIixhKX0sdi51cGRhdGU9ZnVuY3Rpb24oKXt4JiZhLmN1cnJJdGVtPyh2LnVwZGF0ZUluZGV4SW5kaWNhdG9yKCkscS5jYXB0aW9uRWwmJihxLmFkZENhcHRpb25IVE1MRm4oYS5jdXJySXRlbSxlKSxDKGUsImNhcHRpb24tLWVtcHR5IiwhYS5jdXJySXRlbS50aXRsZSkpLHc9ITApOnc9ITEseXx8RigpLEQoKX0sdi51cGRhdGVGdWxsc2NyZWVuPWZ1bmN0aW9uKGQpe2QmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnNldFNjcm9sbE9mZnNldCgwLGIuZ2V0U2Nyb2xsWSgpKX0sNTApLGJbKGMuaXNGdWxsc2NyZWVuKCk/ImFkZCI6InJlbW92ZSIpKyJDbGFzcyJdKGEudGVtcGxhdGUsInBzd3AtLWZzIil9LHYudXBkYXRlSW5kZXhJbmRpY2F0b3I9ZnVuY3Rpb24oKXtxLmNvdW50ZXJFbCYmKGcuaW5uZXJIVE1MPWEuZ2V0Q3VycmVudEluZGV4KCkrMStxLmluZGV4SW5kaWNhdG9yU2VwK3EuZ2V0TnVtSXRlbXNGbigpKX0sdi5vbkdsb2JhbFRhcD1mdW5jdGlvbihjKXtjPWN8fHdpbmRvdy5ldmVudDt2YXIgZD1jLnRhcmdldHx8Yy5zcmNFbGVtZW50O2lmKCFyKWlmKGMuZGV0YWlsJiYibW91c2UiPT09Yy5kZXRhaWwucG9pbnRlclR5cGUpe2lmKEkoZCkpcmV0dXJuIHZvaWQgYS5jbG9zZSgpO2IuaGFzQ2xhc3MoZCwicHN3cF9faW1nIikmJigxPT09YS5nZXRab29tTGV2ZWwoKSYmYS5nZXRab29tTGV2ZWwoKTw9YS5jdXJySXRlbS5maXRSYXRpbz9xLmNsaWNrVG9DbG9zZU5vblpvb21hYmxlJiZhLmNsb3NlKCk6YS50b2dnbGVEZXNrdG9wWm9vbShjLmRldGFpbC5yZWxlYXNlUG9pbnQpKX1lbHNlIGlmKHEudGFwVG9Ub2dnbGVDb250cm9scyYmKHg/di5oaWRlQ29udHJvbHMoKTp2LnNob3dDb250cm9scygpKSxxLnRhcFRvQ2xvc2UmJihiLmhhc0NsYXNzKGQsInBzd3BfX2ltZyIpfHxJKGQpKSlyZXR1cm4gdm9pZCBhLmNsb3NlKCl9LHYub25Nb3VzZU92ZXI9ZnVuY3Rpb24oYSl7YT1hfHx3aW5kb3cuZXZlbnQ7dmFyIGI9YS50YXJnZXR8fGEuc3JjRWxlbWVudDtDKGQsInVpLS1vdmVyLWNsb3NlIixJKGIpKX0sdi5oaWRlQ29udHJvbHM9ZnVuY3Rpb24oKXtiLmFkZENsYXNzKGQsInBzd3BfX3VpLS1oaWRkZW4iKSx4PSExfSx2LnNob3dDb250cm9scz1mdW5jdGlvbigpe3g9ITAsd3x8di51cGRhdGUoKSxiLnJlbW92ZUNsYXNzKGQsInBzd3BfX3VpLS1oaWRkZW4iKX0sdi5zdXBwb3J0c0Z1bGxzY3JlZW49ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudDtyZXR1cm4hIShhLmV4aXRGdWxsc2NyZWVufHxhLm1vekNhbmNlbEZ1bGxTY3JlZW58fGEud2Via2l0RXhpdEZ1bGxzY3JlZW58fGEubXNFeGl0RnVsbHNjcmVlbil9LHYuZ2V0RnVsbHNjcmVlbkFQST1mdW5jdGlvbigpe3ZhciBiLGM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGQ9ImZ1bGxzY3JlZW5jaGFuZ2UiO3JldHVybiBjLnJlcXVlc3RGdWxsc2NyZWVuP2I9e2VudGVySzoicmVxdWVzdEZ1bGxzY3JlZW4iLGV4aXRLOiJleGl0RnVsbHNjcmVlbiIsZWxlbWVudEs6ImZ1bGxzY3JlZW5FbGVtZW50IixldmVudEs6ZH06Yy5tb3pSZXF1ZXN0RnVsbFNjcmVlbj9iPXtlbnRlcks6Im1velJlcXVlc3RGdWxsU2NyZWVuIixleGl0SzoibW96Q2FuY2VsRnVsbFNjcmVlbiIsZWxlbWVudEs6Im1vekZ1bGxTY3JlZW5FbGVtZW50IixldmVudEs6Im1veiIrZH06Yy53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbj9iPXtlbnRlcks6IndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuIixleGl0Szoid2Via2l0RXhpdEZ1bGxzY3JlZW4iLGVsZW1lbnRLOiJ3ZWJraXRGdWxsc2NyZWVuRWxlbWVudCIsZXZlbnRLOiJ3ZWJraXQiK2R9OmMubXNSZXF1ZXN0RnVsbHNjcmVlbiYmKGI9e2VudGVySzoibXNSZXF1ZXN0RnVsbHNjcmVlbiIsZXhpdEs6Im1zRXhpdEZ1bGxzY3JlZW4iLGVsZW1lbnRLOiJtc0Z1bGxzY3JlZW5FbGVtZW50IixldmVudEs6Ik1TRnVsbHNjcmVlbkNoYW5nZSJ9KSxiJiYoYi5lbnRlcj1mdW5jdGlvbigpe3JldHVybiBqPXEuY2xvc2VPblNjcm9sbCxxLmNsb3NlT25TY3JvbGw9ITEsIndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuIiE9PXRoaXMuZW50ZXJLP2EudGVtcGxhdGVbdGhpcy5lbnRlcktdKCk6dm9pZCBhLnRlbXBsYXRlW3RoaXMuZW50ZXJLXShFbGVtZW50LkFMTE9XX0tFWUJPQVJEX0lOUFVUKX0sYi5leGl0PWZ1bmN0aW9uKCl7cmV0dXJuIHEuY2xvc2VPblNjcm9sbD1qLGRvY3VtZW50W3RoaXMuZXhpdEtdKCl9LGIuaXNGdWxsc2NyZWVuPWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50W3RoaXMuZWxlbWVudEtdfSksYn19O3JldHVybiBhfSk7]]></data>
	</file>
	<file>
	  <filename>/photoswipe.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIFBob3RvU3dpcGUgbWFpbiBDU1MgYnkgRG1pdHJ5IFNlbWVub3YgfCBwaG90b3N3aXBlLmNvbSB8IE1JVCBsaWNlbnNlICovCi8qCglTdHlsZXMgZm9yIGJhc2ljIFBob3RvU3dpcGUgZnVuY3Rpb25hbGl0eSAoc2xpZGluZyBhcmVhLCBvcGVuL2Nsb3NlIHRyYW5zaXRpb25zKQoqLwovKiBwc3dwID0gcGhvdG9zd2lwZSAqLwoucHN3cCB7CiAgZGlzcGxheTogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIGxlZnQ6IDA7CiAgdG9wOiAwOwogIG92ZXJmbG93OiBoaWRkZW47CiAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTsKICB0b3VjaC1hY3Rpb246IG5vbmU7CiAgei1pbmRleDogMTUwMDsKICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAgLyogY3JlYXRlIHNlcGFyYXRlIGxheWVyLCB0byBhdm9pZCBwYWludCBvbiB3aW5kb3cub25zY3JvbGwgaW4gd2Via2l0L2JsaW5rICovCiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47CiAgb3V0bGluZTogbm9uZTsgfQogIC5wc3dwICogewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9CiAgLnBzd3AgaW1nIHsKICAgIG1heC13aWR0aDogbm9uZTsgfQoKLyogc3R5bGUgaXMgYWRkZWQgd2hlbiBKUyBvcHRpb24gc2hvd0hpZGVPcGFjaXR5IGlzIHNldCB0byB0cnVlICovCi5wc3dwLS1hbmltYXRlX29wYWNpdHkgewogIC8qIDAuMDAxLCBiZWNhdXNlIG9wYWNpdHk6MCBkb2Vzbid0IHRyaWdnZXIgUGFpbnQgYWN0aW9uLCB3aGljaCBjYXVzZXMgbGFnIGF0IHN0YXJ0IG9mIHRyYW5zaXRpb24gKi8KICBvcGFjaXR5OiAwLjAwMTsKICB3aWxsLWNoYW5nZTogb3BhY2l0eTsKICAvKiBmb3Igb3Blbi9jbG9zZSB0cmFuc2l0aW9uICovCiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOwogICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTsgfQoKLnBzd3AtLW9wZW4gewogIGRpc3BsYXk6IGJsb2NrOyB9CgoucHN3cC0tem9vbS1hbGxvd2VkIC5wc3dwX19pbWcgewogIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovCiAgY3Vyc29yOiAtd2Via2l0LXpvb20taW47CiAgY3Vyc29yOiAtbW96LXpvb20taW47CiAgY3Vyc29yOiB6b29tLWluOyB9CgoucHN3cC0tem9vbWVkLWluIC5wc3dwX19pbWcgewogIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovCiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7CiAgY3Vyc29yOiAtbW96LWdyYWI7CiAgY3Vyc29yOiBncmFiOyB9CgoucHN3cC0tZHJhZ2dpbmcgLnBzd3BfX2ltZyB7CiAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi8KICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmc7CiAgY3Vyc29yOiAtbW96LWdyYWJiaW5nOwogIGN1cnNvcjogZ3JhYmJpbmc7IH0KCi8qCglCYWNrZ3JvdW5kIGlzIGFkZGVkIGFzIGEgc2VwYXJhdGUgZWxlbWVudC4KCUFzIGFuaW1hdGluZyBvcGFjaXR5IGlzIG11Y2ggZmFzdGVyIHRoYW4gYW5pbWF0aW5nIHJnYmEoKSBiYWNrZ3JvdW5kLWNvbG9yLgoqLwoucHN3cF9fYmcgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBsZWZ0OiAwOwogIHRvcDogMDsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7CiAgYmFja2dyb3VuZDogIzAwMDsKICBvcGFjaXR5OiAwOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsKICB3aWxsLWNoYW5nZTogb3BhY2l0eTsgfQoKLnBzd3BfX3Njcm9sbC13cmFwIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbGVmdDogMDsKICB0b3A6IDA7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIG92ZXJmbG93OiBoaWRkZW47IH0KCi5wc3dwX19jb250YWluZXIsCi5wc3dwX196b29tLXdyYXAgewogIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7CiAgdG91Y2gtYWN0aW9uOiBub25lOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBsZWZ0OiAwOwogIHJpZ2h0OiAwOwogIHRvcDogMDsKICBib3R0b206IDA7IH0KCi8qIFByZXZlbnQgc2VsZWN0aW9uIGFuZCB0YXAgaGlnaGxpZ2h0cyAqLwoucHN3cF9fY29udGFpbmVyLAoucHN3cF9faW1nIHsKICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfQoKLnBzd3BfX3pvb20td3JhcCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxMDAlOwogIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7CiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wOwogIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wOwogIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi8KICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOwogICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9CgoucHN3cF9fYmcgewogIHdpbGwtY2hhbmdlOiBvcGFjaXR5OwogIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi8KICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9CgoucHN3cC0tYW5pbWF0ZWQtaW4gLnBzd3BfX2JnLAoucHN3cC0tYW5pbWF0ZWQtaW4gLnBzd3BfX3pvb20td3JhcCB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7IH0KCi5wc3dwX19jb250YWluZXIsCi5wc3dwX196b29tLXdyYXAgewogIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9CgoucHN3cF9faXRlbSB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGxlZnQ6IDA7CiAgcmlnaHQ6IDA7CiAgdG9wOiAwOwogIGJvdHRvbTogMDsKICBvdmVyZmxvdzogaGlkZGVuOyB9CgoucHN3cF9faW1nIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IGF1dG87CiAgaGVpZ2h0OiBhdXRvOwogIHRvcDogMDsKICBsZWZ0OiAwOyB9CgovKgoJc3RyZXRjaGVkIHRodW1ibmFpbCBvciBkaXYgcGxhY2Vob2xkZXIgZWxlbWVudCAoc2VlIGJlbG93KQoJc3R5bGUgaXMgYWRkZWQgdG8gYXZvaWQgZmxpY2tlcmluZyBpbiB3ZWJraXQvYmxpbmsgd2hlbiBsYXllcnMgb3ZlcmxhcAoqLwoucHN3cF9faW1nLS1wbGFjZWhvbGRlciB7CiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH0KCi8qCglkaXYgZWxlbWVudCB0aGF0IG1hdGNoZXMgc2l6ZSBvZiBsYXJnZSBpbWFnZQoJbGFyZ2UgaW1hZ2UgbG9hZHMgb24gdG9wIG9mIGl0CiovCi5wc3dwX19pbWctLXBsYWNlaG9sZGVyLS1ibGFuayB7CiAgYmFja2dyb3VuZDogIzIyMjsgfQoKLnBzd3AtLWllIC5wc3dwX19pbWcgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgbGVmdDogMDsKICB0b3A6IDA7IH0KCi8qCglFcnJvciBtZXNzYWdlIGFwcGVhcnMgd2hlbiBpbWFnZSBpcyBub3QgbG9hZGVkCgkoSlMgb3B0aW9uIGVycm9yTXNnIGNvbnRyb2xzIG1hcmt1cCkKKi8KLnBzd3BfX2Vycm9yLW1zZyB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGxlZnQ6IDA7CiAgdG9wOiA1MCU7CiAgd2lkdGg6IDEwMCU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGZvbnQtc2l6ZTogMTRweDsKICBsaW5lLWhlaWdodDogMTZweDsKICBtYXJnaW4tdG9wOiAtOHB4OwogIGNvbG9yOiAjQ0NDOyB9CgoucHN3cF9fZXJyb3ItbXNnIGEgewogIGNvbG9yOiAjQ0NDOwogIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9Cg==]]></data>
	</file>
	<file>
	  <filename>/photoswipe.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIFBob3RvU3dpcGUgLSB2NC4xLjEgLSAyMDE1LTEyLTI0CiogaHR0cDovL3Bob3Rvc3dpcGUuY29tCiogQ29weXJpZ2h0IChjKSAyMDE1IERtaXRyeSBTZW1lbm92OyAqLwohZnVuY3Rpb24oYSxiKXsiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShiKToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YigpOmEuUGhvdG9Td2lwZT1iKCl9KHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e2ZlYXR1cmVzOm51bGwsYmluZDpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT0oZD8icmVtb3ZlIjoiYWRkIikrIkV2ZW50TGlzdGVuZXIiO2I9Yi5zcGxpdCgiICIpO2Zvcih2YXIgZj0wO2Y8Yi5sZW5ndGg7ZisrKWJbZl0mJmFbZV0oYltmXSxjLCExKX0saXNBcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEFycmF5fSxjcmVhdGVFbDpmdW5jdGlvbihhLGIpe3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnx8ImRpdiIpO3JldHVybiBhJiYoYy5jbGFzc05hbWU9YSksY30sZ2V0U2Nyb2xsWTpmdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5wYWdlWU9mZnNldDtyZXR1cm4gdm9pZCAwIT09YT9hOmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B9LHVuYmluZDpmdW5jdGlvbihhLGIsYyl7ZS5iaW5kKGEsYixjLCEwKX0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgUmVnRXhwKCIoXFxzfF4pIitiKyIoXFxzfCQpIik7YS5jbGFzc05hbWU9YS5jbGFzc05hbWUucmVwbGFjZShjLCIgIikucmVwbGFjZSgvXlxzXHMqLywiIikucmVwbGFjZSgvXHNccyokLywiIil9LGFkZENsYXNzOmZ1bmN0aW9uKGEsYil7ZS5oYXNDbGFzcyhhLGIpfHwoYS5jbGFzc05hbWUrPShhLmNsYXNzTmFtZT8iICI6IiIpK2IpfSxoYXNDbGFzczpmdW5jdGlvbihhLGIpe3JldHVybiBhLmNsYXNzTmFtZSYmbmV3IFJlZ0V4cCgiKF58XFxzKSIrYisiKFxcc3wkKSIpLnRlc3QoYS5jbGFzc05hbWUpfSxnZXRDaGlsZEJ5Q2xhc3M6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5maXJzdENoaWxkO2M7KXtpZihlLmhhc0NsYXNzKGMsYikpcmV0dXJuIGM7Yz1jLm5leHRTaWJsaW5nfX0sYXJyYXlTZWFyY2g6ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1hLmxlbmd0aDtkLS07KWlmKGFbZF1bY109PT1iKXJldHVybiBkO3JldHVybi0xfSxleHRlbmQ6ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoZCkpe2lmKGMmJmEuaGFzT3duUHJvcGVydHkoZCkpY29udGludWU7YVtkXT1iW2RdfX0sZWFzaW5nOntzaW5lOntvdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIE1hdGguc2luKGEqKE1hdGguUEkvMikpfSxpbk91dDpmdW5jdGlvbihhKXtyZXR1cm4tKE1hdGguY29zKE1hdGguUEkqYSktMSkvMn19LGN1YmljOntvdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuLS1hKmEqYSsxfX19LGRldGVjdEZlYXR1cmVzOmZ1bmN0aW9uKCl7aWYoZS5mZWF0dXJlcylyZXR1cm4gZS5mZWF0dXJlczt2YXIgYT1lLmNyZWF0ZUVsKCksYj1hLnN0eWxlLGM9IiIsZD17fTtpZihkLm9sZElFPWRvY3VtZW50LmFsbCYmIWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIsZC50b3VjaD0ib250b3VjaHN0YXJ0ImluIHdpbmRvdyx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lJiYoZC5yYWY9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSxkLmNhZj13aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUpLGQucG9pbnRlckV2ZW50PW5hdmlnYXRvci5wb2ludGVyRW5hYmxlZHx8bmF2aWdhdG9yLm1zUG9pbnRlckVuYWJsZWQsIWQucG9pbnRlckV2ZW50KXt2YXIgZj1uYXZpZ2F0b3IudXNlckFnZW50O2lmKC9pUChob25lfG9kKS8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pKXt2YXIgZz1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5tYXRjaCgvT1MgKFxkKylfKFxkKylfPyhcZCspPy8pO2cmJmcubGVuZ3RoPjAmJihnPXBhcnNlSW50KGdbMV0sMTApLGc+PTEmJjg+ZyYmKGQuaXNPbGRJT1NQaG9uZT0hMCkpfXZhciBoPWYubWF0Y2goL0FuZHJvaWRccyhbMC05XC5dKikvKSxpPWg/aFsxXTowO2k9cGFyc2VGbG9hdChpKSxpPj0xJiYoNC40PmkmJihkLmlzT2xkQW5kcm9pZD0hMCksZC5hbmRyb2lkVmVyc2lvbj1pKSxkLmlzTW9iaWxlT3BlcmE9L29wZXJhIG1pbml8b3BlcmEgbW9iaS9pLnRlc3QoZil9Zm9yKHZhciBqLGssbD1bInRyYW5zZm9ybSIsInBlcnNwZWN0aXZlIiwiYW5pbWF0aW9uTmFtZSJdLG09WyIiLCJ3ZWJraXQiLCJNb3oiLCJtcyIsIk8iXSxuPTA7ND5uO24rKyl7Yz1tW25dO2Zvcih2YXIgbz0wOzM+bztvKyspaj1sW29dLGs9YysoYz9qLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2ouc2xpY2UoMSk6aiksIWRbal0mJmsgaW4gYiYmKGRbal09ayk7YyYmIWQucmFmJiYoYz1jLnRvTG93ZXJDYXNlKCksZC5yYWY9d2luZG93W2MrIlJlcXVlc3RBbmltYXRpb25GcmFtZSJdLGQucmFmJiYoZC5jYWY9d2luZG93W2MrIkNhbmNlbEFuaW1hdGlvbkZyYW1lIl18fHdpbmRvd1tjKyJDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXSkpfWlmKCFkLnJhZil7dmFyIHA9MDtkLnJhZj1mdW5jdGlvbihhKXt2YXIgYj0obmV3IERhdGUpLmdldFRpbWUoKSxjPU1hdGgubWF4KDAsMTYtKGItcCkpLGQ9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXthKGIrYyl9LGMpO3JldHVybiBwPWIrYyxkfSxkLmNhZj1mdW5jdGlvbihhKXtjbGVhclRpbWVvdXQoYSl9fXJldHVybiBkLnN2Zz0hIWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyYmISFkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIikuY3JlYXRlU1ZHUmVjdCxlLmZlYXR1cmVzPWQsZH19O2UuZGV0ZWN0RmVhdHVyZXMoKSxlLmZlYXR1cmVzLm9sZElFJiYoZS5iaW5kPWZ1bmN0aW9uKGEsYixjLGQpe2I9Yi5zcGxpdCgiICIpO2Zvcih2YXIgZSxmPShkPyJkZXRhY2giOiJhdHRhY2giKSsiRXZlbnQiLGc9ZnVuY3Rpb24oKXtjLmhhbmRsZUV2ZW50LmNhbGwoYyl9LGg9MDtoPGIubGVuZ3RoO2grKylpZihlPWJbaF0paWYoIm9iamVjdCI9PXR5cGVvZiBjJiZjLmhhbmRsZUV2ZW50KXtpZihkKXtpZighY1sib2xkSUUiK2VdKXJldHVybiExfWVsc2UgY1sib2xkSUUiK2VdPWc7YVtmXSgib24iK2UsY1sib2xkSUUiK2VdKX1lbHNlIGFbZl0oIm9uIitlLGMpfSk7dmFyIGY9dGhpcyxnPTI1LGg9MyxpPXthbGxvd1BhblRvTmV4dDohMCxzcGFjaW5nOi4xMixiZ09wYWNpdHk6MSxtb3VzZVVzZWQ6ITEsbG9vcDohMCxwaW5jaFRvQ2xvc2U6ITAsY2xvc2VPblNjcm9sbDohMCxjbG9zZU9uVmVydGljYWxEcmFnOiEwLHZlcnRpY2FsRHJhZ1JhbmdlOi43NSxoaWRlQW5pbWF0aW9uRHVyYXRpb246MzMzLHNob3dBbmltYXRpb25EdXJhdGlvbjozMzMsc2hvd0hpZGVPcGFjaXR5OiExLGZvY3VzOiEwLGVzY0tleTohMCxhcnJvd0tleXM6ITAsbWFpblNjcm9sbEVuZEZyaWN0aW9uOi4zNSxwYW5FbmRGcmljdGlvbjouMzUsaXNDbGlja2FibGVFbGVtZW50OmZ1bmN0aW9uKGEpe3JldHVybiJBIj09PWEudGFnTmFtZX0sZ2V0RG91YmxlVGFwWm9vbTpmdW5jdGlvbihhLGIpe3JldHVybiBhPzE6Yi5pbml0aWFsWm9vbUxldmVsPC43PzE6MS4zM30sbWF4U3ByZWFkWm9vbToxLjMzLG1vZGFsOiEwLHNjYWxlTW9kZToiZml0In07ZS5leHRlbmQoaSxkKTt2YXIgaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LHgseSx6LEEsQixDLEQsRSxGLEcsSCxJLEosSyxMLE0sTixPLFAsUSxSLFMsVCxVLFYsVyxYLFksWiwkLF8sYWEsYmEsY2EsZGEsZWEsZmEsZ2EsaGEsaWEsamEsa2EsbGE9ZnVuY3Rpb24oKXtyZXR1cm57eDowLHk6MH19LG1hPWxhKCksbmE9bGEoKSxvYT1sYSgpLHBhPXt9LHFhPTAscmE9e30sc2E9bGEoKSx0YT0wLHVhPSEwLHZhPVtdLHdhPXt9LHhhPSExLHlhPWZ1bmN0aW9uKGEsYil7ZS5leHRlbmQoZixiLnB1YmxpY01ldGhvZHMpLHZhLnB1c2goYSl9LHphPWZ1bmN0aW9uKGEpe3ZhciBiPV9iKCk7cmV0dXJuIGE+Yi0xP2EtYjowPmE/YithOmF9LEFhPXt9LEJhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIEFhW2FdfHwoQWFbYV09W10pLEFhW2FdLnB1c2goYil9LENhPWZ1bmN0aW9uKGEpe3ZhciBiPUFhW2FdO2lmKGIpe3ZhciBjPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7Yy5zaGlmdCgpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWJbZF0uYXBwbHkoZixjKX19LERhPWZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9LEVhPWZ1bmN0aW9uKGEpe2lhPWEsZi5iZy5zdHlsZS5vcGFjaXR5PWEqaS5iZ09wYWNpdHl9LEZhPWZ1bmN0aW9uKGEsYixjLGQsZSl7KCF4YXx8ZSYmZSE9PWYuY3Vyckl0ZW0pJiYoZC89ZT9lLmZpdFJhdGlvOmYuY3Vyckl0ZW0uZml0UmF0aW8pLGFbRV09dStiKyJweCwgIitjKyJweCIrdisiIHNjYWxlKCIrZCsiKSJ9LEdhPWZ1bmN0aW9uKGEpe2RhJiYoYSYmKHM+Zi5jdXJySXRlbS5maXRSYXRpbz94YXx8KGxjKGYuY3Vyckl0ZW0sITEsITApLHhhPSEwKTp4YSYmKGxjKGYuY3Vyckl0ZW0pLHhhPSExKSksRmEoZGEsb2EueCxvYS55LHMpKX0sSGE9ZnVuY3Rpb24oYSl7YS5jb250YWluZXImJkZhKGEuY29udGFpbmVyLnN0eWxlLGEuaW5pdGlhbFBvc2l0aW9uLngsYS5pbml0aWFsUG9zaXRpb24ueSxhLmluaXRpYWxab29tTGV2ZWwsYSl9LElhPWZ1bmN0aW9uKGEsYil7YltFXT11K2ErInB4LCAwcHgiK3Z9LEphPWZ1bmN0aW9uKGEsYil7aWYoIWkubG9vcCYmYil7dmFyIGM9bSsoc2EueCpxYS1hKS9zYS54LGQ9TWF0aC5yb3VuZChhLXNiLngpOygwPmMmJmQ+MHx8Yz49X2IoKS0xJiYwPmQpJiYoYT1zYi54K2QqaS5tYWluU2Nyb2xsRW5kRnJpY3Rpb24pfXNiLng9YSxJYShhLG4pfSxLYT1mdW5jdGlvbihhLGIpe3ZhciBjPXRiW2FdLXJhW2FdO3JldHVybiBuYVthXSttYVthXStjLWMqKGIvdCl9LExhPWZ1bmN0aW9uKGEsYil7YS54PWIueCxhLnk9Yi55LGIuaWQmJihhLmlkPWIuaWQpfSxNYT1mdW5jdGlvbihhKXthLng9TWF0aC5yb3VuZChhLngpLGEueT1NYXRoLnJvdW5kKGEueSl9LE5hPW51bGwsT2E9ZnVuY3Rpb24oKXtOYSYmKGUudW5iaW5kKGRvY3VtZW50LCJtb3VzZW1vdmUiLE9hKSxlLmFkZENsYXNzKGEsInBzd3AtLWhhc19tb3VzZSIpLGkubW91c2VVc2VkPSEwLENhKCJtb3VzZVVzZWQiKSksTmE9c2V0VGltZW91dChmdW5jdGlvbigpe05hPW51bGx9LDEwMCl9LFBhPWZ1bmN0aW9uKCl7ZS5iaW5kKGRvY3VtZW50LCJrZXlkb3duIixmKSxOLnRyYW5zZm9ybSYmZS5iaW5kKGYuc2Nyb2xsV3JhcCwiY2xpY2siLGYpLGkubW91c2VVc2VkfHxlLmJpbmQoZG9jdW1lbnQsIm1vdXNlbW92ZSIsT2EpLGUuYmluZCh3aW5kb3csInJlc2l6ZSBzY3JvbGwiLGYpLENhKCJiaW5kRXZlbnRzIil9LFFhPWZ1bmN0aW9uKCl7ZS51bmJpbmQod2luZG93LCJyZXNpemUiLGYpLGUudW5iaW5kKHdpbmRvdywic2Nyb2xsIixyLnNjcm9sbCksZS51bmJpbmQoZG9jdW1lbnQsImtleWRvd24iLGYpLGUudW5iaW5kKGRvY3VtZW50LCJtb3VzZW1vdmUiLE9hKSxOLnRyYW5zZm9ybSYmZS51bmJpbmQoZi5zY3JvbGxXcmFwLCJjbGljayIsZiksVSYmZS51bmJpbmQod2luZG93LHAsZiksQ2EoInVuYmluZEV2ZW50cyIpfSxSYT1mdW5jdGlvbihhLGIpe3ZhciBjPWhjKGYuY3Vyckl0ZW0scGEsYSk7cmV0dXJuIGImJihjYT1jKSxjfSxTYT1mdW5jdGlvbihhKXtyZXR1cm4gYXx8KGE9Zi5jdXJySXRlbSksYS5pbml0aWFsWm9vbUxldmVsfSxUYT1mdW5jdGlvbihhKXtyZXR1cm4gYXx8KGE9Zi5jdXJySXRlbSksYS53PjA/aS5tYXhTcHJlYWRab29tOjF9LFVhPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBkPT09Zi5jdXJySXRlbS5pbml0aWFsWm9vbUxldmVsPyhjW2FdPWYuY3Vyckl0ZW0uaW5pdGlhbFBvc2l0aW9uW2FdLCEwKTooY1thXT1LYShhLGQpLGNbYV0+Yi5taW5bYV0/KGNbYV09Yi5taW5bYV0sITApOmNbYV08Yi5tYXhbYV0/KGNbYV09Yi5tYXhbYV0sITApOiExKX0sVmE9ZnVuY3Rpb24oKXtpZihFKXt2YXIgYj1OLnBlcnNwZWN0aXZlJiYhRztyZXR1cm4gdT0idHJhbnNsYXRlIisoYj8iM2QoIjoiKCIpLHZvaWQodj1OLnBlcnNwZWN0aXZlPyIsIDBweCkiOiIpIil9RT0ibGVmdCIsZS5hZGRDbGFzcyhhLCJwc3dwLS1pZSIpLElhPWZ1bmN0aW9uKGEsYil7Yi5sZWZ0PWErInB4In0sSGE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5maXRSYXRpbz4xPzE6YS5maXRSYXRpbyxjPWEuY29udGFpbmVyLnN0eWxlLGQ9YiphLncsZT1iKmEuaDtjLndpZHRoPWQrInB4IixjLmhlaWdodD1lKyJweCIsYy5sZWZ0PWEuaW5pdGlhbFBvc2l0aW9uLngrInB4IixjLnRvcD1hLmluaXRpYWxQb3NpdGlvbi55KyJweCJ9LEdhPWZ1bmN0aW9uKCl7aWYoZGEpe3ZhciBhPWRhLGI9Zi5jdXJySXRlbSxjPWIuZml0UmF0aW8+MT8xOmIuZml0UmF0aW8sZD1jKmIudyxlPWMqYi5oO2Eud2lkdGg9ZCsicHgiLGEuaGVpZ2h0PWUrInB4IixhLmxlZnQ9b2EueCsicHgiLGEudG9wPW9hLnkrInB4In19fSxXYT1mdW5jdGlvbihhKXt2YXIgYj0iIjtpLmVzY0tleSYmMjc9PT1hLmtleUNvZGU/Yj0iY2xvc2UiOmkuYXJyb3dLZXlzJiYoMzc9PT1hLmtleUNvZGU/Yj0icHJldiI6Mzk9PT1hLmtleUNvZGUmJihiPSJuZXh0IikpLGImJihhLmN0cmxLZXl8fGEuYWx0S2V5fHxhLnNoaWZ0S2V5fHxhLm1ldGFLZXl8fChhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExLGZbYl0oKSkpfSxYYT1mdW5jdGlvbihhKXthJiYoWHx8V3x8ZWF8fFMpJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCkpfSxZYT1mdW5jdGlvbigpe2Yuc2V0U2Nyb2xsT2Zmc2V0KDAsZS5nZXRTY3JvbGxZKCkpfSxaYT17fSwkYT0wLF9hPWZ1bmN0aW9uKGEpe1phW2FdJiYoWmFbYV0ucmFmJiZJKFphW2FdLnJhZiksJGEtLSxkZWxldGUgWmFbYV0pfSxhYj1mdW5jdGlvbihhKXtaYVthXSYmX2EoYSksWmFbYV18fCgkYSsrLFphW2FdPXt9KX0sYmI9ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gWmEpWmEuaGFzT3duUHJvcGVydHkoYSkmJl9hKGEpfSxjYj1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2YXIgaCxpPURhKCk7YWIoYSk7dmFyIGo9ZnVuY3Rpb24oKXtpZihaYVthXSl7aWYoaD1EYSgpLWksaD49ZClyZXR1cm4gX2EoYSksZihjKSx2b2lkKGcmJmcoKSk7ZigoYy1iKSplKGgvZCkrYiksWmFbYV0ucmFmPUgoail9fTtqKCl9LGRiPXtzaG91dDpDYSxsaXN0ZW46QmEsdmlld3BvcnRTaXplOnBhLG9wdGlvbnM6aSxpc01haW5TY3JvbGxBbmltYXRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gZWF9LGdldFpvb21MZXZlbDpmdW5jdGlvbigpe3JldHVybiBzfSxnZXRDdXJyZW50SW5kZXg6ZnVuY3Rpb24oKXtyZXR1cm4gbX0saXNEcmFnZ2luZzpmdW5jdGlvbigpe3JldHVybiBVfSxpc1pvb21pbmc6ZnVuY3Rpb24oKXtyZXR1cm4gX30sc2V0U2Nyb2xsT2Zmc2V0OmZ1bmN0aW9uKGEsYil7cmEueD1hLE09cmEueT1iLENhKCJ1cGRhdGVTY3JvbGxPZmZzZXQiLHJhKX0sYXBwbHlab29tUGFuOmZ1bmN0aW9uKGEsYixjLGQpe29hLng9YixvYS55PWMscz1hLEdhKGQpfSxpbml0OmZ1bmN0aW9uKCl7aWYoIWomJiFrKXt2YXIgYztmLmZyYW1ld29yaz1lLGYudGVtcGxhdGU9YSxmLmJnPWUuZ2V0Q2hpbGRCeUNsYXNzKGEsInBzd3BfX2JnIiksSj1hLmNsYXNzTmFtZSxqPSEwLE49ZS5kZXRlY3RGZWF0dXJlcygpLEg9Ti5yYWYsST1OLmNhZixFPU4udHJhbnNmb3JtLEw9Ti5vbGRJRSxmLnNjcm9sbFdyYXA9ZS5nZXRDaGlsZEJ5Q2xhc3MoYSwicHN3cF9fc2Nyb2xsLXdyYXAiKSxmLmNvbnRhaW5lcj1lLmdldENoaWxkQnlDbGFzcyhmLnNjcm9sbFdyYXAsInBzd3BfX2NvbnRhaW5lciIpLG49Zi5jb250YWluZXIuc3R5bGUsZi5pdGVtSG9sZGVycz15PVt7ZWw6Zi5jb250YWluZXIuY2hpbGRyZW5bMF0sd3JhcDowLGluZGV4Oi0xfSx7ZWw6Zi5jb250YWluZXIuY2hpbGRyZW5bMV0sd3JhcDowLGluZGV4Oi0xfSx7ZWw6Zi5jb250YWluZXIuY2hpbGRyZW5bMl0sd3JhcDowLGluZGV4Oi0xfV0seVswXS5lbC5zdHlsZS5kaXNwbGF5PXlbMl0uZWwuc3R5bGUuZGlzcGxheT0ibm9uZSIsVmEoKSxyPXtyZXNpemU6Zi51cGRhdGVTaXplLHNjcm9sbDpZYSxrZXlkb3duOldhLGNsaWNrOlhhfTt2YXIgZD1OLmlzT2xkSU9TUGhvbmV8fE4uaXNPbGRBbmRyb2lkfHxOLmlzTW9iaWxlT3BlcmE7Zm9yKE4uYW5pbWF0aW9uTmFtZSYmTi50cmFuc2Zvcm0mJiFkfHwoaS5zaG93QW5pbWF0aW9uRHVyYXRpb249aS5oaWRlQW5pbWF0aW9uRHVyYXRpb249MCksYz0wO2M8dmEubGVuZ3RoO2MrKylmWyJpbml0Iit2YVtjXV0oKTtpZihiKXt2YXIgZz1mLnVpPW5ldyBiKGYsZSk7Zy5pbml0KCl9Q2EoImZpcnN0VXBkYXRlIiksbT1tfHxpLmluZGV4fHwwLChpc05hTihtKXx8MD5tfHxtPj1fYigpKSYmKG09MCksZi5jdXJySXRlbT0kYihtKSwoTi5pc09sZElPU1Bob25lfHxOLmlzT2xkQW5kcm9pZCkmJih1YT0hMSksYS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwiZmFsc2UiKSxpLm1vZGFsJiYodWE/YS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiOihhLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYS5zdHlsZS50b3A9ZS5nZXRTY3JvbGxZKCkrInB4IikpLHZvaWQgMD09PU0mJihDYSgiaW5pdGlhbExheW91dCIpLE09Sz1lLmdldFNjcm9sbFkoKSk7dmFyIGw9InBzd3AtLW9wZW4gIjtmb3IoaS5tYWluQ2xhc3MmJihsKz1pLm1haW5DbGFzcysiICIpLGkuc2hvd0hpZGVPcGFjaXR5JiYobCs9InBzd3AtLWFuaW1hdGVfb3BhY2l0eSAiKSxsKz1HPyJwc3dwLS10b3VjaCI6InBzd3AtLW5vdG91Y2giLGwrPU4uYW5pbWF0aW9uTmFtZT8iIHBzd3AtLWNzc19hbmltYXRpb24iOiIiLGwrPU4uc3ZnPyIgcHN3cC0tc3ZnIjoiIixlLmFkZENsYXNzKGEsbCksZi51cGRhdGVTaXplKCksbz0tMSx0YT1udWxsLGM9MDtoPmM7YysrKUlhKChjK28pKnNhLngseVtjXS5lbC5zdHlsZSk7THx8ZS5iaW5kKGYuc2Nyb2xsV3JhcCxxLGYpLEJhKCJpbml0aWFsWm9vbUluRW5kIixmdW5jdGlvbigpe2Yuc2V0Q29udGVudCh5WzBdLG0tMSksZi5zZXRDb250ZW50KHlbMl0sbSsxKSx5WzBdLmVsLnN0eWxlLmRpc3BsYXk9eVsyXS5lbC5zdHlsZS5kaXNwbGF5PSJibG9jayIsaS5mb2N1cyYmYS5mb2N1cygpLFBhKCl9KSxmLnNldENvbnRlbnQoeVsxXSxtKSxmLnVwZGF0ZUN1cnJJdGVtKCksQ2EoImFmdGVySW5pdCIpLHVhfHwodz1zZXRJbnRlcnZhbChmdW5jdGlvbigpeyRhfHxVfHxffHxzIT09Zi5jdXJySXRlbS5pbml0aWFsWm9vbUxldmVsfHxmLnVwZGF0ZVNpemUoKX0sMWUzKSksZS5hZGRDbGFzcyhhLCJwc3dwLS12aXNpYmxlIil9fSxjbG9zZTpmdW5jdGlvbigpe2omJihqPSExLGs9ITAsQ2EoImNsb3NlIiksUWEoKSxiYyhmLmN1cnJJdGVtLG51bGwsITAsZi5kZXN0cm95KSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtDYSgiZGVzdHJveSIpLFdiJiZjbGVhclRpbWVvdXQoV2IpLGEuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSxhLmNsYXNzTmFtZT1KLHcmJmNsZWFySW50ZXJ2YWwodyksZS51bmJpbmQoZi5zY3JvbGxXcmFwLHEsZiksZS51bmJpbmQod2luZG93LCJzY3JvbGwiLGYpLHliKCksYmIoKSxBYT1udWxsfSxwYW5UbzpmdW5jdGlvbihhLGIsYyl7Y3x8KGE+Y2EubWluLng/YT1jYS5taW4ueDphPGNhLm1heC54JiYoYT1jYS5tYXgueCksYj5jYS5taW4ueT9iPWNhLm1pbi55OmI8Y2EubWF4LnkmJihiPWNhLm1heC55KSksb2EueD1hLG9hLnk9YixHYSgpfSxoYW5kbGVFdmVudDpmdW5jdGlvbihhKXthPWF8fHdpbmRvdy5ldmVudCxyW2EudHlwZV0mJnJbYS50eXBlXShhKX0sZ29UbzpmdW5jdGlvbihhKXthPXphKGEpO3ZhciBiPWEtbTt0YT1iLG09YSxmLmN1cnJJdGVtPSRiKG0pLHFhLT1iLEphKHNhLngqcWEpLGJiKCksZWE9ITEsZi51cGRhdGVDdXJySXRlbSgpfSxuZXh0OmZ1bmN0aW9uKCl7Zi5nb1RvKG0rMSl9LHByZXY6ZnVuY3Rpb24oKXtmLmdvVG8obS0xKX0sdXBkYXRlQ3Vyclpvb21JdGVtOmZ1bmN0aW9uKGEpe2lmKGEmJkNhKCJiZWZvcmVDaGFuZ2UiLDApLHlbMV0uZWwuY2hpbGRyZW4ubGVuZ3RoKXt2YXIgYj15WzFdLmVsLmNoaWxkcmVuWzBdO2RhPWUuaGFzQ2xhc3MoYiwicHN3cF9fem9vbS13cmFwIik/Yi5zdHlsZTpudWxsfWVsc2UgZGE9bnVsbDtjYT1mLmN1cnJJdGVtLmJvdW5kcyx0PXM9Zi5jdXJySXRlbS5pbml0aWFsWm9vbUxldmVsLG9hLng9Y2EuY2VudGVyLngsb2EueT1jYS5jZW50ZXIueSxhJiZDYSgiYWZ0ZXJDaGFuZ2UiKX0saW52YWxpZGF0ZUN1cnJJdGVtczpmdW5jdGlvbigpe3g9ITA7Zm9yKHZhciBhPTA7aD5hO2ErKyl5W2FdLml0ZW0mJih5W2FdLml0ZW0ubmVlZHNVcGRhdGU9ITApfSx1cGRhdGVDdXJySXRlbTpmdW5jdGlvbihhKXtpZigwIT09dGEpe3ZhciBiLGM9TWF0aC5hYnModGEpO2lmKCEoYSYmMj5jKSl7Zi5jdXJySXRlbT0kYihtKSx4YT0hMSxDYSgiYmVmb3JlQ2hhbmdlIix0YSksYz49aCYmKG8rPXRhKyh0YT4wPy1oOmgpLGM9aCk7Zm9yKHZhciBkPTA7Yz5kO2QrKyl0YT4wPyhiPXkuc2hpZnQoKSx5W2gtMV09YixvKyssSWEoKG8rMikqc2EueCxiLmVsLnN0eWxlKSxmLnNldENvbnRlbnQoYixtLWMrZCsxKzEpKTooYj15LnBvcCgpLHkudW5zaGlmdChiKSxvLS0sSWEobypzYS54LGIuZWwuc3R5bGUpLGYuc2V0Q29udGVudChiLG0rYy1kLTEtMSkpO2lmKGRhJiYxPT09TWF0aC5hYnModGEpKXt2YXIgZT0kYih6KTtlLmluaXRpYWxab29tTGV2ZWwhPT1zJiYoaGMoZSxwYSksbGMoZSksSGEoZSkpfXRhPTAsZi51cGRhdGVDdXJyWm9vbUl0ZW0oKSx6PW0sQ2EoImFmdGVyQ2hhbmdlIil9fX0sdXBkYXRlU2l6ZTpmdW5jdGlvbihiKXtpZighdWEmJmkubW9kYWwpe3ZhciBjPWUuZ2V0U2Nyb2xsWSgpO2lmKE0hPT1jJiYoYS5zdHlsZS50b3A9YysicHgiLE09YyksIWImJndhLng9PT13aW5kb3cuaW5uZXJXaWR0aCYmd2EueT09PXdpbmRvdy5pbm5lckhlaWdodClyZXR1cm47d2EueD13aW5kb3cuaW5uZXJXaWR0aCx3YS55PXdpbmRvdy5pbm5lckhlaWdodCxhLnN0eWxlLmhlaWdodD13YS55KyJweCJ9aWYocGEueD1mLnNjcm9sbFdyYXAuY2xpZW50V2lkdGgscGEueT1mLnNjcm9sbFdyYXAuY2xpZW50SGVpZ2h0LFlhKCksc2EueD1wYS54K01hdGgucm91bmQocGEueCppLnNwYWNpbmcpLHNhLnk9cGEueSxKYShzYS54KnFhKSxDYSgiYmVmb3JlUmVzaXplIiksdm9pZCAwIT09byl7Zm9yKHZhciBkLGcsaixrPTA7aD5rO2srKylkPXlba10sSWEoKGsrbykqc2EueCxkLmVsLnN0eWxlKSxqPW0ray0xLGkubG9vcCYmX2IoKT4yJiYoaj16YShqKSksZz0kYihqKSxnJiYoeHx8Zy5uZWVkc1VwZGF0ZXx8IWcuYm91bmRzKT8oZi5jbGVhblNsaWRlKGcpLGYuc2V0Q29udGVudChkLGopLDE9PT1rJiYoZi5jdXJySXRlbT1nLGYudXBkYXRlQ3Vyclpvb21JdGVtKCEwKSksZy5uZWVkc1VwZGF0ZT0hMSk6LTE9PT1kLmluZGV4JiZqPj0wJiZmLnNldENvbnRlbnQoZCxqKSxnJiZnLmNvbnRhaW5lciYmKGhjKGcscGEpLGxjKGcpLEhhKGcpKTt4PSExfXQ9cz1mLmN1cnJJdGVtLmluaXRpYWxab29tTGV2ZWwsY2E9Zi5jdXJySXRlbS5ib3VuZHMsY2EmJihvYS54PWNhLmNlbnRlci54LG9hLnk9Y2EuY2VudGVyLnksR2EoITApKSxDYSgicmVzaXplIil9LHpvb21UbzpmdW5jdGlvbihhLGIsYyxkLGYpe2ImJih0PXMsdGIueD1NYXRoLmFicyhiLngpLW9hLngsdGIueT1NYXRoLmFicyhiLnkpLW9hLnksTGEobmEsb2EpKTt2YXIgZz1SYShhLCExKSxoPXt9O1VhKCJ4IixnLGgsYSksVWEoInkiLGcsaCxhKTt2YXIgaT1zLGo9e3g6b2EueCx5Om9hLnl9O01hKGgpO3ZhciBrPWZ1bmN0aW9uKGIpezE9PT1iPyhzPWEsb2EueD1oLngsb2EueT1oLnkpOihzPShhLWkpKmIraSxvYS54PShoLngtai54KSpiK2oueCxvYS55PShoLnktai55KSpiK2oueSksZiYmZihiKSxHYSgxPT09Yil9O2M/Y2IoImN1c3RvbVpvb21UbyIsMCwxLGMsZHx8ZS5lYXNpbmcuc2luZS5pbk91dCxrKTprKDEpfX0sZWI9MzAsZmI9MTAsZ2I9e30saGI9e30saWI9e30samI9e30sa2I9e30sbGI9W10sbWI9e30sbmI9W10sb2I9e30scGI9MCxxYj1sYSgpLHJiPTAsc2I9bGEoKSx0Yj1sYSgpLHViPWxhKCksdmI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS54PT09Yi54JiZhLnk9PT1iLnl9LHdiPWZ1bmN0aW9uKGEsYil7cmV0dXJuIE1hdGguYWJzKGEueC1iLngpPGcmJk1hdGguYWJzKGEueS1iLnkpPGd9LHhiPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG9iLng9TWF0aC5hYnMoYS54LWIueCksb2IueT1NYXRoLmFicyhhLnktYi55KSxNYXRoLnNxcnQob2IueCpvYi54K29iLnkqb2IueSl9LHliPWZ1bmN0aW9uKCl7WSYmKEkoWSksWT1udWxsKX0semI9ZnVuY3Rpb24oKXtVJiYoWT1IKHpiKSxQYigpKX0sQWI9ZnVuY3Rpb24oKXtyZXR1cm4hKCJmaXQiPT09aS5zY2FsZU1vZGUmJnM9PT1mLmN1cnJJdGVtLmluaXRpYWxab29tTGV2ZWwpfSxCYj1mdW5jdGlvbihhLGIpe3JldHVybiBhJiZhIT09ZG9jdW1lbnQ/YS5nZXRBdHRyaWJ1dGUoImNsYXNzIikmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpLmluZGV4T2YoInBzd3BfX3Njcm9sbC13cmFwIik+LTE/ITE6YihhKT9hOkJiKGEucGFyZW50Tm9kZSxiKTohMX0sQ2I9e30sRGI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQ2IucHJldmVudD0hQmIoYS50YXJnZXQsaS5pc0NsaWNrYWJsZUVsZW1lbnQpLENhKCJwcmV2ZW50RHJhZ0V2ZW50IixhLGIsQ2IpLENiLnByZXZlbnR9LEViPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIueD1hLnBhZ2VYLGIueT1hLnBhZ2VZLGIuaWQ9YS5pZGVudGlmaWVyLGJ9LEZiPWZ1bmN0aW9uKGEsYixjKXtjLng9LjUqKGEueCtiLngpLGMueT0uNSooYS55K2IueSl9LEdiPWZ1bmN0aW9uKGEsYixjKXtpZihhLVA+NTApe3ZhciBkPW5iLmxlbmd0aD4yP25iLnNoaWZ0KCk6e307ZC54PWIsZC55PWMsbmIucHVzaChkKSxQPWF9fSxIYj1mdW5jdGlvbigpe3ZhciBhPW9hLnktZi5jdXJySXRlbS5pbml0aWFsUG9zaXRpb24ueTtyZXR1cm4gMS1NYXRoLmFicyhhLyhwYS55LzIpKX0sSWI9e30sSmI9e30sS2I9W10sTGI9ZnVuY3Rpb24oYSl7Zm9yKDtLYi5sZW5ndGg+MDspS2IucG9wKCk7cmV0dXJuIEY/KGthPTAsbGIuZm9yRWFjaChmdW5jdGlvbihhKXswPT09a2E/S2JbMF09YToxPT09a2EmJihLYlsxXT1hKSxrYSsrfSkpOmEudHlwZS5pbmRleE9mKCJ0b3VjaCIpPi0xP2EudG91Y2hlcyYmYS50b3VjaGVzLmxlbmd0aD4wJiYoS2JbMF09RWIoYS50b3VjaGVzWzBdLEliKSxhLnRvdWNoZXMubGVuZ3RoPjEmJihLYlsxXT1FYihhLnRvdWNoZXNbMV0sSmIpKSk6KEliLng9YS5wYWdlWCxJYi55PWEucGFnZVksSWIuaWQ9IiIsS2JbMF09SWIpLEtifSxNYj1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxnLGg9MCxqPW9hW2FdK2JbYV0saz1iW2FdPjAsbD1zYi54K2IueCxtPXNiLngtbWIueDtyZXR1cm4gYz1qPmNhLm1pblthXXx8ajxjYS5tYXhbYV0/aS5wYW5FbmRGcmljdGlvbjoxLGo9b2FbYV0rYlthXSpjLCFpLmFsbG93UGFuVG9OZXh0JiZzIT09Zi5jdXJySXRlbS5pbml0aWFsWm9vbUxldmVsfHwoZGE/ImgiIT09ZmF8fCJ4IiE9PWF8fFd8fChrPyhqPmNhLm1pblthXSYmKGM9aS5wYW5FbmRGcmljdGlvbixoPWNhLm1pblthXS1qLGQ9Y2EubWluW2FdLW5hW2FdKSwoMD49ZHx8MD5tKSYmX2IoKT4xPyhnPWwsMD5tJiZsPm1iLngmJihnPW1iLngpKTpjYS5taW4ueCE9PWNhLm1heC54JiYoZT1qKSk6KGo8Y2EubWF4W2FdJiYoYz1pLnBhbkVuZEZyaWN0aW9uLGg9ai1jYS5tYXhbYV0sZD1uYVthXS1jYS5tYXhbYV0pLCgwPj1kfHxtPjApJiZfYigpPjE/KGc9bCxtPjAmJmw8bWIueCYmKGc9bWIueCkpOmNhLm1pbi54IT09Y2EubWF4LngmJihlPWopKSk6Zz1sLCJ4IiE9PWEpP3ZvaWQoZWF8fFp8fHM+Zi5jdXJySXRlbS5maXRSYXRpbyYmKG9hW2FdKz1iW2FdKmMpKToodm9pZCAwIT09ZyYmKEphKGcsITApLFo9Zz09PW1iLng/ITE6ITApLGNhLm1pbi54IT09Y2EubWF4LngmJih2b2lkIDAhPT1lP29hLng9ZTpafHwob2EueCs9Yi54KmMpKSx2b2lkIDAhPT1nKX0sTmI9ZnVuY3Rpb24oYSl7aWYoISgibW91c2Vkb3duIj09PWEudHlwZSYmYS5idXR0b24+MCkpe2lmKFpiKXJldHVybiB2b2lkIGEucHJldmVudERlZmF1bHQoKTtpZighVHx8Im1vdXNlZG93biIhPT1hLnR5cGUpe2lmKERiKGEsITApJiZhLnByZXZlbnREZWZhdWx0KCksQ2EoInBvaW50ZXJEb3duIiksRil7dmFyIGI9ZS5hcnJheVNlYXJjaChsYixhLnBvaW50ZXJJZCwiaWQiKTswPmImJihiPWxiLmxlbmd0aCksbGJbYl09e3g6YS5wYWdlWCx5OmEucGFnZVksaWQ6YS5wb2ludGVySWR9fXZhciBjPUxiKGEpLGQ9Yy5sZW5ndGg7JD1udWxsLGJiKCksVSYmMSE9PWR8fChVPWdhPSEwLGUuYmluZCh3aW5kb3cscCxmKSxSPWphPWhhPVM9Wj1YPVY9Vz0hMSxmYT1udWxsLENhKCJmaXJzdFRvdWNoU3RhcnQiLGMpLExhKG5hLG9hKSxtYS54PW1hLnk9MCxMYShqYixjWzBdKSxMYShrYixqYiksbWIueD1zYS54KnFhLG5iPVt7eDpqYi54LHk6amIueX1dLFA9Tz1EYSgpLFJhKHMsITApLHliKCksemIoKSksIV8mJmQ+MSYmIWVhJiYhWiYmKHQ9cyxXPSExLF89Vj0hMCxtYS55PW1hLng9MCxMYShuYSxvYSksTGEoZ2IsY1swXSksTGEoaGIsY1sxXSksRmIoZ2IsaGIsdWIpLHRiLng9TWF0aC5hYnModWIueCktb2EueCx0Yi55PU1hdGguYWJzKHViLnkpLW9hLnksYWE9YmE9eGIoZ2IsaGIpKX19fSxPYj1mdW5jdGlvbihhKXtpZihhLnByZXZlbnREZWZhdWx0KCksRil7dmFyIGI9ZS5hcnJheVNlYXJjaChsYixhLnBvaW50ZXJJZCwiaWQiKTtpZihiPi0xKXt2YXIgYz1sYltiXTtjLng9YS5wYWdlWCxjLnk9YS5wYWdlWX19aWYoVSl7dmFyIGQ9TGIoYSk7aWYoZmF8fFh8fF8pJD1kO2Vsc2UgaWYoc2IueCE9PXNhLngqcWEpZmE9ImgiO2Vsc2V7dmFyIGY9TWF0aC5hYnMoZFswXS54LWpiLngpLU1hdGguYWJzKGRbMF0ueS1qYi55KTtNYXRoLmFicyhmKT49ZmImJihmYT1mPjA/ImgiOiJ2IiwkPWQpfX19LFBiPWZ1bmN0aW9uKCl7aWYoJCl7dmFyIGE9JC5sZW5ndGg7aWYoMCE9PWEpaWYoTGEoZ2IsJFswXSksaWIueD1nYi54LWpiLngsaWIueT1nYi55LWpiLnksXyYmYT4xKXtpZihqYi54PWdiLngsamIueT1nYi55LCFpYi54JiYhaWIueSYmdmIoJFsxXSxoYikpcmV0dXJuO0xhKGhiLCRbMV0pLFd8fChXPSEwLENhKCJ6b29tR2VzdHVyZVN0YXJ0ZWQiKSk7dmFyIGI9eGIoZ2IsaGIpLGM9VWIoYik7Yz5mLmN1cnJJdGVtLmluaXRpYWxab29tTGV2ZWwrZi5jdXJySXRlbS5pbml0aWFsWm9vbUxldmVsLzE1JiYoamE9ITApO3ZhciBkPTEsZT1TYSgpLGc9VGEoKTtpZihlPmMpaWYoaS5waW5jaFRvQ2xvc2UmJiFqYSYmdDw9Zi5jdXJySXRlbS5pbml0aWFsWm9vbUxldmVsKXt2YXIgaD1lLWMsaj0xLWgvKGUvMS4yKTtFYShqKSxDYSgib25QaW5jaENsb3NlIixqKSxoYT0hMH1lbHNlIGQ9KGUtYykvZSxkPjEmJihkPTEpLGM9ZS1kKihlLzMpO2Vsc2UgYz5nJiYoZD0oYy1nKS8oNiplKSxkPjEmJihkPTEpLGM9ZytkKmUpOzA+ZCYmKGQ9MCksYWE9YixGYihnYixoYixxYiksbWEueCs9cWIueC11Yi54LG1hLnkrPXFiLnktdWIueSxMYSh1YixxYiksb2EueD1LYSgieCIsYyksb2EueT1LYSgieSIsYyksUj1jPnMscz1jLEdhKCl9ZWxzZXtpZighZmEpcmV0dXJuO2lmKGdhJiYoZ2E9ITEsTWF0aC5hYnMoaWIueCk+PWZiJiYoaWIueC09JFswXS54LWtiLngpLE1hdGguYWJzKGliLnkpPj1mYiYmKGliLnktPSRbMF0ueS1rYi55KSksamIueD1nYi54LGpiLnk9Z2IueSwwPT09aWIueCYmMD09PWliLnkpcmV0dXJuO2lmKCJ2Ij09PWZhJiZpLmNsb3NlT25WZXJ0aWNhbERyYWcmJiFBYigpKXttYS55Kz1pYi55LG9hLnkrPWliLnk7dmFyIGs9SGIoKTtyZXR1cm4gUz0hMCxDYSgib25WZXJ0aWNhbERyYWciLGspLEVhKGspLHZvaWQgR2EoKX1HYihEYSgpLGdiLngsZ2IueSksWD0hMCxjYT1mLmN1cnJJdGVtLmJvdW5kczt2YXIgbD1NYigieCIsaWIpO2x8fChNYigieSIsaWIpLE1hKG9hKSxHYSgpKX19fSxRYj1mdW5jdGlvbihhKXtpZihOLmlzT2xkQW5kcm9pZCl7aWYoVCYmIm1vdXNldXAiPT09YS50eXBlKXJldHVybjthLnR5cGUuaW5kZXhPZigidG91Y2giKT4tMSYmKGNsZWFyVGltZW91dChUKSxUPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtUPTB9LDYwMCkpfUNhKCJwb2ludGVyVXAiKSxEYihhLCExKSYmYS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBiO2lmKEYpe3ZhciBjPWUuYXJyYXlTZWFyY2gobGIsYS5wb2ludGVySWQsImlkIik7aWYoYz4tMSlpZihiPWxiLnNwbGljZShjLDEpWzBdLG5hdmlnYXRvci5wb2ludGVyRW5hYmxlZCliLnR5cGU9YS5wb2ludGVyVHlwZXx8Im1vdXNlIjtlbHNle3ZhciBkPXs0OiJtb3VzZSIsMjoidG91Y2giLDM6InBlbiJ9O2IudHlwZT1kW2EucG9pbnRlclR5cGVdLGIudHlwZXx8KGIudHlwZT1hLnBvaW50ZXJUeXBlfHwibW91c2UiKX19dmFyIGcsaD1MYihhKSxqPWgubGVuZ3RoO2lmKCJtb3VzZXVwIj09PWEudHlwZSYmKGo9MCksMj09PWopcmV0dXJuICQ9bnVsbCwhMDsxPT09aiYmTGEoa2IsaFswXSksMCE9PWp8fGZhfHxlYXx8KGJ8fCgibW91c2V1cCI9PT1hLnR5cGU/Yj17eDphLnBhZ2VYLHk6YS5wYWdlWSx0eXBlOiJtb3VzZSJ9OmEuY2hhbmdlZFRvdWNoZXMmJmEuY2hhbmdlZFRvdWNoZXNbMF0mJihiPXt4OmEuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgseTphLmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZLHR5cGU6InRvdWNoIn0pKSxDYSgidG91Y2hSZWxlYXNlIixhLGIpKTt2YXIgaz0tMTtpZigwPT09aiYmKFU9ITEsZS51bmJpbmQod2luZG93LHAsZikseWIoKSxfP2s9MDotMSE9PXJiJiYoaz1EYSgpLXJiKSkscmI9MT09PWo/RGEoKTotMSxnPS0xIT09ayYmMTUwPms/Inpvb20iOiJzd2lwZSIsXyYmMj5qJiYoXz0hMSwxPT09aiYmKGc9Inpvb21Qb2ludGVyVXAiKSxDYSgiem9vbUdlc3R1cmVFbmRlZCIpKSwkPW51bGwsWHx8V3x8ZWF8fFMpaWYoYmIoKSxRfHwoUT1SYigpKSxRLmNhbGN1bGF0ZVN3aXBlU3BlZWQoIngiKSxTKXt2YXIgbD1IYigpO2lmKGw8aS52ZXJ0aWNhbERyYWdSYW5nZSlmLmNsb3NlKCk7ZWxzZXt2YXIgbT1vYS55LG49aWE7Y2IoInZlcnRpY2FsRHJhZyIsMCwxLDMwMCxlLmVhc2luZy5jdWJpYy5vdXQsZnVuY3Rpb24oYSl7b2EueT0oZi5jdXJySXRlbS5pbml0aWFsUG9zaXRpb24ueS1tKSphK20sRWEoKDEtbikqYStuKSxHYSgpfSksQ2EoIm9uVmVydGljYWxEcmFnIiwxKX19ZWxzZXtpZigoWnx8ZWEpJiYwPT09ail7dmFyIG89VGIoZyxRKTtpZihvKXJldHVybjtnPSJ6b29tUG9pbnRlclVwIn1pZighZWEpcmV0dXJuInN3aXBlIiE9PWc/dm9pZCBWYigpOnZvaWQoIVomJnM+Zi5jdXJySXRlbS5maXRSYXRpbyYmU2IoUSkpfX0sUmI9ZnVuY3Rpb24oKXt2YXIgYSxiLGM9e2xhc3RGbGlja09mZnNldDp7fSxsYXN0RmxpY2tEaXN0Ont9LGxhc3RGbGlja1NwZWVkOnt9LHNsb3dEb3duUmF0aW86e30sc2xvd0Rvd25SYXRpb1JldmVyc2U6e30sc3BlZWREZWNlbGVyYXRpb25SYXRpbzp7fSxzcGVlZERlY2VsZXJhdGlvblJhdGlvQWJzOnt9LGRpc3RhbmNlT2Zmc2V0Ont9LGJhY2tBbmltRGVzdGluYXRpb246e30sYmFja0FuaW1TdGFydGVkOnt9LGNhbGN1bGF0ZVN3aXBlU3BlZWQ6ZnVuY3Rpb24oZCl7bmIubGVuZ3RoPjE/KGE9RGEoKS1QKzUwLGI9bmJbbmIubGVuZ3RoLTJdW2RdKTooYT1EYSgpLU8sYj1rYltkXSksYy5sYXN0RmxpY2tPZmZzZXRbZF09amJbZF0tYixjLmxhc3RGbGlja0Rpc3RbZF09TWF0aC5hYnMoYy5sYXN0RmxpY2tPZmZzZXRbZF0pLGMubGFzdEZsaWNrRGlzdFtkXT4yMD9jLmxhc3RGbGlja1NwZWVkW2RdPWMubGFzdEZsaWNrT2Zmc2V0W2RdL2E6Yy5sYXN0RmxpY2tTcGVlZFtkXT0wLE1hdGguYWJzKGMubGFzdEZsaWNrU3BlZWRbZF0pPC4xJiYoYy5sYXN0RmxpY2tTcGVlZFtkXT0wKSxjLnNsb3dEb3duUmF0aW9bZF09Ljk1LGMuc2xvd0Rvd25SYXRpb1JldmVyc2VbZF09MS1jLnNsb3dEb3duUmF0aW9bZF0sYy5zcGVlZERlY2VsZXJhdGlvblJhdGlvW2RdPTF9LGNhbGN1bGF0ZU92ZXJCb3VuZHNBbmltT2Zmc2V0OmZ1bmN0aW9uKGEsYil7Yy5iYWNrQW5pbVN0YXJ0ZWRbYV18fChvYVthXT5jYS5taW5bYV0/Yy5iYWNrQW5pbURlc3RpbmF0aW9uW2FdPWNhLm1pblthXTpvYVthXTxjYS5tYXhbYV0mJihjLmJhY2tBbmltRGVzdGluYXRpb25bYV09Y2EubWF4W2FdKSx2b2lkIDAhPT1jLmJhY2tBbmltRGVzdGluYXRpb25bYV0mJihjLnNsb3dEb3duUmF0aW9bYV09LjcsYy5zbG93RG93blJhdGlvUmV2ZXJzZVthXT0xLWMuc2xvd0Rvd25SYXRpb1thXSxjLnNwZWVkRGVjZWxlcmF0aW9uUmF0aW9BYnNbYV08LjA1JiYoYy5sYXN0RmxpY2tTcGVlZFthXT0wLGMuYmFja0FuaW1TdGFydGVkW2FdPSEwLGNiKCJib3VuY2Vab29tUGFuIithLG9hW2FdLGMuYmFja0FuaW1EZXN0aW5hdGlvblthXSxifHwzMDAsZS5lYXNpbmcuc2luZS5vdXQsZnVuY3Rpb24oYil7b2FbYV09YixHYSgpfSkpKSl9LGNhbGN1bGF0ZUFuaW1PZmZzZXQ6ZnVuY3Rpb24oYSl7Yy5iYWNrQW5pbVN0YXJ0ZWRbYV18fChjLnNwZWVkRGVjZWxlcmF0aW9uUmF0aW9bYV09Yy5zcGVlZERlY2VsZXJhdGlvblJhdGlvW2FdKihjLnNsb3dEb3duUmF0aW9bYV0rYy5zbG93RG93blJhdGlvUmV2ZXJzZVthXS1jLnNsb3dEb3duUmF0aW9SZXZlcnNlW2FdKmMudGltZURpZmYvMTApLGMuc3BlZWREZWNlbGVyYXRpb25SYXRpb0Fic1thXT1NYXRoLmFicyhjLmxhc3RGbGlja1NwZWVkW2FdKmMuc3BlZWREZWNlbGVyYXRpb25SYXRpb1thXSksYy5kaXN0YW5jZU9mZnNldFthXT1jLmxhc3RGbGlja1NwZWVkW2FdKmMuc3BlZWREZWNlbGVyYXRpb25SYXRpb1thXSpjLnRpbWVEaWZmLG9hW2FdKz1jLmRpc3RhbmNlT2Zmc2V0W2FdKX0scGFuQW5pbUxvb3A6ZnVuY3Rpb24oKXtyZXR1cm4gWmEuem9vbVBhbiYmKFphLnpvb21QYW4ucmFmPUgoYy5wYW5BbmltTG9vcCksYy5ub3c9RGEoKSxjLnRpbWVEaWZmPWMubm93LWMubGFzdE5vdyxjLmxhc3ROb3c9Yy5ub3csYy5jYWxjdWxhdGVBbmltT2Zmc2V0KCJ4IiksYy5jYWxjdWxhdGVBbmltT2Zmc2V0KCJ5IiksR2EoKSxjLmNhbGN1bGF0ZU92ZXJCb3VuZHNBbmltT2Zmc2V0KCJ4IiksYy5jYWxjdWxhdGVPdmVyQm91bmRzQW5pbU9mZnNldCgieSIpLGMuc3BlZWREZWNlbGVyYXRpb25SYXRpb0Ficy54PC4wNSYmYy5zcGVlZERlY2VsZXJhdGlvblJhdGlvQWJzLnk8LjA1KT8ob2EueD1NYXRoLnJvdW5kKG9hLngpLG9hLnk9TWF0aC5yb3VuZChvYS55KSxHYSgpLHZvaWQgX2EoInpvb21QYW4iKSk6dm9pZCAwfX07cmV0dXJuIGN9LFNiPWZ1bmN0aW9uKGEpe3JldHVybiBhLmNhbGN1bGF0ZVN3aXBlU3BlZWQoInkiKSxjYT1mLmN1cnJJdGVtLmJvdW5kcyxhLmJhY2tBbmltRGVzdGluYXRpb249e30sYS5iYWNrQW5pbVN0YXJ0ZWQ9e30sTWF0aC5hYnMoYS5sYXN0RmxpY2tTcGVlZC54KTw9LjA1JiZNYXRoLmFicyhhLmxhc3RGbGlja1NwZWVkLnkpPD0uMDU/KGEuc3BlZWREZWNlbGVyYXRpb25SYXRpb0Ficy54PWEuc3BlZWREZWNlbGVyYXRpb25SYXRpb0Ficy55PTAsYS5jYWxjdWxhdGVPdmVyQm91bmRzQW5pbU9mZnNldCgieCIpLGEuY2FsY3VsYXRlT3ZlckJvdW5kc0FuaW1PZmZzZXQoInkiKSwhMCk6KGFiKCJ6b29tUGFuIiksYS5sYXN0Tm93PURhKCksdm9pZCBhLnBhbkFuaW1Mb29wKCkpfSxUYj1mdW5jdGlvbihhLGIpe3ZhciBjO2VhfHwocGI9bSk7dmFyIGQ7aWYoInN3aXBlIj09PWEpe3ZhciBnPWpiLngta2IueCxoPWIubGFzdEZsaWNrRGlzdC54PDEwO2c+ZWImJihofHxiLmxhc3RGbGlja09mZnNldC54PjIwKT9kPS0xOi1lYj5nJiYoaHx8Yi5sYXN0RmxpY2tPZmZzZXQueDwtMjApJiYoZD0xKX12YXIgajtkJiYobSs9ZCwwPm0/KG09aS5sb29wP19iKCktMTowLGo9ITApOm0+PV9iKCkmJihtPWkubG9vcD8wOl9iKCktMSxqPSEwKSwoIWp8fGkubG9vcCkmJih0YSs9ZCxxYS09ZCxjPSEwKSk7dmFyIGssbD1zYS54KnFhLG49TWF0aC5hYnMobC1zYi54KTtyZXR1cm4gY3x8bD5zYi54PT1iLmxhc3RGbGlja1NwZWVkLng+MD8oaz1NYXRoLmFicyhiLmxhc3RGbGlja1NwZWVkLngpPjA/bi9NYXRoLmFicyhiLmxhc3RGbGlja1NwZWVkLngpOjMzMyxrPU1hdGgubWluKGssNDAwKSxrPU1hdGgubWF4KGssMjUwKSk6az0zMzMscGI9PT1tJiYoYz0hMSksZWE9ITAsQ2EoIm1haW5TY3JvbGxBbmltU3RhcnQiKSxjYigibWFpblNjcm9sbCIsc2IueCxsLGssZS5lYXNpbmcuY3ViaWMub3V0LEphLGZ1bmN0aW9uKCl7YmIoKSxlYT0hMSxwYj0tMSwoY3x8cGIhPT1tKSYmZi51cGRhdGVDdXJySXRlbSgpLENhKCJtYWluU2Nyb2xsQW5pbUNvbXBsZXRlIil9KSxjJiZmLnVwZGF0ZUN1cnJJdGVtKCEwKSxjfSxVYj1mdW5jdGlvbihhKXtyZXR1cm4gMS9iYSphKnR9LFZiPWZ1bmN0aW9uKCl7dmFyIGE9cyxiPVNhKCksYz1UYSgpO2I+cz9hPWI6cz5jJiYoYT1jKTt2YXIgZCxnPTEsaD1pYTtyZXR1cm4gaGEmJiFSJiYhamEmJmI+cz8oZi5jbG9zZSgpLCEwKTooaGEmJihkPWZ1bmN0aW9uKGEpe0VhKChnLWgpKmEraCl9KSxmLnpvb21UbyhhLDAsMjAwLGUuZWFzaW5nLmN1YmljLm91dCxkKSwhMCl9O3lhKCJHZXN0dXJlcyIse3B1YmxpY01ldGhvZHM6e2luaXRHZXN0dXJlczpmdW5jdGlvbigpe3ZhciBhPWZ1bmN0aW9uKGEsYixjLGQsZSl7QT1hK2IsQj1hK2MsQz1hK2QsRD1lP2ErZToiIn07Rj1OLnBvaW50ZXJFdmVudCxGJiZOLnRvdWNoJiYoTi50b3VjaD0hMSksRj9uYXZpZ2F0b3IucG9pbnRlckVuYWJsZWQ/YSgicG9pbnRlciIsImRvd24iLCJtb3ZlIiwidXAiLCJjYW5jZWwiKTphKCJNU1BvaW50ZXIiLCJEb3duIiwiTW92ZSIsIlVwIiwiQ2FuY2VsIik6Ti50b3VjaD8oYSgidG91Y2giLCJzdGFydCIsIm1vdmUiLCJlbmQiLCJjYW5jZWwiKSxHPSEwKTphKCJtb3VzZSIsImRvd24iLCJtb3ZlIiwidXAiKSxwPUIrIiAiK0MrIiAiK0QscT1BLEYmJiFHJiYoRz1uYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM+MXx8bmF2aWdhdG9yLm1zTWF4VG91Y2hQb2ludHM+MSksZi5saWtlbHlUb3VjaERldmljZT1HLHJbQV09TmIscltCXT1PYixyW0NdPVFiLEQmJihyW0RdPXJbQ10pLE4udG91Y2gmJihxKz0iIG1vdXNlZG93biIscCs9IiBtb3VzZW1vdmUgbW91c2V1cCIsci5tb3VzZWRvd249cltBXSxyLm1vdXNlbW92ZT1yW0JdLHIubW91c2V1cD1yW0NdKSxHfHwoaS5hbGxvd1BhblRvTmV4dD0hMSl9fX0pO3ZhciBXYixYYixZYixaYiwkYixfYixhYyxiYz1mdW5jdGlvbihiLGMsZCxnKXtXYiYmY2xlYXJUaW1lb3V0KFdiKSxaYj0hMCxZYj0hMDt2YXIgaDtiLmluaXRpYWxMYXlvdXQ/KGg9Yi5pbml0aWFsTGF5b3V0LGIuaW5pdGlhbExheW91dD1udWxsKTpoPWkuZ2V0VGh1bWJCb3VuZHNGbiYmaS5nZXRUaHVtYkJvdW5kc0ZuKG0pO3ZhciBqPWQ/aS5oaWRlQW5pbWF0aW9uRHVyYXRpb246aS5zaG93QW5pbWF0aW9uRHVyYXRpb24saz1mdW5jdGlvbigpe19hKCJpbml0aWFsWm9vbSIpLGQ/KGYudGVtcGxhdGUucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpLGYuYmcucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpKTooRWEoMSksYyYmKGMuc3R5bGUuZGlzcGxheT0iYmxvY2siKSxlLmFkZENsYXNzKGEsInBzd3AtLWFuaW1hdGVkLWluIiksQ2EoImluaXRpYWxab29tIisoZD8iT3V0RW5kIjoiSW5FbmQiKSkpLGcmJmcoKSxaYj0hMX07aWYoIWp8fCFofHx2b2lkIDA9PT1oLngpcmV0dXJuIENhKCJpbml0aWFsWm9vbSIrKGQ/Ik91dCI6IkluIikpLHM9Yi5pbml0aWFsWm9vbUxldmVsLExhKG9hLGIuaW5pdGlhbFBvc2l0aW9uKSxHYSgpLGEuc3R5bGUub3BhY2l0eT1kPzA6MSxFYSgxKSx2b2lkKGo/c2V0VGltZW91dChmdW5jdGlvbigpe2soKX0saik6aygpKTt2YXIgbj1mdW5jdGlvbigpe3ZhciBjPWwsZz0hZi5jdXJySXRlbS5zcmN8fGYuY3Vyckl0ZW0ubG9hZEVycm9yfHxpLnNob3dIaWRlT3BhY2l0eTtiLm1pbmlJbWcmJihiLm1pbmlJbWcuc3R5bGUud2Via2l0QmFja2ZhY2VWaXNpYmlsaXR5PSJoaWRkZW4iKSxkfHwocz1oLncvYi53LG9hLng9aC54LG9hLnk9aC55LUssZltnPyJ0ZW1wbGF0ZSI6ImJnIl0uc3R5bGUub3BhY2l0eT0uMDAxLEdhKCkpLGFiKCJpbml0aWFsWm9vbSIpLGQmJiFjJiZlLnJlbW92ZUNsYXNzKGEsInBzd3AtLWFuaW1hdGVkLWluIiksZyYmKGQ/ZVsoYz8icmVtb3ZlIjoiYWRkIikrIkNsYXNzIl0oYSwicHN3cC0tYW5pbWF0ZV9vcGFjaXR5Iik6c2V0VGltZW91dChmdW5jdGlvbigpe2UuYWRkQ2xhc3MoYSwicHN3cC0tYW5pbWF0ZV9vcGFjaXR5Iil9LDMwKSksV2I9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKENhKCJpbml0aWFsWm9vbSIrKGQ/Ik91dCI6IkluIikpLGQpe3ZhciBmPWgudy9iLncsaT17eDpvYS54LHk6b2EueX0sbD1zLG09aWEsbj1mdW5jdGlvbihiKXsxPT09Yj8ocz1mLG9hLng9aC54LG9hLnk9aC55LU0pOihzPShmLWwpKmIrbCxvYS54PShoLngtaS54KSpiK2kueCxvYS55PShoLnktTS1pLnkpKmIraS55KSxHYSgpLGc/YS5zdHlsZS5vcGFjaXR5PTEtYjpFYShtLWIqbSl9O2M/Y2IoImluaXRpYWxab29tIiwwLDEsaixlLmVhc2luZy5jdWJpYy5vdXQsbixrKToobigxKSxXYj1zZXRUaW1lb3V0KGssaisyMCkpfWVsc2Ugcz1iLmluaXRpYWxab29tTGV2ZWwsTGEob2EsYi5pbml0aWFsUG9zaXRpb24pLEdhKCksRWEoMSksZz9hLnN0eWxlLm9wYWNpdHk9MTpFYSgxKSxXYj1zZXRUaW1lb3V0KGssaisyMCl9LGQ/MjU6OTApfTtuKCl9LGNjPXt9LGRjPVtdLGVjPXtpbmRleDowLGVycm9yTXNnOic8ZGl2IGNsYXNzPSJwc3dwX19lcnJvci1tc2ciPjxhIGhyZWY9IiV1cmwlIiB0YXJnZXQ9Il9ibGFuayI+VGhlIGltYWdlPC9hPiBjb3VsZCBub3QgYmUgbG9hZGVkLjwvZGl2PicsZm9yY2VQcm9ncmVzc2l2ZUxvYWRpbmc6ITEscHJlbG9hZDpbMSwxXSxnZXROdW1JdGVtc0ZuOmZ1bmN0aW9uKCl7cmV0dXJuIFhiLmxlbmd0aH19LGZjPWZ1bmN0aW9uKCl7cmV0dXJue2NlbnRlcjp7eDowLHk6MH0sbWF4Ont4OjAseTowfSxtaW46e3g6MCx5OjB9fX0sZ2M9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuYm91bmRzO2QuY2VudGVyLng9TWF0aC5yb3VuZCgoY2MueC1iKS8yKSxkLmNlbnRlci55PU1hdGgucm91bmQoKGNjLnktYykvMikrYS52R2FwLnRvcCxkLm1heC54PWI+Y2MueD9NYXRoLnJvdW5kKGNjLngtYik6ZC5jZW50ZXIueCxkLm1heC55PWM+Y2MueT9NYXRoLnJvdW5kKGNjLnktYykrYS52R2FwLnRvcDpkLmNlbnRlci55LGQubWluLng9Yj5jYy54PzA6ZC5jZW50ZXIueCxkLm1pbi55PWM+Y2MueT9hLnZHYXAudG9wOmQuY2VudGVyLnl9LGhjPWZ1bmN0aW9uKGEsYixjKXtpZihhLnNyYyYmIWEubG9hZEVycm9yKXt2YXIgZD0hYztpZihkJiYoYS52R2FwfHwoYS52R2FwPXt0b3A6MCxib3R0b206MH0pLENhKCJwYXJzZVZlcnRpY2FsTWFyZ2luIixhKSksY2MueD1iLngsY2MueT1iLnktYS52R2FwLnRvcC1hLnZHYXAuYm90dG9tLGQpe3ZhciBlPWNjLngvYS53LGY9Y2MueS9hLmg7YS5maXRSYXRpbz1mPmU/ZTpmO3ZhciBnPWkuc2NhbGVNb2RlOyJvcmlnIj09PWc/Yz0xOiJmaXQiPT09ZyYmKGM9YS5maXRSYXRpbyksYz4xJiYoYz0xKSxhLmluaXRpYWxab29tTGV2ZWw9YyxhLmJvdW5kc3x8KGEuYm91bmRzPWZjKCkpfWlmKCFjKXJldHVybjtyZXR1cm4gZ2MoYSxhLncqYyxhLmgqYyksZCYmYz09PWEuaW5pdGlhbFpvb21MZXZlbCYmKGEuaW5pdGlhbFBvc2l0aW9uPWEuYm91bmRzLmNlbnRlciksYS5ib3VuZHN9cmV0dXJuIGEudz1hLmg9MCxhLmluaXRpYWxab29tTGV2ZWw9YS5maXRSYXRpbz0xLGEuYm91bmRzPWZjKCksYS5pbml0aWFsUG9zaXRpb249YS5ib3VuZHMuY2VudGVyLGEuYm91bmRzfSxpYz1mdW5jdGlvbihhLGIsYyxkLGUsZyl7Yi5sb2FkRXJyb3J8fGQmJihiLmltYWdlQXBwZW5kZWQ9ITAsbGMoYixkLGI9PT1mLmN1cnJJdGVtJiZ4YSksYy5hcHBlbmRDaGlsZChkKSxnJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YiYmYi5sb2FkZWQmJmIucGxhY2Vob2xkZXImJihiLnBsYWNlaG9sZGVyLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGIucGxhY2Vob2xkZXI9bnVsbCl9LDUwMCkpfSxqYz1mdW5jdGlvbihhKXthLmxvYWRpbmc9ITAsYS5sb2FkZWQ9ITE7dmFyIGI9YS5pbWc9ZS5jcmVhdGVFbCgicHN3cF9faW1nIiwiaW1nIiksYz1mdW5jdGlvbigpe2EubG9hZGluZz0hMSxhLmxvYWRlZD0hMCxhLmxvYWRDb21wbGV0ZT9hLmxvYWRDb21wbGV0ZShhKTphLmltZz1udWxsLGIub25sb2FkPWIub25lcnJvcj1udWxsLGI9bnVsbH07cmV0dXJuIGIub25sb2FkPWMsYi5vbmVycm9yPWZ1bmN0aW9uKCl7YS5sb2FkRXJyb3I9ITAsYygpfSxiLnNyYz1hLnNyYyxifSxrYz1mdW5jdGlvbihhLGIpe3JldHVybiBhLnNyYyYmYS5sb2FkRXJyb3ImJmEuY29udGFpbmVyPyhiJiYoYS5jb250YWluZXIuaW5uZXJIVE1MPSIiKSxhLmNvbnRhaW5lci5pbm5lckhUTUw9aS5lcnJvck1zZy5yZXBsYWNlKCIldXJsJSIsYS5zcmMpLCEwKTp2b2lkIDB9LGxjPWZ1bmN0aW9uKGEsYixjKXtpZihhLnNyYyl7Ynx8KGI9YS5jb250YWluZXIubGFzdENoaWxkKTt2YXIgZD1jP2EudzpNYXRoLnJvdW5kKGEudyphLmZpdFJhdGlvKSxlPWM/YS5oOk1hdGgucm91bmQoYS5oKmEuZml0UmF0aW8pO2EucGxhY2Vob2xkZXImJiFhLmxvYWRlZCYmKGEucGxhY2Vob2xkZXIuc3R5bGUud2lkdGg9ZCsicHgiLGEucGxhY2Vob2xkZXIuc3R5bGUuaGVpZ2h0PWUrInB4IiksYi5zdHlsZS53aWR0aD1kKyJweCIsYi5zdHlsZS5oZWlnaHQ9ZSsicHgifX0sbWM9ZnVuY3Rpb24oKXtpZihkYy5sZW5ndGgpe2Zvcih2YXIgYSxiPTA7YjxkYy5sZW5ndGg7YisrKWE9ZGNbYl0sYS5ob2xkZXIuaW5kZXg9PT1hLmluZGV4JiZpYyhhLmluZGV4LGEuaXRlbSxhLmJhc2VEaXYsYS5pbWcsITEsYS5jbGVhclBsYWNlaG9sZGVyKTtkYz1bXX19O3lhKCJDb250cm9sbGVyIix7cHVibGljTWV0aG9kczp7bGF6eUxvYWRJdGVtOmZ1bmN0aW9uKGEpe2E9emEoYSk7dmFyIGI9JGIoYSk7YiYmKCFiLmxvYWRlZCYmIWIubG9hZGluZ3x8eCkmJihDYSgiZ2V0dGluZ0RhdGEiLGEsYiksYi5zcmMmJmpjKGIpKX0saW5pdENvbnRyb2xsZXI6ZnVuY3Rpb24oKXtlLmV4dGVuZChpLGVjLCEwKSxmLml0ZW1zPVhiPWMsJGI9Zi5nZXRJdGVtQXQsX2I9aS5nZXROdW1JdGVtc0ZuLGFjPWkubG9vcCxfYigpPDMmJihpLmxvb3A9ITEpLEJhKCJiZWZvcmVDaGFuZ2UiLGZ1bmN0aW9uKGEpe3ZhciBiLGM9aS5wcmVsb2FkLGQ9bnVsbD09PWE/ITA6YT49MCxlPU1hdGgubWluKGNbMF0sX2IoKSksZz1NYXRoLm1pbihjWzFdLF9iKCkpO2ZvcihiPTE7KGQ/ZzplKT49YjtiKyspZi5sYXp5TG9hZEl0ZW0obStiKTtmb3IoYj0xOyhkP2U6Zyk+PWI7YisrKWYubGF6eUxvYWRJdGVtKG0tYil9KSxCYSgiaW5pdGlhbExheW91dCIsZnVuY3Rpb24oKXtmLmN1cnJJdGVtLmluaXRpYWxMYXlvdXQ9aS5nZXRUaHVtYkJvdW5kc0ZuJiZpLmdldFRodW1iQm91bmRzRm4obSl9KSxCYSgibWFpblNjcm9sbEFuaW1Db21wbGV0ZSIsbWMpLEJhKCJpbml0aWFsWm9vbUluRW5kIixtYyksQmEoImRlc3Ryb3kiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9MDtiPFhiLmxlbmd0aDtiKyspYT1YYltiXSxhLmNvbnRhaW5lciYmKGEuY29udGFpbmVyPW51bGwpLGEucGxhY2Vob2xkZXImJihhLnBsYWNlaG9sZGVyPW51bGwpLGEuaW1nJiYoYS5pbWc9bnVsbCksYS5wcmVsb2FkZXImJihhLnByZWxvYWRlcj1udWxsKSxhLmxvYWRFcnJvciYmKGEubG9hZGVkPWEubG9hZEVycm9yPSExKTtkYz1udWxsfSl9LGdldEl0ZW1BdDpmdW5jdGlvbihhKXtyZXR1cm4gYT49MCYmdm9pZCAwIT09WGJbYV0/WGJbYV06ITF9LGFsbG93UHJvZ3Jlc3NpdmVJbWc6ZnVuY3Rpb24oKXtyZXR1cm4gaS5mb3JjZVByb2dyZXNzaXZlTG9hZGluZ3x8IUd8fGkubW91c2VVc2VkfHxzY3JlZW4ud2lkdGg+MTIwMH0sc2V0Q29udGVudDpmdW5jdGlvbihhLGIpe2kubG9vcCYmKGI9emEoYikpO3ZhciBjPWYuZ2V0SXRlbUF0KGEuaW5kZXgpO2MmJihjLmNvbnRhaW5lcj1udWxsKTt2YXIgZCxnPWYuZ2V0SXRlbUF0KGIpO2lmKCFnKXJldHVybiB2b2lkKGEuZWwuaW5uZXJIVE1MPSIiKTtDYSgiZ2V0dGluZ0RhdGEiLGIsZyksYS5pbmRleD1iLGEuaXRlbT1nO3ZhciBoPWcuY29udGFpbmVyPWUuY3JlYXRlRWwoInBzd3BfX3pvb20td3JhcCIpO2lmKCFnLnNyYyYmZy5odG1sJiYoZy5odG1sLnRhZ05hbWU/aC5hcHBlbmRDaGlsZChnLmh0bWwpOmguaW5uZXJIVE1MPWcuaHRtbCksa2MoZyksaGMoZyxwYSksIWcuc3JjfHxnLmxvYWRFcnJvcnx8Zy5sb2FkZWQpZy5zcmMmJiFnLmxvYWRFcnJvciYmKGQ9ZS5jcmVhdGVFbCgicHN3cF9faW1nIiwiaW1nIiksZC5zdHlsZS5vcGFjaXR5PTEsZC5zcmM9Zy5zcmMsbGMoZyxkKSxpYyhiLGcsaCxkLCEwKSk7ZWxzZXtpZihnLmxvYWRDb21wbGV0ZT1mdW5jdGlvbihjKXtpZihqKXtpZihhJiZhLmluZGV4PT09Yil7aWYoa2MoYywhMCkpcmV0dXJuIGMubG9hZENvbXBsZXRlPWMuaW1nPW51bGwsaGMoYyxwYSksSGEoYyksdm9pZChhLmluZGV4PT09bSYmZi51cGRhdGVDdXJyWm9vbUl0ZW0oKSk7Yy5pbWFnZUFwcGVuZGVkPyFaYiYmYy5wbGFjZWhvbGRlciYmKGMucGxhY2Vob2xkZXIuc3R5bGUuZGlzcGxheT0ibm9uZSIsYy5wbGFjZWhvbGRlcj1udWxsKTpOLnRyYW5zZm9ybSYmKGVhfHxaYik/ZGMucHVzaCh7aXRlbTpjLGJhc2VEaXY6aCxpbWc6Yy5pbWcsaW5kZXg6Yixob2xkZXI6YSxjbGVhclBsYWNlaG9sZGVyOiEwfSk6aWMoYixjLGgsYy5pbWcsZWF8fFpiLCEwKX1jLmxvYWRDb21wbGV0ZT1udWxsLGMuaW1nPW51bGwsQ2EoImltYWdlTG9hZENvbXBsZXRlIixiLGMpfX0sZS5mZWF0dXJlcy50cmFuc2Zvcm0pe3ZhciBrPSJwc3dwX19pbWcgcHN3cF9faW1nLS1wbGFjZWhvbGRlciI7ays9Zy5tc3JjPyIiOiIgcHN3cF9faW1nLS1wbGFjZWhvbGRlci0tYmxhbmsiO3ZhciBsPWUuY3JlYXRlRWwoayxnLm1zcmM/ImltZyI6IiIpO2cubXNyYyYmKGwuc3JjPWcubXNyYyksbGMoZyxsKSxoLmFwcGVuZENoaWxkKGwpLGcucGxhY2Vob2xkZXI9bH1nLmxvYWRpbmd8fGpjKGcpLGYuYWxsb3dQcm9ncmVzc2l2ZUltZygpJiYoIVliJiZOLnRyYW5zZm9ybT9kYy5wdXNoKHtpdGVtOmcsYmFzZURpdjpoLGltZzpnLmltZyxpbmRleDpiLGhvbGRlcjphfSk6aWMoYixnLGgsZy5pbWcsITAsITApKX1ZYnx8YiE9PW0/SGEoZyk6KGRhPWguc3R5bGUsYmMoZyxkfHxnLmltZykpLGEuZWwuaW5uZXJIVE1MPSIiLGEuZWwuYXBwZW5kQ2hpbGQoaCl9LGNsZWFuU2xpZGU6ZnVuY3Rpb24oYSl7YS5pbWcmJihhLmltZy5vbmxvYWQ9YS5pbWcub25lcnJvcj1udWxsKSxhLmxvYWRlZD1hLmxvYWRpbmc9YS5pbWc9YS5pbWFnZUFwcGVuZGVkPSExfX19KTt2YXIgbmMsb2M9e30scGM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJDdXN0b21FdmVudCIpLGU9e29yaWdFdmVudDphLHRhcmdldDphLnRhcmdldCxyZWxlYXNlUG9pbnQ6Yixwb2ludGVyVHlwZTpjfHwidG91Y2gifTtkLmluaXRDdXN0b21FdmVudCgicHN3cFRhcCIsITAsITAsZSksYS50YXJnZXQuZGlzcGF0Y2hFdmVudChkKX07eWEoIlRhcCIse3B1YmxpY01ldGhvZHM6e2luaXRUYXA6ZnVuY3Rpb24oKXtCYSgiZmlyc3RUb3VjaFN0YXJ0IixmLm9uVGFwU3RhcnQpLEJhKCJ0b3VjaFJlbGVhc2UiLGYub25UYXBSZWxlYXNlKSxCYSgiZGVzdHJveSIsZnVuY3Rpb24oKXtvYz17fSxuYz1udWxsfSl9LG9uVGFwU3RhcnQ6ZnVuY3Rpb24oYSl7YS5sZW5ndGg+MSYmKGNsZWFyVGltZW91dChuYyksbmM9bnVsbCl9LG9uVGFwUmVsZWFzZTpmdW5jdGlvbihhLGIpe2lmKGImJiFYJiYhViYmISRhKXt2YXIgYz1iO2lmKG5jJiYoY2xlYXJUaW1lb3V0KG5jKSxuYz1udWxsLHdiKGMsb2MpKSlyZXR1cm4gdm9pZCBDYSgiZG91YmxlVGFwIixjKTtpZigibW91c2UiPT09Yi50eXBlKXJldHVybiB2b2lkIHBjKGEsYiwibW91c2UiKTt2YXIgZD1hLnRhcmdldC50YWdOYW1lLnRvVXBwZXJDYXNlKCk7aWYoIkJVVFRPTiI9PT1kfHxlLmhhc0NsYXNzKGEudGFyZ2V0LCJwc3dwX19zaW5nbGUtdGFwIikpcmV0dXJuIHZvaWQgcGMoYSxiKTtMYShvYyxjKSxuYz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cGMoYSxiKSxuYz1udWxsfSwzMDApfX19fSk7dmFyIHFjO3lhKCJEZXNrdG9wWm9vbSIse3B1YmxpY01ldGhvZHM6e2luaXREZXNrdG9wWm9vbTpmdW5jdGlvbigpe0x8fChHP0JhKCJtb3VzZVVzZWQiLGZ1bmN0aW9uKCl7Zi5zZXR1cERlc2t0b3Bab29tKCl9KTpmLnNldHVwRGVza3RvcFpvb20oITApKX0sc2V0dXBEZXNrdG9wWm9vbTpmdW5jdGlvbihiKXtxYz17fTt2YXIgYz0id2hlZWwgbW91c2V3aGVlbCBET01Nb3VzZVNjcm9sbCI7QmEoImJpbmRFdmVudHMiLGZ1bmN0aW9uKCl7ZS5iaW5kKGEsYyxmLmhhbmRsZU1vdXNlV2hlZWwpfSksQmEoInVuYmluZEV2ZW50cyIsZnVuY3Rpb24oKXtxYyYmZS51bmJpbmQoYSxjLGYuaGFuZGxlTW91c2VXaGVlbCl9KSxmLm1vdXNlWm9vbWVkSW49ITE7dmFyIGQsZz1mdW5jdGlvbigpe2YubW91c2Vab29tZWRJbiYmKGUucmVtb3ZlQ2xhc3MoYSwicHN3cC0tem9vbWVkLWluIiksZi5tb3VzZVpvb21lZEluPSExKSwxPnM/ZS5hZGRDbGFzcyhhLCJwc3dwLS16b29tLWFsbG93ZWQiKTplLnJlbW92ZUNsYXNzKGEsInBzd3AtLXpvb20tYWxsb3dlZCIpLGgoKX0saD1mdW5jdGlvbigpe2QmJihlLnJlbW92ZUNsYXNzKGEsInBzd3AtLWRyYWdnaW5nIiksZD0hMSl9O0JhKCJyZXNpemUiLGcpLEJhKCJhZnRlckNoYW5nZSIsZyksQmEoInBvaW50ZXJEb3duIixmdW5jdGlvbigpe2YubW91c2Vab29tZWRJbiYmKGQ9ITAsZS5hZGRDbGFzcyhhLCJwc3dwLS1kcmFnZ2luZyIpKX0pLEJhKCJwb2ludGVyVXAiLGgpLGJ8fGcoKX0saGFuZGxlTW91c2VXaGVlbDpmdW5jdGlvbihhKXtpZihzPD1mLmN1cnJJdGVtLmZpdFJhdGlvKXJldHVybiBpLm1vZGFsJiYoIWkuY2xvc2VPblNjcm9sbHx8JGF8fFU/YS5wcmV2ZW50RGVmYXVsdCgpOkUmJk1hdGguYWJzKGEuZGVsdGFZKT4yJiYobD0hMCxmLmNsb3NlKCkpKSwhMDtpZihhLnN0b3BQcm9wYWdhdGlvbigpLHFjLng9MCwiZGVsdGFYImluIGEpMT09PWEuZGVsdGFNb2RlPyhxYy54PTE4KmEuZGVsdGFYLHFjLnk9MTgqYS5kZWx0YVkpOihxYy54PWEuZGVsdGFYLHFjLnk9YS5kZWx0YVkpO2Vsc2UgaWYoIndoZWVsRGVsdGEiaW4gYSlhLndoZWVsRGVsdGFYJiYocWMueD0tLjE2KmEud2hlZWxEZWx0YVgpLGEud2hlZWxEZWx0YVk/cWMueT0tLjE2KmEud2hlZWxEZWx0YVk6cWMueT0tLjE2KmEud2hlZWxEZWx0YTtlbHNle2lmKCEoImRldGFpbCJpbiBhKSlyZXR1cm47cWMueT1hLmRldGFpbH1SYShzLCEwKTt2YXIgYj1vYS54LXFjLngsYz1vYS55LXFjLnk7KGkubW9kYWx8fGI8PWNhLm1pbi54JiZiPj1jYS5tYXgueCYmYzw9Y2EubWluLnkmJmM+PWNhLm1heC55KSYmYS5wcmV2ZW50RGVmYXVsdCgpLGYucGFuVG8oYixjKX0sdG9nZ2xlRGVza3RvcFpvb206ZnVuY3Rpb24oYil7Yj1ifHx7eDpwYS54LzIrcmEueCx5OnBhLnkvMityYS55fTt2YXIgYz1pLmdldERvdWJsZVRhcFpvb20oITAsZi5jdXJySXRlbSksZD1zPT09YztmLm1vdXNlWm9vbWVkSW49IWQsZi56b29tVG8oZD9mLmN1cnJJdGVtLmluaXRpYWxab29tTGV2ZWw6YyxiLDMzMyksZVsoZD8icmVtb3ZlIjoiYWRkIikrIkNsYXNzIl0oYSwicHN3cC0tem9vbWVkLWluIil9fX0pO3ZhciByYyxzYyx0Yyx1Yyx2Yyx3Yyx4Yyx5Yyx6YyxBYyxCYyxDYyxEYz17aGlzdG9yeTohMCxnYWxsZXJ5VUlEOjF9LEVjPWZ1bmN0aW9uKCl7cmV0dXJuIEJjLmhhc2guc3Vic3RyaW5nKDEpfSxGYz1mdW5jdGlvbigpe3JjJiZjbGVhclRpbWVvdXQocmMpLHRjJiZjbGVhclRpbWVvdXQodGMpfSxHYz1mdW5jdGlvbigpe3ZhciBhPUVjKCksYj17fTtpZihhLmxlbmd0aDw1KXJldHVybiBiO3ZhciBjLGQ9YS5zcGxpdCgiJiIpO2ZvcihjPTA7YzxkLmxlbmd0aDtjKyspaWYoZFtjXSl7dmFyIGU9ZFtjXS5zcGxpdCgiPSIpO2UubGVuZ3RoPDJ8fChiW2VbMF1dPWVbMV0pfWlmKGkuZ2FsbGVyeVBJRHMpe3ZhciBmPWIucGlkO2ZvcihiLnBpZD0wLGM9MDtjPFhiLmxlbmd0aDtjKyspaWYoWGJbY10ucGlkPT09Zil7Yi5waWQ9YzticmVha319ZWxzZSBiLnBpZD1wYXJzZUludChiLnBpZCwxMCktMTtyZXR1cm4gYi5waWQ8MCYmKGIucGlkPTApLGJ9LEhjPWZ1bmN0aW9uKCl7aWYodGMmJmNsZWFyVGltZW91dCh0YyksJGF8fFUpcmV0dXJuIHZvaWQodGM9c2V0VGltZW91dChIYyw1MDApKTt1Yz9jbGVhclRpbWVvdXQoc2MpOnVjPSEwO3ZhciBhPW0rMSxiPSRiKG0pO2IuaGFzT3duUHJvcGVydHkoInBpZCIpJiYoYT1iLnBpZCk7dmFyIGM9eGMrIiZnaWQ9IitpLmdhbGxlcnlVSUQrIiZwaWQ9IithO3ljfHwtMT09PUJjLmhhc2guaW5kZXhPZihjKSYmKEFjPSEwKTt2YXIgZD1CYy5ocmVmLnNwbGl0KCIjIilbMF0rIiMiK2M7Q2M/IiMiK2MhPT13aW5kb3cubG9jYXRpb24uaGFzaCYmaGlzdG9yeVt5Yz8icmVwbGFjZVN0YXRlIjoicHVzaFN0YXRlIl0oIiIsZG9jdW1lbnQudGl0bGUsZCk6eWM/QmMucmVwbGFjZShkKTpCYy5oYXNoPWMseWM9ITAsc2M9c2V0VGltZW91dChmdW5jdGlvbigpe3VjPSExfSw2MCl9O3lhKCJIaXN0b3J5Iix7cHVibGljTWV0aG9kczp7aW5pdEhpc3Rvcnk6ZnVuY3Rpb24oKXtpZihlLmV4dGVuZChpLERjLCEwKSxpLmhpc3Rvcnkpe0JjPXdpbmRvdy5sb2NhdGlvbixBYz0hMSx6Yz0hMSx5Yz0hMSx4Yz1FYygpLENjPSJwdXNoU3RhdGUiaW4gaGlzdG9yeSx4Yy5pbmRleE9mKCJnaWQ9Iik+LTEmJih4Yz14Yy5zcGxpdCgiJmdpZD0iKVswXSx4Yz14Yy5zcGxpdCgiP2dpZD0iKVswXSksQmEoImFmdGVyQ2hhbmdlIixmLnVwZGF0ZVVSTCksQmEoInVuYmluZEV2ZW50cyIsZnVuY3Rpb24oKXtlLnVuYmluZCh3aW5kb3csImhhc2hjaGFuZ2UiLGYub25IYXNoQ2hhbmdlKX0pO3ZhciBhPWZ1bmN0aW9uKCl7d2M9ITAsemN8fChBYz9oaXN0b3J5LmJhY2soKTp4Yz9CYy5oYXNoPXhjOkNjP2hpc3RvcnkucHVzaFN0YXRlKCIiLGRvY3VtZW50LnRpdGxlLEJjLnBhdGhuYW1lK0JjLnNlYXJjaCk6QmMuaGFzaD0iIiksRmMoKX07QmEoInVuYmluZEV2ZW50cyIsZnVuY3Rpb24oKXtsJiZhKCl9KSxCYSgiZGVzdHJveSIsZnVuY3Rpb24oKXt3Y3x8YSgpfSksQmEoImZpcnN0VXBkYXRlIixmdW5jdGlvbigpe209R2MoKS5waWR9KTt2YXIgYj14Yy5pbmRleE9mKCJwaWQ9Iik7Yj4tMSYmKHhjPXhjLnN1YnN0cmluZygwLGIpLCImIj09PXhjLnNsaWNlKC0xKSYmKHhjPXhjLnNsaWNlKDAsLTEpKSksc2V0VGltZW91dChmdW5jdGlvbigpe2omJmUuYmluZCh3aW5kb3csImhhc2hjaGFuZ2UiLGYub25IYXNoQ2hhbmdlKX0sNDApfX0sb25IYXNoQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuIEVjKCk9PT14Yz8oemM9ITAsdm9pZCBmLmNsb3NlKCkpOnZvaWQodWN8fCh2Yz0hMCxmLmdvVG8oR2MoKS5waWQpLHZjPSExKSl9LHVwZGF0ZVVSTDpmdW5jdGlvbigpe0ZjKCksdmN8fCh5Yz9yYz1zZXRUaW1lb3V0KEhjLDgwMCk6SGMoKSl9fX0pLGUuZXh0ZW5kKGYsZGIpfTtyZXR1cm4gYX0pOw==]]></data>
	</file>
</gallerytpl>
